summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2014-02-26 09:36:43 -0500
committerChet Ramey <chet.ramey@case.edu>2014-02-26 09:36:43 -0500
commitac50fbac377e32b98d2de396f016ea81e8ee9961 (patch)
treef71882366b98fedf1a88a063103219a4935de926
parent4539d736f1aff232857a854fd2a68df0c98d9f34 (diff)
downloadbash-ac50fbac377e32b98d2de396f016ea81e8ee9961.tar.gz
Bash-4.3 distribution sources and documentationbash-4.3
-rw-r--r--AUTHORS4
-rw-r--r--CHANGES847
-rw-r--r--COMPAT64
-rw-r--r--CWRU/changelog14039
-rw-r--r--INSTALL25
-rw-r--r--MANIFEST338
-rw-r--r--Makefile.in73
-rw-r--r--NEWS184
-rw-r--r--NOTES3
-rw-r--r--POSIX93
-rw-r--r--README9
-rw-r--r--aclocal.m434
-rw-r--r--alias.c2
-rw-r--r--array.c46
-rw-r--r--arrayfunc.c150
-rw-r--r--arrayfunc.h10
-rw-r--r--assoc.c31
-rw-r--r--assoc.h1
-rw-r--r--bashhist.c30
-rw-r--r--bashline.c528
-rw-r--r--bashline.h1
-rw-r--r--bracecomp.c8
-rw-r--r--braces.c202
-rw-r--r--builtins.h2
-rw-r--r--builtins/Makefile.in48
-rw-r--r--builtins/bind.def15
-rw-r--r--builtins/caller.def3
-rw-r--r--builtins/cd.def163
-rw-r--r--builtins/common.c4
-rw-r--r--builtins/common.h4
-rw-r--r--builtins/complete.def8
-rw-r--r--builtins/declare.def157
-rw-r--r--builtins/echo.def4
-rw-r--r--builtins/eval.def3
-rw-r--r--builtins/evalfile.c12
-rw-r--r--builtins/evalstring.c127
-rw-r--r--builtins/exec.def4
-rw-r--r--builtins/fc.def27
-rw-r--r--builtins/gen-helpfiles.c197
-rw-r--r--builtins/hash.def5
-rw-r--r--builtins/help.def222
-rw-r--r--builtins/history.def5
-rw-r--r--builtins/jobs.def2
-rw-r--r--builtins/kill.def8
-rw-r--r--builtins/mapfile.def10
-rw-r--r--builtins/mkbuiltins.c60
-rw-r--r--builtins/printf.def82
-rw-r--r--builtins/psize.sh2
-rw-r--r--builtins/pushd.def22
-rw-r--r--builtins/read.def142
-rw-r--r--builtins/return.def2
-rw-r--r--builtins/set.def54
-rw-r--r--builtins/setattr.def49
-rw-r--r--builtins/shopt.def60
-rw-r--r--builtins/test.def1
-rw-r--r--builtins/type.def8
-rw-r--r--builtins/ulimit.def11
-rw-r--r--builtins/umask.def4
-rw-r--r--builtins/wait.def60
-rw-r--r--command.h12
-rw-r--r--config-top.h25
-rw-r--r--config.h.in44
-rwxr-xr-xconfigure23968
-rw-r--r--configure.ac1212
-rw-r--r--doc/FAQ207
-rw-r--r--doc/Makefile.in14
-rw-r--r--doc/aosa-bash.pdfbin0 -> 153472 bytes
-rw-r--r--doc/article.ms6
-rw-r--r--doc/article.pdfbin131900 -> 49482 bytes
-rw-r--r--doc/article.ps364
-rw-r--r--doc/bash.03511
-rw-r--r--doc/bash.1917
-rw-r--r--doc/bash.html1019
-rw-r--r--doc/bash.pdfbin296259 -> 312770 bytes
-rw-r--r--doc/bash.ps13172
-rw-r--r--doc/bashref.dvibin680368 -> 721984 bytes
-rw-r--r--doc/bashref.html4647
-rw-r--r--doc/bashref.info2604
-rw-r--r--doc/bashref.pdfbin570072 -> 463824 bytes
-rw-r--r--doc/bashref.ps30211
-rw-r--r--doc/bashref.texi1223
-rw-r--r--doc/builtins.01059
-rw-r--r--doc/builtins.19
-rw-r--r--doc/builtins.ps3826
-rw-r--r--doc/rbash.02
-rw-r--r--doc/rbash.ps14
-rw-r--r--doc/texinfo.tex2723
-rw-r--r--doc/version.texi12
-rw-r--r--error.c30
-rw-r--r--error.h3
-rw-r--r--eval.c20
-rw-r--r--examples/INDEX.html6
-rw-r--r--examples/INDEX.txt3
-rw-r--r--examples/complete/cdfunc76
-rw-r--r--examples/complete/complete-examples17
-rw-r--r--examples/functions/array-stuff19
-rw-r--r--examples/functions/fstty18
-rw-r--r--examples/functions/func20
-rw-r--r--examples/functions/inetaddr19
-rw-r--r--examples/functions/isnum219
-rw-r--r--examples/functions/ksh-cd19
-rw-r--r--examples/functions/ksh-compat-test18
-rw-r--r--examples/functions/kshenv18
-rw-r--r--examples/functions/notify.bash19
-rw-r--r--examples/functions/seq19
-rw-r--r--examples/functions/seq219
-rw-r--r--examples/functions/sort-pos-params19
-rw-r--r--examples/functions/substr18
-rw-r--r--examples/functions/substr220
-rw-r--r--examples/functions/whatis19
-rw-r--r--examples/functions/whence19
-rw-r--r--examples/functions/which18
-rw-r--r--examples/loadables/Makefile.in9
-rw-r--r--examples/loadables/basename.c18
-rw-r--r--examples/loadables/finfo.c18
-rw-r--r--examples/loadables/hello.c18
-rw-r--r--examples/loadables/mkdir.c2
-rw-r--r--examples/loadables/sleep.c4
-rw-r--r--examples/scripts/center17
-rwxr-xr-xexamples/scripts/shprompt18
-rw-r--r--examples/scripts/spin.bash16
-rwxr-xr-xexamples/scripts/xterm_title17
-rwxr-xr-xexamples/scripts/zprintf17
-rw-r--r--examples/startup-files/README9
-rw-r--r--execute_cmd.c549
-rw-r--r--expr.c127
-rw-r--r--externs.h20
-rw-r--r--findcmd.c22
-rw-r--r--findcmd.h4
-rw-r--r--flags.c17
-rw-r--r--flags.h5
-rw-r--r--general.c29
-rw-r--r--general.h4
-rw-r--r--include/chartypes.h2
-rw-r--r--include/posixdir.h14
-rw-r--r--include/posixjmp.h2
-rw-r--r--include/shmbutil.h22
-rw-r--r--include/stat-time.h214
-rw-r--r--include/stdc.h5
-rw-r--r--include/systimes.h2
-rw-r--r--include/typemax.h4
-rw-r--r--input.c21
-rw-r--r--jobs.c331
-rw-r--r--jobs.h11
-rw-r--r--lib/glob/glob.c347
-rw-r--r--lib/glob/glob.h2
-rw-r--r--lib/glob/gmisc.c18
-rw-r--r--lib/glob/sm_loop.c55
-rw-r--r--lib/glob/smatch.c43
-rw-r--r--lib/glob/xmbsrtowcs.c17
-rw-r--r--lib/intl/Makefile.in6
-rw-r--r--lib/intl/l10nflist.c2
-rw-r--r--lib/intl/localealias.c5
-rw-r--r--lib/malloc/getpagesize.h2
-rw-r--r--lib/malloc/imalloc.h11
-rw-r--r--lib/malloc/malloc.c28
-rw-r--r--lib/malloc/table.c39
-rw-r--r--lib/readline/Makefile.in27
-rw-r--r--lib/readline/bind.c207
-rw-r--r--lib/readline/callback.c44
-rw-r--r--lib/readline/chardefs.h2
-rw-r--r--lib/readline/colors.c251
-rw-r--r--lib/readline/colors.h122
-rw-r--r--lib/readline/complete.c373
-rw-r--r--lib/readline/display.c336
-rw-r--r--lib/readline/doc/history.texi26
-rw-r--r--lib/readline/doc/hstech.texi4
-rw-r--r--lib/readline/doc/hsuser.texi24
-rw-r--r--lib/readline/doc/rlman.texi27
-rw-r--r--lib/readline/doc/rltech.texi210
-rw-r--r--lib/readline/doc/rluser.texi228
-rw-r--r--lib/readline/doc/rluserman.texi27
-rw-r--r--lib/readline/doc/version.texi12
-rw-r--r--lib/readline/examples/excallback.c7
-rw-r--r--lib/readline/examples/rl-callbacktest.c81
-rw-r--r--lib/readline/funmap.c5
-rw-r--r--lib/readline/histexpand.c70
-rw-r--r--lib/readline/histfile.c62
-rw-r--r--lib/readline/history.c8
-rw-r--r--lib/readline/history.h2
-rw-r--r--lib/readline/input.c53
-rw-r--r--lib/readline/isearch.c128
-rw-r--r--lib/readline/macro.c38
-rw-r--r--lib/readline/mbutil.c11
-rw-r--r--lib/readline/misc.c39
-rw-r--r--lib/readline/nls.c35
-rw-r--r--lib/readline/parse-colors.c440
-rw-r--r--lib/readline/parse-colors.h46
-rw-r--r--lib/readline/posixdir.h14
-rw-r--r--lib/readline/posixjmp.h2
-rw-r--r--lib/readline/readline.c154
-rw-r--r--lib/readline/readline.h36
-rw-r--r--lib/readline/rlconf.h12
-rw-r--r--lib/readline/rldefs.h10
-rw-r--r--lib/readline/rlmbutil.h9
-rw-r--r--lib/readline/rlprivate.h35
-rw-r--r--lib/readline/rlstdc.h12
-rw-r--r--lib/readline/rltty.c10
-rw-r--r--lib/readline/rltypedefs.h14
-rw-r--r--lib/readline/search.c93
-rw-r--r--lib/readline/shell.c48
-rw-r--r--lib/readline/signals.c120
-rw-r--r--lib/readline/terminal.c85
-rw-r--r--lib/readline/text.c7
-rw-r--r--lib/readline/undo.c39
-rw-r--r--lib/readline/util.c83
-rw-r--r--lib/readline/vi_keymap.c1
-rw-r--r--lib/readline/vi_mode.c100
-rw-r--r--lib/sh/Makefile.in45
-rw-r--r--lib/sh/casemod.c24
-rw-r--r--lib/sh/clktck.c4
-rw-r--r--lib/sh/eaccess.c13
-rw-r--r--lib/sh/fmtulong.c5
-rw-r--r--lib/sh/getcwd.c6
-rw-r--r--lib/sh/inet_aton.c2
-rw-r--r--lib/sh/itos.c12
-rw-r--r--lib/sh/mailstat.c2
-rw-r--r--lib/sh/makepath.c2
-rw-r--r--lib/sh/mbschr.c13
-rw-r--r--lib/sh/mktime.c2
-rw-r--r--lib/sh/oslib.c4
-rw-r--r--lib/sh/pathcanon.c2
-rw-r--r--lib/sh/pathphys.c4
-rw-r--r--lib/sh/shmbchar.c23
-rw-r--r--lib/sh/shquote.c109
-rw-r--r--lib/sh/snprintf.c178
-rw-r--r--lib/sh/spell.c2
-rw-r--r--lib/sh/strchrnul.c123
-rw-r--r--lib/sh/strdup.c42
-rw-r--r--lib/sh/strerror.c2
-rw-r--r--lib/sh/strftime.c155
-rw-r--r--lib/sh/stringvec.c16
-rw-r--r--lib/sh/strpbrk.c2
-rw-r--r--lib/sh/strtrans.c86
-rw-r--r--lib/sh/tmpfile.c6
-rw-r--r--lib/sh/unicode.c188
-rw-r--r--lib/sh/wcsnwidth.c56
-rw-r--r--lib/sh/zgetline.c2
-rw-r--r--lib/sh/zmapfd.c3
-rw-r--r--lib/sh/zread.c48
-rw-r--r--lib/tilde/shell.c17
-rw-r--r--locale.c49
-rw-r--r--m4/stat-time.m461
-rw-r--r--m4/timespec.m471
-rw-r--r--mailcheck.c12
-rw-r--r--make_cmd.c13
-rw-r--r--mksyntax.c2
-rw-r--r--nojobs.c53
-rw-r--r--parse.y333
-rw-r--r--parser-built4
-rw-r--r--parser.h5
-rw-r--r--patchlevel.h4
-rw-r--r--pathexp.c110
-rw-r--r--pcomplete.c138
-rw-r--r--pcomplete.h8
-rw-r--r--pcomplib.c2
-rw-r--r--po/._bg.pobin0 -> 4096 bytes
-rw-r--r--po/LINGUAS2
-rw-r--r--po/af.gmobin1231 -> 1244 bytes
-rw-r--r--po/af.po905
-rw-r--r--po/bash.pot899
-rw-r--r--po/bg.gmobin34844 -> 235979 bytes
-rw-r--r--po/bg.po4853
-rw-r--r--po/ca.gmobin9819 -> 9739 bytes
-rw-r--r--po/ca.po908
-rw-r--r--po/cs.gmobin134220 -> 173589 bytes
-rw-r--r--po/cs.po1102
-rw-r--r--po/da.gmobin0 -> 100735 bytes
-rw-r--r--po/da.po5795
-rw-r--r--po/de.gmobin45776 -> 89921 bytes
-rw-r--r--po/de.po4079
-rw-r--r--po/el.gmobin0 -> 37185 bytes
-rw-r--r--po/el.po4104
-rw-r--r--po/en@boldquot.gmobin161163 -> 165724 bytes
-rw-r--r--po/en@boldquot.po1054
-rw-r--r--po/en@quot.gmobin159611 -> 164132 bytes
-rw-r--r--po/en@quot.po1026
-rw-r--r--po/eo.gmobin116790 -> 161232 bytes
-rw-r--r--po/eo.po1451
-rw-r--r--po/es.gmobin133409 -> 122470 bytes
-rw-r--r--po/es.po3816
-rw-r--r--po/et.gmobin12257 -> 12133 bytes
-rw-r--r--po/et.po908
-rw-r--r--po/fi.gmobin120517 -> 102765 bytes
-rw-r--r--po/fi.po937
-rw-r--r--po/fr.gmobin138545 -> 126213 bytes
-rw-r--r--po/fr.po1332
-rw-r--r--po/ga.gmobin62011 -> 58471 bytes
-rw-r--r--po/ga.po928
-rw-r--r--po/gl.gmobin0 -> 63233 bytes
-rw-r--r--po/gl.po4488
-rw-r--r--po/hr.gmobin0 -> 34075 bytes
-rw-r--r--po/hr.po4125
-rw-r--r--po/hu.gmobin134317 -> 110947 bytes
-rw-r--r--po/hu.po938
-rw-r--r--po/id.gmobin131500 -> 108579 bytes
-rw-r--r--po/id.po950
-rw-r--r--po/it.gmobin0 -> 122520 bytes
-rw-r--r--po/it.po5853
-rw-r--r--po/ja.gmobin145905 -> 133748 bytes
-rw-r--r--po/ja.po1547
-rw-r--r--po/lt.gmobin30079 -> 29354 bytes
-rw-r--r--po/lt.po930
-rw-r--r--po/nl.gmobin131870 -> 170658 bytes
-rw-r--r--po/nl.po1238
-rw-r--r--po/pl.gmobin24983 -> 173751 bytes
-rw-r--r--po/pl.po4540
-rw-r--r--po/pt_BR.gmobin9658 -> 9580 bytes
-rw-r--r--po/pt_BR.po904
-rw-r--r--po/ro.gmobin9415 -> 9358 bytes
-rw-r--r--po/ro.po916
-rw-r--r--po/ru.gmobin9142 -> 9155 bytes
-rw-r--r--po/ru.po903
-rw-r--r--po/sk.gmobin132621 -> 121115 bytes
-rw-r--r--po/sk.po1176
-rw-r--r--po/sl.gmobin0 -> 117289 bytes
-rw-r--r--po/sl.po5593
-rw-r--r--po/sr.gmobin0 -> 219040 bytes
-rw-r--r--po/sr.po5661
-rw-r--r--po/sv.gmobin128852 -> 165974 bytes
-rw-r--r--po/sv.po1141
-rw-r--r--po/tr.gmobin24589 -> 88390 bytes
-rw-r--r--po/tr.po2518
-rw-r--r--po/uk.gmobin138956 -> 222687 bytes
-rw-r--r--po/uk.po1976
-rw-r--r--po/vi.gmobin142862 -> 179349 bytes
-rw-r--r--po/vi.po4183
-rw-r--r--po/zh_CN.gmobin123267 -> 102094 bytes
-rw-r--r--po/zh_CN.po1369
-rw-r--r--po/zh_TW.gmobin5993 -> 5876 bytes
-rw-r--r--po/zh_TW.po900
-rw-r--r--print_cmd.c75
-rw-r--r--quit.h34
-rw-r--r--redir.c141
-rw-r--r--redir.h1
-rw-r--r--shell.c60
-rw-r--r--shell.h8
-rw-r--r--sig.c85
-rw-r--r--sig.h26
-rw-r--r--stringlib.c4
-rw-r--r--subst.c663
-rw-r--r--subst.h10
-rw-r--r--support/config.guess587
-rw-r--r--support/config.sub332
-rw-r--r--support/man2html.c1
-rwxr-xr-xsupport/mkconffiles2
-rw-r--r--support/printenv.c1
-rwxr-xr-xsupport/shobj-conf71
-rw-r--r--support/signames.c2
-rw-r--r--support/xcase.c1
-rw-r--r--test.c60
-rw-r--r--tests/COPYRIGHT5
-rw-r--r--tests/appendop.right14
-rw-r--r--tests/appendop.tests6
-rw-r--r--tests/appendop1.sub15
-rw-r--r--tests/appendop2.sub18
-rw-r--r--tests/arith-for.right12
-rw-r--r--tests/arith-for.tests19
-rw-r--r--tests/arith.right37
-rw-r--r--tests/arith.tests7
-rw-r--r--tests/arith5.sub56
-rw-r--r--tests/arith6.sub52
-rw-r--r--tests/array.right75
-rw-r--r--tests/array.tests12
-rw-r--r--tests/array11.sub35
-rw-r--r--tests/array12.sub21
-rw-r--r--tests/array13.sub13
-rw-r--r--tests/array14.sub30
-rw-r--r--tests/array15.sub24
-rw-r--r--tests/array16.sub21
-rw-r--r--tests/array2.sub3
-rw-r--r--tests/array6.sub6
-rw-r--r--tests/assoc.right3
-rw-r--r--tests/assoc.tests2
-rw-r--r--tests/assoc7.sub16
-rw-r--r--tests/builtins.right33
-rw-r--r--tests/builtins.tests6
-rw-r--r--tests/builtins4.sub44
-rw-r--r--tests/case.right14
-rw-r--r--tests/case.tests15
-rw-r--r--tests/case1.sub64
-rw-r--r--tests/cond-regexp1.sub56
-rw-r--r--tests/cond-regexp2.sub30
-rw-r--r--tests/cond-regexp3.sub73
-rw-r--r--tests/cond.right70
-rwxr-xr-xtests/cond.tests6
-rwxr-xr-xtests/dollar-at-star22
-rw-r--r--tests/dollar-at-star1.sub23
-rw-r--r--tests/dollar-at4.sub10
-rw-r--r--tests/dollar-at5.sub82
-rw-r--r--tests/dollar-at6.sub30
-rw-r--r--tests/dollar-star6.sub19
-rw-r--r--tests/dollar-star7.sub30
-rw-r--r--tests/dollar.right116
-rw-r--r--tests/errors.right18
-rw-r--r--tests/errors.tests9
-rw-r--r--tests/errors1.sub27
-rw-r--r--tests/errors2.sub3
-rw-r--r--tests/errors3.sub7
-rw-r--r--tests/exec.right13
-rw-r--r--tests/execscript1
-rw-r--r--tests/exp.right55
-rw-r--r--tests/exp.tests46
-rw-r--r--tests/exp5.sub22
-rw-r--r--tests/exp6.sub30
-rw-r--r--tests/extglob.right4
-rw-r--r--tests/extglob.tests2
-rw-r--r--tests/extglob1a.sub16
-rw-r--r--tests/globstar.right430
-rw-r--r--tests/globstar.tests1
-rw-r--r--tests/globstar2.sub80
-rw-r--r--tests/heredoc.right29
-rw-r--r--tests/heredoc.tests5
-rw-r--r--tests/heredoc2.sub9
-rw-r--r--tests/heredoc3.sub74
-rw-r--r--tests/histexp.tests2
-rw-r--r--tests/history.right4
-rw-r--r--tests/history.tests1
-rw-r--r--tests/history1.sub2
-rw-r--r--tests/intl.right32
-rw-r--r--tests/intl.tests5
-rw-r--r--tests/iquote.right31
-rw-r--r--tests/iquote.tests2
-rw-r--r--tests/iquote1.sub43
-rw-r--r--tests/jobs.right33
-rw-r--r--tests/jobs.tests3
-rw-r--r--tests/jobs5.sub12
-rw-r--r--tests/nameref.right129
-rw-r--r--tests/nameref.tests118
-rw-r--r--tests/nameref1.sub13
-rw-r--r--tests/nameref2.sub7
-rw-r--r--tests/nameref3.sub37
-rw-r--r--tests/nameref4.sub212
-rw-r--r--tests/nameref5.sub50
-rw-r--r--tests/nameref6.sub44
-rw-r--r--tests/nameref7.sub18
-rw-r--r--tests/nameref8.sub57
-rw-r--r--tests/new-exp.right13
-rw-r--r--tests/new-exp.tests4
-rw-r--r--tests/new-exp2.sub6
-rw-r--r--tests/new-exp9.sub31
-rw-r--r--tests/nquote.right18
-rw-r--r--tests/nquote.tests1
-rw-r--r--tests/nquote2.sub29
-rw-r--r--tests/posix2.tests2
-rw-r--r--tests/printf.rightbin3079 -> 3528 bytes
-rw-r--r--tests/printf.tests3
-rw-r--r--tests/printf2.sub1
-rw-r--r--tests/printf3.sub11
-rw-r--r--tests/printf4.sub69
-rw-r--r--tests/quote.right14
-rw-r--r--tests/quote.tests1
-rw-r--r--tests/quote1.sub49
-rw-r--r--tests/read.right1
-rw-r--r--tests/read3.sub5
-rw-r--r--tests/redir.right3
-rw-r--r--tests/redir.tests2
-rw-r--r--tests/redir10.sub25
-rw-r--r--tests/rhs-exp.right31
-rw-r--r--tests/rhs-exp.tests2
-rw-r--r--tests/rhs-exp1.sub103
-rw-r--r--tests/run-heredoc4
-rw-r--r--tests/run-nameref4
-rw-r--r--tests/run-printf8
-rw-r--r--tests/set-e.right5
-rw-r--r--tests/set-e.tests1
-rw-r--r--tests/set-e3.sub10
-rw-r--r--tests/set-e3a.sub7
-rw-r--r--tests/shopt.right8
-rw-r--r--tests/source7.sub40
-rw-r--r--tests/tilde.right1
-rw-r--r--tests/tilde.tests2
-rw-r--r--tests/trap.right18
-rw-r--r--tests/trap.tests5
-rw-r--r--tests/trap4.sub42
-rw-r--r--tests/trap5.sub18
-rw-r--r--tests/type.right37
-rw-r--r--tests/type.tests2
-rw-r--r--tests/type4.sub43
-rw-r--r--tests/unicode1.sub583
-rw-r--r--tests/unicode2.sub22
-rw-r--r--tests/unicode3.sub7
-rw-r--r--tests/varenv.right15
-rw-r--r--tests/varenv.sh13
-rw-r--r--tests/varenv3.sub32
-rw-r--r--tests/varenv4.sub44
-rw-r--r--tests/varenv5.sub16
-rw-r--r--tests/varenv6.sub28
-rw-r--r--tests/vredir.right12
-rw-r--r--trap.c246
-rw-r--r--trap.h12
-rw-r--r--unwind_prot.c2
-rw-r--r--variables.c676
-rw-r--r--variables.h32
-rw-r--r--version.c8
-rw-r--r--y.tab.c693
-rw-r--r--y.tab.h2
497 files changed, 126816 insertions, 85019 deletions
diff --git a/AUTHORS b/AUTHORS
index bd6d89bf..9ad0ba28 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -390,6 +390,7 @@ tests/strip.tests Chet Ramey
tests/strip.right Chet Ramey
tests/tilde-tests Chet Ramey
tests/tilde.right Chet Ramey
+tests/unicode1.sub Chet Ramey, John Kearney
tests/varenv.right Chet Ramey
tests/varenv.sh Chet Ramey
tests/misc/chld-trap.sh Chet Ramey
@@ -460,3 +461,6 @@ lib/sh/zwrite.c Chet Ramey
tests/posix-ifs.sh Glenn Fowler
support/checkbashisms Julian Gilbey, Debian Linux team
+
+lib/readline/colors.c Richard Stallman, David MacKenzie
+lib/readline/parse-colors.c Richard Stallman, David MacKenzie
diff --git a/CHANGES b/CHANGES
index 84e1dbda..5985e42c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,850 @@
+This document details the changes between this version, bash-4.3-release, and
+the previous version, bash-4.3-rc2.
+
+1. Changes to Bash
+
+a. Only Posix-mode shells should exit on an assignment failure in the
+ temporary environment preceding a special builtin. This is how it's been
+ documented.
+
+b. Fixed a bug that caused a failed special builtin to not exit a posix-mode
+ shell if the failing builtin was on the LHS of a && or ||.
+
+c. Changed the handling of unquoted backslashes in regular expressions to be
+ closer to bash-4.2.
+
+d. globstar (**) no longer traverses symbolic links that resolve to
+ directories. This eliminates some duplicate entries.
+
+e. Fixed a bug that caused a SIGCHLD trap handler to not be able to change the
+ SIGCHLD disposition.
+
+f. Fixed a bug that caused a crash when -x was enabled and a command
+ contained a printable multibyte (wide) character.
+
+g. Fixed a bug that caused an interactive shell without line editing enabled
+ to read invalid data after receiving a SIGINT.
+
+h. Fixed a bug that caused command word completion to fail if the directory in
+ $PATH where the completion would be found contained single or double quotes.
+
+i. Fixed a bug that caused a shell with -v enabled to print commands in $()
+ multiple times.
+
+2. Changes to Readline
+
+a. Fixed a bug that caused `undo' to reference freed memory or null pointers.
+
+3. New Features in Bash
+
+a. The [[ -v ]] option now understands array references (foo[1]) and returns
+ success if the referenced element has a value.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.3-rc2, and the
+previous version, bash-4.3-rc1.
+
+1. Changes to Bash
+
+a. Fixed a bug that left variables set by printf -v marked as invisible.
+
+b. Fixed an off-by-one error in a job control warning message.
+
+c. Fixed a bug that caused the shell to crash after declaring a nameref variable
+ without a value.
+
+d. Fixed a bug that caused asynchronous commands to not set $? correctly.
+
+e. Fixed a bug that caused out-of-order execution when executing aliases with
+ embedded newlines containing `.' commands.
+
+f. Fixed a bug that caused error messages generated by expansion errors in
+ `for' commands to have the wrong line number.
+
+g. Fixed a bug that caused the `wait' builtin to not be interruptible in an
+ interactive shell with job control enabled.
+
+h. Fixed a bug that caused SIGINT and SIGQUIT to not be trappable in
+ asynchronous subshell commands.
+
+i. Bash now requires that the value assigned to a nameref variable be a valid
+ shell identifier (variable name or array reference).
+
+j. Converting an existing variable to a nameref variable now turns off the
+ -i/-l/-u/-c attributes.
+
+k. Displaying a nameref variable with `declare -p' now displays the nameref
+ variable and its value rather than following the nameref chain.
+
+l. Fixed a problem with interrupt handling that caused a second and subsequent
+ SIGINT to be ignored by interactive shells.
+
+m. Fixed a bug that caused certain positional parameter and array expansions
+ to mishandle (discard) null positional parameters and array elements.
+
+n. The shell no longer blocks receipt of signals while running trap handlers
+ for those signals, and allows most trap handlers to be run recursively
+ (running trap handlers while a trap handler is executing).
+
+o. The shell now handles backslashes in regular expression arguments to the
+ [[ command's =~ operator slightly differently, resulting in more
+ consistent behavior.
+
+2. Changes to Readline
+
+a. Fixed a bug that could cause readline to crash and seg fault attempting to
+ expand an empty history entry.
+
+b. Fixed a bug that caused a bad entry in the $LS_COLORS variable to abort all
+ color processing but leave color enabled.
+
+c. Fixed a bug that caused display problems with multi-line prompts containing
+ invisible characters on multiple lines.
+
+d. Fixed a bug that caused effects made by undoing changes to a history line to
+ be discarded.
+
+3. New Features in Bash
+
+4. New Features in Readline
+
+a. When creating shared libraries on Mac OS X, the pathname written into the
+ library (install_name) no longer includes the minor version number.
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.3-rc1, and the
+previous version, bash-4.3-beta2.
+
+1. Changes to Bash
+
+a. Fixed a bug in bash completion that caused a tilde to be expanded even if
+ the `direxpand' option was not enabled.
+
+b. Fixed a potential bug that could cause corrupted input in interactive shells
+ running without line editing and with `ignoreeof' enabled.
+
+c. Fixed a bug that could cause failures when opening pipes back to shells
+ created to run process substitutions.
+
+d. Fixed a bug that caused an assignment to TEXTDOMAIN to require TEXTDOMAINDIR
+ to be set in order to actually change the current text domain.
+
+e. Changed the way redirections are printed to avoid confusion when the target
+ of an output redirection is a process substitution beginning with `>'.
+
+2. Changes to Readline
+
+a. Shared library building is now supported on Mac OS X 10.9 (Darwin 13).
+
+3. New Features in Bash
+
+a. `cd' has a new `-@' option to browse a file's extended attributes on
+ systems that support O_XATTR.
+
+4. New Features in Readline
+
+a. There are additional default key bindings for MinGW32
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.3-beta2, and the
+previous version, bash-4.3-beta.
+
+1. Changes to Bash
+
+a. Fixed a bug that caused assignment to an unset variable using a negative
+ subscript to result in a segmentation fault.
+
+b. Fixed a bug that caused assignment to a string variable using a negative
+ subscript to use the incorrect index.
+
+c. Fixed a bug that caused some strings to be interpreted as invalid
+ extended globbing expressions when used with the help builtin.
+
+d. Fixed a bug that caused an attempt to trap a signal whose disposition
+ cannot be changed to reference uninitialized memory.
+
+e. Command completion now skips assignment statements preceding a command
+ name and completes the command.
+
+f. Fixed a bug that caused `compgen -f' in a non-interactive shell to dump
+ core under certain circumstances.
+
+g. Fixed a bug that caused the `read -N' to misbehave when the input stream
+ contains 0xff.
+
+2. Changes to Readline
+
+a. Changed message when an incremental search fails to include "failed" in
+ the prompt and display the entire search string instead of just the last
+ matching portion.
+
+b. Fixed a bug that caused an arrow key typed to an incremental search prompt
+ to process the key sequence incorrectly.
+
+c. Additional key bindings for arrow keys on MinGW.
+
+3. New Features in Bash
+
+a. The help builtin now attempts substring matching (as it did through
+ bash-4.2) if exact string matching fails.
+
+b. The fc builtin now interprets -0 as the current command line.
+
+c. Completing directory names containing shell variables now adds a trailing
+ slash if the expanded result is a directory.
+
+4. New Features in Readline
+
+a. rl_change_environment: new application-settable variable that controls
+ whether or not Readline modifies the environment (currently readline
+ modifies only LINES and COLUMNS).
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.3-beta, and the
+previous version, bash-4.3-alpha.
+
+1. Changes to Bash
+
+a. Fixed a bug in the prompt directory name "trimming" code that caused
+ memory corruption and garbled the results.
+
+b. Fixed a bug that caused single quotes that resulted from $'...' quoting
+ in the replacement portion of a double-quoted ${word/pat/rep} expansion
+ to be treated as quote characters.
+
+c. Fixed a bug that caused assignment statements preceding a command word to
+ result in assignment statements following a declaration command to not be
+ expanded like assignment statements.
+
+d. Fixed a bug with variable search order in the presence of local variables
+ with the same name as variables in the temporary environment supplied to
+ a shell function.
+
+e. Fixed a bug that caused constructs like 1<(2) to be interpreted as process
+ substitutions even in an arithmetic context.
+
+f. Fixed several cases where `invisible' variables (variables with attributes
+ but no values, which are technically unset) were treated incorrectly.
+
+g. Fixed a bug that caused group commands in pipelines that were not the
+ last element to not run the EXIT trap.
+
+h. Fixed a bug that caused `unset -n' to not unset a nameref variable in
+ certain cases.
+
+i. Fixed the nameref circular reference checking to be less strict and only
+ disallow a nameref variable with the same value as its name at the global
+ scope.
+
+j. Fixed a bug that caused trap handlers to be executed recursively,
+ corrupting internal data structures.
+
+k. Fixed a bug that could result in bash not compiling if certain options were
+ not enabled.
+
+l. Fixed a bug that caused the arithmetic expansion code to attempt variable
+ assignments when operator precedence prohibited them.
+
+m. Word expansions like ${foo##bar} now understand indirect variable references.
+
+n. Fixed a bug that caused `declare -fp name' to not display a function
+ definition.
+
+o. Fixed a bug that caused asynchronous child processes to modify the stdin
+ file pointer when bash was using it to read a script, which modified the
+ parent's value as well.
+
+2. Changes to Readline
+
+a. Fixed a bug in vi mode that caused the arrow keys to set the saved last
+ vi-mode command to the wrong value.
+
+b. Fixed a bug that caused double-quoted strings to be scanned incorrectly
+ when being used as the value of a readline variable assignment.
+
+c. Fixed a bug with vi mode that prevented `.' from repeating a command
+ entered on a previous line (command).
+
+d. Fixed a bug that could cause completion to core dump if it was interrupted
+ by a signal.
+
+e. Readline now sends the meta-key enable string to the terminal if the
+ terminal has been successfully initialized.
+
+f. Readline now calls the signal hook after resizing the terminal when it
+ receives a SIGWINCH.
+
+g. Fixed a bug that could cause the history list code to perform an out-of-
+ bounds array reference if the history list is empty.
+
+3. New Features in Bash
+
+a. Shells started to run process substitutions now run any trap set on EXIT.
+
+b. There is now a configure-time option to enable the globasciiranges option
+ by default.
+
+c. The read builtin now checks its first variable argument for validity before
+ trying to read any input.
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-4.3-alpha,
+and the previous version, bash-4.2-release.
+
+1. Changes to Bash
+
+a. Fixed several bugs concerning incomplete bracket expressions in filename
+ generation (globbing) patterns.
+
+b. Fixed a bug with single quotes and WORD in ${param op WORD} when running
+ in Posix mode.
+
+c. Fixed a bug that caused the pattern removal and pattern substitution word
+ expansions and case statement word expansion to not match the empty string.
+
+d. Fixed a bug that caused the tzset() function to not work after changing
+ the TZ enviroment variable.
+
+e. Fixed a bug that caused the RHS of an assignment statement to undergo
+ word splitting when it contained an unquoted $@.
+
+f. Fixed bugs that caused the shell to not react to a SIGINT sent while
+ waiting for a child process to exit.
+
+g. Bash doesn't try to run things in a signal handler context when it gets a
+ signal (SIGINT/SIGHUP/etc) while reading input using readline but still
+ be responsive to terminating signals.
+
+h. Fixed a bug that caused bash to go into an infinite loop if a filename
+ to be matched contained an invalid multibyte character.
+
+i. Fixed a bug that caused PS4 to end up being truncated if it is longer
+ than 128 bytes.
+
+j. Fixed a bug that caused brace expansion to not skip over double-quoted
+ command substitution.
+
+k. System-specific updates for: DJGPP, HP/UX, Mac OS X
+
+l. Fixed a bug in displaying commands that caused redirections to be associated
+ with the wrong part of the command.
+
+m. Fixed the coproc cleanup to unset the appropriate shell variables when a
+ coproc terminates.
+
+n. Fixed a bug that caused `fc' to dump core due to incorrect calculation of
+ the last history entry.
+
+o. Added workarounds for FreeBSD's implementation of faccessat/eaccess and
+ `test -x'.
+
+p. Fixed a bug that caused the shell to not match patterns containing
+ control-A.
+
+q. Fixed a bug that could result in doubled error messages when the `printf'
+ builtin got a write error.
+
+r. Fixed a bug that caused the shell to not correctly expand words containing
+ multiple consecutive quoted empty strings (""""""aa).
+
+s. Fixed a bug that caused the shell to not correctly parse multi-line
+ process substitutions containing comments and quoted strings.
+
+t. Fixed a problem with the bash malloc's internal idea of the top of the
+ memory heap that resulted in incorrect decisions to try to reduce the
+ break and give memory back to the kernel.
+
+u. There are changes to the expansions peformed on compound array assignments,
+ in an effort to make foo=( [ind1]=bar [ind2]=baz ) identical to
+ foo[ind1]=bar foo[ind2]=baz.
+
+v. Bash now reports an error if `read -a name' is used when `name' is an
+ existing associative array.
+
+w. Fixed a bug that allowed an attempted assignment to a readonly variable
+ in an arithmetic expression to not return failure.
+
+x. Fixed several bugs that caused completion functions to be invoked even when
+ the cursor was before the first word in the command.
+
+y. Fixed a bug that caused parsing a command substitution to overwrite the
+ parsing state associated with the complete input line.
+
+z. Fixed several bugs with the built-in snprintf replacement and field widths
+ and floating point.
+
+aa. Fixed a bug that caused incorrect offset calculations and input buffer
+ corruption when reading files longer than 2^31 bytes.
+
+bb. Fixed several bugs where bash performed arithmetic evaluation in contexts
+ where evaluation is suppressed.
+
+cc. Fixed a bug that caused bash to close FIFOs used for process substitution
+ too early when a shell function was executing, but protect against using
+ all file descriptors when the shell functions are invoked inside loops.
+
+dd. Added checks for printable (and non-printable) multibyte characters for
+ use in error messages.
+
+ee. Fixed a bug that caused ^O (operate-and-get-next) to not work correctly
+ at the end of the history list.
+
+ff. Fixed a bug that caused command-oriented history to incorrectly combine
+ here documents into one line.
+
+gg. Fixed a bug that caused importing SHELLOPTS from the environment into a
+ Posix-mode shell to print an error message and refuse to parse it.
+
+hh. Fixed a bug that caused the shell to delete an extra history entry when
+ using `history -s'.
+
+ii. Fixed a bug that caused floating-point exceptions and overflow errors
+ for the / and % arithmetic operators when using INTMAX_MIN and -1.
+
+jj. Fixed a bug that caused parsing errors when reading an arithmetic for
+ loop inside a command substitution.
+
+kk. Fixed a bug that caused a readonly function to be unset when unset was
+ called without the -f or -v option.
+
+ll. Fixed several bugs in the code that quotes characters special to regular
+ expressions when used in a quoted string on the RHS of the =~ operator
+ to the [[ command.
+
+mm. Fixed a bug that caused redirections to fail because the file descriptor
+ limit was set to a value less than 10.
+
+nn. Fixed a bug that caused the `read' builtin to execute code in a signal
+ handler context if read timed out.
+
+oo. Fixed a bug that caused extended globbing patterns to not match files
+ beginning with `.' correctly when a `.' was explicitly supplied in the
+ pattern.
+
+pp. Fixed a bug that caused key sequences longer than two characters to not
+ work when used with `bind -x'.
+
+qq. Fixed a bug that resulted in redefined functions having the wrong source
+ file names in BASH_SOURCE.
+
+rr. Fixed a bug that caused the read builtin to assign null strings to variables
+ when using `read -N', which caused core dumps when referenced
+
+ss. Fixed a bug that caused `bash -m script' to not enable job control while
+ running the script.
+
+tt. Fixed a bug that caused `printf -v var' to dump core when used with the
+ %b format code.
+
+uu. Fixed a bug that caused the shell to exit with the wrong status if -e was
+ active and the shell exited on a substitution error.
+
+vv. Fixed a bug that caused the shell to seg fault if an array variable with
+ the same name as an existing associative array was implicitly created by
+ an assignment (declare a[n]=b).
+
+ww. Fixed a bug that caused a redirection to misbehave if the number specified
+ for a file descriptor overflows an intmax_t.
+
+xx. Fixed several bugs with the handling of valid and invalid unicode character
+ values when used with the \u and \U escape sequences to printf and $'...'.
+
+yy. Fixed a bug that caused tildes to not be escaped in expanded filenames,
+ making them subject to later expansion.
+
+zz. When using the pattern substitution word expansion, bash now runs the
+ replacement string through quote removal, since it allows quotes in that
+ string to act as escape characters. This is not backwards compatible, so
+ it can be disabled by setting the bash compatibility mode to 4.2.
+
+aaa. Fixed the rest of the cases where the shell runs non-allowed code in a
+ signal handler context.
+
+bbb. Fixed a bug that caused spurious DEL characters (\177) to appear in
+ double-quoted expansion where the RHS is evaluated to the empty string.
+
+ccc. Fixed a bug that caused the use of the shell's internal random number
+ generator for temporary file names to perturb the random number
+ sequence.
+
+ddd. Fixed several bugs that caused `declare -g' to not set the right global
+ variables or to misbehave when declaring global indexed arrays.
+
+eee. Fixed a logic bug that caused extended globbing in a multibyte locale to
+ cause failures when using the pattern substititution word expansions.
+
+fff. Fixed a bug that caused the `lastpipe' option to corrupt the file
+ descriptor used to read the script.
+
+ggg. Fixed a bug that causes the shell to delete DEL characters in the
+ expanded value of variables used in the same quoted string as variables
+ that expand to nothing.
+
+hhh. Fixed a bug that caused the shell to assign the wrong value from an
+ assignment like (( x=7 )) when `x' was an existing array variable.
+
+iii. Fixed a bug that caused the shell to misbehave when generating sequences
+ and the boundary values overflow an intmax_t.
+
+jjj. Fixed a bug caused expansion errors if an expansion of "$@" appeared
+ next to another expansion (e.g.. "${@}${x}").
+
+kkk. Fixed a potential buffer overflow bug when performing /dev/fd expansion.
+
+lll. Fixed a bug that resulted in an extra semicolon being added to compound
+ assignments when they were added to the history list.
+
+mmm. Fixed a bug that caused mapfile to read one extra line from the input.
+
+nnn. Fixed a bug that caused the mail checking code to use uninitialized
+ values.
+
+ooo. Fixed a bug that prevented history timestamps from being saved if the
+ history comment character is unset.
+
+ppp. Fixed a bug that caused the case-modifying expansions to not work with
+ multibyte characters.
+
+qqq. Fixed a bug that caused the edit-and-execute bindable readline command
+ to see the wrong data if invoked in the middle of a multi-line quoted
+ string.
+
+rrr. Fixed a bug that resulted in the shell returning the wrong exit status
+ for a background command on systems that recycle PIDs very quickly.
+
+sss. Fixed a bug that caused asynchronous group commands to not run any EXIT
+ trap defined in the body of the command.
+
+ttt. Fixed a bug that caused `eval "... ; return"' to not clean up properly.
+
+uuu. Fixed a bug that caused the shell to dump core if `read' reads an escaped
+ IFS whitespace character.
+
+vvv. Fixed a bug that caused BASH_COMMAND to be set to an incorrect value when
+ executing a (...) subshell.
+
+www. Fixed a couple of pointer aliasing bugs with the token string in arithmetic
+ evaluation.
+
+xxx. Fixed a bug with parsing multi-line command substitutions when reading
+ the `do' keyword followed by whitespace.
+
+yyy. Fixed a bug that caused the shell to seg fault if the time given to the
+ printf %(...)T format overflowed the value accepted by localtime(3).
+
+zzz. Fixed a problem with displaying help topics in two columns when the
+ translated text contained multibyte characters.
+
+aaaa. Fixed a bug with the extended globbing pattern matcher where a `*' was
+ followed by a negated extended glob pattern.
+
+bbbb. Fixed a race condition with short-lived coproc creation and reaping that
+ caused the child process to be reaped before the various coproc shell
+ variables were initialized.
+
+cccc. Fixed a bug where turning off `errexit' in command substitution subshells
+ was not reflected in $SHELLOPTS.
+
+dddd. Partially fixed an inconsistency in how the shell treated shell
+ functions run from an EXIT trap.
+
+eeee. Fixed a bug in how the shell invalidated FIFOs used for process
+ substitution when executing a pipeline (once rather than in every child).
+
+ffff. Fixed a bug that occurred when expanding a special variable ($@, $*)
+ within double quotes and the expansion resulted in an empty string.
+
+gggg. Fixed bugs with executing a SIGCHLD trap handler to make sure that it's
+ executed once per exited child.
+
+hhhh. Fixed a bug that caused `declare' and `test' to find variables that
+ had been given attributes but not assigned values. Such variables are
+ not set.
+
+iiii. Fixed a bug that caused commands in process substitutions to not look in
+ the local temporary environment when performing word expansions.
+
+jjjj. Fixed several problems with globstar expansions (**/**) returning null
+ filenames and multiple instances of the same pathname.
+
+kkkk. Fixed an oversight that did not allow the exit status of `coproc' to
+ be inverted using `!'.
+
+llll. Fixed a bug that caused the -e option to be re-enabled using `set -e'
+ even when executing in a context where -e is ignored.
+
+mmmm. Fixed a (mostly theoretical) bug with input lines longer than SIZE_MAX.
+
+nnnn. Fixed a bug that could result in double evaluation of command
+ substitutions when they appear in failed redirections.
+
+oooo. Fixed a bug that could cause seg faults during `mapfile' callbacks if
+ the callback unsets the array variable mapfile is using.
+
+pppp. Fixed several problems with variable assignments using ${var:=value}
+ when the variable assignment is supposed to have side effects.
+
+qqqq. Fixed a bug that caused a failure of an assignment statement preceding a
+ builtin caused the next invocation of a special builtin to exit the shell.
+
+rrrr. Fixed several problems with IFS when it appears in the temporary environment
+ and is used in redirections.
+
+ssss. Fixed a problem that caused IFS changes using ${IFS:=value} to modify
+ how preceding expansions were split.
+
+tttt. Fixed a problem that caused subshells to not run an EXIT trap they set.
+
+uuuu. Fixed a problem that caused shells started in posix mode to attempt to
+ import shell functions with invalid names from the environment. We now
+ print a warning.
+
+vvvv. Worked around a kernel problem that caused SIGCHLD to interrupt open(2)
+ on a FIFO used for process substitution, even if the SIGCHLD handler was
+ installed with the SA_RESTART flag.
+
+wwww. Fixed a problem that resulted in inconsistent expansion of $* and ${a[*]}.
+
+xxxx. Fixed a problem that caused `read -t' to crash when interrupted by
+ SIGINT.
+
+yyyy. Fixed a problem that caused pattern removal to fail randomly because the
+ pattern matcher read beyond the end of a string.
+
+zzzz. Fixed a bug that caused core dumps when shell functions tried to create
+ local shadow copies of special variables like GROUPS.
+
+aaaaa. Fixed a bug that caused SIGTERM to be occasionally lost by children of
+ interactive shells when it arrived before the child process reset the
+ handler from SIG_DFL.
+
+bbbbb. Fixed a bug that caused redirections like <&n- to leave file descriptor
+ n closed if executed with a builtin command.
+
+ccccc. Fixed a bug that caused incorrect completion quoting when completing a
+ word containing a globbing character with `show-all-if-ambiguous' set.
+
+ddddd. Fixed a bug that caused printf's %q format specifier not to quote a
+ tilde even if it appeared in a location where it would be subject to
+ tilde expansion.
+
+2. Changes to Readline
+
+a. Fixed a bug that did not allow the `dd', `cc', or `yy' vi editing mode
+ commands to work on the entire line.
+
+b. Fixed a bug that caused redisplay problems with prompts longer than 128
+ characters and history searches.
+
+c. Fixed a bug that caused readline to try and run code to modify its idea
+ of the screen size in a signal handler context upon receiving a SIGWINCH.
+
+d. Fixed a bug that caused the `meta' key to be enabled beyond the duration
+ of an individual call top readline().
+
+e. Added a workaround for a wcwidth bug in Mac OS X that caused readline's
+ redisplay to mishandle zero-width combining characters.
+
+f. Fixed a bug that caused readline to `forget' part of a key sequence when
+ a multiple-key sequence caused it to break out of an incremental search.
+
+g. Fixed bugs that caused readline to execute code in a signal handler
+ context if interrupted while reading from the file system during completion.
+
+h. Fixed a bug that caused readline to `forget' part of a key sequence when
+ reading an unbound multi-character key sequence.
+
+i. Fixed a bug that caused Readline's signal handlers to be installed beyond
+ the bounds of a single call to readline().
+
+j. Fixed a bug that caused the `.' command to not redo the most recent `R'
+ command in vi mode.
+
+k. Fixed a bug that caused ignoring case in completion matches to result in
+ readline using the wrong match.
+
+l. Paren matching now works in vi insert mode.
+
+m. Fix menu-completion to make show-all-if-ambiguous and menu-complete-display-prefix
+ work together.
+
+n. Fixed a bug that didn't allow the `cc', `dd', or `yy' commands to be redone
+ in vi editing mode.
+
+o. Fixed a bug that caused the filename comparison code to not compare
+ multibyte characters correctly when using case-sensitive or case-mapping
+ comparisons.
+
+p. Fixed the input reading loop to call the input hook function only when there
+ is no terminal input available.
+
+q. Fixed a bug that caused binding a macro to a multi-character key sequence
+ where the sequence and macro value share a common prefix to not perform
+ the macro replacement.
+
+r. Fixed several redisplay errors with multibyte characters and prompts
+ containing invisible characters when using horizontal scrolling.
+
+s. Fixed a bug that caused redisplay errors when trying to overwrite
+ existing characters using multibyte characters.
+
+3. New Features in Bash
+
+a. The `helptopic' completion action now maps to all the help topics, not just
+ the shell builtins.
+
+b. The `help' builtin no longer does prefix substring matching, so `help read'
+ does not match `readonly'.
+
+c. The shell can be compiled to not display a message about processes that
+ terminate due to SIGTERM.
+
+d. Non-interactive shells now react to the setting of checkwinsize and set
+ LINES and COLUMNS after a foreground job exits.
+
+e. There is a new shell option, `globasciiranges', which, when set to on,
+ forces globbing range comparisons to use character ordering as if they
+ were run in the C locale.
+
+f. There is a new shell option, `direxpand', which makes filename completion
+ expand variables in directory names in the way bash-4.1 did.
+
+g. In Posix mode, the `command' builtin does not change whether or not a
+ builtin it shadows is treated as an assignment builtin.
+
+h. The `return' and `exit' builtins accept negative exit status arguments.
+
+i. The word completion code checks whether or not a filename containing a
+ shell variable expands to a directory name and appends `/' to the word
+ as appropriate. The same code expands shell variables in command names
+ when performing command completion.
+
+j. In Posix mode, it is now an error to attempt to define a shell function
+ with the same name as a Posix special builtin.
+
+k. When compiled for strict Posix conformance, history expansion is disabled
+ by default.
+
+l. The history expansion character (!) does not cause history expansion when
+ followed by the closing quote in a double-quoted string.
+
+m. `complete' and its siblings compgen/compopt now takes a new `-o noquote'
+ option to inhibit quoting of the completions.
+
+n. Setting HISTSIZE to a value less than zero causes the history list to be
+ unlimited (setting it 0 zero disables the history list).
+
+o. Setting HISTFILESIZE to a value less than zero causes the history file size
+ to be unlimited (setting it to 0 causes the history file to be truncated
+ to zero size).
+
+p. The `read' builtin now skips NUL bytes in the input.
+
+q. There is a new `bind -X' option to print all key sequences bound to Unix
+ commands.
+
+r. When in Posix mode, `read' is interruptible by a trapped signal. After
+ running the trap handler, read returns 128+signal and throws away any
+ partially-read input.
+
+s. The command completion code skips whitespace and assignment statements
+ before looking for the command name word to be completed.
+
+t. The build process has a new mechanism for constructing separate help files
+ that better reflects the current set of compilation options.
+
+u. The -nt and -ot options to test now work with files with nanosecond
+ timestamp resolution.
+
+v. The shell saves the command history in any shell for which history is
+ enabled and HISTFILE is set, not just interactive shells.
+
+w. The shell has `nameref' variables and new -n(/+n) options to declare and
+ unset to use them, and a `test -R' option to test for them.
+
+x. The shell now allows assigning, referencing, and unsetting elements of
+ indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
+ count back from the last element of the array.
+
+y. The {x}<word redirection feature now allows words like {array[ind]} and
+ can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
+
+z. There is a new CHILD_MAX special shell variable; its value controls the
+ number of exited child statues the shell remembers.
+
+aa. There is a new configuration option (--enable-direxpand-default) that
+ causes the `direxpand' shell option to be enabled by default.
+
+bb. Bash does not do anything special to ensure that the file descriptor
+ assigned to X in {x}<foo remains open after the block containing it
+ completes.
+
+cc. The `wait' builtin has a new `-n' option to wait for the next child to
+ change status.
+
+dd. The `printf' %(...)T format specifier now uses the current time if no
+ argument is supplied.
+
+ee. There is a new variable, BASH_COMPAT, that controls the current shell
+ compatibility level.
+
+ff. The `popd' builtin now treats additional arguments as errors.
+
+gg. The brace expansion code now treats a failed sequence expansion as a
+ simple string and will continue to expand brace terms in the remainder
+ of the word.
+
+4. New Features in Readline
+
+a. Readline is now more responsive to SIGHUP and other fatal signals when
+ reading input from the terminal or performing word completion but no
+ longer attempts to run any not-allowable functions from a signal handler
+ context.
+
+b. There are new bindable commands to search the history for the string of
+ characters between the beginning of the line and the point
+ (history-substring-search-forward, history-substring-search-backward)
+
+c. Readline allows quoted strings as the values of variables when setting
+ them with `set'. As a side effect, trailing spaces and tabs are ignored
+ when setting a string variable's value.
+
+d. The history library creates a backup of the history file when writing it
+ and restores the backup on a write error.
+
+e. New application-settable variable: rl_filename_stat_hook: a function called
+ with a filename before using it in a call to stat(2). Bash uses it to
+ expand shell variables so things like $HOME/Downloads have a slash
+ appended.
+
+f. New bindable function `print-last-kbd-macro', prints the most-recently-
+ defined keyboard macro in a reusable format.
+
+g. New user-settable variable `colored-stats', enables use of colored text
+ to denote file types when displaying possible completions (colored analog
+ of visible-stats).
+
+h. New user-settable variable `keyseq-timout', acts as an inter-character
+ timeout when reading input or incremental search strings.
+
+i. New application-callable function: rl_clear_history. Clears the history list
+ and frees all readline-associated private data.
+
+j. New user-settable variable, show-mode-in-prompt, adds a characters to the
+ beginning of the prompt indicating the current editing mode.
+
+k. New application-settable variable: rl_input_available_hook; function to be
+ called when readline needs to check whether there is data available on its
+ input source. The default hook checks rl_instream.
+
+l. Readline calls an application-set event hook (rl_signal_event_hook) after
+ it gets a signal while reading input (read returns -1/EINTR but readline
+ does not handle the signal immediately) to allow the application to handle
+ or otherwise note it. Not currently called for SIGHUP or SIGTERM.
+
+m. If the user-settable variable `history-size' is set to a value less than
+ 0, the history list size is unlimited.
+
+------------------------------------------------------------------------------
This document details the changes between this version, bash-4.2-release,
and the previous version, bash-4.2-rc2.
diff --git a/COMPAT b/COMPAT
index 5b63b9c3..c9e768c7 100644
--- a/COMPAT
+++ b/COMPAT
@@ -2,11 +2,13 @@ Compatibility with previous versions
====================================
This document details the incompatibilities between this version of bash,
-bash-4.1, and the previous widely-available versions, bash-2.x (which is
-still the `standard' version for a few Linux distributions) and bash-3.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
-version and versions 2.0 and above.
+bash-4.3, and the previous widely-available versions, bash-3.x (which is
+still the `standard' version for Mac OS X), 4.0/4.1 (which are still
+standard on a few Linux distributions), and bash-4.2, the current
+widely-available version. These were discovered by users of bash-2.x
+through 4.x, so this list is not comprehensive. Some of these
+incompatibilities occur between the current version and versions 2.0 and
+above.
1. Bash uses a new quoting syntax, $"...", to do locale-specific
string translation. Users who have relied on the (undocumented)
@@ -334,30 +336,58 @@ version and versions 2.0 and above.
behavior (ASCII collating and strcmp(3)) by setting one of the
`compatNN' shopt options, where NN is less than 41.
-45. Command substitutions now remove the caller's trap strings when trap is
+45. Bash-4.1 conforms to the current Posix specification for `set -u':
+ expansions of $@ and $* when there are no positional parameters do not
+ cause the shell to exit.
+
+46. Bash-4.1 implements the current Posix specification for `set -e' and
+ exits when any command fails, not just a simple command or pipeline.
+
+47. Command substitutions now remove the caller's trap strings when trap is
run to set a new trap in the subshell. Previous to bash-4.2, the old
trap strings persisted even though the actual signal handlers were reset.
-46. When in Posix mode, a single quote is not treated specially in a
+48. When in Posix mode, a single quote is not treated specially in a
double-quoted ${...} expansion, unless the expansion operator is
# or % or the new `//', `^', or `,' expansions. In particular, it
does not define a new quoting context. This is from Posix interpretation
221.
-47. Posix mode shells no longer exit if a variable assignment error occurs
+49. Posix mode shells no longer exit if a variable assignment error occurs
with an assignment preceding a command that is not a special builtin.
+50. Bash-4.2 attempts to preserve what the user typed when performing word
+ completion, instead of, for instance, expanding shell variable
+ references to their value.
+
+51. When in Posix mode, bash-4.2 exits if the filename supplied as an argument
+ to `.' is not found and the shell is not interactive.
+
+52. When compiled for strict Posix compatibility, bash-4.3 does not enable
+ history expansion by default in interactive shells, since it results in
+ a non-conforming environment.
+
+53. Bash-4.3 runs the replacement string in the pattern substitution word
+ expansion through quote removal. The code already treats quote
+ characters in the replacement string as special; if it treats them as
+ special, then quote removal should remove them.
Shell Compatibility Level
=========================
Bash-4.0 introduced the concept of a `shell compatibility level', specified
-as a set of options to the shopt builtin (compat31, compat32, compat40, and
-compat41 at this writing). There is only one current compatibility level --
-each option is mutually exclusive. This list does not mention behavior
-that is standard for a particular version (e.g., setting compat32 means that
-quoting the rhs of the regexp matching operator quotes special regexp
-characters in the word, which is default behavior in bash-3.2 and above).
+as a set of options to the shopt builtin (compat31, compat32, compat40,
+compat41, and compat42 at this writing). There is only one current
+compatibility level -- each option is mutually exclusive. This list does not
+mention behavior that is standard for a particular version (e.g., setting
+compat32 means that quoting the rhs of the regexp matching operator quotes
+special regexp characters in the word, which is default behavior in bash-3.2
+and above).
+
+Bash-4.3 introduces a new shell variable: BASH_COMPAT. The value assigned
+to this variable (a decimal version number like 4.2, or an integer
+corresponding to the compatNN option, like 42) determines the compatibility
+level.
compat31 set
- the < and > operators to the [[ command do not consider the current
@@ -378,11 +408,15 @@ compat40 set
compat41 set
- interrupting a command list such as "a ; b ; c" causes the execution
- of the entire list to be aborted (in versions before bash-4.0,
+ of the entire list to be aborted (in versions before bash-4.1,
interrupting one command in a list caused the next to be executed)
- when in posix mode, single quotes in the `word' portion of a
double-quoted parameter expansion define a new quoting context and
are treated specially
+
+compat42 set
+ - the replacement string in double-quoted pattern substitution is not
+ run through quote removal, as in previous versions
-------------------------------------------------------------------------------
Copying and distribution of this file, with or without modification,
diff --git a/CWRU/changelog b/CWRU/changelog
index bcc66573..354720a7 100644
--- a/CWRU/changelog
+++ b/CWRU/changelog
@@ -1,10811 +1,5850 @@
- 7/27/2004
+ 2/14/2011
---------
+[bash-4.2 released]
-[bash-3.0 released]
-
- 7/28
+ 2/15
----
-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" <rse@engelschall.com>
-
-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
+lib/glob/gmisc.c
+ - fix wmatchlen and umatchlen to avoid going past the end of the
+ string on an incomplete bracket expression that ends with a
+ NUL. Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
- 7/30
+ 2/16
----
-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
+subst.h
+ - new string extract flag value: SX_WORD. Used when calling
+ extract_dollar_brace_string to skip over the word in
+ ${param op word} from parameter_brace_expand
- 7/31
- ----
subst.c
- - new function, mbstrlen(s), returns length of a multibyte character
- string
+ - change parameter_brace_expand to add SX_WORD to flags passed to
+ extract_dollar_brace_string
+ - change parameter_brace_expand to use SX_POSIXEXP for all non-posix
+ word expansion operators that treat single quotes as special, not
+ just % and #
+ - change extract_dollar_brace_string to initialize dolbrace_state to
+ DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
+ DOLBRACE_QUOTE. Fixes bug reported by Juergen Daubert <jue@jue.li>
-include/shmbutil.h
- - new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate
+doc/{bash.1,bashref.texi}
+ - document the exact expansions here strings undergo
-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
+ 2/17
+ ----
+lib/readline/vi_mode.c
+ - make sure that `dd', `cc', and `yy' call vidomove_dispatch from
+ rl_domove_read_callback. Fixes bug reported by Clark Wang
+ <dearvoid@gmail.com>
-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
+lib/readline/callback.c
+ - make sure _rl_internal_char_cleanup is called after the
+ vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
+ Companion to above fix
- 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)
+doc/{bash.1,bashref.texi}
+ - make sure that the text describing the rhs of the == and =~
+ operators to [[ states that only the quoted portion of the pattern
+ is matched as a string
-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
+ 2/18
+ ----
+lib/glob/gmisc.c
+ - better fix for umatchlen/wmatchlen: keep track of the number of
+ characters in a bracket expression as the value to increase
+ matchlen by if the bracket expression is not well-formed. Fixes
+ bug reported by Clark Wang <dearvoid@gmail.com>
-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)
+subst.c
+ - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
+ in the word flags. We will not perform word splitting or quote
+ removal on the result, so we do not want to add quoted nulls if
+ we see "" or ''. Fixes bug reported by Mike Frysinger
+ <vapier@gentoo.org>
-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
+ 2/19
+ ----
+variables.c
+ - new function, int chkexport(name), checks whether variable NAME is
+ exported and remakes the export environment if necessary. Returns
+ 1 if NAME is exported and 0 if not
+ - call chkexport(name) to get tzset to look at the right variable in
+ the environment when modifying TZ in sv_tz. Don't call tzset if
+ chkexport doesn't indicate that the variable is exported
-builtins/command.def
- - fixed bug: `command -v' is supposed to be silent if a command is not
- found
+variables.h
+ - new extern declaration for chkexport
-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
+{parse.y,builtins/printf.def}
+ - call sv_tz before calling localtime() when formatting time strings
+ in prompt strings or using printf. Fixes bug reported by
+ Dennis Williamson <dennistwilliamson@gmail.com>
-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
+execute_cmd.c
+ - modify fix of 2/9 to add casts when those variables are passed to
+ functions; some compilers throw errors instead of warnings. Report
+ and fix from Joachim Schmitz <jojo@schmitz-digital.de>
-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
+support/shobj-conf
+ - add a stanza for nsk on the Tandem from Joachim Schmitz
+ <jojo@schmitz-digital.de>
-{locale,variables}.c
- - support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks
- the current locale
+{shell,lib/readline/shell}.c
+ - Tandem systems should use getpwnam (getlogin()); for some reason
+ they don't do well with using getuid(). Fix from Joachim Schmitz
+ <jojo@schmitz-digital.de>
- 8/2
+ 3/1
---
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
+ - make sure that the return value from find_variable is non-null
+ before trying to use it in chkexport. Fixes bug reported by
+ Evangelos Foutras <foutrelis@gmail.com>
-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
+ 3/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
+parse.y
+ - when adding $$ to the current token buffer in read_token_word(),
+ don't xmalloc a buffer for two characters and then strcpy it, just
+ copy the characters directly into the token buffer. Fix from
+ Michael Whitten <mfwitten@gmail.com>
-variables.c
- - BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as
- invisible vars
+execute_cmd.c
+ - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
+ be expanded, so "" doesn't add CTLNUL. Similar to fix of 2/18 to
+ expand_string_for_rhs. Fixes bug reported by Nathanael D. Noblet
+ <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
-pcomplete.c
- - make sure COMP_WORDS is not invisible when bind_comp_words returns
- - ditto for COMPREPLY in gen_shell_function_matches
+parse.y
+ - fix extended_glob case of read_token_word to allocate an extra
+ space in the buffer for the next character read after the extended
+ glob specification if it's a CTLESC or CTLNUL. Report and fix from
+ Michael Witten <mfwitten@gmail.com>
+ - fix shell expansions case of read_token_word to allocate an extra
+ space in the buffer for the next character read after the shell
+ expansion if it's a CTLESC or CTLNUL. Report and fix from
+ Michael Witten <mfwitten@gmail.com>
+ - TENTATIVE: fix read_token_word to reduce the amount of buffer space
+ required to hold the translated and double-quoted value of $"..."
+ strings. Report and fix from Michael Witten <mfwitten@gmail.com>
+ - change code around got_character and got_escaped_character labels to
+ make sure that we call RESIZE_MALLOCED_BUFFER before adding the
+ CTLESC before a CTLESC or CTLNUL, and before adding the character if
+ we're not adding a CTLESC. Report and fix from
+ Michael Witten <mfwitten@gmail.com>
+
+subst.c
+ - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
+ parameter expansion is on rhs of assignment statement. That inhibits
+ word splitting
+ - change param_expand to call string_list_dollar_at with quoted == 1
+ if PF_ASSIGNRHS is set, so it will quote IFS characters in the
+ positional parameter before separating them with the first char of
+ $IFS. This keeps the rhs from being split inappropriately. Fixes
+ bug reported by Andres Perera <andres.p@zoho.com>
- 8/4
+ 3/4
---
-braces.c
- - fix problem where ${ was ignored but did not increment the open
- brace count. Bug reported by Tim Waugh <twaugh@redhat.com>
-
-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
+lib/readline/bind.c
+ - add a missing free of `names' in rl_function_dumper. Bug report
+ and fix from Michael Snyder <msnyder@vmware.com>
- 8/5
+ 3/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)
+lib/readline/rltty.c
+ - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
+ if rl_instream is not set, like rl_prep_terminal
- 8/7
+ 3/6
---
-configure.in
- - kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs
- to be configured --without-gnu-malloc
+lib/readline/display.c
+ - fix rl_message to use a dynamically-allocated buffer instead of a
+ fixed-size buffer of 128 chars for the `local message prompt'. Bug
+ report and fix from Micah Cowan <micah@cowan.name>
-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
+ 3/7
+ ---
+jobs.c
+ - add sentinel to wait_sigint_handler so it only sets wait_sigint_received
+ if waiting_for_child is non-zero; otherwise, it restores the old
+ SIGINT handler and sends itself the SIGINT
+ - set waiting_for_child around the calls to waitchld that use it to
+ synchronously wait for a process
+ - change logic that decides whether or not the child process blocked
+ or handled SIGINT based on whether or not waitpid returns -1/EINTR
+ and the shell receives a SIGINT and the child does not exit. If
+ the child later exits due to SIGINT, cancel the assumoption that it
+ was handled
+ - instead of testing whether or not the child exited due to SIGINT
+ when deciding whether the shell should act on a SIGINT it received
+ while waiting, test whether or not we think the child caught
+ SIGINT. If it did, we let it go (unless the shell has it trapped);
+ if it did not catch it, the shell acts on the SIGINT. Fix from
+ Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
+ from Oleg Nesterov <oleg@redhat.com>
- 8/9
+ 3/8
---
-support/Makefile.in
- - renamed `mostly-clean' target to `mostlyclean'
+shell.c
+ - initialize no_line_editing to 1 if READLINE is not defined -- we
+ can't have line editing without readline
- 8/11
+ 3/12
----
-lib/readline/vi_mode.c
- - make same change for EOL in multibyte character case of
- rl_vi_change_char
+lib/readline/signals.c
+ - add SIGHUP to the set of signals readline handles
- 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)
+lib/readline/doc/rltech.texi
+ - document that SIGHUP is now part of the set of signals readline
+ handles
- 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/readline/input.c
+ - if _rl_caught_signal indicates that read() was interrupted by a
+ SIGHUP or SIGTERM, return READERR or EOF as appropriate
+ - call rl_event_hook, if it's set, if call to read in rl_getc
+ returns -1/EINTR. If rl_event_hook doesn't do anything, this
+ continues the loop as before. This handles the other fatal
+ signals
-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'
+execute_cmd.c
+ - add a couple of QUIT; calls to execute_disk_command and
+ execute_simple_command to improve responsiveness to interrupts
+ and fatal signals
-lib/malloc/malloc.c
- - internal_memalign and memalign now take a `size_t' as their first
- argument, which seems to be the prevailing standard
+input.c
+ - rearrange getc_with_restart so that the return values from read()
+ are handled right
-lib/malloc/{malloc.c,shmalloc.h}
- - change sh_memalign to take a `size_t' as its first argument
+parse.y
+ - don't need to set terminate_immediately in yy_stream_get, since
+ getc_with_restart checks for terminating signals itself
+ - since readline returns READERR on SIGHUP or SIGTERM, don't need
+ to set terminate_immediately. Still doesn't handle other
+ signals well -- will have to check that some more
-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)
+bashline.c
+ - new function, bash_event_hook, for rl_event_hook. Just checks for
+ terminating signals and acts on them using CHECK_TERMSIG.
+ - set rl_event_hook to bash_event_hook
-doc/bashref.texi
- - amend description of bash posix mode to include new echo behavior
+builtins/read.def
+ - take out setting terminate_immediately; add calls to CHECK_TERMSIG
+ after read calls
-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'
+doc/{bash.1,bashref.texi}
+ - move the text describing the effect of negative subscripts used to
+ reference indexed array elements to the paragraphs describing
+ ${parameter[subscript]}, since that's where they are implemented.
+ Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
-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
+arrayfunc.[ch],subst.c
+ - array_expand_index now takes a new first argument: a SHELL_VAR *
+ of the array variable being subscripted. Can be used later to fully
+ implement negative subscripts
- 8/18
+ 3/14
----
-array.c
- - check for an empty array in array_rshift before shifting elements
- and adjusting max_index
- - check for null array in array_subrange
+lib/glob/glob.c
+ - fix mbskipname to not turn the directory entry name into a wide char
+ string if the conversion of the pattern to a wide char string fails
+ - fix mbskipname to call skipname if either the pattern or the filename
+ can't be converted into a wide-char string
-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
+lib/glob/xmbsrtowcs.c
+ - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
+ short-circuit with failure in that case. Fixes bug reported by
+ Roman Rakus <rrakus@redhat.com>
- 8/19
+ 3/15
----
-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
+ - new variable, bash_filename_quote_characters to store the value
+ assigned to rl_filename_quote_characters so it can be restored
+ if changed.
+ - change bashline_reset and attempt_shell_completion to restore
+ rl_filename_quote_characters if not set to default
- 8/26
+ 3/22
----
-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)
+lib/glob/glob.c
+ - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
+ fails to convert the pathname to a wide-character string
- 8/27
+lib/glob/xmbsrtowcs.c
+ - xdupmbstowcs2: change to fix problem with leading '\\' (results in
+ nms == 0, which causes it to short-circuit with failure right
+ away). Fixes bug pointed out by Werner Fink <werner@suse.de>
+ - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
+ next single-byte character and going on
+ - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
+ bytes; try to avoid calls to realloc (even if they don't actually
+ result in more memory being allocated)
+
+ 3/24
----
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
+ - slightly modify BASH_SUBSHELL description based on complaint from
+ Sam Liddicott <sam@liddicott.com>
- 8/30
+ 3/25
----
-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
+trap.c
+ - change free_trap_strings to not call free_trap_string for signals
+ that are being ignored, like reset_or_restore_signal_handlers.
+ Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
-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
+ 3/26
+ ----
+lib/readline/rltypedefs.h
+ - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
+ suggested by Tom Tromey <tromey@redhat.com>
-execute_cmd.c
- - change execute_in_subshell so the subshell command inherits the
- command timing flags from the enclosing COMMAND *
+lib/readline/rlstdc.h
+ - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
+ config.h.in to here because declaration of rl_message in
+ readline.h uses the defines. This makes it hard for another packages
+ to use after the header files are installed, since config.h is not
+ one of the installed files. Suggested by Tom Tromey
+ <tromey@redhat.com>
- 9/11
+ 3/27
----
-[prayers for the victims of 9/11/2001]
-
-lib/sh/strnlen.c
- - new file, implementation of GNU libc extension function strnlen
+print_cmd.c
+ - change indirection_string from a static buffer to a dynamic one
+ managed by indirection_level_string(), so we don't end up truncating
+ PS4. Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
-lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST
- - changes for strnlen
+lib/readline/shell.c
+ - change sh_set_lines_and_columns to use static buffers instead of
+ allocating the buffers to pass to setenv/putenv
-configure.in
- - version changed to 3.1-devel
+lib/readline/terminal.c
+ - change _rl_get_screen_size to not call sh_set_lines_and_columns if
+ ignore_env == 0
+ - _rl_sigwinch_resize_terminal: new function to just retrieve terminal
+ size, ignoring environment
-doc/bash.1, lib/readline/doc/rluser.texi
- - added description of `-o plusdirs' to complete/compgen (thanks,
- Arnold)
+lib/readline/rlprivate.h
+ - new external declaration for _rl_sigwinch_resize_terminal() (currently
+ unused)
-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
+lib/readline/signals.c
+ - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
+ - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
+ leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
+ - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
+ Should fix hang when sending multiple repeated SIGWINCH reported by
+ Henning Bekel <h.bekel@googlemail.com>
- 9/13
+ 3/29
----
-variables.c
- - make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE
- non-unsettable, since the shell uses those values internally
+lib/sh/snprintf.c
+ - include math.h for any defines for isinf/isnan
+ - use code from gnulib documentation to implement isinf/isnan if they
+ are not defined
-expr.c
- - make exponentiation right-associative, as is apparently correct
+configure.in
+ - don't check for isinf or isnan; c99 says they're macros anyway
- 9/16
- ----
-arrayfunc.c
- - make sure convert_var_to_array marks the environment as needing
- recreation if the converted variable was exported
+config.h.in
+ - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
+ by snprintf.c
- 9/17
- ----
+ 4/2
+ ---
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
+ - brace_gobbler: fix to understand double-quoted command substitution,
+ since the shell understands unquoted comsubs. Fixes bug reported
+ by Michael Whitten <mfwitten@gmail.com>
lib/readline/display.c
- - in compute_lcd_of_matches, explicitly cast `text' to `char *' before
- passing it to rl_filename_dequoting_function
+ - include <pc.h> on MDOS
+ - get and set screen size using DJGPP-specific calls on MSDOS
+ - move cursor up clear screen using DJGPP-specific calls
+ - don't call tputs on DJGPP; there is no good terminfo support
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
+ - include <pc.h> on MDOS
+ - get and set screen size using DJGPP-specific calls on MSDOS
+ - use DJGPP-specific initialization on MSDOS, zeroing all the
+ _rl_term_* variables
+ - don't call tputs on DJGPP; there is no good terminfo support
+ DJGPP support from Eli Zaretskii <eliz@gnu.org>
-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
+ 4/6
+ ---
-externs.h
- - add extern declarations for strnlen and strpbkrk from lib/sh
+config-top.h
+ - change DEFAULT_PATH_VALUE to something more useful and modern
-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
+ 4/8
+ ---
+tests/printf2.sub
+ - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
+ Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
- 9/19
+ 4/11
----
-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
+include/chartypes.h
+ - fix a couple of dicey defines (though ones that don't cause any
+ compiler warnings) in IN_CTYPE_DOMAIN
-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
+doc/{bashref.texi,bash.1}
+ - add note referring to duplicating file descriptors in sections
+ describing redirecting stdout and stderr and appending to stdout
+ and stderr. Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
- 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.c
+ - it_init_helptopics: new function to support completing on help topics,
+ not just builtins
+ - it_helptopics: new programmable completion list of help topics
+ - build list of helptopic completions in gen_action_completions on
+ demand
-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.h
+ - new extern declaration for it_helptopics
-general.[ch]
- - new function bash_tilde_find_word, drop-in replacement for
- tilde_find_word
+builtins/complete.def
+ - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
+ since there are more help topics than just builtins. Suggested by
+ Clark Wang <dearvoid@gmail.com>
-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
+ 4/12
+ ----
+print_cmd.c
+ - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
+ before ending the body of the command, so heredocs get attached to
+ the right command instead of to the loop. From gentoo bug 363371
+ http://bugs.gentoo.org/show_bug.cgi?id=363371
execute_cmd.c
- - take out calls to bash_tilde_expand before calling word expansion
- functions
+ - change coproc_pidchk to unset the appropriate shell variables when
+ the (currently single) known coproc pid terminates
+ - cleanup and new functions to fully support multiple coprocesses when
+ and if I decide to go there
- 9/26
+ 4/13
----
-execute_cmd.c
- - make sure to call UNBLOCK_CHILD before returning on a pipe creation
- failure in execute_pipeline
+print_cmd.c
+ - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
+ after call to make_command_string_internal before printing closing
+ `}'
+ - fix make_command_string_internal to add a call to
+ PRINT_DEFERRED_HEREDOCS after recursive call to
+ make_command_string_internal in case cm_subshell before printing
+ closing `)'
- 9/27
+ 4/14
----
-variables.c
- - change get_bash_command to deal with the_printed_command_except_trap
- being NULL
+print_cmd.c
+ - change overlapping strcpy in named_function_string to memmove
-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()
+sig.h
+ - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
+ restores an old signal mask
-parse.y
- - change the parser so that the closing `)' in a compound variable
- assignment delimits a token -- ksh93 does it this way
+trap.c
+ - set_signal: instead of setting the signal handler to SIG_IGN while
+ installing the new trap handler, block the signal and unblock it
+ after the new handler is installed. Fixes bug reported by Roman
+ Rakus <rrakus@redhat.com>
+ 4/15
+ ----
doc/{bash.1,bashref.texi}
- - change description of tilde expansion to note that expansion is
- attempted only after the first =~ in an assignment statement
+ - make it clear that enabling monitor mode means that all jobs run in
+ separate process groups
-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
+ 4/18
----
-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
+builtins/fc.def
+ - update fix of 4/15/2010 to not take saved_command_line_count into
+ account when stepping down the history list to make sure that
+ last_hist indexes something that is valid. Fixes bug reported by
+ <piuma@piumalab.org>
-parse.y
- - set W_COMPASSIGN on words that appear to be compound assignments
+ 4/19
+ ----
+builtins/fc.def
+ - fc_gethnum: make sure the calculation to decide the last history
+ entry is exactly the same as fc_builtin. Fixes bug uncovered by
+ fix of 4/18 to stop seg fault
-subst.c
- - pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal
+ 4/22
+ ----
+lib/readline/terminal.c
+ - change _rl_enable_meta_key to set a flag indicating that it sent the
+ enable-meta sequence
+ - _rl_disable_meta_key: new function to turn off meta mode after we
+ turned it on with _rl_enable_meta_key
-subst.[ch]
- - new function, expand_assignment_string_to_string, calls
- expand_string_assignment and then string_list on the result
+lib/readline/rlprivate.h
+ - extern declaration for _rl_disable_meta_key
-variables.c
- - assign_in_env now calls expand_assignment_string_to_string
+configure.in
+ - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
+ from the environment. Fixes HP/UX build problem reported by
+ "Daniel Richard G." <skunk@iSKUNK.ORG>
- 9/30
+ 4/26
----
-builtins/common.c
- - change get_job_spec so the null job `%' once again means the current
- job
+config-top.h
+ - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
+ to enable via configure option or editing this file
- 10/1
+ 4/29
----
-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
+lib/sh/eaccess.c
+ - freebsd provides faccessat, with the same misfeature as their eaccess
+ and access implementations (X_OK returns true for uid==0 regardless
+ of the actual file permissions), so reorganize code to check the
+ file permissions as with eaccess. Report and fix from Johan Hattne
+ <johan.hattne@utsouthwestern.edu>
- 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
+ 5/2
+ ---
+doc/{bash.1,bashref.texi}
+ - add forward reference to `Pattern Matching' from `Pathname
+ Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
-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
+ 5/5
+ ---
+pcomplib.c
+ - the bash_completion project now distributes over 200 completions
+ for various programs, with no end in sight, so increase the value
+ of COMPLETE_HASH_BUCKETS from 32 to 128
-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
+pathexp.c
+ - quote_string_for_globbing: make sure CTLESC quoting CTLESC is
+ translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
+ We don't want to process the second CTLESC as a quote character.
+ Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
-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
+ 5/6
+ ---
+builtins/printf.def
+ - change PRETURN to not call fflush if ferror(stdout) is true
+ - if a call to one of the stdio functions or printstr leaves
+ ferror(stdout) true, and PRETURN is going to be called, let PRETURN
+ print the error message rather than doubling up the messages. Fixes
+ problem reported by Roman Rakus <rrakus@redhat.com>
+ 5/9
+ ---
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
+ - add note to the effect that lists inside compound command can be
+ terminated by newlines as well as semicolons. Suggested by
+ Roman Byshko <rbyshko@gmail.com>
- 10/3
+ 5/10
----
subst.c
- - use W_COMPASSIGN flag in do_assignment_internal instead of deciding
- lexically which assignments are compound array assignments
+ - remove_quoted_nulls: fix problem that caused it to skip over the
+ character after a CTLNUL, which had the effect of skipping every
+ other of a series of CTLNULs. Fixes bug reported by
+ Marten Wikstrom <marten.wikstrom@keystream.se>
- 10/6
+ 5/11
----
-support/shobj-conf
- - additions for System V.5 from Boyd Gerber <gerberb@zenez.com>
-
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 <pierre.humblet@ieee.org>
-
- 10/7
- ----
-config.h.in
- - add a placeholder definition for WCONTINUED_BROKEN
+ - extract_process_subst: add SX_COMMAND flag to call to
+ extract_delimited_string, since we're expanding the same sort of
+ command as command substitution. Fixes bug reported in Ubuntu
+ bug 779848
- 10/9
+ 5/12
----
-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
+ - set the prefer_shared and prefer_static variables appropriately
+ depending on the value of $opt_static_link
-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)
+aclocal.m4
+ - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
+ libraries it's searching for if the prefer_shared variable is "no".
+ Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
- 10/13
- -----
+ 5/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
+ - _rl_internal_teardown: add call to _rl_disable_meta_key to make the
+ meta key active only for the duration of the call to readline()
+ - _rl_internal_setup: move call to _rl_enable_meta_key here from
+ readline_initialize_everything so the meta key is active only for
+ the duration of the call to readline(). Suggestion from Miroslav
+ Lichvar <mlichvar@redhat.com>
-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 \<newline> 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
+builtins/help.def
+ - help_builtin: change strncmp to strcmp so that `help read' no longer
+ matches `readonly'. Suggested by Clark Wang <dearvoid@gmail.com>
-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
+config.h.in
+ - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
+ for libintl
- 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)
+lib/malloc/malloc.c
+ - internal_free: don't use the cached value of memtop when deciding
+ whether or not to adjust the break and give memory back to the kernel
+ when using the GNU C library, since glibc uses sbrk for its own
+ internal purposes. From Debian bug 614815, reported by Samuel
+ Thibault <samuel.thibault@gnu.org>
-shell.c
- - make sure shell_is_restricted skips over a single leading `-' in
- the shell name (from SUSE, but not sent in)
+aclocal.m4
+ - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
+ to avoid warning about not using AC_LANG_SOURCE
-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)
+ 5/14
+ ----
+bashline.[ch]
+ - two new functions, bashline_set_event_hook and bashline_reset_event_hook,
+ to set rl_event_hook to bash_event_hook and back to NULL, respectively
+ - don't set rl_event_hook unconditionally
-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)
+sig.c
+ - termsig_sighandler: if the shell is currently interactive and
+ readline is active, call bashline_set_event_hook to cause
+ termsig_handler to be called via bash_event_hook when the shell
+ returns from the signal handler
- 11/1
+ 5/15
----
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
+ - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
+ for UTF-8 combining characters. Added workaround dependent on
+ MACOSX. Fixes problem pointed out by Thomas De Contes
+ <d.l.tDecontes@free.fr>
- 11/5
+ 5/16
----
-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'
+lib/readline/rlmbutil.h
+ - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
+ characters on systems where wcwidth is broken (e.g., Mac OS X).
-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
+lib/readline/{complete,display,mbutil}.c
+ - use WCWIDTH instead of wcwidth
- 11/7
+ 5/17
----
-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
+ - update_line: after computing ofd and nfd, see whether the next
+ character in ofd is a zero-width combining character. If it is,
+ back ofd and nfd up one, so the base characters no longer compare
+ as equivalent. Fixes problem reported by Keith Winstein
+ <keithw@mit.edu>
+
+lib/readline/nls.c
+ - _rl_utf8locale: new flag variable, set to non-zero if the current
+ locale is UTF-8
+ - utf8locale(): new function, returns 1 if the passed lspec (or the
+ current locale) indicates that the locale is UTF-8. Called from
+ _rl_init_eightbit
-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
+lib/readline/rlprivate.h
+ - extern declaration for _rl_utf8locale
- 11/27
- -----
-builtins/evalfile.c
- - make same changes as 11/26, this time to _evalfile
+locale.c
+ - locale_utf8locale: new flag variable, set to non-zero if the current
+ locale is UTF-8 (currently unused)
+ - locale_isutf8(): new function, returns 1 if the passed lspec (or the
+ current locale) indicates that the locale is UTF-8. Should be called
+ whenever the locale or LC_CTYPE value is modified
-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
+aclocal.m4
+ - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
+ zero-width characters like unicode combining characters as having
+ display length 1; define WCWIDTH_BROKEN in this case
-trap.c
- - change reset_or_restore_signal_handlers so that the RETURN trap is
- not inherited by command substitution when DEBUGGER is not defined
+config.h.in
+ - WCWIDTH_BROKEN: new define
- 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
+lib/readline/rlmbutil.h
+ - change WCWIDTH macro to use _rl_utf8locale and the full range of
+ Unicode combining characters (U+0300-U+036F)
- 12/1
+ 5/19
----
-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
+lib/readline/rlprivate.h
+ - _rl_search_context: new member, prevc, will hold character read
+ prior to lastc
-execute_cmd.c
- - a function does not inherit the RETURN trap if a DEBUG trap is
- currently running
+lib/readline/isearch.c
+ - _rl_isearch_dispatch: if the character causes us to index into
+ another keymap, save that character in cxt->prevc
+ - _rl_isearch_dispatch: if we index into another keymap, but don't
+ find a function that's special to i-search, and the character that
+ caused us to index into that keymap would have terminated the
+ search, push back cxt->prevc and cxt->lastc to make it appear as
+ if `prevc' terminated the search, and execute lastc as a command.
+ We have to push prevc back so we index into the same keymap before
+ we read lastc. Fixes bug report from Davor Cubranic
+ <cubranic@stat.ubc.ca>
- 12/2
+ 5/20
----
-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
+expr.c
+ - expr_bind_variable: pay attention to the return value from
+ bind_variable and check whether or not we should error out due to
+ a readonly or noassign variable. Fixes bug reported by Eric
+ Blake <eblake@redhat.com>
- 12/9
+ 5/26
----
-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/search.c
+ - include histlib.h for ANCHORED_SEARCH defines
+ - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
+ the duration of a history search
+ - rl_history_search_reinit: takes a new flags variable, defines whether
+ or not the search is anchored; assigned to rl_history_search_flags
+ - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
+ beginning of search string; otherwise search string is unmodified
+ - rl_history_search_internal: set rl_point appropriately based on
+ whether or not rl_history_search_flags includes ANCHORED_SEARCH
+ - rl_history_substr_search_forward: new function, for non-anchored
+ substring search forward through history for string of characters
+ preceding rl_point
+ - rl_history_substr_search_backward: new function, for non-anchored
+ substring search backward through history for string of characters
+ preceding rl_point. Original code from Niraj Kulkarni
+ <kulkarniniraj14@gmail.com>
-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
+lib/readline/readline.h
+ - extern declarations for rl_history_substr_search_{for,back}ward
-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/funmap.c
+ - history-substring-search-forward: new bindable command, invokes
+ rl_history_substr_search_forward
+ - history-substring-search-backward: new bindable command, invokes
+ rl_history_substr_search_backward
-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)
+lib/readline/doc/{rluser.texi,readline.3}
+ - document history-substring-search-forward and
+ history-substring-search-backward
- 1/13
+ 5/27
----
-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
+{nojobs,jobs}.c
+ - add support for DONT_REPORT_SIGTERM so that the shell doesn't print
+ a message when a job exits due to SIGTERM since that's the default
+ signal sent by the kill builtin. Suggested by Marc Herbert
+ <mark.herbert@gmail.com>
-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
+config-top.h
+ - DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out
+ by default
- 1/15
+ 5/28
----
-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
+lib/readline/bind.c
+ - _rl_skip_to_delim: skip to a closing double quote or other delimiter,
+ allowing backslash to quote any character, including the delimiter
+ - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
+ code
+ - rl_parse_and_bind: allow quoted strings as the values of string
+ variables. Variable values without double quotes have trailing
+ whitespace removed (which still allows embedded whitespace, for
+ better or worse). Fixes problem with string variables not matching
+ in `set' command if values happen to have trailing spaces or tabs
+ (debian bash bug #602762), but introduces slight incompatibility.
- 1/20
+ 5/29
----
-lib/readline/history.c
- - fix replace_history_entry, remove_history to return NULL if
- passed index is < 0
+doc/{bash.1,bashref.texi}
+ - clarify unset description to specify that without options, a
+ variable, then a shell function if there is no variable by that
+ name, is unset. Fixes discrepancy reported by Mu Qiao
+ <qiaomuf@gentoo.org>
- 1/22
+ 6/4
----
-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
+doc/{bash.1,bashref.texi}
+ - clarify description of LINES and COLUMNS (and checkwinsize shopt
+ option) to make it clear that only interactive shells set a
+ handler for SIGWINCH and update LINES and COLUMNS. Original
+ report submitted by Jonathan Nieder <jrnieder@gmail.com>
- 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
+ - expand_compound_array_assignment: defer expansion of words between
+ parens when performing compound assignmnt to an associative array
+ variable
+ - assign_compound_array_list: perform the same expansions when doing
+ a compound array assignment to an associative array variable as
+ when doing a straight array index assignment. The idea is that
+ foo=( [ind1]=bar [ind2]=quux)
+ is the same as
+ foo[ind1]=bar ; foo[ind2]=quux
+
+ This fixes problems with double-expansion and quote removal being
+ performed on the array indices
- 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
+ 6/13
----
-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
- <pierre.humblet@ieee.org> 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/{bash.1,bashref.texi}
+ - Add a little text to make it clear that the locale determines how
+ range expressions in glob patterns are handled.
-doc/{bashref.texi,bash.1}
- - a couple of clarifying changes to the description of $_ based on
- comments from Glenn Morris <gmorris+mail@ast.cam.ac.uk>
- 2/15
+ 6/21
----
-shell.c
- - use strstr instead of strmatch when checking whether $EMACS contains
- `term' -- simpler and faster
+builtins/read.def
+ - display a message and return error status if -a is used with an
+ existing associative array. Fixes bug reported by Curtis Doty
+ <curtis@greenkey.net>
- 2/18
+ 6/24
----
-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
+{jobs,nojobs}.c
+ - non-interactive shells now react to the setting of checkwinsize
+ and set LINES and COLUMNS after a foreground job exits. From a
+ suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
-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
+doc/{bash.1,bashref.texi}
+ - checkwinsize: remove language saying that only interactive shells
+ check the window size after each command
- 2/19
- ----
-pathexp.h
- - new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the
- match_ignore_case variable is non-zero
+lib/readline/histfile.c
+ - history_backupfile: new file, creates a backup history file name
+ given a filename (appending `-')
+ - history_do_write: when overwriting the history file, back it up
+ before writing. Restore backup file on a write error. Suggested
+ by chkno@chkno.net
-execute_cmd.c
- - new variable, match_ignore_case
- - change call to strmatch() in execute_case_command so it includes
- FNMATCH_IGNCASE
+bashline.c
+ - find_cmd_name: two new arguments, return the start and end of the
+ actual text string used to find the command name, without taking
+ whitespace into account
+ - attempt_shell_completion: small changes to make sure that completion
+ attempted at the beginning of a non-empty line does not find a
+ programmable completion, even if the command name starts at point
+ - attempt_shell_completion: small change to make sure that completion
+ does not find a progcomp when in whitespace before the command
+ name
+ - attempt_shell_completion: small change to make sure that completion
+ does not find a progcomp when point is at the first character of a
+ command name, even when there is leading whitespace (similar to
+ above). Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
+
+subst.c
+ - brace_expand_word_list: since the individual strings in the strvec
+ returned by brace_expand are already allocated, don't copy them to
+ newly-allocated memory when building the WORD_LIST, just use them
+ intact
-test.c
- - change call to strmatch() in patcomp() so that pattern matching
- calls for [[ ... ]] obey the match_ignore_case variable
+locale.c
+ - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
+ the locale to avoid a function call every time we need to read it
-lib/sh/shmatch.c
- - if match_ignore_case is set, enable REG_ICASE in the regexp match
- flags
+shell.h
+ - new struct to save shell_input_line and associated variables:
+ shell_input_line_state_t
+ - add members of sh_parser_state_t to save and restore token and the
+ size of the token buffer
-builtins/shopt.def
- - new settable option, `nocasematch', controls the match_ignore_case
- variable. Currently alters pattern matching for case and [[ ... ]]
- commands (==, !=, and =~ operators)
+parse.y
+ - {save,restore}_input_line_state: new functions to save and restore
+ shell_input_line and associated variables
+ - {save,restore}_parser_state: add code to save and restore the token
+ and token buffer size
+ - xparse_dolparen: call save_ and restore_input_line_state to avoid
+ problems with overwriting shell_input_line when we recursively
+ call the parser to parse a command substitution. Fixes bug
+ reported by Rui Santos <rsantos@grupopie.com>
-doc/{bashref.texi,bash.1}
- - updated descriptions of [[ and case to include reference to
- nocasematch option
+include/shmbutil.h
+ - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
+ similar macros
- 2/22
- ----
-builtins/mkbuiltins.c
- - add `times' to the list of posix special builtins
+lib/glob/smatch.c
+ - rangecmp,rangecmp_wc: change to take an additional argument, which
+ forces the use of strcoll/wscoll when non-zero. If it's 0, a new
+ variable `glob_asciirange' controls whether or not we use strcoll/
+ wscoll. If glob_asciirange is non-zero, we use straight
+ C-locale-like ordering. Suggested by Aharon Robbins
+ <arnold@skeeve.com>
- 2/23
+ 6/30
----
-builtins/cd.def
- - posix mode no longer turns on effect of -P option on $PWD if a
- directory is chosen from CDPATH
+execute_cmd.c
+ - execute_pipeline: make sure the lastpipe code is protected by
+ #ifdef JOB_CONTROL. Fixes problem reported by Thomas Cort
+ <tcort@minix3.org>
-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
+ 7/2
+ ---
+lib/readline/complete.c
+ - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
+ completion functions that touch the file system. Idea from Jan
+ Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
+ team
- 2/24
- ----
-builtins/reserved.def
- - minor cleanups to the description of `if'
+lib/readline/signals.c
+ - rl_signal_handler: if we're in callback mode, don't interrupt
+ immediately on a SIGWINCH
- 3/2
+ 7/3
---
-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
+bashline.c
+ - set_directory_hook: and its siblings are a new set of functions to
+ set, save, and restore the appropriate directory completion hook
+ - change callers to use {set,save,restore}_directory_hook instead of
+ manipulating rl_directory_rewrite_hook directly
+ - dircomplete_expand: new variable, defaults to 0, if non-zero causes
+ directory names to be word-expanded during word and filename
+ completion
+ - change {set,save,restore}_directory_hook to look at dircomplete_expand
+ and change rl_directory_completion_hook or rl_directory_rewrite_hook
+ appropriately
-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
+bashline.h
+ - extern declaration for set_directory_hook so shopt code can use it
- 3/7
+ 7/6
---
-configure.in
- - add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix
+builtins/shopt.def
+ - globasciiranges: new settable shopt option, makes glob ranges act
+ as if in the C locale (so b no longer comes between A and B).
+ Suggested by Aharon Robbins <arnold@skeeve.com>
- 3/8
+ 7/7
---
-bashline.c
- - make bash_directory_expansion a void function, since it doesn't have
- any return value
+doc/{bash.1,bashref.texi}
+ - document new `globasciiranges' shopt option
- 3/9
+ 7/8
---
-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
+builtins/shopt.def
+ - direxpand: new settable option, makes filename completion expand
+ variables in directory names like bash-4.1 did.
+ - shopt_set_complete_direxpand: new function, does the work for the
+ above by calling set_directory_hook
- 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
+doc/{bash.1,bashref.texi}
+ - document new `direxpand' shopt option
- 3/15
+ 7/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/readline/isearch.c
+ - _rl_isearch_dispatch: when adding character to search string, use
+ cxt->lastc (which we use in the switch statement) instead of c,
+ since lastc can be modified earlier in the function
- 3/16
+ 7/18
----
-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
+lib/readline/rlprivate.h
+ - _rl_search_context: add another member to save previous value of
+ (multibyte) lastc: pmb is to mb as prevc is to lastc
+
+lib/readline/isearch.c:
+ - _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
+ but doesn't find any bound function (k[ind].function == 0) or is
+ bound to self-insert (k[ind].function == rl_insert), back up and
+ insert the previous character (the one that caused the index into a
+ new keymap) and arrange things so the current character is the next
+ one read, so both of them end up in the search string. Fixes bug
+ reported by Clark Wang <dearvoid@gmail.com>
+ - _rl_isearch_dispatch: a couple of efficiency improvements when adding
+ characters to the isearch string
- 3/24
+ 7/24
----
-lib/readline/bind.c
- - bool_to_int now takes a `const char *' argument
+lib/readline/isearch.c
+ - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
+ appropriately when in a multibyte locale
-support/{printenv,recho,zecho}.c
- - include config.h
- - include "bashansi.h" for appropriate extern function declarations
+doc/{bash.1,bashref.texi}
+ - correct description of {x}>file (and other redirection operators
+ that allocate a file descriptor) to note the the fd range is
+ greater than or equal to 10. Fixes problem reported by
+ Christian Ullrich
-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/readline/signals.c
+ - rl_signal_handler: don't interrupt immediately if in callback mode
-lib/glob/{glob,sm_loop,smatch}.c
- - make sure to cast arguments to (char *) or (unsigned char *) as
- appropriate to avoid gcc4 warnings
+lib/readline/callback.c
+ - rl_callback_read_char: install signal handlers only when readline
+ has control in callback mode, so readline's signal handlers aren't
+ called when the application is active (e.g., between the calls to
+ rl_callback_handler_install and rl_callback_read_char). If the
+ readline signal handlers only set a flag, which the application
+ doesn't know about, the signals will effectively be ignored until
+ the next time the application calls into the readline callback
+ interface. Fixes problem of calling unsafe functions from signal
+ handlers when in callback mode reported by Jan Kratochvil
+ <jan.kratochvil@redhat.com>
-lib/glob/smatch.c
- - collsym (single-byte version) now takes a (CHAR *) first argument to
- match callers; cast argument to strncmp appropriately
+execute_cmd.c
+ - fix_assignment_words: when in Posix mode, the `command' builtin
+ doesn't change whether or not the command name it protects is an
+ assignment builtin. One or more instances of `command'
+ preceding `export', for instance, doesn't make `export' treat its
+ assignment statement arguments differently. Posix interpretation
+ #351
-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
+doc/{bash.1,bashref.texi}
+ - document new Posix-mode behavior of `command' when preceding builtins
+ that take assignment statements as arguments
- 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
+ - printstr: if fieldwidth or precision are < 0 or > INT_MAX when
+ supplied explicitly (since we take care of the `-' separately),
+ clamp at INT_MAX like when using getint(). Fixes issue reported
+ by Ralph Coredroy <ralph@inputplus.co.uk>
-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
-
- 3/28
+ 7/25
----
-lib/readline/examples/rl.c
- - include <sys/stat.h> instead of posixstat.h if READLINE_LIBRARY not
- defined
-
-subst.c
- - fix mbstrlen to treat invalid multibyte sequences as sequences of
- single-byte characters
-
- 4/8
- ---
-configure.in
- - default SIZE to `:' if cross-compiling and an appropriate size for
- the target is not found
+lib/readline/chardefs.h
+ - isxdigit: don't define if compiling with c++; declared as a c++
+ template function. Fixes bug reported by Miroslav Lichvar
+ <mlichvar@redhat.com>
- 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)
+builtins/printf.def
+ - getint: if garglist == 0, return whatever getintmax returns (0).
+ Fixes bug reported by Ralph Coredroy <ralph@inputplus.co.uk>
- 4/12
+ 7/28
----
-configure.in
- - make sure the special case for MacOS X 10.4 only kicks in if the
- `--with-installed-readline' option isn't supplied
-
-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)
+doc/{bash.1,bashref.texi}
+ - minor changes to the descriptions of the cd and pushd builtins
-builtins/mkbuiltins.c
- - don't bother with the special HAVE_BCOPY code; just use straight
- assignments
+lib/sh/zread.c
+ - zsyncfd: change variable holding return value from lseek to
+ off_t. Bug report and fix from Gregory Margo <gmargo@pacbell.net>
-builtins/ulimit.def
- - use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is
- not
+ 8/1
+ ---
+expr.c
+ - don't check for division by 0 when in a context where no evaluation
+ is taking place. Fixes bug reported by dnade.ext@orange-ftgroup.com
- 4/13
- ----
+ 8/6
+ ---
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
+ - execute_command_internal: the parent branch of the subshell code
+ (where the child calls execute_in_subshell) should not close all
+ open FIFOs with unlink_fifo_list if it's part of a shell function
+ that's still executing. Fixes bug reported by Maarten Billemont
+ <lhunath@lyndir.com>
- 4/14
- ----
-builtins/read.def
- - make sure the ^As added for internal quoting are not counted as
- characters read when -n is supplied
-
- 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
-
- 4/26
- ----
+ 8/9
+ ---
+builtins/common.c
+ - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
-Makefile.in
- - make sure mksignames and mksyntax are invoked with the $(EXEEXT)
- extension
+builtins/return.def
+ - return_builtin: just call get_exitstat to get the return status,
+ let it handle proper parsing and handling of arguments. Fixes
+ issue most recently raised by Linda Walsh <bash@tlinx.org>.
+ Reverses change from 9/11/2008 (see above)
- 4/28
+ 8/16
----
-lib/readline/readline.h
- - new state variable: RL_STATE_CALLBACK, means readline is using the
- callback interface
-
-lib/readline/callback.c
- - set RL_STATE_CALLBACK in rl_callback_handler_install, unset in
- rl_callback_handler_remove
+doc/{bash.1,bashref.texi}
+ - clean up `set -e' language to make it clearer that any failure of
+ a compound command will cause the shell to exit, not just subshells
+ and brace commands
- 4/29
+ 8/17
----
-config-top.h
- - DONT_REPORT_SIGPIPE is now on by default, since it apparently
- interferes with scripts
-
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)
+ - make the various XXX_FOR_BUILD variables `precious' to autoconf to
+ avoid stale data
+ - change how CC_FOR_BUILD is initialized when cross-compiling and not,
+ but do not change behavior
+ - initialize CFLAGS_FOR_BUILD to -g when cross-compiling
+ - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
+ when cross-compiling
+ - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
+ CFLAGS not inherited from environment (like effect of old
+ auto_cflags variable)
+ - substitute LIBS_FOR_BUILD into output Makefiles
+ [changes inspired by bug report from Nathan Phillip Brink
+ <ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
+
+builtins/Makefile.in
+ - substitute LIBS_FOR_BUILD from configure, not strictly initialized
+ to $(LIBS)
- 4/30
+ 8/27
----
-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
+ - minor changes to the here string description to clarify the
+ expansions performed on the word
- 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()
+ - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
+ to darwin stanzas. Fixes readline bug reported by Vincent
+ Sheffer <vince.sheffer@apisphere.com>
-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/sh/strtrans.c
+ - ansic_wshouldquote: check a string with multi-byte characters for
+ characters that needs to be backslash-octal escaped for $'...'
+ - ansic_shouldquote: if is_basic fails for one character, let
+ ansic_wshouldquote examine the rest of the string and return what
+ it returns. From a patch sent by Roman Rakus <rrakus@redhat.com>
-lib/readline/display.c
- - some MS-DOS and MINGW changes from the cygwin and mingw folks
+ 8/30
+ ----
+lib/sh/strtrans.c
+ - ansic_quote: changes to quote (or not) multibyte characters. New
+ code converts them to wide characters and uses iswprint to check
+ valid wide chars. From a patch sent by Roman Rakus
+ <rrakus@redhat.com>
-config.h.in
- - add HAVE_PWD_H for <pwd.h>
- - add HAVE_FCNTL, HAVE_KILL for respective system calls
- - add HAVE_GETPW{ENT,NAM,UID} for passwd functions
+ 9/7
+ ---
+lib/sh/shquote.c
+ - sh_backslash_quote: change to be table-driven so we can use a
+ different table if we want to
+ - sh_backslash_quote: takes a second char table[256] argument;
-configure.in
- - add check for <pwd.h>
- - 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
+externs.h
+ - sh_backslash_quote: add second argument to function prototype
-lib/readline/complete.c
- - guard inclusion of <pwd.h> 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
+bashline.c,braces.c,parse.y,builtins/printf.def
+ - change callers of sh_backslash_quote to add second argument
-lib/readline/shell.c
- - guard inclusion of <pwd.h> with HAVE_PWD_H
- - guard inclusion of <fcntl.h> 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
-
-lib/tilde/tilde.c
- - guard inclusion of <pwd.h> with HAVE_PWD_H
- - guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID}
- - guard calls to {get,end}pwent with HAVE_GETPWENT
-
-Makefile.in,builtins/Makefile.in
- - @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to
- -DCROSS_COMPILING if bash is being cross-compiled)
+bashline.c
+ - filename_bstab: table of characters to pass to sh_backslash_quote;
+ characters with value 1 will be backslash-quoted
+ - set_filename_bstab: turn on characters in filename backslash-quote
+ table according to passed string argument
+ - call set_filename_bstab every time rl_filename_quote_characters is
+ assigned a value
+ - bash_quote_filename: call sh_backslash_quote with filename_bstab
+ as second argument. This allows other characters in filenames to
+ be quoted without quoting, for instance, a dollar sign in a shell
+ variable reference
- 5/9
+ 9/8
---
-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)
+bashline.c
+ - complete_fullquote: new variable, controls table passed to
+ sh_backslash_quote. If non-zero (the default), the standard set
+ of shell metacharacters -- as in bash versions up to and including
+ bash-4.2 -- gets backslash-quoted by the completion code. If zero,
+ sh_backslash_quote gets the table with the characters in the
+ variable reference removed, which means they are removed from the
+ set of characters to be quoted in filenames
- 5/11
+ 9/10
----
-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
-
-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
+bashline.c
+ - bash_filename_stat_hook: new function, designed to expand variable
+ references in filenames before readline passes them to stat(2)
+ to determine whether or not they are a directory
- 5/12
+ 9/15
----
-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
-
-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
-
-support/shobj-conf,configure.in
- - add support for dragonfly bsd, the same as freebsd
-
- 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/{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
- - changes to _rl_read_mbchar to handle reading the null multibyte
- character and translating it into '\0'
-
-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
-
-lib/readline/readline.h
- - change the version #defines to reflect readline 5.1
-
-lib/readline/search.c
- - break code into smaller functions that can be composed to work with
- the callback code more easily
-
-lib/readline/text.c
- - in rl_quoted_insert(), don't mess around with the tty signals if
- running in `callback mode'
-
-lib/readline/vi_mode.c
- - changed set-mark, goto-mark, change-char, and char-search to work
- when called by callback functions
+builtins/declare.def
+ - if assign_array_element fails due to a bad (or empty) subscript, mark
+ it as an assignment error and don't attempt any further processing
+ of that declaration. Fixes segfault bug reported by Diego Augusto
+ Molina <diegoaugustomolina@gmail.com>
- 5/17
+ 9/19
----
+expr.c
+ - exppower: replace the simple exponentiation algorithm with an
+ implementation of exponentiation by squaring. Inspired by report
+ from Nicolas ARGYROU <nargy@yahoo.com>
-lib/readline/rlprivate.h
- - new struct declaration for a `reading key sequence' context
+bashline.c
+ - bash_quote_filename: check for rtext being non-null before
+ dereferencing it
+ - set_saved_history: operate_and_get_next assumes that the previous
+ line was added to the history, even when the history is stifled and
+ at the max number of entries. If it wasn't, make sure the history
+ number is incremented properly. Partial fix for bug reported by
+ gregrwm <backuppc-users@whitleymott.net>
-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
+doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
+ - minor editorial changes inspired by suggestions from
+ Roger Zauner <rogerx.oss@gmail.com>
- 5/18
+ 9/20
----
-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
+lib/intl/localealias.c
+ - read_alias_file: close resource leak (fp) when returning on error
-lib/readline/callback.c
- - call the appropriate multiple-key sequence callback if the state is
- set
-
- 5/19
+ 9/22
----
-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)
+execute_command.c
+ - execute_intern_function: implement Posix interpretation 383 by making
+ it an error to define a function with the same name as a special
+ builtin when in Posix mode.
+ http://austingroupbugs.net/view.php?id=383#c692
-lib/readline/callback.c
- - call _rl_internal_char_cleanup from rl_callback_read_char when
- appropriate
-
- 5/24
+ 9/25
----
-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
-
-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
-
-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)
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_keyseq_chain_dispose
-
- 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 <chmorgan@gmail.com>
+doc/{bash.1,bashref.texi}
+ - formatting and some content changes from Benno Schulenberg
+ <bensberg@justemail.net>
+ - document new posix-mode behavior from interp 383 change of 9/22
+ 9/30
+ ----
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
- <ebb9@byu.net>
-
-array.c
- - fix from William Park for array_rshift when shifting right on an
- empty array -- corrects calculation of array->max_index
+ - shell_execve: add strerror to error message about executable file
+ that shell can't execute as a shell script. From suggestion by
+ daysleeper <daysleeper@centrum.cz>
-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
-
-jobs.c
- - add a run-time check for WCONTINUED being defined in header files
- but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki
- <macro@linux-mips.org>
-
- 6/20
+ 10/1
----
bashhist.c
- - make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY
- - ditto for calls to history_expand_line_internal
+ - maybe_add_history: act as if literal_history is set when parser_state
+ includes PST_HEREDOC, so we save the bodies of here-documents just
+ as they were entered. Fixes bug reported by Jonathan Wakely
+ <bugs@kayari.org>
+ - bash_add_history: make sure that the second and subsequent lines of
+ a here document don't have extra newlines or other delimiting
+ chars added, since they have the trailing newline preserved, when
+ `lithist' is set and history_delimiting_chars isn't called
- 6/23
- ----
-doc/bashref.texi
- - remove extra blank lines in @menu constructs
-
-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
-
- 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
- <ebb9@byu.net>
+execute_cmd.c
+ - execute_command_internal: avoid fd exhaustion caused by using
+ process substitution in loops inside shell functions by using
+ copy_fifo_list and close_new_fifos (). Fixes debian bash bug
+ 642504
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 <ebb9@byu.net>
-
- 6/30
- ----
-lib/malloc/trace.c
- - include <unistd.h> if it's available for a definition of size_t
-
-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
-
- 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
+ - new variable, rl_filename_stat_hook, used by append_to_match. If
+ filename completion is desired, and rl_filename_stat_hook points
+ to a function, call that function to expand the filename in an
+ application-specific way before calling stat.
-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
+bashline.c
+ - bash_default_completion: if variable completion returns a single
+ match, use bash_filename_stat_hook and file_isdir to determine
+ whether or not the variable name expands to a directory. If it
+ does, set the filename_append_character to `/'. This is not
+ perfect, so we will see how it works out. Adds functionality
+ requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
+ <patrick@pfeifer.de>
+ - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
+ like $HOME/Downloads (after completion) have a slash appended.
+ In general, this causes the stat hook to be called whenever
+ filename completion is appended. Adds functionality requested by
+ Patrick Pfeifer <patrick@pfeifer.de>
-jobs.c
- - in notify_of_job_status, don't print status messages about
- terminated background processes unless job control is active
+lib/readline/readline.h
+ - new extern declaration for rl_filename_stat_hook
-bashhist.c
- - new variable, hist_last_line_pushed, set to 0 in really_add_history
- (used by `history -s' code)
+lib/readline/doc/rltech.texi
+ - rl_directory_rewrite_hook: now documented
+ - rl_filename_stat_hook: document
-bashhist.h
- - new extern declaration for history -s
+pcomplete.c
+ - gen_action_completions: in the CA_DIRECTORY case, turn off
+ rl_filename_completion_desired if it was off before we called
+ rl_filename_completion_function and we didn't get any matches.
+ Having it on causes readline to quote the matches as if they
+ were filenames. Adds functionality requested by many,
+ including Clark Wang <dearvoid@gmail.com>
-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 <ms@citd.de>
- - pay attention to hist_last_line_pushed in expand_and_print_history()
- so we don't delete an entry pushed by history -s
+assoc.[ch]
+ - assoc_replace: new function, takes the same arguments as
+ assoc_insert, but returns the old data instead of freeing it
+ - assoc_insert: if the object returned by hash_insert doesn't have
+ the same value for its key as the key passed as an argument, we
+ are overwriting an existing value. In this case, we can free the
+ key. Fixes bug reported by David Parks <davidparks21@yahoo.com>
- 7/4
- ---
+ 10/5
+ ----
print_cmd.c
- - fix print_arith_for_command to not print so many blanks between
- expressions in ((...))
-
-command.h
- - new word flag: W_DQUOTE. Means word should be treated as if double
- quoted
-
-make_cmd.c
- - add W_DQUOTE to word flags in make_arith_for_expr
-
-parse.y
- - add W_DQUOTE to word flags for (( ... )) arithmetic commands
-
-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
+ - indirection_level_string: small change to only re-enable `x'
+ option after calling decode_prompt_string if it was on before. In
+ normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
+ has a novel use for that code in conjunction with a pre-loaded
+ shared library that traces system call usage in shell scripts
-arrayfunc.c
- - expand an array index within [...] the same way as an arithmetic
- expansion between (( ... ))
-
-lib/readline/input.c
- - use getch() instead of read() on mingw
-
-lib/readline/readline.c
- - add a few key bindings for the arrow keys on mingw
-
-lib/readline/rldefs.h
- - if on mingw, define NO_TTY_DRIVER
-
-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)
-
- 7/7
- ---
-command.h
- - add a `flags' member to the PATTERN_LIST structure
-
-make_cmd.c
- - intialize the `flags' member of a PATTERN_LIST when it's created
-
-builtins/psize.c
- - protect extern declaration of errno with usual #ifdef errno
-
-configure.in, variables.c
- - changes for QNX 6.x
-
- 7/9
- ---
-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
- <ebb9@byu.net>
-
-{configure,Makefile}.in
- - TILDE_LIB is now substituted into Makefile by configure
-
-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 <ebb9@byu.net>
-
- 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
+ 10/10
+ -----
+Makefile.in
+ - Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
+ build y.tab.c and y.tab.h with two separate runs of yacc if
+ parse.y changes. Problem with parallel makes
+ - Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
+ builds each trying to make version.h (and all its dependencies)
- 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
+lib/sh/Makefile.in
+ - remove some dependencies on version.h where it doesn't make sense
- 7/14
- ----
-lib/readline/display.c
- - in expand_prompt, don't set the location of the last invisible
- char if the sequence is zero length (\[\])
+variables.c
+ - initialize_shell_variables: while reading the environment, a shell
+ running in posix mode now checks for SHELLOPTS being readonly (it
+ gets set early on in main()) before trying to assign to it. It
+ saves an error message and the variable gets parsed as it should.
+ Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
- 7/15
- ----
+ 10/14
+ -----
doc/{bash.1,bashref.texi}
- - document that the shell uses $TMPDIR when creating temporary files
+ - add to the "duplicating file descriptors" description that >&word
+ doesn't redirect stdout and stderr if word expands to `-'
+ - add to the "appending standard output and standard error"
+ description a note that >&word, where word is a number or `-',
+ causes other redirection operators to apply for sh and Posix
+ compatibility reasons. Suggested by Greg Wooledge
+ <wooledg@eeg.ccf.org>
- 7/20
- ----
-[bash-3.1-alpha1 frozen]
-
- 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
+ 10/15
+ -----
+pcomplete.c
+ - change pcomp_filename_completion_function to only run the filename
+ dequoting function in the cases (as best as it can figure) where
+ readline won't do it via rl_filename_completion_function. Based
+ on reports from <lolilolicon@gmail.com>
+ 10/19
+ -----
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
-
- 8/1
- ---
-builtins/printf.def
- - make sure variables are initialized if their values are tested later
-
-[bash-3.1-alpha1 updated and re-frozen]
-
- 8/2
- ---
-variables.c
- - make sure to call stifle_history with an `int' instead of an intmax_t.
- Sometimes it makes a difference
-
- 8/3
- ---
-[bash-3.1-alpha1 released]
-
-support/mksignames.c
- - add `SIGSTKFLT' (RHE3)
- - add `SIGXRES' (Solaris 9)
-
- 8/4
- ---
-builtins/ulimit.def
- - fix typo to make `x' the right option for locks
- - add new options to short help synopsis
-
-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
-
-lib/readline/text.c
- - rewrote rl_change_case to correctly change the case of multibyte
- characters where appropriate
+ - attempt_shell_completion: add call to set_directory_hook() to make
+ sure the rewrite functions are correct. It's cheap and doesn't
+ hurt
+ - command_word_completion_function: if completing a command name that
+ starts with `.' or `..', temporarily suppress the effects of the
+ `direxpand' option and restore the correct value after calling
+ rl_filename_completion_function. If it's enabled, the directory
+ name will be rewritten and no longer match `./' or `../'. Fixes
+ problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
- 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
- - 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
+ 10/22
+ -----
+builtins/history.def
+ - push_history: make sure remember_on_history is enabled before we
+ try to delete the last history entry -- the `history -s' command
+ might not have been saved. Fixes bug reported by
+ lester@vmw-les.eng.vmware.com
- 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/readline/complete.c
+ - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
+ instead of straight return; add same call at end of function.
+ Placeholder for future work in deinstalling signal handlers when
+ readline is not active
-builtins/printf.def
- - make sure to call stupidly_hack_special_variables if using `printf -v'
- to put formatted output in a shell variable
+ 10/25
+ -----
+expr.c
+ - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
+ for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix
+ from Jaak Ristioja <jaak.ristioja@cyber.ee>
+ - expassign: same changes for arithmetic overflow for DIV and MOD
- 8/11
- ----
-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
+ 10/28
+ -----
+subst.c
+ - parameter_brace_expand: allow pattern substitution when there is an
+ expansion of the form ${var/} as a no-op: replacing nothing with
+ nothing
+ - parameter_brace_patsub: don't need to check for PATSUB being NULL;
+ it never is
- 8/14
- ----
-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
+flags.c
+ - if STRICT_POSIX is defined, initialize history_expansion to 0, since
+ history expansion (and its treatment of ! within double quotes) is
+ not a conforming posix environment. From austin-group issue 500
-variables.h
- - new extern declaration for sv_home
+lib/readline/histexpand.c
+ - history_expand: when processing a string within double quotes
+ (DQUOTE == 1), make the closing double quote inhibit history
+ expansion, as if the word were outside double quotes. In effect,
+ we assume that the double quote is followed by a character in
+ history_no_expand_chars. tcsh and csh seem to do this. This
+ answers a persistent complaint about history expansion
- 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
+ 10/29
+ -----
+make_cmd.c
+ - make_arith_for_command: use skip_to_delim to find the next `;'
+ when breaking the string between the double parens into three
+ separate components instead of a simple character loop. Fixes
+ bug reported by Dan Douglas <ormaaj@gmail.com>
- 8/16
+ 11/2
----
-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
+Makefile.in
+ - make libbuiltins.a depend on builtext.h to serialize its creation
+ and avoid conflict between multiple invocations of mkbuiltins.
+ Fix from Mike Frysinger <vapier@gentoo.org>
- 8/17
+ 11/5
----
-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
-
-general.h
- - new #define, FS_READABLE, indicates file is readable by current
- user
-
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
-
-doc/bashref.texi
- - remove note about posix non-compliance in `.': we now require and
- look for readable files when searching $PATH
+ - user_command_matches: if stat(".", ...) returns -1, set st_dev
+ and st_ino fields in dotinfo to 0 to avoid same_file matches
+ - find_user_command_in_path: check stat(2) return the same way
- 8/20
- ----
-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/glob/glob.c
+ - glob_vector: don't call strlen(pat) without checking pat == 0
+ - glob_dir_to_array: make sure to free `result' and all allocated
+ members before returning error due to malloc failure
+ - glob_vector: make sure to free `nextname' and `npat' on errors
+ (mostly when setting lose = 1)
+ - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
+ sure we free `subdir'
+ - glob_filename: when expanding ** (GX_ALLDIRS), make sure we
+ free temp_results (return value from glob_vector)
-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/glob/xmbsrtowcs.c
+ - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
+ of sizeof (char **) when assigning idxtmp
-builtins/cd.def
- - in posix mode, pwd needs to check that the value it prints and `.'
- are the same file
+execute_cmd.c
+ - print_index_and_element: return 0 right away if L == 0
+ - is_dirname: fix memory leak by freeing `temp'
+ - time_command: don't try to deref NULL `command' when assigning
+ to `posix_time'
+ - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
+ terminated for functions that expect that
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?)
-
- 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
-
-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)
-
- 8/24
- ----
-
-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
-
-{jobs,nojobs}.c
- - change kill_pid to handle pids < -1 by killing process groups
-
-jobs.h
- - extern declaration for init_job_stats
-
-lib/readline/history.c
- - check whether or not the history list is null in remove_history
-
-builtins/history.def
- - delete_last_history is no longer static so fc builtin can use it
-
-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
-
-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
+ - read_builtin: don't call bind_read_variable with a potentially-null
+ string
-execute_cmd.c
- - call init_job_stats from initialize_subshell to zero out the global
- job stats structure
+pcomplete.c
+ - gen_command_matches: don't call dispose_word_desc with a NULL arg
+ - gen_compspec_completions: fix memory leak by freeing `ret' before
+ calling gen_action_completions (tcs, ...). happens when
+ performing directory completion as default and no completions
+ have been generated
+ - gen_progcomp_completions: make sure to set foundp to 0 whenever
+ returning NULL
+ - it_init_aliases: fix memory leak by freeing alias_list before
+ returning
- 8/25
- ----
bashline.c
- - change vi_edit_and_execute_command to just call vi when in posix
- mode, instead of checking $FCEDIT and $EDITOR
-
-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
-
-lib/readline/rlprivate.h
- - add UNDO_LIST * member to search context struct
-
-lib/readline/isearch.c
- - initialize UNDO_LIST *save_undo_list member of search context struct
-
- 8/27
- ----
-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
-
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
- - clarified the language concerning parsing values for boolean
- variables in assignment statements
-
- 8/28
- ----
-lib/sh/pathphys.c
- - fix small memory leak in sh_realpath reported by Eric Blake
-
- 8/31
- ----
-doc/bashref.texi
- - add additional notes to posix mode section
-
- 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
-
- 9/4
- ---
-builtins/fc.def
- - if STRICT_POSIX is defined, the posix mode default for the editor to
- use is $FCEDIT, then ed
+ - command_word_completion_function: don't call restore_tilde with a
+ NULL directory_part argument
+ - bash_directory_expansion: bugfix: don't throw away results of
+ rl_directory_rewrite_hook if it's set and returns non-zero
+ - bind_keyseq_to_unix_command: free `kseq' before returning error
-shell.c
- - if STRICT_POSIX is defined, initialize `posixly_correct' to 1
-
-config.h.in
- - add #undef STRICT_POSIX
-
- 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
-
-builtins/echo.def
- - if STRICT_POSIX is defined, default echo to xpg-style
+arrayfunc.c
+ - assign_array_element_internal: make sure `akey' is freed if non-null
+ before returning error
+ - assign_compound_array_list: free `akey' before returning error
+ - array_value_internal: free `akey' before returning error
+ - unbind_array_element: free `akey' before returning error
+
+subst.c
+ - array_length_reference: free `akey' before returning error in case
+ of expand_assignment_string_to_string error
+ - array_length_reference: free `akey' after call to assoc_reference
+ - skip_to_delim: if skipping process and command substitution, free
+ return value from extract_process_subst
+ - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
+ returning if verify_substring_values fails
+ - parameter_brace_expand: remove two duplicate lines that allocate
+ ret in parameter_brace_substring case
+ - parameter_brace_expand: convert `free (name); name = xmalloc (...)'
+ to use `xrealloc (name, ...)'
+ - parameter_brace_expand: free `name' before returning when handling
+ ${!PREFIX*} expansion
+ - split_at_delims: fix memory leak by freeing `d2' before returning
-doc/bashref.texi
- - describe the --enable-strict-posix-default option to configure
+redir.c
+ - redirection_error: free `filename' if the redirection operator is
+ REDIR_VARASSIGN by assigning allocname
- 9/10
- ----
-builtins/mkbuiltins.c
- - change to not generate N_(""), because the translated empty string is
- special to GNU gettext
+eval.c
+ - send_pwd_to_eterm: fix memory leak by freeing value returned by
+ get_working_directory()
- 9/13
- ----
-lib/readline/complete.c
- - a negative value for rl_completion_query_items means to not ask
+builtins/cd.def
+ - change_to_directory: fix memory leak by freeing return value from
+ resetpwd()
+ - cd_builtin: fix memory leak by freeing value returned by dirspell()
+ - cd_builtin: fix memory leak by freeing `directory' if appropriate
+ before overwriting with return value from resetpwd()
-lib/readline/doc/{{rltech,rluser}.texi,readline.3}
- - documented new semantics for rl_completion_query_items/
- completion-query-items
+builtins/type.def
+ - describe_command: free `full_path' before overwriting it with return
+ value from sh_makepath
- 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
+builtins/complete.def
+ - compgen_builtin: fix memory leak by calling strlist_dispose (sl)
+ before overwriting sl with return value from completions_to_stringlist
- 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
+builtins/hash.def
+ - list_hashed_filename_targets: fix memory leak by freeing `target'
- 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
+make_cmd.c
+ - make_arith_for_command: free `init', `test', and `step' before
+ returning error on parse error
- 9/19
- ----
-Makefile.in
- - make sure the binaries for the tests are at the front of $PATH
+jobs.c
+ - initialize_job_control: don't call move_to_high_fd if shell_tty == -1
- 9/22
- ----
-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)
+general.c
+ - check_dev_tty: don't call close with an fd < 0
+ - legal_number: deal with NULL `string' argument, return invalid
- 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/fmtulong.c
+ - fmtulong: if the `base' argument is invalid, make sure we index
+ buf by `len-1' at maximum
-lib/readline/isearch.c
- - fix C-w handler for isearch string reader to handle multibyte chars
+print_cmd.c
+ - print_deferred_heredocs: don't try to dereference a NULL `cstring'
+ - cprintf: make sure to call va_end (args)
-lib/readline/rlmbutil.h
- - new defines for _rl_to_wupper and _rl_to_wlower
+variables.c
+ - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
+ instead of sizeof (WORD_LIST **)
-lib/readline/text.c
- - use _rl_to_wupper and _rl_to_wlower as appropriate
+lib/sh/zmapfd.c
+ - zmapfd: if read returns error, free result and return -1 immediately
+ instead of trying to reallocate it
- 9/26
+ 11/6
----
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 #!
-
- 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
+ - cpl_reap: rewrote to avoid using pointer after freeing it; now builds
+ new coproc list on the fly while traversing the old one and sets the
+ right values for coproc_list when done
- 10/4
- ----
-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
-
-[bash-3.1-beta1 frozen]
+ 11/12
+ -----
+builtins/set.def
+ - if neither -f nor -v supplied, don't allow a readonly function to
+ be implicitly unset. Fixes bug reported by Jens Schmidt
+ <jens.schmidt35@arcor.de>
- 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
+lib/readline/callback.c
+ - change CALLBACK_READ_RETURN to clear signal handlers before returning
+ from rl_callback_read_char so readline's signal handlers aren't
+ installed when readline doesn't have control. Idea from Jan
+ Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
+ team
- 10/7
- ----
-[bash-3.1-beta1 released]
+pcomplete.h
+ - COPT_NOQUOTE: new complete/compgen option value
-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/complete.def
+ - noquote: new complete/compgen option; will be used to disable
+ filename completion quoting
-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
+pcomplete.c
+ - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
+ of rl_filename_quoting_desired if set; turns it on if unset (value
+ is inverted, since default is on)
-lib/readline/readline.h
- - new extern declaration for rl_variable_value
+doc/bash.1,lib/readline/doc/rluser.texi
+ - document new -o noquote option to complete/compgen/compopt
-lib/readline/doc/rltech.texi
- - documented rl_variable_value
+pathexp.c
+ - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
+ between brackets in an ERE bracket expression are not inappropriately
+ quoted with backslashes. This is a pretty substantial change,
+ should be stressed when opening bash up for alpha and beta tests.
+ Fixes bug pointed out by Stephane Chazleas
+ <stephane_chazelas@yahoo.fr>
-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/11
- -----
-builtins/fc.def
- - fixed a typo when using POSIX_FC_EDIT_COMMAND
+doc/{bash.1,bashref.texi}
+ - document that regexp matches can be inconsistent when quoting
+ characters in bracket expressions, since usual quoting characters
+ lose their meaning within brackets
+ - note that regular expression matching when the pattern is stored
+ in a shell variable which is quoted for expansion causes string
+ matching
redir.h
- - new flag values for redirections: RX_INTERNAL and RX_USER (currently
- unused)
+ - RX_SAVEFD: new flag value; notes that a redirection denotes an
+ fd used to save another even if it's not >= SHELL_FD_BASE
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
-
- 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.
+ - do_redirection_internal: when deciding whether or not to reset the
+ close-on-exec flag on a restored file descriptor, trust the value
+ of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
+ if the RX_SAVEFD flag is set
+ - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
+ limit is such that the shell can't duplicate to a file descriptor
+ >= 10. Fixes a limitation that tripped a coreutils test reported
+ by Paul Eggert <eggert@cs.ucla.edu>
-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/13
+ 11/19
-----
-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
-
-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/bind.c
- - change rl_parse_and_bind so only `set' commands involving boolean
- readline variables have trailing whitespace stripped from the value
- string
+doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
+ - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
+ the startup files
+ - make it clear that bash runs HISTSIZE=500 after reading the
+ startup files
+ - make it clear that setting HISTSIZE=0 causes commands to not be
+ saved in the history list
+ - make it clear that setting HISTFILESIZE=0 causes the history file
+ to be truncated to zero size
- 10/16
- -----
-lib/glob/sm_loop.c
- - fix patscan() to correctly scan backslash-escaped characters
+variables.c
+ - sv_histsize: change so setting HISTSIZE to a value less than 0
+ causes the history to be `unstifled'
+ - sv_histsize: change so setting HISTFILESIZE to a value less than 0
+ results in no file truncation
+ - make it clear that numeric values less than 0 for HISTFILESIZE or
+ HISTSIZE inhibit the usual functions
- 10/18
+ 11/23
-----
-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
-
-{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
-
-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
-
parse.y
- - add call to get_new_window_size if sigwinch_received at top of
- shell_getc
-
- 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
- -----
-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
+ - save_input_line_state: add missing `return ls' at the end, since the
+ function is supposed to return its argument. Pointed out by
+ Andreas Schwab <schwab@linux-m68k.org>
- 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
-
- 10/24
- -----
-subst.c
- - modified fix from 10/22 to allow bare ` to pass through (for
- some backwards compatibility and more correctness)
+builtins/read.def
+ - skip over NUL bytes in input, as most modern shells seem to. Bug
+ report by Matthew Story <matt@tablethotels.com>
- 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/readline/vi_mode.c
+ - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
- 10/30
+ 11/25
-----
-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
-
-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/read.def
+ - read_builtin: if xrealloc returns same pointer as first argument,
+ don't bother with the remove_unwind_protect/add_unwind_protect pair
+ - read_builtin: set a flag (`reading') around calls to zread/zreadc
+ and readline()
+ - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
+ currently in read(2) (reading != 0)
+ - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
+ behavior of old SIGALRM catching function
+ - read_builtin: call CHECK_ALRM in appropriate places while reading
+ line of input. Fixes bug reported by Pierre Gaston
+ <pierre.gaston@gmail.com>
- 11/1
- ----
lib/readline/vi_mode.c
- - fix vi-mode `r' command to leave the cursor in the right place
+ - rl_vi_replace: initialize characters before printing characters in
+ vi_replace_keymap to their default values in vi_insertion_keymap,
+ since we're supposed to be in insert mode replacing characters
+ - rl_vi_replace: call rl_vi_start_inserting to set last command to
+ `R' for undo
+ - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
+ use by _rl_vi_done_inserting
+ - vi_save_insert_buffer: new function, broke out code that copies text
+ into vi_insert_buffer from _rl_vi_save_insert
+ - _rl_vi_save_replace: new function, saves text modified by
+ rl_vi_replace (using current point and vi_replace_count to figure
+ it out) to vi_replace_buffer
+ - _rl_vi_save_insert: call vi_save_insert_buffer
+ - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
+ _rl_vi_save_replace to save text modified in replace mode (uses
+ vi_save_insert_buffer)
+ - _rl_vi_replace_insert: new function, replaces the number of chars
+ in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
+ - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
+ there's something in vi_insert_buffer. Fixes bug with `.' not
+ redoing the most recent `R' command, reported by Geoff Clare
+ <g.clare@opengroup.org> in readline area on savannah
-[bash-3.1-rc1 frozen]
-
- 11/5
- ----
-execute_cmd.c
- - make sure a DEBUG trap doesn't overwrite a command string passed to
- make_child in execute_simple_command
-
-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
-
- 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
-
- 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
-
- 11/11
+ 11/26
-----
+lib/readline/rlprivate.h
+ - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
+ to be handled
+ - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
+ SIGINT to be handled
-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/readline.h
- - new extern declaration for rl_reset_screen_size
-
-lib/readline/doc/rltech.texi
- - documented rl_reset_screen_size
-
-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
-
-lib/sh/winsize.c
- - get_new_window_size now takes two int * arguments, to return the
- screen dimensions
-
-externs.h
- - change extern declaration for get_new_window_size
+lib/readline/complete.c
+ - remove all mention of _rl_interrupt_immediately
+ - rl_completion_matches: check RL_SIG_RECEIVED after each call to
+ the entry function, call RL_CHECK_SIGNALS if true to handle the
+ signal
+ - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
+ and zero out the match_list this function allocated
+ - rl_completion_matches: if the completion entry function is
+ rl_filename_completion_function, free the contents of match_list,
+ because that function does not keep state and will not free the
+ entries; avoids possible memory leak pointed out by
+ Garrett Cooper <yanegomi@gmail.com>
+ - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
+ calling rl_attempted_completion_function, free the returned match
+ list and handle the signal with RL_CHECK_SIGNALS; avoids
+ possible memory leak pointed out by Garrett Cooper
+ <yanegomi@gmail.com>
+ - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
+ calling rl_completion_matches, free the returned match list and
+ handle the signal with RL_CHECK_SIGNALS
-{jobs,nojobs}.c, parse.y
- - change callers of get_new_window_size
+lib/readline/util.c
+ - rl_settracefp: new utility function to set the tracing FILE *
- 11/12
- -----
-lib/readline/terminal.c
- - new variable, rl_prefer_env_winsize, gives LINES and COLUMNS
- precedence over values from the kernel when computing window size
+lib/readline/signals.c
+ - _rl_sigcleanup: pointer to a function that will be called with the
+ signal and a void * argument from _rl_handle_signal
+ - _rl_sigcleanarg: void * that the rest of the code can set to have
+ passed to the signal cleanup function
+ - _rl_handle_signal: if _rl_sigcleanup set, call as
+ (*_rl_sigcleanup) (sig, _rl_sigcleanarg)
-lib/readline/readline.h
- - extern declaration for rl_prefer_env_winsize
+lib/readline/rlprivate.h
+ - extern declarations for _rl_sigcleanup and _rl_sigcleanarg
-lib/readline/doc/rltech.texi
- - document rl_prefer_env_winsize
+lib/readline/complete.c
+ - _rl_complete_sigcleanup: signal cleanup function for completion code;
+ calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
+ - rl_complete_internal: before calling display_matches if what_to_do
+ == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
+ list gets freed on SIGINT; avoids possible memory leak pointed out
+ by Garrett Cooper <yanegomi@gmail.com>
+ - rl_complete_internal: in default switch case, call _rl_free_match_list
+ before returning to avoid memory leak
- 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
+doc/bashref.texi
+ - start at a set of examples for the =~ regular expression matching
+ operator, touching on keeping the pattern in a shell variable and
+ quoting portions of the pattern to remove their special meaning
- 11/14
- -----
-builtins/pushd.def
- - make sure any call to cd_builtin includes a leading `--' from the
- argument list (or constructs one)
+ 12/1
+ ----
+lib/glob/gmisc.c
+ - extglob_pattern: new function, returns 1 if pattern passed as an
+ argument looks like an extended globbing pattern
- 11/16
- -----
-pcomplete.c
- - fix small memory leak in gen_wordlist_matches
+lib/glob/glob.c
+ - skipname: return 0 immediately if extglob_pattern returns non-zero,
+ let the extended globbing code do the right thing with skipping
+ names beginning with a `.'
+ - mbskipname: return 0 immediately if extglob_pattern returns non-zero,
+ let the extended globbing code do the right thing with skipping
+ names beginning with a `.'. Fixes bug reported by Yongzhi Pan
+ <panyongzhi@gmail.com>
-[bash-3.1-rc2 frozen]
+ 12/2
+ ----
+lib/glob/smatch.c
+ - patscan, patscan_wc: no longer static so other parts of the glob
+ library can use them, renamed to glob_patscan, glob_patscan_wc
- 11/21
- -----
-[bash-3.1-rc2 released]
+lib/glob/glob.c
+ - extern declarations for glob_patscan, glob_patscan_wc
+ - wchkname: new function, does skipname on wchar_t pattern and dname,
+ old body of mbskipname after converting to wide chars
+ - extglob_skipname: new function, checks all subpatterns in an extglob
+ pattern to determine whether or not a filename should be skipped.
+ Calls skipname for each subpattern. Dname is only skipped if all
+ subpatterns indicate it should be. Better fix for bug reported by
+ Yongzhi Pan <panyongzhi@gmail.com>
+ - wextglob_skipname: wide-char version of extglob_skipname, calls
+ wchkname instead of calling back into mbskipname for each
+ subpattern to avoid problems with char/wchar_t mismatch
+ - skipname: call extglob_skipname if extglob_pattern returns non-zero
+ - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
+ - mbskipname: short-circuit immediately if no multibyte chars in
+ pattern or filename
- 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
-
- 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
+execute_cmd.c
+ - execute_cond_node: added parens to patmatch assignment statement to
+ make intent clearer
- 12/1
+ 12/3
----
-configure.in
- - changed release status to `release'
+configure.in,config.h.in
+ - check for imaxdiv, define HAVE_IMAXDIV if present
-[bash-3.1 frozen]
+expr.c
+ - expassign, exp2: use imaxdiv if available. Doesn't help with checks
+ for overflow from 10/25
- 12/8
+ 12/6
----
-[bash-3.1 released]
+lib/readline/complete.c
+ - compute_lcd_of_matches: if we're ignoring case in the matches, only
+ use what the user typed as the lcd if it matches the first match
+ (after sorting) up to the length of what was typed (if what the
+ user typed is longer than the shortest of the possible matches, use
+ the shortest common length of the matches instead). If it doesn't
+ match, use the first of the list of matches, as if case were not
+ being ignored. Fixes bug reported by Clark Wang
+ <dearvoid@gmail.com>
- 12/9
+ 12/7
----
-doc/{bash.1,version.texi},lib/readline/doc/version.texi
- - remove `beta1' from man page footer and texinfo documents
-
-variables.c
- - make sure winsize_assignment is protected by #ifdef READLINE, so
- minimal shell will compile
+builtins/cd.def
+ - cd_builtin: add code to return error in case cd has more than one
+ non-option argument, conditional on CD_COMPLAINS define (which is
+ not defined anywhere)
-builtins/read.def
- - make sure error cases free memory and run any unwind-protects to
- avoid memory leaks
+doc/{bash.1,bashref.texi}
+ - note that additional arguments to cd following the directory name
+ are ignored. Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
12/10
-----
-execute_cmd.c
- - change execute_command_internal to set $PIPESTATUS for ((...)) and
- [[ ... ]] commands
+lib/readline/input.c
+ - rl_read_key: don't need to increment key sequence length here; doing
+ it leads to an off-by-one error
-doc/{bash.1,bashref.texi,version.texi}
- - add documentation for ulimit -[iqx] and bump revision date
+lib/readline/macro.c
+ - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
+ fixed, can decrement current_macro_index by rl_key_sequence_length
+ (length of key sequence that closes keyboard macro)
- 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
+lib/readline/readline.c
+ - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
+ when ESC maps to a new keymap and we're converting meta characters
+ to ESC+key
+ - _rl_dispatch_subseq: better increment of rl_key_sequence_length
+ before we dispatch to a function in the ISFUNC case (where the
+ second increment above should have happened)
+ - rl_executing_keyseq: the full key sequence that ended up executing
+ a readline command. Available to the calling application, maintained
+ by _rl_dispatch_subseq, indexed by rl_key_sequence_length
+ - rl_executing_key: the key that was bound to the currently-executing
+ readline command. Same as the `key' argument to the function
- 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
+lib/readline/readline.h
+ - rl_executing_keyseq: extern declaration
+ - rl_executing_key: extern declaration
+ - rl_key_sequence_length: declaration moved here from rlprivate.h,
+ now part of public interface
- 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
+lib/readline/rlprivate.h
+ - new extern declaration for _rl_executing_keyseq_size, buffer size
+ for rl_executing_keyseq
-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 <DEL><DEL>
- bug in callback interface first reported by Mike Frysinger
+lib/readline/doc/rltech.texi
+ - documented new variables: rl_executing_key, rl_executing_keyseq,
+ rl_key_sequence_length
-execute_cmd.c
- - fixed a typo in execute_case_command
+ 12/13
+ -----
+bashline.c
+ - bash_execute_unix_command: replace ad-hoc code that searches
+ cmd_xmap for correct command with call to rl_function_of_keyseq
+ using rl_executing_keyseq; now supports key sequences longer
+ than two characters. Fixes bug reported by Michael Kazior
+ <kazikcz@gmail.com>
12/15
-----
-aclocal.m4
- - add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE
+make_cmd.c
+ - make_function_def: don't null out source_file before calling
+ make_command so it can be used later on when the function definition
+ is executed
-config.h.in
- - add HAVE_WCTYPE #define
+execute_cmd.c
+ - execute_intern_function: second argument is now FUNCTION_DEF *
+ instead of COMMAND *
+ - execute_command_internal: call execute_intern_function with the
+ new second argument (the entire FUNCTION_DEF instead of just the
+ command member)
+ - execute_intern_function: if DEBUGGER is defined, call
+ bind_function_def before calling bind_function, just like
+ make_function_def does (might be able to take out the call in
+ make_function_def depending on what the debugger does with it).
+ Fixes bug reported by <dethrophes@motd005>
-config-bot.h
- - add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This
- should catch the deficient NetBSD multibyte support
+expr.c
+ - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
+ fix typos and logic errors
12/16
-----
-parse.y
- - use CTLESC instead of literal '\001' when decode_prompt_string
- prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE
-
- 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)
+bashline.c
+ - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
+ command substitutions and doesn't treat them as command separators
+ - attempt_shell_completion: instead of taking first return from
+ find_cmd_name as command name to use for programmable completion,
+ use loop to skip over assignment statements. Fixes problem reported
+ by Raphael Droz <raphael.droz+floss@gmail.com>
+ - attempt_shell_completion: if we don't find a command name but the
+ command line is non-empty, assume the other words are all assignment
+ statements and flag that point is in a command position so we can
+ do command name completion
+ - attempt_shell_completion: if the word being completed is the first
+ word following a series of assignment statements, and the
+ command line is non-empty, flag that point is in a command position
+ so we can do command name completion
- 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
+lib/readline/history.c
+ - history_get_time: atol -> strtol
- 12/23
+ 12/18
-----
-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
-
-doc/bash.1
- - documented expansions for word and patterns in case statement
+parse.y
+ - parser_in_command_position: external interface to the
+ command_token_position macro for use by other parts of the shell,
+ like the completion mechanism
-builtins/ulimit.def,doc/{bashref.texi,bash.1}
- - added new -e and -r (nice and rtprio) options to ulimit; documented
- them
+externs.h
+ - extern declaration for parser_in_command_position
- 12/26
+ 12/19
-----
-variables.c
- - use `hmax' instead of `num' in sv_histsize to avoid integer overflow
- problems with intmax_t
builtins/read.def
- - add unwind-protect to restore rl_attempted_completion_function in
- case of a timeout
-
-{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
+ - read_builtin: make sure all calls to bind_read_variable are passed
+ a non-null string. Fixes bug reported by Dan Douglas
+ <ormaaj@gmail.com>
-lib/readline/misc.c
- - add a missing `return r' so that rl_digit_loop returns a meaningful
- value
-
-lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c
- - minor cleanups to satisfy compiler warnings, mostly removing unused
- variables
-
- 12/27
- -----
-support/Makefile.in
- - add LIBS_FOR_BUILD support; defaults to ${LIBS}
-
-Makefile.in
- - add LIBS_FOR_BUILD with no default value; use when linking programs
- using CC_FOR_BUILD (e.g., bashversion)
+bashline.c
+ - attempt_shell_completion: mark that we're in a command position if
+ we're at the start of the line and the parser is ready to accept
+ a reserved word or command name. Feature most recently suggested
+ by Peng Yu <pengyu.ut@gmail.com>
- 12/28
+ 12/21
-----
lib/readline/bind.c
- - fix rl_translate_keyseq bad translation of \M-\C-x sequences
+ - _rl_escchar: return the character that would be backslash-escaped
+ to denote the control character passed as an argument ('\n' -> 'n')
+ - _rl_isescape: return 1 if character passed is one that has a
+ backslash escape
+ - _rl_untranslate_macro_value: new second argument: use_escapes, if
+ non-zero translate to backslash escapes where possible instead of
+ using straight \C-x for control character `x'. Change callers
+ - _rl_untranslate_macro_value: now global
-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()
+lib/readline/rlprivate.h
+ - _rl_untranslate_macro_value: extern declaration
-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
+lib/readline/{macro.c,readline.h}
+ - rl_print_last_kbd_macro: new bindable function, inspired by patch
+ from Mitchel Humpherys
-subst.c
- - new function, expand_arith_string, calls expand_string_if_necessary;
- used where an arithmetic expression needs to be expanded
+lib/readline/funmap.c
+ - print-last-kbd-macro: new bindable command, bound to
+ rl_print_last_kbd_macro
-subst.h
- - new extern declaration for expand_arith_string
+lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
+ - print-last-kbd-macro: document.
-arrayfunc.c
- - in array_expand_index, call expand_arith_string to expand the
- subscript in a fashion consistent with other arithmetic expressions
+lib/readline/text.c
+ - _rl_insert_next: if we're defining a macro, make sure the key gets
+ added to the macro text (should really audit calls to rl_read_key()
+ and make sure the right thing is happening for all of them)
-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
+bashline.[ch]
+ - print_unix_command_map: new function, prints all bound commands in
+ cmd_xmap using rl_macro_dumper in a reusable format
-doc/{bash.1,bashref.texi}
- - changed description of pattern substitution to match the new
- semantics
+builtins/bind.def
+ - new -X option: print all keysequences bound to Unix commands using
+ print_unix_command_map. Feature suggested by Dennis Williamson
+ (2/2011)
-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 `bind -X' option
- 12/29
+ 12/24
-----
-support/signames.c
- - new file, initialize_signames() function from old mksignames.c. This
- file builds the signal_names array
-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
-
-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)
-
-trap.c
- - call initialize_signames from initialize_traps
-
-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
+doc/{bash.1,bashref.texi}
+ - add a couple of sentences to the description of the case modification
+ operators making it clearer that each character of parameter is
+ tested against the pattern, and that the pattern should only attempt
+ to match a single character. Suggested by Bill Gradwohl
+ <bill@ycc.com>
- 12/30
+ 12/28
-----
-command.h
- - new word flag: W_NOPROCSUB, inhibits process substitution on a word
-
-subst.c
- - change expand_word_internal to suppress process substitution if the
- word has the W_NOPROCSUB flag
-
shell.c
- - --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB
+ - init_noninteractive: instead of calling set_job_control(0) to
+ unconditionally turn off job control, turn on job control if
+ forced_interactive or jobs_m_flag is set
+ - shell_initialize: call initialize_job_control with jobs_m_flag as
+ argument so `bash -m script' enables job control while running the
+ script
-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
+jobs.c
+ - initialize_job_control: if the `force' argument is non-zero, turn on
+ job control even if the shell is not currently interactive
+ (interactive == 0)
- 12/31
+ 12/29
-----
-builtins/mkbuiltins.c
- - when cross-compiling, don't include <config.h>, 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
-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
+flags.h
+ - new extern declaration for jobs_m_flag
- 1/7/2006
- --------
-doc/bash.1
- - patch from Tim Waugh to replace some literal single quotes with
- \(aq, the groff special character for it
+builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
+ - added text clarifying the descriptions of cd -L and -P, suggested by
+ Padraig Brady <p@draigbrady.com>
+ - slight change to the description of `set -P' about resolving symbolic
+ links
+lib/readline/doc/rluser.texi
+ - Added an example to the programmable completion section: _comp_cd,
+ a completion function for cd, with additional verbiage. Text
+ includes a reference to the bash_completion project
+
+ 1/1/2012
+ --------
jobs.c
- - in realloc_jobs_list, make sure to zero out slots after j_lastj
- in the new list
+ - set_job_status_and_cleanup: note that a job is stopped due to
+ SIGTSTP (any_tstped) if job_control is set; there's no need to
+ test interactive
- 1/9
+ 1/5
---
-support/mksignames.c
- - make sure to include <signal.h> to get right value of NSIG from
- (usually) <sys/signal.h>
+quit.h
+ - LASTSIG(): new macro, expands to signal number of last terminating
+ signal received (terminating_signal or SIGINT)
- 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 <mike.stroyan@hp.com>
+trap.c
+ - first_pending_trap: returns lowest signal number with a trap pending
+ - trapped_signal_received: set to the last trapped signal the shell
+ received in trap_handler(); reset to 0 in run_pending_traps
-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/read.def
+ - read_builtin: changes to posix-mode (posixly_correct != 0) to make
+ `read' interruptible by a trapped signal. After the trap runs,
+ read returns 128+sig and does not assign the partially-read line
+ to the named variable(s). From an austin-group discussion started
+ by David Korn
1/11
----
-bashjmp.h
- - new value for second argument to longjmp: SIGEXIT. Reserved for
- future use
+doc/{bash.1,bashref.texi}
+ - slight changes to the descriptions of the compat32 and compat40 shell
+ options to clarify their meaning
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
+lib/readline/{colors.[ch],parse-colors.[ch]}
+ - new files, part of color infrastructure support
- 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'
-
-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
- <twaugh@redhat.com>
-
-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
-
-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 <init@kth.se>
+Makefile.in,lib/readline/Makefile.in
+ - arrange to have colors.o and parse-colors.o added to readline
+ library
-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 <craig@synect.com> with redoing `ctd[ESC]' (empty
- insert after change to)
-
-shell.c
- - change set_shell_name so invocations like "-/bin/bash" are marked as
- login shells
-
-doc/bash.1
- - add note about destroying functions with `unset -f' to the section
- on shell functions
-
-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 <vapier@gentoo.org>
+{configure,config.h}.in
+ - check for stdbool.h, define HAVE_STDBOOL_H if found
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
+lib/readline/bind.c
+ - colored_stats: new bindable variable, enables using colors to
+ indicate file type when listing completions
-lib/readline/doc/rltech.texi
- - documented valid values for timeout in rl_set_keyboard_input_timeout
+lib/readline/complete.c
+ - _rl_colored_stats: new variable, controlled by colored-stats bindable
+ variable
+ - colored_stat_start, colored_stat_end: new functions to set and reset
+ the terminal color appropriately depending on the type of the
+ filename to be printed
+ - print_filename: changes to print colors if `colored-stats' variable
+ set. Changes contributed by Raphael Droz
+ <raphael.droz+floss@gmail.com>
-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
+lib/readline/readline.c
+ - rl_initialize_everything: add call to _rl_parse_colors to parse
+ color values out of $LS_COLORS. May have to add to rl_initialize
+ to make more dynamic if LS_COLORS changes (which doesn't happen
+ very often, if at all)
- 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 <jckn@gmx.net>
+lib/readline/rlprivate.h
+ - _rl_colored_stats: new extern declaration
- 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)
+lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
+ - colored-stats: document new bindable readline variable
- 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
+lib/readline/colors.c
+ - _rl_print_color_indicator: call rl_filename_stat_hook before calling
+ lstat/stat so we can get color indicators for stuff like
+ $HOME/Applications
-execute_cmd.c
- - add call to QUIT at beginning of execute_command_internal; better
- responsiveness to SIGINT
+lib/readline/complete.c
+ - stat_char: call rl_filename_stat_hook before calling lstat/stat
- 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
+findcmd.[ch],execute_cmd.c
+ - search_for_command: now takes a second `flags' argument; changed
+ header function prototype and callers
+ - search_for_command: if (flags & 1), put the command found in $PATH
+ into the command hash table (previous default behavior)
execute_cmd.c
- - add call to QUIT at end of execute_command
+ - is_dirname: call search_for_command with flags argument of 0 so it
+ doesn't try to put something in the command hash table
- 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.
+bashline.c
+ - bash_command_name_stat_hook: a hook function for readline's
+ filename_stat_hook that does $PATH searching the same way that
+ execute_cmd.c:execute_disk_command() does it, and rewrites the
+ passed filename if found. Does not put names into command hash
+ table. This allows command name completion to take advantage
+ of `visible-stats' and `colored-stats' settings.
+ - executable_completion: new function, calls the directory completion
+ hook to expand the filename before calling executable_file or
+ executable_or_directory; change command_word_completion_function to
+ call executable_completion. This allows $HOME/bin/[TAB] to do
+ command completion and display alternatives
- 1/24
+ 1/17
----
-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)
-
-{input,jobs,nojobs}.c
- - add calls to CHECK_TERMSIG where appropriate (reading input and
- waiting for children)
- - include quit.h if necessary
+pcomplete.c
+ - gen_command_matches: now takes a new second argument: the command
+ name as deciphered by the programmable completion code and used
+ to look up the compspec; changed callers (gen_compspec_completions)
+ - gen_shell_function_matches: now takes a new second argument: the
+ command that originally caused the completion function to be
+ invoked; changed callers (gen_compspec_completions))
+ - build_arg_list: now takes a new second argument: the command name
+ corresponding to the current compspec; changed callers
+ (gen_command_matches, gen_shell_function_matches)
+ - build_arg_list: now uses `cmd' argument to create $1 passed to
+ invoked command or shell function
+ - gen_compspec_completions: if we skipped a null command at the
+ beginning of the line (e.g., for completing `>'), add a new word for
+ it at the beginning of the word list and increment nw and cw
+ appropriately. This is all a partial fix for the shortcoming
+ pointed out by Sung Pae <sungpae@gmail.com>
- 1/25
+ 1/18
----
-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
-sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def
- - rename termination_unwind_protect to termsig_sighandler
+{configure,config.h}.in
+ - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
+ define HAVE_DECL_AUDIT_USER_TTY if both are found
-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
+lib/readline/rlconf.h
+ - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
+ tty auditing system if it's available and enabled
-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
+lib/readline/util.c
+ - _rl_audit_tty: new function, send a string to the kernel tty audit
+ system
-{jobs,nojobs}.c
- - change call to termsig_sighandler to call termsig_handler directly,
- as was intended
+lib/readline/rlprivate.h
+ - _rl_audit_tty: new extern declaration
-parse.y,builtins/read.def
- - set terminate_immediately to non-zero value when reading interactive
- input, as is done with interrupt_immediately
+lib/readline/readline.c
+ - readline: call _rl_audit_tty with line to be returned before returning
+ it if the Linux tty audit system is available and it's been enabled
+ in rlconf.h Original patch from Miroslav Trmac; recent request
+ from Miroslav Lichvar <mlichvar@redhat.com>
- 1/26
+ 1/21
----
-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
- 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 <andrewparker@bigfoot.com>
+lib/readline/readline.c:
+ - _rl_dispatch_subseq: add an inter-character timeout for multi-char
+ key sequences. Suggested by <rogerx.oss@gmail.com>. Still needs
+ work to make a user-settable variable
-bashline.c
- - add necessary directory name dequoting to bash_directory_expansion
- and bash_directory_completion_hook
+parse.y
+ - shell_getc: make code that uses the pop_alias dependent on ALIAS
+ define
-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
+variables.h
+ - sv_tz: extern define should only depend on HAVE_TZSET
- 1/28
- ----
-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
+expr.c
+ - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
+ move assignment to `ind' inside define
+ - expr_bind_array_element: declaration and uses need to be #ifdef
+ ARRAY_VARS
-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 <vapier@gentoo.org>
+arrayfunc.h
+ - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
+ defined; used in subst.c unconditionally
-{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
+sig.h
+ - make the signal blocking functions not dependent on JOB_CONTROL
-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.
-
-lib/sh/Makefile.in,Makefile.in
- - add necessary entries for eaccess.[co]
+sig.c
+ - sigprocmask: make the replacement definition not dependent on
+ JOB_CONTROL
-test.c
- - change calls to test_stat to call sh_stat
+trap.c
+ - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
+ HAVE_POSIX_SIGNALS and BSD signals
-{test,general}.c
- - change calls to test_eaccess to call sh_eaccess
+ 1/24
+ ----
-externs.h
- - new extern declaration for sh_eaccess
+print_cmd.c
+ - print_redirection_list: change the conditions under which
+ r_duplicating_output_word is mapped to r_err_and_out to more or
+ less match those used in redir.c. Fixes bug pointed out by
+ Dan Douglas <ormaaj@gmail.com>
-test.[ch]
- - remove test_stat and test_eaccess
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)
-
- 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)
-
- 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 <mike.stroyan@hp.com>
+lib/readline/signals.c
+ - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
+ unless SIGWINCH is defined. Fixes bug reported by Pierre Muller
+ <pierre.muller@ics-cnrs.unistra.fr>
- 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 <egmont@uhulinux.hu>
+doc/{bash.1,bashref.texi}
+ - small modifications to the introduction to the REDIRECTION section
+ to describe how redirections can modify file handles
+ - small modification to the section describing base#n to make it
+ clearer that n can be denoted using non-numerics. From a posting
+ by Linda Walsh <bash@tlinx.org>
- 2/8
+ 2/2
---
-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/readline/rlconf.h
- - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc
- filename
-
-support/shobj-conf
- - changes to make loadable builtins work on MacOS X 10.[34]
-
-builtins/pushd.def
- - changes to make it work as a loadable builtin compiled with gcc4
+builtins/printf.def
+ - printf_builtin: make sure vbuf is intialized and non-null when -v
+ is supplied, since other parts of the code assume that it's not
+ null (e.g., bind_printf_variable()). Fixes bug reported by Jim
+ Avera <james_avera@yahoo.com>
- 2/9
+ 2/4
---
-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
-
-lib/readline/doc/rluser.texi
- - add description of /etc/inputrc as ultimate default startup file
-
- 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.
+lib/readline/undo.c
+ - _rl_free_undo_list: new function, old body of rl_free_undo_list,
+ frees undo entries in UNDO_LIST * passed as argument
+ - rl_free_undo_list: call _rl_free_undo_list
-variables.c
- - shells running in posix mode do not set $HOME, as POSIX apparently
- requires
+lib/readline/rlprivate.h
+ - _rl_free_undo_list: new extern declaration
+ - _rl_keyseq_timeout: new extern declaration (see below)
- 2/15
- ----
-braces.c
- - mkseq() now takes the increment as an argument; changed callers
+lib/readline/misc.c
+ - rl_clear_history: new function. Clears the history list and frees
+ all associated data similar to history.c:clear_history(), but
+ takes rl_undo_list into account and frees and UNDO_LISTs saved as
+ `data' members of a history list entry
- 2/16
- ----
-builtins/hash.def
- - print `hash table empty' message to stdout instead of stderr
+lib/readline/doc/rltech.texi
+ - rl_clear_history: documented
- 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
+ - _rl_keyseq_timeout: new variable to hold intra-key timeout value
+ from 1/21 fix; specified in milliseconds. Default value is 500
+ - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key
+ timeout if it's greater than 0; no timeout if <= 0
+ - _rl_dispatch_subseq: don't check for queued keyboard input if we have
+ pushed or pending input, or if we're reading input from a macro
- 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
-
- 2/21
- ----
-builtins/hash.def
- - don't print `hash table empty' message in posix mode
-
- 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
- <bvila@free.fr>
-
-braces.c
- - add QUIT; statements to mkseq to make large sequence generation
- interruptible
-
- 2/28
- ----
-lib/glob/glob.c
- - initialize nalloca in glob_vector
-
- 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/readline/bind.c
+ - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout
+ - string_varlist: add keyseq-timeout
+ - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout;
+ clamps negative values at 0 for now
+ - _rl_get_string_variable_value: return value for keyseq-timeout
- 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 <psusi@cfl.rr.com>
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+ - keyseq-timeout: documented
-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
+lib/readline/isearch.c
+ - _rl_isearch_dispatch: modification to fix from 7/18 to not use
+ cxt->keymap and cxt->okeymap, since by the time this code is
+ executed, they are equal. Use `f' to check for rl_insert or
+ unbound func
+ - _rl_isearch_dispatch: if we're switching keymaps, not in
+ callback mode, and don't have pending or pushed input, use
+ _rl_input_queued to resolve a potentially ambiguous key sequence.
+ Suggested by Roger Zauner <rogerx.oss@gmail.com>
+ - _rl_isearch_dispatch: if we have changed keymaps and resolved to
+ an editing function (not self-insert), make sure we stuff the
+ right characters back onto the input after changing the keymap
+ back so the right editing function is executed after the search
+ is terminated. Rest of fix for bug reported by Roger Zauner
+ <rogerx.oss@gmail.com>
- 3/6
+ 2/5
---
-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
- - change extern declaration for get_directory_stack
-
-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 <llattanzi@apple.com> (cd fails because
- the tildes won't be expanded after variable expansion)
+builtins/gen-helpfiles.c
+ - new file: reads struct builtin and writes the long docs to files
+ in the `helpdirs' subdirectory. The filename is given in the
+ previously-unused `handle' member of the struct builtin. Links
+ with `tmpbuiltins.o', which is created by Makefile to have the
+ right long documentation. When not cross-compiling, gets the
+ right #defines based on configuration options from config.h instead
+ of trying to parse conditional parts of def files. Fixes
+ shortcoming pointed out by Andreas Schwab <schwab@linux-m68k.org>
-jobs.c
- - changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP
- won't get a SIGCONT
+builtins/Makefile.in
+ - tmpbuiltins.c: new generated file, created to enable creation of
+ separate helpfiles based on correct #defines instead of trying to
+ parse conditional parts of def files
+ - gen-helpfiles: new program to generate helpfiles, links with
+ tmpbuiltins.o
+ - HELPFILES_TARGET: new target, substituted by configure to `helpdoc'
+ if separate helpfiles requested
+ - targets: new target, libbuiltins.a and $(HELPFILES_TARGET)
+ - CREATED_OBJECTS: new variable, holds created object files for
+ make clean; changed make clean to remove created objects
+ - helpdoc: changed to call gen-helpfiles instead of mkbuiltins
-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
+Makefile.in
+ - when building libbuiltins.a, recursively call make with `targets'
+ argument to make sure separate helpfiles get built
- 3/7
- ---
-builtins/reserved.def
- - changed runs of spaces to tabs in variables help text to make
- indentation better when displayed
+configure.in
+ - substitute `helpdoc' as value of HELPFILES_TARGET if
+ --enable-separate-helpfiles supplied as configure argument
builtins/mkbuiltins.c
- - changes to avoid the annoying extra space that keeps gettext from
- being passed an empty string
-
- 3/9
- ---
-lib/glob/glob.c
- - make sure globbing is interrupted if the shell receives a terminating
- signal
-
- 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
-
- 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
-
- 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 <pterjan@mandriva.com>
- - 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).
-
- 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
+ - `-nofunctions': new argument, causes mkbuiltins to not write value
+ for function implementing a particular builtin to struct builtin
+ and to write document file name to `handle' member of struct builtin
+ - no longer writes separate helpfiles; that is left to gen-helpfiles
-subst.h
- - changed extern declaration for expand_arith_string
-
-arrayfunc.c
- - changed call to expand_arith_string in array_expand_index
-
- 3/31
- ----
-lib/readline/histfile.c
- - change read_history_range to allow windows-like \r\n line endings
-
-execute_cmd.c
- - add new variable, line_number_for_err_trap, currently set but not
- used
-
- 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
-
- 4/3
- ---
-subst.c
- - slight change to wcsdup() replacement: use memcpy instead of wcscpy
-
-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)
-
- 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
-
-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)
-
- 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
-
- 4/6
+ 2/8
---
-{configure,config.h}.in
- - add separate test for isnan in libc, instead of piggybacking on
- isinf-in-libc test
-
-lib/sh/snprintf.c
- - separate the isnan replacement function so it's guarded by its own
- HAVE_ISNAN_IN_LIBC define
-
-lib/sh/wcsdup.c
- - new file, contains replacement wcsdup library function from subst.c
- with change back to using wcscpy
-
-Makefile.in,lib/sh/Makefile.in
- - make sure wcsdup.c is compiled and linked in
-
subst.c
- - wcsdup now found in libsh; removed static definition
+ - make sure last_command_exit_value is set to a non-zero value before
+ any calls to report_error, since `-e' set will short-circuit
+ report_error. Fixes bug reported by Ewan Mellor
+ <Ewan.Mellor@eu.citrix.com>
- 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
+variables.c
+ - make_local_array_variable: added second argument; if non-zero,
+ function will return an existing local associative array variable
+ instead of insisting on an indexed array
-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
+variable.h,subst.c
+ - make_local_array_variable: changed prototype and caller
-support/shobj-conf
- - Mac OS X no longer likes the `-bundle' option to gcc when creating a
- dynamic shared library
+builtins/declare.def
+ - declare_internal: add second arg to call to make_local_array_variable;
+ making_array_special, which indicates we're processing an
+ assignment like declare a[b]=c. Fixes seg fault resulting from
+ a being an already-declared local associative array variable in a
+ function. Ubuntu bash bug 928900.
- 4/11
+ 2/14
----
-lib/tilde/tilde.c
- - don't try to dereference user_entry if HAVE_GETPWENT isn't defined
-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
+execute_cmd.c
+ - execute_command_internal: if redirections into or out of a loop fail,
+ don't try to free ofifo_list unless saved_fifo is non-zero. It's
+ only valid if saved_fifo is set
- 4/21
+ 2/15
----
-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)
+{arrayfunc,braces,variables}.c
+ - last_command_exit_value: make sure it's set before any calls to
+ report_error, since -e will cause that to exit the shell
- 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
+builtins/common.c
+ - get_job_by_name: call internal_error instead of report_error so this
+ doesn't exit the shell
- 4/28
+ 2/18
----
-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
+builtins/evalstring.c
+ - parse_and_execute: make sure the file descriptor to be redirected to
+ is 1 before calling cat_file. One fix for bug reported by Dan Douglas
+ <ormaaj@gmail.com>
- 5/4
- ---
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 <vapier@gentoo.org> prompted the discovery
-
-aclocal.m4
- - slight change to test for /dev/fd to compensate for a linux
- failing; suggested by Mike Frysinger <vapier@gentoo.org>
-
- 5/9
- ---
-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
+ - read_token_word: don't return NUMBER if a string of all digits
+ resolves to a number that overflows the bounds of an intmax_t.
+ Other fix for bug reported by Dan Douglas <ormaaj@gmail.com>
-arrayfunc.h
- - new extern declarations for expand_compound_array_assignment and
- assign_compound_array_list
+ 2/19
+ ----
+lib/sh/strtrans.c
+ - ansicstr: use 0x7f as the boundary for characters that translate
+ directly from ASCII to unicode (\u and \U escapes) instead of
+ UCHAR_MAX, since everything >= 0x80 requires more than one byte.
+ Bug and fix from John Kearney <dethrophes@web.de>
-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
+builtins/printf.def
+ - tescape: ditto for printf \u and \U escape sequences
- 5/11
+ 2/20
----
-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
+lib/sh/unicode.c
+ - u32toutf8: fix to handle encodings up to six bytes long correctly
+ (though technically UTF-8 only has characters up to 4 bytes long).
+ Report and fix from John Kearney <dethrophes@web.de>
+ - u32toutf8: first argument is now an unsigned 32-bit quantity,
+ changed callers (u32cconv) to pass c instead of wc
+ - u32reset: new function, resets local static state to uninitialized
+ (locale information, currently)
- 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
+ - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
+ cached locale information used by u32cconv. From a report from
+ John Kearney <dethrophes@web.de>
- 5/21
+ 2/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
+doc/{bash,builtins}.1
+ - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
-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)
-
-lib/readline/rlprivate.h
- - new extern declarations for _rl_copy_undo_{entry,list}
+lib/sh/unicode.c
+ - u32cconv: only assume you can directly call wctomb on the passed
+ value if __STDC_ISO_10646__ is defined and the value is <=
+ 0x7fffffff
+ - stub_charset: return locale as default instead of "ASCII", let
+ rest of code decide what to do with it
-execute_cmd.c
- - change execute_cond_node so that quoting the rhs of the =~
- operator forces string matching, like the == and != operators
+lib/readline/parens.c
+ - _rl_enable_paren_matching: make paren matching work in vi insert
+ mode. Bug report from <derflob@derflob.de>
- 5/23
+ 2/22
----
-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
+lib/sh/shquote.c
+ - sh_backslash_quote: quote tilde in places where it would be
+ expanded. From a report from John Kearney <dethrophes@web.de>
- 5/24
+ 2/23
----
-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
-
- 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 <olecom@gmail.com>
- - 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 <dkg-debian.org@fifthhorseman.net>
-
-[bash-3.2-alpha frozen]
-
- 6/22
- ----
-syntax.h
- - add new CBLANK (for [:blank:] class) flag value for syntax table and
- shellblank(c) character test macro
-
-mksyntax.c
- - add support for setting CBLANK flag in the syntax table depending on
- whether or not isblank(x) returns true for character x
-
-locale.c
- - change locale_setblanks to set or unset CBLANK flag for each
- character when locale changes
+ - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
+ JOB_CONTROL, since the frame is only created if JOB_CONTROL is
+ defined. Bug and fix from Doug Kehn <rdkehn@yahoo.com>
-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
- <svdb+bug-bash@stack.nl>
-
-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 <ittyad@qlusters.com>
-
- 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 <rlrevell@joe-job.com>
-
- 6/29
+ 2/25
----
-lib/glob/xmbsrtowcs.c
- - make sure destp is non-null before assigning a 0 to *destp in
- xdupmbstowcs. Fix from Louiwa Salem <loulwas@us.ibm.com>
-
-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
- <loulwas@us.ibm.com>
-
-lib/readline/bind.c
- - in rl_generic_bind(), make sure that the keys array is freed before
- an error return. Fix from Louiwa Salem <loulwas@us.ibm.com>
+error.c
+ - report_error: make sure last_command_exit_value is non-zero before
+ we call exit_shell, since the exit trap may reference it. Call
+ exit_shell with last_command_exit_value to allow exit statuses
+ other than 1
+
+unicode.c
+ - stub_charset: use local static buffer to hold charset, don't change
+ value returned by get_locale_var. Based on idea and code from
+ John Kearney <dethrophes@web.de>
+ - u32toutf16: function to convert unsigned 32-bit value (unicode) to
+ UTF-16. From John Kearney <dethrophes@web.de>
+ - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
+ is two bytes, send result to wcstombs, return if not encoding error.
+ From John Kearney <dethrophes@web.de>
+ - u32cconv: return UTF-8 conversion if iconv conversion to local
+ charset is unsupported
- 7/1
+ 3/2
---
-builtins/read.def
- - make sure all editing code is protected with #ifdef READLINE, esp.
- unwind-protect that restores the default completion function
-
-lib/readline/display.c
- - make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha]
+lib/readline/complete.c
+ - print_filename: if there is no directory hook, but there is a stat
+ hook, and we want to append a slash to directories, call the stat
+ hook before calling path_isdir on the expanded directory name.
+ Report and pointer to fix from Steve Rago <sar@nec-labs.com>
- 7/5
+ 3/3
---
-builtins/printf.def
- - add more of echo's write error handling to printf. Suggested by
- martin.wilck@fujitsu-siemens.com
+builtins/evalstring.c
+ - parse_and_execute: fix to change of 2/18: make sure the file
+ descriptor being redirected to is 0 before calling cat_file when
+ we see something like $(< file). Real fix for bug reported by
+ Dan Douglas <ormaaj@gmail.com>
- 7/7
- ---
-lib/readline/display.c
- - save and restore local_prompt_len in rl_{save,restore}_prompt
- [in bash-3.2-alpha]
+subst.c
+ - parameter_brace_patsub: run the replacement string through quote
+ removal even if the expansion is within double quotes, because
+ the parser and string extract functions treat the quotes and
+ backslashes as special. If they're treated as special, quote
+ removal should remove them (this is the Posix position and
+ compatible with ksh93). THIS IS NOT BACKWARDS COMPATIBLE.
- 7/8
+ 3/4
---
-[bash-3.2-alpha released]
+lib/readline/complete.c
+ - rl_menu_complete: fix to make show-all-if-ambiguous and
+ menu-complete-display-prefix work together if both are set. Fix
+ from Sami Pietila <sami.pietila@gmail.com>
- 7/9
+ 3/5
---
-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
-
-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
-
- 7/18
- ----
-lib/readline/{display,terminal}.c
- - remove #ifdefs for HACK_TERMCAP_MOTION so we can use
- _rl_term_forward_char in the redisplay code unconditionally
+bashline.c
+ - dircomplete_expand_relpath: new variable, if non-zero, means that
+ `shopt -s direxpand' should expand relative pathnames. Zero by
+ default, not user-settable yet
+ - bash_directory_completion_hook: if we have a relative pathname that
+ isn't changed by canonicalization or spell checking after being
+ appended to $PWD, then don't change what the user typed. Controlled
+ by dircomplete_expand_relpath
-lib/readline/rlprivate.h
- - new extern declaration for _rl_term_forward_char
+ 3/7
+ ---
+m4/timespec.m4
+ - new macros, cribbed from gnulib and coreutils: find out whether we
+ have `struct timespec' and what file includes it
-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
+m4/stat-time.m4
+ - new macros, cribbed from gnulib and coreutils: find out whether the
+ mtime/atime/ctime/etctime fields of struct stat are of type
+ struct timespec, and what the name is
- 7/25
- ----
-lib/malloc/{stats,table}.h
- - include <string.h> for prototypes for memset, strlen
+include/stat-time.h
+ - new file, cribbed from gnulib, with additions from coreutils: include
+ the right file to get the struct timespec define, or provide our own
+ replacement. Provides a bunch of inline functions to turn the
+ appropriate members of struct stat into `struct timespec' values,
+ zeroing out the tv_nsec field if necessary
-lib/termcap/{termcap,tparam}.c
- - include <string.h> and provide macro replacement for bcopy if
- necessary
+test.c
+ - include "stat-time.h" for the nanosecond timestamp resolution stuff
+ - stat_mtime: new function, returns struct stat and the mod time
+ normalized into a `struct timespec' for the filename passed as the
+ first argument
+ - filecomp: call stat_mtime instead of sh_stat for each filename
+ argument to get the mtime as a struct timespec
+ - filecomp: call timespec_cmp instead of using a straight arithmetic
+ comparison for the -nt and -ot operators, using timespec returned by
+ stat_mtime. Added functionality requested by by Werner Fink
+ <werner@suse.de> for systems that can support it
- 7/27
+ 3/10
----
-lib/readline/histexpand.c
- - add support for `<<<' here-string redirection operator to
- history_tokenize_word. Bug reported by agriffis@gentoo.org
+include/posixdir.h
+ - REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature
+ test macros to decide whether dirent.d_ino is present and usable;
+ define D_INO_AVAILABLE. Report and fix from Fabrizion Gennari
+ <fabrizio.ge@tiscali.it>
+ - D_FILENO_AVAILABLE: define if we can use dirent.d_fileno
-externs.h
- - don't add prototype for strerror() if HAVE_STRERROR defined
+lib/sh/getcwd.c
+ - use D_FILENO_AVAILABLE to decide whether or not to compile in
+ _path_checkino and whether or not to call it. Report and initial
+ fix from Fabrizion Gennari <fabrizio.ge@tiscali.it>
- 7/29
- ----
-subst.c
- - in list_string, use `string' instead of `s' -- s is not initialized
+lib/readline/signals.c
+ - make sure all occurrences of SIGWINCH are protected by #ifdef
- 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 <pechtcha@cs.nyu.edu>
+sig.c
+ - make sure all occurrences of SIGCHLD are protected by #ifdef
- 8/16
- ----
-lib/readline/readline.h
- - new #define, READERR, intended to be used to denote read/input errors
+nojobs.c
+ - make sure SA_RESTART is defined to 0 if the OS doesn't define it
-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)
+version.c
+ - show_shell_version: don't use string literals in printf, use %s.
+ Has added benefit of removing newline from string to be translated
-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 <mathieu.bonnet@nalkym.org>
+trap.c
+ - queue_sigchld_trap: new function, increments the number of pending
+ SIGCHLD signals by the argument, which is by convention the number
+ of children reaped in a call to waitchld()
-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 <gschafer@zip.com.au>
+trap.h
+ - queue_sigchld_trap: new extern declaration
- 8/17
- ----
-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
+jobs.c
+ - waitchld: if called from the SIGCHLD signal handler (sigchld > 0),
+ then call queue_sigchld_trap to avoid running the trap in a signal
+ handler context. Report and original fix from Siddhesh Poyarekar
+ <siddhesh@redhat.com>
- 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
+lib/sh/unicode.c
+ - u32tocesc: take an unsigned 32-bit quantity and encode it using
+ ISO C99 string notation (\u/\U)
+ - u32cconv: call u32tocesc as a fallback instead of u32cchar
+ - u32cconv: call u32tocesc if iconv cannot convert the character.
+ Maybe do the same thing if iconv_open fails
+ - u32reset: call iconv_close on localconv if u32init == 1
- 8/29
+ 3/11
----
-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
-
-[bash-3.2-beta frozen]
-
- 9/5
- ---
-[bash-3.2-beta released]
+config-top.h
+ - CHECKWINSIZE_DEFAULT: new define, set to initial value of
+ check_window_size (shopt checkwinsize): 0 for off, 1 for on.
+ Default is 0
- 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 <vp@di.uevora.pt>
-
-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 <vp@di.uevora.pt>
+{jobs,nojobs}.c
+ - check_window_size: default initial value to CHECKWINSIZE_DEFAULT
- 9/12
+ 3/13
----
-builtins/printf.def
- - make sure `%q' format specifier outputs '' for empty string arguments
- Bug reported by Egmont Koblinger <egmont@uhulinux.hu>
-
-make_cmd.c
- - change make_here_document to echo lines in here-doc if set -v has
- been executed. Reported by Eduardo Ochs <eduardoochs@gmail.com>
-
-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
-
-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
+doc/bashref.texi
+ - change text referring to the copying restrictions to that
+ recommended by the FSF (no Front-Cover Texts and no Back-Cover
+ Texts)
-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
+lib/readline/doc/{history,rlman,rluserman}.texi
+ - change text referring to the copying restrictions to that
+ recommended by the FSF (no Front-Cover Texts and no Back-Cover
+ Texts)
- 9/13
+ 3/15
----
-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 <alexeyt@freeshell.org>
-
-configure.in
- - change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share,
- like bashdb installs itself. Reported by Nick Brown
- <nickbroon@blueyonder.co.uk>
+array.c
+ - LASTREF_START: new macro to set the starting position for an array
+ traversal to `lastref' if that's valid, and to the start of the array
+ if not. Used in array_reference, array_insert, array_remove
+ - array_remove: try to be a little smarter with lastref instead of
+ unconditionally invalidating it
- 9/14
+ 3/16
----
-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
+array.c
+ - array_insert: fix memory leak by deleting element to be added in the
+ case of an error
- 9/19
+ 3/18
----
-subst.c
- - make dequote_list extern so other parts of the shell can use it
-
-subst.h
- - extern declaration for dequote_list
-
-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
- <ddawson@icehouse.net>
+lib/sh/mbschr.c
+ - mbschr: don't call mbrlen unless is_basic is false; devolves to a
+ straight character-by-character run through the string
- 9/21
+ 3/19
----
-[bash-3.2 frozen]
+stringlib.c
+ - substring: use memcpy instead of strncpy, since we know the length
+ and are going to add our own NUL terminator
- 10/9
+ 3/20
----
-support/shobj-coonf
- - change -fpic to -fPIC for FreeBSD systems (needed for SPARC at least)
-
- 10/11
- -----
-[bash-3.2 released]
-
- 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 <gschafer@zip.com.au>
-
- 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
- - add -e and -r to $SHORT_DOC usage string
-
-po/ru.po
- - fix encoding; Russian text in the file is actually encoded in KOI8-R
-
- 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
- <mike.stroyan@hp.com>
-
-doc/bashref.texi
- - fixes for typos and misspellings sent in by Brian Gough
-
- 10/24
- -----
-support/shobj-conf
- - make netbsd shared library creation like openbsd's until I hear
- differently (called using `gcc -shared')
-
- 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
-
- 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 <mwoehlke@tibco.com> and Stuart Shelton
- <srcshelton@gmail.com>
+ - parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted
+ null string (a list with one element for which
+ QUOTED_NULL(list->word->word) returns true), return the quoted null
+ and set the flags in the returned word to indicate it. Fixes bug
+ reported by Mark Edgar <medgar123@gmail.com>
+lib/sh/tmpfile.c
+ - use random(3) instead of get_random_number to avoid perturbing the
+ random sequence you get using $RANDOM. Bug report and fix from
+ Jurij Mihelic <jurij.mihelic@fri.uni-lj.si>
-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 <mwoehlke@tibco.com>
- and Stuart Shelton <mwoehlke@tibco.com>
-
- 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
-
- 11/1
+ 3/21
----
-execute_cmd.c
- - reset subshell_environment to 0 after make_child() call in
- execute_null_command. Fix provided by Roy Marples
- <uberlord@gentoo.org>
+config-top.h
+ - OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize
+ sequential indexed array assignment patterns. Defined to 1 by
+ default
- 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
+array.c
+ - array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined,
+ start the search at lastref (see change from 3/15)
- 11/9
+ 3/27
----
-lib/readline/display.c
- - 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 <egmont@uhulinux.hu>
-
- 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 <ebb9@byu.net>
-
- 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
- - in stat_char, check for `//server' on cygwin and return `/', since
- it will always behave as a directory. Fix from Eric Blake
-
-lib/readline/histfile.c
- - Cygwin's mmap() works in recent versions, so don't #undef HAVE_MMAP.
- Recommendation from Eric Blake
-
-lib/readline/rlwinsize.h
- - make sure tcflow() is defined on SCO Unix. Fix from William Bader
-
-aclocal.m4
- - add check for localeconv to AM_INTL_SUBDIR macro
-
-config.h.in
- - add HAVE_LOCALECONV
-
-lib/sh/snprintf.c
- - add check for HAVE_LOCALECONV for GETLOCALEDATA macro
-
-general.[ch]
- - first argument to legal_number is now `const char *'
-
- 11/14
- -----
-lib/readline/{readline,rlprivate}.h
- - move rl_display_prompt declaration from rlprivate.h to readline.h
-
-lib/readline/util.h
- - new function: rl_free(void *mem), for use by users of readline dlls
- on Windows
-
-lib/readline/readline.h
- - new extern declaration for rl_free
-
-lib/readline/doc/rltech.texi
- - document rl_free and rl_display_prompt for use by application writers
-
- 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
+print_cmd.c
+ - debug_print_word_list: new debugging function, prints a word list
+ preceded by an optional string and using a caller-specified
+ separator
- 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 <jidanni@jidanni.org>
+ 4/1
+ ---
+command.h
+ - W_ASSNGLOBAL: new flag, set to indicate declare -g
- 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 <bash@tlinx.org>
+execute_cmd.c
+ - fix_assignment_words: note that we have a -g argument to an assignment
+ builtin and set the W_ASSNGLOBAL flag in the variable word
- 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
-
-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
+ - dump_word_flags: print out W_ASSNGLOBAL if present
+ - do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set
+ and W_ASSNGLOBAL is not. Don't want to create a local variable even
+ if variable_context is non-zero if ASSNGLOBAL is set. Fixes bug
+ reported by Bill Gradwohl <bill@ycc.com>
- 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
-
-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 <bensberg@justemail.net>
-
-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 <bensberg@justemail.net>
-
-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.
-
-lib/readline/rlprivate.h
- - extern declaration for _rl_revert_all_lines
-
-rldefs.h
- - add #undef HAVE_STRCOLL if STRCOLL_BROKEN is defined, prep to move
- from config.h.in. Problem reported by Valerly Ushakov
- <uwe@ptc.spbu.ru>
-
- 11/25
- -----
+ 4/7
+ ---
lib/readline/readline.c
- - 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
-
- 11/27
- -----
-doc/{bash.1,bashref.texi}
- - make sure to be explicit that `typeset +r' cannot remove the readonly
- attribute from a variable
+ - _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to
+ ESC processing when in vi mode. After hitting ESC, readline will
+ wait up to _rl_keyseq_timeout*1000 microseconds (if set) for
+ additional input before dispatching on the ESC and switching to
+ command/movement mode. Completes timeout work suggested by
+ <rogerx.oss@gmail.com>; this prompted by report from Barry Downes
+ <barry.downes@gmail.com>
- 11/28
- -----
-lib/sh/zmapfd.c
- - new file, implements zmapfd(), which takes a file and returns its
- contents in a string
+lib/sh/shmbchar.c
+ - sh_mbsnlen: new function, returns the number of (possibly multibyte)
+ characters in a passed string with a passed length, examining at most
+ maxlen (third argument) bytes
externs.h
- - extern declaration for zmapfd
-
- 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)
-
- 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 <James.M.Botte@lowes.com>
-
- 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
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_ttymsg, _rl_errmsg
-
-lib/readline/{bind,callback,complete,display,rltty}.c
- - use _rl_ttymsg/_rl_errmsg instead of direct writes to stderr
-
-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 <ebb9@byu.net>
-
- 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 <bensberg@justemail.net>
-
-doc/{bash.1,bashref.texi}
- - add `E' and `T' to the synopsis of the set builtin.
- From Benno Schulenberg <bensberg@justemail.net>
-
-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 <bensberg@justemail.net>
-
- 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
-
-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 <bensberg@justemail.net>
-
-jobs.h
- - give values to the JOB_STATE enumerations so they can be used as
- bitmasks, too
-
- 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
-
- 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 <bensberg@justemail.net>
-
-{redir,subst}.c
- - add MT_USETMPDIR flag to calls to sh_mktmpfd and sh_mktmpname. Bug
- reported by Eric Blake <ebb9@byu.net>
-
-{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 <nickbroon@blueyonder.co.uk>
+ - sh_mbsnlen: extern declaration for new function
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
-
-variables.c
- - new dynamic variable, BASHPID, always set from return value from
- getpid() (changes even when $$ doesn't change). Idea from Bruce
- Korb <bruce.corb@3pardata.com>
-
-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
-
-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
-
-builtins/shopt.def
- - new `checkjobs' option, changes value of check_jobs_at_exit
- - new `autocd' option, changes value of autocd
-
-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
+ - exit_shell: call maybe_save_shell_history if remember_on_history is
+ set, not just in interactive shells. That means the history is
+ saved if history is enabled, regardless of whether or not the shell
+ is interactive
doc/{bash.1,bashref.texi}
- - document BASHPID
- - document new shopt `checkjobs' option
- - document new shopt `autocd' option
- - document COMP_TYPE completion variable
+ - TMOUT: fix description to make it explicit that TMOUT is the timeout
+ period for a complete line of input, not just any input. Fixes
+ problem reported in Ubuntu bug 957303:
+ https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303
+ - HISTFILE: document change to write history list to history file in
+ any shell with history enabled, not just interactive shells. This
+ seems to be more logical behavior. Suggested by Greg Wooledge
+ <wooledg@eeg.ccf.org>
- 12/29
- -----
-aclocal.m4
- - in BASH_SYS_SIGLIST, check HAVE_DECL_SYS_SIGLIST instead of the
- obsolete and no-longer-supported SYS_SIGLIST_DECLARED
-
- 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/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/readline.h
- - extern declarations for rl_completion_invoking_key and
- rl_sort_completion_matches
-
-lib/readline/doc/rltech.texi
- - documented rl_completion_invoking_key and rl_sort_completion_matches
-
-pcomplete.c
- - export variable COMP_KEY to completion functions; initialized from
- rl_completion_invoking_key; unset along with rest of completion
- variables
-
-doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi
- - document COMP_KEY
-
-[many files]
- - changes to make variables and function parameters `const' for better
- text sharing. Changes originally from Andreas Mohr
- <andi@rhlx01.fht-esslingen.de>
-
- 1/4/2007
- --------
-lib/intl/Makefile.in
- - use cmp before copying libgnuintl.h to libintl.h -- maybe save a few
- rebuilds
-
-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
- ---
-subst.c
- - new function, fifos_pending(), returns the count of FIFOs in
- fifo_list (process substitution)
-
-subst.h
- - extern declaration for fifos_pending()
-
-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
-
- 1/10
+ 4/12
----
-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
-
-subst.h
- - changed extern declaration for command_substitute
+lib/readline/colors.h
+ - only include stdbool.h if HAVE_STDBOOL_H is defined
+ - if HAVE_STDBOOL_H is not defined, provide enough definition for the
+ library to use `bool', `true', and `false'
-{pcomplete,subst}.c
- - changed callers of command_substitute appropriately
+lib/readline/parse-colors.[ch]
+ - don't try to include <stdbool.h> at all; rely on colors.h to do it
-subst.c
- - string_extract_verbatim now takes an additional int flags argument;
- changed callers
+lib/sh/snprintf.c
+ - vsnprintf_internal: only treat '0' as a flag to indicate zero padding
+ if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat
+ it as the first digit of a precision specifier. Fixes bug reported
+ by Petr Sumbera <petr.sumbera@sun.com>
- 1/11
+ 4/15
----
-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
-
-doc/bashref.texi
- - encapsulated all indexes into a single `Indexes' appendix; works
- around bug fixed in texi2html
+lib/sh/snprintf.c
+ - vsnprintf_internal: if the '0' and '-' flags both occur, the '0'
+ flag is ignored -- Posix. Start of a series of fixes based on
+ tests and patches from Petr Sumbera <petr.sumbera@sun.com>
+ - PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+'
+ - vsnprintf_internal: when '+' is read as a flag, don't set right-
+ justify flag if the LADJUST (`-') flag has already been supplied
+ - floating: make sure to output space padding before the `+', zero
+ padding after
+ - exponent: make sure to output space padding before the `+', zero
+ padding after
+ - exponent: only subtract one from the width for the decimal point
+ if we're really going to print one
+ - floating: use presence of PF_PLUS flag to decide whether to account
+ for the `+' in the padded field width. Ditto for exponent()
- 1/12
+ 4/16
----
-subst.c
- - add call to sv_histtimefmt in initialize_variables so HISTTIMEFORMAT
- from the environment is honored. Fix from Ark Submedes (heh)
- <archimerged@gmail.com>
-
-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
- <brettstahlman@comcast.net>
+lib/sh/snprintf.c
+ - vsnprint_internal: only reduce precision by 1 when processing the `g'
+ format if it's > 0. A precision of 0 should stay 0; otherwise it
+ gets set to -1 (NOT_FOUND) and converted to the default
+ - number, lnumber: if an explicit precision is supplied, turn off the
+ zero-padding flag and set the pad character back to space
+ - number, lnumber: only account for a `+' when performing the field
+ width calculation if the coversion is base 10; we don't add a `+'
+ for other bases
- 1/14
+ 4/18
----
-subst.c
- - make same change to read_comsub to add CTLESC before ' ' if $IFS is
- null, since we will split on literal spaces later
+tests/printf3.sub
+ - try using "perl -e 'print time'" to get the current time in seconds
+ since the epoch if "date +%s" is not available (solaris 8-10)
- 1/15
+ 4/19
----
-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
-
-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 <brettstahlman@comcast.net>
- - 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
+tests/run-printf
+ - use cat -v instead of relying on diff -a being available to convert
+ control characters to ascii and avoid the dreaded "Binary files
+ /tmp/xx and printf.right differ"
- 1/31
+ 4/20
----
-configure.in
- - add -DSOLARIS to LOCAL_CFLAGS for solaris x
-
-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.
-
-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'
+lib/sh/strftime.c
+ - incoporated new version from Aharon Robbins <arnold@skeeve.com>
-config.h.in
- - add #undef PRI_MACROS_BROKEN for AIX 4.3.3
+ 4/22
+ ----
+doc/{bash.1,bashref.texi}
+ - slight change to the description of /dev/tcp and /dev/udp
-pathexp.h
- - new flag value for quote_string_for_globbing: QGLOB_REGEXP (quoting
- an ERE for matching as a string)
+subst.c
+ - match_wpattern: logic fix to the calculation of `simple' (was |=,
+ needs to be &=). Bug report from Mike Frysinger <vapier@gentoo.org>,
+ fix from Andreas Schwab <schwab@linux-m68k.org>
-pathexp.c
- - change quote_string_for_globbing to understand QGLOB_REGEXP
+bashline.c
+ - bash_filename_stat_hook: add code from bash_directory_completion_hook
+ that performs pathname canonicalization in the same way that cd and
+ other builtins will do
+ 4/25
+ ----
execute_cmd.c
- - change execute_cond_node to pass 2 (regexp match), 1 (shell pattern
- match), or 0 (no matching) to cond_expand_word
-
-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
+ - execute_pipeline: change the call to move_to_high_fd to make it use
+ getdtablesize() and to not stomp on existing open file descriptors,
+ like the fd the shell is using to read a script. Bug report from
+ Greg Wooledge <wooledg@eeg.ccf.org>
- 2/2
+ 5/6
---
-builtins/printf.def
- - if PRI_MACROS_BROKEN is defined, #undef PRIdMAX (AIX 4.3.3 broken)
+subst.c
+ - expand_word_internal: case '$': after calling param_expand and
+ setting had_quoted_null, set TEMP to null. The code that builds the
+ returned string at the end of the function will take care of making
+ and returning a quoted null string if there's nothing else in
+ ISTRING. If there is, the quoted null should just go away. Part of
+ fix for bug reported by Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
+ - expand_word_internal: when processing ISTRING to build return value,
+ only set W_HASQUOTEDNULL in the returned word flags if the word is
+ a quoted null string AND had_quoted_null is set. Rest of fix
- 2/3
+ 5/9
---
-Makefile.in,{builtins,doc}/Makefile.in,lib/*/Makefile.in
- - add assignment for datarootdir as per GNU coding standards
+variables.c
+ - bind_variable_internal: if we get an array variable here (implicit
+ assignment to index 0), call make_array_variable_value, which
+ dummies up a fake SHELL_VAR * from array[0]. This matters when
+ we're appending and have to use the current value
+ - bind_variable_internal: after computing the new value, treat assoc
+ variables with higher precedence than simple array variables; it
+ might be that a variable has both attributes set
-Makefile.in,builtins/Makefile.in,lib/intl/Makefile.in,po/Makefile.in.in
- - use @localedir@ instead of $(datadir)/locale in assignment
+arrayfunc.c
+ - bind_array_var_internal: break code out that handles creating the
+ new value to be assigned to an array variable index into a new
+ function, make_array_variable_value. This handles creating a
+ dummy SHELL_VAR * for implicit array[0] assignment. Fixes bug
+ reported by Dan Douglas <ormaaj@gmail.com>
- 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
- <llattanzi@apple.com>
+arrayfunc.h
+ - make_array_variable_value: new extern declaration
- 2/16
+ 5/19
----
-lib/readline/text.c
- - 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 <hgs@dmu.ac.uk>
+variables.c
+ - bind_int_variable: if an assignment statement like x=y comes in
+ from the expression evaluator, and x is an array, handle it like
+ x[0]=y. Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
- 2/19
+ 5/24
----
-CWRU/audit-patch
- - patch from Steve Grubb of RedHat <sgrubb@redhat.com> to make bash
- audit root's behavior by logging commands using his audit
- framework. Enabled if the shell's name is `aubash'.
-
- 3/8
- ---
-jobs.c
- - use WSTATUS (p->status) instead of bare p->status. Fix from
- Jim Brown <jim.brown@rsmas.miami.edu>
- 3/9
- ---
-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 <ifp@loeber1.de>
+braces.c
+ - mkseq: handle possible overflow and break the sequence generating
+ loop if it occurs. Fixes OpenSUSE bug 763591:
+ https://bugzilla.novell.com/show_bug.cgi?id=763591
- 3/10
+ 5/25
----
-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
-
-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
+Makefile.in
+ - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
+ buildversion, mksignames, mksyntax
+ - LDFLAGS_FOR_BUILD: add to compilation recipes for test tools
+ recho, zecho, printenv, xcase
-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
+builtins/Makefile.in
+ - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools
+ gen-helpfiles, psize.aux
- 3/13
- ----
-lib/readline/complete.c
- - set rl_completion_append_character to the default (' ') in
- set_completion_defaults(). Fixes bug reported by David Emerson
- <demerson3x@angelbase.com>
+variables.c
+ - bind_int_variable: if LHS is a simple variable name without an array
+ reference, but resolves to an array variable, call
+ bind_array_variable with index 0 to make x=1 equivalent to x[0]=1.
+ Fixes bug reported by Dan Douglas <ormaaj@gmail.com>
- 3/23
+ 5/27
----
-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.
-
-include/typemax.h
- - define SSIZE_MAX as 32767 if it's not defined
-
-lib/readline/display.c
- - 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 <pelkeyj@gmail.com>
+subst.c
+ - expand_word_internal: make sure has_dollar_at doesn't get reset before
+ recursive calls to param_expand or expand_word_internal, since it has
+ to save state of what came before. Use temp variable and make sure
+ has_dollar_at is incremented if recursive call processes "$@".
+ Fixes bug reported by gregrwm <backuppc-users@whitleymott.net> and
+ supplemented by Dan Douglas <ormaaj@gmail.com>
-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 <paul.bagshaw@orange-ftgroup.com>.
+doc/{bash.1,bashref.texi}
+ - changes to the description of substring expansion inspired by
+ suggestions from Bill Gradwohl <bill@ycc.com>
- 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 <llattanzi@apple.com>
+doc/bashref.texi
+ - added substring expansion examples inspired by suggestions from
+ Bill Gradwohl <bill@ycc.com>
- 3/29
- ----
-command.h
- - new flag for subshell_environment: SUBSHELL_PROCSUB, for process
- substitution
+variables.c
+ - find_shell_variable: search for a variable in the list of shell
+ contexts, ignore the temporary environment
+ - find_variable_tempenv: search for a variable in the list of shell
+ contexts, force search of the temporary environment
+ - find_variable_notempenv: search for a variable in the list of shell
+ contexts, don't force search of the temporary environment
-subst.c
- - add SUBSHELL_PROCSUB to subshell_environment in process_substitute
+variables.h
+ - find_shell_variable: extern declaration
+ - find_variable_tempenv: extern declaration
+ - find_variable_notempenv: extern declaration
- 3/30
- ----
-doc/Makefile.in
- - fix installation of bash.info to understand that it is in the build
- directory, not the source directory
+arrayfunc.c
+ - bind_array_variable: call find_shell_variable instead of calling
+ var_lookup directly
-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
+ - search_for_command: call find_variable_tempenv instead of
+ find_variable_internal directly
+ - _find_user_command_internal: call find_variable_tempenv instead of
+ find_variable_internal directly
-shell.c
- - call init_mail_dates instead of remember_mail_dates
+builtins/setattr.def
+ - set_var_attribute: call find_variable_notempenv instead of
+ find_variable_internal directly
+ - show_name_attributes: call find_variable_tempenv instead of
+ find_variable_internal directly
- 4/4
+ 6/1
---
-builtins/read.def
- - changes to print $PS2 when a line is continued with a backslash in
- an interactive shell. This is as POSIX requires
+sig.c
+ - termsig_handler: don't try to save the shell history on a terminating
+ signal any more, since it just causes too many problems on Linux
+ systems using glibc and glibc malloc
- 4/5
- ---
-subst.c
- - 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
+lib/readline/vi_mode.c
+ - rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi
+ motion character. From Red Hat bug 813289
+ - rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi
+ motion character
+ - rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi
+ motion character
- 4/6
+ 6/4
---
-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
+lib/sh/mktime.c
+ - current versions of VMS do not need to include <stddef.h>. Fix from
+ John E. Malmberg <wb8tyw@qsl.net>
- 4/7
+ 6/5
---
-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
- - changes to cope with $IFS containing CTLNUL in the same way as the
- CTLESC changes
-
- 4/16
- ----
-lib/sh/strftime.c
- - a couple of fixes to the `%z' code
-
-eval.c
- - add an fflush after printing the auto-logout message
-
- 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
-
-{arrayfunc,expr,variables}.c
- - add calls to top_level_cleanup before jump_to_top_level()
-
- 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
-
-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 <ebb9@byu.net>
-
-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 <ebb9@byu.net>
-
-
- 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
- - 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
+lib/sh/eaccess.c
+ - sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX
+ translation, use a dynamically-allocated buffer that we keep
+ resizing. Fixes potential security hole reported by David Leverton
+ <levertond@googlemail.com>
- 5/1
+ 6/5
---
-builtins/{bind,declare,set,setattr}.def
- - change to use sh_chkwrite to report write errors
+braces.c
+ - expand_seqterm: check errno == ERANGE after calling strtoimax for
+ rhs and incr. Part of a set of fixes from Scott McMillan
+ <scotty.mcmillan@gmail.com>
+ - expand_seqterm: incr now of type `intmax_t', which changes
+ arguments to mkseq
+ - mkseq: a better fix for detecting overflow and underflow since it's
+ undefined in C and compilers `optimize' out overflow checks. Uses
+ ADDOVERFLOW and SUBOVERFLOW macros
+ - mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t
+ variables
+ - mkseq: don't allow incr to be converted to -INTMAX_MIN
+ - mkseq: make sure that strvec_create isn't called with a size argument
+ greater than INT_MAX, since it only takes an int
- 5/2
+ 6/6
---
-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 <tom.bjorkholm@ericsson.com>
+braces.c
+ - mkseq: try and be smarter about not overallocating elements in
+ the return array if the increment is not 1 or -1
- 5/8
+ 6/7
---
-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
+parse.y
+ - history_delimiting_chars: if the parser says we're in the middle of
+ a compound assignment (PST_COMPASSIGN), just return a space to avoid
+ adding a stray semicolon to the history entry. Fixes bug reported
+ by "Davide Brini" <dave_br@gmx.com>
- 5/9
+ 6/8
---
-lib/readline/signals.c
- - fix bug in rl_set_signals that caught SIGINT twice and didn't catch
- SIGTERM. Bug reported by Ed Kwan <ed.kwan@onstor.com>
-
- 5/18
- ----
-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
-
- 5/20
- ----
-
-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
-
-subst.c
- - new variable, assigning_in_environment, set and unset around calls
- to assign_in_env by the expansion code
-
-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 <kevquinn@gentoo.org>
-
- 5/22
- ----
-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 <ian@davenant.greenend.org.uk>
-
-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 <jmichaud@sgi.com>
-
- 5/24
- ----
-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 <estellnb@yahoo.de>
-
-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
- <torre_cremata@mail.ru>
+bashline.c
+ - bash_directory_completion_hook: don't attempt spelling correction
+ on the directory name unless the direxpand option is set and we are
+ going to replace the directory name with the corrected one in the
+ readline line. Suggested by Linda Walsh <bash@tlinx.org>
-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 <sbrabec@suse.cz>
+lib/sh/shquote.c
+ - sh_backslash_quote: now takes a third argument: flags. If non-zero,
+ tildes are not backslash-escaped. Have to handle both printf %q,
+ where they should be escaped, and filename completion, where they
+ should not when used as usernames
- 5/25
- ----
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)
+ - sh_backslash_quote: declaration now takes a third argument
-subst.h
- - new extern declaration for remove_quoted_escapes
-
-subst.c
- - remove_quoted_escapes is now global
+builtins/printf.def
+ - printf_builtin: call sh_backslash_quote with 1 as third argument
+ so tildes get escaped
-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 <bo.andresen@zlin.dk>
+{bashline,bracecomp}.c
+ - call sh_backslash_quote with 0 as third argument so tildes are not
+ escaped in completed words
-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
+doc/bash.1
+ - add `coproc' to the list of reserved words. From a report by
+ Jens Schweikhardt <schweikh@schweikhardt.net>
- 5/27
+ 6/10
----
-{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 <horst.wente@acm.org>
-
-builtins/help.def
- - fix bug in `help' two-column printing to avoid referencing
- shell_builtins[num_shell_builtins]
+execute_cmd.c
+ - line_number_for_err_trap: now global, so parse_and_execute can save
+ and restore it with unwind-protect
-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
+builtins/evalstring.c
+ - parse_prologue: save and restore line_number_for_err_trap along
+ with line_number
+ - restore_lastcom: new function, unwind-protect to restore
+ the_printed_command_except_trap
+ - parse_prologue: use restore_lastcom to save and restore the value
+ of the_printed_command_except_trap around calls to parse_and_execute
+ (eval/source/.)
- 5/31
+ 6/15
----
-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 <schplurtz@free.fr>
-
- 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
- <dfawcus@cisco.com>
+lib/readline/complete.c
+ - complete_fncmp: change filename comparison code to understand
+ multibyte characters, even when doing case-sensitive or case-mapping
+ comparisons. Fixes problem reported by Nikolay Shirokovskiy
+ <nshyrokovskiy@gmail.com>
- 6/13
+ 6/20
----
-support/shobj-conf
- - changes to support shared object and shared library creation on AIX
- 5.x and later versions. From Niklas Edmundsson <nikke@acc.umu.se>
+builtins/mapfile.def
+ - mapfile: move the line count increment and check for having read
+ the specified number of lines to the end of the loop to avoid
+ reading an additional line with zgetline. Fixes bug reported by
+ Dan Douglas <ormaaj@gmail.com>
- 6/17
+ 6/21
----
-builtins/mkbuiltins.c
- - 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
-builtins.h
- - new define, POSIX_BUILTIN, means that a builtin is special to the
- posix command search order
+execute_cmd.c
+ - execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on
+ all systems, since it's tested later in the function. Fixes bug
+ reported by John E. Malmberg <wb8tyw@qsl.net>
6/22
----
-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 <schwab@suse.de>
-
+mailcheck.c
+ - file_mod_date_changed: return 0 right away if mailstat() does not
+ return success. Fixes bug with using uninitialized values reported
+ by szymon.kalasz@uj.edu.pl
- 7/11
- ----
+builtins/set.def
+ - the `monitor' option is not available when the shell is compiled
+ without job control, since the underlying `m' flag is not available
-lib/readline/rltty.c
- - enable flush-output code for systems other than AIX 4.1. Problem
- reported by Jan Kratochvil <jan.kratochvil@redhat.com>
+nojobs.c
+ - job_control: now declared as int variable, initialized to 0, never
+ modified
- 7/12
- ----
-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
- <ubuntu@thequod.de>
-
- 7/13
- ----
-variables.c
- - use native __QNX__ and __QNXNTO__ cpp defines instead of qnx and
- qnx6, respectively. Patch from Sean Boudreau <seanb@qnx.com>
+jobs.h
+ - job_control: extern declaration no longer dependent on JOB_CONTROL
-lib/sh/getcwd.c
- - #undef HAVE_LSTAT on qnx, so it uses stat instead. Patch from
- Sean Boudreau <seanb@qnx.com>
+execute_cmd.c
+ - execute_pipeline: made necessary changes so `lastpipe' shell option
+ is now available in all shells, even those compiled without
+ JOB_CONTROL defined
- 7/21
+ 6/23
----
-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 <Jyrgen.Niinre@emt.ee>
+lib/glob/glob.c
+ - glob_filename: check for interrupts before returning if glob_vector
+ returns NULL or an error. Bug reported by Serge van den Boom
+ <svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
+ - call run_pending_traps after each call to QUIT or test of
+ interrupt_state, like we do in mainline shell code
+ - glob_vector: don't call QUIT; in `if (lose)' code block; just free
+ memory, return NULL, and let callers deal with interrupt_state or
+ other signals and traps
- 7/26
+ 6/25
----
-test.c
- - make sure the string passed to test_unop has only a single character
- following the `-'. Fixes bug reported by Michael A. Smith
- <michael@smith-li.com>
-
-parse.y
- - better input validation: make sure a word looks like a conditional
- unary operator (-X) before calling test_unop
+lib/readline/input.c
+ - rl_read_key: restructure the loop that calls the event hook a little,
+ so that the hook is called only after rl_gather_tyi returns no input,
+ and any pending input is returned first. This results in better
+ efficiency for processing pending input without calling the hook
+ on every input character as bash-4.1 did. From a report from
+ Max Horn <max@quendi.de>
- 7/28
+ 6/26
----
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
- <fergus@google.com>
-
- 8/1
- ---
-lib/readline/{util,histexpand}.c
- - fixes for small memory leaks from Michael Snyder <msnyder@sonic.net>
+ - signal_is_pending: return TRUE if SIG argument has been received and
+ a trap is waiting to execute
- 8/18
- ----
-Makefile.in
- - add dependency on builtins/builtext.h to nojobs.o list. Fixes
- `make -j 5' issue reported by Chris MacGregor <chris@bouncingdog.com>
-
-examples/loadables/Makefile.in
- - add @LDFLAGS@ to SHOBJ_LDFLAGS assignment -- experimental. Suggested
- by Mike Frysinger <vapier@gentoo.org>
+trap.h
+ - signal_is_pending: extern declaration
-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 <vapier@gentoo.org>
+lib/glob/glob.c
+ - glob_vector: check for pending SIGINT trap each time through the loop,
+ just like we check for interrupt_state or terminating_signal, and
+ set `lose = 1' so we clean up after ourselves and interrupt the
+ operation before running the trap. This may require a change later,
+ maybe call run_pending_traps and do that if run_pending_traps returns?
- 8/21
- ----
-histexpand.c
- - fix another memory leak in history_find_word. Bug report originally
- from Michael Snyder <msnyder@sonic.net>; test case suggested by Jim
- Blandy <jimb@codesourcery.com>
+variables.c
+ - sv_histtimefmt: set history_comment_character to default (`#') if
+ it's 0 when we're turning on history timestamps. The history code
+ uses the history comment character to prefix timestamps, and
+ leaving it at 0 effectively removes them from the history. From a
+ report to help-bash by Dennis Williamson <dennistwilliamson@gmail.com>
- 8/26
+ 6/27
----
-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
-
- 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 <timo.lindfors@iki.fi>
+lib/readline/signals.c
+ - rl_maybe_restore_sighandler: new function, sets handler for SIG to
+ HANDLER->sa_handler only if it's not SIG_IGN. Needs to be called
+ on same signals set using rl_maybe_set_sighandler, which does not
+ override an existing SIG_IGN handler (SIGALRM is ok since it does
+ the check inline; doesn't mess with SIGWINCH)
- 9/10
+ 6/30
----
-{config.h,Makefile,configure}.in,aclocal.m4
- - new tests for fpurge and __fpurge
+variables.h
+ - additional defines for the new `nameref' variable attribute
+ (att_nameref): nameref_p, nameref_cell, var_setref
-lib/sh/fpurge.c, externs.h
- - new file, fpurge(3) implementation with external decl in externs.h
+variables.c
+ - find_variable_nameref: resolve SHELL_VAR V through chain of namerefs
+ - find_variable_last_nameref: resolve variable NAME until last in a
+ chain of possibly more than one nameref starting at shell_variables
+ - find_global_variable_last_nameref: resolve variable NAME until last
+ in a chain of possibly more than one nameref starting at
+ global_variables
+ - find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs
+ in a specific variable context (usually a local variable hash table)
+ - find_variable_nameref_context: resolve SHELL_VAR V through chain of
+ namerefs following a chain of varible contexts
+ - find_variable_last_nameref_context: resolve SHELL_VAR V as in
+ find_variable_last_context, but return the final nameref instead of
+ what the final nameref resolves to
+ - find_variable_tempenv, find_variable_notempenv, find_global_variable,
+ find_shell_variable, find_variable: modified to follow namerefs
+ - find_global_variable_noref: look up a global variable without following
+ any namerefs
+ - find_variable_noref: look up a shell variable without following any
+ namerefs
+ - bind_variable_internal: modify to follow a chain of namerefs in the
+ global variables table; change to handle assignments to a nameref by
+ following nameref chain
+ - bind_variable: modify to follow chain of namerefs when binding to a
+ local variable
+ - unbind_variable: changes to unset nameref variables (unsets both
+ nameref and variable it resolves to)
+
+subst.c
+ - parameter_brace_expand_word: change to handle expanding nameref whose
+ value is x[n]
+ - parameter_brace_expand_indir: change to expand in ksh93-compatible
+ way if variable to be indirected is nameref and a simple (non-array)
+ expansion
+ - param_expand: change to expand $foo where foo is a nameref whose value
+ is x[n]
-builtins/common.c
- - add call to fpurge(stdout) to sh_chkwrite
+execute_cmd.c
+ - execute_for_command: changes to implement ksh93 semantics when index
+ variable is a nameref
-{redir,execute_cmd}.c
- - add call to fpurge(stdout) after fflush(stdout) before changing
- stdout file descriptor and after a builtin or function executes
+builtins/setattr.def
+ - show_var_attributes: change to add `n' to flags list if att_nameref
+ is set
- 9/12
- ----
-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
+builtins/set.def
+ - unset_builtin: changes to error messages to follow nameref variables
- 9/14
- ----
-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
+builtins/declare.def
+ - document new -n option
+ - declare_internal: new `-n' and `+n' options
+ - declare_internal: handle declare -n var[=value] and
+ declare +n var[=value] for existing and non-existant variables.
+ Enforce restriction that nameref variables cannot be arrays.
+ Implement semi-peculiar ksh93 semantics for typeset +n ref=value
-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 <petr.sumbera@sun.com>
+ 7/5
+ ---
+variables.c
+ - unbind_variable: unset whatever a nameref resolves to, leaving the
+ nameref variable itself alone
+ - unbind_nameref: new function, unsets a nameref variable, not the
+ variable it references
- 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 <mkoeppe@gmx.de>
+variables.h
+ - unbind_nameref: extern declaration
- 9/21
- ----
-version.c
- - change copyright year to 2007
+builtins/set.def
+ - unset_builtin: modify to add -n option, which calls unbind_nameref
+ leaving unbind_variable for the usual case. This required slight
+ changes and additions to the test suite
- 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 <herbert@gondor.apana.org.au> on the debian list
- (443685)
+doc/{bash.1,bashref.texi}
+ - document namerefs and typeset/declare/local/unset -n
- 10/8
+ 7/13
----
-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
- <ubuntu@thequod.de>
-
- 10/10
- -----
-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
- <ubuntu@thequod.de>
-
- 10/12
- -----
-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 <ian.campbell@xensource.com>
-
-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 <pgraner@redhat.com>
+lib/sh/casemod.c
+ - include shmbchar.h for is_basic and supporting pieces
+ - sh_casemod: use _to_wupper and _to_wlower to convert wide character
+ case instead of TOUPPER and TOLOWER. Fixes bug reported by
+ Dennis Williamson <dennistwilliamson@gmail.com>, fix from
+ Andreas Schwab <schwab@linux-m68k.org>
+ - cval: short-circuit and return ascii value if is_basic tests true
+ - sh_casemod: short-circuit and use non-multibyte case modification
+ and toggling code if is_basic tests true
-braces.c
- - pass process substitution through unchanged the same as command
- substitution. Prompted by suggestion from Stephane Chazelas
- <stephane_chazelas@yahoo.fr>
+lib/readline/signals.c
+ - _rl_{block,release}_sigint: remove the code that actually blocks and
+ releases the signals, since we defer signal handling until calls to
+ RL_CHECK_SIGNALS()
-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 <gemini@geminix.org>
+lib/readline/{callback,readline,util}.c
+ - if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without
+ saving and restoring the signal mask instead of setjmp/longjmp
-builtins/type.def
- - change exit status of `type' to not successful if any of the
- requested commands are not found. Reported by Stephane Chazleas
- <stephane_chazelas@yahoo.fr>
+lib/readline/rltty.c
+ - prepare_terminal_settings: don't mess with IXOFF setting if
+ USE_XON_XOFF defined
-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 <vtaras@sw.ru>
+doc/{bash.1,bashref.texi}
+ - add some text to the description of set -e clarifying its effect
+ on shell functions and shell function execution. Suggested by
+ Rainer Blome <rainer.blome@gmx.de>
- 10/16
- -----
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/17
- -----
-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 <anmaster@tele2.se>
+ - edit_and_execute_command: increment current_command_line_count before
+ adding partial line to command history (for command-oriented-history
+ because of rl_newline at beginning of function), then reset it to 0
+ before adding the dummy history entry to make sure the dummy entry
+ doesn't get added to previous incomplete command. Partial fix for
+ problem reported by Peng Yu <pengyu.ut@gmail.com>
- 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 <dalias@aerifal.cx>
-
- 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 <schwab@suse.de>
- and Paul Eggert <eggert@cs.ucla.edu>
-
- 11/9
+ 7/24
----
-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
- <lars.ellenberg@linbit.com>
-
- 11/10
- -----
-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 <tjanouse@redhat.com>
-
-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 <mlichvar@redhat.com>
-
- 11/14
- -----
-subst.c
- - 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 <hoxu@users.sf.net> (debian bug 451263)
-
-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 <morita-pub-en-debian@inz.sakura.ne.jp>
-
- 11/15
- -----
-variables.c
- - add new function `seedrand' to seed the bash random number
- generator from more random data. Suggestion from Steve Grubb
- <sgrubb@redhat.com>
- - replace the rng in brand() with a slightly better one from FreeBSD
- (filtered through Mac OS X 10.5). Replacement suggested by
- Steve Grubb <sgrubb@redhat.com>
-
- 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
+ - interix: define RECYCLES_PIDS. Based on a report from Michael
+ Haubenwallner <michael.haubenwallner@salomon.at>
-doc/{bash.1,bashref.texi}
- - slight change to the text describing the effect of set -e when
- in a || or && list
-
- 12/5
+ 7/26
----
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
+ - make_child: call bgp_delete on the newly-created pid unconditionally.
+ Some systems reuse pids before cycling through an entire set of
+ CHILD_MAX/_SC_CHILD_MAX unique pids. This is no longer dependent
+ on RECYCLES_PIDS. Based on a report from Michael Haubenwallner
+ <michael.haubenwallner@salomon.at>
-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 <vincent@vinc17.org>
-
-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
- - 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 <mingo@elte.hu>
-
- 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
+ - Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We
+ can finally kill Panther
- 12/8
+ 7/28
----
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
+ - command_substitute: make sure last_made_pid gets reset if make_child
+ fails
-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
+execute_cmd.c
+ - execute_command_internal: case cm_simple: decide whether or not to
+ wait_for a child if already_making_children is non-zero, indicates
+ that there is an unwaited-for child. More of fix for bug report
+ from Michael Haubenwallner <michael.haubenwallner@salomon.at>
- 12/12
- -----
-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
+jobs.c
+ - make_child: call delete_old_job (new_pid) unconditionally, don't
+ bother to check whether or not pid wrap occurred. Rest of fix for
+ bug report from Michael Haubenwallner
+ <michael.haubenwallner@salomon.at>
- 12/14
- -----
-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
+ 7/29
+ ----
+shell.c
+ - subshell_exit: new function, exits the shell (via call to sh_exit())
+ after calling any defined exit trap
-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 <karl@freefriends.org>
+externs.h
+ - subshell_exit: new extern declaration
- 12/20
- -----
execute_cmd.c
- - 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 <llattanzi@apple.com>
+ - execute_command_internal: make sure to call subshell_exit for
+ {} group commands executed asynchronously (&). Part of fix for
+ EXIT trap bug reported by Maarten Billemont <lhunath@lyndir.com>
- 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
- <haubi@gentoo.org>
-
- 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 <lewiemann@gmail.com>
+sig.c
+ - reset_terminating_signals: make sure to set termsigs_initialized back
+ to 0, so a subsequent call to initialize_terminating_signals works
+ right. Rest of fix for bug reported by Maarten Billemont
+ <lhunath@lyndir.com>
+
+{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c
+builtins/{cd,fc,pushd,ulimit}.def
+lib/malloc/getpagesize.h
+lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c
+ - make inclusion of <sys/param.h> dependent on HAVE_SYS_PARAM_H
+ consistently
- 1/8
+ 8/6
---
-subst.c
- - new function returning a string containing the first character of
- $IFS: char *ifs_firstchar(int *)
+lib/readline/histexpand.c
+ - history_expand_internal: now takes an additional argument saying
+ whether the history expansion occurs within a quoted string, set to
+ the open quote character
+ - history_expand_internal: use new argument instead of checking prev
+ char and initializing quoted_search_delimiter, pass qc directly to
+ get_history_event, where it allows a matching quote to terminate a
+ string defining an event
+ - history_expand: change single-quote handling code so that if
+ history_quotes_inhibit_expansion is 0, single quotes are treated
+ like double quotes
+ - history_expand: change call to history_expand_internal to pass new
+ argument of `"' if double-quoted string, `'' if single-quoted string;
+ this lets history_expand decide what is a quoted string and what
+ is not
-subst.h
- - extern declaration for ifs_firstchar()
+ 8/7
+ ---
+configure.in
+ - AC_CANONICAL_BUILD: invoke for later use
-array.c
- - call ifs_firstchar() to get first character of $IFS when needed
- (array_subrange() and array_patsub())
+lib/readline/macro.c
+ - _rl_prev_macro_key: new function, inverse of _rl_next_macro_key:
+ backs up the index into the current macro by 1
- 1/11
- ----
-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 <llattanzi@apple.com>
+lib/readline/rlprivate.h
+ - _rl_prev_macro_key: extern declaration
-subst.[ch]
- - skip_to_delim is now compiled into the shell all the time, not just
- when readline is linked in
-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 <Dmitry.Golovashkin@sas.com>
+lib/readline/readline.c
+ - _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char
+ if we're currently reading from a macro; call _rl_prev_macro_key
+ instead. Fixes bug reported by Clark Wang <clark.wang@oracle.com>
- 1/15
+ 8/13
----
-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
-
-subst.h
- - update extern declaration for skip_to_delim
+builtins/evalstring.c
+ - evalstring(): new function, wrapper around parse_and_execute.
+ make sure we handle cases where parse_and_execute can call `return'
+ and short-circuit without cleaning up properly. We call
+ parse_and_execute_cleanup() then jump to the previous-saved return
+ location
- 1/17
- ----
-subst.c
- - expand_prompt_string takes a third argument: the initial flags for
- the WORD
+builtins/common.h
+ - extern declaration for evalstring()
-subst.h
- - change extern declaration for expand_prompt_string to add third arg
+builtins/eval.def
+ - eval_builtin: make sure we handle `eval " ... return"' in contexts
+ where `return' is valid by calling evalstring(). Fixes bug with
+ `eval return' in sourced files reported by Clark Wang
+ <dearvoid@gmail.com>
-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
+trap.c
+ - run_pending_traps: call evalstring instead of parse_and_execute.
+ XXX - still needs to handle saving and restoring token state in the
+ presence of `return'; could use unwind_protects for that
-parse.y
- - change call to expand_prompt_string
+builtins/mapfile.def
+ - run_callback: call evalstring instead of parse_and_execute
- 1/18
+ 8/15
----
-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
- <peb@mppmu.mpg.de>
- - 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/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 <tjanouse@redhat.com>
- - add support for redoing inserts made with the `I' command. Fix
- from Thomas Janousek <tjanouse@redhat.com>
- - add support for redoing inserts made with the `A' command
-
-lib/readline/readline.h
- - new extern declaration for rl_vi_insert_mode
+bashline.c
+ - bash_filename_stat_hook: make sure we don't free local_dirname
+ before using it to canonicalize any expanded filename. Make sure
+ it always points to *dirname and only free it if we're replacing
+ it.
-lib/readline/{misc,readline,vi_mode,vi_keymap}.c
- - change calls to rl_vi_insertion_mode to rl_vi_insert_mode
+lib/readline/complete.c
+ - append_to_match: make sure we call rl_filename_stat_hook with
+ newly-allocated memory to avoid problems with freeing it twice
- 1/19
+ 8/17
----
-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 <bcboy@thecraftstudio.com>
+variables.c,config-top.h
+ - if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the
+ code that allows indexed arrays to be exported is enabled and
+ included
- 1/21
+ 8/19
----
-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
+shell.c
+ - call start_debugger from main() only if dollar_vars[1] != 0 (close
+ enough to a non-interactive shell, since we can be interactive with
+ -i while running a shell script). Fixes oddity reported by
+ Techlive Zheng <techlivezheng@gmail.com>
- 1/25
+ 8/20
----
-lib/readline/complete.c
- - fix fnwidth to use string[pos] instead of *string when testing the
- current character for a control character or rubout
+arrayfunc.c
+ - quote_array_assignment_chars: don't bother quoting if the word has
+ not been marked as an assignment (W_ASSIGNMENT)
+ - quote_array_assignment_chars: turn on W_NOGLOB in the word flags
+ so assignment statements don't undergo globbing. Partial fix for
+ problems reported by Dan Douglas <ormaaj@gmail.com>
- 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 <bonzini@gnu.org> and Eric Blake <ebb9@byu.net>
+ 8/21
+ ----
+command.h
+ - W_NOBRACE: new word flag that means to inhibit brace expansion
- 2/9
- ---
-builtins/*.def
- - changes to text and formatting suggested by Jan Schampera
- <jan.schampera@web.de>
+subst.c
+ - brace_expand_word_list: suppress brace expansion for words with
+ W_NOBRACE flag
- 2/16
+ 8/22
----
-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
- <jwang@a10networks.com.cn>.
+builtins/read.def
+ - read_builtin: don't call dequote_string on what we've read, even if
+ we saw an escape character, unless (input_string && *input_string).
+ We may have escaped an IFS whitespace character. Fixes seg fault
+ reported by <armandsl@gmail.com>
- 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
+execute_cmd.c
+ - execute_command_internal: set the_printed_command_except trap when
+ about to execute a ( ... ) user subshell. For now, set it only if
+ ERR is trapped; can relax that later. Fixes bug reported by
+ Mike Frysinger <vapier@gentoo.org>
- 2/21
+ 8/23
----
-lib/readline/terminal.c
- - change rl_crlf so that the MINT system on ATARI systems adds a
- carriage return before the \n
+jobs.c
+ - remove references to first_pid and pid_wrap, since we're not using
+ them for anything anymore
- 2/22
+ 8/24
----
-doc/{bash.1,bashref.texi}
- - added text to the EXIT STATUS section noting that exit statuses
- fall between 0 and 255, inclusive
-
-support/mkversion.sh
- - output a #define for DEFAULT_COMPAT_LEVEL (${major}${minor}; e.g. 32)
- to version.h
-
-version.c
- - int variable, shell_compatibility_level, set to DEFAULT_COMPAT_LEVEL
- by default
+subst.c
+ - changes for W_NOBRACE everywhere appropriate: so it can be displayed
+ for debugging, and passed out of expand_word_internal
-builtins/shopt.def
- - new shopt variable, compat31, sets shell_compatibility_level to 31
- (or back to default if unset)
+doc/{bash.1,bashref.texi}
+ - small changes to make it clearer that the = and == operators are
+ equivalent, and will cause pattern matching when used with [[.
+ From a question from Michal Soltys <soltys@ziu.info>
-execute_cmd.c
- - in execute_cond_node, restore bash-3.1 behavior of quoted rhs of
- regexp matches if shell_compatibility_level == 31
+doc/bashref.texi
+ - some small formatting changes from Karl Berry <karl@freefriends.org>
- 2/28
+ 8/27
----
-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 <vapier@gentoo.org>
-
- 3/6
- ---
-{MANIFEST,Makefile.in},lib/sh/{casemod,uconvert,ufuncs}.c
- - new library sources from bash-4.0-devel tree
-
-lib/sh/spell.c
- - moved cdspell() here from builtins/cd.def, renamed dirspell()
-
-externs.h
- - new declarations for extern functions from new library files
- - new extern declaration for lib/sh/spell.c:dirspell()
+lib/readline/doc/{history,rlman,rluserman}.texi
+ - some small formatting changes from Karl Berry <karl@freefriends.org>
-builtins/cd.def
- - call extern library function dirspell(); remove static cdspell()
+arrayfunc.c
+ - assign_array_element_internal, assign_compound_array_list,
+ unbind_array_element, array_value_internal: changes to make
+ assignment statements to negative indices (a[-1]=2) and unsetting
+ array elements using negative indices (unset 'a[-1]') work.
+ From suggestions by Dennis Williamson <dennistwilliamson@gmail.com>
+ and Chris F. A. Johnson <chris@cfajohnson.com>
-builtins/read.def
- - when read times out, make sure input_string is null-terminated before
- assigning any partial input read to the named variables
+subst.c
+ - array_length_reference: changes to make length references to array
+ elements using negative indices (${#a[-1]}) work
- 3/10
+ 8/28
----
-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
+doc/{bash.1,bashref.texi}
+ - document new treatment of negative indices to indexed arrays when
+ assigning, referencing, calculating length, and unsetting
- 3/17
+ 8/29
----
-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 <john.haxby@oracle.com>
-
-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
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_reset_completion_state
-
-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
- <mf+ubuntu@zoopnet.de>
-
-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
+shell.c
+ - show_shell_usage: add -l to list of shell invocation options (short
+ for --login). From Red Hat bug 852469
-pcomplete.h
- - new extern declaration for curcs
- - new extern declaration for pcomp_set_readline_variables
- - new extern declaration for pcomp_set_compspec_options
+configure.ac
+ - renamed from configure.in, as latest autoconf versions want. Patches
+ Stefano Lattarini <stefano.lattarini@gmail.com>
-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
+MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles
+ - configure.in -> configure.ac
- 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
- <torstennahm@torstennahm.de>
+ 9/1
+ ---
- 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 Kratochvil <jan.kratochvil@redhat.com>
+parse.y
+ - read_token_word: allow words like {array[ind]} to be valid redirection
+ words for constructs like {x}<file
-lib/readline/rlprivate.h
- - new extern declarations for _rl_block_sigint and _rl_release_sigint
+redir.c
+ - redir_varassign: bind_var_to_int already handles array assignments,
+ so don't need to do anything more for things like {a[i]}<file
+ - redir_varvalue: changes to allow references to {a[i]} when
+ performing redirections using valid_array_reference and
+ get_array_value. Adds functionality requested most recently by
+ <unknown@vmw-les.eng.vmware.com>
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
- Kratochvil <jan.kratochvil@redhat.com>
+ - update_line: if the first difference between the old and new lines
+ is completely before any invisible characters in the prompt, we
+ should not adjust _rl_last_c_pos, since it's before any invisible
+ characters. Fixed in two places
+ - prompt_modechar: return a character indicating the editing mode:
+ emacs (@), vi command (:), or vi insert (+)
+ - _rl_reset_prompt: new function, just calls rl_expand_prompt. Will be
+ inlined, placeholder for more changes
+ - expand_prompt: if show-mode-in-prompt is enabled, add a character to
+ the front of the prompt indicating the editing mode, adjusting the
+ various variables as appropriate to keep track of the number of
+ visible characters and number of screen positions
-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 <yuya999@gmail.com>
+lib/readline/bind.c
+ - show-mode-in-prompt: new bindable boolean variable, shadowed by
+ _rl_show_mode_in_prompt variable
+ - hack_special_boolean_var: call _rl_reset_prompt when toggling or
+ setting show-mode-in-prompt
-lib/readline/doc/rltech.texi
- - documented rest of readline's state flags, including RL_STATE_CALLBACK
- - documented rl_save_state and rl_restore_state
+lib/readline/readline.c
+ - readline_internal_setup: make sure the correct vi mode keymap is set
+ before expanding the prompt string for the first time
- 3/27
- ----
-lib/readline/{rlprivate.h,{display,readline,rltty,terminal,text}.c}
- - rename readline_echoing_p to _rl_echoing_p for namespace consistency
+lib/readline/misc.c
+ - rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're
+ showing the editing mode in the prompt
-lib/readline/{rlprivate.h,{callback,readline,util}.c}
- - rename readline_top_level to _rl_top_level for namespace consistency
+lib/readline/rlprivate.h
+ - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations
-builtins/ulimit.def
- - new -b (socket buffer size) and -T (number of threads) options
+lib/readline/vi_mode.c
+ - rl_vi_insertion_mode: call _rl_reset_prompt
+ - rl_vi_movement_mode: call _rl_reset_prompt. Finishes changes for
+ showing mode in prompt string, originally requested by Miroslav
+ Koskar <mkoskar@gmail.com> and most recently by Jordan Michael
+ Ziegler <jziegler@bnl.gov>
-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,lib/readline/doc/{readline.3,rluser.texi}
+ - document new show-mode-in-prompt variable, off by default
-builtins/setattr.def
- - new function, show_all_var_attributes, displays attributes and
- values for all shell variables (or shell functions) in a reusable
- format
+ 9/3
+ ---
-builtins/common.h
- - new extern declaration for show_all_var_attributes
+jobs.c
+ - set_childmax: new function, external mechanism for other parts of
+ the shell to set js.c_childmax, the number of saved exited child
+ statuses to remember
+jobs.h
+ - set_childmax: extern declaration
-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
- <eljay@adobe.com>
+variables.c
+ - CHILD_MAX: new special variable, with sv_childmax function to
+ run when it changes. Setting CHILD_MAX to a value greater than
+ zero but less than some maximum (currently 8192) sets the number of
+ exited child statuses to remember. set_childmax (jobs.c) ensures
+ that the number does not drop below the posix-mandated minimum
+ (CHILD_MAX)
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'
+ - CHILD_MAX: document new meaning and action when variable is set
- 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 <mf+ubuntu@zoopnet.de>
-
- 3/30
- ----
-doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi
- - document new compopt builtin
-
- 4/5
+ 9/5
---
-support/shobj-conf
- - change solaris10 stanza to use -fPIC to fix 64-bit sparc_v9/solaris10
- compilations. Fix from Fabian Groffen <grobian@gentoo.org>
-
-builtins/read.def
- - added `-i text' option, inserts `text' into line if using readline.
- Suggested by many, used some ideas from Kevin Pulo <kevin@pulo.com.au>
-
-doc/{bash.1,bashref.texi}
- - document new `-i text' option to read builtin
+redir.c
+ - redir_varassign: call stupidly_hack_special_variables after
+ assigning fd number to specified variable, so we can use constructs
+ like {BASH_XTRACEFD}>foo. Suggested by Pierre Gaston
+ <pierre.gaston@gmail.com>
- 4/7
+ 9/8
---
-lib/readline/bind.c
- - new settable variable, `history-size', sets the max number of
- entries in the history list
-
-doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
- - document new `history-size' settable readline variable
+expr.c
+ - readtok: invalidate previous contents of `curlval' before freeing
+ and reallocating tokstr (which, chances are, will get the same
+ pointer as before and render curlval inconsistent). Fixes other
+ bug reported by Dan Douglas <ormaaj@gmail.com>
- 4/8
+ 9/9
---
-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
+lib/readline/complete.c
+ - rl_username_completion_function: protect call to setpwent() with
+ #ifdef (HAVE_GETPWENT)/#endif. Fixes bug reported by
+ Gerd Hofmann <gerd.hofmann.nbg@googlemail.com>
-bashline.c
- - change attempt_shell_completion to try programmable completion on an
- `empty' command line and return the results
+lib/readline/display.c
+ - rl_message: second and subsequent calls to rl_message can result in
+ local_prompt being overwritten with new values (e.g., from the
+ successive calls displaying the incremental search string). Need
+ to free before overwriting if it's not the same as the value saved
+ in saved_local_prompt. Fixes memory leak reported by
+ Wouter Vermaelen <vermaelen.wouter@gmail.com>
-doc/bash.1,lib/readline/doc/rluser.texi
- - documented new `-E' option to `complete'
+lib/readline/{terminal.c,rlprivate.h}
+ - move CUSTOM_REDISPLAY_FUNC and CUSTOM_INPUT_FUNC defines from
+ terminal.c to rlprivate.h so other files can use them
- 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
+ - expr_streval: if noeval is non-zero, just return 0 right away,
+ short-circuiting evaluation completely. readtok will leave curtok
+ set correctly without re-entering the evaluator at all. Rest of
+ fix for bug reported by Dan Douglas <ormaaj@gmail.com>
-builtins/set.def
- - use `enable_history_list' instead of `remember_on_history' to keep
- value of `-o history' option
+ 9/11
+ ----
-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 <jidanni@jidanni.org>
+parse.y
+ - parse_comsub: make sure the `reserved word ok in this context' flag
+ is preserved after we read `do' followed by whitespace. Fixes bug
+ reported by Benoit Vaugon <benoit.vaugon@gmail.com>
- 4/11
+ 9/13
----
+configure.ac,config.h.in
+ - enable-direxpand-default: new configure option, turns the `direxpand'
+ shell option on by default
+
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 <h.koenig@science-computing.de>
+ - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if
+ DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero
-print_cmd.c
- - change redirection printing to output r_err_and_out as `&>file',
- since the man page says that's the preferred form
+doc/bashref.texi
+ - enable-direxpand-default: document new configure option
- 4/12
+ 9/14
----
-builtins/*.def
- - change long doc so the first line is a short description
- - add `Exit Status:' section to each longdoc describing exit values
+shell.c
+ - --protected: make option valid only when wordexp is compiled into
+ the shell. Fix from Roman Rakus <rrakus@redhat.com>
-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)
+configure.ac
+ - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from
+ Joachim Schmitz <jojo@schmitz-digital.de>
-doc/{bash.1,bashref.texi}
- - document new `-d' and `-m' options to `help'
+ 9/16
+ ----
+subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c
+ - minor code cleanups from Joachim Schmitz <jojo@schmitz-digital.de>
-builtins/mapfile.def
- - new builtin, `mapfile', imported from bash-4.0-devel branch
+lib/readline/colors.h
+ - workaround for HP NonStop compiler issue with <stdbool.h> from
+ Joachim Schmitz <jojo@schmitz-digital.de>
-tests/{mapfile.{data,right,tests},run-mapfile}
- - tests for `mapfile' builtin
+ 9/17
+ ----
+builtins/printf.def
+ - printf_builtin: handle localtime returning NULL, as can happen when
+ encountering overflow. Bug report and initial fix from
+ Eduardo A. Bustamante López <dualbus@gmail.com>
doc/{bash.1,bashref.texi}
- - added description of `mapfile' builtin
-
-MANIFEST,Makefile.in,builtins/Makefile.in
- - added entries for mapfile source files
-
-arrayfunc.[ch]
- - new function, bind_array_element, to support mapfile builtin
+ - emphasize that brace expansion using character ranges ({a..c}) acts
+ as if the C locale were in use. Prompted by message from
+ Marcel Giannelia <info@skeena.net>
- 4/20
+ 9/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 <archimerged@gmail.com>
+lib/sh/wcsnwidth.c
+ - wcsnwidth: new function, variant of wcwidth, returns the number of
+ wide characters from a string that will be displayed to not exceed
+ a specified max column position
- 4/22
+ 9/21
----
-bashintl.h
- - new P_ define for using ngettext to decide on plural forms
- (currently unused)
+builtins/help.def
+ - show_builtin_command_help: break code that displays the short-doc
+ for each builtin in two columns into a new function: dispcolumn
+ - wdispcolumn: multibyte-char version of dispcolumn; uses wide
+ chars and printf "%ls" format. Fixes problem reported by
+ Nguyá»n Thái Ngá»c Duy <pclouds@gmail.com>
- 4/25
+ 9/22
----
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.
+ - execute_disk_command: before running the command-not-found hook,
+ call kill_current_pipeline() to make sure we don't add processes
+ to an existing pipeline or wait for processes erroneously
-doc/{bash.1,bashref.texi}
- - document new command_not_found_handle behavior in COMMAND EXECUTION
- section
+ 9/23
+ ----
+lib/readline/input.c
+ - rl_input_available_hook: new hook function, called from
+ _rl_input_available (or _rl_input_queued) to return whether or not
+ input is available wherever the input source is
-configure.in
- - change default version to bash-4.0-devel
+lib/readline/doc/rltech.texi
+ - rl_input_available_hook: document
- 4/28
+ 9/27
----
-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 <morita-pub-en-debian@inz.sakura.ne.jp> in
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096
-
- 5/3
- ---
-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.
+lib/glob/sm_loop.c:
+ - GMATCH: after one or more `*', an instance of ?(x) can match zero or
+ 1 times (unlike ?, which has to match one character). The old code
+ failed if it didn't match at least once. Fixes `a*?(x)' bug.
+ - GMATCH: if we hit the end of the search string, but not the end of
+ the pattern, and the rest of the pattern is something that can
+ match the NUL at the end of the search string, we should successfully
+ match. Fixes `a*!(x)' bug reported by <hans1worst@gmail.com>
-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 <koersen@gmail.com>.
+ 10/2
+ ----
+command.h
+ - add c_lock member to coproc structure for future use to tell who is
+ manipulating it
- 5/4
- ---
-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().
+execute_cmd.c
+ - execute_coproc: block SIGCHLD while parent is forking coproc
+ process and adding pid to sh_coproc struct to avoid race condition
+ where child is reaped before the pid is assigned and the coproc is
+ never marked as having died. Fixes race condition identified by
+ Davide Baldini <baldiniebaldini@gmail.com>
+ - add assignments to c_lock member of struct coproc in various
+ functions that manipulate it; was used to identify race condition
+ - coproc_pidchk: don't call coproc_dispose to avoid using malloc and
+ other functions in a signal handler context
+ - coproc_dispose: call BLOCK_SIGNAL/UNBLOCK_SIGNAL for SIGCHLD while
+ manipulating the sh_coproc struct
-lib/glob/glob.h
- - new defines to support globstar code
+ 10/6
+ ----
+lib/readline/complete.c
+ - rl_display_match_list: if printing completions horizontally, don't
+ bother with spacing calculations if limit == 1, which means we are
+ printing one completion per line no matter what. Fixes bug
+ reported by David Kaasen <kaasen@nvg.ntnu.no>
-builtins/shopt.def
- - new shell option, `globstar', enables special handling of `**' in
- glob patterns -- matches all directories recursively
+ 10/7
+ ----
+builtins/declare.def
+ - declare_internal: add error checking for nameref attribute and
+ variable assignments: self-references, attempts to make an array
+ variable a nameref
-pathexp.h
- - extern declaration for glob_star
+subst.c
+ - parameter_brace_expand: handle parameter_brace_expand_word returning
+ &expand_param_fatal or &expand_param_error and return the appropriate
+ error value
+ - parameter_brace_expand_word: if a nameref variable's value is not a
+ valid identifier, return an error
+ - param_expand: if a nameref variable's value is not a valid identifier,
+ return an error
-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
+test.c
+ - unary_operator: add new -R variable, returns true if variable is set
+ and has the nameref attribute. From ksh93
-doc/{bash.1,bashref.texi}
- - document new `globstar' shell option
+builtins/test.def
+ - add -R to description of conditional commands for help test
-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
+doc/{bash.1,bashref.texi}
+ - document new -R unary conditional operator
- 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
+ 10/13
+ -----
+trap.c
+ - check_signals_and_traps: new function, convenience function for the
+ rest of the shell to check for pending terminating and interrupt
+ signals, and to check for and process any pending traps
+ - any_signals_trapped: new function, returns non-zero if any signals
+ are trapped and -1 if not
-builtins/shopt.def
- - new shell option, `dirspell', enables and disables spelling
- correction of directory names during word completion
+trap.h
+ - extern declaration for check_signals_and_traps
-builtins/read.def
- - support for fractional timeout values (ival.uval); uses uconvert
- and falarm/setitimer
+bashline.c
+ - bashline_reset: make sure we reset the event hook
+ - bash_event_hook: call check_signals_and_traps instead of just
+ checking for terminating signals so we can run pending traps and
+ react to interrupts, and reset the event hook when we're done
-config.h.in
- - new `HAVE_SETITIMER' define
-configure.in
- - look for setitimer(2), define HAVE_SETITIMER if found
+ 10/14
+ -----
+trap.c
+ - trap_handler: if executing in a readline signal handler context,
+ call bashline_set_event_hook to install bash_event_hook to process
+ the signal (if bash cares about it)
-doc/{bash.1,bashref.texi}
- - document new `dirspell' shopt option
- - document new fractional values to `read -t timeout'
+sig.c
+ - sigint_sighandler: call bashline_set_event_hook to set the event
+ hook if we're executing in a readline signal handler context
- 5/6
- ---
-assoc.[ch]
- - new files, basic support for associative array implementation
+lib/readline/input.c
+ - rl_getc: call RL_CHECK_SIGNALS if read returns -1/EINTR and the caught
+ signal is SIGINT or SIGQUIT rather than waiting until the next time
+ around the loop
+ - rl_getc: call rl_event_hook after calling RL_CHECK_SIGNALS to allow
+ an application signal handler to set the event hook in its own
+ signal handler (e.g., like bash trap_handler or sigint_sighandler)
-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)
+parse.y
+ - yy_readline_get: don't set interrupt_immediately before we call
+ readline(). Inspired by report from lanshun zhou
+ <zls.sogou@gmail.com>
-jobs.c
- - don't set last_asynchronous_pid in child shell (messes up $!, among
- other things)
+input.c
+ - getc_with_restart: add call to run_pending_traps after call to
+ CHECK_TERMSIG
-parse.y,parser.h
- - moved definitions of parser flags to parser.h
+lib/sh/zread.c
+ - zread: call check_signals_and_traps if read() returns -1/EINTR
+ instead of just ignoring the EINTR and deferring handling any
+ signal that generated it
-array.c
- - imported array_modcase (case-changing operations on arrays) from
- 4.0-devel branch
+builtins/mapfile.def
+ - mapfile: don't set interrupt_immediately before calling zgetline()
+ (which uses zread internally)
-array.h
- - new extern declaration for array_modcase
+builtins/read.def
+ - read_builtin: don't set interrupt_immediately before calling zread
+ (moved code around so that it was only being set right around calls
+ to zread to avoid signal handler conflicts). Inspired by report
+ from lanshun zhou <zls.sogou@gmail.com>
+ - edit_line: don't set interrupt_immediately around call to readline()
+ - include shmbutil.h
+ - read_builtin: don't call read_mbchar unless is_basic(c) returns
+ false for the character we just read
-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 Pietila
- <sami.pietila@gmail.com>
+ 10/15
+ -----
+sig.c
+ - throw_to_top_level: if interrupt_state is non-zero, make sure that
+ last_command_exit_value reflects 128+SIGINT if it's not already
+ greater than 128
-lib/readline/readline.h
- - extern declaration for rl_menu_completion_entry_function
+ 10/20
+ -----
+builtins/wait.def
+ - WAIT_RETURN: set wait_signal_received back to 0 for the potential
+ next call to wait
- 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
+quit.h
+ - CHECK_WAIT_INTR: macro to check whether trap_handler handled a
+ signal and set wait_signal_received; longjmp to wait_intr_buf in
+ that case
-lib/readline/bind.c
- - 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
+jobs.c
+ - wait_for, waitchld: call CHECK_WAIT_INTR at the same places we call
+ CHECK_TERMSIG to check for terminating signals
+ - wait_sigint_handler: don't longjmp out of the wait builtin unless
+ interrupt_immediately is set; otherwise just SIGRETURN from the
+ handler
+ - wait_sigint_handler: if interrupt_immediately not set, but we are
+ executing in the wait builtin and SIGINT is not trapped, treat it
+ as a `normally received' SIGINT: restore the signal handler and
+ send SIGINT to ourselves
+ - waitchld: when in posix mode and running SIGCHLD traps, don't longjmp
+ to wait_intr_buf (and let wait be interrupted) if we're running from
+ a signal handler. Wait for CHECK_WAIT_INTR to do the longjmp.
+ run_pending_traps will run the SIGCHLD trap later
+
+nojobs.c
+ - reap_zombie_children, wait_for_single_pid, wait_for: call
+ CHECK_WAIT_INTR where we call CHECK_TERMSIG
+ - wait_sigint_handler: don't longjmp out of the wait builtin unless
+ interrupt_immediately is set; otherwise just SIGRETURN from the
+ handler
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - document new `completion-prefix-display-length' variable
- - document new `revert-all-at-newline' variable
+trap.c
+ - trap_handler: make sure wait_signal_received is set if the wait
+ builtin is executing, and only longjmp if interrupt_immediately is
+ set. This whole set of fixes was prompted by report from
+ lanshun zhou <zls.sogou@gmail.com>
-execute_cmd.c
- - 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 <hirobo@tonteki.org>
+ 10/24
+ -----
+lib/glob/glob.c
+ - glob_filename: only check directory_name for globbing chars if
+ it's of non-zero length
- 5/10
- ----
-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 <stephane_chazelas@yahoo.fr>
+lib/sh/strchrnul.c
+ - new simpler implementation
- 5/13
- ----
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
- <iroberts@u.washington.edu>
+ - command_substitute: call set_shellopts after turning off errexit
+ in subshells so it's reflected in $SHELLOPTS
- 5/16
- ----
-support/checkbashisms
- - Perl script that purports to check for bash-specific features in a
- shell script. Lifted from Debian via ubuntu
-
- 5/20
- ----
-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
-
- 5/21
+ 11/7
----
-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
-
-shell.c
- - shell_reinitialize now calls reinit_special_variables
- - shell_reinitialize now calls bashline_reset
-
-variables.h
- - new extern declaration for reinit_special_variables
-
-bashline.c
- - new function, bashline_reset(), called when the shell reinitializes
- in shell_reinitialize. Right now, just resets
- bash_readline_initialized to 0.
+builtins/evalstring.c
+ - parse_and_execute: treat ERREXIT case like reader_loop does: set
+ variable_context to 0 before longjmping back to top_level. Don't
+ run the unwind-protect context to avoid side effects from popping
+ function contexts. Part of fix for problem reported by Nikolai
+ Kondrashov <nikolai.kondrashov@redhat.com>
-bashline.h
- - new extern declaration for bashline_reset()
+execute_cmd.c
+ - execute_simple_command: call unlink_fifo_list only if this is the
+ last element of a pipeline (or not in a pipeline), rather than for
+ every child. Fixes difference in behavior between /dev/fd and
+ FIFOs reported by Zev Weiss <zev@bewilderbeest.net>
+ - execute_null_command: do the same thing in the parent branch after
+ make_child
- 5/23
- ----
-bashhist.c
- - new function, bash_clear_history, clears the history and resets any
- associated internal bash state
+ 11/14
+ -----
+subst.c
+ - parameter_brace_expand: a variable is null if it's special ($@, $*),
+ the expansion occurs within double quotes, and the expansion turns
+ into a quoted null. Fixes debian bug 692447 reported by
+ Matrosov Dmitriy <sgf.dma@gmail.com>
-bashhist.h
- - extern declaration for bash_clear_history
+jobs.c
+ - run_sigchld_trap: make sure `running_trap' sentinel is set
+ appropriately
+ - waitchld: only run the sigchld trap if we're not in a signal
+ handler, not running a trap, and executing the wait builtin.
+ Otherwise, queue for later handling. We still run one instance
+ of the trap handler per exited child. Bulk of fix for bug
+ reported by Elliott Forney <idfah@cs.colostate.edu>
-builtins/history.def
- - call bash_clear_history instead of clear_history for `history -c'.
- Fixes part of problem reported by Scott McDermott
- <scott.m.mcdermott@gmail.com>
- - decrement history_lines_this_session in delete_histent, called for
- `history -d'
+trap.c
+ - queue_sigchld_trap: set catch_flag so run_pending_traps notices,
+ and set trapped_signal_received for completeness. Rest of fix
+ for bug reported by Elliott Forney <idfah@cs.colostate.edu>
-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()
+lib/malloc/malloc.c
+ - block_signals: renamed to _malloc_block_signals, made public
+ - unblock_signals: renamed to _malloc_unblock_signals, made public
- 5/25
- ----
-braces.c
- - 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
+lib/malloc/imalloc.h
+ - extern declarations for _malloc_{un,}block_signals
-command.h
- - new defines for new &>> r_append_err_and_out redirection
+lib/malloc/table.c
+ - mregister_alloc, mregister_free: block signals around table
+ manipulation
-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
+ 11/15
+ -----
+trap.c
+ - run_pending_traps: set SIG_INPROGRESS flag around calls to
+ run_sigchld_handler so other parts of the shell know that the
+ SIGCHLD trap handler is executing
+ - run_pending_traps: if we get a situation where we are looking at
+ running a SIGCHLD trap but the trap string is IMPOSSIBLE_TRAP_HANDLER
+ and the SIG_INPROGRESS flag is set, just skip it. This is possible
+ if run_pending_traps is called from a SIGCHLD trap handler run by
+ run_sigchld_trap
-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
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+ - corrected description of the effect of `set history-size 0'. Report
+ from Vesa-Matti J Kari <vmkari@cc.helsinki.fi>
- 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
+include/stdc.h
+ - CPP_STRING: new define, replaces __STRING
-print_cmd.c
- - print new ;& and ;;& case clause action list terminators as
- appropriate
+lib/malloc/{malloc.c,imalloc.h}
+ - replace __STRING with CPP_STRING
-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
+ 11/16
+ -----
+lib/readline/bind.c
+ - sv_histsize: if argument evaluates to a value < 0, unstifle the
+ history
-doc/{bash.1,bashref.texi}
- - document new ;& and ;;& case clause action list terminators
+ 11/22
+ -----
+redir.c
+ - do_redirection_internal: if we have REDIR_VARASSIGN set in the
+ redirection flags and we set up `redirector' using fcntl or dup2,
+ don't add a redirect to make sure it stays open. Let the
+ script programmer manage the file handle. Fixes bug reported by
+ Sam Liddicott <sam@liddicott.com>
- 5/28
- ----
+ 11/24
+ -----
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
- <miero@atrey.karlin.mff.cuni.cz>
- - 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
+ - wait_for_any_job: new function, waits for an unspecified background
+ job to exit and returns its exit status. Returns -1 on no background
+ jobs or no children or other errors. Calls wait_for with new
+ sentinel value ANY_PID
+ - wait_for: changes to handle argument of ANY_PID: don't look up or
+ try to modify the child struct, only go through the wait loop once.
+ Return -1 if waitpid returns no children
jobs.h
- - new extern declaration for run_sigchld_trap
-
-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
- <miero@atrey.karlin.mff.cuni.cz>
+ - ANY_PID: new define
-trap.h
- - new extern declaration for set_impossible_sigchld_trap
-
- 5/31
- ----
-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
-
- 6/2
- ---
-parse.y
- - call trim_pathname, which retains only the last $PROMPT_DIRTRIM
- directories and replaces the intervening characters with `...',
- when expanding \w and \W
+builtins/wait.def
+ - new option: -n. Means to wait for the next job and return its exit
+ status. Returns 127 if there are no background jobs (or no
+ children). Feature most recently requested by Elliott Forney
+ <idfah@cs.colostate.edu>
doc/{bash.1,bashref.texi}
- - document the effect of setting PROMPT_DIRTRIM
-
- 6/3
- ---
-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
+ - document new `wait -n' option
-doc/bashref.texi
- - document this addition to posix mode
-
-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
+execute_cmd.c
+ - execute_command_internal: save make_command_string () result in a
+ temp variable before calling savestring() on it; avoids evaluating
+ make_command_string() result twice. Fix from John E. Malmberg
+ <wb8tyw@qsl.net>
-builtins/{break,shift}.def
- - change calls to get_numeric_arg to deal with new semantics and calling
- sequence
+ 11/28
+ -----
-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 <chul@cn.fujitsu.com>
-
-{braces,subst}.c
- - extract_command_subst now takes a third flags argument; passed flags
- are ORd into flags passed to other functions; changed callers
+builtins/declare.def
+ - declare_internal: if an array variable is declared using `declare -a'
+ or `declare -A', but not assigned a value, set the `invisible'
+ attribute so the variable does not show up as set. Fix for bug
+ about variable initialization reported by Tim Friske <me@timfriske.com>
-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
+builtins/{mapfile,read}.def
+ - after calling find_or_make_array_variable, make sure the invisible
+ flag is turned off, in case the variable was declared previously
+ using `declare -a' or `declare -A'. Side effect of above change to
+ declare_internal
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
+ - shell_expand_word_list: handle the W_ASSNGLOBAL flag and put -g into
+ the list of options passed to make_internal_declare as appropriate.
+ Fix for bug reported by Tim Friske <me@timfriske.com>
-parse.y
- - change xparse_dolparen to use the SX_* flags now in subst.h
+ 11/30
+ -----
+test.c
+ - unary_op: make sure -v and -n check that the variable is not marked
+ as invisible before calling var_isset. Fix for bug reported by Tim
+ Friske <me@timfriske.com>
- 6/16
+ 12/2
----
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 <stephane_chazelas@yahoo.fr>
+ - process_substitute: turn off the `expanding_redir' flag, which
+ controls whether or not variables.c:find_variable_internal uses the
+ temporary environment to find variables. We want to use the
+ temp environment, since we don't have to worry about order of
+ evaluation in a subshell. Fixes bug reported by Andrey Borzenkov
+ <arvidjaar@gmail.com>
- 6/22
+ 12/4
----
-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
+lib/glob/glob.c
+ - glob_filename: changes to avoid null filenames and multiple entries
+ returned for patterns like **/** (globstar enabled). Fixes bug
+ reported by Ulf Magnusson <ulfalizer@gmail.com>
- 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
+ 12/10
+ -----
+lib/glob/glob.c
+ - glob_filename: finish up a series of changes to make globstar-style
+ globbing more efficient, avoid more duplicate filenames, and be more
+ compatible with other shells that implement it
+ o collapse a sequence of **/**/** to one **
+ o note when the directory name is all ** or ends in ** so we
+ can treat it specially when the filename is **
+ All inspired by report from Andrey Borzenkov <arvidjaar@gmail.com>
-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
+lib/sh/zread.c
+ - zreadn: new function, like zread, but takes an additional argument
+ saying how many bytes to read into the local buffer. Can be used to
+ implement `read -N' without so many one-byte calls to zreadc. Code
+ from Mike Frysinger <vapier@gentoo.org>
-arrayfunc.[ch],subst.c
- - expand_compound_array_assignment now takes the variable as the first
- argument (SHELL_VAR *); changed function definition and callers
+ 12/12
+ -----
+lib/glob/sm_loop.c
+ - PATSCAN (glob_patscan): if passed string already points to end of
+ pattern, return NULL immediately. Fixes problem with
+ extglob_skipname reported by Raphaël Droz <raphael.droz@gmail.com>
-builtins/set.def
- - changes to handle associative arrays in `unset'
+ 12/13
+ -----
+execute_cmd.c
+ - execute_coproc: handle the command's exit status being inverted
+ (an oversight). Fixes bug reported by DJ Mills
+ <danielmills1@gmail.com> and Andreas Schwab <schwab@linux-m68k.org>
-{execute_cmd,command}.h
- - definitions for coproc implementation; from bash-4.0-devel tree
+ 12/14
+ -----
+lib/readline/readline.c
+ - bind_arrow_keys_internal: add MINGW key bindings for Home, End,
+ Delete, and Insert keys. Fix from Pierre Muller
+ <pierre.muller@ics-cnrs.unistra.fr>
-variables.c
- - new functions for associative arrays: make_new_assoc_variable,
- make_local_assoc_variable
+builtins/printf.def
+ - printf_builtin: '%()T' conversion: if there is no argument supplied,
+ behave as if -1 had been supplied (current time). ksh93-like feature
+ suggested by Clark Wang <dearvoid@gmail.com>
- 6/26
- ----
-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
+doc/{bash.1,bashref.texi}
+ - document new printf %()T default argument behavior
-config.h.in
- - add #defines controlling case-modifying variable attributes and word
- expansions
+ 12/15
+ -----
+lib/readline/display.c
+ - displaying_prompt_first_line: new variable, indicates whether or
+ not the first line of output is displaying the prompt. Always true
+ in normal mode, sometimes false in horizontal scrolling mode
+ - rl_redisplay: set displaying_prompt_first_line to true unless we
+ are in horizontal mode; set to false in horizontal mode if the left
+ margin of the displayed line is greater than the end of the prompt
+ string
+ - rl_redisplay: when in horizontal scroll mode, don't adjust
+ _rl_last_c_pos by the wrap offset unless the line is displaying
+ a prompt containing invisible chars
+ - update line: don't adjust _rl_last_c_pos by the wrap offset unless
+ the line is displaying a prompt containing invisible chars
+ - update_line: if shrinking the line by reducing the number of
+ displayed characters, but we have already moved the cursor to the
+ beginning of the line where the first difference starts, don't
+ try to delete characters
-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
+builtins/read.def
+ - unbuffered_read: set to 2 if invoked as `read -N'
+ - if unbuffered_read is set to 2, compute the number of chars we
+ need to read and read that many with zreadn. Posix mode still
+ uses zreadintr. Code from Mike Frysinger <vapier@gentoo.org>
-execute_cmd.c
- - add code to fix_assignment_words to handle assignment statements to
- "assignment builtins" that seem to be associative arrays. Imperfect
+doc/{bash.1,bashref.texi}
+ - read: make it clear that if read times out, it saves any input
+ read to that point into the variable arguments. Report from
+ Fiedler Roman <Roman.Fiedler@ait.ac.at>
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
+ - command_substitute: change direct assignment of exit_immediately_on_error
+ to use change_flag ('e', FLAG_OFF) instead
-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
+flags.c
+ - use errexit_flag as the variable modified by changes to the -e
+ option, reflect those changes to exit_immediately_on_error
- 6/27
- ----
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 <rrakus@redhat.com>
-
- 6/28
- ----
-variables.c
- - fix get_var_and_type to appropriately handle references like
- ${varname[0]}, where `varname' is a scalar variable
-
-make_cmd.[ch],parse.y
- - make_here_document now takes a second argument: the current line
- number; changed caller (gather_here_documents)
+ - execute_builtin: new global variable, builtin_ignoring_errexit, set
+ to 0 by default and set to 1 if eval/source/command executing in a
+ context where -e should be ignored
+ - execute_builtin: set exit_immediately_on_error to errextit_flag
+ after executing eval/source/command in a context where -e should
+ be ignored
+
+flags.c
+ - if builtin_ignoring_errexit is set, changes to errexit_flag are
+ not reflected in the setting of exit_immediately_on_error. Fixes
+ bug reported by Robert Schiele <rschiele@gmail.com>
-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
- ----
-subst.[ch]
- - dequote_escapes is now external; add declaration in subst.h
- - remove_quoted_nulls is now external; add declaration in subst.h
+ 12/23
+ -----
+include/posixjmp.h
+ - setjmp_nosigs: new define, call setjmp in such a way that it will
+ not manipulate the signal mask
-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 <ux386@yahoo.com.br>
- - 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[@]}")
+{expr,test,trap}.c
+ - setjmp_nosigs: call instead of setjmp; don't need to manipulate
+ signal mask
-subst.c
- - new functions for case-modifying word expansion suppport:
- pos_params_casemod, parameter_brace_casemod; from bash-4.0-devel branch
+builtins/read.def
+ - read_builtin: setjmp_nosigs: call instead of setjmp; don't need
+ to manipulate signal mask
-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[@]}")
+builtins/evalstring.c:
+ - parse_and_execute: setjmp_nosigs: call instead of setjmp; don't need
+ to manipulate signal mask
+ - parse_string: setjmp_nosigs: call instead of setjmp; don't need
+ to manipulate signal mask
+ - parse_and_execute: save and restore the signal mask if we get a
+ longjmp that doesn't cause us to return or exit (case DISCARD)
- 7/1
- ---
-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
+ 12/24
+ -----
+general.c
+ - bash_tilde_expand: only set interrupt_immediately if there are no
+ signals trapped; we want to jump to top level if interrupted but
+ not run any trap commands
-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
+ 12/25
+ -----
+jobs.c
+ - run_sigchld_trap: no longer set interrupt_immediately before calling
+ parse_and_execute, even if this is no longer run in a signal handler
+ context
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 <glynn@clements.plus.com>
+ - getc_with_restart: add call to QUIT instead of CHECK_TERMSIG
- 7/2
- ---
-doc/{bash.1,bashref.texi}
- - documented new case-modifying word expansions
+parse.y
+ - yy_stream_get: now that getc_with_restart calls QUIT, don't need to
+ set interrupt_immediately (already had call to run_pending_traps)
-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 <rn214@hermes.cam.ac.uk>
+execute_cmd.c
+ - execute_subshell_builtin_or_function,execute_function,execute_in_subshell:
+ setjmp_nosigs: call instead of setjmp when saving return_catch; don't
+ need to manipulate signal mask
+ - execute_subshell_builtin_or_function,execute_in_subshell:
+ setjmp_nosigs: call instead of setjmp where appropriate when saving
+ top_level; don't need to manipulate signal mask if we're going to
+ exit right away
subst.c
- - in do_assignment_internal, make sure the `invisible' attribute is
- unset before returning success
-
- 7/3
- ---
-config-top.h
- - add `CASEMOD_CAPCASE' define to include or exclude the ~[~] word
- expansion and the `capcase' variable attribute (declare -c)
-
-builtins/declare.def
- - add support for manipulating the case-modifying attributes (new
- declare -clu); from bash-4.0-devel branch
+ - command_substitute: setjmp_nosigs: call instead of setjmp when saving
+ return_catch; don't need to manipulate signal mask
+ - command_substitute: setjmp_nosigs: call instead of setjmp where
+ appropriate when saving top_level; don't need to manipulate signal
+ mask if we're going to exit right away
-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
- ---
-make_cmd.[ch]
- - make_coproc_command: construct a coproc; from bash-4.0-devel tree
-
-dispose_cmd.c
- - dispose coproc command; from bash-4.0-devel tree
+trap.c
+ - run_exit_trap: setjmp_nosigs: call instead of setjmp when saving
+ return_catch; don't need to manipulate signal mask
+ - run_exit_trap: setjmp_nosigs: call instead of setjmp where
+ appropriate when saving top_level; don't need to manipulate signal
+ mask if we're going to exit right away
+ - _run_trap_internal: setjmp_nosigs: call instead of setjmp when saving
+ return_catch; don't need to manipulate signal mask
-copy_cmd.c
- - copy a coproc command; from bash-4.0-devel tree
+builtins/evalfile.c
+ - _evalfile: setjmp_nosigs: call instead of setjmp when saving
+ return_catch; don't need to manipulate signal mask
-print_cmd.c
- - print a coproc command; from bash-4.0-devel tree
+builtins/evalstring.c
+ - evalstring: setjmp_nosigs: call instead of setjmp when saving
+ return_catch; don't need to manipulate signal mask
shell.c
- - dispoe the current coproc on shell exit; from bash-4.0-devel tree
+ - main: setjmp_nosigs: call instead of setjmp where appropriate when
+ saving top_level; don't need to manipulate signal mask if we're
+ going to exit right away
+ - run_one_command: setjmp_nosigs: call instead of setjmp where
+ appropriate when saving top_level; don't need to manipulate signal
+ mask if we're going to exit right away
+ - run_wordexp: setjmp_nosigs: call instead of setjmp where
+ appropriate when saving top_level; don't need to manipulate signal
+ mask if we're going to exit right away
-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
-
-config.h.in
- - add define for COPROCESS_SUPPORT to include coprocesses
-
-configure.in
- - add support for configuring coprocesses into and out of the build
+eval.c
+ - reader_loop: save and restore the signal mask if we get a longjmp
+ that doesn't cause us to return or exit (case DISCARD)
-jobs.c
- - in waitchld, check whether or not a coproc processs has exited;
- from the bash-4.0-devel tree
+ 12/26
+ -----
+parse.y
+ - shell_input_line_{index,size,len}: now of type size_t; in some cases
+ the unsigned property makes a difference
+ - STRING_SAVER: saved_line_{size,index} now of type size_t
+ - shell_getc: don't allow shell_input_line to grow larger than SIZE_MAX;
+ lines longer than that are truncated until read sees a newline;
+ addresses theoretical buffer overflow described by Paul Eggert
+ <eggert@cs.ucla.edu>
+ - set_line_mbstate: size_t changes like shell_getc
+ - shell_getc: if shell_input_line is larger than 32K, free it and
+ start over to avoid large memory allocations sticking around
- 7/5
- ---
-doc/bashref.texi
- - document new --enable-coprocesses option that includes coprocess
- support
+variables.c
+ - bind_global_variable: new function, binds value to a variable in
+ the global shell_variables table
-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
+variables.h
+ - bind_global_variable: new extern declaration
-lib/sh/fdprintf.c
- - new library function fdprintf(int fd, const char *format, ...);
- printf to a file descriptor
+builtins/declare.def
+ - declare_internal: if -g given with name=value, but variable is not
+ found in the global variable table, make sure to call
+ bind_global_variable so the variable is created and modified at
+ global scope. Fixes a bug where declare -g x=y could modify `x'
+ at a previous function scope
-{configure,config.h}.in
- - support for detecting fdprintf and compiling in replacement
+command.h
+ - W_ASSIGNARRAY: new word flag, compound indexed array assignment
-Makefile.in,lib/sh/Makefile.in
- - add rules to include fdprintf.o
+subst.h
+ - ASS_MKGLOBAL: new assignment flag, forcing global assignment even in
+ a function context, used by declare -g
-doc/{bash.1,bashref.texi}
- - documented coprocesses and `coproc' reserved word
+execute_cmd.c
+ - fix_assignment_words: set W_ASSIGNARRAY flag if -a option given to
+ declaration builtin
- 7/7
- ---
subst.c
- - 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 <wxinee@gmail.com>
-
- 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
- <joe@skyrush.com>, 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
- <micah@cowan.name>
-
-
- 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 <buport@figpost.com>
-
- 7/16
- ----
-locale.c
- - in set_locale_var, print a warning message if setlocale() fails any
- time it's called -- required some code restructuring
+ - do_assignment_internal: explicitly handle case where we are
+ executing in a function and we want to create a global array or
+ assoc variable
+ - shell_expand_word_list: call make_internal_declare if -a option
+ given to declaration builtin (W_ASSIGNARRAY); handle -g option with
+ it (W_ASSNGLOBAL). Fixes inconsistency noticed by Vicente Couce
+ Diaz <vituko@gmail.com>, where declare -ag foo=(bar) could modify
+ array variable foo at previous function scope, not global scope
- 7/19
- ----
-support/shobj-conf
- - support for mingw32, contributed by Carlo Bramix
- <carlo.bramix@libero.it>
+ 12/27
+ -----
+bashline.c
+ - Minix needs the third argument to tputs to be a void funtion taking
+ an int argument, not an int-returning function. Fix from
+ John E. Malmberg <wb8tyw@qsl.net> as part of VMS bash port
- 7/23
- ----
-execute_cmd.c
- - added support (currently unused) to manage a list of coprocs
+ 12/29
+ -----
+configure.ac,version.c,patchlevel.h
+ - bash-4.3-devel: new version, new shell compatibility level (43)
- 7/25
- ----
-bashline.c
- - add extern declarations for literal_history and force_append_history
+subst.c
+ - parameter_brace_patsub: put the bash-4.2 code back in from the
+ change of 3/3 that runs the replacement string through quote
+ removal, make it dependent on shell_compatibility_level <= 42
builtins/shopt.def
- - include "bashhist.h" instead of having extern declarations for the
- appropriate history variables
+ - compat42: new shopt option
+ - set_compatibility_level: change logic to set and unset various
+ compat variables and shell_compatibility_level
-parser.h
- - new parser_state value: PST_HEREDOC, set when reading body of here-
- document in parse.y:read_secondary_line
+COMPAT
+ - new documentation for bash-4.3 compatibility changes
-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 <gene_golub@hotmail.com>
+doc/{bash.1,bashref.texi}
+ - compat42: document new shopt option
- 8/4
- ---
-configure.in
- - changed to 4.0-alpha
+builtins/shopt.def
+ - set_compatibility_opts: new function, sets the various shopt
+ compat variables based on the value of shell_compatibility_level
-lib/readline/readline.h
- - changed constants to reflect readline-6.0 version
+builtins/common.h
+ - set_compatibility_opts: new extern declaration
- 8/11
- ----
-lib/readline/signals.c
- - make sure we don't use SIGWINCH without checking whether or not it's
- defined. Fix from Pedro Alves <pedro@codesourcery.com>
+variables.c
+ - BASH_COMPAT: new special variable; sets the shell compatibility
+ level. Accepts values in decimal (4.2) or integer (42) form;
+ Unsetting variable, setting it to empty string, or setting it to
+ out-of-range value sets the shell's compatibility level to the
+ default for the current version. Valid values are 3.1/31 through
+ the current version
+ - sv_shcompat: new function implementing logic for BASH_COMPAT
- 8/12
- ----
+variables.h
+ - sv_shcompat: new extern declaration
-COPYING
- - updated to GPLv3; edits in every file with a copyright or license
- declaration to update to gpl3
+doc/{bash.1,bashref.texi}
+ - BASH_COMPAT: description of new variable
-version.c
- - update extended version info to latest gnu standard
+lib/readline/complete.c
+ - _rl_colored_stats: default back to 0 for 4.3 release branch
- 8/17
- ----
-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 <rrakus@redhat.com>
+ 1/5/2013
+ --------
+quit.h
+ - remove spurious call to itrace in CHECK_WAIT_INTR
- 8/18
- ----
-support/config.{guess,sub}
- - updated to newer versions from autoconf-2.62 distribution
+bashline.c
+ - bash_event_hook: if we're going to jump to top_level, make sure we
+ clean up after readline() by calling rl_cleanup_after_signal().
+ Fixes bug reported against devel branch by Raphaël Droz
+ <raphael.droz@gmail.com>
+ - bash_event_hook: reset the event hook before checking for signals
+ or traps in case we longjmp
- 8/20
- ----
-subst.c
- - fixed parameter_brace_substring to differentiate between indexed and
- associative arrays when computing second offset, instead of
- assuming indexed array
+doc/{bash.1,bashref.texi}
+ - small additions to the set -e section to make it more clear that
+ contexts where -e is ignored extend to compound commands as well
+ as shell functions
- 8/21
- ----
-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.
+lib/readline/readline.h
+ - rl_signal_event_hook: new extern declaration
- 8/22
- ----
-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
+lib/readline/input.c
+ - rl_signal_event_hook: new variable, hook function to call when a
+ function (currently just read(2)) is interrupted by a signal and
+ not restarted
+ - rl_getc: call rl_signal_event_hook instead of rl_event_hook
-[bash-4.0-alpha frozen]
+lib/readline/doc/rltech.texi
+ - rl_signal_event_hook: document new function
- 8/28
- ----
-[bash-4.0-alpha released]
+bashline.c
+ - changes to set rl_signal_event_hook instead of rl_event_hook
- 9/1
- ---
-builtins/evalstring.c
- - fixed typo in parse_string (ostring used uninitialized). Bug
- reported by Andreas Schwab <schwab@suse.de>
+lib/readline/readline.h
+ - change readline version numbers to 6.3
-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 <schwab@suse.de>
- - 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
-
- 9/6
+ 1/6
---
-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
+doc/{bash.1,bashref.texi}
+ - a couple of changes to the descriptions of the ERR trap and its
+ effects based on a message from Rob Nagler <nagler@bivio.biz>
- 9/9
+ 1/9
---
-externs.h
- - fix extern fpurge declaration -- use HAVE_DECL_FPURGE instead of
- NEED_FPURGE_DECL, since the former is set by `configure'
-
-jobs.h
- - add extern declaration for close_pgrp_pipe
- - add a new job state JNONE (-1) to the enum
-
-jobs.c
- - include execute_cmd.h for extern declarations for coproc functions
-
-subst.c
- - include builtins/builtext.h for extern declarations for functions
- implementing builtins (e.g., declare_builtin)
-
-arrayfunc.c
- - include "pathexp.h" for extern declaration for glob_char_p
+expr.c
+ - expassign: invalidate curlval before freeing and NULLing tokstr to
+ avoid aliasing issues. Fixes bug reported by Eduardo A. Bustamante
+ López<dualbus@gmail.com> and Dan Douglas <ormaaj@gmail.com>
braces.c
- - add extern declaration for `asprintf'
-
-lib/readline/rlprivate.h
- - add extern declarations for _rl_trace, _rl_tropen
-
-lib/sh/zgetline.c
- - add extern declarations for zread, zreadc
-
-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 <prj@case.edu>
+ - array_concat: don't be so aggressive in trying to short-circuit. We
+ can only short-circuit if we have a single-element array where the
+ element is an empty string (array[0] == "" array[1] = 0x0). Existing
+ practice requires us to replicate arrays and prefix or append empty
+ strings. Fixes bug reported by Eduardo A. Bustamante López
+ <dualbus@gmail.com>
- 9/11
- ----
-[prayers for the victims of 9/11/2001]
-
-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
- ----
-builtins/bind.def
- - add an error message when bind is used without line editing active,
- instead of just returning an error status
-
-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
- <neil@s-z.org>
-
- 9/16
- ----
-execute_cmd.c
- - add call to CHECK_TERMSIG in shell_execve after the call to execve
- returns. Recommended by Roman Rakus <rrakus@redhat.com>
- - add QUIT check in execute_connection after executing first command
- in a `&' connection
-
- 9/22
+ 1/11
----
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
+ - execute_builtin: since mapfile uses evalstring() to run its callbacks
+ internally, just like eval, so it needs to handle the case where the
+ temp environment given to mapfile persists throughout the entire
+ set of callback commands. This might be a problem with trap also, but
+ trap isn't run in the same way. Fixes bug reported by Dan Douglas
+ <ormaaj@gmail.com>
-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
-
-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)
-
- 9/23
+ 1/13
----
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" <dave@dtrt.org>, debian bug #499633.
-
- 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 <monoped@sudrala.de>
-
- 9/25
- ----
-builtins/common.[ch]
- - new function, builtin_warning(), like builtin_error but for warning
- messages
+ - redirection_error: before expanding the redirection word (if
+ expandable_redirection_filename returns true), disable command
+ substitution during expansion. Fixes bug reported by Dan Douglas
+ <ormaaj@gmail.com>
-builtins/bind.def
- - experimental: print a warning, but go on, if line editing not active
- when bind is invoked. Suggested by Rocky Bernstein
- <rocky.bernstein@gmail.com>
-
- 10/3
- ----
-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 <hkcc2@cantab.net>
+subst.c
+ - expand_word_internal: case '\\': if the next character is an IFS
+ character, and the expansion occurs within double quotes, and the
+ character is not one for which backslash retains its meaning, add
+ the (escaped) '\' and the (escaped) character. Fixes bug reported
+ by Dan Douglas <ormaaj@gmail.com>
- 10/4
+ 1/15
----
-
-redir.c
- - in redirection_error(), use `error' instead of errno when comparing
- against EBADF. From mingw32 patches submitted by Hector Chu
- <hkcc2@cantab.net>
-
-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 <hkcc2@cantab.net>
-
builtins/cd.def
- - ignore CDPATH when in privileged mode. Suggested by Paul Jarc
- <prj@po.cwru.edu>
+ - cd_builtin: make sure call to internal_getopt handles -e option.
+ Fixes bug reported by <mashimiao.fnst@cn.fujitsu.com>
-variables.c
- - change sv_globignore to only act if privileged mode is not enabled.
- Suggested by Paul Jarc <prj@po.cwru.edu>
-
-doc/bash.1,bashref.texi
- - document new treatment of CDPATH and GLOBIGNORE when privileged
- mode is enabled
-
-builtins/read.def
- - change prompt printing to occur after terminal is set to no-echo
- mode. Based on suggestion from Stephane Chazelas
- <stephane_chazelas@yahoo.fr>
-
-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 <joe@skyrush.com>
- - call rl_echo_signal_char in rl_signal_handler: if the terminal
- settings indicate it, readline will echo characters that generate
- keyboard signals
-
-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
-
-lib/readline/rlprivate.h
- - extern declarations for _rl_intr_char, _rl_quit_char, and
- _rl_susp_char
- - extern declaration for _rl_echoctl
-
-lib/readline/readline.h
- - extern declaration for rl_echo_signal_char()
-
-lib/readline/doc/rltech.texi
- - document rl_echo_signal_handler(): available for applications
- that install their own signal handlers
-
- 10/5
+ 1/17
----
-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
- <marcin@owsiany.pl>
-
- 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
- <s-kiess@web.de>
-
- 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
+subst.c
+ - expand_word_list_internal: make sure tempenv_assign_error is
+ initialized to 0
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)
-
-parser.h
- - new parser state, PST_REPARSE
-
-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
- <antonio_macchi@alice.it>
+ - execute_simple_command: make sure tempenv_assign_error is reset to 0
+ after it's tested to see if an error should force the shell to exit.
+ Fixes problem where a the failure of a tempenv assignment preceding
+ a non-special builtin `sticks' and causes the next special builtin
+ to exit the shell. From a discussion on bug-bash started by
+ douxin <wq-doux@cn.fujitsu.com>
- 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 <Serge.Dussud@Sun.COM>
-
- 10/26
- -----
-doc/bash.1
- - add single-sentence descriptions to rest of parameter expansions.
- Suggested by Ken Irving <fnkci@uaf.edu>
-
- 10/27
- -----
+ 1/20
+ ----
subst.c
- - 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
-
-subst.h
- - define for new SD_INVERT flag value for skip_to_delims
-
- 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 <amajorel@teaser.fr>
- - 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 <amajorel@teaser.fr>
+ - parameter_brace_expand_rhs: call stupidly_hack_special_variables
+ after assigning with ${param[:]=word} even if IFS is changing.
+ Suggested by Dan Douglas <ormaaj@gmail.com> [TENTATIVE, needs work
+ on IFS side effects]
-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
+command.h
+ - W_GLOBEXP (which was unused) is now W_SPLITSPACE (which isn't used
+ yet)
- 11/1
- ----
-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 <dearvoid@gmail.com>
+{execute_cmd,subst,variables}.c
+ - removed all code that mentioned W_GLOBEXP
+ - removed mention of gnu_argv_flags and code that set it
- 11/5
+ 1/22
----
-unwind_prot.c
- - new function: have_unwind_protects(); returns 1 if unwind_protect_list
- is not empty
-
-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
+subst.c
+ - param_expand: set W_SPLITSPACE if we expand (unquoted) $* and
+ IFS is unset or null so we can be sure to split this on spaces
+ no matter what happens with IFS later
+ - expand_word_internal: note that param_expand returns W_SPLITSPACE
+ in the returned word flags and keep track of that state with
+ `split_on_spaces'
- 11/9
+ 1/23
----
-variables.c
- - 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 <mike@stroyan.net
-
- 11/11
- -----
-bashline.c
- - new function to reset the value of rl_completer_word_break_characters
- while honoring setting of `hostcomplete': reset_completer_word_break_chars.
-
-bashline.h
- - new extern declaration for reset_completer_word_break_chars.
-
-variables.c
- - call reset_completer_word_break_chars in sv_comp_wordbreaks when the
- variable is unset
-
-[bash-4.0-beta frozen]
-
- 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 <ebb9@byu.net>
-
- 11/20
- -----
-general.c
- - new 'file_exists(fn)' primitive; just calls stat(2)
-
-general.h
- - new extern declaration for file_exists
-
-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
+ - expand_word_internal: if split_on_spaces is non-zero, make sure
+ we split `istring' on spaces and return the resultant word. The
+ previous expansions should have quoted spaces in the positional
+ parameters where necessary. Suggested by Dan Douglas
+ <ormaaj@gmail.com>
execute_cmd.c
- - call file_isdir from shell_execve instead of stat(2) directly
-
-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 <schwab@suse.de>
+ - execute_command_internal: make sure any subshell forked to run a
+ group command or user subshell at the end of a pipeline runs any
+ EXIT trap it sets. Fixes debian bash bug 698411
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698411
- 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 <jidanni@jidanni.org>
-
- 11/27
- -----
-lib/readline/display.c
- - 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 <vapier@gentoo.org>
- - 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 <vapier@gentoo.org>
- - 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 <vapier@gentoo.org>
- - 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" <wjl@icecavern.net> 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]
-
- 12/11
- -----
-sig.c
- - reset the execution context before running the exit trap in
- termsig_handler
+ - shell_expand_word_list: fix code that creates args for and calls
+ make_internal_declare to avoid calling it twice (missing `else'
+ in 12/26 change)
+ - do_assignment_internal: fix code from 12/26 change to fix problem
+ where an existing assoc variable could be converted to an array
+ without checking `mkassoc'
-general.c
- - set and unset terminate_immediately like interrupt_immediately in
- bash_tilde_expand
+ 1/24
+ ----
+builtins/evalfile.c
+ - _evalfile: add missing `close (fd)' calls before returning to
+ avoid fd leaks. Bug and fix from Roman Rakus <rrakus@redhat.com>
+ 1/25
+ ----
builtins/read.def
- - change terminate_immediately to a counter instead of a flag, as
- interrupt_immediately is used
-
-lib/readline/display.c
- - 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 <schwab@suse.de>
-
-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
- - 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
-
-[bash-4.0-beta2 frozen]
-
- 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 <fvulto@gmail.com>
-
-{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 <fvulto@gmail.com>
- - 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 <schwab@suse.de>
-
- 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.
+ - read_builtin: don't try to play tricks with the top of the unwind-
+ protect stack after read gets a SIGALRM; save input_string to new
+ memory, run the stack, then restore input_string and assign the
+ variables. Part of fix for bug reported by konsolebox
+ <konsolebox@gmail.com>; the rest of the fix is with the changes in
+ trap and signal handling and doing away with interrupt_immediately
-[bash-4.0-rc1 frozen]
-
- 1/9
- ---
-locale.c
- - since setlocale() doesn't set errno to anything meaningful,
- don't include the strerror() result in the error message if
- it fails
- - make sure the error messages printed when setlocale fails are
- localizable
-
- 1/11
+ 1/26
----
-lib/readline/histexpand.c
- - make sure that every time history_no_expand_chars is tested, we
- also call the history_inhibit_expansion_function if it's set.
- Fixes bug reported by Yang Zhang <yanghatespam@gmail.com>
+redir.c
+ - redirection_expand, write_here_string, write_here_document: before
+ calling any of the word expansion functions, after setting
+ expanding_redir to 1 (which bypasses the temp environment in the
+ variable lookup functions), call sv_ifs to reset the cached IFS-
+ related variables set by subst.c:setifs(). This ensures that
+ redirections will not get any IFS values that are set in the
+ temporary environment, as Posix specifies. Then, after the word
+ expansions, after resetting expanding_redir to 0, call sv_ifs
+ again to make sure the cached IFS values are set from any
+ assignments in the temporary environment. We force executing_builtin
+ to 1 to `fool' the variable lookup functions into using any temp
+ environment, then reset it to its old value after sv_ifs returns.
+ This is what allows read() to use the (cached) IFS variables set
+ in the temp environment. Fixes inconsistency reported by Dan Douglas
+ <ormaaj@gmail.com>
- 1/12
+ 1/29
----
-trap.c
- - make sure to call parse_and_execute with the SEVAL_RESETLINE bit
- set in the flags so it will reset the line number when running
- the trap commands. Partial fix for bug reported by
- peter360@fastmail.us
+lib/readline/display.c
+ - update_line: fix off-by-one error when updating vis_lbreaks array
+ in a multibyte locale that occurs when moving multibyte chars from
+ one line down to another. Bug report and fix from Egmont
+ Koblinger <egmont@gmail.com>
- 1/14
+ 1/30
----
-builtins/reserved.def
- - document `coproc' so it can be used with `help' builtin. Pointed
- out by Pierre Gaston <pgas@freeshell.org>
-
-lib/sh/casemod.c
- - added two new flags: CASE_UPFIRST and CASE_LOWFIRST to casemod
- the first character of the passed string and pass the rest
- through unchanged. Fixes bug reported by Jan Schampera
- <jan.schampera@web.de>
+configure.ac
+ - changed version to 4.3-alpha
-externs.h
- - new defines for CASE_UPFIRST and CASE_LOWFIRST
-
-subst.c
- - use CASE_UPFIRST for ^ and CASE_LOWFIRST for , casemod operators
-
-builtins/mapfile.def
- - call zreset() before calling first zgetline(), to clean out any
- remaining data in local buffer used by zreadc. Fixes bug
- reported by Pierre Gaston <pierre.gaston@gmail.com>
+redir.c
+ - redir_open: handle open returning -1/EINTR, which seems to happen
+ a lot with FIFOs and SIGCHLD, and call QUIT to handle other
+ signals that can interrupt open(2). Bug report and initial fix
+ from Mike Frysinger <vapier@gentoo.org>
- 1/15
+ 1/31
----
-lib/sh/zread.c
- - renamed zreadintr to zreadretry -- not perfect, but better
- - new functions: zreadintr, which just calls read so it can be
- interruptible, and zreadcintr, which is like zreadc but uses
- zreadintr to fill the buffer
+subst.c
+ - parameter_brace_expand: make sure to propagate the PF_ASSIGNRHS flag
+ to parameter_brace_expand_word
+ - parameter_brace_expand_word: make sure that if the PF_ASSIGNRHS flag
+ is set and we are expanding ${a[@]} or ${a[*]} we set quoted to
+ include Q_DOUBLE_QUOTES before calling array_value_internal, mirroring
+ what we do for $@ and $*. Fixes inconsistency reported by Dan
+ Douglas <ormaaj@gmail.com>
-lib/sh/zgetline.c
- - in zgetline, when zread/zreadc return <= 0, make sure line is
- non-null before assigning to line[nr]
+configure.ac
+ - use AC_CHECK_TOOL instead of AC_CHECK_PROG to check for ar, since it
+ will find $host-prefixed versions of utilities. Report and fix from
+ Mike Frysinger <vapier@gentoo.org>
-builtins/mapfile.def
- - return an error right away if the supplied array variable name
- refers to a readonly or noassign array
- - set interrupt_immediately so calls to zgetline can be
- interrupted. Fixes bug reported by Pierre Gaston
- <pierre.gaston@gmail.com>
- - if interactive, pass the SEVAL_INTERACT and SEVAL_NOHIST flags
- to parse_and_execute when calling callbacks. Fixes bug reported
- by Pierre Gaston <pierre.gaston@gmail.com>
- - add `readarray' as a synonym for mapfile
+builtins/setattr.def
+ - set_var_attribute: check whether bind_variable (called when the
+ variable whose attributes are being modified is found in the temp
+ environment) just modified a read-only global variable, and don't
+ bother marking the temporary variable for propagation if so. The
+ propagation is superfluous and will result in a strange error
+ message
-doc/{bash.1,bashref.texi}
- - document behavior of mapfile builtin adding index of array element
- to be assigned as additional argument to callback string. Reported
- by Pierre Gaston <pierre.gaston@gmail.com>
- - document readarray as synonym for mapfile
+ 2/2
+ ---
+variables.c
+ - initialize_shell_variables: don't try to import function definitions
+ with invalid names from the environment if already in posix mode,
+ but create them as (invisible) exported variables so they pass
+ through the environment. Print an error message so user knows
+ what's wrong. Fixes bug reported by Tomas Trnka <ttrnka@mail.muni.cz>
-builtins/common.c
- - new error function, sh_ttyerror(set), prints an error message having
- to do with setting or getting terminal attributes
+ 2/9
+ ---
builtins/read.def
- - print error message if read fails to set terminal attributes
-
- 1/16
- ----
-execute_cmd.c
- - new function, coproc_reap, calls coproc_dispose if sh_coproc is
- marked as COPROC_DEAD
- - new function, cpl_reap, disposes coprocs marked as COPROC_DEAD
- from coproc list
- - change coproc_pidchk to just mark the coproc as dead instead of
- calling coproc_dispose, so we don't call unsafe functions from
- a signal handler. Fixes bug reported by Andreas Schwab
- <schwab@suse.de>
-
-execute_cmd.h
- - new extern declaration for coproc_reap
-
-command.h
- - new flags for c_flags member of a struct coproc
+ - sigalrm_seen, alrmbuf: now global so the rest of the shell (trap.c)
+ can use them
+ - sigalrm: just sets flag, no longer longjmps to alrmbuf; problem was
+ longjmp without manipulating signal mask, leaving SIGALRM blocked
-{jobs,nojobs}.c
- - add call to coproc_reap in cleanup_dead_jobs, which will do the
- right queueing or blocking of SIGCHLD
+quit.h
+ - move CHECK_ALRM macro here from builtins/read.def so trap.c:
+ check_signals() can call it
trap.c
- - modify change from 1/12 to not reset the line number when running
- the DEBUG and RETURN traps
+ - check_signals: add call to CHECK_ALRM before QUIT
+ - check_signals_and_traps: call check_signals() instead of including
+ CHECK_ALRM and QUIT inline. Integrating check for read builtin's
+ SIGALRM (where zread call to check_signals_and_traps can see it)
+ fixes problem reported by Mike Frysinger <vapier@gentoo.org>
- 1/18
+ 2/12
----
-lib/sh/casemod.c
- - change default operations to work on entire passed string instead
- of breaking into words at non-alpha-numerics. Use new
- CASE_USEWORDS flag to enable by-word behavior. Fixes bug reported
- by Jan Schampera <jan.schampera@web.de>
-
-builtins/printf.def
- - in vbprintf, bracket each call to vsnprintf (which uses the args
- passed to vbprintf) with SH_VA_START and va_end, so we can
- reninitialize the argument list for each call. This is actually
- what the C standard requires. Fixes bug that caused printf -b
- to `ignore' first % format specifier if it came first in the
- string. Reported by David Leverton <levertond@googlemail.com>
+lib/glob/xmbsrtowcs.c
+ - xdupmbstowcs2: fixed but where end of string was not handled
+ correctly, causing loop to go past end of string in a bunch of cases.
+ Fixes bug reported by "Dashing" <dashing@hushmail.com>
-builtins/mapfile.def
- - start the line count at 1, since it doesn't get incremented before
- (or after) reading the first line, so things like
- `mapfile -n 5 -c 1 -C 'echo foo' array < file' work right and call
- the callback after the first line is read. Fixes bug reported by
- Pierre Gaston <pierre.gaston@gmail.com>
- 1/22
+ 2/13
----
-lib/readline/complete.c
- - set _rl_interrupt_immediately non-zero before reading from the file
- system or calling an application-defined completion function
-
-lib/readline/signals.c
- - renamed rl_signal_handler to _rl_handle_signal; new version of
- rl_signal_handler that just calls _rl_handle_signal (for now)
- - new function _rl_signal_handler that calls _rl_handle_signal without
- any checking
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_signal_handler
- - new define, RL_CHECK_SIGNALS, checks whether or not _rl_caught_signal
- is set and calls _rl_signal_handler if so
-
-lib/readline/{bind,input,readline}.c
- - add RL_CHECK_SIGNALS in appropriate places
-
-lib/readline/signals.c
- - change rl_signal_handler to set a flag and return rather than
- run through the entire signal handling process. If
- _rl_interrupt_immediately is set, call the signal handling code
- right away instead of setting the flag. Initial fix for crash
- bug reported by Roman Rakus <rrakus@redhat.com>
-
-aclocal.m4
- - new macro, BASH_TYPE_SIG_ATOMIC_T, tests for sig_atomic_t in
- <signal.h>, defines as int if not defined
-
-configure.in
- - call BASH_TYPE_SIG_ATOMIC_T
- - call AC_C_VOLATILE
+builtins/pushd.def
+ - popd_builtin: treat any argument that isn't -n or of the form
+ [-+][[:digit:]]* as an error. Fixes problem reported by Bruce
+ Korb <bruce.korb@gmail.com>
-config.h.in
- - empty define for sig_atomic_t
- - empty define for volatile
+ 2/14
+ ----
+configure.ac
+ - add check for sig_atomic_t; already a placeholder for it in
+ config.h.in
- 1/27
+ 2/15
----
subst.c
- - audit calls to add_character and change to add_ifs_character (which
- quotes characters in $IFS). Affects primarily `:', `=', and `~'.
- Fixes bug reported by Jan Schampera <jan.schampera@web.de>; fix
- suggested by Stephane Chazelas <stephane_chazelas@yahoo.fr>
+ - do_compound_assignment: don't call assign_compound_array_list with
+ a NULL variable in case make_local_xxx_variable returns NULL
+ (it will if you try to shadow a readonly or noassign variable).
+ Fixes bug reported by Richard Tollerton <rich.tollerton@ni.com>
- 2/1
- ---
-configure.in
- - call AC_C_RESTRICT
+ 2/16
+ ----
+variables.c
+ - make_local_variable: print error messager if an attempt is made to
+ create a local variable shadowing a `noassign' variable. Previously
+ we just silently refused to do it
-config.h.in
- - add empty defintion for `restrict'
+trap.[ch]
+ - get_original_signal: now global so rest of the shell can use it
-pcomplete.c
- - use unwind_protects around call to execute_shell_function in
- gen_shell_function_matches to prevent data corruption if
- throw_to_top_level is called. Bug report and fix from
- werner@suse.de.
+sig.c
+ - initialize_shell_signals: install a signal handler for SIGTERM
+ that does nothing except set a sigterm_received flag instead of
+ ignoring it with SIG_IGN, as long as SIGTERM is not ignored when
+ the shell is started. Use get_original_signal early to get the
+ original handler, since we will do that later anyway
+ - set_signal_handler: if installing sigterm_sighandler as the SIGTERM
+ handler, make sure to add SA_RESTART flag to make it as close to
+ SIG_IGN as possible
-execute_cmd.c
- - don't clamp CPU usage at 100% in print_formatted_time. Bug reported
- by Linda Walsh <bash@tlinx.org>
+sig.h
+ - sigterm_sighandler: new extern declaration
- 2/5
- ---
-locale.c
- - in set_locale_var, set errno to 0 before calling setlocale(), and
- print strerror (errno) if setlocale fails and errno ends up non-zero
+quit.h
+ - RESET_SIGTERM: set sigterm_receved to 0
+ - CHECK_SIGTERM: check sigterm_received; if it's non-zero, treat it
+ as a fatal signal and call termsig_handler to exit the shell
- 2/6
- ---
-configure.in
- - backed out of solaris change from 10/23/2008 (adding `-z interpose'
- to LDFLAGS) due to solaris updates to fix a linker problem.
- Updatted by Serge Dussud <Serge.Dussud@Sun.COM>
+jobs.c
+ - make_child: call RESET_SIGTERM just before fork() so we can detect
+ if the child process received a SIGTERM before it's able to change
+ the signal handler back to what it was when the shell started
+ (presumably SIG_DFL). Only has effect if the shell installed
+ sigterm_sighandler for SIGTERM, interactive shells that were not
+ started with SIG_IGN as the SIGTERM handler
+ - make_child: call RESET_SIGTERM in the parent after fork() so the
+ rest of the shell won't react to it
- 2/12
- ----
execute_cmd.c
- - change execute_connection so failure of a pipeline will cause the
- shell to exit if -e is on. From discussion on austin-group
- mailing list
- - change execute_command_internal so failure of a user-specified
- subshell will cause the shell to exit if -e is on. From discussion
- on austin-group mailing list
+ - execute_simple_command: call CHECK_SIGTERM after make_child in child
+ to catch SIGTERM received after fork() and before restoring old
+ signal handlers
+ - execute_disk_command: call CHECK_SIGTERM after make_child in child
+ process after restoring old signal handlers and again just before
+ calling shell_execve. Fixes race condition observed by
+ Padraig Brady <p@draigbrady.com> when testing with his `timeout'
+ program
- 2/13
- ----
-doc/{bash.1,bashref.texi}
- - clarified description of set -e option to accurately reflect current
- implementation
+lib/readline/display.c
+ - open_some_spaces: new function, subset of insert_some_chars that just
+ opens up a specified number of spaces to be overwritten
+ - insert_some_spaces: now just calls to open_some_spaces followed by
+ _rl_output_some_chars
+ - update_line: use col_temp instead of recalculating it using
+ _rl_col_width in the case where we use more columns with fewer bytes
+ - update_line: use open_some_spaces and then output the right number
+ of chars instead of trying to print new characters then overwrite
+ existing characters in two separate calls. This includes removing
+ some dodgy code and making things simpler. Fix from Egmont
+ Koblinger <egmont@gmail.com>
+ - use new variable `bytes_to_insert' instead of overloading temp in
+ some code blocks (nls - nfd, bytes that comprise the characters
+ different in the new line from the old)
- 2/19
+ 2/18
----
-print_cmd.c
- - fix print_deferred_heredocs to not print a space if the separator
- string is null
- - change print_deferred_heredocs to set `was_heredoc' after printing
- something
- - change connection printing code to only print the `;' separator
- if we haven't just printed a here-document
- - change connection printing code to print any deferred here
- documents after the rhs of the connection. Fixes bug reported by
- Bo Andresen <bo.andresen@zlin.dk>
-
-[bash-4.0 frozen]
+redir.c
+ - do_redirection_internal: add undoable redirection for the implicit
+ close performed by the <&n- and >&n- redirections. Fixes bug
+ reported by Stephane Chazelas <stephane.chazelas@gmail.com>
- 2/20
+ 2/19
----
+sig.c
+ - termsig_handler: an interactive shell killed by SIGHUP and keeping
+ command history will try to save the shell history before exiting.
+ This is an attempt to preserve the save-history-when-the-terminal-
+ window-is-closed behavior
-[bash-4.0 released]
-
- 2/22
+ 2/21
----
-
-parse.y
- - fix parse_comsub to not test a character for being a possible shell
- metacharacter if LEX_PASSNEXT flag is set. Fixes bug reported by
- Mike Frysinger <vapier@gentoo.org>
-
-pcomplete.c
- - add call to save_parser_state (accidentally dropped from patch) to
- gen_shell_function_matches. Fixes bug with bash_completion and
- file/directory completion reported by phil@Arcturus.universe
-
-Makefile.in
- - fix assignment to LDFLAGS_FOR_BUILD to match those in subdir
- Makefiles. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
-
-builtins/mapfile.def
- - make sure the callback quantum (-c option argument) is > 0. Fixes
- bug reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
+braces.c
+ - brace_expand: if a sequence expansion fails (e.g. because the
+ integers overflow), treat that expansion as a simple string, including
+ the braces, and try to process any remainder of the string. The
+ remainder may include brace expansions. Derived from SuSE bug
+ 804551 example (https://bugzilla.novell.com/show_bug.cgi?id=804551)
2/23
----
-parse.y
- - fix save_token_state and restore_token_state to save and restore
- current_token. Fixes bug reported by Bernd Eggink
- <monoped@sudrala.de>
-
-builtins/exit.def
- - check jobs[i] before checking whether or not it's running when
- the checkjobs option is set and we're looking for running jobs
- at exit. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
-
- 2/24
- ----
-siglist.c
- - include bashintl.h for definition of _. Fixes bug reported by
- Greg Wooledge <wooledg@eeg.ccf.org>
+{quit,sig}.h,sig.c
+ - sigterm_received declaration now in sig.h; type is sig_atomic_t
+ - sigwinch_received type now sig_atomic_t
+ - sig.h includes bashtypes.h and <signal.h> if SIG_DFL not defined
+ (same logic as trap.h) to pick up sig_atomic_t
- 2/25
- ----
-subst.c
- - new function, skip_matched_pair. Similar to skip_to_delim and
- the extract_XXX family
- - move skipsubscript here from arrayfunc.c; re-implement in terms of
- skip_matched_pair. Fixes bugs reported by <anmaster@tele2.se>
-
-arrayfunc.c
- - remove skipsubscript; moved to subst.c
-
-parse.y
- - change reset_parser to set current_token to '\n'. Rest of fix for
- bug reported by Bernd Eggink <monoped@sudrala.de>; earlier fix on
- 2/23
+unwind_prot.c
+ - include sig.h before quit.h (reverse order)
- 2/26
+ 2/27
----
-builtins/declare.def
- - when given something like array[x]=y (which sets making_array_special
- to 1), don't convert an associative array to an indexed array (line
- 493). Part of fix for bug reported by Pierre Gaston
- <pierre.gaston@gmail.com>
- - if offset == 0, indicating that we do not have a valid assignment,
- make sure any `name' containing a `[' is a valid array reference
- before trying to go on. Not doing this leads to creating crazy
- variables like `name[foo[bar]=bax'. Rest of fix for bug reported
- by Pierre Gaston <pierre.gaston@gmail.com>
+builtins/shopt.def
+ - reset_shopt_options: make sure check_window_size is reset to the
+ default from config.h, not unconditionally to 0
-assoc.c
- - change assoc_to_assign to single-quote the array keys if `quoted' is
- non-zero. Makes things easier to read with weird characters in the
- key
+jobs.[ch]
+ - last_made_pid, last_asynchronous_pid: now volatile. Change from SuSE
-parse.y
- - fix parse_comsub to not set LEX_HEREDELIM when it sees "<<<". Fixes
- bug reported by Mike Frysinger <vapier@gentoo.org>
+jobs.c
+ - wait_for: if we're using sigaction to install a handler for SIGCHLD,
+ make sure we specify SA_RESTART
- 2/27
- ----
-parse.y
- - fix report_syntax_error to set last_command_exit_value to
- EX_BADUSAGE (2) instead of EX_USAGE (258), since there's nothing
- that will translate that to something < 128 before reading the
- next command. Partial fix for bug reported by Mike Frysinger
- <vapier@gentoo.org>
+lib/{tilde,readline}/shell.c
+ - get_home_dir: instead of looking in the password file every time,
+ look once and cache the result
-sig.c
- - fix sigint_sighandler to set last_command_exit_value to sig+128
- before calling throw_to_top_level. Rest of fix for bug reported
- by Mike Frysinger <vapier@gentoo.org>
+sig.[ch]
+ - sigwinch_received, sigterm_received: now `volatile' qualified
-jobs.c
- - if fork() fails, set last_command_exit_value to 126 before calling
- throw_to_top_level
+sig.c,quit.h
+ - interrupt_state,terminating_signal: now sig_atomic_t
-execute_cmd.c
- - defer calling unlink_fifo_list in parent branch of
- execute_disk_command if we're executing in a shell function
- - change execute_function to call unlink_fifo_list before returning
- if it's the top-level function
+ 3/1
+ ---
+MANIFEST,examples/*
+ - removed around 120 files without FSF copyrights; requested by
+ Karl Berry in early January
3/2
---
-builtins/read.def
- - if read times out, make sure we remove the top element from the
- unwind-protect stack (the free of input_string) and run the rest,
- to reset the tty and readline and alarm states. Then we jump to
- assigning the variables to any partial input. Fixes bug reported
- by Christopher F. A. Johnson <cfajohnson@gmail.com>
+lib/malloc/malloc.c
+ - morecore: only check whether SIGCHLD is trapped if SIGCHLD is defined
- 3/3
- ---
-parse.y
- - break comment checking code into a common COMMENT_BEGIN define so
- we can use it in multiple places in parse_comsub
- - in parse_comsub, don't alter the LEX_RESWDOK flag if we read a
- `#' and we're checking comments, even though `#' isn't a `shell break'
- character. Fixes bug reported by Mike Frysinger <vapier@gentoo.org>
+doc/bashref.texi
+ - Fixed most of the examples in the GNU Parallel section to use better
+ shell idioms following complaints on bug-bash; added a couple of
+ examples and smoothed out the text
-braces.c
- - in expand_seqterm, decrease the total length of the rhs by the length
- of any (optional) increment, so we don't end up with unwanted zero
- padding because the rhs length is wrong. Fixes bug reported by
- Carl Albing <albing@comcast.net>
+quit.h
+ - include "sig.h" for sig_atomic_t
+
+lib/readline/display.c
+ - update_line: when inserting one or more characters at the end of
+ the display line in a non-multibyte environment, just write from the
+ first difference to the end of the line and return. We don't have
+ to adjust _rl_last_c_pos. This is needed to adjust from the old
+ two-part copy to a single call to _rl_output_some_chars (change of
+ 2/16)
3/4
---
-doc/{bash.1,bashref.texi}
- - changes to clean up some of the language describing the effects of
- terminal process groups on the ability to read from and write to
- the terminal
+Makefile.in,doc/Makefile.in
+ - PACKAGE_TARNAME, docdir: new variables substituted by autoconf
+ - OTHER_DOCS,OTHER_INSTALLED_DOCS: new variables with auxiliary
+ documentation files to be installed into $(docdir)
+ - install: add new rule to install $(OTHER_DOCS)
+ - uninstall: add new rule to uninstall $(docdir)/$(OTHER_INSTALLED_DOCS)
- 3/5
- ---
-support/shobj-conf
- - add host_vendor to string tested in switch to handle things like
- gentoo/freebsd
- - beginning with version 7, FreeBSD no longer has /usr/bin/objformat
- or a.out binaries and libraries. It's always ELF. Fix from
- Timothy Redaelli <drizzt@gentoo.org>
+doc/bash.1
+ - add URL to `POSIX' file in `SEE ALSO' section; put pointer to that
+ section in --posix and set -o posix descriptions
-parse.y
- - in parse_comsub, allow comments if we are ready to read a
- reserved word (tflags & LEX_RESWDOK), haven't read anything from
- one yet (lex_rwlen == 0) and the current character is a '#'
+examples/
+ - removed around 110 examples at the request of the FSF due to copyright
+ issues
- 3/6
+ 3/5
---
-parse.y
- - new lex flag for parse_comsub: LEX_INWORD. Turn it off when
- we see a shell break character; turn it on or keep it on when
- not a break character. Keep track of word length (reset to 0
- when we turn on LEX_INWORD when it was off).
- - don't use COMMENT_BEGIN in parse_comsub any more; test
- whether or not LEX_INWORD is set and lex_wlen == 0 in addition
- to tests for LEX_RESWDOK and lex_rwlen. Comments are valid
- when at the start of a word
- - move LEX_PASSNEXT code to the top of parse_comsub, so the rest
- of the function doesn't have to check for the flag at different
- places
+builtins/setattr.def
+ - readonly: modified help text slightly to make it clearer that
+ functions aren't changed or displayed unless the -f option is given.
+ Report from <gotmynick@gmail.com>
- 3/7
+ 3/9
---
+include/typemax.h
+ - SIZE_MAX: define to 65535 (Posix minimum maximum) if not defined
+
parse.y
- - in parse_comsub, when looking for a reserved word (LEX_RESWDOK
- non-zero), and in a case statement, we can see either an esac
- or a pattern list. We handle an esac separately. We should
- turn off LEX_RESWDOK if we see anything but a newline, since
- we'll be reading a pattern list. Other part of fix for bug
- reported by Mike Frysinger <vapier@gentoo.org> (rest of fix
- on 3/3)
+ - include "typemax.h" for possible SIZE_MAX definition, make sure we
+ include it after shell.h
+
+{braces,expr}.c
+ - include "typemax.h" for possible INTMAX_MIN and INTMAX_MAX definitions
3/10
----
-{.,lib/readline}/doc/fdl.texi
- - updated to FDL version 1.3
+bashline.c
+ - bash_default_completion: make sure completion type of `!' (same as
+ TAB but with show-all-if-ambiguous set) and glob-word-completion
+ sets rl_filename_completion_desired to 0 so extra backslashes don't
+ get inserted by `quoting' the completion. We can't kill all the
+ matches because show-all-if-ambiguous needs them. Bug report from
+ Marcel (Felix) Giannelia <info@skeena.net>
- 3/11
- ----
-parse.y
- - when using the |& construct with a simple command preceding it, add
- the implicit redirection to the simple command's redirection list,
- since the redirections associated with the command struct are never
- executed. Fixes bug reported by Matt Zyzik <Matt@ice.filescope.com>
+[bash-4.3-alpha frozen]
3/14
----
-execute_cmd.c
- - in execute_case_command, if ;& is used with no following pattern
- list, make sure we don't reference a NULL pointer. Bug report and
- fix from Clark Jian Wang <dearvoid@gmail.com>
-
-parse.y
- - make parser_state global, so other files can use it
- - command_word_acceptable now returns non-zero if PST_REDIRLIST bit
- set in parser_state, so we accept assignment statements and
- perform alias expansion. Fix for bug reported by Vincent
- Lefevre <vincent@vinc17.org> (2/24/2009)
-
-parser.h
- - add PST_REDIRLIST flag, notes that parser is currently parsing a
- redirection list preceding a simple command
-
-make_cmd.c
- - make_simple_command now turns on PST_REDIRLIST in parser_state when
- creating a new simple command
- - make_simple_command turns off PST_REDIRLIST in parser_state if it
- adds a non-redirection to the command it's building
- - clean_simple_command turns off PST_REDIRLIST to make sure it's off
-
-subst.c
- - new flag for param_expand: PF_IGNUNBOUND, means to not exit if the
- variable is unbound even if `set -u' is enabled
- - change param_expand to not call err_unboundvar if the `pflags'
- argument has the PF_IGNUNBOUND bit set
- - parameter_brace_expand_word now takes an extra `pflags' argument to
- pass down to param_expand; changed callers
- - changed call to parameter_brace_expand_word in parameter_brace_expand
- to add PF_IGNUNBOUND flag so ${@:-foo} doesn't cause the shell to
- exit (but ${@} does) when there are no positional parameters. Fixes
- Debian bug 519165 from Dan Jacobson <jidanni@jidanni.org>
-
-parse.y
- - add code to parse_comsub to allow here-documents within command
- substitutions to be delimited by the closing right paren, with the
- usual warning about here documents delimited by EOF on execution.
- Fixes regression from bash-3.2 noted in Red Hat bugzilla 485664 by
- Ralf Corsepius
+general.c
+ - trim_pathname: use memmove instead of memcpy since the source and
+ destination pathnames may overlap. Report and fix from Matthew
+ Riley <mattdr@google.com>
- 3/15
+ 3/18
----
-subst.c
- - string_list_dollar_at now checks for Q_PATQUOTE, which getpattern()
- uses to denote Q_DOUBLE_QUOTES (?). Fixes a=abcd echo "${a#$*}"
- when IFS= and args are `a b' as noted by Stephane Chazleas
- <stephane_chazelas@yahoo.fr>
- - param_expand now checks for Q_PATQUOTE and treats it identically
- to Q_DOUBLE_QUOTES when expanding $*
- - expand_word_unsplit now sets W_NOSPLIT in the flags of the word it
- passes to expand_word_internal if $IFS is NULL
- - expand_word_leave_quoted now sets expand_no_split_dollar_star and
- the W_NOSPLIT bit in the word flags before calling
- expand_word_internal if $IFS is NULL, just like expand_word_unsplit.
- It is now virtually identical to expand_word_unsplit. Rest of fix for
- problems reported by Stephane Chazleas <stephane_chazelas@yahoo.fr>
+configure.ac
+ - socklen_t is defined as `unsigned int' if configure can't find it
3/20
----
-trap.c
- - in _run_trap_internal, don't pass SEVAL_RESETLINE as flag to
- parse_and_execute if running the ERR trap (further modification
- of change from 1/12)
-
-execute_cmd.c
- - in execute_simple_command, set line_number to line_number_for_err_trap
- before calling run_error_trap. Part of fix for bug reported by
- Brian J. Murrell <brian@interlinx.bc.ca>
- - change other places calling run_error_trap() to set and use
- line_number_for_err_trap
+lib/readline/complete.c
+ - S_ISVTX: since it's not defined on all platforms (Minix), make sure
+ its use is protected with #ifdef
3/21
----
-builtins/fc.def
- - Even though command substitution through parse_and_execute turns
- off remember_on_history, command substitution in a shell when
- set -o history has been enabled (interactive or not) should use it
- in the last_hist calculation as if it were on. Same calculation
- in fc_gethnum and fc_builtin. Fixes bug reported by
- Ian Kelling <smallnow@gmail.com>
+doc/{bash.1,bashref.texi}
+ - Added mention of ${!name[@]} and ${!name[*]} expansions to get all
+ indices of an array. Suggested by Jonathan Leffler
+ <jonathan.leffler@gmail.com>
-sig.c
- - change termsig_sighandler to terminate immediately if it gets called
- twice with the same signal before termsig_handler gets called. This
- fixes the `looping on SIGSEGV' phenomenon reported by Linux users.
+ 3/24
+ ----
+subst.h
+ - SD_IGNOREQUOTE: new define for skip_to_delim; if set, means that
+ single quotes (for now) will be treated as ordinary characters
-parse.y
- - in read_secondary_line, don't try to add NULL lines to the history
- list. Report and patch from Lubomir Rintel <lkundrak@v3.sk>
+subst.c
+ - skip_to_delim: handle SD_IGNOREQUOTE. no callers use it for now
- 3/22
+ 3/25
----
-sig.c
- - Augment change from 3/21 with explicit check for signals we *don't*
- want this to happen for. Patch from Lubomir Rintel <lkundrak@v3.sk>
+support/config.{guess,sub}
+ - updated to versions from autoconf-2.69
- 3/28
+ 3/31
----
-array.c
- - in array_reference, return NULL immediately if the desired index
- is larger than the maximum
- - add cache of last array referenced and last array element referenced;
- use in array_reference to optimize case of sequential access;
- invalidated where necessary in other functions
- - array_rshift needs to set max_index to 0 if the array was empty
- before shifting in the new element 0
- - array_shift needs to use element_index(a->head->prev) to set the
- max_index, not a simple decrement, to deal with sparse arrays
+lib/sh/shquote.c
+ - sh_single_quote: short-circuit quoting a single "'" instead of
+ creating a long string with empty single-quoted strings
- 4/1
- ---
-bashline.c
- - in bash_dequote_filename, return right away after copying the
- backslash if the last character in the string to be expanded
- is a backslash. The old code copied an extra NUL and overwrote
- the bounds checking. Fixes bug reported by Shawn Starr
- https://bugzilla.redhat.com/show_bug.cgi?id=488649
+parser.h
+ - DOLBRACE_QUOTE2: new define, like DOLBRACE_QUOTE, but need to single-
+ quote results of $'...' expansion because quote removal will be
+ done later. Right now this is only done for ${word/pat/rep}
- 4/3
- ---
-subst.c
- - in pat_subst.c, make sure to copy one character from the input
- string in the case of a null pattern match, since we substitute
- on the null match and then increment past the current character.
- Not doing this means that each character of the original string
- is replaced because of the null matches. Fixes debian bug
- reported bhy Louis-David Mitterrand <ldm@apartia.fr>
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522160
-
-lib/sh/winsize.c
- - incorporate contents of readline/rlwinsize.h to get all the various
- system dependencies right when trying to find TIOCGWINSZ. Fixes
- bug reported by Dan Price <dp@eng.sun.com>
+parse.y
+ - parse_matched_pair: set state to DOLBRACE_QUOTE2 for pattern
+ substitution word expansion so we don't treat single quote specially
+ in the pattern or replacement string
+ - parse_matched_pair: if we're parsing a dollar-brace word expansion
+ (${...}) and we're not treating single quote specially within
+ double quotes, single-quote the translation of $'...' ansi-c
+ escaped strings. Original report and fix from Eduardo A.
+ Bustamante López <dualbus@gmail.com>
- 4/6
- ---
-doc/{bash.1,bashref.texi}
- - fix description of conditional `>' and `<' to remove statement that
- the comparison pays attention to the current locale -- it has
- always used strcmp
+subst.c
+ - extract_dollar_brace_string: ${word/pat/rep} scanning now sets the
+ DOLBRACE_QUOTE2 flag instead of DOLBRACE_QUOTE so we don't treat
+ single quotes specially within a double-quoted string
-lib/glob/glob.c
- - fixed a bug in glob_filename that caused glob_dir_to_array to be
- called to prepend a (globbed) directory name onto the results from
- glob_vector, which, if we were globbing `**', glob_vector has
- already done. Effect is to have the directory name(s) on there
- twice. Fixes "dir*/**" bug reported by Matt Zyzik
- <Matt@ice.filescope.com>
+execute_cmd.c
+ - fix_assignment_words: skip over assignment statements preceding a
+ command word before trying to figure out whether or not assignment
+ statements following a possible declaration command should be
+ treated specially. Fixes bug reported by Dan Douglas
+ <ormaaj@gmail.com>
- 4/8
+ 4/4
---
-doc/{bash.1,bashref.texi}
- - fix short syntax summary of for command to reflect full bash
- syntax (which is a superset of Posix syntax). Fixes bug reported
- by Reuben Thomas <rrt@sc3d.org>
-
- 4/10
- ----
-{expr,subst}.c
- - make sure last_command_exit_value is set to EXECUTION_FAILURE
- before calling err_unboundvar, in case set -e is enabled and
- the shell exits from there. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com> and Piotr Zielinski
- <piotr.zielinski@gmail.com>
+lib/readline/readline.c
+ - _rl_dispatch_subseq: only call _rl_vi_set_last (and check whether
+ the key is a text modification command) if the key sequence length
+ is 1. That keeps the arrow keys from setting the last command
+ when called in vi command mode. Fixes bug reported by Ian A.
+ Watson <watson_ian_a@lilly.com>
- 4/11
- ----
-jobs.c
- - in restore_pipeline, don't call discard_pipeline with a NULL
- argument
+ 4/6
+ ---
+lib/readline/bind.c
+ - rl_parse_and_bind: when parsing a double-quoted string as the value
+ of a variable, make sure we skip past the leading double quote.
+ Fix from Andreas Schwab <schwab@linux-m68k.org>
-trap.c
- - in run_debug_trap, make sure to save and restore the pipeline,
- pipeline_pgrp, and state of the pipeline around running the debug
- trap, then remove any job created by running the debug trap from
- the jobs table when it completes. Fixes for two bugs reported
- by lex@upc.ua
+variables.c
+ - hash_lookup: set new local variable last_table_searched to the table
+ a successful lookup appears in; tested in make_local_variable to
+ solve the problem below
+ - make_local_variable: if we find a variable with the tempenv flag
+ set at the same `level' as variable_context', but not found in the
+ temporary_env (temp environment preceding the builtin), return it.
+ The temp environment preceding the function call has already been
+ merged (in execute_function) into the list of variable contexts the
+ function sees as shell_variables by the time this is called. Fixes
+ inconsistency pointed out by Dan Douglas <ormaaj@gmail.com>
+
+subst.c
+ - expand_arith_string: expanded out contents of expand_string,
+ expand_string_internal, expand_string_if_necessary to create a
+ WORD_DESC and call call_expand_word_internal() on it directly.
+ We don't want process substitution to be performed ( 1<(2) ) should
+ mean something different in an arithmetic expression context.
+ It doesn't work to just turn on the DQUOTE flag, since that means
+ that things like ${x["expression"]} are not expanded correctly.
+ Fixes problem pointed out by Dan Douglas <ormaaj@gmail.com>
- 4/12
+ 4/13
----
-lib/readline/signals.c
- - new functions to block and release SIGWINCH like the SIGINT blocking
- and releasing functions
-
-lib/readline/rlprivate.h
- - new extern declarations for _rl_block_sigwinch and _rl_release_sigwinch
+subst.c
+ - process_substitute: run the EXIT trap before exiting, as other
+ shells seem to. Fixes problem pointed out by Dan Douglas
+ <ormaaj@gmail.com>
-lib/readline/display.c
- - block SIGWINCH during redisplay like SIGINT. Should fix bug reported
- by Nicolai Lissner <nlissne@linux01.org>
+lib/readline/readline.c
+ - readline_internal_setup: call rl_vi_insertion_mode to enter vi
+ mode instead of rl_vi_insert_mode to avoid resetting the saved last
+ command information. Posix says that `.' can repeat a command
+ that was entered on a previous line so we need to save the info.
+ Fixes bug reported by Ian A. Watson <watson_ian_a@lilly.com>
- 4/13
+ 4/14
----
-lib/readline/readline.h
- - new readline state variable: RL_STATE_REDISPLAYING
-
-lib/readline/display.c
- - in rl_redisplay, don't block SIGWINCH during redisplay; just set
- the REDISPLAYING state
+lib/readline/complete.c
+ - rl_completion_matches: make sure xrealloc returns something non-null
+ (can happen when interrupted by a signal) before trying to add
+ matches to match_list
-lib/readline/terminal.c
- - in rl_resize_terminal, don't call rl_redisplay_after_sigwinch() if
- we're already in the middle of redisplay (RL_STATE_REDISPLAYING).
- Fix for bug reported by Nicolai Lissner <nlissne@linux01.org>
+subst.c
+ - array_remove_pattern: return NULL right away if array_variable_part
+ returns an invisible variable
+ - array_length_reference: handle array_variable_part returning an
+ invisible variable
+ - get_var_and_type: handle array_variable_part returning an invisible
+ variable
4/15
----
-parse.y
- - fix parse_comsub to add check for \n when seeing whether the current
- character can change to a state where a reserved word is legal,
- since it is not a shell meta character. Fixes bug reported by
- Bernd Eggink <monoped@sudrala.de>.
+execute_cmd.c
+ - execute_command_internal: make sure to run the EXIT trap for group
+ commands anywhere in pipelines, not just at the end. From a point
+ raised by Andreas Schwab <schwab@linux-m68k.org>
- 4/17
- ----
-jobs.c
- - new functions to save and restore the pgrp_pipe (since there's only
- one): save_pgrp_pipe and restore_pgrp_pipe
+variables.c
+ - bind_int_variable: make sure invisible flag is unset. Fixes problems
+ like "declare -ai a; : $(( a[4]=4 ));"
-trap.c
- - run_debug_trap now saves and restores the pgrp_pipe before and
- after calling the debug trap
- - run_debug_trap now makes sure the terminal is owned by the pipeline
- pgrp after the debug trap runs. Rest of fix for bug reported by
- Oleksly Melnyk <o.melnyk@upc.ua> (lex@upc.ca)
+arrayfunc.c
+ - array_variable_part: return variable even if invisible flag set,
+ callers must handle invisible vars
- 4/19
+ 4/18
----
-include/posixselect.h
- - new include file, encapsulates select(2) includes and defines for
- bash and readline. Inspired by patch from Mike Frysinger
- <vapier@gentoo.org>
-
-lib/sh/input_avail.c
- - include "posixselect.h"
+builtins/set.def
+ - unset_builtin: if -n flag given, call unset_nameref instead of
+ unset_variable
-lib/readline/{input,parens}.c
- - include "posixselect.h" instead of using inline includes
- - use new USEC_TO_TIMEVAL define to make sure that values for timeouts
- greater than one second are handled properly
+variables.c
+ - find_variable_nameref: print warning message if nameref circular
+ reference detected, return NULL and let caller deal with it
-lib/sh/fpurge.c
- - updated implementation, taken from gnulib
+builtins/declare.def
+ - declare_builtin: only disallow global references at this point if
+ we are at the global scope
- 4/21
+ 5/16
----
-lib/glob/glob.c
- - in finddirs, don't try to free a return value of glob_error_return
- from glob_vector. Bug and fix from werner@suse.de
+configure.ac
+ - update release status to beta
-lib/readline/signals.c
- - in rl_echo_signal_char, check that SIGQUIT and SIGTSTP are defined
- before trying to use them. Bug report and fix from Volker Grabsch
- <vog@notjusthosting.com>
-
- 4/24
+ 5/23
----
-aclocal.m4
- - add conditional inclusion of <stdint.h> to BASH_CHECK_TYPE
-
-bashtypes.h,lib/sh/strto[iu]max.c
- - include <stdint.h> if present for any existing declaration of
- intmax_t and uintmax_t. Fixes Interix problem reported by
- Markus Duft <mduft@gentoo.org>
-
-lib/sh/strindex.c,externs.h,builtins/common.h
- - renamed strindex to strcasestr to agree with other implementations
- (e.g., BSD, MacOS X, gnulib); changed callers
-
-lib/sh/{strindex.c,Makefile.in},Makefile.in
- - renamed strindex.c to strcasestr.c
-
-configure.in
- - add strcasestr to call to AC_REPLACE_FUNCS, take advantage of
- existing libc implementations
-
-config.h.in
- - add define for HAVE_STRCASESTR
-
-lib/sh/mbscmp.c
- - fix mbscmp to return correct values when the strings do not contain
- valid multibyte characters. Ideas from gnulib
-
-xstrchr.c
- - only compare current character against C if mblength == 1
-
-{shell,variables}.c
- - changed some xstrchr calls back to strchr when the arguments cannot
- contain multibyte characters
-
-lib/sh/{xstrchr.c,Makefile.in},Makefile.in
- - renamed xstrchr to mbschr; renamed file to mbschr.c
-
-aclocal.m4
- - change BASH_CHECK_MULTIBYTE to use AC_REPLACE_FUNCS(mbschr)
-
-externs.h
- - extern declarations for mbscmp and mbschr, conditional on the usual
- HAVE_MBSCMP and HAVE_MBSCHR defines
-
-general.h,{alias,arrayfunc,bashline,general,execute_cmd,subst}.c
- - changed calls to xstrchr to mbschr
-
-doc/bash.1
- - use `pathname expansion' consistently, not `filename expansion' or
- `filename generation'
-
-doc/bashref.texi
- - use the phrase `filename expansion' consistently (since this is
- what the Gnu people prefer) instead of `pathname expansion' or
- `filename generation'
-
-aclocal.m4,config.h.in
- - check for mbscasecmp in BASH_CHECK_MULTIBYTE, define HAVE_MBSCASECMP
- if found
+trap.c
+ - run_pending_traps: save and restore pipeline around calls to
+ evalstring() in case we get a trap while running a trap. Have to
+ figure out the recursive running traps issue elsewhere. Fixes
+ bug reported by Roman Rakus <rrakus@redhat.com>
+ - run_pending_traps: make sure to set running_trap to the appropriate
+ signal value when running a trap command
+ - run_pending_traps: short-circuit immediately if running_trap set
+ when invoked. Could change this later to only skip if it would
+ run the same trap as currently being run (running_trap == sig + 1)
-lib/sh/{mbscasecmp.c,Makefile.in}
- - new file, case-insensitive multibyte string comparison
+configure.ac
+ - add warning if bison not found
-externs.h
- - extern declaration for mbscasecmp
+lib/readline/doc/rltech.texi
+ - new section with an example program illustrating the callback
+ interface. Suggested by Peng Yu <pengyu.ut@gmail.com>
- 4/25
- ----
-lib/readline/display.c
- - in _rl_move_cursor_relative, don't adjust dpos by woff if it's
- already less than woff (don't want it less than 0)
- - in _rl_move_cursor_relative, short-circuit right away if the cursor
- is at columns 0 and `new' is 0 (doesn't matter if it's a multibyte
- locale or not, or whether there are invisible chars in the prompt)
- - in _rl_move_cursor_relative, go ahead and adjust dpos if
- prompt_physical_chars >= _rl_screenwidth (previous check was just > )
- Fixes bug reported by Andreas Schwab <schwab@linux-m68k.org>
+examples/loadables/Makefile.in
+ - remove references to `cut' and `getconf', which were removed in
+ early March
- 4/28
+ 5/28
----
-lib/glob/glob.c
- - in glob_vector, don't add an empty pathname ("") if we're adding the
- currect directory to the dirlist and GX_NULLDIR is set -- we can just
- ignore it, since the passed directory name (".") was created by
- the caller. Fixes bug reported by Matt Zyzik <matt.zyzik@nyu.edu>
+lib/sh/pathphys.c
+ - sh_realpath: correct inverted two arguments to call to sh_makepath.
+ Report and fix from Julien Thomas <jthomas@exosec.fr>
- 5/5
+ 6/7
---
-subst.c
- - make expansion of $@ and $* when set -u is in effect and there are
- no positional parameters be a non-fatal error. This is the
- consensus of the austin group, though it is not historical practice.
- Message from Geoff Clare <20090505091501.GA10097@squonk.masqnet> of
- 5 May 2009 and http://austingroupbugs.net/view.php?id=155
-
-
- 5/20
- ----
-lib/glob/glob.c
- - tentative fix to glob_filename to compensate for glob_vector putting
- null pathname at front of result vector when dflags&GX_NULLDIR.
- Current fix manually removes empty string element from front of
- result vector; a better fix would be to use a flag so glob_vector
- doesn't add it at all. Augments patch from 4/28, which appears to
- have broken some things. Fixes bug reported by Matt Zyzik
- <matt.zyzik@nyu.edu>
+execute_cmd.c
+ - executing_line_number: the else clauses that are conditional on
+ various options being defined can simply be if clauses -- they are
+ mutually exclusive and all have `return' in the body. Fixes bug
+ reported by Flavio Medeiros <flaviomotamedeiros@gmail.com>
- 5/22
+ 6/25
----
+lib/readline/readline.c
+ - readline_internal_setup: only sent the meta-key enable string to the
+ terminal if we've been told to use one and the terminal has been
+ successfully initialized (RL_ISSTATE (RL_STATE_TERMPREPPED) != 0).
+ Suggested by Dan Mick <dan.mick@inktank.com>
-lib/glob/glob.c
- - better fix for glob_filename; supersedes patch of 5/20. Now the
- code does not set GX_ADDCURDIR if directory_len == 0 and the
- function has not been called recursively ((flags & GX_ALLDIRS) == 0).
- Better fix for bug reported by Matt Zyzik <matt.zyzik@nyu.edu>
-
-Makefile.in
- - fix build race condition that occurs in some makes caused by
- libreadline.a and libhistory.a containing some of the same files
- (e.g., xmalloc.o) and conflicting when trying to build both at
- the same time. Reported by Mike Frysinger <vapier@gentoo.org>
-
- 5/25
- ----
-lib/readline/vi_mode.c
- - fix _rl_vi_initialize_line so that the loop counter is not
- unsigned (it doesn't matter, but it eliminates a compiler warning).
- Bug reported by Dave Caroline <dave.thearchivist@gmail.com>
+lib/readline/signals.c
+ - _rl_signal_handler: call any defined signal hook after calling
+ rl_resize_terminal when handling a SIGWINCH. We already have called
+ the original SIGWINCH handler but will not be resending the signal
+ to ourselves
- 5/26
+ 6/27
----
-doc/{bash.1,bashref.texi}
- - add text to the description of array variables making it clear
- that an array variable is not considered set until a subscript
- has been assigned a value
+lib/readline/doc/history.3, doc/bash.1
+ - fix description of the `$' modifier to note that it expands to the
+ last *word*, which is not always the last argument. Report from
+ ariyetz@gmail.com via gnu.org RT
- 5/29
+ 6/29
----
-lib/readline/text.c
- - fix rl_change_case to handle case where mbrtowc doesn't find a
- valid multibyte character
-
-lib/readline/vi_mode.c
- - fix _rl_vi_change_mbchar_case to handle case where mbrtowc doesn't
- find a valid multibyte character
-
-lib/sh/casemod.c
- - fix sh_modcase to handle case where mbrtowc doesn't find a valid
- multibyte character
-
-lib/readline/mbutil.c
- - fix _rl_find_next_mbchar_internal to not call mbrtowc at the end of
- the string, since implementations return different values -- just
- break the loop immediately
-
-lib/readline/display.c
- - fix rl_redisplay to make same sort of cursor position adjustments
- based on multibyte locale and _rl_last_c_pos when performing
- horizontal scrolling rather than line wrapping. Probably still
- more to do. Fixes bug reported by jim@jim.sh
-
- 6/5
- ---
-doc/{bash.1,bashref.texi}
- - added some more explanation of the inheritance of the ERR trap at
- the suggestion of Thomas Pospisek <tpo@sourcepole.ch>
+lib/glob/smatch.c
+ - glob_asciiranges: initialize to value of GLOBASCII_DEFAULT instead
+ of 0 (0 if not defined)
-findcmd.c
- - use eaccess(2) if available in file_status to take other file
- access mechanisms such as ACLs into account. Patch supplied
- by werner@suse.de
+configure.ac,config.h.in
+ - --enable-glob-asciiranges-default: new option, controls the value of
+ GLOBASCII_DEFAULT; use it to turn globasciiranges shopt option on
+ by default
- 6/12
- ----
-xmalloc.c
- - also calculate lowest brk() value the first time xmalloc/xrealloc
- (and their sh_ counterparts) are called
- - error messages consolidated into a single function (allocerr/
- sh_allocerr) to avoid string duplication
+doc/bashref.texi
+ - document new --enable-glob-asciiranges-default configure option
- 6/16
- ----
variables.c
- - changes to allow variables.c to be compiled if ALIAS is not defined.
- Bug and fix from John Gatewood Ham <uraphalinuxserver@gmail.com>
-
-lib/sh/getcwd.c
- - fix so systems defining BROKEN_DIRENT_D_INO have the necessary
- defines. Fix from Jay Krell <jay.krell@cornell.edu>
+ - assign_in_env: implement += value appending semantics for assignments
+ preceding command names
-configure.in
- - add -D_ALL_SOURCE to interix CFLAGS for struct timezone definition.
- Bug and fix from John Gatewood Ham <uraphalinuxserver@gmail.com>
-
- 6/29
- ----
-variables.c
- - change initialize_shell_variables to add environment variables with
- invalid names to the variables hash table, but marking them as
- invisible and imported
- - new function, export_environment_candidate. Used when creating the
- export environment for commands to include variables with invalid
- names inherited from the initial environment. Apparently this
- behavior is widespread
- - change make_var_export_array to use export_environment_candidate
- rather than visible_and_exported to test variables for inclusion
- in the export environment
-
- 7/1
+ 7/4
---
-builtins/read.def
- - fix a memory leak where the number of fields is not the same as
- the number of variables passed to `read'. Bug report from
- werner@suse.de
+expr.c
+ - set lasttok = NUM in all of the functions that result in a number,
+ even if it's a boolean, to avoid errors with constructs like
+ 1 * x = 1, which should be an asignment error. Fixes problem
+ pointed out by Dan Douglas <ormaaj@gmail.com>
-builtins/command.def
- - move section of code that sets PATH from -p option before the
- verbose-handling section, so command -v and command -V honor
- the PATH set by command -p. Bug report and fix from
- ohki@gssm.otsuka.tsukuba.ac.jp
+parse.y
+ - decode_prompt_string: don't bother to call strcpy if
+ polite_directory_format returns its argument unchanged. It's not
+ necessary and Mac OS X 10.9 aborts because of a supposed overlapping
+ string copy. Bug and fix from simon@hitzemann.org
- 7/9
- ---
subst.c
- - change brace_expand_word_list to defer brace expansion on compound
- array assignments that are arguments to builtins like `declare',
- deferring the expansion until the assignment statement is processed.
- Fixes inconsistency reported by agriffis@n01se.net
-
- 7/16
- ----
-bashline.c
- - fix bash_execute_unix_command to set rl_point correctly based on
- READLINE_POINT. The old method of using save_point will not
- work because maybe_make_readline_line will change rl_point. Bug
- reported by Henning Bekel <h.bekel@googlemail.com>
+ - parameter_brace_find_indir: new function, code from
+ parameter_brace_expand_indir that looks up the indirectly-referenced
+ variable, but does not expand it
+ - parameter_brace_expand_indir: call parameter_brace_find_indir to
+ look up indirected variable reference
+ - get_var_and_type: call parameter_brace_find_indir if it looks like we
+ are trying to manipulate an indirect variable reference like
+ ${!b%%foo}. This makes a difference if !b references an array
+ variable. Bug report from Dan Douglas <ormaaj@gmail.com>
-trap.c
- - fix _run_trap_internal and run_pending_traps to save and restore
- value of subst_assign_varlist so the dispose_words on it doesn't
- leave dangling pointers after the trap handler runs. Fixes bug
- reported by Marc Herbert <marc.herbert@gmail.com>
-
- 7/22
- ----
-subst.c
- - fix off-by-one error in pos_params when computing positional
- parameters beginning with index 0. Bug and fix from Isaac Good
- <isaacgood@gmail.com>
+ 7/6
+ ---
+lib/sh/casemod.c
+ - sh_modcase: make sure argument passed to is_basic is <= UCHAR_MAX,
+ since cval can convert something to a wchar_t greater than UCHAR_MAX.
+ Fixes bug reported by Tomasz Tomasik <scx.mail@gmail.com>
- 7/24
- ----
-lib/readline/display.c
- - add code to _rl_move_cursor_relative and _rl_col_width to short-
- circuit a few special cases: prompt string and prompt string plus
- line contents, both starting from 0. Saves a bunch of calls to
- multibyte character functions using already-computed information.
- As a side effect, fixes bug reported by Lasse Karkkainen
- <tronic+8qug@trn.iki.fi>
+ 7/8
+ ---
+lib/readline/history.c
+ - add_history_time: if history_length == 0, referencing history_length
+ - 1 will result in an array bounds error, so make history_length be
+ at least 1 before going on. Fixes bug reported by Geng Sheng Liu
+ <gsliu.tju@gmail.com>
-subst.c
- - fixed a problem in split_at_delims that could leave *cwp set to -1
- if the line ends in IFS whitespace and SENTINEL is one of those
- whitespace characters. Fixes problem with setting COMP_CWORD for
- programmable completion reported by Ville Skytta <ville.skytta@iki.fi>
+builtins/setattr.def
+ - show_func_attributes: display definition (if NODEFS argument is 0) and
+ attributes for a particular function; used by `declare -fp name'
-bashline.c
- - change bash_execute_unix_command to clear the current line (if the
- terminal supplies the "ce" attribute) instead of moving to a new
- line. Inspired by report from Henning Bekel <h.bekel@googlemail.com>
+builtins/declare.def
+ - declare_internal: call show_func_attributes if -f supplied with -p.
+ Fixes inconsistency observed by Linda Walsh <bash@tlinx.org>
-builtins/printf.def
- - changes to allow printf -v var to assign to array indices, the way
- the read builtin can. Suggested by Christopher F. A. Johnson
- <cfajohnson@gmail.com>
+builtins/common.h
+ - new extern declaration for show_func_attributes
-lib/readline/complete.c
- - fix rl_old_menu_complete and rl_menu_complete to appropriately set
- and unset RL_STATE_COMPLETING while generating the list of matches.
- Fixes debian bug #538013 reported by Jerome Reybert
- <jreybert@gmail.com>
+builtins/read.def
+ - read_builtin: check the first supplied variable name for validity
+ before attempting to read any input, since we know we will have to
+ at least use that one. Don't check any other names yet. Suggested
+ by jidanni@jidanni.org
- 7/25
+ 7/10
----
-execute_cmd.c
- - change execute_builtin to temporarily turn off and restore the ERR
- trap for the eval/source/command builtins in the same way as we
- temporarily disable and restore the setting of the -e option.
- Fixes bug reported by Henning Garus <henning.garus@googlemail.com>
+redir.c
+ - do_redirection_internal: when closing a file descriptor with
+ r_close_this ([n]<&-) count close errors as redirection errors if
+ errno ends up as EIO or ENOSPC. Originally reported back in April
+ 2012 by Andrey Zaitsev <jstcdr@gmail.com>
- 7/27
+ 7/11
----
-shell.c
- - add fflush(stdout) and fflush(stderr) to exit_shell before closing
- any file descriptors at exit time (e.g., coproc pipes)
+redir.c
+ - do_redirection_internal: before calling check_bash_input, make sure
+ that we don't call check_bash_input for an asynchronous process that
+ is replacing stdin with something else. The seek backwards affects
+ the parent process as well, since parents and children share the
+ file pointer. Fixes problem originally reported in March 2013 by
+ Martin Jackson <mjackson220.list@gmail.com>
- 7/30
+ 7/13
----
-lib/readline/complete.c
- - new function rl_backward_menu_complete, just passes negative count
- argument to rl_menu_complete
- - change rl_menu_complete to act appropriately if rl_last_command is
- rl_backward_menu_complete, so we can cycle forward and backward
- through the list of completions
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
- - document new "menu-complete-backward" bindable readline function.
- Suggested by Jason Spiro <jasonspiro04@gmail.com>
+doc/{bash.1,bashref.texi}
+ - slight change to add a description of `shopt -o' suggested by Bruce
+ Korb <bruce.korb@gmail.com>
-lib/readline/vi_keymap.c
- - add binding of C-n to menu-complete and C-p to menu-complete-backward
- in vi-insert keymap, as suggested by Jason Spiro
- <jasonspiro04@gmail.com>
+ 7/19
+ ----
+lib/readline/histfile.c
+ - history_do_write: if close returns < 0, make sure we restore the
+ backup history file and return a non-zero value
+ - history_truncate_file: if write or close return < 0, make sure we
+ return a non-zero value
-pcomplete.c
- - fixed a bug in programmable_completions: the options it returned from
- the compspec it found were set before generating the completions,
- which meant that any changes made by "compopt" were overridden and
- only in effect for the duration of the executing shell function
- rather than the entire completion. Fixes bug reported by Ville
- Skytta <ville.skytta@iki.fi>
+[bash-4.3-beta frozen]
- 7/31
+ 7/21
----
-lib/readline/keymaps.c
- - fixed memory leak in rl_discard_keymap by freeing storage associated
- with hierarchical keymaps
- - new convenience function, rl_free_keymap, that calls rl_discard_keymap
- and frees the keymap passed as an argument
+lib/readline/isearch.c
+ - rl_display_search: now takes an entire search context flags word as
+ the second argument, instead of just reverse flag; changed callers
+ - rl_display_search: if the search has failed, add `failed ' to the
+ beginning of the search prompt
+ - _rl_isearch_dispatch: if the search has failed, display the entire
+ search string with an indication that the search failed but with the
+ last matching line. Suggested by jidanni@jidanni.org
-lib/readline/util.c
- - new bindable keymap function, _rl_null_function, to be used internally
+command.h
+ - W_ASSIGNINT: new word flag; used internally for make_internal_declare
+ and set by fix_assignment_words
-lib/readline/rlprivate.h
- - extern declaration for _rl_null_function
+execute_cmd.c
+ - fix_assignment_words: set W_ASSIGNINT if compound assignment and -i
+ given as option. We don't do anything with the value yet
-lib/readline/bind.c
- - fix rl_generic_bind in the case where we are trying to override a
- keymap with a null function (e.g., when trying to unbind it). We
- can't use a NULL function pointer in ANYOTHERKEY since that's
- indistinguishable from the keymap not having been overridden at all.
- We use _rl_null_function instead, which simply does nothing. We
- could add an rl_ding to it later. Fixes problem with hitting ESC
- repeatedly while in vi command mode reported by James Rowell
- <jrjimmy801-misc1@yahoo.com>
+subst.c
+ - shell_expand_word_list: rework the way the option list that is
+ passed to make_internal_declare is created
-builtins/bind.def
- - call rl_bind_keyseq instead of rl_set_key for -r option
+ 8/1
+ ---
+doc/{bash.1,bashref.texi}
+ - minor changes to description of $! based on a report from Chris
+ Down <chris@chrisdown.name>
-lib/readline/readline.c
- - Set vi_movement_keymap[ESC] to _rl_null_function after binding the
- arrow keys in bind_arrow_keys() to allow vi-mode users to hit ESC
- multiple times in vi command mode while still allowing the arrow
- keys to work
+arrayfunc.c
+ - assign_array_element_internal: before trying to get an array's max
+ index to process a negative subscript, make sure the array exists.
+ Bug report from Geir Hauge <geir.hauge@gmail.com>
8/2
---
-bashline.c
- - fix clear_hostname_list by setting hostname_list_initialized to 0
- after freeing all list members. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com>
-
-lib/readline/display.c
- - in update_line, if we copy data from one line to another because we
- are wrapping a multibyte character from, say, the first line to the
- second, we need to update OMAX and the line indices to account for
- the moved data. Bug report and fix from Martin Hamrle
- <martin.hamrle@gmail.com>
+arrayfunc.c
+ - assign_array_element_internal: before using array_max_index() when
+ processing a negative subscript, make sure the variable is an array.
+ if it's not, use 0 as array_max_index assuming it's a string.
+ Fixes bug report from Geir Hauge <geir.hauge@gmail.com>
8/3
---
-pcomplete.h
- - defines for EMPTYCMD ("_EmptycmD_") and DEFAULTCMD ("_DefaultCmD_")
-
-builtins/complete.def
- - change compopt_builtin to make -E work on the "empty" command
- completion
- - fix print_compitem and print_compopts to replace EMPTYCMD with -E
- - added -D (default) option to complete/compgen/compopt. No supporting
- code yet
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - document new -D, -E options to compopt
- - document new -D option to complete/compgen
-
-shell.h
- - new define, EX_WEXPCOMSUB, value of 125
- - new define, EX_RETRYFAIL, value of 124 (for programmable completion)
-
-subst.c
- - use EX_WEXPCOMSUB instead of literal 125 as exit status when a shell
- invoked to run wordexp(3) with the -n option supplied attempts a
- command substitution
-
-pcomplete.c
- - new define, PCOMP_RETRYFAIL, used to indicate a "failure, retry with
- next completion" status to the programmable completion code
-
- 8/4
- ---
-pcomplete.c
- - changed gen_shell_function_matches to take an extra parameter
- indicating whether the specified shell function was not found or
- returned the special "fail/retry" status, and, if it was either,
- to not bother returning any matches list
- - changed gen_compspec_completions to take an extra parameter to pass
- through the "found" status from gen_shell_function_completions
- - new function gen_progcomp_completions to take care of searching for
- and evaluating a compspec for a particular word, saving its status,
- and returning to its caller (programmable_completions) whether or
- not to retry completion. This function also checks whether a
- retry changed the compspec associated with a command and short-
- circuits the retry if it has not
- - changed programmable_completions to try default completion (if set)
- if a specific completion was not found for a command
- - changed programmable_completions to implement "fail/retry" semantics
- for a shell function that returns 124 and changes the compspec
- associated with the command. All based on proposal and changes from
- Behdad Esfahbod (Red Hat bugzilla 475229)
-
-doc/bash.1,lib/readline/doc/rluser.texi
- - documented new dynamic programmable completion functionality
+Makefile.in
+ - pcomplete.o: add dependency on $(DEFDIR)/builtext.h. Suggested by
+ Curtis Doty <curtis@greenkey.net>
8/5
---
-stringlib.c
- - first argument to substring() is now `const char *'
-
-externs.h
- - changed extern declaration for substring()
-
-subst.c
- - skipsubscript now takes a third FLAGS argument, passes to
- skip_matched_pair
- - skip_matched_pair now interprets flags&1 to mean not to parse
- matched pairs of quotes, backquotes, or shell word expansion
- constructs
-
-{subst,general,expr}.c
- - changed skipsubscript() callers
-
-assoc.c
- - changed assoc_to_assign to double-quote the key if it contains any
- shell metacharacters
+lib/glob/sm_loop.c
+ - strcompare: short-circuit and return FNM_NOMATCH if the lengths of the
+ pattern and string (pe - p and se - s, respectively) are not equal
+ - strcompare: don't bother trying to set *pe or *se to '\0' if that's
+ what they already are. Fixes bug reported by Geir Hauge
+ <geir.hauge@gmail.com>
-arrayfunc.c
- - use skipsubscript in quote_assign rather than quote any glob
- characters in the subscript of an array assignment
- - in assign_compound_array_list, call skipsubscript with a flags
- argument of 1 if assigning an associative array to avoid trying
- to re-parse quoted strings
+ 8/6
+ ---
+doc/{bash.1,bashref.texi},builtins/hash.def,lib/readline/doc/rluser.texi
+ - minor typo changes from Geir Hauge <geir.hauge@gmail.com>
-redir.c
- - set expanding_redir before expanding body of here documents and
- here strings to avoid looking for variables in temporary env
+bultins/help.def
+ - show_longdoc: avoid trying to translate the empty string because it
+ often translates to some boilerplate about the project and
+ translation. Report and fix from Geir Hauge <geir.hauge@gmail.com>
- 8/7
+ 8/8
---
-lib/readline/readline.c
- - in _rl_dispatch_callback, return value of -3 means that we have
- added to a key sequence, but there are previous matches in the
- sequence. Don't call _rl_subseq_result if we get a -3 from a
- previous context in the chain; just go back up the chain. Report
- and fix from <freehaha@gmail.com>
-
-bashline.c
- - fixes to history_completion_generator and bash_dabbrev_expand to
- make dabbrev-expand inhibit suppressing of appending space char
- to matches. Have to do it with the generator too because
- rl_menu_complete turns off suppressing the appended space in
- set_completion_defaults(). Suggestion from Dan Nicolaescu
- <dann@ics.uci.edu>
- - suppress completion match sorting in bash_dabbrev_expand by
- setting rl_sort_completion_matches = 0. Suggestion from Dan
- Nicolaescu <dann@ics.uci.edu>
- - don't qsort history match list in build_history_completion_array
- if dabbrev_expand_active == 1
- - start the loop in build_history_completion_array that gathers words
- from history for possible completions from the end of the list
- rather than the beginning. It doesn't matter where you start if
- the results are sorted, and dabbrev-expand is supposed to offer
- the most recent completions first
-
- 8/12
- ----
-execute_cmd.c
- - change to execute_command_internal to make [[ ... ]] conditional
- command subject to settings of `set -e' and the ERR trap
+builtins/help.def
+ - help_builtin: try two passes through the list of help topics for each
+ argument: one doing exact string matching and one, if the first pass
+ fails to find a match, doing string prefix matching like previous
+ versions. This prevents `help read' from matching both `read' and
+ `readonly', but allows `help r' to match everything beginning with
+ `r'. Inspired by report from Geir Hauge <geir.hauge@gmail.com>
- 8/14
+ 8/13
----
-execute_cmd.c
- - change to execute_command_internal to make (( ... )) arithmetic
- command subject to settings of `set -e' and the ERR trap
-
-lib/readline/text.c
- - new bindable function, rl_skip_csi_sequence, reads the characters
- that make up a control sequence as defined by ECMA-48. Sequences
- are introduced by the Control Sequence Indicator (CSI) and
- contain a defined set of characters. Insert, End, Page Up and so
- on are CSI sequences. Report and code from Andy Koppe
- <andy.koppe@gmail.com>
-
-lib/readline/readline.h
- - extern declaration for rl_skip_csi_sequence
-
-lib/readline/funmap.c
- - new bindable command "skip-csi-sequence", runs rl_skip_csi_sequence
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - documented new bindable command "skip-csi-sequence", unbound by
- default
-
-builtins/evalfile.c
- - fix _evalfile to remove embedded null bytes from the file read
- into the string. Report and proposed fix from Roman Rakus
- <rrakus@redhat.com>
-
-{configure,config.h}.in
- - check for syslog(3), define HAVE_SYSLOG
- - check for syslog.h, define HAVE_SYSLOG_H
-
-config-top.h
- - new define SYSLOG_HISTORY, disabled by default
-
-config-bot.h
- - if HAVE_SYSLOG or HAVE_SYSLOG_H are not defined, undef SYSLOG_HISTORY
-
-bashhist.c
- - if SYSLOG_HISTORY is defined, call bash_syslog_history with the
- line added to the history in bash_add_history.
- - new function, bash_syslog_history(line), sends line to syslog at
- user.info. The line is truncated to send no more than 600
- (SYSLOG_MAXLEN) bytes to syslog. Feature requested by many, and
- required by some national laws
-
-sig.c
- - in termsig_handler, resend SIGHUP to children if subshell_environment
- indicates we're a shell performing command or process substitution
-
-jobs.c
- - add CHECK_TERMSIG calls to wait_for in addition to the ones in
- waitchld()
-
-builtins/shopt.def
- - new functions set_bashopts, parse_bashopts, and initialize_bashopts
- to manage new environment variable $BASHOPTS, like $SHELLOPTS but
- for shopt options
- - change toggle_shopts to call set_bashopts after setting options, so
- $BASHOPTS reflects new values
-
-shell.c
- - call initialize_bashopts after calling initialize_shell_options at
- shell startup
-
-configure.in
- - new configure `enable' option --enable-exended-glob-default, to
- set the initial default value of the `extglob' shell option
-
-config.h
- - new define, EXTGLOB_DEFAULT, controlled by the `extended-glob-default'
- configure option
-
-pathexp.c
- - initialize extended_glob variable to EXTGLOB_DEFAULT
-
-doc/{bash.1,bashref.texi}
- - document new $BASHOPTS variable and its behavior
-
-doc/bashref.texi
- - document new --enable-extended-glob-default configure option
+builtins/fc.def
+ - fc_builtin,fc_gethnum: calculate `real' end of the history list and
+ use it if -0 is specified as the beginning or end of the history
+ range to list. Doesn't work for fc -e or fc -s by design. Feature
+ requested by Mike Fied <micfied@gmail.com>
8/16
----
-print_cmd.c
- - new variables: xtrace_fd and xtrace_fp, the file descriptor and
- FILE * to which we send `set -x' tracing output. If fd == -1
- then fp == STDERR, the default mode
- - new function xtrace_init, sets xtrace_fd == -1 and xtrace_fp = stderr
- - new function xtrace_set (fd, fp), sets xtrace_fd and xtrace_fp
- to the arguments
- - new function xtrace_reset, handles closing old xtrace fd/fp and
- moving them back to -1/stderr
- - new function xtrace_fdchck, calls xtrace_reset if the fd passed as
- an argument is xtrace_fd
- - change xtrace functions to fprintf to xtrace_fp instead of stderr
-
-shell.c
- - call xtrace_init() very early in main()
-
-variables.c
- - new special variable, BASH_XTRACEFD, holds file descriptor used for
- set -x trace output. Inspired by suggestion from Bruce Korb
- <bruce.korb@gmail.com>
-
-doc/{bash.1,bashref.texi}
- - added description of new BASH_XTRACEFD variable
-
-redir.c
- - add calls to xtrace_fdchk to the redirections that close file
- descriptors, so we notice if we close BASH_XTRACEFD and compensate
- accordingly (same places that call coproc_fdchk())
+trap.c
+ - _run_trap_internal: use {save,restore}_parser_state instead of
+ {save,restore}_token_state. It's more comprehensive
- 8/18
+ 8/23
----
-lib/readline/text.c
- - change to _rl_replace_text to add error checks: start must be <=
- end, and we don't call rl_insert_text if passed the empty string
-
-config.h.in
- - add define for HAVE_ICONV, already found by intl autoconf macros
- - add define for HAVE_LOCALE_CHARSET
-
-aclocal.m4
- - add check for locale_charset() to BASH_CHECK_MULTIBYTE
-
-lib/sh/fnxform.c
- - new file with two public function: fnx_tofs and fnx_fromfs.
- Primarily intended for use on MacOS X, they use iconv to convert
- between whatever the current locale encoding is and "UTF-8-MAC",
- a special encoding on OS X in which all characters are
- decomposed unicode, as the HFS+ filesystem stores them. These
- functions return a pointer to a local buffer, allocated once and
- resized as necessary, to avoid too many allocations; callers
- should not free the return value, since it may be the string
- passed
-
-Makefile.in
- - make sure LIBICONV is set by autoconf (@LIBICONV@) and added to
- list of link libraries
-
-externs.h
- - new extern declarations for fnx_fromfs and fnx_tofs
-
-lib/glob/glob.c
- - convert the filename read using readdir() in glob_vector() using
- fnx_fromfs and use that value in the call to strmatch. This
- ensures that we're using the precomposed Unicode value of the
- filename rather than the native decomposed form. Original bug
- report from Len Lattanzi <llatanzi@apple.com>; fix inspired by
- Guillaume Outters <guillaume.outters@free.fr>
+doc/bash.1
+ - disown: remove repeated text. Report and fix from Thomas Hood
+ <jdthood@gmail.com>
- 8/19
+ 8/25
----
-lib/readline/complete.c
- - new completion hook: rl_filename_rewrite_hook, can rewrite or modify
- filenames read from the filesystem before they are compared to the
- word to be completed
-
-lib/readline/readline.h
- - extern declaration for rl_filename_rewrite_hook
+lib/readline/rltty.c
+ - set_special_char: fix prototype (last arg is rl_command_func_t *)
-lib/readline/doc/rltech.texi
- - document rl_filename_rewrite_hook
+sig.c
+ - set_signal_handler: return oact.sa_handler only if sigaction
+ succeeds; if it doesn't, return SIG_DFL (reasonable default). From
+ https://bugzilla.redhat.com/show_bug.cgi?id=911404
bashline.c
- - new function, bash_filename_rewrite_hook, assigned to
- rl_filename_rewrite_hook. Calls fnx_fromfs to convert from
- filesystem format to "input" format. This makes completing
- filenames with accented characters work on Mac OS X
-
- 8/20
- ----
-lib/readline/bind.c
- - new bindable variable "skip-completed-text", bound to
- _rl_skip_completed_text. If enabled, it means to note when
- completing before the end of a word and skipping over characters
- after rl_point that match in both the completion to be inserted
- and the word being completed. It means that completing
- `Makefile' with the cursor after the `e' results in `Makefile'
- instead of `Makefilefile'. Inspired by an idea from Jared
- Yanovich <phierunner@comcast.net> from back in 2004
-
-lib/readline/rlprivate.h
- - extern declaration for _rl_skip_completed_text
-
-lib/readline/complete.c
- - implement semantics of _rl_skip_completed_text in insert_match:
- skip characters in `replacement' that match chars in rl_line_buffer
- from the start of the word to be completed
-
- 8/21
- ----
-error.c
- - change parser_error to set last_command_exit_value to 2 before
- calling exit_shell (if set -e is enabled), so any exit or ERR
- trap gets the right value of $?. Suggestion from Stefano
- Lattarini <stefano.lattarini@gmail.com>
-
-braces.c
- - fix expand_seqterm so that a non-zero-prefixed term that's longer
- than a zero-prefixed term determines the length of each term
- in the brace-expanded sequence. This means that things like
- {01..100} will have three digits in all the elements of the
- expanded list. Fixes bug reported by Jeff Haemer
- <jeffrey.haemer@gmail.com>
-
- 8/24
- ----
-{arrayfunc,variables}.c
- - when inserting a value into an associative array using syntax like
- T=v where T is an already-declared associative array using key "0",
- make sure the key is in newly-allocated memory so it can be freed
- when the variable is unset. Fixes bug reported as redhat 518644
- by Jon Fairbairn
+ - attempt_shell_completion: fix to skip assignment statements preceding
+ command name even if there are no programmable completions defined.
+ From https://bugzilla.redhat.com/show_bug.cgi?id=994659
+ - attempt_shell_completion: if still completing command word following
+ assignment statements, do command completion even if programmable
+ completion defined for partial command name entered so far
8/26
----
-lib/readline/funmap.c
- - add "old-menu-complete" binding for rl_old_menu_complete
-
-lib/readline/readline.h
- - add extern declaration for rl_old_menu_complete
-
-subst.c
- - fix memory leak when processing ${!prefix@}. Need to dispose all
- words in the word list created from all matching variable. Fixes
- bug reported by muszi@muszi.kite.hu.
-
- 8/29
- ----
-execute_cmd.c
- - add fflush(stdout) and fflush(stderr) to child coproc code before
- calling exit after execute_in_subshell
-
- 8/31
- ----
-lib/readline/{{bind,readline}.c,rlprivate.h}
- - new bindable variable, "echo-control-characters", enabled by default.
- This controls whether or not readline honors the tty ECHOCTL bit
- and displays characters corresponding to keyboard-generated signals.
- Controlled by _rl_echo_control_chars variable, declared in readline.c
-
-lib/readline/signals.c
- - if _rl_echo_control_chars == 0, don't go through _rl_echo_signal_char
-
-
-lib/readline/doc/{readline.3,rluser.texi}
- - document "echo-control-characters" bindable variable
+pcomplete.c
+ - pcomp_filename_completion_function: make sure rl_filename_dequoting_function
+ is non-NULL before trying to call it. Bug and fix from
+ Andreas Schwab <schwab@linux-m68k.org>
- 9/1
- ---
-lib/readline/histexpand.c
- - hist_string_extract_single_quoted now takes an additional argument:
- a flags word. The only defined value (flags & 1) allows backslash
- to quote the single quote. This is to inhibit history expansion
- inside $'...' containing an escaped single quote.
- - change history_expand to call hist_string_extract_single_quoted
- with flags == 1 if it sees $'. Fixes bug reported by Sean
- Donner <sean.donner@gmail.com>
+bashline.c
+ - bash_command_name_stat_hook: if *name is not something we're going
+ to look up in $PATH (absolute_program(*name) != 0), just call the
+ usual bash_filename_stat_hook and return those results. This makes
+ completions like $PWD/exam[TAB] add a trailing slash
9/2
---
-builtins/printf.def
- - add a call to sh_wrerror if ferror() succeeds in the PRETURN macro,
- to print an error message in the case that the final fflush fails
- (for instance, because it attempts to write data that didn't have a
- trailing newline). Fixes bug reported by Stefano Lattarini
- <stefano.lattarini@gmail.com>
-
- 9/7
- ---
-arrayfunc.c
- - some fixes to assign_compound_array_list to avoid null pointer
- dereferences pointed out by clang/scan-build
-
-lib/glob/glob.c
- - fixes to udequote_pathname and wdequote_pathname to avoid possible
- null pointer dereferences pointed out by clang/scan-build
-
-lib/readline/undo.c
- - fix to _rl_copy_undo_list (function unused) to avoid deref of
- uninitialized pointer pointed out by clang/scan-build
-
-general.c
- - fix string_to_rlimtype so it works if passed a null pointer (though
- it never is)
-
-builtins/mapfile.def
- - fix to mapfile() to avoid possible null pointer dereference pointed
- out by clang/scan-build
-
-variables.c
- - fix to valid_exportstr to avoid possible null pointer dereferences
- pointed out by clang/scan-build
-
-bashline.c
- - fix to bash_execute_unix_command to avoid possible null pointer
- dereference if READLINE_LINE or READLINE_POINT is not bound
-
- 9/11
- ----
-[Prayers for the victimes of 9/11/2001]
-
-command.h
- - add `rflags' member to struct redirect to hold private flags and
- state information
- - change redirector to a REDIRECTEE instead of int to prepare for
- possible future changes
-
-{copy_cmd,dispose_cmd,make_cmd,print_cmd,redir}.c
- - changes resulting from type change of `redirector' member of struct
- redirect: change x->redirector to x->redirector.dest and add code
- where appropriate to deal with x->redirector.filename
-
-make_cmd.h
- - change extern declaration for make_redirection
+builtins/read.def
+ - read_builtin: before comparing what we read to the delim, make sure
+ we are not supposed to be ignoring the delimiter (read -N). We
+ set the delim to -1, but it's possible to read a character whose
+ int value ends up being between -1 and -128. Fixes bug
+ reported by Stephane Chazelas <stephane.chazelas@gmail.com>
-make_cmd.c
- - first argument of make_redirection is now a `REDIRECTEE' to prepare
- for possible future changes. First arg is now assigned directly to
- redirector member instead of assigning int to redirector.dest
+doc/{bash.1,bashref.texi}
+ - word splitting: crib some language from Posix to make it clear that
+ characters in IFS are treated as field *terminators*, not field
+ *separators*. Addresses issue raised by DJ Mills
+ <danielmills1@gmail.com>
-{make_cmd,redir}.c,parse.y
- - changes resulting from type change of first argument to
- make_redirection from int to REDIRECTEE. In general, changes are
- using REDIRECTEE sd and assigning old argument to sd.dest, then
- passing sd to make_redirection
+lib/readline/{util.c,rldefs.h}
+ - _rl_stricmp,_rl_strnicmp: now take const char * string arguments;
+ changed prototype declarations
-make_cmd.[ch],parse.y
- - add fourth argument to make_redirection: flags. Sets initial value
- of `rflags' member of struct redirect
- - changed all callers of make_redirection to add fourth argument of 0
+ 9/5
+ ---
+doc/{bash.1,bashref.texi}
+ - [[: modify description of pattern matching to make it clear that the
+ match is performed as if the extglob option were enabled. From Red
+ Hat bug https://bugzilla.redhat.com/show_bug.cgi?id=1002078
- 9/15
+ 9/12
----
-parse.y
- - change read_token_word to return REDIR_WORD for tokens of the form
- {var} where `var' is a valid shell identifier and the character
- following the } is a `<' or `>'
- - add REDIR_WORD versions of all input and output file redirections
- and here documents
-
-print_cmd.c
- - change input and output file redirection direction and here
- document cases of print_redirection to print a varname
- specification of the form {var} when appropriate. Still need
- to fix rest of cases
-
-redir.c
- - implement REDIR_VARASSIGN semantics for file input and output
- redirections and here documents
+lib/readline/isearch.c
+ - _rl_isearch_dispatch: if we read an ESC and it's supposed to
+ terminate the search, make sure we check for typeahead with
+ _rl_pushed_input_available, since installing a hook function causes
+ typeahead to be collected in `ibuffer' (input.c). If there is any,
+ make sure we still use the ESC as a prefix character. Bug and fix
+ from Mike Miller <mtmiller@ieee.org>
9/16
----
-parse.y
- - added REDIR_WORD versions of remaining redirection constructs except
- for err_and_out ones
-
-redir.c
- - handle REDIR_VARASSIGN semantics for rest of redirection constructs
- - accommodate REDIR_VARASSIGN when translating redirections
- - new function, redir_varvalue, does variable lookup for {v} when
- redirection needs the value (e.g., r_close_this)
-
-print_cmd.c
- - fix rest of cases to print {varname} when REDIR_VARASSIGN is set in
- redirect->rflags
-
-doc/{bash.1,bashref.texi}
- - document new {varname} REDIR_VARASSIGN form of redirections
-
-tests/vredir.{right,tests},vredir[1-5].sub
- - tests for new {varname} REDIR_VARASSIGN form of redirections
+builtins/{caller,cd,kill,pushd,wait}.def
+ - builtin_usage(): make sure call to this sets return status to
+ EX_USAGE
9/18
----
-subst.c
- - new flags argument to split_at_delims: these flags are ORd with
- SD_NOJMP and passed to skip_to_delim
- - change skip_to_delim to honor new SD_NOQUOTEDELIM flag by not
- checking whether or not single and double quotes are delimiters
- if it's set in passed flags until after skipping quoted strings.
-
-subst.h
- - change extern declaration for split_at_delims
- - new define for SD_NOQUOTEDELIM flag
-
-pcomplete.c
- - pass SD_NOQUOTEDELIM in flags argument to split_at_delims so single
- and double quotes, even though they're in
- rl_completer_word_break_characters, don't act as word delimiters
- for programmable completion. Fixes bug reported by Freddy
- Vulto <fvulto@gmail.com>
-
-lib/glob/glob.c
- - in glob_filename, after recursively scanning a directory specified
- with `**', turn off GX_ALLDIRS|GX_ADDCURDIR before calling
- glob_vector on the rest of the pathname, since it may not apply to
- the rest of the pattern. Turned back on if the filename makes it
- appropriate. Fixes bug reported by Anders Kaseorg <andersk@mit.edu>
-
-redir.c
- - change execute_null_command to fork a child to execute if any of
- the commands redirections have the REDIR_VARASSIGN flag set, since
- those commands are not supposed to have side effects
-
-test.c
- - < and > binary operators will obey the locale by using strcoll if
- the TEST_LOCALE flag is passed to binary_test
-
-test.h
- - new define for TEST_LOCALE
-
-execute_cmd.c
- - execute_cond_node sets TEST_LOCALE so [[ str1 < str2 ]] (and >)
- obey the locale. Fixes bug/incompatibility reported by Greg
- Wooledge <wooledg@eeg.ccf.org>
-
-doc/{bash.1,bashref.texi}
- - documented [[ command new locale-sensitive treatment of < and >
-
- 9/24
- ----
-configure.in
- - add "darwin10" cases like darwin8 and darwin9 to handle linking with
- included readline and history libraries
-
- 9/26
- ----
-lib/readline/display.c
- - modify change of 7/24 to use prompt_physical_chars instead of
- prompt_visible_length to account for visible multibyte characters in
- the line (usually in the prompt). Fixes debian bug #547264
- reported by Pietro Battiston <toobaz@email.it>
- - add flags argument to _rl_col_width; changed callers. flags > 0
- means that it's ok to use the already-computed prompt information;
- flags == 0 means that we're expanding the prompt and we should not
- short-circuit
-
-parse.y
- - in decode_prompt_string, when expanding \w and \W on Mac OS X,
- use fnx_fromfs to convert from "filesystem" form to "input" form.
- This makes $PWD with multibyte characters work in the prompt
- string on Mac OS X
+terminal.c
+ - rl_change_environment: new application-settable variable; if non-
+ zero (the default), readline will modify LINES and COLUMNS in the
+ environment when it handles SIGWINCH
+ - _rl_get_screen_size: if rl_change_environment is non-zero, use setenv
+ to modify LINES and COLUMNS environment variables
-lib/sh/fnxform.c
- - in fnx_fromfs and fnx_tofs, use templen instead of outlen as last
- argument in calls to iconv, since outlen is used to keep track of
- the size of the buffer, and iconv potentially modifies its
- `outbytesleft' argument
+readline.h
+ - rl_change_environment: new extern declaration for applications
- 9/29
+ 9/22
----
-subst.c
- - make skip_to_delim understand how to skip over process substitution
- constructs the way it skips $(...) command substitution
+configure.ac
+ - relstatus: bumped version to bash-4.3-beta2
- 9/30
+ 9/24
----
-lib/readline/terminal.c
- - don't set the `terminal has meta key' flag if the `MT' capability is
- available; that means something completely different
- 10/1
- ----
-builtins/help.def
- - make sure width is at least 7, since we pass `width/2 - 3' to strncpy
- as the length argument. Terminal widths <= 6 are converted to 80.
- Fixes bug reported by Chris Hall <c@pobox.co.uk>
-
-configure.in
- - changed version to 4.1-alpha
-
-subst.h
- - new flag for skip_to_delim: SD_NOSKIPCMD, which means to not skip
- over embedded command and process substitutions, but rather to look
- for delimiters within them
+lib/readline/readline.c
+ - bind_arrow_keys_internal: added more key bindings for the numeric key
+ pad arrow keys on mingw32. Patch from Pierre Muller
+ <pierre.muller@ics-cnrs.unistra.fr>
-subst.c
- - implement semantics of SD_NOSKIPCMD in skip_to_delim
+ 10/19
+ -----
bashline.c
- - call skip_to_delim with SD_NOSKIPCMD from find_cmd_start, so
- programmable completion can use the completion defined for `b' for
- command lines like "a $(b c". Fixes inconsistency/bug reported by
- Freddy Vulto <fvulto@gmail.com>
+ - maybe_restore_tilde: version of restore_tilde that honors `direxpand';
+ calls restore_tilde after saving directory expansion hook if
+ necessary. Report from Andreas Schwab <schwab@linux-m68k.org>
-parser.h
- - replace unused PST_CMDTOKEN parser state value with PST_EXTPAT,
- means currently parsing an extended glob pattern (extglob)
-
-parse.y
- - fix cond_node() so that extended_glob is set before parsing the
- rhs of the `==' or `!=' operators. For ksh93 compatibility.
- - reset extended_glob to global value (saved in parse_cond_command())
- in reset_parser()
-
- 10/5
- ----
-jobs.c
- - change waitchld() to only interrupt the wait builtin when the shell
- receives SIGCHLD in Posix mode. It's a posix requirement, but
- makes easy things hard to do, like run a SIGCHLD trap for every
- exiting child. Change prompted by question from Alex Efros
- <powerman@powerman.name>
-
-doc/bashref.texi
- - document new posix mode behavior about SIGCHLD arriving while the
- wait builtin is executing when a trap on SIGCHLD has been set
-
- 10/6
- ----
-lib/readline/histexpand.c
- - fix hist_expand to keep from stopping history expansion after the
- first multibyte character (a `break' instead of a `continue').
- Fixes debian bug (#549933) reported by Nikolaus Schulz
- <microschulz@web.de>
-
- 10/8
- ----
-builtins/read.def
- - implement new `-N nchars' option: read exactly NCHARS characters,
- ignoring any delimiter, and don't split the result on $IFS.
- Feature requested by Richard Stallman <rms@gnu.org>
-
-doc/{bash.1,bashref.texi}
- - document new `read -N' option
-
- 10/9
- ----
-lib/readline/bind.c
- - new bindable variable, "enable-meta-key", controls whether or not
- readline enables any meta modifier key the terminal claims to
- support. Suggested by Werner Fink <werner@suse.de>
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
- - document new readline "enable-meta-key" bindable variable
-
- 10/10
- -----
-trap.c
- - new function, free_trap_string(), does what it says and turns off
- SIG_TRAPPED flag without changing signal disposition
-
-[bash-4.1-alpha frozen]
+builtins/cd.def
+ - -@: new option, allows cd to use `extended attributes' present in
+ NFSv4, ZFS; idea taken from ksh93. Attributes associated with a
+ file are presented as a directory containing the attributes as
+ individual files. Original patch contributed by Cedric Blancher
+ <cedric.blancher@gmail.com>
- 10/16
+ 10/20
-----
-builtins/mapfile.def
- - return an error if the variable passed is not an indexed array.
- Fixes bug reported by Nick Hobson <nick.hobson@yahoo.com>
- - change help text to make it clear that an indexed array is required
+aclocal.m4
+ - BASH_CHECK_MULTIBYTE: check for wcwidth being broken with unicode
+ combining characters needs a value to use when cross-compiling.
+ Bug report from Bert Sutherland <bertsutherland@gmail.com>
doc/{bash.1,bashref.texi}
- - changed description of mapfile to note that the array variable
- argument must be an indexed array, and mapfile will return an
- error if it is not
-
-subst.c
- - change expand_string_unsplit and expand_string_leave_quoted to
- add the (previously unused) W_NOSPLIT2 flag to the created word
- - change expand_word_internal to understand W_NOSPLIT2 to mean that
- we're not going to split on $IFS, so we should not quote any
- characters in IFS that we add to the result string. Fixes bug
- reported by Enrique Perez-Terron <enrio@online.no>
- - change cond_expand_word similarly. Fixes rest of bug reported by
- Enrique Perez-Terron <enrio@online.no>
+ - document new -@ option to cd builtin
-parse.y
- - save and restore value of last_command_subst_pid around call to
- expand_prompt_string in decode_prompt_string. Fixes bug that causes
- $? to be set wrong when using a construct like false || A=3 when
- set -x is enabled and $PS4 contains a command substitution. Reported
- by Jeff Haemer <jeffrey.haemer@gmail.com>
-
- 10/17
+ 10/28
-----
-execute_cmd.c
- - in execute_in_subshell, make sure we set setjmp(return_catch) before
- running the command, in case the command or its word expansion
- calls jump_to_top_level. Fixes bug reported by Nils Bernhard
- <nils.bernhard@yahoo.de>
+lib/glob/{{gmisc,glob}.c,glob.h}
+ - extglob_pattern renamed to extglob_pattern_p, declared in glob.h
subst.c
- - new PF_NOSPLIT2 flag for param_expand
- - parameter_brace_expand takes a new `pflags' argument, before the
- `output' parameters; passes to param_expand as necessary
- - change parameter_brace_expand to call parameter_brace_expand_word
- with the PF_NOSPLIT2 flag if the pflags argument to
- parameter_brace_expand has it set
+ - expand_word_internal: typo fix: case to fix " $@\ " bug in bash-4.2
+ had a typo (& isexp instead of &&)
-parse.y
- - change report_syntax_error to set last_command_exit_value to
- EX_BADSYNTAX if parse_and_execute_level is > 0, indicating a
- syntax error while we're executing a dot script, eval string,
- trap command, etc.
+ 10/29
+ -----
+input.c
+ - getc_with_restart: make sure local_index and local_bufused are
+ reset to 0 before returning EOF, in case we are running an interactive
+ shell without line editing and ignoreeof is set. Report and fix
+ from Yong Zhang <yong.zhang@windriver.com>
-builtins/evalstring.c
- - in parse_and_execute, if parse_command() returns non-zero,
- indicating a parse error, print a warning message if the conditions
- would require a posix-mode shell to abort (parse error in a `.'
- script or eval string)
+lib/readline/search.c
+ - _rl_nsearch_init: take out extra third argument to rl_message; it
+ only matches prototype (and maybe format) in cases where
+ PREFER_STDARG and USE_VARARGS are both undefined, which is rare
- 10/19
+ 10/31
-----
-builtins/evalfile.c
- - even if the `check binary' flag is not passed to _evalfile, return an
- error after reading 128 null characters if called by `source', on
- the assumption that it's probably a binary file. [This will be in
- bash-4.1-beta]
+subst.c
+ - process_substitute: when opening the named pipe in the child, open
+ without O_NONBLOCK to avoid race conditions. Happens often on AIX.
+ Bug report and fix from Michael Haubenwallner
+ <michael.haubenwallner@salomon.at>
- 10/24
- -----
-[bash-4.1-alpha released]
+builtins/ulimit.def
+ - RLIMIT_NTHR: if RLIMIT_PTHREAD is not defined, but RLIMIT_NTHR is,
+ use RLIMIT_NTHR (NetBSD)
-bashline.c
- - don't call command_substitution_completion_function if we're
- completing a substring delimited by a single quote. Fixes bug
- reported by bash-bugs@atu.cjb.net
+ 11/5
+ ----
+locale.c
+ - set_default_locale_vars,set_locale_var: if TEXTDOMAINDIR has been
+ set, and default_dir has a non-null value, call bindtextdomain(3)
+ when TEXTDOMAIN is assigned a value. Fixes problem reported by
+ Michael Arlt <qwertologe@googlemail.com>
-lib/readline/complete.c
- - make sure _rl_skip_completed_text defaults to 0, as the
- documentation states (incorrect in bash-4.1-alpha)
- - in insert_match, skip over a close quote in the replacement text if
- the character at point when completion is invoked is a single
- quote. Fixes complaint from bash-bugs@atu.cjb.net
+ 11/6
+ ----
+builtins/cd.def
+ - cdxattr: only create synthetic pathname in `buf' if NDIRP argument
+ is non-null
+ - change_to_directory: if we have specified -@ and cdxattr returns
+ failure, fail immediately. Fixes bug reported by Joshuah Hurst
+ <joshhurst@gmail.com>
- 10/26
+ 11/12
-----
-shell.c
- - in main, make sure "$EMACS" is non-null before calling strstr on its
- value. Fixes Red Hat bug 530911 submitted by Mitchell Berger
-
-builtins/mapfile.def
- - don't save callback commands in shell history. Suggested by
- Jan Schampera <jan.schampera@web.de>
-
-mailcheck.c
- - in file_mod_date_changed, make sure the modification time is later
- than the saved modification date, not just that it's not equal.
- Fix from Evgeniy Dushistov <dushistov@mail.ru>
- - in file_access_date_changed, make sure the access time is later
- than the saved access time, not just that it's not equal
+redir.c
+ - print_redirection: change r_err_and_out (&>) and its append form,
+ r_append_err_and_out (&>>) cases to separate redirection operator
+ from filename by a space, in case we have a process substitution.
+ Fixes bug reported by admn ombres <admn.ombres@gmail.com>
- 10/27
+ 11/15
-----
-builtins/shopt.def
- - added new `compat40' compatibility variable, with associated changes
- to shell_compatibility_level(), since the default compatibility level
- is now 41
-
-test.c
- - make the < and > operators to [[ use strcoll() only if the shell
- compatibility level is greater than 40 (it is 41 by default in
- bash-4.1)
+execute_cmd.c
+ - execute_simple_command: don't close process substitution fds until
+ we are finished executing any current shell function. Partial fix
+ for bug reported by John Dawson <john.dawson@gmail.com>
- 10/28
- -----
support/shobj-conf
- - decrease the default version of FreeBSD that creates shared libraries
- to 4.x. Advice from Peter Jeremy <peterjeremy@acm.org>
-
- 11/2
- ----
-parse.y
- - change parse_comsub to free `heredelim' and set it to 0 whenever the
- comsub scanner finds the end of a here document. Really need to
- implement a stack of here doc delimiters like in the parser (can we
- use redir_stack here, too?)
- - fix parse_comsub to not attempt to read another here doc delimiter
- after seeing a shell break character (that is not newline) if we
- already have one. Fixes Debian bash bug #553485, submitted by
- Samuel Hym <samuel.hym@gmail.com>
+ - add support for Darwin 13 (Mac OS X 10.9, Mavericks). Based on a
+ report by Ludwig Schwardt <ludwig.schwardt@gmail.com>
- 11/3
- ----
-variables.c
- - fix bind_variable_internal to call a variable's dynamic 'set function'
- with the right arguments depending on whether its an associative
- array, an indexed array, or a scalar. Fixes Ubuntu bug #471504
- https://bugs.launchpad.net/ubuntu/+source/bash/+bug/471504 reported
- by AJ Slater <aj.slater@gmail.com>
-
-[bash-4.1-beta frozen]
-
- 11/11
+ 11/20
-----
-builtins/printf.def
- - in getintmax(), in the case of a conversion error, return the partial
- value accumulated so far, which is suppose to be what
- strtoimax/strtoll/strtol returns
+[bash-4.3-rc1 frozen]
- 11/17
+ 11/24
-----
-[bash-4.1-beta released]
+builtins/printf.def
+ - bind_printf_variable: make sure that the variable assigned to is
+ no longer marked as invisible. Fixes bug reported by NBaH
+ <nbah@sfr.fr>
- 11/18
+ 11/28
-----
-builtins/{common.h,shopt.def},shell.c
- - changed shopt variable "set functions" to take the option name as
- the first argument; changed function prototypes and callers
-
-builtins/shopt.def
- - change set_compatibility_level() to turn off other compatNN options
- when one is set -- enforce mutual exclusivity. Fixes problem noted
- by Jan Schampera <jan.schampera@web.de>
+jobs.c
+ - delete_old_job: fix off-by-one error in job index in call to
+ internal_warning. Bug report from Peter Cordes <peter@cordes.ca>
- 11/19
+ 11/30
-----
-lib/readline/rltty.c
- - make sure prepare_terminal_settings() tests for the presence of
- ECHOCTL before using it. Fixes bug reported by Joachim Schmitz
- <schmitz@hp.com>
-
-config-top.h
- - new WORDEXP_OPTION define (off by default)
+doc/bashref.texi
+ - add string to description of special parameters with name of
+ special parameter prefixed by a $, so you can search for $#,
+ for instance
-shell.c
- - don't include the --wordexp option or the supporting function
- (run_wordexp) if WORDEXP_OPTION is not defined. Suggested by
- Aharon Robbins <arnold@skeeve.com>
+ 12/2
+ ----
+lib/readline/{histexpand.c
+ - get_history_event: account for current_history() possibly returning
+ NULL. Report and fix from Pankaj Sharma <pankaj.s01@samsung.com>
-execute_cmd.c
- - in execute_cond_node, turn on comsub_ignore_return if the flags
- indicate we're ignoring the return value before calling
- cond_expand_word. Fixes bug reported by Anirban Sinha
- <asinha@zeugmasystems.com>
- 11/20
+ 12/11
-----
-lib/sh/snprintf.c,builtins/printf.def
- - change check for HAVE_ASPRINTF and HAVE_SNPRINTF to check if value
- is 1 or 0 rather than whether they are defined or not. This allows
- a value of 0 to enable function replacement
-configure.in,aclocal.m4
- - new autoconf macro, BASH_FUNC_SNPRINTF, checks for snprintf present
- and working as C99 specifies with a zero length argument. Idea
- from Greg Wooledge <wooledg@eeg.ccf.org>
- - new macro BASH_FUNC_VSNPRINTF, does same thing for vsnprintf
+lib/readline/parse-colors.c
+ - get_funky_string: don't call abort if we see something we can't
+ parse; just return an error
+ - _rl_parse_colors: if we encounter an error while parsing $LS_COLORS
+ we need to leave _rl_color_ext_list as NULL after freeing its
+ elements, then turn off _rl_colored_stats. Report and fix from Martin
+ Wesdorp <mwesdorp@casema.nl>
- 11/25
+ 12/13
-----
-subst.c
- - in command_substitute, only tell parse_and_execute to reset the line
- number in an interactive shell if sourcelevel == 0 -- we'll use the
- line numbers from the sourced file
-execute_cmd.c
- - in execute_simple_command, only subtract function_line_number from
- line_number if sourcelevel == 0. If sourcing, we'll use the line
- numbers from the sourced file. Fixes bug reported by Hugo
- Mildenberger <Hugo.Mildenberger@namir.de>
+lib/readline/parse-colors.c
+ - _rl_parse_colors: if we encounter an unrecognized prefix, throw an
+ error but try to recover and go on to the next specification
-builtins/declare.def
- - in declare_internal, call bind_assoc_variable instead of
- bind_array_variable in the case of declare -A foo=bar. Fixes bug
- reported by Bernd Eggink <monoped@sudrala.de>.
-
- 11/27
- -----
-lib/readline/util.c
- - change declaration for _rl_walphabetic to use prototype, assuming
- that any system with multibyte characters has a compiler that can
- handle prototypes. Fix for AIX compilation problem reported by
- Nick Hillman <nick_hillman@neverbox.com>
+variables.c
+ - make_local_variable: for new variables this function creates, set
+ the att_invisible attribute. All callers from declare_internal.
+ Indirectly, this is a fix for bug with `declare -n var; var=foo;'
+ reported by Pierre Gaston <pierre.gaston@gmail.com>
+ - bind_variable: if assigning to nameref variable that doesn't have
+ a value yet (e.g., with `declare -n var; var=foo'), don't try to
+ use the unset name. Fixes a segfault reported by Pierre Gaston
+ <pierre.gaston@gmail.com>
- 11/28
- -----
execute_cmd.c
- - make funcnest file-scope static and unwind-protect its value in
- execute_function, so it can be used as a real measure of function
- call nesting
-
-general.c
- - fix off-by-one error in trim_pathname that caused it to short-circuit
- when PROMPT_DIRTRIM == number of directories - 1. Fixes bug
- reported by Dennis Williamson <dennistwilliamson@gmail.com>
-
- 11/29
- -----
-jobs.c
- - when fork() returns -1/EAGAIN, call waitchld(-1, 0) so the shell can
- reap any dead jobs before trying fork again. Currently disabled
- until bash-4.2 development starts
-
-lib/readline/complete.c
- - when incrementing _rl_interrupt_immediately, make sure it's greater
- than 0 before decrementing it. In practice, not a problem, but
- the right way to do it. Suggested by Jan Kratochvil
- <jan.kratochvil@redhat.com>
+ - execute_command_internal: make sure last_command_exit_value is set
+ to 0 after any command executed in the background. Fixes bug
+ reported by Martin Kealey <martin@kurahaupo.gen.nz>
-lib/readline/signals.c
- - make sure rl_signal_handler doesn't set rl_caught_signal if
- _rl_interrupt_immediately is set, so RL_CHECK_SIGNALS doesn't
- cause it to be processed twice. Suggested by Jan Kratochvil
- <jan.kratochvil@redhat.com>
- - if the callback interface is being used, use the code path that
- immediately handles signals. This restores the readline-5.2
- behavior. Fixes GDB readline bug reported by Jan Kratochvil
- <jan.kratochvil@redhat.com>
-
- 12/18
+ 12/17
-----
-[bash-4.1-rc1 released]
+support/config.{guess,sub}
+ - updated to latest versions from git
- 12/22
+ 12/19
-----
-config-top.h
- - don't have SYSLOG_HISTORY enabled by default
-
-lib/sh/Makefile.in
- - add explicit dependency on pathnames.h for parallel make support
+parse.y
+ - struct STRING_SAVER: now has a new `flags' element, to identify the
+ caller: alias expansion, double-paren parsing, or parse_and_execute
+ - push_string: now sets flags to PSH_ALIAS if `ap' argument is non-NULL
+ - push_string: now doesn't attempt to call strlen on a NULL string to
+ set shell_input_line_size
+ - parser_expanding_alias, parser_save_alias, parser_restore_alias: new
+ functions to provide an external interface to push_string and
+ pop_string; parser_save_alias sets flags element to PSH_SOURCE (could
+ be renamed PSH_EXTERN someday)
+ - shell_getc: when yy_getc returns '\0', instead of just testing
+ whether the pushed_string_list is not-empty before popping it, don't
+ pop if if the saved string has flags PSH_SOURCE, indicating that
+ parse_and_execute set it before setting bash_input to the string.
+ We should continue reading to the end of that string before popping
+ back to a potential alias. Partial solution for the problem of aliases
+ with embedded newlines containing `.' commands being executed out of
+ order reported by Andrew Martin <andrew.martin@gmail.com>
+ - shell_getc: when yy_getc returns '\0' and there is a saved string of
+ type PSH_SOURCE, restart the read without popping the string stack
+ if we have not read to the end of bash_input.location.string. Rest
+ of fix for out-of-order execution problem
externs.h
- - add extern declaration for xtrace_fdchk
-
-lib/sh/snprintf.c
- - add local prototype declarations for isinf, isnan if we are providing
- local definitions
+ - parser_expanding_alias, parser_save_alias, parser_restore_alias: new
+ extern function declarations
-lib/sh/fnxform.c
- - add extern declaration for get_locale_var if HAVE_LOCALE_CHARSET not
- defined
+builtins/evalstring.c
+ - pe_prologue: if the parser is expanding an alias, make sure to add
+ an unwind-protect to restore the alias; undoes the work that will be
+ performed by parse_and_execute/parse_string
+ - parse_and_execute,parse_string: after calling push_stream to save
+ bash_input, check whether or not the parser is currently expanding
+ an alias (parser_expanding_alias() != 0). If it is, we want to save
+ that string in the pushed_string_list, which we do with
+ parser_save_alias.
+ 12/23
+ -----
execute_cmd.c
- - define NEED_FPURGE_DECL so we pick up any extern declaration for
- fpurge (e.g., if the system doesn't provide it)
+ - execute_for_command: make sure to set line_number before expanding
+ the word list, so expansion errors have the right line number.
+ From a report from Ben Okopnik <ben@okopnik.com>
-builtins/shopt.def
- - correct prototype and declaration for set_shellopts_after_change so
- it's the correct type for shopt_set_func_t
- - add new function shopt_enable_hostname_completion that is the correct
- type for shopt_set_func_t; just calls enable_hostname_completion and
- returns its result
+expr.c
+ - exp2: save token pointer before calling readtok(), arrange to use
+ saved token pointer when printing error token on a division by 0
+ error
- 12/26
+ 12/27
-----
-doc/{bash.1,bashref.texi}
- - add \E and \" escape sequences to ANSI-C quoting description.
- Suggested by Aharon Robbins <arnold@skeeve.com>
+lib/readline/display.c
+ - rl_redisplay: when calculating effects of invisible characters in a
+ prompt that is split across physical screen lines to set the indices
+ of linebreaks, don't bother testing local_prompt_prefix (line 751).
+ That prefix doesn't matter when calculating prompt visible and
+ invisible characters. Fixes problem reported by Jinesh Choksi
+ <jinesh@onelittlehope.com>
- 12/29
+Makefile.in
+ - install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
+ Report and fix from Matthias Klose <doko@debian.org>
+
+doc/texinfo.tex
+ - updated to version of 2013-09-11
+
+ 12/28
-----
-doc/bash.1
- - make sure shell and environment variable names are always in
- `small caps' bold. Suggested by Aharon Robbins <arnold@skeeve.com>
+lib/readline/undo.c
+ - rl_do_undo: if we are undoing from a history entry (rl_undo_list ==
+ current_history()->data), make sure the change to rl_line_buffer is
+ reflected in the history entry. We use the guts of
+ rl_maybe_replace_line to do the work. Fixes problem reported by
+ gregrwm <backuppc-users@whitleymott.net>
12/30
-----
-{execute_cmd.c,parse.y,Makefile}
- - changes for building minimal configuration from Matthias Klose
- <doko@debian.org>
-
-[bash-4.1 frozen]
+sig.c
+ - sigint_sighandler: if we get a SIGINT (and this signal handler is
+ installed) while the wait builtin is running, note that we received
+ it in the same way as jobs.c:wait_sigint_handler and return. The
+ various wait_for functions will look for that with CHECK_WAIT_INTR.
+ This fixes the wait builtin not being interruptible in an interactive
+ job control shell
12/31
-----
-[bash-4.1 released]
-
- 1/5/2010
- --------
-doc/bashref.texi
- - document compat32 and compat40 shopt options. Omission pointed out
- by Dilyan Palauzov <Dilyan.Palauzov@aegee.org>
-
- 1/6
- ---
-lib/readline/complete.c
- - use `convfn' (converted filename) instead of entry->d_name (filename
- read from file system) when adding partial or full completions to
- the command line. Bug and fix from Guillaume Outters
- <guillaume.outters@free.fr>
-
- 1/7
- ---
-builtins/printf.def
- - fix prototype in extern declaration for vsnprintf. Fix for bug
- reported by Yann Rouillard <yann@pleiades.fr.eu.org>
-
- 1/9
- ---
-parse.y
- - fix shell_getc to handle alias expansions containing quoted
- newlines. Problems in bash-4.1 with aliases containing quoted
- newlines in the middle of and at the end of their expansion.
- Fix for bug reported by Jonathan Claggett
- <jonathan@claggett.org>
- - change mk_alexpansion to not append a space to an alias
- expansion ending with a newline. Works with shell_getc
-
- 1/11
- ----
-lib/glob/Makefile.in
- - add dependencies on shell.h and pathnames.h. From Mike Frysinger
- <vapier@gentoo.org>
-
- 1/15
- ----
-doc/{bash.1,{bashref,version}.texi},lib/readine/doc/rluser.texi
- - some typo fixes from Aharon Robbins <arnold@skeeve.com>
- - added descriptions of ENV, COPROC, and MAPFILE variables
- - added descriptions of READLINE_LINE and READLINE_POINT
-
- 1/21
- ----
-arrayfunc.c
- - free `akey', the word-expanded index into the assoc array to avoid
- mem leak in array_value_internal
- - free index into assoc array in unbind_array_element
- - change array_value_internal to take an additional argument: an
- arrayind_t *. If not null, an index to an indexed array is
- returned there. If not an indexed array or subscript is @ or
- *, the value is unchanged
-
- 1/22
- ----
-builtins/ulimit.def
- - include <ulimit.h> if we found it during configure and we don't
- have resources. Fixes omission reported by Joachim Schmitz
- <jojo@schmitz-digital.de>
-
-{configure,config.h}.in
- - check for <ulimit.h>, define HAVE_ULIMIT_H if found
-
-lib/sh/oslib.c
- - include <signal.h> for extern declaration for kill(2) if
- HAVE_KILLPG not defined
-
-jobs.c
- - if HAVE_KILLPG is not defined, add an extern prototype decl for
- killpg()
-
- 1/24
- ----
-print_cmd.c
- - when printing here-string redirections, don't quote the string. The
- original quotes, if any, are still in place and don't need to be
- requoted. Fixes bug reported by Arfrever Frehtes Taifersar Arahesis
- <arfrever.fta@gmail.com>
+trap.c
+ - set_signal_hard_ignored: rename set_signal_ignored to this, since it
+ both sets original_signals[sig] and sets the HARD_IGNORE flag
+ - set_signal_ignored: new function, now just sets original_signals[sig]
-subst.c
- - fix array_length_reference to return 0 for variables that have not
- been assigned a value. Fixes bug reported by Mart Frauenlab
- <mart.frauenlob@chello.at>, but is not backwards compatible
+trap.h
+ - set_signal_hard_ignored: new external declaration
-arrayfunc.[ch]
- - change array_value to take a new arrayind_t *indp parameter like
- get_array_value; changed extern prototype declaration
+sig.c
+ - initialize_terminating_signals: call set_signal_hard_ignored instead
+ of set_signal_ignored for signals with disposition SIG_IGN when the
+ shell starts
-subst.c
- - changed callers of array_value to add extra parameter
+execute_cmd.c
+ - setup_async_signals: make sure we get the original dispositions for
+ SIGINT and SIGQUIT before starting the subshell, and don't call
+ set_signal_ignored because that sets original_signals[sig]. If we
+ don't, subsequent attempts to reset handling using trap will fail
+ because it thinks the original dispositions were SIG_IGN. Posix
+ interpretation 751 (http://austingroupbugs.net/view.php?id=751)
+
+ 1/2/2014
+ --------
+lib/sh/stringvec.c
+ - strvec_mcreate, strvec_mresize: versions of create and resize that
+ use malloc and realloc, respectively, instead of xmalloc/xrealloc
-expr.c
- - change expr_streval to set a new `lvalue' parameter with information
- about the string being evaluated: string, value, array index (if
- any), variable evaluated (if set).
- - saving and restoring current context now saves and restores the
- current `lvalue'
- - new function expr_bind_array_element, binds an array element with an
- already-computed index to a specified value
- - anywhere we set the current token to a string (STR), save and set
- the current lvalue
- - change calls to expr_bind_variable to check whether or not the
- current lvalue indicates an indexed array was evaluated, and, if so,
- call expr_bind_array_element using the already-computed index
- (curlval.ind). Fixes problems with dynamic variables (e.g., RANDOM)
- in array indices with {pre,post}-{inc,dec}rement and op=
- operators reported by <dennis@netstrata.com>
+braces.c
+ - expand_amble,mkseq: use strvec_mcreate/strvec_mresize so we can
+ catch and handle memory allocation failures instead of aborting
+ with the xmalloc/xrealloc interface
- 1/25
- ----
-expr.c
- - fix subexpr() to initialize curlval and lastlval when resetting all
- of the rest of the expression-parsing variables
+lib/sh/strdup.c
+ - strdup replacement function for ancient systems that don't have it
- 1/26
- ----
-builtins/setattr.def
- - in show_var_attributes, if the variable is not set (value == 0),
- don't print `name=""', just print `name'. Pointed out by
- Mart Frauenlab <mart.frauenlob@chello.at>
+lib/sh/itos.c
+ - mitos: new function, itos that uses strdup instead of savestring
-arrayfunc.c
- - fix array_keys to return NULL if the variable is not set or
- invisible. Pointed out by Mart Frauenlab <mart.frauenlob@chello.at>
- - change array_value_internal to return NULL for variable which has
- not been set
+externs.h
+ - strvec_mcreate/strvec_mresize: new extern declarations
+ - mitos: new extern declaration
- 1/30
- ----
-bashline.c
- - in command_word_completion_function, don't call glob_pattern_p
- on hint -- use the already-computed `globpat'. At this point,
- hint might contain an already-dequoted globbing character, but
- glob_matches will be NULL. Fixes bug reported by
- coyote@wariat.org.pl
+configure.ac
+ - bash version moved to 4.3-rc2
- 2/5
+ 1/6
---
-builtins/exec.def
- - set extern variable "exec_argv0" to the argument to -a
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+ - separate the description of what happens when readline reads the
+ tty EOF character from the description of delete-char, leaving a
+ note in the delete-char description about common binding for ^D.
+ From suggestion by Parke <parke.nexus@gmail.com>
-shell.c
- - if exec_argv0 is set, set dollar_vars[0] to it and set it to NULL,
- assuming it was set by `exec -a'. `exec -a foo' now sets $0 to
- foo in an executable shell script without a leading `#!' (fixes
- longstanding bug)
+lib/readline/doc/{version.texi,history.3,*.texi}
+ - updated email addresses and copyright dates
- 2/8
+ 1/7
---
variables.c
- - in push_func_var, if a variable is in a special builtin's temporary
- environment and needs to be propagated because we're in Posix mode,
- or we just need to propagate a variable, and we are executing in a
- function without any local variables (so the function-local variable
- context has no variable hash table), make sure we create a hash
- table so we have a place to save the variable to be propagated.
- Fixes bug reported by Crestez Dan Leonard <cdleonard@gmail.com>.
-
- 2/18
- ----
-builtins/hash.def
- - change add_hashed_command to remove the command being looked up from
- the hash table before trying to add it. That way, if it's not found,
- there won't be anything remaining in the hash table
-
- 2/26
- ----
-trap.[ch]
- - move IMPOSSIBLE_TRAP_HANDLER define to trap.h so other parts of the
- shell can use it
-
-parse.y
- - change yy_readline_get to use IMPOSSIBLE_TRAP_HANDER instead of NULL
- as a sentinel value for the SIGINT signal handler
- - make sure yy_readline_get resets interrupt_immediately to 0 after
- calling readline() using the same criteria it used to set it to 1
- before the call -- make the code symmetric. Suggested by Werner
- Fink <werner@suse.de>
-
-builtins/read.def
- - move assignment to `retval' before decrement of interrupt_immediately
- and terminate_immediately and call to discard_unwind_frame
- - move assign_vars label before decrement of interrupt_immediately and
- terminate_immediately so those variables get reset appropriately
- if read -t times out
-
-subst.h
- - new define for Q_DOLBRACE, indicates double-quoted ${...}
-
-subst.c
- - in parameter_brace_expand, before calling parameter_brace_expand_rhs,
- add Q_DOLBRACE to `quoted' if we're within double quotes.
- - in expand_word_internal, if the Q_DOLBRACE flag is set, remove a
- backslash escaping a }. Result of a Posix discussion on the
- austin-group list
-
- 2/27
- ----
-variables.c
- - new functions to save and restore the PIPESTATUS variable's internal
- array: save_pipestatus_array and restore_pipestatus_array
+ - delete_var: new function, just removes a variable from a hash table
+ and frees it, without doing anything else
+ - make_variable_value: if we are trying to assign to a nameref variable,
+ return NULL if the value is null or the empty string or not a valid
+ identifier
variables.h
- - new extern declarations for save_pipestatus_array and
- restore_pipestatus_array
-
-trap.c
- - in run_pending_traps, _run_trap_internal, and run_exit_trap, save
- and restore $PIPESTATUS while traps are running. Fixes bug
- reported by Florian Bruhin <me@the-compiler.org>
-
-parse.y
- - use save_pipestatus_array and restore_pipestatus_array in
- save_parser_state and restore_parser_state, respectively, replacing
- inline code
+ - delete_var: new extern declaration
-lib/readline/histfile.c
- - fix callers of history_filename to be prepared to cope with it
- returning NULL
- - change history_filename to return NULL if $HOME is not set, rather
- than trying to write the history file in the current directory.
- This is the default directory, used only if the application does
- not specify a history filename. Changed due to long-ago (unsent)
- bug report from OpenBSD
-
-{Makefile,config.h,configure}.in,externs.h,lib/sh/{dprintf.c,Makefile.in}
- - change fdprintf to dprintf, which is the Posix standard interface,
- look for it with configure, replace it if not available
-
- 2/28
- ----
-command.h
- - add new subshell flag, SUBSHELL_RESETTRAP. Indicates to the trap
- builtin that the shell is executing a command substitution and
- should free the trap strings we left unfreed by reset_signal_handlers()
-
-trap.c
- - free_trap_string() and free_trap_strings() are now compiled in
-
-builtins/trap.def
- - if changing a signal disposition and the SUBSHELL_RESETTRAP flag is
- set in subshell_environment, free the trap strings left unfreed by
- reset_signal_handlers
-
-subst.c
- - in command_substitute, set the SUBSHELL_RESETTRAP flag. This change
- is for Austin Group Posix interpretation 53
- (http://austingroupbugs.net/view.php?id=53)
-
- 3/7
- ---
-lib/sh/{Makefile.in,strchrnul.c},Makefile.in
- - implementation of strchrnul, from gnulib
-
-configure.in,config.h.in
- - look for strchrnul and compile in version in lib/sh/strchrnul.c if
- not available
- - look for mbsnrtowcs and define HAVE_MBSNRTOWCS if available
-
-lib/sh/xmbsrtowcs.c
- - new function, xdupmbstowcs2, fast version of xdupmbstowcs used when
- mbsnrtowcs is available and the indices are not required. Called
- from xdupmbstowcs as required. Initial patch from
- <0xe2.0x9a.0x9b@gmail.com>
-
- 3/22
- ----
-print_cmd.c
- - call print_deferred_heredocs virtually every time a recursive call
- to make_command_string_internal is made so here documents get
- printed correctly when they are attached to commands inside compound
- commands such as for and while. Fixes bug reported by Mike
- Frysinger <vapier@gentoo.org>
-
- 3/25
- ----
-builtins/printf.def
- - fix have_precision case in PF macro to call printf with precision
- instead of fieldwidth argument. Fixes bug reported by Rob Robason
- <rob@robason.net>
-
- 3/26
- ----
-trap.[ch]
- - new function, signal_is_hard_ignored, returns true if the shell
- inherited SIG_IGN as a signal's disposition
- - new function, set_original_signal (sig, handler), provides interface
- for rest of shell to set original_signals[sig] = handler
-
-execute_cmd.c
- - execute_disk_command needs to call reset_terminating_signals in the
- child process before resetting traps with restore_original_signals
-
-builtins/trap.def
- - call initialize_terminating_signals before calling display_traps for
- trap -p or trap without any other arguments. Possible future use
-
-lib/readline/complete.c
- - rl_filename_completion_function needs to call
- rl_filename_dequoting_function with `dirname' (which has already
- been tilde-expanded) instead of `users_dirname', because it calls
- opendir with `dirname'. Fixes bug reported by Stefan H. Holek
- <stefan@jarn.com>
-
- 3/27
- ----
-sig.c
- - experimental change to set_signal_handler: when setting the SIGCHLD
- handler, set the SA_RESTART flag so that interruptible system calls
- get restarted after a child dies. Fixes bug reported by Tomas
- Trnka <tomastrnka@gmx.com>, but needs further evaluation
-
-lib/sh/eaccess.c
- - eaccess(2) apparently does only half the job: it does not check that
- the permission bits on a file actually allow, for instance, execution.
- Need to augment with a call to sh_stataccess if eaccess returns
- success on FreeBSD. Fixes FreeBSD problem reported by Jonan Hattne
- <johan.hattne@utsouthwestern.edu>
-
- 3/28
- ----
-parse.y,bashline.c,externs.h
- - history_delimiting_chars now takes a const char * as an argument:
- the line being added to the history. Changed callers
-
-parse.y
- - bash_add_history should not add a semicolon separator if the current
- history entry already ends in a newline. It can introduce syntax
- errors (e.g., when it results in a null command before a close brace).
- Fixes bug reported by Andreas Schwab <schwab@linux-m68k.org>
-
-parse.y
- - history_delimiting_chars needs to return a newline instead of a
- semicolon if it thinks the current line starts a here document
- (if it contains `<<'). Also keeps track of the fact with a new
- static variable, LAST_WAS_HEREDOC, so it can return the right
- sequence of newlines later for the here-document body. Fixes bug
- reported by Andreas Schwab <schwab@linux-m68k.org>
-
- 3/29
- ----
-lib/sh/eaccess.c
- - if the system has faccessat, sh_eaccess will now use it in
- preference to all other options
-
- 3/30
- ----
subst.h
- - new string_extract and extract_dollar_brace_string flag value:
- SX_POSIXEXP, set if the shell is expanding one of the new Posix
- pattern removal word expansions
-
-parser.h
- - new definitions for "word expansion state", shared between parse.y
- and subst.c
+ - ASS_NAMEREF: new define for assignments, means assigning to a nameref
+ variable
-subst.c
- - include parser.h
+builtins/declare.def
+ - declare_internal: if we are creating and assigning to a nameref
+ variable, make sure the value is a valid variable name (checks done
+ by make_variable_value via bind_variable_value) and display an
+ error message, deleting the variable we just created, if it is not.
+ Fixes bug reported by Peggy Russell <prusselltechgroup@gmail.com>
- 4/9
+ 1/9
---
builtins/declare.def
- - make sure declare_internal calls bind_assoc_variable with newly-
- allocated memory for the key argument when using an implicit key
- of "0". Bug report and fix from Andreas Schwab
- <schwab@linux-m68k.org>
-
- 4/14
- ----
-lib/readline/input.c
- - restructure the rl_event_hook loop in rl_read_key to call the
- event hook after rl_gather_tyi() returns and rl_get_char has
- a chance to collect the input. Previous behavior was to call
- the event hook before attempting to read input. Problem
- reported by Anant Shankar <anantshankar17@gmail.com>
+ - declare_internal: turning on nameref attribute for an existing
+ variable turns off -i/-l/-u/-c attributes (essentially the ones
+ that cause evaluation at assignment time) for ksh93 compat
- 4/15
- ----
-builtins/fc.def
- - fc_builtin needs to check whether the calculation of last_hist
- leaves hlist[last_hist] == 0, and keep decrementing it until it
- leaves a non-null history entry or goes < 0. Currently only
- does this if saved_command_line_count > 0, indicating we're
- trying to edit a multi-line command. Fixes bug reported by
- Roman Rakus <rrakus@redhat.com>
-
- 4/17
- ----
-subst.c
- - new process substitution helper functions:
- unlink_fifo - closes a single FD or FIFO
- num_fifos - returns number of open FDs or active FIFOs
- copy_fifo_list - returns a bitmap of open FDs or active FIFOs
- by index into appropriate list (dev_fd_list or fifo_list)
- close_new_fifos - take a bitmap saved by copy_fifo_list and
- call unlink_fifo on any FD or FIFO open at the time of the
- call that is not marked as active in list
-
-execute_cmd.c
- - execute_builtin_or_function: use new framework to close process
- substitution FDs or FIFOs created by a shell builtin or shell
- function. Fixes bug reported by Charles Duffy <charles@dyfis.net>
-
-doc/{bash.1,bashref.texi}
- - document 'C and "C constants for printf builtin
-
- 4/22
- ----
-lib/readline/complete.c
- - new function to return screenwidth for use when displaying possible
- matches: complete_get_screenwidth; changed uses of _rl_screenwidth
- to use complete_get_screenwidth().
- - change complete_get_screenwidth to query (readline-private)
- _rl_completion_colums, $COLUMNS, then _rl_screenwidth in that order
- - change rl_display_match_list to deal with limit < 0 (which implies
- that cols == 0) when _rl_screenwidth > 0
-
-lib/readline/bind.c
- - new bindable variable: completion-display-width, controls the
- number of columns used when displaying completions with new
- sv_compwidth function to call when value is set or unset
-
-lib/readline/doc/{readline.3,rltech.texi}
- - documented completion-display-width variable
+builtins/setattr.def
+ - show_name_attributes: if asked to display attributes and values for
+ a nameref variable, don't follow the nameref chain to the end. More
+ ksh93 compat
- 4/23
+ 1/10
----
-execute_cmd.c
- - change execute_in_subshell to reset trap handlers without freeing
- the trap strings and set SUBSHELL_RESETTRAP. In line with Austin
- Group interp #53 (trap in a subshell).
- - ditto for execute_simple_command where it can be determined that
- the shell is going to run a builtin or function in a subshell
-
trap.c
- - new function, get_all_original_signals, retrieves the original
- signal disposition for all signals
-
-trap.h
- - extern declaration for get_all_original_signals
-
-builtins/trap.def
- - change showtrap to display signals that are "hard ignored" as
- trap commands to ignore them, even though that trap command would
- be a no-op. Partial fix for feature request from Siddhesh
- Poyarekar <siddhesh.poyarekar@gmail.com>
- - change trap_builtin to call get_all_original_signals before displaying
- traps. This will show inherited ignored signals. Rest of feature
- request from Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
-
-lib/readline/histexpand.c
- - fix history_tokenize_word so that it understands $(...) and the
- <(...) and >(...) expansions as a single word
- - change history_tokenize_word so that it understands extended shell
- globbing patterns as a single word. Code is very similar to
- $(...) code above. Bug reported by Rajeev V. Pillai
- <rajeevvp@gmail.com>
-
- 4/24
- ----
-lib/readline/vi_mode.c
- - add checks to rl_vi_char_search to make sure we've already done a
- search if the command is `;' or `,', and return immediately if we
- have not. Fixes bug reported by Eric Ho <ericmho@shaw.ca>
-
-lib/readline/text.c
- - make sure `dir' is in the valid range before searching in
- _rl_char_search_internal. Range checks in the code depend on it
- being non-zero
-
- 5/3
- ---
-lib/readline/complete.c
- - in rl_complete_internal, if show-all-if-ambiguous or
- show-all-if-unmodified are set (what_to_do == '!' or '@',
- respectively), and the common match prefix is shorter than the
- text being completed, inhibit inserting the match.
- The guess is that replacing text with a shorter match will not
- be wanted
-
- 5/20
- ----
-lib/sh/unicode.c
- - new file, with unicode character conversion-related code. Will be
- used to implement \u and \U escapes where appropriate, and for
- other unicode-related functions in the future
-
- 5/21
- ----
-builtins/printf.def
- - add code to handle \u and \U escapes in format strings and arguments
- processed by the %b format specifier
-
-lib/sh/strtrans.c
- - add code to handle \u and \U escapes as unicode characters, works for
- both `echo -e' and $'...'
-
-doc/{bash.1,bashref.texi}
- - document new \u and \U escape sequences for $'...' and echo (printf
- defers to the system's man page or Posix)
-
- 5/24
- ----
-execute_cmd.c
- - change execute_disk_command to return a status, instead of just
- leaving it in `last_command_exit_value', since the parent's return
- value is sometimes used (e.g., when a restricted shell refuses to
- run a command with a `/'). Fixes bug reported by David Pitt
- <David.Pitt@anz.com>
+ - _run_trap_internal: use {save,restore}_parser_state instead of
+ {save,restore}_token_state, like in run_pending_traps(); don't
+ need to save and restore last_command_exit_value as a result
+ - _run_trap_internal: call {save,restore}_pipeline like in
+ run_pending_traps()
+ - run_pending_traps: since we no longer run traps in a signal handler
+ context, do not block and unblock the trapped signal while the
+ trap is executing
+ - run_pending_traps: allow recursive invocations (basically, running
+ traps from a trap handler) with only a warning if the shell is
+ compiled in debug mode. If a caller doesn't want this to happen,
+ it should test running_trap > 0. signal_in_progress (sig) only works
+ for the signals the shell handles specially
- 5/25
- ----
bashline.c
- - change bash completion functions to save and restore the value of
- rl_ignore_some_completions_function, and set it to the bash default
- of filename_completion_ignore where appropriate. Fixes bug
- reported by Henning Bekel <h.bekel@googlemail.com>
+ - bash_event_hook: make sure we clean up readline if interrupt_state
+ is set, not only when SIGINT is not trapped. check_signals_and_traps
+ will call check_signals, which calls QUIT, which will longjmp back
+ to top_level, running the interrupt trap along the way. Fixes the
+ problem of signal handlers being reset out from under readline, and
+ not being set properly the next time readline is called, because
+ signals_set_flag is still set to 1. XXX - might need to do this
+ for other signals too?
-variables.c
- - new convenience function: find_global_variable (name). Looks for
- NAME in the global variables table, skipping any local and
- temporary environment variables
-
-builtins/declare.def
- - add new -g option to declare/typeset/local, forces variables to be
- created or modified at the global scope when executing inside a
- shell function. Requested by many, most recently by
- konsolebox@gmail.com
-
- 5/27
+ 1/11
----
-test.c
- - added new `-v var' unary test operator; returns TRUE if var is set
- (i.e., has been assigned a value). Works in both test builtin and
- [[ conditional command
-
-doc/{bash.1,bashref.texi}
- - documented new `-v var' unary conditional operator
-
-tests/test.tests
- - added tests for new -v var operator
-
-builtins/kill.def
- - change kill builtin so -PID (pgrp specification) following a
- -s sig or -n sig option is not interpreted as a signal specification.
- Fixes bug reported by Roman Rakus <rrakus@redhat.com>
-
-builtins/evalstring.c
- - in parse_and_execute, if parse_command() returns non-zero,
- indicating a parse error, exit the shell if the conditions require
- a posix-mode non-interactive shell to abort (parse error in a `.'
- script or eval string). Bash-4.1 only printed a warning. This is
- from Austin Group interp 114
-
-doc/bashref.texi
- - add note to the posix mode section of the texinfo manual noting
- the changed behavior for `.' and `eval'
-
-parse.y
- - change time_command_acceptable to allow TIME token to appear after
- BANG token (to allow `! time foo', which is supposed to be valid)
- - change pipeline_command production to allow multiple instances of
- `!' (which toggle inverting the return status) and `time' (which
- have no effect)
-
-execute_cmd.c
- - In posix mode, `time' without a following pipeline prints the
- elapsed user, system, and real time for the shell and its
- children since the shell was invoked.
- It's like `times' but obeys the setting of TIMEFORMAT. A future
- revision of Posix will require this
-
-doc/{bashref.texi,bash.1}
- - document new posix mode use of `time'
+subst.h
+ - SD_GLOB: new define for skip_to_delim; means we are scanning a
+ glob pattern.
-parse.y
- - add production to pipeline_command that permits `!' by itself to
- be equivalent to `false' (and, with the changes above, permits
- `! !' to be roughly equivalent to `true'). A future revision of
- Posix will require this
+subst.c
+ - skip_to_delim: if flags include SD_GLOB, assume we are scanning a
+ glob pattern. Currently only used to skip bracket expressions
+ which may contain one of the delimiters
- 5/28
+ 1/12
----
-parse.y
- - fix \W prompt expansion to use memmove instead of strcpy, since the
- source and target strings overlap (though you think it wouldn't
- matter, since the overlapping regions are never touched at the same
- time). Fixes bug reported by Stéphane Jourdoi
- <sjourdois@gmail.com>
-
-parse.y
- - Posix interp 217 states that $(( must be parsed first as an
- arithmetic expansion, so avoid attempting to parse it as a nested
- command substitution. Fixes bug reported by several, most recently
- <jwm@horde.net>
-
subst.c
- - change extract_delimited_string to process nested $( as a possible
- command substitution, but only if already parsing an arithmetic
- expansion. Rest of fix for Posix interp 217
- - change parameter_brace_expand_rhs to make the := expansion operator
- perform quote removal and both assign the result to the variable and
- return it as the result of the expansion, rather than assign the
- value after quote removal but return the value before quote removal.
- Posix interp 221
- - introduce new internal quoting flag: Q_DOLBRACE. Denotes a double-
- quoted ${...} expansion. In this case, Posix interp 221 requires
- that a backslash quoting an embedded `}' be removed, even though it's
- not one of the characters marked as special inside double quotes.
- Set in parameter_brace_expand, used by expand_word_internal.
-
-parse.y
- - introduce new parsing state, P_DOLBRACE, set when parsing a ${...}
- expansion
- - set a "dolbrace operator state" in parse_matched_pair to decide
- whether the lexer is reading the param, op, or word in
- ${paramOPword}. Will be used to decide whether or not to treat
- single quotes specially in a double-quoted "${...}
+ - parameter_brace_expand: when expanding $@ as part of substring
+ expansion, pattern substitution, or case modification, don't turn
+ on the QUOTED_NULL flag. The code that constructs the word to be
+ returned from expand_word_internal expects a different code path
+ when $@ is being expanded. Fixes bug reported by Theodoros
+ V. Kalamatianos <thkala@gmail.com>
- 5/29
+ 1/19
----
-parse.y
- - change parse_matched_pair so that a single quote appearing in a
- double-quoted ${...} expansion is not special unless the expansion
- operator is `#[#]' or `%[%]'. Posix interp 221
-
subst.c
- - change string_extract_double_quoted so that a single quote appearing
- in a double-quoted ${...} expansion is not special unless the
- expansion operator is `#[#]' or `%[%]'. Posix interp 221
-
-doc/bashref.texi
- - document posix-mode effects of Posix interp 221
- - add section describing GNU parallel as requested by Stallman
-
-lib/readline/complete.c
- - broke code that compares filenames read from the file system (and
- possibly converted) to words being completed out into a separate
- function: complete_fncmp
- - augment complete_fncmp to treat hyphen and underscore as equivalent
- when comparing filenames if _rl_completion_case_map is set
+ - list_dequote_escapes: new function; analogue of list_quote_escapes
-lib/readline/rlprivate.h
- - new extern declaration for _rl_completion_case_map
-
-lib/readline/util.c
- - change _rl_strnicmp to return the difference between the characters,
- like strcasecmp, and not modify the pointers it is passed
- - change _rl_stricmp to not modify the pointers it is passed
-
-lib/readline/bind.c
- - new bindable variable, "completion-case-map", toggles value of
- _rl_completion_case_map
-
-lib/readline/doc/{rluser.texi,readline.3}
- - document new bindable readline variable "completion-case-map"
-
-execute_cmd.c
- - change execute_function to reset funcnest and jump back to top level
- if funcnest exceeds funcnest_max
- - use funcnest_max as a max function nesting level, if set to numeric
- value greater than 0 (defaults to 0, so inactive)
-
-variables.c
- - new variable FUNCNEST, controls funcnest_max value if set to numeric
- value > 0
-sig.c
- - reset funcnest to 0 when throw_to_top_level occurs
-
-doc/{bash.1,bashref.texi}
- - document FUNCNEST variable and its effect on function execution
-
-lib/readline/funmap.c
- - add new bindable command names to avoid case-insensitive matching
- problems between, for instance, vi-fword and vi-fWord:
-
- vi-forward-word
- vi-forward-bigword
- vi-backward-word
- vi-backward-bigword
- vi-end-word
- vi-end-bigword
-
- Suggested in a different form in 2006 (!) by Servatius Brandt
- <servatius.brandt@arcor.de>
-
-builtins/mapfile.def
- - run_callback now takes a new third argument: curline, the line
- currently being read and about to be assigned
- - the callback function/command now takes an additional argument:
- the line to be assigned to the array index. Feature suggested by
- Dennis Williamson <dennistwilliamson@gmail.com>
-
-doc/{bash.1,bashref.texi}
- - document new additional `line' argument to mapfile callback
+pathexp.c
+ - quote_string_for_globbing: fix case where unescaped ^A is last char
+ in string; need to pass it through unaltered instead of turning it
+ into a bare backslash
+ - quote_string_for_globbing: when quoting for regexp matching in [[,
+ don't treat backslash as a quote character; quote the backslash as
+ any other character. Part of investigation into reports from
+ Eduardo A. Bustamante López <dualbus@gmail.com>
- 5/30
+ 1/25
----
-builtins/printf.def
- - add new %(fmt)T format specifier, where FMT is a strftime format.
- Argument is number of seconds since the epoch, with -1 meaning
- current time (roughly date +%s) and -2 meaning shell start time
- (roughly $SECONDS, unless it's been assigned a value or unset).
- Fieldwidth and precision are preserved, strftime result is printed
- as with %[-][[fieldwidth][.[precision]]]s
+builtins/gen-helpfiles.c
+ - write_helpfiles: add prototype
+ - make sure to #undef xmalloc/xfree/xrealloc/free if USING_BASH_MALLOC
+ is defined. the code does not use them, and we don't link against
+ xmalloc.o. Report from Linda Walsh <bash@tlinx.org>
-doc/{bash.1,bashref.texi}
- - document new %(datefmt)T printf format specifier and special
- arguments
-
-builtins/hash.def
- - don't permit programs with slashes to be entered into the hash table
- at all, even with the -p option. Inconsistency pointed out by
- Jan Schampera <jan.schampera@web.de>
-
-builtins/shopt.def
- - add `compat41' option in preparation for bash-4.2
-
- 6/6
- ---
-lib/readline/vi_mode.c
- - finish restructuring rl_vi_domove and the functions that call it so
- it works in callback mode, including numeric arguments. Requested
- a long time ago by Bob Rossi
-
-lib/readline/callback.c
- - arrange to call appropriate callback when readline state indicates
- RL_STATE_VIMOTION, so vi motion commands like `cw' and `d2w' are
- handled in callback mode
-
-lib/sh/wcswidth.c
- - replacement wcswidth implementation
-
-aclocal.m4
- - add REPLACE_FUNCS(wcswidth) to BASH_CHECK_MULTIBYTE
-
-execute_cmd.c
- - fix select_query and print_index_and_element to compute correct
- display width of select list elements in presence of multibyte
- characters. Bug reported by Bernd Eggink <monoped@sudrala.de>
-
-builtins/cd.def
- - add posix-mandated -e option; currently ignored in most circumstances
+Makefile.in
+ - variables.o: add dependency on builtins/builtext.h; helps with
+ parallel builds. Report from Linda Walsh <bash@tlinx.org>
-doc/{bash.1,bashref.texi}
- - document new `cd -e' option
+support/shobj-conf
+ - darwin: combine the stanzas into one that will not require them to
+ be updated on each Mac OS X release. Report and fix from Max Horn
+ <max@quendi.de>
- 6/12
+ 1/27
----
-arrayfunc.c
- - change array_value_internal to treat negative subscripts to indexed
- arrays, offset from array_max_index(x) + 1, so foo[-1] is the last
- element of $foo
-
-subst.c
- - Change verify_substring_values to allow negative length specifications
- when using string variables or array members. Negative lengths
- mean to return characters from OFFSET until (${#var} - N) for
- {var:offset:-N}. Feature requested by Richard Neill
- <rn214@hermes.cam.ac.uk>
-
-doc/{bash.1,bashref.texi}
- - document new behavior of negative subscripts to indexed arrays
- - document new behavior of negative LENGTH in substring expansion
-
-configure.in
- - change version to bash-4.2-devel
-
-variables.c
- - make sure initialize_shell_variables calls sv_xtracefd if
- BASH_XTRACEFD is inherited in the shell environment. Fixes but
- reported by <jsunx1@bellsouth.net>
+support/shobj-conf
+ - darwin: changed the install_name embedded into the shared library
+ to contain only the major version number, not the minor one. The
+ idea is that the minor versions should all be API/ABI compatible,
+ and it is better to link automatically with the latest one. Idea
+ from Max Horn <max@quendi.de>
- 6/13
+ 1/29
----
-lib/readline/complete.c
- - change get_y_or_n to always return 1 when in callback mode, so we
- don't do a blocking read. Have to wait until readline-7.0 to add
- a state so we can use callbacks, since that will change public
- interface
+[bash-4.3-rc2 released]
- 6/17
+ 1/30
----
-subst.c
- - fix memory leak in parameter_brace_expand: when performing pattern
- removal with parameter_brace_remove_pattern, make sure `name' is
- freed. Fixes bug reported by oyvindh@dhampir.no
+lib/readline/readline.h
+ - rl_clear_history, rl_free_keymap: add extern declarations. Report
+ from Hiroo Hayashi <hiroo.hayashi@computer.org>
- 6/23
- ----
-{parse.y,subst.c}
- - make the ${param//pat/rep}, ${param^pat}, and ${param,pat} expansions
- require single quotes and double quotes to match when within double
- quotes. This way every expansion except the Posix ones behaves as
- bash has always behaved
+general.c
+ - include trap.h for any_signals_trapped() prototype
-subst.c
- - change remove_upattern and remove_wpattern to return their first
- argument if nothing matches, change callers to allocate memory
- appropriately
- - change remove_pattern to short-circuit and return copy of PARAM
- if remove_wpattern returns its first argument (indicating no match)
- rather than convert back to multibyte string, allocating new memory
- twice and calling wcsrtombs
+lib/sh/unicode.c
+ - include <stdio.h> for sprintf prototype
- 6/24
+ 1/31
----
execute_cmd.c
- - add missing initializers for sh_coproc to eliminate a compiler
- warning. Patch from Werner Fink <werner@suse.de>
+ - execute_simple_command: only posix-mode shells should exit on an
+ assignment failure in the temporary environment preceding a special
+ builtin. This is what the documentation and code comments have
+ always said
+ - execute_simple_command: make sure redirection errors, word expansion
+ errors, and assignment errors to Posix special builtins cause a
+ non-interactive posix mode shell to exit. Previously the shell
+ would not exit if the failed special builtin was on the LHS of ||
+ or &&
- 6/27
- ----
-parse.y
- - add `TIMEIGN' token to handle `time -p -- ...'. Pointed out by
- Laszlo Ersek <lacos@caesar.elte.hu> on austin-group list
+pathexp.c
+ - quote_string_for_globbing: when quoting a regular expression
+ (QGLOB_REGEXP), allow an unquoted backslash to pass through
+ unaltered. Don't use it as a quote character or quote it. More
+ investigation from 1/24 and report by Mike Frysinger
+ <vapier@gentoo.org>
+ - quote_string_for_globbing: when quoting a regular expression
+ (QGLOB_REGEXP), turn CTLESC CTLESC into CTLESC without adding a
+ backslash to quote it. We should not have to quote it because it is
+ not a character special to EREs. More investigation from 1/24
- 6/28
- ----
-jobs.c
- - treat a shell with (subshell_environment&SUBSHELL_PIPE) != 0 like
- a command substitution in wait_for and act like we received a
- SIGINT if a job we're waiting for dies of SIGINT. Fixes bug
- reported by Ilya Basin <basinilya@gmail.com>
+lib/glob/glob.c
+ - glob_testdir: now takes a second flags argument (currently unused);
+ changed prototype and callers
- 7/2
+ 2/1
---
-jobs.c
- - if fork() fails in make_child, try to reap some dead children before
- retrying
-
-execute_cmd.c
- - change execute_pipeline to run the last command of a non-asynchronous
- pipeline in the current shell environment if the `lastpipe' shell
- option is enabled and job control is not active. Code from
- Werner Fink <werner@suse.de>
-
-parse.y
- - Posix says (issue 267) that time is not recognized as a keyword
- if the next token begins with a `-'
-
-doc/{bash.1,bashref.texi}
- - changed the descriptions of BASH_SOURCE, BASH_LINENO, and FUNCNAME
- as proposed in Ubuntu bug 591677.
- - document new `lastpipe' shell option that runs last command of a
- pipeline in the current shell environment
- - document new posix-mode behavior with `time -p'
+lib/glob/glob.c
+ - glob_testdir: if flags argument includes GX_ALLDIRS (globstar), use
+ lstat so we skip symlinks when traversing the directory tree.
+ Originally reported by Chris Down <chris@chrisdown.name>
- 7/5
+ 2/2
---
-aclocal.m4
- - new autoconf test WEXITSTATUS_OFFSET, bit offset in status word
- returned by wait() of the process's exit status
-
-jobs.[ch]
- - change stop_pipeline to return the actual index of the job just
- created and added to the jobs table, instead of the current job
- - job_exit_status and job_exit_signal are now global functions, with
- extern declarations in jobs.h
- - append_process: new utility function for use by the lastpipe code,
- takes info, creates a PROCESS from them, and adds it to the end of
- the passed job id's pipeline. lastpipe code uses it to add a dummy
- process for the last command in the pipeline
- - freeze_jobs_list: new utility function so rest of shell can freeze
- the jobs list. Used by the lastpipe code
-
-execute_cmd.c
- - changes to lastpipe code to make `pipefail' option, $PIPESTATUS, and
- $? work correctly. Uses append_process and job_exit_status
-
- 7/10
- ----
-subst.c
- - when performing pattern substitution word expansions, a `&' in the
- replacement string is replaced by the text matched by the pattern.
- The `&' can be quoted with a backslash to inhibit the expansion.
- CURRENTLY DISABLED
-
- 7/13
- ----
-pcomplib.[ch]
- - new member for struct compspec: lcommand. for future use
-
- 7/15
- ----
-parse.y
- - fix problem in parse_comsub where extra space was added to here-doc
- delimiter if the first word in the comsub contained a `/'. Fixes
- bug reported by Alex Khesin <alexk@google.com>
-
- 7/20
- ----
-parse.y
- - change reserved_word_acceptable to return success if the last two
- tokens read were `function WORD'. Allows function definitions like
- function good [[ -x foo ]];. Fixes bug reported by Linda Walsh
- <bash@tlinx.org>
+lib/readline/undo.c
+ - rl_do_undo: make sure CUR is non-zero before dereferencing it to
+ check cur->data against rl_undo_list. Report and fix from
+ Andreas Schwab <schwab@linux-m68k.org>
doc/{bash.1,bashref.texi}
- - change function definition meta-syntax to make it clearer, rather
- than let the text note the optional portions
-
- 7/24
- ----
-bashhist.c
- - change bash_history_inhibit_expansion() to suppress history expansion
- for $! parameter expansion. Fixes debian bug #589745 submitted by
- Frank Heckenbach <f.heckenbach@fh-soft.de>
-
-lib/readline/terminal.c
- - change rl_resize_terminal to always fetch the new terminal size and
- only force the redisplay if _rl_echoing_p is non-zero. Fixes bug
- reported by Balazs Kezes <rlblaster@gmail.com>
-
- 7/25
- ----
-lib/readline/xfree.c
- - new file, contains definition of xfree moved from xmalloc.c
-
- 7/28
- ----
-variables.c
- - check suspect return values from bind_variable before trying to use
- the returned SHELL_VAR *. Changes to: initialize_shell_variables,
- bind_int_variable, FIND_OR_MAKE_VARIABLE. Fixes bug reported by
- Roman Rakus <rrakus@redhat.com>
-
- 7/31
- ----
-lib/readline/rltty.c
- - fix rl_prep_terminal and rl_deprep_terminal to use fileno(stdout)
- if rl_instream is NULL. Fixes bug reported by Otto Allmendinger
- otto.allmendinger@googlemail.com
+ - added slight clarifying language to the description of $*,
+ describing what happens when the expansion is not within double
+ quotes
- 8/2
+ 2/4
---
-lib/sh/casemod.c
- - if the passed string is NULL or empty, return it immediately. Fixes
- bug reported by Dennis Williamson <dennistwilliamson@gmail.com>
-
-subst.c
- - fix pat_subst to cope with the passed string being NULL
-
-arrayfunc.h
- - added flag values for array_value_internal and its callers; converted
- array_value_internal `allow_all' parameter into a general flags word
- - get_array_value now takes a flags value
- - changed array_value internal to use *indp as an index to use if the
- AV_USEIND flag is set, rather than recomputing it
-
-subst.c
- - get_var_and_type takes two new parameters: a flags word and an index
- that represents an already-computed index for an array reference
- (just indexed arrays so far). Index is used and passed to array_value
- if flags includes AV_USEIND
- - parameter_brace_expand_word takes a new argument: the already-
- computed index; returns W_ARRAYIND if word expanded is being used
- as an array index
- - changed parameter_brace_casemod, parameter_brace_patsub,
- parameter_brace_substring, parameter_brace_remove_pattern to take new
- flags and index arguments from parameter_brace_expand_word. They
- pass the new parameters along to get_var_and_type to use an
- already-computed array index if necessary. Fixes bug where array
- indexes are computed twice reported by Andrew Benton
- <b3nton@gmail.com>
-
-doc/bash.1,lib/readline/doc/{history.3,hsuser.texi}
- - modified description of history event designators to clarify that
- all non-absolute event designators are relative to the current
- position in the history list. Question raised by Frank
- Heckenbach <f.heckenbach@fh-soft.de> as debian bash bug 590012
+test.c
+ - unary_test: add code to -v case so that it interprets `bare' array
+ references (foo[1]) and returns true if that index has a value
- 8/5
+ 2/5
---
-subst.c
- - remove code that does not add a quoted null when the input string
- is partially quoted; subsequent word splitting may require it.
- Fixes bug reported by Eric Blake <eblake@redhat.com>
-
- 8/12
- ----
-lib/glob/gmisc.c
- - move match_pattern_wchar and match_pattern_char to new file in
- glob library
- - new functions: wmatchlen(pat, max) and umatchlen(pat, max), computes
- number of characters PAT will match. Returns the number of chars
- that will be matched or -1 if the match length is indeterminate
- (i.e., contains a `*')
-
-subst.c
- - use umatchlen/wmatchlen in match_upattern/match_wpattern to bound
- the number of match attempts in large strings to (usually) one,
- depending on match length. Fixes performance problems with
- pattern substitution in large strings noted by Yi Yan
- <yiyan97@hotmail.com>. Can be applied to remove_[uw]pattern also
-
- 8/13
- ----
-bashhist.c
- - in maybe_append_history, change check for history_lines_this_session
- so that we append the lines to the file if it's equal to the value
- returned by where_history(). This means that without this change,
- the history won't be appended if all the lines in the history list
- were added in the current session since the last time the history
- file was read or written. Fixes bug reported by Bruce Korb
- <bruce.korb@gmail.com>
-
-shell.h,parse.y
- - add prompt_string_pointer to the parser_state struct saved and
- restored by {save,restore}_parser_state. Fixes both bugs exposed
- by bash_completion and completion of open backquotes reported by
- Egmont Koblinger <egmont@gmail.com>
-
-subst.h
- - new flag for skip_to_delim: SD_EXTGLOB. Skip extended globbing
- patterns while looking for ending delimiter
-
-subst.c
- - when passed the SD_EXTGLOB flag, skip_to_delim skips over extended
- globbing patterns (when extended_glob is set) while looking for a
- character in the delimiter set
-
-pathexp.c
- - split_ignorespec: new function to replace calls to extract_colon_unit
- in setup_ignore_patterns. uses skip_to_delim with the SD_EXTGLOB
- flag to skip over extended globbing patterns in variables like
- HISTIGNORE and GLOBIGNORE. Fixes bug reported by Dimitar DIMITROV
- <mitkofr@yahoo.fr> and Greg Wooledge <wooledg@eeg.ccf.org>
-
- 8/28
- ----
-lib/readline/rlprivate.h
- - add members to search_cxt to save _rl_keymap
- - new flag for isearch context: SF_CHGKMAP, set if we changed the
- keymap while reading a character for the search string that
- translated to a command
-
-lib/readline/isearch.c
- - save current readline keymap in cxt->keymap and cxt->okeymap
- in _rl_scxt_alloc
- - in _rl_isearch_dispatch, only check for cxt->lastc as a member of
- cxt->search_terminators if it's > 0 (i.e., not an isearch opcode)
+trap.c
+ - restore_default_signal: fix SIGCHLD special case for SIG_TRAPPED flag
+ off but SIG_INPROGRESS mode set and handler IMPOSSIBLE_TRAP_HANDLER;
+ continue with resetting handler in this case. maybe_set_sigchld_trap
+ will check these things before resetting sigchld trap from
+ run_sigchld_trap. Fixes (apparently long-standing?) problem reported
+ by Alexandru Damian <alexandru.damian@intel.com>
- 9/3
+ 2/6
---
-support/signames.c
- - add Solaris SIGJVM1 and SIGJVM2. Update from Stefan Teleman
- <stefan.teleman@oracle.com>
-
-shell.c
- - instead of closing all fds 3-20 at shell startup, just set them to
- be close-on-exec. Report from Rainer Müller<raimue@macports.org>
-
-lib/readline/isearch.c
- - in _rl_isearch_dispatch, if the current character maps to ISKMAP,
- move to the indicated keymap (using cxt->keymap) and go on to
- read another character. Fixes problem reported by Davor
- Cubranic <cubranic@stat.ubc.ca>
- - in _rl_isearch_dispatch, after translating key to possible opcode,
- restore _rl_keymap from cxt->okeymap if necessary
- - in _rl_isearch_dispatch, use key sequences that map to default
- functions that ^G, ^W, and ^Y map to as equivalent to those chars
-
-lib/readline/complete.c
- - new variable, _rl_menu_complete_prefix_first, zero by default
- - change menu_complete to display common prefix (matches[0]) first
- before cycling through rest of match list if
- _rl_menu_complete_prefix_first is non-zero. Suggested by Sami
- Pietila <sami.pietila@gmail.com>
-
-lib/readline/bind.c
- - new bindable readline variable, "menu-complete-display-prefix",
- controls setting of _rl_menu_complete_prefix_first
-
-doc/{bash.1,bashref.texi},lib/readline/doc/{readline.3,rluser.texi}
- - added description of menu-complete-display-prefix bindable
- readline variable
-
- 9/17
- ----
-configure.in
- - remove AM_PATH_LISPDIR call since we don't use that bash debugger
- any more. Suggested by Mike Frysinger <vapier@gentoo.org>
-
- 10/6
- ----
-findcmd.c
- - change executable_file to set errno to EISDIR if the passed name
- is a directory
-
-builtins/exec.def
- - change exec_builtin to report appropriate error message if the
- file argument is a directory. Noted by Eric Blake <eblake@redhat.com>
- in a message to austin-group
-
-builtins/source.def
- - change source_builtin to make sure the shell exits if the file is
- not found when in a non-interactive shell running in posix mode
- and source_searches_cwd == 0 (as posix mode makes it by default).
- Pointed out in http://thread.gmane.org/gmane.comp.shells.dash/291/focus=392
- by Jilles Tjoelker <jilles@stack.nl>
-
-execute_cmd.c
- - set executing_command_builtin in execute_builtin if the builtin is
- command_builtin. Unwind-protected in execute_function_or_builtin
- (like executing_builtin variable). Available for rest of shell
-
-builtins/{source.def,evalfile.c}
- - make sure that non-interactive posix mode shells exit if the file
- argument to `.' is not found only if they are not being executed
- by the command builtin (executing_command_builtin == 0). This is
- how `command' can cancel effects of special builtin exit properties
- in the case of `dot file not found'
-
- 10/13
- -----
lib/sh/strtrans.c
- - pass \c through unchanged if not escaping for `echo -e' and they are
- the final two characters in the string
-
- 10/15
- -----
-subst.c
- - extract_dollar_brace_string: fix problem with single quotes
- in unquoted ${...} for Posix compliance
-
- 10/16
- -----
-builtins/exec.def
- - catch return value from shell_execve; don't print duplicate error
- message if return value is EX_NOTFOUND. Make sure exit status
- from exec is 127 if command is not found
-
-execute_cmd.c
- - fix typo (`saved_redirects' should be `saved redirects') in
- execute_function_or_builtin `command exec' case. Typo caused
- too much of the unwind-protect stack to be discarded
- - in same execute_function_or_builtin case, don't discard the
- `saved redirects' frame unconditionally; only discard it if
- saved_redirects is non-null in the `command exec' case. Fixes
- sh -c 'command exec; exit 1' hanging bug uncovered by FreeBSD
- sh test cases
-
- 10/18
- -----
-subst.c
- - when in posix mode, shell should not exit if a variable assignment
- error (e.g., assigning to readonly variable) occurs preceding a
- command that is not a special builtin. Fixes bug uncovered by
- FreeBSD sh test cases
- - when in posix mode, the ${!?} and ${!#} expansions are not indirect
- expansions, but posix word expansions involving the `!' variable
-
-parse.y
- - fix parse_comsub so that it does not skip backslash-newline when
- parsing a comment
-
- 10/19
- -----
-subst.c
- - fix parameter_brace_expand so that an attempt to use the % or #
- expansions on an unset variable with -u set will cause a non-
- interactive shell to abort. Posix change
- - fix parameter_brace_expand so that an attempt to use pattern
- substitution or case modification expansions on an unset variable
- with -u set will cause and unbound variable error and make a
- non-interactive shell abort
- - change parameter_brace_expand_length to return INTMAX_MIN if a
- positional parameter is unset and -u is set
- - if parameter_brace_expand_length returns INTMAX_MIN when -u is set,
- treat it as an unbound variable error and make a non-interactive
- shell abort. Posix change
- - change parameter_brace_expand_length to return INTMAX_MIN if an
- implicit reference to array[0] is made ${#array} and array[0] is
- not set when -u is set
-
- 10/20
- -----
-builtins/cd.def
- - Posix 2008 says that if no matching directories are found in $CDPATH,
- use the directory name passed as an operand and go on. Posix change
-
-doc/bashref.texi
- - change Posix mode section with latest additions and removals
-
- 11/4
- ----
-lib/readline/complete.c
- - fix rl_menu_complete and rl_old_menu_complete to keep incrementing
- match_list_index by match_list_size as long as it's < 0. Fixes
- bug reported by jeenuv@gmail.com
+ - ansic_quote: fixed a bug when copying a printable character that
+ consumes more than one byte; byte counter was not being incremented.
+ Bug report from jidanni@jidanni.org
-braces.c
- - make mkseq() take intmax_t arguments for sequence start and end
- and make sure it's passed intmax_t values. Fixes bug reported by
- Pete Gregory <pg@bushlitt.org>
-
-sig.c
- - if termsig_handler is called when terminate_immediately == 1,
- assume we're being called as a signal handler and set
- history_lines_this_session to 0 to inhibit history file being
- written on shell exit. Fixes long-standing bug most recently
- observed by Andreas Schwab <schwab@linux-m68k.org>
-
- 11/5
- ----
-redir.c
- - add_undo_close_redirect now returns int, 0 on success, non-zero on
- failure. Currently always succeeds
- - new macro REDIRECTION_ERROR to make do_redirection_internal return
- value of errno
- - change do_redirection_internal to call REDIRECTION_ERROR after
- saving file descriptor and make do_redirection_internal return error
- if add_undo_redirect or add_undo_close redirect fails. This makes
- failure to save a file descriptor a redirection error and the shell
- behaves appropriately. Fixes bug reported by Eric Blake
- <eblake@redhat.com>
+ 2/7
+ ---
+input.c
+ - getc_with_restart: if read(2) returns -1/EINTR and interrupt_state or
+ terminating_signal is set (which means QUIT; will longjmp out of this
+ function), make sure the local buffer variables are zeroed out to
+ avoid reading past the end of the buffer on the next call. Bug report
+ from Dan Jacobson <jidanni@jidanni.org>
+ 2/9
+ ---
bashline.c
- - modify bash_forward_shellword to correctly handle quoted strings,
- especially if point is in a quoted string when function is invoked.
- Fixes bug reported by Daniel Colascione <dan.colascione@gmail.com>
-
-configure.in
- - change version to 4.2-alpha
+ - command_word_completion_function: if a directory in $PATH contains
+ quote characters, we need to quote them before passing the candidate
+ path to rl_filename_completion_function, which performs dequoting on
+ the pathname it's passed. Fixes bug reported by Ilyushkin Nikita
+ <ilyushkeane@gmail.com>
- 11/7
+ 2/11
----
-lib/readline/text.c
- - in rl_insert, if we're not in the multibyte code path, don't try to
- optimize and insert all of the available typeahead input if we're
- reading input from a macro. Fixes bug reported by Andre Majorel
- <aym-ung@teaser.fr>
-
-lib/readline/text.c
- - break out multibyte guts of rl_forward_char into a separate function
- _rl_forward_char_internal that does nothing but calculate the new
- value of point
- - change rl_forward_char to call _rl_forward_char_internal instead of
- having equivalent code inline
-
-lib/readline/rlprivate.h
- - new extern declaration for _rl_forward_char_internal
-
-lib/readline/vi_mode.c
- - change _rl_vi_append_forward to call _rl_forward_char_internal to
- set rl_point, instead of calling rl_forward_char. When at the end
- of the line, rl_forward_char will ring the bell. Fixes debian
- bash bug 601042, reported by Alan J. Greenberger <alanjg@ptd.net>
-
- 11/14
- -----
-subst.c
- - fix match_upattern to use correct test to immediately break out of
- loop (when potential match length is greater than number of chars
- remaining in the string) in MATCH_ANY case
-
- 11/15
- -----
-subst.c
- - include "typemax.h" to make sure we have a definition of INTMAX_MIN
-
- 11/16
- -----
-lib/sh/unicode.c
- - make sure `localconv' isn't declared on machines without iconv
- - add stub_charset for systems that don't have locale_charset: looks
- up LC_CTYPE, returns everything after last `.', "UTF-8" if the
- value is exactly "UTF-8", and "ASCII" otherwise
-
- 11/20
- -----
-lib/readline/vi_mode.c
- - in rl_domove_motion_callback, make sure to use m->key instead of
- key, which is not initialized and should not be used. Bug report
- from Andreas Schwab <schwab@linux-m68k.org>
- - in rl_vi_domove, make assignment to `m' explicit instead of
- relying on evaluation order semantics, since the C standard leaves
- them unspecified. Bug report from Andreas Schwab
- <schwab@linux-m68k.org>
-
- 11/21
- -----
-lib/sh/shquote.c
- - sh_single_quote and sh_double_quote now take a const char *
- argument. Fixes problem pointed out by Joachim Schmitz
- <jojo@schmitz-digital.de>
-
-externs.h
- - change extern declarations for sh_single_quote and sh_double_quote
-
-lib/sh/strchrnul.c
- - make sure that return value is cast to (char *) if we're using a
- part of the passed (const char *) argument. Fixes problem pointed
- out by Joachim Schmitz <jojo@schmitz-digital.de>
-
-lib/glob/gmisc.c
- - fix a typo that mixed up defines for LPAREN and RPAREN. Bug and
- fix from Andreas Schwab <schwab@linux-m68k.org>
- - use WLPAREN and WRPAREN in multibyte character environments
- - fixed typos using L'cc' in a non-wide-char environment
-
-lib/readline/complete.c
- - fix rl_filename_completion_function to dequote users_dirname if
- there is a filename dequoting function (as well as dirname), since
- users_dirname gets tacked back onto the beginning of the possible
- completions and then requoted. Bug reported by Andreas Schwab
- <schwab@linux-m68k.org>
-
- 11/22
- -----
-lib/readline/parens.c
- - the `blink-matching-paren' variable should default to off
-
- 11/23
- -----
-subst.h
- - add extern declaration for close_new_fifos()
-
-lib/sh/fnxform.c
- - fix curencoding to return the character past the `.', not a string
- beginning with `.'
-
-lib/sh/unicode.c
- - fix stub_charset to do the same cut-off at `@' as curencoding().
- These two functions should be combined
-
-builtins/printf.def
- - document new %(datefmt)T modifier in help text
-
- 11/24
- -----
parse.y
- - fix `W' case in decode_prompt_string: memmove was copying one too
- few bytes and missed the closing NUL. Bug report from Tim Mooney
- <Tim.Mooney@ndsu.edu>
+ - xparse_dolparen: save and restore shell_eof_token around call to
+ parse_string, intead of just leaving it set to ')'
+ - shell_getc: when -v is set, only print the command line when
+ shell_eof_token is 0, so we don't print it multiple times when
+ recursively entering the parser to parse $(...) commands. Fixes
+ bug reported by Greg Wooledge <wooledg@eeg.ccf.org>
- 11/26
- -----
-subst.c
- - in expand_word_internal, don't add quoted nulls to partially-
- quoted strings if the word will not be subjected to word splitting
- later (which will remove the quoted null). Fixes bug reported by
- Rocky Bernstein <rocky.bernstein@gmail.com>
+[changed release status to 4.3-release]
- 11/28
- -----
-subst.c
- - change multibyte case of match_pattern to revert to match_upattern
- if neither the pattern nor the string has any multibyte characters
-
-alias.c
- - fix tests of backslash-escaped characters in skipquotes, skipws,
- rd_token to check for backslash at EOS and not go past the end.
- Fixes debian bug 603696 reported by Tim Small <tim@buttersideup.com>
-
-include/shmbchar.h
- - new file, mbchar.h from gnulib minus the <stdbool.h> include
-
-lib/sh/shmbchar.c
- - new file, mbchar.c from gnulib with additions
- - moved mbstrlen from subst.c to here, changed initialization of mbs
- - change mbstrlen to use is_basic to avoid calls to mbrlen for ASCII
- chars; code hints from gnulib
- - don't copy mbs and mbsbak if we're not calling mbrlen
-
- 11/29
- -----
-lib/glob/smatch.c
- - change xstrmatch to use internal_strmatch() if the pattern and
- string don't have any multibyte characters
-
- 11/30
- -----
-include/shmbutil.h
- - change ADVANCE_CHAR and ADVANCE_CHAR_P macros to use is_basic and
- only call mbrlen and copy state and state_bak if is_basic returns
- false (non-ASCII). Called all over the place.
- - change rest of macros except BACKUP_CHAR and BACKUP_CHAR_P in the
- same way
-
- 12/2
+ 2/13
----
-subst.c
- - audit all calls to string_list and make sure caller can handle a
- NULL return value. Fixes bug reported by David Rochberg
- <rochberg@google.com>
-
-general.h
- - change sh_wassign_func_t to take an additional argument: an int
- flags word
-
-subst.c
- - change do_word_assignment to take an additional argument to match
- wassign_func_t; change callers
- - change call to (*assign_func) in expand_word_list_internal to match
- new wassign_func_t prototype
- - (*assign_func) passes 1 as additional arg if the simple command is
- a builtin or function, in which case the assignment to the
- temporary env should take effect
-
-variables.c
- - change assign_in_env to take an additional argument to match
- wassign_func_t; change callers
- - move call to sv_ifs from dispose_temporary_env to
- dispose_used_env_vars; we don't need to do it if called from
- merge_temporary_env
+lib/sh/strtrans.c
+ - ansic_quote: handle case where mbrtowc reports that the multibyte
+ sequence is incomplete or invalid. Fixes bug reported by
+ Eduardo A. Bustamante López <dualbus@gmail.com>
- 12/3
+ 2/14
----
variables.c
- - change dispose_temporary_env to maintain a list (tempvar_list) of
- variables that need to be handled specially. If a variable that
- gets freed by push_temp_var or propagate_temp_var is one of the
- variables that the shell handles specially (IFS, LANG, etc.), it's
- stored on the list. For each variable in this list,
- dispose_temp_var calls stupidly_hack_special_variables.
- - assign_in_env calls stupidly_hack_special_variables if flags arg
- is non-zero, so variable assignments affect current shell
- execution environment if a builtin or function is being executed.
- Fixes bug reported by Bruno Haible <bruno@clisp.org>
-
- 12/5
- ----
-subst.c
- - use mbsmbchar on both string and pattern in match_pattern instead
- of strlen and mbstrlen; only go through the strings once
-
- 12/6
- ----
-lib/readline/kill.c
- - in rl_yank_last_arg, only switch directions if the `count'
- argument is < 0, not < 1. This makes explicit count arguments of
- 0 work as expected. Fixes bug reported by Dennis Williamson
- <dennistwilliamson@gmail.com>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
- - fix documentation for yank-last-arg to make it clear how the count
- argument is set and how second and subsequent calls treat any
- numeric argument
-
-doc/{bash.1,bashref.texi}
- - slight changes to the description of test
- - change \(bv to `|'; it seems that many `internationalized' versions
- of groff don't render that as a vertical bar. Fixes Debian bug
- 603805
-
- 12/10
- -----
-configure.in
- - changed release status to 4.2-beta
-
-[bash-4.2-beta frozen]
-
- 12/18
- -----
-redir.c
- - change REDIRECTION_ERROR macro to accept a third argument: an
- additional file descriptor to close before returning and error (pass
- -1 to do nothing)
- - change calls to REDIRECTION_ERROR to close appropriate file
- descriptors. Fixes bug reported by Andreas Schwab
- <schwab@linux-m68k.org>
- - make sure to close any file descriptors opened for REDIR_VARASSIGN
- before returning an error
-
- 12/19
- -----
-expr.c
- - move processing of unary `-' and `+' to exp1 from exp0 to avoid
- precedence problems. Fixes bug reported by <12bric@gmail.com>
-
- 12/21
- -----
-lib/sh/unicode.c
- - fixed reversed arguments to wctomb. Reported by Andreas Schwab
- <schwab@linux-m68k.org>
+ - find_variable_nameref_context: fix a problem that caused the loop
+ to go one context too close to the global context. In some cases,
+ simple variable assignment would set a variable in the global
+ context instead of a local context. Bug report from
+ Geir Hauge <geir.hauge@gmail.com>
diff --git a/INSTALL b/INSTALL
index 16fa6851..ebe7ea1c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -47,8 +47,8 @@ out how `configure' could check whether or not to do them, and mail
diffs or instructions to <bash-maintainers@gnu.org> so they can be
considered for the next release.
-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
+The file `configure.ac' is used to create `configure' by a program
+called Autoconf. You only need `configure.ac' if you want to change it
or regenerate `configure' using a newer version of Autoconf. If you do
this, make sure you are using Autoconf version 2.50 or newer.
@@ -252,9 +252,9 @@ The `minimal-config' option can be used to disable all of the following
options, but it is processed first, so individual options may be
enabled using `enable-FEATURE'.
-All of the following options except for `disabled-builtins' and
-`xpg-echo-default' are enabled by default, unless the operating system
-does not provide the necessary support.
+All of the following options except for `disabled-builtins',
+`directpand-default', and `xpg-echo-default' are enabled by default,
+unless the operating system does not provide the necessary support.
`--enable-alias'
Allow alias expansion and include the `alias' and `unalias'
@@ -308,6 +308,11 @@ does not provide the necessary support.
`--enable-debugger'
Include support for the bash debugger (distributed separately).
+`--enable-direxpand-default'
+ Cause the `direxpand' shell option (*note The Shopt Builtin::) to
+ be enabled by default when the shell starts. It is normally
+ disabled by default.
+
`--enable-directory-stack'
Include support for a `csh'-like directory stack and the `pushd',
`popd', and `dirs' builtins (*note The Directory Stack::).
@@ -330,6 +335,12 @@ does not provide the necessary support.
Set the default value of the EXTGLOB shell option described above
under *note The Shopt Builtin:: to be enabled.
+`--enable-glob-asciirange-default'
+ Set the default value of the GLOBASCIIRANGES shell option described
+ above under *note The Shopt Builtin:: to be enabled. This
+ controls the behavior of character ranges when used in pattern
+ matching bracket expressions.
+
`--enable-help-builtin'
Include the `help' builtin, which displays help on shell builtins
and variables (*note Bash Builtins::).
@@ -363,8 +374,8 @@ 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
- prompt string escape sequences.
+ strings. See *note Controlling the Prompt::, for a complete list
+ of prompt string escape sequences.
`--enable-readline'
Include support for command-line editing and history with the Bash
diff --git a/MANIFEST b/MANIFEST
index 11fd2757..55c8d1ca 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -10,14 +10,14 @@ builtins d
cross-build d
doc d
examples d
-examples/obashdb d
+#examples/obashdb d
examples/complete d
examples/functions d
examples/scripts d
-examples/scripts.v2 d
-examples/scripts.noah d
+#examples/scripts.v2 d
+#examples/scripts.noah d
examples/startup-files d
-examples/startup-files/apple d
+#examples/startup-files/apple d
examples/misc d
examples/loadables d
examples/loadables/perl d
@@ -33,6 +33,7 @@ lib/readline/examples d
lib/sh d
lib/termcap d
lib/tilde d
+m4 d
po d
support d
tests d
@@ -51,7 +52,7 @@ README f
RBASH f
AUTHORS f
Y2K f
-configure.in f
+configure.ac f
configure f 755
Makefile.in f
config-top.h f
@@ -169,6 +170,7 @@ builtins/exec.def f
builtins/exit.def f
builtins/fc.def f
builtins/fg_bg.def f
+builtins/gen-helpfiles.c f
builtins/getopt.c f
builtins/getopt.h f
builtins/getopts.def f
@@ -223,6 +225,7 @@ include/posixwait.h f
include/shmbchar.h f
include/shmbutil.h f
include/shtty.h f
+include/stat-time.h f
include/stdc.h f
include/systimes.h f
include/typemax.h f
@@ -338,6 +341,8 @@ lib/readline/mbutil.c f
lib/readline/misc.c f
lib/readline/nls.c f
lib/readline/shell.c f
+lib/readline/colors.c f
+lib/readline/parse-colors.c f
lib/readline/savestring.c f
lib/readline/tilde.c f
lib/readline/tilde.h f
@@ -361,6 +366,8 @@ lib/readline/posixstat.h f
lib/readline/ansi_stdlib.h f
lib/readline/rlstdc.h f
lib/readline/rlprivate.h f
+lib/readline/colors.h f
+lib/readline/parse-colors.h f
lib/readline/xmalloc.h f
lib/readline/doc/Makefile f
lib/readline/doc/version.texi f
@@ -378,6 +385,7 @@ lib/readline/examples/fileman.c f
lib/readline/examples/manexamp.c f
lib/readline/examples/histexamp.c f
lib/readline/examples/rltest.c f
+lib/readline/examples/rl-callbacktest.c f
lib/readline/examples/rl.c f
lib/readline/examples/rlcat.c f
lib/readline/examples/Inputrc f
@@ -420,6 +428,7 @@ lib/sh/spell.c f
lib/sh/strcasecmp.c f
lib/sh/strcasestr.c f
lib/sh/strchrnul.c f
+lib/sh/strdup.c f
lib/sh/strerror.c f
lib/sh/strftime.c f
lib/sh/stringlist.c f
@@ -443,6 +452,7 @@ lib/sh/ufuncs.c f
lib/sh/unicode.c f
lib/sh/vprint.c f
lib/sh/wcsdup.c f
+lib/sh/wcsnwidth.c f
lib/sh/wcswidth.c f
lib/sh/winsize.c f
lib/sh/zcatfd.c f
@@ -461,6 +471,8 @@ lib/tilde/Makefile.in f
lib/tilde/tilde.c f
lib/tilde/tilde.h f
lib/tilde/shell.c f
+m4/stat-time.m4 f
+m4/timespec.m4 f
po/LINGUAS f
po/Makefile.in.in f
po/Makevars f
@@ -484,8 +496,12 @@ po/ca.gmo f
po/ca.po f
po/cs.gmo f
po/cs.po f
+po/da.gmo f
+po/da.po f
po/de.gmo f
po/de.po f
+po/el.gmo f
+po/el.po f
po/eo.gmo f
po/eo.po f
po/es.gmo f
@@ -498,10 +514,16 @@ po/fr.gmo f
po/fr.po f
po/ga.gmo f
po/ga.po f
+po/gl.gmo f
+po/gl.po f
+po/hr.gmo f
+po/hr.po f
po/hu.gmo f
po/hu.po f
po/id.gmo f
po/id.po f
+po/it.gmo f
+po/it.po f
po/ja.gmo f
po/ja.po f
po/lt.gmo f
@@ -518,6 +540,10 @@ po/ru.gmo f
po/ru.po f
po/sk.gmo f
po/sk.po f
+po/sl.gmo f
+po/sr.po f
+po/sr.gmo f
+po/sl.po f
po/sv.gmo f
po/sv.po f
po/tr.gmo f
@@ -543,7 +569,6 @@ CWRU/PLATFORMS f
CWRU/README f
CWRU/changelog f
CWRU/sh-redir-hack f
-CWRU/mh-folder-comp f
doc/FAQ f
doc/Makefile.in f
doc/bash.1 f
@@ -561,6 +586,28 @@ doc/htmlpost.sh f 755
doc/infopost.sh f 755
doc/fdl.texi f
doc/fdl.txt f
+#
+doc/article.ps f
+doc/rose94.ps f
+doc/bash.ps f
+doc/bashbug.ps f
+doc/builtins.ps f
+doc/rbash.ps f
+doc/bashref.ps f
+doc/bashref.dvi f
+doc/bash.0 f
+doc/bashbug.0 f
+doc/builtins.0 f
+doc/rbash.0 f
+doc/article.txt f
+doc/bash.html f
+doc/bashref.html f
+doc/article.pdf f
+doc/bash.pdf f
+doc/bashref.pdf f
+doc/rose94.pdf f
+doc/aosa-bash.pdf f
+#
support/Makefile.in f
support/bashversion.c f
support/checkbashisms f 755
@@ -593,16 +640,17 @@ support/shobj-conf f 755
support/rlvers.sh f 755
examples/INDEX.txt f
examples/INDEX.html f
-examples/obashdb/PERMISSION f
-examples/obashdb/README f
-examples/obashdb/bashdb f
-examples/obashdb/bashdb.el f
+#examples/obashdb/PERMISSION f
+#examples/obashdb/README f
+#examples/obashdb/bashdb f
+#examples/obashdb/bashdb.el f
examples/complete/bash_completion f
+examples/complete/cdfunc f
examples/complete/complete-examples f
-examples/complete/complete.ianmac f
-examples/complete/complete2.ianmac f
-examples/complete/complete.freebsd f
-examples/complete/complete.gnu-longopt f
+#examples/complete/complete.ianmac f
+#examples/complete/complete2.ianmac f
+#examples/complete/complete.freebsd f
+#examples/complete/complete.gnu-longopt f
examples/complete/bashcc-1.0.1.tar.gz f
examples/loadables/README f
examples/loadables/template.c f
@@ -614,11 +662,11 @@ examples/loadables/realpath.c f
examples/loadables/sleep.c f
examples/loadables/strftime.c f
examples/loadables/truefalse.c f
-examples/loadables/getconf.h f
-examples/loadables/getconf.c f
+#examples/loadables/getconf.h f
+#examples/loadables/getconf.c f
examples/loadables/finfo.c f
examples/loadables/cat.c f
-examples/loadables/cut.c f
+#examples/loadables/cut.c f
examples/loadables/logname.c f
examples/loadables/basename.c f
examples/loadables/dirname.c f
@@ -641,87 +689,91 @@ examples/loadables/perl/Makefile.in f
examples/loadables/perl/README f
examples/loadables/perl/bperl.c f
examples/loadables/perl/iperl.c f
+#examples/loadables/sprintf.c f
+#examples/loadables/xtitle.c f
examples/functions/array-stuff f
examples/functions/array-to-string f
examples/functions/autoload f
examples/functions/autoload.v2 f
examples/functions/autoload.v3 f
examples/functions/basename f
-examples/functions/basename2 f
-examples/functions/coproc.bash f
-examples/functions/coshell.README f
-examples/functions/coshell.bash f
+#examples/functions/basename2 f
+#examples/functions/coproc.bash f
+#examples/functions/coshell.README f
+#examples/functions/coshell.bash f
examples/functions/csh-compat f
-examples/functions/dirfuncs f
+#examples/functions/dirfuncs f
examples/functions/dirname f
-examples/functions/emptydir f
+#examples/functions/emptydir f
examples/functions/exitstat f
examples/functions/external f
examples/functions/fact f
examples/functions/fstty f
examples/functions/func f
-examples/functions/gethtml f
-examples/functions/getoptx.bash f
+#examples/functions/gethtml f
+#examples/functions/getoptx.bash f
examples/functions/inetaddr f
examples/functions/inpath f
-examples/functions/isnum.bash f
+#examples/functions/isnum.bash f
examples/functions/isnum2 f
examples/functions/isvalidip f
-examples/functions/jdate.bash f
-examples/functions/jj.bash f
-examples/functions/keep f
+#examples/functions/jdate.bash f
+#examples/functions/jj.bash f
+#examples/functions/keep f
examples/functions/ksh-cd f
examples/functions/ksh-compat-test f
examples/functions/kshenv f
examples/functions/login f
-examples/functions/lowercase f
-examples/functions/manpage f
-examples/functions/mhfold f
+#examples/functions/lowercase f
+#examples/functions/manpage f
+#examples/functions/mhfold f
+#examples/functions/newdirstack.bsh f
examples/functions/notify.bash f
-examples/functions/pathfuncs f
-examples/functions/recurse f
-examples/functions/repeat2 f
-examples/functions/repeat3 f
+#examples/functions/pathfuncs f
+#examples/functions/recurse f
+#examples/functions/repeat2 f
+#examples/functions/repeat3 f
examples/functions/seq f
examples/functions/seq2 f
examples/functions/shcat f
examples/functions/shcat2 f
examples/functions/sort-pos-params f
+#examples/functions/sqroot f
examples/functions/substr f
examples/functions/substr2 f
-examples/functions/term f
+#examples/functions/term f
examples/functions/whatis f
examples/functions/whence f
examples/functions/which f
-examples/functions/xalias.bash f
-examples/functions/xfind.bash f
-examples/scripts/adventure.sh f
-examples/scripts/bash-hexdump.sh f
-examples/scripts/bcsh.sh f
+#examples/functions/xalias.bash f
+#examples/functions/xfind.bash f
+#examples/scripts/adventure.sh f
+#examples/scripts/bash-hexdump.sh f
+#examples/scripts/bcsh.sh f
examples/scripts/cat.sh f
examples/scripts/center f
-examples/scripts/dd-ex.sh f
-examples/scripts/fixfiles.bash f
-examples/scripts/hanoi.bash f
+#examples/scripts/dd-ex.sh f
+#examples/scripts/fixfiles.bash f
+#examples/scripts/hanoi.bash f
examples/scripts/inpath f
-examples/scripts/krand.bash f
-examples/scripts/line-input.bash f
-examples/scripts/nohup.bash f
-examples/scripts/precedence f
-examples/scripts/randomcard.bash f
-examples/scripts/scrollbar f
-examples/scripts/scrollbar2 f
-examples/scripts/self-repro f
-examples/scripts/showperm.bash f
+#examples/scripts/krand.bash f
+#examples/scripts/line-input.bash f
+#examples/scripts/nohup.bash f
+#examples/scripts/precedence f
+#examples/scripts/randomcard.bash f
+#examples/scripts/scrollbar f
+#examples/scripts/scrollbar2 f
+#examples/scripts/self-repro f
+#examples/scripts/showperm.bash f
examples/scripts/shprompt f
examples/scripts/spin.bash f
-examples/scripts/timeout f
-examples/scripts/timeout2 f
-examples/scripts/timeout3 f
-examples/scripts/vtree2 f
-examples/scripts/vtree3 f
-examples/scripts/vtree3a f
-examples/scripts/websrv.sh 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
+#examples/scripts/websrv.sh f
examples/scripts/xterm_title f
examples/scripts/zprintf f
examples/startup-files/README f
@@ -730,14 +782,14 @@ examples/startup-files/Bash_aliases f
examples/startup-files/Bash_profile f
examples/startup-files/bash-profile f
examples/startup-files/bashrc f
-examples/startup-files/apple/README f
-examples/startup-files/apple/aliases f
-examples/startup-files/apple/bash.defaults f
-examples/startup-files/apple/environment f
-examples/startup-files/apple/login f
-examples/startup-files/apple/logout f
-examples/startup-files/apple/rc f
-examples/misc/suncmd.termcap f
+#examples/startup-files/apple/README f
+#examples/startup-files/apple/aliases f
+#examples/startup-files/apple/bash.defaults f
+#examples/startup-files/apple/environment f
+#examples/startup-files/apple/login f
+#examples/startup-files/apple/logout f
+#examples/startup-files/apple/rc f
+#examples/misc/suncmd.termcap f
examples/misc/aliasconv.sh f
examples/misc/aliasconv.bash f
examples/misc/cshtobash f
@@ -747,6 +799,8 @@ tests/alias.tests f
tests/alias1.sub f
tests/alias.right f
tests/appendop.tests f
+tests/appendop1.sub f
+tests/appendop2.sub f
tests/appendop.right f
tests/arith-for.tests f
tests/arith-for.right f
@@ -756,6 +810,8 @@ tests/arith1.sub f
tests/arith2.sub f
tests/arith3.sub f
tests/arith4.sub f
+tests/arith5.sub f
+tests/arith6.sub f
tests/array.tests f
tests/array.right f
tests/array1.sub f
@@ -768,6 +824,12 @@ tests/array7.sub f
tests/array8.sub f
tests/array9.sub f
tests/array10.sub f
+tests/array11.sub f
+tests/array12.sub f
+tests/array13.sub f
+tests/array14.sub f
+tests/array15.sub f
+tests/array16.sub f
tests/array-at-star f
tests/array2.right f
tests/assoc.tests f
@@ -778,6 +840,7 @@ tests/assoc3.sub f
tests/assoc4.sub f
tests/assoc5.sub f
tests/assoc6.sub f
+tests/assoc7.sub f
tests/braces.tests f
tests/braces.right f
tests/builtins.tests f
@@ -785,14 +848,17 @@ tests/builtins.right f
tests/builtins1.sub f
tests/builtins2.sub f
tests/builtins3.sub f
+tests/builtins4.sub f
tests/source1.sub f
tests/source2.sub f
tests/source3.sub f
tests/source4.sub f
tests/source5.sub f
tests/source6.sub f
+tests/source7.sub f
tests/case.tests f
tests/case.right f
+tests/case1.sub f
tests/casemod.tests f
tests/casemod.right f
tests/comsub.tests f
@@ -813,7 +879,9 @@ tests/comsub-posix2.sub f
tests/comsub-posix3.sub f
tests/cond.tests f
tests/cond.right f
-tests/cond-regexp.sub f
+tests/cond-regexp1.sub f
+tests/cond-regexp2.sub f
+tests/cond-regexp3.sub f
tests/coproc.tests f
tests/coproc.right f
tests/cprint.tests f
@@ -825,14 +893,20 @@ tests/dbg-support2.right f
tests/dbg-support2.tests f
tests/dbg-support3.sub f
tests/dollar-at-star f
+tests/dollar-at-star1.sub f
tests/dollar-at1.sub f
tests/dollar-at2.sub f
tests/dollar-at3.sub f
+tests/dollar-at4.sub f
+tests/dollar-at5.sub f
+tests/dollar-at6.sub f
tests/dollar-star1.sub f
tests/dollar-star2.sub f
tests/dollar-star3.sub f
tests/dollar-star4.sub f
tests/dollar-star5.sub f
+tests/dollar-star6.sub f
+tests/dollar-star7.sub f
tests/dollar.right f
tests/dstack.tests f
tests/dstack.right f
@@ -840,6 +914,9 @@ tests/dstack2.tests f
tests/dstack2.right f
tests/errors.tests f
tests/errors.right f
+tests/errors1.sub f
+tests/errors2.sub f
+tests/errors3.sub f
tests/execscript f
tests/exec.right f
tests/exec1.sub f 755
@@ -857,9 +934,12 @@ tests/exp1.sub f
tests/exp2.sub f
tests/exp3.sub f
tests/exp4.sub f
+tests/exp5.sub f
+tests/exp6.sub f
tests/extglob.tests f
tests/extglob.right f
tests/extglob1.sub f
+tests/extglob1a.sub f
tests/extglob2.tests f
tests/extglob2.right f
tests/extglob3.tests f
@@ -885,9 +965,12 @@ tests/glob.right f
tests/globstar.tests f
tests/globstar.right f
tests/globstar1.sub f
+tests/globstar2.sub f
tests/heredoc.tests f
tests/heredoc.right f
tests/heredoc1.sub f
+tests/heredoc2.sub f
+tests/heredoc3.sub f
tests/herestr.tests f
tests/herestr.right f
tests/histexp.tests f
@@ -910,6 +993,7 @@ tests/intl2.sub f
tests/intl.right f
tests/iquote.tests f
tests/iquote.right f
+tests/iquote1.sub f
tests/invert.tests f
tests/invert.right f
tests/jobs.tests f
@@ -917,6 +1001,7 @@ tests/jobs1.sub f
tests/jobs2.sub f
tests/jobs3.sub f
tests/jobs4.sub f
+tests/jobs5.sub f
tests/jobs.right f
tests/lastpipe.right f
tests/lastpipe.tests f
@@ -927,6 +1012,16 @@ tests/mapfile.tests f
tests/mapfile1.sub f
tests/more-exp.tests f
tests/more-exp.right f
+tests/nameref.tests f
+tests/nameref1.sub f
+tests/nameref2.sub f
+tests/nameref3.sub f
+tests/nameref4.sub f
+tests/nameref5.sub f
+tests/nameref6.sub f
+tests/nameref7.sub f
+tests/nameref8.sub f
+tests/nameref.right f
tests/new-exp.tests f
tests/new-exp1.sub f
tests/new-exp2.sub f
@@ -936,10 +1031,12 @@ tests/new-exp5.sub f
tests/new-exp6.sub f
tests/new-exp7.sub f
tests/new-exp8.sub f
+tests/new-exp9.sub f
tests/new-exp.right f
tests/nquote.tests f
tests/nquote.right f
tests/nquote1.sub f
+tests/nquote2.sub f
tests/nquote1.tests f
tests/nquote1.right f
tests/nquote2.tests f
@@ -969,8 +1066,10 @@ tests/printf.right f
tests/printf1.sub f
tests/printf2.sub f
tests/printf3.sub f
+tests/printf4.sub f
tests/quote.tests f
tests/quote.right f
+tests/quote1.sub f
tests/read.tests f
tests/read.right f
tests/read1.sub f
@@ -993,8 +1092,10 @@ tests/redir6.sub f
tests/redir7.sub f
tests/redir8.sub f
tests/redir9.sub f
+tests/redir10.sub f
tests/rhs-exp.tests f
tests/rhs-exp.right f
+tests/rhs-exp1.sub f
tests/rsh.tests f
tests/rsh.right f
tests/run-all f
@@ -1044,6 +1145,7 @@ tests/run-jobs f
tests/run-lastpipe f
tests/run-mapfile f
tests/run-more-exp f
+tests/run-nameref f
tests/run-new-exp f
tests/run-nquote f
tests/run-nquote1 f
@@ -1077,6 +1179,8 @@ tests/run-vredir f
tests/set-e.tests f
tests/set-e1.sub f
tests/set-e2.sub f
+tests/set-e3.sub f
+tests/set-e3a.sub f
tests/set-e.right f
tests/set-x.tests f
tests/set-x1.sub f
@@ -1097,15 +1201,25 @@ tests/trap1.sub f 755
tests/trap2.sub f 755
tests/trap2a.sub f 755
tests/trap3.sub f
+tests/trap4.sub f
+tests/trap5.sub f
tests/type.tests f
tests/type.right f
tests/type1.sub f
tests/type2.sub f
tests/type3.sub f
+tests/type4.sub f
+tests/unicode1.sub f
+tests/unicode2.sub f
+tests/unicode3.sub f
tests/varenv.right f
tests/varenv.sh f
tests/varenv1.sub f
tests/varenv2.sub f
+tests/varenv3.sub f
+tests/varenv4.sub f
+tests/varenv5.sub f
+tests/varenv6.sub f
tests/version f
tests/version.mini f
tests/vredir.tests f
@@ -1129,45 +1243,45 @@ tests/misc/sigint-4.sh f
tests/misc/test-minus-e.1 f
tests/misc/test-minus-e.2 f
tests/misc/wait-bg.tests f
-examples/scripts.v2/PERMISSION f
-examples/scripts.v2/README f
-examples/scripts.v2/arc2tarz f
-examples/scripts.v2/bashrand f
-examples/scripts.v2/cal2day.bash f
-examples/scripts.v2/cdhist.bash f
-examples/scripts.v2/corename f
-examples/scripts.v2/fman f
-examples/scripts.v2/frcp f
-examples/scripts.v2/lowercase f
-examples/scripts.v2/ncp f
-examples/scripts.v2/newext f
-examples/scripts.v2/nmv f
-examples/scripts.v2/pages f
-examples/scripts.v2/pf f
-examples/scripts.v2/ren f
-examples/scripts.v2/rename f
-examples/scripts.v2/repeat f
-examples/scripts.v2/untar f
-examples/scripts.v2/uudec f
-examples/scripts.v2/uuenc f
-examples/scripts.v2/vtree f
-examples/scripts.v2/where f
-examples/scripts.v2/pmtop f
-examples/scripts.v2/shprof f
-examples/scripts.noah/PERMISSION f
-examples/scripts.noah/README f
-examples/scripts.noah/aref.bash f
-examples/scripts.noah/bash.sub.bash f
-examples/scripts.noah/bash_version.bash f
-examples/scripts.noah/meta.bash f
-examples/scripts.noah/mktmp.bash f
-examples/scripts.noah/number.bash f
-examples/scripts.noah/prompt.bash f
-examples/scripts.noah/remap_keys.bash f
-examples/scripts.noah/require.bash f
-examples/scripts.noah/send_mail.bash f
-examples/scripts.noah/shcat.bash f
-examples/scripts.noah/source.bash f
-examples/scripts.noah/string.bash f
-examples/scripts.noah/stty.bash f
-examples/scripts.noah/y_or_n_p.bash f
+#examples/scripts.v2/PERMISSION f
+#examples/scripts.v2/README f
+#examples/scripts.v2/arc2tarz f
+#examples/scripts.v2/bashrand f
+#examples/scripts.v2/cal2day.bash f
+#examples/scripts.v2/cdhist.bash f
+#examples/scripts.v2/corename f
+#examples/scripts.v2/fman f
+#examples/scripts.v2/frcp f
+#examples/scripts.v2/lowercase f
+#examples/scripts.v2/ncp f
+#examples/scripts.v2/newext f
+#examples/scripts.v2/nmv f
+#examples/scripts.v2/pages f
+#examples/scripts.v2/pf f
+#examples/scripts.v2/ren f
+#examples/scripts.v2/rename f
+#examples/scripts.v2/repeat f
+#examples/scripts.v2/untar f
+#examples/scripts.v2/uudec f
+#examples/scripts.v2/uuenc f
+#examples/scripts.v2/vtree f
+#examples/scripts.v2/where f
+#examples/scripts.v2/pmtop f
+#examples/scripts.v2/shprof f
+#examples/scripts.noah/PERMISSION f
+#examples/scripts.noah/README f
+#examples/scripts.noah/aref.bash f
+#examples/scripts.noah/bash.sub.bash f
+#examples/scripts.noah/bash_version.bash f
+#examples/scripts.noah/meta.bash f
+#examples/scripts.noah/mktmp.bash f
+#examples/scripts.noah/number.bash f
+#examples/scripts.noah/prompt.bash f
+#examples/scripts.noah/remap_keys.bash f
+#examples/scripts.noah/require.bash f
+#examples/scripts.noah/send_mail.bash f
+#examples/scripts.noah/shcat.bash f
+#examples/scripts.noah/source.bash f
+#examples/scripts.noah/string.bash f
+#examples/scripts.noah/stty.bash f
+#examples/scripts.noah/y_or_n_p.bash f
diff --git a/Makefile.in b/Makefile.in
index 9f9276d4..cf772286 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile for bash-4.2, version 4.4
+# Makefile for bash-4.3, version 4.11
#
-# Copyright (C) 1996-2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 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
@@ -26,6 +26,8 @@ PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+
# Include some boilerplate Gnu makefile definitions.
prefix = @prefix@
@@ -40,6 +42,8 @@ includedir = @includedir@
datadir = @datadir@
localedir = @localedir@
+docdir = @docdir@
+
mandir = @mandir@
manpfx = man
@@ -186,7 +190,8 @@ SH_ABSSRC = ${topdir}/${SH_LIBSRC}
SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
${SH_LIBSRC}/getenv.c ${SH_LIBSRC}/oslib.c \
${SH_LIBSRC}/setlinebuf.c ${SH_LIBSRC}/strchrnul.c \
- ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strerror.c \
+ ${SH_LIBSRC}/strcasecmp.c ${SH_LIBSRC}/strdup.c \
+ ${SH_LIBSRC}/strerror.c \
${SH_LIBSRC}/strtod.c ${SH_LIBSRC}/strtol.c \
${SH_LIBSRC}/strtoul.c ${SH_LIBSRC}/vprint.c \
${SH_LIBSRC}/itos.c ${SH_LIBSRC}/rename.c \
@@ -215,7 +220,8 @@ SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \
${SH_LIBSRC}/ufuncs.c ${SH_LIBSRC}/dprintf.c \
${SH_LIBSRC}/input_avail.c ${SH_LIBSRC}/mbscasecmp.c \
${SH_LIBSRC}/fnxform.c ${SH_LIBSRC}/unicode.c \
- ${SH_LIBSRC}/wcswidth.c ${SH_LIBSRC}/shmbchar.c
+ ${SH_LIBSRC}/wcswidth.c ${SH_LIBSRC}/wcsnwidth.c \
+ ${SH_LIBSRC}/shmbchar.c
SHLIB_LIB = -lsh
SHLIB_LIBNAME = libsh.a
@@ -244,6 +250,7 @@ READLINE_SOURCE = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \
$(RL_LIBSRC)/posixstat.h $(RL_LIBSRC)/tilde.h \
$(RL_LIBSRC)/rlstdc.h ${RL_LIBSRC}/xmalloc.h \
$(RL_LIBSRC)/rlshell.h ${RL_LIBSRC}/rlprivate.h \
+ $(RL_LIBSRC)/colors.h $(RL_LIBSRC)/parse-colors.h \
$(RL_LIBSRC)/funmap.c $(RL_LIBSRC)/emacs_keymap.c \
$(RL_LIBSRC)/search.c $(RL_LIBSRC)/vi_keymap.c \
$(RL_LIBSRC)/keymaps.c $(RL_LIBSRC)/parens.c \
@@ -257,6 +264,7 @@ READLINE_SOURCE = $(RL_LIBSRC)/rldefs.h $(RL_LIBSRC)/rlconf.h \
$(RL_LIBSRC)/terminal.c $(RL_LIBSRC)/nls.c \
$(RL_LIBSRC)/input.c $(RL_LIBSRC)/xmalloc.c \
$(RL_LIBSRC)/shell.c $(RL_LIBSRC)/savestring.c \
+ $(RL_LIBSRC)/colors.c $(RL_LIBSRC)/parse-colors.c \
$(RL_LIBSRC)/misc.c $(RL_LIBSRC)/mbutil.c $(RL_LIBSRC)/compat.c \
$(RL_LIBSRC)/histexpand.c $(RL_LIBSRC)/history.c \
$(RL_LIBSRC)/histsearch.c $(RL_LIBSRC)/histfile.c
@@ -274,7 +282,8 @@ READLINE_OBJ = $(RL_LIBDIR)/readline.o $(RL_LIBDIR)/funmap.o \
$(RL_LIBDIR)/shell.o $(RL_LIBDIR)/savestring.o \
$(RL_LIBDIR)/mbutil.o $(RL_LIBDIR)/compat.o \
$(RL_LIBDIR)/history.o $(RL_LIBDIR)/histexpand.o \
- $(RL_LIBDIR)/histsearch.o $(RL_LIBDIR)/histfile.o
+ $(RL_LIBDIR)/histsearch.o $(RL_LIBDIR)/histfile.o \
+ $(RL_LIBDIR)/colors.o $(RL_LIBDIR)/parse-colors.o
HIST_LIBSRC = $(LIBSRC)/readline
HIST_LIBDIR = @HIST_LIBDIR@
@@ -530,6 +539,10 @@ CREATED_MAKEFILES = Makefile builtins/Makefile doc/Makefile \
examples/loadables/perl/Makefile support/Makefile \
lib/intl/Makefile po/Makefile po/Makefile.in
+OTHER_DOCS = $(srcdir)/CHANGES $(srcdir)/COMPAT $(srcdir)/NEWS $(srcdir)/POSIX \
+ $(srcdir)/RBASH $(srcdir)/README
+OTHER_INSTALLED_DOCS = CHANGES COMPAT NEWS POSIX RBASH README
+
# Keep GNU Make from exporting the entire environment for small machines.
.NOEXPORT:
@@ -572,30 +585,34 @@ version.h: $(SOURCES) config.h Makefile patchlevel.h
&& mv newversion.h version.h
bashversion$(EXEEXT): patchlevel.h conftypes.h version.h buildversion.o $(SUPPORT_SRC)bashversion.c
- $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)bashversion.c buildversion.o ${LIBS_FOR_BUILD}
+ $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)bashversion.c buildversion.o ${LIBS_FOR_BUILD}
buildversion.o: version.h conftypes.h patchlevel.h $(srcdir)/version.c
$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -DBUILDTOOL -c -o $@ $(srcdir)/version.c
# old rules
GRAM_H = parser-built
-y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
+y.tab.o: y.tab.h y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
${GRAM_H}: y.tab.h
@-if test -f y.tab.h ; then \
cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
fi
-y.tab.c y.tab.h: parse.y
+
+y.tab.c: parse.y
# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
$(YACC) -d $(srcdir)/parse.y
touch parser-built
# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
-# experimental new rules - work with GNU make but not BSD (or OSF) make
-#y.tab.o: y.tab.c y.tab.h
-#y.tab.c y.tab.h: parse.y command.h ${BASHINCDIR}/stdc.h input.h
-# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
-# $(YACC) -d $(srcdir)/parse.y
-# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
+y.tab.h: y.tab.c
+ @true
+
+
+# Subdirs will often times want version.h, so they'll change back up to
+# the top level and try to create it. This causes parallel build issues
+# so just force top level sanity before we descend.
+$(LIBDEP): .build
+#$(LIBDEP): version.h
$(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
@echo making $@ in ${RL_LIBDIR}
@@ -648,11 +665,11 @@ mksignames.o: $(SUPPORT_SRC)mksignames.c
mksignames$(EXEEXT): mksignames.o buildsignames.o
$(RM) $@
- $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ mksignames.o buildsignames.o ${LIBS_FOR_BUILD}
+ $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ mksignames.o buildsignames.o ${LIBS_FOR_BUILD}
mksyntax$(EXEEXT): ${srcdir}/mksyntax.c config.h syntax.h ${BASHINCDIR}/chartypes.h
$(RM) $@
- ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} -o $@ ${srcdir}/mksyntax.c ${LIBS_FOR_BUILD}
+ ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD} -o $@ ${srcdir}/mksyntax.c ${LIBS_FOR_BUILD}
# make a list of signals for the local system -- this is done when we're
# *not* cross-compiling
@@ -668,8 +685,8 @@ syntax.c: mksyntax${EXEEXT} $(srcdir)/syntax.h
$(RM) $@
./mksyntax$(EXEEXT) -o $@
-$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h
- @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
+$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h $(DEFDIR)/builtext.h version.h
+ @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} targets ) || exit 1
# these require special rules to circumvent make builtin rules
${DEFDIR}/common.o: $(BUILTIN_SRCDIR)/common.c
@@ -710,7 +727,7 @@ pathnames.h: Makefile $(srcdir)/pathnames.h.in
@${RM} pathnames.tmp
# comment out for distribution
-$(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
+$(srcdir)/configure: $(srcdir)/configure.ac $(srcdir)/aclocal.m4 $(srcdir)/config.h.in
cd $(srcdir) && autoconf
# for chet
@@ -731,6 +748,7 @@ info dvi ps: force
force:
+# unused
TAGS: $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
etags $(SOURCES) $(BUILTIN_C_SRC) $(LIBRARY_SOURCE)
@@ -743,11 +761,13 @@ installdirs:
@${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(bindir)
@${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(man1dir)
@${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(infodir)
+ @${SHELL} $(SUPPORT_SRC)mkinstalldirs $(DESTDIR)$(docdir)
-( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ )
install: .made installdirs
$(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
$(INSTALL_SCRIPT) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+ $(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir)
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \
@@ -762,6 +782,7 @@ install-strip:
uninstall: .made
$(RM) $(DESTDIR)$(bindir)/$(Program) $(DESTDIR)$(bindir)/bashbug
+ -( cd $(DESTDIR)$(docdir) && ${RM} ${OTHER_INSTALLED_DOCS} )
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \
@@ -827,16 +848,16 @@ maybe-clean:
fi
recho$(EXEEXT): $(SUPPORT_SRC)recho.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c ${LIBS_FOR_BUILD}
+ @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)recho.c ${LIBS_FOR_BUILD}
zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD}
+ @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD}
printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c ${LIBS_FOR_BUILD}
+ @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_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}
+ @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(SUPPORT_SRC)xcase.c ${LIBS_FOR_BUILD}
test tests check: force $(Program) $(TESTS_SUPPORT)
@-test -d tests || mkdir tests
@@ -1014,6 +1035,7 @@ sig.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h array
sig.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h
sig.o: make_cmd.h subst.h sig.h pathnames.h externs.h
sig.o: jobs.h siglist.h trap.h $(DEFSRC)/common.h bashline.h bashhist.h
+sig.o: ${DEFDIR}/builtext.h
siglist.o: config.h bashtypes.h siglist.h trap.h
stringlib.o: bashtypes.h ${BASHINCDIR}/chartypes.h
stringlib.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h command.h ${BASHINCDIR}/stdc.h error.h
@@ -1056,6 +1078,7 @@ variables.o: flags.h execute_cmd.h mailcheck.h input.h $(DEFSRC)/common.h
variables.o: findcmd.h bashhist.h hashcmd.h pathexp.h
variables.o: pcomplete.h ${BASHINCDIR}/chartypes.h
variables.o: ${BASHINCDIR}/posixtime.h assoc.h
+variables.o: version.h $(DEFDIR)/builtext.h
version.o: conftypes.h patchlevel.h version.h
xmalloc.o: config.h bashtypes.h ${BASHINCDIR}/ansi_stdlib.h error.h
@@ -1120,6 +1143,7 @@ pcomplete.o: ${BASHINCDIR}/stdc.h hashlib.h pcomplete.h shell.h syntax.h
pcomplete.o: bashjmp.h command.h general.h xmalloc.h error.h variables.h arrayfunc.h conftypes.h quit.h
pcomplete.o: unwind_prot.h dispose_cmd.h make_cmd.h subst.h sig.h pathnames.h
pcomplete.o: externs.h ${BASHINCDIR}/maxpath.h execute_cmd.h
+pcomplete.o: ${DEFDIR}/builtext.h
# library support files
@@ -1139,6 +1163,7 @@ bashline.o: make_cmd.h subst.h sig.h pathnames.h externs.h
bashline.o: builtins.h bashhist.h bashline.h execute_cmd.h findcmd.h pathexp.h
bashline.o: $(DEFSRC)/common.h $(GLOB_LIBSRC)/glob.h alias.h
bashline.o: pcomplete.h ${BASHINCDIR}/chartypes.h input.h
+bashline.o: ${BASHINCDIR}/shmbutil.h ${BASHINCDIR}/shmbchar.h
bracecomp.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h
bracecomp.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h
bracecomp.o: command.h ${BASHINCDIR}/stdc.h error.h
@@ -1383,7 +1408,7 @@ builtins/shopt.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h
builtins/shopt.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h
builtins/shopt.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h unwind_prot.h variables.h arrayfunc.h conftypes.h ${BASHINCDIR}/maxpath.h
builtins/shopt.o: $(DEFSRC)/common.h $(DEFSRC)/bashgetopt.h pathnames.h
-builtins/shopt.o: bashhist.h
+builtins/shopt.o: bashhist.h bashline.h
builtins/source.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h
builtins/source.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h
builtins/source.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h
diff --git a/NEWS b/NEWS
index 028ba42a..0cc3c45e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,187 @@
+This is a terse description of the new features added to bash-4.3 since
+the release of bash-4.2. As always, the manual page (doc/bash.1) is
+the place to look for complete descriptions.
+
+1. New Features in Bash
+
+a. The `helptopic' completion action now maps to all the help topics, not just
+ the shell builtins.
+
+b. The `help' builtin no longer does prefix substring matching first, so
+ `help read' does not match `readonly', but will do it if exact string
+ matching fails.
+
+c. The shell can be compiled to not display a message about processes that
+ terminate due to SIGTERM.
+
+d. Non-interactive shells now react to the setting of checkwinsize and set
+ LINES and COLUMNS after a foreground job exits.
+
+e. There is a new shell option, `globasciiranges', which, when set to on,
+ forces globbing range comparisons to use character ordering as if they
+ were run in the C locale.
+
+f. There is a new shell option, `direxpand', which makes filename completion
+ expand variables in directory names in the way bash-4.1 did.
+
+g. In Posix mode, the `command' builtin does not change whether or not a
+ builtin it shadows is treated as an assignment builtin.
+
+h. The `return' and `exit' builtins accept negative exit status arguments.
+
+i. The word completion code checks whether or not a filename containing a
+ shell variable expands to a directory name and appends `/' to the word
+ as appropriate. The same code expands shell variables in command names
+ when performing command completion.
+
+j. In Posix mode, it is now an error to attempt to define a shell function
+ with the same name as a Posix special builtin.
+
+k. When compiled for strict Posix conformance, history expansion is disabled
+ by default.
+
+l. The history expansion character (!) does not cause history expansion when
+ followed by the closing quote in a double-quoted string.
+
+m. `complete' and its siblings compgen/compopt now takes a new `-o noquote'
+ option to inhibit quoting of the completions.
+
+n. Setting HISTSIZE to a value less than zero causes the history list to be
+ unlimited (setting it 0 zero disables the history list).
+
+o. Setting HISTFILESIZE to a value less than zero causes the history file size
+ to be unlimited (setting it to 0 causes the history file to be truncated
+ to zero size).
+
+p. The `read' builtin now skips NUL bytes in the input.
+
+q. There is a new `bind -X' option to print all key sequences bound to Unix
+ commands.
+
+r. When in Posix mode, `read' is interruptible by a trapped signal. After
+ running the trap handler, read returns 128+signal and throws away any
+ partially-read input.
+
+s. The command completion code skips whitespace and assignment statements
+ before looking for the command name word to be completed.
+
+t. The build process has a new mechanism for constructing separate help files
+ that better reflects the current set of compilation options.
+
+u. The -nt and -ot options to test now work with files with nanosecond
+ timestamp resolution.
+
+v. The shell saves the command history in any shell for which history is
+ enabled and HISTFILE is set, not just interactive shells.
+
+w. The shell has `nameref' variables and new -n(/+n) options to declare and
+ unset to use them, and a `test -R' option to test for them.
+
+x. The shell now allows assigning, referencing, and unsetting elements of
+ indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
+ count back from the last element of the array.
+
+y. The {x}<word redirection feature now allows words like {array[ind]} and
+ can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
+
+z. There is a new CHILD_MAX special shell variable; its value controls the
+ number of exited child statues the shell remembers.
+
+aa. There is a new configuration option (--enable-direxpand-default) that
+ causes the `direxpand' shell option to be enabled by default.
+
+bb. Bash does not do anything special to ensure that the file descriptor
+ assigned to X in {x}<foo remains open after the block containing it
+ completes.
+
+cc. The `wait' builtin has a new `-n' option to wait for the next child to
+ change status.
+
+dd. The `printf' %(...)T format specifier now uses the current time if no
+ argument is supplied.
+
+ee. There is a new variable, BASH_COMPAT, that controls the current shell
+ compatibility level.
+
+ff. The `popd' builtin now treats additional arguments as errors.
+
+gg. The brace expansion code now treats a failed sequence expansion as a
+ simple string and will continue to expand brace terms in the remainder
+ of the word.
+
+hh. Shells started to run process substitutions now run any trap set on EXIT.
+
+ii. The fc builtin now interprets -0 as the current command line.
+
+jj. Completing directory names containing shell variables now adds a trailing
+ slash if the expanded result is a directory.
+
+kk. `cd' has a new `-@' option to browse a file's extended attributes on
+ systems that support O_XATTR.
+
+ll. The test/[/[[ `-v variable' binary operator now understands array
+ references.
+
+2. New Features in Readline
+
+a. Readline is now more responsive to SIGHUP and other fatal signals when
+ reading input from the terminal or performing word completion but no
+ longer attempts to run any not-allowable functions from a signal handler
+ context.
+
+b. There are new bindable commands to search the history for the string of
+ characters between the beginning of the line and the point
+ (history-substring-search-forward, history-substring-search-backward)
+
+c. Readline allows quoted strings as the values of variables when setting
+ them with `set'. As a side effect, trailing spaces and tabs are ignored
+ when setting a string variable's value.
+
+d. The history library creates a backup of the history file when writing it
+ and restores the backup on a write error.
+
+e. New application-settable variable: rl_filename_stat_hook: a function called
+ with a filename before using it in a call to stat(2). Bash uses it to
+ expand shell variables so things like $HOME/Downloads have a slash
+ appended.
+
+f. New bindable function `print-last-kbd-macro', prints the most-recently-
+ defined keyboard macro in a reusable format.
+
+g. New user-settable variable `colored-stats', enables use of colored text
+ to denote file types when displaying possible completions (colored analog
+ of visible-stats).
+
+h. New user-settable variable `keyseq-timout', acts as an inter-character
+ timeout when reading input or incremental search strings.
+
+i. New application-callable function: rl_clear_history. Clears the history list
+ and frees all readline-associated private data.
+
+j. New user-settable variable, show-mode-in-prompt, adds a characters to the
+ beginning of the prompt indicating the current editing mode.
+
+k. New application-settable variable: rl_input_available_hook; function to be
+ called when readline detects there is data available on its input file
+ descriptor.
+
+l. Readline calls an application-set event hook (rl_event_hook) after it gets
+ a signal while reading input (read returns -1/EINTR but readline does not
+ handle the signal immediately) to allow the application to handle or
+ otherwise note it.
+
+m. If the user-settable variable `history-size' is set to a value less than
+ 0, the history list size is unlimited.
+
+n. New application-settable variable: rl_signal_event_hook; function that is
+ called when readline is reading terminal input and read(2) is interrupted
+ by a signal. Currently not called for SIGHUP or SIGTERM.
+
+o. rl_change_environment: new application-settable variable that controls
+ whether or not Readline modifies the environment (currently readline
+ modifies only LINES and COLUMNS).
+
+-------------------------------------------------------------------------------
This is a terse description of the new features added to bash-4.2 since
the release of bash-4.1. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
diff --git a/NOTES b/NOTES
index 4fe9e6ca..b6b06a43 100644
--- a/NOTES
+++ b/NOTES
@@ -6,7 +6,7 @@ Platform-Specific Configuration and Operation Notes
alpha running OSF/1, Linux, or NetBSD (malloc needs 8-byte alignment;
bash malloc has 8-byte alignment now, but I have no alphas to test on)
- next running NeXT/OS
+ next running NeXT/OS; machines running Openstep
all machines running SunOS YP code: SunOS4, SunOS5, HP/UX, if you
have problems with username completion or tilde expansion for
@@ -20,6 +20,7 @@ Platform-Specific Configuration and Operation Notes
sparc SVR4, SVR4.2 (ICL reference port)
DG/UX
Cray
+ Haiku OS
NetBSD/sparc (malloc needs 8-byte alignment; bash malloc has 8-byte
alignment now, but I have no NetBSD machines to test on)
diff --git a/POSIX b/POSIX
index 406676e5..fe830f0e 100644
--- a/POSIX
+++ b/POSIX
@@ -40,147 +40,164 @@ The following list is what's changed when `POSIX mode' is in effect:
8. Tilde expansion is only performed on assignments preceding a
command name, rather than on all assignment statements on the line.
- 9. The default history file is `~/.sh_history' (this is the default
+ 9. The `command' builtin does not prevent builtins that take
+ assignment statements as arguments from expanding them as
+ assignment statements; when not in POSIX mode, assignment builtins
+ lose their assignment statement expansion properties when preceded
+ by `command'.
+
+ 10. The default history file is `~/.sh_history' (this is the default
value of `$HISTFILE').
- 10. The output of `kill -l' prints all the signal names on a single
+ 11. The output of `kill -l' prints all the signal names on a single
line, separated by spaces, without the `SIG' prefix.
- 11. The `kill' builtin does not accept signal names with a `SIG'
+ 12. The `kill' builtin does not accept signal names with a `SIG'
prefix.
- 12. Non-interactive shells exit if FILENAME in `.' FILENAME is not
+ 13. Non-interactive shells exit if FILENAME in `.' FILENAME is not
found.
- 13. Non-interactive shells exit if a syntax error in an arithmetic
+ 14. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
- 14. Non-interactive shells exit if there is a syntax error in a script
+ 15. Non-interactive shells exit if there is a syntax error in a script
read with the `.' or `source' builtins, or in a string processed by
the `eval' builtin.
- 15. Redirection operators do not perform filename expansion on the word
+ 16. Redirection operators do not perform filename expansion on the word
in the redirection unless the shell is interactive.
- 16. Redirection operators do not perform word splitting on the word in
+ 17. Redirection operators do not perform word splitting on the word in
the redirection.
- 17. Function names must be valid shell `name's. That is, they may not
+ 18. Function names must be valid shell `name's. That is, they may not
contain characters other than letters, digits, and underscores, and
may not start with a digit. Declaring a function with an invalid
name causes a fatal syntax error in non-interactive shells.
- 18. POSIX special builtins are found before shell functions during
+ 19. Function names may not be the same as one of the POSIX special
+ builtins.
+
+ 20. POSIX special builtins are found before shell functions during
command lookup.
- 19. The `time' reserved word may be used by itself as a command. When
+ 21. The `time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The `TIMEFORMAT' variable controls the
format of the timing information.
- 20. When parsing and expanding a ${...} expansion that appears within
+ 22. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
- 21. The parser does not recognize `time' as a reserved word if the next
+ 23. The parser does not recognize `time' as a reserved word if the next
token begins with a `-'.
- 22. If a POSIX special builtin returns an error status, a
+ 24. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
- 23. A non-interactive shell exits with an error status if a variable
+ 25. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
- 24. A non-interactive shell exists with an error status if a variable
+ 26. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
special builtin, but not with any other simple command.
- 25. A non-interactive shell exits with an error status if the iteration
+ 27. A non-interactive shell exits with an error status if the iteration
variable in a `for' statement or the selection variable in a
`select' statement is a readonly variable.
- 26. Process substitution is not available.
+ 28. Process substitution is not available.
- 27. Assignment statements preceding POSIX special builtins persist in
+ 29. While variable indirection is available, it may not be applied to
+ the `#' and `?' special parameters.
+
+ 30. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
- 28. Assignment statements preceding shell function calls persist in the
+ 31. Assignment statements preceding shell function calls persist in the
shell environment after the function returns, as if a POSIX
special builtin command had been executed.
- 29. The `export' and `readonly' builtin commands display their output
+ 32. The `export' and `readonly' builtin commands display their output
in the format required by POSIX.
- 30. The `trap' builtin displays signal names without the leading `SIG'.
+ 33. The `trap' builtin displays signal names without the leading `SIG'.
- 31. The `trap' builtin doesn't check the first argument for a possible
+ 34. The `trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they
should use `-' as the first argument.
- 32. The `.' and `source' builtins do not search the current directory
+ 35. The `.' and `source' builtins do not search the current directory
for the filename argument if it is not found by searching `PATH'.
- 33. Subshells spawned to execute command substitutions inherit the
+ 36. Subshells spawned to execute command substitutions inherit the
value of the `-e' option from the parent shell. When not in POSIX
mode, Bash clears the `-e' option in such subshells.
- 34. Alias expansion is always enabled, even in non-interactive shells.
+ 37. Alias expansion is always enabled, even in non-interactive shells.
- 35. When the `alias' builtin displays alias definitions, it does not
+ 38. When the `alias' builtin displays alias definitions, it does not
display them with a leading `alias ' unless the `-p' option is
supplied.
- 36. When the `set' builtin is invoked without options, it does not
+ 39. When the `set' builtin is invoked without options, it does not
display shell function names and definitions.
- 37. When the `set' builtin is invoked without options, it displays
+ 40. When the `set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
- 38. When the `cd' builtin is invoked in LOGICAL mode, and the pathname
+ 41. When the `cd' builtin is invoked in LOGICAL mode, and the pathname
constructed from `$PWD' and the directory name supplied as an
argument does not refer to an existing directory, `cd' will fail
instead of falling back to PHYSICAL mode.
- 39. The `pwd' builtin verifies that the value it prints is the same as
+ 42. The `pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the `-P' option.
- 40. When listing the history, the `fc' builtin does not include an
+ 43. When listing the history, the `fc' builtin does not include an
indication of whether or not a history entry has been modified.
- 41. The default editor used by `fc' is `ed'.
+ 44. The default editor used by `fc' is `ed'.
- 42. The `type' and `command' builtins will not report a non-executable
+ 45. The `type' and `command' builtins will not report a non-executable
file as having been found, though the shell will attempt to
execute such a file if it is the only so-named file found in
`$PATH'.
- 43. The `vi' editing mode will invoke the `vi' editor directly when
+ 46. The `vi' editing mode will invoke the `vi' editor directly when
the `v' command is run, instead of checking `$VISUAL' and
`$EDITOR'.
- 44. When the `xpg_echo' option is enabled, Bash does not attempt to
+ 47. 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.
- 45. The `ulimit' builtin uses a block size of 512 bytes for the `-c'
+ 48. The `ulimit' builtin uses a block size of 512 bytes for the `-c'
and `-f' options.
- 46. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not
+ 49. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not
interrupt the `wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
+ 50. The `read' builtin may be interrupted by a signal for which a trap
+ has been set. If Bash receives a trapped signal while executing
+ `read', the trap handler executes and `read' returns an exit
+ status greater than 128.
+
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 8d86c579..db097774 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
Introduction
============
-This is GNU Bash, version 4.2. Bash is the GNU Project's Bourne
+This is GNU Bash, version 4.3. Bash is the GNU Project's Bourne
Again SHell, a complete implementation of the POSIX shell spec,
but also with interactive command line editing, job control on
architectures that support it, csh-like features such as history
@@ -15,8 +15,8 @@ See the file POSIX for a discussion of how the Bash defaults differ
from the POSIX 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-4.0 and
-bash-4.1. For details, see the file COMPAT. The NEWS file tersely
+of Bash and previous widely-distributed versions, bash-4.1 and
+bash-4.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
@@ -79,6 +79,9 @@ please send mail to bug-bash@gnu.org with the following information:
The `bashbug' program includes much of this automatically.
+Questions and requests for help with bash and bash programming may be
+sent to the help-bash@gnu.org mailing list.
+
If you would like to contact the Bash maintainers directly, send mail
to bash-maintainers@gnu.org.
diff --git a/aclocal.m4 b/aclocal.m4
index 716a0436..a947272e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1698,7 +1698,6 @@ AC_CHECK_FUNC(mbscmp, AC_DEFINE(HAVE_MBSCMP))
AC_CHECK_FUNC(mbsnrtowcs, AC_DEFINE(HAVE_MBSNRTOWCS))
AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
-
AC_REPLACE_FUNCS(mbschr)
AC_CHECK_FUNC(wcrtomb, AC_DEFINE(HAVE_WCRTOMB))
@@ -1763,6 +1762,33 @@ if test $bash_cv_type_wint_t = yes; then
AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here])
fi
+dnl check for broken wcwidth
+AC_CACHE_CHECK([for wcwidth broken with unicode combining characters],
+bash_cv_wcwidth_broken,
+[AC_TRY_RUN([
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <locale.h>
+#include <wchar.h>
+
+main(c, v)
+int c;
+char **v;
+{
+ int w;
+
+ setlocale(LC_ALL, "en_US.UTF-8");
+ w = wcwidth (0x0301);
+ exit (w == 0); /* exit 0 if wcwidth broken */
+}
+],
+bash_cv_wcwidth_broken=yes, bash_cv_wcwdith_broken=no, bash_cv_wcwidth_broken=no)])
+if test "$bash_cv_wcwidth_broken" = yes; then
+ AC_DEFINE(WCWIDTH_BROKEN, 1, [wcwidth is usually not broken])
+fi
+
if test "$am_cv_func_iconv" = yes; then
OLDLIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
@@ -3098,7 +3124,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
found_so=
found_a=
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
found_dir="$additional_libdir"
found_so="$additional_libdir/lib$name.$shlibext"
if test -f "$additional_libdir/lib$name.la"; then
@@ -3120,7 +3146,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
found_dir="$dir"
found_so="$dir/lib$name.$shlibext"
if test -f "$dir/lib$name.la"; then
@@ -4123,7 +4149,7 @@ main()
AC_DEFUN(BASH_STRUCT_WEXITSTATUS_OFFSET,
[AC_MSG_CHECKING(for offset of exit status in return status from wait)
AC_CACHE_VAL(bash_cv_wexitstatus_offset,
-[AC_RUN_IFELSE([
+[AC_TRY_RUN([
#include <stdlib.h>
#include <unistd.h>
diff --git a/alias.c b/alias.c
index 6c953760..78392296 100644
--- a/alias.c
+++ b/alias.c
@@ -110,7 +110,7 @@ add_alias (name, value)
alias_t *temp;
int n;
- if (!aliases)
+ if (aliases == 0)
{
initialize_aliases ();
temp = (alias_t *)NULL;
diff --git a/array.c b/array.c
index 27fe1708..4359a52f 100644
--- a/array.c
+++ b/array.c
@@ -58,7 +58,11 @@ static char *array_to_string_internal __P((ARRAY_ELEMENT *, ARRAY_ELEMENT *, cha
static ARRAY *lastarray = 0;
static ARRAY_ELEMENT *lastref = 0;
-#define IS_LASTREF(a) ((a) == lastarray)
+#define IS_LASTREF(a) (lastarray && (a) == lastarray)
+
+#define LASTREF_START(a, i) \
+ (IS_LASTREF(a) && i >= element_index(lastref)) ? lastref \
+ : element_forw(a->head)
#define INVALIDATE_LASTREF(a) \
do { \
@@ -610,7 +614,7 @@ ARRAY *a;
arrayind_t i;
char *v;
{
- register ARRAY_ELEMENT *new, *ae;
+ register ARRAY_ELEMENT *new, *ae, *start;
if (a == 0)
return(-1);
@@ -627,10 +631,17 @@ char *v;
SET_LASTREF(a, new);
return(0);
}
+#if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT
/*
- * Otherwise we search for the spot to insert it.
+ * Otherwise we search for the spot to insert it. The lastref
+ * handle optimizes the case of sequential or almost-sequential
+ * assignments that are not at the end of the array.
*/
- for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae)) {
+ start = LASTREF_START(a, i);
+#else
+ start = element_forw(ae->head);
+#endif
+ for (ae = start; ae != a->head; ae = element_forw(ae)) {
if (element_index(ae) == i) {
/*
* Replacing an existing element.
@@ -647,6 +658,7 @@ char *v;
return(0);
}
}
+ array_dispose_element(new);
INVALIDATE_LASTREF(a);
return (-1); /* problem */
}
@@ -660,18 +672,28 @@ array_remove(a, i)
ARRAY *a;
arrayind_t i;
{
- register ARRAY_ELEMENT *ae;
+ register ARRAY_ELEMENT *ae, *start;
if (a == 0 || array_empty(a))
return((ARRAY_ELEMENT *) NULL);
- for (ae = element_forw(a->head); ae != a->head; ae = element_forw(ae))
+ start = LASTREF_START(a, i);
+ for (ae = start; ae != a->head; ae = element_forw(ae))
if (element_index(ae) == i) {
ae->next->prev = ae->prev;
ae->prev->next = ae->next;
a->num_elements--;
if (i == array_max_index(a))
a->max_index = element_index(ae->prev);
+#if 0
INVALIDATE_LASTREF(a);
+#else
+ if (ae->next != a->head)
+ SET_LASTREF(a, ae->next);
+ else if (ae->prev != a->head)
+ SET_LASTREF(a, ae->prev);
+ else
+ INVALIDATE_LASTREF(a);
+#endif
return(ae);
}
return((ARRAY_ELEMENT *) NULL);
@@ -685,18 +707,14 @@ array_reference(a, i)
ARRAY *a;
arrayind_t i;
{
- register ARRAY_ELEMENT *ae;
+ register ARRAY_ELEMENT *ae, *start;
if (a == 0 || array_empty(a))
return((char *) NULL);
if (i > array_max_index(a))
- return((char *)NULL);
- /* Keep roving pointer into array to optimize sequential access */
- if (lastref && IS_LASTREF(a))
- ae = (i >= element_index(lastref)) ? lastref : element_forw(a->head);
- else
- ae = element_forw(a->head);
- for ( ; ae != a->head; ae = element_forw(ae))
+ return((char *)NULL); /* Keep roving pointer into array to optimize sequential access */
+ start = LASTREF_START(a, i);
+ for (ae = start; ae != a->head; ae = element_forw(ae))
if (element_index(ae) == i) {
SET_LASTREF(a, ae);
return(element_value(ae));
diff --git a/arrayfunc.c b/arrayfunc.c
index 21eb4cd7..b82767e8 100644
--- a/arrayfunc.c
+++ b/arrayfunc.c
@@ -1,6 +1,6 @@
/* arrayfunc.c -- High-level array functions used by other parts of the shell. */
-/* Copyright (C) 2001-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -41,6 +41,7 @@ extern int last_command_exit_value;
extern int array_needs_making;
static SHELL_VAR *bind_array_var_internal __P((SHELL_VAR *, arrayind_t, char *, char *, int));
+static SHELL_VAR *assign_array_element_internal __P((SHELL_VAR *, char *, char *, char *, int, char *, int));
static char *quote_assign __P((const char *));
static void quote_array_assignment_chars __P((WORD_LIST *));
@@ -117,8 +118,8 @@ convert_var_to_assoc (var)
return var;
}
-static SHELL_VAR *
-bind_array_var_internal (entry, ind, key, value, flags)
+char *
+make_array_variable_value (entry, ind, key, value, flags)
SHELL_VAR *entry;
arrayind_t ind;
char *key;
@@ -155,6 +156,21 @@ bind_array_var_internal (entry, ind, key, value, flags)
else
newval = make_variable_value (entry, value, flags);
+ return newval;
+}
+
+static SHELL_VAR *
+bind_array_var_internal (entry, ind, key, value, flags)
+ SHELL_VAR *entry;
+ arrayind_t ind;
+ char *key;
+ char *value;
+ int flags;
+{
+ char *newval;
+
+ newval = make_array_variable_value (entry, ind, key, value, flags);
+
if (entry->assign_func)
(*entry->assign_func) (entry, newval, ind, key);
else if (assoc_p (entry))
@@ -182,7 +198,7 @@ bind_array_variable (name, ind, value, flags)
{
SHELL_VAR *entry;
- entry = var_lookup (name, shell_variables);
+ entry = find_shell_variable (name);
if (entry == (SHELL_VAR *) 0)
entry = make_new_array_variable (name);
@@ -237,8 +253,7 @@ assign_array_element (name, value, flags)
char *name, *value;
int flags;
{
- char *sub, *vname, *akey;
- arrayind_t ind;
+ char *sub, *vname;
int sublen;
SHELL_VAR *entry;
@@ -255,6 +270,24 @@ assign_array_element (name, value, flags)
}
entry = find_variable (vname);
+ entry = assign_array_element_internal (entry, name, vname, sub, sublen, value, flags);
+
+ free (vname);
+ return entry;
+}
+
+static SHELL_VAR *
+assign_array_element_internal (entry, name, vname, sub, sublen, value, flags)
+ SHELL_VAR *entry;
+ char *name; /* only used for error messages */
+ char *vname;
+ char *sub;
+ int sublen;
+ char *value;
+ int flags;
+{
+ char *akey;
+ arrayind_t ind;
if (entry && assoc_p (entry))
{
@@ -263,25 +296,26 @@ assign_array_element (name, value, flags)
sub[sublen-1] = ']';
if (akey == 0 || *akey == 0)
{
- free (vname);
err_badarraysub (name);
+ FREE (akey);
return ((SHELL_VAR *)NULL);
}
entry = bind_assoc_variable (entry, vname, akey, value, flags);
}
else
{
- ind = array_expand_index (sub, sublen);
+ ind = array_expand_index (entry, sub, sublen);
+ /* negative subscripts to indexed arrays count back from end */
+ if (entry && ind < 0)
+ ind = (array_p (entry) ? array_max_index (array_cell (entry)) : 0) + 1 + ind;
if (ind < 0)
{
- free (vname);
err_badarraysub (name);
return ((SHELL_VAR *)NULL);
}
entry = bind_array_variable (vname, ind, value, flags);
}
- free (vname);
return (entry);
}
@@ -299,6 +333,14 @@ find_or_make_array_variable (name, flags)
SHELL_VAR *var;
var = find_variable (name);
+ if (var == 0)
+ {
+ /* See if we have a nameref pointing to a variable that hasn't been
+ created yet. */
+ var = find_variable_last_nameref (name);
+ if (var && nameref_p (var))
+ var = (flags & 2) ? make_new_assoc_variable (nameref_cell (var)) : make_new_array_variable (nameref_cell (var));
+ }
if (var == 0)
var = (flags & 2) ? make_new_assoc_variable (name) : make_new_array_variable (name);
@@ -310,6 +352,7 @@ find_or_make_array_variable (name, flags)
}
else if ((flags & 2) && array_p (var))
{
+ last_command_exit_value = 1;
report_error (_("%s: cannot convert indexed to associative array"), name);
return ((SHELL_VAR *)NULL);
}
@@ -370,10 +413,13 @@ expand_compound_array_assignment (var, value, flags)
int flags;
{
WORD_LIST *list, *nlist;
+ WORD_LIST *hd, *tl, *t, *n;
char *val;
int ni;
- /* I don't believe this condition is ever true any more. */
+ /* This condition is true when invoked from the declare builtin with a
+ command like
+ declare -a d='([1]="" [2]="bdef" [5]="hello world" "test")' */
if (*value == '(') /*)*/
{
ni = 1;
@@ -390,8 +436,17 @@ expand_compound_array_assignment (var, value, flags)
(ksh93 seems to do this). */
list = parse_string_to_word_list (val, 1, "array assign");
+ if (var && assoc_p (var))
+ {
+ if (val != value)
+ free (val);
+ return list;
+ }
+
/* If we're using [subscript]=value, we need to quote each [ and ] to
- prevent unwanted filename expansion. */
+ prevent unwanted filename expansion. This doesn't need to be done
+ for associative array expansion, since that uses a different expansion
+ function (see assign_compound_array_list below). */
if (list)
quote_array_assignment_chars (list);
@@ -418,7 +473,7 @@ assign_compound_array_list (var, nlist, flags)
HASH_TABLE *h;
WORD_LIST *list;
char *w, *val, *nval;
- int len, iflags;
+ int len, iflags, free_val;
arrayind_t ind, last_ind;
char *akey;
@@ -448,7 +503,10 @@ assign_compound_array_list (var, nlist, flags)
/* We have a word of the form [ind]=value */
if ((list->word->flags & W_ASSIGNMENT) && w[0] == '[')
{
- len = skipsubscript (w, 0, (var && assoc_p (var) != 0));
+ /* Don't have to handle embedded quotes specially any more, since
+ associative array subscripts have not been expanded yet (see
+ above). */
+ len = skipsubscript (w, 0, 0);
/* XXX - changes for `+=' */
if (w[len] != ']' || (w[len+1] != '=' && (w[len+1] != '+' || w[len+2] != '=')))
@@ -476,6 +534,7 @@ assign_compound_array_list (var, nlist, flags)
if (ALL_ELEMENT_SUB (w[1]) && len == 2)
{
+ last_command_exit_value = 1;
if (assoc_p (var))
report_error (_("%s: invalid associative array key"), w);
else
@@ -485,7 +544,10 @@ assign_compound_array_list (var, nlist, flags)
if (array_p (var))
{
- ind = array_expand_index (w + 1, len);
+ ind = array_expand_index (var, w + 1, len);
+ /* negative subscripts to indexed arrays count back from end */
+ if (ind < 0)
+ ind = array_max_index (array_cell (var)) + 1 + ind;
if (ind < 0)
{
err_badarraysub (w);
@@ -496,10 +558,15 @@ assign_compound_array_list (var, nlist, flags)
}
else if (assoc_p (var))
{
- akey = substring (w, 1, len);
+ /* This is not performed above, see expand_compound_array_assignment */
+ w[len] = '\0'; /*[*/
+ akey = expand_assignment_string_to_string (w+1, 0);
+ w[len] = ']';
+ /* And we need to expand the value also, see below */
if (akey == 0 || *akey == 0)
{
err_badarraysub (w);
+ FREE (akey);
continue;
}
}
@@ -511,10 +578,11 @@ assign_compound_array_list (var, nlist, flags)
val = w + len + 3;
}
else
- val = w + len + 2;
+ val = w + len + 2;
}
else if (assoc_p (var))
{
+ last_command_exit_value = 1;
report_error (_("%s: %s: must use subscript when assigning associative array"), var->name, w);
continue;
}
@@ -524,10 +592,21 @@ assign_compound_array_list (var, nlist, flags)
val = w;
}
+ free_val = 0;
+ /* See above; we need to expand the value here */
+ if (assoc_p (var))
+ {
+ val = expand_assignment_string_to_string (val, 0);
+ free_val = 1;
+ }
+
if (integer_p (var))
this_command_name = (char *)NULL; /* no command name for errors */
bind_array_var_internal (var, ind, akey, val, iflags);
last_ind++;
+
+ if (free_val)
+ free (val);
}
}
@@ -611,12 +690,17 @@ quote_array_assignment_chars (list)
{
if (l->word == 0 || l->word->word == 0 || l->word->word[0] == '\0')
continue; /* should not happen, but just in case... */
- /* Don't bother if it doesn't look like [ind]=value */
+ /* Don't bother if it hasn't been recognized as an assignment or
+ doesn't look like [ind]=value */
+ if ((l->word->flags & W_ASSIGNMENT) == 0)
+ continue;
if (l->word->word[0] != '[' || mbschr (l->word->word, '=') == 0) /* ] */
continue;
+
nword = quote_assign (l->word->word);
free (l->word->word);
l->word->word = nword;
+ l->word->flags |= W_NOGLOB; /* XXX - W_NOSPLIT also? */
}
}
@@ -655,6 +739,7 @@ unbind_array_element (var, sub)
if (akey == 0 || *akey == 0)
{
builtin_error ("[%s]: %s", sub, _(bash_badsub_errmsg));
+ FREE (akey);
return -1;
}
assoc_remove (assoc_cell (var), akey);
@@ -662,7 +747,10 @@ unbind_array_element (var, sub)
}
else
{
- ind = array_expand_index (sub, len+1);
+ ind = array_expand_index (var, sub, len+1);
+ /* negative subscripts to indexed arrays count back from end */
+ if (ind < 0)
+ ind = array_max_index (array_cell (var)) + 1 + ind;
if (ind < 0)
{
builtin_error ("[%s]: %s", sub, _(bash_badsub_errmsg));
@@ -752,7 +840,8 @@ valid_array_reference (name)
/* Expand the array index beginning at S and extending LEN characters. */
arrayind_t
-array_expand_index (s, len)
+array_expand_index (var, s, len)
+ SHELL_VAR *var;
char *s;
int len;
{
@@ -840,7 +929,11 @@ array_variable_part (s, subp, lenp)
var = find_variable (t);
free (t);
+#if 0
return (var == 0 || invisible_p (var)) ? (SHELL_VAR *)0 : var;
+#else
+ return var; /* now return invisible variables; caller must handle */
+#endif
}
#define INDEX_ERROR() \
@@ -889,6 +982,7 @@ array_value_internal (s, quoted, flags, rtype, indp)
return ((char *)NULL); /* error message already printed */
/* [ */
+ akey = 0;
if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']')
{
if (rtype)
@@ -918,11 +1012,11 @@ array_value_internal (s, quoted, flags, rtype, indp)
if (t[0] == '*' && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
{
temp = string_list_dollar_star (l);
- retval = quote_string (temp);
+ retval = quote_string (temp); /* XXX - leak here */
free (temp);
}
else /* ${name[@]} or unquoted ${name[*]} */
- retval = string_list_dollar_at (l, quoted);
+ retval = string_list_dollar_at (l, quoted); /* XXX - leak here */
dispose_words (l);
}
@@ -934,7 +1028,7 @@ array_value_internal (s, quoted, flags, rtype, indp)
{
if ((flags & AV_USEIND) == 0 || indp == 0)
{
- ind = array_expand_index (t, len);
+ ind = array_expand_index (var, t, len);
if (ind < 0)
{
/* negative subscripts to indexed arrays count back from end */
@@ -955,11 +1049,17 @@ array_value_internal (s, quoted, flags, rtype, indp)
akey = expand_assignment_string_to_string (t, 0); /* [ */
t[len - 1] = ']';
if (akey == 0 || *akey == 0)
- INDEX_ERROR();
+ {
+ FREE (akey);
+ INDEX_ERROR();
+ }
}
if (var == 0 || value_cell (var) == 0) /* XXX - check invisible_p(var) ? */
- return ((char *)NULL);
+ {
+ FREE (akey);
+ return ((char *)NULL);
+ }
if (array_p (var) == 0 && assoc_p (var) == 0)
return (ind == 0 ? value_cell (var) : (char *)NULL);
else if (assoc_p (var))
diff --git a/arrayfunc.h b/arrayfunc.h
index 8363d16b..26f4879a 100644
--- a/arrayfunc.h
+++ b/arrayfunc.h
@@ -33,6 +33,8 @@
extern SHELL_VAR *convert_var_to_array __P((SHELL_VAR *));
extern SHELL_VAR *convert_var_to_assoc __P((SHELL_VAR *));
+extern char *make_array_variable_value __P((SHELL_VAR *, arrayind_t, char *, char *, int));
+
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));
@@ -54,7 +56,7 @@ extern int skipsubscript __P((const char *, int, 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 arrayind_t array_expand_index __P((SHELL_VAR *, char *, int));
extern int valid_array_reference __P((char *));
extern char *array_value __P((char *, int, int, int *, arrayind_t *));
extern char *get_array_value __P((char *, int, int *, arrayind_t *));
@@ -64,6 +66,12 @@ extern char *array_keys __P((char *, int));
extern char *array_variable_name __P((char *, char **, int *));
extern SHELL_VAR *array_variable_part __P((char *, char **, int *));
+#else
+
+#define AV_ALLOWALL 0
+#define AV_QUOTED 0
+#define AV_USEIND 0
+
#endif
#endif /* !_ARRAYFUNC_H_ */
diff --git a/assoc.c b/assoc.c
index 4561de42..f9ed8816 100644
--- a/assoc.c
+++ b/assoc.c
@@ -7,7 +7,7 @@
* chet@ins.cwru.edu
*/
-/* Copyright (C) 2008,2009 Free Software Foundation, Inc.
+/* Copyright (C) 2008,2009,2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -65,7 +65,7 @@ assoc_flush (hash)
{
hash_flush (hash, 0);
}
-
+
int
assoc_insert (hash, key, value)
HASH_TABLE *hash;
@@ -87,6 +87,29 @@ assoc_insert (hash, key, value)
return (0);
}
+/* Like assoc_insert, but returns b->data instead of freeing it */
+PTR_T
+assoc_replace (hash, key, value)
+ HASH_TABLE *hash;
+ char *key;
+ char *value;
+{
+ BUCKET_CONTENTS *b;
+ PTR_T t;
+
+ b = hash_search (key, hash, HASH_CREATE);
+ if (b == 0)
+ return (PTR_T)0;
+ /* If we are overwriting an existing element's value, we're not going to
+ use the key. Nothing in the array assignment code path frees the key
+ string, so we can free it here to avoid a memory leak. */
+ if (b->key != key)
+ free (key);
+ t = b->data;
+ b->data = value ? savestring (value) : (char *)0;
+ return t;
+}
+
void
assoc_remove (hash, string)
HASH_TABLE *hash;
@@ -510,7 +533,7 @@ assoc_to_string (h, sep, quoted)
return (savestring (""));
result = NULL;
- list = NULL;
+ l = 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 */
@@ -528,6 +551,8 @@ assoc_to_string (h, sep, quoted)
l = REVERSE_LIST(list, WORD_LIST *);
result = l ? string_list_internal (l, sep) : savestring ("");
+ dispose_words (l);
+
return result;
}
diff --git a/assoc.h b/assoc.h
index 1ec1f6b2..db8383b2 100644
--- a/assoc.h
+++ b/assoc.h
@@ -38,6 +38,7 @@ extern void assoc_dispose __P((HASH_TABLE *));
extern void assoc_flush __P((HASH_TABLE *));
extern int assoc_insert __P((HASH_TABLE *, char *, char *));
+extern PTR_T assoc_replace __P((HASH_TABLE *, char *, char *));
extern void assoc_remove __P((HASH_TABLE *, char *));
extern char *assoc_reference __P((HASH_TABLE *, char *));
diff --git a/bashhist.c b/bashhist.c
index 7240a5bd..d4c62e7b 100644
--- a/bashhist.c
+++ b/bashhist.c
@@ -1,6 +1,6 @@
/* bashhist.c -- bash interface to the GNU history library. */
-/* Copyright (C) 1993-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -24,7 +24,7 @@
#if defined (HAVE_UNISTD_H)
# ifdef _MINIX
-# include <sys/types.h>
+ # include <sys/types.h>
# endif
# include <unistd.h>
#endif
@@ -351,6 +351,7 @@ void
save_history ()
{
char *hf;
+ int r;
hf = get_string_value ("HISTFILE");
if (hf && *hf && file_exists (hf))
@@ -360,9 +361,9 @@ save_history ()
using_history ();
if (history_lines_this_session <= where_history () || force_append_history)
- append_history (history_lines_this_session, hf);
+ r = append_history (history_lines_this_session, hf);
else
- write_history (hf);
+ r = write_history (hf);
sv_histsize ("HISTFILESIZE");
}
}
@@ -648,8 +649,11 @@ hc_erasedups (line)
commenting out the rest of the command when the entire command is saved as
a single history entry (when COMMAND_ORIENTED_HISTORY is enabled). If
LITERAL_HISTORY is set, we're saving lines in the history with embedded
- newlines, so it's OK to save comment lines. We also make sure to save
- multiple-line quoted strings or other constructs. */
+ newlines, so it's OK to save comment lines. If we're collecting the body
+ of a here-document, we should act as if literal_history is enabled, because
+ we want to save the entire contents of the here-document as it was
+ entered. We also make sure to save multiple-line quoted strings or other
+ constructs. */
void
maybe_add_history (line)
char *line;
@@ -662,7 +666,7 @@ maybe_add_history (line)
if (current_command_line_count > 1)
{
if (current_command_first_line_saved &&
- (literal_history || dstack.delimiter_depth != 0 || shell_comment (line) == 0))
+ ((parser_state & PST_HEREDOC) || literal_history || dstack.delimiter_depth != 0 || shell_comment (line) == 0))
bash_add_history (line);
return;
}
@@ -735,7 +739,17 @@ bash_add_history (line)
add_it = 1;
if (command_oriented_history && current_command_line_count > 1)
{
- chars_to_add = literal_history ? "\n" : history_delimiting_chars (line);
+ /* The second and subsequent lines of a here document have the trailing
+ newline preserved. We don't want to add extra newlines here, but we
+ do want to add one after the first line (which is the command that
+ contains the here-doc specifier). parse.y:history_delimiting_chars()
+ does the right thing to take care of this for us. We don't want to
+ add extra newlines if the user chooses to enable literal_history,
+ so we have to duplicate some of what that function does here. */
+ if ((parser_state & PST_HEREDOC) && literal_history && current_command_line_count > 2 && line[strlen (line) - 1] == '\n')
+ chars_to_add = "";
+ else
+ chars_to_add = literal_history ? "\n" : history_delimiting_chars (line);
using_history ();
current = previous_history ();
diff --git a/bashline.c b/bashline.c
index 3cbb18fd..1f127644 100644
--- a/bashline.c
+++ b/bashline.c
@@ -1,6 +1,6 @@
/* bashline.c -- Bash's interface to the readline library. */
-/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -37,6 +37,8 @@
# include <netdb.h>
#endif
+#include <signal.h>
+
#include <stdio.h>
#include "chartypes.h"
#include "bashansi.h"
@@ -51,6 +53,7 @@
#include "findcmd.h"
#include "pathexp.h"
#include "shmbutil.h"
+#include "trap.h"
#include "builtins/common.h"
@@ -83,7 +86,11 @@ extern int bash_brace_completion __P((int, int));
#endif /* BRACE_COMPLETION */
/* To avoid including curses.h/term.h/termcap.h and that whole mess. */
+#ifdef _MINIX
+extern int tputs __P((const char *string, int nlines, void (*outx)(int)));
+#else
extern int tputs __P((const char *string, int nlines, int (*outx)(int)));
+#endif
/* Forward declarations */
@@ -114,15 +121,21 @@ static int bash_backward_kill_shellword __P((int, int));
/* Helper functions for Readline. */
static char *restore_tilde __P((char *, char *));
+static char *maybe_restore_tilde __P((char *, char *));
static char *bash_filename_rewrite_hook __P((char *, int));
+
static void bash_directory_expansion __P((char **));
+static int bash_filename_stat_hook __P((char **));
+static int bash_command_name_stat_hook __P((char **));
static int bash_directory_completion_hook __P((char **));
static int filename_completion_ignore __P((char **));
static int bash_push_line __P((void));
+static int executable_completion __P((const char *, int));
+
static rl_icppfunc_t *save_directory_hook __P((void));
-static void reset_directory_hook __P((rl_icppfunc_t *));
+static void restore_directory_hook __P((rl_icppfunc_t));
static void cleanup_expansion_error __P((void));
static void maybe_make_readline_line __P((char *));
@@ -151,9 +164,14 @@ static int return_zero __P((const char *));
static char *bash_dequote_filename __P((char *, int));
static char *quote_word_break_chars __P((char *));
+static void set_filename_bstab __P((const char *));
static char *bash_quote_filename __P((char *, int, char *));
+#ifdef _MINIX
+static void putx __P((int));
+#else
static int putx __P((int));
+#endif
static int bash_execute_unix_command __P((int, int));
static void init_unix_command_map __P((void));
static int isolate_sequence __P((char *, int, int, int *));
@@ -164,10 +182,12 @@ static int set_saved_history __P((void));
static int posix_edit_macros __P((int, int));
#endif
+static int bash_event_hook __P((void));
+
#if defined (PROGRAMMABLE_COMPLETION)
static int find_cmd_start __P((int));
static int find_cmd_end __P((int));
-static char *find_cmd_name __P((int));
+static char *find_cmd_name __P((int, int *, int *));
static char *prog_complete_return __P((const char *, int));
static char **prog_complete_matches;
@@ -247,8 +267,20 @@ int force_fignore = 1;
int dircomplete_spelling = 0;
/* Expand directory names during word/filename completion. */
+#if DIRCOMPLETE_EXPAND_DEFAULT
+int dircomplete_expand = 1;
+int dircomplete_expand_relpath = 1;
+#else
int dircomplete_expand = 0;
int dircomplete_expand_relpath = 0;
+#endif
+
+/* When non-zero, perform `normal' shell quoting on completed filenames
+ even when the completed name contains a directory name with a shell
+ variable referene, so dollar signs in a filename get quoted appropriately.
+ Set to zero to remove dollar sign (and braces or parens as needed) from
+ the set of characters that will be quoted. */
+int complete_fullquote = 1;
static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
@@ -256,6 +288,7 @@ static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
static char *custom_filename_quote_characters = 0;
+static char filename_bstab[256];
static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
@@ -515,6 +548,8 @@ initialize_readline ()
rl_filename_rewrite_hook = bash_filename_rewrite_hook;
+ rl_filename_stat_hook = bash_filename_stat_hook;
+
/* Tell the filename completer we want a chance to ignore some names. */
rl_ignore_some_completions_function = filename_completion_ignore;
@@ -540,6 +575,7 @@ initialize_readline ()
/* characters that need to be quoted when appearing in filenames. */
rl_filename_quote_characters = default_filename_quote_characters;
+ set_filename_bstab (rl_filename_quote_characters);
rl_filename_quoting_function = bash_quote_filename;
rl_filename_dequoting_function = bash_dequote_filename;
@@ -563,6 +599,18 @@ bashline_reinitialize ()
bash_readline_initialized = 0;
}
+void
+bashline_set_event_hook ()
+{
+ rl_signal_event_hook = bash_event_hook;
+}
+
+void
+bashline_reset_event_hook ()
+{
+ rl_signal_event_hook = 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
@@ -576,8 +624,12 @@ bashline_reset ()
rl_completion_entry_function = NULL;
rl_ignore_some_completions_function = filename_completion_ignore;
rl_filename_quote_characters = default_filename_quote_characters;
+ set_filename_bstab (rl_filename_quote_characters);
set_directory_hook ();
+ rl_filename_stat_hook = bash_filename_stat_hook;
+
+ bashline_reset_event_hook ();
}
/* Contains the line to push into readline. */
@@ -772,7 +824,7 @@ clear_hostname_list ()
}
/* Return a NULL terminated list of hostnames which begin with TEXT.
- Initialize the hostname list the first time if neccessary.
+ Initialize the hostname list the first time if necessary.
The array is malloc ()'ed, but not the individual strings. */
static char **
hostnames_matching (text)
@@ -823,12 +875,25 @@ hostnames_matching (text)
/* The equivalent of the Korn shell C-o operate-and-get-next-history-line
editing command. */
static int saved_history_line_to_use = -1;
+static int last_saved_history_line = -1;
+
+#define HISTORY_FULL() (history_is_stifled () && history_length >= history_max_entries)
static int
set_saved_history ()
{
+ /* XXX - compensate for assumption that history was `shuffled' if it was
+ actually not. */
+ if (HISTORY_FULL () &&
+ hist_last_line_added == 0 &&
+ saved_history_line_to_use < history_length - 1)
+ saved_history_line_to_use++;
+
if (saved_history_line_to_use >= 0)
- rl_get_previous_history (history_length - saved_history_line_to_use, 0);
+ {
+ rl_get_previous_history (history_length - saved_history_line_to_use, 0);
+ last_saved_history_line = saved_history_line_to_use;
+ }
saved_history_line_to_use = -1;
rl_startup_hook = old_rl_startup_hook;
return (0);
@@ -846,8 +911,7 @@ operate_and_get_next (count, c)
/* Find the current line, and find the next line to use. */
where = where_history ();
- if ((history_is_stifled () && (history_length >= history_max_entries)) ||
- (where >= history_length - 1))
+ if (HISTORY_FULL () || (where >= history_length - 1))
saved_history_line_to_use = where;
else
saved_history_line_to_use = where + 1;
@@ -895,7 +959,9 @@ edit_and_execute_command (count, c, editing_mode, edit_command)
/* This breaks down when using command-oriented history and are not
finished with the command, so we should not ignore the last command */
using_history ();
+ current_command_line_count++; /* for rl_newline above */
bash_add_history (rl_line_buffer);
+ current_command_line_count = 0; /* for dummy history entry */
bash_add_history ("");
history_lines_this_session++;
using_history ();
@@ -1192,7 +1258,11 @@ bash_backward_kill_shellword (count, key)
#define COMMAND_SEPARATORS ";|&{(`"
/* )} */
+#define COMMAND_SEPARATORS_PLUS_WS ";|&{(` \t"
+/* )} */
+/* check for redirections and other character combinations that are not
+ command separators */
static int
check_redir (ti)
int ti;
@@ -1207,8 +1277,19 @@ check_redir (ti)
if ((this_char == '&' && (prev_char == '<' || prev_char == '>')) ||
(this_char == '|' && prev_char == '>'))
return (1);
- else if ((this_char == '{' && prev_char == '$') || /* } */
- (char_is_quoted (rl_line_buffer, ti)))
+ else if (this_char == '{' && prev_char == '$') /*}*/
+ return (1);
+#if 0 /* Not yet */
+ else if (this_char == '(' && prev_char == '$') /*)*/
+ return (1);
+ else if (this_char == '(' && prev_char == '<') /*)*/
+ return (1);
+#if defined (EXTENDED_GLOB)
+ else if (extended_glob && this_char == '(' && prev_char == '!') /*)*/
+ return (1);
+#endif
+#endif
+ else if (char_is_quoted (rl_line_buffer, ti))
return (1);
return (0);
}
@@ -1226,7 +1307,10 @@ find_cmd_start (start)
register int s, os;
os = 0;
- while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP|SD_NOSKIPCMD)) <= start) &&
+ /* Flags == SD_NOJMP only because we want to skip over command substitutions
+ in assignment statements. Have to test whether this affects `standalone'
+ command substitutions as individual words. */
+ while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP/*|SD_NOSKIPCMD*/)) <= start) &&
rl_line_buffer[s])
os = s+1;
return os;
@@ -1243,8 +1327,9 @@ find_cmd_end (end)
}
static char *
-find_cmd_name (start)
+find_cmd_name (start, sp, ep)
int start;
+ int *sp, *ep;
{
char *name;
register int s, e;
@@ -1257,6 +1342,11 @@ find_cmd_name (start)
name = substring (rl_line_buffer, s, e);
+ if (sp)
+ *sp = s;
+ if (ep)
+ *ep = e;
+
return (name);
}
@@ -1286,13 +1376,18 @@ attempt_shell_completion (text, start, end)
{
int in_command_position, ti, saveti, qc, dflags;
char **matches, *command_separator_chars;
+#if defined (PROGRAMMABLE_COMPLETION)
+ int have_progcomps, was_assignment;
+#endif
command_separator_chars = COMMAND_SEPARATORS;
matches = (char **)NULL;
rl_ignore_some_completions_function = filename_completion_ignore;
rl_filename_quote_characters = default_filename_quote_characters;
+ set_filename_bstab (rl_filename_quote_characters);
set_directory_hook ();
+ rl_filename_stat_hook = bash_filename_stat_hook;
/* Determine if this could be a command word. It is if it appears at
the start of the line (ignoring preceding whitespace), or if it
@@ -1323,6 +1418,8 @@ attempt_shell_completion (text, start, end)
are prompting at the top level. */
if (current_prompt_string == ps1_prompt)
in_command_position++;
+ else if (parser_in_command_position ())
+ in_command_position++;
}
else if (member (rl_line_buffer[ti], command_separator_chars))
{
@@ -1356,11 +1453,11 @@ attempt_shell_completion (text, start, end)
#if defined (PROGRAMMABLE_COMPLETION)
/* Attempt programmable completion. */
+ have_progcomps = prog_completion_enabled && (progcomp_size () > 0);
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;
+ int s, e, s1, e1, os, foundcs;
char *n;
/* XXX - don't free the members */
@@ -1368,13 +1465,62 @@ attempt_shell_completion (text, start, end)
free (prog_complete_matches);
prog_complete_matches = (char **)NULL;
- s = find_cmd_start (start);
+ os = start;
+ n = 0;
+ s = find_cmd_start (os);
e = find_cmd_end (end);
- n = find_cmd_name (s);
- if (e == 0 && e == s && text[0] == '\0')
+ do
+ {
+ /* Skip over assignment statements preceding a command name. If we
+ don't find a command name at all, we can perform command name
+ completion. If we find a partial command name, we should perform
+ command name completion on it. */
+ FREE (n);
+ n = find_cmd_name (s, &s1, &e1);
+ s = e1 + 1;
+ }
+ while (was_assignment = assignment (n, 0));
+ s = s1; /* reset to index where name begins */
+
+ /* s == index of where command name begins (reset above)
+ e == end of current command, may be end of line
+ s1 = index of where command name begins
+ e1 == index of where command name ends
+ start == index of where word to be completed begins
+ end == index of where word to be completed ends
+ if (s == start) we are doing command word completion for sure
+ if (e1 == end) we are at the end of the command name and completing it */
+ if (start == 0 && end == 0 && e != 0 && text[0] == '\0') /* beginning of non-empty line */
+ foundcs = 0;
+ else if (start == end && start == s1 && e != 0 && e1 > end) /* beginning of command name, leading whitespace */
+ foundcs = 0;
+ else if (e == 0 && e == s && text[0] == '\0' && have_progcomps) /* beginning of empty line */
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 if (start == end && text[0] == '\0' && s1 > start && whitespace (rl_line_buffer[start]))
+ foundcs = 0; /* whitespace before command name */
+ else if (e > s && was_assignment == 0 && e1 == end && rl_line_buffer[e] == 0 && whitespace (rl_line_buffer[e-1]) == 0)
+ {
+ /* not assignment statement, but still want to perform command
+ completion if we are composing command word. */
+ foundcs = 0;
+ in_command_position = s == start && STREQ (n, text); /* XXX */
+ }
+ else if (e > s && was_assignment == 0 && have_progcomps)
+ {
+ prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
+ /* command completion if programmable completion fails */
+ in_command_position = s == start && STREQ (n, text); /* XXX */
+ }
+ else if (s >= e && n[0] == '\0' && text[0] == '\0' && start > 0)
+ {
+ foundcs = 0; /* empty command name following assignments */
+ in_command_position = was_assignment;
+ }
+ else if (s == start && e == end && STREQ (n, text) && start > 0)
+ {
+ foundcs = 0; /* partial command name following assignments */
+ in_command_position = 1;
+ }
else
foundcs = 0;
FREE (n);
@@ -1414,7 +1560,7 @@ bash_default_completion (text, start, end, qc, compflags)
const char *text;
int start, end, qc, compflags;
{
- char **matches;
+ char **matches, *t;
matches = (char **)NULL;
@@ -1424,7 +1570,19 @@ bash_default_completion (text, start, end, qc, compflags)
if (qc != '\'' && text[1] == '(') /* ) */
matches = rl_completion_matches (text, command_subst_completion_function);
else
- matches = rl_completion_matches (text, variable_completion_function);
+ {
+ matches = rl_completion_matches (text, variable_completion_function);
+ if (matches && matches[0] && matches[1] == 0)
+ {
+ t = savestring (matches[0]);
+ bash_filename_stat_hook (&t);
+ /* doesn't use test_for_directory because that performs tilde
+ expansion */
+ if (file_isdir (t))
+ rl_completion_append_character = '/';
+ free (t);
+ }
+ }
}
/* If the word starts in `~', and there is no slash in the word, then
@@ -1500,11 +1658,55 @@ bash_default_completion (text, start, end, qc, compflags)
strvec_dispose (matches);
matches = (char **)0;
}
+ else if (matches && matches[1] && rl_completion_type == '!')
+ {
+ rl_completion_suppress_append = 1;
+ rl_filename_completion_desired = 0;
+ }
}
return (matches);
}
+static int
+bash_command_name_stat_hook (name)
+ char **name;
+{
+ char *cname, *result;
+
+ /* If it's not something we're going to look up in $PATH, just call the
+ normal filename stat hook. */
+ if (absolute_program (*name))
+ return (bash_filename_stat_hook (name));
+
+ cname = *name;
+ /* XXX - we could do something here with converting aliases, builtins,
+ and functions into something that came out as executable, but we don't. */
+ result = search_for_command (cname, 0);
+ if (result)
+ {
+ *name = result;
+ return 1;
+ }
+ return 0;
+}
+
+static int
+executable_completion (filename, searching_path)
+ const char *filename;
+ int searching_path;
+{
+ char *f;
+ int r;
+
+ f = savestring (filename);
+ bash_directory_completion_hook (&f);
+
+ r = searching_path ? executable_file (f) : executable_or_directory (f);
+ free (f);
+ return r;
+}
+
/* This is the function to call when the word to complete is in a position
where a command word can be found. It grovels $PATH, looking for commands
that match. It also scans aliases, function names, and the shell_builtin
@@ -1518,6 +1720,7 @@ command_word_completion_function (hint_text, state)
static char *path = (char *)NULL;
static char *val = (char *)NULL;
static char *filename_hint = (char *)NULL;
+ static char *fnhint = (char *)NULL;
static char *dequoted_hint = (char *)NULL;
static char *directory_part = (char *)NULL;
static char **glob_matches = (char **)NULL;
@@ -1528,12 +1731,14 @@ command_word_completion_function (hint_text, state)
#if defined (ALIAS)
static alias_t **alias_list = (alias_t **)NULL;
#endif /* ALIAS */
- char *temp;
+ char *temp, *cval;
/* We have to map over the possibilities for command words. If we have
no state, then make one just for that purpose. */
if (state == 0)
{
+ rl_filename_stat_hook = bash_command_name_stat_hook;
+
if (dequoted_hint && dequoted_hint != hint)
free (dequoted_hint);
if (hint)
@@ -1595,7 +1800,7 @@ command_word_completion_function (hint_text, state)
if (filename_hint)
free (filename_hint);
- filename_hint = savestring (hint);
+ fnhint = filename_hint = savestring (hint);
istate = 0;
@@ -1606,7 +1811,7 @@ command_word_completion_function (hint_text, state)
}
else
{
- if (dircomplete_expand && dot_or_dotdot (filename_hint))
+ if (dircomplete_expand && path_dot_or_dotdot (filename_hint))
{
dircomplete_expand = 0;
set_directory_hook ();
@@ -1742,9 +1947,9 @@ globword:
{
if (executable_or_directory (val))
{
- if (*hint_text == '~')
+ if (*hint_text == '~' && directory_part)
{
- temp = restore_tilde (val, directory_part);
+ temp = maybe_restore_tilde (val, directory_part);
free (val);
val = temp;
}
@@ -1803,15 +2008,25 @@ globword:
if (current_path[0] == '.' && current_path[1] == '\0')
dot_in_path = 1;
+ if (fnhint && fnhint != filename_hint)
+ free (fnhint);
if (filename_hint)
free (filename_hint);
filename_hint = sh_makepath (current_path, hint, 0);
+ /* Need a quoted version (though it doesn't matter much in most
+ cases) because rl_filename_completion_function dequotes the
+ filename it gets, assuming that it's been quoted as part of
+ the input line buffer. */
+ if (strpbrk (filename_hint, "\"'\\"))
+ fnhint = sh_backslash_quote (filename_hint, filename_bstab, 0);
+ else
+ fnhint = filename_hint;
free (current_path); /* XXX */
}
inner:
- val = rl_filename_completion_function (filename_hint, istate);
+ val = rl_filename_completion_function (fnhint, istate);
if (mapping_over == 4 && dircomplete_expand)
set_directory_hook ();
@@ -1840,7 +2055,7 @@ globword:
/* If we performed tilde expansion, restore the original
filename. */
if (*hint_text == '~')
- temp = restore_tilde (val, directory_part);
+ temp = maybe_restore_tilde (val, directory_part);
else
temp = savestring (val);
freetemp = 1;
@@ -1863,19 +2078,38 @@ globword:
freetemp = match = 0;
}
-#if 0
- /* If we have found a match, and it is an executable file or a
- directory name, return it. */
- if (match && executable_or_directory (val))
-#else
/* If we have found a match, and it is an executable file, return it.
We don't return directory names when searching $PATH, since the
bash execution code won't find executables in directories which
appear in directories in $PATH when they're specified using
- relative pathnames. */
- if (match && (searching_path ? executable_file (val) : executable_or_directory (val)))
+ relative pathnames. */
+#if 0
+ /* If we're not searching $PATH and we have a relative pathname, we
+ need to re-canonicalize it before testing whether or not it's an
+ executable or a directory so the shell treats .. relative to $PWD
+ according to the physical/logical option. The shell already
+ canonicalizes the directory name in order to tell readline where
+ to look, so not doing it here will be inconsistent. */
+ /* XXX -- currently not used -- will introduce more inconsistency,
+ since shell does not canonicalize ../foo before passing it to
+ shell_execve(). */
+ if (match && searching_path == 0 && *val == '.')
+ {
+ char *t, *t1;
+
+ t = get_working_directory ("command-word-completion");
+ t1 = make_absolute (val, t);
+ free (t);
+ cval = sh_canonpath (t1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+ }
+ else
#endif
+ cval = val;
+
+ if (match && executable_completion ((searching_path ? val : cval), searching_path))
{
+ if (cval != val)
+ free (cval);
free (val);
val = ""; /* So it won't be NULL. */
return (temp);
@@ -1884,6 +2118,8 @@ globword:
{
if (freetemp)
free (temp);
+ if (cval != val)
+ free (cval);
free (val);
goto inner;
}
@@ -1952,7 +2188,7 @@ command_subst_completion_function (text, state)
rl_completion_suppress_append = 1;
}
- if (!matches || !matches[cmd_index])
+ if (matches == 0 || matches[cmd_index] == 0)
{
rl_filename_quoting_desired = 0; /* disable quoting */
return ((char *)NULL);
@@ -2676,6 +2912,20 @@ restore_tilde (val, directory_part)
return (ret);
}
+static char *
+maybe_restore_tilde (val, directory_part)
+ char *val, *directory_part;
+{
+ rl_icppfunc_t *save;
+ char *ret;
+
+ save = (dircomplete_expand == 0) ? save_directory_hook () : (rl_icppfunc_t *)0;
+ ret = restore_tilde (val, directory_part);
+ if (save)
+ restore_directory_hook (save);
+ 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. */
@@ -2687,8 +2937,11 @@ bash_directory_expansion (dirname)
d = savestring (*dirname);
- if (rl_directory_rewrite_hook)
- (*rl_directory_rewrite_hook) (&d);
+ if ((rl_directory_rewrite_hook) && (*rl_directory_rewrite_hook) (&d))
+ {
+ free (*dirname);
+ *dirname = d;
+ }
else if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&d))
{
free (*dirname);
@@ -2763,6 +3016,83 @@ restore_directory_hook (hookf)
rl_directory_rewrite_hook = hookf;
}
+/* Expand a filename before the readline completion code passes it to stat(2).
+ The filename will already have had tilde expansion performed. */
+static int
+bash_filename_stat_hook (dirname)
+ char **dirname;
+{
+ char *local_dirname, *new_dirname, *t;
+ int should_expand_dirname, return_value;
+ WORD_LIST *wl;
+ struct stat sb;
+
+ local_dirname = *dirname;
+ should_expand_dirname = return_value = 0;
+ if (t = mbschr (local_dirname, '$'))
+ should_expand_dirname = '$';
+ else if (t = mbschr (local_dirname, '`')) /* XXX */
+ should_expand_dirname = '`';
+
+#if defined (HAVE_LSTAT)
+ if (should_expand_dirname && lstat (local_dirname, &sb) == 0)
+#else
+ if (should_expand_dirname && stat (local_dirname, &sb) == 0)
+#endif
+ should_expand_dirname = 0;
+
+ if (should_expand_dirname)
+ {
+ new_dirname = savestring (local_dirname);
+ wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */
+ if (wl)
+ {
+ free (new_dirname);
+ new_dirname = string_list (wl);
+ /* Tell the completer we actually expanded something and change
+ *dirname only if we expanded to something non-null -- stat
+ behaves unpredictably when passed null or empty strings */
+ if (new_dirname && *new_dirname)
+ {
+ free (local_dirname); /* XXX */
+ local_dirname = *dirname = new_dirname;
+ return_value = STREQ (local_dirname, *dirname) == 0;
+ }
+ else
+ free (new_dirname);
+ dispose_words (wl);
+ }
+ else
+ free (new_dirname);
+ }
+
+ /* This is very similar to the code in bash_directory_completion_hook below,
+ but without spelling correction and not worrying about whether or not
+ we change relative pathnames. */
+ if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
+ {
+ char *temp1, *temp2;
+
+ t = get_working_directory ("symlink-hook");
+ temp1 = make_absolute (local_dirname, t);
+ free (t);
+ temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+
+ /* If we can't canonicalize, bail. */
+ if (temp2 == 0)
+ {
+ free (temp1);
+ return return_value;
+ }
+
+ free (local_dirname);
+ *dirname = temp2;
+ free (temp1);
+ }
+
+ return (return_value);
+}
+
/* Handle symbolic link references and other directory name
expansions while hacking completion. This should return 1 if it modifies
the DIRNAME argument, 0 otherwise. It should make sure not to modify
@@ -2792,6 +3122,8 @@ bash_directory_completion_hook (dirname)
else
nextch = 0;
}
+ else if (local_dirname[0] == '~')
+ should_expand_dirname = '~';
else
{
t = mbschr (local_dirname, '`');
@@ -2836,6 +3168,7 @@ bash_directory_completion_hook (dirname)
}
custom_filename_quote_characters[j] = '\0';
rl_filename_quote_characters = custom_filename_quote_characters;
+ set_filename_bstab (rl_filename_quote_characters);
}
}
else
@@ -2886,8 +3219,10 @@ bash_directory_completion_hook (dirname)
free (t);
temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
- /* Try spelling correction if initial canonicalization fails. */
- if (temp2 == 0 && dircomplete_spelling)
+ /* Try spelling correction if initial canonicalization fails. Make
+ sure we are set to replace the directory name with the results so
+ subsequent directory checks don't fail. */
+ if (temp2 == 0 && dircomplete_spelling && dircomplete_expand)
{
temp2 = dirspell (temp1);
if (temp2)
@@ -3486,6 +3821,20 @@ quote_word_break_chars (text)
return ret;
}
+/* Use characters in STRING to populate the table of characters that should
+ be backslash-quoted. The table will be used for sh_backslash_quote from
+ this file. */
+static void
+set_filename_bstab (string)
+ const char *string;
+{
+ const char *s;
+
+ memset (filename_bstab, 0, sizeof (filename_bstab));
+ for (s = string; s && *s; s++)
+ filename_bstab[*s] = 1;
+}
+
/* Quote a filename using double quotes, single quotes, or backslashes
depending on the value of completion_quoting_style. If we're
completing using backslashes, we need to quote some additional
@@ -3551,7 +3900,7 @@ bash_quote_filename (s, rtype, qcp)
rtext = sh_single_quote (mtext);
break;
case COMPLETE_BSQUOTE:
- rtext = sh_backslash_quote (mtext);
+ rtext = sh_backslash_quote (mtext, complete_fullquote ? 0 : filename_bstab, 0);
break;
}
@@ -3569,9 +3918,17 @@ bash_quote_filename (s, rtype, qcp)
/* Leave the opening quote intact. The readline completion code takes
care of avoiding doubled opening quotes. */
- rlen = strlen (rtext);
- ret = (char *)xmalloc (rlen + 1);
- strcpy (ret, rtext);
+ if (rtext)
+ {
+ rlen = strlen (rtext);
+ ret = (char *)xmalloc (rlen + 1);
+ strcpy (ret, rtext);
+ }
+ else
+ {
+ ret = (char *)xmalloc (rlen = 1);
+ ret[0] = '\0';
+ }
/* If there are multiple matches, cut off the closing quote. */
if (rtype == MULT_MATCH && cs != COMPLETE_BSQUOTE)
@@ -3583,14 +3940,19 @@ bash_quote_filename (s, rtype, qcp)
/* Support for binding readline key sequences to Unix commands. */
static Keymap cmd_xmap;
+#ifdef _MINIX
+static void
+#else
static int
+#endif
putx(c)
int c;
{
int x;
-
x = putc (c, rl_outstream);
- return (x);
+#ifndef _MINIX
+ return x;
+#endif
}
static int
@@ -3600,6 +3962,8 @@ bash_execute_unix_command (count, key)
{
Keymap ckmap; /* current keymap */
Keymap xkmap; /* unix command executing keymap */
+ rl_command_func_t *func;
+ int type;
register int i, r;
intmax_t mi;
sh_parser_state_t ps;
@@ -3608,34 +3972,15 @@ bash_execute_unix_command (count, key)
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. */
- ckmap = rl_get_keymap ();
- if (ckmap != rl_executing_keymap)
- {
- /* bogus. we have to search. only handle one level of indirection. */
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- if (ckmap[i].type == ISKMAP && (Keymap)ckmap[i].function == rl_executing_keymap)
- break;
- }
- if (i < KEYMAP_SIZE)
- xkmap = (Keymap)cmd_xmap[i].function;
- else
- {
- rl_crlf ();
- internal_error (_("bash_execute_unix_command: cannot find keymap for command"));
- rl_forced_update_display ();
- return 1;
- }
- }
- else
- xkmap = cmd_xmap;
-
- cmd = (char *)xkmap[key].function;
-
- if (cmd == 0)
+ because we might have already indirected into another keymap, so we
+ have to walk cmd_xmap using the entire key sequence. */
+ cmd = (char *)rl_function_of_keyseq (rl_executing_keyseq, cmd_xmap, &type);
+
+ if (cmd == 0 || type != ISMACR)
{
- rl_ding ();
+ rl_crlf ();
+ internal_error (_("bash_execute_unix_command: cannot find keymap for command"));
+ rl_forced_update_display ();
return 1;
}
@@ -3690,6 +4035,18 @@ bash_execute_unix_command (count, key)
return 0;
}
+int
+print_unix_command_map ()
+{
+ Keymap save;
+
+ save = rl_get_keymap ();
+ rl_set_keymap (cmd_xmap);
+ rl_macro_dumper (1);
+ rl_set_keymap (save);
+ return 0;
+}
+
static void
init_unix_command_map ()
{
@@ -3773,12 +4130,16 @@ bind_keyseq_to_unix_command (line)
if (line[i] != ':')
{
builtin_error (_("%s: missing colon separator"), line);
+ FREE (kseq);
return -1;
}
i = isolate_sequence (line, i + 1, 0, &kstart);
if (i < 0)
- return -1;
+ {
+ FREE (kseq);
+ return -1;
+ }
/* Create the value string containing the command to execute. */
value = substring (line, kstart, i);
@@ -3789,7 +4150,8 @@ bind_keyseq_to_unix_command (line)
/* and bind the key sequence in the current keymap to a function that
understands how to execute from CMD_XMAP */
rl_bind_keyseq_in_map (kseq, bash_execute_unix_command, kmap);
-
+
+ free (kseq);
return 0;
}
@@ -3829,4 +4191,22 @@ bash_dequote_text (text)
dtxt = bash_dequote_filename ((char *)text, qc);
return (dtxt);
}
+
+/* This event hook is designed to be called after readline receives a signal
+ that interrupts read(2). It gives reasonable responsiveness to interrupts
+ and fatal signals without executing too much code in a signal handler
+ context. */
+static int
+bash_event_hook ()
+{
+ /* If we're going to longjmp to top_level, make sure we clean up readline.
+ check_signals will call QUIT, which will eventually longjmp to top_level,
+ calling run_interrupt_trap along the way. */
+ if (interrupt_state)
+ rl_cleanup_after_signal ();
+ bashline_reset_event_hook ();
+ check_signals_and_traps (); /* XXX */
+ return 0;
+}
+
#endif /* READLINE */
diff --git a/bashline.h b/bashline.h
index 38964eaf..d52dfdfa 100644
--- a/bashline.h
+++ b/bashline.h
@@ -37,6 +37,7 @@ extern void bashline_set_event_hook __P((void));
extern void bashline_reset_event_hook __P((void));
extern int bind_keyseq_to_unix_command __P((char *));
+extern int print_unix_command_map __P((void));
extern char **bash_default_completion __P((const char *, int, int, int, int));
diff --git a/bracecomp.c b/bracecomp.c
index cb218a2b..4fbca858 100644
--- a/bracecomp.c
+++ b/bracecomp.c
@@ -75,8 +75,8 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
if (real_start == real_end)
{
- x = array[real_start] ? sh_backslash_quote (array[real_start] + gcd_zero)
- : sh_backslash_quote (array[0]);
+ x = array[real_start] ? sh_backslash_quote (array[real_start] + gcd_zero, 0, 0)
+ : sh_backslash_quote (array[0], 0, 0);
return x;
}
@@ -115,7 +115,7 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
if (start == end)
{
x = savestring (array[start] + gcd_zero);
- subterm = sh_backslash_quote (x);
+ subterm = sh_backslash_quote (x, 0, 0);
free (x);
}
else
@@ -126,7 +126,7 @@ really_munge_braces (array, real_start, real_end, gcd_zero)
x = (char *)xmalloc (tlen + 1);
strncpy (x, array[start] + gcd_zero, tlen);
x[tlen] = '\0';
- subterm = sh_backslash_quote (x);
+ subterm = sh_backslash_quote (x, 0, 0);
free (x);
result_size += strlen (subterm) + 1;
result = (char *)xrealloc (result, result_size);
diff --git a/braces.c b/braces.c
index 2febed79..61c1ab15 100644
--- a/braces.c
+++ b/braces.c
@@ -1,6 +1,6 @@
/* braces.c -- code for doing word expansion in curly braces. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -31,22 +31,32 @@
# include <unistd.h>
#endif
+#include <errno.h>
+
#include "bashansi.h"
+#include "bashintl.h"
#if defined (SHELL)
# include "shell.h"
#endif /* SHELL */
+#include "typemax.h" /* INTMAX_MIN, INTMAX_MAX */
#include "general.h"
#include "shmbutil.h"
#include "chartypes.h"
+#ifndef errno
+extern int errno;
+#endif
+
#define brace_whitespace(c) (!(c) || (c) == ' ' || (c) == '\t' || (c) == '\n')
#define BRACE_SEQ_SPECIFIER ".."
extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
+extern int last_command_exit_value;
+
/* Basic idea:
Segregate the text into 3 sections: preamble (stuff before an open brace),
@@ -63,7 +73,7 @@ static const int brace_arg_separator = ',';
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((intmax_t, intmax_t, int, int, int));
+static char **mkseq __P((intmax_t, intmax_t, intmax_t, int, int));
static char **array_concat __P((char **, char **));
#else
static int brace_gobbler ();
@@ -136,7 +146,8 @@ brace_expand (text)
#endif /* !CSH_BRACE_COMPAT */
preamble = (char *)xmalloc (i + 1);
- strncpy (preamble, text, i);
+ if (i > 0)
+ strncpy (preamble, text, i);
preamble[i] = '\0';
result = (char **)xmalloc (2 * sizeof (char *));
@@ -171,6 +182,7 @@ brace_expand (text)
if (text[j] == brace_arg_separator)
{ /* { */
strvec_dispose (result);
+ last_command_exit_value = 1;
report_error ("no closing `%c' in %s", '}', text);
throw_to_top_level ();
}
@@ -218,6 +230,19 @@ brace_expand (text)
tack = expand_seqterm (amble, alen);
if (tack)
goto add_tack;
+ else if (text[i + 1])
+ {
+ /* If the sequence expansion fails (e.g., because the integers
+ overflow), but there is more in the string, try and process
+ the rest of the string, which may contain additional brace
+ expansions. Treat the unexpanded sequence term as a simple
+ string (including the braces). */
+ tack = strvec_create (2);
+ tack[0] = savestring (text+start-1);
+ tack[0][i-start+2] = '\0';
+ tack[1] = (char *)0;
+ goto add_tack;
+ }
else
{
free (amble);
@@ -232,13 +257,18 @@ brace_expand (text)
add_tack:
result = array_concat (result, tack);
free (amble);
- strvec_dispose (tack);
+ if (tack != result)
+ strvec_dispose (tack);
postamble = text + i + 1;
- tack = brace_expand (postamble);
- result = array_concat (result, tack);
- strvec_dispose (tack);
+ if (postamble && *postamble)
+ {
+ tack = brace_expand (postamble);
+ result = array_concat (result, tack);
+ if (tack != result)
+ strvec_dispose (tack);
+ }
return (result);
}
@@ -253,7 +283,7 @@ expand_amble (text, tlen, flags)
size_t tlen;
int flags;
{
- char **result, **partial;
+ char **result, **partial, **tresult;
char *tem;
int start, i, c;
@@ -285,7 +315,16 @@ expand_amble (text, tlen, flags)
lr = strvec_len (result);
lp = strvec_len (partial);
- result = strvec_resize (result, lp + lr + 1);
+ tresult = strvec_mresize (result, lp + lr + 1);
+ if (tresult == 0)
+ {
+ internal_error (_("brace expansion: cannot allocate memory for %s"), tem);
+ strvec_dispose (result);
+ result = (char **)NULL;
+ return result;
+ }
+ else
+ result = tresult;
for (j = 0; j < lp; j++)
result[lr + j] = partial[j];
@@ -305,25 +344,75 @@ expand_amble (text, tlen, flags)
#define ST_CHAR 2
#define ST_ZINT 3
+#ifndef sh_imaxabs
+# define sh_imaxabs(x) (((x) >= 0) ? (x) : -(x))
+#endif
+
+/* Handle signed arithmetic overflow and underflow. Have to do it this way
+ to avoid compilers optimizing out simpler overflow checks. */
+
+/* Make sure that a+b does not exceed MAXV or is smaller than MINV (if b < 0).
+ Assumes that b > 0 if a > 0 and b < 0 if a < 0 */
+#define ADDOVERFLOW(a,b,minv,maxv) \
+ ((((a) > 0) && ((b) > ((maxv) - (a)))) || \
+ (((a) < 0) && ((b) < ((minv) - (a)))))
+
+/* Make sure that a-b is not smaller than MINV or exceeds MAXV (if b < 0).
+ Assumes that b > 0 if a > 0 and b < 0 if a < 0 */
+#define SUBOVERFLOW(a,b,minv,maxv) \
+ ((((b) > 0) && ((a) < ((minv) + (b)))) || \
+ (((b) < 0) && ((a) > ((maxv) + (b)))))
+
static char **
mkseq (start, end, incr, type, width)
- intmax_t start, end;
- int incr, type, width;
+ intmax_t start, end, incr;
+ int type, width;
{
- intmax_t n;
- int i;
+ intmax_t n, prevn;
+ int i, j, nelem;
char **result, *t;
- i = abs (end - start) + 1;
- result = strvec_create (i + 1);
-
if (incr == 0)
incr = 1;
-
+
if (start > end && incr > 0)
incr = -incr;
else if (start < end && incr < 0)
- incr = -incr;
+ {
+ if (incr == INTMAX_MIN) /* Don't use -INTMAX_MIN */
+ return ((char **)NULL);
+ incr = -incr;
+ }
+
+ /* Check that end-start will not overflow INTMAX_MIN, INTMAX_MAX. The +3
+ and -2, not strictly necessary, are there because of the way the number
+ of elements and value passed to strvec_create() are calculated below. */
+ if (SUBOVERFLOW (end, start, INTMAX_MIN+3, INTMAX_MAX-2))
+ return ((char **)NULL);
+
+ prevn = sh_imaxabs (end - start);
+ /* Need to check this way in case INT_MAX == INTMAX_MAX */
+ if (INT_MAX == INTMAX_MAX && (ADDOVERFLOW (prevn, 2, INT_MIN, INT_MAX)))
+ return ((char **)NULL);
+ /* Make sure the assignment to nelem below doesn't end up <= 0 due to
+ intmax_t overflow */
+ else if (ADDOVERFLOW ((prevn/sh_imaxabs(incr)), 1, INTMAX_MIN, INTMAX_MAX))
+ return ((char **)NULL);
+
+ /* XXX - TOFIX: potentially allocating a lot of extra memory if
+ imaxabs(incr) != 1 */
+ /* Instead of a simple nelem = prevn + 1, something like:
+ nelem = (prevn / imaxabs(incr)) + 1;
+ would work */
+ nelem = (prevn / sh_imaxabs(incr)) + 1;
+ if (nelem > INT_MAX - 2) /* Don't overflow int */
+ return ((char **)NULL);
+ result = strvec_mcreate (nelem + 1);
+ if (result == 0)
+ {
+ internal_error (_("brace expansion: failed to allocate memory for %d elements"), nelem);
+ return ((char **)NULL);
+ }
/* Make sure we go through the loop at least once, so {3..3} prints `3' */
i = 0;
@@ -334,7 +423,7 @@ mkseq (start, end, incr, type, width)
QUIT; /* XXX - memory leak here */
#endif
if (type == ST_INT)
- result[i++] = itos (n);
+ result[i++] = t = itos (n);
else if (type == ST_ZINT)
{
int len, arg;
@@ -344,12 +433,33 @@ mkseq (start, end, incr, type, width)
}
else
{
- t = (char *)xmalloc (2);
- t[0] = n;
- t[1] = '\0';
+ if (t = (char *)malloc (2))
+ {
+ t[0] = n;
+ t[1] = '\0';
+ }
result[i++] = t;
}
+
+ /* We failed to allocate memory for this number, so we bail. */
+ if (t == 0)
+ {
+ char *p, lbuf[INT_STRLEN_BOUND(intmax_t) + 1];
+
+ /* Easier to do this than mess around with various intmax_t printf
+ formats (%ld? %lld? %jd?) and PRIdMAX. */
+ p = inttostr (n, lbuf, sizeof (lbuf));
+ internal_error (_("brace expansion: failed to allocate memory for `%s'"), p);
+ strvec_dispose (result);
+ return ((char **)NULL);
+ }
+
+ /* Handle overflow and underflow of n+incr */
+ if (ADDOVERFLOW (n, incr, INTMAX_MIN, INTMAX_MAX))
+ break;
+
n += incr;
+
if ((incr < 0 && n < end) || (incr > 0 && n > end))
break;
}
@@ -365,8 +475,8 @@ expand_seqterm (text, tlen)
size_t tlen;
{
char *t, *lhs, *rhs;
- int i, lhs_t, rhs_t, incr, lhs_l, rhs_l, width;
- intmax_t lhs_v, rhs_v;
+ int i, lhs_t, rhs_t, lhs_l, rhs_l, width;
+ intmax_t lhs_v, rhs_v, incr;
intmax_t tl, tr;
char **result, *ep, *oep;
@@ -396,8 +506,9 @@ expand_seqterm (text, tlen)
if (ISDIGIT (rhs[0]) || ((rhs[0] == '+' || rhs[0] == '-') && ISDIGIT (rhs[1])))
{
rhs_t = ST_INT;
+ errno = 0;
tr = strtoimax (rhs, &ep, 10);
- if (ep && *ep != 0 && *ep != '.')
+ if (errno == ERANGE || (ep && *ep != 0 && *ep != '.'))
rhs_t = ST_BAD; /* invalid */
}
else if (ISALPHA (rhs[0]) && (rhs[1] == 0 || rhs[1] == '.'))
@@ -415,10 +526,11 @@ expand_seqterm (text, tlen)
if (rhs_t != ST_BAD)
{
oep = ep;
+ errno = 0;
if (ep && *ep == '.' && ep[1] == '.' && ep[2])
incr = strtoimax (ep + 2, &ep, 10);
- if (*ep != 0)
- rhs_t = ST_BAD; /* invalid incr */
+ if (*ep != 0 || errno == ERANGE)
+ rhs_t = ST_BAD; /* invalid incr or overflow */
tlen -= ep - oep;
}
@@ -535,6 +647,11 @@ brace_gobbler (text, tlen, indx, satisfy)
{
if (c == quoted)
quoted = 0;
+#if defined (SHELL)
+ /* The shell allows quoted command substitutions */
+ if (quoted == '"' && c == '$' && text[i+1] == '(') /*)*/
+ goto comsub;
+#endif
ADVANCE_CHAR (text, tlen, i);
continue;
}
@@ -550,6 +667,7 @@ brace_gobbler (text, tlen, indx, satisfy)
/* Pass new-style command and process substitutions through unchanged. */
if ((c == '$' || c == '<' || c == '>') && text[i+1] == '(') /* ) */
{
+comsub:
si = i + 2;
t = extract_command_subst (text, &si, 0);
i = si;
@@ -594,6 +712,20 @@ brace_gobbler (text, tlen, indx, satisfy)
return (c);
}
+/* Return 1 if ARR has any non-empty-string members. Used to short-circuit
+ in array_concat() below. */
+static int
+degenerate_array (arr)
+ char **arr;
+{
+ register int i;
+
+ for (i = 0; arr[i]; i++)
+ if (arr[i][0] != '\0')
+ return 0;
+ return 1;
+}
+
/* Return a new array of strings which is the result of appending each
string in ARR2 to each string in ARR1. The resultant array is
len (arr1) * len (arr2) long. For convenience, ARR1 (and its contents)
@@ -607,10 +739,22 @@ array_concat (arr1, arr2)
register char **result;
if (arr1 == 0)
- return (strvec_copy (arr2));
+ return (arr2); /* XXX - see if we can get away without copying? */
if (arr2 == 0)
- return (strvec_copy (arr1));
+ return (arr1); /* XXX - caller expects us to free arr1 */
+
+ /* We can only short-circuit if the array consists of a single null element;
+ otherwise we need to replicate the contents of the other array and
+ prefix (or append, below) an empty element to each one. */
+ if (arr1[0] && arr1[0][0] == 0 && arr1[1] == 0)
+ {
+ strvec_dispose (arr1);
+ return (arr2); /* XXX - use flags to see if we can avoid copying here */
+ }
+
+ if (arr2[0] && arr2[0][0] == 0 && arr2[1] == 0)
+ return (arr1); /* XXX - rather than copying and freeing it */
len1 = strvec_len (arr1);
len2 = strvec_len (arr2);
diff --git a/builtins.h b/builtins.h
index 8f7b4617..cc0c79c0 100644
--- a/builtins.h
+++ b/builtins.h
@@ -50,7 +50,7 @@ struct builtin {
sh_builtin_func_t *function; /* The address of the invoked function. */
int flags; /* One of the #defines above. */
char * const *long_doc; /* NULL terminated array of strings. */
- const char *short_doc; /* Short version of documenation. */
+ const char *short_doc; /* Short version of documentation. */
char *handle; /* for future use */
};
diff --git a/builtins/Makefile.in b/builtins/Makefile.in
index 3d8bad4d..a2e7911b 100644
--- a/builtins/Makefile.in
+++ b/builtins/Makefile.in
@@ -1,6 +1,6 @@
# This Makefile for building libbuiltins.a is in -*- text -*- for Emacs.
#
-# Copyright (C) 1996-2009 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
@@ -67,8 +67,8 @@ LIBS = @LIBS@
LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS)
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)
+LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
+#LIBS_FOR_BUILD = $(LIBS)
BASHINCDIR = ${topdir}/include
@@ -85,6 +85,8 @@ LIBINTL_H = @LIBINTL_H@
HELPDIR = @HELPDIR@
MKDIRS = ${topdir}/support/mkdirs
+HELPFILES_TARGET = @HELPFILES_TARGET@
+
INCLUDES = -I. -I.. @RL_INCLUDE@ -I$(topdir) -I$(BASHINCDIR) -I$(topdir)/lib -I$(srcdir) ${INTL_INC}
BASE_CCFLAGS = ${PROFILE_FLAGS} $(DEFS) $(LOCAL_DEFS) $(SYSTEM_FLAGS) \
@@ -153,15 +155,33 @@ OFILES = builtins.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
-CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h
+CREATED_FILES = builtext.h builtins.c psize.aux pipesize.h tmpbuiltins.c \
+ tmpbuiltins.h
+CREATED_OBJECTS = tmpbuiltins.o gen-helpfiles.o mkbuiltins.o
-all: $(MKBUILTINS) libbuiltins.a
+all: $(MKBUILTINS) libbuiltins.a $(HELPFILES_TARGET)
+targets: libbuiltins.a $(HELPFILES_TARGET)
libbuiltins.a: $(MKBUILTINS) $(OFILES) builtins.o
$(RM) $@
$(AR) $(ARFLAGS) $@ $(OFILES)
-$(RANLIB) $@
+tmpbuiltins.c: $(MKBUILTINS) $(DEFSRC)
+ ./$(MKBUILTINS) -externfile tmpbuiltins.h -structfile $@ \
+ -noproduction -nofunctions \
+ $(DIRECTDEFINE) $(HELPSTRINGS) $(DEFSRC)
+
+tmpbuiltins.h: tmpbuiltins.c
+
+gen-helpfiles.o: ../config.h
+gen-helpfiles.o: gen-helpfiles.c
+ $(RM) $@
+ $(CC_FOR_BUILD) -c $(CCFLAGS_FOR_BUILD) $<
+
+gen-helpfiles: tmpbuiltins.o gen-helpfiles.o
+ $(CC_FOR_BUILD) ${CCFLAGS_FOR_BUILD} $(LDFLAGS_FOR_BUILD) -o $@ gen-helpfiles.o tmpbuiltins.o $(LIBS_FOR_BUILD)
+
builtext.h builtins.c: $(MKBUILTINS) $(DEFSRC)
@-if test -f builtins.c; then mv -f builtins.c old-builtins.c; fi
@-if test -f builtext.h; then mv -f builtext.h old-builtext.h; fi
@@ -178,8 +198,8 @@ builtext.h builtins.c: $(MKBUILTINS) $(DEFSRC)
$(RM) old-builtins.c; \
fi
-helpdoc: $(MKBUILTINS) $(DEFSRC)
- ./$(MKBUILTINS) ${HELPDIRDEFINE} -noproduction $(DIRECTDEFINE) $(DEFSRC)
+helpdoc: gen-helpfiles
+ ./gen-helpfiles ${HELPDIRDEFINE}
install-help:
@-if test -n "${HELPDIR}" && test -d helpfiles ; then \
@@ -207,15 +227,20 @@ common.o: common.c
bashgetopt.o: bashgetopt.c
getopt.o: getopt.c
evalstring.o: evalstring.c
-evalfile.o: evalfile.c
+evalfile.o: evalfile.c
+
+tmpbuiltins.o: tmpbuiltins.c
+gen-helpfiles.o: gen-helpfiles.c
ulimit.o: pipesize.h
pipesize.h: psize.aux
$(SHELL) $(srcdir)/psize.sh > $@
+# Technically this is wrong; the pipe size should be for the target system,
+# not the build host.
psize.aux: psize.c
- $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(srcdir)/psize.c
+ $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ $(srcdir)/psize.c
documentation: builtins.texi
@@ -223,7 +248,8 @@ builtins.texi: $(MKBUILTINS)
./$(MKBUILTINS) -documentonly $(DEFSRC)
clean:
- $(RM) $(OFILES) $(CREATED_FILES) $(MKBUILTINS) mkbuiltins.o libbuiltins.a
+ $(RM) $(OFILES) $(CREATED_FILES) libbuiltins.a
+ $(RM) $(MKBUILTINS) gen-helpfiles $(CREATED_OBJECTS)
-test -d helpfiles && $(RM) -r helpfiles
mostlyclean:
@@ -547,7 +573,7 @@ shopt.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h
shopt.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h
shopt.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/unwind_prot.h $(topdir)/variables.h $(topdir)/conftypes.h
shopt.o: $(srcdir)/common.h $(srcdir)/bashgetopt.h ../pathnames.h
-shopt.o: $(topdir)/bashhist.h
+shopt.o: $(topdir)/bashhist.h $(topdir)/bashline.h
source.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h
source.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h $(topdir)/findcmd.h
source.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h
diff --git a/builtins/bind.def b/builtins/bind.def
index d0c953bb..3a7cc4ef 100644
--- a/builtins/bind.def
+++ b/builtins/bind.def
@@ -25,7 +25,7 @@ $PRODUCES bind.c
$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]
+$SHORT_DOC bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
Set Readline key bindings and variables.
Bind a key sequence to a Readline function or a macro, or set a
@@ -54,6 +54,8 @@ Options:
-f filename Read key bindings from FILENAME.
-x keyseq:shell-command Cause SHELL-COMMAND to be executed when
KEYSEQ is entered.
+ -X List key sequences bound with -x and associated commands
+ in a form that can be reused as input.
Exit Status:
bind returns 0 unless an unrecognized option is given or an error occurs.
@@ -104,6 +106,7 @@ extern int no_line_editing;
#define SSFLAG 0x0400
#define UFLAG 0x0800
#define XFLAG 0x1000
+#define XXFLAG 0x2000
int
bind_builtin (list)
@@ -138,7 +141,7 @@ bind_builtin (list)
rl_outstream = stdout;
reset_internal_getopt ();
- while ((opt = internal_getopt (list, "lvpVPsSf:q:u:m:r:x:")) != EOF)
+ while ((opt = internal_getopt (list, "lvpVPsSXf:q:u:m:r:x:")) != EOF)
{
switch (opt)
{
@@ -187,6 +190,9 @@ bind_builtin (list)
flags |= XFLAG;
cmd_seq = list_optarg;
break;
+ case 'X':
+ flags |= XXFLAG;
+ break;
default:
builtin_usage ();
BIND_RETURN (EX_USAGE);
@@ -201,7 +207,7 @@ bind_builtin (list)
if ((flags & MFLAG) && map_name)
{
kmap = rl_get_keymap_by_name (map_name);
- if (!kmap)
+ if (kmap == 0)
{
builtin_error (_("`%s': invalid keymap name"), map_name);
BIND_RETURN (EXECUTION_FAILURE);
@@ -265,6 +271,9 @@ bind_builtin (list)
if (flags & XFLAG)
return_code = bind_keyseq_to_unix_command (cmd_seq);
+ if (flags & XXFLAG)
+ return_code = print_unix_command_map ();
+
/* Process the rest of the arguments as binding specifications. */
while (list)
{
diff --git a/builtins/caller.def b/builtins/caller.def
index 7ddbdad4..965676b3 100644
--- a/builtins/caller.def
+++ b/builtins/caller.def
@@ -2,6 +2,7 @@ This file is caller.def, from which is created caller.c. It implements the
builtin "caller" in Bash.
Copyright (C) 2002-2008 Rocky Bernstein for Free Software Foundation, Inc.
+Copyright (C) 2008-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -121,7 +122,7 @@ caller_builtin (list)
{
sh_invalidnum (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
return (EXECUTION_SUCCESS);
diff --git a/builtins/cd.def b/builtins/cd.def
index b1aae26d..f66e68c1 100644
--- a/builtins/cd.def
+++ b/builtins/cd.def
@@ -1,7 +1,7 @@
This file is cd.def, from which is created cd.c. It implements the
builtins "cd" and "pwd" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -31,9 +31,10 @@ $PRODUCES cd.c
#include "../bashtypes.h"
#include "posixdir.h"
#include "posixstat.h"
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
#include <sys/param.h>
#endif
+#include <fcntl.h>
#include <stdio.h>
@@ -60,7 +61,10 @@ extern const char * const bash_getcwd_errstr;
static int bindpwd __P((int));
static int setpwd __P((char *));
static char *resetpwd __P((char *));
-static int change_to_directory __P((char *, int));
+static int change_to_directory __P((char *, int, int));
+
+static int cdxattr __P((char *, char **));
+static void resetxattr __P((void));
/* Change this to 1 to get cd spelling correction by default. */
int cdspelling = 0;
@@ -68,10 +72,12 @@ int cdspelling = 0;
int cdable_vars;
static int eflag; /* file scope so bindpwd() can see it */
+static int xattrflag; /* O_XATTR support for openat */
+static int xattrfd = -1;
$BUILTIN cd
$FUNCTION cd_builtin
-$SHORT_DOC cd [-L|[-P [-e]]] [dir]
+$SHORT_DOC cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
@@ -87,13 +93,21 @@ 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
+ -L force symbolic links to be followed: resolve symbolic links in
+ DIR after processing instances of `..'
-P use the physical directory structure without following symbolic
- links
+ links: resolve symbolic links in DIR before processing instances
+ of `..'
-e if the -P option is supplied, and the current working directory
cannot be determined successfully, exit with a non-zero status
+#if defined (O_XATTR)
+ -@ on systems that support it, present a file with extended attributes
+ as a directory containing the file attributes
+#endif
The default is to follow symbolic links, as if `-L' were specified.
+`..' is processed by removing the immediately previous pathname component
+back to a slash or the beginning of DIR.
Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
@@ -173,6 +187,66 @@ resetpwd (caller)
return (tdir);
}
+static int
+cdxattr (dir, ndirp)
+ char *dir; /* don't assume we can always free DIR */
+ char **ndirp; /* return new constructed directory name */
+{
+#if defined (O_XATTR)
+ int apfd, fd, r, e;
+ char buf[11+40+40]; /* construct new `fake' path for pwd */
+
+ apfd = openat (AT_FDCWD, dir, O_RDONLY|O_NONBLOCK);
+ if (apfd < 0)
+ return -1;
+ fd = openat (apfd, ".", O_XATTR);
+ e = errno;
+ close (apfd); /* ignore close error for now */
+ errno = e;
+ if (fd < 0)
+ return -1;
+ r = fchdir (fd); /* assume fchdir exists everywhere with O_XATTR */
+ if (r < 0)
+ {
+ close (fd);
+ return -1;
+ }
+ /* NFSv4 and ZFS extended attribute directories do not have names which are
+ visible in the standard Unix directory tree structure. To ensure we have
+ a valid name for $PWD, we synthesize one under /proc, but to keep that
+ path valid, we need to keep the file descriptor open as long as we are in
+ this directory. This imposes a certain structure on /proc. */
+ if (ndirp)
+ {
+ sprintf (buf, "/proc/%d/fd/%d", getpid(), fd);
+ *ndirp = savestring (buf);
+ }
+
+ if (xattrfd >= 0)
+ close (xattrfd);
+ xattrfd = fd;
+
+ return r;
+#else
+ return -1;
+#endif
+}
+
+/* Clean up the O_XATTR baggage. Currently only closes xattrfd */
+static void
+resetxattr ()
+{
+#if defined (O_XATTR)
+ if (xattrfd >= 0)
+ {
+ close (xattrfd);
+ xattrfd = -1;
+ }
+#else
+ xattrfd = -1; /* not strictly necessary */
+#endif
+}
+
#define LCD_DOVARS 0x001
#define LCD_DOSPELL 0x002
#define LCD_PRINTPATH 0x004
@@ -199,8 +273,13 @@ cd_builtin (list)
eflag = 0;
no_symlinks = no_symbolic_links;
+ xattrflag = 0;
reset_internal_getopt ();
- while ((opt = internal_getopt (list, "LP")) != -1)
+#if defined (O_XATTR)
+ while ((opt = internal_getopt (list, "eLP@")) != -1)
+#else
+ while ((opt = internal_getopt (list, "eLP")) != -1)
+#endif
{
switch (opt)
{
@@ -213,9 +292,14 @@ cd_builtin (list)
case 'e':
eflag = 1;
break;
+#if defined (O_XATTR)
+ case '@':
+ xattrflag = 1;
+ break;
+#endif
default:
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
}
list = loptend;
@@ -237,6 +321,13 @@ cd_builtin (list)
}
lflag = 0;
}
+#if defined (CD_COMPLAINS)
+ else if (list->next)
+ {
+ builtin_error (_("too many arguments"));
+ return (EXECUTION_FAILURE);
+ }
+#endif
else if (list->word->word[0] == '-' && list->word->word[1] == '\0')
{
/* This is `cd -', equivalent to `cd $OLDPWD' */
@@ -268,7 +359,7 @@ cd_builtin (list)
temp = sh_makepath (path, dirname, MP_DOTILDE);
free (path);
- if (change_to_directory (temp, no_symlinks))
+ if (change_to_directory (temp, no_symlinks, xattrflag))
{
/* POSIX.2 says that if a nonempty directory from CDPATH
is used to find the directory to change to, the new
@@ -290,7 +381,8 @@ cd_builtin (list)
free (temp);
}
-#if 0 /* changed for bash-4.2 Posix cd description steps 5-6 */
+#if 0
+ /* changed for bash-4.2 Posix cd description steps 5-6 */
/* POSIX.2 says that if `.' does not appear in $CDPATH, we don't
try the current directory, so we just punt now with an error
message if POSIXLY_CORRECT is non-zero. The check for cdpath[0]
@@ -308,7 +400,7 @@ cd_builtin (list)
/* When we get here, DIRNAME is the directory to change to. If we
chdir successfully, just return. */
- if (change_to_directory (dirname, no_symlinks))
+ if (change_to_directory (dirname, no_symlinks, xattrflag))
{
if (lflag & LCD_PRINTPATH)
printf ("%s\n", dirname);
@@ -321,7 +413,7 @@ cd_builtin (list)
if (lflag & LCD_DOVARS)
{
temp = get_string_value (dirname);
- if (temp && change_to_directory (temp, no_symlinks))
+ if (temp && change_to_directory (temp, no_symlinks, xattrflag))
{
printf ("%s\n", temp);
return (bindpwd (no_symlinks));
@@ -334,9 +426,10 @@ cd_builtin (list)
if (lflag & LCD_DOSPELL)
{
temp = dirspell (dirname);
- if (temp && change_to_directory (temp, no_symlinks))
+ if (temp && change_to_directory (temp, no_symlinks, xattrflag))
{
printf ("%s\n", temp);
+ free (temp);
return (bindpwd (no_symlinks));
}
else
@@ -391,7 +484,7 @@ pwd_builtin (list)
break;
default:
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
}
list = loptend;
@@ -405,7 +498,11 @@ pwd_builtin (list)
the file system has changed state underneath bash). */
if ((tcwd && directory == 0) ||
(posixly_correct && same_file (".", tcwd, (struct stat *)0, (struct stat *)0) == 0))
- directory = resetpwd ("pwd");
+ {
+ if (directory && directory != tcwd)
+ free (directory);
+ directory = resetpwd ("pwd");
+ }
#undef tcwd
@@ -431,11 +528,11 @@ pwd_builtin (list)
to the working directory. Return 1 on success, 0 on failure. */
static int
-change_to_directory (newdir, nolinks)
+change_to_directory (newdir, nolinks, xattr)
char *newdir;
- int nolinks;
+ int nolinks, xattr;
{
- char *t, *tdir;
+ char *t, *tdir, *ndir;
int err, canon_failed, r, ndlen, dlen;
tdir = (char *)NULL;
@@ -484,8 +581,34 @@ change_to_directory (newdir, nolinks)
return (0);
}
+#if defined (O_XATTR)
+ if (xattrflag)
+ {
+ r = cdxattr (nolinks ? newdir : tdir, &ndir);
+ if (r >= 0)
+ {
+ canon_failed = 0;
+ free (tdir);
+ tdir = ndir;
+ }
+ else
+ {
+ err = errno;
+ free (tdir);
+ errno = err;
+ return (0); /* no xattr */
+ }
+ }
+ else
+#endif
+ {
+ r = chdir (nolinks ? newdir : tdir);
+ if (r >= 0)
+ resetxattr ();
+ }
+
/* If the chdir succeeds, update the_current_working_directory. */
- if (chdir (nolinks ? newdir : tdir) == 0)
+ if (r == 0)
{
/* If canonicalization failed, but the chdir succeeded, reset the
shell's idea of the_current_working_directory. */
@@ -494,6 +617,8 @@ change_to_directory (newdir, nolinks)
t = resetpwd ("cd");
if (t == 0)
set_working_directory (tdir);
+ else
+ free (t);
}
else
set_working_directory (tdir);
diff --git a/builtins/common.c b/builtins/common.c
index 737ace2f..fb2b38cd 100644
--- a/builtins/common.c
+++ b/builtins/common.c
@@ -500,7 +500,7 @@ get_exitstat (list)
if (arg == 0 || legal_number (arg, &sval) == 0)
{
sh_neednumarg (list->word->word ? list->word->word : "`'");
- return 255;
+ return EX_BADUSAGE;
}
no_args (list->next);
@@ -628,7 +628,7 @@ get_job_by_name (name, flags)
if (this_shell_builtin)
builtin_error (_("%s: ambiguous job spec"), name);
else
- report_error (_("%s: ambiguous job spec"), name);
+ internal_error (_("%s: ambiguous job spec"), name);
return (DUP_JOB);
}
else
diff --git a/builtins/common.h b/builtins/common.h
index caeefeab..b0c2f7db 100644
--- a/builtins/common.h
+++ b/builtins/common.h
@@ -145,6 +145,8 @@ extern void set_bashopts __P((void));
extern void parse_bashopts __P((char *));
extern void initialize_bashopts __P((int));
+extern void set_compatibility_opts __P((void));
+
/* Functions from type.def */
extern int describe_command __P((char *, int));
@@ -153,6 +155,7 @@ 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 int show_func_attributes __P((char *, int));
extern void set_var_attribute __P((char *, int, int));
/* Functions from pushd.def */
@@ -163,6 +166,7 @@ extern WORD_LIST *get_directory_stack __P((int));
/* Functions from evalstring.c */
extern int parse_and_execute __P((char *, const char *, int));
+extern int evalstring __P((char *, const char *, int));
extern void parse_and_execute_cleanup __P((void));
extern int parse_string __P((char *, const char *, int, char **));
diff --git a/builtins/complete.def b/builtins/complete.def
index b9f0a134..8499b7a6 100644
--- a/builtins/complete.def
+++ b/builtins/complete.def
@@ -1,7 +1,7 @@
This file is complete.def, from which is created complete.c.
It implements the builtins "complete", "compgen", and "compopt" in Bash.
-Copyright (C) 1999-2010 Free Software Foundation, Inc.
+Copyright (C) 1999-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -112,7 +112,7 @@ static const struct _compacts {
{ "export", CA_EXPORT, 'e' },
{ "file", CA_FILE, 'f' },
{ "function", CA_FUNCTION, 0 },
- { "helptopic", CA_BUILTIN, 0 }, /* for now */
+ { "helptopic", CA_HELPTOPIC, 0 },
{ "hostname", CA_HOSTNAME, 0 },
{ "group", CA_GROUP, 'g' },
{ "job", CA_JOB, 'j' },
@@ -129,7 +129,7 @@ static const struct _compacts {
};
/* This should be a STRING_INT_ALIST */
-const static struct _compopt {
+static const struct _compopt {
const char * const optname;
int optflag;
} compopts[] = {
@@ -137,6 +137,7 @@ const static struct _compopt {
{ "default", COPT_DEFAULT },
{ "dirnames", COPT_DIRNAMES },
{ "filenames",COPT_FILENAMES},
+ { "noquote", COPT_NOQUOTE },
{ "nospace", COPT_NOSPACE },
{ "plusdirs", COPT_PLUSDIRS },
{ (char *)NULL, 0 },
@@ -728,6 +729,7 @@ compgen_builtin (list)
if ((sl == 0 || sl->list_len == 0) && (copts & COPT_DEFAULT))
{
matches = rl_completion_matches (word, rl_filename_completion_function);
+ strlist_dispose (sl);
sl = completions_to_stringlist (matches);
strvec_dispose (matches);
}
diff --git a/builtins/declare.def b/builtins/declare.def
index 8b9b850c..a634e7ce 100644
--- a/builtins/declare.def
+++ b/builtins/declare.def
@@ -1,7 +1,7 @@
This file is declare.def, from which is created declare.c.
It implements the builtins "declare" and "local" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -22,7 +22,7 @@ $PRODUCES declare.c
$BUILTIN declare
$FUNCTION declare_builtin
-$SHORT_DOC declare [-aAfFgilrtux] [-p] [name[=value] ...]
+$SHORT_DOC declare [-aAfFgilnrtux] [-p] [name[=value] ...]
Set variable values and attributes.
Declare variables and give them attributes. If no NAMEs are given,
@@ -41,6 +41,7 @@ Options which set attributes:
-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
+ -n make NAME a reference to the variable named by its value
-r to make NAMEs readonly
-t to make NAMEs have the `trace' attribute
-u to convert NAMEs to upper case on assignment
@@ -55,7 +56,8 @@ When used in a function, `declare' makes NAMEs local, as with the `local'
command. The `-g' option suppresses this behavior.
Exit Status:
-Returns success unless an invalid option is supplied or an error occurs.
+Returns success unless an invalid option is supplied or a variable
+assignment error occurs.
$END
$BUILTIN typeset
@@ -110,8 +112,8 @@ 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.
+Returns success unless an invalid option is supplied, a variable
+assignment error occurs, or the shell is not executing a function.
$END
int
local_builtin (list)
@@ -127,9 +129,9 @@ local_builtin (list)
}
#if defined (ARRAY_VARS)
-# define DECLARE_OPTS "+acfgilprtuxAF"
+# define DECLARE_OPTS "+acfgilnprtuxAF"
#else
-# define DECLARE_OPTS "+cfgilprtuxF"
+# define DECLARE_OPTS "+cfgilnprtuxF"
#endif
/* The workhorse function. */
@@ -139,12 +141,13 @@ declare_internal (list, local_var)
int local_var;
{
int flags_on, flags_off, *flags;
- int any_failed, assign_error, pflag, nodefs, opt, mkglobal;
+ int any_failed, assign_error, pflag, nodefs, opt, mkglobal, onref, offref;
char *t, *subscript_start;
- SHELL_VAR *var;
+ SHELL_VAR *var, *refvar, *v;
FUNCTION_DEF *shell_fn;
flags_on = flags_off = any_failed = assign_error = pflag = nodefs = mkglobal = 0;
+ refvar = (SHELL_VAR *)NULL;
reset_internal_getopt ();
while ((opt = internal_getopt (list, DECLARE_OPTS)) != EOF)
{
@@ -186,6 +189,9 @@ declare_internal (list, local_var)
case 'i':
*flags |= att_integer;
break;
+ case 'n':
+ *flags |= att_nameref;
+ break;
case 'r':
*flags |= att_readonly;
break;
@@ -258,7 +264,10 @@ declare_internal (list, local_var)
{
for (any_failed = 0; list; list = list->next)
{
- pflag = show_name_attributes (list->word->word, nodefs);
+ if (flags_on & att_function)
+ pflag = show_func_attributes (list->word->word, nodefs);
+ else
+ pflag = show_name_attributes (list->word->word, nodefs);
if (pflag)
{
sh_notfound (list->word->word);
@@ -296,6 +305,28 @@ declare_internal (list, local_var)
else
value = "";
+ /* Do some lexical error checking on the LHS and RHS of the assignment
+ that is specific to nameref variables. */
+ if (flags_on & att_nameref)
+ {
+#if defined (ARRAY_VARIABLES)
+ if (valid_array_reference (name))
+ {
+ builtin_error (_("%s: reference variable cannot be an array"), name);
+ assign_error++;
+ NEXT_VARIABLE ();
+ }
+ else
+#endif
+ /* disallow self references at global scope */
+ if (STREQ (name, value) && variable_context == 0)
+ {
+ builtin_error (_("%s: nameref variable self references not allowed"), name);
+ assign_error++;
+ NEXT_VARIABLE ();
+ }
+ }
+
#if defined (ARRAY_VARS)
compound_array_assign = simple_array_assign = 0;
subscript_start = (char *)NULL;
@@ -334,16 +365,17 @@ declare_internal (list, local_var)
/* XXX - this has consequences when we're making a local copy of a
variable that was in the temporary environment. Watch out
for this. */
+ refvar = (SHELL_VAR *)NULL;
if (variable_context && mkglobal == 0 && ((flags_on & att_function) == 0))
{
#if defined (ARRAY_VARS)
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);
+ var = make_local_array_variable (name, making_array_special);
else
#endif
- var = make_local_variable (name);
+ var = make_local_variable (name); /* sets att_invisible for new vars */
if (var == 0)
{
any_failed++;
@@ -415,6 +447,33 @@ declare_internal (list, local_var)
else /* declare -[aAirx] name [name...] */
{
/* Non-null if we just created or fetched a local variable. */
+ /* Here's what ksh93 seems to do. If we are modifying an existing
+ nameref variable, we don't follow the nameref chain past the last
+ nameref, and we set the nameref variable's value so future
+ references to that variable will return the value of the variable
+ we're assigning right now. */
+ if (var == 0 && (flags_on & att_nameref))
+ {
+ /* See if we are trying to modify an existing nameref variable */
+ var = mkglobal ? find_global_variable_last_nameref (name) : find_variable_last_nameref (name);
+ if (var && nameref_p (var) == 0)
+ var = 0;
+ }
+ /* However, if we're turning off the nameref attribute on an existing
+ nameref variable, we first follow the nameref chain to the end,
+ modify the value of the variable this nameref variable references,
+ *CHANGING ITS VALUE AS A SIDE EFFECT* then turn off the nameref
+ flag *LEAVING THE NAMEREF VARIABLE'S VALUE UNCHANGED* */
+ else if (var == 0 && (flags_off & att_nameref))
+ {
+ /* See if we are trying to modify an existing nameref variable */
+ refvar = mkglobal ? find_global_variable_last_nameref (name) : find_variable_last_nameref (name);
+ if (refvar && nameref_p (refvar) == 0)
+ refvar = 0;
+ if (refvar)
+ var = mkglobal ? find_global_variable (nameref_cell (refvar)) : find_variable (nameref_cell (refvar));
+ }
+
if (var == 0)
var = mkglobal ? find_global_variable (name) : find_variable (name);
@@ -422,20 +481,40 @@ declare_internal (list, local_var)
{
#if defined (ARRAY_VARS)
if (flags_on & att_assoc)
- var = make_new_assoc_variable (name);
+ {
+ var = make_new_assoc_variable (name);
+ if (offset == 0)
+ VSETATTR (var, att_invisible);
+ }
else if ((flags_on & att_array) || making_array_special)
- var = make_new_array_variable (name);
+ {
+ var = make_new_array_variable (name);
+ if (offset == 0)
+ VSETATTR (var, att_invisible);
+ }
else
#endif
if (offset)
- var = bind_variable (name, "", 0);
+ var = mkglobal ? bind_global_variable (name, "", 0) : bind_variable (name, "", 0);
else
{
- var = bind_variable (name, (char *)NULL, 0);
+ var = mkglobal ? bind_global_variable (name, (char *)NULL, 0) : bind_variable (name, (char *)NULL, 0);
VSETATTR (var, att_invisible);
}
}
+ /* Can't take an existing array variable and make it a nameref */
+ else if ((array_p (var) || assoc_p (var)) && (flags_on & att_nameref))
+ {
+ builtin_error (_("%s: reference variable cannot be an array"), name);
+ assign_error++;
+ NEXT_VARIABLE ();
+ }
+ else if (flags_on & att_nameref)
+ {
+ /* ksh93 compat: turning on nameref attribute turns off -ilu */
+ VUNSETATTR (var, att_integer|att_uppercase|att_lowercase|att_capcase);
+ }
/* Cannot use declare +r to turn off readonly attribute. */
if (readonly_p (var) && (flags_off & att_readonly))
@@ -501,6 +580,25 @@ declare_internal (list, local_var)
var = convert_var_to_array (var);
#endif /* ARRAY_VARS */
+ /* XXX - we note that we are turning on nameref attribute and defer
+ setting it until the assignment has been made so we don't do an
+ inadvertent nameref lookup. Might have to do the same thing for
+ flags_off&att_nameref. */
+ /* XXX - ksh93 makes it an error to set a readonly nameref variable
+ using a single typeset command. */
+ onref = (flags_on & att_nameref);
+ flags_on &= ~att_nameref;
+#if defined (ARRAY_VARS)
+ if (array_p (var) || assoc_p (var)
+ || (offset && compound_array_assign)
+ || simple_array_assign)
+ onref = 0; /* array variables may not be namerefs */
+#endif
+
+ /* ksh93 seems to do this */
+ offref = (flags_off & att_nameref);
+ flags_off &= ~att_nameref;
+
VSETATTR (var, flags_on);
VUNSETATTR (var, flags_off);
@@ -516,6 +614,8 @@ declare_internal (list, local_var)
if (var == 0) /* some kind of assignment error */
{
assign_error++;
+ flags_on |= onref;
+ flags_off |= offref;
NEXT_VARIABLE ();
}
}
@@ -532,7 +632,19 @@ declare_internal (list, local_var)
/* bind_variable_value duplicates the essential internals of
bind_variable() */
if (offset)
- bind_variable_value (var, value, aflags);
+ {
+ if (onref)
+ aflags |= ASS_NAMEREF;
+ v = bind_variable_value (var, value, aflags);
+ if (v == 0 && onref)
+ {
+ sh_invalidid (value);
+ assign_error++;
+ /* XXX - unset this variable? or leave it as normal var? */
+ delete_var (var->name, mkglobal ? global_variables : shell_variables);
+ NEXT_VARIABLE ();
+ }
+ }
/* If we found this variable in the temporary environment, as with
`var=value declare -x var', make sure it is treated identically
@@ -562,6 +674,17 @@ declare_internal (list, local_var)
}
}
+ /* Turn on nameref attribute we deferred above. */
+ /* XXX - should we turn on the noassign attribute for consistency with
+ ksh93 when we turn on the nameref attribute? */
+ VSETATTR (var, onref);
+ flags_on |= onref;
+ VUNSETATTR (var, offref);
+ flags_off |= offref;
+ /* Yuck. ksh93 compatibility */
+ if (refvar)
+ VUNSETATTR (refvar, flags_off);
+
stupidly_hack_special_variables (name);
NEXT_VARIABLE ();
diff --git a/builtins/echo.def b/builtins/echo.def
index 62c61994..f4738264 100644
--- a/builtins/echo.def
+++ b/builtins/echo.def
@@ -38,7 +38,8 @@ $DEPENDS_ON V9_ECHO
$SHORT_DOC echo [-neE] [arg ...]
Write arguments to the standard output.
-Display the ARGs on the standard output followed by a newline.
+Display the ARGs, separated by a single space character and followed by a
+newline, on the standard output.
Options:
-n do not append a newline
@@ -50,6 +51,7 @@ Options:
\b backspace
\c suppress further output
\e escape character
+ \E escape character
\f form feed
\n new line
\r carriage return
diff --git a/builtins/eval.def b/builtins/eval.def
index ee9a23d5..5e824c92 100644
--- a/builtins/eval.def
+++ b/builtins/eval.def
@@ -53,6 +53,5 @@ eval_builtin (list)
return (EX_USAGE);
list = loptend; /* skip over possible `--' */
- /* Note that parse_and_execute () frees the string it is passed. */
- return (list ? parse_and_execute (string_list (list), "eval", SEVAL_NOHIST) : EXECUTION_SUCCESS);
+ return (list ? evalstring (string_list (list), "eval", SEVAL_NOHIST) : EXECUTION_SUCCESS);
}
diff --git a/builtins/evalfile.c b/builtins/evalfile.c
index 4d69acb1..058d99da 100644
--- a/builtins/evalfile.c
+++ b/builtins/evalfile.c
@@ -109,11 +109,16 @@ _evalfile (filename, flags)
GET_ARRAY_FROM_VAR ("BASH_ARGC", bash_argc_v, bash_argc_a);
# endif
#endif
-
+
fd = open (filename, O_RDONLY);
if (fd < 0 || (fstat (fd, &finfo) == -1))
{
+ i = errno;
+ if (fd >= 0)
+ close (fd);
+ errno = i;
+
file_error_and_exit:
if (((flags & FEVAL_ENOENTOK) == 0) || errno != ENOENT)
file_error (filename);
@@ -133,11 +138,13 @@ file_error_and_exit:
if (S_ISDIR (finfo.st_mode))
{
(*errfunc) (_("%s: is a directory"), filename);
+ close (fd);
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
}
else if ((flags & FEVAL_REGFILE) && S_ISREG (finfo.st_mode) == 0)
{
(*errfunc) (_("%s: not a regular file"), filename);
+ close (fd);
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
}
@@ -146,6 +153,7 @@ file_error_and_exit:
if (file_size != finfo.st_size || file_size + 1 < file_size)
{
(*errfunc) (_("%s: file is too large"), filename);
+ close (fd);
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE : -1);
}
@@ -251,7 +259,7 @@ file_error_and_exit:
if (flags & FEVAL_BUILTIN)
result = EXECUTION_SUCCESS;
- return_val = setjmp (return_catch);
+ return_val = setjmp_nosigs (return_catch);
/* If `return' was seen outside of a function, but in the script, then
force parse_and_execute () to clean up. */
diff --git a/builtins/evalstring.c b/builtins/evalstring.c
index 333a56ee..ce5b4d63 100644
--- a/builtins/evalstring.c
+++ b/builtins/evalstring.c
@@ -1,6 +1,6 @@
/* evalstring.c - evaluate a string as one or more shell commands. */
-/* Copyright (C) 1996-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -61,7 +61,7 @@ extern int errno;
#define IS_BUILTIN(s) (builtin_address_internal(s, 0) != (struct builtin *)NULL)
extern int indirection_level, subshell_environment;
-extern int line_number;
+extern int line_number, line_number_for_err_trap;
extern int current_token, shell_eof_token;
extern int last_command_exit_value;
extern int running_trap;
@@ -69,7 +69,9 @@ extern int loop_level;
extern int executing_list;
extern int comsub_ignore_return;
extern int posixly_correct;
+extern int return_catch_flag, return_catch_value;
extern sh_builtin_func_t *this_shell_builtin;
+extern char *the_printed_command_except_trap;
int parse_and_execute_level = 0;
@@ -86,6 +88,14 @@ set_history_remembering ()
}
#endif
+static void
+restore_lastcom (x)
+ char *x;
+{
+ FREE (the_printed_command_except_trap);
+ the_printed_command_except_trap = x;
+}
+
/* How to force parse_and_execute () to clean up after itself. */
void
parse_and_execute_cleanup ()
@@ -108,7 +118,7 @@ parse_prologue (string, flags, tag)
int flags;
char *tag;
{
- char *orig_string;
+ char *orig_string, *lastcom;
int x;
orig_string = string;
@@ -118,6 +128,7 @@ parse_prologue (string, flags, tag)
unwind_protect_jmp_buf (top_level);
unwind_protect_int (indirection_level);
unwind_protect_int (line_number);
+ unwind_protect_int (line_number_for_err_trap);
unwind_protect_int (loop_level);
unwind_protect_int (executing_list);
unwind_protect_int (comsub_ignore_return);
@@ -140,8 +151,17 @@ parse_prologue (string, flags, tag)
x = get_current_prompt_level ();
add_unwind_protect (set_current_prompt_level, x);
}
-
+
+ if (the_printed_command_except_trap)
+ {
+ lastcom = savestring (the_printed_command_except_trap);
+ add_unwind_protect (restore_lastcom, lastcom);
+ }
+
add_unwind_protect (pop_stream, (char *)NULL);
+ if (parser_expanding_alias ())
+ add_unwind_protect (parser_restore_alias, (char *)NULL);
+
if (orig_string && ((flags & SEVAL_NOFREE) == 0))
add_unwind_protect (xfree, orig_string);
end_unwind_frame ();
@@ -175,6 +195,7 @@ parse_and_execute (string, from_file, flags)
int code, lreset;
volatile int should_jump_to_top_level, last_result;
COMMAND *volatile command;
+ volatile sigset_t pe_sigmask;
parse_prologue (string, flags, PE_TAG);
@@ -182,11 +203,21 @@ parse_and_execute (string, from_file, flags)
lreset = flags & SEVAL_RESETLINE;
+#if defined (HAVE_POSIX_SIGNALS)
+ /* If we longjmp and are going to go on, use this to restore signal mask */
+ sigemptyset (&pe_sigmask);
+ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &pe_sigmask);
+#endif
+
/* 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 (lreset);
+ if (parser_expanding_alias ())
+ /* push current shell_input_line */
+ parser_save_alias ();
+
if (lreset == 0)
line_number--;
@@ -209,15 +240,28 @@ parse_and_execute (string, from_file, flags)
/* Provide a location for functions which `longjmp (top_level)' to
jump to. This prevents errors in substitution from restarting
the reader loop directly, for example. */
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
if (code)
{
should_jump_to_top_level = 0;
switch (code)
{
- case FORCE_EOF:
case ERREXIT:
+ /* variable_context -> 0 is what eval.c:reader_loop() does in
+ these circumstances. Don't bother with cleanup here because
+ we don't want to run the function execution cleanup stuff
+ that will cause pop_context and other functions to run.
+ XXX - change that if we want the function context to be
+ unwound. */
+ if (exit_immediately_on_error && variable_context)
+ {
+ discard_unwind_frame ("pe_dispose");
+ variable_context = 0; /* not in a function */
+ }
+ should_jump_to_top_level = 1;
+ goto out;
+ case FORCE_EOF:
case EXITPROG:
if (command)
run_unwind_frame ("pe_dispose");
@@ -240,6 +284,9 @@ parse_and_execute (string, from_file, flags)
#if 0
dispose_command (command); /* pe_dispose does this */
#endif
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &pe_sigmask, (sigset_t *)NULL);
+#endif
continue;
}
@@ -308,7 +355,8 @@ parse_and_execute (string, from_file, flags)
command->value.Simple->words == 0 &&
command->value.Simple->redirects &&
command->value.Simple->redirects->next == 0 &&
- command->value.Simple->redirects->instruction == r_input_direction)
+ command->value.Simple->redirects->instruction == r_input_direction &&
+ command->value.Simple->redirects->redirector.dest == 0)
{
int r;
r = cat_file (command->value.Simple->redirects);
@@ -317,7 +365,6 @@ parse_and_execute (string, from_file, flags)
else
last_result = execute_command_internal
(command, 0, NO_PIPE, NO_PIPE, bitmap);
-
dispose_command (command);
dispose_fd_bitmap (bitmap);
discard_unwind_frame ("pe_dispose");
@@ -377,15 +424,26 @@ parse_string (string, from_file, flags, endp)
volatile int should_jump_to_top_level;
COMMAND *volatile command, *oglobal;
char *ostring;
+ volatile sigset_t ps_sigmask;
parse_prologue (string, flags, PS_TAG);
+#if defined (HAVE_POSIX_SIGNALS)
+ /* If we longjmp and are going to go on, use this to restore signal mask */
+ sigemptyset (&ps_sigmask);
+ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &ps_sigmask);
+#endif
+
+/* itrace("parse_string: `%s'", string); */
/* 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);
-
+ if (parser_expanding_alias ())
+ /* push current shell_input_line */
+ parser_save_alias ();
+
code = should_jump_to_top_level = 0;
oglobal = global_command;
ostring = string;
@@ -402,7 +460,7 @@ parse_string (string, from_file, flags, endp)
/* Provide a location for functions which `longjmp (top_level)' to
jump to. */
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
if (code)
{
@@ -424,6 +482,9 @@ itrace("parse_string: longjmp executed: code = %d", code);
goto out;
default:
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &ps_sigmask, (sigset_t *)NULL);
+#endif
command_error ("parse_string", CMDERR_BADJUMP, code, 0);
break;
}
@@ -506,3 +567,49 @@ cat_file (r)
return (rval);
}
+
+int
+evalstring (string, from_file, flags)
+ char *string;
+ const char *from_file;
+ int flags;
+{
+ volatile int r, rflag, rcatch;
+
+ rcatch = 0;
+ rflag = return_catch_flag;
+ /* If we are in a place where `return' is valid, we have to catch
+ `eval "... return"' and make sure parse_and_execute cleans up. Then
+ we can trampoline to the previous saved return_catch location. */
+ if (rflag)
+ {
+ begin_unwind_frame ("evalstring");
+
+ unwind_protect_int (return_catch_flag);
+ unwind_protect_jmp_buf (return_catch);
+
+ return_catch_flag++; /* increment so we have a counter */
+ rcatch = setjmp_nosigs (return_catch);
+ }
+
+ if (rcatch)
+ {
+ parse_and_execute_cleanup ();
+ r = return_catch_value;
+ }
+ else
+ /* Note that parse_and_execute () frees the string it is passed. */
+ r = parse_and_execute (string, from_file, flags);
+
+ if (rflag)
+ {
+ run_unwind_frame ("evalstring");
+ if (rcatch && return_catch_flag)
+ {
+ return_catch_value = r;
+ longjmp (return_catch, 1);
+ }
+ }
+
+ return (r);
+}
diff --git a/builtins/exec.def b/builtins/exec.def
index 5d1e625b..9cf76d53 100644
--- a/builtins/exec.def
+++ b/builtins/exec.def
@@ -1,7 +1,7 @@
This file is exec.def, from which is created exec.c.
It implements the builtin "exec" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -144,7 +144,7 @@ exec_builtin (list)
args = strvec_from_word_list (list, 1, 0, (int *)NULL);
/* A command with a slash anywhere in its name is not looked up in $PATH. */
- command = absolute_program (args[0]) ? args[0] : search_for_command (args[0]);
+ command = absolute_program (args[0]) ? args[0] : search_for_command (args[0], 1);
if (command == 0)
{
diff --git a/builtins/fc.def b/builtins/fc.def
index 9b298cb4..cf6b72c7 100644
--- a/builtins/fc.def
+++ b/builtins/fc.def
@@ -1,7 +1,7 @@
This file is fc.def, from which is created fc.c.
It implements the builtin "fc" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -52,7 +52,7 @@ $END
#include <config.h>
#if defined (HISTORY)
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
#include "../bashtypes.h"
@@ -85,7 +85,7 @@ $END
extern int errno;
#endif /* !errno */
-extern int current_command_line_count, saved_command_line_count;
+extern int current_command_line_count;
extern int literal_history;
extern int posixly_correct;
extern int subshell_environment, interactive_shell;
@@ -173,7 +173,7 @@ fc_builtin (list)
register int i;
register char *sep;
int numbering, reverse, listing, execute;
- int histbeg, histend, last_hist, retval, opt, rh;
+ int histbeg, histend, last_hist, retval, opt, rh, real_last;
FILE *stream;
REPL *rlist, *rl;
char *ename, *command, *newcom, *fcedit;
@@ -303,6 +303,14 @@ fc_builtin (list)
rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
last_hist = i - rh - hist_last_line_added;
+ /* Make sure that real_last is calculated the same way here and in
+ fc_gethnum. The return value from fc_gethnum is treated specially if
+ it is == real_last and we are listing commands. */
+ real_last = i;
+ /* back up from the end to the last non-null history entry */
+ while (hlist[real_last] == 0 && real_last > 0)
+ real_last--;
+
/* XXX */
if (i == last_hist && hlist[last_hist] == 0)
while (last_hist >= 0 && hlist[last_hist] == 0)
@@ -320,6 +328,8 @@ fc_builtin (list)
if (list)
histend = fc_gethnum (list->word->word, hlist);
+ else if (histbeg == real_last)
+ histend = listing ? real_last : histbeg;
else
histend = listing ? last_hist : histbeg;
}
@@ -475,7 +485,7 @@ fc_gethnum (command, hlist)
HIST_ENTRY **hlist;
{
int sign, n, clen, rh;
- register int i, j, last_hist;
+ register int i, j, last_hist, real_last;
register char *s;
sign = 1;
@@ -503,12 +513,17 @@ fc_gethnum (command, hlist)
if (last_hist < 0)
return (-1);
+ real_last = i;
i = last_hist;
/* No specification defaults to most recent command. */
if (command == NULL)
return (i);
+ /* back up from the end to the last non-null history entry */
+ while (hlist[real_last] == 0 && real_last > 0)
+ real_last--;
+
/* Otherwise, there is a specification. It can be a number relative to
the current position, or an absolute history number. */
s = command;
@@ -533,7 +548,7 @@ fc_gethnum (command, hlist)
return (n < 0 ? 0 : n);
}
else if (n == 0)
- return (i);
+ return ((sign == -1) ? real_last : i);
else
{
n -= history_base;
diff --git a/builtins/gen-helpfiles.c b/builtins/gen-helpfiles.c
new file mode 100644
index 00000000..fac34edf
--- /dev/null
+++ b/builtins/gen-helpfiles.c
@@ -0,0 +1,197 @@
+/* gen-helpfiles - create files containing builtin help text */
+
+/* Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+*/
+
+/* This links with a specially-generated version of builtins.c and takes
+ the long_doc members of each struct builtin element and writes those to
+ the file named by the `handle' member of the struct builtin element. */
+
+#if !defined (CROSS_COMPILING)
+# include <config.h>
+#else /* CROSS_COMPILING */
+/* A conservative set of defines based on POSIX/SUS3/XPG6 */
+# define HAVE_UNISTD_H
+# define HAVE_STRING_H
+# define HAVE_STDLIB_H
+
+# define HAVE_RENAME
+#endif /* CROSS_COMPILING */
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#ifndef _MINIX
+# include "../bashtypes.h"
+# if defined (HAVE_SYS_FILE_H)
+# include <sys/file.h>
+# endif
+#endif
+
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "../bashansi.h"
+#include <stdio.h>
+#include <errno.h>
+
+#include "stdc.h"
+
+#include "../builtins.h"
+#include "tmpbuiltins.h"
+
+#if defined (USING_BASH_MALLOC)
+#undef xmalloc
+#undef xrealloc
+#undef xfree
+
+#undef free /* defined in xmalloc.h */
+#endif
+
+#ifndef errno
+extern int errno;
+#endif
+
+#if !defined (__STDC__) && !defined (strcpy)
+extern char *strcpy ();
+#endif /* !__STDC__ && !strcpy */
+
+#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
+
+/* 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
+
+/* Non-zero means to produce separate help files for each builtin, named by
+ the builtin name, in `./helpfiles'. */
+int separate_helpfiles = 0;
+
+/* Non-zero means to create single C strings for each `longdoc', with
+ embedded newlines, for ease of translation. */
+int single_longdoc_strings = 1;
+
+/* The name of a directory into which the separate external help files will
+ eventually be installed. */
+char *helpfile_directory;
+
+/* Forward declarations. */
+
+int write_helpfiles __P((struct builtin *));
+
+/* For each file mentioned on the command line, process it and
+ write the information to STRUCTFILE and EXTERNFILE, while
+ creating the production file if neccessary. */
+int
+main (argc, argv)
+ int argc;
+ char **argv;
+{
+ int arg_index = 1;
+
+ while (arg_index < argc && argv[arg_index][0] == '-')
+ {
+ char *arg = argv[arg_index++];
+
+ if (strcmp (arg, "-noproduction") == 0)
+ ;
+ else if (strcmp (arg, "-H") == 0)
+ helpfile_directory = argv[arg_index++];
+ else if (strcmp (arg, "-S") == 0)
+ single_longdoc_strings = 0;
+ else
+ {
+ fprintf (stderr, "%s: Unknown flag %s.\n", argv[0], arg);
+ exit (2);
+ }
+ }
+
+ write_helpfiles(shell_builtins);
+
+ exit (0);
+}
+
+/* Write DOCUMENTATION to STREAM, perhaps surrounding it with double-quotes
+ and quoting special characters in the string. Handle special things for
+ internationalization (gettext) and the single-string vs. multiple-strings
+ issues. */
+void
+write_documentation (stream, documentation, indentation)
+ FILE *stream;
+ char *documentation;
+ int indentation;
+{
+ if (stream == 0)
+ return;
+
+ if (documentation)
+ fprintf (stream, "%*s%s\n", indentation, " ", documentation);
+}
+
+int
+write_helpfiles (builtins)
+ struct builtin *builtins;
+{
+ char *helpfile, *bname, *fname;
+ FILE *helpfp;
+ int i, hdlen;
+ struct builtin b;
+
+ i = mkdir ("helpfiles", 0777);
+ if (i < 0 && errno != EEXIST)
+ {
+ fprintf (stderr, "write_helpfiles: helpfiles: cannot create directory\n");
+ return -1;
+ }
+
+ hdlen = strlen ("helpfiles/");
+ for (i = 0; i < num_shell_builtins; i++)
+ {
+ b = builtins[i];
+
+ fname = (char *)b.handle;
+ helpfile = (char *)malloc (hdlen + strlen (fname) + 1);
+ if (helpfile == 0)
+ {
+ fprintf (stderr, "gen-helpfiles: cannot allocate memory\n");
+ exit (1);
+ }
+ sprintf (helpfile, "helpfiles/%s", fname);
+
+ helpfp = fopen (helpfile, "w");
+ if (helpfp == 0)
+ {
+ fprintf (stderr, "write_helpfiles: cannot open %s\n", helpfile);
+ free (helpfile);
+ continue;
+ }
+
+ write_documentation (helpfp, b.long_doc[0], 4);
+
+ fflush (helpfp);
+ fclose (helpfp);
+ free (helpfile);
+ }
+ return 0;
+}
diff --git a/builtins/hash.def b/builtins/hash.def
index 6724ad17..85ef364b 100644
--- a/builtins/hash.def
+++ b/builtins/hash.def
@@ -1,7 +1,7 @@
This file is hash.def, from which is created hash.c.
It implements the builtin "hash" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -31,7 +31,7 @@ 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
+ -p pathname use PATHNAME as 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
@@ -276,6 +276,7 @@ list_hashed_filename_targets (list, fmt)
printf ("%s\t", l->word->word);
printf ("%s\n", target);
}
+ free (target);
}
return (all_found ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
diff --git a/builtins/help.def b/builtins/help.def
index 8fb0e2b4..1894f177 100644
--- a/builtins/help.def
+++ b/builtins/help.def
@@ -1,7 +1,7 @@
This file is help.def, from which is created help.c.
It implements the builtin "help" in Bash.
-Copyright (C) 1987-2009 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -92,7 +92,7 @@ help_builtin (list)
{
register int i;
char *pattern, *name;
- int plen, match_found, sflag, dflag, mflag;
+ int plen, match_found, sflag, dflag, mflag, m, pass, this_found;
dflag = sflag = mflag = 0;
reset_internal_getopt ();
@@ -137,29 +137,43 @@ help_builtin (list)
pattern = list->word->word;
plen = strlen (pattern);
- for (i = 0; name = shell_builtins[i].name; i++)
+ for (pass = 1, this_found = 0; pass < 3; pass++)
{
- QUIT;
- if ((strncmp (pattern, name, plen) == 0) ||
- (strmatch (pattern, name, FNMATCH_EXTFLAG) != FNM_NOMATCH))
+ for (i = 0; name = shell_builtins[i].name; i++)
{
- 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);
+ QUIT;
+
+ /* First pass: look for exact string or pattern matches.
+ Second pass: look for prefix matches like bash-4.2 */
+ if (pass == 1)
+ m = (strcmp (pattern, name) == 0) ||
+ (strmatch (pattern, name, FNMATCH_EXTFLAG) != FNM_NOMATCH);
+ else
+ m = strncmp (pattern, name, plen) == 0;
+
+ if (m)
+ {
+ this_found = 1;
+ 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);
+ }
}
+ if (pass == 1 && this_found == 1)
+ break;
}
}
@@ -209,7 +223,7 @@ show_longdoc (i)
zcatfd (fd, 1, doc[0]);
close (fd);
}
- else
+ else if (doc)
for (j = 0; doc[j]; j++)
printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j]));
}
@@ -327,6 +341,140 @@ show_manpage (name, i)
}
static void
+dispcolumn (i, buf, bufsize, width, height)
+ int i;
+ char *buf;
+ size_t bufsize;
+ int width, height;
+{
+ int j;
+ int displen;
+ char *helpdoc;
+
+ /* first column */
+ helpdoc = _(shell_builtins[i].short_doc);
+
+ buf[0] = (shell_builtins[i].flags & BUILTIN_ENABLED) ? ' ' : '*';
+ strncpy (buf + 1, helpdoc, width - 2);
+ buf[width - 2] = '>'; /* indicate truncation */
+ buf[width - 1] = '\0';
+ printf ("%s", buf);
+ if (((i << 1) >= num_shell_builtins) || (i+height >= num_shell_builtins))
+ {
+ printf ("\n");
+ return;
+ }
+
+ displen = strlen (buf);
+ /* two spaces */
+ for (j = displen; j < width; j++)
+ putc (' ', stdout);
+
+ /* second column */
+ helpdoc = _(shell_builtins[i+height].short_doc);
+
+ buf[0] = (shell_builtins[i+height].flags & BUILTIN_ENABLED) ? ' ' : '*';
+ strncpy (buf + 1, helpdoc, width - 3);
+ buf[width - 3] = '>'; /* indicate truncation */
+ buf[width - 2] = '\0';
+
+ printf ("%s\n", buf);
+}
+
+#if defined (HANDLE_MULTIBYTE)
+static void
+wdispcolumn (i, buf, bufsize, width, height)
+ int i;
+ char *buf;
+ size_t bufsize;
+ int width, height;
+{
+ int j;
+ int displen;
+ char *helpdoc;
+ wchar_t *wcstr;
+ size_t slen, n;
+ int wclen;
+
+ /* first column */
+ helpdoc = _(shell_builtins[i].short_doc);
+
+ wcstr = 0;
+ slen = mbstowcs ((wchar_t *)0, helpdoc, 0);
+ if (slen == -1)
+ {
+ dispcolumn (i, buf, bufsize, width, height);
+ return;
+ }
+
+ /* No bigger than the passed max width */
+ if (slen >= width)
+ slen = width - 2;
+ wcstr = (wchar_t *)xmalloc (sizeof (wchar_t) * (width + 2));
+ n = mbstowcs (wcstr+1, helpdoc, slen + 1);
+ wcstr[n+1] = L'\0';
+
+ /* Turn tabs and newlines into spaces for column display, since wcwidth
+ returns -1 for them */
+ for (j = 1; j < n; j++)
+ if (wcstr[j] == L'\n' || wcstr[j] == L'\t')
+ wcstr[j] = L' ';
+
+ displen = wcsnwidth (wcstr+1, slen, width - 2) + 1; /* +1 for ' ' or '*' */
+
+ wcstr[0] = (shell_builtins[i].flags & BUILTIN_ENABLED) ? L' ' : L'*';
+
+ /* This assumes each wide char takes up one column position when displayed */
+ wcstr[width - 2] = L'>'; /* indicate truncation */
+ wcstr[width - 1] = L'\0';
+
+ printf ("%ls", wcstr);
+ if (((i << 1) >= num_shell_builtins) || (i+height >= num_shell_builtins))
+ {
+ printf ("\n");
+ return;
+ }
+
+ /* at least one space */
+ for (j = displen; j < width; j++)
+ putc (' ', stdout);
+
+ /* second column */
+ helpdoc = _(shell_builtins[i+height].short_doc);
+ slen = mbstowcs ((wchar_t *)0, helpdoc, 0);
+ if (slen == -1)
+ {
+ /* for now */
+ printf ("%c%s\n", (shell_builtins[i+height].flags & BUILTIN_ENABLED) ? ' ' : '*', helpdoc);
+ return;
+ }
+
+ /* Reuse wcstr since it is already width wide chars long */
+ if (slen >= width)
+ slen = width - 2;
+ n = mbstowcs (wcstr+1, helpdoc, slen + 1);
+ wcstr[n+1] = L'\0'; /* make sure null-terminated */
+
+ /* Turn tabs and newlines into spaces for column display */
+ for (j = 1; j < n; j++)
+ if (wcstr[j] == L'\n' || wcstr[j] == L'\t')
+ wcstr[j] = L' ';
+
+ displen = wcsnwidth (wcstr+1, slen, width - 2);
+
+ wcstr[0] = (shell_builtins[i+height].flags & BUILTIN_ENABLED) ? L' ' : L'*';
+
+ /* This assumes each wide char takes up one column position when displayed */
+ wcstr[width - 3] = L'>'; /* indicate truncation */
+ wcstr[width - 2] = L'\0';
+
+ printf ("%ls\n", wcstr);
+
+ free (wcstr);
+}
+#endif /* HANDLE_MULTIBYTE */
+
+static void
show_builtin_command_help ()
{
int i, j;
@@ -358,28 +506,12 @@ A star (*) next to a name means that the command is disabled.\n\
{
QUIT;
- /* first column */
- blurb[0] = (shell_builtins[i].flags & BUILTIN_ENABLED) ? ' ' : '*';
- 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);
-
- /* 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 defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1)
+ wdispcolumn (i, blurb, sizeof (blurb), width, height);
+ else
+#endif
+ dispcolumn (i, blurb, sizeof (blurb), width, height);
}
}
#endif /* HELP_BUILTIN */
diff --git a/builtins/history.def b/builtins/history.def
index e8249e99..4cf7308f 100644
--- a/builtins/history.def
+++ b/builtins/history.def
@@ -324,9 +324,10 @@ 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 && bash_delete_last_history () == 0)
+ if (remember_on_history && hist_last_line_pushed == 0 &&
+ hist_last_line_added && bash_delete_last_history () == 0)
#else
- if (hist_last_line_pushed == 0 &&
+ if (remember_on_history && hist_last_line_pushed == 0 &&
(hist_last_line_added ||
(current_command_line_count > 0 && current_command_first_line_saved && command_oriented_history))
&& bash_delete_last_history () == 0)
diff --git a/builtins/jobs.def b/builtins/jobs.def
index b14e91f2..47da58e4 100644
--- a/builtins/jobs.def
+++ b/builtins/jobs.def
@@ -31,7 +31,7 @@ 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
+ -n lists only processes that have changed status since the last
notification
-p lists process IDs only
-r restrict output to running jobs
diff --git a/builtins/kill.def b/builtins/kill.def
index adf022c9..2e68f034 100644
--- a/builtins/kill.def
+++ b/builtins/kill.def
@@ -57,6 +57,8 @@ $END
#include "../bashansi.h"
#include "../bashintl.h"
+#include <signal.h>
+
#include "../shell.h"
#include "../trap.h"
#include "../jobs.h"
@@ -92,7 +94,7 @@ kill_builtin (list)
if (list == 0)
{
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
any_succeeded = listing = saw_signal = 0;
@@ -137,7 +139,7 @@ kill_builtin (list)
else if (ISOPTION (word, '?'))
{
builtin_usage ();
- return (EXECUTION_SUCCESS);
+ return (EX_USAGE);
}
/* If this is a signal specification then process it. We only process
the first one seen; other arguments may signify process groups (e.g,
@@ -166,7 +168,7 @@ kill_builtin (list)
if (list == 0)
{
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
while (list)
diff --git a/builtins/mapfile.def b/builtins/mapfile.def
index a5064a3a..2e6a6433 100644
--- a/builtins/mapfile.def
+++ b/builtins/mapfile.def
@@ -2,7 +2,7 @@ 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-2010 Free Software Foundation, Inc.
+Copyright (C) 2008-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -125,7 +125,7 @@ run_callback (callback, curindex, curline)
#endif
snprintf (execstr, execlen, "%s %d %s", callback, curindex, qline);
free (qline);
- return parse_and_execute (execstr, NULL, flags);
+ return evalstring (execstr, NULL, flags);
}
static void
@@ -172,6 +172,8 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
builtin_error (_("%s: not an indexed array"), array_name);
return (EXECUTION_FAILURE);
}
+ else if (invisible_p (entry))
+ VUNSETATTR (entry, att_invisible); /* no longer invisible */
if (flags & MAPF_CLEARARRAY)
array_flush (array_cell (entry));
@@ -193,7 +195,6 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
line_length = 0;
/* Reset the buffer for bash own stream */
- interrupt_immediately++;
for (array_index = origin, line_count = 1;
zgetline (fd, &line, &line_length, unbuffered_read) != -1;
array_index++)
@@ -212,6 +213,8 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
zsyncfd (fd);
}
+ /* XXX - bad things can happen if the callback modifies ENTRY, e.g.,
+ unsetting it or changing it to a non-indexed-array type. */
bind_array_element (entry, array_index, line, 0);
/* Have we exceeded # of lines to store? */
@@ -225,7 +228,6 @@ mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_n
if (unbuffered_read == 0)
zsyncfd (fd);
- interrupt_immediately--;
return EXECUTION_SUCCESS;
}
diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c
index cdfdfb18..15bb80f4 100644
--- a/builtins/mkbuiltins.c
+++ b/builtins/mkbuiltins.c
@@ -1,7 +1,7 @@
/* mkbuiltins.c - Create builtins.c, builtext.h, and builtdoc.c from
a single source file called builtins.def. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -85,6 +85,10 @@ int only_documentation = 0;
/* Non-zero means to not do any productions. */
int inhibit_production = 0;
+/* Non-zero means to not add functions (xxx_builtin) to the members of the
+ produced `struct builtin []' */
+int inhibit_functions = 0;
+
/* Non-zero means to produce separate help files for each builtin, named by
the builtin name, in `./helpfiles'. */
int separate_helpfiles = 0;
@@ -198,7 +202,7 @@ void remove_trailing_whitespace ();
/* For each file mentioned on the command line, process it and
write the information to STRUCTFILE and EXTERNFILE, while
- creating the production file if neccessary. */
+ creating the production file if necessary. */
int
main (argc, argv)
int argc;
@@ -222,6 +226,8 @@ main (argc, argv)
struct_filename = argv[arg_index++];
else if (strcmp (arg, "-noproduction") == 0)
inhibit_production = 1;
+ else if (strcmp (arg, "-nofunctions") == 0)
+ inhibit_functions = 1;
else if (strcmp (arg, "-document") == 0)
documentation_file = fopen (documentation_filename, "w");
else if (strcmp (arg, "-D") == 0)
@@ -322,10 +328,13 @@ main (argc, argv)
fclose (externfile);
}
+#if 0
+ /* This is now done by a different program */
if (separate_helpfiles)
{
write_helpfiles (saved_builtins);
}
+#endif
if (documentation_file)
{
@@ -390,7 +399,7 @@ copy_string_array (array)
return (copy);
}
-/* Add ELEMENT to ARRAY, growing the array if neccessary. */
+/* Add ELEMENT to ARRAY, growing the array if necessary. */
void
array_add (element, array)
char *element;
@@ -519,6 +528,7 @@ extract_info (filename, structfile, externfile)
if (nr == 0)
{
fprintf (stderr, "mkbuiltins: %s: skipping zero-length file\n", filename);
+ free (buffer);
return;
}
@@ -537,7 +547,7 @@ extract_info (filename, structfile, externfile)
{
array_add (&buffer[i], defs->lines);
- while (buffer[i] != '\n' && i < file_size)
+ while (i < file_size && buffer[i] != '\n')
i++;
buffer[i++] = '\0';
}
@@ -1092,7 +1102,7 @@ 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-2009 Free Software Foundation, Inc.",
+ "/* Copyright (C) 1987-2012 Free Software Foundation, Inc.",
"",
" This file is part of GNU Bash, the Bourne Again SHell.",
"",
@@ -1138,7 +1148,7 @@ char *structfile_footer[] = {
(char *)NULL
};
-/* Write out any neccessary opening information for
+/* Write out any necessary opening information for
STRUCTFILE and EXTERNFILE. */
void
write_file_headers (structfile, externfile)
@@ -1224,7 +1234,7 @@ write_builtins (defs, structfile, externfile)
{
fprintf (structfile, " { \"%s\", ", builtin->name);
- if (builtin->function)
+ if (builtin->function && inhibit_functions == 0)
fprintf (structfile, "%s, ", builtin->function);
else
fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
@@ -1236,9 +1246,15 @@ write_builtins (defs, structfile, externfile)
(builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
document_name (builtin));
- fprintf
- (structfile, " N_(\"%s\"), (char *)NULL },\n",
- builtin->shortdoc ? builtin->shortdoc : builtin->name);
+ if (inhibit_functions)
+ fprintf
+ (structfile, " N_(\"%s\"), \"%s\" },\n",
+ builtin->shortdoc ? builtin->shortdoc : builtin->name,
+ document_name (builtin));
+ else
+ fprintf
+ (structfile, " N_(\"%s\"), (char *)NULL },\n",
+ builtin->shortdoc ? builtin->shortdoc : builtin->name);
}
@@ -1247,7 +1263,7 @@ write_builtins (defs, structfile, externfile)
long documentation strings. */
save_builtin (builtin);
- /* Write out the matching #endif, if neccessary. */
+ /* Write out the matching #endif, if necessary. */
if (builtin->dependencies)
{
if (externfile)
@@ -1308,6 +1324,26 @@ write_longdocs (stream, builtins)
}
}
+void
+write_dummy_declarations (stream, builtins)
+ FILE *stream;
+ ARRAY *builtins;
+{
+ register int i;
+ BUILTIN_DESC *builtin;
+
+ for (i = 0; structfile_header[i]; i++)
+ fprintf (stream, "%s\n", structfile_header[i]);
+
+ for (i = 0; i < builtins->sindex; i++)
+ {
+ builtin = (BUILTIN_DESC *)builtins->array[i];
+
+ /* How to guarantee that no builtin is written more than once? */
+ fprintf (stream, "int %s () { return (0); }\n", builtin->function);
+ }
+}
+
/* Write an #ifdef string saying what needs to be defined (or not defined)
in order to allow compilation of the code that will follow.
STREAM is the stream to write the information to,
@@ -1407,7 +1443,7 @@ write_documentation (stream, documentation, indentation, flags)
base_indent = (string_array && single_longdoc_strings && filename_p == 0) ? BASE_INDENT : 0;
- for (i = 0, texinfo = (flags & TEXINFO); line = documentation[i]; i++)
+ for (i = 0, texinfo = (flags & TEXINFO); documentation && (line = documentation[i]); i++)
{
/* Allow #ifdef's to be written out verbatim, but don't put them into
separate help files. */
diff --git a/builtins/printf.def b/builtins/printf.def
index 71a7c00e..7f29126d 100644
--- a/builtins/printf.def
+++ b/builtins/printf.def
@@ -35,14 +35,19 @@ 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 format specifications described in printf(1)
-and printf(3), printf interprets:
+In addition to the standard format specifications described in printf(1),
+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
%(fmt)T output the date-time string resulting from using FMT as a format
string for strftime(3)
+The format is re-used as necessary to consume all of the arguments. If
+there are fewer arguments than the format requires, extra format
+specifications behave as if a zero value or null string, as appropriate,
+had been supplied.
+
Exit Status:
Returns success unless an invalid option is given or a write or assignment
error occurs.
@@ -158,7 +163,8 @@ extern int errno;
else if (vbuf) \
vbuf[0] = 0; \
terminate_immediately--; \
- fflush (stdout); \
+ if (ferror (stdout) == 0) \
+ fflush (stdout); \
if (ferror (stdout)) \
{ \
sh_wrerror (); \
@@ -460,7 +466,8 @@ printf_builtin (list)
timefmt[2] = '\0';
}
/* argument is seconds since the epoch with special -1 and -2 */
- arg = getintmax ();
+ /* default argument is equivalent to -1; special case */
+ arg = garglist ? getintmax () : -1;
if (arg == -1)
secs = NOW; /* roughly date +%s */
else if (arg == -2)
@@ -471,7 +478,12 @@ printf_builtin (list)
sv_tz ("TZ"); /* XXX -- just make sure */
#endif
tm = localtime (&secs);
- n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+ if (tm == 0)
+ {
+ secs = 0;
+ tm = localtime (&secs);
+ }
+ n = tm ? strftime (timebuf, sizeof (timebuf), timefmt, tm) : 0;
free (timefmt);
if (n == 0)
timebuf[0] = '\0';
@@ -483,8 +495,11 @@ printf_builtin (list)
n = printstr (start, timebuf, strlen (timebuf), fieldwidth, precision); /* XXX - %s for now */
if (n < 0)
{
- sh_wrerror ();
- clearerr (stdout);
+ if (ferror (stdout) == 0)
+ {
+ sh_wrerror ();
+ clearerr (stdout);
+ }
PRETURN (EXECUTION_FAILURE);
}
break;
@@ -524,8 +539,11 @@ printf_builtin (list)
r = printstr (start, xp, rlen, fieldwidth, precision);
if (r < 0)
{
- sh_wrerror ();
- clearerr (stdout);
+ if (ferror (stdout) == 0)
+ {
+ sh_wrerror ();
+ clearerr (stdout);
+ }
retval = EXECUTION_FAILURE;
}
free (xp);
@@ -548,7 +566,7 @@ printf_builtin (list)
else if (ansic_shouldquote (p))
xp = ansic_quote (p, 0, (int *)0);
else
- xp = sh_backslash_quote (p);
+ xp = sh_backslash_quote (p, 0, 1);
if (xp)
{
/* Use printstr to get fieldwidth and precision right. */
@@ -647,8 +665,7 @@ printf_builtin (list)
if (ferror (stdout))
{
- sh_wrerror ();
- clearerr (stdout);
+ /* PRETURN will print error message. */
PRETURN (EXECUTION_FAILURE);
}
}
@@ -681,12 +698,9 @@ printstr (fmt, string, len, fieldwidth, precision)
#endif
int padlen, nc, ljust, i;
int fw, pr; /* fieldwidth and precision */
+ intmax_t mfw, mpr;
-#if 0
- if (string == 0 || *string == '\0')
-#else
if (string == 0 || len == 0)
-#endif
return 0;
#if 0
@@ -697,6 +711,8 @@ printstr (fmt, string, len, fieldwidth, precision)
ljust = fw = 0;
pr = -1;
+ mfw = 0;
+ mpr = -1;
/* skip flags */
while (strchr (SKIP1, *fmt))
@@ -706,7 +722,7 @@ printstr (fmt, string, len, fieldwidth, precision)
fmt++;
}
- /* get fieldwidth, if present */
+ /* get fieldwidth, if present. rely on caller to clamp fieldwidth at INT_MAX */
if (*fmt == '*')
{
fmt++;
@@ -719,9 +735,11 @@ printstr (fmt, string, len, fieldwidth, precision)
}
else if (DIGIT (*fmt))
{
- fw = *fmt++ - '0';
+ mfw = *fmt++ - '0';
while (DIGIT (*fmt))
- fw = (fw * 10) + (*fmt++ - '0');
+ mfw = (mfw * 10) + (*fmt++ - '0');
+ /* Error if fieldwidth > INT_MAX here? */
+ fw = (mfw < 0 || mfw > INT_MAX) ? INT_MAX : mfw;
}
/* get precision, if present */
@@ -735,9 +753,11 @@ printstr (fmt, string, len, fieldwidth, precision)
}
else if (DIGIT (*fmt))
{
- pr = *fmt++ - '0';
+ mpr = *fmt++ - '0';
while (DIGIT (*fmt))
- pr = (pr * 10) + (*fmt++ - '0');
+ mpr = (mpr * 10) + (*fmt++ - '0');
+ /* Error if precision > INT_MAX here? */
+ pr = (mpr < 0 || mpr > INT_MAX) ? INT_MAX : mpr;
}
}
@@ -745,7 +765,7 @@ printstr (fmt, string, len, fieldwidth, precision)
/* If we remove this, get rid of `s'. */
if (*fmt != 'b' && *fmt != 'q')
{
- internal_error ("format parsing problem: %s", s);
+ internal_error (_("format parsing problem: %s"), s);
fw = pr = 0;
}
#endif
@@ -861,7 +881,7 @@ tescape (estart, cp, lenp, sawc)
*cp = '\\';
return 0;
}
- if (uvalue <= UCHAR_MAX)
+ if (uvalue <= 0x7f) /* <= 0x7f translates directly */
*cp = uvalue;
else
{
@@ -1089,6 +1109,9 @@ getint ()
ret = getintmax ();
+ if (garglist == 0)
+ return ret;
+
if (ret > INT_MAX)
{
printf_erange (garglist->word->word);
@@ -1229,12 +1252,19 @@ bind_printf_variable (name, value, flags)
char *value;
int flags;
{
+ SHELL_VAR *v;
+
#if defined (ARRAY_VARS)
if (valid_array_reference (name) == 0)
- return (bind_variable (name, value, flags));
+ v = bind_variable (name, value, flags);
else
- return (assign_array_element (name, value, flags));
+ v = assign_array_element (name, value, flags);
#else /* !ARRAY_VARS */
- return bind_variable (name, value, flags);
+ v = bind_variable (name, value, flags);
#endif /* !ARRAY_VARS */
+
+ if (v && readonly_p (v) == 0 && noassign_p (v) == 0)
+ VUNSETATTR (v, att_invisible);
+
+ return v;
}
diff --git a/builtins/psize.sh b/builtins/psize.sh
index c4d73e1a..29bc115f 100644
--- a/builtins/psize.sh
+++ b/builtins/psize.sh
@@ -27,7 +27,7 @@ echo ""
#
# Try to avoid tempfile races. We can't really check for the file's
-# existance before we run psize.aux, because `test -e' is not portable,
+# existence before we run psize.aux, because `test -e' is not portable,
# `test -h' (test for symlinks) is not portable, and `test -f' only
# checks for regular files. If we used mktemp(1), we're ahead of the
# game.
diff --git a/builtins/pushd.def b/builtins/pushd.def
index 05b75292..9c6548fa 100644
--- a/builtins/pushd.def
+++ b/builtins/pushd.def
@@ -1,7 +1,7 @@
This file is pushd.def, from which is created pushd.c. It implements the
builtins "pushd", "popd", and "dirs" in Bash.
-Copyright (C) 1987-2009 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -115,7 +115,7 @@ $END
#if defined (PUSHD_AND_POPD)
#include <stdio.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
@@ -228,7 +228,7 @@ pushd_builtin (list)
{
sh_invalidnum (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
if (direction == '-')
@@ -245,7 +245,7 @@ pushd_builtin (list)
{
sh_invalidopt (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
else
break;
@@ -339,7 +339,7 @@ popd_builtin (list)
{
sh_invalidnum (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
which_word = list->word->word;
}
@@ -347,7 +347,13 @@ popd_builtin (list)
{
sh_invalidopt (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
+ }
+ else if (*list->word->word)
+ {
+ builtin_error (_("%s: invalid argument"), list->word->word);
+ builtin_usage ();
+ return (EX_USAGE);
}
else
break;
@@ -426,7 +432,7 @@ dirs_builtin (list)
{
sh_invalidnum (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
sign = (*list->word->word == '+') ? 1 : -1;
desired_index = get_dirstack_index (i, sign, &index_flag);
@@ -435,7 +441,7 @@ dirs_builtin (list)
{
sh_invalidopt (list->word->word);
builtin_usage ();
- return (EXECUTION_FAILURE);
+ return (EX_USAGE);
}
}
diff --git a/builtins/read.def b/builtins/read.def
index d4078579..56945b95 100644
--- a/builtins/read.def
+++ b/builtins/read.def
@@ -1,7 +1,7 @@
This file is read.def, from which is created read.c.
It implements the builtin "read" in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -51,15 +51,17 @@ Options:
-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
+ not read within 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
+ fractional number. If TIMEOUT is 0, read returns immediately,
+ without trying to read any data, returning 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,
+The return code is zero, unless end-of-file is encountered, read times out
+(in which case it's greater than 128), a variable assignment error occurs,
or an invalid file descriptor is supplied as the argument to -u.
$END
@@ -101,10 +103,17 @@ $END
# include "input.h"
#endif
+#include "shmbutil.h"
+
#if !defined(errno)
extern int errno;
#endif
+extern void run_pending_traps __P((void));
+
+extern int posixly_correct;
+extern int trapped_signal_received;
+
struct ttsave
{
int fd;
@@ -127,15 +136,26 @@ static void ttyrestore __P((struct ttsave *));
static sighandler sigalrm __P((int));
static void reset_alarm __P((void));
-static procenv_t alrmbuf;
+/* Try this to see what the rest of the shell can do with the information. */
+procenv_t alrmbuf;
+int sigalrm_seen;
+
+static int reading;
static SigHandler *old_alrm;
static unsigned char delim;
+/* In all cases, SIGALRM just sets a flag that we check periodically. This
+ avoids problems with the semi-tricky stuff we do with the xfree of
+ input_string at the top of the unwind-protect list (see below). */
+
+/* Set a flag that CHECK_ALRM can check. This relies on zread calling
+ trap.c:check_signals_and_traps(), which knows about sigalrm_seen and
+ alrmbuf. */
static sighandler
sigalrm (s)
int s;
{
- longjmp (alrmbuf, 1);
+ sigalrm_seen = 1;
}
static void
@@ -158,7 +178,7 @@ read_builtin (list)
register char *varname;
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, ignore_delim, fd;
+ int raw, edit, nchars, silent, have_timeout, ignore_delim, fd, lastsig, t_errno;
unsigned int tmsec, tmusec;
long ival, uval;
intmax_t intval;
@@ -199,6 +219,9 @@ read_builtin (list)
#endif
USE_VAR(list);
USE_VAR(ps2);
+ USE_VAR(lastsig);
+
+ sigalrm_seen = reading = 0;
i = 0; /* Index into the string that we are reading. */
raw = edit = 0; /* Not reading raw input by default. */
@@ -306,6 +329,18 @@ read_builtin (list)
return (input_avail (fd) ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
#endif
+ /* Convenience: check early whether or not the first of possibly several
+ variable names is a valid identifier, and bail early if so. */
+#if defined (ARRAY_VARS)
+ if (list && legal_identifier (list->word->word) == 0 && valid_array_reference (list->word->word) == 0)
+#else
+ if (list && legal_identifier (list->word->word) == 0)
+#endif
+ {
+ sh_invalidid (list->word->word);
+ return (EXECUTION_FAILURE);
+ }
+
/* If we're asked to ignore the delimiter, make sure we do. */
if (ignore_delim)
delim = -1;
@@ -380,14 +415,15 @@ read_builtin (list)
if (tmsec > 0 || tmusec > 0)
{
- code = setjmp (alrmbuf);
+ code = setjmp_nosigs (alrmbuf);
if (code)
{
+ sigalrm_seen = 0;
/* Tricky. The top of the unwind-protect stack is the free of
input_string. We want to run all the rest and use input_string,
so we have to save input_string temporarily, run the unwind-
- protects, then restore input_string so we can use it later. */
-
+ protects, then restore input_string so we can use it later */
+ orig_input_string = 0;
input_string[i] = '\0'; /* make sure it's terminated */
if (i == 0)
{
@@ -464,10 +500,12 @@ read_builtin (list)
/* 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++;
- unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe;
+ CHECK_ALRM;
+ if ((nchars > 0) && (input_is_tty == 0) && ignore_delim) /* read -N */
+ unbuffered_read = 2;
+ else if ((nchars > 0) || (delim != '\n') || input_is_pipe)
+ unbuffered_read = 1;
if (prompt && edit == 0)
{
@@ -482,6 +520,8 @@ read_builtin (list)
ps2 = 0;
for (print_ps2 = eof = retval = 0;;)
{
+ CHECK_ALRM;
+
#if defined (READLINE)
if (edit)
{
@@ -492,7 +532,9 @@ read_builtin (list)
}
if (rlbuf == 0)
{
+ reading = 1;
rlbuf = edit_line (prompt ? prompt : "", itext);
+ reading = 0;
rlind = 0;
}
if (rlbuf == 0)
@@ -515,26 +557,58 @@ read_builtin (list)
print_ps2 = 0;
}
- if (unbuffered_read)
- retval = zread (fd, &c, 1);
+#if 0
+ if (posixly_correct == 0)
+ interrupt_immediately++;
+#endif
+ reading = 1;
+ if (unbuffered_read == 2)
+ retval = posixly_correct ? zreadintr (fd, &c, 1) : zreadn (fd, &c, nchars - nr);
+ else if (unbuffered_read)
+ retval = posixly_correct ? zreadintr (fd, &c, 1) : zread (fd, &c, 1);
else
- retval = zreadc (fd, &c);
+ retval = posixly_correct ? zreadcintr (fd, &c) : zreadc (fd, &c);
+ reading = 0;
+#if 0
+ if (posixly_correct == 0)
+ interrupt_immediately--;
+#endif
if (retval <= 0)
{
+ if (retval < 0 && errno == EINTR)
+ {
+ lastsig = LASTSIG();
+ if (lastsig == 0)
+ lastsig = trapped_signal_received;
+ run_pending_traps (); /* because interrupt_immediately is not set */
+ }
+ else
+ lastsig = 0;
+ CHECK_TERMSIG;
eof = 1;
break;
}
+ CHECK_ALRM;
+
#if defined (READLINE)
}
#endif
+ CHECK_ALRM;
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 ();
- add_unwind_protect (xfree, input_string);
+ char *t;
+ t = (char *)xrealloc (input_string, size += 128);
+
+ /* Only need to change unwind-protect if input_string changes */
+ if (t != input_string)
+ {
+ input_string = t;
+ remove_unwind_protect ();
+ add_unwind_protect (xfree, input_string);
+ }
}
/* If the next character is to be accepted verbatim, a backslash
@@ -565,9 +639,12 @@ read_builtin (list)
continue;
}
- if ((unsigned char)c == delim)
+ if (ignore_delim == 0 && (unsigned char)c == delim)
break;
+ if (c == '\0' && delim != '\0')
+ continue; /* skip NUL bytes in input */
+
if ((skip_ctlesc == 0 && c == CTLESC) || (skip_ctlnul == 0 && c == CTLNUL))
{
saw_escape++;
@@ -576,9 +653,10 @@ read_builtin (list)
add_char:
input_string[i++] = c;
+ CHECK_ALRM;
#if defined (HANDLE_MULTIBYTE)
- if (nchars > 0 && MB_CUR_MAX > 1)
+ if (nchars > 0 && MB_CUR_MAX > 1 && is_basic (c) == 0)
{
input_string[i] = '\0'; /* for simplicity and debugging */
i += read_mbchar (fd, input_string, i, c, unbuffered_read);
@@ -591,15 +669,16 @@ add_char:
break;
}
input_string[i] = '\0';
+ CHECK_ALRM;
-#if 1
if (retval < 0)
{
- builtin_error (_("read error: %d: %s"), fd, strerror (errno));
+ t_errno = errno;
+ if (errno != EINTR)
+ builtin_error (_("read error: %d: %s"), fd, strerror (errno));
run_unwind_frame ("read_builtin");
- return (EXECUTION_FAILURE);
+ return ((t_errno != EINTR) ? EXECUTION_FAILURE : 128+lastsig);
}
-#endif
if (tmsec > 0 || tmusec > 0)
reset_alarm ();
@@ -631,9 +710,6 @@ add_char:
assign_vars:
- interrupt_immediately--;
- terminate_immediately--;
-
#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. */
@@ -658,6 +734,8 @@ assign_vars:
xfree (input_string);
return EXECUTION_FAILURE; /* existing associative array */
}
+ else if (invisible_p (var))
+ VUNSETATTR (var, att_invisible);
array_flush (array_cell (var));
alist = list_string (input_string, ifs_chars, 0);
@@ -703,7 +781,7 @@ assign_vars:
var = bind_variable ("REPLY", input_string, 0);
VUNSETATTR (var, att_invisible);
- free (input_string);
+ xfree (input_string);
return (retval);
}
@@ -829,6 +907,7 @@ bind_read_variable (name, value)
char *name, *value;
{
SHELL_VAR *v;
+
#if defined (ARRAY_VARS)
if (valid_array_reference (name) == 0)
v = bind_variable (name, value, 0);
@@ -867,6 +946,7 @@ read_mbchar (fd, string, ind, ch, unbuffered)
if (ret == (size_t)-2)
{
ps = ps_back;
+ /* We don't want to be interrupted during a multibyte char read */
if (unbuffered)
r = zread (fd, &c, 1);
else
@@ -947,7 +1027,9 @@ edit_line (p, itext)
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/return.def b/builtins/return.def
index 641ee16a..e6674dfa 100644
--- a/builtins/return.def
+++ b/builtins/return.def
@@ -60,9 +60,11 @@ int
return_builtin (list)
WORD_LIST *list;
{
+#if 0
if (no_options (list))
return (EX_USAGE);
list = loptend; /* skip over possible `--' */
+#endif
return_catch_value = get_exitstat (list);
diff --git a/builtins/set.def b/builtins/set.def
index 6e69eb6e..c4a7001d 100644
--- a/builtins/set.def
+++ b/builtins/set.def
@@ -1,7 +1,7 @@
This file is set.def, from which is created set.c.
It implements the "set" and "unset" builtins in Bash.
-Copyright (C) 1987-2009 Free Software Foundation, Inc.
+Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -96,12 +96,16 @@ Options:
interactive-comments
allow comments to appear in interactive commands
keyword same as -k
+#if defined (JOB_CONTROL)
monitor same as -m
+#endif
noclobber same as -C
noexec same as -n
noglob same as -f
nolog currently accepted but ignored
+#if defined (JOB_CONTROL)
notify same as -b
+#endif
nounset same as -u
onecmd same as -t
physical same as -P
@@ -135,7 +139,7 @@ Options:
-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
+ -P If set, do not resolve 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.
@@ -205,7 +209,9 @@ const struct {
{ "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
{ "interactive-comments", '\0', &interactive_comments, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
{ "keyword", 'k', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
+#if defined (JOB_CONTROL)
{ "monitor", 'm', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
+#endif
{ "noclobber", 'C', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
{ "noexec", 'n', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
{ "noglob", 'f', (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL },
@@ -718,7 +724,7 @@ set_builtin (list)
$BUILTIN unset
$FUNCTION unset_builtin
-$SHORT_DOC unset [-f] [-v] [name ...]
+$SHORT_DOC unset [-f] [-v] [-n] [name ...]
Unset values and attributes of shell variables and functions.
For each NAME, remove the corresponding variable or function.
@@ -726,6 +732,8 @@ 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
+ -n treat each NAME as a name reference and unset the variable itself
+ rather than the variable it references
Without options, unset first tries to unset a variable, and if that fails,
tries to unset a function.
@@ -742,13 +750,13 @@ int
unset_builtin (list)
WORD_LIST *list;
{
- int unset_function, unset_variable, unset_array, opt, any_failed;
+ int unset_function, unset_variable, unset_array, opt, nameref, any_failed;
char *name;
- unset_function = unset_variable = unset_array = any_failed = 0;
+ unset_function = unset_variable = unset_array = nameref = any_failed = 0;
reset_internal_getopt ();
- while ((opt = internal_getopt (list, "fv")) != -1)
+ while ((opt = internal_getopt (list, "fnv")) != -1)
{
switch (opt)
{
@@ -758,6 +766,9 @@ unset_builtin (list)
case 'v':
unset_variable = 1;
break;
+ case 'n':
+ nameref = 1;
+ break;
default:
builtin_usage ();
return (EX_USAGE);
@@ -771,6 +782,8 @@ unset_builtin (list)
builtin_error (_("cannot simultaneously unset a function and a variable"));
return (EXECUTION_FAILURE);
}
+ else if (unset_function && nameref)
+ nameref = 0;
while (list)
{
@@ -791,6 +804,8 @@ unset_builtin (list)
unset_array++;
}
#endif
+ /* Get error checking out of the way first. The low-level functions
+ just perform the unset, relying on the caller to verify. */
/* Bash allows functions with names which are not valid identifiers
to be created when not in posix mode, so check only when in posix
@@ -801,19 +816,32 @@ unset_builtin (list)
NEXT_VARIABLE ();
}
- var = unset_function ? find_function (name) : find_variable (name);
+ /* Only search for functions here if -f supplied. */
+ var = unset_function ? find_function (name)
+ : (nameref ? find_variable_last_nameref (name) : find_variable (name));
- if (var && !unset_function && non_unsettable_p (var))
+ /* Some variables (but not functions yet) cannot be unset, period. */
+ if (var && unset_function == 0 && non_unsettable_p (var))
{
builtin_error (_("%s: cannot unset"), name);
NEXT_VARIABLE ();
}
+ /* Posix.2 says try variables first, then functions. If we would
+ find a function after unsuccessfully searching for a variable,
+ note that we're acting on a function now as if -f were
+ supplied. The readonly check below takes care of it. */
+ if (var == 0 && unset_variable == 0 && unset_function == 0)
+ {
+ if (var = find_function (name))
+ unset_function = 1;
+ }
+
/* Posix.2 says that unsetting readonly variables is an error. */
if (var && readonly_p (var))
{
builtin_error (_("%s: cannot unset: readonly %s"),
- name, unset_function ? "function" : "variable");
+ var->name, unset_function ? "function" : "variable");
NEXT_VARIABLE ();
}
@@ -823,7 +851,7 @@ unset_builtin (list)
{
if (array_p (var) == 0 && assoc_p (var) == 0)
{
- builtin_error (_("%s: not an array variable"), name);
+ builtin_error (_("%s: not an array variable"), var->name);
NEXT_VARIABLE ();
}
else
@@ -835,13 +863,13 @@ unset_builtin (list)
}
else
#endif /* ARRAY_VARS */
- tem = unset_function ? unbind_func (name) : unbind_variable (name);
+ tem = unset_function ? unbind_func (name) : (nameref ? unbind_nameref (name) : unbind_variable (name));
- /* This is what Posix.2 draft 11+ says. ``If neither -f nor -v
+ /* This is what Posix.2 says: ``If neither -f nor -v
is specified, the name refers to a variable; if a variable by
that name does not exist, a function by that name, if any,
shall be unset.'' */
- if (tem == -1 && !unset_function && !unset_variable)
+ if (tem == -1 && unset_function == 0 && unset_variable == 0)
tem = unbind_func (name);
/* SUSv3, POSIX.1-2001 say: ``Unsetting a variable or function that
diff --git a/builtins/setattr.def b/builtins/setattr.def
index b3ca3170..3be31896 100644
--- a/builtins/setattr.def
+++ b/builtins/setattr.def
@@ -1,7 +1,7 @@
This file is setattr.def, from which is created setattr.c.
It implements the builtins "export" and "readonly", in Bash.
-Copyright (C) 1987-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -93,7 +93,8 @@ 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
+ -p display a list of all readonly variables or functions, depending on
+ whether or not the -f option is given
An argument of `--' disables further option processing.
@@ -368,6 +369,9 @@ show_var_attributes (var, pattr, nodefs)
if (integer_p (var))
flags[i++] = 'i';
+ if (nameref_p (var))
+ flags[i++] = 'n';
+
if (readonly_p (var))
flags[i++] = 'r';
@@ -451,7 +455,11 @@ show_name_attributes (name, nodefs)
{
SHELL_VAR *var;
- var = find_variable_internal (name, 1);
+#if 0
+ var = find_variable_tempenv (name);
+#else
+ var = find_variable_noref (name);
+#endif
if (var && invisible_p (var) == 0)
{
@@ -462,12 +470,30 @@ show_name_attributes (name, nodefs)
return (1);
}
+int
+show_func_attributes (name, nodefs)
+ char *name;
+ int nodefs;
+{
+ SHELL_VAR *var;
+
+ var = find_function (name);
+
+ if (var)
+ {
+ show_var_attributes (var, READONLY_OR_EXPORT, nodefs);
+ return (0);
+ }
+ else
+ return (1);
+}
+
void
set_var_attribute (name, attribute, undo)
char *name;
int attribute, undo;
{
- SHELL_VAR *var, *tv;
+ SHELL_VAR *var, *tv, *v;
char *tvalue;
if (undo)
@@ -484,7 +510,18 @@ set_var_attribute (name, attribute, undo)
var = bind_variable (tv->name, tvalue, 0);
var->attributes |= tv->attributes & ~att_tempvar;
- VSETATTR (tv, att_propagate);
+ /* This avoids an error message when propagating a read-only var
+ later on. */
+ if (var->context == 0 && (attribute & att_readonly))
+ {
+ /* Don't bother to set the `propagate to the global variables
+ table' flag if we've just bound the variable in that table */
+ v = find_global_variable (tv->name);
+ if (v != var)
+ VSETATTR (tv, att_propagate);
+ }
+ else
+ VSETATTR (tv, att_propagate);
if (var->context != 0)
VSETATTR (var, att_propagate);
SETVARATTR (tv, attribute, undo); /* XXX */
@@ -495,7 +532,7 @@ set_var_attribute (name, attribute, undo)
}
else
{
- var = find_variable_internal (name, 0);
+ var = find_variable_notempenv (name);
if (var == 0)
{
var = bind_variable (name, (char *)NULL, 0);
diff --git a/builtins/shopt.def b/builtins/shopt.def
index 6cd8c4fe..6050a14d 100644
--- a/builtins/shopt.def
+++ b/builtins/shopt.def
@@ -1,7 +1,7 @@
This file is shopt.def, from which is created shopt.c.
It implements the Bash `shopt' builtin.
-Copyright (C) 1994-2010 Free Software Foundation, Inc.
+Copyright (C) 1994-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -88,6 +88,7 @@ extern int gnu_error_format;
extern int check_jobs_at_exit;
extern int autocd;
extern int glob_star;
+extern int glob_asciirange;
extern int lastpipe_opt;
#if defined (EXTENDED_GLOB)
@@ -99,6 +100,7 @@ extern int hist_verify, history_reediting, perform_hostname_completion;
extern int no_empty_command_completion;
extern int force_fignore;
extern int dircomplete_spelling, dircomplete_expand;
+extern int complete_fullquote;
extern int enable_hostname_completion __P((int));
#endif
@@ -134,6 +136,7 @@ static int shopt_compat31;
static int shopt_compat32;
static int shopt_compat40;
static int shopt_compat41;
+static int shopt_compat42;
typedef int shopt_set_func_t __P((char *, int));
@@ -157,7 +160,9 @@ static struct {
{ "compat32", &shopt_compat32, set_compatibility_level },
{ "compat40", &shopt_compat40, set_compatibility_level },
{ "compat41", &shopt_compat41, set_compatibility_level },
+ { "compat42", &shopt_compat41, set_compatibility_level },
#if defined (READLINE)
+ { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL},
{ "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },
{ "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },
#endif
@@ -176,6 +181,7 @@ static struct {
{ "force_fignore", &force_fignore, (shopt_set_func_t *)NULL },
#endif
{ "globstar", &glob_star, (shopt_set_func_t *)NULL },
+ { "globasciiranges", &glob_asciirange, (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 },
@@ -298,10 +304,12 @@ reset_shopt_options ()
allow_null_glob_expansion = glob_dot_filenames = 0;
cdable_vars = mail_warning = 0;
no_exit_on_failed_exec = print_shift_error = 0;
- check_hashed_filenames = cdspelling = expand_aliases = check_window_size = 0;
+ check_hashed_filenames = cdspelling = expand_aliases = 0;
source_uses_path = promptvars = 1;
+ check_window_size = CHECKWINSIZE_DEFAULT;
+
#if defined (EXTENDED_GLOB)
extended_glob = 0;
#endif
@@ -521,16 +529,18 @@ set_compatibility_level (option_name, mode)
char *option_name;
int mode;
{
- /* Need to change logic here as we add more compatibility levels */
+ int ind;
- /* First, check option_name so we can turn off other compat options when
- one is set. */
- if (mode && option_name[6] == '3' && option_name[7] == '1')
- shopt_compat32 = shopt_compat40 = 0;
- else if (mode && option_name[6] == '3' && option_name[7] == '2')
- shopt_compat31 = shopt_compat40 = 0;
- else if (mode && option_name[6] == '4' && option_name[7] == '0')
- shopt_compat31 = shopt_compat32 = 0;
+ /* If we're setting something, redo some of the work we did above in
+ toggle_shopt(). Unset everything and reset the appropriate option
+ based on OPTION_NAME. */
+ if (mode)
+ {
+ shopt_compat31 = shopt_compat32 = 0;
+ shopt_compat40 = shopt_compat41 = shopt_compat42 = 0;
+ ind = find_shopt (option_name);
+ *shopt_vars[ind].value = mode;
+ }
/* Then set shell_compatibility_level based on what remains */
if (shopt_compat31)
@@ -539,11 +549,39 @@ set_compatibility_level (option_name, mode)
shell_compatibility_level = 32;
else if (shopt_compat40)
shell_compatibility_level = 40;
+ else if (shopt_compat41)
+ shell_compatibility_level = 41;
+ else if (shopt_compat42)
+ shell_compatibility_level = 42;
else
shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
+
return 0;
}
+/* Set and unset the various compatibility options from the value of
+ shell_compatibility_level; used by sv_shcompat */
+void
+set_compatibility_opts ()
+{
+ shopt_compat31 = shopt_compat32 = shopt_compat40 = shopt_compat41 = shopt_compat42 = 0;
+ switch (shell_compatibility_level)
+ {
+ case DEFAULT_COMPAT_LEVEL:
+ break;
+ case 42:
+ shopt_compat42 = 1; break;
+ case 41:
+ shopt_compat41 = 1; break;
+ case 40:
+ shopt_compat40 = 1; break;
+ case 32:
+ shopt_compat32 = 1; break;
+ case 31:
+ shopt_compat31 = 1; break;
+ }
+}
+
#if defined (READLINE)
static int
shopt_set_complete_direxpand (option_name, mode)
diff --git a/builtins/test.def b/builtins/test.def
index 1ebc8187..f1444000 100644
--- a/builtins/test.def
+++ b/builtins/test.def
@@ -84,6 +84,7 @@ Other operators:
-o OPTION True if the shell option OPTION is enabled.
-v VAR True if the shell variable VAR is set
+ -R VAR True if the shell variable VAR is set and is a name reference.
! 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.
diff --git a/builtins/type.def b/builtins/type.def
index ee341bb8..bd9ecfc1 100644
--- a/builtins/type.def
+++ b/builtins/type.def
@@ -1,7 +1,7 @@
This file is type.def, from which is created type.c.
It implements the builtin "type" in Bash.
-Copyright (C) 1987-2009 Free Software Foundation, Inc.
+Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -353,7 +353,7 @@ describe_command (command, dflags)
user_command_matches (command, FS_EXEC_ONLY, found_file);
/* XXX - should that be FS_EXEC_PREFERRED? */
- if (!full_path)
+ if (full_path == 0)
break;
/* If we found the command as itself by looking through $PATH, it
@@ -375,7 +375,9 @@ describe_command (command, dflags)
else if (dflags & (CDESC_REUSABLE|CDESC_PATH_ONLY|CDESC_SHORTDESC))
{
f = MP_DOCWD | ((dflags & CDESC_ABSPATH) ? MP_RMDOT : 0);
- full_path = sh_makepath ((char *)NULL, full_path, f);
+ x = sh_makepath ((char *)NULL, full_path, f);
+ free (full_path);
+ full_path = x;
}
}
/* If we require a full path and don't have one, make one */
diff --git a/builtins/ulimit.def b/builtins/ulimit.def
index 03cbe8a0..e551cfff 100644
--- a/builtins/ulimit.def
+++ b/builtins/ulimit.def
@@ -23,7 +23,7 @@ $PRODUCES ulimit.c
$BUILTIN ulimit
$FUNCTION ulimit_builtin
$DEPENDS_ON !_MINIX
-$SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit]
+$SHORT_DOC ulimit [-SHabcdefilmnpqrstuvxT] [limit]
Modify shell resource limits.
Provides control over the resources available to the shell and processes
@@ -50,6 +50,9 @@ Options:
-u the maximum number of user processes
-v the size of virtual memory
-x the maximum number of file locks
+ -T the maximum number of threads
+
+Not all options are available on all platforms.
If LIMIT is given, it is the new value of the specified resource; the
special LIMIT values `soft', `hard', and `unlimited' stand for the
@@ -70,7 +73,7 @@ $END
#include <config.h>
#include "../bashtypes.h"
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
@@ -167,6 +170,10 @@ extern int errno;
# define RLIMIT_MAXUPROC 260
#endif
+#if !defined (RLIMIT_PTHREAD) && defined (RLIMIT_NTHR)
+# define RLIMIT_PTHREAD RLIMIT_NTHR
+#endif
+
#if !defined (RLIM_INFINITY)
# define RLIM_INFINITY 0x7fffffff
#endif
diff --git a/builtins/umask.def b/builtins/umask.def
index 289a0f54..d9aa0418 100644
--- a/builtins/umask.def
+++ b/builtins/umask.def
@@ -61,10 +61,6 @@ $END
#include "common.h"
#include "bashgetopt.h"
-#ifdef __LCC__
-#define mode_t int
-#endif
-
/* **************************************************************** */
/* */
/* UMASK Builtin and Helpers */
diff --git a/builtins/wait.def b/builtins/wait.def
index 0206926f..fe6d53d5 100644
--- a/builtins/wait.def
+++ b/builtins/wait.def
@@ -1,7 +1,7 @@
This file is wait.def, from which is created wait.c.
It implements the builtin "wait" in Bash.
-Copyright (C) 1987-2009 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -22,33 +22,36 @@ $BUILTIN wait
$FUNCTION wait_builtin
$DEPENDS_ON JOB_CONTROL
$PRODUCES wait.c
-$SHORT_DOC wait [id]
+$SHORT_DOC wait [-n] [id ...]
Wait for job completion and return exit status.
-Waits for the process identified by ID, which may be a process ID or a
+Waits for each process identified by an 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.
+in that job's pipeline.
+
+If the -n option is supplied, waits for the next job to terminate and
+returns its exit status.
Exit Status:
-Returns the status of ID; fails if ID is invalid or an invalid option is
-given.
+Returns the status of the last 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 [pid]
+$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.
+Waits for each process specified by a PID and reports its termination status.
+If PID is not given, waits for all currently active child processes,
+and the return status 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.
+Returns the status of the last PID; fails if PID is invalid or an invalid
+option is given.
$END
#include <config.h>
@@ -82,6 +85,7 @@ procenv_t wait_intr_buf;
do \
{ \
interrupt_immediately = old_interrupt_immediately;\
+ wait_signal_received = 0; \
return (s);\
} \
while (0)
@@ -90,17 +94,33 @@ int
wait_builtin (list)
WORD_LIST *list;
{
- int status, code;
+ int status, code, opt, nflag;
volatile int old_interrupt_immediately;
USE_VAR(list);
- if (no_options (list))
- return (EX_USAGE);
+ nflag = 0;
+ reset_internal_getopt ();
+ while ((opt = internal_getopt (list, "n")) != -1)
+ {
+ switch (opt)
+ {
+#if defined (JOB_CONTROL)
+ case 'n':
+ nflag = 1;
+ break;
+#endif
+ default:
+ builtin_usage ();
+ return (EX_USAGE);
+ }
+ }
list = loptend;
old_interrupt_immediately = interrupt_immediately;
+#if 0
interrupt_immediately++;
+#endif
/* POSIX.2 says: When the shell is waiting (by means of the wait utility)
for asynchronous commands to complete, the reception of a signal for
@@ -120,6 +140,16 @@ wait_builtin (list)
/* We support jobs or pids.
wait <pid-or-job> [pid-or-job ...] */
+#if defined (JOB_CONTROL)
+ if (nflag)
+ {
+ status = wait_for_any_job ();
+ if (status < 0)
+ status = 127;
+ WAIT_RETURN (status);
+ }
+#endif
+
/* But wait without any arguments means to wait for all of the shell's
currently active background processes. */
if (list == 0)
diff --git a/command.h b/command.h
index fb712297..6e9d1e4b 100644
--- a/command.h
+++ b/command.h
@@ -76,7 +76,7 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
#define W_HASDOLLAR 0x000001 /* Dollar sign present. */
#define W_QUOTED 0x000002 /* Some form of quote character is present. */
#define W_ASSIGNMENT 0x000004 /* This word is a variable assignment. */
-#define W_GLOBEXP 0x000008 /* This word is the result of a glob expansion. */
+#define W_SPLITSPACE 0x000008 /* Split this word on " " regardless of IFS */
#define W_NOSPLIT 0x000010 /* Do not perform word splitting on this word because ifs is empty string. */
#define W_NOGLOB 0x000020 /* Do not perform globbing on this word. */
#define W_NOSPLIT2 0x000040 /* Don't split word except for $@ expansion (using spaces) because context does not allow it. */
@@ -96,8 +96,11 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
#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 */
-#define W_ARRAYIND 0x800000 /* word is an array index being expanded */
-#define W_ASSNGLOBAL 0x1000000 /* word is a global assignment to declare (declare/typeset -g) */
+#define W_ASSIGNARRAY 0x800000 /* word looks like a compound indexed array assignment */
+#define W_ARRAYIND 0x1000000 /* word is an array index being expanded */
+#define W_ASSNGLOBAL 0x2000000 /* word is a global assignment to declare (declare/typeset -g) */
+#define W_NOBRACE 0x4000000 /* Don't perform brace expansion */
+#define W_ASSIGNINT 0x8000000 /* word is an integer assignment to declare */
/* Possible values for subshell_environment */
#define SUBSHELL_ASYNC 0x01 /* subshell caused by `command &' */
@@ -296,7 +299,7 @@ typedef struct arith_com {
} ARITH_COM;
#endif /* DPAREN_ARITHMETIC */
-/* The conditional command, [[...]]. This is a binary tree -- we slippped
+/* The conditional command, [[...]]. This is a binary tree -- we slipped
a recursive-descent parser into the YACC grammar to parse it. */
#define COND_AND 1
#define COND_OR 2
@@ -355,6 +358,7 @@ typedef struct coproc {
int c_wsave;
int c_flags;
int c_status;
+ int c_lock;
} Coproc;
typedef struct coproc_com {
diff --git a/config-top.h b/config-top.h
index 147d4f4f..4f6373c4 100644
--- a/config-top.h
+++ b/config-top.h
@@ -46,6 +46,11 @@
when a job like `cat jobs.c | exit 1' terminates due to a SIGPIPE. */
#define DONT_REPORT_SIGPIPE
+/* Define DONT_REPORT_SIGTERM if you don't want to see `Terminates' message
+ when a job exits due to SIGTERM, since that's the default signal sent
+ by the kill builtin. */
+/* #define DONT_REPORT_SIGTERM */
+
/* 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. */
@@ -54,7 +59,7 @@
/* The default value of the PATH variable. */
#ifndef DEFAULT_PATH_VALUE
#define DEFAULT_PATH_VALUE \
- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
+ "/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:."
#endif
/* The value for PATH when invoking `command -p'. This is only used when
@@ -109,3 +114,21 @@
/* Define if you want to include code in shell.c to support wordexp(3) */
/* #define WORDEXP_OPTION */
+
+/* Define as 1 if you want to enable code that implements multiple coprocs */
+#ifndef MULTIPLE_COPROCS
+# define MULTIPLE_COPROCS 0
+#endif
+
+/* Define to 0 if you want the checkwinsize option off by default, 1 if you
+ want it on. */
+#define CHECKWINSIZE_DEFAULT 0
+
+/* Define to 1 if you want to optimize for sequential array assignment when
+ using indexed arrays, 0 if you want bash-4.2 behavior, which favors
+ random access but is O(N) for each array assignment. */
+#define OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT 1
+
+/* Define to 1 if you want to be able to export indexed arrays to processes
+ using the foo=([0]=one [1]=two) and so on */
+/* #define ARRAY_EXPORT 1 */
diff --git a/config.h.in b/config.h.in
index 6b1fc4af..08af2ba8 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,6 +1,6 @@
/* config.h -- Configuration file for bash. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2009,2011-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -160,9 +160,6 @@
memory contents on malloc() and free(). */
#undef MEMSCRAMBLE
-/* Define AFS if you are using Transarc's AFS. */
-#undef AFS
-
/* Define for case-modifying variable attributes; variables modified on
assignment */
#undef CASEMOD_ATTRS
@@ -170,6 +167,15 @@
/* Define for case-modifying word expansions */
#undef CASEMOD_EXPANSIONS
+/* Define to make the `direxpand' shopt option enabled by default. */
+#undef DIRCOMPLETE_EXPAND_DEFAULT
+
+/* Define to make the `globasciiranges' shopt option enabled by default. */
+#undef GLOBASCII_DEFAULT
+
+/* Define AFS if you are using Transarc's AFS. */
+#undef AFS
+
#undef ENABLE_NLS
/* End of configuration settings controllable by autoconf. */
@@ -420,6 +426,16 @@
#undef WEXITSTATUS_OFFSET
+#undef HAVE_STRUCT_TIMESPEC
+#undef TIME_H_DEFINES_STRUCT_TIMESPEC
+#undef SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
+#undef PTHREAD_H_DEFINES_STRUCT_TIMESPEC
+
+#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
+#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
+#undef HAVE_STRUCT_STAT_ST_ATIMENSEC
+#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
+
/* Characteristics of definitions in the system header files. */
#undef HAVE_GETPW_DECLS
@@ -428,6 +444,9 @@
#undef HAVE_LIBC_FNM_EXTMATCH
+/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
+#undef HAVE_DECL_AUDIT_USER_TTY
+
#undef HAVE_DECL_CONFSTR
#undef HAVE_DECL_PRINTF
@@ -625,6 +644,9 @@
/* Define if you have the iconv function. */
#undef HAVE_ICONV
+/* Define if you have the imaxdiv function. */
+#undef HAVE_IMAXDIV
+
/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON
@@ -637,12 +659,6 @@
/* Define if you have the isgraph function. */
#undef HAVE_ISGRAPH
-/* Define if you have the isinf function in libc */
-#undef HAVE_ISINF_IN_LIBC
-
-/* Define if you have the isnan function in libc */
-#undef HAVE_ISNAN_IN_LIBC
-
/* Define if you have the isprint function. */
#undef HAVE_ISPRINT
@@ -887,6 +903,9 @@
/* Define if you have the wcwidth function. */
#undef HAVE_WCWIDTH
+/* and if it works */
+#undef WCWIDTH_BROKEN
+
/* Presence of certain system include files. */
/* Define if you have the <arpa/inet.h> header file. */
@@ -946,6 +965,9 @@
/* Define if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define if you have the <stdbool.h> header file. */
+#undef HAVE_STDBOOL_H
+
/* Define if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H
@@ -1034,6 +1056,8 @@
#undef HAVE_LIBSOCKET
+/* Are we running the GNU C library, version 2.1 or later? */
+#undef GLIBC21
/* Define if on MINIX. */
#undef _MINIX
diff --git a/configure b/configure
index 7ec72fe6..98bf8909 100755
--- a/configure
+++ b/configure
@@ -1,21 +1,23 @@
#! /bin/sh
-# From configure.in for Bash 4.2, version 4.037.
+# From configure.ac for Bash 4.3, version 4.063.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for bash 4.2-release.
+# Generated by GNU Autoconf 2.69 for bash 4.3-release.
#
# Report bugs to <bug-bash@gnu.org>.
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# Copyright (C) 1992-1996, 1998-2012 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. ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+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
@@ -23,23 +25,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
+ 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
@@ -47,7 +41,13 @@ export as_nl
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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
@@ -58,7 +58,7 @@ else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
- case $arg in
+ case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -81,13 +81,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
}
fi
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
@@ -97,15 +90,16 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+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
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
IFS=$as_save_IFS
;;
@@ -117,12 +111,16 @@ if test "x$as_myself" = x; then
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; }
+ exit 1
fi
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
@@ -134,330 +132,345 @@ export LC_ALL
LANGUAGE=C
export LANGUAGE
-# Required to use basename.
-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
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- 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
-
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
- if (eval ":") 2>/dev/null; then
- as_have_required=yes
+ as_bourne_compatible="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
- as_have_required=no
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
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_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_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
- :
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
else
- exitcode=1
- echo positional parameters were not saved.
+ as_have_required=no
fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-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
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- case $as_dir in
+ as_found=:
+ case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
done;;
esac
+ as_found=false
done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
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
-
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-bash@gnu.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
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
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
-
-:
-(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
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
}
+as_unset=as_fn_unset
-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
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
-if as_func_ret_success; then
- :
-else
- exitcode=1
- echo as_func_ret_success failed.
-fi
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
-fi
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
-if ( set x; as_func_ret_success y && test x = "$1" ); then
- :
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ 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 ||
+$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 -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
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; }
-
-_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
-
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
-(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_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
-exitcode=0
-if as_func_success; then
- :
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
else
- exitcode=1
- echo as_func_success failed.
-fi
-
-if as_func_failure; then
- exitcode=1
- echo as_func_failure succeeded.
+ as_expr=false
fi
-if as_func_ret_success; then
- :
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
else
- exitcode=1
- echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
- exitcode=1
- echo as_func_ret_failure succeeded.
+ as_basename=false
fi
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
- :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
else
- exitcode=1
- echo positional parameters were not saved.
+ as_dirname=false
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_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+# 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_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 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
- # scripts with optimization help from Paolo Bonzini. Blame Lee
- # E. McMahon (1931-1989) for sed's syntax. :-)
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
@@ -474,9 +487,12 @@ test \$exitcode = 0") || {
s/-\n.*//
' >$as_me.lineno &&
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; }; }
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# 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 sensitive to this).
@@ -485,29 +501,18 @@ test \$exitcode = 0") || {
exit
}
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
-n*)
- case `echo 'x\c'` in
+ case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
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
if test -d conf$$.dir; then
@@ -522,49 +527,29 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... 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'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
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=:
+ as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
-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
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# 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'"
@@ -573,11 +558,11 @@ 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'"
-
-exec 7<&0 </dev/null 6>&1
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -592,14 +577,14 @@ cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bash'
PACKAGE_TARNAME='bash'
-PACKAGE_VERSION='4.2-release'
-PACKAGE_STRING='bash 4.2-release'
+PACKAGE_VERSION='4.3-release'
+PACKAGE_STRING='bash 4.3-release'
PACKAGE_BUGREPORT='bug-bash@gnu.org'
+PACKAGE_URL=''
ac_unique_file="shell.h"
# Factoring default headers for most tests.
@@ -664,6 +649,9 @@ JOBS_O
TERMCAP_DEP
TERMCAP_LIB
SIGLIST_O
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
+TIME_H_DEFINES_STRUCT_TIMESPEC
LIBINTL_H
INTL_INC
INTL_DEP
@@ -713,11 +701,8 @@ READLINE_LIB
RL_MINOR
RL_MAJOR
RL_VERSION
-LDFLAGS_FOR_BUILD
-CPPFLAGS_FOR_BUILD
-CFLAGS_FOR_BUILD
+LIBS_FOR_BUILD
STATIC_LD
-CC_FOR_BUILD
SIGNAMES_O
SIGNAMES_H
CROSS_COMPILE
@@ -732,6 +717,7 @@ LDFLAGS
CFLAGS
CC
HELPSTRINGS
+HELPFILES_TARGET
HELPINSTALL
HELPDIRDEFINE
HELPDIR
@@ -743,6 +729,10 @@ MALLOC_SRC
MALLOC_TARGET
PURIFY
TESTSCRIPT
+CPPFLAGS_FOR_BUILD
+LDFLAGS_FOR_BUILD
+CFLAGS_FOR_BUILD
+CC_FOR_BUILD
DEBUGGER_START_FILE
host_os
host_vendor
@@ -782,6 +772,7 @@ bindir
program_transform_name
prefix
exec_prefix
+PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
@@ -812,11 +803,13 @@ enable_cond_command
enable_cond_regexp
enable_coprocesses
enable_debugger
+enable_direxpand_default
enable_directory_stack
enable_disabled_builtins
enable_dparen_arithmetic
enable_extended_glob
enable_extended_glob_default
+enable_glob_asciiranges_default
enable_help_builtin
enable_history
enable_job_control
@@ -841,7 +834,6 @@ enable_nls
with_gnu_ld
enable_rpath
with_libiconv_prefix
-enable_nls
with_included_gettext
with_libintl_prefix
'
@@ -849,13 +841,16 @@ with_libintl_prefix
host_alias
target_alias
DEBUGGER_START_FILE
+CC_FOR_BUILD
+CFLAGS_FOR_BUILD
+LDFLAGS_FOR_BUILD
+CPPFLAGS_FOR_BUILD
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
-CPPFLAGS
YACC
YFLAGS'
@@ -920,8 +915,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -966,8 +962,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -993,8 +988,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1198,8 +1192,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1215,8 +1208,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1246,17 +1238,17 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
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 &&
- { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1265,7 +1257,7 @@ Try \`$0 --help' for more information." >&2
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@@ -1273,15 +1265,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { $as_echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
+ as_fn_error $? "missing argument to $ac_option"
fi
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; }; } ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1304,8 +1294,7 @@ do
[\\/$]* | ?:[\\/]* ) 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; }; }
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1319,8 +1308,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $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
fi
@@ -1335,11 +1322,9 @@ 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; }; }
+ as_fn_error $? "working directory cannot be determined"
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; }; }
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1378,13 +1363,11 @@ else
fi
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; }; }
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
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; }; }
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1410,7 +1393,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 4.2-release to adapt to many kinds of systems.
+\`configure' configures bash 4.3-release to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1424,7 +1407,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1475,7 +1458,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bash 4.2-release:";;
+ short | recursive ) echo "Configuration of bash 4.3-release:";;
esac
cat <<\_ACEOF
@@ -1503,6 +1486,8 @@ Optional Features:
--enable-coprocesses enable coprocess support and the coproc reserved
word
--enable-debugger enable support for bash debugger
+ --enable-direxpand-default
+ enable the direxpand shell option by default
--enable-directory-stack
enable builtins pushd/popd/dirs
--enable-disabled-builtins
@@ -1513,6 +1498,9 @@ Optional Features:
--enable-extended-glob-default
force extended pattern matching to be enabled by
default
+ --enable-glob-asciiranges-default
+ force bracket range expressions in pattern matching
+ to use the C locale by default
--enable-help-builtin include the help builtin
--enable-history turn on command history
--enable-job-control enable job control features
@@ -1570,16 +1558,28 @@ Optional Packages:
Some influential environment variables:
DEBUGGER_START_FILE
location of bash debugger initialization file
+ CC_FOR_BUILD
+ C compiler used when compiling binaries used only at build time
+ CFLAGS_FOR_BUILD
+ Compliation options (CFLAGS) used when compiling binaries used
+ only at build time
+ LDFLAGS_FOR_BUILD
+ Linker options (LDFLAGS) used when compiling binaries used only
+ at build time
+ CPPFLAGS_FOR_BUILD
+ C preprocessor options (CPPFLAGS) used when compiling binaries
+ used only at build time
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
- YACC The `Yet Another C Compiler' implementation to use. Defaults to
- the first program found out of: `bison -y', `byacc', `yacc'.
+ YACC The `Yet Another Compiler 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.
@@ -1650,22 +1650,717 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bash configure 4.2-release
-generated by GNU Autoconf 2.63
+bash configure 4.3-release
+generated by GNU Autoconf 2.69
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 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
fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$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: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------- ##
+## Report this to bug-bash@gnu.org ##
+## ------------------------------- ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+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
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* 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 $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+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
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+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
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=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
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
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 4.2-release, which was
-generated by GNU Autoconf 2.63. Invocation command line was
+It was created by bash $as_me 4.3-release, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1701,8 +2396,8 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
-done
+ $as_echo "PATH: $as_dir"
+ done
IFS=$as_save_IFS
} >&5
@@ -1739,9 +2434,9 @@ do
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
@@ -1757,13 +2452,13 @@ do
-* ) ac_must_keep_next=true ;;
esac
fi
- ac_configure_args="$ac_configure_args '$ac_arg'"
+ as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
@@ -1775,11 +2470,9 @@ trap 'exit_status=$?
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -1788,13 +2481,13 @@ _ASBOX
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
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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 ;;
+ *) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
@@ -1813,11 +2506,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -1830,11 +2521,9 @@ _ASBOX
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -1848,11 +2537,9 @@ _ASBOX
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -1866,46 +2553,53 @@ _ASBOX
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
+$as_echo "/* confdefs.h */" > confdefs.h
+
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
-
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
# Let the site file select an alternate cache file if it wants to.
# 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
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -1916,19 +2610,23 @@ 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
- { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$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"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
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
- { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -1936,18 +2634,20 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
esac
fi
else
- { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+ { $as_echo "$as_me:${as_lineno-$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"
-ac_func_list="$ac_func_list snprintf"
-ac_func_list="$ac_func_list vsnprintf"
+as_fn_append ac_header_list " stdlib.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " sys/time.h"
+as_fn_append ac_func_list " alarm"
+as_fn_append ac_func_list " fpurge"
+as_fn_append ac_func_list " __fpurge"
+as_fn_append ac_func_list " snprintf"
+as_fn_append ac_func_list " vsnprintf"
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -1958,11 +2658,11 @@ for ac_var in $ac_precious_vars; do
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { $as_echo "$as_me:${as_lineno-$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)
- { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+ { $as_echo "$as_me:${as_lineno-$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=: ;;
,);;
@@ -1972,17 +2672,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
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:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
@@ -1994,43 +2694,20 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
- { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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; }; }
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -2060,9 +2737,7 @@ for ac_dir in ./support "$srcdir"/./support; do
fi
done
if test -z "$ac_aux_dir"; then
- { { $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; }; }
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ./support \"$srcdir\"/./support" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -2077,7 +2752,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
ac_config_headers="$ac_config_headers config.h"
-BASHVERS=4.2
+BASHVERS=4.3
RELSTATUS=release
case "$RELSTATUS" in
@@ -2087,35 +2762,27 @@ esac
# Make sure we can run config.sub.
$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; }; }
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+if ${ac_cv_build+:} false; then :
$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; }; }
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
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; }; }
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+{ $as_echo "$as_me:${as_lineno-$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; }; };;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -2131,28 +2798,24 @@ 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 "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+if ${ac_cv_host+:} false; then :
$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; }; }
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+{ $as_echo "$as_me:${as_lineno-$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; }; };;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -2169,6 +2832,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
opt_bash_malloc=yes
opt_purify=no
opt_purecov=no
@@ -2190,8 +2854,10 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
#*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
+*-mirbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
*-aix*) opt_bash_malloc=no ;; # AIX machines
*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
+*-openstep*) opt_bash_malloc=no ;; # i386/Sparc/HP machines running Openstep
*-macos*) opt_bash_malloc=no ;; # Apple MacOS X
*-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
*-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
@@ -2202,6 +2868,8 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
*-beos*) opt_bash_malloc=no ;; # they say it's suitable
*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
+*-nsk*) opt_bash_malloc=no ;; # HP NonStop
+*-haiku*) opt_bash_malloc=no ;; # Haiku OS
esac
# memory scrambling on free()
@@ -2214,43 +2882,43 @@ esac
# Check whether --with-afs was given.
-if test "${with_afs+set}" = set; then
+if test "${with_afs+set}" = set; then :
withval=$with_afs; opt_afs=$withval
fi
# Check whether --with-bash-malloc was given.
-if test "${with_bash_malloc+set}" = set; then
+if test "${with_bash_malloc+set}" = set; then :
withval=$with_bash_malloc; opt_bash_malloc=$withval
fi
# Check whether --with-curses was given.
-if test "${with_curses+set}" = set; then
+if test "${with_curses+set}" = set; then :
withval=$with_curses; opt_curses=$withval
fi
# Check whether --with-gnu-malloc was given.
-if test "${with_gnu_malloc+set}" = set; then
+if test "${with_gnu_malloc+set}" = set; then :
withval=$with_gnu_malloc; opt_bash_malloc=$withval
fi
# Check whether --with-installed-readline was given.
-if test "${with_installed_readline+set}" = set; then
+if test "${with_installed_readline+set}" = set; then :
withval=$with_installed_readline; opt_with_installed_readline=$withval
fi
# Check whether --with-purecov was given.
-if test "${with_purecov+set}" = set; then
+if test "${with_purecov+set}" = set; then :
withval=$with_purecov; opt_purecov=$withval
fi
# Check whether --with-purify was given.
-if test "${with_purify+set}" = set; then
+if test "${with_purify+set}" = set; then :
withval=$with_purify; opt_purify=$withval
fi
@@ -2264,9 +2932,7 @@ if test "$opt_bash_malloc" = yes; then
MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
MALLOC_DEP='$(MALLOC_LIBRARY)'
- cat >>confdefs.h <<\_ACEOF
-#define USING_BASH_MALLOC 1
-_ACEOF
+ $as_echo "#define USING_BASH_MALLOC 1" >>confdefs.h
else
MALLOC_LIB=
@@ -2277,9 +2943,7 @@ fi
if test "$opt_purify" = yes; then
PURIFY="purify "
- cat >>confdefs.h <<\_ACEOF
-#define DISABLE_MALLOC_WRAPPERS 1
-_ACEOF
+ $as_echo "#define DISABLE_MALLOC_WRAPPERS 1" >>confdefs.h
else
PURIFY=
@@ -2290,9 +2954,7 @@ if test "$opt_purecov" = yes; then
fi
if test "$opt_afs" = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define AFS 1
-_ACEOF
+ $as_echo "#define AFS 1" >>confdefs.h
fi
@@ -2338,12 +3000,14 @@ opt_single_longdoc_strings=yes
opt_casemod_attrs=yes
opt_casemod_expansions=yes
opt_extglob_default=no
+opt_dircomplete_expand_default=no
+opt_globascii_default=no
opt_static_link=no
opt_profiling=no
# Check whether --enable-minimal-config was given.
-if test "${enable_minimal_config+set}" = set; then
+if test "${enable_minimal_config+set}" = set; then :
enableval=$enable_minimal_config; opt_minimal_config=$enableval
fi
@@ -2358,358 +3022,329 @@ if test $opt_minimal_config = yes; then
opt_net_redirs=no opt_progcomp=no opt_separate_help=no
opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
+ opt_globascii_default=no
fi
# Check whether --enable-alias was given.
-if test "${enable_alias+set}" = set; then
+if test "${enable_alias+set}" = set; then :
enableval=$enable_alias; opt_alias=$enableval
fi
# Check whether --enable-arith-for-command was given.
-if test "${enable_arith_for_command+set}" = set; then
+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 was given.
-if test "${enable_array_variables+set}" = set; then
+if test "${enable_array_variables+set}" = set; then :
enableval=$enable_array_variables; opt_array_variables=$enableval
fi
# Check whether --enable-bang-history was given.
-if test "${enable_bang_history+set}" = set; then
+if test "${enable_bang_history+set}" = set; then :
enableval=$enable_bang_history; opt_bang_history=$enableval
fi
# Check whether --enable-brace-expansion was given.
-if test "${enable_brace_expansion+set}" = set; then
+if test "${enable_brace_expansion+set}" = set; then :
enableval=$enable_brace_expansion; opt_brace_expansion=$enableval
fi
# Check whether --enable-casemod-attributes was given.
-if test "${enable_casemod_attributes+set}" = set; then
+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
+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
+if test "${enable_command_timing+set}" = set; then :
enableval=$enable_command_timing; opt_command_timing=$enableval
fi
# Check whether --enable-cond-command was given.
-if test "${enable_cond_command+set}" = set; then
+if test "${enable_cond_command+set}" = set; then :
enableval=$enable_cond_command; opt_cond_command=$enableval
fi
# Check whether --enable-cond-regexp was given.
-if test "${enable_cond_regexp+set}" = set; then
+if test "${enable_cond_regexp+set}" = set; then :
enableval=$enable_cond_regexp; opt_cond_regexp=$enableval
fi
# Check whether --enable-coprocesses was given.
-if test "${enable_coprocesses+set}" = set; then
+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
+if test "${enable_debugger+set}" = set; then :
enableval=$enable_debugger; opt_debugger=$enableval
fi
+# Check whether --enable-direxpand-default was given.
+if test "${enable_direxpand_default+set}" = set; then :
+ enableval=$enable_direxpand_default; opt_dircomplete_expand_default=$enableval
+fi
+
# Check whether --enable-directory-stack was given.
-if test "${enable_directory_stack+set}" = set; then
+if test "${enable_directory_stack+set}" = set; then :
enableval=$enable_directory_stack; opt_dirstack=$enableval
fi
# Check whether --enable-disabled-builtins was given.
-if test "${enable_disabled_builtins+set}" = set; then
+if test "${enable_disabled_builtins+set}" = set; then :
enableval=$enable_disabled_builtins; opt_disabled_builtins=$enableval
fi
# Check whether --enable-dparen-arithmetic was given.
-if test "${enable_dparen_arithmetic+set}" = set; then
+if test "${enable_dparen_arithmetic+set}" = set; then :
enableval=$enable_dparen_arithmetic; opt_dparen_arith=$enableval
fi
# Check whether --enable-extended-glob was given.
-if test "${enable_extended_glob+set}" = set; then
+if test "${enable_extended_glob+set}" = set; then :
enableval=$enable_extended_glob; opt_extended_glob=$enableval
fi
# Check whether --enable-extended-glob-default was given.
-if test "${enable_extended_glob_default+set}" = set; then
+if test "${enable_extended_glob_default+set}" = set; then :
enableval=$enable_extended_glob_default; opt_extglob_default=$enableval
fi
+# Check whether --enable-glob-asciiranges-default was given.
+if test "${enable_glob_asciiranges_default+set}" = set; then :
+ enableval=$enable_glob_asciiranges_default; opt_globascii_default=$enableval
+fi
+
# Check whether --enable-help-builtin was given.
-if test "${enable_help_builtin+set}" = set; then
+if test "${enable_help_builtin+set}" = set; then :
enableval=$enable_help_builtin; opt_help=$enableval
fi
# Check whether --enable-history was given.
-if test "${enable_history+set}" = set; then
+if test "${enable_history+set}" = set; then :
enableval=$enable_history; opt_history=$enableval
fi
# Check whether --enable-job-control was given.
-if test "${enable_job_control+set}" = set; then
+if test "${enable_job_control+set}" = set; then :
enableval=$enable_job_control; opt_job_control=$enableval
fi
# Check whether --enable-multibyte was given.
-if test "${enable_multibyte+set}" = set; then
+if test "${enable_multibyte+set}" = set; then :
enableval=$enable_multibyte; opt_multibyte=$enableval
fi
# Check whether --enable-net-redirections was given.
-if test "${enable_net_redirections+set}" = set; then
+if test "${enable_net_redirections+set}" = set; then :
enableval=$enable_net_redirections; opt_net_redirs=$enableval
fi
# Check whether --enable-process-substitution was given.
-if test "${enable_process_substitution+set}" = set; then
+if test "${enable_process_substitution+set}" = set; then :
enableval=$enable_process_substitution; opt_process_subst=$enableval
fi
# Check whether --enable-progcomp was given.
-if test "${enable_progcomp+set}" = set; then
+if test "${enable_progcomp+set}" = set; then :
enableval=$enable_progcomp; opt_progcomp=$enableval
fi
# Check whether --enable-prompt-string-decoding was given.
-if test "${enable_prompt_string_decoding+set}" = set; then
+if test "${enable_prompt_string_decoding+set}" = set; then :
enableval=$enable_prompt_string_decoding; opt_prompt_decoding=$enableval
fi
# Check whether --enable-readline was given.
-if test "${enable_readline+set}" = set; then
+if test "${enable_readline+set}" = set; then :
enableval=$enable_readline; opt_readline=$enableval
fi
# Check whether --enable-restricted was given.
-if test "${enable_restricted+set}" = set; then
+if test "${enable_restricted+set}" = set; then :
enableval=$enable_restricted; opt_restricted=$enableval
fi
# Check whether --enable-select was given.
-if test "${enable_select+set}" = set; then
+if test "${enable_select+set}" = set; then :
enableval=$enable_select; opt_select=$enableval
fi
# Check whether --enable-separate-helpfiles was given.
-if test "${enable_separate_helpfiles+set}" = set; then
+if test "${enable_separate_helpfiles+set}" = set; then :
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
+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 was given.
-if test "${enable_strict_posix_default+set}" = set; then
+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 was given.
-if test "${enable_usg_echo_default+set}" = set; then
+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 was given.
-if test "${enable_xpg_echo_default+set}" = set; then
+if test "${enable_xpg_echo_default+set}" = set; then :
enableval=$enable_xpg_echo_default; opt_xpg_echo=$enableval
fi
# Check whether --enable-mem-scramble was given.
-if test "${enable_mem_scramble+set}" = set; then
+if test "${enable_mem_scramble+set}" = set; then :
enableval=$enable_mem_scramble; opt_memscramble=$enableval
fi
# Check whether --enable-profiling was given.
-if test "${enable_profiling+set}" = set; then
+if test "${enable_profiling+set}" = set; then :
enableval=$enable_profiling; opt_profiling=$enableval
fi
# Check whether --enable-static-link was given.
-if test "${enable_static_link+set}" = set; then
+if test "${enable_static_link+set}" = set; then :
enableval=$enable_static_link; opt_static_link=$enableval
fi
+
+
+
+
+
if test $opt_alias = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define ALIAS 1
-_ACEOF
+$as_echo "#define ALIAS 1" >>confdefs.h
fi
if test $opt_dirstack = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define PUSHD_AND_POPD 1
-_ACEOF
+$as_echo "#define PUSHD_AND_POPD 1" >>confdefs.h
fi
if test $opt_restricted = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define RESTRICTED_SHELL 1
-_ACEOF
+$as_echo "#define RESTRICTED_SHELL 1" >>confdefs.h
fi
if test $opt_process_subst = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define PROCESS_SUBSTITUTION 1
-_ACEOF
+$as_echo "#define PROCESS_SUBSTITUTION 1" >>confdefs.h
fi
if test $opt_prompt_decoding = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define PROMPT_STRING_DECODE 1
-_ACEOF
+$as_echo "#define PROMPT_STRING_DECODE 1" >>confdefs.h
fi
if test $opt_select = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define SELECT_COMMAND 1
-_ACEOF
+$as_echo "#define SELECT_COMMAND 1" >>confdefs.h
fi
if test $opt_help = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define HELP_BUILTIN 1
-_ACEOF
+$as_echo "#define HELP_BUILTIN 1" >>confdefs.h
fi
if test $opt_array_variables = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define ARRAY_VARS 1
-_ACEOF
+$as_echo "#define ARRAY_VARS 1" >>confdefs.h
fi
if test $opt_dparen_arith = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define DPAREN_ARITHMETIC 1
-_ACEOF
+$as_echo "#define DPAREN_ARITHMETIC 1" >>confdefs.h
fi
if test $opt_brace_expansion = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define BRACE_EXPANSION 1
-_ACEOF
+$as_echo "#define BRACE_EXPANSION 1" >>confdefs.h
fi
if test $opt_disabled_builtins = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define DISABLED_BUILTINS 1
-_ACEOF
+$as_echo "#define DISABLED_BUILTINS 1" >>confdefs.h
fi
if test $opt_command_timing = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define COMMAND_TIMING 1
-_ACEOF
+$as_echo "#define COMMAND_TIMING 1" >>confdefs.h
fi
if test $opt_xpg_echo = yes ; then
-cat >>confdefs.h <<\_ACEOF
-#define DEFAULT_ECHO_TO_XPG 1
-_ACEOF
+$as_echo "#define DEFAULT_ECHO_TO_XPG 1" >>confdefs.h
fi
if test $opt_strict_posix = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define STRICT_POSIX 1
-_ACEOF
+$as_echo "#define STRICT_POSIX 1" >>confdefs.h
fi
if test $opt_extended_glob = yes ; then
-cat >>confdefs.h <<\_ACEOF
-#define EXTENDED_GLOB 1
-_ACEOF
+$as_echo "#define EXTENDED_GLOB 1" >>confdefs.h
fi
if test $opt_extglob_default = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define EXTGLOB_DEFAULT 1
-_ACEOF
+$as_echo "#define EXTGLOB_DEFAULT 1" >>confdefs.h
else
-cat >>confdefs.h <<\_ACEOF
-#define EXTGLOB_DEFAULT 0
-_ACEOF
+$as_echo "#define EXTGLOB_DEFAULT 0" >>confdefs.h
fi
if test $opt_cond_command = yes ; then
-cat >>confdefs.h <<\_ACEOF
-#define COND_COMMAND 1
-_ACEOF
+$as_echo "#define COND_COMMAND 1" >>confdefs.h
fi
if test $opt_cond_regexp = yes ; then
-cat >>confdefs.h <<\_ACEOF
-#define COND_REGEXP 1
-_ACEOF
+$as_echo "#define COND_REGEXP 1" >>confdefs.h
fi
if test $opt_coproc = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define COPROCESS_SUPPORT 1
-_ACEOF
+$as_echo "#define COPROCESS_SUPPORT 1" >>confdefs.h
fi
if test $opt_arith_for_command = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define ARITH_FOR_COMMAND 1
-_ACEOF
+$as_echo "#define ARITH_FOR_COMMAND 1" >>confdefs.h
fi
if test $opt_net_redirs = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define NETWORK_REDIRECTIONS 1
-_ACEOF
+$as_echo "#define NETWORK_REDIRECTIONS 1" >>confdefs.h
fi
if test $opt_progcomp = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define PROGRAMMABLE_COMPLETION 1
-_ACEOF
+$as_echo "#define PROGRAMMABLE_COMPLETION 1" >>confdefs.h
fi
if test $opt_multibyte = no; then
-cat >>confdefs.h <<\_ACEOF
-#define NO_MULTIBYTE_SUPPORT 1
-_ACEOF
+$as_echo "#define NO_MULTIBYTE_SUPPORT 1" >>confdefs.h
fi
if test $opt_debugger = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define DEBUGGER 1
-_ACEOF
+$as_echo "#define DEBUGGER 1" >>confdefs.h
fi
if test $opt_casemod_attrs = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define CASEMOD_ATTRS 1
-_ACEOF
+$as_echo "#define CASEMOD_ATTRS 1" >>confdefs.h
fi
if test $opt_casemod_expansions = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define CASEMOD_EXPANSIONS 1
-_ACEOF
+$as_echo "#define CASEMOD_EXPANSIONS 1" >>confdefs.h
+
+fi
+if test $opt_dircomplete_expand_default = yes; then
+$as_echo "#define DIRCOMPLETE_EXPAND_DEFAULT 1" >>confdefs.h
+
+fi
+if test $opt_globascii_default = yes; then
+$as_echo "#define GLOBASCII_DEFAULT 1" >>confdefs.h
+
+else
+$as_echo "#define GLOBASCII_DEFAULT 0" >>confdefs.h
fi
if test $opt_memscramble = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define MEMSCRAMBLE 1
-_ACEOF
+$as_echo "#define MEMSCRAMBLE 1" >>confdefs.h
fi
@@ -2719,7 +3354,7 @@ else
TESTSCRIPT=run-all
fi
-HELPDIR= HELPDIRDEFINE= HELPINSTALL=
+HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET=
if test "$opt_separate_help" != no; then
if test "$opt_separate_help" = "yes" ; then
HELPDIR='${datadir}/bash'
@@ -2728,6 +3363,7 @@ if test "$opt_separate_help" != no; then
fi
HELPDIRDEFINE='-H ${HELPDIR}'
HELPINSTALL='install-help'
+ HELPFILES_TARGET='helpdoc'
fi
HELPSTRINGS=
if test "$opt_single_longdoc_strings" != "yes"; then
@@ -2751,6 +3387,7 @@ fi
+
echo ""
echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
echo ""
@@ -2763,9 +3400,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2776,24 +3413,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2803,9 +3440,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -2816,24 +3453,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2842,7 +3479,7 @@ fi
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:${as_lineno-$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
@@ -2856,9 +3493,9 @@ 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.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2869,24 +3506,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2896,9 +3533,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2910,18 +3547,18 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$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"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
@@ -2940,10 +3577,10 @@ fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2955,9 +3592,9 @@ if test -z "$CC"; then
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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2968,24 +3605,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -2999,9 +3636,9 @@ if test -z "$CC"; then
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3012,24 +3649,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -3042,7 +3679,7 @@ done
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:${as_lineno-$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
@@ -3053,57 +3690,37 @@ fi
fi
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&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
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (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=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (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=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3119,8 +3736,8 @@ 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.
-{ $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; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
@@ -3136,17 +3753,17 @@ do
done
rm -f $ac_rmfiles
-if { (ac_try="$ac_link_default"
+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_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
# 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,
@@ -3163,7 +3780,7 @@ do
# certainly right.
break;;
*.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
@@ -3182,84 +3799,41 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
else
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
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $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'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) 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
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $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
-$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; }; }; }
- fi
- fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $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 "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+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_try_echo="\"\$as_me:${as_lineno-$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); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3274,32 +3848,83 @@ for ac_file in conftest.exe conftest conftest.*; do
esac
done
else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { { $as_echo "$as_me:${as_lineno-$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
-$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; }; }; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_objext+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3311,17 +3936,17 @@ main ()
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+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_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
@@ -3334,31 +3959,23 @@ else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
fi
-
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_compiler_gnu+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3372,37 +3989,16 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -3411,20 +4007,16 @@ else
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
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
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3435,35 +4027,11 @@ 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
+if ac_fn_c_try_compile "$LINENO"; 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
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3474,36 +4042,12 @@ 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
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
- ac_c_werror_flag=$ac_save_c_werror_flag
+else
+ 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -3514,42 +4058,17 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
-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
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -3566,23 +4085,18 @@ else
CFLAGS=
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3634,32 +4148,9 @@ 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 { (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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
fi
-
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
@@ -3670,17 +4161,19 @@ fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
- { $as_echo "$as_me:$LINENO: result: none needed" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
- { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -3691,18 +4184,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { $as_echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_cposix_strerror+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcposix $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -3720,43 +4209,18 @@ return strerror ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_cposix_strerror=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_cposix_strerror" = xyes; then :
LIBS="$LIBS -lcposix"
fi
@@ -3767,14 +4231,14 @@ 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
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
@@ -3789,11 +4253,7 @@ do
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include <limits.h>
@@ -3802,78 +4262,34 @@ cat >>conftest.$ac_ext <<_ACEOF
#endif
Syntax error
_ACEOF
-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
- $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
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
+else
# Broken: fails on valid input.
continue
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-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
- $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
+if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
- $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
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
break
fi
@@ -3885,7 +4301,7 @@ fi
else
ac_cv_prog_CPP=$CPP
fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
@@ -3896,11 +4312,7 @@ do
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include <limits.h>
@@ -3909,87 +4321,40 @@ cat >>conftest.$ac_ext <<_ACEOF
#endif
Syntax error
_ACEOF
-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
- $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
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
+else
# Broken: fails on valid input.
continue
fi
-
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
-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
- $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
+if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
- $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
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
else
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -3999,9 +4364,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -4012,10 +4377,10 @@ 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_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
+ as_fn_executable_p "$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
@@ -4032,7 +4397,7 @@ case `"$ac_path_GREP" --version 2>&1` in
$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`
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
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"
@@ -4047,26 +4412,24 @@ esac
$ac_path_GREP_found && break 3
done
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; }; }
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -4080,10 +4443,10 @@ 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_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
+ as_fn_executable_p "$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
@@ -4100,7 +4463,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
$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`
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
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"
@@ -4115,12 +4478,10 @@ esac
$ac_path_EGREP_found && break 3
done
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; }; }
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -4128,21 +4489,17 @@ fi
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_header_stdc+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdarg.h>
@@ -4157,48 +4514,23 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_header_stdc=yes
else
- $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 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.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
else
ac_cv_header_stdc=no
fi
@@ -4208,18 +4540,14 @@ 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 <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
+ $EGREP "free" >/dev/null 2>&1; then :
+
else
ac_cv_header_stdc=no
fi
@@ -4229,14 +4557,10 @@ 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
+ if test "$cross_compiling" = yes; then :
:
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ctype.h>
#include <stdlib.h>
@@ -4263,118 +4587,33 @@ main ()
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
- :
-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
+if ac_fn_c_try_run "$LINENO"; then :
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+ ac_cv_header_stdc=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
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=`$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. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_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
- eval "$as_ac_Header=yes"
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-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; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -4385,139 +4624,8 @@ 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
- $as_echo_n "(cached) " >&6
-fi
-{ $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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <minix/config.h>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <minix/config.h>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_header_minix_config_h=$ac_header_preproc
-fi
-{ $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 "x$ac_cv_header_minix_config_h" = x""yes; then
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
MINIX=yes
else
MINIX=
@@ -4526,38 +4634,27 @@ fi
if test "$MINIX" = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_SOURCE 1
-_ACEOF
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_1_SOURCE 2
-_ACEOF
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define _MINIX 1
-_ACEOF
+$as_echo "#define _MINIX 1" >>confdefs.h
fi
-
- { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_safe_to_define___extensions__+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-# define __EXTENSIONS__ 1
- $ac_includes_default
+# define __EXTENSIONS__ 1
+ $ac_includes_default
int
main ()
{
@@ -4566,69 +4663,39 @@ 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
+if ac_fn_c_try_compile "$LINENO"; 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
+ 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 "$as_me:${as_lineno-$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
+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
+ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define _GNU_SOURCE 1
-_ACEOF
+ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define _POSIX_PTHREAD_SEMANTICS 1
-_ACEOF
+ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define _TANDEM_SOURCE 1
-_ACEOF
# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then
+if test "${enable_largefile+set}" = set; then :
enableval=$enable_largefile;
fi
if test "$enable_largefile" != no; then
- { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_sys_largefile_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_sys_largefile_CC=no
@@ -4637,11 +4704,7 @@ else
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.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -4660,60 +4723,14 @@ 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
+ if ac_fn_c_try_compile "$LINENO"; then :
break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
fi
-
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
- $as_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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_sys_largefile_CC=' -n32'; break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
fi
-
rm -f core conftest.err conftest.$ac_objext
break
done
@@ -4721,23 +4738,19 @@ rm -f core conftest.err conftest.$ac_objext
rm -f conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+{ $as_echo "$as_me:${as_lineno-$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
- { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_sys_file_offset_bits+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -4756,38 +4769,11 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_sys_file_offset_bits=no; break
-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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
@@ -4807,38 +4793,15 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_sys_file_offset_bits=64; break
-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
ac_cv_sys_file_offset_bits=unknown
break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+{ $as_echo "$as_me:${as_lineno-$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) ;;
@@ -4850,17 +4813,13 @@ _ACEOF
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 "$as_me:${as_lineno-$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
+if ${ac_cv_sys_large_files+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.
@@ -4879,38 +4838,11 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_sys_large_files=no; break
-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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _LARGE_FILES 1
#include <sys/types.h>
@@ -4930,38 +4862,15 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_sys_large_files=1; break
-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
ac_cv_sys_large_files=unknown
break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+{ $as_echo "$as_me:${as_lineno-$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) ;;
@@ -4973,6 +4882,8 @@ _ACEOF
esac
rm -rf conftest*
fi
+
+
fi
@@ -5009,19 +4920,16 @@ fi
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- CC_FOR_BUILD=gcc
- fi
-fi
+if test -z "$CFLAGS"; then
+ AUTO_CFLAGS="-g ${GCC+-O2}"
+ AUTO_LDFLAGS="-g ${GCC+-O2}"
+else
+ AUTO_CFLAGS= AUTO_LDFLAGS=
+fi
-
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O2"
+CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
+# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX
if test "$opt_profiling" = "yes"; then
PROFILE_FLAGS=-pg
@@ -5032,7 +4940,12 @@ if test "$opt_profiling" = "yes"; then
DEBUG= MALLOC_DEBUG=
fi
+prefer_shared=yes
+prefer_static=no
+
if test "$opt_static_link" = yes; then
+ prefer_static=yes
+ prefer_shared=no
# if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
if test -n "$GCC" || test "$ac_cv_c_compiler_gnu" = "yes"; then
STATIC_LD="-static"
@@ -5043,15 +4956,25 @@ if test "$opt_static_link" = yes; then
fi
fi
+# set the appropriate make variables for building the "build tools"
+# modify defaults based on whether or not we are cross compiling, since the
+# options for the target host may not be appropriate for the build host
if test "X$cross_compiling" = "Xno"; then
- CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"}
+ CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'}
+ CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)'
LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
+ # CFLAGS set above to default value if not passed in environment
+ CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'}
+ LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'}
else
+ CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
+ CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
+ LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
fi
-test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
+
@@ -5063,23 +4986,19 @@ test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g"
if test $ac_cv_c_compiler_gnu = yes; then
- { $as_echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_gcc_traditional+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sgtty.h>
Autoconf TIOCGETP
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then :
ac_cv_prog_gcc_traditional=yes
else
ac_cv_prog_gcc_traditional=no
@@ -5088,24 +5007,20 @@ rm -f conftest*
if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termio.h>
Autoconf TCGETA
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "$ac_pattern" >/dev/null 2>&1; then
+ $EGREP "$ac_pattern" >/dev/null 2>&1; then :
ac_cv_prog_gcc_traditional=yes
fi
rm -f conftest*
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+{ $as_echo "$as_me:${as_lineno-$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"
@@ -5124,113 +5039,25 @@ then
if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
else
-{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
+{ $as_echo "$as_me:${as_lineno-$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
- $as_echo_n "(cached) " >&6
-else
- { $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
+if ${bash_cv_termcap_lib+:} false; 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 tgetent to an innocuous variant, in case <limits.h> declares tgetent.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define tgetent innocuous_tgetent
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char tgetent (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef tgetent
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return tgetent ();
- ;
- 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_tgetent=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_tgetent=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_tgetent" >&5
-$as_echo "$ac_cv_func_tgetent" >&6; }
-if test "x$ac_cv_func_tgetent" = x""yes; then
+ ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent"
+if test "x$ac_cv_func_tgetent" = xyes; then :
bash_cv_termcap_lib=libc
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_termcap_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltermcap $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -5248,57 +5075,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_termcap_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_termcap_tgetent" = xyes; then :
bash_cv_termcap_lib=libtermcap
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_tinfo_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -5316,57 +5114,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_tinfo_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then :
bash_cv_termcap_lib=libtinfo
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_curses_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -5384,57 +5153,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_curses_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_curses_tgetent" = xyes; then :
bash_cv_termcap_lib=libcurses
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_ncurses_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -5452,43 +5192,18 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncurses_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then :
bash_cv_termcap_lib=libncurses
else
bash_cv_termcap_lib=gnutermcap
@@ -5505,10 +5220,10 @@ fi
fi
if test "X$_bash_needmsg" = "Xyes"; then
-{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5
$as_echo_n "checking which library has the termcap functions... " >&6; }
fi
-{ $as_echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5
+{ $as_echo "$as_me:${as_lineno-$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"
@@ -5534,7 +5249,7 @@ fi
-{ $as_echo "$as_me:$LINENO: checking version of installed readline library" >&5
+{ $as_echo "$as_me:${as_lineno-$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.
@@ -5559,17 +5274,13 @@ LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
-if test "${ac_cv_rl_version+set}" = set; then
+if ${ac_cv_rl_version+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_rl_version='4.2'
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -5592,42 +5303,15 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_rl_version=`cat conftest.rlv`
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_rl_version='0.0'
+ ac_cv_rl_version='0.0'
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
@@ -5665,14 +5349,14 @@ 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
- { $as_echo "$as_me:$LINENO: WARNING: Could not test version of installed readline library." >&5
+ { $as_echo "$as_me:${as_lineno-$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
- { $as_echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5
$as_echo "$ac_cv_rl_version" >&6; }
else
@@ -5701,7 +5385,7 @@ RL_PREFIX=$ac_cv_rl_prefix
RL_LIBDIR=$ac_cv_rl_libdir
RL_INCLUDEDIR=$ac_cv_rl_includedir
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rl_version" >&5
$as_echo "$ac_cv_rl_version" >&6; }
fi
@@ -5710,9 +5394,9 @@ fi
case "$ac_cv_rl_version" in
5*|6*|7*|8*|9*) ;;
*) opt_with_installed_readline=no
- { $as_echo "$as_me:$LINENO: WARNING: installed readline library is too old to be linked with bash" >&5
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: WARNING: using private bash version" >&5
$as_echo "$as_me: WARNING: using private bash version" >&2;}
;;
esac
@@ -5720,9 +5404,7 @@ fi
TILDE_LIB=-ltilde
if test $opt_readline = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define READLINE 1
-_ACEOF
+ $as_echo "#define READLINE 1" >>confdefs.h
if test "$opt_with_installed_readline" != "no" ; then
case "$opt_with_installed_readline" in
@@ -5758,15 +5440,11 @@ else
fi
if test $opt_history = yes || test $opt_bang_history = yes; then
if test $opt_history = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HISTORY 1
-_ACEOF
+ $as_echo "#define HISTORY 1" >>confdefs.h
fi
if test $opt_bang_history = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define BANG_HISTORY 1
-_ACEOF
+ $as_echo "#define BANG_HISTORY 1" >>confdefs.h
fi
if test "$opt_with_installed_readline" != "no"; then
@@ -5822,10 +5500,10 @@ fi
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5833,11 +5511,11 @@ for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
@@ -5845,7 +5523,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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$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.
@@ -5874,7 +5552,7 @@ case $as_dir/ in
;;
esac
-done
+ done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
@@ -5890,7 +5568,7 @@ fi
INSTALL=$ac_install_sh
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -5901,11 +5579,12 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@@ -5916,36 +5595,89 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AR=""
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-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
- { $as_echo "$as_me:$LINENO: result: $AR" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
$as_echo "$AR" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@@ -5956,24 +5688,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
$as_echo "$RANLIB" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -5983,9 +5715,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@@ -5996,24 +5728,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
$as_echo "$ac_ct_RANLIB" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -6022,7 +5754,7 @@ fi
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:${as_lineno-$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
@@ -6036,9 +5768,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_YACC+set}" = set; then
+if ${ac_cv_prog_YACC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$YACC"; then
@@ -6049,24 +5781,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_YACC="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
- { $as_echo "$as_me:$LINENO: result: $YACC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
$as_echo "$YACC" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -6075,11 +5807,11 @@ fi
done
test -n "$YACC" || YACC="yacc"
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -6087,7 +5819,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -6097,16 +5829,22 @@ esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
SET_MAKE=
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
+case "$ac_cv_prog_YACC" in
+*bison*) ;;
+*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: bison not available; needed to process parse.y" >&5
+$as_echo "$as_me: WARNING: bison not available; needed to process parse.y" >&2;} ;;
+esac
+
case "$host_os" in
opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
*) MAKE_SHELL=/bin/sh ;;
@@ -6134,31 +5872,60 @@ if test x$SIZE = x; then
fi
-cat >>confdefs.h <<\_ACEOF
-#define _GNU_SOURCE 1
-_ACEOF
+# Checks for stat-related time functions.
+
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 Free Software
+# Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# st_atim.tv_nsec - Linux, Solaris, Cygwin
+# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE
+# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE
+# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
+
+# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway)
+# st_birthtim - Cygwin 1.7.0+
+
+
+
+# Configure checks for struct timespec
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2011, 2012 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Original written by Paul Eggert and Jim Meyering.
+# Modified by Chet Ramey for bash
+
+
-{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+
+$as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_const+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
-/* FIXME: Include the comments suggested by Paul. */
+
#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
+ /* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
- const charset cs;
+ const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
@@ -6175,8 +5942,9 @@ main ()
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
@@ -6192,10 +5960,10 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this saying
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
@@ -6208,56 +5976,29 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_const=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+{ $as_echo "$as_me:${as_lineno-$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 /**/
-_ACEOF
+$as_echo "#define const /**/" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for inline" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
+if ${ac_cv_c_inline+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
@@ -6266,41 +6007,17 @@ $ac_kw foo_t foo () {return 0; }
#endif
_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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_inline=$ac_kw
-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
test "$ac_cv_c_inline" != no && break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
$as_echo "$ac_cv_c_inline" >&6; }
-
case $ac_cv_c_inline in
inline | yes) ;;
*)
@@ -6316,19 +6033,14 @@ _ACEOF
;;
esac
-
- { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_bigendian+:} false; then :
$as_echo_n "(cached) " >&6
else
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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __APPLE_CC__
not a universal capable compiler
@@ -6336,46 +6048,34 @@ cat >>conftest.$ac_ext <<_ACEOF
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
+if ac_fn_c_try_compile "$LINENO"; 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
-
-
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
@@ -6393,30 +6093,9 @@ 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
+if ac_fn_c_try_compile "$LINENO"; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
@@ -6432,49 +6111,18 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_bigendian=yes
else
- $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 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
if test $ac_cv_c_bigendian = unknown; then
# See if <limits.h> 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
@@ -6489,30 +6137,9 @@ 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
+if ac_fn_c_try_compile "$LINENO"; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
@@ -6527,51 +6154,20 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_bigendian=yes
else
- $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 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
if test $ac_cv_c_bigendian = unknown; then
# Compile a test program.
- if test "$cross_compiling" = yes; then
+ 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
short int ascii_mm[] =
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
@@ -6597,24 +6193,7 @@ 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 ac_fn_c_try_compile "$LINENO"; then :
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
ac_cv_c_bigendian=yes
fi
@@ -6626,20 +6205,10 @@ $as_echo "$ac_try_echo") >&5
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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
@@ -6659,86 +6228,48 @@ main ()
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
+if ac_fn_c_try_run "$LINENO"; 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
+ 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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
no)
;; #(
universal)
-cat >>confdefs.h <<\_ACEOF
-#define AC_APPLE_UNIVERSAL_BUILD 1
-_ACEOF
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
- { { $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; }; } ;;
+ as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
-{ $as_echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_stringize+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define x(y) #y
char *s = x(teststring);
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "#teststring" >/dev/null 2>&1; then
+ $EGREP "#teststring" >/dev/null 2>&1; then :
ac_cv_c_stringize=no
else
ac_cv_c_stringize=yes
@@ -6746,28 +6277,22 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_STRINGIZE 1
-_ACEOF
+$as_echo "#define HAVE_STRINGIZE 1" >>confdefs.h
fi
- { $as_echo "$as_me:$LINENO: checking for long double with more range or precision than double" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_long_double_wider+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <float.h>
long double const a[] =
@@ -6791,149 +6316,90 @@ static int test_array [1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP)
- (LDBL_MANT_DIG < DBL_MANT_DIG)))
&& (int) LDBL_EPSILON == 0
)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_type_long_double_wider=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_type_long_double_wider=no
+ ac_cv_type_long_double_wider=no
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_double_wider" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+$as_echo "#define HAVE_LONG_DOUBLE_WIDER 1" >>confdefs.h
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
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for function prototypes" >&5
+{ $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-cat >>confdefs.h <<\_ACEOF
-#define PROTOTYPES 1
-_ACEOF
+$as_echo "#define PROTOTYPES 1" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define __PROTOTYPES 1
-_ACEOF
+$as_echo "#define __PROTOTYPES 1" >>confdefs.h
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-
-{ $as_echo "$as_me:$LINENO: checking whether char is unsigned" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_char_unsigned+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main ()
{
static int test_array [1 - 2 * !(((char) -1) < 0)];
-test_array [0] = 0
+test_array [0] = 0;
+return test_array [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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_char_unsigned=no
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
$as_echo_n "checking for working volatile... " >&6; }
-if test "${ac_cv_c_volatile+set}" = set; then
+if ${ac_cv_c_volatile+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -6947,57 +6413,30 @@ return !x && !y;
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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_volatile=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_c_volatile=no
+ ac_cv_c_volatile=no
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
$as_echo "$ac_cv_c_volatile" >&6; }
if test $ac_cv_c_volatile = no; then
-cat >>confdefs.h <<\_ACEOF
-#define volatile /**/
-_ACEOF
+$as_echo "#define volatile /**/" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if test "${ac_cv_c_restrict+set}" = set; then
+if ${ac_cv_c_restrict+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_restrict=no
# The order here caters to the fact that C++ does not require restrict.
for ac_kw in __restrict __restrict__ _Restrict restrict; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
typedef int * int_ptr;
int foo (int_ptr $ac_kw ip) {
@@ -7014,46 +6453,20 @@ int s[1];
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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_c_restrict=$ac_kw
-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
test "$ac_cv_c_restrict" != no && break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
$as_echo "$ac_cv_c_restrict" >&6; }
-
case $ac_cv_c_restrict in
restrict) ;;
- no) cat >>confdefs.h <<\_ACEOF
-#define restrict /**/
-_ACEOF
+ no) $as_echo "#define restrict /**/" >>confdefs.h
;;
*) cat >>confdefs.h <<_ACEOF
#define restrict $ac_cv_c_restrict
@@ -7076,16 +6489,16 @@ _ACEOF
- { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if test "${enable_nls+set}" = set; then :
enableval=$enable_nls; USE_NLS=$enableval
else
USE_NLS=yes
fi
- { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
$as_echo "$USE_NLS" >&6; }
@@ -7123,9 +6536,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
@@ -7154,18 +6567,18 @@ esac
fi
MSGFMT="$ac_cv_path_MSGFMT"
if test "$MSGFMT" != ":"; then
- { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
$as_echo "$MSGFMT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if ${ac_cv_path_GMSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
@@ -7178,14 +6591,14 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -7194,10 +6607,10 @@ esac
fi
GMSGFMT=$ac_cv_path_GMSGFMT
if test -n "$GMSGFMT"; then
- { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
$as_echo "$GMSGFMT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -7234,9 +6647,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if ${ac_cv_path_XGETTEXT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
@@ -7265,10 +6678,10 @@ esac
fi
XGETTEXT="$ac_cv_path_XGETTEXT"
if test "$XGETTEXT" != ":"; then
- { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
$as_echo "$XGETTEXT" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -7305,9 +6718,9 @@ 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if ${ac_cv_path_MSGMERGE+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGMERGE" in
@@ -7335,10 +6748,10 @@ esac
fi
MSGMERGE="$ac_cv_path_MSGMERGE"
if test "$MSGMERGE" != ":"; then
- { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
$as_echo "$MSGMERGE" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -7349,7 +6762,7 @@ fi
: ;
else
GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- { $as_echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
+ { $as_echo "$as_me:${as_lineno-$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
@@ -7360,7 +6773,7 @@ $as_echo "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
- { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+ { $as_echo "$as_me:${as_lineno-$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
@@ -7370,102 +6783,9 @@ $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
ac_config_commands="$ac_config_commands default-1"
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_off_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 (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=$?
- 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 ((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=$?
- 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
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
@@ -7474,102 +6794,9 @@ _ACEOF
fi
-{ $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
- ac_cv_type_size_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 (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
- 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
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
-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_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
@@ -7580,16 +6807,12 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
-{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_working_alloca_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <alloca.h>
int
@@ -7601,59 +6824,28 @@ char *p = (char *) alloca (2 * sizeof (int));
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_working_alloca_h=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_ALLOCA_H 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then
+if ${ac_cv_func_alloca_works+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __GNUC__
# define alloca __builtin_alloca
@@ -7669,7 +6861,7 @@ cat >>conftest.$ac_ext <<_ACEOF
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
# endif
# endif
# endif
@@ -7685,47 +6877,20 @@ char *p = (char *) alloca (1);
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_func_alloca_works=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
@@ -7735,21 +6900,15 @@ else
ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
-{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_os_cray+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined CRAY && ! defined CRAY2
webecray
@@ -7759,7 +6918,7 @@ wenotbecray
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "webecray" >/dev/null 2>&1; then
+ $EGREP "webecray" >/dev/null 2>&1; then :
ac_cv_os_cray=yes
else
ac_cv_os_cray=no
@@ -7767,101 +6926,13 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+{ $as_echo "$as_me:${as_lineno-$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=`$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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -7873,81 +6944,46 @@ fi
done
fi
-{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_stack_direction+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_c_stack_direction=0
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_c_stack_direction=1
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_stack_direction=-1
+ ac_cv_c_stack_direction=-1
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+{ $as_echo "$as_me:${as_lineno-$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
_ACEOF
@@ -7957,148 +6993,13 @@ fi
-for ac_header in stdlib.h unistd.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ for ac_header in $ac_header_list
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -8108,119 +7009,32 @@ fi
done
-for ac_func in getpagesize
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETPAGESIZE 1
_ACEOF
fi
done
-{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_func_mmap_fixed_mapped=no
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
/* malloc might have been renamed as rpl_malloc. */
@@ -8257,11 +7071,6 @@ char *malloc ();
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure 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 */
@@ -8296,8 +7105,9 @@ int
main ()
{
char *data, *data2, *data3;
+ const char *cdata2;
int i, pagesize;
- int fd;
+ int fd, fd2;
pagesize = getpagesize ();
@@ -8310,27 +7120,41 @@ main ()
umask (0);
fd = creat ("conftest.mmap", 0600);
if (fd < 0)
- return 1;
+ return 2;
if (write (fd, data, pagesize) != pagesize)
- return 1;
+ return 3;
close (fd);
+ /* Next, check that the tail of a page is zero-filled. File must have
+ non-zero length, otherwise we risk SIGBUS for entire page. */
+ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
+ if (fd2 < 0)
+ return 4;
+ cdata2 = "";
+ if (write (fd2, cdata2, 1) != 1)
+ return 5;
+ data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
+ if (data2 == MAP_FAILED)
+ return 6;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data2 + i))
+ return 7;
+ close (fd2);
+ if (munmap (data2, pagesize))
+ return 8;
+
/* Next, try to mmap the file at a fixed address which already has
something else allocated at it. If we can, also make sure that
we see the same garbage. */
fd = open ("conftest.mmap", O_RDWR);
if (fd < 0)
- return 1;
- data2 = (char *) malloc (2 * pagesize);
- if (!data2)
- return 1;
- data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
+ return 9;
if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED, fd, 0L))
- return 1;
+ return 10;
for (i = 0; i < pagesize; ++i)
if (*(data + i) != *(data2 + i))
- return 1;
+ return 11;
/* 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
@@ -8339,75 +7163,42 @@ main ()
*(data2 + i) = *(data2 + i) + 1;
data3 = (char *) malloc (pagesize);
if (!data3)
- return 1;
+ return 12;
if (read (fd, data3, pagesize) != pagesize)
- return 1;
+ return 13;
for (i = 0; i < pagesize; ++i)
if (*(data + i) != *(data3 + i))
- return 1;
+ return 14;
close (fd);
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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_mmap_fixed_mapped=yes
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_func_mmap_fixed_mapped=no
+ ac_cv_func_mmap_fixed_mapped=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_MMAP 1
-_ACEOF
+$as_echo "#define HAVE_MMAP 1" >>confdefs.h
fi
-rm -f conftest.mmap
+rm -f conftest.mmap conftest.txt
- { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_gnu_library_2_1+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <features.h>
@@ -8419,7 +7210,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "Lucky GNU user" >/dev/null 2>&1; then
+ $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
ac_cv_gnu_library_2_1=yes
else
ac_cv_gnu_library_2_1=no
@@ -8429,7 +7220,7 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
+{ $as_echo "$as_me:${as_lineno-$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"
@@ -8437,13 +7228,13 @@ $as_echo "$ac_cv_gnu_library_2_1" >&6; }
- { $as_echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${gt_cv_int_divbyzero_sigfpe+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
# Guess based on the CPU.
case "$host_cpu" in
@@ -8454,11 +7245,7 @@ else
esac
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
@@ -8498,45 +7285,18 @@ int main ()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
gt_cv_int_divbyzero_sigfpe=yes
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 )
-gt_cv_int_divbyzero_sigfpe=no
+ gt_cv_int_divbyzero_sigfpe=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5
+{ $as_echo "$as_me:${as_lineno-$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;;
@@ -8549,16 +7309,12 @@ _ACEOF
- { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${jm_ac_cv_header_inttypes_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <inttypes.h>
@@ -8570,35 +7326,14 @@ uintmax_t i = (uintmax_t) -1;
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 ac_fn_c_try_compile "$LINENO"; then :
jm_ac_cv_header_inttypes_h=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $jm_ac_cv_header_inttypes_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -8609,16 +7344,12 @@ _ACEOF
fi
- { $as_echo "$as_me:$LINENO: checking for stdint.h" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${jm_ac_cv_header_stdint_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <stdint.h>
@@ -8630,35 +7361,14 @@ uintmax_t i = (uintmax_t) -1;
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 ac_fn_c_try_compile "$LINENO"; then :
jm_ac_cv_header_stdint_h=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $jm_ac_cv_header_stdint_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -8669,16 +7379,12 @@ _ACEOF
fi
- { $as_echo "$as_me:$LINENO: checking for unsigned long long" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_unsigned_long_long+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
unsigned long long ull = 1; int i = 63;
int
@@ -8690,46 +7396,19 @@ unsigned long long ullmax = (unsigned long long) -1;
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_type_unsigned_long_long=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_UNSIGNED_LONG_LONG 1
-_ACEOF
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h
fi
@@ -8748,24 +7427,18 @@ _ACEOF
else
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_UINTMAX_T 1
-_ACEOF
+$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
fi
- { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gt_cv_header_inttypes_h+set}" = set; then
+if ${gt_cv_header_inttypes_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <inttypes.h>
@@ -8777,36 +7450,15 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
gt_cv_header_inttypes_h=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -8819,17 +7471,13 @@ _ACEOF
if test $gt_cv_header_inttypes_h = yes; then
- { $as_echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${gt_cv_inttypes_pri_broken+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <inttypes.h>
#ifdef PRId32
@@ -8844,36 +7492,15 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
gt_cv_inttypes_pri_broken=no
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -8902,7 +7529,7 @@ _ACEOF
# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
else
with_gnu_ld=no
@@ -8924,7 +7551,7 @@ fi
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
$as_echo_n "checking for ld used by GCC... " >&6; }
case $host in
*-*-mingw*)
@@ -8954,13 +7581,13 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
;;
esac
elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
$as_echo_n "checking for GNU ld... " >&6; }
else
- { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${acl_cv_path_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$LD"; then
@@ -8987,18 +7614,16 @@ fi
LD="$acl_cv_path_LD"
if test -n "$LD"; then
- { $as_echo "$as_me:$LINENO: result: $LD" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
$as_echo "$LD" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-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; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -9008,15 +7633,15 @@ else
acl_cv_prog_gnu_ld=no
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
$as_echo "$acl_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$acl_cv_prog_gnu_ld
- { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${acl_cv_rpath+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -9027,7 +7652,7 @@ else
acl_cv_rpath=done
fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
$as_echo "$acl_cv_rpath" >&6; }
wl="$acl_cv_wl"
libext="$acl_cv_libext"
@@ -9037,7 +7662,7 @@ $as_echo "$acl_cv_rpath" >&6; }
hardcode_direct="$acl_cv_hardcode_direct"
hardcode_minus_L="$acl_cv_hardcode_minus_L"
# Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then
+if test "${enable_rpath+set}" = set; then :
enableval=$enable_rpath; :
else
enable_rpath=yes
@@ -9065,7 +7690,7 @@ fi
# Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
+if test "${with_libiconv_prefix+set}" = set; then :
withval=$with_libiconv_prefix;
if test "X$withval" = "Xno"; then
use_additional=no
@@ -9128,7 +7753,7 @@ fi
found_so=
found_a=
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
found_dir="$additional_libdir"
found_so="$additional_libdir/lib$name.$shlibext"
if test -f "$additional_libdir/lib$name.la"; then
@@ -9158,7 +7783,7 @@ fi
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
found_dir="$dir"
found_so="$dir/lib$name.$shlibext"
if test -f "$dir/lib$name.la"; then
@@ -9429,159 +8054,12 @@ fi
-
-
-
-
-
-
-
-
-
-
-for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+ 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=`$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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -9590,125 +8068,14 @@ fi
done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
+ for ac_func in feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
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=`$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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -9747,19 +8114,15 @@ done
done
- { $as_echo "$as_me:$LINENO: checking for iconv" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then
+if ${am_cv_func_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <iconv.h>
@@ -9773,46 +8136,15 @@ iconv_t cd = iconv_open("","");
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
+if ac_fn_c_try_link "$LINENO"; then :
am_cv_func_iconv=yes
-else
- $as_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 conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <iconv.h>
@@ -9826,56 +8158,27 @@ iconv_t cd = iconv_open("","");
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
+if ac_fn_c_try_link "$LINENO"; then :
am_cv_lib_iconv=yes
am_cv_func_iconv=yes
-else
- $as_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 conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS="$am_save_LIBS"
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_ICONV 1
-_ACEOF
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
fi
if test "$am_cv_lib_iconv" = yes; then
- { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+ { $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
$as_echo "$LIBICONV" >&6; }
else
CPPFLAGS="$am_save_CPPFLAGS"
@@ -9886,17 +8189,13 @@ $as_echo "$LIBICONV" >&6; }
if test "$am_cv_func_iconv" = yes; then
- { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
$as_echo_n "checking for iconv declaration... " >&6; }
- if test "${am_cv_proto_iconv+set}" = set; then
+ if ${am_cv_proto_iconv+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
@@ -9919,38 +8218,17 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
am_cv_proto_iconv_arg1=""
else
- $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 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/( /(/'`
- { $as_echo "$as_me:$LINENO: result: ${ac_t:-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:-
}$am_cv_proto_iconv" >&5
$as_echo "${ac_t:-
}$am_cv_proto_iconv" >&6; }
@@ -9962,16 +8240,12 @@ _ACEOF
fi
- { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${am_cv_langinfo_codeset+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <langinfo.h>
int
@@ -9982,62 +8256,31 @@ char* cs = nl_langinfo(CODESET);
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
+if ac_fn_c_try_link "$LINENO"; then :
am_cv_langinfo_codeset=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_LANGINFO_CODESET 1
-_ACEOF
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
fi
if test $ac_cv_header_locale_h = yes; then
- { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${am_cv_val_LC_MESSAGES+set}" = set; then
+if ${am_cv_val_LC_MESSAGES+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <locale.h>
int
@@ -10048,46 +8291,19 @@ return LC_MESSAGES
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
+if ac_fn_c_try_link "$LINENO"; then :
am_cv_val_LC_MESSAGES=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_LC_MESSAGES 1
-_ACEOF
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
fi
@@ -10097,9 +8313,9 @@ _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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_INTLBISON+set}" = set; then
+if ${ac_cv_prog_INTLBISON+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$INTLBISON"; then
@@ -10110,24 +8326,24 @@ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_INTLBISON="$ac_prog"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
-done
+ done
IFS=$as_save_IFS
fi
fi
INTLBISON=$ac_cv_prog_INTLBISON
if test -n "$INTLBISON"; then
- { $as_echo "$as_me:$LINENO: result: $INTLBISON" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5
$as_echo "$INTLBISON" >&6; }
else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
@@ -10138,7 +8354,7 @@ done
if test -z "$INTLBISON"; then
ac_verc_fail=yes
else
- { $as_echo "$as_me:$LINENO: checking version of bison" >&5
+ { $as_echo "$as_me:${as_lineno-$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
@@ -10147,7 +8363,7 @@ $as_echo_n "checking version of bison... " >&6; }
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
esac
- { $as_echo "$as_me:$LINENO: result: $ac_prog_version" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
$as_echo "$ac_prog_version" >&6; }
fi
if test $ac_verc_fail = yes; then
@@ -10169,16 +8385,16 @@ $as_echo "$ac_prog_version" >&6; }
- { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if test "${enable_nls+set}" = set; then :
enableval=$enable_nls; USE_NLS=$enableval
else
USE_NLS=yes
fi
- { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
$as_echo "$USE_NLS" >&6; }
@@ -10194,17 +8410,17 @@ $as_echo "$USE_NLS" >&6; }
if test "$USE_NLS" = "yes"; then
gt_use_preinstalled_gnugettext=no
- { $as_echo "$as_me:$LINENO: checking whether included gettext is requested" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5
$as_echo_n "checking whether included gettext is requested... " >&6; }
# Check whether --with-included-gettext was given.
-if test "${with_included_gettext+set}" = set; then
+if test "${with_included_gettext+set}" = set; then :
withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval
else
nls_cv_force_use_gnu_gettext=no
fi
- { $as_echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5
+ { $as_echo "$as_me:${as_lineno-$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"
@@ -10215,16 +8431,12 @@ $as_echo "$nls_cv_force_use_gnu_gettext" >&6; }
- { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${gt_cv_func_gnugettext2_libc+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
extern int _nl_msg_cat_cntr;
@@ -10238,40 +8450,15 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl
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
+if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_gnugettext2_libc=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -10293,7 +8480,7 @@ $as_echo "$gt_cv_func_gnugettext2_libc" >&6; }
# Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then
+if test "${with_libintl_prefix+set}" = set; then :
withval=$with_libintl_prefix;
if test "X$withval" = "Xno"; then
use_additional=no
@@ -10356,7 +8543,7 @@ fi
found_so=
found_a=
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
found_dir="$additional_libdir"
found_so="$additional_libdir/lib$name.$shlibext"
if test -f "$additional_libdir/lib$name.la"; then
@@ -10386,7 +8573,7 @@ fi
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ if test "X$prefer_shared" = "Xyes" && test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
found_dir="$dir"
found_so="$dir/lib$name.$shlibext"
if test -f "$dir/lib$name.la"; then
@@ -10654,20 +8841,16 @@ fi
done
fi
- { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${gt_cv_func_gnugettext2_libintl+:} false; then :
$as_echo_n "(cached) " >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $INCINTL"
gt_save_LIBS="$LIBS"
LIBS="$LIBS $LIBINTL"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
extern int _nl_msg_cat_cntr;
@@ -10685,45 +8868,16 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl
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
+if ac_fn_c_try_link "$LINENO"; then :
gt_cv_func_gnugettext2_libintl=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
extern int _nl_msg_cat_cntr;
@@ -10741,46 +8895,19 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl
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
+if ac_fn_c_try_link "$LINENO"; then :
LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
gt_cv_func_gnugettext2_libintl=yes
-else
- $as_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 conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
CPPFLAGS="$gt_save_CPPFLAGS"
LIBS="$gt_save_LIBS"
fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libintl" >&5
$as_echo "$gt_cv_func_gnugettext2_libintl" >&6; }
fi
@@ -10818,21 +8945,19 @@ $as_echo "$gt_cv_func_gnugettext2_libintl" >&6; }
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
else
USE_NLS=no
fi
fi
- { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5
+ { $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
$as_echo "$USE_NLS" >&6; }
if test "$USE_NLS" = "yes"; then
- { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
+ { $as_echo "$as_me:${as_lineno-$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
@@ -10843,7 +8968,7 @@ $as_echo_n "checking where the gettext function comes from... " >&6; }
else
gt_source="included intl directory"
fi
- { $as_echo "$as_me:$LINENO: result: $gt_source" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
$as_echo "$gt_source" >&6; }
fi
@@ -10851,9 +8976,9 @@ $as_echo "$gt_source" >&6; }
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then
- { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5
+ { $as_echo "$as_me:${as_lineno-$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 "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
$as_echo "$LIBINTL" >&6; }
for element in $INCINTL; do
@@ -10881,14 +9006,10 @@ $as_echo "$LIBINTL" >&6; }
fi
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DCGETTEXT 1
-_ACEOF
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
fi
@@ -10933,24 +9054,15 @@ _ACEOF
-
-
-
-
-
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
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 "$as_me:${as_lineno-$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
+if eval \${$as_ac_Header+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <$ac_hdr>
@@ -10964,41 +9076,17 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
eval "$as_ac_Header=yes"
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$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
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
_ACEOF
@@ -11009,17 +9097,13 @@ fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
- { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_search_opendir+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -11044,70 +9128,39 @@ for ac_lib in '' dir; do
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
- $as_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
+ if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_opendir=$ac_res
-else
- $as_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
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
break
fi
done
-if test "${ac_cv_search_opendir+set}" = set; then
- :
+if ${ac_cv_search_opendir+:} false; then :
+
else
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
else
- { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_search_opendir+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -11132,70 +9185,39 @@ for ac_lib in '' x; do
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
- $as_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
+ if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_opendir=$ac_res
-else
- $as_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
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
break
fi
done
-if test "${ac_cv_search_opendir+set}" = set; then
- :
+if ${ac_cv_search_opendir+:} false; then :
+
else
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
fi
-{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_header_time+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/time.h>
@@ -11210,191 +9232,29 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_header_time=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
fi
-
-for ac_header in inttypes.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_INTTYPES_H 1
_ACEOF
fi
@@ -11403,172 +9263,14 @@ done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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 \
- syslog.h ulimit.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+ stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
+ regex.h syslog.h ulimit.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -11577,162 +9279,13 @@ fi
done
-
-
-
-
-
-
-
-
-
-
-
-
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=`$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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -11741,150 +9294,11 @@ fi
done
-
-
for ac_header in netinet/in.h arpa/inet.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -11894,70 +9308,26 @@ fi
done
-{ $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
- $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. */
-
+ac_fn_c_check_header_compile "$LINENO" "sys/ptem.h" "ac_cv_header_sys_ptem_h" "
#if HAVE_SYS_STREAM_H
# include <sys/stream.h>
#endif
+"
+if test "x$ac_cv_header_sys_ptem_h" = xyes; then :
-#include <sys/ptem.h>
-_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_header_sys_ptem_h=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_header_sys_ptem_h=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $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!
-{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_working_alloca_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <alloca.h>
int
@@ -11969,59 +9339,28 @@ char *p = (char *) alloca (2 * sizeof (int));
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_working_alloca_h=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_ALLOCA_H 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then
+if ${ac_cv_func_alloca_works+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __GNUC__
# define alloca __builtin_alloca
@@ -12037,7 +9376,7 @@ cat >>conftest.$ac_ext <<_ACEOF
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
# endif
# endif
# endif
@@ -12053,47 +9392,20 @@ char *p = (char *) alloca (1);
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_func_alloca_works=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
@@ -12103,21 +9415,15 @@ else
ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
-{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_os_cray+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined CRAY && ! defined CRAY2
webecray
@@ -12127,7 +9433,7 @@ wenotbecray
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "webecray" >/dev/null 2>&1; then
+ $EGREP "webecray" >/dev/null 2>&1; then :
ac_cv_os_cray=yes
else
ac_cv_os_cray=no
@@ -12135,101 +9441,13 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+{ $as_echo "$as_me:${as_lineno-$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=`$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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -12241,81 +9459,46 @@ fi
done
fi
-{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_c_stack_direction+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_c_stack_direction=0
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_c_stack_direction=1
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_stack_direction=-1
+ ac_cv_c_stack_direction=-1
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+{ $as_echo "$as_me:${as_lineno-$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
_ACEOF
@@ -12323,17 +9506,13 @@ _ACEOF
fi
-{ $as_echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_func_getpgrp_void+:} false; then :
$as_echo_n "(cached) " >&6
else
# Use it with a single arg.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
@@ -12344,240 +9523,41 @@ getpgrp (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
+if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_func_getpgrp_void=no
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define GETPGRP_VOID 1
-_ACEOF
+$as_echo "#define GETPGRP_VOID 1" >>confdefs.h
fi
-if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
+if ${ac_cv_func_setvbuf_reversed+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_func_setvbuf_reversed=no
fi
-
for ac_func in vprintf
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
+if test "x$ac_cv_func_vprintf" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-{ $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
- $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 _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define _doprnt innocuous__doprnt
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _doprnt (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef _doprnt
-
-/* 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 _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
-choke me
-#endif
-
-int
-main ()
-{
-return _doprnt ();
- ;
- return 0;
-}
+#define HAVE_VPRINTF 1
_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__doprnt=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_func__doprnt=no
-fi
+ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
+if test "x$ac_cv_func__doprnt" = xyes; then :
-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__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
-_ACEOF
+$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
fi
@@ -12585,19 +9565,15 @@ fi
done
-{ $as_echo "$as_me:$LINENO: checking for working strcoll" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5
$as_echo_n "checking for working strcoll... " >&6; }
-if test "${ac_cv_func_strcoll_works+set}" = set; then
+if ${ac_cv_func_strcoll_works+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_func_strcoll_works=no
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
@@ -12610,50 +9586,21 @@ return (strcoll ("abc", "def") >= 0 ||
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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_strcoll_works=yes
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_func_strcoll_works=no
+ ac_cv_func_strcoll_works=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_STRCOLL 1
-_ACEOF
+$as_echo "#define HAVE_STRCOLL 1" >>confdefs.h
fi
@@ -12670,29 +9617,23 @@ if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; the
fi
if test "$ac_cv_func_vprintf" = no; then
- { $as_echo "$as_me:$LINENO: checking for declaration of vprintf in stdio.h" >&5
+ { $as_echo "$as_me:${as_lineno-$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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "[int[ ]*vprintf[^a-zA-Z0-9]]" >/dev/null 2>&1; then
+ $EGREP "[int[ ]*vprintf[^a-zA-Z0-9]]" >/dev/null 2>&1; then :
ac_cv_func_vprintf=yes
fi
rm -f conftest*
- { $as_echo "$as_me:$LINENO: result: $ac_cv_func_vprintf" >&5
+ { $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_VPRINTF 1" >>confdefs.h
fi
fi
@@ -12706,16 +9647,12 @@ esac
fi
-{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_signal+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
@@ -12728,35 +9665,14 @@ return *(signal (0, 0)) (0) == 1;
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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_type_signal=int
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_type_signal=void
+ ac_cv_type_signal=void
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
$as_echo "$ac_cv_type_signal" >&6; }
cat >>confdefs.h <<_ACEOF
@@ -12765,592 +9681,37 @@ _ACEOF
-{ $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
- $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 __setostype to an innocuous variant, in case <limits.h> declares __setostype.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define __setostype innocuous___setostype
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char __setostype (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef __setostype
-
-/* 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 __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
-choke me
-#endif
-
-int
-main ()
-{
-return __setostype ();
- ;
- 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___setostype=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func___setostype=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___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
-
-{ $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
- $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 wait3 to an innocuous variant, in case <limits.h> declares wait3.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wait3 innocuous_wait3
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wait3 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef wait3
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return wait3 ();
- ;
- 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_wait3=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_wait3=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_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
-
-{ $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
- $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 isinf to an innocuous variant, in case <limits.h> declares isinf.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define isinf innocuous_isinf
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char isinf (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef isinf
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return isinf ();
- ;
- 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_isinf=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_isinf=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_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
-
-{ $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
- $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 isnan to an innocuous variant, in case <limits.h> declares isnan.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define isnan innocuous_isnan
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char isnan (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef isnan
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return isnan ();
- ;
- 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_isnan=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ac_fn_c_check_func "$LINENO" "__setostype" "ac_cv_func___setostype"
+if test "x$ac_cv_func___setostype" = xyes; then :
+ $as_echo "#define HAVE_SETOSTYPE 1" >>confdefs.h
- ac_cv_func_isnan=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_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
+ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3"
+if test "x$ac_cv_func_wait3" = xyes; then :
+ $as_echo "#define HAVE_WAIT3 1" >>confdefs.h
fi
-{ $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
- $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 mkfifo to an innocuous variant, in case <limits.h> declares mkfifo.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mkfifo innocuous_mkfifo
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mkfifo (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
+ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo"
+if test "x$ac_cv_func_mkfifo" = xyes; then :
+ $as_echo "#define HAVE_MKFIFO 1" >>confdefs.h
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef mkfifo
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return mkfifo ();
- ;
- 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_mkfifo=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ $as_echo "#define MKFIFO_MISSING 1" >>confdefs.h
- ac_cv_func_mkfifo=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_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
-
-else
- cat >>confdefs.h <<\_ACEOF
-#define MKFIFO_MISSING 1
-_ACEOF
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \
getpagesize getpeername getrlimit getrusage gettimeofday \
kill killpg lstat readlink sbrk select setdtablesize \
setitimer tcgetpgrp uname ulimit waitpid
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13358,242 +9719,30 @@ _ACEOF
fi
done
-
-for ac_func in rename
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ac_fn_c_check_func "$LINENO" "rename" "ac_cv_func_rename"
+if test "x$ac_cv_func_rename" = xyes; then :
+ $as_echo "#define HAVE_RENAME 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" rename.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS rename.$ac_objext"
;;
esac
fi
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
for ac_func in bcopy bzero confstr faccessat fnmatch \
getaddrinfo gethostbyname getservbyname getservent inet_aton \
- memmove pathconf putenv raise regcomp regexec \
+ imaxdiv memmove pathconf putenv raise regcomp regexec \
setenv setlinebuf setlocale setvbuf siginterrupt strchr \
sysconf syslog tcgetattr times ttyname tzset unsetenv
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13602,101 +9751,11 @@ fi
done
-
-
for ac_func in vasprintf asprintf
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13704,105 +9763,11 @@ _ACEOF
fi
done
-
-
-
-
-
-
for ac_func in isascii isblank isgraph isprint isspace isxdigit
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13810,102 +9775,11 @@ _ACEOF
fi
done
-
-
-
for ac_func in getpwent getpwnam getpwuid
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -13913,1050 +9787,358 @@ _ACEOF
fi
done
+ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd"
+if test "x$ac_cv_func_getcwd" = xyes; then :
+ $as_echo "#define HAVE_GETCWD 1" >>confdefs.h
-
-for ac_func in getcwd memset
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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;;
+ case " $LIBOBJS " in
+ *" getcwd.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS getcwd.$ac_objext"
+ ;;
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
+ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset"
+if test "x$ac_cv_func_memset" = xyes; then :
+ $as_echo "#define HAVE_MEMSET 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" memset.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS memset.$ac_objext"
;;
esac
fi
-done
-
-
+ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
+ $as_echo "#define HAVE_STRCASECMP 1" >>confdefs.h
-
-
-
-
-for ac_func in strcasecmp strcasestr strerror strftime strnlen strpbrk strstr
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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;;
+ case " $LIBOBJS " in
+ *" strcasecmp.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext"
+ ;;
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
+ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr"
+if test "x$ac_cv_func_strcasestr" = xyes; then :
+ $as_echo "#define HAVE_STRCASESTR 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" strcasestr.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strcasestr.$ac_objext"
;;
esac
fi
-done
-
-
-
-
+ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror"
+if test "x$ac_cv_func_strerror" = xyes; then :
+ $as_echo "#define HAVE_STRERROR 1" >>confdefs.h
+else
+ case " $LIBOBJS " in
+ *" strerror.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strerror.$ac_objext"
+ ;;
+esac
+fi
+ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = xyes; then :
+ $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
-for ac_func in strtod strtol strtoul strtoll strtoull strtoimax strtoumax
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ case " $LIBOBJS " in
+ *" strftime.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strftime.$ac_objext"
+ ;;
+esac
-#undef $ac_func
+fi
-/* 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
+ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
+if test "x$ac_cv_func_strnlen" = xyes; then :
+ $as_echo "#define HAVE_STRNLEN 1" >>confdefs.h
-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
+ case " $LIBOBJS " in
+ *" strnlen.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strnlen.$ac_objext"
+ ;;
+esac
- 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
+ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk"
+if test "x$ac_cv_func_strpbrk" = xyes; then :
+ $as_echo "#define HAVE_STRPBRK 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" strpbrk.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strpbrk.$ac_objext"
;;
esac
fi
-done
-
+ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr"
+if test "x$ac_cv_func_strstr" = xyes; then :
+ $as_echo "#define HAVE_STRSTR 1" >>confdefs.h
-for ac_func in dprintf
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
+ case " $LIBOBJS " in
+ *" strstr.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strstr.$ac_objext"
+ ;;
+esac
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+fi
-#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
+ac_fn_c_check_func "$LINENO" "strtod" "ac_cv_func_strtod"
+if test "x$ac_cv_func_strtod" = xyes; then :
+ $as_echo "#define HAVE_STRTOD 1" >>confdefs.h
-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
+ case " $LIBOBJS " in
+ *" strtod.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtod.$ac_objext"
+ ;;
+esac
- 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
+ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes; then :
+ $as_echo "#define HAVE_STRTOL 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" strtol.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtol.$ac_objext"
;;
esac
fi
-done
-
+ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes; then :
+ $as_echo "#define HAVE_STRTOUL 1" >>confdefs.h
-for ac_func in strchrnul
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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;;
+ case " $LIBOBJS " in
+ *" strtoul.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtoul.$ac_objext"
+ ;;
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
+ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll"
+if test "x$ac_cv_func_strtoll" = xyes; then :
+ $as_echo "#define HAVE_STRTOLL 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" strtoll.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtoll.$ac_objext"
;;
esac
fi
-done
-
+ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
+if test "x$ac_cv_func_strtoull" = xyes; then :
+ $as_echo "#define HAVE_STRTOULL 1" >>confdefs.h
-{ $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
- $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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef confstr
- (void) confstr;
-#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;;
+ case " $LIBOBJS " in
+ *" strtoull.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtoull.$ac_objext"
+ ;;
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_confstr=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_have_decl_confstr=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
-_ACEOF
-
+ac_fn_c_check_func "$LINENO" "strtoimax" "ac_cv_func_strtoimax"
+if test "x$ac_cv_func_strtoimax" = xyes; then :
+ $as_echo "#define HAVE_STRTOIMAX 1" >>confdefs.h
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_CONFSTR 0
-_ACEOF
-
+ case " $LIBOBJS " in
+ *" strtoimax.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtoimax.$ac_objext"
+ ;;
+esac
fi
+ac_fn_c_check_func "$LINENO" "strtoumax" "ac_cv_func_strtoumax"
+if test "x$ac_cv_func_strtoumax" = xyes; then :
+ $as_echo "#define HAVE_STRTOUMAX 1" >>confdefs.h
-{ $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
- $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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef printf
- (void) printf;
-#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;;
+ case " $LIBOBJS " in
+ *" strtoumax.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtoumax.$ac_objext"
+ ;;
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_printf=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_have_decl_printf=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
-_ACEOF
+ac_fn_c_check_func "$LINENO" "dprintf" "ac_cv_func_dprintf"
+if test "x$ac_cv_func_dprintf" = xyes; then :
+ $as_echo "#define HAVE_DPRINTF 1" >>confdefs.h
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PRINTF 0
-_ACEOF
-
+ case " $LIBOBJS " in
+ *" dprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS dprintf.$ac_objext"
+ ;;
+esac
fi
-{ $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
- $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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef sbrk
- (void) sbrk;
-#endif
+ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul"
+if test "x$ac_cv_func_strchrnul" = xyes; then :
+ $as_echo "#define HAVE_STRCHRNUL 1" >>confdefs.h
- ;
- 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_sbrk=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ case " $LIBOBJS " in
+ *" strchrnul.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strchrnul.$ac_objext"
+ ;;
+esac
- ac_cv_have_decl_sbrk=no
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
-_ACEOF
+ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
+if test "x$ac_cv_func_strdup" = xyes; then :
+ $as_echo "#define HAVE_STRDUP 1" >>confdefs.h
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SBRK 0
-_ACEOF
-
+ case " $LIBOBJS " in
+ *" strdup.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strdup.$ac_objext"
+ ;;
+esac
fi
-{ $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
- $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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef setregid
- (void) setregid;
-#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_setregid=yes
+ac_fn_c_check_decl "$LINENO" "AUDIT_USER_TTY" "ac_cv_have_decl_AUDIT_USER_TTY" "#include <linux/audit.h>
+"
+if test "x$ac_cv_have_decl_AUDIT_USER_TTY" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_setregid=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_have_decl=0
fi
-{ $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
+#define HAVE_DECL_AUDIT_USER_TTY $ac_have_decl
_ACEOF
+ac_fn_c_check_decl "$LINENO" "confstr" "ac_cv_have_decl_confstr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_confstr" = xyes; then :
+ ac_have_decl=1
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SETREGID 0
-_ACEOF
-
-
+ ac_have_decl=0
fi
-
-{ $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
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_CONFSTR $ac_have_decl
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strcpy
- (void) strcpy;
-#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_strcpy=yes
+ac_fn_c_check_decl "$LINENO" "printf" "ac_cv_have_decl_printf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_printf" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_strcpy=no
+ ac_have_decl=0
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
+#define HAVE_DECL_PRINTF $ac_have_decl
_ACEOF
-
+ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default"
+if test "x$ac_cv_have_decl_sbrk" = xyes; then :
+ ac_have_decl=1
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRCPY 0
-_ACEOF
-
-
+ ac_have_decl=0
fi
-
-{ $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
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SBRK $ac_have_decl
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strsignal
- (void) strsignal;
-#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_strsignal=yes
+ac_fn_c_check_decl "$LINENO" "setregid" "ac_cv_have_decl_setregid" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setregid" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_strsignal=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_have_decl=0
fi
-{ $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
+#define HAVE_DECL_SETREGID $ac_have_decl
_ACEOF
-
+ac_fn_c_check_decl "$LINENO" "strcpy" "ac_cv_have_decl_strcpy" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strcpy" = xyes; then :
+ ac_have_decl=1
else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRSIGNAL 0
-_ACEOF
-
-
+ ac_have_decl=0
fi
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRCPY $ac_have_decl
+_ACEOF
-
-{ $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
- $as_echo_n "(cached) " >&6
+ac_fn_c_check_decl "$LINENO" "strsignal" "ac_cv_have_decl_strsignal" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strsignal" = xyes; then :
+ ac_have_decl=1
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 ()
-{
-#ifndef strtold
- (void) strtold;
-#endif
+ ac_have_decl=0
+fi
- ;
- return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRSIGNAL $ac_have_decl
_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_strtold=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_have_decl_strtold=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_fn_c_check_decl "$LINENO" "strtold" "ac_cv_have_decl_strtold" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtold" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
fi
-{ $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
+#define HAVE_DECL_STRTOLD $ac_have_decl
_ACEOF
+if test $ac_have_decl = 1; then :
-
- { $as_echo "$as_me:$LINENO: checking for broken strtold" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken strtold" >&5
$as_echo_n "checking for broken strtold... " >&6; }
- if test "${bash_cv_strtold_broken+set}" = set; then
+ if ${bash_cv_strtold_broken+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
int
@@ -14967,70 +10149,35 @@ int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_strtold_broken=no
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
- { $as_echo "$as_me:$LINENO: result: $bash_cv_strtold_broken" >&5
+ { $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define STRTOLD_BROKEN 1" >>confdefs.h
fi
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOLD 0
-_ACEOF
-
-
fi
-
-
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtoimax" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtoimax+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15048,40 +10195,15 @@ return !strtoimax;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtoimax=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoimax" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15099,16 +10221,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtol" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtol+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15126,40 +10244,15 @@ return !strtol;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtol=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtol" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15177,16 +10270,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtoll" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtoll+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15204,40 +10293,15 @@ return !strtoll;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtoll=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoll" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15255,16 +10319,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtoul" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtoul+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15282,40 +10342,15 @@ return !strtoul;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtoul=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoul" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15333,16 +10368,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtoull" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtoull+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15360,40 +10391,15 @@ return !strtoull;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtoull=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoull" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15411,16 +10417,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for declaration of strtoumax" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_strtoumax+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -15438,40 +10440,15 @@ return !strtoumax;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_decl_strtoumax=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoumax" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -15491,257 +10468,12 @@ fi
-for ac_header in $ac_header_list
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-for ac_func in $ac_func_list
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ for ac_func in $ac_func_list
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -15753,31 +10485,15 @@ done
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking for working mktime" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
$as_echo_n "checking for working mktime... " >&6; }
-if test "${ac_cv_func_working_mktime+set}" = set; then
+if ${ac_cv_func_working_mktime+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_func_working_mktime=no
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Test program from Paul Eggert and Tony Leneis. */
#ifdef TIME_WITH_SYS_TIME
@@ -15809,8 +10525,8 @@ static time_t time_t_max;
static time_t time_t_min;
/* Values we'll use to set the TZ environment variable. */
-static char *tz_strings[] = {
- (char *) 0, "TZ=GMT0", "TZ=JST-9",
+static const char *tz_strings[] = {
+ (const char *) 0, "TZ=GMT0", "TZ=JST-9",
"TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
};
#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
@@ -15827,7 +10543,7 @@ spring_forward_gap ()
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");
+ putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
tm.tm_year = 98;
tm.tm_mon = 3;
@@ -15840,16 +10556,14 @@ spring_forward_gap ()
}
static int
-mktime_test1 (now)
- time_t now;
+mktime_test1 (time_t now)
{
struct tm *lt;
return ! (lt = localtime (&now)) || mktime (lt) == now;
}
static int
-mktime_test (now)
- time_t now;
+mktime_test (time_t now)
{
return (mktime_test1 (now)
&& mktime_test1 ((time_t) (time_t_max - now))
@@ -15873,8 +10587,7 @@ irix_6_4_bug ()
}
static int
-bigtime_test (j)
- int j;
+bigtime_test (int j)
{
struct tm tm;
time_t now;
@@ -15918,7 +10631,7 @@ year_2050_test ()
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");
+ putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
t = mktime (&tm);
@@ -15953,7 +10666,7 @@ main ()
for (i = 0; i < N_STRINGS; i++)
{
if (tz_strings[i])
- putenv (tz_strings[i]);
+ putenv ((char*) tz_strings[i]);
for (t = 0; t <= time_t_max - delta; t += delta)
if (! mktime_test (t))
@@ -15974,44 +10687,17 @@ main ()
return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_working_mktime=yes
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_func_working_mktime=no
+ ac_cv_func_working_mktime=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -16024,153 +10710,11 @@ fi
-
-
-
-
-
for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -16181,271 +10725,26 @@ done
-
-for ac_header in stdlib.h unistd.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-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 `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
for ac_func in getpagesize
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETPAGESIZE 1
_ACEOF
fi
done
-{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_func_mmap_fixed_mapped=no
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
/* malloc might have been renamed as rpl_malloc. */
@@ -16482,11 +10781,6 @@ char *malloc ();
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure 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 */
@@ -16521,8 +10815,9 @@ int
main ()
{
char *data, *data2, *data3;
+ const char *cdata2;
int i, pagesize;
- int fd;
+ int fd, fd2;
pagesize = getpagesize ();
@@ -16535,27 +10830,41 @@ main ()
umask (0);
fd = creat ("conftest.mmap", 0600);
if (fd < 0)
- return 1;
+ return 2;
if (write (fd, data, pagesize) != pagesize)
- return 1;
+ return 3;
close (fd);
+ /* Next, check that the tail of a page is zero-filled. File must have
+ non-zero length, otherwise we risk SIGBUS for entire page. */
+ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
+ if (fd2 < 0)
+ return 4;
+ cdata2 = "";
+ if (write (fd2, cdata2, 1) != 1)
+ return 5;
+ data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
+ if (data2 == MAP_FAILED)
+ return 6;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data2 + i))
+ return 7;
+ close (fd2);
+ if (munmap (data2, pagesize))
+ return 8;
+
/* Next, try to mmap the file at a fixed address which already has
something else allocated at it. If we can, also make sure that
we see the same garbage. */
fd = open ("conftest.mmap", O_RDWR);
if (fd < 0)
- return 1;
- data2 = (char *) malloc (2 * pagesize);
- if (!data2)
- return 1;
- data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
+ return 9;
if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED, fd, 0L))
- return 1;
+ return 10;
for (i = 0; i < pagesize; ++i)
if (*(data + i) != *(data2 + i))
- return 1;
+ return 11;
/* 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
@@ -16564,167 +10873,41 @@ main ()
*(data2 + i) = *(data2 + i) + 1;
data3 = (char *) malloc (pagesize);
if (!data3)
- return 1;
+ return 12;
if (read (fd, data3, pagesize) != pagesize)
- return 1;
+ return 13;
for (i = 0; i < pagesize; ++i)
if (*(data + i) != *(data3 + i))
- return 1;
+ return 14;
close (fd);
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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_mmap_fixed_mapped=yes
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_func_mmap_fixed_mapped=no
+ ac_cv_func_mmap_fixed_mapped=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_MMAP 1
-_ACEOF
+$as_echo "#define HAVE_MMAP 1" >>confdefs.h
fi
-rm -f conftest.mmap
-
-
-
-
-
-
-
-
-
+rm -f conftest.mmap conftest.txt
for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \
- munmap stpcpy strcspn strdup
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ munmap stpcpy strcspn
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -16745,453 +10928,36 @@ fi
-
for ac_header in wctype.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_wctype_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_WCTYPE_H 1
_ACEOF
fi
done
-
for ac_header in wchar.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default"
+if test "x$ac_cv_header_wchar_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_WCHAR_H 1
_ACEOF
fi
done
-
for ac_header in langinfo.h
-do
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-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?
-{ $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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-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
- $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
- $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
-{ $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: )
- { $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:* )
- { $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
- ;;
-esac
-{ $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
-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
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default"
+if test "x$ac_cv_header_langinfo_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_LANGINFO_H 1
_ACEOF
fi
@@ -17199,1160 +10965,105 @@ fi
done
-{ $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. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define mbrlen to an innocuous variant, in case <limits.h> declares mbrlen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbrlen innocuous_mbrlen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbrlen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
+ac_fn_c_check_func "$LINENO" "mbrlen" "ac_cv_func_mbrlen"
+if test "x$ac_cv_func_mbrlen" = xyes; then :
+ $as_echo "#define HAVE_MBRLEN 1" >>confdefs.h
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef mbrlen
-
-/* 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 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_mbrlen || defined __stub___mbrlen
-choke me
-#endif
-
-int
-main ()
-{
-return mbrlen ();
- ;
- 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_mbrlen=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_mbrlen=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_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_MBRLEN 1
-_ACEOF
+ac_fn_c_check_func "$LINENO" "mbscasecmp" "ac_cv_func_mbscasecmp"
+if test "x$ac_cv_func_mbscasecmp" = xyes; then :
+ $as_echo "#define HAVE_MBSCMP 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for mbscasecmp" >&5
-$as_echo_n "checking for mbscasecmp... " >&6; }
-if test "${ac_cv_func_mbscasecmp+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 mbscasecmp to an innocuous variant, in case <limits.h> declares mbscasecmp.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbscasecmp innocuous_mbscasecmp
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbscasecmp (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef mbscasecmp
-
-/* 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 mbscasecmp ();
-/* 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_mbscasecmp || defined __stub___mbscasecmp
-choke me
-#endif
-
-int
-main ()
-{
-return mbscasecmp ();
- ;
- 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_mbscasecmp=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ac_fn_c_check_func "$LINENO" "mbscmp" "ac_cv_func_mbscmp"
+if test "x$ac_cv_func_mbscmp" = xyes; then :
+ $as_echo "#define HAVE_MBSCMP 1" >>confdefs.h
- ac_cv_func_mbscasecmp=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_mbscasecmp" >&5
-$as_echo "$ac_cv_func_mbscasecmp" >&6; }
-if test "x$ac_cv_func_mbscasecmp" = x""yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBSCMP 1
-_ACEOF
+ac_fn_c_check_func "$LINENO" "mbsnrtowcs" "ac_cv_func_mbsnrtowcs"
+if test "x$ac_cv_func_mbsnrtowcs" = xyes; then :
+ $as_echo "#define HAVE_MBSNRTOWCS 1" >>confdefs.h
fi
-{ $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. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define mbscmp to an innocuous variant, in case <limits.h> declares mbscmp.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbscmp innocuous_mbscmp
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbscmp (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ac_fn_c_check_func "$LINENO" "mbsrtowcs" "ac_cv_func_mbsrtowcs"
+if test "x$ac_cv_func_mbsrtowcs" = xyes; then :
+ $as_echo "#define HAVE_MBSRTOWCS 1" >>confdefs.h
-#undef mbscmp
-
-/* 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 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_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 mbsnrtowcs" >&5
-$as_echo_n "checking for mbsnrtowcs... " >&6; }
-if test "${ac_cv_func_mbsnrtowcs+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 mbsnrtowcs to an innocuous variant, in case <limits.h> declares mbsnrtowcs.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbsnrtowcs innocuous_mbsnrtowcs
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbsnrtowcs (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef mbsnrtowcs
-
-/* 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 mbsnrtowcs ();
-/* 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_mbsnrtowcs || defined __stub___mbsnrtowcs
-choke me
-#endif
-
-int
-main ()
-{
-return mbsnrtowcs ();
- ;
- 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_mbsnrtowcs=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_mbsnrtowcs=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_mbsnrtowcs" >&5
-$as_echo "$ac_cv_func_mbsnrtowcs" >&6; }
-if test "x$ac_cv_func_mbsnrtowcs" = x""yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBSNRTOWCS 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 <limits.h> declares mbsrtowcs.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define mbsrtowcs innocuous_mbsrtowcs
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbsrtowcs (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 mbsrtowcs ();
- ;
- 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_mbsrtowcs=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_mbsrtowcs=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_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_MBSRTOWCS 1
-_ACEOF
-
-fi
-
-
-
-
-for ac_func in mbschr
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ac_fn_c_check_func "$LINENO" "mbschr" "ac_cv_func_mbschr"
+if test "x$ac_cv_func_mbschr" = xyes; then :
+ $as_echo "#define HAVE_MBSCHR 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" mbschr.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS mbschr.$ac_objext"
;;
esac
fi
-done
-
-
-
-{ $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
- $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 wcrtomb to an innocuous variant, in case <limits.h> declares wcrtomb.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wcrtomb innocuous_wcrtomb
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcrtomb (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef wcrtomb
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return wcrtomb ();
- ;
- 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_wcrtomb=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_wcrtomb=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_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
-
-{ $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
- $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 wcscoll to an innocuous variant, in case <limits.h> declares wcscoll.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wcscoll innocuous_wcscoll
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcscoll (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef wcscoll
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return wcscoll ();
- ;
- 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_wcscoll=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_wcscoll=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_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
-{ $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
- $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 wcsdup to an innocuous variant, in case <limits.h> declares wcsdup.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wcsdup innocuous_wcsdup
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcsdup (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-#undef wcsdup
+ac_fn_c_check_func "$LINENO" "wcrtomb" "ac_cv_func_wcrtomb"
+if test "x$ac_cv_func_wcrtomb" = xyes; then :
+ $as_echo "#define HAVE_WCRTOMB 1" >>confdefs.h
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return wcsdup ();
- ;
- 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_wcsdup=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_wcsdup=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_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
+ac_fn_c_check_func "$LINENO" "wcscoll" "ac_cv_func_wcscoll"
+if test "x$ac_cv_func_wcscoll" = xyes; then :
+ $as_echo "#define HAVE_WCSCOLL 1" >>confdefs.h
fi
-{ $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
- $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 wcwidth to an innocuous variant, in case <limits.h> declares wcwidth.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wcwidth innocuous_wcwidth
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcwidth (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef wcwidth
+ac_fn_c_check_func "$LINENO" "wcsdup" "ac_cv_func_wcsdup"
+if test "x$ac_cv_func_wcsdup" = xyes; then :
+ $as_echo "#define HAVE_WCSDUP 1" >>confdefs.h
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return wcwidth ();
- ;
- 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_wcwidth=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_wcwidth=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_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
-
-{ $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
- $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 wctype to an innocuous variant, in case <limits.h> declares wctype.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define wctype innocuous_wctype
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wctype (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef wctype
-
-/* 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 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
-choke me
-#endif
-int
-main ()
-{
-return wctype ();
- ;
- 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_wctype=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth"
+if test "x$ac_cv_func_wcwidth" = xyes; then :
+ $as_echo "#define HAVE_WCWIDTH 1" >>confdefs.h
- ac_cv_func_wctype=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_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
+ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype"
+if test "x$ac_cv_func_wctype" = xyes; then :
+ $as_echo "#define HAVE_WCTYPE 1" >>confdefs.h
fi
-
-for ac_func in wcswidth
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+ac_fn_c_check_func "$LINENO" "wcswidth" "ac_cv_func_wcswidth"
+if test "x$ac_cv_func_wcswidth" = xyes; then :
+ $as_echo "#define HAVE_WCSWIDTH 1" >>confdefs.h
else
case " $LIBOBJS " in
- *" $ac_func.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+ *" wcswidth.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS wcswidth.$ac_objext"
;;
esac
fi
-done
- { $as_echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_func_mbrtowc+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wchar.h>
int
@@ -18367,154 +11078,32 @@ wchar_t wc;
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_func_mbrtowc=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_MBRTOWC 1
-_ACEOF
+$as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
fi
if test $ac_cv_func_mbrtowc = yes; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_MBSTATE_T 1
-_ACEOF
+ $as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
fi
-
-
-
-
-
for ac_func in iswlower iswupper towlower towupper iswctype
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -18523,16 +11112,12 @@ fi
done
-{ $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_langinfo_codeset+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <langinfo.h>
int
@@ -18543,58 +11128,27 @@ char* cs = nl_langinfo(CODESET);
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_langinfo_codeset=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for wchar_t in wchar.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_type_wchar_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wchar.h>
@@ -18609,54 +11163,27 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_type_wchar_t=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wchar_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_WCHAR_T 1
-_ACEOF
+$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for wctype_t in wctype.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_type_wctype_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wctype.h>
int
@@ -18670,54 +11197,27 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_type_wctype_t=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wctype_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_WCTYPE_T 1
-_ACEOF
+$as_echo "#define HAVE_WCTYPE_T 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for wint_t in wctype.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_type_wint_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wctype.h>
int
@@ -18731,143 +11231,78 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_type_wint_t=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wint_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_WINT_T 1
-_ACEOF
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
fi
-if test "$am_cv_func_iconv" = yes; then
- OLDLIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
-
-for ac_func in locale_charset
-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 "$as_me:${as_lineno-$LINENO}: checking for wcwidth broken with unicode combining characters" >&5
+$as_echo_n "checking for wcwidth broken with unicode combining characters... " >&6; }
+if ${bash_cv_wcwidth_broken+:} false; 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
+ if test "$cross_compiling" = yes; then :
+ bash_cv_wcwidth_broken=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
-/* 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
+#include <locale.h>
+#include <wchar.h>
-int
-main ()
+main(c, v)
+int c;
+char **v;
{
-return $ac_func ();
- ;
- return 0;
+ int w;
+
+ setlocale(LC_ALL, "en_US.UTF-8");
+ w = wcwidth (0x0301);
+ exit (w == 0); /* exit 0 if wcwidth broken */
}
+
_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"
+if ac_fn_c_try_run "$LINENO"; then :
+ bash_cv_wcwidth_broken=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ bash_cv_wcwdith_broken=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
- eval "$as_ac_var=no"
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wcwidth_broken" >&5
+$as_echo "$bash_cv_wcwidth_broken" >&6; }
+if test "$bash_cv_wcwidth_broken" = yes; then
+
+$as_echo "#define WCWIDTH_BROKEN 1" >>confdefs.h
-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
+
+if test "$am_cv_func_iconv" = yes; then
+ OLDLIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ for ac_func in locale_charset
+do :
+ ac_fn_c_check_func "$LINENO" "locale_charset" "ac_cv_func_locale_charset"
+if test "x$ac_cv_func_locale_charset" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_LOCALE_CHARSET 1
_ACEOF
fi
@@ -18879,19 +11314,14 @@ fi
if test "$opt_static_link" != yes; then
-
-{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_dl_dlopen+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -18909,43 +11339,18 @@ return dlopen ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_dl_dlopen=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDL 1
_ACEOF
@@ -18954,102 +11359,11 @@ _ACEOF
fi
-
-
-
for ac_func in dlopen dlclose dlsym
-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 <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> 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 <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#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 $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
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -19059,95 +11373,33 @@ done
fi
-{ $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
- $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 <signal.h>
+ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "#include <signal.h>
/* NetBSD declares sys_siglist in unistd.h. */
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
-
-int
-main ()
-{
-#ifndef sys_siglist
- (void) sys_siglist;
-#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_sys_siglist=yes
+"
+if test "x$ac_cv_have_decl_sys_siglist" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_sys_siglist=no
+ ac_have_decl=0
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SYS_SIGLIST 0
+#define HAVE_DECL_SYS_SIGLIST $ac_have_decl
_ACEOF
-fi
-
-
-
if test "$ac_cv_func_inet_aton" != 'yes'; then
-{ $as_echo "$as_me:$LINENO: checking for inet_aton" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5
$as_echo_n "checking for inet_aton... " >&6; }
-if test "${bash_cv_func_inet_aton+set}" = set; then
+if ${bash_cv_func_inet_aton+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -19162,45 +11414,18 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_func_inet_aton=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_inet_aton" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+ $as_echo "#define HAVE_INET_ATON 1" >>confdefs.h
else
case " $LIBOBJS " in
@@ -19214,19 +11439,14 @@ fi
fi
case "$host_os" in
-irix4*)
-{ $as_echo "$as_me:$LINENO: checking for getpwent in -lsun" >&5
+irix4*) { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_sun_getpwent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsun $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -19244,43 +11464,18 @@ return getpwent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_sun_getpwent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_sun_getpwent" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBSUN 1
_ACEOF
@@ -19296,25 +11491,21 @@ if test "$ac_cv_func_getpeername" = no; then
if test "X$bash_cv_have_socklib" = "X"; then
_bash_needmsg=
else
-{ $as_echo "$as_me:$LINENO: checking for socket library" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_have_socklib+:} false; then :
$as_echo_n "(cached) " >&6
else
- { $as_echo "$as_me:$LINENO: checking for getpeername in -lsocket" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_socket_getpeername+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket -lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -19332,43 +11523,18 @@ return getpeername ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_socket_getpeername=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_socket_getpeername" = xyes; then :
bash_cv_have_socklib=yes
else
bash_cv_have_socklib=no
@@ -19377,7 +11543,7 @@ fi
fi
if test "X$_bash_needmsg" = Xyes; then
- { $as_echo "$as_me:$LINENO: result: $bash_cv_have_socklib" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_socklib" >&5
$as_echo "$bash_cv_have_socklib" >&6; }
_bash_needmsg=
fi
@@ -19386,25 +11552,21 @@ if test $bash_cv_have_socklib = yes; then
if test "X$bash_cv_have_libnsl" = "X"; then
_bash_needmsg=
else
- { $as_echo "$as_me:$LINENO: checking for libnsl" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+ if ${bash_cv_have_libnsl+:} false; then :
$as_echo_n "(cached) " >&6
else
- { $as_echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_nsl_t_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -19422,43 +11584,18 @@ return t_open ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_nsl_t_open=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_nsl_t_open" = xyes; then :
bash_cv_have_libnsl=yes
else
bash_cv_have_libnsl=no
@@ -19467,7 +11604,7 @@ fi
fi
if test "X$_bash_needmsg" = Xyes; then
- { $as_echo "$as_me:$LINENO: result: $bash_cv_have_libnsl" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_have_libnsl" >&5
$as_echo "$bash_cv_have_libnsl" >&6; }
_bash_needmsg=
fi
@@ -19476,13 +11613,9 @@ $as_echo "$bash_cv_have_libnsl" >&6; }
else
LIBS="-lsocket $LIBS"
fi
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
+ $as_echo "#define HAVE_LIBSOCKET 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETPEERNAME 1
-_ACEOF
+ $as_echo "#define HAVE_GETPEERNAME 1" >>confdefs.h
fi
@@ -19491,18 +11624,14 @@ if test "$ac_cv_func_gethostbyname" = no; then
if test "X$bash_cv_have_gethostbyname" = "X"; then
_bash_needmsg=yes
else
-{ $as_echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_have_gethostbyname+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <netdb.h>
int
@@ -19515,72 +11644,41 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_have_gethostbyname=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
if test "X$_bash_needmsg" = Xyes; then
- { $as_echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in socket library" >&5
$as_echo_n "checking for gethostbyname in socket library... " >&6; }
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_have_gethostbyname" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_uid_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "uid_t" >/dev/null 2>&1; then
+ $EGREP "uid_t" >/dev/null 2>&1; then :
ac_cv_type_uid_t=yes
else
ac_cv_type_uid_t=no
@@ -19588,34 +11686,26 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define uid_t int
-_ACEOF
+$as_echo "#define uid_t int" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define gid_t int
-_ACEOF
+$as_echo "#define gid_t int" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_getgroups+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
+ if test "$cross_compiling" = yes; then :
ac_cv_type_getgroups=cross
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Mike Rendell for this test. */
$ac_includes_default
@@ -19641,54 +11731,23 @@ main ()
return n > 0 && gidset[n] != val.gval;
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
ac_cv_type_getgroups=gid_t
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_type_getgroups=int
+ ac_cv_type_getgroups=int
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
if test $ac_cv_type_getgroups = cross; then
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <unistd.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then
+ $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then :
ac_cv_type_getgroups=gid_t
else
ac_cv_type_getgroups=int
@@ -19697,7 +11756,7 @@ rm -f conftest*
fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5
$as_echo "$ac_cv_type_getgroups" >&6; }
cat >>confdefs.h <<_ACEOF
@@ -19705,102 +11764,9 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_off_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 (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=$?
- 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 ((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=$?
- 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
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
@@ -19809,102 +11775,9 @@ _ACEOF
fi
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_mode_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 (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=$?
- 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 ((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=$?
- 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
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
-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_mode_t" >&5
-$as_echo "$ac_cv_type_mode_t" >&6; }
-if test "x$ac_cv_type_mode_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -19913,22 +11786,18 @@ _ACEOF
fi
-{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_uid_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "uid_t" >/dev/null 2>&1; then
+ $EGREP "uid_t" >/dev/null 2>&1; then :
ac_cv_type_uid_t=yes
else
ac_cv_type_uid_t=no
@@ -19936,117 +11805,20 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define uid_t int
-_ACEOF
+$as_echo "#define uid_t int" >>confdefs.h
-cat >>confdefs.h <<\_ACEOF
-#define gid_t int
-_ACEOF
+$as_echo "#define gid_t int" >>confdefs.h
fi
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_pid_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 (pid_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 ((pid_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_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
- ac_cv_type_pid_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_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
@@ -20055,102 +11827,9 @@ _ACEOF
fi
-{ $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
- ac_cv_type_size_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 (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
- 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 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
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
@@ -20159,102 +11838,9 @@ _ACEOF
fi
-{ $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
-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
- :
-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
-
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = xyes; then :
-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
@@ -20263,102 +11849,9 @@ _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;
-}
-_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 ((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=$?
- 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_fn_c_check_type "$LINENO" "time_t" "ac_cv_type_time_t" "$ac_includes_default"
+if test "x$ac_cv_type_time_t" = xyes; then :
- ac_cv_type_time_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_time_t" >&5
-$as_echo "$ac_cv_type_time_t" >&6; }
-if test "x$ac_cv_type_time_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -20369,16 +11862,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for long long" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5
$as_echo_n "checking for long long... " >&6; }
-if test "${bash_cv_type_long_long+set}" = set; then
+if ${bash_cv_type_long_long+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
long long ll = 1; int i = 63;
@@ -20393,59 +11882,28 @@ return ll << i | ll >> i | llm / ll | llm % ll;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_type_long_long='long long'
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_long_long" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for unsigned long long" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_type_unsigned_long_long+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
unsigned long long ull = 1; int i = 63;
@@ -20460,59 +11918,28 @@ return ull << i | ull >> i | ullmax / ull | ullmax % ull;
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_type_unsigned_long_long='unsigned long long'
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_unsigned_long_long" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_type_signal+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
@@ -20525,35 +11952,14 @@ return *(signal (0, 0)) (0) == 1;
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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_type_signal=int
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_type_signal=void
+ ac_cv_type_signal=void
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
$as_echo "$ac_cv_type_signal" >&6; }
cat >>confdefs.h <<_ACEOF
@@ -20561,16 +11967,12 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-{ $as_echo "$as_me:$LINENO: checking for sig_atomic_t in signal.h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in signal.h" >&5
$as_echo_n "checking for sig_atomic_t in signal.h... " >&6; }
-if test "${ac_cv_have_sig_atomic_t+set}" = set; then
+if ${ac_cv_have_sig_atomic_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
@@ -20583,139 +11985,21 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_have_sig_atomic_t=yes
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_sig_atomic_t=no
+ ac_cv_have_sig_atomic_t=no
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_sig_atomic_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_sig_atomic_t" >&5
$as_echo "$ac_cv_have_sig_atomic_t" >&6; }
if test "$ac_cv_have_sig_atomic_t" = "no"
then
- { $as_echo "$as_me:$LINENO: checking for sig_atomic_t" >&5
-$as_echo_n "checking for sig_atomic_t... " >&6; }
-if test "${ac_cv_type_sig_atomic_t+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_sig_atomic_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 (sig_atomic_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 ((sig_atomic_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_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "$ac_includes_default"
+if test "x$ac_cv_type_sig_atomic_t" = xyes; then :
- ac_cv_type_sig_atomic_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_sig_atomic_t" >&5
-$as_echo "$ac_cv_type_sig_atomic_t" >&6; }
-if test "x$ac_cv_type_sig_atomic_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -20731,352 +12015,26 @@ fi
# 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 "$as_me:${as_lineno-$LINENO}: checking size of char" >&5
$as_echo_n "checking size of char... " >&6; }
-if test "${ac_cv_sizeof_char+set}" = set; then
+if ${ac_cv_sizeof_char+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (char))) >= 0)];
-test_array [0] = 0
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then :
- ;
- 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_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 int) (sizeof (char))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (char))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (char))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (char))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_char=$ac_lo;;
-'') 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
-$as_echo "$as_me: error: cannot compute sizeof (char)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_char=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (char)); }
-static unsigned long int ulongval () { return (long int) (sizeof (char)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (char))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (char))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (char))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_char=`cat conftest.val`
-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 )
-if test "$ac_cv_type_char" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_char" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (char)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (char)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
$as_echo "$ac_cv_sizeof_char" >&6; }
@@ -21090,352 +12048,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
$as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then
+if ${ac_cv_sizeof_short+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (short))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (short))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (short))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (short))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then :
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_short=$ac_lo;;
-'') 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
-$as_echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_short=0
- fi ;;
-esac
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
-static long int longval () { return (long int) (sizeof (short)); }
-static unsigned long int ulongval () { return (long int) (sizeof (short)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (short))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (short))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (short))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_short=`cat conftest.val`
-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 )
-if test "$ac_cv_type_short" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_short" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (short)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
$as_echo "$ac_cv_sizeof_short" >&6; }
@@ -21449,352 +12081,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
$as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then
+if ${ac_cv_sizeof_int+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (int))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (int))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
- 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 core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_int=$ac_lo;;
-'') if test "$ac_cv_type_int" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_int=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (int)); }
-static unsigned long int ulongval () { return (long int) (sizeof (int)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (int))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (int))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (int))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_int=`cat conftest.val`
-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 )
-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
-$as_echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (int)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
$as_echo "$ac_cv_sizeof_int" >&6; }
@@ -21808,352 +12114,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
$as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then
+if ${ac_cv_sizeof_long+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (long))) < 0)];
-test_array [0] = 0
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
- ;
- 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_hi=-1 ac_mid=-1
- 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 int) (sizeof (long))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long=$ac_lo;;
-'') 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
-$as_echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_long=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (long)); }
-static unsigned long int ulongval () { return (long int) (sizeof (long)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (long))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (long))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (long))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_long=`cat conftest.val`
-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 )
-if test "$ac_cv_type_long" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (long)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
$as_echo "$ac_cv_sizeof_long" >&6; }
@@ -22167,352 +12147,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5
$as_echo_n "checking size of char *... " >&6; }
-if test "${ac_cv_sizeof_char_p+set}" = set; then
+if ${ac_cv_sizeof_char_p+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (char *))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (char *))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"; then :
- 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 core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (char *))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (char *))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (char *))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_char_p=$ac_lo;;
-'') if test "$ac_cv_type_char_p" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_char_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (char *)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_char_p=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (char *)); }
-static unsigned long int ulongval () { return (long int) (sizeof (char *)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (char *))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (char *))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (char *))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_char_p=`cat conftest.val`
-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 )
-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
-$as_echo "$as_me: error: cannot compute sizeof (char *)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (char *)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5
$as_echo "$ac_cv_sizeof_char_p" >&6; }
@@ -22526,352 +12180,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$LINENO}: checking size of double" >&5
$as_echo_n "checking size of double... " >&6; }
-if test "${ac_cv_sizeof_double+set}" = set; then
+if ${ac_cv_sizeof_double+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (double))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (double))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (double))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (double))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (double))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_double=$ac_lo;;
-'') 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
-$as_echo "$as_me: error: cannot compute sizeof (double)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_double=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (double)); }
-static unsigned long int ulongval () { return (long int) (sizeof (double)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (double))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (double))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (double))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then :
- ;
- 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_sizeof_double=`cat conftest.val`
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 )
-if test "$ac_cv_type_double" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_double" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (double)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (double)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_double" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5
$as_echo "$ac_cv_sizeof_double" >&6; }
@@ -22885,352 +12213,26 @@ _ACEOF
# 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 "$as_me:${as_lineno-$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
+if ${ac_cv_sizeof_long_long+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (long long))) <= $ac_mid)];
-test_array [0] = 0
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then :
- ;
- 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_hi=$ac_mid; break
else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (long long))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (long long))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (long long))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long_long=$ac_lo;;
-'') if test "$ac_cv_type_long_long" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_long_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$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
-$as_echo "$as_me: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_long_long=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (long long)); }
-static unsigned long int ulongval () { return (long int) (sizeof (long long)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (long long))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (long long))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (long long))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_long_long=`cat conftest.val`
-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 )
-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
-$as_echo "$as_me: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (long long)
+See \`config.log' for more details" "$LINENO" 5; }
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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
$as_echo "$ac_cv_sizeof_long_long" >&6; }
@@ -23241,102 +12243,9 @@ _ACEOF
-{ $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_u_int=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_int))
- 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_int)))
- 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_fn_c_check_type "$LINENO" "u_int" "ac_cv_type_u_int" "$ac_includes_default"
+if test "x$ac_cv_type_u_int" = xyes; then :
- ac_cv_type_u_int=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_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
@@ -23345,102 +12254,9 @@ _ACEOF
fi
-{ $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
- ac_cv_type_u_long=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_long))
- 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_long)))
- 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_long=yes
-fi
+ac_fn_c_check_type "$LINENO" "u_long" "ac_cv_type_u_long" "$ac_includes_default"
+if test "x$ac_cv_type_u_long" = xyes; then :
-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_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
@@ -23452,102 +12268,9 @@ fi
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
- $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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (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 ((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_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits16_t" = xyes; then :
- ac_cv_type_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_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
@@ -23557,102 +12280,9 @@ _ACEOF
fi
elif test "$ac_cv_sizeof_char" = 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
- $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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (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 ((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_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
+ ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits16_t" = xyes; then :
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
@@ -23662,102 +12292,9 @@ _ACEOF
fi
else
- { $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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (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 ((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_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
+ ac_fn_c_check_type "$LINENO" "bits16_t" "ac_cv_type_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits16_t" = xyes; then :
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $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
@@ -23770,102 +12307,9 @@ 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
- 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
+ ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits16_t" = xyes; then :
-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
@@ -23875,102 +12319,9 @@ _ACEOF
fi
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
- 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
+ ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits16_t" = xyes; then :
-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
@@ -23980,102 +12331,9 @@ _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
-
+ ac_fn_c_check_type "$LINENO" "u_bits16_t" "ac_cv_type_u_bits16_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits16_t" = xyes; then :
-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
@@ -24088,102 +12346,9 @@ 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
+ ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits32_t" = xyes; then :
-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
@@ -24193,102 +12358,9 @@ _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_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits32_t" = xyes; then :
- 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
@@ -24298,102 +12370,9 @@ _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
-
+ ac_fn_c_check_type "$LINENO" "bits32_t" "ac_cv_type_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits32_t" = xyes; then :
-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
@@ -24406,102 +12385,9 @@ 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_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits32_t" = xyes; then :
- 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
@@ -24511,102 +12397,9 @@ _ACEOF
fi
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
- $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_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits32_t" = xyes; then :
- 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
@@ -24616,102 +12409,9 @@ _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=$?
- 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
+ ac_fn_c_check_type "$LINENO" "u_bits32_t" "ac_cv_type_u_bits32_t" "$ac_includes_default"
+if test "x$ac_cv_type_u_bits32_t" = xyes; then :
-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
@@ -24724,102 +12424,9 @@ fi
if test "$ac_cv_sizeof_char_p" = 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
+ ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits64_t" = xyes; then :
-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
@@ -24829,102 +12436,9 @@ _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
+ ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits64_t" = xyes; then :
-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
@@ -24934,102 +12448,9 @@ _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
- $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
+ ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits64_t" = xyes; then :
-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
@@ -25039,102 +12460,9 @@ _ACEOF
fi
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
- $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_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits64_t" = xyes; then :
- 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
@@ -25144,102 +12472,9 @@ _ACEOF
fi
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
- $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
+ ac_fn_c_check_type "$LINENO" "bits64_t" "ac_cv_type_bits64_t" "$ac_includes_default"
+if test "x$ac_cv_type_bits64_t" = xyes; then :
-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
@@ -25253,102 +12488,9 @@ fi
if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
- { $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_ptrdiff_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 (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=$?
- 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 ((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=$?
- 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
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
-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_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -25358,102 +12500,9 @@ _ACEOF
fi
elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
- { $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_ptrdiff_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 (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=$?
- 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 ((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=$?
- 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_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
- ac_cv_type_ptrdiff_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_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -25463,102 +12512,9 @@ _ACEOF
fi
elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
- { $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_ptrdiff_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 (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=$?
- 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 ((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=$?
- 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_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
- ac_cv_type_ptrdiff_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_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -25568,102 +12524,9 @@ _ACEOF
fi
else
- { $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
- $as_echo_n "(cached) " >&6
-else
- ac_cv_type_ptrdiff_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 (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=$?
- 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 ((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=$?
- 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_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
- ac_cv_type_ptrdiff_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_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
- :
else
cat >>confdefs.h <<_ACEOF
@@ -25675,16 +12538,12 @@ fi
fi
-{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_header_stat_broken+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/stat.h>
@@ -25706,48 +12565,25 @@ extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
#endif
_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 ac_fn_c_try_compile "$LINENO"; 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
+ ac_cv_header_stat_broken=yes
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define STAT_MACROS_BROKEN 1
-_ACEOF
+$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_sys_interpreter+:} false; then :
$as_echo_n "(cached) " >&6
else
echo '#! /bin/cat
@@ -25762,28 +12598,22 @@ else
fi
rm -f conftest
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_HASH_BANG_EXEC 1
-_ACEOF
+$as_echo "#define HAVE_HASH_BANG_EXEC 1" >>confdefs.h
fi
if test "$ac_cv_func_lstat" = "no"; then
-{ $as_echo "$as_me:$LINENO: checking for lstat" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lstat" >&5
$as_echo_n "checking for lstat... " >&6; }
-if test "${bash_cv_func_lstat+set}" = set; then
+if ${bash_cv_func_lstat+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -25797,67 +12627,36 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_func_lstat=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_LSTAT 1" >>confdefs.h
fi
fi
-{ $as_echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_func_ctype_nonascii+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_LOCALE_H
@@ -25891,68 +12690,35 @@ char *v[];
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_func_ctype_nonascii=yes
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 )
-bash_cv_func_ctype_nonascii=no
+ bash_cv_func_ctype_nonascii=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define CTYPE_NON_ASCII 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking if dup2 fails to clear the close-on-exec flag" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dup2_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -25972,70 +12738,37 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_dup2_broken=yes
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 )
-bash_cv_dup2_broken=no
+ bash_cv_dup2_broken=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dup2_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define DUP2_BROKEN 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether pgrps need synchronization" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_pgrp_pipe+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_UNISTD_H
@@ -26087,66 +12820,33 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_pgrp_pipe=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 )
-bash_cv_pgrp_pipe=yes
+ bash_cv_pgrp_pipe=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_pgrp_pipe" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define PGRP_PIPE 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for type of signal functions" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_signal_vintage+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
int
@@ -26163,38 +12863,11 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_signal_vintage=posix
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
int
@@ -26208,38 +12881,11 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_signal_vintage=4.2bsd
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
@@ -26256,84 +12902,45 @@ main ()
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_signal_vintage=svr3
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_POSIX_SIGNALS 1" >>confdefs.h
elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BSD_SIGNALS 1
-_ACEOF
+$as_echo "#define HAVE_BSD_SIGNALS 1" >>confdefs.h
elif test "$bash_cv_signal_vintage" = svr3; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_USG_SIGHOLD 1
-_ACEOF
+$as_echo "#define HAVE_USG_SIGHOLD 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for sys_errlist and sys_nerr" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_sys_errlist+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <errno.h>
int
@@ -26346,64 +12953,33 @@ extern char *sys_errlist[];
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_sys_errlist=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_errlist" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_SYS_ERRLIST 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for sys_siglist in system C library" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_sys_siglist+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -26420,63 +12996,30 @@ char *msg = sys_siglist[2];
exit(msg == 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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_sys_siglist=yes
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 )
-bash_cv_sys_siglist=no
+ bash_cv_sys_siglist=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_siglist" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_SYS_SIGLIST 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for _sys_siglist in signal.h or unistd.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_decl_under_sys_siglist+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -26492,59 +13035,32 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_decl_under_sys_siglist=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_under_sys_siglist" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define UNDER_SYS_SIGLIST_DECLARED 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for _sys_siglist in system C library" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_under_sys_siglist+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -26561,64 +13077,31 @@ char *msg = (char *)_sys_siglist[2];
exit(msg == 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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_under_sys_siglist=yes
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 )
-bash_cv_under_sys_siglist=no
+ bash_cv_under_sys_siglist=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_under_sys_siglist" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_UNDER_SYS_SIGLIST 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_void_sighandler+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
@@ -26637,55 +13120,28 @@ int i;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_void_sighandler=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define VOID_SIGHANDLER 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for clock_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_t" >&5
$as_echo_n "checking for clock_t... " >&6; }
-if test "${bash_cv_type_clock_t+set}" = set; then
+if ${bash_cv_type_clock_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26702,7 +13158,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "clock_t" >/dev/null 2>&1; then
+ $EGREP "clock_t" >/dev/null 2>&1; then :
bash_cv_type_clock_t=yes
else
bash_cv_type_clock_t=no
@@ -26711,7 +13167,7 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_clock_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -26723,16 +13179,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for sigset_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigset_t" >&5
$as_echo_n "checking for sigset_t... " >&6; }
-if test "${bash_cv_type_sigset_t+set}" = set; then
+if ${bash_cv_type_sigset_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26749,7 +13201,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "sigset_t" >/dev/null 2>&1; then
+ $EGREP "sigset_t" >/dev/null 2>&1; then :
bash_cv_type_sigset_t=yes
else
bash_cv_type_sigset_t=no
@@ -26758,7 +13210,7 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_sigset_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -26770,16 +13222,55 @@ fi
-{ $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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t" >&5
+$as_echo_n "checking for sig_atomic_t... " >&6; }
+if ${bash_cv_type_sig_atomic_t+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#if HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#include <signal.h>
+
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sig_atomic_t" >/dev/null 2>&1; then :
+ bash_cv_type_sig_atomic_t=yes
+else
+ bash_cv_type_sig_atomic_t=no
+fi
+rm -f conftest*
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_type_sig_atomic_t" >&5
+$as_echo "$bash_cv_type_sig_atomic_t" >&6; }
+
+if test $bash_cv_type_sig_atomic_t = no; then
+ cat >>confdefs.h <<_ACEOF
+#define sig_atomic_t int
+_ACEOF
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for quad_t" >&5
+$as_echo_n "checking for quad_t... " >&6; }
+if ${bash_cv_type_quad_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26796,7 +13287,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "quad_t" >/dev/null 2>&1; then
+ $EGREP "quad_t" >/dev/null 2>&1; then :
bash_cv_type_quad_t=yes
else
bash_cv_type_quad_t=no
@@ -26805,12 +13296,10 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_quad_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_QUAD_T 1" >>confdefs.h
fi
if test $bash_cv_type_quad_t = no; then
@@ -26822,16 +13311,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for intmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
$as_echo_n "checking for intmax_t... " >&6; }
-if test "${bash_cv_type_intmax_t+set}" = set; then
+if ${bash_cv_type_intmax_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26848,7 +13333,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "intmax_t" >/dev/null 2>&1; then
+ $EGREP "intmax_t" >/dev/null 2>&1; then :
bash_cv_type_intmax_t=yes
else
bash_cv_type_intmax_t=no
@@ -26857,7 +13342,7 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_intmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -26869,16 +13354,12 @@ fi
-{ $as_echo "$as_me:$LINENO: checking for uintmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uintmax_t" >&5
$as_echo_n "checking for uintmax_t... " >&6; }
-if test "${bash_cv_type_uintmax_t+set}" = set; then
+if ${bash_cv_type_uintmax_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26895,7 +13376,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "uintmax_t" >/dev/null 2>&1; then
+ $EGREP "uintmax_t" >/dev/null 2>&1; then :
bash_cv_type_uintmax_t=yes
else
bash_cv_type_uintmax_t=no
@@ -26904,7 +13385,7 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_uintmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
@@ -26917,16 +13398,12 @@ fi
if test "$ac_cv_header_sys_socket_h" = "yes"; then
-{ $as_echo "$as_me:$LINENO: checking for socklen_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5
$as_echo_n "checking for socklen_t... " >&6; }
-if test "${bash_cv_type_socklen_t+set}" = set; then
+if ${bash_cv_type_socklen_t+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#if STDC_HEADERS
@@ -26943,7 +13420,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "socklen_t" >/dev/null 2>&1; then
+ $EGREP "socklen_t" >/dev/null 2>&1; then :
bash_cv_type_socklen_t=yes
else
bash_cv_type_socklen_t=no
@@ -26952,32 +13429,26 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_socklen_t" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_SOCKLEN_T 1" >>confdefs.h
fi
if test $bash_cv_type_socklen_t = no; then
cat >>confdefs.h <<_ACEOF
-#define socklen_t int
+#define socklen_t unsigned int
_ACEOF
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for size and type of struct rlimit fields" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_type_rlimit+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/resource.h>
@@ -26989,40 +13460,16 @@ rlim_t xxx;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_type_rlimit=rlim_t
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5
+if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -27038,59 +13485,27 @@ main()
exit(1);
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_type_rlimit=quad_t
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 )
-bash_cv_type_rlimit=long
+ bash_cv_type_rlimit=long
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_rlimit" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define RLIMTYPE quad_t" >>confdefs.h
elif test $bash_cv_type_rlimit = rlim_t; then
-cat >>confdefs.h <<\_ACEOF
-#define RLIMTYPE rlim_t
-_ACEOF
+$as_echo "#define RLIMTYPE rlim_t" >>confdefs.h
fi
@@ -27099,352 +13514,26 @@ fi
# 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 intmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5
$as_echo_n "checking size of intmax_t... " >&6; }
-if test "${ac_cv_sizeof_intmax_t+set}" = set; then
+if ${ac_cv_sizeof_intmax_t+:} false; then :
$as_echo_n "(cached) " >&6
else
- 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
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (intmax_t))) >= 0)];
-test_array [0] = 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
- 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 int) (sizeof (intmax_t))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid; break
-else
- $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`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 int) (sizeof (intmax_t))) < 0)];
-test_array [0] = 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
- ac_hi=-1 ac_mid=-1
- 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 int) (sizeof (intmax_t))) >= $ac_mid)];
-test_array [0] = 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
- ac_lo=$ac_mid; break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (intmax_t))" "ac_cv_sizeof_intmax_t" "$ac_includes_default"; then :
- 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 core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-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`
- 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 int) (sizeof (intmax_t))) <= $ac_mid)];
-test_array [0] = 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
- ac_hi=$ac_mid
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_intmax_t=$ac_lo;;
-'') if test "$ac_cv_type_intmax_t" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ if test "$ac_cv_type_intmax_t" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (intmax_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (intmax_t)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
- else
- ac_cv_sizeof_intmax_t=0
- fi ;;
-esac
-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
-static long int longval () { return (long int) (sizeof (intmax_t)); }
-static unsigned long int ulongval () { return (long int) (sizeof (intmax_t)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (((long int) (sizeof (intmax_t))) < 0)
- {
- long int i = longval ();
- if (i != ((long int) (sizeof (intmax_t))))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ((long int) (sizeof (intmax_t))))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* 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 { (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_sizeof_intmax_t=`cat conftest.val`
-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 )
-if test "$ac_cv_type_intmax_t" = 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 (intmax_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (intmax_t)
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }; }
+as_fn_error 77 "cannot compute sizeof (intmax_t)
+See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_intmax_t=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
+
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_intmax_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_intmax_t" >&5
$as_echo "$ac_cv_sizeof_intmax_t" >&6; }
@@ -27456,240 +13545,36 @@ _ACEOF
-{ $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
- $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 <sys/types.h>
-#include <termios.h>
-
-
-int
-main ()
-{
-static struct termios ac_aggr;
-if (ac_aggr.c_line)
-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
- ac_cv_member_struct_termios_c_line=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
+ac_fn_c_check_member "$LINENO" "struct termios" "c_line" "ac_cv_member_struct_termios_c_line" "
#include <sys/types.h>
#include <termios.h>
-
-int
-main ()
-{
-static struct termios ac_aggr;
-if (sizeof ac_aggr.c_line)
-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
- ac_cv_member_struct_termios_c_line=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_member_struct_termios_c_line=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
-{ $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
+"
+if test "x$ac_cv_member_struct_termios_c_line" = xyes; then :
+ $as_echo "#define TERMIOS_LDISC 1" >>confdefs.h
fi
-{ $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
- $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 <sys/types.h>
-#include <termio.h>
-
-
-int
-main ()
-{
-static struct termio ac_aggr;
-if (ac_aggr.c_line)
-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
- ac_cv_member_struct_termio_c_line=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
+ac_fn_c_check_member "$LINENO" "struct termio" "c_line" "ac_cv_member_struct_termio_c_line" "
#include <sys/types.h>
#include <termio.h>
-
-int
-main ()
-{
-static struct termio ac_aggr;
-if (sizeof ac_aggr.c_line)
-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
- ac_cv_member_struct_termio_c_line=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_member_struct_termio_c_line=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
-{ $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
+"
+if test "x$ac_cv_member_struct_termio_c_line" = xyes; then :
+ $as_echo "#define TERMIO_LDISC 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dirent_has_dino+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -27722,55 +13607,28 @@ struct dirent d; int z; z = d.d_ino;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_dirent_has_dino=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STRUCT_DIRENT_D_INO 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dirent_has_d_fileno+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -27803,55 +13661,28 @@ struct dirent d; int z; z = d.d_fileno;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_dirent_has_d_fileno=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STRUCT_DIRENT_D_FILENO 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_namlen" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dirent_has_d_namlen+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -27884,54 +13715,27 @@ struct dirent d; int z; z = d.d_namlen;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_dirent_has_d_namlen=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_namlen" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_struct_winsize_header+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -27943,34 +13747,10 @@ struct winsize x;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_struct_winsize_header=ioctl_h
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <termios.h>
@@ -27982,88 +13762,54 @@ struct winsize x;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_struct_winsize_header=termios_h
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
if test $bash_cv_struct_winsize_header = ioctl_h; then
- { $as_echo "$as_me:$LINENO: result: sys/ioctl.h" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: sys/ioctl.h" >&5
$as_echo "sys/ioctl.h" >&6; }
- cat >>confdefs.h <<\_ACEOF
-#define STRUCT_WINSIZE_IN_SYS_IOCTL 1
-_ACEOF
+ $as_echo "#define STRUCT_WINSIZE_IN_SYS_IOCTL 1" >>confdefs.h
elif test $bash_cv_struct_winsize_header = termios_h; then
- { $as_echo "$as_me:$LINENO: result: termios.h" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: termios.h" >&5
$as_echo "termios.h" >&6; }
- cat >>confdefs.h <<\_ACEOF
-#define STRUCT_WINSIZE_IN_TERMIOS 1
-_ACEOF
+ $as_echo "#define STRUCT_WINSIZE_IN_TERMIOS 1" >>confdefs.h
else
- { $as_echo "$as_me:$LINENO: result: not found" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
fi
-{ $as_echo "$as_me:$LINENO: checking for struct timeval in sys/time.h and time.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_struct_timeval+:} false; 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
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "struct timeval" >/dev/null 2>&1; then
+ $EGREP "struct timeval" >/dev/null 2>&1; then :
bash_cv_struct_timeval=yes
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <time.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "struct timeval" >/dev/null 2>&1; then
+ $EGREP "struct timeval" >/dev/null 2>&1; then :
bash_cv_struct_timeval=yes
else
bash_cv_struct_timeval=no
@@ -28076,111 +13822,15 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_struct_timeval" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
-
-fi
-
-{ $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
- $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. */
-$ac_includes_default
-int
-main ()
-{
-static struct stat ac_aggr;
-if (ac_aggr.st_blocks)
-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
- ac_cv_member_struct_stat_st_blocks=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- 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 struct stat ac_aggr;
-if (sizeof ac_aggr.st_blocks)
-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
- ac_cv_member_struct_stat_st_blocks=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+ $as_echo "#define HAVE_TIMEVAL 1" >>confdefs.h
- ac_cv_member_struct_stat_st_blocks=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
-{ $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
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
@@ -28189,16 +13839,12 @@ _ACEOF
fi
-{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_struct_tm+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <time.h>
@@ -28213,146 +13859,26 @@ struct tm tm;
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 ac_fn_c_try_compile "$LINENO"; then :
ac_cv_struct_tm=time.h
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define TM_IN_SYS_TIME 1
-_ACEOF
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
fi
-{ $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
- $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 <sys/types.h>
+ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
#include <$ac_cv_struct_tm>
-
-int
-main ()
-{
-static struct tm ac_aggr;
-if (ac_aggr.tm_zone)
-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
- ac_cv_member_struct_tm_tm_zone=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <$ac_cv_struct_tm>
-
-
-int
-main ()
-{
-static struct tm ac_aggr;
-if (sizeof ac_aggr.tm_zone)
-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
- ac_cv_member_struct_tm_tm_zone=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_member_struct_tm_tm_zone=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
-{ $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
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_TM_TM_ZONE 1
@@ -28363,91 +13889,27 @@ fi
if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TM_ZONE 1
-_ACEOF
+$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
else
- { $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 <time.h>
-
-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
+ ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_tzname" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_tzname=no
+ ac_have_decl=0
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
+#define HAVE_DECL_TZNAME $ac_have_decl
_ACEOF
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TZNAME 0
-_ACEOF
-
-
-fi
-
-
- { $as_echo "$as_me:$LINENO: checking for tzname" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
$as_echo_n "checking for tzname... " >&6; }
-if test "${ac_cv_var_tzname+set}" = set; then
+if ${ac_cv_var_tzname+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <time.h>
#if !HAVE_DECL_TZNAME
@@ -28462,80 +13924,45 @@ return tzname[0][0];
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_var_tzname=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-#define HAVE_TZNAME 1
-_ACEOF
+$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for struct timezone in sys/time.h and time.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_struct_timezone+:} false; 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
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "struct timezone" >/dev/null 2>&1; then
+ $EGREP "struct timezone" >/dev/null 2>&1; then :
bash_cv_struct_timezone=yes
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <time.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "struct timezone" >/dev/null 2>&1; then
+ $EGREP "struct timezone" >/dev/null 2>&1; then :
bash_cv_struct_timezone=yes
else
bash_cv_struct_timezone=no
@@ -28548,28 +13975,27 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_struct_timezone" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for offset of exit status in return status from wait" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for offset of exit status in return status from wait" >&5
$as_echo_n "checking for offset of exit status in return status from wait... " >&6; }
-if test "${bash_cv_wexitstatus_offset+set}" = set; then
+if ${bash_cv_wexitstatus_offset+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&5
$as_echo "$as_me: WARNING: cannot check WEXITSTATUS offset if cross compiling -- defaulting to 0" >&2;}
bash_cv_wexitstatus_offset=0
else
- cat >conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
#include <stdlib.h>
#include <unistd.h>
@@ -28605,50 +14031,23 @@ main(c, v)
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_wexitstatus_offset=0
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 )
-bash_cv_wexitstatus_offset=$?
+ bash_cv_wexitstatus_offset=$?
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
if test "$bash_cv_wexitstatus_offset" -gt 32 ; then
- { $as_echo "$as_me:$LINENO: WARNING: bad exit status from test program -- defaulting to 0" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: bad exit status from test program -- defaulting to 0" >&5
$as_echo "$as_me: WARNING: bad exit status from test program -- defaulting to 0" >&2;}
bash_cv_wexitstatus_offset=0
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_wexitstatus_offset" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_wexitstatus_offset" >&5
$as_echo "$bash_cv_wexitstatus_offset" >&6; }
cat >>confdefs.h <<_ACEOF
@@ -28657,16 +14056,222 @@ _ACEOF
-{ $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
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if ${bash_cv_sys_struct_timespec_in_time_h+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bash_cv_sys_struct_timespec_in_time_h=yes
+else
+ bash_cv_sys_struct_timespec_in_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_time_h" >&5
+$as_echo "$bash_cv_sys_struct_timespec_in_time_h" >&6; }
+
+ HAVE_STRUCT_TIMESPEC=0
+ TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $bash_cv_sys_struct_timespec_in_time_h = yes; then
+ $as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ $as_echo "#define TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if ${bash_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bash_cv_sys_struct_timespec_in_sys_time_h=yes
+else
+ bash_cv_sys_struct_timespec_in_sys_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_sys_time_h" >&5
+$as_echo "$bash_cv_sys_struct_timespec_in_sys_time_h" >&6; }
+ if test $bash_cv_sys_struct_timespec_in_sys_time_h = yes; then
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ $as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ $as_echo "#define SYS_TIME_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if ${bash_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <pthread.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ bash_cv_sys_struct_timespec_in_pthread_h=yes
+else
+ bash_cv_sys_struct_timespec_in_pthread_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$bash_cv_sys_struct_timespec_in_pthread_h" >&6; }
+ if test $bash_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ $as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ $as_echo "#define PTHREAD_H_DEFINES_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ fi
+ fi
+ fi
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5
+$as_echo_n "checking whether struct stat.st_atim is of type struct timespec... " >&6; }
+if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_SYS_TIME_H
+ # include <sys/time.h>
+ #endif
+ #include <time.h>
+ struct timespec ts;
+ struct stat st;
+
+int
+main ()
+{
+
+ st.st_atim = ts;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
+else
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&5
+$as_echo "$ac_cv_typeof_struct_stat_st_atim_is_struct_timespec" >&6; }
+ if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
+
+$as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ fi
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the existence of strsignal" >&5
+$as_echo_n "checking for the existence of strsignal... " >&6; }
+if ${bash_cv_have_strsignal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
@@ -28678,65 +14283,34 @@ char *s = (char *)strsignal(2);
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_have_strsignal=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_have_strsignal" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STRSIGNAL 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking if opendir() opens non-directories" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_opendir_not_robust+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -28778,69 +14352,36 @@ rmdir("bash-aclocal");
exit (dir == 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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_opendir_not_robust=yes
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 )
-bash_cv_opendir_not_robust=no
+ bash_cv_opendir_not_robust=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_opendir_not_robust" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define OPENDIR_NOT_ROBUST 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether ulimit can substitute for getdtablesize" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_ulimit_maxfds+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
main()
@@ -28850,50 +14391,21 @@ exit (maxfds == -1L);
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_ulimit_maxfds=yes
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 )
-bash_cv_ulimit_maxfds=no
+ 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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_ulimit_maxfds" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+$as_echo "#define ULIMIT_MAXFDS 1" >>confdefs.h
fi
@@ -28904,103 +14416,31 @@ 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 <stdio.h>
-
-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
+ ac_fn_c_check_decl "$LINENO" "fpurge" "ac_cv_have_decl_fpurge" "#include <stdio.h>
+"
+if test "x$ac_cv_have_decl_fpurge" = xyes; then :
+ ac_have_decl=1
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_have_decl_fpurge=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_have_decl=0
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
cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPURGE 1
+#define HAVE_DECL_FPURGE $ac_have_decl
_ACEOF
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPURGE 0
-_ACEOF
-
-
-fi
-
-
-
-{ $as_echo "$as_me:$LINENO: checking to see if getenv can be redefined" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_getenv_redef+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_UNISTD_H
@@ -29035,70 +14475,37 @@ exit(s == 0); /* force optimizer to leave getenv in */
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_getenv_redef=yes
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 )
-bash_cv_getenv_redef=no
+ bash_cv_getenv_redef=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_getenv_redef" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define CAN_REDEFINE_GETENV 1" >>confdefs.h
fi
if test "$ac_cv_func_getcwd" = "yes"; then
-{ $as_echo "$as_me:$LINENO: checking if getcwd() will dynamically allocate memory with 0 size" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_getcwd_malloc+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -29114,50 +14521,21 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_getcwd_malloc=yes
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 )
-bash_cv_getcwd_malloc=no
+ bash_cv_getcwd_malloc=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_getcwd_malloc" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+$as_echo "#define GETCWD_BROKEN 1" >>confdefs.h
case " $LIBOBJS " in
*" getcwd.$ac_objext "* ) ;;
@@ -29169,22 +14547,18 @@ fi
fi
-{ $as_echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_func_sigsetjmp+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_UNISTD_H
@@ -29225,70 +14599,37 @@ exit(1);
#endif
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_func_sigsetjmp=present
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 )
-bash_cv_func_sigsetjmp=missing
+ bash_cv_func_sigsetjmp=missing
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_POSIX_SIGSETJMP 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_func_strcoll_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -29327,50 +14668,21 @@ char *v[];
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_func_strcoll_broken=yes
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 )
-bash_cv_func_strcoll_broken=no
+ bash_cv_func_strcoll_broken=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define STRCOLL_BROKEN 1" >>confdefs.h
fi
@@ -29378,28 +14690,19 @@ fi
-
-
-
-
-
if test X$ac_cv_func_snprintf = Xyes; then
- { $as_echo "$as_me:$LINENO: checking for standard-conformant snprintf" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant snprintf" >&5
$as_echo_n "checking for standard-conformant snprintf... " >&6; }
-if test "${bash_cv_func_snprintf+set}" = set; then
+if ${bash_cv_func_snprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check standard snprintf if cross-compiling" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard snprintf if cross-compiling" >&5
$as_echo "$as_me: WARNING: cannot check standard snprintf if cross-compiling" >&2;}
bash_cv_func_snprintf=yes
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -29412,44 +14715,17 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_func_snprintf=yes
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 )
-bash_cv_func_snprintf=no
+ bash_cv_func_snprintf=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_snprintf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_snprintf" >&5
$as_echo "$bash_cv_func_snprintf" >&6; }
if test $bash_cv_func_snprintf = no; then
ac_cv_func_snprintf=no
@@ -29457,9 +14733,7 @@ $as_echo "$bash_cv_func_snprintf" >&6; }
fi
if test $ac_cv_func_snprintf = no; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SNPRINTF 0
-_ACEOF
+$as_echo "#define HAVE_SNPRINTF 0" >>confdefs.h
fi
@@ -29467,28 +14741,19 @@ _ACEOF
-
-
-
-
-
if test X$ac_cv_func_vsnprintf = Xyes; then
- { $as_echo "$as_me:$LINENO: checking for standard-conformant vsnprintf" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard-conformant vsnprintf" >&5
$as_echo_n "checking for standard-conformant vsnprintf... " >&6; }
-if test "${bash_cv_func_vsnprintf+set}" = set; then
+if ${bash_cv_func_vsnprintf+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check standard vsnprintf if cross-compiling" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check standard vsnprintf if cross-compiling" >&5
$as_echo "$as_me: WARNING: cannot check standard vsnprintf if cross-compiling" >&2;}
bash_cv_func_vsnprintf=yes
else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if HAVE_STDARG_H
@@ -29529,44 +14794,17 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_func_vsnprintf=yes
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 )
-bash_cv_func_vsnprintf=no
+ bash_cv_func_vsnprintf=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_vsnprintf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bash_cv_func_vsnprintf" >&5
$as_echo "$bash_cv_func_vsnprintf" >&6; }
if test $bash_cv_func_vsnprintf = no; then
ac_cv_func_vsnprintf=no
@@ -29574,9 +14812,7 @@ $as_echo "$bash_cv_func_vsnprintf" >&6; }
fi
if test $ac_cv_func_vsnprintf = no; then
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_VSNPRINTF 0
-_ACEOF
+$as_echo "#define HAVE_VSNPRINTF 0" >>confdefs.h
fi
@@ -29586,16 +14822,12 @@ if test "$ac_cv_func_putenv" = "yes"; then
-{ $as_echo "$as_me:$LINENO: checking for standard-conformant putenv declaration" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_std_putenv+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -29621,69 +14853,36 @@ return (putenv == 0);
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_std_putenv=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_std_putenv" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STD_PUTENV 1" >>confdefs.h
fi
else
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_PUTENV 1
-_ACEOF
+$as_echo "#define HAVE_STD_PUTENV 1" >>confdefs.h
fi
if test "$ac_cv_func_unsetenv" = "yes"; then
-{ $as_echo "$as_me:$LINENO: checking for standard-conformant unsetenv declaration" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_std_unsetenv+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if STDC_HEADERS
@@ -29709,72 +14908,39 @@ return (unsetenv == 0);
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
+if ac_fn_c_try_link "$LINENO"; then :
bash_cv_std_unsetenv=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_std_unsetenv" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_STD_UNSETENV 1" >>confdefs.h
fi
else
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STD_UNSETENV 1
-_ACEOF
+$as_echo "#define HAVE_STD_UNSETENV 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for printf floating point output in hex notation" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_printf_a_format+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
@@ -29791,72 +14957,39 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_printf_a_format=yes
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 )
-bash_cv_printf_a_format=no
+ bash_cv_printf_a_format=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_printf_a_format" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_PRINTF_A_FORMAT 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_must_reinstall_sighandlers+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
@@ -29903,70 +15036,37 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_must_reinstall_sighandlers=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 )
-bash_cv_must_reinstall_sighandlers=yes
+ bash_cv_must_reinstall_sighandlers=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define MUST_REINSTALL_SIGHANDLERS 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for presence of necessary job control definitions" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_job_control_missing+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30013,69 +15113,36 @@ exit(1);
exit(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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_job_control_missing=present
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 )
-bash_cv_job_control_missing=missing
+ bash_cv_job_control_missing=missing
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_job_control_missing" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define JOB_CONTROL_MISSING 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for presence of named pipes" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_sys_named_pipes+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30116,64 +15183,31 @@ rmdir ("bash-aclocal");
exit(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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_sys_named_pipes=present
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 )
-bash_cv_sys_named_pipes=missing
+ bash_cv_sys_named_pipes=missing
fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_named_pipes" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define NAMED_PIPES_MISSING 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_sys_tiocgwinsz_in_termios_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <termios.h>
@@ -30183,7 +15217,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1; then
+ $EGREP "yes" >/dev/null 2>&1; then :
ac_cv_sys_tiocgwinsz_in_termios_h=yes
else
ac_cv_sys_tiocgwinsz_in_termios_h=no
@@ -30191,20 +15225,16 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
- { $as_echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -30214,7 +15244,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1; then
+ $EGREP "yes" >/dev/null 2>&1; then :
ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
else
ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
@@ -30222,28 +15252,22 @@ fi
rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-cat >>confdefs.h <<\_ACEOF
-#define GWINSZ_IN_SYS_IOCTL 1
-_ACEOF
+$as_echo "#define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h
fi
fi
-{ $as_echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_tiocstat_in_ioctl+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -30255,54 +15279,27 @@ int x = TIOCSTAT;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_tiocstat_in_ioctl=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define TIOCSTAT_IN_SYS_IOCTL 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_fionread_in_ioctl+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/ioctl.h>
@@ -30314,62 +15311,35 @@ int x = FIONREAD;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_fionread_in_ioctl=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_wcontinued_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30392,64 +15362,31 @@ main()
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_wcontinued_broken=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 )
-bash_cv_wcontinued_broken=yes
+ bash_cv_wcontinued_broken=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_wcontinued_broken" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define WCONTINUED_BROKEN 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_speed_t_in_sys_types+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
int
@@ -30460,54 +15397,27 @@ speed_t x;
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 ac_fn_c_try_compile "$LINENO"; then :
bash_cv_speed_t_in_sys_types=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define SPEED_T_IN_SYS_TYPES 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_getpw_declared+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30518,7 +15428,7 @@ cat >>conftest.$ac_ext <<_ACEOF
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "getpwuid" >/dev/null 2>&1; then
+ $EGREP "getpwuid" >/dev/null 2>&1; then :
bash_cv_getpw_declared=yes
else
bash_cv_getpw_declared=no
@@ -30527,31 +15437,25 @@ rm -f conftest*
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define HAVE_GETPW_DECLS 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for unusable real-time signals due to large values" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_unusable_rtsigs+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- { $as_echo "$as_me:$LINENO: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$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
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30573,50 +15477,21 @@ main ()
exit(rtmin < n_sigs);
}
_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
+if ac_fn_c_try_run "$LINENO"; then :
bash_cv_unusable_rtsigs=yes
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 )
-bash_cv_unusable_rtsigs=no
+ bash_cv_unusable_rtsigs=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
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_unusable_rtsigs" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define UNUSABLE_RT_SIGNALS 1" >>confdefs.h
fi
@@ -30633,16 +15508,12 @@ fi
case "$host_os" in
-hpux*) { $as_echo "$as_me:$LINENO: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5
+hpux*) { $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_kernel_rlimit+:} false; 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
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30659,34 +15530,10 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_kernel_rlimit=no
else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
@@ -30705,45 +15552,21 @@ 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
+if ac_fn_c_try_compile "$LINENO"; then :
bash_cv_kernel_rlimit=yes
else
- $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 core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_kernel_rlimit" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+$as_echo "#define RLIMIT_NEEDS_KERNEL 1" >>confdefs.h
fi
;;
@@ -30757,113 +15580,25 @@ esac
if test "X$bash_cv_termcap_lib" = "X"; then
_bash_needmsg=yes
else
-{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
+{ $as_echo "$as_me:${as_lineno-$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
- $as_echo_n "(cached) " >&6
-else
- { $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
+if ${bash_cv_termcap_lib+:} false; 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 tgetent to an innocuous variant, in case <limits.h> declares tgetent.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define tgetent innocuous_tgetent
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char tgetent (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef tgetent
-
-/* 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 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
-choke me
-#endif
-
-int
-main ()
-{
-return tgetent ();
- ;
- 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_tgetent=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_func_tgetent=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_tgetent" >&5
-$as_echo "$ac_cv_func_tgetent" >&6; }
-if test "x$ac_cv_func_tgetent" = x""yes; then
+ ac_fn_c_check_func "$LINENO" "tgetent" "ac_cv_func_tgetent"
+if test "x$ac_cv_func_tgetent" = xyes; then :
bash_cv_termcap_lib=libc
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_termcap_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltermcap $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -30881,57 +15616,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_termcap_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_termcap_tgetent" = xyes; then :
bash_cv_termcap_lib=libtermcap
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_tinfo_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ltinfo $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -30949,57 +15655,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_tinfo_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_tinfo_tgetent" = xyes; then :
bash_cv_termcap_lib=libtinfo
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_curses_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -31017,57 +15694,28 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_curses_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_curses_tgetent" = xyes; then :
bash_cv_termcap_lib=libcurses
else
- { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5
+ { $as_echo "$as_me:${as_lineno-$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
+if ${ac_cv_lib_ncurses_tgetent+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
@@ -31085,43 +15733,18 @@ return tgetent ();
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
+if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncurses_tgetent=yes
else
- $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 -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if test "x$ac_cv_lib_ncurses_tgetent" = xyes; then :
bash_cv_termcap_lib=libncurses
else
bash_cv_termcap_lib=gnutermcap
@@ -31138,10 +15761,10 @@ fi
fi
if test "X$_bash_needmsg" = "Xyes"; then
-{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which library has the termcap functions" >&5
$as_echo_n "checking which library has the termcap functions... " >&6; }
fi
-{ $as_echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5
+{ $as_echo "$as_me:${as_lineno-$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"
@@ -31168,9 +15791,9 @@ fi
-{ $as_echo "$as_me:$LINENO: checking whether /dev/fd is available" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dev_fd+:} false; then :
$as_echo_n "(cached) " >&6
else
bash_cv_dev_fd=""
@@ -31192,31 +15815,23 @@ fi
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dev_fd" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_DEV_FD 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define DEV_FD_PREFIX "/dev/fd/"
-_ACEOF
+ $as_echo "#define DEV_FD_PREFIX \"/dev/fd/\"" >>confdefs.h
elif test $bash_cv_dev_fd = "whacky"; then
- cat >>confdefs.h <<\_ACEOF
-#define HAVE_DEV_FD 1
-_ACEOF
+ $as_echo "#define HAVE_DEV_FD 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define DEV_FD_PREFIX "/proc/self/fd/"
-_ACEOF
+ $as_echo "#define DEV_FD_PREFIX \"/proc/self/fd/\"" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking whether /dev/stdin stdout stderr are available" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_dev_stdin+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then
@@ -31229,18 +15844,16 @@ else
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_dev_stdin" >&5
+{ $as_echo "$as_me:${as_lineno-$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
-_ACEOF
+ $as_echo "#define HAVE_DEV_STDIN 1" >>confdefs.h
fi
-{ $as_echo "$as_me:$LINENO: checking for default mail directory" >&5
+{ $as_echo "$as_me:${as_lineno-$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
+if ${bash_cv_mail_dir+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -d /var/mail; then
@@ -31257,7 +15870,7 @@ else
fi
-{ $as_echo "$as_me:$LINENO: result: $bash_cv_mail_dir" >&5
+{ $as_echo "$as_me:${as_lineno-$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"
@@ -31270,9 +15883,7 @@ if test "$bash_cv_job_control_missing" = missing; then
fi
if test "$opt_job_control" = yes; then
-cat >>confdefs.h <<\_ACEOF
-#define JOB_CONTROL 1
-_ACEOF
+$as_echo "#define JOB_CONTROL 1" >>confdefs.h
JOBS_O=jobs.o
else
@@ -31286,21 +15897,13 @@ LOCAL_DEFS=-DSHELL
case "${host_os}" in
-sysv4.2*) cat >>confdefs.h <<\_ACEOF
-#define SVR4_2 1
-_ACEOF
+sysv4.2*) $as_echo "#define SVR4_2 1" >>confdefs.h
- cat >>confdefs.h <<\_ACEOF
-#define SVR4 1
-_ACEOF
+ $as_echo "#define SVR4 1" >>confdefs.h
;;
-sysv4*) cat >>confdefs.h <<\_ACEOF
-#define SVR4 1
-_ACEOF
+sysv4*) $as_echo "#define SVR4 1" >>confdefs.h
;;
-sysv5*) cat >>confdefs.h <<\_ACEOF
-#define SVR5 1
-_ACEOF
+sysv5*) $as_echo "#define SVR5 1" >>confdefs.h
;;
hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
hpux*) LOCAL_CFLAGS=-DHPUX ;;
@@ -31320,16 +15923,15 @@ solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
case "`uname -r`" in
- 2.[456789]*|3*) cat >>confdefs.h <<\_ACEOF
-#define PGRP_PIPE 1
-_ACEOF
+ 2.[456789]*|3*) $as_echo "#define PGRP_PIPE 1" >>confdefs.h
;;
esac ;;
*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
powerux*) LOCAL_LIBS="-lgen" ;;
cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
-opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE" ;;
+opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
+*openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
esac
case "${host_os}-${CC}" in
@@ -31366,7 +15968,7 @@ esac
#
if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
then
- { $as_echo "$as_me:$LINENO: checking shared object configuration for loadable builtins" >&5
+ { $as_echo "$as_me:${as_lineno-$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}"`
@@ -31376,7 +15978,7 @@ $as_echo_n "checking shared object configuration for loadable builtins... " >&6;
- { $as_echo "$as_me:$LINENO: result: $SHOBJ_STATUS" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5
$as_echo "$SHOBJ_STATUS" >&6; }
fi
@@ -31469,13 +16071,13 @@ _ACEOF
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
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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 ;;
+ *) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
@@ -31483,8 +16085,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
(set) 2>&1 |
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 \).
+ # `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"
@@ -31506,12 +16108,23 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&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
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
- { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
@@ -31525,14 +16138,15 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
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'
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
@@ -31541,13 +16155,14 @@ LTLIBOBJS=$ac_ltlibobjs
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
@@ -31557,17 +16172,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
debug=false
ac_cs_recheck=false
ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+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
@@ -31575,23 +16191,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
- case `(set -o) 2>/dev/null` in
- *posix*) set -o posix ;;
+ 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
@@ -31599,7 +16207,13 @@ export as_nl
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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
@@ -31610,7 +16224,7 @@ else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
- case $arg in
+ case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -31633,13 +16247,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
}
fi
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
@@ -31649,15 +16256,16 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-case $0 in
+as_myself=
+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
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
IFS=$as_save_IFS
;;
@@ -31669,12 +16277,16 @@ if test "x$as_myself" = x; then
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; }
+ exit 1
fi
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
@@ -31686,7 +16298,89 @@ export LC_ALL
LANGUAGE=C
export LANGUAGE
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
@@ -31700,8 +16394,12 @@ else
as_basename=false
fi
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
-# Name of the executable.
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
@@ -31721,76 +16419,25 @@ $as_echo X/"$0" |
}
s/.*/./; q'`
-# CDPATH.
-$as_unset CDPATH
-
-
-
- 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 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
- # 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
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- 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 sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
+# 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
ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
-n*)
- case `echo 'x\c'` in
+ case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
- *) ECHO_C='\c';;
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
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
if test -d conf$$.dir; then
@@ -31805,49 +16452,85 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... 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'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ 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 ||
+$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 -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
+ as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
-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
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# 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'"
@@ -31857,13 +16540,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# 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.
ac_log="
-This file was extended by bash $as_me 4.2-release, which was
-generated by GNU Autoconf 2.63. Invocation command line was
+This file was extended by bash $as_me 4.3-release, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -31895,13 +16584,15 @@ _ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
@@ -31920,16 +16611,17 @@ $config_headers
Configuration commands:
$config_commands
-Report bugs to <bug-autoconf@gnu.org>."
+Report bugs to <bug-bash@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-bash config.status 4.2-release
-configured by $0, generated by GNU Autoconf 2.63,
- with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+bash config.status 4.3-release
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -31945,11 +16637,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -31963,27 +16660,29 @@ do
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
- CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
- CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+ as_fn_append 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; }; };;
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -31991,11 +16690,10 @@ Try \`$0 --help' for more information." >&2
ac_cs_silent=: ;;
# This is an error.
- -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
- *) ac_config_targets="$ac_config_targets $1"
+ *) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
@@ -32012,7 +16710,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$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'
@@ -32070,9 +16768,7 @@ do
"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; }; };;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -32095,26 +16791,24 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
+ trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} ||
-{
- $as_echo "$as_me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -32122,7 +16816,13 @@ $debug ||
if test -n "$CONFIG_FILES"; then
-ac_cr=' '
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
@@ -32130,7 +16830,7 @@ else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
@@ -32139,24 +16839,18 @@ _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 '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+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; }; }
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
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; }; }
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -32164,7 +16858,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -32178,7 +16872,7 @@ s/'"$ac_delim"'$//
t delim
:nl
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
@@ -32192,7 +16886,7 @@ s/.\{148\}//
t nl
:delim
h
-s/\(.\{148\}\).*/\1/
+s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
@@ -32212,7 +16906,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
@@ -32244,23 +16938,29 @@ 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; }; }
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries 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/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -32272,7 +16972,7 @@ fi # test -n "$CONFIG_FILES"
# 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 ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
@@ -32284,13 +16984,11 @@ _ACEOF
# 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
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; 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; }; }
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -32375,9 +17073,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_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; }; }
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -32390,9 +17086,7 @@ do
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; }; };;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -32411,7 +17105,7 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_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 `:'.
@@ -32420,12 +17114,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
[\\/$]*) 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; }; };;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- ac_file_inputs="$ac_file_inputs '$ac_f'"
+ as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -32436,7 +17128,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
`' 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:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
@@ -32448,10 +17140,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
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; }; } ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -32479,47 +17169,7 @@ $as_echo X"$ac_file" |
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 :; 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 ||
-$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 -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; }; }; }
+ as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
@@ -32571,7 +17221,6 @@ 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
@@ -32581,12 +17230,11 @@ ac_sed_dataroot='
/@docdir@/p
/@infodir@/p
/@localedir@/p
-/@mandir@/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:${as_lineno-$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
@@ -32596,7 +17244,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
+ s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
@@ -32623,27 +17271,24 @@ 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; }; }
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
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
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$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;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_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; }; }
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -32652,31 +17297,25 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
if test x"$ac_file" != x-; then
{
$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
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
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; }; }
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$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; }; }
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
- :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
$as_echo "$as_me: executing $ac_file commands" >&6;}
;;
esac
@@ -32793,15 +17432,12 @@ echo timestamp > stamp-h
done # for ac_tag
-{ (exit 0); exit 0; }
+as_fn_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; }; }
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -32822,10 +17458,10 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
+ $ac_cs_success || as_fn_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:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 00000000..97e8e044
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,1212 @@
+dnl
+dnl Configure script for bash-4.3
+dnl
+dnl report bugs to chet@po.cwru.edu
+dnl
+dnl Process this file with autoconf to produce a configure script.
+
+# Copyright (C) 1987-2013 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 <http://www.gnu.org/licenses/>.
+
+AC_REVISION([for Bash 4.3, version 4.063])dnl
+
+define(bashvers, 4.3)
+define(relstatus, release)
+
+AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org])
+
+dnl make sure we are using a recent autoconf version
+AC_PREREQ(2.61)
+
+AC_CONFIG_SRCDIR(shell.h)
+dnl where to find install.sh, config.sub, and config.guess
+AC_CONFIG_AUX_DIR(./support)
+AC_CONFIG_HEADERS(config.h)
+
+dnl checks for version info
+BASHVERS=bashvers
+RELSTATUS=relstatus
+
+dnl defaults for debug settings
+case "$RELSTATUS" in
+alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;;
+*) DEBUG= MALLOC_DEBUG= ;;
+esac
+
+dnl canonicalize the host and os so we can do some tricky things before
+dnl parsing options
+AC_CANONICAL_HOST
+AC_CANONICAL_BUILD
+
+dnl configure defaults
+opt_bash_malloc=yes
+opt_purify=no
+opt_purecov=no
+opt_afs=no
+opt_curses=no
+opt_with_installed_readline=no
+
+#htmldir=
+
+dnl some systems should be configured without the bash malloc by default
+dnl and some need a special compiler or loader
+dnl look in the NOTES file for more
+case "${host_cpu}-${host_os}" in
+alpha*-*) opt_bash_malloc=no ;; # alpha running osf/1 or linux
+*[[Cc]]ray*-*) opt_bash_malloc=no ;; # Crays
+*-osf1*) opt_bash_malloc=no ;; # other osf/1 machines
+sparc-svr4*) opt_bash_malloc=no ;; # sparc SVR4, SVR4.2
+sparc-netbsd*) opt_bash_malloc=no ;; # needs 8-byte alignment
+mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
+m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
+sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
+#*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
+#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
+*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
+*-mirbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
+*-aix*) opt_bash_malloc=no ;; # AIX machines
+*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
+*-openstep*) opt_bash_malloc=no ;; # i386/Sparc/HP machines running Openstep
+*-macos*) opt_bash_malloc=no ;; # Apple MacOS X
+*-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
+*-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
+*-dgux*) opt_bash_malloc=no ;; # DG/UX machines
+*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
+*-machten4) opt_bash_malloc=no ;; # MachTen 4.x
+*-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
+*-beos*) opt_bash_malloc=no ;; # they say it's suitable
+*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
+*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
+*-nsk*) opt_bash_malloc=no ;; # HP NonStop
+*-haiku*) opt_bash_malloc=no ;; # Haiku OS
+esac
+
+# memory scrambling on free()
+case "${host_os}" in
+sco3.2v5*|sco3.2v4*) opt_memscramble=no ;;
+*) opt_memscramble=yes ;;
+esac
+
+dnl
+dnl macros for the bash debugger
+dnl
+dnl AM_PATH_LISPDIR
+AC_ARG_VAR(DEBUGGER_START_FILE, [location of bash debugger initialization file])
+
+dnl arguments to configure
+dnl packages
+AC_ARG_WITH(afs, AC_HELP_STRING([--with-afs], [if you are running AFS]), opt_afs=$withval)
+AC_ARG_WITH(bash-malloc, AC_HELP_STRING([--with-bash-malloc], [use the Bash version of malloc]), opt_bash_malloc=$withval)
+AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
+AC_ARG_WITH(gnu-malloc, AC_HELP_STRING([--with-gnu-malloc], [synonym for --with-bash-malloc]), opt_bash_malloc=$withval)
+AC_ARG_WITH(installed-readline, AC_HELP_STRING([--with-installed-readline], [use a version of the readline library that is already installed]), opt_with_installed_readline=$withval)
+AC_ARG_WITH(purecov, AC_HELP_STRING([--with-purecov], [configure to postprocess with pure coverage]), opt_purecov=$withval)
+AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval)
+
+if test "$opt_bash_malloc" = yes; then
+ MALLOC_TARGET=malloc
+ MALLOC_SRC=malloc.c
+
+ MALLOC_LIB='-lmalloc'
+ MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
+ MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
+ MALLOC_DEP='$(MALLOC_LIBRARY)'
+
+ AC_DEFINE(USING_BASH_MALLOC)
+else
+ MALLOC_LIB=
+ MALLOC_LIBRARY=
+ MALLOC_LDFLAGS=
+ MALLOC_DEP=
+fi
+
+if test "$opt_purify" = yes; then
+ PURIFY="purify "
+ AC_DEFINE(DISABLE_MALLOC_WRAPPERS)
+else
+ PURIFY=
+fi
+
+if test "$opt_purecov" = yes; then
+ PURIFY="${PURIFY}purecov"
+fi
+
+if test "$opt_afs" = yes; then
+ AC_DEFINE(AFS)
+fi
+
+if test "$opt_curses" = yes; then
+ prefer_curses=yes
+fi
+
+if test -z "${DEBUGGER_START_FILE}"; then
+ DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
+fi
+
+dnl optional shell features in config.h.in
+opt_minimal_config=no
+
+opt_job_control=yes
+opt_alias=yes
+opt_readline=yes
+opt_history=yes
+opt_bang_history=yes
+opt_dirstack=yes
+opt_restricted=yes
+opt_process_subst=yes
+opt_prompt_decoding=yes
+opt_select=yes
+opt_help=yes
+opt_array_variables=yes
+opt_dparen_arith=yes
+opt_extended_glob=yes
+opt_brace_expansion=yes
+opt_disabled_builtins=no
+opt_command_timing=yes
+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
+opt_separate_help=no
+opt_multibyte=yes
+opt_debugger=yes
+opt_single_longdoc_strings=yes
+opt_casemod_attrs=yes
+opt_casemod_expansions=yes
+opt_extglob_default=no
+opt_dircomplete_expand_default=no
+opt_globascii_default=no
+
+dnl options that affect how bash is compiled and linked
+opt_static_link=no
+opt_profiling=no
+
+dnl argument parsing for optional features
+AC_ARG_ENABLE(minimal-config, AC_HELP_STRING([--enable-minimal-config], [a minimal sh-like configuration]), opt_minimal_config=$enableval)
+
+dnl a minimal configuration turns everything off, but features can be
+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_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
+ opt_net_redirs=no opt_progcomp=no opt_separate_help=no
+ opt_multibyte=yes opt_cond_regexp=no opt_coproc=no
+ opt_casemod_attrs=no opt_casemod_expansions=no opt_extglob_default=no
+ opt_globascii_default=no
+fi
+
+AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval)
+AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [enable arithmetic for command]), opt_arith_for_command=$enableval)
+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 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(direxpand-default, AC_HELP_STRING([--enable-direxpand-default], [enable the direxpand shell option by default]), opt_dircomplete_expand_default=$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)
+AC_ARG_ENABLE(dparen-arithmetic, AC_HELP_STRING([--enable-dparen-arithmetic], [include ((...)) command]), opt_dparen_arith=$enableval)
+AC_ARG_ENABLE(extended-glob, AC_HELP_STRING([--enable-extended-glob], [include ksh-style extended pattern matching]), opt_extended_glob=$enableval)
+AC_ARG_ENABLE(extended-glob-default, AC_HELP_STRING([--enable-extended-glob-default], [force extended pattern matching to be enabled by default]), opt_extglob_default=$enableval)
+AC_ARG_ENABLE(glob-asciiranges-default, AC_HELP_STRING([--enable-glob-asciiranges-default], [force bracket range expressions in pattern matching to use the C locale by default]), opt_globascii_default=$enableval)
+AC_ARG_ENABLE(help-builtin, AC_HELP_STRING([--enable-help-builtin], [include the help builtin]), opt_help=$enableval)
+AC_ARG_ENABLE(history, AC_HELP_STRING([--enable-history], [turn on command history]), opt_history=$enableval)
+AC_ARG_ENABLE(job-control, AC_HELP_STRING([--enable-job-control], [enable job control features]), opt_job_control=$enableval)
+AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval)
+AC_ARG_ENABLE(net-redirections, AC_HELP_STRING([--enable-net-redirections], [enable /dev/tcp/host/port redirection]), opt_net_redirs=$enableval)
+AC_ARG_ENABLE(process-substitution, AC_HELP_STRING([--enable-process-substitution], [enable process substitution]), opt_process_subst=$enableval)
+AC_ARG_ENABLE(progcomp, AC_HELP_STRING([--enable-progcomp], [enable programmable completion and the complete builtin]), opt_progcomp=$enableval)
+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(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)
+AC_ARG_ENABLE(strict-posix-default, AC_HELP_STRING([--enable-strict-posix-default], [configure bash to be posix-conformant by default]), opt_strict_posix=$enableval)
+AC_ARG_ENABLE(usg-echo-default, AC_HELP_STRING([--enable-usg-echo-default], [a synonym for --enable-xpg-echo-default]), opt_xpg_echo=$enableval)
+AC_ARG_ENABLE(xpg-echo-default, AC_HELP_STRING([--enable-xpg-echo-default], [make the echo builtin expand escape sequences by default]), opt_xpg_echo=$enableval)
+
+dnl options that alter how bash is compiled and linked
+AC_ARG_ENABLE(mem-scramble, AC_HELP_STRING([--enable-mem-scramble], [scramble memory on calls to malloc and free]), opt_memscramble=$enableval)
+AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [allow profiling with gprof]), opt_profiling=$enableval)
+AC_ARG_ENABLE(static-link, AC_HELP_STRING([--enable-static-link], [link bash statically, for use as a root shell]), opt_static_link=$enableval)
+
+dnl So-called `precious' variables
+AC_ARG_VAR([CC_FOR_BUILD], [C compiler used when compiling binaries used only at build time])
+AC_ARG_VAR([CFLAGS_FOR_BUILD], [Compliation options (CFLAGS) used when compiling binaries used only at build time])
+AC_ARG_VAR([LDFLAGS_FOR_BUILD], [Linker options (LDFLAGS) used when compiling binaries used only at build time])
+AC_ARG_VAR([CPPFLAGS_FOR_BUILD], [C preprocessor options (CPPFLAGS) used when compiling binaries used only at build time])
+
+dnl opt_job_control is handled later, after BASH_JOB_CONTROL_MISSING runs
+
+dnl opt_readline and opt_history are handled later, because AC_PROG_CC needs
+dnl to be run before we can check the version of an already-installed readline
+dnl library
+
+if test $opt_alias = yes; then
+AC_DEFINE(ALIAS)
+fi
+if test $opt_dirstack = yes; then
+AC_DEFINE(PUSHD_AND_POPD)
+fi
+if test $opt_restricted = yes; then
+AC_DEFINE(RESTRICTED_SHELL)
+fi
+if test $opt_process_subst = yes; then
+AC_DEFINE(PROCESS_SUBSTITUTION)
+fi
+if test $opt_prompt_decoding = yes; then
+AC_DEFINE(PROMPT_STRING_DECODE)
+fi
+if test $opt_select = yes; then
+AC_DEFINE(SELECT_COMMAND)
+fi
+if test $opt_help = yes; then
+AC_DEFINE(HELP_BUILTIN)
+fi
+if test $opt_array_variables = yes; then
+AC_DEFINE(ARRAY_VARS)
+fi
+if test $opt_dparen_arith = yes; then
+AC_DEFINE(DPAREN_ARITHMETIC)
+fi
+if test $opt_brace_expansion = yes; then
+AC_DEFINE(BRACE_EXPANSION)
+fi
+if test $opt_disabled_builtins = yes; then
+AC_DEFINE(DISABLED_BUILTINS)
+fi
+if test $opt_command_timing = yes; then
+AC_DEFINE(COMMAND_TIMING)
+fi
+if test $opt_xpg_echo = yes ; then
+AC_DEFINE(DEFAULT_ECHO_TO_XPG)
+fi
+if test $opt_strict_posix = yes; then
+AC_DEFINE(STRICT_POSIX)
+fi
+if test $opt_extended_glob = yes ; then
+AC_DEFINE(EXTENDED_GLOB)
+fi
+if test $opt_extglob_default = yes; then
+AC_DEFINE(EXTGLOB_DEFAULT, 1)
+else
+AC_DEFINE(EXTGLOB_DEFAULT, 0)
+fi
+if test $opt_cond_command = yes ; then
+AC_DEFINE(COND_COMMAND)
+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
+if test $opt_net_redirs = yes; then
+AC_DEFINE(NETWORK_REDIRECTIONS)
+fi
+if test $opt_progcomp = yes; then
+AC_DEFINE(PROGRAMMABLE_COMPLETION)
+fi
+if test $opt_multibyte = no; then
+AC_DEFINE(NO_MULTIBYTE_SUPPORT)
+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_dircomplete_expand_default = yes; then
+AC_DEFINE(DIRCOMPLETE_EXPAND_DEFAULT)
+fi
+if test $opt_globascii_default = yes; then
+AC_DEFINE(GLOBASCII_DEFAULT, 1)
+else
+AC_DEFINE(GLOBASCII_DEFAULT, 0)
+fi
+
+if test $opt_memscramble = yes; then
+AC_DEFINE(MEMSCRAMBLE)
+fi
+
+if test "$opt_minimal_config" = yes; then
+ TESTSCRIPT=run-minimal
+else
+ TESTSCRIPT=run-all
+fi
+
+HELPDIR= HELPDIRDEFINE= HELPINSTALL= HELPFILES_TARGET=
+if test "$opt_separate_help" != no; then
+ if test "$opt_separate_help" = "yes" ; then
+ HELPDIR='${datadir}/bash'
+ else
+ HELPDIR=$opt_separate_help
+ fi
+ HELPDIRDEFINE='-H ${HELPDIR}'
+ HELPINSTALL='install-help'
+ HELPFILES_TARGET='helpdoc'
+fi
+HELPSTRINGS=
+if test "$opt_single_longdoc_strings" != "yes"; then
+ HELPSTRINGS='-S'
+fi
+
+dnl now substitute in the values generated by arguments
+AC_SUBST(TESTSCRIPT)
+AC_SUBST(PURIFY)
+AC_SUBST(MALLOC_TARGET)
+AC_SUBST(MALLOC_SRC)
+
+AC_SUBST(MALLOC_LIB)
+AC_SUBST(MALLOC_LIBRARY)
+AC_SUBST(MALLOC_LDFLAGS)
+AC_SUBST(MALLOC_DEP)
+
+AC_SUBST(htmldir)
+
+AC_SUBST(HELPDIR)
+AC_SUBST(HELPDIRDEFINE)
+AC_SUBST(HELPINSTALL)
+AC_SUBST(HELPFILES_TARGET)
+AC_SUBST(HELPSTRINGS)
+
+echo ""
+echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}"
+echo ""
+
+dnl compilation checks
+dnl AC_PROG_CC sets $cross_compiling to `yes' if cross-compiling for a
+dnl different environment
+AC_PROG_CC
+
+dnl test for Unix variants
+AC_ISC_POSIX
+AC_MINIX
+
+AC_SYS_LARGEFILE
+
+dnl BEGIN changes for cross-building (currently cygwin, minGW, and
+dnl (obsolete) BeOS)
+
+SIGNAMES_O=
+SIGNAMES_H=lsignames.h
+
+dnl load up the cross-building cache file -- add more cases and cache
+dnl files as necessary
+
+dnl Note that host and target machine are the same, and different than the
+dnl build machine.
+dnl Set SIGNAMES_H based on whether or not we're cross-compiling.
+
+CROSS_COMPILE=
+if test "x$cross_compiling" = "xyes"; then
+ case "${host}" in
+ *-cygwin*)
+ cross_cache=${srcdir}/cross-build/cygwin32.cache
+ ;;
+ *-mingw*)
+ cross_cache=${srcdir}/cross-build/cygwin32.cache
+ ;;
+ i[[3456]]86-*-beos*)
+ cross_cache=${srcdir}/cross-build/x86-beos.cache
+ ;;
+ *) echo "configure: cross-compiling for $host is not supported" >&2
+ ;;
+ esac
+ if test -n "${cross_cache}" && test -r "${cross_cache}"; then
+ echo "loading cross-build cache file ${cross_cache}"
+ . ${cross_cache}
+ fi
+ unset cross_cache
+ SIGNAMES_O='signames.o'
+ CROSS_COMPILE='-DCROSS_COMPILING'
+ AC_SUBST(CROSS_COMPILE)
+fi
+AC_SUBST(SIGNAMES_H)
+AC_SUBST(SIGNAMES_O)
+
+dnl END changes for cross-building
+
+dnl We want these before the checks, so the checks can modify their values.
+if test -z "$CFLAGS"; then
+ AUTO_CFLAGS="-g ${GCC+-O2}"
+ AUTO_LDFLAGS="-g ${GCC+-O2}"
+else
+ AUTO_CFLAGS= AUTO_LDFLAGS=
+fi
+
+dnl default values
+CFLAGS=${CFLAGS-"$AUTO_CFLAGS"}
+# LDFLAGS=${LDFLAGS="$AUTO_LDFLAGS"} # XXX
+
+dnl handle options that alter how bash is compiled and linked
+dnl these must come after the test for cc/gcc
+if test "$opt_profiling" = "yes"; then
+ PROFILE_FLAGS=-pg
+ case "$host_os" in
+ solaris2*) ;;
+ *) opt_static_link=yes ;;
+ esac
+ DEBUG= MALLOC_DEBUG=
+fi
+
+prefer_shared=yes
+prefer_static=no
+
+if test "$opt_static_link" = yes; then
+ prefer_static=yes
+ prefer_shared=no
+ # if we're using gcc, add `-static' to LDFLAGS, except on Solaris >= 2
+ if test -n "$GCC" || test "$ac_cv_prog_gcc" = "yes"; then
+ STATIC_LD="-static"
+ case "$host_os" in
+ solaris2*) ;;
+ *) LDFLAGS="$LDFLAGS -static" ;; # XXX experimental
+ esac
+ fi
+fi
+
+# set the appropriate make variables for building the "build tools"
+# modify defaults based on whether or not we are cross compiling, since the
+# options for the target host may not be appropriate for the build host
+if test "X$cross_compiling" = "Xno"; then
+ CC_FOR_BUILD=${CC_FOR_BUILD-'$(CC)'}
+ CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-"$CPPFLAGS"} # XXX - should it be '$(CPPFLAGS)'
+ LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-'$(LDFLAGS)'}
+ # CFLAGS set above to default value if not passed in environment
+ CFLAGS_FOR_BUILD=${CFLAGS-'$(CFLAGS)'}
+ LIBS_FOR_BUILD=${LIBS_FOR_BUILD-'$(LIBS)'}
+else
+ CC_FOR_BUILD=${CC_FOR_BUILD-"gcc"}
+ CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-""}
+ LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-""}
+ CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD="-g"}
+ LIBS_FOR_BUILD=${LIBS_FOR_BUILD-""}
+fi
+
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+AC_SUBST(STATIC_LD)
+
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(CPPFLAGS_FOR_BUILD)
+AC_SUBST(LDFLAGS_FOR_BUILD)
+AC_SUBST(LIBS_FOR_BUILD)
+
+AC_PROG_GCC_TRADITIONAL
+
+dnl BEGIN READLINE and HISTORY LIBRARY SECTION
+dnl prepare to allow bash to be linked against an already-installed readline
+
+dnl first test that the readline version is new enough to link bash against
+if test "$opt_readline" = yes && test "$opt_with_installed_readline" != "no"
+then
+ # If the user specified --with-installed-readline=PREFIX and PREFIX
+ # is not `yes', set ac_cv_rl_prefix to PREFIX
+ test $opt_with_installed_readline != "yes" && ac_cv_rl_prefix=$opt_with_installed_readline
+
+ RL_LIB_READLINE_VERSION
+
+ case "$ac_cv_rl_version" in
+ 5*|6*|7*|8*|9*) ;;
+ *) opt_with_installed_readline=no
+ AC_MSG_WARN([installed readline library is too old to be linked with bash])
+ AC_MSG_WARN([using private bash version])
+ ;;
+ esac
+fi
+
+TILDE_LIB=-ltilde
+if test $opt_readline = yes; then
+ AC_DEFINE(READLINE)
+ if test "$opt_with_installed_readline" != "no" ; then
+ case "$opt_with_installed_readline" in
+ yes) RL_INCLUDE= ;;
+ *) case "$RL_INCLUDEDIR" in
+ /usr/include) ;;
+ *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
+ esac
+ ;;
+ esac
+ READLINE_DEP=
+ READLINE_LIB=-lreadline
+ # section for OS versions that don't allow unresolved symbols
+ # to be compiled into dynamic libraries.
+ case "$host_os" in
+ cygwin*) TILDE_LIB= ;;
+ esac
+ else
+ RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ READLINE_DEP='$(READLINE_LIBRARY)'
+ # section for OS versions that ship an older/broken version of
+ # readline as a standard dynamic library and don't allow a
+ # static version specified as -llibname to override the
+ # dynamic version
+ case "${host_os}" in
+ darwin[[89]]*|darwin10*) READLINE_LIB='${READLINE_LIBRARY}' ;;
+ *) READLINE_LIB=-lreadline ;;
+ esac
+ fi
+else
+ RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ READLINE_LIB= READLINE_DEP=
+fi
+if test $opt_history = yes || test $opt_bang_history = yes; then
+ if test $opt_history = yes; then
+ AC_DEFINE(HISTORY)
+ fi
+ if test $opt_bang_history = yes; then
+ AC_DEFINE(BANG_HISTORY)
+ fi
+ if test "$opt_with_installed_readline" != "no"; then
+ HIST_LIBDIR=$RL_LIBDIR
+ HISTORY_DEP=
+ HISTORY_LIB=-lhistory
+ case "$opt_with_installed_readline" in
+ yes) RL_INCLUDE= ;;
+ *) case "$RL_INCLUDEDIR" in
+ /usr/include) ;;
+ *) RL_INCLUDE='-I${RL_INCLUDEDIR}' ;;
+ esac
+ ;;
+ esac
+ else
+ HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ HISTORY_DEP='$(HISTORY_LIBRARY)'
+ # section for OS versions that ship an older version of
+ # readline as a standard dynamic library and don't allow a
+ # static version specified as -llibname to override the
+ # dynamic version
+ case "${host_os}" in
+ darwin[[89]]*|darwin10*) HISTORY_LIB='${HISTORY_LIBRARY}' ;;
+ *) HISTORY_LIB=-lhistory ;;
+ esac
+ fi
+else
+ HIST_LIBDIR='$(dot)/$(LIBSUBDIR)/readline'
+ HISTORY_LIB= HISTORY_DEP=
+fi
+AC_SUBST(READLINE_LIB)
+AC_SUBST(READLINE_DEP)
+AC_SUBST(RL_LIBDIR)
+AC_SUBST(RL_INCLUDEDIR)
+AC_SUBST(RL_INCLUDE)
+AC_SUBST(HISTORY_LIB)
+AC_SUBST(HISTORY_DEP)
+AC_SUBST(HIST_LIBDIR)
+AC_SUBST(TILDE_LIB)
+
+dnl END READLINE and HISTORY LIBRARY SECTION
+
+dnl programs needed by the build and install process
+AC_PROG_INSTALL
+AC_CHECK_TOOL(AR, ar)
+dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
+dnl This allows people to set it when running configure or make
+test -n "$ARFLAGS" || ARFLAGS="cr"
+AC_PROG_RANLIB
+AC_PROG_YACC
+AC_PROG_MAKE_SET
+
+case "$ac_cv_prog_YACC" in
+*bison*) ;;
+*) AC_MSG_WARN([bison not available; needed to process parse.y]) ;;
+esac
+
+case "$host_os" in
+opennt*|interix*) MAKE_SHELL="$INTERIX_ROOT/bin/sh" ;;
+*) MAKE_SHELL=/bin/sh ;;
+esac
+AC_SUBST(MAKE_SHELL)
+
+dnl this is similar to the expanded AC_PROG_RANLIB
+if test x$SIZE = x; then
+ if test x$ac_tool_prefix = x; then
+ SIZE=size
+ else
+ SIZE=${ac_tool_prefix}size
+ save_IFS=$IFS ; IFS=:
+ size_found=0
+ for dir in $PATH; do
+ if test -x $dir/$SIZE ; then
+ size_found=1
+ break
+ fi
+ done
+ if test $size_found -eq 0; then
+ SIZE=:
+ fi
+ IFS=$save_IFS
+ fi
+fi
+AC_SUBST(SIZE)
+
+m4_include([m4/stat-time.m4])
+m4_include([m4/timespec.m4])
+
+dnl Turn on any extensions available in the GNU C library.
+AC_DEFINE(_GNU_SOURCE, 1)
+
+dnl C compiler characteristics
+AC_C_CONST
+AC_C_INLINE
+AC_C_BIGENDIAN
+AC_C_STRINGIZE
+AC_C_LONG_DOUBLE
+AC_C_PROTOTYPES
+AC_C_CHAR_UNSIGNED
+AC_C_VOLATILE
+AC_C_RESTRICT
+
+dnl initialize GNU gettext
+AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl])
+
+dnl header files
+AC_HEADER_DIRENT
+AC_HEADER_TIME
+
+BASH_HEADER_INTTYPES
+
+AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
+ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
+ stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
+ regex.h syslog.h ulimit.h)
+AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
+ sys/resource.h sys/param.h sys/socket.h sys/stat.h \
+ sys/time.h sys/times.h sys/types.h sys/wait.h)
+AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
+
+dnl sys/ptem.h requires definitions from sys/stream.h on systems where it
+dnl exists
+AC_CHECK_HEADER(sys/ptem.h, , ,[[
+#if HAVE_SYS_STREAM_H
+# include <sys/stream.h>
+#endif
+]])
+
+dnl special checks for libc functions
+AC_FUNC_ALLOCA
+AC_FUNC_GETPGRP
+AC_FUNC_SETVBUF_REVERSED
+AC_FUNC_VPRINTF
+AC_FUNC_STRCOLL
+
+dnl if we're not using the bash malloc but require the C alloca, set things
+dnl up to build a libmalloc.a containing only alloca.o
+
+if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; then
+ MALLOC_TARGET=alloca
+ MALLOC_SRC=alloca.c
+
+ MALLOC_LIB='-lmalloc'
+ MALLOC_LIBRARY='$(ALLOC_LIBDIR)/libmalloc.a'
+ MALLOC_LDFLAGS='-L$(ALLOC_LIBDIR)'
+ MALLOC_DEP='$(MALLOC_LIBRARY)'
+fi
+
+dnl if vprintf is not in libc, see if it's defined in stdio.h
+if test "$ac_cv_func_vprintf" = no; then
+ AC_MSG_CHECKING(for declaration of vprintf in stdio.h)
+ AC_EGREP_HEADER([[int[ ]*vprintf[^a-zA-Z0-9]]],stdio.h,ac_cv_func_vprintf=yes)
+ AC_MSG_RESULT($ac_cv_func_vprintf)
+ if test $ac_cv_func_vprintf = yes; then
+ AC_DEFINE(HAVE_VPRINTF)
+ fi
+fi
+
+if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then
+ AC_LIBOBJ(vprint)
+fi
+
+dnl signal stuff
+AC_TYPE_SIGNAL
+
+dnl checks for certain version-specific system calls and libc functions
+AC_CHECK_FUNC(__setostype, AC_DEFINE(HAVE_SETOSTYPE))
+AC_CHECK_FUNC(wait3, AC_DEFINE(HAVE_WAIT3))
+
+dnl checks for missing libc functions
+AC_CHECK_FUNC(mkfifo,AC_DEFINE(HAVE_MKFIFO),AC_DEFINE(MKFIFO_MISSING))
+
+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 \
+ setitimer tcgetpgrp uname ulimit waitpid)
+AC_REPLACE_FUNCS(rename)
+
+dnl checks for c library functions
+AC_CHECK_FUNCS(bcopy bzero confstr faccessat fnmatch \
+ getaddrinfo gethostbyname getservbyname getservent inet_aton \
+ imaxdiv memmove pathconf putenv raise regcomp regexec \
+ setenv setlinebuf setlocale setvbuf siginterrupt strchr \
+ sysconf syslog tcgetattr times ttyname tzset unsetenv)
+
+AC_CHECK_FUNCS(vasprintf asprintf)
+AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit)
+AC_CHECK_FUNCS(getpwent getpwnam getpwuid)
+AC_REPLACE_FUNCS(getcwd memset)
+AC_REPLACE_FUNCS(strcasecmp strcasestr strerror strftime strnlen strpbrk strstr)
+AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax)
+AC_REPLACE_FUNCS(dprintf)
+AC_REPLACE_FUNCS(strchrnul)
+AC_REPLACE_FUNCS(strdup)
+
+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
+
+AC_CHECK_DECLS([confstr])
+AC_CHECK_DECLS([printf])
+AC_CHECK_DECLS([sbrk])
+AC_CHECK_DECLS([setregid])
+AC_CHECK_DECLS([strcpy])
+AC_CHECK_DECLS([strsignal])
+
+dnl Extra test to detect the horribly broken HP/UX 11.00 strtold(3)
+AC_CHECK_DECLS([strtold], [
+ AC_MSG_CHECKING([for broken strtold])
+ AC_CACHE_VAL(bash_cv_strtold_broken,
+ [AC_TRY_COMPILE(
+ [#include <stdlib.h>],
+ [int main() { long double r; char *foo, bar; r = strtold(foo, &bar);}],
+ bash_cv_strtold_broken=no, bash_cv_strtold_broken=yes,
+ [AC_MSG_WARN(cannot check for broken strtold if cross-compiling, defaulting to no)])
+ ]
+ )
+ AC_MSG_RESULT($bash_cv_strtold_broken)
+ if test "$bash_cv_strtold_broken" = "yes" ; then
+ AC_DEFINE(STRTOLD_BROKEN)
+ fi
+])
+
+BASH_CHECK_DECL(strtoimax)
+BASH_CHECK_DECL(strtol)
+BASH_CHECK_DECL(strtoll)
+BASH_CHECK_DECL(strtoul)
+BASH_CHECK_DECL(strtoull)
+BASH_CHECK_DECL(strtoumax)
+
+AC_FUNC_MKTIME
+
+dnl
+dnl Checks for lib/intl and related code (uses some of the output from
+dnl AM_GNU_GETTEXT)
+dnl
+
+AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h])
+
+dnl AC_FUNC_MALLOC
+AC_FUNC_MMAP
+AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \
+ munmap stpcpy strcspn])
+
+INTL_DEP= INTL_INC= LIBINTL_H=
+if test "x$USE_INCLUDED_LIBINTL" = "xyes"; then
+ INTL_DEP='${INTL_LIBDIR}/libintl.a'
+ INTL_INC='-I${INTL_LIBSRC} -I${INTL_BUILDDIR}'
+ LIBINTL_H='${INTL_BUILDDIR}/libintl.h'
+fi
+AC_SUBST(INTL_DEP)
+AC_SUBST(INTL_INC)
+AC_SUBST(LIBINTL_H)
+
+dnl
+dnl End of checks needed by files in lib/intl
+dnl
+
+BASH_CHECK_MULTIBYTE
+
+dnl checks for the dynamic loading library functions in libc and libdl
+if test "$opt_static_link" != yes; then
+AC_CHECK_LIB(dl, dlopen)
+AC_CHECK_FUNCS(dlopen dlclose dlsym)
+fi
+
+dnl this defines HAVE_DECL_SYS_SIGLIST
+AC_DECL_SYS_SIGLIST
+
+dnl network functions -- check for inet_aton again
+if test "$ac_cv_func_inet_aton" != 'yes'; then
+BASH_FUNC_INET_ATON
+fi
+
+dnl libraries
+dnl this is reportedly no longer necessary for irix[56].?
+case "$host_os" in
+irix4*) AC_CHECK_LIB(sun, getpwent) ;;
+esac
+
+dnl check for getpeername in the socket library only if it's not in libc
+if test "$ac_cv_func_getpeername" = no; then
+ BASH_CHECK_LIB_SOCKET
+fi
+dnl check for gethostbyname in socket libraries if it's not in libc
+if test "$ac_cv_func_gethostbyname" = no; then
+ BASH_FUNC_GETHOSTBYNAME
+fi
+
+dnl system types
+AC_TYPE_GETGROUPS
+AC_TYPE_OFF_T
+AC_TYPE_MODE_T
+AC_TYPE_UID_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_CHECK_TYPE(ssize_t, int)
+AC_CHECK_TYPE(time_t, long)
+
+BASH_TYPE_LONG_LONG
+BASH_TYPE_UNSIGNED_LONG_LONG
+
+AC_TYPE_SIGNAL
+BASH_TYPE_SIG_ATOMIC_T
+
+AC_CHECK_SIZEOF(char, 1)
+AC_CHECK_SIZEOF(short, 2)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(char *, 4)
+AC_CHECK_SIZEOF(double, 8)
+AC_CHECK_SIZEOF([long long], 8)
+
+AC_CHECK_TYPE(u_int, [unsigned int])
+AC_CHECK_TYPE(u_long, [unsigned long])
+
+BASH_TYPE_BITS16_T
+BASH_TYPE_U_BITS16_T
+BASH_TYPE_BITS32_T
+BASH_TYPE_U_BITS32_T
+BASH_TYPE_BITS64_T
+
+BASH_TYPE_PTRDIFF_T
+
+dnl structures
+AC_HEADER_STAT
+
+dnl system services
+AC_SYS_INTERPRETER
+if test $ac_cv_sys_interpreter = yes; then
+AC_DEFINE(HAVE_HASH_BANG_EXEC)
+fi
+
+dnl Miscellaneous Bash tests
+if test "$ac_cv_func_lstat" = "no"; then
+BASH_FUNC_LSTAT
+fi
+
+dnl behavior of system calls and library functions
+BASH_FUNC_CTYPE_NONASCII
+BASH_FUNC_DUP2_CLOEXEC_CHECK
+BASH_SYS_PGRP_SYNC
+BASH_SYS_SIGNAL_VINTAGE
+
+dnl checking for the presence of certain library symbols
+BASH_SYS_ERRLIST
+BASH_SYS_SIGLIST
+BASH_UNDER_SYS_SIGLIST
+
+dnl various system types
+BASH_TYPE_SIGHANDLER
+BASH_CHECK_TYPE(clock_t, [#include <sys/times.h>], long)
+BASH_CHECK_TYPE(sigset_t, [#include <signal.h>], int)
+BASH_CHECK_TYPE(sig_atomic_t, [#include <signal.h>], int)
+BASH_CHECK_TYPE(quad_t, , long, HAVE_QUAD_T)
+BASH_CHECK_TYPE(intmax_t, , $bash_cv_type_long_long)
+BASH_CHECK_TYPE(uintmax_t, , $bash_cv_type_unsigned_long_long)
+if test "$ac_cv_header_sys_socket_h" = "yes"; then
+BASH_CHECK_TYPE(socklen_t, [#include <sys/socket.h>], [unsigned int], HAVE_SOCKLEN_T)
+fi
+BASH_TYPE_RLIMIT
+
+AC_CHECK_SIZEOF(intmax_t, 8)
+
+dnl presence and contents of structures used by system calls
+BASH_STRUCT_TERMIOS_LDISC
+BASH_STRUCT_TERMIO_LDISC
+BASH_STRUCT_DIRENT_D_INO
+BASH_STRUCT_DIRENT_D_FILENO
+BASH_STRUCT_DIRENT_D_NAMLEN
+BASH_STRUCT_WINSIZE
+BASH_STRUCT_TIMEVAL
+AC_CHECK_MEMBERS([struct stat.st_blocks])
+AC_STRUCT_TM
+AC_STRUCT_TIMEZONE
+BASH_STRUCT_TIMEZONE
+
+BASH_STRUCT_WEXITSTATUS_OFFSET
+
+BASH_CHECK_TYPE_STRUCT_TIMESPEC
+BASH_STAT_TIME
+
+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
+fi
+BASH_FUNC_POSIX_SETJMP
+BASH_FUNC_STRCOLL
+BASH_FUNC_SNPRINTF
+BASH_FUNC_VSNPRINTF
+
+dnl If putenv or unsetenv is not present, set the right define so the
+dnl prototype and declaration in lib/sh/getenv.c will be standard-conformant
+
+if test "$ac_cv_func_putenv" = "yes"; then
+BASH_FUNC_STD_PUTENV
+else
+AC_DEFINE(HAVE_STD_PUTENV)
+fi
+if test "$ac_cv_func_unsetenv" = "yes"; then
+BASH_FUNC_STD_UNSETENV
+else
+AC_DEFINE(HAVE_STD_UNSETENV)
+fi
+
+BASH_FUNC_PRINTF_A_FORMAT
+
+dnl presence and behavior of OS functions
+BASH_SYS_REINSTALL_SIGHANDLERS
+BASH_SYS_JOB_CONTROL_MISSING
+BASH_SYS_NAMED_PIPES
+
+dnl presence of certain CPP defines
+AC_HEADER_TIOCGWINSZ
+BASH_HAVE_TIOCSTAT
+BASH_HAVE_FIONREAD
+
+BASH_CHECK_WCONTINUED
+
+dnl miscellaneous
+BASH_CHECK_SPEED_T
+BASH_CHECK_GETPW_FUNCS
+BASH_CHECK_RTSIGS
+BASH_CHECK_SYS_SIGLIST
+
+dnl special checks
+case "$host_os" in
+hpux*) BASH_CHECK_KERNEL_RLIMIT ;;
+esac
+
+if test "$opt_readline" = yes; then
+dnl yuck
+case "$host_os" in
+aix*) prefer_curses=yes ;;
+esac
+BASH_CHECK_LIB_TERMCAP
+fi
+AC_SUBST(TERMCAP_LIB)
+AC_SUBST(TERMCAP_DEP)
+
+BASH_CHECK_DEV_FD
+BASH_CHECK_DEV_STDIN
+BASH_SYS_DEFAULT_MAIL_DIR
+
+if test "$bash_cv_job_control_missing" = missing; then
+ opt_job_control=no
+fi
+
+if test "$opt_job_control" = yes; then
+AC_DEFINE(JOB_CONTROL)
+JOBS_O=jobs.o
+else
+JOBS_O=nojobs.o
+fi
+
+AC_SUBST(JOBS_O)
+
+dnl Defines that we want to propagate to the Makefiles in subdirectories,
+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 or ld flags
+dnl
+dnl this should really go away someday
+
+case "${host_os}" in
+sysv4.2*) AC_DEFINE(SVR4_2)
+ AC_DEFINE(SVR4) ;;
+sysv4*) AC_DEFINE(SVR4) ;;
+sysv5*) AC_DEFINE(SVR5) ;;
+hpux9*) LOCAL_CFLAGS="-DHPUX9 -DHPUX" ;;
+hpux*) LOCAL_CFLAGS=-DHPUX ;;
+dgux*) LOCAL_CFLAGS=-D_DGUX_SOURCE; LOCAL_LIBS=-ldgc ;;
+isc*) LOCAL_CFLAGS=-Disc386 ;;
+rhapsody*) LOCAL_CFLAGS=-DRHAPSODY ;;
+darwin*) LOCAL_CFLAGS=-DMACOSX ;;
+sco3.2v5*) LOCAL_CFLAGS="-b elf -DWAITPID_BROKEN -DPATH_MAX=1024" ;;
+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 ;;
+solaris2.9*) LOCAL_CFLAGS=-DSOLARIS ;;
+solaris2.10*) LOCAL_CFLAGS=-DSOLARIS ;;
+solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
+lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+ case "`uname -r`" in
+ 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;;
+ esac ;;
+*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
+*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
+powerux*) LOCAL_LIBS="-lgen" ;;
+cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+opennt*|interix*) LOCAL_CFLAGS="-DNO_MAIN_ENV_ARG -DBROKEN_DIRENT_D_INO -D_POSIX_SOURCE -D_ALL_SOURCE -DRECYCLES_PIDS" ;;
+*openstep*) LOCAL_CFLAGS="-D__APPLE_CC__" ;;
+esac
+
+dnl Stanza for OS/compiler pair-specific flags
+case "${host_os}-${CC}" in
+aix4.2*-*gcc*) LOCAL_LDFLAGS="-Xlinker -bexpall -Xlinker -brtl" ;;
+aix4.2*) LOCAL_LDFLAGS="-bexpall -brtl" ;;
+bsdi4*-*gcc*) LOCAL_LDFLAGS="-rdynamic" ;; # allow dynamic loading, like Linux
+esac
+
+dnl FreeBSD-3.x can have either a.out or ELF
+case "${host_os}" in
+freebsd[[3-9]]*)
+ if test -x /usr/bin/objformat && test "`/usr/bin/objformat`" = "elf" ; then
+ LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
+ fi ;;
+freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
+dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading
+esac
+
+case "$host_cpu" in
+*cray*) LOCAL_CFLAGS="-DCRAY" ;; # shell var so config.h can use it
+esac
+
+case "$host_cpu-$host_os" in
+ibmrt-*bsd4*) LOCAL_CFLAGS="-ma -U__STDC__" ;;
+esac
+
+case "$host_cpu-$host_vendor-$host_os" in
+m88k-motorola-sysv3) LOCAL_CFLAGS=-DWAITPID_BROKEN ;;
+mips-pyramid-sysv4) LOCAL_CFLAGS=-Xa ;;
+esac
+
+#
+# Shared object configuration section. These values are generated by
+# ${srcdir}/support/shobj-conf
+#
+if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf
+then
+ AC_MSG_CHECKING(shared object configuration for loadable builtins)
+ eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"`
+ AC_SUBST(SHOBJ_CC)
+ AC_SUBST(SHOBJ_CFLAGS)
+ AC_SUBST(SHOBJ_LD)
+ AC_SUBST(SHOBJ_LDFLAGS)
+ AC_SUBST(SHOBJ_XLDFLAGS)
+ AC_SUBST(SHOBJ_LIBS)
+ AC_SUBST(SHOBJ_STATUS)
+ AC_MSG_RESULT($SHOBJ_STATUS)
+fi
+
+# try to create a directory tree if the source is elsewhere
+# this should be packaged into a script accessible via ${srcdir}/support
+case "$srcdir" in
+.) ;;
+*) for d in doc tests support lib examples; do # dirs
+ test -d $d || mkdir $d
+ done
+ for ld in readline glob tilde malloc sh termcap; do # libdirs
+ test -d lib/$ld || mkdir lib/$ld
+ done
+ test -d examples/loadables || mkdir examples/loadables # loadable builtins
+ test -d examples/loadables/perl || mkdir examples/loadables/perl
+ ;;
+esac
+
+BUILD_DIR=`pwd`
+case "$BUILD_DIR" in
+*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;;
+*) ;;
+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)
+
+AC_SUBST(BASHVERS)
+AC_SUBST(RELSTATUS)
+AC_SUBST(DEBUG)
+AC_SUBST(MALLOC_DEBUG)
+
+AC_SUBST(host_cpu)
+AC_SUBST(host_vendor)
+AC_SUBST(host_os)
+
+AC_SUBST(LOCAL_LIBS)
+AC_SUBST(LOCAL_CFLAGS)
+AC_SUBST(LOCAL_LDFLAGS)
+AC_SUBST(LOCAL_DEFS)
+
+#AC_SUBST(ALLOCA_SOURCE)
+#AC_SUBST(ALLOCA_OBJECT)
+
+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],
+[
+# Makefile uses this timestamp file to record whether config.h is up to date.
+echo timestamp > stamp-h
+])
diff --git a/doc/FAQ b/doc/FAQ
index 33ca3d32..1df48d5c 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,4 +1,4 @@
-This is the Bash FAQ, version 4.12, for Bash version 4.2.
+This is the Bash FAQ, version 4.13, for Bash version 4.3.
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -36,8 +36,8 @@ A10) What is the bash `posix mode'?
Section B: The latest version
-B1) What's new in version 4.2?
-B2) Are there any user-visible incompatibilities between bash-4.2 and
+B1) What's new in version 4.3?
+B2) Are there any user-visible incompatibilities between bash-4.3 and
previous bash versions?
Section C: Differences from other Unix shells
@@ -144,26 +144,26 @@ of Case Western Reserve University.
A2) What's the latest version?
-The latest version is 4.2, first made available on 14 February, 2011.
+The latest version is 4.3, first made available on xx December, 2013.
A3) Where can I get it?
Bash is the GNU project's shell, and so is available from the
master GNU archive site, ftp.gnu.org, and its mirrors. The
latest version is also available for FTP from ftp.cwru.edu.
-The following URLs tell how to get version 4.2:
+The following URLs tell how to get version 4.3:
-ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-4.2.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-4.3.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-4.3.tar.gz
Formatted versions of the documentation are available with the URLs:
-ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-4.2.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-doc-4.2.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-4.3.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-doc-4.3.tar.gz
Any patches for the current version are available with the URL:
-ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/
+ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/
A4) On what machines will bash run?
@@ -219,7 +219,8 @@ Mark began to work with bash-2.05, but I don't know the current status.
Bash-3.0 compiles and runs with no modifications under Microsoft's Services
for Unix (SFU), once known as Interix. I do not anticipate any problems
-with building bash-4.2, but will gladly accept any patches that are needed.
+with building bash-4.2 and later, but will gladly accept any patches that
+are needed.
A6) How can I build bash with gcc?
@@ -388,14 +389,130 @@ They are also listed in a section in the Bash Reference Manual
Section B: The latest version
-B1) What's new in version 4.2?
+B1) What's new in version 4.3?
-Bash-4.2 is the second revision to the fourth major release of bash.
+Bash-4.3 is the third revision to the fourth major release of bash.
-Bash-4.2 contains the following new features (see the manual page for
-complete descriptions and the CHANGES and NEWS files in the bash-4.2
+Bash-4.3 contains the following new features (see the manual page for
+complete descriptions and the CHANGES and NEWS files in the bash-4.3
distribution):
+o The `helptopic' completion action now maps to all the help topics, not just
+ the shell builtins.
+
+o The `help' builtin no longer does prefix substring matching first, so
+ `help read' does not match `readonly', but will do it if exact string
+ matching fails.
+
+o The shell can be compiled to not display a message about processes that
+ terminate due to SIGTERM.
+
+o Non-interactive shells now react to the setting of checkwinsize and set
+ LINES and COLUMNS after a foreground job exits.
+
+o There is a new shell option, `globasciiranges', which, when set to on,
+ forces globbing range comparisons to use character ordering as if they
+ were run in the C locale.
+
+o There is a new shell option, `direxpand', which makes filename completion
+ expand variables in directory names in the way bash-4.1 did.
+
+o In Posix mode, the `command' builtin does not change whether or not a
+ builtin it shadows is treated as an assignment builtin.
+
+o The `return' and `exit' builtins accept negative exit status arguments.
+
+o The word completion code checks whether or not a filename containing a
+ shell variable expands to a directory name and appends `/' to the word
+ as appropriate. The same code expands shell variables in command names
+ when performing command completion.
+
+o In Posix mode, it is now an error to attempt to define a shell function
+ with the same name as a Posix special builtin.
+
+o When compiled for strict Posix conformance, history expansion is disabled
+ by default.
+
+o The history expansion character (!) does not cause history expansion when
+ followed by the closing quote in a double-quoted string.
+
+o `complete' and its siblings compgen/compopt now takes a new `-o noquote'
+ option to inhibit quoting of the completions.
+
+o Setting HISTSIZE to a value less than zero causes the history list to be
+ unlimited (setting it 0 zero disables the history list).
+
+o Setting HISTFILESIZE to a value less than zero causes the history file size
+ to be unlimited (setting it to 0 causes the history file to be truncated
+ to zero size).
+
+o The `read' builtin now skips NUL bytes in the input.
+
+o There is a new `bind -X' option to print all key sequences bound to Unix
+ commands.
+
+o When in Posix mode, `read' is interruptible by a trapped signal. After
+ running the trap handler, read returns 128+signal and throws away any
+ partially-read input.
+
+o The command completion code skips whitespace and assignment statements
+ before looking for the command name word to be completed.
+
+o The build process has a new mechanism for constructing separate help files
+ that better reflects the current set of compilation options.
+
+o The -nt and -ot options to test now work with files with nanosecond
+ timestamp resolution.
+
+o The shell saves the command history in any shell for which history is
+ enabled and HISTFILE is set, not just interactive shells.
+
+o The shell has `nameref' variables and new -n(/+n) options to declare and
+ unset to use them, and a `test -R' option to test for them.
+
+o The shell now allows assigning, referencing, and unsetting elements of
+ indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which
+ count back from the last element of the array.
+
+o The {x}<word redirection feature now allows words like {array[ind]} and
+ can use variables with special meanings to the shell (e.g., BASH_XTRACEFD).
+
+o There is a new CHILD_MAX special shell variable; its value controls the
+ number of exited child statues the shell remembers.
+
+o There is a new configuration option (--enable-direxpand-default) that
+ causes the `direxpand' shell option to be enabled by default.
+
+o Bash does not do anything special to ensure that the file descriptor
+ assigned to X in {x}<foo remains open after the block containing it
+ completes.
+
+o The `wait' builtin has a new `-n' option to wait for the next child to
+ change status.
+
+o The `printf' %(...)T format specifier now uses the current time if no
+ argument is supplied.
+
+o There is a new variable, BASH_COMPAT, that controls the current shell
+ compatibility level.
+
+o The `popd' builtin now treats additional arguments as errors.
+
+o The brace expansion code now treats a failed sequence expansion as a
+ simple string and will continue to expand brace terms in the remainder
+ of the word.
+
+o Shells started to run process substitutions now run any trap set on EXIT.
+
+o The fc builtin now interprets -0 as the current command line.
+
+o Completing directory names containing shell variables now adds a trailing
+ slash if the expanded result is a directory.
+
+A short feature history dating back to Bash-2.0:
+
+Bash-4.2 contained the following new features:
+
o `exec -a foo' now sets $0 to `foo' in an executable shell script without a
leading #!.
@@ -973,10 +1090,10 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
lots of code now smaller and faster
test suite greatly expanded
-B2) Are there any user-visible incompatibilities between bash-4.2 and
+B2) Are there any user-visible incompatibilities between bash-4.3 and
previous bash versions?
-There are a few incompatibilities between version 4.2 and previous
+There are a few incompatibilities between version 4.3 and previous
versions. They are detailed in the file COMPAT in the bash distribution.
That file is not meant to be all-encompassing; send mail to
bash-maintainers@gnu.org (or bug-bash@gnu.org if you would like
@@ -1026,14 +1143,14 @@ Things bash has that sh does not:
auto-export of variables in initial environment
command search finds functions before builtins
bash return builtin will exit a file sourced with `.'
- builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
+ builtins: cd -/-L/-P/-@, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
export -n/-f/-p/name=value, pwd -L/-P,
read -e/-p/-a/-t/-n/-d/-s/-u/-i/-N,
readonly -a/-f/name=value, trap -l, set +o,
set -b/-m/-o option/-h/-p/-B/-C/-H/-P,
- unset -f/-v, ulimit -i/-m/-p/-q/-u/-x,
+ unset -f/-n/-v, ulimit -i/-m/-p/-q/-u/-x,
type -a/-p/-t/-f/-P, suspend -f, kill -n,
- test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S
+ test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S/-R
bash reads ~/.bashrc for interactive shells, $ENV for non-interactive
bash restricted shell mode is more extensive
bash allows functions and variables with the same name
@@ -1188,18 +1305,20 @@ Implementation differences:
C3) Which new features in ksh-93 are not in bash, and which are?
-This list is current through ksh93t+ (05/05/2009)
+This list is current through ksh93v (10/08/2013)
-New things in ksh-93 not in bash-4.2:
- floating point arithmetic and variables
- math library functions
+New things in ksh-93 not in bash-4.3:
+ floating point arithmetic, variables, and constants
+ math library functions, including user-defined math functions
${!name[sub]} name of subscript for associative array
`.' is allowed in variable names to create a hierarchical namespace
more extensive compound assignment syntax
discipline functions
KEYBD trap
variables: .sh.edchar, .sh.edmode, .sh.edcol, .sh.edtext, .sh.version,
- .sh.name, .sh.subscript, .sh.value, .sh.match, HISTEDIT
+ .sh.name, .sh.subscript, .sh.value, .sh.match, HISTEDIT,
+ .sh.sig, .sh.stats, .sh.siginfo, .sh.pwdfd, .sh.op_astbin,
+ .sh.pool
backreferences in pattern matching (\N)
`&' operator in pattern lists for matching (match all instead of any)
exit statuses between 0 and 255
@@ -1208,17 +1327,20 @@ New things in ksh-93 not in bash-4.2:
no scoping for local variables in `POSIX' functions
$'' \C[.collating-element.] escape sequence
-C/-I invocation options
- print -f (bash uses printf)
+ print -f (bash uses printf) and rest of print builtin options
+ printf %(type)q, %#q
`fc' has been renamed to `hist'
`.' can execute shell functions
getopts -a
printf %B, %H, %P, %R, %Z modifiers, output base for %d, `=' flag
- read -n/-N differ/-v
+ read -n/-N differ/-v/-S
set -o showme/-o multiline (bash default)
+ set -K
+ kill -Q/-q/-L
+ trap -a
`sleep' and `getconf' builtins (bash has loadable versions)
- typeset -n and `nameref' variables
[[ -R name ]] (checks whether or not name is a nameref)
- typeset -C/-S/-T/-X/-h/-s
+ typeset -C/-S/-T/-X/-h/-s/-c/-M
experimental `type' definitions (a la typedef) using typeset
array expansions ${array[sub1..sub2]} and ${!array[sub1..sub2]}
associative array assignments using `;' as element separator
@@ -1226,8 +1348,12 @@ New things in ksh-93 not in bash-4.2:
new '${ ' form of command substitution, executed in current shell
new >;/<>;/<#pat/<##pat/<#/># redirections
brace expansion printf-like formats
+ CHLD trap triggered by SIGSTOP and SIGCONT
+ ~{fd} expansion, which replaces fd with the corresponding path name
+ $"string" expanded when referenced rather than when first parsed
+ job "pools", which allow a collection of jobs to be managed as a unit
-New things in ksh-93 present in bash-4.2:
+New things in ksh-93 present in bash-4.3:
associative arrays
[n]<&word- and [n]>&word- redirections (combination dup and close)
for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
@@ -1266,6 +1392,8 @@ New things in ksh-93 present in bash-4.2:
redirection operators preceded with {varname} to store fd number in varname
DEBUG can force skipping following command
[[ -v var ]] operator (checks whether or not var is set)
+ typeset -n and `nameref' variables
+ process substitutions work without /dev/fd
Section D: Why does bash do some things differently than other Unix shells?
@@ -1854,6 +1982,18 @@ compat40 set
of the entire list to be aborted (in versions before bash-4.0,
interrupting one command in a list caused the next to be executed)
+compat41 set
+ - interrupting a command list such as "a ; b ; c" causes the execution
+ of the entire list to be aborted (in versions before bash-4.1,
+ interrupting one command in a list caused the next to be executed)
+ - when in posix mode, single quotes in the `word' portion of a
+ double-quoted parameter expansion define a new quoting context and
+ are treated specially
+
+compat42 set
+ - the replacement string in double-quoted pattern substitution is not
+ run through quote removal, as in previous versions
+
Section F: Things to watch out for on certain Unix versions
F1) Why can't I use command line editing in my `cmdtool'?
@@ -2095,7 +2235,7 @@ before `eval' is executed. In versions of bash later than bash-2.0,
does the same thing.
This is not the same thing as ksh93 `nameref' variables, though the syntax
-is similar. I may add namerefs in a future bash version.
+is similar. Namerefs are available bash version 4.3, and work as in ksh93.
G4) How can I make the bash `time' reserved word print timing output that
looks like the output from my system's /usr/bin/time?
@@ -2255,16 +2395,15 @@ a module system like zsh's, using dynamic loading like builtins
a bash programmer's guide with a chapter on creating loadable builtins
a better loadable interface to perl with access to the shell builtins and
variables (contributions gratefully accepted)
-ksh93-like `nameref' variables
ksh93-like `xx.yy' variables (including some of the .sh.* variables) and
associated disipline functions
Some of the new ksh93 pattern matching operators, like backreferencing
H5) When will the next release appear?
-The next version will appear sometime in 2010. Never make predictions.
+The next version will appear sometime in 2015. Never make predictions.
-This document is Copyright 1995-2010 by Chester Ramey.
+This document is Copyright 1995-2014 by Chester Ramey.
Permission is hereby granted, without written agreement and
without license or royalty fees, to use, copy, and distribute
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 493985b8..3c67db63 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,6 +1,6 @@
# This Makefile is for the Bash/documentation directory -*- text -*-.
#
-# Copyright (C) 2003-2009 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 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
@@ -23,6 +23,8 @@ PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+
#
SHELL = @MAKE_SHELL@
RM = rm -f
@@ -38,6 +40,8 @@ datarootdir = @datarootdir@
infodir = @infodir@
+docdir = @docdir@
+
# set this to a directory name to have the HTML files installed
htmldir = @htmldir@
@@ -166,6 +170,8 @@ bashref.dvi: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
bashref.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
+# can also use:
+# $(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
@@ -191,6 +197,9 @@ bashref.pdf: bashref.dvi
bash.pdf: bash.ps
rose94.pdf: rose94.ps
+OTHER_DOCS = $(srcdir)/FAQ $(srcdir)/INTRO
+OTHER_INSTALLED_DOCS = FAQ INTRO
+
$(MAN2HTML): ${topdir}/support/man2html.c
-( cd ${BUILD_DIR}/support ; ${MAKE} ${MFLAGS} man2html)
@@ -218,6 +227,7 @@ maybe-clean:
installdirs:
-$(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(man1dir)
-$(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(infodir)
+ -$(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(docdir)
-if test -n "$(htmldir)" ; then \
$(SHELL) $(SUPPORT_SRCDIR)/mkinstalldirs $(DESTDIR)$(htmldir) ; \
fi
@@ -225,6 +235,7 @@ installdirs:
install: info installdirs bash.info
-$(INSTALL_DATA) $(srcdir)/bash.1 $(DESTDIR)$(man1dir)/bash${man1ext}
-$(INSTALL_DATA) $(srcdir)/bashbug.1 $(DESTDIR)$(man1dir)/bashbug${man1ext}
+ -$(INSTALL_DATA) $(OTHER_DOCS) $(DESTDIR)$(docdir)
# 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}
@@ -252,6 +263,7 @@ uninstall:
-$(RM) $(DESTDIR)$(man1dir)/bash${man1ext} $(DESTDIR)$(man1dir)/bashbug${man1ext}
-$(RM) $(DESTDIR)$(man1dir)/bash_builtins${man1ext}
$(RM) $(DESTDIR)$(infodir)/bash.info
+ -( cd $(DESTDIR)$(docdir) && $(RM) $(OTHER_INSTALLED_DOCS) )
-if test -n "$(htmldir)" ; then \
$(RM) $(DESTDIR)$(htmldir)/bash.html ; \
$(RM) $(DESTDIR)$(htmldir)/bashref.html ; \
diff --git a/doc/aosa-bash.pdf b/doc/aosa-bash.pdf
new file mode 100644
index 00000000..006a7677
--- /dev/null
+++ b/doc/aosa-bash.pdf
Binary files differ
diff --git a/doc/article.ms b/doc/article.ms
index 517155a8..d17bfa37 100644
--- a/doc/article.ms
+++ b/doc/article.ms
@@ -179,7 +179,7 @@ variable expansion semantics, redirection, and quoting as the
Bourne shell. Where differences appear between the POSIX.2
standard and traditional sh behavior, Bash follows POSIX.
.PP
-The Korn Shell (\fBksh\fP) is a descendent of the Bourne shell written
+The Korn Shell (\fBksh\fP) is a descendant of the Bourne shell written
at AT&T Bell Laboratories by David Korn\(dg. It provides a number of
useful features that POSIX and Bash have adopted. Many of the
interactive facilities in POSIX.2 have their roots in the ksh:
@@ -491,7 +491,7 @@ some bindings, and begin to use them almost immediately.
.PP
Bash implements the
.B bind
-builtin for more dyamic control of readline than the startup file
+builtin for more dynamic control of readline than the startup file
permits.
.B Bind
is used in several ways. In
@@ -544,7 +544,7 @@ and
builtins to manipulate the history list.
The value of
.B $HISTFILE
-specifes the file where Bash writes the command history on exit and
+specifies the file where Bash writes the command history on exit and
reads it on startup.
.B $HISTSIZE
is used to limit the number of commands saved in the history.
diff --git a/doc/article.pdf b/doc/article.pdf
index d2aaf9e2..1272a90d 100644
--- a/doc/article.pdf
+++ b/doc/article.pdf
Binary files differ
diff --git a/doc/article.ps b/doc/article.ps
index 3aadf2f3..adbeba08 100644
--- a/doc/article.ps
+++ b/doc/article.ps
@@ -1,17 +1,22 @@
%!PS-Adobe-3.0
-%%Creator: groff version 1.16.1
-%%CreationDate: Mon Nov 19 13:06:55 2001
+%%Creator: groff version 1.19.2
+%%CreationDate: Tue Oct 22 11:07:52 2013
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.16 1
+%%DocumentSuppliedResources: procset grops 1.19 2
%%Pages: 11
%%PageOrder: Ascend
+%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
%%BeginProlog
-%%BeginResource: procset grops 1.16 1
+%%BeginResource: procset grops 1.19 2
+%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
currentpacking
@@ -79,7 +84,7 @@ LS{
/EP{
level0 restore
showpage
-}bind def
+}def
/DA{
newpath arcn stroke
}bind def
@@ -109,11 +114,26 @@ TM setmatrix
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
+/Fr{
+setrgbcolor fill
+}bind def
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+/Fg{
+setgray fill
}bind def
-/BL/fill load def
+/FL/fill load def
/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
@@ -155,9 +175,9 @@ newpath
/CNT countdictstack def
userdict begin
/showpage{}def
+/setpagedevice{}def
}bind def
/PEND{
-clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
@@ -167,13 +187,18 @@ pop
setpacking
}if
%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
%%IncludeResource: font Times-Roman
%%IncludeResource: font Courier
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
@@ -201,256 +226,254 @@ def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE
/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
-%%EndProlog
+%%EndSetup
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 12/Times-Bold@0 SF(Bash \255 The GNU shell*)227.904 123 Q/F1 10
-/Times-Italic@0 SF(Chet Rame)263.85 147 Q(y)-.3 E(Case W)221.72 159 Q
-(estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 171 S
-(et@po.cwru.edu).15 E/F2 10/Times-Bold@0 SF 2.5(1. Intr)72 207 R
-(oduction)-.18 E(Bash)97 222.6 Q/F3 10/Times-Roman@0 SF .904
+/Times-Italic@0 SF(Chet Rame)263.85 159 Q(y)-.3 E(Case W)221.72 171 Q
+(estern Reserve Univer)-.92 E(sity)-.1 E -.15(ch)250.425 183 S
+(et@po.cwru.edu).15 E/F2 10/Times-Bold@0 SF 2.5(1. Intr)72 219 R
+(oduction)-.18 E(Bash)97 234.6 Q/F3 10/Times-Roman@0 SF .904
(is the shell, or command language interpreter)3.404 F 3.404(,t)-.4 G
.904(hat will appear in the GNU operating system.)-3.404 F 1.075
-(The name is an acron)72 234.6 R 1.075(ym for the \231Bourne-Ag)-.15 F
+(The name is an acron)72 246.6 R 1.075(ym for the \231Bourne-Ag)-.15 F
1.075(ain SHell\232, a pun on Ste)-.05 F 1.375 -.15(ve B)-.25 H 1.075
(ourne, the author of the direct).15 F .206(ancestor of the current)72
-246.6 R/F4 8/Times-Roman@0 SF(UNIX)2.706 E F3 2.706<ae73>C(hell)-2.706 E
+258.6 R/F4 8/Times-Roman@0 SF(UNIX)2.706 E F3 2.706<ae73>C(hell)-2.706 E
F1(/bin/sh)2.706 E F3 2.706(,w)C .205(hich appeared in the Se)-2.706 F
-.15(ve)-.25 G .205(nth Edition Bell Labs Research v).15 F(er)-.15 E(-)
--.2 E(sion of)72 258.6 Q/F5 9/Times-Roman@0 SF(UNIX)2.5 E F3(.)A .387
-(Bash is an)97 274.2 R F2(sh)2.887 E F3 .387
+-.2 E(sion of)72 270.6 Q/F5 9/Times-Roman@0 SF(UNIX)2.5 E F3(.)A .387
+(Bash is an)97 286.2 R F2(sh)2.887 E F3 .387
(\255compatible shell that incorporates useful features from the K)B
.388(orn shell \()-.35 F F2(ksh)A F3 2.888(\)a)C .388(nd the C)-2.888 F
-.023(shell \()72 286.2 R F2(csh)A F3 .023
+.023(shell \()72 298.2 R F2(csh)A F3 .023
(\), described later in this article.)B .022
(It is ultimately intended to be a conformant implementation of the)
5.022 F 3.568(IEEE POSIX Shell and Utilities speci\214cation \(IEEE W)72
-298.2 R 3.568(orking Group 1003.2\).)-.8 F 3.569(It of)8.569 F 3.569
-(fers functional)-.25 F(impro)72 310.2 Q -.15(ve)-.15 G(ments o).15 E
+310.2 R 3.568(orking Group 1003.2\).)-.8 F 3.569(It of)8.569 F 3.569
+(fers functional)-.25 F(impro)72 322.2 Q -.15(ve)-.15 G(ments o).15 E
-.15(ve)-.15 G 2.5(rs).15 G 2.5(hf)-2.5 G(or both interacti)-2.5 E .3
-.15(ve a)-.25 H(nd programming use.).15 E .697
-(While the GNU operating system will most lik)97 325.8 R .697
+(While the GNU operating system will most lik)97 337.8 R .697
(ely include a v)-.1 F .697(ersion of the Berk)-.15 F(ele)-.1 E 3.197
-(ys)-.15 G .696(hell csh, Bash)-3.197 F .015(will be the def)72 337.8 R
+(ys)-.15 G .696(hell csh, Bash)-3.197 F .015(will be the def)72 349.8 R
.015(ault shell.)-.1 F(Lik)5.015 E 2.515(eo)-.1 G .015(ther GNU softw)
-2.515 F .016(are, Bash is quite portable.)-.1 F .016
(It currently runs on nearly e)5.016 F -.15(ve)-.25 G(ry).15 E -.15(ve)
-72 349.8 S .523(rsion of).15 F F4(UNIX)3.023 E F3 .523(and a fe)3.023 F
+72 361.8 S .523(rsion of).15 F F4(UNIX)3.023 E F3 .523(and a fe)3.023 F
3.023(wo)-.25 G .523
(ther operating systems \255 an independently-supported port e)-3.023 F
.523(xists for OS/2, and)-.15 F .706
-(there are rumors of ports to DOS and W)72 361.8 R(indo)-.4 E .706
+(there are rumors of ports to DOS and W)72 373.8 R(indo)-.4 E .706
(ws NT)-.25 F 5.706(.P)-.74 G .706(orts to)-5.706 F F5(UNIX)3.206 E F3
(-lik)A 3.206(es)-.1 G .706(ystems such as QNX and Minix)-3.206 F
-(are part of the distrib)72 373.8 Q(ution.)-.2 E .405
-(The original author of Bash w)97 389.4 R .405(as Brian F)-.1 F .405
+(are part of the distrib)72 385.8 Q(ution.)-.2 E .405
+(The original author of Bash w)97 401.4 R .405(as Brian F)-.1 F .405
(ox, an emplo)-.15 F .405(yee of the Free Softw)-.1 F .405(are F)-.1 F
-2.905(oundation. The)-.15 F(cur)2.905 E(-)-.2 E(rent de)72 401.4 Q -.15
+2.905(oundation. The)-.15 F(cur)2.905 E(-)-.2 E(rent de)72 413.4 Q -.15
(ve)-.25 G(loper and maintainer is Chet Rame).15 E 1.3 -.65(y, a v)-.15
H(olunteer who w).45 E(orks at Case W)-.1 E(estern Reserv)-.8 E 2.5(eU)
-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(.)-.65 E F2 2.5(2. What')72
-425.4 R 2.5(sP)-.37 G(OSIX, anyway?)-2.5 E F1(POSIX)97 441 Q F3 .343
+437.4 R 2.5(sP)-.37 G(OSIX, anyway?)-2.5 E F1(POSIX)97 453 Q F3 .343
(is a name originally coined by Richard Stallman for a f)2.843 F .343
-(amily of open system standards based)-.1 F(on)72 453 Q F5(UNIX)3.24 E
+(amily of open system standards based)-.1 F(on)72 465 Q F5(UNIX)3.24 E
F3 5.74(.T)C .74(here are a number of aspects of)-5.74 F F5(UNIX)3.24 E
F3 .74(under consideration for standardization, from the basic)3.24 F
-.192(system services at the system call and C library le)72 465 R -.15
+.192(system services at the system call and C library le)72 477 R -.15
(ve)-.25 G 2.692(lt).15 G 2.692(oa)-2.692 G .192
(pplications and tools to system administration and)-2.692 F 2.5
-(management. Each)72 477 R(area of standardization is assigned to a w)
+(management. Each)72 489 R(area of standardization is assigned to a w)
2.5 E(orking group in the 1003 series.)-.1 E 2.814
-(The POSIX Shell and Utilities standard has been de)97 492.6 R -.15(ve)
+(The POSIX Shell and Utilities standard has been de)97 504.6 R -.15(ve)
-.25 G 2.814(loped by IEEE W).15 F 2.813(orking Group 1003.2)-.8 F .254
(\(POSIX.2\).\210 It concentrates on the command interpreter interf)72
-504.6 R .253(ace and utility programs commonly e)-.1 F -.15(xe)-.15 G
-(cuted).15 E 1.112(from the command line or by other programs.)72 516.6
+516.6 R .253(ace and utility programs commonly e)-.1 F -.15(xe)-.15 G
+(cuted).15 E 1.112(from the command line or by other programs.)72 528.6
R 1.112(An initial v)6.112 F 1.113
(ersion of the standard has been appro)-.15 F -.15(ve)-.15 G 3.613(da)
-.15 G(nd)-3.613 E .365(published by the IEEE, and w)72 528.6 R .365
+.15 G(nd)-3.613 E .365(published by the IEEE, and w)72 540.6 R .365
(ork is currently underw)-.1 F .365(ay to update it.)-.1 F .365
(There are four primary areas of w)5.365 F(ork)-.1 E
-(in the 1003.2 standard:)72 540.6 Q 21.5<8341>72 556.2 S .835
+(in the 1003.2 standard:)72 552.6 Q 21.5<8341>72 568.2 S .835
(spects of the shell')-21.5 F 3.335(ss)-.55 G .835
(yntax and command language.)-3.335 F 3.335(An)5.835 G .835
(umber of special b)-3.335 F .835(uiltins such as)-.2 F F2(cd)3.335 E F3
-(and)3.335 E F2(exec)97 568.2 Q F3 .545(are being speci\214ed as part o\
+(and)3.335 E F2(exec)97 580.2 Q F3 .545(are being speci\214ed as part o\
f the shell, since their functionality usually cannot be implemented)
-3.046 F(by a separate e)97 580.2 Q -.15(xe)-.15 G(cutable;).15 E 21.5
-<8341>72 595.8 S .926
+3.046 F(by a separate e)97 592.2 Q -.15(xe)-.15 G(cutable;).15 E 21.5
+<8341>72 607.8 S .926
(set of utilities to be called by shell scripts and applications.)
-18.074 F .927(Examples are programs lik)5.927 F(e)-.1 E F1 .927
-(sed, tr)3.427 F(,)-1.11 E F3(and)97 607.8 Q F1(awk.)2.797 E F3 .297
+(sed, tr)3.427 F(,)-1.11 E F3(and)97 619.8 Q F1(awk.)2.797 E F3 .297
(Utilities commonly implemented as shell b)5.297 F .296
(uiltins are described in this section, such as)-.2 F F2(test)2.796 E F3
-(and)97 619.8 Q F2(kill)3.422 E F3 5.922(.A)C 3.422(ne)-5.922 G .922
+(and)97 631.8 Q F2(kill)3.422 E F3 5.922(.A)C 3.422(ne)-5.922 G .922
(xpansion of this section')-3.572 F 3.423(ss)-.55 G .923
(cope, termed the User Portability Extension, or UPE, has)-3.423 F
-(standardized interacti)97 631.8 Q .3 -.15(ve p)-.25 H(rograms such as)
-.15 E F1(vi)2.5 E F3(and)2.5 E F1(mailx;)2.5 E F3 21.5<8341>72 647.4 S
+(standardized interacti)97 643.8 Q .3 -.15(ve p)-.25 H(rograms such as)
+.15 E F1(vi)2.5 E F3(and)2.5 E F1(mailx;)2.5 E F3 21.5<8341>72 659.4 S
.288(group of functional interf)-18.712 F .287(aces to services pro)-.1
F .287(vided by the shell, such as the traditional)-.15 F/F6 10
-/Courier@0 SF(system\(\))2.787 E F3 3.289(Cl)97 659.4 S .789
+/Courier@0 SF(system\(\))2.787 E F3 3.289(Cl)97 671.4 S .789
(ibrary function.)-3.289 F .789(There are functions to perform shell w)
5.789 F .789(ord e)-.1 F .79(xpansions, perform \214lename e)-.15 F
-(xpan-)-.15 E .324(sion \()97 671.4 R F1(globbing)A F3 .324
-(\), obtain v)B .323(alues of POSIX.2 system con\214guration v)-.25 F
-.323(ariables, retrie)-.25 F .623 -.15(ve v)-.25 H .323(alues of en)-.1
-F(viron-)-.4 E(ment v)97 683.4 Q(ariables \()-.25 E F6(getenv\(\))A F3
-(\), and other services;).833 E .32 LW 144 691.4 72 691.4 DL F4
-(*An earlier v)72 703.2 Q
+(xpan-)-.15 E 3.624(sion \()97 683.4 R F1(globbing)A F3 3.624
+(\), obtain v)B 3.624(alues of POSIX.2 system con\214guration v)-.25 F
+3.623(ariables, retrie)-.25 F 3.923 -.15(ve v)-.25 H 3.623(alues of)-.1
+F .32 LW 144 691.4 72 691.4 DL F4(*An earlier v)72 703.2 Q
(ersion of this article appeared in The Linux Journal.)-.12 E(\210IEEE,)
72 715 Q/F7 8/Times-Italic@0 SF 1.231(IEEE Standar)3.231 F 3.231(df)
-.296 G 1.231(or Information T)-3.231 F(ec)-.736 E(hnolo)-.12 E 1.231
(gy -- P)-.08 F 1.231(ortable Oper)-.64 F 1.232
(ating System Interface \(POSIX\) P)-.12 F 1.232(art 2:)-.64 F
-(Shell and Utilities)72 725 Q F4 2(,1)C(992.)-2 E EP
+(Shell and Utilities)72 725 Q F4 2(,1)C(992.)-2 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q 21.5<8341>72 84 S
-(suite of \231de)-19 E -.15(ve)-.25 G(lopment\232 utilities such as).15
-E/F1 10/Times-Italic@0 SF(c89)2.5 E F0(\(the POSIX.2 v)2.5 E(ersion of)
--.15 E F1(cc)2.5 E F0(\), and)A F1(yacc.)2.5 E F0 .483
-(Bash is concerned with the aspects of the shell')97 99.6 R 2.983(sb)
+/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q(en)97 84 Q(vironment v)-.4 E
+(ariables \()-.25 E/F1 10/Courier@0 SF(getenv\(\))A F0
+(\), and other services;).833 E 21.5<8341>72 99.6 S(suite of \231de)-19
+E -.15(ve)-.25 G(lopment\232 utilities such as).15 E/F2 10
+/Times-Italic@0 SF(c89)2.5 E F0(\(the POSIX.2 v)2.5 E(ersion of)-.15 E
+F2(cc)2.5 E F0(\), and)A F2(yacc.)2.5 E F0 .483
+(Bash is concerned with the aspects of the shell')97 115.2 R 2.983(sb)
-.55 G(eha)-2.983 E .484(vior de\214ned by POSIX.2.)-.2 F .484
(The shell command)5.484 F 1.439
(language has of course been standardized, including the basic \215o)72
-111.6 R 3.938(wc)-.25 G 1.438(ontrol and program e)-3.938 F -.15(xe)-.15
+127.2 R 3.938(wc)-.25 G 1.438(ontrol and program e)-3.938 F -.15(xe)-.15
G 1.438(cution con-).15 F 1.284
-(structs, I/O redirection and pipelining, ar)72 123.6 R 1.284
+(structs, I/O redirection and pipelining, ar)72 139.2 R 1.284
(gument handling, v)-.18 F 1.284(ariable e)-.25 F 1.284
-(xpansion, and quoting.)-.15 F(The)6.285 E F1(special)3.785 E F0 -.2(bu)
-72 135.6 S .676
+(xpansion, and quoting.)-.15 F(The)6.285 E F2(special)3.785 E F0 -.2(bu)
+72 151.2 S .676
(iltins, which must be implemented as part of the shell to pro).2 F .676
(vide the desired functionality)-.15 F 3.176(,a)-.65 G .676
-(re speci\214ed)-3.176 F .7(as being part of the shell; e)72 147.6 R .7
-(xamples of these are)-.15 F/F2 10/Times-Bold@0 SF -2.3 -.15(ev a)3.201
-H(l).15 E F0(and)3.201 E F2(export)3.201 E F0 5.701(.O)C .701
+(re speci\214ed)-3.176 F .7(as being part of the shell; e)72 163.2 R .7
+(xamples of these are)-.15 F/F3 10/Times-Bold@0 SF -2.3 -.15(ev a)3.201
+H(l).15 E F0(and)3.201 E F3(export)3.201 E F0 5.701(.O)C .701
(ther utilities appear in the sections of)-5.701 F .256(POSIX.2 not de)
-72 159.6 R -.2(vo)-.25 G .256(ted to the shell which are commonly \(and\
+72 175.2 R -.2(vo)-.25 G .256(ted to the shell which are commonly \(and\
in some cases must be\) implemented as b).2 F(uiltin)-.2 E .213
-(commands, such as)72 171.6 R F2 -.18(re)2.713 G(ad).18 E F0(and)2.713 E
-F2(test)2.713 E F0 5.213(.P)C .213
+(commands, such as)72 187.2 R F3 -.18(re)2.713 G(ad).18 E F0(and)2.713 E
+F3(test)2.713 E F0 5.213(.P)C .213
(OSIX.2 also speci\214es aspects of the shell')-5.213 F 2.713(si)-.55 G
(nteracti)-2.713 E .513 -.15(ve b)-.25 H(eha).15 E .214(vior as part)-.2
F .598(of the UPE, including job control and command line editing.)72
-183.6 R .598(Interestingly enough, only)5.598 F F1(vi)3.098 E F0 .598
-(-style line edit-)B(ing commands ha)72 195.6 Q .3 -.15(ve b)-.2 H
-(een standardized;).15 E F1(emacs)2.5 E F0
+199.2 R .598(Interestingly enough, only)5.598 F F2(vi)3.098 E F0 .598
+(-style line edit-)B(ing commands ha)72 211.2 Q .3 -.15(ve b)-.2 H
+(een standardized;).15 E F2(emacs)2.5 E F0
(editing commands were left out due to objections.)2.5 E 1.128
(While POSIX.2 includes much of what the shell has traditionally pro)97
-211.2 R 1.129(vided, some important things)-.15 F(ha)72 223.2 Q .344
+226.8 R 1.129(vided, some important things)-.15 F(ha)72 238.8 Q .344
-.15(ve b)-.2 H .044(een omitted as being \231be).15 F .044
(yond its scope.)-.15 F 5.043<9a54>-.7 G .043
(here is, for instance, no mention of a dif)-5.043 F .043
-(ference between a)-.25 F F1(lo)72 235.2 Q(gin)-.1 E F0 1.445
+(ference between a)-.25 F F2(lo)72 250.8 Q(gin)-.1 E F0 1.445
(shell and an)3.945 F 3.945(yo)-.15 G 1.445(ther interacti)-3.945 F
1.745 -.15(ve s)-.25 H 1.446
(hell \(since POSIX.2 does not specify a login program\).).15 F 1.446
(No \214x)6.446 F(ed)-.15 E(startup \214les are de\214ned, either \255 \
-the standard does not mention)72 247.2 Q F1(.pr)2.5 E(o\214le)-.45 E F0
-(.)A F2 2.5(3. Basic)72 271.2 R(Bash featur)2.5 E(es)-.18 E F0 1.448
-(Since the Bourne shell pro)97 286.8 R 1.448
+the standard does not mention)72 262.8 Q F2(.pr)2.5 E(o\214le)-.45 E F0
+(.)A F3 2.5(3. Basic)72 286.8 R(Bash featur)2.5 E(es)-.18 E F0 1.448
+(Since the Bourne shell pro)97 302.4 R 1.448
(vides Bash with most of its philosophical underpinnings, Bash inherits)
--.15 F .64(most of its features and functionality from sh.)72 298.8 R
+-.15 F .64(most of its features and functionality from sh.)72 314.4 R
.641(Bash implements all of the traditional sh \215o)5.641 F 3.141(wc)
--.25 G .641(ontrol con-)-3.141 F .8(structs \()72 310.8 R F1(for)A F0(,)
-A F1(if)3.3 E F0(,)A F1(while)3.3 E F0 3.3(,e)C 3.3(tc.\). All)-3.3 F
+-.25 G .641(ontrol con-)-3.141 F .8(structs \()72 326.4 R F2(for)A F0(,)
+A F2(if)3.3 E F0(,)A F2(while)3.3 E F0 3.3(,e)C 3.3(tc.\). All)-3.3 F
.799(of the Bourne shell b)3.3 F .799
(uiltins, including those not speci\214ed in the POSIX.2)-.2 F .536
-(standard, appear in Bash.)72 322.8 R(Shell)5.536 E F1(functions)3.036 E
+(standard, appear in Bash.)72 338.4 R(Shell)5.536 E F2(functions)3.036 E
F0 3.036(,i)C .536(ntroduced in the SVR2 v)-3.036 F .537
(ersion of the Bourne shell, are similar)-.15 F .779
-(to shell scripts, b)72 334.8 R .779
+(to shell scripts, b)72 350.4 R .779
(ut are de\214ned using a special syntax and are e)-.2 F -.15(xe)-.15 G
.779(cuted in the same process as the calling).15 F 2.841(shell. Bash)72
-346.8 R .341(has shell functions which beha)2.841 F .641 -.15(ve i)-.2 H
+362.4 R .341(has shell functions which beha)2.841 F .641 -.15(ve i)-.2 H
2.841(naf).15 G .341(ashion upw)-2.941 F .342
(ard-compatible with sh functions.)-.1 F .342(There are)5.342 F 1.447
-(certain shell v)72 358.8 R 1.446
+(certain shell v)72 374.4 R 1.446
(ariables that Bash interprets in the same w)-.25 F 1.446
-(ay as sh, such as)-.1 F F2(PS1)3.946 E F0(,)A F2(IFS)3.946 E F0 3.946
-(,a)C(nd)-3.946 E F2 -.74(PA)3.946 G(TH)-.21 E F0 6.446(.B)C(ash)-6.446
-E 1.423(implements essentially the same grammar)72 370.8 R 3.924(,p)-.4
+(ay as sh, such as)-.1 F F3(PS1)3.946 E F0(,)A F3(IFS)3.946 E F0 3.946
+(,a)C(nd)-3.946 E F3 -.74(PA)3.946 G(TH)-.21 E F0 6.446(.B)C(ash)-6.446
+E 1.423(implements essentially the same grammar)72 386.4 R 3.924(,p)-.4
G 1.424(arameter and v)-3.924 F 1.424(ariable e)-.25 F 1.424
(xpansion semantics, redirection, and)-.15 F 1.06
-(quoting as the Bourne shell.)72 382.8 R 1.06(Where dif)6.06 F 1.06
+(quoting as the Bourne shell.)72 398.4 R 1.06(Where dif)6.06 F 1.06
(ferences appear between the POSIX.2 standard and traditional sh)-.25 F
-(beha)72 394.8 Q(vior)-.2 E 2.5(,B)-.4 G(ash follo)-2.5 E(ws POSIX.)-.25
-E 1.608(The K)97 410.4 R 1.608(orn Shell \()-.35 F F2(ksh)A F0 4.108
-(\)i)C 4.108(sad)-4.108 G 1.608
-(escendent of the Bourne shell written at A)-4.108 F 1.609
-(T&T Bell Laboratories by)-1.11 F(Da)72 422.4 Q 1.059(vid K)-.2 F 3.559
-(orn\207. It)-.35 F(pro)3.559 E 1.059
+(beha)72 410.4 Q(vior)-.2 E 2.5(,B)-.4 G(ash follo)-2.5 E(ws POSIX.)-.25
+E 1.608(The K)97 426 R 1.608(orn Shell \()-.35 F F3(ksh)A F0 4.108(\)i)C
+4.108(sad)-4.108 G 1.608(escendant of the Bourne shell written at A)
+-4.108 F 1.609(T&T Bell Laboratories by)-1.11 F(Da)72 438 Q 1.059(vid K)
+-.2 F 3.559(orn\207. It)-.35 F(pro)3.559 E 1.059
(vides a number of useful features that POSIX and Bash ha)-.15 F 1.359
-.15(ve a)-.2 H 3.558(dopted. Man).15 F 3.558(yo)-.15 G 3.558(ft)-3.558
-G(he)-3.558 E(interacti)72 434.4 Q 1.312 -.15(ve f)-.25 H 1.012
+G(he)-3.558 E(interacti)72 450 Q 1.312 -.15(ve f)-.25 H 1.012
(acilities in POSIX.2 ha).05 F 1.312 -.15(ve t)-.2 H 1.012
(heir roots in the ksh: for e).15 F 1.013
-(xample, the POSIX and ksh job control)-.15 F -.1(fa)72 446.4 S .513
+(xample, the POSIX and ksh job control)-.15 F -.1(fa)72 462 S .513
(cilities are nearly identical. Bash includes features from the K).1 F
.513(orn Shell for both interacti)-.35 F .813 -.15(ve u)-.25 H .513
-(se and shell).15 F 3.905(programming. F)72 458.4 R 1.405
+(se and shell).15 F 3.905(programming. F)72 474 R 1.405
(or programming, Bash pro)-.15 F 1.405(vides v)-.15 F 1.405
-(ariables such as)-.25 F F2(RANDOM)3.905 E F0(and)3.905 E F2(REPL)3.905
-E(Y)-.92 E F0 3.905(,t)C(he)-3.905 E F2(typeset)3.905 E F0 -.2(bu)72
-470.4 S .398(iltin, the ability to remo).2 F .698 -.15(ve s)-.15 H .398
+(ariables such as)-.25 F F3(RANDOM)3.905 E F0(and)3.905 E F3(REPL)3.905
+E(Y)-.92 E F0 3.905(,t)C(he)-3.905 E F3(typeset)3.905 E F0 -.2(bu)72 486
+S .398(iltin, the ability to remo).2 F .698 -.15(ve s)-.15 H .398
(ubstrings from v).15 F .398
-(ariables based on patterns, and shell arithmetic.)-.25 F F2(RANDOM)
-5.397 E F0 -.15(ex)72 482.4 S .489
+(ariables based on patterns, and shell arithmetic.)-.25 F F3(RANDOM)
+5.397 E F0 -.15(ex)72 498 S .489
(pands to a random number each time it is referenced; assigning a v).15
-F .49(alue to)-.25 F F2(RANDOM)2.99 E F0 .49(seeds the random)2.99 F
-.055(number generator)72 494.4 R(.)-.55 E F2(REPL)5.055 E(Y)-.92 E F0
-.054(is the def)2.554 F .054(ault v)-.1 F .054(ariable used by the)-.25
-F F2 -.18(re)2.554 G(ad).18 E F0 -.2(bu)2.554 G .054(iltin when no v).2
-F .054(ariable names are sup-)-.25 F .742(plied as ar)72 506.4 R 3.243
-(guments. The)-.18 F F2(typeset)3.243 E F0 -.2(bu)3.243 G .743
+F .49(alue to)-.25 F F3(RANDOM)2.99 E F0 .49(seeds the random)2.99 F
+.055(number generator)72 510 R(.)-.55 E F3(REPL)5.055 E(Y)-.92 E F0 .054
+(is the def)2.554 F .054(ault v)-.1 F .054(ariable used by the)-.25 F F3
+-.18(re)2.554 G(ad).18 E F0 -.2(bu)2.554 G .054(iltin when no v).2 F
+.054(ariable names are sup-)-.25 F .742(plied as ar)72 522 R 3.243
+(guments. The)-.18 F F3(typeset)3.243 E F0 -.2(bu)3.243 G .743
(iltin is used to de\214ne v).2 F .743(ariables and gi)-.25 F 1.043 -.15
-(ve t)-.25 H .743(hem attrib).15 F .743(utes such as)-.2 F F2 -.18(re)
-3.243 G(ad-).18 E(only)72 518.4 Q F0 5.512(.B)C .512
-(ash arithmetic allo)-5.512 F .512(ws the e)-.25 F -.25(va)-.25 G .511
-(luation of an e).25 F .511
-(xpression and the substitution of the result.)-.15 F .511(Shell v)5.511
-F(ari-)-.25 E .222
-(ables may be used as operands, and the result of an e)72 530.4 R .222
+(ve t)-.25 H .743(hem attrib).15 F .743(utes such as)-.2 F F3 -.18(re)
+3.243 G(ad-).18 E(only)72 534 Q F0 5.512(.B)C .512(ash arithmetic allo)
+-5.512 F .512(ws the e)-.25 F -.25(va)-.25 G .511(luation of an e).25 F
+.511(xpression and the substitution of the result.)-.15 F .511(Shell v)
+5.511 F(ari-)-.25 E .222
+(ables may be used as operands, and the result of an e)72 546 R .222
(xpression may be assigned to a v)-.15 F 2.722(ariable. Nearly)-.25 F
-.222(all of)2.722 F(the operators from the C language are a)72 542.4 Q
--.25(va)-.2 G(ilable, with the same precedence rules:).25 E/F3 10
-/Courier@0 SF 6($e)97 560.4 S(cho $\(\(3 + 5 * 32\)\))-6 E(163)97 572.4
-Q F0 -.15(Fo)72 594 S 3.24(ri).15 G(nteracti)-3.24 E 1.04 -.15(ve u)-.25
-H .74(se, Bash implements ksh-style aliases and b).15 F .74
-(uiltins such as)-.2 F F2(fc)3.24 E F0 .74(\(discussed belo)3.24 F .74
-(w\) and)-.25 F F2(jobs)3.24 E F0(.)A .291(Bash aliases allo)72 606 R
-2.791(was)-.25 G .291(tring to be substituted for a command name.)-2.791
-F(The)5.291 E 2.791(yc)-.15 G .291(an be used to create a mnemonic)
--2.791 F .568(for a)72 618 R/F4 9/Times-Roman@0 SF(UNIX)3.068 E F0 .568
-(command name \()3.068 F F3 .568(alias del=rm)B F0 .568(\), to e)B .567
+.222(all of)2.722 F(the operators from the C language are a)72 558 Q
+-.25(va)-.2 G(ilable, with the same precedence rules:).25 E F1 6($e)97
+576 S(cho $\(\(3 + 5 * 32\)\))-6 E(163)97 588 Q F0 -.15(Fo)72 609.6 S
+3.24(ri).15 G(nteracti)-3.24 E 1.04 -.15(ve u)-.25 H .74
+(se, Bash implements ksh-style aliases and b).15 F .74(uiltins such as)
+-.2 F F3(fc)3.24 E F0 .74(\(discussed belo)3.24 F .74(w\) and)-.25 F F3
+(jobs)3.24 E F0(.)A .291(Bash aliases allo)72 621.6 R 2.791(was)-.25 G
+.291(tring to be substituted for a command name.)-2.791 F(The)5.291 E
+2.791(yc)-.15 G .291(an be used to create a mnemonic)-2.791 F .568
+(for a)72 633.6 R/F4 9/Times-Roman@0 SF(UNIX)3.068 E F0 .568
+(command name \()3.068 F F1 .568(alias del=rm)B F0 .568(\), to e)B .567
(xpand a single w)-.15 F .567(ord to a comple)-.1 F 3.067(xc)-.15 G .567
-(ommand \()-3.067 F F3(alias)A .255
-(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 630 R F0 .255
-(\), or to ensure that a command)B(is in)72 642 Q -.2(vo)-.4 G -.1(ke).2
-G 2.5(dw).1 G(ith a basic set of options \()-2.5 E F3
-(alias ls="/bin/ls -F")A F0(\).)A .293(The C shell \()97 657.6 R F2(csh)
+(ommand \()-3.067 F F1(alias)A .255
+(news='xterm -g 80x45 -title trn -e trn -e -S1 -N &')72 645.6 R F0 .255
+(\), or to ensure that a command)B(is in)72 657.6 Q -.2(vo)-.4 G -.1(ke)
+.2 G 2.5(dw).1 G(ith a basic set of options \()-2.5 E F1
+(alias ls="/bin/ls -F")A F0(\).)A .293(The C shell \()97 673.2 R F3(csh)
A F0 .293(\)\207, originally written by Bill Jo)B 2.792(yw)-.1 G .292
(hile at Berk)-2.792 F(ele)-.1 E 1.592 -.65(y, i)-.15 H 2.792(sw).65 G
.292(idely used and quite popular)-2.792 F 1.499(for its interacti)72
-669.6 R 1.799 -.15(ve f)-.25 H 3.999(acilities. Bash).05 F 1.499
+685.2 R 1.799 -.15(ve f)-.25 H 3.999(acilities. Bash).05 F 1.499
(includes a csh-compatible history e)3.999 F 1.5
-(xpansion mechanism \(\231! history\232\),)-.15 F .019(brace e)72 681.6
-R .018(xpansion, access to a stack of directories via the)-.15 F F2
-(pushd)2.518 E F0(,)A F2(popd)2.518 E F0 2.518(,a)C(nd)-2.518 E F2(dirs)
+(xpansion mechanism \(\231! history\232\),)-.15 F .019(brace e)72 697.2
+R .018(xpansion, access to a stack of directories via the)-.15 F F3
+(pushd)2.518 E F0(,)A F3(popd)2.518 E F0 2.518(,a)C(nd)-2.518 E F3(dirs)
2.518 E F0 -.2(bu)2.518 G .018(iltins, and tilde e).2 F(xpansion,)-.15 E
-1.293(to generate users' home directories.)72 693.6 R -.35(Ti)6.294 G
+1.293(to generate users' home directories.)72 709.2 R -.35(Ti)6.294 G
1.294(lde e).35 F 1.294(xpansion has also been adopted by both the K)
--.15 F 1.294(orn Shell and)-.35 F .32 LW 144 708.2 72 708.2 DL/F5 8
-/Times-Roman@0 SF(\207Morris Bolsk)72 720 Q 2(ya)-.12 G(nd Da)-2 E
+-.15 F 1.294(orn Shell and)-.35 F .32 LW 144 717.2 72 717.2 DL/F5 8
+/Times-Roman@0 SF(\207Morris Bolsk)72 727.2 Q 2(ya)-.12 G(nd Da)-2 E
(vid K)-.16 E(orn,)-.28 E/F6 8/Times-Italic@0 SF(The K)2 E
(ornShell Command and Pr)-.32 E -.08(og)-.36 G -.12(ra).08 G
(mming Langua).12 E -.08(ge)-.08 G F5 2(,P).08 G(rentice Hall, 1989.)-2
-E EP
+E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -520,10 +543,10 @@ tput of the command contained within the parentheses, with)-.15 F .664
(xpansion, the ability to de\214ne a v)-.15 F(ariable)-.25 E .283
(and a function with the same name, local v)72 398.4 R .282
(ariables in shell functions, the ability to enable and disable indi-)
--.25 F .547(vidual b)72 410.4 R .547
-(uiltins or write a function to replace a b)-.2 F .547
-(uiltin, or a means to e)-.2 F .547
-(xport a shell function to a child pro-)-.15 F(cess.)72 422.4 Q .32
+-.25 F 1.532(vidual b)72 410.4 R 1.532
+(uiltins or write a function to replace a b)-.2 F 1.533
+(uiltin, or a means to e)-.2 F 1.533(xport a shell function to a child)
+-.15 F(process.)72 422.4 Q .32
(Bash has closed a long-standing shell security hole by not using the)97
438 R F1($IFS)2.82 E F0 -.25(va)2.82 G .32(riable to split each w).25 F
(ord)-.1 E 1.254(read by the shell, b)72 450 R 1.254
@@ -580,11 +603,11 @@ E F1($ENV)2.842 E F0 2.841(,i)C 2.841(fs)-2.841 G .341
(on out here.)-.1 F(Interestingly)5.158 E 2.658(,t)-.65 G .158(he ne)
-2.658 F .159(xt release of ksh will change to reading)-.15 F F1($ENV)
2.659 E .32 LW 144 705.2 72 705.2 DL/F4 8/Times-Roman@0 SF .559
-(\207Bill Jo)72 717 R 1.599 -.52(y, A)-.08 H 2.559(nI).52 G .559
+(\207Bill Jo)72 715.2 R 1.599 -.52(y, A)-.08 H 2.559(nI).52 G .559
(ntroduction to the C Shell,)-2.559 F/F5 8/Times-Italic@0 SF .558
(UNIX User')2.558 F 2.558(sS)-.32 G .558(upplementary Documents)-2.558 F
F4 2.558(,U)C(ni)-2.558 E -.12(ve)-.2 G .558(rsity of California at).12
-F(Berk)72 727 Q(ele)-.08 E 1.04 -.52(y, 1)-.12 H(986.).52 E EP
+F(Berk)72 725.2 Q(ele)-.08 E 1.04 -.52(y, 1)-.12 H(986.).52 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
@@ -696,7 +719,7 @@ R -.15(ey)-.1 G 1.196(map to which subsequent k).15 F 1.496 -.15(ey b)
-3.031 G -.15(ve)-3.281 G 3.031(nw).15 G .531
(hat happens when readline w)-3.031 F .531(ants to ring the terminal')
-.1 F 3.03(sb)-.55 G 3.03(ell. All)-3.03 F .53(of these v)3.03 F
-(ariables)-.25 E EP
+(ariables)-.25 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
@@ -724,9 +747,9 @@ S(repare to type a quoted word -- insert open and close double)-6 E 6
249.6 Q($endif)97 261.6 Q F0 .322(There is a readline command to re-rea\
d the \214le, so users can edit the \214le, change some bindings, and b\
e)72 283.2 R(gin)-.15 E(to use them almost immediately)72 295.2 Q(.)-.65
-E .851(Bash implements the)97 310.8 R F1(bind)3.351 E F0 -.2(bu)3.351 G
-.851(iltin for more dyamic control of readline than the startup \214le \
-permits.).2 F F1(Bind)72 322.8 Q F0 .25(is used in se)2.75 F -.15(ve)
+E .518(Bash implements the)97 310.8 R F1(bind)3.018 E F0 -.2(bu)3.018 G
+.518(iltin for more dynamic control of readline than the startup \214le\
+ permits.).2 F F1(Bind)72 322.8 Q F0 .25(is used in se)2.75 F -.15(ve)
-.25 G .25(ral w).15 F 2.75(ays. In)-.1 F/F3 10/Times-Italic@0 SF(list)
2.75 E F0 .25(mode, it can display the current k)2.75 F .55 -.15(ey b)
-.1 H .25(indings, list all the readline edit-).15 F .149(ing directi)72
@@ -781,11 +804,11 @@ lly quite good at determining what type of completion to attempt.)72
(and the readline library)72 570 R 5.077(.B)-.65 G .077(ash pro)-5.077 F
.077(vides v)-.15 F .077(ariables \()-.25 F F1($HISTFILE)A F0(,)A F1
($HISTSIZE)2.577 E F0 2.577(,a)C(nd)-2.577 E F1($HISTCONTR)2.577 E(OL)
--.3 E F0 2.577(\)a)C(nd)-2.577 E(the)72 582 Q F1(history)2.89 E F0(and)
-2.89 E F1(fc)2.89 E F0 -.2(bu)2.89 G .39
-(iltins to manipulate the history list.).2 F .391(The v)5.391 F .391
-(alue of)-.25 F F1($HISTFILE)2.891 E F0 .391(specifes the \214le where)
-2.891 F .49(Bash writes the command history on e)72 594 R .489
+-.3 E F0 2.577(\)a)C(nd)-2.577 E(the)72 582 Q F1(history)2.759 E F0(and)
+2.759 E F1(fc)2.759 E F0 -.2(bu)2.759 G .259
+(iltins to manipulate the history list.).2 F .26(The v)5.259 F .26
+(alue of)-.25 F F1($HISTFILE)2.76 E F0 .26(speci\214es the \214le where)
+2.76 F .49(Bash writes the command history on e)72 594 R .489
(xit and reads it on startup.)-.15 F F1($HISTSIZE)5.489 E F0 .489
(is used to limit the number)2.989 F .642(of commands sa)72 606 R -.15
(ve)-.2 G 3.142(di).15 G 3.142(nt)-3.142 G .642(he history)-3.142 F(.)
@@ -820,7 +843,7 @@ or a string typed by the user)72 690 R(.)-.55 E(Finally)72 702 Q 2.535
-.15(xe)-.15 G 1.022(cution of pre).15 F 1.022(vious commands v)-.25 F
1.022(ery similar to csh \(\231bang history\232, so)-.15 F
(called because the e)72 726 Q
-(xclamation point introduces a history substitution\):)-.15 E EP
+(xclamation point introduces a history substitution\):)-.15 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
@@ -903,7 +926,7 @@ e)-.15 F .104(when opened.)72 648 R .103
(xpansion. Process)-.15 F .103(substitution can be used to com-)2.603 F
(pare the outputs of tw)72 660 Q 2.5(od)-.1 G(if)-2.5 E(ferent v)-.25 E
(ersions of an application as part of a re)-.15 E(gression test:)-.15 E
-F1 6($c)97 678 S(mp <\(old_prog\) <\(new_prog\))-6 E EP
+F1 6($c)97 678 S(mp <\(old_prog\) <\(new_prog\))-6 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
@@ -998,7 +1021,7 @@ G .367
E(/usr/local/bin)97 624 Q 6($/)97 636 S(bin/pwd)-6 E
(/net/share/sun4/local/bin)97 648 Q 6($c)97 660 S 6(d.)-6 G(.)-6 E 6($p)
97 672 S(wd)-6 E(/usr/local)97 684 Q 6($/)97 696 S(bin/pwd)-6 E
-(/net/share/sun4/local)97 708 Q 6($c)97 720 S 6(d.)-6 G(.)-6 E EP
+(/net/share/sun4/local)97 708 Q 6($c)97 720 S 6(d.)-6 G(.)-6 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
@@ -1097,7 +1120,7 @@ such)-2.931 F .136
(nting the use of these sequences in earlier v).15 F .559(ersions, b)
-.15 F .559(ut the readline redisplay algorithm assumed)-.2 F
(each character occupied ph)72 720 Q(ysical screen space and w)-.05 E
-(ould wrap lines prematurely)-.1 E(.)-.65 E EP
+(ould wrap lines prematurely)-.1 E(.)-.65 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
@@ -1244,7 +1267,7 @@ F F1(HISTIGNORE)4.286 E F0 4.285(,w)C 1.785(hich w)-4.285 F 1.785
(mentation to be printed by the)72 697.2 R F1(help)3.851 E F0 1.351
(command \(possibly present in the shared object as well\).)3.851 F
1.351(It w)6.351 F(ould)-.1 E(manage the details of e)72 709.2 Q
-(xtending the internal table of b)-.15 E(uiltins.)-.2 E EP
+(xtending the internal table of b)-.15 E(uiltins.)-.2 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
@@ -1256,14 +1279,14 @@ BP
(command, which prints)3.292 F 1.412(the v)72 96 R 1.412
(alues of system con\214guration v)-.25 F 1.411
(ariables de\214ned by POSIX.2, and a)-.25 F F1(diso)3.911 E(wn)-.1 E F0
--.2(bu)3.911 G 1.411(iltin, which causes a).2 F 1.347
-(shell running with job control acti)72 108 R 1.647 -.15(ve t)-.25 H
-3.847<6f99>.15 G(for)-3.847 E 1.347
-(get about\232 one or more background jobs in its internal jobs)-.18 F
-3.465(table. Using)72 120 R F1(getconf)3.465 E F0 3.465(,f)C .965(or e)
--3.465 F .965(xample, a user could retrie)-.15 F 1.264 -.15(ve a v)-.25
-H .964(alue for)-.1 F F1($P)3.464 E -.95(AT)-.74 G(H).95 E F0 .964
-(guaranteed to \214nd all of the)3.464 F .884
+-.2(bu)3.911 G 1.411(iltin, which causes a).2 F .547
+(shell running with job control acti)72 108 R .847 -.15(ve t)-.25 H
+3.047<6f99>.15 G(for)-3.047 E .547
+(get about\232 one or more background jobs in its internal jobs ta-)-.18
+F 3.866(ble. Using)72 120 R F1(getconf)3.866 E F0 3.866(,f)C 1.366(or e)
+-3.866 F 1.366(xample, a user could retrie)-.15 F 1.666 -.15(ve a v)-.25
+H 1.365(alue for)-.1 F F1($P)3.865 E -.95(AT)-.74 G(H).95 E F0 1.365
+(guaranteed to \214nd all of the)3.865 F .884
(POSIX standard utilities, or \214nd out ho)72 132 R 3.385(wl)-.25 G
.885
(ong \214lenames may be in the \214le system containing a speci\214ed)
@@ -1368,7 +1391,7 @@ E F0(for more information.)2.5 E .694(Bash is also distrib)97 656.4 R
-.15(ve)-.25 G .948(ral Linux distrib).15 F .948
(utions \(more about the dif)-.2 F .948
(ference in a moment\), and as contrib)-.25 F(uted)-.2 E .32 LW 144
-676.4 72 676.4 DL/F5 8/Times-Roman@0 SF .781
+678.2 72 678.2 DL/F5 8/Times-Roman@0 SF .781
(\207S. R. Bourne, \231UNIX T)72 688.2 R .781(ime-Sharing System:)-.28 F
.781(The UNIX Shell\232,)4.781 F/F6 8/Times-Italic@0 SF .78
(Bell System T)2.78 F(ec)-.736 E .78(hnical J)-.12 F(ournal)-.2 E F5
@@ -1377,7 +1400,8 @@ E F0(for more information.)2.5 E .694(Bash is also distrib)97 656.4 R
(f, \231Rc \255 A Shell for Plan 9 and)-.2 F/F7 7/Times-Roman@0 SF(UNIX)
2.432 E F5(systems\232,)2.432 E F6(Pr)2.432 E .432
(oc. of the Summer 1990 EUUG Confer)-.36 F(ence)-.296 E F5 2.432(,L)C
-(on-)-2.432 E(don, July)72 720 Q 2(,1)-.52 G(990, pp. 21-33.)-2 E EP
+(on-)-2.432 E(don, July)72 720 Q 2(,1)-.52 G(990, pp. 21-33.)-2 E 0 Cg
+EP
%%Page: 11 11
%%BeginPageSetup
BP
@@ -1410,9 +1434,9 @@ F .8(It is suf)5.8 F .8(\214ciently portable to run on nearly e)-.25 F
(ral thousand re).15 F 1.515(gular users, and their feedback has)-.15 F
(helped to mak)72 235.2 Q 2.5(ei)-.1 G 2.5(ta)-2.5 G 2.5(sg)-2.5 G
(ood as it is today \255 a testament to the bene\214ts of free softw)
--2.5 E(are.)-.1 E .32 LW 144 708.2 72 708.2 DL/F4 8/Times-Roman@0 SF
+-2.5 E(are.)-.1 E .32 LW 144 710 72 710 DL/F4 8/Times-Roman@0 SF
(*BSD/386 is a trademark of Berk)72 720 Q(ele)-.08 E 2(yS)-.12 G(oftw)-2
-E(are Design, Inc.)-.08 E EP
+E(are Design, Inc.)-.08 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/bash.0 b/doc/bash.0
index 86d8b703..c3b29b56 100644
--- a/doc/bash.0
+++ b/doc/bash.0
@@ -6,10 +6,10 @@ NNAAMMEE
bash - GNU Bourne-Again SHell
SSYYNNOOPPSSIISS
- bbaasshh [options] [file]
+ bbaasshh [options] [command_string | file]
CCOOPPYYRRIIGGHHTT
- Bash is Copyright (C) 1989-2010 by the Free Software Foundation, Inc.
+ Bash is Copyright (C) 1989-2013 by the Free Software Foundation, Inc.
DDEESSCCRRIIPPTTIIOONN
BBaasshh is an sshh-compatible command language interpreter that executes
@@ -26,77 +26,80 @@ OOPPTTIIOONNSS
is invoked. In addition, bbaasshh interprets the following options when it
is invoked:
- --cc _s_t_r_i_n_g If the --cc option is present, then commands are read from
- _s_t_r_i_n_g. If there are arguments after the _s_t_r_i_n_g, they are
- assigned to the positional parameters, starting with $$00.
+ --cc If the --cc option is present, then commands are read from the
+ first non-option argument _c_o_m_m_a_n_d___s_t_r_i_n_g. If there are argu-
+ ments after the _c_o_m_m_a_n_d___s_t_r_i_n_g, they are assigned to the
+ positional parameters, starting with $$00.
--ii If the --ii option is present, the shell is _i_n_t_e_r_a_c_t_i_v_e.
--ll Make bbaasshh act as if it had been invoked as a login shell (see
IINNVVOOCCAATTIIOONN below).
- --rr If the --rr option is present, the shell becomes _r_e_s_t_r_i_c_t_e_d
+ --rr If the --rr option is present, the shell becomes _r_e_s_t_r_i_c_t_e_d
(see RREESSTTRRIICCTTEEDD SSHHEELLLL below).
- --ss If the --ss option is present, or if no arguments remain after
- option processing, then commands are read from the standard
- input. This option allows the positional parameters to be
+ --ss If the --ss option is present, or if no arguments remain after
+ option processing, then commands are read from the standard
+ input. This option allows the positional parameters to be
set when invoking an interactive shell.
- --DD A list of all double-quoted strings preceded by $$ is printed
- on the standard output. These are the strings that are sub-
+ --DD A list of all double-quoted strings preceded by $$ is printed
+ on the standard output. These are the strings that are sub-
ject to language translation when the current locale is not CC
- or PPOOSSIIXX. This implies the --nn option; no commands will be
+ or PPOOSSIIXX. This implies the --nn option; no commands will be
executed.
[[--++]]OO [[_s_h_o_p_t___o_p_t_i_o_n]]
- _s_h_o_p_t___o_p_t_i_o_n is one of the shell options accepted by the
- sshhoopptt builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). If
+ _s_h_o_p_t___o_p_t_i_o_n is one of the shell options accepted by the
+ sshhoopptt builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). If
_s_h_o_p_t___o_p_t_i_o_n is present, --OO sets the value of that option; ++OO
- unsets it. If _s_h_o_p_t___o_p_t_i_o_n is not supplied, the names and
- values of the shell options accepted by sshhoopptt are printed on
- the standard output. If the invocation option is ++OO, the
- output is displayed in a format that may be reused as input.
- ---- A ---- signals the end of options and disables further option
- processing. Any arguments after the ---- are treated as file-
+ unsets it. If _s_h_o_p_t___o_p_t_i_o_n is not supplied, the names and
+ values of the shell options accepted by sshhoopptt are printed on
+ the standard output. If the invocation option is ++OO, the
+ output is displayed in a format that may be reused as input.
+ ---- A ---- signals the end of options and disables further option
+ processing. Any arguments after the ---- are treated as file-
names and arguments. An argument of -- is equivalent to ----.
- BBaasshh also interprets a number of multi-character options. These
- options must appear on the command line before the single-character
+ BBaasshh also interprets a number of multi-character options. These
+ options must appear on the command line before the single-character
options to be recognized.
----ddeebbuuggggeerr
Arrange for the debugger profile to be executed before the shell
- starts. Turns on extended debugging mode (see the description
+ starts. Turns on extended debugging mode (see the description
of the eexxttddeebbuugg option to the sshhoopptt builtin below).
----dduummpp--ppoo--ssttrriinnggss
- Equivalent to --DD, but the output is in the GNU _g_e_t_t_e_x_t ppoo (por-
+ Equivalent to --DD, but the output is in the GNU _g_e_t_t_e_x_t ppoo (por-
table object) file format.
----dduummpp--ssttrriinnggss
Equivalent to --DD.
- ----hheellpp Display a usage message on standard output and exit success-
+ ----hheellpp Display a usage message on standard output and exit success-
fully.
----iinniitt--ffiillee _f_i_l_e
----rrccffiillee _f_i_l_e
Execute commands from _f_i_l_e instead of the standard personal ini-
- tialization file _~_/_._b_a_s_h_r_c if the shell is interactive (see
+ tialization file _~_/_._b_a_s_h_r_c if the shell is interactive (see
IINNVVOOCCAATTIIOONN below).
----llooggiinn
Equivalent to --ll.
----nnooeeddiittiinngg
- Do not use the GNU rreeaaddlliinnee library to read command lines when
+ Do not use the GNU rreeaaddlliinnee library to read command lines when
the shell is interactive.
----nnoopprrooffiillee
- Do not read either the system-wide startup file _/_e_t_c_/_p_r_o_f_i_l_e or
- any of the personal initialization files _~_/_._b_a_s_h___p_r_o_f_i_l_e,
- _~_/_._b_a_s_h___l_o_g_i_n, or _~_/_._p_r_o_f_i_l_e. By default, bbaasshh reads these
- files when it is invoked as a login shell (see IINNVVOOCCAATTIIOONN
+ Do not read either the system-wide startup file _/_e_t_c_/_p_r_o_f_i_l_e or
+ any of the personal initialization files _~_/_._b_a_s_h___p_r_o_f_i_l_e,
+ _~_/_._b_a_s_h___l_o_g_i_n, or _~_/_._p_r_o_f_i_l_e. By default, bbaasshh reads these
+ files when it is invoked as a login shell (see IINNVVOOCCAATTIIOONN
below).
----nnoorrcc Do not read and execute the personal initialization file
- _~_/_._b_a_s_h_r_c if the shell is interactive. This option is on by
+ _~_/_._b_a_s_h_r_c if the shell is interactive. This option is on by
default if the shell is invoked as sshh.
----ppoossiixx
- Change the behavior of bbaasshh where the default operation differs
- from the POSIX standard to match the standard (_p_o_s_i_x _m_o_d_e).
+ Change the behavior of bbaasshh where the default operation differs
+ from the POSIX standard to match the standard (_p_o_s_i_x _m_o_d_e). See
+ SSEEEE AALLSSOO below for a reference to a document that details how
+ posix mode affects bash's behavior.
----rreessttrriicctteedd
The shell becomes restricted (see RREESSTTRRIICCTTEEDD SSHHEELLLL below).
@@ -105,113 +108,113 @@ OOPPTTIIOONNSS
Equivalent to --vv.
----vveerrssiioonn
- Show version information for this instance of bbaasshh on the stan-
+ Show version information for this instance of bbaasshh on the stan-
dard output and exit successfully.
AARRGGUUMMEENNTTSS
If arguments remain after option processing, and neither the --cc nor the
- --ss option has been supplied, the first argument is assumed to be the
- name of a file containing shell commands. If bbaasshh is invoked in this
- fashion, $$00 is set to the name of the file, and the positional parame-
- ters are set to the remaining arguments. BBaasshh reads and executes com-
- mands from this file, then exits. BBaasshh's exit status is the exit sta-
- tus of the last command executed in the script. If no commands are
- executed, the exit status is 0. An attempt is first made to open the
+ --ss option has been supplied, the first argument is assumed to be the
+ name of a file containing shell commands. If bbaasshh is invoked in this
+ fashion, $$00 is set to the name of the file, and the positional parame-
+ ters are set to the remaining arguments. BBaasshh reads and executes com-
+ mands from this file, then exits. BBaasshh's exit status is the exit sta-
+ tus of the last command executed in the script. If no commands are
+ executed, the exit status is 0. An attempt is first made to open the
file in the current directory, and, if no file is found, then the shell
searches the directories in PPAATTHH for the script.
IINNVVOOCCAATTIIOONN
- A _l_o_g_i_n _s_h_e_l_l is one whose first character of argument zero is a --, or
+ A _l_o_g_i_n _s_h_e_l_l is one whose first character of argument zero is a --, or
one started with the ----llooggiinn option.
- An _i_n_t_e_r_a_c_t_i_v_e shell is one started without non-option arguments and
+ An _i_n_t_e_r_a_c_t_i_v_e shell is one started without non-option arguments and
without the --cc option whose standard input and error are both connected
- to terminals (as determined by _i_s_a_t_t_y(3)), or one started with the --ii
- option. PPSS11 is set and $$-- includes ii if bbaasshh is interactive, allowing
+ to terminals (as determined by _i_s_a_t_t_y(3)), or one started with the --ii
+ option. PPSS11 is set and $$-- includes ii if bbaasshh is interactive, allowing
a shell script or a startup file to test this state.
- The following paragraphs describe how bbaasshh executes its startup files.
- If any of the files exist but cannot be read, bbaasshh reports an error.
- Tildes are expanded in file names as described below under TTiillddee EExxppaann--
+ The following paragraphs describe how bbaasshh executes its startup files.
+ If any of the files exist but cannot be read, bbaasshh reports an error.
+ Tildes are expanded in filenames as described below under TTiillddee EExxppaann--
ssiioonn in the EEXXPPAANNSSIIOONN section.
- When bbaasshh is invoked as an interactive login shell, or as a non-inter-
- active shell with the ----llooggiinn option, it first reads and executes com-
- mands from the file _/_e_t_c_/_p_r_o_f_i_l_e, if that file exists. After reading
+ When bbaasshh is invoked as an interactive login shell, or as a non-inter-
+ active shell with the ----llooggiinn option, it first reads and executes com-
+ mands from the file _/_e_t_c_/_p_r_o_f_i_l_e, if that file exists. After reading
that file, it looks for _~_/_._b_a_s_h___p_r_o_f_i_l_e, _~_/_._b_a_s_h___l_o_g_i_n, and _~_/_._p_r_o_f_i_l_e,
- in that order, and reads and executes commands from the first one that
- exists and is readable. The ----nnoopprrooffiillee option may be used when the
+ in that order, and reads and executes commands from the first one that
+ exists and is readable. The ----nnoopprrooffiillee option may be used when the
shell is started to inhibit this behavior.
- When a login shell exits, bbaasshh reads and executes commands from the
+ When a login shell exits, bbaasshh reads and executes commands from the
file _~_/_._b_a_s_h___l_o_g_o_u_t, if it exists.
- When an interactive shell that is not a login shell is started, bbaasshh
- reads and executes commands from _~_/_._b_a_s_h_r_c, if that file exists. This
- may be inhibited by using the ----nnoorrcc option. The ----rrccffiillee _f_i_l_e option
- will force bbaasshh to read and execute commands from _f_i_l_e instead of
+ When an interactive shell that is not a login shell is started, bbaasshh
+ reads and executes commands from _~_/_._b_a_s_h_r_c, if that file exists. This
+ may be inhibited by using the ----nnoorrcc option. The ----rrccffiillee _f_i_l_e option
+ will force bbaasshh to read and execute commands from _f_i_l_e instead of
_~_/_._b_a_s_h_r_c.
- When bbaasshh is started non-interactively, to run a shell script, for
+ When bbaasshh is started non-interactively, to run a shell script, for
example, it looks for the variable BBAASSHH__EENNVV in the environment, expands
- its value if it appears there, and uses the expanded value as the name
- of a file to read and execute. BBaasshh behaves as if the following com-
+ its value if it appears there, and uses the expanded value as the name
+ of a file to read and execute. BBaasshh behaves as if the following com-
mand were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
- but the value of the PPAATTHH variable is not used to search for the file
+ but the value of the PPAATTHH variable is not used to search for the file-
name.
- If bbaasshh is invoked with the name sshh, it tries to mimic the startup
- behavior of historical versions of sshh as closely as possible, while
- conforming to the POSIX standard as well. When invoked as an interac-
- tive login shell, or a non-interactive shell with the ----llooggiinn option,
- it first attempts to read and execute commands from _/_e_t_c_/_p_r_o_f_i_l_e and
- _~_/_._p_r_o_f_i_l_e, in that order. The ----nnoopprrooffiillee option may be used to
- inhibit this behavior. When invoked as an interactive shell with the
- name sshh, bbaasshh looks for the variable EENNVV, expands its value if it is
- defined, and uses the expanded value as the name of a file to read and
+ If bbaasshh is invoked with the name sshh, it tries to mimic the startup
+ behavior of historical versions of sshh as closely as possible, while
+ conforming to the POSIX standard as well. When invoked as an interac-
+ tive login shell, or a non-interactive shell with the ----llooggiinn option,
+ it first attempts to read and execute commands from _/_e_t_c_/_p_r_o_f_i_l_e and
+ _~_/_._p_r_o_f_i_l_e, in that order. The ----nnoopprrooffiillee option may be used to
+ inhibit this behavior. When invoked as an interactive shell with the
+ name sshh, bbaasshh looks for the variable EENNVV, expands its value if it is
+ defined, and uses the expanded value as the name of a file to read and
execute. Since a shell invoked as sshh does not attempt to read and exe-
- cute commands from any other startup files, the ----rrccffiillee option has no
- effect. A non-interactive shell invoked with the name sshh does not
- attempt to read any other startup files. When invoked as sshh, bbaasshh
+ cute commands from any other startup files, the ----rrccffiillee option has no
+ effect. A non-interactive shell invoked with the name sshh does not
+ attempt to read any other startup files. When invoked as sshh, bbaasshh
enters _p_o_s_i_x mode after the startup files are read.
- When bbaasshh is started in _p_o_s_i_x mode, as with the ----ppoossiixx command line
+ When bbaasshh is started in _p_o_s_i_x mode, as with the ----ppoossiixx command line
option, it follows the POSIX standard for startup files. In this mode,
- interactive shells expand the EENNVV variable and commands are read and
- executed from the file whose name is the expanded value. No other
+ interactive shells expand the EENNVV variable and commands are read and
+ executed from the file whose name is the expanded value. No other
startup files are read.
BBaasshh attempts to determine when it is being run with its standard input
connected to a network connection, as when executed by the remote shell
- daemon, usually _r_s_h_d, or the secure shell daemon _s_s_h_d. If bbaasshh deter-
- mines it is being run in this fashion, it reads and executes commands
- from _~_/_._b_a_s_h_r_c, if that file exists and is readable. It will not do
- this if invoked as sshh. The ----nnoorrcc option may be used to inhibit this
- behavior, and the ----rrccffiillee option may be used to force another file to
- be read, but _r_s_h_d does not generally invoke the shell with those
- options or allow them to be specified.
+ daemon, usually _r_s_h_d, or the secure shell daemon _s_s_h_d. If bbaasshh deter-
+ mines it is being run in this fashion, it reads and executes commands
+ from _~_/_._b_a_s_h_r_c, if that file exists and is readable. It will not do
+ this if invoked as sshh. The ----nnoorrcc option may be used to inhibit this
+ behavior, and the ----rrccffiillee option may be used to force another file to
+ be read, but neither _r_s_h_d nor _s_s_h_d generally invoke the shell with
+ those options or allow them to be specified.
If the shell is started with the effective user (group) id not equal to
the real user (group) id, and the --pp option is not supplied, no startup
files are read, shell functions are not inherited from the environment,
- the SSHHEELLLLOOPPTTSS, BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they
- appear in the environment, are ignored, and the effective user id is
- set to the real user id. If the --pp option is supplied at invocation,
- the startup behavior is the same, but the effective user id is not
+ the SSHHEELLLLOOPPTTSS, BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they
+ appear in the environment, are ignored, and the effective user id is
+ set to the real user id. If the --pp option is supplied at invocation,
+ the startup behavior is the same, but the effective user id is not
reset.
DDEEFFIINNIITTIIOONNSS
- The following definitions are used throughout the rest of this docu-
+ The following definitions are used throughout the rest of this docu-
ment.
bbllaannkk A space or tab.
- wwoorrdd A sequence of characters considered as a single unit by the
+ wwoorrdd A sequence of characters considered as a single unit by the
shell. Also known as a ttookkeenn.
- nnaammee A _w_o_r_d consisting only of alphanumeric characters and under-
- scores, and beginning with an alphabetic character or an under-
+ nnaammee A _w_o_r_d consisting only of alphanumeric characters and under-
+ scores, and beginning with an alphabetic character or an under-
score. Also referred to as an iiddeennttiiffiieerr.
mmeettaacchhaarraacctteerr
- A character that, when unquoted, separates words. One of the
+ A character that, when unquoted, separates words. One of the
following:
|| && ;; (( )) << >> ssppaaccee ttaabb
ccoonnttrrooll ooppeerraattoorr
@@ -222,36 +225,37 @@ DDEEFFIINNIITTIIOONNSS
RREESSEERRVVEEDD WWOORRDDSS
_R_e_s_e_r_v_e_d _w_o_r_d_s are words that have a special meaning to the shell. The
following words are recognized as reserved when unquoted and either the
- first word of a simple command (see SSHHEELLLL GGRRAAMMMMAARR below) or the third
+ first word of a simple command (see SSHHEELLLL GGRRAAMMMMAARR below) or the third
word of a ccaassee or ffoorr command:
- !! ccaassee ddoo ddoonnee eelliiff eellssee eessaacc ffii ffoorr ffuunnccttiioonn iiff iinn sseelleecctt tthheenn uunnttiill
- wwhhiillee {{ }} ttiimmee [[[[ ]]]]
+ !! ccaassee ccoopprroocc ddoo ddoonnee eelliiff eellssee eessaacc ffii ffoorr ffuunnccttiioonn iiff iinn sseelleecctt
+ tthheenn uunnttiill wwhhiillee {{ }} ttiimmee [[[[ ]]]]
SSHHEELLLL GGRRAAMMMMAARR
SSiimmppllee CCoommmmaannddss
- A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol-
- lowed by bbllaannkk-separated words and redirections, and terminated by a
+ A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol-
+ lowed by bbllaannkk-separated words and redirections, and terminated by a
_c_o_n_t_r_o_l _o_p_e_r_a_t_o_r. The first word specifies the command to be executed,
- and is passed as argument zero. The remaining words are passed as
+ and is passed as argument zero. The remaining words are passed as
arguments to the invoked command.
- The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if
+ The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if
the command is terminated by signal _n.
PPiippeelliinneess
- A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of
+ A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of
the control operators || or ||&&. The format for a pipeline is:
[ttiimmee [--pp]] [ ! ] _c_o_m_m_a_n_d [ [|||||&&] _c_o_m_m_a_n_d_2 ... ]
- The standard output of _c_o_m_m_a_n_d is connected via a pipe to the standard
- input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec-
+ The standard output of _c_o_m_m_a_n_d is connected via a pipe to the standard
+ input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec-
tions specified by the command (see RREEDDIIRREECCTTIIOONN below). If ||&& is used,
- the standard error of _c_o_m_m_a_n_d is connected to _c_o_m_m_a_n_d_2's standard input
- through the pipe; it is shorthand for 22>>&&11 ||. This implicit redirect-
- ion of the standard error is performed after any redirections specified
- by the command.
+ _c_o_m_m_a_n_d's standard error, in addition to its standard output, is con-
+ nected to _c_o_m_m_a_n_d_2's standard input through the pipe; it is shorthand
+ for 22>>&&11 ||. This implicit redirection of the standard error to the
+ standard output is performed after any redirections specified by the
+ command.
The return status of a pipeline is the exit status of the last command,
unless the ppiippeeffaaiill option is enabled. If ppiippeeffaaiill is enabled, the
@@ -316,75 +320,84 @@ SSHHEELLLL GGRRAAMMMMAARR
the last command executed in the list.
CCoommppoouunndd CCoommmmaannddss
- A _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d is one of the following:
-
- (_l_i_s_t) _l_i_s_t is executed in a subshell environment (see CCOOMMMMAANNDD EEXXEECCUU--
- TTIIOONN EENNVVIIRROONNMMEENNTT below). Variable assignments and builtin com-
- mands that affect the shell's environment do not remain in
- effect after the command completes. The return status is the
+ A _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d is one of the following. In most cases a _l_i_s_t in a
+ command's description may be separated from the rest of the command by
+ one or more newlines, and may be followed by a newline in place of a
+ semicolon.
+
+ (_l_i_s_t) _l_i_s_t is executed in a subshell environment (see CCOOMMMMAANNDD EEXXEECCUU--
+ TTIIOONN EENNVVIIRROONNMMEENNTT below). Variable assignments and builtin com-
+ mands that affect the shell's environment do not remain in
+ effect after the command completes. The return status is the
exit status of _l_i_s_t.
{ _l_i_s_t; }
- _l_i_s_t is simply executed in the current shell environment. _l_i_s_t
- must be terminated with a newline or semicolon. This is known
- as a _g_r_o_u_p _c_o_m_m_a_n_d. The return status is the exit status of
- _l_i_s_t. Note that unlike the metacharacters (( and )), {{ and }} are
+ _l_i_s_t is simply executed in the current shell environment. _l_i_s_t
+ must be terminated with a newline or semicolon. This is known
+ as a _g_r_o_u_p _c_o_m_m_a_n_d. The return status is the exit status of
+ _l_i_s_t. Note that unlike the metacharacters (( and )), {{ and }} are
_r_e_s_e_r_v_e_d _w_o_r_d_s 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 _l_i_s_t by whitespace or another shell
+ to be recognized. Since they do not cause a word break, they
+ must be separated from _l_i_s_t by whitespace or another shell
metacharacter.
((_e_x_p_r_e_s_s_i_o_n))
- The _e_x_p_r_e_s_s_i_o_n is evaluated according to the rules described
- below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If the value of the expres-
- sion is non-zero, the return status is 0; otherwise the return
+ The _e_x_p_r_e_s_s_i_o_n is evaluated according to the rules described
+ below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If the value of the expres-
+ sion is non-zero, the return status is 0; otherwise the return
status is 1. This is exactly equivalent to lleett ""_e_x_p_r_e_s_s_i_o_n"".
[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]
- Return a status of 0 or 1 depending on the evaluation of the
- conditional expression _e_x_p_r_e_s_s_i_o_n. Expressions are composed of
- the primaries described below under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
- Word splitting and pathname expansion are not performed on the
- words between the [[[[ and ]]]]; tilde expansion, parameter and
- variable expansion, arithmetic expansion, command substitution,
- process substitution, and quote removal are performed. Condi-
+ Return a status of 0 or 1 depending on the evaluation of the
+ conditional expression _e_x_p_r_e_s_s_i_o_n. Expressions are composed of
+ the primaries described below under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
+ Word splitting and pathname expansion are not performed on the
+ words between the [[[[ and ]]]]; tilde expansion, parameter and
+ variable expansion, arithmetic expansion, command substitution,
+ process substitution, and quote removal are performed. Condi-
tional operators such as --ff must be unquoted to be recognized as
primaries.
- When used with [[[[, the << and >> operators sort lexicographically
+ When used with [[[[, the << and >> operators sort lexicographically
using the current locale.
- When the ==== and !!== operators are used, the string to the right
+ 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 under PPaatttteerrnn MMaattcchhiinngg. If the shell
- option nnooccaasseemmaattcchh 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 pat-
- tern, 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
- right of the operator is considered an extended regular expres-
+ the rules described below under PPaatttteerrnn MMaattcchhiinngg, as if the eexxtt--
+ gglloobb shell option were enabled. The == operator is equivalent to
+ ====. If the shell option nnooccaasseemmaattcchh 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 pat-
+ tern may be quoted to force the quoted portion 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
+ right of the operator is considered an extended regular expres-
sion and matched accordingly (as in _r_e_g_e_x(3)). The return value
is 0 if the string matches the pattern, and 1 otherwise. If the
- regular expression is syntactically incorrect, the conditional
+ regular expression is syntactically incorrect, the conditional
expression's return value is 2. If the shell option nnooccaasseemmaattcchh
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 BBAASSHH__RREEMMAATTCCHH. The element of
- BBAASSHH__RREEMMAATTCCHH with index 0 is the portion of the string matching
- the entire regular expression. The element of BBAASSHH__RREEMMAATTCCHH with
- index _n is the portion of the string matching the _nth parenthe-
- sized subexpression.
-
- Expressions may be combined using the following operators,
+ force the quoted portion to be matched as a string. Bracket
+ expressions in regular expressions must be treated carefully,
+ since normal quoting characters lose their meanings between
+ brackets. If the pattern is stored in a shell variable, quoting
+ the variable expansion forces the entire pattern to be matched
+ as a string. Substrings matched by parenthesized subexpressions
+ within the regular expression are saved in the array variable
+ BBAASSHH__RREEMMAATTCCHH. The element of BBAASSHH__RREEMMAATTCCHH with index 0 is the
+ portion of the string matching the entire regular expression.
+ The element of BBAASSHH__RREEMMAATTCCHH 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:
(( _e_x_p_r_e_s_s_i_o_n ))
- Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
+ Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
override the normal precedence of operators.
!! _e_x_p_r_e_s_s_i_o_n
True if _e_x_p_r_e_s_s_i_o_n is false.
@@ -394,115 +407,118 @@ SSHHEELLLL GGRRAAMMMMAARR
True if either _e_x_p_r_e_s_s_i_o_n_1 or _e_x_p_r_e_s_s_i_o_n_2 is true.
The &&&& and |||| operators do not evaluate _e_x_p_r_e_s_s_i_o_n_2 if the value
- of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
+ of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
the entire conditional expression.
ffoorr _n_a_m_e [ [ iinn [ _w_o_r_d _._._. ] ] ; ] ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
items. The variable _n_a_m_e is set to each element of this list in
- turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
- ted, the ffoorr command executes _l_i_s_t once for each positional
+ turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
+ ted, the ffoorr command executes _l_i_s_t once for each positional
parameter that is set (see PPAARRAAMMEETTEERRSS below). The return status
- is the exit status of the last command that executes. If the
+ is the exit status of the last command that executes. If the
expansion of the items following iinn results in an empty list, no
commands are executed, and the return status is 0.
ffoorr (( _e_x_p_r_1 ; _e_x_p_r_2 ; _e_x_p_r_3 )) ; ddoo _l_i_s_t ; ddoonnee
First, the arithmetic expression _e_x_p_r_1 is evaluated according to
- the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
- arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
- it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
- value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
- evaluated. If any expression is omitted, it behaves as if it
+ the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
+ arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
+ it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
+ value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
+ evaluated. If any expression is omitted, it behaves as if it
evaluates to 1. The return value is the exit status of the last
command in _l_i_s_t that is executed, or false if any of the expres-
sions is invalid.
sseelleecctt _n_a_m_e [ iinn _w_o_r_d ] ; ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
- items. The set of expanded words is printed on the standard
- error, each preceded by a number. If the iinn _w_o_r_d is omitted,
- the positional parameters are printed (see PPAARRAAMMEETTEERRSS below).
- The PPSS33 prompt is then displayed and a line read from the stan-
- dard input. If the line consists of a number corresponding to
- one of the displayed words, then the value of _n_a_m_e is set to
- that word. If the line is empty, the words and prompt are dis-
+ items. The set of expanded words is printed on the standard
+ error, each preceded by a number. If the iinn _w_o_r_d is omitted,
+ the positional parameters are printed (see PPAARRAAMMEETTEERRSS below).
+ The PPSS33 prompt is then displayed and a line read from the stan-
+ dard input. If the line consists of a number corresponding to
+ one of the displayed words, then the value of _n_a_m_e is set to
+ that word. If the line is empty, the words and prompt are dis-
played again. If EOF is read, the command completes. Any other
- value read causes _n_a_m_e to be set to null. The line read is
- saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each
+ value read causes _n_a_m_e to be set to null. The line read is
+ saved in the variable RREEPPLLYY. The _l_i_s_t is executed after each
selection until a bbrreeaakk command is executed. The exit status of
- sseelleecctt is the exit status of the last command executed in _l_i_s_t,
+ sseelleecctt is the exit status of the last command executed in _l_i_s_t,
or zero if no commands were executed.
ccaassee _w_o_r_d iinn [ [(] _p_a_t_t_e_r_n [ || _p_a_t_t_e_r_n ] ... ) _l_i_s_t ;; ] ... eessaacc
A ccaassee command first expands _w_o_r_d, and tries to match it against
each _p_a_t_t_e_r_n in turn, using the same matching rules as for path-
- name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is
- expanded using tilde expansion, parameter and variable expan-
- sion, arithmetic substitution, command substitution, process
- substitution and quote removal. Each _p_a_t_t_e_r_n examined is
+ name expansion (see PPaatthhnnaammee EExxppaannssiioonn below). The _w_o_r_d is
expanded using tilde expansion, parameter and variable expan-
+ sion, arithmetic substitution, command substitution, process
+ substitution and quote removal. Each _p_a_t_t_e_r_n examined is
+ expanded using tilde expansion, parameter and variable expan-
sion, arithmetic substitution, command substitution, and process
- substitution. If the shell option nnooccaasseemmaattcchh is enabled, the
- match is performed without regard to the case of alphabetic
- characters. When a match is found, the corresponding _l_i_s_t is
+ substitution. If the shell option nnooccaasseemmaattcchh is enabled, the
+ match is performed without regard to the case of alphabetic
+ characters. When a match is found, the corresponding _l_i_s_t is
executed. 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 _l_i_s_t associated with
- the next set of patterns. Using ;;;;&& in place of ;;;; causes the
- shell to test the next pattern list in the statement, if any,
+ attempted after the first pattern match. Using ;;&& in place of
+ ;;;; causes execution to continue with the _l_i_s_t associated with
+ the next set of patterns. Using ;;;;&& in place of ;;;; causes the
+ shell to test the next pattern list in the statement, if any,
and execute any associated _l_i_s_t 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 _l_i_s_t.
- iiff _l_i_s_t; tthheenn _l_i_s_t_; [ eelliiff _l_i_s_t; tthheenn _l_i_s_t; ] ... [ eellssee _l_i_s_t; ] ffii
- The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
- _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
- turn, and if its exit status is zero, the corresponding tthheenn
+ iiff _l_i_s_t; tthheenn _l_i_s_t; [ eelliiff _l_i_s_t; tthheenn _l_i_s_t; ] ... [ eellssee _l_i_s_t; ] ffii
+ The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
+ _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
+ turn, and if its exit status is zero, the corresponding tthheenn
_l_i_s_t is executed and the command completes. Otherwise, the eellssee
- _l_i_s_t is executed, if present. The exit status is the exit sta-
+ _l_i_s_t is executed, if present. The exit status is the exit sta-
tus of the last command executed, or zero if no condition tested
true.
wwhhiillee _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee
uunnttiill _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee
- The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long
+ The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long
as the last command in the list _l_i_s_t_-_1 returns an exit status of
- zero. The uunnttiill command is identical to the wwhhiillee command,
- except that the test is negated; _l_i_s_t_-_2 is executed as long as
- the last command in _l_i_s_t_-_1 returns a non-zero exit status. The
- exit status of the wwhhiillee and uunnttiill commands is the exit status
+ zero. The uunnttiill command is identical to the wwhhiillee command,
+ except that the test is negated; _l_i_s_t_-_2 is executed as long as
+ the last command in _l_i_s_t_-_1 returns a non-zero exit status. The
+ exit status of the wwhhiillee and uunnttiill commands is the exit status
of the last command executed in _l_i_s_t_-_2, or zero if none was exe-
cuted.
CCoopprroocceesssseess
A _c_o_p_r_o_c_e_s_s is a shell command preceded by the ccoopprroocc 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
+ 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:
ccoopprroocc [_N_A_M_E] _c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n_s]
- This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the
- default name is _C_O_P_R_O_C. _N_A_M_E must not be supplied if _c_o_m_m_a_n_d is a _s_i_m_-
+ This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the
+ default name is CCOOPPRROOCC. _N_A_M_E must not be supplied if _c_o_m_m_a_n_d is a _s_i_m_-
_p_l_e _c_o_m_m_a_n_d (see above); otherwise, it is interpreted as the first word
- of the simple command. When the coproc is executed, the shell creates
- an array variable (see AArrrraayyss below) named _N_A_M_E in the context of the
- executing shell. The standard output of _c_o_m_m_a_n_d is connected via a
- pipe to a file descriptor in the executing shell, and that file
- descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is
- connected via a pipe to a file descriptor in the executing shell, and
- that file descriptor is assigned to _N_A_M_E[1]. This pipe is established
- before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN
- 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 _N_A_M_E_PID. The wwaaiitt builtin command may be used
- to wait for the coprocess to terminate.
-
- The return status of a coprocess is the exit status of _c_o_m_m_a_n_d.
+ of the simple command. When the coprocess is executed, the shell cre-
+ ates an array variable (see AArrrraayyss below) named _N_A_M_E in the context of
+ the executing shell. The standard output of _c_o_m_m_a_n_d is connected via a
+ pipe to a file descriptor in the executing shell, and that file
+ descriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is
+ connected via a pipe to a file descriptor in the executing shell, and
+ that file descriptor is assigned to _N_A_M_E[1]. This pipe is established
+ before any redirections specified by the command (see RREEDDIIRREECCTTIIOONN
+ below). The file descriptors can be utilized as arguments to shell
+ commands and redirections using standard word expansions. The file
+ descriptors are not available in subshells. The process ID of the
+ shell spawned to execute the coprocess is available as the value of the
+ variable _N_A_M_E_PID. The wwaaiitt builtin command may be used to wait for
+ the coprocess to terminate.
+
+ Since the coprocess is created as an asynchronous command, the ccoopprroocc
+ command always returns success. The return status of a coprocess is
+ the exit status of _c_o_m_m_a_n_d.
SShheellll FFuunnccttiioonn DDeeffiinniittiioonnss
A shell function is an object that is called like a simple command and
@@ -518,65 +534,66 @@ SSHHEELLLL GGRRAAMMMMAARR
That command is usually a _l_i_s_t of commands between { and }, but
may be any command listed under CCoommppoouunndd CCoommmmaannddss above. _c_o_m_-
_p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _n_a_m_e is specified as the name
- of a simple command. Any redirections (see RREEDDIIRREECCTTIIOONN below)
- specified when a function is defined are performed when the
- function is executed. The exit status of a function definition
- is zero unless a syntax error occurs or a readonly function with
- the same name already exists. When executed, the exit status of
- a function is the exit status of the last command executed in
- the body. (See FFUUNNCCTTIIOONNSS below.)
+ of a simple command. When in _p_o_s_i_x _m_o_d_e, _n_a_m_e may not be the
+ name of one of the POSIX _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. Any redirections
+ (see RREEDDIIRREECCTTIIOONN below) specified when a function is defined are
+ performed when the function is executed. The exit status of a
+ function definition is zero unless a syntax error occurs or a
+ readonly function with the same name already exists. When exe-
+ cuted, the exit status of a function is the exit status of the
+ last command executed in the body. (See FFUUNNCCTTIIOONNSS below.)
CCOOMMMMEENNTTSS
In a non-interactive shell, or an interactive shell in which the iinntteerr--
- aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and
- all remaining characters on that line to be ignored. An interactive
- shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow
+ aaccttiivvee__ccoommmmeennttss option to the sshhoopptt builtin is enabled (see SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below), a word beginning with ## causes that word and
+ all remaining characters on that line to be ignored. An interactive
+ shell without the iinntteerraaccttiivvee__ccoommmmeennttss option enabled does not allow
comments. The iinntteerraaccttiivvee__ccoommmmeennttss option is on by default in interac-
tive shells.
QQUUOOTTIINNGG
- _Q_u_o_t_i_n_g is used to remove the special meaning of certain characters or
- words to the shell. Quoting can be used to disable special treatment
+ _Q_u_o_t_i_n_g is used to remove the special meaning of certain characters or
+ words to the shell. Quoting can be used to disable special treatment
for special characters, to prevent reserved words from being recognized
as such, and to prevent parameter expansion.
- Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS has special
+ Each of the _m_e_t_a_c_h_a_r_a_c_t_e_r_s listed above under DDEEFFIINNIITTIIOONNSS has special
meaning to the shell and must be quoted if it is to represent itself.
- When the command history expansion facilities are being used (see HHIISS--
+ When the command history expansion facilities are being used (see HHIISS--
TTOORRYY EEXXPPAANNSSIIOONN below), the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, usually !!, must
be quoted to prevent history expansion.
- There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single
+ There are three quoting mechanisms: the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r, single
quotes, and double quotes.
- A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the
+ A non-quoted backslash (\\) is the _e_s_c_a_p_e _c_h_a_r_a_c_t_e_r. It preserves the
literal value of the next character that follows, with the exception of
- <newline>. If a \\<newline> pair appears, and the backslash is not
- itself quoted, the \\<newline> is treated as a line continuation (that
+ <newline>. If a \\<newline> pair appears, and the backslash is not
+ itself quoted, the \\<newline> is treated as a line continuation (that
is, it is removed from the input stream and effectively ignored).
- Enclosing characters in single quotes preserves the literal value of
+ Enclosing characters in single quotes preserves the literal value of
each character within the quotes. A single quote may not occur 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 $$, ``, \\, and,
- when history expansion is enabled, !!. The characters $$ and `` retain
- their special meaning within double quotes. The backslash retains its
- special meaning only when followed by one of the following characters:
- $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double
+ Enclosing characters in double quotes preserves the literal value of
+ all characters within the quotes, with the exception of $$, ``, \\, and,
+ when history expansion is enabled, !!. The characters $$ and `` retain
+ their special meaning within double quotes. The backslash retains its
+ special meaning only when followed by one of the following characters:
+ $$, ``, "", \\, or <<nneewwlliinnee>>. A double quote may be quoted within double
quotes by preceding it with a backslash. If enabled, history expansion
- will be performed unless an !! appearing in double quotes is escaped
+ will be performed unless an !! appearing in double quotes is escaped
using a backslash. The backslash preceding the !! is not removed.
- The special parameters ** and @@ have special meaning when in double
+ The special parameters ** and @@ have special meaning when in double
quotes (see PPAARRAAMMEETTEERRSS below).
Words of the form $$'_s_t_r_i_n_g' are treated specially. The word expands to
- _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the
- ANSI C standard. Backslash escape sequences, if present, are decoded
+ _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the
+ ANSI C standard. Backslash escape sequences, if present, are decoded
as follows:
\\aa alert (bell)
\\bb backspace
@@ -590,112 +607,142 @@ QQUUOOTTIINNGG
\\\\ backslash
\\'' single quote
\\"" double quote
- \\_n_n_n the eight-bit character whose value is the octal value
+ \\_n_n_n the eight-bit character whose value is the octal value
_n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
- \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
+ \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H (one to four hex digits)
\\UU_H_H_H_H_H_H_H_H
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits)
\\cc_x a control-_x character
- The expanded result is single-quoted, as if the dollar sign had not
+ The expanded result is single-quoted, as if the dollar sign had not
been present.
A double-quoted string preceded by a dollar sign ($$"_s_t_r_i_n_g") will cause
- the string to be translated according to the current locale. If the
- current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the
+ the string to be translated according to the current locale. If the
+ current locale is CC or PPOOSSIIXX, the dollar sign is ignored. If the
string is translated and replaced, the replacement is double-quoted.
PPAARRAAMMEETTEERRSS
- A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
+ A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
ber, or one of the special characters listed below under SSppeecciiaall PPaarraamm--
- eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
- _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
- ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS).
+ eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
+ _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
+ ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS).
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
+ a valid value. Once a variable is set, it may be unset only by using
the uunnsseett builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
A _v_a_r_i_a_b_l_e may be assigned to by a statement of the form
_n_a_m_e=[_v_a_l_u_e]
- If _v_a_l_u_e is not given, the variable is assigned the null string. All
- _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
- mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
+ If _v_a_l_u_e is not given, the variable is assigned the null string. All
+ _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
+ mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
SSIIOONN below). If the variable has its iinntteeggeerr attribute set, then _v_a_l_u_e
is evaluated as an arithmetic expression even if the $((...)) expansion
- is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not
- performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall
- PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state-
- ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett,
- eexxppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands.
-
- In the context where an assignment statement is assigning a value to a
+ is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not
+ performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall
+ PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state-
+ ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett,
+ eexxppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands. When in _p_o_s_i_x _m_o_d_e,
+ these builtins may appear in a command after one or more instances of
+ the ccoommmmaanndd builtin and retain these assignment statement properties.
+
+ In the context where an assignment statement is assigning a value to a
shell variable or array index, the += operator can be used to append to
or add to the variable's previous value. When += is applied to a vari-
- able for which the _i_n_t_e_g_e_r attribute has been set, _v_a_l_u_e is evaluated
- as an arithmetic expression and added to the variable's current value,
+ able for which the _i_n_t_e_g_e_r attribute has been set, _v_a_l_u_e is evaluated
+ as an arithmetic expression and added to the variable's current value,
which is also evaluated. When += is applied to an array variable using
- compound assignment (see AArrrraayyss below), the variable's value is not
+ compound assignment (see AArrrraayyss 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 (for indexed
+ 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, _v_a_l_u_e is expanded and
+ When applied to a string-valued variable, _v_a_l_u_e is expanded and
appended to the variable's value.
+ A variable can be assigned the _n_a_m_e_r_e_f attribute using the --nn option to
+ the ddeeccllaarree or llooccaall builtin commands (see the descriptions of ddeeccllaarree
+ and llooccaall below) to create a _n_a_m_e_r_e_f, or a reference to another vari-
+ able. This allows variables to be manipulated indirectly. Whenever
+ the nameref variable is referenced or assigned to, the operation is
+ actually performed on the variable specified by the nameref variable's
+ value. A nameref is commonly used within shell functions to refer to a
+ variable whose name is passed as an argument to the function. For
+ instance, if a variable name is passed to a shell function as its first
+ argument, running
+ declare -n ref=$1
+ inside the function creates a nameref variable rreeff whose value is the
+ variable name passed as the first argument. References and assignments
+ to rreeff are treated as references and assignments to the variable whose
+ name was passed as $$11. If the control variable in a ffoorr loop has the
+ nameref attribute, the list of words can be a list of shell variables,
+ and a name reference will be established for each word in the list, in
+ turn, when the loop is executed. Array variables cannot be given the
+ --nn attribute. However, nameref variables can reference array variables
+ and subscripted array variables. Namerefs can be unset using the --nn
+ option to the uunnsseett builtin. Otherwise, if uunnsseett is executed with the
+ name of a nameref variable as an argument, the variable referenced by
+ the nameref variable will be unset.
+
PPoossiittiioonnaall PPaarraammeetteerrss
- A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
+ A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
other than the single digit 0. Positional parameters are assigned from
- the shell's arguments when it is invoked, and may be reassigned using
- the sseett builtin command. Positional parameters may not be assigned to
- with assignment statements. The positional parameters are temporarily
+ the shell's arguments when it is invoked, and may be reassigned using
+ the sseett builtin command. Positional parameters may not be assigned to
+ with assignment statements. The positional parameters are temporarily
replaced when a shell function is executed (see FFUUNNCCTTIIOONNSS below).
- When a positional parameter consisting of more than a single digit is
+ When a positional parameter consisting of more than a single digit is
expanded, it must be enclosed in braces (see EEXXPPAANNSSIIOONN below).
SSppeecciiaall PPaarraammeetteerrss
- The shell treats several parameters specially. These parameters may
+ The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.
- ** Expands to the positional parameters, starting from one. When
- the expansion occurs within double quotes, it expands to a sin-
- gle word with the value of each parameter separated by the first
- character of the IIFFSS special variable. That is, "$$**" is equiva-
- lent to "$$11_c$$22_c......", where _c is the first character of the value
- of the IIFFSS variable. If IIFFSS is unset, the parameters are sepa-
- rated by spaces. If IIFFSS is null, the parameters are joined
- without intervening separators.
- @@ Expands to the positional parameters, starting from one. When
+ ** Expands to the positional parameters, starting from one. When
+ the expansion is not within double quotes, each positional
+ parameter expands to a separate word. In contexts where it is
+ performed, those words are subject to further word splitting and
+ pathname expansion. When the expansion occurs within double
+ quotes, it expands to a single word with the value of each
+ parameter separated by the first character of the IIFFSS special
+ variable. That is, "$$**" is equivalent to "$$11_c$$22_c......", where _c
+ is the first character of the value of the IIFFSS variable. If IIFFSS
+ is unset, the parameters are separated by spaces. If IIFFSS is
+ null, the parameters are joined without intervening separators.
+ @@ Expands to the positional parameters, starting from one. When
the expansion occurs within double quotes, each parameter
expands to a separate word. That is, "$$@@" is equivalent to "$$11"
- "$$22" ... If the double-quoted expansion occurs within a word,
- the expansion of the first parameter is joined with the begin-
- ning part of the original word, and the expansion of the last
- parameter is joined with the last part of the original word.
- When there are no positional parameters, "$$@@" and $$@@ expand to
+ "$$22" ... If the double-quoted expansion occurs within a word,
+ the expansion of the first parameter is joined with the begin-
+ ning part of the original word, and the expansion of the last
+ parameter is joined with the last part of the original word.
+ When there are no positional parameters, "$$@@" and $$@@ expand to
nothing (i.e., they are removed).
## Expands to the number of positional parameters in decimal.
- ?? Expands to the exit status of the most recently executed fore-
+ ?? Expands to the exit status of the most recently executed fore-
ground pipeline.
- -- Expands to the current option flags as specified upon invoca-
- tion, by the sseett builtin command, or those set by the shell
+ -- Expands to the current option flags as specified upon invoca-
+ tion, by the sseett builtin command, or those set by the shell
itself (such as the --ii option).
- $$ Expands to the process ID of the shell. In a () subshell, it
- expands to the process ID of the current shell, not the sub-
+ $$ Expands to the process ID of the shell. In a () subshell, it
+ expands to the process ID of the current shell, not the sub-
shell.
- !! Expands to the process ID of the most recently executed back-
- ground (asynchronous) command.
+ !! Expands to the process ID of the job most recently placed into
+ the background, whether executed as an asynchronous command or
+ using the bbgg builtin (see JJOOBB CCOONNTTRROOLL below).
00 Expands to the name of the shell or shell script. This is set
at shell initialization. If bbaasshh is invoked with a file of com-
mands, $$00 is set to the name of that file. If bbaasshh is started
with the --cc option, then $$00 is set to the first argument after
the string to be executed, if one is present. Otherwise, it is
- set to the file name used to invoke bbaasshh, as given by argument
+ set to the filename used to invoke bbaasshh, as given by argument
zero.
__ At shell startup, set to the absolute pathname used to invoke
the shell or shell script being executed as passed in the envi-
@@ -709,7 +756,7 @@ PPAARRAAMMEETTEERRSS
SShheellll VVaarriiaabblleess
The following variables are set by the shell:
- BBAASSHH Expands to the full file name used to invoke this instance of
+ BBAASSHH Expands to the full filename used to invoke this instance of
bbaasshh.
BBAASSHHOOPPTTSS
A colon-separated list of enabled shell options. Each word in
@@ -780,214 +827,196 @@ PPAARRAAMMEETTEERRSS
defined in the file $${{BBAASSHH__SSOOUURRCCEE[[_$_i]]}} and called from
$${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}}.
BBAASSHH__SSUUBBSSHHEELLLL
- Incremented by one each time a subshell or subshell environment
- is spawned. The initial value is 0.
+ Incremented by one within each subshell or subshell environment
+ when the shell begins executing in that environment. The ini-
+ tial value is 0.
BBAASSHH__VVEERRSSIINNFFOO
A readonly array variable whose members hold version information
- for this instance of bbaasshh. The values assigned to the array
+ for this instance of bbaasshh. The values assigned to the array
members are as follows:
- BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e).
- BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n).
+ BBAASSHH__VVEERRSSIINNFFOO[[0]] The major version number (the _r_e_l_e_a_s_e).
+ BBAASSHH__VVEERRSSIINNFFOO[[1]] The minor version number (the _v_e_r_s_i_o_n).
BBAASSHH__VVEERRSSIINNFFOO[[2]] The patch level.
BBAASSHH__VVEERRSSIINNFFOO[[3]] The build version.
BBAASSHH__VVEERRSSIINNFFOO[[4]] The release status (e.g., _b_e_t_a_1).
BBAASSHH__VVEERRSSIINNFFOO[[5]] The value of MMAACCHHTTYYPPEE.
-
BBAASSHH__VVEERRSSIIOONN
- Expands to a string describing the version of this instance of
+ Expands to a string describing the version of this instance of
bbaasshh.
-
CCOOMMPP__CCWWOORRDD
- An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current
+ An index into $${{CCOOMMPP__WWOORRDDSS}} of the word containing the current
cursor position. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ tions invoked by the programmable completion facilities (see
PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
-
CCOOMMPP__KKEEYY
The key (or final key of a key sequence) used to invoke the cur-
rent completion function.
-
CCOOMMPP__LLIINNEE
- The current command line. This variable is available only in
- shell functions and external commands invoked by the pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ The current command line. This variable is available only in
+ shell functions and external commands invoked by the pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
-
CCOOMMPP__PPOOIINNTT
- The index of the current cursor position relative to the begin-
- ning of the current command. If the current cursor position is
+ The index of the current cursor position relative to the begin-
+ ning of the current command. If the current cursor position is
at the end of the current command, the value of this variable is
- equal to $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in
- shell functions and external commands invoked by the pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ equal to $${{##CCOOMMPP__LLIINNEE}}. This variable is available only in
+ shell functions and external commands invoked by the pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
-
CCOOMMPP__TTYYPPEE
- Set to an integer value corresponding to the type of completion
- attempted that caused a completion function to be called: _T_A_B,
- for normal completion, _?, for listing completions after succes-
- sive tabs, _!, for listing alternatives on partial word comple-
- tion, _@, 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 pro-
- grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
+ Set to an integer value corresponding to the type of completion
+ attempted that caused a completion function to be called: _T_A_B,
+ for normal completion, _?, for listing completions after succes-
+ sive tabs, _!, for listing alternatives on partial word comple-
+ tion, _@, 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 pro-
+ grammable completion facilities (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn
below).
-
CCOOMMPP__WWOORRDDBBRREEAAKKSS
- The set of characters that the rreeaaddlliinnee library treats as word
- separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS
- is unset, it loses its special properties, even if it is subse-
+ The set of characters that the rreeaaddlliinnee library treats as word
+ separators when performing word completion. If CCOOMMPP__WWOORRDDBBRREEAAKKSS
+ is unset, it loses its special properties, even if it is subse-
quently reset.
-
CCOOMMPP__WWOORRDDSS
- An array variable (see AArrrraayyss below) consisting of the individ-
- ual words in the current command line. The line is split into
- words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as
+ An array variable (see AArrrraayyss below) consisting of the individ-
+ ual words in the current command line. The line is split into
+ words as rreeaaddlliinnee would split it, using CCOOMMPP__WWOORRDDBBRREEAAKKSS as
described above. This variable is available only in shell func-
- tions invoked by the programmable completion facilities (see
+ tions invoked by the programmable completion facilities (see
PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
-
- CCOOPPRROOCC An array variable (see AArrrraayyss below) created to hold the file
- descriptors for output from and input to an unnamed coprocess
+ CCOOPPRROOCC An array variable (see AArrrraayyss below) created to hold the file
+ descriptors for output from and input to an unnamed coprocess
(see CCoopprroocceesssseess above).
-
DDIIRRSSTTAACCKK
An array variable (see AArrrraayyss below) containing the current con-
- tents of the directory stack. Directories appear in the stack
- in the order they are displayed by the ddiirrss builtin. Assigning
+ tents of the directory stack. Directories appear in the stack
+ in the order they are displayed by the ddiirrss builtin. Assigning
to members of this array variable may be used to modify directo-
- ries already in the stack, but the ppuusshhdd and ppooppdd builtins must
+ ries already in the stack, but the ppuusshhdd and ppooppdd builtins must
be used to add and remove directories. Assignment to this vari-
- able will not change the current directory. If DDIIRRSSTTAACCKK is
- unset, it loses its special properties, even if it is subse-
+ able will not change the current directory. If DDIIRRSSTTAACCKK is
+ unset, it loses its special properties, even if it is subse-
quently reset.
-
- EEUUIIDD Expands to the effective user ID of the current user, initial-
+ EEUUIIDD Expands to the effective user ID of the current user, initial-
ized at shell startup. This variable is readonly.
-
FFUUNNCCNNAAMMEE
- An array variable containing the names of all shell functions
+ 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 bot-
- tom-most element (the one with the highest index) is "main".
- This variable exists only when a shell function is executing.
- Assignments to FFUUNNCCNNAAMMEE have no effect and return an error sta-
- tus. If FFUUNNCCNNAAMMEE is unset, it loses its special properties,
+ tom-most element (the one with the highest index) is "main".
+ This variable exists only when a shell function is executing.
+ Assignments to FFUUNNCCNNAAMMEE have no effect and return an error sta-
+ tus. If FFUUNNCCNNAAMMEE is unset, it loses its special properties,
even if it is subsequently reset.
- This variable can be used with BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE.
- Each element of FFUUNNCCNNAAMMEE has corresponding elements in
- BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE to describe the call stack. For
- instance, $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called from the file
- $${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}} at line number $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}}. The
+ This variable can be used with BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE.
+ Each element of FFUUNNCCNNAAMMEE has corresponding elements in
+ BBAASSHH__LLIINNEENNOO and BBAASSHH__SSOOUURRCCEE to describe the call stack. For
+ instance, $${{FFUUNNCCNNAAMMEE[[_$_i]]}} was called from the file
+ $${{BBAASSHH__SSOOUURRCCEE[[_$_i_+_1]]}} at line number $${{BBAASSHH__LLIINNEENNOO[[_$_i]]}}. The
ccaalllleerr builtin displays the current call stack using this infor-
mation.
-
- GGRROOUUPPSS An array variable containing the list of groups of which the
- current user is a member. Assignments to GGRROOUUPPSS have no effect
- and return an error status. If GGRROOUUPPSS is unset, it loses its
+ GGRROOUUPPSS An array variable containing the list of groups of which the
+ current user is a member. Assignments to GGRROOUUPPSS have no effect
+ and return an error status. If GGRROOUUPPSS is unset, it loses its
special properties, even if it is subsequently reset.
-
HHIISSTTCCMMDD
The history number, or index in the history list, of the current
- command. If HHIISSTTCCMMDD is unset, it loses its special properties,
+ command. If HHIISSTTCCMMDD is unset, it loses its special properties,
even if it is subsequently reset.
-
HHOOSSTTNNAAMMEE
Automatically set to the name of the current host.
-
HHOOSSTTTTYYPPEE
- Automatically set to a string that uniquely describes the type
- of machine on which bbaasshh is executing. The default is system-
+ Automatically set to a string that uniquely describes the type
+ of machine on which bbaasshh is executing. The default is system-
dependent.
-
- LLIINNEENNOO Each time this parameter is referenced, the shell substitutes a
- decimal number representing the current sequential line number
- (starting with 1) within a script or function. When not in a
- script or function, the value substituted is not guaranteed to
+ LLIINNEENNOO Each time this parameter is referenced, the shell substitutes a
+ decimal number representing the current sequential line number
+ (starting with 1) within a script or function. When not in a
+ script or function, the value substituted is not guaranteed to
be meaningful. If LLIINNEENNOO is unset, it loses its special proper-
ties, even if it is subsequently reset.
-
MMAACCHHTTYYPPEE
- Automatically set to a string that fully describes the system
- type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_-
+ Automatically set to a string that fully describes the system
+ type on which bbaasshh is executing, in the standard GNU _c_p_u_-_c_o_m_-
_p_a_n_y_-_s_y_s_t_e_m format. The default is system-dependent.
-
MMAAPPFFIILLEE
- An array variable (see AArrrraayyss below) created to hold the text
+ An array variable (see AArrrraayyss below) created to hold the text
read by the mmaappffiillee builtin when no variable name is supplied.
-
OOLLDDPPWWDD The previous working directory as set by the ccdd command.
-
- OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss
+ OOPPTTAARRGG The value of the last option argument processed by the ggeettooppttss
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
-
- OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss
+ OOPPTTIINNDD The index of the next argument to be processed by the ggeettooppttss
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
-
- OOSSTTYYPPEE Automatically set to a string that describes the operating sys-
- tem on which bbaasshh is executing. The default is system-depen-
+ OOSSTTYYPPEE Automatically set to a string that describes the operating sys-
+ tem on which bbaasshh is executing. The default is system-depen-
dent.
-
PPIIPPEESSTTAATTUUSS
- An array variable (see AArrrraayyss below) containing a list of exit
- status values from the processes in the most-recently-executed
+ An array variable (see AArrrraayyss below) containing a list of exit
+ status values from the processes in the most-recently-executed
foreground pipeline (which may contain only a single command).
-
- PPPPIIDD The process ID of the shell's parent. This variable is read-
+ PPPPIIDD The process ID of the shell's parent. This variable is read-
only.
-
PPWWDD The current working directory as set by the ccdd command.
-
RRAANNDDOOMM Each time this parameter is referenced, a random integer between
0 and 32767 is generated. The sequence of random numbers may be
initialized by assigning a value to RRAANNDDOOMM. If RRAANNDDOOMM is unset,
- it loses its special properties, even if it is subsequently
+ it loses its special properties, even if it is subsequently
reset.
-
RREEAADDLLIINNEE__LLIINNEE
The contents of the rreeaaddlliinnee line buffer, for use with "bind -x"
(see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
-
RREEAADDLLIINNEE__PPOOIINNTT
The position of the insertion point in the rreeaaddlliinnee line buffer,
for use with "bind -x" (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
-
- RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when
+ RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when
no arguments are supplied.
-
SSEECCOONNDDSS
- Each time this parameter is referenced, the number of seconds
- since shell invocation is returned. If a value is assigned to
- SSEECCOONNDDSS, the value returned upon subsequent references is the
- number of seconds since the assignment plus the value assigned.
+ Each time this parameter is referenced, the number of seconds
+ since shell invocation is returned. If a value is assigned to
+ SSEECCOONNDDSS, the value returned upon subsequent references is the
+ number of seconds since the assignment plus the value assigned.
If SSEECCOONNDDSS is unset, it loses its special properties, even if it
is subsequently reset.
-
SSHHEELLLLOOPPTTSS
- A colon-separated list of enabled shell options. Each word in
- the list is a valid argument for the --oo option to the sseett
+ A colon-separated list of enabled shell options. Each word in
+ the list is a valid argument for the --oo option to the sseett
builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). The options
- appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If
- this variable is in the environment when bbaasshh starts up, each
- shell option in the list will be enabled before reading any
+ appearing in SSHHEELLLLOOPPTTSS are those reported as _o_n by sseett --oo. If
+ this variable is in the environment when bbaasshh starts up, each
+ shell option in the list will be enabled before reading any
startup files. This variable is read-only.
-
SSHHLLVVLL Incremented by one each time an instance of bbaasshh is started.
-
UUIIDD Expands to the user ID of the current user, initialized at shell
startup. This variable is readonly.
- The following variables are used by the shell. In some cases, bbaasshh
+ The following variables are used by the shell. In some cases, bbaasshh
assigns a default value to a variable; these cases are noted below.
+ BBAASSHH__CCOOMMPPAATT
+ The value is used to set the shell's compatibility level. See
+ the description of the sshhoopptt builtin below under SSHHEELLLL BBUUIILLTTIINN
+ CCOOMMMMAANNDDSS for a description of the various compatibility levels
+ and their effects. The value may be a decimal number (e.g.,
+ 4.2) or an integer (e.g., 42) corresponding to the desired com-
+ patibility level. If BBAASSHH__CCOOMMPPAATT is unset or set to the empty
+ string, the compatibility level is set to the default for the
+ current version. If BBAASSHH__CCOOMMPPAATT is set to a value that is not
+ one of the valid compatibility levels, the shell prints an error
+ message and sets the compatibility level to the default for the
+ current version. The valid compatibility levels correspond to
+ the compatibility options accepted by the sshhoopptt builtin
+ described below (for example, ccoommppaatt4422 means that 4.2 and 42 are
+ valid values). The current version is also a valid value.
BBAASSHH__EENNVV
If this parameter is set when bbaasshh is executing a shell script,
its value is interpreted as a filename containing commands to
initialize the shell, as in _~_/_._b_a_s_h_r_c. The value of BBAASSHH__EENNVV is
subjected to parameter expansion, command substitution, and
- arithmetic expansion before being interpreted as a file name.
- PPAATTHH is not used to search for the resultant file name.
+ arithmetic expansion before being interpreted as a filename.
+ PPAATTHH is not used to search for the resultant filename.
BBAASSHH__XXTTRRAACCEEFFDD
If set to an integer corresponding to a valid file descriptor,
bbaasshh will write the trace output generated when _s_e_t _-_x is
@@ -1001,14 +1030,22 @@ PPAARRAAMMEETTEERRSS
list of directories in which the shell looks for destination
directories specified by the ccdd command. A sample value is
".:~:/usr".
+ CCHHIILLDD__MMAAXX
+ Set the number of exited child status values for the shell to
+ remember. Bash will not allow this value to be decreased below
+ a POSIX-mandated minimum, and there is a maximum value (cur-
+ rently 8192) that this may not exceed. The minimum value is
+ system-dependent.
CCOOLLUUMMNNSS
Used by the sseelleecctt compound command to determine the terminal
- width when printing selection lists. Automatically set upon
+ width when printing selection lists. Automatically set if the
+ cchheecckkwwiinnssiizzee option is enabled or in an interactive shell upon
receipt of a SSIIGGWWIINNCCHH.
CCOOMMPPRREEPPLLYY
An array variable from which bbaasshh reads the possible completions
- generated by a shell function invoked by the programmable com-
- pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below).
+ generated by a shell function invoked by the programmable com-
+ pletion facility (see PPrrooggrraammmmaabbllee CCoommpplleettiioonn below). Each
+ array element contains one possible completion.
EEMMAACCSS If bbaasshh finds this variable in the environment when the shell
starts with value "t", it assumes that the shell is running in
an Emacs shell buffer and disables line editing.
@@ -1047,15 +1084,17 @@ PPAARRAAMMEETTEERRSS
HHIISSTTFFIILLEE
The name of the file in which command history is saved (see HHIISS--
TTOORRYY below). The default value is _~_/_._b_a_s_h___h_i_s_t_o_r_y. If unset,
- the command history is not saved when an interactive shell
- exits.
+ the command history is not saved when a shell exits.
HHIISSTTFFIILLEESSIIZZEE
The maximum number of lines contained in the history file. When
- this variable is assigned a value, the history file is trun-
- cated, if necessary, by removing the oldest entries, to contain
- no more than that number of lines. The default value is 500.
- The history file is also truncated to this size after writing it
- when an interactive shell exits.
+ this variable is assigned a value, the history file is trun-
+ cated, if necessary, to contain no more than that number of
+ lines by removing the oldest entries. The history file is also
+ truncated to this size after writing it when a shell exits. If
+ the value is 0, the history file is truncated to zero size.
+ Non-numeric values and numeric values less than zero inhibit
+ truncation. The shell sets the default value to the value of
+ HHIISSTTSSIIZZEE after reading any startup files.
HHIISSTTIIGGNNOORREE
A colon-separated list of patterns used to decide which command
lines should be saved on the history list. Each pattern is
@@ -1070,7 +1109,11 @@ PPAARRAAMMEETTEERRSS
history regardless of the value of HHIISSTTIIGGNNOORREE.
HHIISSTTSSIIZZEE
The number of commands to remember in the command history (see
- HHIISSTTOORRYY below). The default value is 500.
+ HHIISSTTOORRYY below). If the value is 0, commands are not saved in
+ the history list. Numeric values less than zero result in every
+ command being saved on the history list (there is no limit).
+ The shell sets the default value to 500 after reading any
+ startup files.
HHIISSTTTTIIMMEEFFOORRMMAATT
If this variable is set and not null, its value is used as a
format string for _s_t_r_f_t_i_m_e(3) to print the time stamp associated
@@ -1127,41 +1170,42 @@ PPAARRAAMMEETTEERRSS
This variable determines the locale category used for number
formatting.
LLIINNEESS Used by the sseelleecctt compound command to determine the column
- length for printing selection lists. Automatically set upon
+ length for printing selection lists. Automatically set if the
+ cchheecckkwwiinnssiizzee option is enabled or in an interactive shell upon
receipt of a SSIIGGWWIINNCCHH.
- MMAAIILL If this parameter is set to a file or directory name and the
- MMAAIILLPPAATTHH variable is not set, bbaasshh informs the user of the
- arrival of mail in the specified file or Maildir-format direc-
+ MMAAIILL If this parameter is set to a file or directory name and the
+ MMAAIILLPPAATTHH variable is not set, bbaasshh informs the user of the
+ arrival of mail in the specified file or Maildir-format direc-
tory.
MMAAIILLCCHHEECCKK
- Specifies how often (in seconds) bbaasshh checks for mail. The
- default is 60 seconds. When it is time to check for mail, the
- shell does so before displaying the primary prompt. If this
- variable is unset, or set to a value that is not a number
+ Specifies how often (in seconds) bbaasshh checks for mail. The
+ default is 60 seconds. When it is time to check for mail, the
+ shell does so before displaying the primary prompt. If this
+ variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
MMAAIILLPPAATTHH
- A colon-separated list of file names to be checked for mail.
- The message to be printed when mail arrives in a particular file
- may be specified by separating the file name from the message
- with a `?'. When used in the text of the message, $$__ expands to
- the name of the current mailfile. Example:
+ A colon-separated list of filenames to be checked for mail. The
+ message to be printed when mail arrives in a particular file may
+ be specified by separating the filename from the message with a
+ `?'. When used in the text of the message, $$__ expands to the
+ name of the current mailfile. Example:
MMAAIILLPPAATTHH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has
mail!"'
- BBaasshh supplies a default value for this variable, but the loca-
- tion of the user mail files that it uses is system dependent
+ BBaasshh supplies a default value for this variable, but the loca-
+ tion of the user mail files that it uses is system dependent
(e.g., /var/mail/$$UUSSEERR).
OOPPTTEERRRR If set to the value 1, bbaasshh displays error messages generated by
- the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a
+ the ggeettooppttss builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
+ OOPPTTEERRRR is initialized to 1 each time the shell is invoked or a
shell script is executed.
- PPAATTHH The search path for commands. It is a colon-separated list of
- directories in which the shell looks for commands (see CCOOMMMMAANNDD
- EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the
+ PPAATTHH The search path for commands. It is a colon-separated list of
+ directories in which the shell looks for commands (see CCOOMMMMAANNDD
+ EEXXEECCUUTTIIOONN below). A zero-length (null) directory name in the
value of PPAATTHH indicates the current directory. A null directory
- name may appear as two adjacent colons, or as an initial or
- trailing colon. The default path is system-dependent, and is
- set by the administrator who installs bbaasshh. A common value is
- ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
+ name may appear as two adjacent colons, or as an initial or
+ trailing colon. The default path is system-dependent, and is
+ set by the administrator who installs bbaasshh. A common value is
+ ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
PPOOSSIIXXLLYY__CCOORRRREECCTT
If this variable is in the environment when bbaasshh starts, the
shell enters _p_o_s_i_x _m_o_d_e before reading the startup files, as if
@@ -1216,70 +1260,66 @@ PPAARRAAMMEETTEERRSS
the fraction is included.
If this variable is not set, bbaasshh acts as if it had the value
- $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss%%33llSS''. If the value is null, no
- timing information is displayed. A trailing newline is added
+ $$''\\nnrreeaall\\tt%%33llRR\\nnuusseerr\\tt%%33llUU\\nnssyyss\\tt%%33llSS''. If the value is null,
+ no timing information is displayed. A trailing newline is added
when the format string is displayed.
-
TTMMOOUUTT If set to a value greater than zero, TTMMOOUUTT is treated as the
default timeout for the rreeaadd builtin. The sseelleecctt command termi-
nates if input does not arrive after TTMMOOUUTT seconds when input is
coming from a terminal. In an interactive shell, the value is
- interpreted as the number of seconds to wait for input after
- issuing the primary prompt. BBaasshh terminates after waiting for
- that number of seconds if input does not arrive.
-
- TTMMPPDDIIRR If set, bbaasshh uses its value as the name of a directory in which
+ interpreted as the number of seconds to wait for a line of input
+ after issuing the primary prompt. BBaasshh terminates after waiting
+ for that number of seconds if a complete line of input does not
+ arrive.
+ TTMMPPDDIIRR If set, bbaasshh uses its value as the name of a directory in which
bbaasshh creates temporary files for the shell's use.
-
aauuttoo__rreessuummee
This variable controls how the shell interacts with the user and
- job control. If this variable is set, single word simple com-
+ job control. If this variable is set, single word simple com-
mands without redirections are treated as candidates for resump-
tion of an existing stopped job. There is no ambiguity allowed;
- if there is more than one job beginning with the string typed,
- the job most recently accessed is selected. The _n_a_m_e of a
- stopped job, in this context, is the command line used to start
- it. If set to the value _e_x_a_c_t, the string supplied must match
- the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the
- string supplied needs to match a substring of the name of a
- stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo-
- gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set
- to any other value, the supplied string must be a prefix of a
+ if there is more than one job beginning with the string typed,
+ the job most recently accessed is selected. The _n_a_m_e of a
+ stopped job, in this context, is the command line used to start
+ it. If set to the value _e_x_a_c_t, the string supplied must match
+ the name of a stopped job exactly; if set to _s_u_b_s_t_r_i_n_g, the
+ string supplied needs to match a substring of the name of a
+ stopped job. The _s_u_b_s_t_r_i_n_g value provides functionality analo-
+ gous to the %%?? job identifier (see JJOOBB CCOONNTTRROOLL below). If set
+ to any other value, the supplied string must be a prefix of a
stopped job's name; this provides functionality analogous to the
%%_s_t_r_i_n_g job identifier.
-
hhiissttcchhaarrss
- The two or three characters which control history expansion and
+ The two or three characters which control history expansion and
tokenization (see HHIISSTTOORRYY EEXXPPAANNSSIIOONN below). The first character
- is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals
- the start of a history expansion, normally `!!'. The second
- character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as
- shorthand for re-running the previous command entered, substi-
- tuting one string for another in the command. The default is
- `^^'. The optional third character is the character which indi-
- cates that the remainder of the line is a comment when found as
- the first character of a word, normally `##'. The history com-
+ is the _h_i_s_t_o_r_y _e_x_p_a_n_s_i_o_n character, the character which signals
+ the start of a history expansion, normally `!!'. The second
+ character is the _q_u_i_c_k _s_u_b_s_t_i_t_u_t_i_o_n character, which is used as
+ shorthand for re-running the previous command entered, substi-
+ tuting one string for another in the command. The default is
+ `^^'. The optional third character is the character which indi-
+ cates that the remainder of the line is a comment when found as
+ the first character of a word, normally `##'. The history com-
ment character causes history substitution to be skipped for the
- remaining words on the line. It does not necessarily cause the
+ remaining words on the line. It does not necessarily cause the
shell parser to treat the rest of the line as a comment.
AArrrraayyss
- BBaasshh provides one-dimensional indexed and associative array variables.
- Any variable may be used as an indexed array; the ddeeccllaarree 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 con-
- tiguously. Indexed arrays are referenced using integers (including
- arithmetic expressions) and are zero-based; associative arrays are
- referenced using arbitrary strings.
+ BBaasshh provides one-dimensional indexed and associative array variables.
+ Any variable may be used as an indexed array; the ddeeccllaarree 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 con-
+ tiguously. Indexed arrays are referenced using integers (including
+ arithmetic expressions) and are zero-based; associative arrays are
+ referenced using arbitrary strings. Unless otherwise noted, indexed
+ array indices must be non-negative integers.
An indexed array is created automatically if any variable is assigned
to using the syntax _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e. The _s_u_b_s_c_r_i_p_t is treated as
- an arithmetic expression that must evaluate to a number. If _s_u_b_s_c_r_i_p_t
- evaluates to a number less than zero, it is used as an offset from one
- greater than the array's maximum index (so a subcript of -1 refers to
- the last element of the array). To explicitly declare an indexed
- array, use ddeeccllaarree --aa _n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). ddeeccllaarree
- --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is also accepted; the _s_u_b_s_c_r_i_p_t is ignored.
+ an arithmetic expression that must evaluate to a number. To explicitly
+ declare an indexed array, use ddeeccllaarree --aa _n_a_m_e (see SSHHEELLLL BBUUIILLTTIINN CCOOMM--
+ MMAANNDDSS below). ddeeccllaarree --aa _n_a_m_e[[_s_u_b_s_c_r_i_p_t]] is also accepted; the _s_u_b_-
+ _s_c_r_i_p_t is ignored.
Associative arrays are created using ddeeccllaarree --AA _n_a_m_e.
@@ -1288,17 +1328,21 @@ PPAARRAAMMEETTEERRSS
Arrays are assigned to using compound assignments of the form
_n_a_m_e=((value_1 ... value_n)), where each _v_a_l_u_e is of the form [_s_u_b_-
- _s_c_r_i_p_t]=_s_t_r_i_n_g. 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; other-
- wise the index of the element assigned is the last index assigned to by
- the statement plus one. Indexing starts at zero.
+ _s_c_r_i_p_t]=_s_t_r_i_n_g. Indexed array assignments do not require anything but
+ _s_t_r_i_n_g. 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.
When assigning to an associative array, the subscript is required.
This syntax is also accepted by the ddeeccllaarree builtin. Individual array
elements may be assigned to using the _n_a_m_e[_s_u_b_s_c_r_i_p_t]=_v_a_l_u_e syntax
- introduced above.
+ introduced above. When assigning to an indexed array, if _n_a_m_e is sub-
+ scripted by a negative number, that number is interpreted as relative
+ to one greater than the maximum index of _n_a_m_e, so negative indices
+ count back from the end of the array, and an index of -1 references the
+ last element.
Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.
The braces are required to avoid conflicts with pathname expansion. If
@@ -1316,36 +1360,50 @@ PPAARRAAMMEETTEERRSS
above). ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_-
_s_c_r_i_p_t]}. If _s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of ele-
ments in the array. Referencing an array variable without a subscript
- is equivalent to referencing the array with a subscript of 0.
+ is equivalent to referencing the array with a subscript of 0. If the
+ _s_u_b_s_c_r_i_p_t used to reference an element of an indexed array evaluates to
+ a number less than zero, it is interpreted as relative to one greater
+ than the maximum index of the array, so negative indices count back
+ from the end of the array, and an index of -1 references the last ele-
+ ment.
- An array variable is considered set if a subscript has been assigned a
+ An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
+ It is possible to obtain the keys (indices) of an array as well as the
+ values. ${!!_n_a_m_e[_@]} and ${!!_n_a_m_e[_*]} expand to the indices assigned in
+ array variable _n_a_m_e. The treatment when in double quotes is similar to
+ the expansion of the special parameters _@ and _* within double quotes.
+
The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t]
- destroys the array element at index _s_u_b_s_c_r_i_p_t. Care must be taken to
- avoid unwanted side effects caused by pathname expansion. uunnsseett _n_a_m_e,
- where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is **
- or @@, removes the entire array.
-
- The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to
- specify an indexed array and a --AA option to specify an associative
- array. The rreeaadd builtin accepts a --aa option to assign a list of words
- read from the standard input to an array. The sseett and ddeeccllaarree builtins
- display array values in a way that allows them to be reused as assign-
- ments.
+ destroys the array element at index _s_u_b_s_c_r_i_p_t. Negative subscripts to
+ indexed arrays are interpreted as described above. Care must be taken
+ to avoid unwanted side effects caused by pathname expansion. uunnsseett
+ _n_a_m_e, where _n_a_m_e is an array, or uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t
+ is ** or @@, removes the entire array.
+
+ The ddeeccllaarree, llooccaall, and rreeaaddoonnllyy builtins each accept a --aa option to
+ specify an indexed array and a --AA option to specify an associative
+ array. If both options are supplied, --AA takes precedence. The rreeaadd
+ builtin accepts a --aa option to assign a list of words read from the
+ standard input to an array. The sseett and ddeeccllaarree builtins display array
+ values in a way that allows them to be reused as assignments.
EEXXPPAANNSSIIOONN
Expansion is performed on the command line after it has been split into
- words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n,
- _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_-
+ words. There are seven kinds of expansion performed: _b_r_a_c_e _e_x_p_a_n_s_i_o_n,
+ _t_i_l_d_e _e_x_p_a_n_s_i_o_n, _p_a_r_a_m_e_t_e_r _a_n_d _v_a_r_i_a_b_l_e _e_x_p_a_n_s_i_o_n, _c_o_m_m_a_n_d _s_u_b_s_t_i_t_u_-
_t_i_o_n, _a_r_i_t_h_m_e_t_i_c _e_x_p_a_n_s_i_o_n, _w_o_r_d _s_p_l_i_t_t_i_n_g, and _p_a_t_h_n_a_m_e _e_x_p_a_n_s_i_o_n.
- The order of expansions is: brace expansion, tilde expansion, parame-
- ter, variable and arithmetic expansion and command substitution (done
- in a left-to-right fashion), word splitting, and pathname expansion.
+ The order of expansions is: brace expansion; tilde expansion, parameter
+ and variable expansion, arithmetic expansion, and command substitution
+ (done in a left-to-right fashion); word splitting; and pathname expan-
+ sion.
On systems that can support it, there is an additional expansion avail-
- able: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n.
+ able: _p_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n. This is performed at the same time as
+ tilde, parameter, variable, and arithmetic expansion and command sub-
+ stitution.
Only brace expansion, word splitting, and pathname expansion can change
the number of words of the expansion; other expansions expand a single
@@ -1374,10 +1432,10 @@ EEXXPPAANNSSIIOONN
or _y begins with a zero, the shell attempts to force all generated
terms to contain the same number of digits, zero-padding where neces-
sary. 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.
+ character lexicographically between _x and _y, inclusive, using the
+ default C locale. 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 char-
acters special to other expansions are preserved in the result. It is
@@ -1435,7 +1493,7 @@ EEXXPPAANNSSIIOONN
Each variable assignment is checked for unquoted tilde-prefixes immedi-
ately following a :: or the first ==. In these cases, tilde expansion is
- also performed. Consequently, one may use file names with tildes in
+ also performed. Consequently, one may use filenames with tildes in
assignments to PPAATTHH, MMAAIILLPPAATTHH, and CCDDPPAATTHH, and the shell assigns the
expanded value.
@@ -1455,69 +1513,87 @@ EEXXPPAANNSSIIOONN
The value of _p_a_r_a_m_e_t_e_r is substituted. The braces are required
when _p_a_r_a_m_e_t_e_r is a positional parameter with more than one
digit, or when _p_a_r_a_m_e_t_e_r is followed by a character which is not
- to be interpreted as part of its name.
-
- If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), a
- level of variable indirection is introduced. BBaasshh uses the value of
- the variable formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the vari-
- able; this variable is then expanded and that value is used in the rest
- of the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This
- is known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expan-
- sions of ${!!\\ffPPffIIpprreeffiixx**} and ${!!_n_a_m_e[_@]} described below. The excla-
- mation point must immediately follow the left brace in order to intro-
- duce indirection.
+ to be interpreted as part of its name. The _p_a_r_a_m_e_t_e_r is a shell
+ parameter as described above PPAARRAAMMEETTEERRSS) or an array reference
+ (AArrrraayyss).
+
+ If the first character of _p_a_r_a_m_e_t_e_r is an exclamation point (!!), it
+ introduces a level of variable indirection. BBaasshh uses the value of the
+ variable formed from the rest of _p_a_r_a_m_e_t_e_r as the name of the variable;
+ this variable is then expanded and that value is used in the rest of
+ the substitution, rather than the value of _p_a_r_a_m_e_t_e_r itself. This is
+ known as _i_n_d_i_r_e_c_t _e_x_p_a_n_s_i_o_n. The exceptions to this are the expansions
+ of ${!!_p_r_e_f_i_x**} and ${!!_n_a_m_e[_@]} described below. The exclamation point
+ must immediately follow the left brace in order to introduce indirec-
+ tion.
In each of the cases below, _w_o_r_d is subject to tilde expansion, parame-
ter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the forms documented
- below, bbaasshh tests for a parameter that is unset or null. Omitting the
- colon results in a test only for a parameter that is unset.
+ below (e.g., ::--), bbaasshh tests for a parameter that is unset or null.
+ Omitting the colon results in a test only for a parameter that is
+ unset.
${_p_a_r_a_m_e_t_e_r::--_w_o_r_d}
- UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan-
- sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r
+ UUssee DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the expan-
+ sion of _w_o_r_d is substituted. Otherwise, the value of _p_a_r_a_m_e_t_e_r
is substituted.
${_p_a_r_a_m_e_t_e_r::==_w_o_r_d}
- AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the
+ AAssssiiggnn DDeeffaauulltt VVaalluueess. If _p_a_r_a_m_e_t_e_r is unset or null, the
expansion of _w_o_r_d is assigned to _p_a_r_a_m_e_t_e_r. The value of _p_a_r_a_m_-
- _e_t_e_r is then substituted. Positional parameters and special
+ _e_t_e_r is then substituted. Positional parameters and special
parameters may not be assigned to in this way.
${_p_a_r_a_m_e_t_e_r::??_w_o_r_d}
- DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset,
- the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is
- not present) is written to the standard error and the shell, if
+ DDiissppllaayy EErrrroorr iiff NNuullll oorr UUnnsseett. If _p_a_r_a_m_e_t_e_r is null or unset,
+ the expansion of _w_o_r_d (or a message to that effect if _w_o_r_d is
+ not present) is written to the standard error and the shell, if
it is not interactive, exits. Otherwise, the value of _p_a_r_a_m_e_t_e_r
is substituted.
${_p_a_r_a_m_e_t_e_r::++_w_o_r_d}
- UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is
+ UUssee AAlltteerrnnaattee VVaalluuee. If _p_a_r_a_m_e_t_e_r is null or unset, nothing is
substituted, otherwise the expansion of _w_o_r_d is substituted.
${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t}
${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t::_l_e_n_g_t_h}
- SSuubbssttrriinngg EExxppaannssiioonn. Expands to up to _l_e_n_g_t_h characters of
- _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t. If
- _l_e_n_g_t_h is omitted, expands to the substring of _p_a_r_a_m_e_t_e_r start-
- ing at the character specified by _o_f_f_s_e_t. _l_e_n_g_t_h and _o_f_f_s_e_t are
- arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below). If
- _o_f_f_s_e_t evaluates to a number less than zero, the value is used
- as an offset from the end of the value of _p_a_r_a_m_e_t_e_r. If _l_e_n_g_t_h
- evaluates to a number less than zero, and _p_a_r_a_m_e_t_e_r is not @@ and
- not an indexed or associative array, it is interpreted as an
- offset from the end of the value of _p_a_r_a_m_e_t_e_r rather than a num-
- ber of characters, and the expansion is the characters between
- the two offsets. If _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h posi-
- tional parameters beginning at _o_f_f_s_e_t. If _p_a_r_a_m_e_t_e_r is an
- indexed array name subscripted by @ or *, the result is the
- _l_e_n_g_t_h members of the array beginning with ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}.
- A negative _o_f_f_s_e_t is taken relative to one greater than the max-
- imum 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 by default. If
- _o_f_f_s_e_t is 0, and the positional parameters are used, $$00 is pre-
- fixed to the list.
+ SSuubbssttrriinngg EExxppaannssiioonn. Expands to up to _l_e_n_g_t_h characters of the
+ value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_-
+ _s_e_t. If _p_a_r_a_m_e_t_e_r is @@, an indexed array subscripted by @@ or **,
+ or an associative array name, the results differ as described
+ below. If _l_e_n_g_t_h is omitted, expands to the substring of the
+ value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t
+ and extending to the end of the value. _l_e_n_g_t_h and _o_f_f_s_e_t are
+ arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below).
+
+ If _o_f_f_s_e_t evaluates to a number less than zero, the value is
+ used as an offset in characters from the end of the value of
+ _p_a_r_a_m_e_t_e_r. If _l_e_n_g_t_h evaluates to a number less than zero, it
+ is interpreted as an offset in characters from the end of the
+ value of _p_a_r_a_m_e_t_e_r rather than a number of characters, and the
+ expansion is the characters between _o_f_f_s_e_t and that result.
+ Note that a negative offset must be separated from the colon by
+ at least one space to avoid being confused with the ::-- expan-
+ sion.
+
+ If _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters
+ beginning at _o_f_f_s_e_t. A negative _o_f_f_s_e_t is taken relative to one
+ greater than the greatest positional parameter, so an offset of
+ -1 evaluates to the last positional parameter. It is an expan-
+ sion error if _l_e_n_g_t_h evaluates to a number less than zero.
+
+ If _p_a_r_a_m_e_t_e_r is an indexed array name subscripted by @ or *, the
+ result is the _l_e_n_g_t_h members of the array beginning with
+ ${_p_a_r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is taken relative to
+ one greater than the maximum index of the specified array. It
+ is an expansion error if _l_e_n_g_t_h evaluates to a number less than
+ zero.
+
+ Substring expansion applied to an associative array produces
+ undefined results.
+
+ Substring indexing is zero-based unless the positional parame-
+ ters are used, in which case the indexing starts at 1 by
+ default. If _o_f_f_s_e_t is 0, and the positional parameters are
+ used, $$00 is prefixed to the list.
${!!_p_r_e_f_i_x**}
${!!_p_r_e_f_i_x@@}
@@ -1540,78 +1616,85 @@ EEXXPPAANNSSIIOONN
_p_a_r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value
substituted is the number of positional parameters. If _p_a_r_a_m_e_-
_t_e_r is an array name subscripted by ** or @@, the value substi-
- tuted is the number of elements in the array.
+ tuted is the number of elements in the array. If _p_a_r_a_m_e_t_e_r is
+ an indexed array name subscripted by a negative number, that
+ number is interpreted as relative to one greater than the maxi-
+ mum index of _p_a_r_a_m_e_t_e_r, so negative indices count back from the
+ end of the array, and an index of -1 references the last ele-
+ ment.
${_p_a_r_a_m_e_t_e_r##_w_o_r_d}
${_p_a_r_a_m_e_t_e_r####_w_o_r_d}
RReemmoovvee mmaattcchhiinngg pprreeffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
- the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the
- expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
- matching pattern (the ``##'' case) or the longest matching pat-
- tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
- pattern removal operation is applied to each positional parame-
+ the beginning of the value of _p_a_r_a_m_e_t_e_r, then the result of the
+ expansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
+ matching pattern (the ``##'' case) or the longest matching pat-
+ tern (the ``####'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
+ pattern removal operation is applied to each positional parame-
ter in turn, and the expansion is the resultant list. If _p_a_r_a_m_-
- _e_t_e_r is an array variable subscripted with @@ or **, the pattern
- removal operation is applied to each member of the array in
+ _e_t_e_r is an array variable subscripted with @@ or **, the pattern
+ removal operation is applied to each member of the array in
turn, and the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r%%_w_o_r_d}
${_p_a_r_a_m_e_t_e_r%%%%_w_o_r_d}
RReemmoovvee mmaattcchhiinngg ssuuffffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion. If the pattern matches
- a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the
- result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with
- the shortest matching pattern (the ``%%'' case) or the longest
- matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@
- or **, the pattern removal operation is applied to each posi-
- tional parameter in turn, and the expansion is the resultant
- list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
- **, the pattern removal operation is applied to each member of
+ a trailing portion of the expanded value of _p_a_r_a_m_e_t_e_r, then the
+ result of the expansion is the expanded value of _p_a_r_a_m_e_t_e_r with
+ the shortest matching pattern (the ``%%'' case) or the longest
+ matching pattern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@
+ or **, the pattern removal operation is applied to each posi-
+ tional parameter in turn, and the expansion is the resultant
+ list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
+ **, the pattern removal operation is applied to each member of
the array in turn, and the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r//_p_a_t_t_e_r_n//_s_t_r_i_n_g}
PPaatttteerrnn ssuubbssttiittuuttiioonn. The _p_a_t_t_e_r_n is expanded to produce a pat-
- tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and
- the longest match of _p_a_t_t_e_r_n against its value is replaced with
- _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are
- replaced with _s_t_r_i_n_g. Normally only the first match is
+ tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and
+ the longest match of _p_a_t_t_e_r_n against its value is replaced with
+ _s_t_r_i_n_g. If _p_a_t_t_e_r_n begins with //, all matches of _p_a_t_t_e_r_n are
+ replaced with _s_t_r_i_n_g. Normally only the first match is
replaced. If _p_a_t_t_e_r_n begins with ##, it must match at the begin-
ning of the expanded value of _p_a_r_a_m_e_t_e_r. If _p_a_t_t_e_r_n begins with
- %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r.
+ %%, it must match at the end of the expanded value of _p_a_r_a_m_e_t_e_r.
If _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted and the // fol-
lowing _p_a_t_t_e_r_n may be omitted. If _p_a_r_a_m_e_t_e_r is @@ or **, the sub-
- stitution operation is applied to each positional parameter in
- turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is
- an array variable subscripted with @@ or **, the substitution
- operation is applied to each member of the array in turn, and
+ stitution operation is applied to each positional parameter in
+ turn, and the expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is
+ an array variable subscripted with @@ or **, the substitution
+ operation is applied to each member of the array in turn, and
the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r^^^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,,,_p_a_t_t_e_r_n}
- CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha-
- betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
- duce a pattern just as in pathname expansion. The ^^ operator
- converts lowercase letters matching _p_a_t_t_e_r_n 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 in the expanded value. If _p_a_t_t_e_r_n is omit-
- ted, it is treated like a ??, which matches every character. If
- _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is applied
- to each positional parameter in turn, and the expansion is the
- resultant list. If _p_a_r_a_m_e_t_e_r 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.
+ CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha-
+ betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
+ duce a pattern just as in pathname expansion. Each character in
+ the expanded value of _p_a_r_a_m_e_t_e_r is tested against _p_a_t_t_e_r_n, and,
+ if it matches the pattern, its case is converted. The pattern
+ should not attempt to match more than one character. The ^^
+ operator converts lowercase letters matching _p_a_t_t_e_r_n to upper-
+ case; the ,, operator converts matching uppercase letters to low-
+ ercase. The ^^^^ and ,,,, expansions convert each matched character
+ in the expanded value; the ^^ and ,, expansions match and convert
+ only the first character in the expanded value. If _p_a_t_t_e_r_n is
+ omitted, it is treated like a ??, which matches every character.
+ If _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is
+ applied to each positional parameter in turn, and the expansion
+ is the resultant list. If _p_a_r_a_m_e_t_e_r is an array variable sub-
+ scripted with @@ or **, the case modification operation is applied
+ to each member of the array in turn, and the expansion is the
+ resultant list.
CCoommmmaanndd SSuubbssttiittuuttiioonn
_C_o_m_m_a_n_d _s_u_b_s_t_i_t_u_t_i_o_n allows the output of a command to replace the com-
mand name. There are two forms:
-
$$((_c_o_m_m_a_n_d))
or
``_c_o_m_m_a_n_d``
@@ -1643,136 +1726,141 @@ EEXXPPAANNSSIIOONN
The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a
double quote inside the parentheses is not treated specially. All
- tokens in the expression undergo parameter expansion, string expansion,
- command substitution, and quote removal. Arithmetic expansions may be
+ tokens in the expression undergo parameter and variable expansion, com-
+ mand substitution, and quote removal. The result is treated as the
+ arithmetic expression to be evaluated. Arithmetic expansions may be
nested.
- The evaluation is performed according to the rules listed below under
+ The evaluation is performed according to the rules listed below under
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If _e_x_p_r_e_s_s_i_o_n is invalid, bbaasshh prints a message
indicating failure and no substitution occurs.
PPrroocceessss SSuubbssttiittuuttiioonn
- _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes
- (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form
- of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out-
+ _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n is supported on systems that support named pipes
+ (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files. It takes the form
+ of <<((_l_i_s_t)) or >>((_l_i_s_t)). The process _l_i_s_t is run with its input or out-
put connected to a _F_I_F_O or some file in //ddeevv//ffdd. The name of this file
- is passed as an argument to the current command as the result of the
- expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro-
- vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as
+ is passed as an argument to the current command as the result of the
+ expansion. If the >>((_l_i_s_t)) form is used, writing to the file will pro-
+ vide input for _l_i_s_t. If the <<((_l_i_s_t)) form is used, the file passed as
an argument should be read to obtain the output of _l_i_s_t.
- When available, process substitution is performed simultaneously with
- parameter and variable expansion, command substitution, and arithmetic
+ When available, process substitution is performed simultaneously with
+ parameter and variable expansion, command substitution, and arithmetic
expansion.
WWoorrdd SSpplliittttiinngg
- The shell scans the results of parameter expansion, command substitu-
- tion, and arithmetic expansion that did not occur within double quotes
+ The shell scans the results of parameter expansion, command substitu-
+ tion, and arithmetic expansion that did not occur within double quotes
for _w_o_r_d _s_p_l_i_t_t_i_n_g.
- The shell treats each character of IIFFSS as a delimiter, and splits the
- results of the other expansions into words on these characters. If IIFFSS
- is unset, or its value is exactly <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default,
- then sequences of <<ssppaaccee>>, <<ttaabb>>, and <<nneewwlliinnee>> at the beginning and
- end of the results of the previous expansions are ignored, and any
- sequence of IIFFSS characters not at the beginning or end serves to
- delimit words. If IIFFSS has a value other than the default, then
- sequences of the whitespace characters ssppaaccee and ttaabb are ignored at the
- beginning and end of the word, as long as the whitespace character is
- in the value of IIFFSS (an IIFFSS whitespace character). Any character in
- IIFFSS that is not IIFFSS whitespace, along with any adjacent IIFFSS whitespace
- characters, delimits a field. A sequence of IIFFSS whitespace characters
- is also treated as a delimiter. If the value of IIFFSS is null, no word
- splitting occurs.
-
- Explicit null arguments ("""" or '''') are retained. Unquoted implicit
+ The shell treats each character of IIFFSS as a delimiter, and splits the
+ results of the other expansions into words using these characters as
+ field terminators. If IIFFSS is unset, or its value is exactly
+ <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default, then sequences of <<ssppaaccee>>, <<ttaabb>>,
+ and <<nneewwlliinnee>> at the beginning and end of the results of the previous
+ expansions are ignored, and any sequence of IIFFSS characters not at the
+ beginning or end serves to delimit words. If IIFFSS has a value other
+ than the default, then sequences of the whitespace characters ssppaaccee and
+ ttaabb are ignored at the beginning and end of the word, as long as the
+ whitespace character is in the value of IIFFSS (an IIFFSS whitespace charac-
+ ter). Any character in IIFFSS that is not IIFFSS whitespace, along with any
+ adjacent IIFFSS whitespace characters, delimits a field. A sequence of
+ IIFFSS whitespace characters is also treated as a delimiter. If the value
+ of IIFFSS is null, no word splitting occurs.
+
+ Explicit null arguments ("""" or '''') are retained. Unquoted implicit
null arguments, resulting from the expansion of parameters that have no
- values, are removed. If a parameter with no value is expanded within
+ values, are removed. If a parameter with no value is expanded within
double quotes, a null argument results and is retained.
Note that if no expansion occurs, no splitting is performed.
PPaatthhnnaammee EExxppaannssiioonn
- After word splitting, unless the --ff option has been set, bbaasshh scans
- each word for the characters **, ??, and [[. If one of these characters
- appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an
- alphabetically sorted list of file names matching the pattern. If no
- matching file names are found, and the shell option nnuullllgglloobb is not
- enabled, the word is left unchanged. If the nnuullllgglloobb option is set,
- and no matches are found, the word is removed. If the ffaaiillgglloobb shell
- option is set, and no matches are found, an error message is printed
- and the command is not executed. If the shell option nnooccaasseegglloobb is
- enabled, the match is performed without regard to the case of alpha-
- betic characters. When a pattern is used for pathname expansion, the
- character ````..'''' at the start of a name or immediately following a
- slash must be matched explicitly, unless the shell option ddoottgglloobb is
- set. When matching a pathname, the slash character must always be
- matched explicitly. In other cases, the ````..'''' character is not
- treated specially. See the description of sshhoopptt below under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullllgglloobb, ffaaiill--
- gglloobb, and ddoottgglloobb shell options.
-
- The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file
- names matching a _p_a_t_t_e_r_n. If GGLLOOBBIIGGNNOORREE is set, each matching file
- name that also matches one of the patterns in GGLLOOBBIIGGNNOORREE is removed
- from the list of matches. The file names ````..'''' and ````....'''' are always
- ignored when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGG--
- NNOORREE to a non-null value has the effect of enabling the ddoottgglloobb shell
- option, so all other file names beginning with a ````..'''' will match. To
- get the old behavior of ignoring file names beginning with a ````..'''',
- make ````..**'''' one of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is
- disabled when GGLLOOBBIIGGNNOORREE is unset.
+ After word splitting, unless the --ff option has been set, bbaasshh scans
+ each word for the characters **, ??, and [[. If one of these characters
+ appears, then the word is regarded as a _p_a_t_t_e_r_n, and replaced with an
+ alphabetically sorted list of filenames matching the pattern (see PPaatt--
+ tteerrnn MMaattcchhiinngg below). If no matching filenames are found, and the
+ shell option nnuullllgglloobb is not enabled, the word is left unchanged. If
+ the nnuullllgglloobb option is set, and no matches are found, the word is
+ removed. If the ffaaiillgglloobb shell option is set, and no matches are
+ found, an error message is printed and the command is not executed. If
+ the shell option nnooccaasseegglloobb is enabled, the match is performed without
+ regard to the case of alphabetic characters. When a pattern is used
+ for pathname expansion, the character ````..'''' at the start of a name or
+ immediately following a slash must be matched explicitly, unless the
+ shell option ddoottgglloobb is set. When matching a pathname, the slash char-
+ acter must always be matched explicitly. In other cases, the ````..''''
+ character is not treated specially. See the description of sshhoopptt below
+ under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullll--
+ gglloobb, ffaaiillgglloobb, and ddoottgglloobb shell options.
+
+ The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file-
+ names matching a _p_a_t_t_e_r_n. If GGLLOOBBIIGGNNOORREE is set, each matching filename
+ that also matches one of the patterns in GGLLOOBBIIGGNNOORREE is removed from the
+ list of matches. The filenames ````..'''' and ````....'''' are always ignored
+ when GGLLOOBBIIGGNNOORREE is set and not null. However, setting GGLLOOBBIIGGNNOORREE to a
+ non-null value has the effect of enabling the ddoottgglloobb shell option, so
+ all other filenames beginning with a ````..'''' will match. To get the old
+ behavior of ignoring filenames beginning with a ````..'''', make ````..**'''' one
+ of the patterns in GGLLOOBBIIGGNNOORREE. The ddoottgglloobb option is disabled when
+ GGLLOOBBIIGGNNOORREE is unset.
PPaatttteerrnn MMaattcchhiinngg
Any character that appears in a pattern, other than the special pattern
- characters described below, matches itself. The NUL character may not
- occur in a pattern. A backslash escapes the following character; the
- escaping backslash is discarded when matching. The special pattern
+ characters described below, matches itself. The NUL character may not
+ occur in a pattern. A backslash escapes the following character; the
+ escaping backslash is discarded when matching. The special pattern
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. When the
- gglloobbssttaarr shell option is enabled, and ** is used in a
- pathname 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 subdirecto-
+ ** Matches any string, including the null string. When the
+ gglloobbssttaarr shell option is enabled, and ** is used in a
+ pathname 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 subdirecto-
ries.
?? Matches any single character.
- [[......]] Matches any one of the enclosed characters. A pair of
- characters separated by a hyphen denotes a _r_a_n_g_e _e_x_p_r_e_s_-
- _s_i_o_n; any character that sorts between those two charac-
- ters, inclusive, using the current locale's collating
- sequence and character set, is matched. If the first
+ [[......]] Matches any one of the enclosed characters. A pair of
+ characters separated by a hyphen denotes a _r_a_n_g_e _e_x_p_r_e_s_-
+ _s_i_o_n; any character that falls between those two charac-
+ ters, inclusive, using the current locale's collating
+ sequence and character set, is matched. If the first
character following the [[ is a !! or a ^^ then any charac-
- ter not enclosed is matched. The sorting order of char-
- acters in range expressions is determined by the current
- locale and the value of the LLCC__CCOOLLLLAATTEE shell variable, if
- set. A -- may be matched by including it as the first or
- last character in the set. A ]] may be matched by includ-
- ing it as the first character in the set.
-
- Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using
+ ter not enclosed is matched. The sorting order of char-
+ acters in range expressions is determined by the current
+ locale and the values of the LLCC__CCOOLLLLAATTEE or LLCC__AALLLL shell
+ variables, if set. To obtain the traditional interpreta-
+ tion of range expressions, where [[aa--dd]] is equivalent to
+ [[aabbccdd]], set value of the LLCC__AALLLL shell variable to CC, or
+ enable the gglloobbaasscciiiirraannggeess shell option. A -- may be
+ matched by including it as the first or last character in
+ the set. A ]] may be matched by including it as the first
+ character in the set.
+
+ Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using
the syntax [[::_c_l_a_s_s::]], where _c_l_a_s_s is one of the following
classes defined in the POSIX standard:
- aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt
+ aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt
ppuunncctt ssppaaccee uuppppeerr wwoorrdd xxddiiggiitt
A character class matches any character belonging to that
class. The wwoorrdd character class matches letters, digits,
and the character _.
- Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified
+ Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified
using the syntax [[==_c==]], which matches all characters with
- the same collation weight (as defined by the current
+ the same collation weight (as defined by the current
locale) as the character _c.
Within [[ and ]], the syntax [[.._s_y_m_b_o_l..]] matches the collat-
ing symbol _s_y_m_b_o_l.
If the eexxttgglloobb shell option is enabled using the sshhoopptt builtin, several
- extended pattern matching operators are recognized. In the following
+ extended pattern matching operators are recognized. In the following
description, a _p_a_t_t_e_r_n_-_l_i_s_t is a list of one or more patterns separated
by a ||. Composite patterns may be formed using one or more of the fol-
lowing sub-patterns:
@@ -1790,23 +1878,26 @@ EEXXPPAANNSSIIOONN
QQuuoottee RReemmoovvaall
After the preceding expansions, all unquoted occurrences of the charac-
- ters \\, '', and "" that did not result from one of the above expansions
+ ters \\, '', and "" that did not result from one of the above expansions
are removed.
RREEDDIIRREECCTTIIOONN
- Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
- using a special notation interpreted by the shell. Redirection may
- also be used to open and close files for the current shell execution
- environment. The following redirection operators may precede or appear
- anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may follow a _c_o_m_m_a_n_d. Redirections
- are processed in the order they appear, from left to right.
+ Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
+ using a special notation interpreted by the shell. Redirection allows
+ commands' file handles to be duplicated, opened, closed, made to refer
+ to different files, and can change the files the command reads from and
+ writes to. Redirection may also be used to modify file handles in the
+ current shell execution environment. The following redirection opera-
+ tors may precede or appear anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may fol-
+ low a _c_o_m_m_a_n_d. Redirections are processed in the order they appear,
+ from left to right.
Each redirection that may be preceded by a file descriptor number may
instead be preceded by a word of the form {_v_a_r_n_a_m_e}. In this case, for
each redirection operator except >&- and <&-, the shell will allocate a
- file descriptor greater than 10 and assign it to _v_a_r_n_a_m_e. If >&- or
- <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines the file
- descriptor to close.
+ file descriptor greater than or equal to 10 and assign it to _v_a_r_n_a_m_e.
+ If >&- or <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines
+ the file descriptor to close.
In the following descriptions, if the file descriptor number is omit-
ted, and the first character of the redirection operator is <<, the re-
@@ -1816,29 +1907,29 @@ RREEDDIIRREECCTTIIOONN
The word following the redirection operator in the following descrip-
tions, unless otherwise noted, is subjected to brace expansion, tilde
- expansion, parameter expansion, command substitution, arithmetic expan-
- sion, quote removal, pathname expansion, and word splitting. If it
- expands to more than one word, bbaasshh reports an error.
+ expansion, parameter and variable expansion, command substitution,
+ arithmetic expansion, quote removal, pathname expansion, and word
+ splitting. If it expands to more than one word, bbaasshh reports an error.
- Note that the order of redirections is significant. For example, the
+ Note that the order of redirections is significant. For example, the
command
ls >> dirlist 2>>&&1
- directs both standard output and standard error to the file _d_i_r_l_i_s_t,
+ directs both standard output and standard error to the file _d_i_r_l_i_s_t,
while the command
ls 2>>&&1 >> dirlist
- directs only the standard output to file _d_i_r_l_i_s_t, because the standard
- error was duplicated from the standard output before the standard out-
+ directs only the standard output to file _d_i_r_l_i_s_t, because the standard
+ error was duplicated from the standard output before the standard out-
put was redirected to _d_i_r_l_i_s_t.
BBaasshh handles several filenames specially when they are used in redirec-
tions, as described in the following table:
//ddeevv//ffdd//_f_d
- If _f_d is a valid integer, file descriptor _f_d is dupli-
+ If _f_d is a valid integer, file descriptor _f_d is dupli-
cated.
//ddeevv//ssttddiinn
File descriptor 0 is duplicated.
@@ -1848,22 +1939,22 @@ RREEDDIIRREECCTTIIOONN
File descriptor 2 is duplicated.
//ddeevv//ttccpp//_h_o_s_t//_p_o_r_t
If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t
- is an integer port number or service name, bbaasshh attempts
- to open a TCP connection to the corresponding socket.
+ is an integer port number or service name, bbaasshh attempts
+ to open the corresponding TCP socket.
//ddeevv//uuddpp//_h_o_s_t//_p_o_r_t
If _h_o_s_t is a valid hostname or Internet address, and _p_o_r_t
- is an integer port number or service name, bbaasshh attempts
- to open a UDP connection to the corresponding socket.
+ is an integer port number or service name, bbaasshh attempts
+ to open the corresponding UDP socket.
A failure to open or create a file causes the redirection to fail.
- Redirections using file descriptors greater than 9 should be used with
- care, as they may conflict with file descriptors the shell uses inter-
+ Redirections using file descriptors greater than 9 should be used with
+ care, as they may conflict with file descriptors the shell uses inter-
nally.
RReeddiirreeccttiinngg IInnppuutt
Redirection of input causes the file whose name results from the expan-
- sion of _w_o_r_d to be opened for reading on file descriptor _n, or the
+ sion of _w_o_r_d to be opened for reading on file descriptor _n, or the
standard input (file descriptor 0) if _n is not specified.
The general format for redirecting input is:
@@ -1871,27 +1962,27 @@ RREEDDIIRREECCTTIIOONN
[_n]<<_w_o_r_d
RReeddiirreeccttiinngg OOuuttppuutt
- Redirection of output causes the file whose name results from the
+ Redirection of output causes the file whose name results from the
expansion of _w_o_r_d to be opened for writing on file descriptor _n, or the
standard output (file descriptor 1) if _n is not specified. If the file
- does not exist it is created; if it does exist it is truncated to zero
+ does not exist it is created; if it does exist it is truncated to zero
size.
The general format for redirecting output is:
[_n]>>_w_o_r_d
- If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett
- builtin has been enabled, the redirection will fail if the file whose
- name results from the expansion of _w_o_r_d exists and is a regular file.
+ If the redirection operator is >>, and the nnoocclloobbbbeerr option to the sseett
+ builtin has been enabled, the redirection will fail if the file whose
+ name results from the expansion of _w_o_r_d exists and is a regular file.
If the redirection operator is >>||, or the redirection operator is >> and
the nnoocclloobbbbeerr option to the sseett builtin command is not enabled, the re-
direction is attempted even if the file named by _w_o_r_d exists.
AAppppeennddiinngg RReeddiirreecctteedd OOuuttppuutt
- Redirection of output in this fashion causes the file whose name
- results from the expansion of _w_o_r_d to be opened for appending on file
- descriptor _n, or the standard output (file descriptor 1) if _n is not
+ Redirection of output in this fashion causes the file whose name
+ results from the expansion of _w_o_r_d to be opened for appending on file
+ descriptor _n, or the standard output (file descriptor 1) if _n is not
specified. If the file does not exist it is created.
The general format for appending output is:
@@ -1900,11 +1991,11 @@ RREEDDIIRREECCTTIIOONN
RReeddiirreeccttiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr
- This construct allows both the standard output (file descriptor 1) and
- the standard error output (file descriptor 2) to be redirected to 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 _w_o_r_d.
- There are two formats for redirecting standard output and standard
+ There are two formats for redirecting standard output and standard
error:
&&>>_w_o_r_d
@@ -1916,10 +2007,13 @@ RREEDDIIRREECCTTIIOONN
>>_w_o_r_d 2>>&&1
+ When using the second form, _w_o_r_d may not expand to a number or --. If
+ it does, other redirection operators apply (see DDuupplliiccaattiinngg FFiillee
+ DDeessccrriippttoorrss below) for compatibility reasons.
AAppppeennddiinngg SSttaannddaarrdd OOuuttppuutt aanndd SSttaannddaarrdd EErrrroorr
- This construct allows both the standard output (file descriptor 1) and
- the standard error output (file descriptor 2) to be appended to the
+ 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 _w_o_r_d.
The format for appending standard output and standard error is:
@@ -1930,10 +2024,12 @@ RREEDDIIRREECCTTIIOONN
>>>>_w_o_r_d 2>>&&1
+ (see DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss below).
+
HHeerree DDooccuummeennttss
- This type of redirection instructs the shell to read input from the
+ This type of redirection instructs the shell to read input from the
current source until a line containing only _d_e_l_i_m_i_t_e_r (with no trailing
- blanks) is seen. All of the lines read up to that point are then used
+ blanks) is seen. All of the lines read up to that point are then used
as the standard input for a command.
The format of here-documents is:
@@ -1942,18 +2038,18 @@ RREEDDIIRREECCTTIIOONN
_h_e_r_e_-_d_o_c_u_m_e_n_t
_d_e_l_i_m_i_t_e_r
- No parameter expansion, command substitution, arithmetic expansion, or
- pathname expansion is performed on _w_o_r_d. If any characters in _w_o_r_d are
- quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal on _w_o_r_d, and the
- lines in the here-document are not expanded. If _w_o_r_d is unquoted, all
- lines of the here-document are subjected to parameter expansion, com-
- mand substitution, and arithmetic expansion. In the latter case, the
- character sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote
- the characters \\, $$, and ``.
+ No parameter and variable expansion, command substitution, arithmetic
+ expansion, or pathname expansion is performed on _w_o_r_d. If any charac-
+ ters in _w_o_r_d are quoted, the _d_e_l_i_m_i_t_e_r is the result of quote removal
+ on _w_o_r_d, and the lines in the here-document are not expanded. If _w_o_r_d
+ is unquoted, all lines of the here-document are subjected to parameter
+ expansion, command substitution, and arithmetic expansion, the charac-
+ ter sequence \\<<nneewwlliinnee>> is ignored, and \\ must be used to quote the
+ characters \\, $$, and ``.
If the redirection operator is <<<<--, then all leading tab characters are
- stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This
- allows here-documents within shell scripts to be indented in a natural
+ stripped from input lines and the line containing _d_e_l_i_m_i_t_e_r. This
+ allows here-documents within shell scripts to be indented in a natural
fashion.
HHeerree SSttrriinnggss
@@ -1961,7 +2057,11 @@ RREEDDIIRREECCTTIIOONN
<<<<<<_w_o_r_d
- The _w_o_r_d is expanded and supplied to the command on its standard input.
+ The _w_o_r_d undergoes brace expansion, tilde expansion, parameter and
+ variable expansion, command substitution, arithmetic expansion, and
+ quote removal. Pathname expansion and word splitting are not per-
+ formed. The result is supplied as a single string to the command on
+ its standard input.
DDuupplliiccaattiinngg FFiillee DDeessccrriippttoorrss
The redirection operator
@@ -1982,16 +2082,17 @@ RREEDDIIRREECCTTIIOONN
is used similarly to duplicate output file descriptors. If _n is not
specified, the standard output (file descriptor 1) is used. If the
digits in _w_o_r_d do not specify a file descriptor open for output, a re-
- direction error occurs. As a special case, if _n is omitted, and _w_o_r_d
- does not expand to one or more digits, the standard output and standard
- error are redirected as described previously.
+ direction error occurs. If _w_o_r_d evaluates to --, file descriptor _n is
+ closed. As a special case, if _n is omitted, and _w_o_r_d does not expand
+ to one or more digits or --, the standard output and standard error are
+ redirected as described previously.
MMoovviinngg FFiillee DDeessccrriippttoorrss
The redirection operator
[_n]<<&&_d_i_g_i_t--
- moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
+ moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
input (file descriptor 0) if _n is not specified. _d_i_g_i_t is closed after
being duplicated to _n.
@@ -1999,7 +2100,7 @@ RREEDDIIRREECCTTIIOONN
[_n]>>&&_d_i_g_i_t--
- moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
+ moves the file descriptor _d_i_g_i_t to file descriptor _n, or the standard
output (file descriptor 1) if _n is not specified.
OOppeenniinngg FFiillee DDeessccrriippttoorrss ffoorr RReeaaddiinngg aanndd WWrriittiinngg
@@ -2007,117 +2108,117 @@ RREEDDIIRREECCTTIIOONN
[_n]<<>>_w_o_r_d
- causes the file whose name is the expansion of _w_o_r_d to be opened for
- both reading and writing on file descriptor _n, or on file descriptor 0
+ causes the file whose name is the expansion of _w_o_r_d to be opened for
+ both reading and writing on file descriptor _n, or on file descriptor 0
if _n is not specified. If the file does not exist, it is created.
AALLIIAASSEESS
- _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
- the first word of a simple command. The shell maintains a list of
- aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
- commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS 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 //,
- $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
+ _A_l_i_a_s_e_s allow a string to be substituted for a word when it is used as
+ the first word of a simple command. The shell maintains a list of
+ aliases that may be set and unset with the aalliiaass and uunnaalliiaass builtin
+ commands (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS 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 //,
+ $$, ``, and == and any of the shell _m_e_t_a_c_h_a_r_a_c_t_e_r_s or quoting characters
listed above may not appear in an alias name. The replacement text may
- contain any valid shell input, including shell metacharacters. The
- first word of the replacement text is tested for aliases, but a word
- that is identical to an alias being expanded is not expanded a second
- time. This means that one may alias llss to llss --FF, for instance, and
- bbaasshh does not try to recursively expand the replacement text. If the
- last character of the alias value is a _b_l_a_n_k, then the next command
+ contain any valid shell input, including shell metacharacters. The
+ first word of the replacement text is tested for aliases, but a word
+ that is identical to an alias being expanded is not expanded a second
+ time. This means that one may alias llss to llss --FF, for instance, and
+ bbaasshh does not try to recursively expand the replacement text. If the
+ last character of the alias value is a _b_l_a_n_k, then the next command
word following the alias is also checked for alias expansion.
Aliases are created and listed with the aalliiaass command, and removed with
the uunnaalliiaass command.
- There is no mechanism for using arguments in the replacement text. If
- arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
+ There is no mechanism for using arguments in the replacement text. If
+ arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
below).
- Aliases are not expanded when the shell is not interactive, unless the
- eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
+ Aliases are not expanded when the shell is not interactive, unless the
+ eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- The rules concerning the definition and use of aliases are somewhat
- confusing. BBaasshh always reads at least one complete line of input
- before executing any of the commands on that line. Aliases are
- expanded when a command is read, not when it is executed. Therefore,
- an alias definition appearing on the same line as another command does
- not take effect until the next line of input is read. The commands
+ The rules concerning the definition and use of aliases are somewhat
+ confusing. BBaasshh always reads at least one complete line of input
+ before executing any of the commands on that line. Aliases are
+ expanded when a command is read, not when it is executed. Therefore,
+ an alias definition appearing on the same line as another command does
+ not take effect until the next line of input is read. The commands
following the alias definition on that line are not affected by the new
- alias. This behavior is also an issue when functions are executed.
- Aliases are expanded when a function definition is read, not when the
- function is executed, because a function definition is itself a com-
+ alias. This behavior is also an issue when functions are executed.
+ Aliases are expanded when a function definition is read, not when the
+ function is executed, because a function definition is itself a com-
pound command. As a consequence, aliases defined in a function are not
- available until after that function is executed. To be safe, always
- put alias definitions on a separate line, and do not use aalliiaass in com-
+ available until after that function is executed. To be safe, always
+ put alias definitions on a separate line, and do not use aalliiaass in com-
pound commands.
For almost every purpose, aliases are superseded by shell functions.
FFUUNNCCTTIIOONNSS
- A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
- stores a series of commands for later execution. When the name of a
- shell function is used as a simple command name, the list of commands
+ A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
+ stores a series of commands for later execution. When the name of a
+ shell function is used as a simple command name, the list of commands
associated with that function name is executed. Functions are executed
- in the context of the current shell; no new process is created to
- interpret them (contrast this with the execution of a shell script).
- When a function is executed, the arguments to the function become the
+ in the context of the current shell; no new process is created to
+ interpret them (contrast this with the execution of a shell script).
+ When a function is executed, the arguments to the function become the
positional parameters during its execution. The special parameter ## is
- updated to reflect the change. Special parameter 00 is unchanged. The
- first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
+ updated to reflect the change. Special parameter 00 is unchanged. The
+ first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
tion while the function is executing.
- All other aspects of the shell execution environment are identical
+ All other aspects of the shell execution environment are identical
between a function and its caller with these exceptions: the DDEEBBUUGG and
- RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
- given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
- below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
- builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
- traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
+ RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
+ given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
+ below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
+ builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
+ traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
option has been enabled.
- Variables local to the function may be declared with the llooccaall builtin
+ Variables local to the function may be declared with the llooccaall builtin
command. Ordinarily, variables and their values are shared between the
function and its caller.
- The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0,
- defines a maximum function nesting level. Function invocations that
+ The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0,
+ defines a maximum function nesting level. Function invocations that
exceed the limit cause the entire command to abort.
- If the builtin command rreettuurrnn is executed in a function, the function
- completes and execution resumes with the next command after the func-
- tion call. Any command associated with the RREETTUURRNN trap is executed
+ If the builtin command rreettuurrnn is executed in a function, the function
+ completes and execution resumes with the next command after the func-
+ tion call. Any command associated with the RREETTUURRNN trap is executed
before execution resumes. When a function completes, the values of the
- positional parameters and the special parameter ## are restored to the
+ positional parameters and the special parameter ## are restored to the
values they had prior to the function's execution.
- Function names and definitions may be listed with the --ff option to the
+ Function names and definitions may be listed with the --ff option to the
ddeeccllaarree or ttyyppeesseett builtin commands. The --FF option to ddeeccllaarree or ttyyppee--
- sseett will list the function names only (and optionally the source file
- and line number, if the eexxttddeebbuugg shell option is enabled). Functions
- may be exported so that subshells automatically have them defined with
- the --ff option to the eexxppoorrtt builtin. A function definition may be
- deleted using the --ff option to the uunnsseett builtin. Note that shell
+ sseett will list the function names only (and optionally the source file
+ and line number, if the eexxttddeebbuugg shell option is enabled). Functions
+ may be exported so that subshells automatically have them defined with
+ the --ff option to the eexxppoorrtt builtin. A function definition may be
+ deleted using the --ff option to the uunnsseett builtin. Note that shell
functions and variables with the same name may result in multiple iden-
- tically-named entries in the environment passed to the shell's chil-
+ tically-named entries in the environment passed to the shell's chil-
dren. Care should be taken in cases where this may cause a problem.
Functions may be recursive. The FFUUNNCCNNEESSTT variable may be used to limit
- the depth of the function call stack and restrict the number of func-
- tion invocations. By default, no limit is imposed on the number of
+ the depth of the function call stack and restrict the number of func-
+ tion invocations. By default, no limit is imposed on the number of
recursive calls.
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
- The shell allows arithmetic expressions to be evaluated, under certain
- circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc
- EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check
- for overflow, though division by 0 is trapped and flagged as an error.
- The operators and their precedence, associativity, and values are the
- same as in the C language. The following list of operators is grouped
- into levels of equal-precedence operators. The levels are listed in
+ The shell allows arithmetic expressions to be evaluated, under certain
+ circumstances (see the lleett and ddeeccllaarree builtin commands and AArriitthhmmeettiicc
+ EExxppaannssiioonn). Evaluation is done in fixed-width integers with no check
+ for overflow, though division by 0 is trapped and flagged as an error.
+ The operators and their precedence, associativity, and values are the
+ same as in the C language. The following list of operators is grouped
+ into levels of equal-precedence operators. The levels are listed in
order of decreasing precedence.
_i_d++++ _i_d----
@@ -2145,46 +2246,46 @@ AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
_e_x_p_r_1 ,, _e_x_p_r_2
comma
- Shell variables are allowed as operands; parameter expansion is per-
+ Shell variables are allowed as operands; parameter expansion is per-
formed before the expression is evaluated. Within an expression, shell
- variables may also be referenced by name without using the parameter
- expansion syntax. A shell variable that is null or unset evaluates to
+ variables may also be referenced by name without using the parameter
+ expansion syntax. A shell variable that is null or unset evaluates to
0 when referenced by name without using the parameter expansion syntax.
- The value of a variable is evaluated as an arithmetic expression when
- it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
+ The value of a variable is evaluated as an arithmetic expression when
+ it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
attribute using ddeeccllaarree --ii is assigned a value. A null value evaluates
- to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on
+ to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on
to be used in an expression.
Constants with a leading 0 are interpreted as octal numbers. A leading
- 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
- [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal number between 2 and 64
- representing the arithmetic base, and _n is a number in that base. If
- _b_a_s_e_# is omitted, then base 10 is used. The digits greater than 9 are
- represented by the lowercase letters, the uppercase letters, @, and _,
- in that order. If _b_a_s_e is less than or equal to 36, lowercase and
- uppercase letters may be used interchangeably to represent numbers
- between 10 and 35.
-
- Operators are evaluated in order of precedence. Sub-expressions in
- parentheses are evaluated first and may override the precedence rules
+ 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
+ [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal number between 2 and 64
+ representing the arithmetic base, and _n is a number in that base. If
+ _b_a_s_e_# is omitted, then base 10 is used. When specifying _n, the digits
+ greater< than 9 are represented by the lowercase letters, the uppercase
+ letters, @, and _, in that order. If _b_a_s_e is less than or equal to 36,
+ lowercase and uppercase letters may be used interchangeably to repre-
+ sent numbers between 10 and 35.
+
+ Operators are evaluated in order of precedence. Sub-expressions in
+ parentheses are evaluated first and may override the precedence rules
above.
CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
- Conditional expressions are used by the [[[[ compound command and the
- tteesstt and [[ builtin commands to test file attributes and perform string
- and arithmetic comparisons. Expressions are formed from the following
- unary or binary primaries. If any _f_i_l_e argument to one of the pri-
+ Conditional expressions are used by the [[[[ compound command and the
+ tteesstt and [[ builtin commands to test file attributes and perform string
+ and arithmetic comparisons. Expressions are formed from the following
+ unary or binary primaries. If any _f_i_l_e argument to one of the pri-
maries is of the form _/_d_e_v_/_f_d_/_n, then file descriptor _n is checked. If
- the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
- _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
+ the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
+ _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
is checked.
Unless otherwise specified, primaries that operate on files follow sym-
bolic links and operate on the target of the link, rather than the link
itself.
- When used with [[[[, the << and >> operators sort lexicographically using
+ When used with [[[[, the << and >> operators sort lexicographically using
the current locale. The tteesstt command sorts using ASCII ordering.
--aa _f_i_l_e
@@ -2223,28 +2324,31 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
--LL _f_i_l_e
True if _f_i_l_e exists and is a symbolic link.
--NN _f_i_l_e
- True if _f_i_l_e exists and has been modified since it was last
+ True if _f_i_l_e exists and has been modified since it was last
read.
--OO _f_i_l_e
True if _f_i_l_e exists and is owned by the effective user id.
--SS _f_i_l_e
True if _f_i_l_e exists and is a socket.
_f_i_l_e_1 --eeff _f_i_l_e_2
- True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
+ True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
bers.
_f_i_l_e_1 -nntt _f_i_l_e_2
- True if _f_i_l_e_1 is newer (according to modification date) than
+ True if _f_i_l_e_1 is newer (according to modification date) than
_f_i_l_e_2, or if _f_i_l_e_1 exists and _f_i_l_e_2 does not.
_f_i_l_e_1 -oott _f_i_l_e_2
- True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
+ True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
does not.
--oo _o_p_t_n_a_m_e
- True if the shell option _o_p_t_n_a_m_e is enabled. See the list of
- options under the description of the --oo option to the sseett
+ True if the shell option _o_p_t_n_a_m_e is enabled. See the list of
+ options under the description of the --oo option to the sseett
builtin below.
--vv _v_a_r_n_a_m_e
- True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a
+ True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a
value).
+ --RR _v_a_r_n_a_m_e
+ True if the shell variable _v_a_r_n_a_m_e is set and is a name refer-
+ ence.
--zz _s_t_r_i_n_g
True if the length of _s_t_r_i_n_g is zero.
_s_t_r_i_n_g
@@ -2254,7 +2358,9 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
_s_t_r_i_n_g_1 ==== _s_t_r_i_n_g_2
_s_t_r_i_n_g_1 == _s_t_r_i_n_g_2
True if the strings are equal. == should be used with the tteesstt
- command for POSIX conformance.
+ command for POSIX conformance. When used with the [[[[ command,
+ this performs pattern matching as described above (CCoommppoouunndd CCoomm--
+ mmaannddss).
_s_t_r_i_n_g_1 !!== _s_t_r_i_n_g_2
True if the strings are not equal.
@@ -2359,7 +2465,6 @@ CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENN
The shell has an _e_x_e_c_u_t_i_o_n _e_n_v_i_r_o_n_m_e_n_t, which consists of the follow-
ing:
-
+o open files inherited by the shell at invocation, as modified by
redirections supplied to the eexxeecc builtin
@@ -2453,8 +2558,8 @@ EENNVVIIRROONNMMEENNTT
just those that precede the command name.
When bbaasshh invokes an external command, the variable __ is set to the
- full file name of the command and passed to that command in its envi-
- ronment.
+ full filename of the command and passed to that command in its environ-
+ ment.
EEXXIITT SSTTAATTUUSS
The exit status of an executed command is the value returned by the
@@ -2803,175 +2908,198 @@ RREEAADDLLIINNEE
If set to OOnn, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their read-
line equivalents.
+ ccoolloorreedd--ssttaattss ((OOffff))
+ If set to OOnn, readline displays possible completions using dif-
+ ferent colors to indicate their file type. The color defini-
+ tions are taken from the value of the LLSS__CCOOLLOORRSS environment
+ variable.
ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
+ The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
command is executed. This command is bound to MM--## in emacs mode
and to ## in vi command mode.
ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
If set to OOnn, readline performs filename matching and completion
in a case-insensitive fashion.
ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00))
- The length in characters of the common prefix of a list of pos-
- sible 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 possi-
+ The length in characters of the common prefix of a list of pos-
+ sible 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 possi-
ble completions.
ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
- ttiioonnss command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
+ This determines when the user is queried about viewing the num-
+ ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
+ ttiioonnss command. It may be set to any integer value greater than
+ or equal to zero. If the number of possible completions is
greater than or equal to the value of this variable, the user is
- asked whether or not he wishes to view them; otherwise they are
+ asked whether or not he wishes to view them; otherwise they are
simply listed on the terminal.
ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, readline will convert characters with the eighth
+ If set to OOnn, readline will convert characters with the eighth
bit set to an ASCII key sequence by stripping the eighth bit and
- prefixing an escape character (in effect, using escape as the
+ prefixing an escape character (in effect, using escape as the
_m_e_t_a _p_r_e_f_i_x).
ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
If set to OOnn, readline will inhibit word completion. Completion
- characters will be inserted into the line as if they had been
+ characters will be inserted into the line as if they had been
mapped to sseellff--iinnsseerrtt.
eeddiittiinngg--mmooddee ((eemmaaccss))
Controls whether readline begins with a set of key bindings sim-
ilar to _E_m_a_c_s or _v_i. eeddiittiinngg--mmooddee can be set to either eemmaaccss or
vvii.
eecchhoo--ccoonnttrrooll--cchhaarraacctteerrss ((OOnn))
- When set to OOnn, on operating systems that indicate they support
+ When set to OOnn, on operating systems that indicate they support
it, readline echoes a character corresponding to a signal gener-
ated from the keyboard.
eennaabbllee--kkeeyyppaadd ((OOffff))
When set to OOnn, readline will try to enable the application key-
- pad when it is called. Some systems need this to enable the
+ pad when it is called. Some systems need this to enable the
arrow keys.
eennaabbllee--mmeettaa--kkeeyy ((OOnn))
- When set to OOnn, readline will try to enable any meta modifier
- key the terminal claims to support when it is called. On many
+ When set to OOnn, readline will try to enable any meta modifier
+ key the terminal claims to support when it is called. On many
terminals, the meta key is used to send eight-bit characters.
eexxppaanndd--ttiillddee ((OOffff))
- If set to OOnn, tilde expansion is performed when readline
+ If set to OOnn, tilde expansion is performed when readline
attempts word completion.
hhiissttoorryy--pprreesseerrvvee--ppooiinntt ((OOffff))
- If set to OOnn, the history code attempts to place point at the
- same location on each history line retrieved with pprreevviioouuss--hhiiss--
+ If set to OOnn, the history code attempts to place point at the
+ same location on each history line retrieved with pprreevviioouuss--hhiiss--
ttoorryy or nneexxtt--hhiissttoorryy.
hhiissttoorryy--ssiizzee ((00))
- 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.
+ Set the maximum number of history entries saved in the history
+ list. If set to zero, any existing history entries are deleted
+ and no new entries are saved. If set to a value less than zero,
+ the number of history entries is not limited. By default, the
+ number of history entries is not limited.
hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line for display,
+ When set to OOnn, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it
- becomes longer than the screen width rather than wrapping to a
+ becomes longer than the screen width rather than wrapping to a
new line.
iinnppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will enable eight-bit input (that is, it
- will not strip the high bit from the characters it reads),
+ If set to OOnn, readline will enable eight-bit input (that is, it
+ will not strip the high bit from the characters it reads),
regardless of what the terminal claims it can support. The name
mmeettaa--ffllaagg is a synonym for this variable.
iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ''''))
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
+ The string of characters that should terminate an incremental
+ search without subsequently executing the character as a com-
+ mand. If this variable has not been given a value, the charac-
ters _E_S_C and _C_-_J will terminate an incremental search.
kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of valid keymap names
- is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
- _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
- equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
+ Set the current readline keymap. The set of valid keymap names
+ is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
+ _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
+ equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
value of eeddiittiinngg--mmooddee also affects the default keymap.
+ kkeeyysseeqq--ttiimmeeoouutt ((550000))
+ Specifies the duration _r_e_a_d_l_i_n_e will wait for a character when
+ reading an ambiguous key sequence (one that can form a complete
+ key sequence using the input read so far, or can take additional
+ input to complete a longer key sequence). If no input is
+ received within the timeout, _r_e_a_d_l_i_n_e will use the shorter but
+ complete key sequence. The value is specified in milliseconds,
+ so a value of 1000 means that _r_e_a_d_l_i_n_e will wait one second for
+ additional input. If this variable is set to a value less than
+ or equal to zero, or to a non-numeric value, _r_e_a_d_l_i_n_e will wait
+ until another key is pressed to decide which key sequence to
+ complete.
mmaarrkk--ddiirreeccttoorriieess ((OOnn))
If set to OOnn, completed directory names have a slash appended.
mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified are dis-
+ If set to OOnn, history lines that have been modified are dis-
played with a preceding asterisk (**).
mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
If set to OOnn, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of
+ tories have a slash appended (subject to the value of
mmaarrkk--ddiirreeccttoorriieess).
mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion. If set to OOffff, the leading `.' must be
+ This variable, when set to OOnn, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion. If set to OOffff, the leading `.' must be
supplied by the user in the filename to be completed.
mmeennuu--ccoommpplleettee--ddiissppllaayy--pprreeffiixx ((OOffff))
- If set to OOnn, menu completion displays the common prefix of the
+ If set to OOnn, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling
through the list.
oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with the eighth
+ If set to OOnn, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
+ If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
play a screenful of possible completions at a time.
pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down the
+ If set to OOnn, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
screen.
rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff))
- If set to OOnn, readline will undo all changes to history lines
+ If set to OOnn, readline will undo all changes to history lines
before returning when aacccceepptt--lliinnee is executed. By default, his-
- tory lines may be modified and retain individual undo lists
+ tory lines may be modified and retain individual undo lists
across calls to rreeaaddlliinnee.
sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion functions.
+ This alters the default behavior of the completion functions.
If set to OOnn, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
+ cause the matches to be listed immediately instead of ringing
the bell.
sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff))
- This alters the default behavior of the completion functions in
+ This alters the default behavior of the completion functions in
a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to OOnn, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately
+ which have more than one possible completion without any possi-
+ ble partial completion (the possible completions don't share a
+ common prefix) cause the matches to be listed immediately
instead of ringing the bell.
+ sshhooww--mmooddee--iinn--pprroommpptt ((OOffff))
+ If set to OOnn, add a character to the beginning of the prompt
+ indicating the editing mode: emacs (@), vi command (:) or vi
+ insertion (+).
sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff))
- If set to OOnn, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- readline does not insert characters from the completion that
- match characters after point in the word being completed, so
+ If set to OOnn, this alters the default completion behavior when
+ inserting a single match into the line. It's only active when
+ performing completion in the middle of a word. If enabled,
+ readline does not insert characters from the completion that
+ match characters after point in the word being completed, so
portions of the word following the cursor are not duplicated.
vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as reported by
- _s_t_a_t(2) is appended to the filename when listing possible com-
+ If set to OOnn, a character denoting a file's type as reported by
+ _s_t_a_t(2) is appended to the filename when listing possible com-
pletions.
RReeaaddlliinnee CCoonnddiittiioonnaall CCoonnssttrruuccttss
- Readline implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
+ Readline implements a facility similar in spirit to the conditional
+ compilation features of the C preprocessor which allows key bindings
+ and variable settings to be performed as the result of tests. There
are four parser directives used.
- $$iiff The $$iiff construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
- readline. The text of the test extends to the end of the line;
+ $$iiff The $$iiff construct allows bindings to be made based on the edit-
+ ing mode, the terminal being used, or the application using
+ readline. The text of the test extends to the end of the line;
no characters are required to isolate it.
- mmooddee The mmooddee== form of the $$iiff directive is used to test
- whether readline is in emacs or vi mode. This may be
- used in conjunction with the sseett kkeeyymmaapp command, for
- instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
- _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
+ mmooddee The mmooddee== form of the $$iiff directive is used to test
+ whether readline is in emacs or vi mode. This may be
+ used in conjunction with the sseett kkeeyymmaapp command, for
+ instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
+ _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
emacs mode.
- tteerrmm The tteerrmm== form may be used to include terminal-specific
+ tteerrmm The tteerrmm== form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by
the terminal's function keys. The word on the right side
of the == is tested against the both full name of the ter-
- minal and the portion of the terminal name before the
- first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
+ minal and the portion of the terminal name before the
+ first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
for instance.
aapppplliiccaattiioonn
The aapppplliiccaattiioonn construct is used to include application-
specific settings. Each program using the readline
- library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
+ library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
+ to bind key sequences to functions useful for a specific
+ program. For instance, the following command adds a key
+ sequence that quotes the current or previous word in
bbaasshh:
$$iiff Bash
@@ -2986,51 +3114,51 @@ RREEAADDLLIINNEE
test fails.
$$iinncclluuddee
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the follow-
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file. For example, the follow-
ing directive would read _/_e_t_c_/_i_n_p_u_t_r_c:
$$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
SSeeaarrcchhiinngg
- Readline provides commands for searching through the command history
+ Readline provides commands for searching through the command history
(see HHIISSTTOORRYY below) for lines containing a specified string. There are
two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l.
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, read-
+ Incremental searches begin before the user has finished typing the
+ search string. As each character of the search string is typed, read-
line displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. The characters present in
- the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
+ so far. An incremental search requires only as many characters as
+ needed to find the desired history entry. The characters present in
+ the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
incremental search. If that variable has not been assigned a value the
- Escape and Control-J characters will terminate an incremental search.
- Control-G will abort an incremental search and restore the original
- line. When the search is terminated, the history entry containing the
+ Escape and Control-J characters will terminate an incremental search.
+ Control-G will abort an incremental search and restore the original
+ line. When the search is terminated, the history entry containing the
search string becomes the current line.
- To find other matching entries in the history list, type Control-S or
- Control-R as appropriate. This will search backward or forward in the
- history for the next entry matching the search string typed so far.
- Any other key sequence bound to a readline command will terminate the
- search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
+ To find other matching entries in the history list, type Control-S or
+ Control-R as appropriate. This will search backward or forward in the
+ history for the next entry matching the search string typed so far.
+ Any other key sequence bound to a readline command will terminate the
+ search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
nate the search and accept the line, thereby executing the command from
the history list.
Readline remembers the last incremental search string. If two Control-
- Rs are typed without any intervening characters defining a new search
+ Rs are typed without any intervening characters defining a new search
string, any remembered search string is used.
- Non-incremental searches read the entire search string before starting
- to search for matching history lines. The search string may be typed
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
by the user or be part of the contents of the current line.
RReeaaddlliinnee CCoommmmaanndd NNaammeess
- The following is a list of the names of the commands and the default
+ The following is a list of the names of the commands and the default
key sequences to which they are bound. Command names without an accom-
panying key sequence are unbound by default. In the following descrip-
- tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
- a cursor position saved by the sseett--mmaarrkk command. The text between the
+ tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
+ a cursor position saved by the sseett--mmaarrkk command. The text between the
point and mark is referred to as the _r_e_g_i_o_n.
CCoommmmaannddss ffoorr MMoovviinngg
@@ -3046,17 +3174,17 @@ RREEAADDLLIINNEE
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
sshheellll--ffoorrwwaarrdd--wwoorrdd
- Move forward to the end of the next word. Words are delimited
+ Move forward to the end of the next word. Words are delimited
by non-quoted shell metacharacters.
sshheellll--bbaacckkwwaarrdd--wwoorrdd
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are delimited by non-quoted shell metacharacters.
cclleeaarr--ssccrreeeenn ((CC--ll))
- Clear the screen leaving the current line at the top of the
- screen. With an argument, refresh the current line without
+ Clear the screen leaving the current line at the top of the
+ screen. With an argument, refresh the current line without
clearing the screen.
rreeddrraaww--ccuurrrreenntt--lliinnee
Refresh the current line.
@@ -3064,95 +3192,100 @@ RREEAADDLLIINNEE
CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
Accept the line regardless of where the cursor is. If this line
- is non-empty, add it to the history list according to the state
- of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
+ is non-empty, add it to the history list according to the state
+ of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
line, then restore the history line to its original state.
pprreevviioouuss--hhiissttoorryy ((CC--pp))
Fetch the previous command from the history list, moving back in
the list.
nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, moving forward in
+ Fetch the next command from the history list, moving forward in
the list.
bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
Move to the first line in the history.
eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the line currently
+ Move to the end of the input history, i.e., the line currently
being entered.
rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental
+ Search backward starting at the current line and moving `up'
+ through the history as necessary. This is an incremental
search.
ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
- Search forward starting at the current line and moving `down'
- through the history as necessary. This is an incremental
+ Search forward starting at the current line and moving `down'
+ through the history as necessary. This is an incremental
search.
nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
Search backward through the history starting at the current line
- using a non-incremental search for a string supplied by the
+ using a non-incremental search for a string supplied by the
user.
nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
- Search forward through the history using a non-incremental
+ Search forward through the history using a non-incremental
search for a string supplied by the user.
hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
+ Search forward through the history for the string of characters
+ between the start of the current line and the point. This is a
non-incremental search.
hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
+ between the start of the current line and the point. This is a
non-incremental search.
yyaannkk--nntthh--aarrgg ((MM--CC--yy))
- Insert the first argument to the previous command (usually the
+ Insert the first argument to the previous command (usually the
second word on the previous line) at point. With an argument _n,
- insert the _nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument
+ insert the _nth word from the previous command (the words in the
+ previous command begin with word 0). A negative argument
inserts the _nth word from the end of the previous command. Once
- the argument _n is computed, the argument is extracted as if the
+ the argument _n is computed, the argument is extracted as if the
"!_n" history expansion had been specified.
yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command (the last word
+ Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
- exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
- move back through the history list, inserting the last word (or
- the word specified by the argument to the first call) of each
+ exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg
+ move back through the history list, inserting the last word (or
+ the word specified by the argument to the first call) of each
line in turn. Any numeric argument supplied to these successive
- calls determines the direction to move through the history. A
- negative argument switches the direction through the history
+ calls determines the direction to move through the history. A
+ negative argument switches the direction through the history
(back or forward). The history expansion facilities are used to
- extract the last argument, as if the "!$" history expansion had
- been specified.
+ extract the last word, as if the "!$" history expansion had been
+ specified.
sshheellll--eexxppaanndd--lliinnee ((MM--CC--ee))
Expand the line as the shell does. This performs alias and his-
tory expansion as well as all of the shell word expansions. See
- HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion.
+ HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history expansion.
hhiissttoorryy--eexxppaanndd--lliinnee ((MM--^^))
- Perform history expansion on the current line. See HHIISSTTOORRYY
+ Perform history expansion on the current line. See HHIISSTTOORRYY
EEXXPPAANNSSIIOONN below for a description of history expansion.
mmaaggiicc--ssppaaccee
- Perform history expansion on the current line and insert a
+ Perform history expansion on the current line and insert a
space. See HHIISSTTOORRYY EEXXPPAANNSSIIOONN below for a description of history
expansion.
aalliiaass--eexxppaanndd--lliinnee
- Perform alias expansion on the current line. See AALLIIAASSEESS above
+ Perform alias expansion on the current line. See AALLIIAASSEESS above
for a description of alias expansion.
hhiissttoorryy--aanndd--aalliiaass--eexxppaanndd--lliinnee
Perform history and alias expansion on the current line.
iinnsseerrtt--llaasstt--aarrgguummeenntt ((MM--..,, MM--__))
A synonym for yyaannkk--llaasstt--aarrgg.
ooppeerraattee--aanndd--ggeett--nneexxtt ((CC--oo))
- Accept the current line for execution and fetch the next line
- relative to the current line from the history for editing. Any
+ Accept the current line for execution and fetch the next line
+ relative to the current line from the history for editing. Any
argument is ignored.
eeddiitt--aanndd--eexxeeccuuttee--ccoommmmaanndd ((CC--xxCC--ee))
- Invoke an editor on the current command line, and execute the
- result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL,
+ Invoke an editor on the current command line, and execute the
+ result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL,
$$EEDDIITTOORR, and _e_m_a_c_s as the editor, in that order.
CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
+ _e_n_d_-_o_f_-_f_i_l_e ((uussuuaallllyy CC--dd))
+ The character indicating end-of-file as set, for example, by
+ ``stty''. If this character is read when there are no charac-
+ ters on the line, and point is at the beginning of the line,
+ Readline interprets it as the end of input and returns EEOOFF.
ddeelleettee--cchhaarr ((CC--dd))
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to ddeelleettee--cchhaarr, then return EEOOFF.
+ Delete the character at point. If this function is bound to the
+ same character as the tty EEOOFF character, as CC--dd commonly is, see
+ above for the effects.
bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
@@ -3350,165 +3483,168 @@ RREEAADDLLIINNEE
ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
Re-execute the last keyboard macro defined, by making the char-
acters in the macro appear as if typed at the keyboard.
+ pprriinntt--llaasstt--kkbbdd--mmaaccrroo (())
+ Print the last keyboard macro defined in a format suitable for
+ the _i_n_p_u_t_r_c file.
MMiisscceellllaanneeoouuss
rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
+ Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
bindings or variable assignments found there.
aabboorrtt ((CC--gg))
- Abort the current editing command and ring the terminal's bell
+ Abort the current editing command and ring the terminal's bell
(subject to the setting of bbeellll--ssttyyllee).
ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......))
- If the metafied character _x is lowercase, run the command that
+ If the metafied character _x is lowercase, run the command that
is bound to the corresponding uppercase character.
pprreeffiixx--mmeettaa ((EESSCC))
Metafy the next character typed. EESSCC ff is equivalent to MMeettaa--ff.
uunnddoo ((CC--__,, CC--xx CC--uu))
Incremental undo, separately remembered for each line.
rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like executing the
- uunnddoo command enough times to return the line to its initial
+ Undo all changes made to this line. This is like executing the
+ uunnddoo command enough times to return the line to its initial
state.
ttiillddee--eexxppaanndd ((MM--&&))
Perform tilde expansion on the current word.
sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument is supplied,
+ Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
- Swap the point with the mark. The current cursor position is
- set to the saved position, and the old cursor position is saved
+ Swap the point with the mark. The current cursor position is
+ set to the saved position, and the old cursor position is saved
as the mark.
cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous occur-
+ that character. A negative count searches for previous occur-
rences.
cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the previous occur-
- rence of that character. A negative count searches for subse-
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative count searches for subse-
quent occurrences.
sskkiipp--ccssii--sseeqquueennccee
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. Such sequences begin
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
+ sequence is bound to "\[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the readline ccoomm--
- mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
+ Without a numeric argument, the value of the readline ccoomm--
+ mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
line. If a numeric argument is supplied, this command acts as a
- toggle: if the characters at the beginning of the line do not
- match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
+ toggle: if the characters at the beginning of the line do not
+ match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin-
- ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- causes this command to make the current line a shell comment.
- If a numeric argument causes the comment character to be
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
+ causes this command to make the current line a shell comment.
+ If a numeric argument causes the comment character to be
removed, the line will be executed by the shell.
gglloobb--ccoommpplleettee--wwoorrdd ((MM--gg))
- The word before point is treated as a pattern for pathname
- expansion, with an asterisk implicitly appended. This pattern
- is used to generate a list of matching file names for possible
+ The word before point is treated as a pattern for pathname
+ expansion, with an asterisk implicitly appended. This pattern
+ is used to generate a list of matching filenames for possible
completions.
gglloobb--eexxppaanndd--wwoorrdd ((CC--xx **))
- The word before point is treated as a pattern for pathname
- expansion, and the list of matching file names is inserted,
- replacing the word. If a numeric argument is supplied, an
+ The word before point is treated as a pattern for pathname
+ expansion, and the list of matching filenames is inserted,
+ replacing the word. If a numeric argument is supplied, an
asterisk is appended before pathname expansion.
gglloobb--lliisstt--eexxppaannssiioonnss ((CC--xx gg))
- The list of expansions that would have been generated by
- gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a
- numeric argument is supplied, an asterisk is appended before
+ The list of expansions that would have been generated by
+ gglloobb--eexxppaanndd--wwoorrdd is displayed, and the line is redrawn. If a
+ numeric argument is supplied, an asterisk is appended before
pathname expansion.
dduummpp--ffuunnccttiioonnss
- Print all of the functions and their key bindings to the read-
+ Print all of the functions and their key bindings to the read-
line output stream. If a numeric argument is supplied, the out-
- put is formatted in such a way that it can be made part of an
+ put is formatted in such a way that it can be made part of an
_i_n_p_u_t_r_c file.
dduummpp--vvaarriiaabblleess
Print all of the settable readline variables and their values to
- the readline output stream. If a numeric argument is supplied,
- the output is formatted in such a way that it can be made part
+ the readline output stream. If a numeric argument is supplied,
+ the output is formatted in such a way that it can be made part
of an _i_n_p_u_t_r_c file.
dduummpp--mmaaccrrooss
- Print all of the readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
+ Print all of the readline key sequences bound to macros and the
+ strings they output. If a numeric argument is supplied, the
output is formatted in such a way that it can be made part of an
_i_n_p_u_t_r_c file.
ddiissppllaayy--sshheellll--vveerrssiioonn ((CC--xx CC--vv))
- Display version information about the current instance of bbaasshh.
+ Display version information about the current instance of bbaasshh.
PPrrooggrraammmmaabbllee CCoommpplleettiioonn
- When word completion is attempted for an argument to a command for
- which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using
- the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the pro-
+ When word completion is attempted for an argument to a command for
+ which a completion specification (a _c_o_m_p_s_p_e_c) has been defined using
+ the ccoommpplleettee builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the pro-
grammable completion facilities are invoked.
- First, the command name is identified. If the command word is the
- empty string (completion attempted at the beginning of an empty line),
- any compspec defined with the --EE option to ccoommpplleettee is used. If a
- compspec has been defined for that command, the compspec is used to
+ First, the command name is identified. If the command word is the
+ empty string (completion attempted at the beginning of an empty line),
+ any compspec defined with the --EE option to ccoommpplleettee is used. If a
+ compspec has been defined for that command, the compspec is used to
generate the list of possible completions for the word. If the command
- word is a full pathname, a compspec for the full pathname is searched
- for first. If no compspec is found for the full pathname, an attempt
- is made to find a compspec for the portion following the final slash.
- If those searches do not result in a compspec, any compspec defined
+ word is a full pathname, a compspec for the full pathname is searched
+ for first. If no compspec is found for the full pathname, an attempt
+ is made to find a compspec for the portion following the final slash.
+ If those searches do not result in a compspec, any compspec defined
with the --DD option to ccoommpplleettee is used as the default.
- Once a compspec has been found, it is used to generate the list of
- matching words. If a compspec is not found, the default bbaasshh comple-
+ Once a compspec has been found, it is used to generate the list of
+ matching words. If a compspec is not found, the default bbaasshh comple-
tion as described above under CCoommpplleettiinngg is performed.
- First, the actions specified by the compspec are used. Only matches
- which are prefixed by the word being completed are returned. When the
- --ff or --dd option is used for filename or directory name completion, the
+ First, the actions specified by the compspec are used. Only matches
+ which are prefixed by the word being completed are returned. When the
+ --ff or --dd option is used for filename or directory name completion, the
shell variable FFIIGGNNOORREE is used to filter the matches.
- Any completions specified by a pathname expansion pattern to the --GG
+ Any completions specified by a pathname expansion pattern to the --GG
option are generated next. The words generated by the pattern need not
- match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not
+ match the word being completed. The GGLLOOBBIIGGNNOORREE shell variable is not
used to filter the matches, but the FFIIGGNNOORREE variable is used.
- Next, the string specified as the argument to the --WW option is consid-
- ered. The string is first split using the characters in the IIFFSS spe-
- cial variable as delimiters. Shell quoting is honored. Each word is
- then expanded using brace expansion, tilde expansion, parameter and
- variable expansion, command substitution, and arithmetic expansion, as
+ Next, the string specified as the argument to the --WW option is consid-
+ ered. The string is first split using the characters in the IIFFSS spe-
+ cial variable as delimiters. Shell quoting is honored. Each word is
+ then expanded using brace expansion, tilde expansion, parameter and
+ variable expansion, command substitution, and arithmetic expansion, as
described above under EEXXPPAANNSSIIOONN. The results are split using the rules
described above under WWoorrdd SSpplliittttiinngg. The results of the expansion are
prefix-matched against the word being completed, and the matching words
become the possible completions.
- After these matches have been generated, any shell function or command
- specified with the --FF and --CC options is invoked. When the command or
+ After these matches have been generated, any shell function or command
+ specified with the --FF and --CC options is invoked. When the command or
function is invoked, the CCOOMMPP__LLIINNEE, CCOOMMPP__PPOOIINNTT, CCOOMMPP__KKEEYY, and CCOOMMPP__TTYYPPEE
variables are assigned values as described above under SShheellll VVaarriiaabblleess.
- If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD
- 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 --FF is invoked first. The function may use
- any of the shell facilities, including the ccoommppggeenn builtin described
- below, to generate the matches. It must put the possible completions
- in the CCOOMMPPRREEPPLLYY array variable.
-
- Next, any command specified with the --CC option is invoked in an envi-
- ronment equivalent to command substitution. It should print a list of
- completions, one per line, to the standard output. Backslash may be
+ If a shell function is being invoked, the CCOOMMPP__WWOORRDDSS and CCOOMMPP__CCWWOORRDD
+ variables are also set. When the function or command is invoked, the
+ first argument ($$11) is the name of the command whose arguments are
+ being completed, the second argument ($$22) is the word being completed,
+ and the third argument ($$33) is the word preceding the word being com-
+ pleted on the current command line. No filtering of the generated com-
+ pletions against the word being completed is performed; the function or
+ command has complete freedom in generating the matches.
+
+ Any function specified with --FF is invoked first. The function may use
+ any of the shell facilities, including the ccoommppggeenn builtin described
+ below, to generate the matches. It must put the possible completions
+ in the CCOOMMPPRREEPPLLYY array variable, one per array element.
+
+ Next, any command specified with the --CC option is invoked in an envi-
+ ronment equivalent to command substitution. It should print a list of
+ completions, one per line, to the standard output. Backslash may be
used to escape a newline, if necessary.
- After all of the possible completions are generated, any filter speci-
- fied with the --XX option is applied to the list. The filter is a pat-
- tern as used for pathname expansion; a && in the pattern is replaced
- with the text of the word being completed. A literal && may be escaped
- with a backslash; the backslash is removed before attempting a match.
- Any completion that matches the pattern will be removed from the list.
+ After all of the possible completions are generated, any filter speci-
+ fied with the --XX option is applied to the list. The filter is a pat-
+ tern as used for pathname expansion; a && in the pattern is replaced
+ with the text of the word being completed. A literal && may be escaped
+ with a backslash; the backslash is removed before attempting a match.
+ Any completion that matches the pattern will be removed from the list.
A leading !! negates the pattern; in this case any completion not match-
ing the pattern will be removed.
@@ -3516,83 +3652,86 @@ RREEAADDLLIINNEE
added to each member of the completion list, and the result is returned
to the readline completion code as the list of possible completions.
- If the previously-applied actions do not generate any matches, and the
- --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was
+ If the previously-applied actions do not generate any matches, and the
+ --oo ddiirrnnaammeess option was supplied to ccoommpplleettee when the compspec was
defined, directory name completion is attempted.
- If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec
+ If the --oo pplluussddiirrss option was supplied to ccoommpplleettee when the compspec
was defined, directory name completion is attempted and any matches are
added to the results of the other actions.
- By default, if a compspec is found, whatever it generates is returned
- to the completion code as the full set of possible completions. The
+ By default, if a compspec is found, whatever it generates is returned
+ to the completion code as the full set of possible completions. The
default bbaasshh completions are not attempted, and the readline default of
filename completion is disabled. If the --oo bbaasshhddeeffaauulltt option was sup-
- plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com-
+ plied to ccoommpplleettee when the compspec was defined, the bbaasshh default com-
pletions are attempted if the compspec generates no matches. If the --oo
- ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined,
- readline's default completion will be performed if the compspec (and,
+ ddeeffaauulltt option was supplied to ccoommpplleettee when the compspec was defined,
+ readline's default completion will be performed if the compspec (and,
if attempted, the default bbaasshh completions) generate no matches.
- When a compspec indicates that directory name completion is desired,
- the programmable completion functions force readline to append a slash
- to completed names which are symbolic links to directories, subject to
- the value of the mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the
+ When a compspec indicates that directory name completion is desired,
+ the programmable completion functions force readline to append a slash
+ to completed names which are symbolic links to directories, subject to
+ the value of the mmaarrkk--ddiirreeccttoorriieess readline variable, regardless of the
setting of the mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess readline variable.
- There is some support for dynamically modifying completions. This is
- most useful when used in combination with a default completion speci-
- fied with ccoommpplleettee --DD. It's possible for shell functions executed as
- completion handlers to indicate that completion should be retried by
- returning an exit status of 124. If a shell function returns 124, and
+ There is some support for dynamically modifying completions. This is
+ most useful when used in combination with a default completion speci-
+ fied with ccoommpplleettee --DD. It's possible for shell functions executed as
+ completion handlers to indicate that completion should be retried by
+ returning an exit status of 124. If a shell function returns 124, and
changes the compspec associated with the command on which completion is
- being attempted (supplied as the first argument when the function is
+ being attempted (supplied as the first argument when the function is
executed), programmable completion restarts from the beginning, with an
- attempt to find a new compspec for that command. This allows a set of
- completions to be built dynamically as completion is attempted, rather
+ attempt to find a new compspec for that command. This allows a set of
+ completions to be built dynamically as completion is attempted, rather
than being loaded all at once.
- For instance, assuming that there is a library of compspecs, each kept
- in a file corresponding to the name of the command, the following
+ For instance, assuming that there is a library of compspecs, each kept
+ in a file corresponding to the name of the command, the following
default completion function would load completions dynamically:
_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
}
- complete -D -F _completion_loader
+ complete -D -F _completion_loader -o bashdefault -o default
HHIISSTTOORRYY
- When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell
+ When the --oo hhiissttoorryy option to the sseett builtin is enabled, the shell
provides access to the _c_o_m_m_a_n_d _h_i_s_t_o_r_y, the list of commands previously
- typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of
+ typed. The value of the HHIISSTTSSIIZZEE variable is used as the number of
commands to save in a history list. The text of the last HHIISSTTSSIIZZEE com-
- mands (default 500) is saved. The shell stores each command in the
- history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN
- above) but after history expansion is performed, subject to the values
+ mands (default 500) is saved. The shell stores each command in the
+ history list prior to parameter and variable expansion (see EEXXPPAANNSSIIOONN
+ above) but after history expansion is performed, subject to the values
of the shell variables HHIISSTTIIGGNNOORREE and HHIISSTTCCOONNTTRROOLL.
On startup, the history is initialized from the file named by the vari-
- able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value
- of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the
- number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. When the his-
- tory 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 HHIISSTTTTIIMMEEFFOORRMMAATT variable. When an inter-
- active shell exits, the last $$HHIISSTTSSIIZZEE lines are copied from the his-
- tory list to $$HHIISSTTFFIILLEE. If the hhiissttaappppeenndd shell option is enabled (see
- the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the lines
- are appended to the history file, otherwise the history file is over-
- written. If HHIISSTTFFIILLEE is unset, or if the history file is unwritable,
- the history is not saved. If the HHIISSTTTTIIMMEEFFOORRMMAATT 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 his-
- tory lines. After saving the history, the history file is truncated to
- contain no more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTTFFIILLEESSIIZZEE is not set,
- no truncation is performed.
+ able HHIISSTTFFIILLEE (default _~_/_._b_a_s_h___h_i_s_t_o_r_y). The file named by the value
+ of HHIISSTTFFIILLEE is truncated, if necessary, to contain no more than the
+ number of lines specified by the value of HHIISSTTFFIILLEESSIIZZEE. If HHIISSTTFFIILLEE--
+ SSIIZZEE is unset, or set to null, a non-numeric value, or a numeric value
+ less than zero, the history file is not truncated. When the history
+ file is read, lines beginning with the history comment character fol-
+ lowed immediately by a digit are interpreted as timestamps for the pre-
+ ceding history line. These timestamps are optionally displayed depend-
+ ing on the value of the HHIISSTTTTIIMMEEFFOORRMMAATT variable. When a shell with
+ history enabled exits, the last $$HHIISSTTSSIIZZEE lines are copied from the
+ history list to $$HHIISSTTFFIILLEE. If the hhiissttaappppeenndd shell option is enabled
+ (see the description of sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below), the
+ lines are appended to the history file, otherwise the history file is
+ overwritten. If HHIISSTTFFIILLEE is unset, or if the history file is
+ unwritable, the history is not saved. If the HHIISSTTTTIIMMEEFFOORRMMAATT variable
+ is set, time stamps are written to the history file, marked with the
+ history comment character, so they may be preserved across shell ses-
+ sions. This uses the history comment character to distinguish time-
+ stamps from other history lines. After saving the history, the history
+ file is truncated to contain no more than HHIISSTTFFIILLEESSIIZZEE lines. If HHIISSTT--
+ FFIILLEESSIIZZEE is unset, or set to null, a non-numeric value, or a numeric
+ value less than zero, the history file is not truncated.
The builtin command ffcc (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) may be used
to list or edit and re-execute a portion of the history list. The hhiiss--
@@ -3678,7 +3817,7 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
Refer to the most recent command preceding the current position
in the history list starting with _s_t_r_i_n_g.
!!??_s_t_r_i_n_g[[??]]
- Refer to the most recent command preceding the current postition
+ Refer to the most recent command preceding the current position
in the history list containing _s_t_r_i_n_g. The trailing ?? may be
omitted if _s_t_r_i_n_g is followed immediately by a newline.
^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
@@ -3699,7 +3838,8 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
The zeroth word. For the shell, this is the command word.
_n The _nth word.
^^ The first argument. That is, word 1.
- $$ The last argument.
+ $$ The last word. This is usually the last argument, but will
+ expand to the zeroth word if there is only one word in the line.
%% The word matched by the most recent `?_s_t_r_i_n_g?' search.
_x--_y A range of words; `-_y' abbreviates `0-_y'.
** All of the words but the zeroth. This is a synonym for `_1_-_$'.
@@ -3715,8 +3855,8 @@ HHIISSTTOORRYY EEXXPPAANNSSIIOONN
After the optional word designator, there may appear a sequence of one
or more of the following modifiers, each preceded by a `:'.
- hh Remove a trailing file name component, leaving only the head.
- tt Remove all leading file name components, leaving the tail.
+ hh Remove a trailing filename component, leaving only the head.
+ tt Remove all leading filename components, leaving the tail.
rr Remove a trailing suffix of the form _._x_x_x, leaving the basename.
ee Remove all but the trailing suffix.
pp Print the new command but do not execute it.
@@ -3759,9 +3899,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ssoouurrccee _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
Read and execute commands from _f_i_l_e_n_a_m_e in the current shell
environment and return the exit status of the last command exe-
- cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash, file
- names in PPAATTHH are used to find the directory containing _f_i_l_e_-
- _n_a_m_e. The file searched for in PPAATTHH need not be executable.
+ cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash,
+ filenames in PPAATTHH are used to find the directory containing
+ _f_i_l_e_n_a_m_e. The file searched for in PPAATTHH need not be executable.
When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
to the sshhoopptt builtin command is turned off, the PPAATTHH is not
@@ -3791,7 +3931,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled, any specified _j_o_b_s_p_e_c was not found or was started
without job control.
- bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVV]
+ bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVVXX]
bbiinndd [--mm _k_e_y_m_a_p] [--qq _f_u_n_c_t_i_o_n] [--uu _f_u_n_c_t_i_o_n] [--rr _k_e_y_s_e_q]
bbiinndd [--mm _k_e_y_m_a_p] --ff _f_i_l_e_n_a_m_e
bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d
@@ -3838,6 +3978,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD--
LLIINNEE__PPOOIINNTT, those new values will be reflected in the
editing state.
+ --XX List all key sequences bound to shell commands and the
+ associated commands in a format that can be reused as
+ input.
The return value is 0 unless an unrecognized option is given or
an error occurred.
@@ -3870,117 +4013,129 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
routine call or _e_x_p_r does not correspond to a valid position in
the call stack.
- ccdd [--LL|[--PP [--ee]]] [_d_i_r]
- Change the current directory to _d_i_r. The variable HHOOMMEE is the
- default _d_i_r. The variable CCDDPPAATTHH defines the search path for
- the directory containing _d_i_r. Alternative directory names in
- CCDDPPAATTHH are separated by a colon (:). A null directory name in
- CCDDPPAATTHH is the same as the current directory, i.e., ``..''. If
- _d_i_r begins with a slash (/), then CCDDPPAATTHH is not used. The --PP
- option says to use the physical directory structure instead of
- following symbolic links (see also the --PP option to the sseett
- builtin command); the --LL option forces symbolic links to be fol-
- lowed. If the --ee option is supplied with --PP, and the current
- working directory cannot be successfully determined after a suc-
- cessful directory change, ccdd will return an unsuccessful status.
- An argument of -- is equivalent to $$OOLLDDPPWWDD. If a non-empty
- directory name from CCDDPPAATTHH is used, or if -- is the first argu-
- ment, and the directory change is successful, the absolute path-
- name of the new working directory is written to the standard
- output. The return value is true if the directory was success-
- fully changed; false otherwise.
+ ccdd [--LL|[--PP [--ee]] [-@]] [_d_i_r]
+ Change the current directory to _d_i_r. if _d_i_r is not supplied,
+ the value of the HHOOMMEE shell variable is the default. Any addi-
+ tional arguments following _d_i_r are ignored. The variable CCDDPPAATTHH
+ defines the search path for the directory containing _d_i_r: each
+ directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative
+ directory names in CCDDPPAATTHH are separated by a colon (:). A null
+ directory name in CCDDPPAATTHH is the same as the current directory,
+ i.e., ``..''. If _d_i_r begins with a slash (/), then CCDDPPAATTHH is not
+ used. The --PP option causes ccdd to use the physical directory
+ structure by resolving symbolic links while traversing _d_i_r and
+ before processing instances of _._. in _d_i_r (see also the --PP option
+ to the sseett builtin command); the --LL option forces symbolic links
+ to be followed by resolving the link after processing instances
+ of _._. in _d_i_r. If _._. appears in _d_i_r, it is processed by removing
+ the immediately previous pathname component from _d_i_r, back to a
+ slash or the beginning of _d_i_r. If the --ee option is supplied
+ with --PP, and the current working directory cannot be success-
+ fully determined after a successful directory change, ccdd will
+ return an unsuccessful status. On systems that support it, the
+ --@@ option presents the extended attributes associated with a
+ file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD
+ before the directory change is attempted. If a non-empty direc-
+ tory name from CCDDPPAATTHH is used, or if -- is the first argument,
+ and the directory change is successful, the absolute pathname of
+ the new working directory is written to the standard output.
+ The return value is true if the directory was successfully
+ changed; false otherwise.
ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...]
- Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
- lookup. Only builtin commands or commands found in the PPAATTHH are
- executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
- performed using a default value for PPAATTHH that is guaranteed to
- find all of the standard utilities. If either the --VV or --vv
+ Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
+ lookup. Only builtin commands or commands found in the PPAATTHH are
+ executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
+ performed using a default value for PPAATTHH that is guaranteed to
+ find all of the standard utilities. If either the --VV or --vv
option is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
- option causes a single word indicating the command or file name
+ option causes a single word indicating the command or filename
used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a
- more verbose description. If the --VV or --vv option is supplied,
- the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
+ more verbose description. If the --VV or --vv option is supplied,
+ the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
neither option is supplied and an error occurred or _c_o_m_m_a_n_d can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d.
ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d]
- Generate possible completion matches for _w_o_r_d according to the
- _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
- builtin with the exception of --pp and --rr, and write the matches
- to the standard output. When using the --FF or --CC options, the
- various shell variables set by the programmable completion
+ Generate possible completion matches for _w_o_r_d according to the
+ _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
+ builtin with the exception of --pp and --rr, and write the matches
+ to the standard output. When using the --FF or --CC options, the
+ various shell variables set by the programmable completion
facilities, while available, will not have useful values.
- The matches will be generated in the same way as if the pro-
- grammable completion code had generated them directly from a
+ The matches will be generated in the same way as if the pro-
+ grammable completion code had generated them directly from a
completion specification with the same flags. If _w_o_r_d is speci-
fied, only those completions matching _w_o_r_d will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
+ ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
_p_a_t] [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d]
[--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_f_i_x] _n_a_m_e [_n_a_m_e _._._.]
ccoommpplleettee --pprr [--DDEE] [_n_a_m_e ...]
- Specify how arguments to each _n_a_m_e should be completed. If the
- --pp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _n_a_m_e should be completed. If the
+ --pp 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 --rr option removes a completion spec-
- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
+ ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
pletion specifications. The --DD option indicates that the
- remaining options and actions should apply to the ``default''
- command completion; that is, completion attempted on a command
- for which no completion has previously been defined. The --EE
- option indicates that the remaining options and actions should
- apply to ``empty'' command completion; that is, completion
+ remaining options and actions should apply to the ``default''
+ command completion; that is, completion attempted on a command
+ for which no completion has previously been defined. The --EE
+ 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 under PPrroo--
+ The process of applying these completion specifications when
+ word completion is attempted is described above under PPrroo--
ggrraammmmaabbllee CCoommpplleettiioonn.
- Other options, if specified, have the following meanings. The
- arguments to the --GG, --WW, and --XX options (and, if necessary, the
- --PP and --SS options) should be quoted to protect them from expan-
+ Other options, if specified, have the following meanings. The
+ arguments to the --GG, --WW, and --XX options (and, if necessary, the
+ --PP and --SS options) should be quoted to protect them from expan-
sion before the ccoommpplleettee builtin is invoked.
--oo _c_o_m_p_-_o_p_t_i_o_n
- The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
- spec's behavior beyond the simple generation of comple-
+ The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
+ spec's behavior beyond the simple generation of comple-
tions. _c_o_m_p_-_o_p_t_i_o_n may be one of:
bbaasshhddeeffaauulltt
Perform the rest of the default bbaasshh completions
if the compspec generates no matches.
- ddeeffaauulltt Use readline's default filename completion if
+ ddeeffaauulltt Use readline's default filename completion if
the compspec generates no matches.
ddiirrnnaammeess
- Perform directory name completion if the comp-
+ Perform directory name completion if the comp-
spec generates no matches.
ffiilleennaammeess
- Tell readline that the compspec generates file-
- names, so it can perform any filename-specific
- processing (like adding a slash to directory
- names, quoting special characters, or suppress-
- ing trailing spaces). Intended to be used with
+ Tell readline that the compspec generates file-
+ names, so it can perform any filename-specific
+ processing (like adding a slash to directory
+ names, quoting special characters, or suppress-
+ ing trailing spaces). Intended to be used with
shell functions.
- nnoossppaaccee Tell readline not to append a space (the
- default) to words completed at the end of the
+ nnooqquuoottee Tell readline not to quote the completed words
+ if they are filenames (quoting filenames is the
+ default).
+ nnoossppaaccee Tell readline not to append a space (the
+ default) to words completed at the end of the
line.
pplluussddiirrss
- After any matches defined by the compspec are
- generated, directory name completion is
- attempted and any matches are added to the
+ After any matches defined by the compspec are
+ generated, directory name completion is
+ attempted and any matches are added to the
results of the other actions.
--AA _a_c_t_i_o_n
- The _a_c_t_i_o_n may be one of the following to generate a
+ The _a_c_t_i_o_n may be one of the following to generate a
list of possible completions:
aalliiaass Alias names. May also be specified as --aa.
aarrrraayyvvaarr
Array variable names.
bbiinnddiinngg RReeaaddlliinnee key binding names.
- bbuuiillttiinn Names of shell builtin commands. May also be
+ bbuuiillttiinn Names of shell builtin commands. May also be
specified as --bb.
ccoommmmaanndd Command names. May also be specified as --cc.
ddiirreeccttoorryy
@@ -3988,7 +4143,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ddiissaabblleedd
Names of disabled shell builtins.
eennaabblleedd Names of enabled shell builtins.
- eexxppoorrtt Names of exported shell variables. May also be
+ eexxppoorrtt Names of exported shell variables. May also be
specified as --ee.
ffiillee File names. May also be specified as --ff.
ffuunnccttiioonn
@@ -3997,17 +4152,17 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
hheellppttooppiicc
Help topics as accepted by the hheellpp builtin.
hhoossttnnaammee
- Hostnames, as taken from the file specified by
+ Hostnames, as taken from the file specified by
the HHOOSSTTFFIILLEE shell variable.
- jjoobb Job names, if job control is active. May also
+ jjoobb Job names, if job control is active. May also
be specified as --jj.
- kkeeyywwoorrdd Shell reserved words. May also be specified as
+ kkeeyywwoorrdd Shell reserved words. May also be specified as
--kk.
rruunnnniinngg Names of running jobs, if job control is active.
sseerrvviiccee Service names. May also be specified as --ss.
- sseettoopptt Valid arguments for the --oo option to the sseett
+ sseettoopptt Valid arguments for the --oo option to the sseett
builtin.
- sshhoopptt Shell option names as accepted by the sshhoopptt
+ sshhoopptt Shell option names as accepted by the sshhoopptt
builtin.
ssiiggnnaall Signal names.
ssttooppppeedd Names of stopped jobs, if job control is active.
@@ -4016,13 +4171,18 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Names of all shell variables. May also be spec-
ified as --vv.
--CC _c_o_m_m_a_n_d
- _c_o_m_m_a_n_d is executed in a subshell environment, and its
+ _c_o_m_m_a_n_d is executed in a subshell environment, and its
output is used as the possible completions.
--FF _f_u_n_c_t_i_o_n
- The shell function _f_u_n_c_t_i_o_n is executed in the current
- shell environment. When it finishes, the possible com-
- pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
- array variable.
+ The shell function _f_u_n_c_t_i_o_n is executed in the current
+ shell environment. When the function is executed, the
+ first argument ($$11) is the name of the command whose
+ arguments are being completed, the second argument ($$22)
+ is the word being completed, and the third argument ($$33)
+ is the word preceding the word being completed on the
+ current command line. When it finishes, the possible
+ completions are retrieved from the value of the CCOOMMPPRREE--
+ PPLLYY array variable.
--GG _g_l_o_b_p_a_t
The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
generate the possible completions.
@@ -4077,27 +4237,27 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
loop) is resumed. The return value is 0 unless _n is not greater
than or equal to 1.
- ddeeccllaarree [--aaAAffFFggiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
- ttyyppeesseett [--aaAAffFFggiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
+ ddeeccllaarree [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
+ ttyyppeesseett [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
Declare variables and/or give them attributes. If no _n_a_m_es are
given then display the values of variables. The --pp option will
display the attributes and values of each _n_a_m_e. When --pp is used
- with _n_a_m_e arguments, additional options are ignored. When --pp is
- supplied without _n_a_m_e 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
- --pp, ddeeccllaarree will display the attributes and values of all shell
- variables. The --ff option will restrict the display to shell
- functions. The --FF option inhibits the display of function defi-
- nitions; only the function name and attributes are printed. If
- the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source
- file name and line number where the function is defined are dis-
- played as well. The --FF option implies --ff. The --gg option forces
- variables to be created or modified at the global scope, even
- when ddeeccllaarree is executed in a shell function. It is ignored in
- all other cases. The following options can be used to restrict
- output to variables with the specified attribute or to give
- variables attributes:
+ with _n_a_m_e arguments, additional options, other than --ff and --FF,
+ are ignored. When --pp is supplied without _n_a_m_e 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 --pp, ddeeccllaarree will display the
+ attributes and values of all shell variables. The --ff option
+ will restrict the display to shell functions. The --FF option
+ inhibits the display of function definitions; only the function
+ name and attributes are printed. If the eexxttddeebbuugg shell option
+ is enabled using sshhoopptt, the source file name and line number
+ where the function is defined are displayed as well. The --FF
+ option implies --ff. The --gg option forces variables to be created
+ or modified at the global scope, even when ddeeccllaarree is executed
+ in a shell function. It is ignored in all other cases. The
+ following options can be used to restrict output to variables
+ with the specified attribute or to give variables attributes:
--aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss
above).
--AA Each _n_a_m_e is an associative array variable (see AArrrraayyss
@@ -4109,6 +4269,13 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--ll When the variable is assigned a value, all upper-case
characters are converted to lower-case. The upper-case
attribute is disabled.
+ --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name
+ reference to another variable. That other variable is
+ defined by the value of _n_a_m_e. All references and assign-
+ ments to _n_a_m_e, except for changing the --nn attribute
+ itself, are performed on the variable referenced by
+ _n_a_m_e's value. The --nn attribute cannot be applied to
+ array variables.
--rr Make _n_a_m_es readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
--tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions
@@ -4124,66 +4291,68 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Using `+' instead of `-' turns off the attribute instead, with
the exceptions that ++aa may not be used to destroy an array vari-
able and ++rr will not remove the readonly attribute. When used
- in a function, makes each _n_a_m_e local, as with the llooccaall command,
- unless the --ggPP ooppttiioonn iiss ssuupppplliieedd,, IIff aa vvaarriiaabbllee nnaammee iiss ffooll--
- lloowweedd bbyy ==_v_a_l_u_e,, tthhee vvaalluuee ooff tthhee vvaarriiaabbllee iiss sseett ttoo _v_a_l_u_e.. TThhee
- rreettuurrnn vvaalluuee iiss 00 uunnlleessss aann iinnvvaalliidd ooppttiioonn iiss eennccoouunntteerreedd,, aann
- aatttteemmpptt iiss mmaaddee ttoo ddeeffiinnee aa ffuunnccttiioonn uussiinngg ````--ff ffoooo==bbaarr'''',, aann
- aatttteemmpptt iiss mmaaddee ttoo aassssiiggnn aa vvaalluuee ttoo aa rreeaaddoonnllyy vvaarriiaabbllee,, aann
- aatttteemmpptt iiss mmaaddee ttoo aassssiiggnn aa vvaalluuee ttoo aann aarrrraayy vvaarriiaabbllee wwiitthhoouutt
- uussiinngg tthhee ccoommppoouunndd aassssiiggnnmmeenntt ssyynnttaaxx ((sseeee AArrrraayyss above), one of
- the _n_a_m_e_s is not a valid shell variable name, an attempt is made
- to turn off readonly status for a readonly variable, 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 --ff.
-
- ddiirrss [[++_n]] [[--_n]] [[--ccllppvv]]
- Without options, displays the list of currently remembered
- directories. The default display is on a single line with
- directory names separated by spaces. Directories are added to
- the list with the ppuusshhdd command; the ppooppdd command removes
+ in a function, ddeeccllaarree and ttyyppeesseett make each _n_a_m_e local, as with
+ the llooccaall command, unless the --gg option is supplied. If a vari-
+ able name is followed by =_v_a_l_u_e, the value of the variable is
+ set to _v_a_l_u_e. When using --aa or --AA and the compound assignment
+ syntax to create array variables, additional attributes do not
+ take effect until subsequent assignments. The return value is 0
+ unless an invalid option is encountered, an attempt is made to
+ define a function using ``-f foo=bar'', an attempt is made to
+ assign a value to a readonly variable, an attempt is made to
+ assign a value to an array variable without using the compound
+ assignment syntax (see AArrrraayyss above), one of the _n_a_m_e_s is not a
+ valid shell variable name, an attempt is made to turn off read-
+ only status for a readonly variable, 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 --ff.
+
+ ddiirrss [[--ccllppvv]] [[++_n]] [[--_n]]
+ Without options, displays the list of currently remembered
+ directories. The default display is on a single line with
+ directory names separated by spaces. Directories are added to
+ the list with the ppuusshhdd command; the ppooppdd command removes
entries from the list.
- ++_n Displays the _nth entry counting from the left of the list
- shown by ddiirrss when invoked without options, starting with
- zero.
- --_n Displays the _nth entry counting from the right of the
- list shown by ddiirrss when invoked without options, starting
- with zero.
--cc Clears the directory stack by deleting all of the
entries.
- --ll Produces a longer listing; the default listing format
- uses a tilde to denote the home directory.
+ --ll Produces a listing using full pathnames; the default
+ listing format uses a tilde to denote the home directory.
--pp Print the directory stack with one entry per line.
--vv Print the directory stack with one entry per line, pre-
fixing each entry with its index in the stack.
+ ++_n Displays the _nth entry counting from the left of the list
+ shown by ddiirrss when invoked without options, starting with
+ zero.
+ --_n Displays the _nth entry counting from the right of the
+ list shown by ddiirrss when invoked without options, starting
+ with zero.
The return value is 0 unless an invalid option is supplied or _n
indexes beyond the end of the directory stack.
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...]
- Without options, each _j_o_b_s_p_e_c is removed from the table of
- active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nor --rr
- is supplied, the shell's notion of the _c_u_r_r_e_n_t _j_o_b is used. If
- the --hh option is given, each _j_o_b_s_p_e_c is not removed from the ta-
- ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the
- shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither
- the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used.
- If no _j_o_b_s_p_e_c is supplied, the --aa option means to remove or mark
- all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts
- operation to running jobs. The return value is 0 unless a _j_o_b_-
- _s_p_e_c does not specify a valid job.
+ Without options, remove each _j_o_b_s_p_e_c from the table of active
+ jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr
+ option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option
+ is given, each _j_o_b_s_p_e_c is not removed from the table, but is
+ marked so that SSIIGGHHUUPP is not sent to the job if the shell
+ receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is supplied, the --aa option
+ means to remove or mark all jobs; the --rr option without a _j_o_b_-
+ _s_p_e_c argument restricts operation to running jobs. The return
+ value is 0 unless a _j_o_b_s_p_e_c does not specify a valid job.
eecchhoo [--nneeEE] [_a_r_g ...]
Output the _a_r_gs, separated by spaces, followed by a newline.
- The return status is always 0. If --nn is specified, the trailing
- newline is suppressed. If the --ee option is given, interpreta-
- tion of the following backslash-escaped characters is enabled.
- The --EE option disables the interpretation of these escape char-
- acters, even on systems where they are interpreted by default.
- The xxppgg__eecchhoo shell option may be used to dynamically determine
- whether or not eecchhoo expands these escape characters by default.
- eecchhoo does not interpret ---- to mean the end of options. eecchhoo
- interprets the following escape sequences:
+ The return status is 0 unless a write error occurs. If --nn is
+ specified, the trailing newline is suppressed. If the --ee option
+ is given, interpretation of the following backslash-escaped
+ characters is enabled. The --EE option disables the interpreta-
+ tion of these escape characters, even on systems where they are
+ interpreted by default. The xxppgg__eecchhoo shell option may be used
+ to dynamically determine whether or not eecchhoo expands these
+ escape characters by default. eecchhoo does not interpret ---- to
+ mean the end of options. eecchhoo interprets the following escape
+ sequences:
\\aa alert (bell)
\\bb backspace
\\cc suppress further output
@@ -4195,89 +4364,88 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
\\tt horizontal tab
\\vv vertical tab
\\\\ backslash
- \\00_n_n_n the eight-bit character whose value is the octal value
+ \\00_n_n_n the eight-bit character whose value is the octal value
_n_n_n (zero to three octal digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
- \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
+ \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H (one to four hex digits)
\\UU_H_H_H_H_H_H_H_H
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits)
eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...]
- Enable and disable builtin shell commands. Disabling a builtin
+ 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 shell normally searches for builtins before disk commands.
- If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
+ to be executed without specifying a full pathname, even though
+ the shell normally searches for builtins before disk commands.
+ If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
enabled. For example, to use the tteesstt binary found via the PPAATTHH
- instead of the shell builtin version, run ``enable -n test''.
- The --ff option means to load the new builtin command _n_a_m_e from
+ instead of the shell builtin version, run ``enable -n test''.
+ The --ff option means to load the new builtin command _n_a_m_e from
shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading.
- The --dd option will delete a builtin previously loaded with --ff.
+ The --dd option will delete a builtin previously loaded with --ff.
If no _n_a_m_e arguments are given, or if the --pp option is supplied,
a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If --nn
- is supplied, only disabled builtins are printed. If --aa is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If --ss is supplied, the
- output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
- value is 0 unless a _n_a_m_e is not a shell builtin or there is an
+ ments, the list consists of all enabled shell builtins. If --nn
+ is supplied, only disabled builtins are printed. If --aa is sup-
+ plied, the list printed includes all builtins, with an indica-
+ tion of whether or not each is enabled. If --ss is supplied, the
+ output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
+ value is 0 unless a _n_a_m_e is not a shell builtin or there is an
error loading a new builtin from a shared object.
eevvaall [_a_r_g ...]
- The _a_r_gs are read and concatenated together into a single com-
- mand. This command is then read and executed by the shell, and
- its exit status is returned as the value of eevvaall. If there are
+ The _a_r_gs are read and concatenated together into a single com-
+ mand. This command is then read and executed by the shell, and
+ its exit status is returned as the value of eevvaall. If there are
no _a_r_g_s, or only null arguments, eevvaall returns 0.
eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]]
- If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
- is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
+ If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
+ is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
the --ll option is supplied, the shell places a dash at the begin-
- ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
+ ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
_l_o_g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with
- an empty environment. If --aa is supplied, the shell passes _n_a_m_e
+ an empty environment. If --aa is supplied, the shell passes _n_a_m_e
as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can-
- not be executed for some reason, a non-interactive shell exits,
- unless the shell option eexxeeccffaaiill is enabled, in which case it
- returns failure. An interactive shell returns failure if the
+ not be executed for some reason, a non-interactive shell exits,
+ unless the eexxeeccffaaiill shell option is enabled. In that case, it
+ returns failure. An interactive shell returns failure if the
file cannot be executed. If _c_o_m_m_a_n_d is not specified, any redi-
rections take effect in the current shell, and the return status
- is 0. If there is a redirection error, the return status is 1.
+ is 0. If there is a redirection error, the return status is 1.
eexxiitt [_n]
- Cause the shell to exit with a status of _n. If _n is omitted,
+ Cause the shell to exit with a status of _n. If _n is omitted,
the exit status is that of the last command executed. A trap on
EEXXIITT is executed before the shell terminates.
eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ...
eexxppoorrtt --pp
- The supplied _n_a_m_e_s are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the --ff option is
- given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
- if the --pp option is supplied, a list of all names that are
- exported in this shell is printed. The --nn option causes the
- export property to be removed from each _n_a_m_e. If a variable
- name is followed by =_w_o_r_d, the value of the variable is set to
- _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid
- option is encountered, one of the _n_a_m_e_s is not a valid shell
- variable name, or --ff is supplied with a _n_a_m_e that is not a func-
- tion.
+ The supplied _n_a_m_e_s are marked for automatic export to the envi-
+ ronment of subsequently executed commands. If the --ff option is
+ given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
+ if the --pp option is supplied, a list of names of all exported
+ variables is printed. The --nn option causes the export property
+ to be removed from each _n_a_m_e. If a variable name is followed by
+ =_w_o_r_d, the value of the variable is set to _w_o_r_d. eexxppoorrtt returns
+ an exit status of 0 unless an invalid option is encountered, one
+ of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup-
+ plied with a _n_a_m_e that is not a function.
ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t]
ffcc --ss [_p_a_t=_r_e_p] [_c_m_d]
- Fix Command. In the first form, a range of commands from _f_i_r_s_t
- to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may
- be specified as a string (to locate the last command beginning
- with that string) or as a number (an index into the history
- list, where a negative number is used as an offset from the cur-
- rent command number). If _l_a_s_t is not specified it is set to the
- current command for listing (so that ``fc -l -10'' prints the
- last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec-
- ified it is set to the previous command for editing and -16 for
- listing.
+ The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t
+ from the history list and displays or edits and re-executes
+ them. _F_i_r_s_t and _l_a_s_t may be specified as a string (to locate
+ the last command beginning with that string) or as a number (an
+ index into the history list, where a negative number is used as
+ an offset from the current command number). If _l_a_s_t is not
+ specified it is set to the current command for listing (so that
+ ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t other-
+ wise. If _f_i_r_s_t is not specified it is set to the previous com-
+ mand for editing and -16 for listing.
The --nn option suppresses the command numbers when listing. The
--rr option reverses the order of the commands. If the --ll option
@@ -4289,10 +4457,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
plete, the edited commands are echoed and executed.
In the second form, _c_o_m_m_a_n_d is re-executed after each instance
- of _p_a_t is replaced by _r_e_p. 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 com-
- mand.
+ of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is intepreted the same as
+ _f_i_r_s_t above. 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.
If the first form is used, the return value is 0 unless an
invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
@@ -4338,7 +4506,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ggeettooppttss can report errors in two ways. If the first character
of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
- normal operation diagnostic messages are printed when invalid
+ normal operation, diagnostic messages are printed when invalid
options or missing option arguments are encountered. If the
variable OOPPTTEERRRR is set to 0, no error messages will be dis-
played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon.
@@ -4363,7 +4531,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
is determined by searching the directories in $$PPAATTHH and remem-
bered. Any previously-remembered pathname is discarded. If the
--pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e
- is used as the full file name of the command. The --rr option
+ is used as the full filename of the command. The --rr option
causes the shell to forget all remembered locations. The --dd
option causes the shell to forget the remembered location of
each _n_a_m_e. If the --tt option is supplied, the full pathname to
@@ -4384,7 +4552,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
format
--ss Display only a short usage synopsis for each _p_a_t_t_e_r_n
- The return status is 0 unless no command matches _p_a_t_t_e_r_n.
+
+ The return status is 0 unless no command matches _p_a_t_t_e_r_n.
hhiissttoorryy [[_n]]
hhiissttoorryy --cc
@@ -4412,10 +4581,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
file into the current history list. These are lines
appended to the history file since the beginning of the
current bbaasshh session.
- --rr Read the contents of the history file and use them as the
- current history.
- --ww Write the current history to the history file, overwrit-
- ing the history file's contents.
+ --rr Read the contents of the history file and append them to
+ the current history list.
+ --ww Write the current history list to the history file, over-
+ writing the history file's contents.
--pp Perform history substitution on the following _a_r_g_s and
display the result on the standard output. Does not
store the results in the history list. Each _a_r_g must be
@@ -4444,8 +4613,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
status since the user was last notified of their status.
--pp List only the process ID of the job's process group
leader.
- --rr Restrict output to running jobs.
- --ss Restrict output to stopped jobs.
+ --rr Display only running jobs.
+ --ss Display only stopped jobs.
If _j_o_b_s_p_e_c is given, output is restricted to information about
that job. The return status is 0 unless an invalid option is
@@ -4569,37 +4738,41 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
The corresponding _a_r_g_u_m_e_n_t is an integer representing the
number of seconds since the epoch. Two special argument
values may be used: -1 represents the current time, and
- -2 represents the time the shell was invoked.
+ -2 represents the time the shell was invoked. If no
+ argument is specified, conversion behaves as if -1 had
+ been given. This is an exception to the usual pprriinnttff
+ behavior.
- Arguments to non-string format specifiers are treated as C con-
+ Arguments to non-string format specifiers are treated as C con-
stants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value
+ if the leading character is a single or double quote, the value
is the ASCII value of the following character.
- The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
+ The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
_m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
+ the 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.
ppuusshhdd [--nn] [+_n] [-_n]
ppuusshhdd [--nn] [_d_i_r]
- Adds a directory to the top of the directory stack, or rotates
- the stack, making the new top of the stack the current working
+ 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
- and returns 0, unless the directory stack is empty. Arguments,
+ and returns 0, unless the directory stack is empty. Arguments,
if supplied, have the following meanings:
- --nn Suppresses the normal change of directory when adding
- directories to the stack, so that only the stack is
+ --nn Suppresses the normal change of directory when adding
+ directories to the stack, so that only the stack is
manipulated.
- ++_n Rotates the stack so that the _nth directory (counting
- from the left of the list shown by ddiirrss, starting with
+ ++_n Rotates the stack so that the _nth directory (counting
+ from the left of the list shown by ddiirrss, starting with
zero) is at the top.
- --_n Rotates the stack so that the _nth directory (counting
- from the right of the list shown by ddiirrss, starting with
+ --_n Rotates the stack so that the _nth directory (counting
+ from the right of the list shown by ddiirrss, starting with
zero) is at the top.
_d_i_r Adds _d_i_r to the directory stack at the top, making it the
- new current working directory.
+ new current working directory as if it had been supplied
+ as the argument to the ccdd builtin.
If the ppuusshhdd command is successful, a ddiirrss is performed as well.
If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
@@ -4626,128 +4799,149 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ing separators assigned to the last _n_a_m_e. If there are fewer
words read from the input stream than names, the remaining names
are assigned empty values. The characters in IIFFSS are used to
- split the line into words. The backslash character (\\) may be
- used to remove any special meaning for the next character read
- and for line continuation. Options, if supplied, have the fol-
- lowing meanings:
+ split the line into words using the same rules the shell uses
+ for expansion (described above under WWoorrdd SSpplliittttiinngg). The back-
+ slash character (\\) may be used to remove any special meaning
+ for the next character read and for line continuation. Options,
+ if supplied, have the following meanings:
--aa _a_n_a_m_e
The words are assigned to sequential indices of the array
variable _a_n_a_m_e, starting at 0. _a_n_a_m_e is unset before any
new values are assigned. Other _n_a_m_e arguments are
ignored.
--dd _d_e_l_i_m
- The first character of _d_e_l_i_m is used to terminate the
+ The first character of _d_e_l_i_m is used to terminate the
input line, rather than newline.
--ee If the standard input is coming from a terminal, rreeaaddlliinnee
- (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
- line uses the current (or default, if line editing was
+ (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
+ line uses the current (or default, if line editing was
not previously active) editing settings.
--ii _t_e_x_t
- If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
+ If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
placed into the editing buffer before editing begins.
--nn _n_c_h_a_r_s
- rreeaadd returns after reading _n_c_h_a_r_s characters rather than
- waiting for a complete line of input, but honor a delim-
- iter if fewer than _n_c_h_a_r_s characters are read before the
+ rreeaadd returns after reading _n_c_h_a_r_s characters rather than
+ waiting for a complete line of input, but honor a delim-
+ iter if fewer than _n_c_h_a_r_s characters are read before the
delimiter.
--NN _n_c_h_a_r_s
- rreeaadd returns after reading exactly _n_c_h_a_r_s characters
- rather than waiting for a complete line of input, unless
- EOF is encountered or rreeaadd times out. Delimiter charac-
- ters encountered in the input are not treated specially
- and do not cause rreeaadd to return until _n_c_h_a_r_s characters
+ rreeaadd returns after reading exactly _n_c_h_a_r_s characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or rreeaadd times out. Delimiter charac-
+ ters encountered in the input are not treated specially
+ and do not cause rreeaadd to return until _n_c_h_a_r_s characters
are read.
--pp _p_r_o_m_p_t
Display _p_r_o_m_p_t on standard error, without a trailing new-
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
--rr Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not be used as a line
+ slash is considered to be part of the line. In particu-
+ lar, a backslash-newline pair may not be used as a line
continuation.
--ss Silent mode. If input is coming from a terminal, charac-
ters are not echoed.
--tt _t_i_m_e_o_u_t
- Cause rreeaadd to time out and return failure if a complete
- line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_-
- _o_u_t may be a decimal number with a fractional portion
- following the decimal point. This option is only effec-
- tive if rreeaadd is reading input from a terminal, pipe, or
- other special file; it has no effect when reading from
- regular files. If _t_i_m_e_o_u_t is 0, rreeaadd 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.
+ Cause rreeaadd to time out and return failure if a complete
+ line of input (or a specified number of characters) is
+ not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci-
+ mal number with a fractional portion following the deci-
+ mal point. This option is only effective if rreeaadd is
+ reading input from a terminal, pipe, or other special
+ file; it has no effect when reading from regular files.
+ If rreeaadd times out, rreeaadd saves any partial input read into
+ the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd
+ returns immediately, without trying to read any data.
+ The exit status is 0 if input is available on the speci-
+ fied file descriptor, non-zero otherwise. The exit sta-
+ tus is greater than 128 if the timeout is exceeded.
--uu _f_d Read input from file descriptor _f_d.
If no _n_a_m_e_s are supplied, the line read is assigned to the vari-
able RREEPPLLYY. The return code is zero, unless end-of-file is
encountered, rreeaadd times out (in which case the return code is
- greater than 128), or an invalid file descriptor is supplied as
- the argument to --uu.
-
- rreeaaddoonnllyy [--aaAAppff] [_n_a_m_e[=_w_o_r_d] ...]
- The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
- may not be changed by subsequent assignment. If the --ff option
- is supplied, the functions corresponding to the _n_a_m_e_s are so
- marked. The --aa option restricts the variables to indexed
- arrays; the --AA option restricts the variables to associative
- arrays. If no _n_a_m_e arguments are given, or if the --pp option is
- supplied, a list of all readonly names is printed. The --pp
- option causes output to be displayed in a format that may be
- reused as input. If a variable name is followed by =_w_o_r_d, the
- value of the variable is set to _w_o_r_d. The return status is 0
- unless an invalid option is encountered, one of the _n_a_m_e_s is not
- a valid shell variable name, or --ff is supplied with a _n_a_m_e that
- is not a function.
+ greater than 128), a variable assignment error (such as assign-
+ ing to a readonly variable) occurs, or an invalid file descrip-
+ tor is supplied as the argument to --uu.
+
+ rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...]
+ The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
+ may not be changed by subsequent assignment. If the --ff option
+ is supplied, the functions corresponding to the _n_a_m_e_s are so
+ marked. The --aa option restricts the variables to indexed
+ arrays; the --AA option restricts the variables to associative
+ arrays. If both options are supplied, --AA takes precedence. If
+ no _n_a_m_e arguments are given, or if the --pp option is supplied, a
+ list of all readonly names is printed. The other options may be
+ used to restrict the output to a subset of the set of readonly
+ names. The --pp option causes output to be displayed in a format
+ that may be reused as input. If a variable name is followed by
+ =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return
+ status is 0 unless an invalid option is encountered, one of the
+ _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with
+ a _n_a_m_e that is not a function.
rreettuurrnn [_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
- executed in the function body. If used outside a function, but
- during execution of a script by the .. (ssoouurrccee) command, it
- causes the shell to stop executing that script and return either
- _n or the exit status of the last command executed within the
- script as the exit status of the script. If used outside a
- function and not during execution of a script by .., the return
- status is false. Any command associated with the RREETTUURRNN trap is
- executed before execution resumes after the function or script.
+ Causes a function to stop executing and return the value speci-
+ fied by _n to its caller. If _n is omitted, the return status is
+ that of the last command executed in the function body. If
+ rreettuurrnn is used outside a function, but during execution of a
+ script by the .. (ssoouurrccee) command, it causes the shell to stop
+ executing that script and return either _n or the exit status of
+ the last command executed within the script as the exit status
+ of the script. If _n is supplied, the return value is its least
+ significant 8 bits. The return status is non-zero if rreettuurrnn is
+ supplied a non-numeric argument, or is used outside a function
+ and not during execution of a script by .. or ssoouurrccee. Any com-
+ mand associated with the RREETTUURRNN trap is executed before execu-
+ tion resumes after the function or script.
sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- Without options, the name and value of each shell variable are
+ 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. Read-only variables can-
- not be reset. In _p_o_s_i_x _m_o_d_e, 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 option processing are treated as val-
+ not be reset. In _p_o_s_i_x mode, 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 option processing are treated as val-
ues for the positional parameters and are assigned, in order, to
- $$11, $$22, ...... $$_n. Options, if specified, have the following
+ $$11, $$22, ...... $$_n. Options, if specified, have the following
meanings:
- --aa Automatically mark variables and functions which are
- modified or created for export to the environment of
+ --aa Automatically mark variables and functions which are
+ modified or created for export to the environment of
subsequent commands.
- --bb Report the status of terminated background jobs immedi-
+ --bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
- --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
- single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
- parentheses, or one of the commands executed as part of
- a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
- above) exits with a non-zero status. The shell does not
- exit if the command that fails is part of the command
- list immediately following a wwhhiillee or uunnttiill keyword,
- part of the test following the iiff or eelliiff reserved
- words, part of any command executed in a &&&& or |||| list
- except the command following the final &&&& or ||||, any
- command in a pipeline but the last, or if the command's
- return value is being inverted with !!. A trap on EERRRR,
+ --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
+ single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d
+ (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta-
+ tus. The shell does not exit if the command that fails
+ is part of the command list immediately following a
+ wwhhiillee or uunnttiill keyword, part of the test following the
+ iiff or eelliiff reserved words, part of any command executed
+ in a &&&& or |||| list except the command following the
+ final &&&& or ||||, any command in a pipeline but the last,
+ or if the command's return value is being inverted with
+ !!. If a compound command other than a subshell returns
+ a non-zero status because a command failed while --ee was
+ being ignored, the shell does not exit. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
+
+ If a compound command or shell function executes in a
+ context where --ee is being ignored, none of the commands
+ executed within the compound command or function body
+ will be affected by the --ee setting, even if --ee is set
+ and a command returns a failure status. If a compound
+ command or shell function sets --ee while executing in a
+ context where --ee is ignored, that setting will not have
+ any effect until the compound command or the command
+ containing the function call completes.
--ff Disable pathname expansion.
--hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
@@ -4756,10 +4950,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
that precede the command name.
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
- support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
- cesses run in a separate process group and a line con-
- taining their exit status is printed upon their comple-
- tion.
+ support it (see JJOOBB CCOONNTTRROOLL above). All processes run
+ in a separate process group. When a background job com-
+ pletes, the shell prints a line containing its exit sta-
+ tus.
--nn Read commands but do not execute them. This may be used
to check a shell script for syntax errors. This is
ignored by interactive shells.
@@ -4809,7 +5003,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
is disabled by default.
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
- match the standard (_p_o_s_i_x _m_o_d_e).
+ match the standard (_p_o_s_i_x _m_o_d_e). See SSEEEE AALLSSOO
+ below for a reference to a document that details
+ how posix mode affects bash's behavior.
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
@@ -4858,7 +5054,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
- --PP If set, the shell does not follow symbolic links when
+ --PP If set, the shell does not resolve symbolic links when
executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
@@ -4894,12 +5090,14 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
zero if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
- Toggle the values of variables controlling optional shell behav-
- ior. With no options, or with the --pp option, a list of all set-
- table options is displayed, with an indication of whether or not
- each is set. The --pp option causes output to be displayed in a
- form that may be reused as input. Other options have the fol-
- lowing meanings:
+ Toggle the values of settings controlling optional shell behav-
+ ior. The settings can be either those listed below, or, if the
+ --oo option is used, those available with the --oo option to the sseett
+ builtin command. With no options, or with the --pp option, a list
+ of all settable options is displayed, with an indication of
+ whether or not each is set. The --pp option causes output to be
+ displayed in a form that may be reused as input. Other options
+ have the following meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
--qq Suppresses normal output (quiet mode); the return status
@@ -4910,10 +5108,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
- If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
- play is limited to those options which are set or unset, respec-
- tively. Unless otherwise noted, the sshhoopptt options are disabled
- (unset) by default.
+ If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
+ shows only those options which are set or unset, respectively.
+ Unless otherwise noted, the sshhoopptt options are disabled (unset)
+ by default.
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
@@ -4933,7 +5131,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
ter, and one character too many. If a correction is
- found, the corrected file name is printed, and the com-
+ found, the corrected filename is printed, and the com-
mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
@@ -4958,146 +5156,183 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the [[[[ conditional
- command's ==~~ operator.
+ command's ==~~ operator and locale-specific string compar-
+ ison when using the [[[[ conditional command's << and >>
+ operators. Bash versions prior to bash-4.1 use ASCII
+ collation and _s_t_r_c_m_p(3); bash-4.1 and later use the cur-
+ rent locale's collation sequence and _s_t_r_c_o_l_l(3).
ccoommppaatt3322
If set, bbaasshh changes its behavior to that of version 3.2
with respect to locale-specific string comparison when
- using the [[[[ conditional command's << and >> operators.
- Bash versions prior to bash-4.1 use ASCII collation and
- _s_t_r_c_m_p(3); bash-4.1 and later use the current locale's
- collation sequence and _s_t_r_c_o_l_l(3).
+ using the [[[[ conditional command's << and >> operators
+ (see previous item).
ccoommppaatt4400
If set, bbaasshh changes its behavior to that of version 4.0
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
- (see previous item) and the effect of interrupting a
- command list.
+ (see description of ccoommppaatt3311) and the effect of inter-
+ rupting a command list. Bash versions 4.0 and later
+ interrupt the list as if the shell received the inter-
+ rupt; previous versions continue with the next command
+ in the list.
ccoommppaatt4411
- @item compat41 If set, bbaasshh, when in posix mode, treats
- a single quote in a double-quoted parameter expansion as
- a special character. The single quotes must match (an
- even number) and the characters between the single
- quotes are considered quoted. This is the behavior of
- posix mode through version 4.1. The default bash behav-
- ior remains as in previous versions.
+ If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
+ in a double-quoted parameter expansion as a special
+ character. The single quotes must match (an even num-
+ ber) and the characters between the single quotes are
+ considered quoted. This is the behavior of posix mode
+ through version 4.1. The default bash behavior remains
+ as in previous versions.
+ ccoommppaatt4422
+ If set, bbaasshh does not process the replacement string in
+ the pattern substitution word expansion using quote
+ removal.
+ ccoommpplleettee__ffuullllqquuoottee
+ If set, bbaasshh quotes all shell metacharacters in file-
+ names and directory names when performing completion.
+ If not set, bbaasshh removes metacharacters such as the dol-
+ lar sign from the set of characters that will be quoted
+ in completed filenames when these metacharacters appear
+ in shell variable references in words to be completed.
+ This means that dollar signs in variable names that
+ expand to directories will not be quoted; however, any
+ dollar signs appearing in filenames will not be quoted,
+ either. This is active only when bash is using back-
+ slashes to quote completed filenames. This variable is
+ set by default, which is the default bash behavior in
+ versions through 4.2.
+ ddiirreexxppaanndd
+ If set, bbaasshh replaces directory names with the results
+ of word expansion when performing filename completion.
+ This changes the contents of the readline editing
+ buffer. If not set, bbaasshh attempts to preserve what the
+ user typed.
ddiirrssppeellll
- If set, bbaasshh attempts spelling correction on directory
- names during word completion if the directory name ini-
+ If set, bbaasshh attempts spelling correction on directory
+ names during word completion if the directory name ini-
tially supplied does not exist.
- ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
+ ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
- not execute the file specified as an argument to the
- eexxeecc builtin command. An interactive shell does not
+ not execute the file specified as an argument to the
+ eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
- If set, aliases are expanded as described above under
+ If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
- If set, behavior intended for use by debuggers is
+ If set, behavior intended for use by debuggers is
enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
- 22.. If the command run by the DDEEBBUUGG trap returns a
- non-zero value, the next command is skipped and
+ 22.. If the command run by the DDEEBBUUGG trap returns a
+ non-zero value, the next command is skipped and
not executed.
- 33.. If the command run by the DDEEBBUUGG trap returns a
- value of 2, and the shell is executing in a sub-
- routine (a shell function or a shell script exe-
- cuted by the .. or ssoouurrccee builtins), a call to
+ 33.. If the command run by the DDEEBBUUGG trap returns a
+ value of 2, and the shell is executing in a sub-
+ routine (a shell function or a shell script exe-
+ cuted by the .. or ssoouurrccee builtins), a call to
rreettuurrnn is simulated.
- 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
+ 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
- 55.. Function tracing is enabled: command substitu-
+ 55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
- 66.. Error tracing is enabled: command substitution,
- shell functions, and subshells invoked with ((
+ 66.. Error tracing is enabled: command substitution,
+ shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
- If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
- within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
+ If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
+ within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
- If set, patterns which fail to match filenames during
+ If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
- If set, the suffixes specified by the FFIIGGNNOORREE shell
- variable cause words to be ignored when performing word
+ If set, the suffixes specified by the FFIIGGNNOORREE shell
+ variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
- description of FFIIGGNNOORREE. This option is enabled by
+ description of FFIIGGNNOORREE. This option is enabled by
default.
+ gglloobbaasscciiiirraannggeess
+ If set, range expressions used in pattern matching
+ bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
+ as if in the traditional C locale when performing com-
+ parisons. That is, the current locale's collating
+ sequence is not taken into account, so bb will not col-
+ late between AA and BB, and upper-case and lower-case
+ ASCII characters will collate together.
gglloobbssttaarr
If set, the pattern **** used in a pathname expansion con-
- text will match a files and zero or more directories and
- subdirectories. If the pattern is followed by a //, only
- directories and subdirectories match.
+ text will match all files and zero or more directories
+ and subdirectories. If the pattern is followed by a //,
+ only directories and subdirectories match.
ggnnuu__eerrrrffmmtt
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
- If set, the history list is appended to the file named
- by the value of the HHIISSTTFFIILLEE variable when the shell
+ If set, the history list is appended to the file named
+ by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
- If set, and rreeaaddlliinnee is being used, a user is given the
+ If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
- If set, and rreeaaddlliinnee is being used, the results of his-
- tory substitution are not immediately passed to the
- shell parser. Instead, the resulting line is loaded
+ If set, and rreeaaddlliinnee is being used, the results of his-
+ tory substitution are not immediately passed to the
+ shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
- perform hostname completion when a word containing a @@
- is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
+ perform hostname completion when a word containing a @@
+ is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
- and all remaining characters on that line to be ignored
- in an interactive shell (see CCOOMMMMEENNTTSS above). This
+ and all remaining characters on that line to be ignored
+ in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
llaassttppiippee
- If set, and job control is not active, the shell runs
+ If set, and job control is not active, the shell runs
the last command of a pipeline not executed in the back-
ground in the current shell environment.
- lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
+ lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooggiinn__sshheellll
- The shell sets this option if it is started as a login
- shell (see IINNVVOOCCAATTIIOONN above). The value may not be
+ The shell sets this option if it is started as a login
+ shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
- If set, and a file that bbaasshh is checking for mail has
- been accessed since the last time it was checked, the
- message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
+ If set, and a file that bbaasshh is checking for mail has
+ been accessed since the last time it was checked, the
+ message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
- If set, and rreeaaddlliinnee is being used, bbaasshh will not
+ If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
- If set, bbaasshh matches filenames in a case-insensitive
+ If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
- If set, bbaasshh matches patterns in a case-insensitive
+ If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands.
nnuullllgglloobb
- If set, bbaasshh allows patterns which match no files (see
- PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
+ If set, bbaasshh allows patterns which match no files (see
+ PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -5105,48 +5340,50 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
- mand substitution, arithmetic expansion, and quote
- removal after being expanded as described in PPRROOMMPPTTIINNGG
+ mand substitution, arithmetic expansion, and quote
+ removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
- The shell sets this option if it is started in
+ The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
- may not be changed. This is not reset when the startup
- files are executed, allowing the startup files to dis-
+ may not be changed. This is not reset when the startup
+ files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
- If set, the sshhiifftt builtin prints an error message when
+ If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
- find the directory containing the file supplied as an
+ find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
- If set, the eecchhoo builtin expands backslash-escape
+ If set, the eecchhoo builtin expands backslash-escape
sequences by default.
+
ssuussppeenndd [--ff]
- Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
+ Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and --ff is not sup-
+ tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
+
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
- Return a status of 0 or 1 depending on the evaluation of the
- conditional expression _e_x_p_r. Each operator and operand must be
- a separate argument. Expressions are composed of the primaries
- described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
- accept any options, nor does it accept and ignore an argument of
- ---- as signifying the end of options.
-
- Expressions may be combined using the following operators,
+ Return a status of 0 (true) or 1 (false) depending on the evalu-
+ ation of the conditional expression _e_x_p_r. Each operator and op-
+ erand must be a separate argument. Expressions are composed of
+ the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
+ tteesstt does not accept any options, nor does it accept and ignore
+ an argument of ---- as signifying the end of options.
+
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
- depends on the number of arguments; see below. Operator prece-
+ depends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
- Returns the value of _e_x_p_r. This may be used to override
+ Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -5163,76 +5400,79 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
+ only if the second argument is null. If the first argu-
+ ment is one of the unary conditional operators listed
+ above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
- If the second argument is one of the binary conditional
+ If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
- using the first and third arguments as operands. The --aa
- and --oo 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
+ using the first and third arguments as operands. The --aa
+ and --oo 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. Other-
+ is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
- the three-argument expression composed of the remaining
+ the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
+ uated according to precedence using the rules listed
above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- When used with tteesstt or [[, the << and >> operators sort lexico-
+ When used with tteesstt or [[, the << and >> operators sort lexico-
graphically using ASCII ordering.
- ttiimmeess Print the accumulated user and system times for the shell and
+ ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
- The command _a_r_g is to be read and executed when the shell
- receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
- single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
- original disposition (the value it had upon entrance to the
- shell). If _a_r_g is the null string the signal specified by each
- _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
- If _a_r_g is not present and --pp has been supplied, then the trap
- commands associated with each _s_i_g_s_p_e_c are displayed. If no
- arguments are supplied or if only --pp is given, ttrraapp prints the
- list of commands associated with each signal. The --ll option
- causes the shell to print a list of signal names and their cor-
- responding numbers. Each _s_i_g_s_p_e_c is either a signal name
- defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
+ The command _a_r_g is to be read and executed when the shell
+ receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
+ single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
+ original disposition (the value it had upon entrance to the
+ shell). If _a_r_g is the null string the signal specified by each
+ _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
+ If _a_r_g is not present and --pp has been supplied, then the trap
+ commands associated with each _s_i_g_s_p_e_c are displayed. If no
+ arguments are supplied or if only --pp is given, ttrraapp prints the
+ list of commands associated with each signal. The --ll option
+ causes the shell to print a list of signal names and their cor-
+ responding numbers. Each _s_i_g_s_p_e_c is either a signal name
+ defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SSIIGG prefix is optional.
- If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
- from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
- cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
- _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
- first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
- above). Refer to the description of the eexxttddeebbuugg option to the
+ If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
+ from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
+ cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
+ _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
+ first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
+ above). Refer to the description of the eexxttddeebbuugg option to the
sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
ishes executing.
- If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim-
- ple command has a non-zero exit status, subject to the following
- conditions. The EERRRR trap is not executed if the failed command
- is part of the command list immediately following a wwhhiillee or
- uunnttiill keyword, part of the test in an _i_f statement, part of a
- command executed in a &&&& or |||| list, or if the command's return
- value is being inverted via !!. These are the same conditions
- obeyed by the eerrrreexxiitt option.
+ If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a a
+ pipeline (which may consist of a single simple command), a list,
+ or a compound command returns a non-zero exit status, subject to
+ the following conditions. The EERRRR trap is not executed if the
+ failed command is part of the command list immediately following
+ a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
+ part of a command executed in a &&&& or |||| list except the command
+ following the final &&&& or ||||, any command in a pipeline but the
+ last, or if the command's return value is being inverted using
+ !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
+ option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
@@ -5252,14 +5492,14 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
- hashed, --pp and --PP print the hashed value, not necessarily the
- file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
- prints all of the places that contain an executable named _n_a_m_e.
- This includes aliases and functions, if and only if the --pp
- option is not also used. The table of hashed commands is not
- consulted when using --aa. The --ff option suppresses shell func-
- tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
- all of the arguments are found, false if any are not found.
+ hashed, --pp and --PP print the hashed value, which is not necessar-
+ ily the file that appears first in PPAATTHH. If the --aa option is
+ used, ttyyppee prints all of the places that contain an executable
+ named _n_a_m_e. This includes aliases and functions, if and only if
+ the --pp option is not also used. The table of hashed commands is
+ not consulted when using --aa. The --ff option suppresses shell
+ function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true
+ if all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
Provides control over the resources available to the shell and
@@ -5302,13 +5542,13 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--xx The maximum number of file locks
--TT The maximum number of threads
- If _l_i_m_i_t is given, it is the new value of the specified resource
- (the --aa option is display only). If no option is given, then --ff
- is assumed. Values are in 1024-byte increments, except for --tt,
- which is in seconds, --pp, which is in units of 512-byte blocks,
- and --TT, --bb, --nn, and --uu, which are unscaled values. The return
- status is 0 unless an invalid option or argument is supplied, or
- an error occurs while setting a new limit.
+ If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
+ new value of the specified resource. If no option is given,
+ then --ff is assumed. Values are in 1024-byte increments, except
+ for --tt, which is in seconds; --pp, which is in units of 512-byte
+ blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The
+ return status is 0 unless an invalid option or argument is sup-
+ plied, or an error occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
@@ -5327,33 +5567,40 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
- uunnsseett [-ffvv] [_n_a_m_e ...]
+ uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
For each _n_a_m_e, remove the corresponding variable or function.
- If no options are supplied, or the --vv option is given, each _n_a_m_e
- refers to a shell variable. Read-only variables may not be
+ If the --vv option is given, each _n_a_m_e refers to a shell variable,
+ and that variable is removed. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
- tion, and the function definition is removed. Each unset vari-
- able or function is removed from the environment passed to sub-
- sequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANNDDOOMM, SSEECCOONNDDSS,
- LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they
- lose their special properties, even if they are subsequently
- reset. The exit status is true unless a _n_a_m_e is readonly.
-
- wwaaiitt [_n _._._.]
- Wait for each specified process and return its termination sta-
- tus. Each _n may be a process ID or a job specification; if a
+ tion, and the function definition is removed. If the --nn option
+ is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
+ _n_a_m_e will be unset rather than the variable it references. --nn
+ has no effect if the --ff option is supplied. If no options are
+ supplied, each _n_a_m_e refers to a variable; if there is no vari-
+ able by that name, any function with that name is unset. Each
+ unset variable or function is removed from the environment
+ passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
+ DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are
+ unset, they lose their special properties, even if they are sub-
+ sequently reset. The exit status is true unless a _n_a_m_e is read-
+ only.
+
+ wwaaiitt [--nn] [_n _._._.]
+ Wait for each specified child process and return its termination
+ status. Each _n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are
waited for. If _n is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If _n
- specifies a non-existent process or job, the return status is
- 127. Otherwise, the return status is the exit status of the
- last process or job waited for.
+ cesses are waited for, and the return status is zero. If the --nn
+ option is supplied, wwaaiitt waits for any job to terminate and
+ returns its exit status. If _n specifies a non-existent process
+ or job, the return status is 127. Otherwise, the return status
+ is the exit status of the last process or job waited for.
RREESSTTRRIICCTTEEDD SSHHEELLLL
If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at
- invocation, the shell becomes restricted. A restricted shell is used
- to set up an environment more controlled than the standard shell. It
- behaves identically to bbaasshh with the exception that the following are
+ invocation, the shell becomes restricted. A restricted shell is used
+ to set up an environment more controlled than the standard shell. It
+ behaves identically to bbaasshh with the exception that the following are
disallowed or not performed:
+o changing directories with ccdd
@@ -5362,16 +5609,16 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o specifying command names containing //
- +o specifying a file name containing a // as an argument to the ..
+ +o specifying a filename containing a // as an argument to the ..
builtin command
- +o specifying a filename containing a slash as an argument to the
+ +o specifying a filename containing a slash as an argument to the
--pp option to the hhaasshh builtin command
- +o importing function definitions from the shell environment at
+ +o importing function definitions from the shell environment at
startup
- +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
+ +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
startup
+o redirecting output using the >, >|, <>, >&, &>, and >> redirect-
@@ -5380,10 +5627,10 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o using the eexxeecc builtin command to replace the shell with another
command
- +o adding or deleting builtin commands with the --ff and --dd options
+ +o adding or deleting builtin commands with the --ff and --dd options
to the eennaabbllee builtin command
- +o using the eennaabbllee builtin command to enable disabled shell
+ +o using the eennaabbllee builtin command to enable disabled shell
builtins
+o specifying the --pp option to the ccoommmmaanndd builtin command
@@ -5393,15 +5640,17 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see CCOOMM--
- MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell
+ MMAANNDD EEXXEECCUUTTIIOONN above), rrbbaasshh turns off any restrictions in the shell
spawned to execute the script.
SSEEEE AALLSSOO
_B_a_s_h _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, Brian Fox and Chet Ramey
_T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
_T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_-
- _t_i_e_s, IEEE
+ _P_o_r_t_a_b_l_e _O_p_e_r_a_t_i_n_g _S_y_s_t_e_m _I_n_t_e_r_f_a_c_e _(_P_O_S_I_X_) _P_a_r_t _2_: _S_h_e_l_l _a_n_d _U_t_i_l_i_-
+ _t_i_e_s, IEEE --
+ http://pubs.opengroup.org/onlinepubs/9699919799/
+ http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
_s_h(1), _k_s_h(1), _c_s_h(1)
_e_m_a_c_s(1), _v_i(1)
_r_e_a_d_l_i_n_e(3)
@@ -5416,7 +5665,7 @@ FFIILLEESS
_~_/_._b_a_s_h_r_c
The individual per-interactive-shell startup file
_~_/_._b_a_s_h___l_o_g_o_u_t
- The individual login shell cleanup file, executed when a login
+ The individual login shell cleanup file, executed when a login
shell exits
_~_/_._i_n_p_u_t_r_c
Individual _r_e_a_d_l_i_n_e initialization file
@@ -5430,14 +5679,14 @@ AAUUTTHHOORRSS
BBUUGG RREEPPOORRTTSS
If you find a bug in bbaasshh,, you should report it. But first, you should
- make sure that it really is a bug, and that it appears in the latest
- version of bbaasshh. The latest version is always available from
+ make sure that it really is a bug, and that it appears in the latest
+ version of bbaasshh. The latest version is always available from
_f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/.
- Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g
- command to submit a bug report. If you have a fix, you are encouraged
- to mail that as well! Suggestions and `philosophical' bug reports may
- be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup
+ Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g
+ command to submit a bug report. If you have a fix, you are encouraged
+ to mail that as well! Suggestions and `philosophical' bug reports may
+ be mailed to _b_u_g_-_b_a_s_h_@_g_n_u_._o_r_g or posted to the Usenet newsgroup
ggnnuu..bbaasshh..bbuugg.
ALL bug reports should include:
@@ -5448,11 +5697,11 @@ BBUUGG RREEPPOORRTTSS
A description of the bug behaviour
A short script or `recipe' which exercises the bug
- _b_a_s_h_b_u_g inserts the first three items automatically into the template
+ _b_a_s_h_b_u_g inserts the first three items automatically into the template
it provides for filing a bug report.
Comments and bug reports concerning this manual page should be directed
- to _c_h_e_t_@_p_o_._c_w_r_u_._e_d_u.
+ to _c_h_e_t_._r_a_m_e_y_@_c_a_s_e_._e_d_u.
BBUUGGSS
It's too big and too slow.
@@ -5465,10 +5714,10 @@ BBUUGGSS
Shell builtin commands and functions are not stoppable/restartable.
Compound commands and command sequences of the form `a ; b ; c' are not
- handled gracefully when process suspension is attempted. When a
- process is stopped, the shell immediately executes the next command in
- the sequence. It suffices to place the sequence of commands between
- parentheses to force it into a subshell, which may be stopped as a
+ handled gracefully when process suspension is attempted. When a
+ process is stopped, the shell immediately executes the next command in
+ the sequence. It suffices to place the sequence of commands between
+ parentheses to force it into a subshell, which may be stopped as a
unit.
Array variables may not (yet) be exported.
@@ -5477,4 +5726,4 @@ BBUUGGSS
-GNU Bash-4.2 2010 December 28 BASH(1)
+GNU Bash 4.3 2014 February 2 BASH(1)
diff --git a/doc/bash.1 b/doc/bash.1
index 103d27e6..ec414627 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -3,14 +3,14 @@
.\"
.\" Chet Ramey
.\" Case Western Reserve University
-.\" chet@po.cwru.edu
+.\" chet.ramey@case.edu
.\"
-.\" Last Change: Tue Dec 28 13:41:43 EST 2010
+.\" Last Change: Sun Feb 2 16:21:40 EST 2014
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
-.TH BASH 1 "2010 December 28" "GNU Bash-4.2"
+.TH BASH 1 "2014 February 2" "GNU Bash 4.3"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -48,10 +48,10 @@ bash \- GNU Bourne-Again SHell
.SH SYNOPSIS
.B bash
[options]
-[file]
+[command_string | file]
.SH COPYRIGHT
-.if n Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.
-.if t Bash is Copyright \(co 1989-2011 by the Free Software Foundation, Inc.
+.if n Bash is Copyright (C) 1989-2013 by the Free Software Foundation, Inc.
+.if t Bash is Copyright \(co 1989-2013 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.B Bash
is an \fBsh\fR-compatible command language interpreter that
@@ -75,13 +75,13 @@ interprets the following options when it is invoked:
.PP
.PD 0
.TP 10
-.BI \-c "\| string\^"
+.B \-c
If the
.B \-c
-option is present, then commands are read from
-.IR string .
+option is present, then commands are read from the first non-option argument
+.IR command_string .
If there are arguments after the
-.IR string ,
+.IR command_string ,
they are assigned to the positional parameters, starting with
.BR $0 .
.TP
@@ -222,6 +222,11 @@ This option is on by default if the shell is invoked as
.B \-\-posix
Change the behavior of \fBbash\fP where the default operation differs
from the POSIX standard to match the standard (\fIposix mode\fP).
+See
+.SM
+.B "SEE ALSO"
+below for a reference to a document that details how posix mode affects
+bash's behavior.
.TP
.B \-\-restricted
The shell becomes restricted (see
@@ -294,7 +299,7 @@ executes its startup files.
If any of the files exist but cannot be read,
.B bash
reports an error.
-Tildes are expanded in file names as described below under
+Tildes are expanded in filenames as described below under
.B "Tilde Expansion"
in the
.SM
@@ -348,7 +353,7 @@ behaves as if the following command were executed:
but the value of the
.SM
.B PATH
-variable is not used to search for the file name.
+variable is not used to search for the filename.
.PP
If
.B bash
@@ -419,8 +424,8 @@ The
.B \-\-norc
option may be used to inhibit this behavior, and the
.B \-\-rcfile
-option may be used to force another file to be read, but
-\fIrshd\fP does not generally invoke the shell with those options
+option may be used to force another file to be read, but neither
+\fIrshd\fP nor \fIsshd\fP generally invoke the shell with those options
or allow them to be specified.
.PP
If the shell is started with the effective user (group) id not equal to the
@@ -494,8 +499,8 @@ command:
.if t .RS
.PP
.B
-.if n ! case do done elif else esac fi for function if in select then until while { } time [[ ]]
-.if t ! case do done elif else esac fi for function if in select then until while { } time [[ ]]
+.if n ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
+.if t ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
.if t .RE
.SH "SHELL GRAMMAR"
.SS Simple Commands
@@ -530,11 +535,12 @@ 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.
+If \fB|&\fP is used, \fIcommand\fP's standard error, in addition to its
+standard output, 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 to the standard output 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.
@@ -646,7 +652,10 @@ AND and OR lists is the exit status of the last command
executed in the list.
.SS Compound Commands
.PP
-A \fIcompound command\fP is one of the following:
+A \fIcompound command\fP is one of the following.
+In most cases a \fIlist\fP in a command's description may be separated from
+the rest of the command by one or more newlines, and may be followed by a
+newline in place of a semicolon.
.TP
(\fIlist\fP)
\fIlist\fP is executed in a subshell environment (see
@@ -686,8 +695,9 @@ Expressions are composed of the primaries described below under
.SM
.BR "CONDITIONAL EXPRESSIONS" .
Word splitting and pathname expansion are not performed on the words
-between the \fB[[\fP and \fB]]\fP; tilde expansion, parameter and
-variable expansion, arithmetic expansion, command substitution, process
+between the \fB[[\fP and \fB]]\fP; tilde expansion,
+parameter and variable expansion,
+arithmetic expansion, command substitution, process
substitution, and quote removal are performed.
Conditional operators such as \fB\-f\fP must be unquoted to be recognized
as primaries.
@@ -699,15 +709,17 @@ lexicographically using the current locale.
.if n .sp 1
When the \fB==\fP and \fB!=\fP operators are used, the string to the
right of the operator is considered a pattern and matched according
-to the rules described below under \fBPattern Matching\fP.
+to the rules described below under \fBPattern Matching\fP,
+as if the \fBextglob\fP shell option were enabled.
+The \fB=\fP operator is equivalent to \fB==\fP.
If the shell option
.B nocasematch
is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (\fB==\fP) or does not match
(\fB!=\fP) the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force it to be matched as a
-string.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
.if t .sp 0.5
.if n .sp 1
An additional binary operator, \fB=~\fP, is available, with the same
@@ -722,8 +734,12 @@ 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.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
+Bracket expressions in regular expressions must be treated carefully,
+since normal quoting characters lose their meanings between brackets.
+If the pattern is stored in a shell variable, quoting the variable
+expansion forces the entire pattern to be matched as a string.
Substrings matched by parenthesized subexpressions within the regular
expression are saved in the array variable
.SM
@@ -865,7 +881,7 @@ The exit status is zero if no
pattern matches. Otherwise, it is the exit status of the
last command executed in \fIlist\fP.
.TP
-\fBif\fP \fIlist\fP; \fBthen\fP \fIlist;\fP \
+\fBif\fP \fIlist\fP; \fBthen\fP \fIlist\fP; \
[ \fBelif\fP \fIlist\fP; \fBthen\fP \fIlist\fP; ] ... \
[ \fBelse\fP \fIlist\fP; ] \fBfi\fP
The
@@ -911,11 +927,11 @@ The format for a coprocess is:
.RE
.PP
This creates a coprocess named \fINAME\fP.
-If \fINAME\fP is not supplied, the default name is \fICOPROC\fP.
+If \fINAME\fP is not supplied, the default name is \fBCOPROC\fP.
\fINAME\fP must not be supplied if \fIcommand\fP is a \fIsimple
command\fP (see above); otherwise, it is interpreted as the first word
of the simple command.
-When the coproc is executed, the shell creates an array variable (see
+When the coprocess 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
@@ -933,11 +949,14 @@ command (see
below).
The file descriptors can be utilized as arguments to shell commands
and redirections using standard word expansions.
+The file descriptors are not available in subshells.
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
+Since the coprocess is created as an asynchronous command,
+the \fBcoproc\fP command always returns success.
The return status of a coprocess is the exit status of \fIcommand\fP.
.SS Shell Function Definitions
.PP
@@ -960,6 +979,8 @@ That command is usually a \fIlist\fP of commands between { and }, but
may be any command listed under \fBCompound Commands\fP above.
\fIcompound\-command\fP is executed whenever \fIname\fP is specified as the
name of a simple command.
+When in \fIposix mode\fP, \fIname\fP may not be the name of one of the
+POSIX \fIspecial builtins\fP.
Any redirections (see
.SM
.B REDIRECTION
@@ -1204,6 +1225,9 @@ Assignment statements may also appear as arguments to the
and
.B local
builtin commands.
+When in \fIposix mode\fP, these builtins may appear in a command after
+one or more instances of the \fBcommand\fP builtin and retain these
+assignment statement properties.
.PP
In the context where an assignment statement is assigning a value
to a shell variable or array index, the += operator can be used to
@@ -1220,6 +1244,39 @@ appended to the array beginning at one greater than the array's maximum index
associative array.
When applied to a string-valued variable, \fIvalue\fP is expanded and
appended to the variable's value.
+.PP
+A variable can be assigned the \fInameref\fP attribute using the
+\fB\-n\fP option to the \fBdeclare\fP or \fBlocal\fP builtin commands
+(see the descriptions of \fBdeclare\fP and \fBlocal\fP below)
+to create a \fInameref\fP, or a reference to another variable.
+This allows variables to be manipulated indirectly.
+Whenever the nameref variable is referenced or assigned to, the operation
+is actually performed on the variable specified by the nameref variable's
+value.
+A nameref is commonly used within shell functions to refer to a variable
+whose name is passed as an argument to the function.
+For instance, if a variable name is passed to a shell function as its first
+argument, running
+.sp .5
+.RS
+.if t \f(CWdeclare -n ref=$1\fP
+.if n declare -n ref=$1
+.RE
+.sp .5
+inside the function creates a nameref variable \fBref\fP whose value is
+the variable name passed as the first argument.
+References and assignments to \fBref\fP are treated as references and
+assignments to the variable whose name was passed as \fB$1\fP.
+If the control variable in a \fBfor\fP loop has the nameref attribute,
+the list of words can be a list of shell variables, and a name reference
+will be established for each word in the list, in turn, when the loop is
+executed.
+Array variables cannot be given the \fB\-n\fP attribute.
+However, nameref variables can reference array variables and subscripted
+array variables.
+Namerefs can be unset using the \fB\-n\fP option to the \fBunset\fP builtin.
+Otherwise, if \fBunset\fP is executed with the name of a nameref variable
+as an argument, the variable referenced by the nameref variable will be unset.
.SS Positional Parameters
.PP
A
@@ -1248,8 +1305,12 @@ only be referenced; assignment to them is not allowed.
.PD 0
.TP
.B *
-Expands to the positional parameters, starting from one. When the
-expansion occurs within double quotes, it expands to a single word
+Expands to the positional parameters, starting from one.
+When the expansion is not within double quotes, each positional parameter
+expands to a separate word.
+In contexts where it is performed, those words
+are subject to further word splitting and pathname expansion.
+When the expansion occurs within double quotes, it expands to a single word
with the value of each parameter separated by the first character
of the
.SM
@@ -1304,8 +1365,12 @@ expands to the process ID of the current shell, not the
subshell.
.TP
.B !
-Expands to the process ID of the most recently executed background
-(asynchronous) command.
+Expands to the process ID of the job most recently placed into the
+background, whether executed as an asynchronous command or using
+the \fBbg\fP builtin (see
+.SM
+.B "JOB CONTROL"
+below).
.TP
.B 0
Expands to the name of the shell or shell script. This is set at
@@ -1321,7 +1386,7 @@ option, then
.B $0
is set to the first argument after the string to be
executed, if one is present. Otherwise, it is set
-to the file name used to invoke
+to the filename used to invoke
.BR bash ,
as given by argument zero.
.TP
@@ -1343,7 +1408,7 @@ The following variables are set by the shell:
.PD 0
.TP
.B BASH
-Expands to the full file name used to invoke this instance of
+Expands to the full filename used to invoke this instance of
.BR bash .
.TP
.B BASHOPTS
@@ -1465,7 +1530,8 @@ The shell function
\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP.
.TP
.B BASH_SUBSHELL
-Incremented by one each time a subshell or subshell environment is spawned.
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
.TP
.B BASH_VERSINFO
@@ -1812,6 +1878,24 @@ below.
.PP
.PD 0
.TP
+.B BASH_COMPAT
+The value is used to set the shell's compatibility level.
+See the description of the \fBshopt\fP builtin below under
+\fBSHELL BUILTIN COMMANDS\fP
+for a description of the various compatibility
+levels and their effects.
+The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42)
+corresponding to the desired compatibility level.
+If \fBBASH_COMPAT\fP is unset or set to the empty string, the compatibility
+level is set to the default for the current version.
+If \fBBASH_COMPAT\fP is set to a value that is not one of the valid
+compatibility levels, the shell prints an error message and sets the
+compatibility level to the default for the current version.
+The valid compatibility levels correspond to the compatibility options
+accepted by the \fBshopt\fP builtin described below (for example,
+\fBcompat42\fP means that 4.2 and 42 are valid values).
+The current version is also a valid value.
+.TP
.B BASH_ENV
If this parameter is set when \fBbash\fP is executing a shell script,
its value is interpreted as a filename containing commands to
@@ -1821,10 +1905,10 @@ The value of
.SM
.B BASH_ENV
is subjected to parameter expansion, command substitution, and arithmetic
-expansion before being interpreted as a file name.
+expansion before being interpreted as a filename.
.SM
.B PATH
-is not used to search for the resultant file name.
+is not used to search for the resultant filename.
.TP
.B BASH_XTRACEFD
If set to an integer corresponding to a valid file descriptor, \fBbash\fP
@@ -1860,9 +1944,19 @@ A sample value is
.if t \f(CW".:~:/usr"\fP.
.if n ".:~:/usr".
.TP
+.B CHILD_MAX
+Set the number of exited child status values for the shell to remember.
+Bash will not allow this value to be decreased below a POSIX-mandated
+minimum, and there is a maximum value (currently 8192) that this may
+not exceed.
+The minimum value is system-dependent.
+.TP
.B COLUMNS
Used by the \fBselect\fP compound command to determine the terminal width
-when printing selection lists. Automatically set upon receipt of a
+when printing selection lists.
+Automatically set if the
+.B checkwinsize
+option is enabled or in an interactive shell upon receipt of a
.SM
.BR SIGWINCH .
.TP
@@ -1870,6 +1964,7 @@ when printing selection lists. Automatically set upon receipt of a
An array variable from which \fBbash\fP reads the possible completions
generated by a shell function invoked by the programmable completion
facility (see \fBProgrammable Completion\fP below).
+Each array element contains one possible completion.
.TP
.B EMACS
If \fBbash\fP finds this variable in the environment when the shell starts
@@ -1955,15 +2050,19 @@ The name of the file in which command history is saved (see
.SM
.B HISTORY
below). The default value is \fI~/.bash_history\fP. If unset, the
-command history is not saved when an interactive shell exits.
+command history is not saved when a shell exits.
.TP
.B HISTFILESIZE
The maximum number of lines contained in the history file. When this
variable is assigned a value, the history file is truncated, if
-necessary, by removing the oldest entries,
-to contain no more than that number of lines. The default
-value is 500. The history file is also truncated to this size after
-writing it when an interactive shell exits.
+necessary,
+to contain no more than that number of lines by removing the oldest entries.
+The history file is also truncated to this size after
+writing it when a shell exits.
+If the value is 0, the history file is truncated to zero size.
+Non-numeric values and numeric values less than zero inhibit truncation.
+The shell sets the default value to the value of \fBHISTSIZE\fP
+after reading any startup files.
.TP
.B HISTIGNORE
A colon-separated list of patterns used to decide which command lines
@@ -1986,7 +2085,11 @@ not tested, and are added to the history regardless of the value of
The number of commands to remember in the command history (see
.SM
.B HISTORY
-below). The default value is 500.
+below).
+If the value is 0, commands are not saved in the history list.
+Numeric values less than zero result in every command being saved
+on the history list (there is no limit).
+The shell sets the default value to 500 after reading any startup files.
.TP
.B HISTTIMEFORMAT
If this variable is set and not null, its value is used as a format string
@@ -2094,7 +2197,10 @@ This variable determines the locale category used for number formatting.
.TP
.B LINES
Used by the \fBselect\fP compound command to determine the column length
-for printing selection lists. Automatically set upon receipt of a
+for printing selection lists.
+Automatically set if the
+.B checkwinsize
+option is enabled or in an interactive shell upon receipt of a
.SM
.BR SIGWINCH .
.TP
@@ -2117,9 +2223,9 @@ If this variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
.TP
.B MAILPATH
-A colon-separated list of file names to be checked for mail.
+A colon-separated list of filenames to be checked for mail.
The message to be printed when mail arrives in a particular file
-may be specified by separating the file name from the message with a `?'.
+may be specified by separating the filename from the message with a `?'.
When used in the text of the message, \fB$_\fP expands to the name of
the current mailfile.
Example:
@@ -2163,8 +2269,8 @@ The default path is system-dependent,
and is set by the administrator who installs
.BR bash .
A common value is
-.if t \f(CW/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin\fP.
-.if n ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
+.if t \f(CW/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin\fP.
+.if n ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
.TP
.B POSIXLY_CORRECT
If this variable is in the environment when \fBbash\fP starts, the shell
@@ -2271,7 +2377,7 @@ The value of \fIp\fP determines whether or not the fraction is
included.
.IP
If this variable is not set, \fBbash\fP acts as if it had the
-value \fB$\(aq\enreal\et%3lR\enuser\et%3lU\ensys\t%3lS\(aq\fP.
+value \fB$\(aq\enreal\et%3lR\enuser\et%3lU\ensys\et%3lS\(aq\fP.
If the value is null, no timing information is displayed.
A trailing newline is added when the format string is displayed.
.PD 0
@@ -2288,10 +2394,11 @@ after
.B TMOUT
seconds when input is coming from a terminal.
In an interactive shell, the value is interpreted as the
-number of seconds to wait for input after issuing the primary prompt.
+number of seconds to wait for a line of input after issuing the
+primary prompt.
.B Bash
-terminates after waiting for that number of seconds if input does
-not arrive.
+terminates after waiting for that number of seconds if a complete
+line of input does not arrive.
.TP
.B TMPDIR
If set, \fBbash\fP uses its value as the name of a directory in which
@@ -2355,16 +2462,12 @@ 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.
+Unless otherwise noted, indexed array indices must be non-negative integers.
.PP
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.
-If
-.I subscript
-evaluates to a number less than zero, it is used as
-an offset from one greater than the array's maximum index (so a subcript
-of -1 refers to the last element of the array).
To explicitly declare an indexed array, use
.B declare \-a \fIname\fP
(see
@@ -2387,7 +2490,7 @@ builtins. Each attribute applies to all members of an array.
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.
-Indexed array assignments do not require the bracket and subscript.
+Indexed array assignments do not require anything but \fIstring\fP.
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
@@ -2399,6 +2502,12 @@ This syntax is also accepted by the
.B declare
builtin. Individual array elements may be assigned to using the
\fIname\fP[\fIsubscript\fP]=\fIvalue\fP syntax introduced above.
+When assigning to an indexed array, if
+.I name
+is subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+\fIname\fP, so negative indices count back from the end of the
+array, and an index of \-1 references the last element.
.PP
Any element of an array may be referenced using
${\fIname\fP[\fIsubscript\fP]}. The braces are required to avoid
@@ -2426,14 +2535,28 @@ ${\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 the array with a subscript of 0.
+If the
+.I subscript
+used to reference an element of an indexed array
+evaluates to a number less than zero, it is
+interpreted as relative to one greater than the maximum index of the array,
+so negative indices count back from the end of the
+array, and an index of \-1 references the last element.
.PP
An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
.PP
+It is possible to obtain the keys (indices) of an array as well as the values.
+${\fB!\fP\fIname\fP[\fI@\fP]} and ${\fB!\fP\fIname\fP[\fI*\fP]}
+expand to the indices assigned in array variable \fIname\fP.
+The treatment when in double quotes is similar to the expansion of the
+special parameters \fI@\fP and \fI*\fP within double quotes.
+.PP
The
.B unset
builtin is used to destroy arrays. \fBunset\fP \fIname\fP[\fIsubscript\fP]
destroys the array element at index \fIsubscript\fP.
+Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by pathname
expansion.
\fBunset\fP \fIname\fP, where \fIname\fP is an array, or
@@ -2476,14 +2599,18 @@ words. There are seven kinds of expansion performed:
and
.IR "pathname expansion" .
.PP
-The order of expansions is: brace expansion, tilde expansion,
-parameter, variable and arithmetic expansion and
-command substitution
-(done in a left-to-right fashion), word splitting, and pathname
-expansion.
+The order of expansions is:
+brace expansion;
+tilde expansion, parameter and variable expansion, arithmetic expansion,
+and command substitution (done in a left-to-right fashion);
+word splitting;
+and pathname expansion.
.PP
On systems that can support it, there is an additional expansion
available: \fIprocess substitution\fP.
+This is performed at the
+same time as tilde, parameter, variable, and arithmetic expansion and
+command substitution.
.PP
Only brace expansion, word splitting, and pathname expansion
can change the number of words of the expansion; other expansions
@@ -2521,12 +2648,14 @@ 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
+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.
+lexicographically between \fIx\fP and \fIy\fP, inclusive,
+using the default C locale.
+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
@@ -2634,7 +2763,7 @@ following a
or the first
.BR = .
In these cases, tilde expansion is also performed.
-Consequently, one may use file names with tildes in assignments to
+Consequently, one may use filenames with tildes in assignments to
.SM
.BR PATH ,
.SM
@@ -2668,10 +2797,12 @@ or when
.I parameter
is followed by a character which is not to be
interpreted as part of its name.
+The \fIparameter\fP is a shell parameter as described above
+\fBPARAMETERS\fP) or an array reference (\fBArrays\fP).
.PD
.PP
If the first character of \fIparameter\fP is an exclamation point (\fB!\fP),
-a level of variable indirection is introduced.
+it introduces a level of variable indirection.
\fBBash\fP uses the value of the variable formed from the rest of
\fIparameter\fP as the name of the variable; this variable is then
expanded and that value is used in the rest of the substitution, rather
@@ -2685,7 +2816,8 @@ introduce indirection.
In each of the cases below, \fIword\fP is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
.PP
-When not performing substring expansion, using the forms documented below,
+When not performing substring expansion, using the forms documented below
+(e.g., \fB:-\fP),
\fBbash\fP tests for a parameter that is unset or null. Omitting the colon
results in a test only for a parameter that is unset.
.PP
@@ -2738,33 +2870,50 @@ ${\fIparameter\fP\fB:\fP\fIoffset\fP}
${\fIparameter\fP\fB:\fP\fIoffset\fP\fB:\fP\fIlength\fP}
.PD
\fBSubstring Expansion\fP.
-Expands to up to \fIlength\fP characters of \fIparameter\fP
+Expands to up to \fIlength\fP characters of the value of \fIparameter\fP
starting at the character specified by \fIoffset\fP.
-If \fIlength\fP is omitted, expands to the substring of
-\fIparameter\fP starting at the character specified by \fIoffset\fP.
+If \fIparameter\fP is \fB@\fP, an indexed array subscripted by
+\fB@\fP or \fB*\fP, or an associative array name, the results differ as
+described below.
+If \fIlength\fP is omitted, expands to the substring of the value of
+\fIparameter\fP starting at the character specified by \fIoffset\fP
+and extending to the end of the value.
\fIlength\fP and \fIoffset\fP are arithmetic expressions (see
.SM
.B
ARITHMETIC EVALUATION
below).
+.sp 1
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 \fIlength\fP evaluates to a number less than zero, and \fIparameter\fP
-is not \fB@\fP and not an indexed or associative array, it is interpreted
-as an offset from the end of the value of \fIparameter\fP rather than
-a number of characters, and the expansion is the characters between the
-two offsets.
+is used as an offset in characters
+from the end of the value of \fIparameter\fP.
+If \fIlength\fP evaluates to a number less than zero,
+it is interpreted as an offset in characters
+from the end of the value of \fIparameter\fP rather than
+a number of characters, and the expansion is the characters between
+\fIoffset\fP and that result.
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the \fB:-\fP expansion.
+.sp 1
If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional
parameters beginning at \fIoffset\fP.
+A negative \fIoffset\fP is taken relative to one greater than the greatest
+positional parameter, so an offset of -1 evaluates to the last positional
+parameter.
+It is an expansion error if \fIlength\fP evaluates to a number less than
+zero.
+.sp 1
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.
+It is an expansion error if \fIlength\fP evaluates to a number less than
+zero.
+.sp 1
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.
+.sp 1
Substring indexing is zero-based unless the positional parameters
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
@@ -2814,6 +2963,12 @@ is an array name subscripted by
or
.BR @ ,
the value substituted is the number of elements in the array.
+If
+.I parameter
+is an indexed array name subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+\fIparameter\fP, so negative indices count back from the end of the
+array, and an index of \-1 references the last element.
.TP
${\fIparameter\fP\fB#\fP\fIword\fP}
.PD 0
@@ -2923,6 +3078,9 @@ ${\fIparameter\fP\fB,,\fP\fIpattern\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.
+Each character in the expanded value of \fIparameter\fP is tested against
+\fIpattern\fP, and, if it matches the pattern, its case is converted.
+The pattern should not attempt to match more than one character.
The \fB^\fP operator converts lowercase letters matching \fIpattern\fP
to uppercase; the \fB,\fP operator converts matching uppercase letters
to lowercase.
@@ -2998,8 +3156,9 @@ The
.I expression
is treated as if it were within double quotes, but a double quote
inside the parentheses is not treated specially.
-All tokens in the expression undergo parameter expansion, string
-expansion, command substitution, and quote removal.
+All tokens in the expression undergo parameter and variable expansion,
+command substitution, and quote removal.
+The result is treated as the arithmetic expression to be evaluated.
Arithmetic expansions may be nested.
.PP
The evaluation is performed according to the rules listed below under
@@ -3044,7 +3203,8 @@ The shell treats each character of
.SM
.B IFS
as a delimiter, and splits the results of the other
-expansions into words on these characters. If
+expansions into words using these characters as field terminators.
+If
.SM
.B IFS
is unset, or its
@@ -3122,8 +3282,12 @@ If one of these characters appears, then the word is
regarded as a
.IR pattern ,
and replaced with an alphabetically sorted list of
-file names matching the pattern.
-If no matching file names are found,
+filenames matching the pattern
+(see
+.SM
+.B "Pattern Matching"
+below).
+If no matching filenames are found,
and the shell option
.B nullglob
is not enabled, the word is left unchanged.
@@ -3167,16 +3331,16 @@ shell options.
The
.SM
.B GLOBIGNORE
-shell variable may be used to restrict the set of file names matching a
+shell variable may be used to restrict the set of filenames matching a
.IR pattern .
If
.SM
.B GLOBIGNORE
-is set, each matching file name that also matches one of the patterns in
+is set, each matching filename that also matches one of the patterns in
.SM
.B GLOBIGNORE
is removed from the list of matches.
-The file names
+The filenames
.B ``.''
and
.B ``..''
@@ -3188,10 +3352,10 @@ is set and not null. However, setting
.B GLOBIGNORE
to a non-null value has the effect of enabling the
.B dotglob
-shell option, so all other file names beginning with a
+shell option, so all other filenames beginning with a
.B ``.''
will match.
-To get the old behavior of ignoring file names beginning with a
+To get the old behavior of ignoring filenames beginning with a
.BR ``.'' ,
make
.B ``.*''
@@ -3235,7 +3399,7 @@ Matches any single character.
Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a
\fIrange expression\fP;
-any character that sorts between those two characters, inclusive,
+any character that falls between those two characters, inclusive,
using the current locale's collating sequence and character set,
is matched. If the first character following the
.B [
@@ -3245,11 +3409,24 @@ or a
.B ^
then any character not enclosed is matched.
The sorting order of characters in range expressions is determined by
-the current locale and the value of the
+the current locale and the values of the
.SM
.B LC_COLLATE
-shell variable,
-if set.
+or
+.SM
+.B LC_ALL
+shell variables, if set.
+To obtain the traditional interpretation of range expressions, where
+.B [a\-d]
+is equivalent to
+.BR [abcd] ,
+set value of the
+.B LC_ALL
+shell variable to
+.BR C ,
+or enable the
+.B globasciiranges
+shell option.
A
.B \-
may be matched by including it as the first or last character
@@ -3339,8 +3516,13 @@ Before a command is executed, its input and output
may be
.I redirected
using a special notation interpreted by the shell.
-Redirection may also be used to open and close files for the
-current shell execution environment. The following redirection
+Redirection allows commands' file handles to be
+duplicated, opened, closed,
+made to refer to different files,
+and can change the files the command reads from and writes to.
+Redirection may also be used to modify file handles in the
+current shell execution environment.
+The following redirection
operators may precede or appear anywhere within a
.I simple command
or may follow a
@@ -3352,7 +3534,8 @@ Each redirection that may be preceded by a file descriptor number
may instead be preceded by a word of the form {\fIvarname\fP}.
In this case, for each redirection operator except
>&- and <&-, the shell will allocate a file descriptor greater
-than 10 and assign it to \fIvarname\fP. If >&- or <&- is preceded
+than or equal to 10 and assign it to \fIvarname\fP.
+If >&- or <&- is preceded
by {\fIvarname\fP}, the value of \fIvarname\fP defines the file
descriptor to close.
.PP
@@ -3366,9 +3549,10 @@ the redirection refers to the standard output (file descriptor
1).
.PP
The word following the redirection operator in the following
-descriptions, unless otherwise noted, is subjected to brace expansion,
-tilde expansion, parameter expansion, command substitution, arithmetic
-expansion, quote removal, pathname expansion, and word splitting.
+descriptions, unless otherwise noted, is subjected to
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, quote removal,
+pathname expansion, and word splitting.
If it expands to more than one word,
.B bash
reports an error.
@@ -3415,12 +3599,12 @@ File descriptor 2 is duplicated.
.B /dev/tcp/\fIhost\fP/\fIport\fP
If \fIhost\fP is a valid hostname or Internet address, and \fIport\fP
is an integer port number or service name, \fBbash\fP attempts to open
-a TCP connection to the corresponding socket.
+the corresponding TCP socket.
.TP
.B /dev/udp/\fIhost\fP/\fIport\fP
If \fIhost\fP is a valid hostname or Internet address, and \fIport\fP
is an integer port number or service name, \fBbash\fP attempts to open
-a UDP connection to the corresponding socket.
+the corresponding UDP socket.
.PD
.RE
.PP
@@ -3527,6 +3711,10 @@ This is semantically equivalent to
\fB>\fP\fIword\fP 2\fB>&\fP1
.RE
.PP
+When using the second form, \fIword\fP may not expand to a number or
+\fB\-\fP. If it does, other redirection operators apply
+(see \fBDuplicating File Descriptors\fP below) for compatibility
+reasons.
.SS Appending Standard Output and Standard Error
.PP
This construct allows both the
@@ -3547,6 +3735,8 @@ This is semantically equivalent to
.PP
\fB>>\fP\fIword\fP 2\fB>&\fP1
.RE
+.PP
+(see \fBDuplicating File Descriptors\fP below).
.SS Here Documents
.PP
This type of redirection instructs the shell to read input from the
@@ -3567,8 +3757,8 @@ The format of here-documents is:
.fi
.RE
.PP
-No parameter expansion, command substitution, arithmetic expansion,
-or pathname expansion is performed on
+No parameter and variable expansion, command substitution,
+arithmetic expansion, or pathname expansion is performed on
.IR word .
If any characters in
.I word
@@ -3578,9 +3768,9 @@ is the result of quote removal on
.IR word ,
and the lines in the here-document are not expanded.
If \fIword\fP is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion. In the latter
-case, the character sequence
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence
.B \e<newline>
is ignored, and
.B \e
@@ -3607,8 +3797,12 @@ A variant of here documents, the format is:
.fi
.RE
.PP
-The \fIword\fP is expanded and supplied to the command on its standard
-input.
+The \fIword\fP undergoes
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and quote removal.
+Pathname expansion and word splitting are not performed.
+The result is supplied as a single string to the command on its
+standard input.
.SS "Duplicating File Descriptors"
.PP
The redirection operator
@@ -3648,8 +3842,15 @@ is not specified, the standard output (file descriptor 1) is used.
If the digits in
.I word
do not specify a file descriptor open for output, a redirection error occurs.
+If
+.I word
+evaluates to
+.BR \- ,
+file descriptor
+.I n
+is closed.
As a special case, if \fIn\fP is omitted, and \fIword\fP does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or \fB\-\fP, the standard output and standard
error are redirected as described previously.
.SS "Moving File Descriptors"
.PP
@@ -3963,7 +4164,8 @@ Otherwise, numbers take the form [\fIbase#\fP]n, where the optional \fIbase\fP
is a decimal number between 2 and 64 representing the arithmetic
base, and \fIn\fP is a number in that base.
If \fIbase#\fP is omitted, then base 10 is used.
-The digits greater than 9 are represented by the lowercase letters,
+When specifying \fIn\fP,
+the digits greater< than 9 are represented by the lowercase letters,
the uppercase letters, @, and _, in that order.
If \fIbase\fP is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
@@ -4085,6 +4287,11 @@ True if the shell variable
.I varname
is set (has been assigned a value).
.TP
+.B \-R \fIvarname\fP
+True if the shell variable
+.I varname
+is set and is a name reference.
+.TP
.B \-z \fIstring\fP
True if the length of \fIstring\fP is zero.
.TP
@@ -4104,6 +4311,8 @@ is non-zero.
.PD
True if the strings are equal. \fB=\fP should be used
with the \fBtest\fP command for POSIX conformance.
+When used with the \fB[[\fP command, this performs pattern matching as
+described above (\fBCompound Commands\fP).
.TP
\fIstring1\fP \fB!=\fP \fIstring2\fP
True if the strings are not equal.
@@ -4367,7 +4576,7 @@ When
.B bash
invokes an external command, the variable
.B _
-is set to the full file name of the command and passed to that
+is set to the full filename of the command and passed to that
command in its environment.
.SH "EXIT STATUS"
.PP
@@ -5097,6 +5306,12 @@ If set to \fBOn\fP, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their readline
equivalents.
.TP
+.B colored\-stats (Off)
+If set to \fBOn\fP, readline displays possible completions using different
+colors to indicate their file type.
+The color definitions are taken from the value of the \fBLS_COLORS\fP
+environment variable.
+.TP
.B comment\-begin (``#'')
The string that is inserted when the readline
.B insert\-comment
@@ -5172,8 +5387,12 @@ 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.
+Set the maximum number of history entries saved in the history list.
+If set to zero, any existing history entries are deleted and no new entries
+are saved.
+If set to a value less than zero, the number of history entries is not
+limited.
+By default, the number of history entries is not limited.
.TP
.B horizontal\-scroll\-mode (Off)
When set to \fBOn\fP, makes readline use a single line for display,
@@ -5205,6 +5424,19 @@ the value of
.B editing\-mode
also affects the default keymap.
.TP
+.B keyseq\-timeout (500)
+Specifies the duration \fIreadline\fP will wait for a character when reading an
+ambiguous key sequence (one that can form a complete key sequence using
+the input read so far, or can take additional input to complete a longer
+key sequence).
+If no input is received within the timeout, \fIreadline\fP will use the shorter
+but complete key sequence.
+The value is specified in milliseconds, so a value of 1000 means that
+\fIreadline\fP will wait one second for additional input.
+If this variable is set to a value less than or equal to zero, or to a
+non-numeric value, \fIreadline\fP will wait until another key is pressed to
+decide which key sequence to complete.
+.TP
.B mark\-directories (On)
If set to \fBOn\fP, completed directory names have a slash
appended.
@@ -5266,6 +5498,11 @@ possible partial completion (the possible completions don't share
a common prefix) cause the matches to be listed immediately instead
of ringing the bell.
.TP
+.B show\-mode\-in\-prompt (Off)
+If set to \fBOn\fP, add a character to the beginning of the prompt
+indicating the editing mode: emacs (@), vi command (:) or vi
+insertion (+).
+.TP
.B skip\-completed\-text (Off)
If set to \fBOn\fP, this alters the default completion behavior when
inserting a single match into the line. It's only active when
@@ -5514,7 +5751,7 @@ the first call) of each line in turn.
Any numeric argument supplied to these successive calls determines
the direction to move through the history. A negative argument switches
the direction through the history (back or forward).
-The history expansion facilities are used to extract the last argument,
+The history expansion facilities are used to extract the last word,
as if the "!$" history expansion had been specified.
.TP
.B shell\-expand\-line (M\-C\-e)
@@ -5571,14 +5808,22 @@ and \fIemacs\fP as the editor, in that order.
.PP
.PD 0
.TP
-.B delete\-char (C\-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to \fBdelete\-char\fP,
-then return
+.B \fIend\-of\-file\fP (usually C\-d)
+The character indicating end-of-file as set, for example, by
+.if t \f(CWstty\fP.
+.if n ``stty''.
+If this character is read when there are no characters
+on the line, and point is at the beginning of the line, Readline
+interprets it as the end of input and returns
.SM
.BR EOF .
.TP
+.B delete\-char (C\-d)
+Delete the character at point.
+If this function is bound to the
+same character as the tty \fBEOF\fP character, as \fBC\-d\fP
+commonly is, see above for the effects.
+.TP
.B backward\-delete\-char (Rubout)
Delete the character behind the cursor. When given a numeric argument,
save the deleted text on the kill ring.
@@ -5846,6 +6091,10 @@ and store the definition.
.B call\-last\-kbd\-macro (C\-x e)
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
+.TP
+.B print\-last\-kbd\-macro ()
+Print the last keyboard macro defined in a format suitable for the
+\fIinputrc\fP file.
.PD
.SS Miscellaneous
.PP
@@ -5927,11 +6176,11 @@ will be executed by the shell.
.B glob\-complete\-word (M\-g)
The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
-generate a list of matching file names for possible completions.
+generate a list of matching filenames for possible completions.
.TP
.B glob\-expand\-word (C\-x *)
The word before point is treated as a pattern for pathname expansion,
-and the list of matching file names is inserted, replacing the word.
+and the list of matching filenames is inserted, replacing the word.
If a numeric argument is supplied, an asterisk is appended before
pathname expansion.
.TP
@@ -6055,10 +6304,12 @@ and
.SM
.B 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.
+When the function or command is invoked,
+the first argument (\fB$1\fP) is the name of the command whose arguments are
+being completed,
+the second argument (\fB$2\fP) is the word being completed,
+and the third argument (\fB$3\fP) 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.
@@ -6069,7 +6320,7 @@ The function may use any of the shell facilities, including the
It must put the possible completions in the
.SM
.B COMPREPLY
-array variable.
+array variable, one per array element.
.PP
Next, any command specified with the \fB\-C\fP option is invoked
in an environment equivalent to command substitution.
@@ -6143,7 +6394,7 @@ completion function would load completions dynamically:
.br
}
.br
-complete -D -F _completion_loader
+complete -D -F _completion_loader -o bashdefault -o default
.br
\fP
.SH HISTORY
@@ -6187,6 +6438,8 @@ is truncated, if necessary, to contain no more than
the number of lines specified by the value of
.SM
.BR HISTFILESIZE .
+If \fBHISTFILESIZE\fP is unset, or set to null, a non-numeric value,
+or a numeric value less than zero, the history file is not truncated.
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.
@@ -6194,7 +6447,7 @@ These timestamps are optionally displayed depending on the value of the
.SM
.B HISTTIMEFORMAT
variable.
-When an interactive shell exits, the last
+When a shell with history enabled exits, the last
.SM
.B $HISTSIZE
lines are copied from the history list to
@@ -6230,7 +6483,8 @@ to contain no more than
lines. If
.SM
.B HISTFILESIZE
-is not set, no truncation is performed.
+is unset, or set to null, a non-numeric value,
+or a numeric value less than zero, the history file is not truncated.
.PP
The builtin command
.B fc
@@ -6278,7 +6532,7 @@ is similar to the history expansion in
This section describes what syntax features are available. This
feature is enabled by default for interactive shells, and can be
disabled using the
-.B \+H
+.B +H
option to the
.B set
builtin command (see
@@ -6393,7 +6647,7 @@ history list starting with
.IR string .
.TP
.B !?\fIstring\fR\fB[?]\fR
-Refer to the most recent command preceding the current postition in the
+Refer to the most recent command preceding the current position in the
history list containing
.IR string .
The trailing \fB?\fP may be omitted if
@@ -6442,7 +6696,8 @@ The \fIn\fRth word.
The first argument. That is, word 1.
.TP
.B $
-The last argument.
+The last word. This is usually the last argument, but will expand to the
+zeroth word if there is only one word in the line.
.TP
.B %
The word matched by the most recent `?\fIstring\fR?' search.
@@ -6475,10 +6730,10 @@ one or more of the following modifiers, each preceded by a `:'.
.PP
.TP
.B h
-Remove a trailing file name component, leaving only the head.
+Remove a trailing filename component, leaving only the head.
.TP
.B t
-Remove all leading file name components, leaving the tail.
+Remove all leading filename components, leaving the tail.
.TP
.B r
Remove a trailing suffix of the form \fI.xxx\fP, leaving the
@@ -6582,7 +6837,7 @@ executed from
.IR filename .
If
.I filename
-does not contain a slash, file names in
+does not contain a slash, filenames in
.SM
.B PATH
are used to find the directory containing
@@ -6638,7 +6893,7 @@ returns 0 unless run when job control is disabled or, when run with
job control enabled, any specified \fIjobspec\fP was not found
or was started without job control.
.TP
-\fBbind\fP [\fB\-m\fP \fIkeymap\fP] [\fB\-lpsvPSV\fP]
+\fBbind\fP [\fB\-m\fP \fIkeymap\fP] [\fB\-lpsvPSVX\fP]
.PD 0
.TP
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] [\fB\-q\fP \fIfunction\fP] [\fB\-u\fP \fIfunction\fP] [\fB\-r\fP \fIkeyseq\fP]
@@ -6733,6 +6988,10 @@ or
.SM
.BR READLINE_POINT ,
those new values will be reflected in the editing state.
+.TP
+.B \-X
+List all key sequences bound to shell commands and the associated commands
+in a format that can be reused as input.
.PD
.PP
The return value is 0 unless an unrecognized option is given or an
@@ -6780,18 +7039,22 @@ 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\fP|[\fB\-P\fP [\fB\-e\fP]]] [\fIdir\fP]
-Change the current directory to \fIdir\fP. The variable
+\fBcd\fP [\fB\-L\fP|[\fB\-P\fP [\fB\-e\fP]] [\-@]] [\fIdir\fP]
+Change the current directory to \fIdir\fP.
+if \fIdir\fP is not supplied, the value of the
.SM
.B HOME
-is the
-default
-.IR dir .
+shell variable is the default.
+Any additional arguments following \fIdir\fP are ignored.
The variable
.SM
.B CDPATH
defines the search path for the directory containing
-.IR dir .
+.IR dir :
+each directory name in
+.SM
+.B CDPATH
+is searched for \fIdir\fP.
Alternative directory names in
.SM
.B CDPATH
@@ -6806,14 +7069,19 @@ then
.B CDPATH
is not used. The
.B \-P
-option says to use the physical directory structure instead of
-following symbolic links (see also the
+option causes \fBcd\fP to use the physical directory structure
+by resolving symbolic links while traversing \fIdir\fP and
+before processing instances of \fI..\fP in \fIdir\fP (see also the
.B \-P
option to the
.B set
builtin command); the
.B \-L
-option forces symbolic links to be followed.
+option forces symbolic links to be followed by resolving the link
+after processing instances of \fI..\fP in \fIdir\fP.
+If \fI..\fP appears in \fIdir\fP, it is processed by removing the
+immediately previous pathname component from \fIdir\fP, back to a slash
+or the beginning of \fIdir\fP.
If the
.B \-e
option is supplied with
@@ -6821,11 +7089,14 @@ option is supplied with
and the current working directory cannot be successfully determined
after a successful directory change, \fBcd\fP will return an unsuccessful
status.
+On systems that support it, the \fB\-@\fP option presents the extended
+attributes associated with a file as a directory.
An argument of
.B \-
-is equivalent to
+is converted to
.SM
-.BR $OLDPWD .
+.B $OLDPWD
+before the directory change is attempted.
If a non-empty directory name from
.SM
.B CDPATH
@@ -6861,7 +7132,7 @@ option is supplied, a description of
.I command
is printed. The
.B \-v
-option causes a single word indicating the command or file name
+option causes a single word indicating the command or filename
used to invoke
.I command
to be displayed; the
@@ -6956,6 +7227,10 @@ 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 noquote
+Tell readline not to quote the completed words if they are filenames
+(quoting filenames is the default).
+.TP 8
.B nospace
Tell readline not to append a space (the default) to words completed at
the end of the line.
@@ -7054,6 +7329,12 @@ used as the possible completions.
\fB\-F\fP \fIfunction\fP
The shell function \fIfunction\fP is executed in the current shell
environment.
+When the function is executed,
+the first argument (\fB$1\fP) is the name of the command whose arguments are
+being completed,
+the second argument (\fB$2\fP) is the word being completed,
+and the third argument (\fB$3\fP) is the word preceding the word being
+completed on the current command line.
When it finishes, the possible completions are retrieved from the value
of the
.SM
@@ -7133,10 +7414,10 @@ is greater than the number of enclosing loops, the last enclosing loop
(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\-aAfFgilrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...]
+\fBdeclare\fP [\fB\-aAfFgilnrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...]
.PD 0
.TP
-\fBtypeset\fP [\fB\-aAfFgilrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...]
+\fBtypeset\fP [\fB\-aAfFgilnrtux\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.
@@ -7146,7 +7427,8 @@ option will display the attributes and values of each
.IR name .
When
.B \-p
-is used with \fIname\fP arguments, additional options are ignored.
+is used with \fIname\fP arguments, additional options,
+other than \fB\-f\fP and \fB\-F\fP, are ignored.
When
.B \-p
is supplied without \fIname\fP arguments, it will display the attributes
@@ -7200,6 +7482,15 @@ When the variable is assigned a value, all upper-case characters are
converted to lower-case.
The upper-case attribute is disabled.
.TP
+.B \-n
+Give each \fIname\fP the \fInameref\fP attribute, making
+it a name reference to another variable.
+That other variable is defined by the value of \fIname\fP.
+All references and assignments to \fIname\fP, except for changing the
+\fB\-n\fP attribute itself, are performed on the variable referenced by
+\fIname\fP's value.
+The \fB\-n\fP attribute cannot be applied to array variables.
+.TP
.B \-r
Make \fIname\fPs readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
@@ -7224,13 +7515,20 @@ turns off the attribute instead,
with the exceptions that \fB+a\fP
may not be used to destroy an array variable and \fB+r\fP will not
remove the readonly attribute.
-When used in a function, makes each
+When used in a function,
+.B declare
+and
+.B typeset
+make each
\fIname\fP local, as with the
.B local
command,
-unless the \fB\-g\fP option is supplied,
+unless the \fB\-g\fP option is supplied.
If a variable name is followed by =\fIvalue\fP, the value of
the variable is set to \fIvalue\fP.
+When using \fB\-a\fP or \fB\-A\fP and the compound assignment syntax to
+create array variables, additional attributes do not take effect until
+subsequent assignments.
The return value is 0 unless an invalid option is encountered,
an attempt is made to define a function using
.if n ``\-f foo=bar'',
@@ -7245,7 +7543,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 [+\fIn\fP] [\-\fIn\fP] [\fB\-clpv\fP]
+.B dirs [\fB\-clpv\fP] [+\fIn\fP] [\-\fIn\fP]
Without options, displays the list of currently remembered directories.
The default display is on a single line with directory names separated
by spaces.
@@ -7257,24 +7555,12 @@ command removes entries from the list.
.RS
.PD 0
.TP
-\fB+\fP\fIn\fP
-Displays the \fIn\fPth entry counting from the left of the list
-shown by
-.B dirs
-when invoked without options, starting with zero.
-.TP
-\fB\-\fP\fIn\fP
-Displays the \fIn\fPth entry counting from the right of the list
-shown by
-.B dirs
-when invoked without options, starting with zero.
-.TP
.B \-c
Clears the directory stack by deleting all of the entries.
.TP
.B \-l
-Produces a longer listing; the default listing format uses a
-tilde to denote the home directory.
+Produces a listing using full pathnames;
+the default listing format uses a tilde to denote the home directory.
.TP
.B \-p
Print the directory stack with one entry per line.
@@ -7282,6 +7568,18 @@ Print the directory stack with one entry per line.
.B \-v
Print the directory stack with one entry per line,
prefixing each entry with its index in the stack.
+.TP
+\fB+\fP\fIn\fP
+Displays the \fIn\fPth entry counting from the left of the list
+shown by
+.B dirs
+when invoked without options, starting with zero.
+.TP
+\fB\-\fP\fIn\fP
+Displays the \fIn\fPth entry counting from the right of the list
+shown by
+.B dirs
+when invoked without options, starting with zero.
.PD
.PP
The return value is 0 unless an
@@ -7290,13 +7588,13 @@ of the directory stack.
.RE
.TP
\fBdisown\fP [\fB\-ar\fP] [\fB\-h\fP] [\fIjobspec\fP ...]
-Without options, each
+Without options, remove each
.I jobspec
-is removed from the table of active jobs.
+from the table of active jobs.
If
.I jobspec
-is not present, and neither \fB\-a\fP nor \fB\-r\fP is supplied,
-the shell's notion of the \fIcurrent job\fP is used.
+is not present, and neither the \fB\-a\fP nor the \fB\-r\fP option
+is supplied, 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
@@ -7307,13 +7605,6 @@ is not sent to the job if the shell receives a
.BR SIGHUP .
If no
.I jobspec
-is present, and neither the
-.B \-a
-nor the
-.B \-r
-option is supplied, the \fIcurrent job\fP is used.
-If no
-.I jobspec
is supplied, the
.B \-a
option means to remove or mark all jobs; the
@@ -7327,7 +7618,7 @@ does not specify a valid job.
.TP
\fBecho\fP [\fB\-neE\fP] [\fIarg\fP ...]
Output the \fIarg\fPs, separated by spaces, followed by a newline.
-The return status is always 0.
+The return status is 0 unless a write error occurs.
If \fB\-n\fP is specified, the trailing newline is
suppressed. If the \fB\-e\fP option is given, interpretation of
the following backslash-escaped characters is enabled. The
@@ -7467,12 +7758,14 @@ to be executed with an empty environment. If
.B \-a
is supplied, the shell passes
.I name
-as the zeroth argument to the executed command. If
+as the zeroth argument to the executed command.
+If
.I command
cannot be executed for some reason, a non-interactive shell exits,
-unless the shell option
+unless the
.B execfail
-is enabled, in which case it returns failure.
+shell option
+is enabled. In that case, it returns failure.
An interactive shell returns failure if the file cannot be executed.
If
.I command
@@ -7510,7 +7803,7 @@ If no
are given, or if the
.B \-p
option is supplied, a list
-of all names that are exported in this shell is printed.
+of names of all exported variables is printed.
The
.B \-n
option causes the export property to be removed from each
@@ -7531,11 +7824,11 @@ that is not a function.
.TP
\fBfc\fP \fB\-s\fP [\fIpat\fP=\fIrep\fP] [\fIcmd\fP]
.PD
-Fix Command. In the first form, a range of commands from
+The first form selects a range of commands from
.I first
to
.I last
-is selected from the history list.
+from the history list and displays or edits and re-executes them.
.I First
and
.I last
@@ -7589,6 +7882,7 @@ echoed and executed.
.sp 1
In the second form, \fIcommand\fP is re-executed after each instance
of \fIpat\fP is replaced by \fIrep\fP.
+\fICommand\fP is intepreted the same as \fIfirst\fP above.
A useful alias to use with this is
.if n ``r="fc -s"'',
.if t \f(CWr='fc \-s'\fP,
@@ -7691,7 +7985,7 @@ can report errors in two ways. If the first character of
.I optstring
is a colon,
.I silent
-error reporting is used. In normal operation diagnostic messages
+error reporting is used. In normal operation, diagnostic messages
are printed when invalid options or missing option arguments are
encountered.
If the variable
@@ -7752,7 +8046,7 @@ If the
.B \-p
option is supplied, no path search is performed, and
.I filename
-is used as the full file name of the command.
+is used as the full filename of the command.
The
.B \-r
option causes the shell to forget all
@@ -7856,10 +8150,10 @@ current \fBbash\fP session.
.TP
.B \-r
Read the contents of the history file
-and use them as the current history.
+and append them to the current history list.
.TP
.B \-w
-Write the current history to the history file, overwriting the
+Write the current history list to the history file, overwriting the
history file's contents.
.TP
.B \-p
@@ -7915,10 +8209,10 @@ List only the process ID of the job's process group
leader.
.TP
.B \-r
-Restrict output to running jobs.
+Display only running jobs.
.TP
.B \-s
-Restrict output to stopped jobs.
+Display only stopped jobs.
.PD
.PP
If
@@ -8178,10 +8472,13 @@ causes \fBprintf\fP to output the corresponding
.TP
.B %(\fIdatefmt\fP)T
causes \fBprintf\fP to output the date-time string resulting from using
-\fIdatefmt\fP as a format string for \fIstrftime\fP(3). The corresponding
-\fIargument\fP is an integer representing the number of seconds since the
-epoch. Two special argument values may be used: -1 represents the current
+\fIdatefmt\fP as a format string for \fIstrftime\fP(3).
+The corresponding \fIargument\fP is an integer representing the number of
+seconds since the epoch.
+Two special argument values may be used: -1 represents the current
time, and -2 represents the time the shell was invoked.
+If no argument is specified, conversion behaves as if -1 had been given.
+This is an exception to the usual \fBprintf\fP behavior.
.PD
.PP
Arguments to non-string format specifiers are treated as C constants,
@@ -8230,7 +8527,8 @@ starting with zero) is at the top.
Adds
.I dir
to the directory stack at the top, making it the
-new current working directory.
+new current working directory as if it had been supplied as the argument
+to the \fBcd\fP builtin.
.PD
.PP
If the
@@ -8281,7 +8579,8 @@ the remaining names are assigned empty values.
The characters in
.SM
.B IFS
-are used to split the line into words.
+are used to split the line into words using the same rules the shell
+uses for expansion (described above under \fBWord Splitting\fP).
The backslash character (\fB\e\fP) may be used to remove any special
meaning for the next character read and for line continuation.
Options, if supplied, have the following meanings:
@@ -8348,14 +8647,18 @@ not echoed.
.TP
.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.
+input (or a specified number of characters)
+is not read within \fItimeout\fP seconds.
\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.
+If \fBread\fP times out, \fBread\fP saves any partial input read into
+the specified variable \fIname\fP.
+If \fItimeout\fP is 0, \fBread\fP returns immediately, without trying to
+read any data. The exit status is 0 if input is available on
+the specified file descriptor, non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
.TP
.B \-u \fIfd\fP
@@ -8368,8 +8671,9 @@ 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 (in which case the return code is greater than 128), 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),
+a variable assignment error (such as assigning to a readonly variable) occurs,
+or an invalid file descriptor is supplied as the argument to \fB\-u\fP.
.RE
.TP
\fBreadonly\fP [\fB\-aAf\fP] [\fB\-p\fP] [\fIname\fP[=\fIword\fP] ...]
@@ -8414,21 +8718,29 @@ is supplied with a
that is not a function.
.TP
\fBreturn\fP [\fIn\fP]
-Causes a function to exit with the return value specified by
-.IR n .
+Causes a function to stop executing and return the value specified by
+.I n
+to its caller.
If
.I n
is omitted, the return status is that of the last command
-executed in the function body. If used outside a function,
+executed in the function body. If
+.B return
+is used outside a function,
but during execution of a script by the
.B .
(\fBsource\fP) command, it causes the shell to stop executing
that script and return either
.I n
or the exit status of the last command executed within the
-script as the exit status of the script. If used outside a
-function and not during execution of a script by \fB.\fP\^,
-the return status is false.
+script as the exit status of the script.
+If \fIn\fP is supplied, the return value is its least significant
+8 bits.
+The return status is non-zero if
+.B return
+is supplied a non-numeric argument, or
+is used outside a
+function and not during execution of a script by \fB.\fP\^ or \fBsource\fP.
Any command associated with the \fBRETURN\fP trap is executed
before execution resumes after the function or script.
.TP
@@ -8441,7 +8753,7 @@ 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.
Read-only variables cannot be reset.
-In \fIposix mode\fP, only shell variables are listed.
+In \fIposix\fP mode, 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 option processing are treated
@@ -8464,13 +8776,14 @@ immediately, rather than before the next primary prompt. This is
effective only when job control is enabled.
.TP 8
.B \-e
-Exit immediately if a \fIpipeline\fP (which may consist of a single
-\fIsimple command\fP), a \fIsubshell\fP command enclosed in parentheses,
-or one of the commands executed as part of a command list enclosed
-by braces (see
+Exit immediately if a
+\fIpipeline\fP (which may consist of a single \fIsimple command\fP),
+a \fIlist\fP,
+or a \fIcompound command\fP
+(see
.SM
.B SHELL GRAMMAR
-above) exits with a non-zero status.
+above), exits with a non-zero status.
The shell does not exit if the
command that fails is part of the command list immediately following a
.B while
@@ -8490,6 +8803,9 @@ any command in a pipeline but the last,
or if the command's return value is
being inverted with
.BR ! .
+If a compound command other than a subshell
+returns a non-zero status because a command failed
+while \fB\-e\fP was being ignored, the shell does not exit.
A trap on \fBERR\fP, if set, is executed before the shell exits.
This option applies to the shell environment and each subshell environment
separately (see
@@ -8497,6 +8813,17 @@ separately (see
.B "COMMAND EXECUTION ENVIRONMENT"
above), and may cause
subshells to exit before executing all the commands in the subshell.
+.if t .sp 0.5
+.if n .sp 1
+If a compound command or shell function executes in a context
+where \fB\-e\fP is being ignored,
+none of the commands executed within the compound command or function body
+will be affected by the \fB\-e\fP setting, even if \fB\-e\fP is set
+and a command returns a failure status.
+If a compound command or shell function sets \fB\-e\fP while executing in
+a context where \fB\-e\fP is ignored, that setting will not have any
+effect until the compound command or the command containing the function
+call completes.
.TP 8
.B \-f
Disable pathname expansion.
@@ -8516,9 +8843,10 @@ by default for interactive shells on systems that support
it (see
.SM
.B JOB CONTROL
-above). Background processes run in a separate process
-group and a line containing their exit status is printed
-upon their completion.
+above).
+All processes run in a separate process group.
+When a background job completes, the shell prints a line
+containing its exit status.
.TP 8
.B \-n
Read commands but do not execute them. This may be used to
@@ -8630,6 +8958,11 @@ Change the behavior of
.B bash
where the default operation differs
from the POSIX standard to match the standard (\fIposix mode\fP).
+See
+.SM
+.B "SEE ALSO"
+below for a reference to a document that details how posix mode affects
+bash's behavior.
.TP 8
.B privileged
Same as
@@ -8742,7 +9075,7 @@ style history substitution. This option is on by
default when the shell is interactive.
.TP 8
.B \-P
-If set, the shell does not follow symbolic links when executing
+If set, the shell does not resolve symbolic links when executing
commands such as
.B cd
that change the current working directory. It uses the
@@ -8808,7 +9141,12 @@ is greater than
or less than zero; otherwise 0.
.TP
\fBshopt\fP [\fB\-pqsu\fP] [\fB\-o\fP] [\fIoptname\fP ...]
-Toggle the values of variables controlling optional shell behavior.
+Toggle the values of settings controlling optional shell behavior.
+The settings can be either those listed below, or, if the
+.B \-o
+option is used, those available with the
+.B \-o
+option to the \fBset\fP builtin command.
With no options, or with the
.B \-p
option, a list of all settable options is displayed, with
@@ -8845,8 +9183,9 @@ If either
.B \-s
or
.B \-u
-is used with no \fIoptname\fP arguments, the display is limited to
-those options which are set or unset, respectively.
+is used with no \fIoptname\fP arguments,
+.B shopt
+shows only those options which are set or unset, respectively.
Unless otherwise noted, the \fBshopt\fP options are disabled (unset)
by default.
.PP
@@ -8878,7 +9217,7 @@ If set, minor errors in the spelling of a directory component in a
command will be corrected.
The errors checked for are transposed characters,
a missing character, and one character too many.
-If a correction is found, the corrected file name is printed,
+If a correction is found, the corrected filename is printed,
and the command proceeds.
This option is only used by interactive shells.
.TP 8
@@ -8917,37 +9256,66 @@ easy re-editing of multi-line commands.
If set,
.B bash
changes its behavior to that of version 3.1 with respect to quoted
-arguments to the \fB[[\fP conditional command's \fB=~\fP operator.
-.TP 8
-.B compat32
-If set,
-.B bash
-changes its behavior to that of version 3.2 with respect to locale-specific
-string comparison when using the \fB[[\fP
+arguments to the \fB[[\fP conditional command's \fB=~\fP operator
+and locale-specific string comparison when using the \fB[[\fP
conditional command's \fB<\fP and \fB>\fP operators.
Bash versions prior to bash-4.1 use ASCII collation and
.IR strcmp (3);
-bash-4.1 and later
-use the current locale's collation sequence and
+bash-4.1 and later use the current locale's collation sequence and
.IR strcoll (3).
.TP 8
+.B compat32
+If set,
+.B bash
+changes its behavior to that of version 3.2 with respect to
+locale-specific string comparison when using the \fB[[\fP
+conditional command's \fB<\fP and \fB>\fP operators (see previous item).
+.TP 8
.B compat40
If set,
.B bash
changes its behavior to that of version 4.0 with respect to locale-specific
string comparison when using the \fB[[\fP
-conditional command's \fB<\fP and \fB>\fP operators (see previous item)
+conditional command's \fB<\fP and \fB>\fP operators (see description of
+\fBcompat31\fP)
and the effect of interrupting a command list.
+Bash versions 4.0 and later interrupt the list as if the shell received the
+interrupt; previous versions continue with the next command in the list.
.TP 8
.B compat41
If set,
.BR bash ,
-when in posix mode, treats a single quote in a double-quoted
+when in \fIposix\fP mode, treats a single quote in a double-quoted
parameter expansion as a special character. The single quotes must match
(an even number) and the characters between the single quotes are considered
quoted. This is the behavior of posix mode through version 4.1.
The default bash behavior remains as in previous versions.
.TP 8
+.B compat42
+If set,
+.B bash
+does not process the replacement string in the pattern substitution word
+expansion using quote removal.
+.TP 8
+.B complete_fullquote
+If set,
+.B bash
+quotes all shell metacharacters in filenames and directory names when
+performing completion.
+If not set,
+.B bash
+removes metacharacters such as the dollar sign from the set of
+characters that will be quoted in completed filenames
+when these metacharacters appear in shell variable references in words to be
+completed.
+This means that dollar signs in variable names that expand to directories
+will not be quoted;
+however, any dollar signs appearing in filenames will not be quoted, either.
+This is active only when bash is using backslashes to quote completed
+filenames.
+This variable is set by default, which is the default bash behavior in
+versions through 4.2.
+.TP 8
.B direxpand
If set,
.B bash
@@ -9050,6 +9418,20 @@ above for a description of
.BR FIGNORE .
This option is enabled by default.
.TP 8
+.B globasciiranges
+If set, range expressions used in pattern matching bracket expressions (see
+.SM
+.B Pattern Matching
+above) behave as if in the traditional C locale when performing
+comparisons. That is, the current locale's collating sequence
+is not taken into account, so
+.B b
+will not collate between
+.B A
+and
+.BR B ,
+and upper-case and lower-case ASCII characters will collate together.
+.TP 8
.B globstar
If set, the pattern \fB**\fP used in a pathname expansion context will
match all files and zero or more directories and subdirectories.
@@ -9220,7 +9602,7 @@ is not supplied, or if job control is not enabled.
.PD 0
.TP
\fB[\fP \fIexpr\fP \fB]\fP
-Return a status of 0 or 1 depending on
+Return a status of 0 (true) or 1 (false) depending on
the evaluation of the conditional expression
.IR expr .
Each operator and operand must be a separate argument.
@@ -9408,7 +9790,10 @@ is
.BR ERR ,
the command
.I arg
-is executed whenever a simple command has a non\-zero exit status,
+is executed whenever a
+a pipeline (which may consist of a single simple
+command), a list, or a compound command returns a
+non\-zero exit status,
subject to the following conditions.
The
.SM
@@ -9425,10 +9810,12 @@ statement, part of a command executed in a
.B &&
or
.B ||
-list, or if the command's return value is
-being inverted via
+list except the command following the final \fB&&\fP or \fB||\fP,
+any command in a pipeline but the last,
+or if the command's return value is
+being inverted using
.BR ! .
-These are the same conditions obeyed by the \fBerrexit\fP option.
+These are the same conditions obeyed by the \fBerrexit\fP (\fB\-e\fP) option.
.if t .sp 0.5
.if n .sp 1
Signals ignored upon entry to the shell cannot be trapped or reset.
@@ -9491,7 +9878,7 @@ If a command is hashed,
.B \-p
and
.B \-P
-print the hashed value, not necessarily the file that appears
+print the hashed value, which is not necessarily the file that appears
first in
.SM
.BR PATH .
@@ -9606,16 +9993,17 @@ The maximum number of threads
.PP
If
.I limit
-is given, it is the new value of the specified resource (the
+is given, and the
.B \-a
-option is display only).
+option is not used,
+\fIlimit\fP is the new value of the specified resource.
If no option is given, then
.B \-f
is assumed. Values are in 1024-byte increments, except for
.BR \-t ,
-which is in seconds,
+which is in seconds;
.BR \-p ,
-which is in units of 512-byte blocks,
+which is in units of 512-byte blocks;
and
.BR \-T ,
.BR \-b ,
@@ -9660,15 +10048,15 @@ value is true unless a supplied
.I name
is not a defined alias.
.TP
-\fBunset\fP [\-\fBfv\fP] [\fIname\fP ...]
+\fBunset\fP [\-\fBfv\fP] [\-\fBn\fP] [\fIname\fP ...]
For each
.IR name ,
remove the corresponding variable or function.
-If no options are supplied, or the
+If the
.B \-v
option is given, each
.I name
-refers to a shell variable.
+refers to a shell variable, and that variable is removed.
Read-only variables may not be unset.
If
.B \-f
@@ -9676,6 +10064,15 @@ is specified, each
.I name
refers to a shell function, and the function definition
is removed.
+If the
+.B \-n
+option is supplied, and \fIname\fP is a variable with the \fInameref\fP
+attribute, \fIname\fP will be unset rather than the variable it
+references.
+\fB\-n\fP has no effect if the \fB\-f\fP option is supplied.
+If no options are supplied, each \fIname\fP refers to a variable; if
+there is no variable by that name, any function with that name is
+unset.
Each unset variable or function is removed from the environment
passed to subsequent commands.
If any of
@@ -9701,8 +10098,8 @@ subsequently reset. The exit status is true unless a
.I name
is readonly.
.TP
-\fBwait\fP [\fIn ...\fP]
-Wait for each specified process and return its termination status.
+\fBwait\fP [\fB\-n\fP] [\fIn ...\fP]
+Wait for each specified child process and return its termination status.
Each
.I n
may be a process
@@ -9710,7 +10107,10 @@ ID or a job specification; if a job spec is given, all processes
in that job's pipeline are waited for. If
.I n
is not given, all currently active child processes
-are waited for, and the return status is zero. If
+are waited for, and the return status is zero.
+If the \fB\-n\fP option is supplied, \fBwait\fP waits for any job to
+terminate and returns its exit status.
+If
.I n
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the last
@@ -9751,7 +10151,7 @@ or
specifying command names containing
.B /
.IP \(bu
-specifying a file name containing a
+specifying a filename containing a
.B /
as an argument to the
.B .
@@ -9818,7 +10218,10 @@ script.
.TP
\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
.TP
-\fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP, IEEE
+\fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP, IEEE --
+http://pubs.opengroup.org/onlinepubs/9699919799/
+.TP
+http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
.TP
\fIsh\fP(1), \fIksh\fP(1), \fIcsh\fP(1)
.TP
diff --git a/doc/bash.html b/doc/bash.html
index d1b64895..bba7db6c 100644
--- a/doc/bash.html
+++ b/doc/bash.html
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2010 December 28<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2014 February 2<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -37,12 +37,12 @@ bash - GNU Bourne-Again SHell
<B>bash</B>
[options]
-[file]
+[command_string | file]
<A NAME="lbAD">&nbsp;</A>
<H3>COPYRIGHT</H3>
-Bash is Copyright &#169; 1989-2010 by the Free Software Foundation, Inc.
+Bash is Copyright &#169; 1989-2013 by the Free Software Foundation, Inc.
<A NAME="lbAE">&nbsp;</A>
<H3>DESCRIPTION</H3>
@@ -76,17 +76,17 @@ interprets the following options when it is invoked:
<DL COMPACT>
-<DT><B>-c</B><I> string</I>
+<DT><B>-c</B>
<DD>
If the
<B>-c</B>
-option is present, then commands are read from
-<I>string</I>.
+option is present, then commands are read from the first non-option argument
+<I>command_string</I>.
If there are arguments after the
-<I>string</I>,
+<I>command_string</I>,
they are assigned to the positional parameters, starting with
<B>$0</B>.
@@ -275,6 +275,12 @@ This option is on by default if the shell is invoked as
<DD>
Change the behavior of <B>bash</B> where the default operation differs
from the POSIX standard to match the standard (<I>posix mode</I>).
+See
+<FONT SIZE=-1><B>SEE ALSO</B>
+
+</FONT>
+below for a reference to a document that details how posix mode affects
+bash's behavior.
<DT><B>--restricted</B>
<DD>
@@ -376,7 +382,7 @@ If any of the files exist but cannot be read,
<B>bash</B>
reports an error.
-Tildes are expanded in file names as described below under
+Tildes are expanded in filenames as described below under
<B>Tilde Expansion</B>
in the
@@ -447,7 +453,7 @@ but the value of the
<FONT SIZE=-1><B>PATH</B>
</FONT>
-variable is not used to search for the file name.
+variable is not used to search for the filename.
<P>
If
@@ -544,8 +550,8 @@ The
option may be used to inhibit this behavior, and the
<B>--rcfile</B>
-option may be used to force another file to be read, but
-<I>rshd</I> does not generally invoke the shell with those options
+option may be used to force another file to be read, but neither
+<I>rshd</I> nor <I>sshd</I> generally invoke the shell with those options
or allow them to be specified.
<P>
@@ -654,7 +660,7 @@ command:
<B>
</B>
-! case do done elif else esac fi for function if in select then until while { } time [[ ]]
+! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
</DL>
@@ -708,11 +714,12 @@ command (see
</FONT>
below).
-If <B>|&amp;</B> is used, the standard error of <I>command</I> is connected to
-<I>command2</I>'s standard input through the pipe; it is shorthand for
-<B>2&gt;&amp;1 |</B>.
-This implicit redirection of the standard error is performed after any
-redirections specified by the command.
+If <B>|&amp;</B> is used, <I>command</I>'s standard error, in addition to its
+standard output, is connected to
+<I>command2</I>'s standard input through the pipe;
+it is shorthand for <B>2&gt;&amp;1 |</B>.
+This implicit redirection of the standard error to the standard output is
+performed after any redirections specified by the command.
<P>
The return status of a pipeline is the exit status of the last
@@ -869,7 +876,10 @@ executed in the list.
<P>
-A <I>compound command</I> is one of the following:
+A <I>compound command</I> is one of the following.
+In most cases a <I>list</I> in a command's description may be separated from
+the rest of the command by one or more newlines, and may be followed by a
+newline in place of a semicolon.
<DL COMPACT>
<DT>(<I>list</I>)<DD>
<I>list</I> is executed in a subshell environment (see
@@ -907,8 +917,9 @@ Expressions are composed of the primaries described below under
</FONT>
Word splitting and pathname expansion are not performed on the words
-between the <B>[[</B> and <B>]]</B>; tilde expansion, parameter and
-variable expansion, arithmetic expansion, command substitution, process
+between the <B>[[</B> and <B>]]</B>; tilde expansion,
+parameter and variable expansion,
+arithmetic expansion, command substitution, process
substitution, and quote removal are performed.
Conditional operators such as <B>-f</B> must be unquoted to be recognized
as primaries.
@@ -922,7 +933,9 @@ lexicographically using the current locale.
When the <B>==</B> and <B>!=</B> operators are used, the string to the
right of the operator is considered a pattern and matched according
-to the rules described below under <B>Pattern Matching</B>.
+to the rules described below under <B>Pattern Matching</B>,
+as if the <B>extglob</B> shell option were enabled.
+The <B>=</B> operator is equivalent to <B>==</B>.
If the shell option
<B>nocasematch</B>
@@ -930,8 +943,8 @@ is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (<B>==</B>) or does not match
(<B>!=</B>) the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force it to be matched as a
-string.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
<P>
@@ -948,8 +961,12 @@ If the shell option
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.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
+Bracket expressions in regular expressions must be treated carefully,
+since normal quoting characters lose their meanings between brackets.
+If the pattern is stored in a shell variable, quoting the variable
+expansion forces the entire pattern to be matched as a string.
Substrings matched by parenthesized subexpressions within the regular
expression are saved in the array variable
<FONT SIZE=-1><B>BASH_REMATCH</B>.
@@ -1113,7 +1130,7 @@ 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 <I>list</I>.
-<DT><B>if</B> <I>list</I>; <B>then</B> <I>list;</I> [ <B>elif</B> <I>list</I>; <B>then</B> <I>list</I>; ] ... [ <B>else</B> <I>list</I>; ] <B>fi</B><DD>
+<DT><B>if</B> <I>list</I>; <B>then</B> <I>list</I>; [ <B>elif</B> <I>list</I>; <B>then</B> <I>list</I>; ] ... [ <B>else</B> <I>list</I>; ] <B>fi</B><DD>
The
<B>if </B>
@@ -1167,11 +1184,11 @@ The format for a coprocess is:
<P>
This creates a coprocess named <I>NAME</I>.
-If <I>NAME</I> is not supplied, the default name is <I>COPROC</I>.
+If <I>NAME</I> is not supplied, the default name is <B>COPROC</B>.
<I>NAME</I> must not be supplied if <I>command</I> is a <I>simple
command</I> (see above); otherwise, it is interpreted as the first word
of the simple command.
-When the coproc is executed, the shell creates an array variable (see
+When the coprocess is executed, the shell creates an array variable (see
<B>Arrays</B>
below) named <I>NAME</I> in the context of the executing shell.
@@ -1193,12 +1210,15 @@ command (see
below).
The file descriptors can be utilized as arguments to shell commands
and redirections using standard word expansions.
+The file descriptors are not available in subshells.
The process ID of the shell spawned to execute the coprocess is
available as the value of the variable <I>NAME</I>_PID.
The <B>wait</B>
builtin command may be used to wait for the coprocess to terminate.
<P>
+Since the coprocess is created as an asynchronous command,
+the <B>coproc</B> command always returns success.
The return status of a coprocess is the exit status of <I>command</I>.
<A NAME="lbAQ">&nbsp;</A>
<H4>Shell Function Definitions</H4>
@@ -1224,6 +1244,8 @@ That command is usually a <I>list</I> of commands between { and }, but
may be any command listed under <B>Compound Commands</B> above.
<I>compound-command</I> is executed whenever <I>name</I> is specified as the
name of a simple command.
+When in <I>posix mode</I>, <I>name</I> may not be the name of one of the
+POSIX <I>special builtins</I>.
Any redirections (see
<FONT SIZE=-1><B>REDIRECTION</B>
@@ -1560,6 +1582,9 @@ and
<B>local</B>
builtin commands.
+When in <I>posix mode</I>, these builtins may appear in a command after
+one or more instances of the <B>command</B> builtin and retain these
+assignment statement properties.
<P>
In the context where an assignment statement is assigning a value
@@ -1578,6 +1603,41 @@ appended to the array beginning at one greater than the array's maximum index
associative array.
When applied to a string-valued variable, <I>value</I> is expanded and
appended to the variable's value.
+<P>
+
+A variable can be assigned the <I>nameref</I> attribute using the
+<B>-n</B> option to the <B>declare</B> or <B>local</B> builtin commands
+(see the descriptions of <B>declare</B> and <B>local</B> below)
+to create a <I>nameref</I>, or a reference to another variable.
+This allows variables to be manipulated indirectly.
+Whenever the nameref variable is referenced or assigned to, the operation
+is actually performed on the variable specified by the nameref variable's
+value.
+A nameref is commonly used within shell functions to refer to a variable
+whose name is passed as an argument to the function.
+For instance, if a variable name is passed to a shell function as its first
+argument, running
+<P>
+<DL COMPACT><DT><DD>
+<TT>declare -n ref=$1</TT>
+
+</DL>
+
+<P>
+inside the function creates a nameref variable <B>ref</B> whose value is
+the variable name passed as the first argument.
+References and assignments to <B>ref</B> are treated as references and
+assignments to the variable whose name was passed as <B>$1</B>.
+If the control variable in a <B>for</B> loop has the nameref attribute,
+the list of words can be a list of shell variables, and a name reference
+will be established for each word in the list, in turn, when the loop is
+executed.
+Array variables cannot be given the <B>-n</B> attribute.
+However, nameref variables can reference array variables and subscripted
+array variables.
+Namerefs can be unset using the <B>-n</B> option to the <B>unset</B> builtin.
+Otherwise, if <B>unset</B> is executed with the name of a nameref variable
+as an argument, the variable referenced by the nameref variable will be unset.
<A NAME="lbAU">&nbsp;</A>
<H4>Positional Parameters</H4>
@@ -1619,8 +1679,12 @@ only be referenced; assignment to them is not allowed.
<DT><B>*</B>
<DD>
-Expands to the positional parameters, starting from one. When the
-expansion occurs within double quotes, it expands to a single word
+Expands to the positional parameters, starting from one.
+When the expansion is not within double quotes, each positional parameter
+expands to a separate word.
+In contexts where it is performed, those words
+are subject to further word splitting and pathname expansion.
+When the expansion occurs within double quotes, it expands to a single word
with the value of each parameter separated by the first character
of the
<FONT SIZE=-1><B>IFS</B>
@@ -1689,8 +1753,13 @@ subshell.
<DT><B>!</B>
<DD>
-Expands to the process ID of the most recently executed background
-(asynchronous) command.
+Expands to the process ID of the job most recently placed into the
+background, whether executed as an asynchronous command or using
+the <B>bg</B> builtin (see
+<FONT SIZE=-1><B>JOB CONTROL</B>
+
+</FONT>
+below).
<DT><B>0</B>
<DD>
@@ -1712,7 +1781,7 @@ option, then
is set to the first argument after the string to be
executed, if one is present. Otherwise, it is set
-to the file name used to invoke
+to the filename used to invoke
<B>bash</B>,
as given by argument zero.
@@ -1743,7 +1812,7 @@ The following variables are set by the shell:
<DT><B>BASH</B>
<DD>
-Expands to the full file name used to invoke this instance of
+Expands to the full filename used to invoke this instance of
<B>bash</B>.
<DT><B>BASHOPTS</B>
@@ -1895,7 +1964,8 @@ The shell function
<DT><B>BASH_SUBSHELL</B>
<DD>
-Incremented by one each time a subshell or subshell environment is spawned.
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
<DT><B>BASH_VERSINFO</B>
@@ -1907,7 +1977,6 @@ this instance of
The values assigned to the array members are as follows:
<P>
<DL COMPACT><DT><DD>
-
<DL COMPACT>
<DT><B>BASH_VERSINFO[</B>0]
@@ -1936,7 +2005,6 @@ The value of
<FONT SIZE=-1><B>MACHTYPE</B>.
</FONT>
-
</DL></DL>
<DT><B>BASH_VERSION</B>
@@ -2334,6 +2402,25 @@ below.
<DL COMPACT>
+<DT><B>BASH_COMPAT</B>
+
+<DD>
+The value is used to set the shell's compatibility level.
+See the description of the <B>shopt</B> builtin below under
+<B>SHELL BUILTIN COMMANDS</B>
+for a description of the various compatibility
+levels and their effects.
+The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42)
+corresponding to the desired compatibility level.
+If <B>BASH_COMPAT</B> is unset or set to the empty string, the compatibility
+level is set to the default for the current version.
+If <B>BASH_COMPAT</B> is set to a value that is not one of the valid
+compatibility levels, the shell prints an error message and sets the
+compatibility level to the default for the current version.
+The valid compatibility levels correspond to the compatibility options
+accepted by the <B>shopt</B> builtin described below (for example,
+<B>compat42</B> means that 4.2 and 42 are valid values).
+The current version is also a valid value.
<DT><B>BASH_ENV</B>
<DD>
@@ -2347,11 +2434,11 @@ The value of
</FONT>
is subjected to parameter expansion, command substitution, and arithmetic
-expansion before being interpreted as a file name.
+expansion before being interpreted as a filename.
<FONT SIZE=-1><B>PATH</B>
</FONT>
-is not used to search for the resultant file name.
+is not used to search for the resultant filename.
<DT><B>BASH_XTRACEFD</B>
<DD>
@@ -2393,11 +2480,23 @@ command.
A sample value is
<TT>&quot;.:~:/usr&quot;</TT>.
+<DT><B>CHILD_MAX</B>
+
+<DD>
+Set the number of exited child status values for the shell to remember.
+Bash will not allow this value to be decreased below a POSIX-mandated
+minimum, and there is a maximum value (currently 8192) that this may
+not exceed.
+The minimum value is system-dependent.
<DT><B>COLUMNS</B>
<DD>
Used by the <B>select</B> compound command to determine the terminal width
-when printing selection lists. Automatically set upon receipt of a
+when printing selection lists.
+Automatically set if the
+<B>checkwinsize</B>
+
+option is enabled or in an interactive shell upon receipt of a
<FONT SIZE=-1><B>SIGWINCH</B>.
</FONT>
@@ -2407,6 +2506,7 @@ when printing selection lists. Automatically set upon receipt of a
An array variable from which <B>bash</B> reads the possible completions
generated by a shell function invoked by the programmable completion
facility (see <B>Programmable Completion</B> below).
+Each array element contains one possible completion.
<DT><B>EMACS</B>
<DD>
@@ -2514,16 +2614,20 @@ The name of the file in which command history is saved (see
</FONT>
below). The default value is <A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>. If unset, the
-command history is not saved when an interactive shell exits.
+command history is not saved when a shell exits.
<DT><B>HISTFILESIZE</B>
<DD>
The maximum number of lines contained in the history file. When this
variable is assigned a value, the history file is truncated, if
-necessary, by removing the oldest entries,
-to contain no more than that number of lines. The default
-value is 500. The history file is also truncated to this size after
-writing it when an interactive shell exits.
+necessary,
+to contain no more than that number of lines by removing the oldest entries.
+The history file is also truncated to this size after
+writing it when a shell exits.
+If the value is 0, the history file is truncated to zero size.
+Non-numeric values and numeric values less than zero inhibit truncation.
+The shell sets the default value to the value of <B>HISTSIZE</B>
+after reading any startup files.
<DT><B>HISTIGNORE</B>
<DD>
@@ -2551,7 +2655,11 @@ The number of commands to remember in the command history (see
<FONT SIZE=-1><B>HISTORY</B>
</FONT>
-below). The default value is 500.
+below).
+If the value is 0, commands are not saved in the history list.
+Numeric values less than zero result in every command being saved
+on the history list (there is no limit).
+The shell sets the default value to 500 after reading any startup files.
<DT><B>HISTTIMEFORMAT</B>
<DD>
@@ -2690,7 +2798,11 @@ This variable determines the locale category used for number formatting.
<DD>
Used by the <B>select</B> compound command to determine the column length
-for printing selection lists. Automatically set upon receipt of a
+for printing selection lists.
+Automatically set if the
+<B>checkwinsize</B>
+
+option is enabled or in an interactive shell upon receipt of a
<FONT SIZE=-1><B>SIGWINCH</B>.
</FONT>
@@ -2720,9 +2832,9 @@ greater than or equal to zero, the shell disables mail checking.
<DT><B>MAILPATH</B>
<DD>
-A colon-separated list of file names to be checked for mail.
+A colon-separated list of filenames to be checked for mail.
The message to be printed when mail arrives in a particular file
-may be specified by separating the file name from the message with a `?'.
+may be specified by separating the filename from the message with a `?'.
When used in the text of the message, <B>$_</B> expands to the name of
the current mailfile.
Example:
@@ -2779,7 +2891,7 @@ and is set by the administrator who installs
<B>bash</B>.
A common value is
-<TT>/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin</TT>.
+<TT>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin</TT>.
<DT><B>POSIXLY_CORRECT</B>
@@ -2914,9 +3026,10 @@ The value of <I>p</I> determines whether or not the fraction is
included.
<DT><DD>
If this variable is not set, <B>bash</B> acts as if it had the
-value <B>$aq\nreal\t%3lR\nuser\t%3lU\nsys %3lSaq</B>.
+value <B>$aq\nreal\t%3lR\nuser\t%3lU\nsys\t%3lSaq</B>.
If the value is null, no timing information is displayed.
A trailing newline is added when the format string is displayed.
+
<DT><B>TMOUT</B>
<DD>
@@ -2933,11 +3046,12 @@ after
</FONT>
seconds when input is coming from a terminal.
In an interactive shell, the value is interpreted as the
-number of seconds to wait for input after issuing the primary prompt.
+number of seconds to wait for a line of input after issuing the
+primary prompt.
<B>Bash</B>
-terminates after waiting for that number of seconds if input does
-not arrive.
+terminates after waiting for that number of seconds if a complete
+line of input does not arrive.
<DT><B>TMPDIR</B>
<DD>
@@ -3016,6 +3130,7 @@ 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.
+Unless otherwise noted, indexed array indices must be non-negative integers.
<P>
An indexed array is created automatically if any variable is assigned to
@@ -3023,12 +3138,6 @@ using the syntax <I>name</I>[<I>subscript</I>]=<I>value</I>. The
<I>subscript</I>
is treated as an arithmetic expression that must evaluate to a number.
-If
-<I>subscript</I>
-
-evaluates to a number less than zero, it is used as
-an offset from one greater than the array's maximum index (so a subcript
-of -1 refers to the last element of the array).
To explicitly declare an indexed array, use
<B>declare -a </B><I>name</I>
@@ -3060,7 +3169,7 @@ builtins. Each attribute applies to all members of an array.
Arrays are assigned to using compound assignments of the form
<I>name</I>=<B>(</B>value<I>1</I> ... value<I>n</I><B>)</B>, where each
<I>value</I> is of the form [<I>subscript</I>]=<I>string</I>.
-Indexed array assignments do not require the bracket and subscript.
+Indexed array assignments do not require anything but <I>string</I>.
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
@@ -3075,6 +3184,13 @@ This syntax is also accepted by the
builtin. Individual array elements may be assigned to using the
<I>name</I>[<I>subscript</I>]=<I>value</I> syntax introduced above.
+When assigning to an indexed array, if
+<I>name</I>
+
+is subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+<I>name</I>, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
<P>
Any element of an array may be referenced using
@@ -3105,17 +3221,33 @@ ${<I>name</I>[<I>subscript</I>]}. If <I>subscript</I> is <B>*</B> or
<B>@</B>, the expansion is the number of elements in the array.
Referencing an array variable without a subscript is equivalent to
referencing the array with a subscript of 0.
+If the
+<I>subscript</I>
+
+used to reference an element of an indexed array
+evaluates to a number less than zero, it is
+interpreted as relative to one greater than the maximum index of the array,
+so negative indices count back from the end of the
+array, and an index of -1 references the last element.
<P>
An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
<P>
+It is possible to obtain the keys (indices) of an array as well as the values.
+${<B>!</B><I>name</I>[<I>@</I>]} and ${<B>!</B><I>name</I>[<I>*</I>]}
+expand to the indices assigned in array variable <I>name</I>.
+The treatment when in double quotes is similar to the expansion of the
+special parameters <I>@</I> and <I>*</I> within double quotes.
+<P>
+
The
<B>unset</B>
builtin is used to destroy arrays. <B>unset</B> <I>name</I>[<I>subscript</I>]
destroys the array element at index <I>subscript</I>.
+Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by pathname
expansion.
<B>unset</B> <I>name</I>, where <I>name</I> is an array, or
@@ -3138,6 +3270,10 @@ option to specify an indexed array and a
<B>-A</B>
option to specify an associative array.
+If both options are supplied,
+<B>-A</B>
+
+takes precedence.
The
<B>read</B>
@@ -3175,15 +3311,19 @@ and
<P>
-The order of expansions is: brace expansion, tilde expansion,
-parameter, variable and arithmetic expansion and
-command substitution
-(done in a left-to-right fashion), word splitting, and pathname
-expansion.
+The order of expansions is:
+brace expansion;
+tilde expansion, parameter and variable expansion, arithmetic expansion,
+and command substitution (done in a left-to-right fashion);
+word splitting;
+and pathname expansion.
<P>
On systems that can support it, there is an additional expansion
available: <I>process substitution</I>.
+This is performed at the
+same time as tilde, parameter, variable, and arithmetic expansion and
+command substitution.
<P>
Only brace expansion, word splitting, and pathname expansion
@@ -3231,12 +3371,14 @@ and <I>incr</I>, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
<I>x</I> and <I>y</I>, inclusive.
Supplied integers may be prefixed with <I>0</I> to force each term to have the
-same width. When either <I>x</I> or y begins with a zero, the shell
+same width.
+When either <I>x</I> 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 <I>x</I> and <I>y</I>, inclusive. Note that
-both <I>x</I> and <I>y</I> must be of the same type.
+lexicographically between <I>x</I> and <I>y</I>, inclusive,
+using the default C locale.
+Note that both <I>x</I> and <I>y</I> 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.
<P>
@@ -3377,7 +3519,7 @@ or the first
<B>=</B>.
In these cases, tilde expansion is also performed.
-Consequently, one may use file names with tildes in assignments to
+Consequently, one may use filenames with tildes in assignments to
<FONT SIZE=-1><B>PATH</B>,
</FONT>
@@ -3421,18 +3563,20 @@ or when
is followed by a character which is not to be
interpreted as part of its name.
+The <I>parameter</I> is a shell parameter as described above
+<B>PARAMETERS</B>) or an array reference (<B>Arrays</B>).
</DL>
<P>
If the first character of <I>parameter</I> is an exclamation point (<B>!</B>),
-a level of variable indirection is introduced.
+it introduces a level of variable indirection.
<B>Bash</B> uses the value of the variable formed from the rest of
<I>parameter</I> as the name of the variable; this variable is then
expanded and that value is used in the rest of the substitution, rather
than the value of <I>parameter</I> itself.
This is known as <I>indirect expansion</I>.
-The exceptions to this are the expansions of ${<B>!\fPfIprefix</B><B>*</B>} and
+The exceptions to this are the expansions of ${<B>!</B><I>prefix</I><B>*</B>} and
${<B>!</B><I>name</I>[<I>@</I>]} described below.
The exclamation point must immediately follow the left brace in order to
introduce indirection.
@@ -3442,7 +3586,8 @@ In each of the cases below, <I>word</I> is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
<P>
-When not performing substring expansion, using the forms documented below,
+When not performing substring expansion, using the forms documented below
+(e.g., <B>:-</B>),
<B>bash</B> tests for a parameter that is unset or null. Omitting the colon
results in a test only for a parameter that is unset.
<P>
@@ -3502,33 +3647,50 @@ is substituted.
<DT>${<I>parameter</I><B>:</B><I>offset</I><B>:</B><I>length</I>}<DD>
<B>Substring Expansion</B>.
-Expands to up to <I>length</I> characters of <I>parameter</I>
+Expands to up to <I>length</I> characters of the value of <I>parameter</I>
starting at the character specified by <I>offset</I>.
-If <I>length</I> is omitted, expands to the substring of
-<I>parameter</I> starting at the character specified by <I>offset</I>.
+If <I>parameter</I> is <B>@</B>, an indexed array subscripted by
+<B>@</B> or <B>*</B>, or an associative array name, the results differ as
+described below.
+If <I>length</I> is omitted, expands to the substring of the value of
+<I>parameter</I> starting at the character specified by <I>offset</I>
+and extending to the end of the value.
<I>length</I> and <I>offset</I> are arithmetic expressions (see
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
</FONT>
below).
+<P>
If <I>offset</I> evaluates to a number less than zero, the value
-is used as an offset from the end of the value of <I>parameter</I>.
-If <I>length</I> evaluates to a number less than zero, and <I>parameter</I>
-is not <B>@</B> and not an indexed or associative array, it is interpreted
-as an offset from the end of the value of <I>parameter</I> rather than
-a number of characters, and the expansion is the characters between the
-two offsets.
+is used as an offset in characters
+from the end of the value of <I>parameter</I>.
+If <I>length</I> evaluates to a number less than zero,
+it is interpreted as an offset in characters
+from the end of the value of <I>parameter</I> rather than
+a number of characters, and the expansion is the characters between
+<I>offset</I> and that result.
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the <B>:-</B> expansion.
+<P>
If <I>parameter</I> is <B>@</B>, the result is <I>length</I> positional
parameters beginning at <I>offset</I>.
+A negative <I>offset</I> is taken relative to one greater than the greatest
+positional parameter, so an offset of -1 evaluates to the last positional
+parameter.
+It is an expansion error if <I>length</I> evaluates to a number less than
+zero.
+<P>
If <I>parameter</I> is an indexed array name subscripted by @ or *,
the result is the <I>length</I>
members of the array beginning with ${<I>parameter</I>[<I>offset</I>]}.
A negative <I>offset</I> is taken relative to one greater than the maximum
index of the specified array.
+It is an expansion error if <I>length</I> evaluates to a number less than
+zero.
+<P>
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.
+<P>
Substring indexing is zero-based unless the positional parameters
are used, in which case the indexing starts at 1 by default.
If <I>offset</I> is 0, and the positional parameters are used, <B>$0</B> is
@@ -3580,6 +3742,13 @@ or
<B>@</B>,
the value substituted is the number of elements in the array.
+If
+<I>parameter</I>
+
+is an indexed array name subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+<I>parameter</I>, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
<DT>${<I>parameter</I><B>#</B><I>word</I>}<DD>
<DT>${<I>parameter</I><B>##</B><I>word</I>}<DD>
@@ -3703,6 +3872,9 @@ array in turn, and the expansion is the resultant list.
This expansion modifies the case of alphabetic characters in <I>parameter</I>.
The <I>pattern</I> is expanded to produce a pattern just as in
pathname expansion.
+Each character in the expanded value of <I>parameter</I> is tested against
+<I>pattern</I>, and, if it matches the pattern, its case is converted.
+The pattern should not attempt to match more than one character.
The <B>^</B> operator converts lowercase letters matching <I>pattern</I>
to uppercase; the <B>,</B> operator converts matching uppercase letters
to lowercase.
@@ -3741,8 +3913,6 @@ array in turn, and the expansion is the resultant list.
<I>Command substitution</I> allows the output of a command to replace
the command name. There are two forms:
-<P>
-
<DL COMPACT><DT><DD>
<P>
@@ -3808,8 +3978,9 @@ The
is treated as if it were within double quotes, but a double quote
inside the parentheses is not treated specially.
-All tokens in the expression undergo parameter expansion, string
-expansion, command substitution, and quote removal.
+All tokens in the expression undergo parameter and variable expansion,
+command substitution, and quote removal.
+The result is treated as the arithmetic expression to be evaluated.
Arithmetic expansions may be nested.
<P>
@@ -3868,7 +4039,8 @@ The shell treats each character of
</FONT>
as a delimiter, and splits the results of the other
-expansions into words on these characters. If
+expansions into words using these characters as field terminators.
+If
<FONT SIZE=-1><B>IFS</B>
</FONT>
@@ -3973,8 +4145,13 @@ regarded as a
<I>pattern</I>,
and replaced with an alphabetically sorted list of
-file names matching the pattern.
-If no matching file names are found,
+filenames matching the pattern
+(see
+<FONT SIZE=-1><B>Pattern Matching</B>
+
+</FONT>
+below).
+If no matching filenames are found,
and the shell option
<B>nullglob</B>
@@ -4033,19 +4210,19 @@ The
<FONT SIZE=-1><B>GLOBIGNORE</B>
</FONT>
-shell variable may be used to restrict the set of file names matching a
+shell variable may be used to restrict the set of filenames matching a
<I>pattern</I>.
If
<FONT SIZE=-1><B>GLOBIGNORE</B>
</FONT>
-is set, each matching file name that also matches one of the patterns in
+is set, each matching filename that also matches one of the patterns in
<FONT SIZE=-1><B>GLOBIGNORE</B>
</FONT>
is removed from the list of matches.
-The file names
+The filenames
<B>``.''</B>
and
@@ -4062,11 +4239,11 @@ is set and not null. However, setting
to a non-null value has the effect of enabling the
<B>dotglob</B>
-shell option, so all other file names beginning with a
+shell option, so all other filenames beginning with a
<B>``.''</B>
will match.
-To get the old behavior of ignoring file names beginning with a
+To get the old behavior of ignoring filenames beginning with a
<B>``.''</B>,
make
@@ -4123,7 +4300,7 @@ Matches any single character.
Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a
<I>range expression</I>;
-any character that sorts between those two characters, inclusive,
+any character that falls between those two characters, inclusive,
using the current locale's collating sequence and character set,
is matched. If the first character following the
<B>[</B>
@@ -4136,12 +4313,31 @@ or a
then any character not enclosed is matched.
The sorting order of characters in range expressions is determined by
-the current locale and the value of the
+the current locale and the values of the
<FONT SIZE=-1><B>LC_COLLATE</B>
</FONT>
-shell variable,
-if set.
+or
+<FONT SIZE=-1><B>LC_ALL</B>
+
+</FONT>
+shell variables, if set.
+To obtain the traditional interpretation of range expressions, where
+<B>[a-d]</B>
+
+is equivalent to
+<B>[abcd]</B>,
+
+set value of the
+<B>LC_ALL</B>
+
+shell variable to
+<B>C</B>,
+
+or enable the
+<B>globasciiranges</B>
+
+shell option.
A
<B>-</B>
@@ -4257,8 +4453,13 @@ may be
<I>redirected</I>
using a special notation interpreted by the shell.
-Redirection may also be used to open and close files for the
-current shell execution environment. The following redirection
+Redirection allows commands' file handles to be
+duplicated, opened, closed,
+made to refer to different files,
+and can change the files the command reads from and writes to.
+Redirection may also be used to modify file handles in the
+current shell execution environment.
+The following redirection
operators may precede or appear anywhere within a
<I>simple command</I>
@@ -4273,7 +4474,8 @@ Each redirection that may be preceded by a file descriptor number
may instead be preceded by a word of the form {<I>varname</I>}.
In this case, for each redirection operator except
&gt;&amp;- and &lt;&amp;-, the shell will allocate a file descriptor greater
-than 10 and assign it to <I>varname</I>. If &gt;&amp;- or &lt;&amp;- is preceded
+than or equal to 10 and assign it to <I>varname</I>.
+If &gt;&amp;- or &lt;&amp;- is preceded
by {<I>varname</I>}, the value of <I>varname</I> defines the file
descriptor to close.
<P>
@@ -4291,9 +4493,10 @@ the redirection refers to the standard output (file descriptor
<P>
The word following the redirection operator in the following
-descriptions, unless otherwise noted, is subjected to brace expansion,
-tilde expansion, parameter expansion, command substitution, arithmetic
-expansion, quote removal, pathname expansion, and word splitting.
+descriptions, unless otherwise noted, is subjected to
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, quote removal,
+pathname expansion, and word splitting.
If it expands to more than one word,
<B>bash</B>
@@ -4359,13 +4562,13 @@ File descriptor 2 is duplicated.
<DD>
If <I>host</I> is a valid hostname or Internet address, and <I>port</I>
is an integer port number or service name, <B>bash</B> attempts to open
-a TCP connection to the corresponding socket.
+the corresponding TCP socket.
<DT><B>/dev/udp/</B><I>host</I>/<I>port</I>
<DD>
If <I>host</I> is a valid hostname or Internet address, and <I>port</I>
is an integer port number or service name, <B>bash</B> attempts to open
-a UDP connection to the corresponding socket.
+the corresponding UDP socket.
</DL></DL>
@@ -4523,6 +4726,10 @@ This is semantically equivalent to
<P>
+When using the second form, <I>word</I> may not expand to a number or
+<B>-</B>. If it does, other redirection operators apply
+(see <B>Duplicating File Descriptors</B> below) for compatibility
+reasons.
<A NAME="lbBN">&nbsp;</A>
<H4>Appending Standard Output and Standard Error</H4>
@@ -4553,6 +4760,9 @@ This is semantically equivalent to
<B>&gt;&gt;</B><I>word</I> 2<B>&gt;&amp;</B>1
</DL>
+<P>
+
+(see <B>Duplicating File Descriptors</B> below).
<A NAME="lbBO">&nbsp;</A>
<H4>Here Documents</H4>
@@ -4582,8 +4792,8 @@ The format of here-documents is:
<P>
-No parameter expansion, command substitution, arithmetic expansion,
-or pathname expansion is performed on
+No parameter and variable expansion, command substitution,
+arithmetic expansion, or pathname expansion is performed on
<I>word</I>.
If any characters in
@@ -4597,9 +4807,9 @@ is the result of quote removal on
and the lines in the here-document are not expanded.
If <I>word</I> is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion. In the latter
-case, the character sequence
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence
<B>\&lt;newline&gt;</B>
is ignored, and
@@ -4640,8 +4850,12 @@ A variant of here documents, the format is:
<P>
-The <I>word</I> is expanded and supplied to the command on its standard
-input.
+The <I>word</I> undergoes
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and quote removal.
+Pathname expansion and word splitting are not performed.
+The result is supplied as a single string to the command on its
+standard input.
<A NAME="lbBQ">&nbsp;</A>
<H4>Duplicating File Descriptors</H4>
@@ -4700,8 +4914,18 @@ If the digits in
<I>word</I>
do not specify a file descriptor open for output, a redirection error occurs.
+If
+<I>word</I>
+
+evaluates to
+<B>-</B>,
+
+file descriptor
+<I>n</I>
+
+is closed.
As a special case, if <I>n</I> is omitted, and <I>word</I> does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or <B>-</B>, the standard output and standard
error are redirected as described previously.
<A NAME="lbBR">&nbsp;</A>
<H4>Moving File Descriptors</H4>
@@ -5111,7 +5335,8 @@ Otherwise, numbers take the form [<I>base#</I>]n, where the optional <I>base</I>
is a decimal number between 2 and 64 representing the arithmetic
base, and <I>n</I> is a number in that base.
If <I>base#</I> is omitted, then base 10 is used.
-The digits greater than 9 are represented by the lowercase letters,
+When specifying <I>n</I>,
+the digits greater&lt; than 9 are represented by the lowercase letters,
the uppercase letters, @, and _, in that order.
If <I>base</I> is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
@@ -5263,6 +5488,13 @@ True if the shell variable
<I>varname</I>
is set (has been assigned a value).
+<DT><B>-R </B><I>varname</I>
+
+<DD>
+True if the shell variable
+<I>varname</I>
+
+is set and is a name reference.
<DT><B>-z </B><I>string</I>
<DD>
@@ -5283,6 +5515,8 @@ is non-zero.
True if the strings are equal. <B>=</B> should be used
with the <B>test</B> command for POSIX conformance.
+When used with the <B>[[</B> command, this performs pattern matching as
+described above (<B>Compound Commands</B>).
<DT><I>string1</I> <B>!=</B> <I>string2</I><DD>
True if the strings are not equal.
<DT><I>string1</I> <B>&lt;</B> <I>string2</I><DD>
@@ -5455,7 +5689,6 @@ arguments, if any.
The shell has an <I>execution environment</I>, which consists of the
following:
-
<DL COMPACT>
<DT>*<DD>
open files inherited by the shell at invocation, as modified by
@@ -5611,7 +5844,7 @@ When
invokes an external command, the variable
<B>_</B>
-is set to the full file name of the command and passed to that
+is set to the full filename of the command and passed to that
command in its environment.
<A NAME="lbCB">&nbsp;</A>
<H3>EXIT STATUS</H3>
@@ -6599,6 +6832,13 @@ If set to <B>audible</B>, readline attempts to ring the terminal's bell.
If set to <B>On</B>, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their readline
equivalents.
+<DT><B>colored-stats (Off)</B>
+
+<DD>
+If set to <B>On</B>, readline displays possible completions using different
+colors to indicate their file type.
+The color definitions are taken from the value of the <B>LS_COLORS</B>
+environment variable.
<DT><B>comment-begin (``#'')</B>
<DD>
@@ -6694,8 +6934,12 @@ or <B>next-history</B>.
<DT><B>history-size (0)</B>
<DD>
-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.
+Set the maximum number of history entries saved in the history list.
+If set to zero, any existing history entries are deleted and no new entries
+are saved.
+If set to a value less than zero, the number of history entries is not
+limited.
+By default, the number of history entries is not limited.
<DT><B>horizontal-scroll-mode (Off)</B>
<DD>
@@ -6734,6 +6978,20 @@ the value of
<B>editing-mode</B>
also affects the default keymap.
+<DT><B>keyseq-timeout (500)</B>
+
+<DD>
+Specifies the duration <I>readline</I> will wait for a character when reading an
+ambiguous key sequence (one that can form a complete key sequence using
+the input read so far, or can take additional input to complete a longer
+key sequence).
+If no input is received within the timeout, <I>readline</I> will use the shorter
+but complete key sequence.
+The value is specified in milliseconds, so a value of 1000 means that
+<I>readline</I> will wait one second for additional input.
+If this variable is set to a value less than or equal to zero, or to a
+non-numeric value, <I>readline</I> will wait until another key is pressed to
+decide which key sequence to complete.
<DT><B>mark-directories (On)</B>
<DD>
@@ -6808,6 +7066,12 @@ words which have more than one possible completion without any
possible partial completion (the possible completions don't share
a common prefix) cause the matches to be listed immediately instead
of ringing the bell.
+<DT><B>show-mode-in-prompt (Off)</B>
+
+<DD>
+If set to <B>On</B>, add a character to the beginning of the prompt
+indicating the editing mode: emacs (@), vi command (:) or vi
+insertion (+).
<DT><B>skip-completed-text (Off)</B>
<DD>
@@ -7122,7 +7386,7 @@ the first call) of each line in turn.
Any numeric argument supplied to these successive calls determines
the direction to move through the history. A negative argument switches
the direction through the history (back or forward).
-The history expansion facilities are used to extract the last argument,
+The history expansion facilities are used to extract the last word,
as if the &quot;!$&quot; history expansion had been specified.
<DT><B>shell-expand-line (M-C-e)</B>
@@ -7197,16 +7461,25 @@ and <I>emacs</I> as the editor, in that order.
<DL COMPACT>
-<DT><B>delete-char (C-d)</B>
+<DT><B></B><I>end-of-file</I> (usually C-d)
<DD>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <B>delete-char</B>,
-then return
+The character indicating end-of-file as set, for example, by
+<TT>stty</TT>.
+
+If this character is read when there are no characters
+on the line, and point is at the beginning of the line, Readline
+interprets it as the end of input and returns
<FONT SIZE=-1><B>EOF</B>.
</FONT>
+<DT><B>delete-char (C-d)</B>
+
+<DD>
+Delete the character at point.
+If this function is bound to the
+same character as the tty <B>EOF</B> character, as <B>C-d</B>
+commonly is, see above for the effects.
<DT><B>backward-delete-char (Rubout)</B>
<DD>
@@ -7552,6 +7825,11 @@ and store the definition.
<DD>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
+<DT><B>print-last-kbd-macro ()</B>
+
+<DD>
+Print the last keyboard macro defined in a format suitable for the
+<I>inputrc</I> file.
</DL>
<A NAME="lbCU">&nbsp;</A>
@@ -7658,12 +7936,12 @@ will be executed by the shell.
<DD>
The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
-generate a list of matching file names for possible completions.
+generate a list of matching filenames for possible completions.
<DT><B>glob-expand-word (C-x *)</B>
<DD>
The word before point is treated as a pattern for pathname expansion,
-and the list of matching file names is inserted, replacing the word.
+and the list of matching filenames is inserted, replacing the word.
If a numeric argument is supplied, an asterisk is appended before
pathname expansion.
<DT><B>glob-list-expansions (C-x g)</B>
@@ -7818,10 +8096,12 @@ and
</FONT>
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.
+When the function or command is invoked,
+the first argument (<B>$1</B>) is the name of the command whose arguments are
+being completed,
+the second argument (<B>$2</B>) is the word being completed,
+and the third argument (<B>$3</B>) 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.
@@ -7834,7 +8114,7 @@ It must put the possible completions in the
<FONT SIZE=-1><B>COMPREPLY</B>
</FONT>
-array variable.
+array variable, one per array element.
<P>
Next, any command specified with the <B>-C</B> option is invoked
@@ -7922,7 +8202,7 @@ completion function would load completions dynamically:
}
<BR>
-complete -D -F _completion_loader
+complete -D -F _completion_loader -o bashdefault -o default
<BR>
</TT>
@@ -7980,6 +8260,8 @@ the number of lines specified by the value of
<FONT SIZE=-1><B>HISTFILESIZE</B>.
</FONT>
+If <B>HISTFILESIZE</B> is unset, or set to null, a non-numeric value,
+or a numeric value less than zero, the history file is not truncated.
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.
@@ -7988,7 +8270,7 @@ These timestamps are optionally displayed depending on the value of the
</FONT>
variable.
-When an interactive shell exits, the last
+When a shell with history enabled exits, the last
<FONT SIZE=-1><B>$HISTSIZE</B>
</FONT>
@@ -8033,7 +8315,8 @@ lines. If
<FONT SIZE=-1><B>HISTFILESIZE</B>
</FONT>
-is not set, no truncation is performed.
+is unset, or set to null, a non-numeric value,
+or a numeric value less than zero, the history file is not truncated.
<P>
The builtin command
@@ -8248,7 +8531,7 @@ history list starting with
<DT><B>!?</B><I>string</I><B>[?]</B>
<DD>
-Refer to the most recent command preceding the current postition in the
+Refer to the most recent command preceding the current position in the
history list containing
<I>string</I>.
@@ -8319,7 +8602,8 @@ The first argument. That is, word 1.
<DT><B>$</B>
<DD>
-The last argument.
+The last word. This is usually the last argument, but will expand to the
+zeroth word if there is only one word in the line.
<DT><B>%</B>
<DD>
@@ -8367,11 +8651,11 @@ one or more of the following modifiers, each preceded by a `:'.
<DT><B>h</B>
<DD>
-Remove a trailing file name component, leaving only the head.
+Remove a trailing filename component, leaving only the head.
<DT><B>t</B>
<DD>
-Remove all leading file name components, leaving the tail.
+Remove all leading filename components, leaving the tail.
<DT><B>r</B>
<DD>
@@ -8504,7 +8788,7 @@ executed from
If
<I>filename</I>
-does not contain a slash, file names in
+does not contain a slash, filenames in
<FONT SIZE=-1><B>PATH</B>
</FONT>
@@ -8570,7 +8854,7 @@ is not present, the shell's notion of the <I>current job</I> is used.
returns 0 unless run when job control is disabled or, when run with
job control enabled, any specified <I>jobspec</I> was not found
or was started without job control.
-<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] [<B>-lpsvPSV</B>]<DD>
+<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] [<B>-lpsvPSVX</B>]<DD>
<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] [<B>-q</B> <I>function</I>] [<B>-u</B> <I>function</I>] [<B>-r</B> <I>keyseq</I>]<DD>
<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <B>-f</B> <I>filename</I><DD>
@@ -8685,6 +8969,11 @@ or
</FONT>
those new values will be reflected in the editing state.
+<DT><B>-X</B>
+
+<DD>
+List all key sequences bound to shell commands and the associated commands
+in a format that can be reused as input.
</DL>
<P>
@@ -8739,22 +9028,26 @@ current frame is frame 0.
The return value is 0 unless the shell is not executing a subroutine
call or <I>expr</I> does not correspond to a valid position in the
call stack.
-<DT><B>cd</B> [<B>-L</B>|[<B>-P</B> [<B>-e</B>]]] [<I>dir</I>]<DD>
-Change the current directory to <I>dir</I>. The variable
+<DT><B>cd</B> [<B>-L</B>|[<B>-P</B> [<B>-e</B>]] [-@]] [<I>dir</I>]<DD>
+Change the current directory to <I>dir</I>.
+if <I>dir</I> is not supplied, the value of the
<FONT SIZE=-1><B>HOME</B>
</FONT>
-is the
-default
-<I>dir</I>.
-
+shell variable is the default.
+Any additional arguments following <I>dir</I> are ignored.
The variable
<FONT SIZE=-1><B>CDPATH</B>
</FONT>
defines the search path for the directory containing
-<I>dir</I>.
+<I>dir</I>:
+
+each directory name in
+<FONT SIZE=-1><B>CDPATH</B>
+</FONT>
+is searched for <I>dir</I>.
Alternative directory names in
<FONT SIZE=-1><B>CDPATH</B>
@@ -8774,8 +9067,9 @@ then
is not used. The
<B>-P</B>
-option says to use the physical directory structure instead of
-following symbolic links (see also the
+option causes <B>cd</B> to use the physical directory structure
+by resolving symbolic links while traversing <I>dir</I> and
+before processing instances of <I>..</I> in <I>dir</I> (see also the
<B>-P</B>
option to the
@@ -8784,7 +9078,11 @@ option to the
builtin command); the
<B>-L</B>
-option forces symbolic links to be followed.
+option forces symbolic links to be followed by resolving the link
+after processing instances of <I>..</I> in <I>dir</I>.
+If <I>..</I> appears in <I>dir</I>, it is processed by removing the
+immediately previous pathname component from <I>dir</I>, back to a slash
+or the beginning of <I>dir</I>.
If the
<B>-e</B>
@@ -8794,13 +9092,16 @@ option is supplied with
and the current working directory cannot be successfully determined
after a successful directory change, <B>cd</B> will return an unsuccessful
status.
+On systems that support it, the <B>-@</B> option presents the extended
+attributes associated with a file as a directory.
An argument of
<B>-</B>
-is equivalent to
-<FONT SIZE=-1><B>$OLDPWD</B>.
+is converted to
+<FONT SIZE=-1><B>$OLDPWD</B>
</FONT>
+before the directory change is attempted.
If a non-empty directory name from
<FONT SIZE=-1><B>CDPATH</B>
@@ -8846,7 +9147,7 @@ option is supplied, a description of
is printed. The
<B>-v</B>
-option causes a single word indicating the command or file name
+option causes a single word indicating the command or filename
used to invoke
<I>command</I>
@@ -8953,6 +9254,11 @@ Tell readline that the compspec generates filenames, so it can perform any
filename-specific processing (like adding a slash to directory names,
quoting special characters, or suppressing trailing spaces).
Intended to be used with shell functions.
+<DT><B>noquote</B>
+
+<DD>
+Tell readline not to quote the completed words if they are filenames
+(quoting filenames is the default).
<DT><B>nospace</B>
<DD>
@@ -9079,6 +9385,12 @@ used as the possible completions.
<DT><B>-F</B> <I>function</I><DD>
The shell function <I>function</I> is executed in the current shell
environment.
+When the function is executed,
+the first argument (<B>$1</B>) is the name of the command whose arguments are
+being completed,
+the second argument (<B>$2</B>) is the word being completed,
+and the third argument (<B>$3</B>) is the word preceding the word being
+completed on the current command line.
When it finishes, the possible completions are retrieved from the value
of the
<FONT SIZE=-1><B>COMPREPLY</B>
@@ -9162,9 +9474,9 @@ must be >= 1. If
is greater than the number of enclosing loops, the last enclosing loop
(the ``top-level'' loop) is resumed.
The return value is 0 unless <I>n</I> is not greater than or equal to 1.
-<DT><B>declare</B> [<B>-aAfFgilrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
+<DT><B>declare</B> [<B>-aAfFgilnrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
-<DT><B>typeset</B> [<B>-aAfFgilrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
+<DT><B>typeset</B> [<B>-aAfFgilnrtux</B>] [<B>-p</B>] [<I>name</I>[=<I>value</I>] ...]<DD>
Declare variables and/or give them attributes.
If no <I>name</I>s are given then display the values of variables.
@@ -9177,7 +9489,8 @@ option will display the attributes and values of each
When
<B>-p</B>
-is used with <I>name</I> arguments, additional options are ignored.
+is used with <I>name</I> arguments, additional options,
+other than <B>-f</B> and <B>-F</B>, are ignored.
When
<B>-p</B>
@@ -9244,6 +9557,16 @@ above) is performed when the variable is assigned a value.
When the variable is assigned a value, all upper-case characters are
converted to lower-case.
The upper-case attribute is disabled.
+<DT><B>-n</B>
+
+<DD>
+Give each <I>name</I> the <I>nameref</I> attribute, making
+it a name reference to another variable.
+That other variable is defined by the value of <I>name</I>.
+All references and assignments to <I>name</I>, except for changing the
+<B>-n</B> attribute itself, are performed on the variable referenced by
+<I>name</I>'s value.
+The <B>-n</B> attribute cannot be applied to array variables.
<DT><B>-r</B>
<DD>
@@ -9275,14 +9598,23 @@ turns off the attribute instead,
with the exceptions that <B>+a</B>
may not be used to destroy an array variable and <B>+r</B> will not
remove the readonly attribute.
-When used in a function, makes each
-<I>name</I> local, as with the
+When used in a function,
+<B>declare</B>
+
+and
+<B>typeset</B>
+
+make each
+<I>name</I> local, as with the
<B>local</B>
command,
-unless the <B>-gP option is supplied,
-If a variable name is followed by =</B><I>value</I>, the value of
+unless the <B>-g</B> option is supplied.
+If a variable name is followed by =<I>value</I>, the value of
the variable is set to <I>value</I>.
+When using <B>-a</B> or <B>-A</B> and the compound assignment syntax to
+create array variables, additional attributes do not take effect until
+subsequent assignments.
The return value is 0 unless an invalid option is encountered,
an attempt is made to define a function using
@@ -9298,7 +9630,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 <B>-f</B>.
</DL>
-<DT><B>dirs [+</B><I>n</I>] [-<I>n</I>] [<B>-clpv</B>]
+<DT><B>dirs [-clpv</B>] [+<I>n</I>] [-<I>n</I>]
<DD>
Without options, displays the list of currently remembered directories.
@@ -9314,18 +9646,6 @@ command removes entries from the list.
<DL COMPACT><DT><DD>
<DL COMPACT>
-<DT><B>+</B><I>n</I><DD>
-Displays the <I>n</I>th entry counting from the left of the list
-shown by
-<B>dirs</B>
-
-when invoked without options, starting with zero.
-<DT><B>-</B><I>n</I><DD>
-Displays the <I>n</I>th entry counting from the right of the list
-shown by
-<B>dirs</B>
-
-when invoked without options, starting with zero.
<DT><B>-c</B>
<DD>
@@ -9333,8 +9653,8 @@ Clears the directory stack by deleting all of the entries.
<DT><B>-l</B>
<DD>
-Produces a longer listing; the default listing format uses a
-tilde to denote the home directory.
+Produces a listing using full pathnames;
+the default listing format uses a tilde to denote the home directory.
<DT><B>-p</B>
<DD>
@@ -9344,6 +9664,18 @@ Print the directory stack with one entry per line.
<DD>
Print the directory stack with one entry per line,
prefixing each entry with its index in the stack.
+<DT><B>+</B><I>n</I><DD>
+Displays the <I>n</I>th entry counting from the left of the list
+shown by
+<B>dirs</B>
+
+when invoked without options, starting with zero.
+<DT><B>-</B><I>n</I><DD>
+Displays the <I>n</I>th entry counting from the right of the list
+shown by
+<B>dirs</B>
+
+when invoked without options, starting with zero.
</DL>
<P>
@@ -9354,15 +9686,15 @@ of the directory stack.
</DL>
<DT><B>disown</B> [<B>-ar</B>] [<B>-h</B>] [<I>jobspec</I> ...]<DD>
-Without options, each
+Without options, remove each
<I>jobspec</I>
-is removed from the table of active jobs.
+from the table of active jobs.
If
<I>jobspec</I>
-is not present, and neither <B>-a</B> nor <B>-r</B> is supplied,
-the shell's notion of the <I>current job</I> is used.
+is not present, and neither the <B>-a</B> nor the <B>-r</B> option
+is supplied, the <I>current job</I> is used.
If the <B>-h</B> option is given, each
<I>jobspec</I>
@@ -9377,16 +9709,6 @@ is not sent to the job if the shell receives a
If no
<I>jobspec</I>
-is present, and neither the
-<B>-a</B>
-
-nor the
-<B>-r</B>
-
-option is supplied, the <I>current job</I> is used.
-If no
-<I>jobspec</I>
-
is supplied, the
<B>-a</B>
@@ -9403,7 +9725,7 @@ The return value is 0 unless a
does not specify a valid job.
<DT><B>echo</B> [<B>-neE</B>] [<I>arg</I> ...]<DD>
Output the <I>arg</I>s, separated by spaces, followed by a newline.
-The return status is always 0.
+The return status is 0 unless a write error occurs.
If <B>-n</B> is specified, the trailing newline is
suppressed. If the <B>-e</B> option is given, interpretation of
the following backslash-escaped characters is enabled. The
@@ -9581,14 +9903,16 @@ to be executed with an empty environment. If
is supplied, the shell passes
<I>name</I>
-as the zeroth argument to the executed command. If
+as the zeroth argument to the executed command.
+If
<I>command</I>
cannot be executed for some reason, a non-interactive shell exits,
-unless the shell option
+unless the
<B>execfail</B>
-is enabled, in which case it returns failure.
+shell option
+is enabled. In that case, it returns failure.
An interactive shell returns failure if the file cannot be executed.
If
<I>command</I>
@@ -9633,7 +9957,7 @@ are given, or if the
<B>-p</B>
option is supplied, a list
-of all names that are exported in this shell is printed.
+of names of all exported variables is printed.
The
<B>-n</B>
@@ -9656,13 +9980,13 @@ that is not a function.
<DT><B>fc</B> <B>-s</B> [<I>pat</I>=<I>rep</I>] [<I>cmd</I>]<DD>
-Fix Command. In the first form, a range of commands from
+The first form selects a range of commands from
<I>first</I>
to
<I>last</I>
-is selected from the history list.
+from the history list and displays or edits and re-executes them.
<I>First</I>
and
@@ -9731,6 +10055,7 @@ echoed and executed.
<P>
In the second form, <I>command</I> is re-executed after each instance
of <I>pat</I> is replaced by <I>rep</I>.
+<I>Command</I> is intepreted the same as <I>first</I> above.
A useful alias to use with this is
<TT>r='fc -s'</TT>,
@@ -9858,7 +10183,7 @@ can report errors in two ways. If the first character of
is a colon,
<I>silent</I>
-error reporting is used. In normal operation diagnostic messages
+error reporting is used. In normal operation, diagnostic messages
are printed when invalid options or missing option arguments are
encountered.
If the variable
@@ -9936,7 +10261,7 @@ If the
option is supplied, no path search is performed, and
<I>filename</I>
-is used as the full file name of the command.
+is used as the full filename of the command.
The
<B>-r</B>
@@ -9990,11 +10315,14 @@ Display the description of each <I>pattern</I> in a manpage-like format
<DD>
Display only a short usage synopsis for each <I>pattern</I>
-</DL></DL>
+</DL>
+<P>
The return status is 0 unless no command matches
<I>pattern</I>.
+</DL>
+
<DT><B>history [</B><I>n</I>]<DD>
<DT><B>history</B> <B>-c</B><DD>
@@ -10055,11 +10383,11 @@ current <B>bash</B> session.
<DD>
Read the contents of the history file
-and use them as the current history.
+and append them to the current history list.
<DT><B>-w</B>
<DD>
-Write the current history to the history file, overwriting the
+Write the current history list to the history file, overwriting the
history file's contents.
<DT><B>-p</B>
@@ -10126,11 +10454,11 @@ leader.
<DT><B>-r</B>
<DD>
-Restrict output to running jobs.
+Display only running jobs.
<DT><B>-s</B>
<DD>
-Restrict output to stopped jobs.
+Display only stopped jobs.
</DL>
<P>
@@ -10460,10 +10788,13 @@ causes <B>printf</B> to output the corresponding
<DD>
causes <B>printf</B> to output the date-time string resulting from using
-<I>datefmt</I> as a format string for <I>strftime</I>(3). The corresponding
-<I>argument</I> is an integer representing the number of seconds since the
-epoch. Two special argument values may be used: -1 represents the current
+<I>datefmt</I> as a format string for <I>strftime</I>(3).
+The corresponding <I>argument</I> is an integer representing the number of
+seconds since the epoch.
+Two special argument values may be used: -1 represents the current
time, and -2 represents the time the shell was invoked.
+If no argument is specified, conversion behaves as if -1 had been given.
+This is an exception to the usual <B>printf</B> behavior.
</DL>
<P>
@@ -10518,7 +10849,8 @@ Adds
<I>dir</I>
to the directory stack at the top, making it the
-new current working directory.
+new current working directory as if it had been supplied as the argument
+to the <B>cd</B> builtin.
</DL>
<P>
@@ -10583,7 +10915,8 @@ The characters in
<FONT SIZE=-1><B>IFS</B>
</FONT>
-are used to split the line into words.
+are used to split the line into words using the same rules the shell
+uses for expansion (described above under <B>Word Splitting</B>).
The backslash character (<B>\</B>) may be used to remove any special
meaning for the next character read and for line continuation.
Options, if supplied, have the following meanings:
@@ -10666,14 +10999,18 @@ not echoed.
<DD>
Cause <B>read</B> to time out and return failure if a complete line of
-input is not read within <I>timeout</I> seconds.
+input (or a specified number of characters)
+is not read within <I>timeout</I> seconds.
<I>timeout</I> may be a decimal number with a fractional portion following
the decimal point.
This option is only effective if <B>read</B> is reading input from a
terminal, pipe, or other special file; it has no effect when reading
from regular files.
-If <I>timeout</I> is 0, <B>read</B> returns success if input is available on
-the specified file descriptor, failure otherwise.
+If <B>read</B> times out, <B>read</B> saves any partial input read into
+the specified variable <I>name</I>.
+If <I>timeout</I> is 0, <B>read</B> returns immediately, without trying to
+read any data. The exit status is 0 if input is available on
+the specified file descriptor, non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
<DT><B>-u </B><I>fd</I>
@@ -10691,11 +11028,12 @@ are supplied, the line read is assigned to the variable
</FONT>
The return code is zero, unless end-of-file is encountered, <B>read</B>
-times out (in which case the return code is greater than 128), or an
-invalid file descriptor is supplied as the argument to <B>-u</B>.
+times out (in which case the return code is greater than 128),
+a variable assignment error (such as assigning to a readonly variable) occurs,
+or an invalid file descriptor is supplied as the argument to <B>-u</B>.
</DL>
-<DT><B>readonly</B> [<B>-aApf</B>] [<I>name</I>[=<I>word</I>] ...]<DD>
+<DT><B>readonly</B> [<B>-aAf</B>] [<B>-p</B>] [<I>name</I>[=<I>word</I>] ...]<DD>
The given
<I>names</I> are marked readonly; the values of these
@@ -10715,6 +11053,10 @@ option restricts the variables to indexed arrays; the
<B>-A</B>
option restricts the variables to associative arrays.
+If both options are supplied,
+<B>-A</B>
+
+takes precedence.
If no
<I>name</I>
@@ -10722,6 +11064,8 @@ arguments are given, or if the
<B>-p</B>
option is supplied, a list of all readonly names is printed.
+The other options may be used to restrict the output to a subset of
+the set of readonly names.
The
<B>-p</B>
@@ -10741,14 +11085,18 @@ is supplied with a
that is not a function.
<DT><B>return</B> [<I>n</I>]<DD>
-Causes a function to exit with the return value specified by
-<I>n</I>.
+Causes a function to stop executing and return the value specified by
+<I>n</I>
+to its caller.
If
<I>n</I>
is omitted, the return status is that of the last command
-executed in the function body. If used outside a function,
+executed in the function body. If
+<B>return</B>
+
+is used outside a function,
but during execution of a script by the
<B>.</B>
@@ -10757,9 +11105,15 @@ that script and return either
<I>n</I>
or the exit status of the last command executed within the
-script as the exit status of the script. If used outside a
-function and not during execution of a script by <B>.</B>,
-the return status is false.
+script as the exit status of the script.
+If <I>n</I> is supplied, the return value is its least significant
+8 bits.
+The return status is non-zero if
+<B>return</B>
+
+is supplied a non-numeric argument, or
+is used outside a
+function and not during execution of a script by <B>.</B> or <B>source</B>.
Any command associated with the <B>RETURN</B> trap is executed
before execution resumes after the function or script.
<DT><B>set</B> [<B>--abefhkmnptuvxBCEHPT</B>] [<B>-o</B> <I>option-name</I>] [<I>arg</I> ...]<DD>
@@ -10770,7 +11124,7 @@ 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.
Read-only variables cannot be reset.
-In <I>posix mode</I>, only shell variables are listed.
+In <I>posix</I> mode, 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 option processing are treated
@@ -10801,14 +11155,15 @@ effective only when job control is enabled.
<DT><B>-e</B>
<DD>
-Exit immediately if a <I>pipeline</I> (which may consist of a single
-<I>simple command</I>), a <I>subshell</I> command enclosed in parentheses,
-or one of the commands executed as part of a command list enclosed
-by braces (see
+Exit immediately if a
+<I>pipeline</I> (which may consist of a single <I>simple command</I>),
+a <I>list</I>,
+or a <I>compound command</I>
+(see
<FONT SIZE=-1><B>SHELL GRAMMAR</B>
</FONT>
-above) exits with a non-zero status.
+above), exits with a non-zero status.
The shell does not exit if the
command that fails is part of the command list immediately following a
<B>while</B>
@@ -10835,6 +11190,9 @@ or if the command's return value is
being inverted with
<B>!</B>.
+If a compound command other than a subshell
+returns a non-zero status because a command failed
+while <B>-e</B> was being ignored, the shell does not exit.
A trap on <B>ERR</B>, if set, is executed before the shell exits.
This option applies to the shell environment and each subshell environment
separately (see
@@ -10843,6 +11201,18 @@ separately (see
</FONT>
above), and may cause
subshells to exit before executing all the commands in the subshell.
+<P>
+
+
+If a compound command or shell function executes in a context
+where <B>-e</B> is being ignored,
+none of the commands executed within the compound command or function body
+will be affected by the <B>-e</B> setting, even if <B>-e</B> is set
+and a command returns a failure status.
+If a compound command or shell function sets <B>-e</B> while executing in
+a context where <B>-e</B> is ignored, that setting will not have any
+effect until the compound command or the command containing the function
+call completes.
<DT><B>-f</B>
<DD>
@@ -10867,9 +11237,10 @@ it (see
<FONT SIZE=-1><B>JOB CONTROL</B>
</FONT>
-above). Background processes run in a separate process
-group and a line containing their exit status is printed
-upon their completion.
+above).
+All processes run in a separate process group.
+When a background job completes, the shell prints a line
+containing its exit status.
<DT><B>-n</B>
<DD>
@@ -11026,6 +11397,12 @@ Change the behavior of
where the default operation differs
from the POSIX standard to match the standard (<I>posix mode</I>).
+See
+<FONT SIZE=-1><B>SEE ALSO</B>
+
+</FONT>
+below for a reference to a document that details how posix mode affects
+bash's behavior.
<DT><B>privileged</B>
<DD>
@@ -11177,7 +11554,7 @@ default when the shell is interactive.
<DT><B>-P</B>
<DD>
-If set, the shell does not follow symbolic links when executing
+If set, the shell does not resolve symbolic links when executing
commands such as
<B>cd</B>
@@ -11261,7 +11638,14 @@ is greater than
or less than zero; otherwise 0.
<DT><B>shopt</B> [<B>-pqsu</B>] [<B>-o</B>] [<I>optname</I> ...]<DD>
-Toggle the values of variables controlling optional shell behavior.
+Toggle the values of settings controlling optional shell behavior.
+The settings can be either those listed below, or, if the
+<B>-o</B>
+
+option is used, those available with the
+<B>-o</B>
+
+option to the <B>set</B> builtin command.
With no options, or with the
<B>-p</B>
@@ -11311,8 +11695,10 @@ If either
or
<B>-u</B>
-is used with no <I>optname</I> arguments, the display is limited to
-those options which are set or unset, respectively.
+is used with no <I>optname</I> arguments,
+<B>shopt</B>
+
+shows only those options which are set or unset, respectively.
Unless otherwise noted, the <B>shopt</B> options are disabled (unset)
by default.
<P>
@@ -11353,7 +11739,7 @@ If set, minor errors in the spelling of a directory component in a
command will be corrected.
The errors checked for are transposed characters,
a missing character, and one character too many.
-If a correction is found, the corrected file name is printed,
+If a correction is found, the corrected filename is printed,
and the command proceeds.
This option is only used by interactive shells.
<DT><B>checkhash</B>
@@ -11402,23 +11788,24 @@ If set,
<B>bash</B>
changes its behavior to that of version 3.1 with respect to quoted
-arguments to the <B>[[</B> conditional command's <B>=~</B> operator.
-<DT><B>compat32</B>
-
-<DD>
-If set,
-<B>bash</B>
-
-changes its behavior to that of version 3.2 with respect to locale-specific
-string comparison when using the <B>[[</B>
+arguments to the <B>[[</B> conditional command's <B>=~</B> operator
+and locale-specific string comparison when using the <B>[[</B>
conditional command's <B>&lt;</B> and <B>&gt;</B> operators.
Bash versions prior to bash-4.1 use ASCII collation and
<I>strcmp</I>(3);
-bash-4.1 and later
-use the current locale's collation sequence and
+bash-4.1 and later use the current locale's collation sequence and
<I>strcoll</I>(3).
+<DT><B>compat32</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+changes its behavior to that of version 3.2 with respect to
+locale-specific string comparison when using the <B>[[</B>
+conditional command's <B>&lt;</B> and <B>&gt;</B> operators (see previous item).
<DT><B>compat40</B>
<DD>
@@ -11427,20 +11814,65 @@ If set,
changes its behavior to that of version 4.0 with respect to locale-specific
string comparison when using the <B>[[</B>
-conditional command's <B>&lt;</B> and <B>&gt;</B> operators (see previous item)
+conditional command's <B>&lt;</B> and <B>&gt;</B> operators (see description of
+<B>compat31</B>)
and the effect of interrupting a command list.
+Bash versions 4.0 and later interrupt the list as if the shell received the
+interrupt; previous versions continue with the next command in the list.
<DT><B>compat41</B>
<DD>
-@item compat41
If set,
<B>bash</B>,
-when in posix mode, treats a single quote in a double-quoted
+when in <I>posix</I> mode, treats a single quote in a double-quoted
parameter expansion as a special character. The single quotes must match
(an even number) and the characters between the single quotes are considered
quoted. This is the behavior of posix mode through version 4.1.
The default bash behavior remains as in previous versions.
+<DT><B>compat42</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+does not process the replacement string in the pattern substitution word
+expansion using quote removal.
+<DT><B>complete_fullquote</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+quotes all shell metacharacters in filenames and directory names when
+performing completion.
+If not set,
+<B>bash</B>
+
+removes metacharacters such as the dollar sign from the set of
+characters that will be quoted in completed filenames
+when these metacharacters appear in shell variable references in words to be
+completed.
+This means that dollar signs in variable names that expand to directories
+will not be quoted;
+however, any dollar signs appearing in filenames will not be quoted, either.
+This is active only when bash is using backslashes to quote completed
+filenames.
+This variable is set by default, which is the default bash behavior in
+versions through 4.2.
+<DT><B>direxpand</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+replaces directory names with the results of word expansion when performing
+filename completion. This changes the contents of the readline editing
+buffer.
+If not set,
+<B>bash</B>
+
+attempts to preserve what the user typed.
<DT><B>dirspell</B>
<DD>
@@ -11558,11 +11990,30 @@ above for a description of
</FONT>
This option is enabled by default.
+<DT><B>globasciiranges</B>
+
+<DD>
+If set, range expressions used in pattern matching bracket expressions (see
+<FONT SIZE=-1><B>Pattern Matching</B>
+
+</FONT>
+above) behave as if in the traditional C locale when performing
+comparisons. That is, the current locale's collating sequence
+is not taken into account, so
+<B>b</B>
+
+will not collate between
+<B>A</B>
+
+and
+<B>B</B>,
+
+and upper-case and lower-case ASCII characters will collate together.
<DT><B>globstar</B>
<DD>
If set, the pattern <B>**</B> used in a pathname expansion context will
-match a files and zero or more directories and subdirectories.
+match all files and zero or more directories and subdirectories.
If the pattern is followed by a <B>/</B>, only directories and
subdirectories match.
<DT><B>gnu_errfmt</B>
@@ -11758,6 +12209,7 @@ If set, the <B>echo</B> builtin expands backslash-escape sequences
by default.
</DL></DL>
+
<DT><B>suspend</B> [<B>-f</B>]<DD>
Suspend the execution of this shell until it receives a
<FONT SIZE=-1><B>SIGCONT</B>
@@ -11774,7 +12226,7 @@ is not supplied, or if job control is not enabled.
<DT><B>test</B> <I>expr</I><DD>
<DT><B>[</B> <I>expr</I> <B>]</B><DD>
-Return a status of 0 or 1 depending on
+Return a status of 0 (true) or 1 (false) depending on
the evaluation of the conditional expression
<I>expr</I>.
@@ -12004,7 +12456,10 @@ is
the command
<I>arg</I>
-is executed whenever a simple command has a non-zero exit status,
+is executed whenever a
+a pipeline (which may consist of a single simple
+command), a list, or a compound command returns a
+non-zero exit status,
subject to the following conditions.
The
<FONT SIZE=-1><B>ERR</B>
@@ -12027,11 +12482,13 @@ statement, part of a command executed in a
or
<B>||</B>
-list, or if the command's return value is
-being inverted via
+list except the command following the final <B>&amp;&amp;</B> or <B>||</B>,
+any command in a pipeline but the last,
+or if the command's return value is
+being inverted using
<B>!</B>.
-These are the same conditions obeyed by the <B>errexit</B> option.
+These are the same conditions obeyed by the <B>errexit</B> (<B>-e</B>) option.
<P>
@@ -12115,7 +12572,7 @@ If a command is hashed,
and
<B>-P</B>
-print the hashed value, not necessarily the file that appears
+print the hashed value, which is not necessarily the file that appears
first in
<FONT SIZE=-1><B>PATH</B>.
@@ -12265,20 +12722,21 @@ The maximum number of threads
If
<I>limit</I>
-is given, it is the new value of the specified resource (the
+is given, and the
<B>-a</B>
-option is display only).
+option is not used,
+<I>limit</I> is the new value of the specified resource.
If no option is given, then
<B>-f</B>
is assumed. Values are in 1024-byte increments, except for
<B>-t</B>,
-which is in seconds,
+which is in seconds;
<B>-p</B>,
-which is in units of 512-byte blocks,
+which is in units of 512-byte blocks;
and
<B>-T</B>,
@@ -12334,18 +12792,18 @@ value is true unless a supplied
<I>name</I>
is not a defined alias.
-<DT><B>unset</B> [-<B>fv</B>] [<I>name</I> ...]<DD>
+<DT><B>unset</B> [-<B>fv</B>] [-<B>n</B>] [<I>name</I> ...]<DD>
For each
<I>name</I>,
remove the corresponding variable or function.
-If no options are supplied, or the
+If the
<B>-v</B>
option is given, each
<I>name</I>
-refers to a shell variable.
+refers to a shell variable, and that variable is removed.
Read-only variables may not be unset.
If
<B>-f</B>
@@ -12355,6 +12813,16 @@ is specified, each
refers to a shell function, and the function definition
is removed.
+If the
+<B>-n</B>
+
+option is supplied, and <I>name</I> is a variable with the <I>nameref</I>
+attribute, <I>name</I> will be unset rather than the variable it
+references.
+<B>-n</B> has no effect if the <B>-f</B> option is supplied.
+If no options are supplied, each <I>name</I> refers to a variable; if
+there is no variable by that name, any function with that name is
+unset.
Each unset variable or function is removed from the environment
passed to subsequent commands.
If any of
@@ -12388,8 +12856,8 @@ subsequently reset. The exit status is true unless a
<I>name</I>
is readonly.
-<DT><B>wait</B> [<I>n ...</I>]<DD>
-Wait for each specified process and return its termination status.
+<DT><B>wait</B> [<B>-n</B>] [<I>n ...</I>]<DD>
+Wait for each specified child process and return its termination status.
Each
<I>n</I>
@@ -12399,7 +12867,10 @@ in that job's pipeline are waited for. If
<I>n</I>
is not given, all currently active child processes
-are waited for, and the return status is zero. If
+are waited for, and the return status is zero.
+If the <B>-n</B> option is supplied, <B>wait</B> waits for any job to
+terminate and returns its exit status.
+If
<I>n</I>
specifies a non-existent process or job, the return status is
@@ -12455,7 +12926,7 @@ specifying command names containing
<B>/</B>
<DT>*<DD>
-specifying a file name containing a
+specifying a filename containing a
<B>/</B>
as an argument to the
@@ -12538,7 +13009,9 @@ script.
<DT><I>Bash Reference Manual</I>, Brian Fox and Chet Ramey<DD>
<DT><I>The Gnu Readline Library</I>, Brian Fox and Chet Ramey<DD>
<DT><I>The Gnu History Library</I>, Brian Fox and Chet Ramey<DD>
-<DT><I>Portable Operating System Interface (POSIX) Part 2: Shell and Utilities</I>, IEEE<DD>
+<DT><I>Portable Operating System Interface (POSIX) Part 2: Shell and Utilities</I>, IEEE --<DD>
+<A HREF="http://pubs.opengroup.org/onlinepubs/9699919799/">http://pubs.opengroup.org/onlinepubs/9699919799/</A>
+<DT><A HREF="http://tiswww.case.edu/~chet/bash/POSIX">http://tiswww.case.edu/~chet/bash/POSIX</A> -- a description of posix mode<DD>
<DT><I>sh</I>(1), <I>ksh</I>(1), <I>csh</I>(1)<DD>
<DT><I>emacs</I>(1), <I>vi</I>(1)<DD>
<DT><I>readline</I>(3)<DD>
@@ -12643,7 +13116,7 @@ it provides for filing a bug report.
Comments and bug reports concerning
this manual page should be directed to
-<I><A HREF="mailto:chet@po.cwru.edu">chet@po.cwru.edu</A></I>.
+<I><A HREF="mailto:chet.ramey@case.edu">chet.ramey@case.edu</A></I>.
<A NAME="lbDH">&nbsp;</A>
<H3>BUGS</H3>
@@ -12691,7 +13164,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>GNU Bash-4.2<TH ALIGN=CENTER width=33%>2010 December 28<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash 4.3<TH ALIGN=CENTER width=33%>2014 February 2<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -12797,6 +13270,6 @@ There may be only one active coprocess at a time.
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
-Time: 28 December 2010 14:30:29 EST
+Time: 24 February 2014 08:28:34 EST
</BODY>
</HTML>
diff --git a/doc/bash.pdf b/doc/bash.pdf
index 5bcb0c55..fbc1fde7 100644
--- a/doc/bash.pdf
+++ b/doc/bash.pdf
Binary files differ
diff --git a/doc/bash.ps b/doc/bash.ps
index fb9aa8c5..27ff5801 100644
--- a/doc/bash.ps
+++ b/doc/bash.ps
@@ -1,15 +1,15 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Fri Jan 28 22:07:07 2011
+%%CreationDate: Tue Feb 11 10:59:21 2014
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
%%+ font Symbol
%%DocumentSuppliedResources: procset grops 1.19 2
-%%Pages: 72
+%%Pages: 75
%%PageOrder: Ascend
-%%DocumentMedia: Default 595 842 0 () ()
+%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
@@ -191,7 +191,7 @@ setpacking
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
-<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
@@ -199,11 +199,11 @@ setpacking
%%IncludeResource: font Courier
%%IncludeResource: font Symbol
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
-/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
@@ -236,11 +236,11 @@ BP
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
-.35 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
(bash \255 GNU Bourne-Ag)108 96 Q(ain SHell)-.05 E F1(SYNOPSIS)72 112.8
-Q/F2 10/Times-Bold@0 SF(bash)108 124.8 Q F0([options] [\214le])2.5 E F1
-(COPYRIGHT)72 141.6 Q F0(Bash is Cop)108 153.6 Q
-(yright \251 1989-2011 by the Free Softw)-.1 E(are F)-.1 E
-(oundation, Inc.)-.15 E F1(DESCRIPTION)72 170.4 Q F2(Bash)108 182.4 Q F0
-.973(is an)3.474 F F2(sh)3.473 E F0 .973
+Q/F2 10/Times-Bold@0 SF(bash)108 124.8 Q F0
+([options] [command_string | \214le])2.5 E F1(COPYRIGHT)72 141.6 Q F0
+(Bash is Cop)108 153.6 Q(yright \251 1989-2013 by the Free Softw)-.1 E
+(are F)-.1 E(oundation, Inc.)-.15 E F1(DESCRIPTION)72 170.4 Q F2(Bash)
+108 182.4 Q F0 .973(is an)3.474 F F2(sh)3.473 E F0 .973
(-compatible command language interpreter that e)B -.15(xe)-.15 G .973
(cutes commands read from the standard).15 F(input or from a \214le.)108
194.4 Q F2(Bash)5 E F0(also incorporates useful features from the)2.5 E
@@ -256,2152 +256,2338 @@ ell and Utilities portion of the IEEE POSIX)3.027 F
1.284(used as options when the shell is in)108 264 R -.2(vo)-.4 G -.1
(ke).2 G 3.785(d. In).1 F(addition,)3.785 E F2(bash)3.785 E F0 1.285
(interprets the follo)3.785 F 1.285(wing options when it is)-.25 F(in)
-108 276 Q -.2(vo)-.4 G -.1(ke).2 G(d:).1 E F2<ad63>108 292.8 Q F3
-(string)4.166 E F0 .797(If the)12.354 F F2<ad63>3.297 E F0 .796
-(option is present, then commands are read from)3.297 F F3(string)3.296
-E F0 5.796(.I).22 G 3.296(ft)-5.796 G .796(here are ar)-3.296 F .796
-(guments after)-.18 F(the)158 304.8 Q F3(string)2.5 E F0 2.5(,t).22 G
-(he)-2.5 E 2.5(ya)-.15 G
-(re assigned to the positional parameters, starting with)-2.5 E F2($0)
-2.5 E F0(.)A F2<ad69>108 316.8 Q F0(If the)41.52 E F2<ad69>2.5 E F0
-(option is present, the shell is)2.5 E F3(inter)2.5 E(active)-.15 E F0
-(.).18 E F2<ad6c>108 328.8 Q F0(Mak)41.52 E(e)-.1 E F2(bash)2.5 E F0
-(act as if it had been in)2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1 G 2.5
-(sal)-2.5 G(ogin shell \(see)-2.5 E/F4 9/Times-Bold@0 SF(INV)2.5 E(OCA)
--.405 E(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2<ad72>108 340.8 Q F0
-(If the)39.86 E F2<ad72>2.5 E F0(option is present, the shell becomes)
-2.5 E F3 -.37(re)2.5 G(stricted).37 E F0(\(see)3.27 E F4
-(RESTRICTED SHELL)2.5 E F0(belo)2.25 E(w\).)-.25 E F2<ad73>108 352.8 Q
-F0 .602(If the)40.41 F F2<ad73>3.102 E F0 .602
+108 276 Q -.2(vo)-.4 G -.1(ke).2 G(d:).1 E F2<ad63>108 292.8 Q F0 .881
+(If the)39.86 F F2<ad63>3.381 E F0 .881(option is present, then command\
+s are read from the \214rst non-option ar)3.381 F(gument)-.18 E F3(com-)
+3.38 E(mand_string)158 304.8 Q F0 5.706(.I).22 G 3.206(ft)-5.706 G .706
+(here are ar)-3.206 F .706(guments after the)-.18 F F3(command_string)
+3.206 E F0 3.206(,t).22 G(he)-3.206 E 3.206(ya)-.15 G .706
+(re assigned to the posi-)-3.206 F(tional parameters, starting with)158
+316.8 Q F2($0)2.5 E F0(.)A F2<ad69>108 328.8 Q F0(If the)41.52 E F2
+<ad69>2.5 E F0(option is present, the shell is)2.5 E F3(inter)2.5 E
+(active)-.15 E F0(.).18 E F2<ad6c>108 340.8 Q F0(Mak)41.52 E(e)-.1 E F2
+(bash)2.5 E F0(act as if it had been in)2.5 E -.2(vo)-.4 G -.1(ke).2 G
+2.5(da).1 G 2.5(sal)-2.5 G(ogin shell \(see)-2.5 E/F4 9/Times-Bold@0 SF
+(INV)2.5 E(OCA)-.405 E(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2<ad72>
+108 352.8 Q F0(If the)39.86 E F2<ad72>2.5 E F0
+(option is present, the shell becomes)2.5 E F3 -.37(re)2.5 G(stricted)
+.37 E F0(\(see)3.27 E F4(RESTRICTED SHELL)2.5 E F0(belo)2.25 E(w\).)-.25
+E F2<ad73>108 364.8 Q F0 .602(If the)40.41 F F2<ad73>3.102 E F0 .602
(option is present, or if no ar)3.102 F .602
-(guments remain after option processing, then commands)-.18 F .617
-(are read from the standard input.)158 364.8 R .617(This option allo)
-5.617 F .616(ws the positional parameters to be set when)-.25 F(in)158
-376.8 Q -.2(vo)-.4 G(king an interacti).2 E .3 -.15(ve s)-.25 H(hell.)
-.15 E F2<ad44>108 388.8 Q F0 3.183(Al)37.08 G .683
-(ist of all double-quoted strings preceded by)-3.183 F F2($)3.184 E F0
-.684(is printed on the standard output.)3.184 F .684(These are)5.684 F
+(guments remain after option processing, then commands)-.18 F .616
+(are read from the standard input.)158 376.8 R .617(This option allo)
+5.617 F .617(ws the positional parameters to be set when)-.25 F(in)158
+388.8 Q -.2(vo)-.4 G(king an interacti).2 E .3 -.15(ve s)-.25 H(hell.)
+.15 E F2<ad44>108 400.8 Q F0 3.184(Al)37.08 G .684
+(ist of all double-quoted strings preceded by)-3.184 F F2($)3.184 E F0
+.684(is printed on the standard output.)3.184 F .683(These are)5.683 F
.458(the strings that are subject to language translation when the curr\
-ent locale is not)158 400.8 R F2(C)2.958 E F0(or)2.958 E F2(POSIX)2.958
-E F0(.)A(This implies the)158 412.8 Q F2<ad6e>2.5 E F0
+ent locale is not)158 412.8 R F2(C)2.958 E F0(or)2.959 E F2(POSIX)2.959
+E F0(.)A(This implies the)158 424.8 Q F2<ad6e>2.5 E F0
(option; no commands will be e)2.5 E -.15(xe)-.15 G(cuted.).15 E F2
-([\255+]O [)108 424.8 Q F3(shopt_option)A F2(])A F3(shopt_option)158
-436.8 Q F0 1.097(is one of the shell options accepted by the)3.596 F F2
-(shopt)3.597 E F0 -.2(bu)3.597 G 1.097(iltin \(see).2 F F4 1.097
-(SHELL B)3.597 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)158 448.8 Q F0(belo)
-3.003 E 3.253(w\). If)-.25 F F3(shopt_option)3.253 E F0 .753
+([\255+]O [)108 436.8 Q F3(shopt_option)A F2(])A F3(shopt_option)158
+448.8 Q F0 1.097(is one of the shell options accepted by the)3.597 F F2
+(shopt)3.597 E F0 -.2(bu)3.597 G 1.097(iltin \(see).2 F F4 1.096
+(SHELL B)3.596 F(UIL)-.09 E(TIN)-.828 E(COMMANDS)158 460.8 Q F0(belo)
+3.002 E 3.252(w\). If)-.25 F F3(shopt_option)3.253 E F0 .753
(is present,)3.253 F F2<ad4f>3.253 E F0 .753(sets the v)3.253 F .753
-(alue of that option;)-.25 F F2(+O)3.252 E F0(unsets)3.252 E 2.624
-(it. If)158 460.8 R F3(shopt_option)2.624 E F0 .124
-(is not supplied, the names and v)2.624 F .125
-(alues of the shell options accepted by)-.25 F F2(shopt)2.625 E F0 .506
-(are printed on the standard output.)158 472.8 R .505(If the in)5.505 F
--.2(vo)-.4 G .505(cation option is).2 F F2(+O)3.005 E F0 3.005(,t)C .505
+(alue of that option;)-.25 F F2(+O)3.253 E F0(unsets)3.253 E 2.625
+(it. If)158 472.8 R F3(shopt_option)2.625 E F0 .125
+(is not supplied, the names and v)2.625 F .124
+(alues of the shell options accepted by)-.25 F F2(shopt)2.624 E F0 .505
+(are printed on the standard output.)158 484.8 R .505(If the in)5.505 F
+-.2(vo)-.4 G .505(cation option is).2 F F2(+O)3.005 E F0 3.005(,t)C .506
(he output is displayed in a)-3.005 F
-(format that may be reused as input.)158 484.8 Q F2<adad>108 496.8 Q F0
-(A)38.6 E F2<adad>3.363 E F0 .864
+(format that may be reused as input.)158 496.8 Q F2<adad>108 508.8 Q F0
+(A)38.6 E F2<adad>3.364 E F0 .864
(signals the end of options and disables further option processing.)
-3.363 F(An)5.864 E 3.364(ya)-.15 G -.18(rg)-3.364 G .864(uments after)
-.18 F(the)158 508.8 Q F2<adad>2.5 E F0
+3.364 F(An)5.863 E 3.363(ya)-.15 G -.18(rg)-3.363 G .863(uments after)
+.18 F(the)158 520.8 Q F2<adad>2.5 E F0
(are treated as \214lenames and ar)2.5 E 2.5(guments. An)-.18 F(ar)2.5 E
(gument of)-.18 E F2<ad>2.5 E F0(is equi)2.5 E -.25(va)-.25 G(lent to)
-.25 E F2<adad>2.5 E F0(.)A F2(Bash)108 525.6 Q F0 .304
-(also interprets a number of multi-character options.)2.804 F .303
+.25 E F2<adad>2.5 E F0(.)A F2(Bash)108 537.6 Q F0 .303
+(also interprets a number of multi-character options.)2.803 F .304
(These options must appear on the command line)5.303 F
-(before the single-character options to be recognized.)108 537.6 Q F2
-<adad646562>108 554.4 Q(ugger)-.2 E F0 .474(Arrange for the deb)144
-566.4 R .474(ugger pro\214le to be e)-.2 F -.15(xe)-.15 G .475
-(cuted before the shell starts.).15 F -.45(Tu)5.475 G .475(rns on e).45
-F .475(xtended deb)-.15 F(ug-)-.2 E
-(ging mode \(see the description of the)144 578.4 Q F2(extdeb)2.5 E(ug)
+(before the single-character options to be recognized.)108 549.6 Q F2
+<adad646562>108 566.4 Q(ugger)-.2 E F0 .475(Arrange for the deb)144
+578.4 R .475(ugger pro\214le to be e)-.2 F -.15(xe)-.15 G .475
+(cuted before the shell starts.).15 F -.45(Tu)5.474 G .474(rns on e).45
+F .474(xtended deb)-.15 F(ug-)-.2 E
+(ging mode \(see the description of the)144 590.4 Q F2(extdeb)2.5 E(ug)
-.2 E F0(option to the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo)
-.2 E(w\).)-.25 E F2(\255\255dump\255po\255strings)108 590.4 Q F0(Equi)
-144 602.4 Q -.25(va)-.25 G(lent to).25 E F2<ad44>2.5 E F0 2.5(,b)C
+.2 E(w\).)-.25 E F2(\255\255dump\255po\255strings)108 602.4 Q F0(Equi)
+144 614.4 Q -.25(va)-.25 G(lent to).25 E F2<ad44>2.5 E F0 2.5(,b)C
(ut the output is in the GNU)-2.7 E F3 -.1(ge)2.5 G(tte).1 E(xt)-.2 E F2
(po)2.5 E F0(\(portable object\) \214le format.)2.5 E F2
-(\255\255dump\255strings)108 614.4 Q F0(Equi)144 626.4 Q -.25(va)-.25 G
-(lent to).25 E F2<ad44>2.5 E F0(.)A F2(\255\255help)108 638.4 Q F0
+(\255\255dump\255strings)108 626.4 Q F0(Equi)144 638.4 Q -.25(va)-.25 G
+(lent to).25 E F2<ad44>2.5 E F0(.)A F2(\255\255help)108 650.4 Q F0
(Display a usage message on standard output and e)6.26 E
-(xit successfully)-.15 E(.)-.65 E F2<adad696e6974ad8c6c65>108 650.4 Q F3
-(\214le)2.5 E F2<adad72>108 662.4 Q(c\214le)-.18 E F3(\214le)2.5 E F0
-(Ex)144 674.4 Q 1.599(ecute commands from)-.15 F F3(\214le)6.009 E F0
-1.598(instead of the standard personal initialization \214le)4.279 F F3
-(~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti)
-144 686.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
-(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E F2(\255\255login)108 703.2 Q F0
-(Equi)144 715.2 Q -.25(va)-.25 G(lent to).25 E F2<ad6c>2.5 E F0(.)A
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(1)190.955 E 0 Cg EP
+(xit successfully)-.15 E(.)-.65 E F2<adad696e6974ad8c6c65>108 662.4 Q F3
+(\214le)2.5 E F2<adad72>108 674.4 Q(c\214le)-.18 E F3(\214le)2.5 E F0
+(Ex)144 686.4 Q 1.598(ecute commands from)-.15 F F3(\214le)6.008 E F0
+1.598(instead of the standard personal initialization \214le)4.278 F F3
+(~/.bashr)3.599 E(c)-.37 E F0 1.599(if the)4.409 F(shell is interacti)
+144 698.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
+(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(1)195.95 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(\255\255noediting)108 84 Q F0
-(Do not use the GNU)144 96 Q F1 -.18(re)2.5 G(adline).18 E F0
-(library to read command lines when the shell is interacti)2.5 E -.15
-(ve)-.25 G(.).15 E F1(\255\255nopr)108 112.8 Q(o\214le)-.18 E F0 .017
-(Do not read either the system-wide startup \214le)144 124.8 R/F2 10
+-.35 E/F1 10/Times-Bold@0 SF(\255\255login)108 84 Q F0(Equi)144 96 Q
+-.25(va)-.25 G(lent to).25 E F1<ad6c>2.5 E F0(.)A F1(\255\255noediting)
+108 112.8 Q F0(Do not use the GNU)144 124.8 Q F1 -.18(re)2.5 G(adline)
+.18 E F0(library to read command lines when the shell is interacti)2.5 E
+-.15(ve)-.25 G(.).15 E F1(\255\255nopr)108 141.6 Q(o\214le)-.18 E F0
+.017(Do not read either the system-wide startup \214le)144 153.6 R/F2 10
/Times-Italic@0 SF(/etc/pr)4.183 E(o\214le)-.45 E F0 .017(or an)4.183 F
-2.517(yo)-.15 G 2.517(ft)-2.517 G .018
-(he personal initialization \214les)-2.517 F F2(~/.bash_pr)144 136.8 Q
-(o\214le)-.45 E F0(,).18 E F2(~/.bash_lo)2.698 E(gin)-.1 E F0 2.698(,o)
-.24 G(r)-2.698 E F2(~/.pr)2.698 E(o\214le)-.45 E F0 5.198(.B).18 G 2.698
+2.517(yo)-.15 G 2.517(ft)-2.517 G .017
+(he personal initialization \214les)-2.517 F F2(~/.bash_pr)144 165.6 Q
+(o\214le)-.45 E F0(,).18 E F2(~/.bash_lo)2.697 E(gin)-.1 E F0 2.697(,o)
+.24 G(r)-2.697 E F2(~/.pr)2.698 E(o\214le)-.45 E F0 5.198(.B).18 G 2.698
(yd)-5.198 G(ef)-2.698 E(ault,)-.1 E F1(bash)2.698 E F0 .198
(reads these \214les when it is in)2.698 F -.2(vo)-.4 G -.1(ke).2 G
-2.697(da).1 G(s)-2.697 E 2.5(al)144 148.8 S(ogin shell \(see)-2.5 E/F3 9
+2.698(da).1 G(s)-2.698 E 2.5(al)144 177.6 S(ogin shell \(see)-2.5 E/F3 9
/Times-Bold@0 SF(INV)2.5 E(OCA)-.405 E(TION)-.855 E F0(belo)2.25 E(w\).)
--.25 E F1<adad6e6f72>108 165.6 Q(c)-.18 E F0 1.228(Do not read and e)
+-.25 E F1<adad6e6f72>108 194.4 Q(c)-.18 E F0 1.228(Do not read and e)
5.34 F -.15(xe)-.15 G 1.228(cute the personal initialization \214le).15
F F2(~/.bashr)3.228 E(c)-.37 E F0 1.228(if the shell is interacti)4.038
F -.15(ve)-.25 G 6.228(.T).15 G(his)-6.228 E(option is on by def)144
-177.6 Q(ault if the shell is in)-.1 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1
-G(s)-2.5 E F1(sh)2.5 E F0(.)A F1(\255\255posix)108 194.4 Q F0 1.783
-(Change the beha)144 206.4 R 1.782(vior of)-.2 F F1(bash)4.282 E F0
+206.4 Q(ault if the shell is in)-.1 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1
+G(s)-2.5 E F1(sh)2.5 E F0(.)A F1(\255\255posix)108 223.2 Q F0 1.782
+(Change the beha)144 235.2 R 1.782(vior of)-.2 F F1(bash)4.282 E F0
1.782(where the def)4.282 F 1.782(ault operation dif)-.1 F 1.782
-(fers from the POSIX standard to)-.25 F(match the standard \()144 218.4
-Q F2(posix mode)A F0(\).)A F1<adad72>108 235.2 Q(estricted)-.18 E F0
-(The shell becomes restricted \(see)144 247.2 Q F3(RESTRICTED SHELL)2.5
-E F0(belo)2.25 E(w\).)-.25 E F1<adad76>108 264 Q(erbose)-.1 E F0(Equi)
-144 276 Q -.25(va)-.25 G(lent to).25 E F1<ad76>5 E F0(.)A F1<adad76>108
-292.8 Q(ersion)-.1 E F0(Sho)144 304.8 Q 2.5(wv)-.25 G
+(fers from the POSIX standard to)-.25 F .333(match the standard \()144
+247.2 R F2 .333(posix mode)B F0 2.833(\). See)B F3 .333(SEE ALSO)2.833 F
+F0(belo)2.583 E 2.833(wf)-.25 G .332
+(or a reference to a document that details)-2.833 F(ho)144 259.2 Q 2.5
+(wp)-.25 G(osix mode af)-2.5 E(fects bash')-.25 E 2.5(sb)-.55 G(eha)-2.5
+E(vior)-.2 E(.)-.55 E F1<adad72>108 276 Q(estricted)-.18 E F0
+(The shell becomes restricted \(see)144 288 Q F3(RESTRICTED SHELL)2.5 E
+F0(belo)2.25 E(w\).)-.25 E F1<adad76>108 304.8 Q(erbose)-.1 E F0(Equi)
+144 316.8 Q -.25(va)-.25 G(lent to).25 E F1<ad76>5 E F0(.)A F1<adad76>
+108 333.6 Q(ersion)-.1 E F0(Sho)144 345.6 Q 2.5(wv)-.25 G
(ersion information for this instance of)-2.65 E F1(bash)2.5 E F0
(on the standard output and e)2.5 E(xit successfully)-.15 E(.)-.65 E/F4
-10.95/Times-Bold@0 SF(ARGUMENTS)72 321.6 Q F0 .016(If ar)108 333.6 R
+10.95/Times-Bold@0 SF(ARGUMENTS)72 362.4 Q F0 .016(If ar)108 374.4 R
.016(guments remain after option processing, and neither the)-.18 F F1
<ad63>2.516 E F0 .016(nor the)2.516 F F1<ad73>2.516 E F0 .016
-(option has been supplied, the \214rst)2.516 F(ar)108 345.6 Q .041(gume\
+(option has been supplied, the \214rst)2.516 F(ar)108 386.4 Q .041(gume\
nt is assumed to be the name of a \214le containing shell commands.)-.18
F(If)5.041 E F1(bash)2.541 E F0 .041(is in)2.541 F -.2(vo)-.4 G -.1(ke)
.2 G 2.541(di).1 G 2.541(nt)-2.541 G .041(his f)-2.541 F(ashion,)-.1 E
-F1($0)108 357.6 Q F0 .936(is set to the name of the \214le, and the pos\
+F1($0)108 398.4 Q F0 .936(is set to the name of the \214le, and the pos\
itional parameters are set to the remaining ar)3.435 F(guments.)-.18 E
-F1(Bash)5.936 E F0 .234(reads and e)108 369.6 R -.15(xe)-.15 G .234
+F1(Bash)5.936 E F0 .234(reads and e)108 410.4 R -.15(xe)-.15 G .234
(cutes commands from this \214le, then e).15 F(xits.)-.15 E F1(Bash)
5.234 E F0 1.334 -.55('s e)D .234(xit status is the e).4 F .233
-(xit status of the last com-)-.15 F .348(mand e)108 381.6 R -.15(xe)-.15
+(xit status of the last com-)-.15 F .348(mand e)108 422.4 R -.15(xe)-.15
G .348(cuted in the script.).15 F .348(If no commands are e)5.348 F -.15
(xe)-.15 G .348(cuted, the e).15 F .349(xit status is 0.)-.15 F .349
(An attempt is \214rst made to)5.349 F .254
-(open the \214le in the current directory)108 393.6 R 2.754(,a)-.65 G
+(open the \214le in the current directory)108 434.4 R 2.754(,a)-.65 G
.253
(nd, if no \214le is found, then the shell searches the directories in)
--2.754 F F3 -.666(PA)2.753 G(TH)-.189 E F0(for the script.)108 405.6 Q
-F4(INV)72 422.4 Q(OCA)-.493 E(TION)-1.04 E F0(A)108 434.4 Q F2(lo)2.5 E
+-2.754 F F3 -.666(PA)2.753 G(TH)-.189 E F0(for the script.)108 446.4 Q
+F4(INV)72 463.2 Q(OCA)-.493 E(TION)-1.04 E F0(A)108 475.2 Q F2(lo)2.5 E
(gin shell)-.1 E F0(is one whose \214rst character of ar)2.5 E
(gument zero is a)-.18 E F1<ad>2.5 E F0 2.5(,o)C 2.5(ro)-2.5 G
(ne started with the)-2.5 E F1(\255\255login)2.5 E F0(option.)2.5 E(An)
-108 451.2 Q F2(inter)2.814 E(active)-.15 E F0 .314
+108 492 Q F2(inter)2.814 E(active)-.15 E F0 .314
(shell is one started without non-option ar)2.814 F .315
(guments and without the)-.18 F F1<ad63>2.815 E F0 .315
(option whose standard)2.815 F 1.5
(input and error are both connected to terminals \(as determined by)108
-463.2 R F2(isatty)4 E F0 1.5(\(3\)\), or one started with the).32 F F1
-<ad69>4 E F0(option.)108 475.2 Q F3(PS1)5.289 E F0 .289(is set and)2.539
-F F1<24ad>2.789 E F0(includes)2.789 E F1(i)2.789 E F0(if)2.789 E F1
-(bash)2.789 E F0 .289(is interacti)2.789 F -.15(ve)-.25 G 2.789(,a).15 G
-(llo)-2.789 E .29(wing a shell script or a startup \214le to test this)
--.25 F(state.)108 487.2 Q .033(The follo)108 504 R .033
+504 R F2(isatty)4 E F0 1.5(\(3\)\), or one started with the).32 F F1
+<ad69>4 E F0(option.)108 516 Q F3(PS1)5.289 E F0 .289(is set and)2.539 F
+F1<24ad>2.789 E F0(includes)2.789 E F1(i)2.789 E F0(if)2.789 E F1(bash)
+2.789 E F0 .289(is interacti)2.789 F -.15(ve)-.25 G 2.789(,a).15 G(llo)
+-2.789 E .29(wing a shell script or a startup \214le to test this)-.25 F
+(state.)108 528 Q .033(The follo)108 544.8 R .033
(wing paragraphs describe ho)-.25 F(w)-.25 E F1(bash)2.532 E F0 -.15
(exe)2.532 G .032(cutes its startup \214les.).15 F .032(If an)5.032 F
2.532(yo)-.15 G 2.532(ft)-2.532 G .032(he \214les e)-2.532 F .032
-(xist b)-.15 F .032(ut cannot be)-.2 F(read,)108 516 Q F1(bash)3.085 E
-F0 .585(reports an error)3.085 F 5.585(.T)-.55 G .585(ildes are e)-5.935
-F .586(xpanded in \214le names as described belo)-.15 F 3.086(wu)-.25 G
-(nder)-3.086 E F1 -.18(Ti)3.086 G .586(lde Expansion).18 F F0(in the)108
-528 Q F3(EXP)2.5 E(ANSION)-.666 E F0(section.)2.25 E(When)108 544.8 Q F1
-(bash)2.896 E F0 .396(is in)2.896 F -.2(vo)-.4 G -.1(ke).2 G 2.896(da).1
-G 2.896(sa)-2.896 G 2.896(ni)-2.896 G(nteracti)-2.896 E .696 -.15(ve l)
--.25 H .396(ogin shell, or as a non-interacti).15 F .695 -.15(ve s)-.25
-H .395(hell with the).15 F F1(\255\255login)2.895 E F0 .395(option, it)
-2.895 F 1.333(\214rst reads and e)108 556.8 R -.15(xe)-.15 G 1.333
-(cutes commands from the \214le).15 F F2(/etc/pr)3.833 E(o\214le)-.45 E
-F0 3.834(,i)C 3.834(ft)-3.834 G 1.334(hat \214le e)-3.834 F 3.834
+(xist b)-.15 F .032(ut cannot be)-.2 F(read,)108 556.8 Q F1(bash)2.599 E
+F0 .099(reports an error)2.599 F 5.099(.T)-.55 G .099(ildes are e)-5.449
+F .099(xpanded in \214lenames as described belo)-.15 F 2.6(wu)-.25 G
+(nder)-2.6 E F1 -.18(Ti)2.6 G .1(lde Expansion).18 F F0(in)2.6 E(the)108
+568.8 Q F3(EXP)2.5 E(ANSION)-.666 E F0(section.)2.25 E(When)108 585.6 Q
+F1(bash)2.896 E F0 .396(is in)2.896 F -.2(vo)-.4 G -.1(ke).2 G 2.896(da)
+.1 G 2.896(sa)-2.896 G 2.896(ni)-2.896 G(nteracti)-2.896 E .696 -.15
+(ve l)-.25 H .396(ogin shell, or as a non-interacti).15 F .695 -.15
+(ve s)-.25 H .395(hell with the).15 F F1(\255\255login)2.895 E F0 .395
+(option, it)2.895 F 1.333(\214rst reads and e)108 597.6 R -.15(xe)-.15 G
+1.333(cutes commands from the \214le).15 F F2(/etc/pr)3.833 E(o\214le)
+-.45 E F0 3.834(,i)C 3.834(ft)-3.834 G 1.334(hat \214le e)-3.834 F 3.834
(xists. After)-.15 F 1.334(reading that \214le, it)3.834 F .249
-(looks for)108 568.8 R F2(~/.bash_pr)2.749 E(o\214le)-.45 E F0(,)A F2
+(looks for)108 609.6 R F2(~/.bash_pr)2.749 E(o\214le)-.45 E F0(,)A F2
(~/.bash_lo)2.749 E(gin)-.1 E F0 2.749(,a)C(nd)-2.749 E F2(~/.pr)2.749 E
(o\214le)-.45 E F0 2.749(,i)C 2.749(nt)-2.749 G .249(hat order)-2.749 F
2.748(,a)-.4 G .248(nd reads and e)-2.748 F -.15(xe)-.15 G .248
-(cutes commands from).15 F .796(the \214rst one that e)108 580.8 R .796
+(cutes commands from).15 F .796(the \214rst one that e)108 621.6 R .796
(xists and is readable.)-.15 F(The)5.796 E F1(\255\255nopr)3.296 E
(o\214le)-.18 E F0 .797(option may be used when the shell is started to)
-3.296 F(inhibit this beha)108 592.8 Q(vior)-.2 E(.)-.55 E
-(When a login shell e)108 609.6 Q(xits,)-.15 E F1(bash)2.5 E F0
+3.296 F(inhibit this beha)108 633.6 Q(vior)-.2 E(.)-.55 E
+(When a login shell e)108 650.4 Q(xits,)-.15 E F1(bash)2.5 E F0
(reads and e)2.5 E -.15(xe)-.15 G(cutes commands from the \214le).15 E
F2(~/.bash_lo)2.5 E(gout)-.1 E F0 2.5(,i)C 2.5(fi)-2.5 G 2.5(te)-2.5 G
-(xists.)-2.65 E 1.698(When an interacti)108 626.4 R 1.998 -.15(ve s)-.25
+(xists.)-2.65 E 1.698(When an interacti)108 667.2 R 1.998 -.15(ve s)-.25
H 1.698(hell that is not a login shell is started,).15 F F1(bash)4.197 E
F0 1.697(reads and e)4.197 F -.15(xe)-.15 G 1.697(cutes commands from)
-.15 F F2(~/.bashr)108 638.4 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G
+.15 F F2(~/.bashr)108 679.2 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G
.035(hat \214le e)-2.535 F 2.535(xists. This)-.15 F .036
(may be inhibited by using the)2.535 F F1<adad6e6f72>2.536 E(c)-.18 E F0
2.536(option. The)2.536 F F1<adad72>2.536 E(c\214le)-.18 E F2(\214le)
-2.536 E F0 .036(option will)2.536 F(force)108 650.4 Q F1(bash)2.5 E F0
+2.536 E F0 .036(option will)2.536 F(force)108 691.2 Q F1(bash)2.5 E F0
(to read and e)2.5 E -.15(xe)-.15 G(cute commands from).15 E F2(\214le)
-2.5 E F0(instead of)2.5 E F2(~/.bashr)2.5 E(c)-.37 E F0(.)A(When)108
-667.2 Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15
-(ve)-.25 G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
+2.5 E F0(instead of)2.5 E F2(~/.bashr)2.5 E(c)-.37 E F0(.)A(When)108 708
+Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15(ve)-.25
+G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
(un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15
-F(ariable)-.25 E F3 -.27(BA)108 679.2 S(SH_ENV).27 E F0 1.01(in the en)
+F(ariable)-.25 E F3 -.27(BA)108 720 S(SH_ENV).27 E F0 1.01(in the en)
3.26 F 1.01(vironment, e)-.4 F 1.01(xpands its v)-.15 F 1.01
(alue if it appears there, and uses the e)-.25 F 1.011(xpanded v)-.15 F
-1.011(alue as the)-.25 F(name of a \214le to read and e)108 691.2 Q -.15
-(xe)-.15 G(cute.).15 E F1(Bash)5 E F0(beha)2.5 E -.15(ve)-.2 G 2.5(sa)
-.15 G 2.5(si)-2.5 G 2.5(ft)-2.5 G(he follo)-2.5 E(wing command were e)
--.25 E -.15(xe)-.15 G(cuted:).15 E/F5 10/Courier@0 SF
-(if [ \255n "$BASH_ENV" ]; then . "$BASH_ENV"; fi)144 709.2 Q F0 -.2(bu)
-108 727.2 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E F3 -.666(PA)2.5 G
-(TH)-.189 E F0 -.25(va)2.25 G
-(riable is not used to search for the \214le name.).25 E(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(2)190.955 E 0 Cg EP
+1.011(alue as the)-.25 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E
+(2)195.95 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(If)108 84 Q/F1 10/Times-Bold@0 SF(bash)3.417 E F0 .917(is in)
-3.417 F -.2(vo)-.4 G -.1(ke).2 G 3.417(dw).1 G .917(ith the name)-3.417
-F F1(sh)3.417 E F0 3.417(,i)C 3.417(tt)-3.417 G .917
-(ries to mimic the startup beha)-3.417 F .917(vior of historical v)-.2 F
-.917(ersions of)-.15 F F1(sh)3.417 E F0(as)3.417 E .145
+-.35 E(name of a \214le to read and e)108 84 Q -.15(xe)-.15 G(cute.).15
+E/F1 10/Times-Bold@0 SF(Bash)5 E F0(beha)2.5 E -.15(ve)-.2 G 2.5(sa).15
+G 2.5(si)-2.5 G 2.5(ft)-2.5 G(he follo)-2.5 E(wing command were e)-.25 E
+-.15(xe)-.15 G(cuted:).15 E/F2 10/Courier@0 SF
+(if [ \255n "$BASH_ENV" ]; then . "$BASH_ENV"; fi)144 102 Q F0 -.2(bu)
+108 120 S 2.5(tt).2 G(he v)-2.5 E(alue of the)-.25 E/F3 9/Times-Bold@0
+SF -.666(PA)2.5 G(TH)-.189 E F0 -.25(va)2.25 G
+(riable is not used to search for the \214lename.).25 E(If)108 136.8 Q
+F1(bash)3.417 E F0 .917(is in)3.417 F -.2(vo)-.4 G -.1(ke).2 G 3.417(dw)
+.1 G .917(ith the name)-3.417 F F1(sh)3.417 E F0 3.417(,i)C 3.417(tt)
+-3.417 G .917(ries to mimic the startup beha)-3.417 F .917
+(vior of historical v)-.2 F .917(ersions of)-.15 F F1(sh)3.417 E F0(as)
+3.417 E .145
(closely as possible, while conforming to the POSIX standard as well.)
-108 96 R .145(When in)5.145 F -.2(vo)-.4 G -.1(ke).2 G 2.645(da).1 G
+108 148.8 R .145(When in)5.145 F -.2(vo)-.4 G -.1(ke).2 G 2.645(da).1 G
2.645(sa)-2.645 G 2.645(ni)-2.645 G(nteracti)-2.645 E .445 -.15(ve l)
--.25 H(ogin).15 E 1.264(shell, or a non-interacti)108 108 R 1.564 -.15
+-.25 H(ogin).15 E 1.264(shell, or a non-interacti)108 160.8 R 1.564 -.15
(ve s)-.25 H 1.264(hell with the).15 F F1(\255\255login)3.764 E F0 1.264
(option, it \214rst attempts to read and e)3.764 F -.15(xe)-.15 G 1.263
-(cute commands).15 F(from)108 120 Q/F2 10/Times-Italic@0 SF(/etc/pr)
-4.142 E(o\214le)-.45 E F0(and)3.172 E F2(~/.pr)2.992 E(o\214le)-.45 E F0
+(cute commands).15 F(from)108 172.8 Q/F4 10/Times-Italic@0 SF(/etc/pr)
+4.142 E(o\214le)-.45 E F0(and)3.172 E F4(~/.pr)2.992 E(o\214le)-.45 E F0
2.992(,i).18 G 2.992(nt)-2.992 G .492(hat order)-2.992 F 5.492(.T)-.55 G
(he)-5.492 E F1(\255\255nopr)2.992 E(o\214le)-.18 E F0 .493
(option may be used to inhibit this beha)2.993 F(vior)-.2 E(.)-.55 E
-.418(When in)108 132 R -.2(vo)-.4 G -.1(ke).2 G 2.918(da).1 G 2.918(sa)
--2.918 G 2.918(ni)-2.918 G(nteracti)-2.918 E .718 -.15(ve s)-.25 H .418
-(hell with the name).15 F F1(sh)2.918 E F0(,)A F1(bash)2.918 E F0 .418
-(looks for the v)2.918 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(ENV)2.918 E
-/F4 9/Times-Roman@0 SF(,)A F0 -.15(ex)2.667 G .417(pands its v).15 F
-(alue)-.25 E .171(if it is de\214ned, and uses the e)108 144 R .171
+.418(When in)108 184.8 R -.2(vo)-.4 G -.1(ke).2 G 2.918(da).1 G 2.918
+(sa)-2.918 G 2.918(ni)-2.918 G(nteracti)-2.918 E .718 -.15(ve s)-.25 H
+.418(hell with the name).15 F F1(sh)2.918 E F0(,)A F1(bash)2.918 E F0
+.418(looks for the v)2.918 F(ariable)-.25 E F3(ENV)2.918 E/F5 9
+/Times-Roman@0 SF(,)A F0 -.15(ex)2.667 G .417(pands its v).15 F(alue)
+-.25 E .171(if it is de\214ned, and uses the e)108 196.8 R .171
(xpanded v)-.15 F .171(alue as the name of a \214le to read and e)-.25 F
-.15(xe)-.15 G 2.671(cute. Since).15 F 2.671(as)2.671 G .171(hell in)
--2.671 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(as)108 156 Q F1(sh)3.081 E F0
+-2.671 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E(as)108 208.8 Q F1(sh)3.081 E F0
.581(does not attempt to read and e)3.081 F -.15(xe)-.15 G .581
(cute commands from an).15 F 3.08(yo)-.15 G .58
(ther startup \214les, the)-3.08 F F1<adad72>3.08 E(c\214le)-.18 E F0
-.58(option has)3.08 F .182(no ef)108 168 R 2.682(fect. A)-.25 F
+.58(option has)3.08 F .182(no ef)108 220.8 R 2.682(fect. A)-.25 F
(non-interacti)2.682 E .482 -.15(ve s)-.25 H .182(hell in).15 F -.2(vo)
-.4 G -.1(ke).2 G 2.682(dw).1 G .182(ith the name)-2.682 F F1(sh)2.682 E
F0 .182(does not attempt to read an)2.682 F 2.683(yo)-.15 G .183
-(ther startup \214les.)-2.683 F(When in)108 180 Q -.2(vo)-.4 G -.1(ke).2
-G 2.5(da).1 G(s)-2.5 E F1(sh)2.5 E F0(,)A F1(bash)2.5 E F0(enters)2.5 E
-F2(posix)3.75 E F0(mode after the startup \214les are read.)3.03 E(When)
-108 196.8 Q F1(bash)2.727 E F0 .226(is started in)2.727 F F2(posix)3.976
-E F0 .226(mode, as with the)3.256 F F1(\255\255posix)2.726 E F0 .226
-(command line option, it follo)2.726 F .226(ws the POSIX stan-)-.25 F
-.341(dard for startup \214les.)108 208.8 R .341(In this mode, interacti)
-5.341 F .641 -.15(ve s)-.25 H .341(hells e).15 F .341(xpand the)-.15 F
-F3(ENV)2.841 E F0 -.25(va)2.591 G .342(riable and commands are read and)
-.25 F -.15(exe)108 220.8 S(cuted from the \214le whose name is the e).15
-E(xpanded v)-.15 E 2.5(alue. No)-.25 F(other startup \214les are read.)
-2.5 E F1(Bash)108 237.6 Q F0 .224(attempts to determine when it is bein\
-g run with its standard input connected to a netw)2.724 F .223
-(ork connection,)-.1 F .025(as when e)108 249.6 R -.15(xe)-.15 G .025
-(cuted by the remote shell daemon, usually).15 F F2 -.1(rs)2.525 G(hd).1
+(ther startup \214les.)-2.683 F(When in)108 232.8 Q -.2(vo)-.4 G -.1(ke)
+.2 G 2.5(da).1 G(s)-2.5 E F1(sh)2.5 E F0(,)A F1(bash)2.5 E F0(enters)2.5
+E F4(posix)3.75 E F0(mode after the startup \214les are read.)3.03 E
+(When)108 249.6 Q F1(bash)2.727 E F0 .226(is started in)2.727 F F4
+(posix)3.976 E F0 .226(mode, as with the)3.256 F F1(\255\255posix)2.726
+E F0 .226(command line option, it follo)2.726 F .226(ws the POSIX stan-)
+-.25 F .341(dard for startup \214les.)108 261.6 R .341
+(In this mode, interacti)5.341 F .641 -.15(ve s)-.25 H .341(hells e).15
+F .341(xpand the)-.15 F F3(ENV)2.841 E F0 -.25(va)2.591 G .342
+(riable and commands are read and).25 F -.15(exe)108 273.6 S
+(cuted from the \214le whose name is the e).15 E(xpanded v)-.15 E 2.5
+(alue. No)-.25 F(other startup \214les are read.)2.5 E F1(Bash)108 290.4
+Q F0 .224(attempts to determine when it is being run with its standard \
+input connected to a netw)2.724 F .223(ork connection,)-.1 F .025
+(as when e)108 302.4 R -.15(xe)-.15 G .025
+(cuted by the remote shell daemon, usually).15 F F4 -.1(rs)2.525 G(hd).1
E F0 2.525(,o)C 2.525(rt)-2.525 G .025(he secure shell daemon)-2.525 F
-F2(sshd)2.525 E F0 5.025(.I)C(f)-5.025 E F1(bash)2.525 E F0(deter)2.525
-E(-)-.2 E .134(mines it is being run in this f)108 261.6 R .134
+F4(sshd)2.525 E F0 5.025(.I)C(f)-5.025 E F1(bash)2.525 E F0(deter)2.525
+E(-)-.2 E .134(mines it is being run in this f)108 314.4 R .134
(ashion, it reads and e)-.1 F -.15(xe)-.15 G .133(cutes commands from)
-.15 F F2(~/.bashr)2.633 E(c)-.37 E F0 2.633(,i)C 2.633(ft)-2.633 G .133
+.15 F F4(~/.bashr)2.633 E(c)-.37 E F0 2.633(,i)C 2.633(ft)-2.633 G .133
(hat \214le e)-2.633 F .133(xists and is)-.15 F 2.869(readable. It)108
-273.6 R .369(will not do this if in)2.869 F -.2(vo)-.4 G -.1(ke).2 G
+326.4 R .369(will not do this if in)2.869 F -.2(vo)-.4 G -.1(ke).2 G
2.869(da).1 G(s)-2.869 E F1(sh)2.869 E F0 5.369(.T)C(he)-5.369 E F1
<adad6e6f72>2.869 E(c)-.18 E F0 .369
(option may be used to inhibit this beha)2.869 F(vior)-.2 E 2.869(,a)-.4
-G(nd)-2.869 E(the)108 285.6 Q F1<adad72>2.606 E(c\214le)-.18 E F0 .106
-(option may be used to force another \214le to be read, b)2.606 F(ut)-.2
-E F2 -.1(rs)2.606 G(hd).1 E F0 .106(does not generally in)2.606 F -.2
-(vo)-.4 G .306 -.1(ke t).2 H .106(he shell).1 F
-(with those options or allo)108 297.6 Q 2.5(wt)-.25 G
+G(nd)-2.869 E(the)108 338.4 Q F1<adad72>2.919 E(c\214le)-.18 E F0 .419
+(option may be used to force another \214le to be read, b)2.919 F .419
+(ut neither)-.2 F F4 -.1(rs)2.919 G(hd).1 E F0(nor)2.919 E F4(sshd)2.919
+E F0 .418(generally in)2.919 F -.2(vo)-.4 G -.1(ke).2 G
+(the shell with those options or allo)108 350.4 Q 2.5(wt)-.25 G
(hem to be speci\214ed.)-2.5 E 1.207
-(If the shell is started with the ef)108 314.4 R(fecti)-.25 E 1.507 -.15
+(If the shell is started with the ef)108 367.2 R(fecti)-.25 E 1.507 -.15
(ve u)-.25 H 1.208
(ser \(group\) id not equal to the real user \(group\) id, and the).15 F
F1<ad70>3.708 E F0 .536(option is not supplied, no startup \214les are \
-read, shell functions are not inherited from the en)108 326.4 R .535
-(vironment, the)-.4 F F3(SHELLOPTS)108 338.4 Q F4(,)A F3 -.27(BA)2.959 G
-(SHOPTS).27 E F4(,)A F3(CDP)2.959 E -.855(AT)-.666 G(H).855 E F4(,)A F0
+read, shell functions are not inherited from the en)108 379.2 R .535
+(vironment, the)-.4 F F3(SHELLOPTS)108 391.2 Q F5(,)A F3 -.27(BA)2.959 G
+(SHOPTS).27 E F5(,)A F3(CDP)2.959 E -.855(AT)-.666 G(H).855 E F5(,)A F0
(and)2.959 E F3(GLOBIGNORE)3.209 E F0 -.25(va)2.959 G .709
(riables, if the).25 F 3.209(ya)-.15 G .71(ppear in the en)-3.209 F .71
-(vironment, are)-.4 F .905(ignored, and the ef)108 350.4 R(fecti)-.25 E
+(vironment, are)-.4 F .905(ignored, and the ef)108 403.2 R(fecti)-.25 E
1.205 -.15(ve u)-.25 H .904(ser id is set to the real user id.).15 F
.904(If the)5.904 F F1<ad70>3.404 E F0 .904(option is supplied at in)
-3.404 F -.2(vo)-.4 G .904(cation, the).2 F(startup beha)108 362.4 Q
+3.404 F -.2(vo)-.4 G .904(cation, the).2 F(startup beha)108 415.2 Q
(vior is the same, b)-.2 E(ut the ef)-.2 E(fecti)-.25 E .3 -.15(ve u)
--.25 H(ser id is not reset.).15 E/F5 10.95/Times-Bold@0 SF(DEFINITIONS)
-72 379.2 Q F0(The follo)108 391.2 Q
+-.25 H(ser id is not reset.).15 E/F6 10.95/Times-Bold@0 SF(DEFINITIONS)
+72 432 Q F0(The follo)108 444 Q
(wing de\214nitions are used throughout the rest of this document.)-.25
-E F1(blank)108 403.2 Q F0 2.5(As)11.54 G(pace or tab)-2.5 E(.)-.4 E F1
--.1(wo)108 415.2 S(rd).1 E F0 2.5(As)13.88 G
+E F1(blank)108 456 Q F0 2.5(As)11.54 G(pace or tab)-2.5 E(.)-.4 E F1 -.1
+(wo)108 468 S(rd).1 E F0 2.5(As)13.88 G
(equence of characters considered as a single unit by the shell.)-2.5 E
(Also kno)5 E(wn as a)-.25 E F1(tok)2.5 E(en)-.1 E F0(.)A F1(name)108
-427.2 Q F0(A)12.67 E F2(wor)3.005 E(d)-.37 E F0 .165
+480 Q F0(A)12.67 E F4(wor)3.005 E(d)-.37 E F0 .165
(consisting only of alphanumeric characters and underscores, and be)
3.435 F .166(ginning with an alpha-)-.15 F
-(betic character or an underscore.)144 439.2 Q(Also referred to as an)5
-E F1(identi\214er)2.5 E F0(.)A F1(metacharacter)108 451.2 Q F0 2.5(Ac)
-144 463.2 S(haracter that, when unquoted, separates w)-2.5 E 2.5
-(ords. One)-.1 F(of the follo)2.5 E(wing:)-.25 E F1 5(|&;\(\)<>s)144
-475.2 S 2.5(pace tab)-5 F(contr)108 487.2 Q(ol operator)-.18 E F0(A)144
-499.2 Q F2(tok)2.5 E(en)-.1 E F0(that performs a control function.)2.5 E
+(betic character or an underscore.)144 492 Q(Also referred to as an)5 E
+F1(identi\214er)2.5 E F0(.)A F1(metacharacter)108 504 Q F0 2.5(Ac)144
+516 S(haracter that, when unquoted, separates w)-2.5 E 2.5(ords. One)-.1
+F(of the follo)2.5 E(wing:)-.25 E F1 5(|&;\(\)<>s)144 528 S 2.5
+(pace tab)-5 F(contr)108 540 Q(ol operator)-.18 E F0(A)144 552 Q F4(tok)
+2.5 E(en)-.1 E F0(that performs a control function.)2.5 E
(It is one of the follo)5 E(wing symbols:)-.25 E F1 2.5
-(|| & && ; ;; \( \) | |&)144 511.2 R(<newline>)10 E F5(RESER)72 528 Q
-(VED W)-.602 E(ORDS)-.11 E F2 .307(Reserved wor)108 540 R(ds)-.37 E F0
+(|| & && ; ;; \( \) | |&)144 564 R(<newline>)10 E F6(RESER)72 580.8 Q
+(VED W)-.602 E(ORDS)-.11 E F4 .307(Reserved wor)108 592.8 R(ds)-.37 E F0
.307(are w)2.807 F .307(ords that ha)-.1 F .607 -.15(ve a s)-.2 H .306
(pecial meaning to the shell.).15 F .306(The follo)5.306 F .306(wing w)
--.25 F .306(ords are recognized as)-.1 F(reserv)108 552 Q .227
+-.25 F .306(ords are recognized as)-.1 F(reserv)108 604.8 Q .227
(ed when unquoted and either the \214rst w)-.15 F .227
(ord of a simple command \(see)-.1 F F3 .227(SHELL GRAMMAR)2.727 F F0
-(belo)2.477 E .227(w\) or)-.25 F(the third w)108 564 Q(ord of a)-.1 E F1
-(case)2.5 E F0(or)2.5 E F1 -.25(fo)2.5 G(r).25 E F0(command:)2.5 E F1
-11.916(!c)144 580.8 S 9.416(ase do done elif else esac \214 f)-11.916 F
-9.415(or function if in select then until)-.25 F 7.5
-(while { } time [[ ]])144 592.8 R F5(SHELL GRAMMAR)72 609.6 Q F1
-(Simple Commands)87 621.6 Q F0(A)108 633.6 Q F2 .388(simple command)
-2.888 F F0 .388(is a sequence of optional v)2.888 F .389
-(ariable assignments follo)-.25 F .389(wed by)-.25 F F1(blank)2.889 E F0
-.389(-separated w)B .389(ords and)-.1 F .816
-(redirections, and terminated by a)108 645.6 R F2(contr)3.316 E .815
-(ol oper)-.45 F(ator)-.15 E F0 5.815(.T)C .815(he \214rst w)-5.815 F
-.815(ord speci\214es the command to be e)-.1 F -.15(xe)-.15 G(cuted,).15
-E(and is passed as ar)108 657.6 Q(gument zero.)-.18 E(The remaining w)5
-E(ords are passed as ar)-.1 E(guments to the in)-.18 E -.2(vo)-.4 G -.1
-(ke).2 G 2.5(dc).1 G(ommand.)-2.5 E .175(The return v)108 674.4 R .175
-(alue of a)-.25 F F2 .175(simple command)2.675 F F0 .175(is its e)2.675
-F .175(xit status, or 128+)-.15 F F2(n)A F0 .176
-(if the command is terminated by signal)3.508 F F2(n)2.676 E F0(.).24 E
-F1(Pipelines)87 691.2 Q F0(A)108 703.2 Q F2(pipeline)2.996 E F0 .496(is\
- a sequence of one or more commands separated by one of the control ope\
-rators)2.996 F F1(|)2.996 E F0(or)2.996 E F1(|&)2.996 E F0 5.496(.T)C
-(he)-5.496 E(format for a pipeline is:)108 715.2 Q(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(3)190.955 E 0 Cg EP
+(belo)2.477 E .227(w\) or)-.25 F(the third w)108 616.8 Q(ord of a)-.1 E
+F1(case)2.5 E F0(or)2.5 E F1 -.25(fo)2.5 G(r).25 E F0(command:)2.5 E F1
+11.295(!c)144 633.6 S 8.795(ase copr)-11.295 F 8.795
+(oc do done elif else esac \214 f)-.18 F 8.795
+(or function if in select then)-.25 F 7.5(until while { } time [[ ]])144
+645.6 R F6(SHELL GRAMMAR)72 662.4 Q F1(Simple Commands)87 674.4 Q F0(A)
+108 686.4 Q F4 .388(simple command)2.888 F F0 .388
+(is a sequence of optional v)2.888 F .389(ariable assignments follo)-.25
+F .389(wed by)-.25 F F1(blank)2.889 E F0 .389(-separated w)B .389
+(ords and)-.1 F .816(redirections, and terminated by a)108 698.4 R F4
+(contr)3.316 E .815(ol oper)-.45 F(ator)-.15 E F0 5.815(.T)C .815
+(he \214rst w)-5.815 F .815(ord speci\214es the command to be e)-.1 F
+-.15(xe)-.15 G(cuted,).15 E(and is passed as ar)108 710.4 Q
+(gument zero.)-.18 E(The remaining w)5 E(ords are passed as ar)-.1 E
+(guments to the in)-.18 E -.2(vo)-.4 G -.1(ke).2 G 2.5(dc).1 G(ommand.)
+-2.5 E .175(The return v)108 727.2 R .175(alue of a)-.25 F F4 .175
+(simple command)2.675 F F0 .175(is its e)2.675 F .175
+(xit status, or 128+)-.15 F F4(n)A F0 .176
+(if the command is terminated by signal)3.508 F F4(n)2.676 E F0(.).24 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(3)195.95 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E([)144 84 Q/F1 10/Times-Bold@0 SF(time)A F0([)2.5 E F1<ad70>A F0
-(]] [ ! ])A/F2 10/Times-Italic@0 SF(command)2.5 E F0 2.5([[)2.5 G F1(|)
--2.5 E/F3 10/Symbol SF<ef>A F1(|&)A F0(])A F2(command2)2.5 E F0(... ])
-2.5 E .243(The standard output of)108 100.8 R F2(command)2.943 E F0 .244
+-.35 E/F1 10/Times-Bold@0 SF(Pipelines)87 84 Q F0(A)108 96 Q/F2 10
+/Times-Italic@0 SF(pipeline)2.996 E F0 .496(is a sequence of one or mor\
+e commands separated by one of the control operators)2.996 F F1(|)2.996
+E F0(or)2.996 E F1(|&)2.996 E F0 5.496(.T)C(he)-5.496 E
+(format for a pipeline is:)108 108 Q([)144 124.8 Q F1(time)A F0([)2.5 E
+F1<ad70>A F0(]] [ ! ])A F2(command)2.5 E F0 2.5([[)2.5 G F1(|)-2.5 E/F3
+10/Symbol SF<ef>A F1(|&)A F0(])A F2(command2)2.5 E F0(... ])2.5 E .243
+(The standard output of)108 141.6 R F2(command)2.943 E F0 .244
(is connected via a pipe to the standard input of)3.513 F F2(command2)
2.744 E F0 5.244(.T).02 G .244(his connec-)-5.244 F .643
-(tion is performed before an)108 112.8 R 3.143(yr)-.15 G .642
+(tion is performed before an)108 153.6 R 3.143(yr)-.15 G .642
(edirections speci\214ed by the command \(see)-3.143 F/F4 9/Times-Bold@0
SF(REDIRECTION)3.142 E F0(belo)2.892 E 3.142(w\). If)-.25 F F1(|&)3.142
-E F0(is)3.142 E 1.43(used, the standard error of)108 124.8 R F2(command)
-3.93 E F0 1.431(is connected to)3.93 F F2(command2)3.931 E F0 2.531 -.55
-('s s)D 1.431(tandard input through the pipe; it is).55 F 1.197
-(shorthand for)108 136.8 R F1 1.197(2>&1 |)3.697 F F0 6.197(.T)C 1.197
-(his implicit redirection of the standard error is performed after an)
--6.197 F 3.696(yr)-.15 G(edirections)-3.696 E
-(speci\214ed by the command.)108 148.8 Q .48
-(The return status of a pipeline is the e)108 165.6 R .48
+E F0(is)3.142 E(used,)108 165.6 Q F2(command)3.647 E F0 2.247 -.55('s s)
+D 1.147(tandard error).55 F 3.647(,i)-.4 G 3.647(na)-3.647 G 1.147
+(ddition to its standard output, is connected to)-3.647 F F2(command2)
+3.648 E F0 2.248 -.55('s s)D(tandard).55 E .028
+(input through the pipe; it is shorthand for)108 177.6 R F1 .028(2>&1 |)
+2.528 F F0 5.028(.T)C .028
+(his implicit redirection of the standard error to the stan-)-5.028 F
+(dard output is performed after an)108 189.6 Q 2.5(yr)-.15 G
+(edirections speci\214ed by the command.)-2.5 E .48
+(The return status of a pipeline is the e)108 206.4 R .48
(xit status of the last command, unless the)-.15 F F1(pipefail)2.98 E F0
-.48(option is enabled.)2.98 F(If)108 177.6 Q F1(pipefail)2.687 E F0 .187
+.48(option is enabled.)2.98 F(If)108 218.4 Q F1(pipefail)2.687 E F0 .187
(is enabled, the pipeline')2.687 F 2.687(sr)-.55 G .186
(eturn status is the v)-2.687 F .186
(alue of the last \(rightmost\) command to e)-.25 F .186(xit with a)-.15
-F .61(non-zero status, or zero if all commands e)108 189.6 R .611
+F .61(non-zero status, or zero if all commands e)108 230.4 R .611
(xit successfully)-.15 F 5.611(.I)-.65 G 3.111(ft)-5.611 G .611
(he reserv)-3.111 F .611(ed w)-.15 F(ord)-.1 E F1(!)3.111 E F0 .611
-(precedes a pipeline, the)5.611 F -.15(ex)108 201.6 S .55
+(precedes a pipeline, the)5.611 F -.15(ex)108 242.4 S .55
(it status of that pipeline is the logical ne).15 F -.05(ga)-.15 G .55
(tion of the e).05 F .55(xit status as described abo)-.15 F -.15(ve)-.15
G 5.55(.T).15 G .55(he shell w)-5.55 F .55(aits for)-.1 F
(all commands in the pipeline to terminate before returning a v)108
-213.6 Q(alue.)-.25 E .298(If the)108 230.4 R F1(time)2.799 E F0(reserv)
+254.4 Q(alue.)-.25 E .298(If the)108 271.2 R F1(time)2.799 E F0(reserv)
2.799 E .299(ed w)-.15 F .299(ord precedes a pipeline, the elapsed as w\
-ell as user and system time consumed by its)-.1 F -.15(exe)108 242.4 S
+ell as user and system time consumed by its)-.1 F -.15(exe)108 283.2 S
.14(cution are reported when the pipeline terminates.).15 F(The)5.139 E
F1<ad70>2.639 E F0 .139(option changes the output format to that spec-)
-2.639 F .302(i\214ed by POSIX.)108 254.4 R .303(When the shell is in)
+2.639 F .302(i\214ed by POSIX.)108 295.2 R .303(When the shell is in)
5.302 F F2 .303(posix mode)2.803 F F0 2.803(,i)C 2.803(td)-2.803 G .303
(oes not recognize)-2.803 F F1(time)2.803 E F0 .303(as a reserv)2.803 F
-.303(ed w)-.15 F .303(ord if the ne)-.1 F(xt)-.15 E(tok)108 266.4 Q .736
+.303(ed w)-.15 F .303(ord if the ne)-.1 F(xt)-.15 E(tok)108 307.2 Q .736
(en be)-.1 F .736(gins with a `-'.)-.15 F(The)5.736 E F4(TIMEFORMA)3.236
E(T)-.855 E F0 -.25(va)2.986 G .736
(riable may be set to a format string that speci\214es ho).25 F 3.235
(wt)-.25 G(he)-3.235 E 2.225
(timing information should be displayed; see the description of)108
-278.4 R F4(TIMEFORMA)4.726 E(T)-.855 E F0(under)4.476 E F1 2.226
-(Shell V)4.726 F(ariables)-.92 E F0(belo)108 290.4 Q -.65(w.)-.25 G .85
-(When the shell is in)108 307.2 R F2 .85(posix mode)3.35 F F0(,)A F1
-(time)3.35 E F0 .85(may be follo)3.35 F .85(wed by a ne)-.25 F 3.35
-(wline. In)-.25 F .85(this case, the shell displays the)3.35 F 1.073
+319.2 R F4(TIMEFORMA)4.726 E(T)-.855 E F0(under)4.476 E F1 2.226
+(Shell V)4.726 F(ariables)-.92 E F0(belo)108 331.2 Q -.65(w.)-.25 G .85
+(When the shell is in)108 348 R F2 .85(posix mode)3.35 F F0(,)A F1(time)
+3.35 E F0 .85(may be follo)3.35 F .85(wed by a ne)-.25 F 3.35(wline. In)
+-.25 F .85(this case, the shell displays the)3.35 F 1.073
(total user and system time consumed by the shell and its children.)108
-319.2 R(The)6.074 E F4(TIMEFORMA)3.574 E(T)-.855 E F0 -.25(va)3.324 G
+360 R(The)6.074 E F4(TIMEFORMA)3.574 E(T)-.855 E F0 -.25(va)3.324 G
1.074(riable may be).25 F
-(used to specify the format of the time information.)108 331.2 Q
-(Each command in a pipeline is e)108 348 Q -.15(xe)-.15 G
+(used to specify the format of the time information.)108 372 Q
+(Each command in a pipeline is e)108 388.8 Q -.15(xe)-.15 G
(cuted as a separate process \(i.e., in a subshell\).).15 E F1(Lists)87
-364.8 Q F0(A)108 376.8 Q F2(list)2.85 E F0 .35(is a sequence of one or \
+405.6 Q F0(A)108 417.6 Q F2(list)2.85 E F0 .35(is a sequence of one or \
more pipelines separated by one of the operators)2.85 F F1(;)2.849 E F0
(,)A F1(&)2.849 E F0(,)A F1(&&)2.849 E F0 2.849(,o)C(r)-2.849 E F1(||)
2.849 E F0 2.849(,a)C .349(nd option-)-2.849 F
-(ally terminated by one of)108 388.8 Q F1(;)2.5 E F0(,)A F1(&)2.5 E F0
+(ally terminated by one of)108 429.6 Q F1(;)2.5 E F0(,)A F1(&)2.5 E F0
2.5(,o)C(r)-2.5 E F1(<newline>)2.5 E F0(.)A .96
-(Of these list operators,)108 405.6 R F1(&&)3.46 E F0(and)3.46 E F1(||)
+(Of these list operators,)108 446.4 R F1(&&)3.46 E F0(and)3.46 E F1(||)
3.46 E F0(ha)3.46 E 1.26 -.15(ve e)-.2 H .961(qual precedence, follo).15
F .961(wed by)-.25 F F1(;)3.461 E F0(and)3.461 E F1(&)3.461 E F0 3.461
(,w)C .961(hich ha)-3.461 F 1.261 -.15(ve e)-.2 H .961(qual prece-).15 F
-(dence.)108 417.6 Q 2.5(As)108 434.4 S(equence of one or more ne)-2.5 E
+(dence.)108 458.4 Q 2.5(As)108 475.2 S(equence of one or more ne)-2.5 E
(wlines may appear in a)-.25 E F2(list)2.5 E F0
(instead of a semicolon to delimit commands.)2.5 E .029
-(If a command is terminated by the control operator)108 451.2 R F1(&)
-2.529 E F0 2.529(,t)C .029(he shell e)-2.529 F -.15(xe)-.15 G .029
+(If a command is terminated by the control operator)108 492 R F1(&)2.529
+E F0 2.529(,t)C .029(he shell e)-2.529 F -.15(xe)-.15 G .029
(cutes the command in the).15 F F2(bac)2.528 E(kgr)-.2 E(ound)-.45 E F0
-(in)2.528 E 2.875(as)108 463.2 S 2.875(ubshell. The)-2.875 F .375
+(in)2.528 E 2.875(as)108 504 S 2.875(ubshell. The)-2.875 F .375
(shell does not w)2.875 F .375
(ait for the command to \214nish, and the return status is 0.)-.1 F .376
-(Commands sepa-)5.376 F .849(rated by a)108 475.2 R F1(;)3.349 E F0 .849
+(Commands sepa-)5.376 F .849(rated by a)108 516 R F1(;)3.349 E F0 .849
(are e)3.349 F -.15(xe)-.15 G .848(cuted sequentially; the shell w).15 F
.848(aits for each command to terminate in turn.)-.1 F .848(The return)
-5.848 F(status is the e)108 487.2 Q(xit status of the last command e)
--.15 E -.15(xe)-.15 G(cuted.).15 E .937(AND and OR lists are sequences \
-of one of more pipelines separated by the)108 504 R F1(&&)3.437 E F0
-(and)3.437 E F1(||)3.437 E F0 .937(control operators,)3.437 F(respecti)
-108 516 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G(ND and OR lists are e)-5 E
+5.848 F(status is the e)108 528 Q(xit status of the last command e)-.15
+E -.15(xe)-.15 G(cuted.).15 E .937(AND and OR lists are sequences of on\
+e of more pipelines separated by the)108 544.8 R F1(&&)3.437 E F0(and)
+3.437 E F1(||)3.437 E F0 .937(control operators,)3.437 F(respecti)108
+556.8 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G(ND and OR lists are e)-5 E
-.15(xe)-.15 G(cuted with left associati).15 E(vity)-.25 E 5(.A)-.65 G
-2.5(nA)-5 G(ND list has the form)-2.5 E F2(command1)144 532.8 Q F1(&&)
-2.5 E F2(command2)2.5 E(command2)108.2 549.6 Q F0(is e)2.52 E -.15(xe)
+2.5(nA)-5 G(ND list has the form)-2.5 E F2(command1)144 573.6 Q F1(&&)
+2.5 E F2(command2)2.5 E(command2)108.2 590.4 Q F0(is e)2.52 E -.15(xe)
-.15 G(cuted if, and only if,).15 E F2(command1)2.7 E F0(returns an e)
-2.5 E(xit status of zero.)-.15 E(An OR list has the form)108 566.4 Q F2
-(command1)144 583.2 Q F1(||)2.5 E F2(command2)2.5 E(command2)108.2 604.8
-Q F0 .729(is e)3.249 F -.15(xe)-.15 G .729(cuted if and only if).15 F F2
+2.5 E(xit status of zero.)-.15 E(An OR list has the form)108 607.2 Q F2
+(command1)144 624 Q F1(||)2.5 E F2(command2)2.5 E(command2)108.2 645.6 Q
+F0 .729(is e)3.249 F -.15(xe)-.15 G .729(cuted if and only if).15 F F2
(command1)3.429 E F0 .729(returns a non-zero e)3.229 F .729(xit status.)
-.15 F .728(The return status of AND)5.729 F(and OR lists is the e)108
-616.8 Q(xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted in the list.).15 E F1(Compound Commands)87 633.6 Q F0(A)108 645.6
-Q F2(compound command)2.5 E F0(is one of the follo)2.5 E(wing:)-.25 E
-(\()108 662.4 Q F2(list)A F0(\))A F2(list)17.11 E F0 .011(is e)2.511 F
--.15(xe)-.15 G .011(cuted in a subshell en).15 F .011(vironment \(see)
--.4 F F4 .011(COMMAND EXECUTION ENVIR)2.511 F(ONMENT)-.27 E F0(belo)
-2.262 E(w\).)-.25 E -1.11(Va)144 674.4 S 1.064(riable assignments and b)
-1.11 F 1.064(uiltin commands that af)-.2 F 1.064(fect the shell')-.25 F
-3.564(se)-.55 G -.4(nv)-3.564 G 1.064(ironment do not remain in).4 F(ef)
-144 686.4 Q(fect after the command completes.)-.25 E
-(The return status is the e)5 E(xit status of)-.15 E F2(list)2.5 E F0(.)
-A({)108 703.2 Q F2(list)2.5 E F0 2.5(;})C F2(list)3.89 E F0 .401
-(is simply e)2.901 F -.15(xe)-.15 G .401(cuted in the current shell en)
-.15 F(vironment.)-.4 E F2(list)5.401 E F0 .402
-(must be terminated with a ne)2.901 F .402(wline or)-.25 F 3.215
-(semicolon. This)144 715.2 R .715(is kno)3.215 F .715(wn as a)-.25 F F2
-(gr)3.215 E .715(oup command)-.45 F F0 5.715(.T)C .715
-(he return status is the e)-5.715 F .714(xit status of)-.15 F F2(list)
-3.214 E F0 5.714(.N)C(ote)-5.714 E .219(that unlik)144 727.2 R 2.719(et)
--.1 G .219(he metacharacters)-2.719 F F1(\()2.719 E F0(and)2.719 E F1
-(\))2.719 E F0(,)A F1({)2.719 E F0(and)2.719 E F1(})2.719 E F0(are)2.719
-E F2 -.37(re)2.72 G .22(served wor).37 F(ds)-.37 E F0 .22
-(and must occur where a reserv)2.72 F(ed)-.15 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(4)190.955 E 0 Cg EP
+657.6 Q(xit status of the last command e)-.15 E -.15(xe)-.15 G
+(cuted in the list.).15 E F1(Compound Commands)87 674.4 Q F0(A)108 686.4
+Q F2 1.053(compound command)3.553 F F0 1.053(is one of the follo)3.553 F
+3.553(wing. In)-.25 F 1.053(most cases a)3.553 F F2(list)3.553 E F0
+1.054(in a command')3.554 F 3.554(sd)-.55 G 1.054(escription may be)
+-3.554 F 1.027(separated from the rest of the command by one or more ne)
+108 698.4 R 1.026(wlines, and may be follo)-.25 F 1.026(wed by a ne)-.25
+F 1.026(wline in)-.25 F(place of a semicolon.)108 710.4 Q(GNU Bash 4.3)
+72 768 Q(2014 February 2)141.79 E(4)195.95 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.1(wo)144 84 S .257(rd is permitted to be recognized.).1 F .257
-(Since the)5.257 F 2.757(yd)-.15 G 2.756(on)-2.757 G .256(ot cause a w)
--2.756 F .256(ord break, the)-.1 F 2.756(ym)-.15 G .256
-(ust be separated)-2.756 F(from)144 96 Q/F1 10/Times-Italic@0 SF(list)
-2.5 E F0(by whitespace or another shell metacharacter)2.5 E(.)-.55 E
-(\(\()108 112.8 Q F1 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
-124.8 Q F1 -.2(ex)2.551 G(pr).2 E(ession)-.37 E F0 .051(is e)2.551 F
--.25(va)-.25 G .051(luated according to the rules described belo).25 F
-2.552(wu)-.25 G(nder)-2.552 E/F2 9/Times-Bold@0 SF .052(ARITHMETIC EV)
-2.552 F(ALU)-1.215 E(A-)-.54 E(TION)144 136.8 Q/F3 9/Times-Roman@0 SF(.)
-A F0 .411(If the v)4.911 F .411(alue of the e)-.25 F .411(xpression is \
-non-zero, the return status is 0; otherwise the return status)-.15 F
-(is 1.)144 148.8 Q(This is e)5 E(xactly equi)-.15 E -.25(va)-.25 G
-(lent to).25 E/F4 10/Times-Bold@0 SF(let ")2.5 E F1 -.2(ex)C(pr).2 E
-(ession)-.37 E F4(")A F0(.)A F4([[)108 165.6 Q F1 -.2(ex)2.5 G(pr).2 E
-(ession)-.37 E F4(]])2.5 E F0 1.299
-(Return a status of 0 or 1 depending on the e)144 177.6 R -.25(va)-.25 G
+-.35 E(\()108 84 Q/F1 10/Times-Italic@0 SF(list)A F0(\))A F1(list)17.11
+E F0 .011(is e)2.511 F -.15(xe)-.15 G .011(cuted in a subshell en).15 F
+.011(vironment \(see)-.4 F/F2 9/Times-Bold@0 SF .011
+(COMMAND EXECUTION ENVIR)2.511 F(ONMENT)-.27 E F0(belo)2.262 E(w\).)-.25
+E -1.11(Va)144 96 S 1.064(riable assignments and b)1.11 F 1.064
+(uiltin commands that af)-.2 F 1.064(fect the shell')-.25 F 3.564(se)
+-.55 G -.4(nv)-3.564 G 1.064(ironment do not remain in).4 F(ef)144 108 Q
+(fect after the command completes.)-.25 E(The return status is the e)5 E
+(xit status of)-.15 E F1(list)2.5 E F0(.)A({)108 124.8 Q F1(list)2.5 E
+F0 2.5(;})C F1(list)3.89 E F0 .401(is simply e)2.901 F -.15(xe)-.15 G
+.401(cuted in the current shell en).15 F(vironment.)-.4 E F1(list)5.401
+E F0 .402(must be terminated with a ne)2.901 F .402(wline or)-.25 F
+3.215(semicolon. This)144 136.8 R .715(is kno)3.215 F .715(wn as a)-.25
+F F1(gr)3.215 E .715(oup command)-.45 F F0 5.715(.T)C .715
+(he return status is the e)-5.715 F .714(xit status of)-.15 F F1(list)
+3.214 E F0 5.714(.N)C(ote)-5.714 E .219(that unlik)144 148.8 R 2.719(et)
+-.1 G .219(he metacharacters)-2.719 F/F3 10/Times-Bold@0 SF(\()2.719 E
+F0(and)2.719 E F3(\))2.719 E F0(,)A F3({)2.719 E F0(and)2.719 E F3(})
+2.719 E F0(are)2.719 E F1 -.37(re)2.72 G .22(served wor).37 F(ds)-.37 E
+F0 .22(and must occur where a reserv)2.72 F(ed)-.15 E -.1(wo)144 160.8 S
+.257(rd is permitted to be recognized.).1 F .257(Since the)5.257 F 2.757
+(yd)-.15 G 2.756(on)-2.757 G .256(ot cause a w)-2.756 F .256
+(ord break, the)-.1 F 2.756(ym)-.15 G .256(ust be separated)-2.756 F
+(from)144 172.8 Q F1(list)2.5 E F0
+(by whitespace or another shell metacharacter)2.5 E(.)-.55 E(\(\()108
+189.6 Q F1 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144 201.6 Q F1
+-.2(ex)2.551 G(pr).2 E(ession)-.37 E F0 .051(is e)2.551 F -.25(va)-.25 G
+.051(luated according to the rules described belo).25 F 2.552(wu)-.25 G
+(nder)-2.552 E F2 .052(ARITHMETIC EV)2.552 F(ALU)-1.215 E(A-)-.54 E
+(TION)144 213.6 Q/F4 9/Times-Roman@0 SF(.)A F0 .411(If the v)4.911 F
+.411(alue of the e)-.25 F .411(xpression is non-zero, the return status\
+ is 0; otherwise the return status)-.15 F(is 1.)144 225.6 Q(This is e)5
+E(xactly equi)-.15 E -.25(va)-.25 G(lent to).25 E F3(let ")2.5 E F1 -.2
+(ex)C(pr).2 E(ession)-.37 E F3(")A F0(.)A F3([[)108 242.4 Q F1 -.2(ex)
+2.5 G(pr).2 E(ession)-.37 E F3(]])2.5 E F0 1.299
+(Return a status of 0 or 1 depending on the e)144 254.4 R -.25(va)-.25 G
1.3(luation of the conditional e).25 F(xpression)-.15 E F1 -.2(ex)3.8 G
(pr).2 E(ession)-.37 E F0(.)A 2.274
-(Expressions are composed of the primaries described belo)144 189.6 R
+(Expressions are composed of the primaries described belo)144 266.4 R
4.773(wu)-.25 G(nder)-4.773 E F2(CONDITION)4.773 E 2.273(AL EXPRES-)-.18
-F(SIONS)144 201.6 Q F3(.)A F0 -.8(Wo)5.632 G 1.133
+F(SIONS)144 278.4 Q F4(.)A F0 -.8(Wo)5.632 G 1.133
(rd splitting and pathname e).8 F 1.133
(xpansion are not performed on the w)-.15 F 1.133(ords between the)-.1 F
-F4([[)3.633 E F0(and)144 213.6 Q F4(]])2.964 E F0 2.964(;t)C .464
+F3([[)3.633 E F0(and)144 290.4 Q F3(]])2.964 E F0 2.964(;t)C .464
(ilde e)-2.964 F .464(xpansion, parameter and v)-.15 F .464(ariable e)
-.25 F .463(xpansion, arithmetic e)-.15 F .463
(xpansion, command substi-)-.15 F 1.081
-(tution, process substitution, and quote remo)144 225.6 R -.25(va)-.15 G
+(tution, process substitution, and quote remo)144 302.4 R -.25(va)-.15 G
3.581(la).25 G 1.081(re performed.)-3.581 F 1.081
-(Conditional operators such as)6.081 F F4<ad66>3.581 E F0
-(must be unquoted to be recognized as primaries.)144 237.6 Q
-(When used with)144 255.6 Q F4([[)2.5 E F0 2.5(,t)C(he)-2.5 E F4(<)2.5 E
-F0(and)2.5 E F4(>)2.5 E F0(operators sort le)2.5 E
+(Conditional operators such as)6.081 F F3<ad66>3.581 E F0
+(must be unquoted to be recognized as primaries.)144 314.4 Q
+(When used with)144 332.4 Q F3([[)2.5 E F0 2.5(,t)C(he)-2.5 E F3(<)2.5 E
+F0(and)2.5 E F3(>)2.5 E F0(operators sort le)2.5 E
(xicographically using the current locale.)-.15 E .503(When the)144
-273.6 R F4(==)3.003 E F0(and)3.002 E F4(!=)3.002 E F0 .502(operators ar\
+350.4 R F3(==)3.003 E F0(and)3.002 E F3(!=)3.002 E F0 .502(operators ar\
e used, the string to the right of the operator is considered a pat-)
-3.002 F 1.224(tern and matched according to the rules described belo)144
-285.6 R 3.724(wu)-.25 G(nder)-3.724 E F4 -.1(Pa)3.724 G(tter).1 E 3.725
-(nM)-.15 G(atching)-3.725 E F0 6.225(.I)C 3.725(ft)-6.225 G 1.225
-(he shell)-3.725 F(option)144 297.6 Q F4(nocasematch)3.405 E F0 .904
-(is enabled, the match is performed without re)3.405 F -.05(ga)-.15 G
-.904(rd to the case of alphabetic).05 F 2.751(characters. The)144 309.6
-R .251(return v)2.751 F .251(alue is 0 if the string matches \()-.25 F
-F4(==)A F0 2.751(\)o)C 2.751(rd)-2.751 G .251(oes not match \()-2.751 F
-F4(!=)A F0 2.751(\)t)C .252(he pattern, and)-2.751 F 2.5(1o)144 321.6 S
-2.5(therwise. An)-2.5 F 2.5(yp)-.15 G(art of the pattern may be quoted \
-to force it to be matched as a string.)-2.5 E .243
-(An additional binary operator)144 339.6 R(,)-.4 E F4(=~)2.743 E F0
+3.002 F .81(tern and matched according to the rules described belo)144
+362.4 R 3.31(wu)-.25 G(nder)-3.31 E F3 -.1(Pa)3.31 G(tter).1 E 3.31(nM)
+-.15 G(atching)-3.31 E F0 3.31(,a)C 3.31(si)-3.31 G 3.31(ft)-3.31 G(he)
+-3.31 E F3(ext-)3.31 E(glob)144 374.4 Q F0 1.007
+(shell option were enabled.)3.507 F(The)6.007 E F3(=)3.507 E F0 1.007
+(operator is equi)3.507 F -.25(va)-.25 G 1.007(lent to).25 F F3(==)3.507
+E F0 6.007(.I)C 3.507(ft)-6.007 G 1.007(he shell option)-3.507 F F3
+(nocase-)3.506 E(match)144 386.4 Q F0 .198
+(is enabled, the match is performed without re)2.698 F -.05(ga)-.15 G
+.198(rd to the case of alphabetic characters.).05 F(The)5.198 E 1.068
+(return v)144 398.4 R 1.068(alue is 0 if the string matches \()-.25 F F3
+(==)A F0 3.568(\)o)C 3.568(rd)-3.568 G 1.068(oes not match \()-3.568 F
+F3(!=)A F0 3.568(\)t)C 1.067(he pattern, and 1 otherwise.)-3.568 F(An)
+144 410.4 Q 2.5(yp)-.15 G(art of the pattern may be quoted to force the\
+ quoted portion to be matched as a string.)-2.5 E .243
+(An additional binary operator)144 428.4 R(,)-.4 E F3(=~)2.743 E F0
2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
-(ilable, with the same precedence as).25 F F4(==)2.743 E F0(and)2.743 E
-F4(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953
+(ilable, with the same precedence as).25 F F3(==)2.743 E F0(and)2.743 E
+F3(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F 1.953
(used, the string to the right of the operator is considered an e)144
-351.6 R 1.954(xtended re)-.15 F 1.954(gular e)-.15 F 1.954
-(xpression and)-.15 F .207(matched accordingly \(as in)144 363.6 R F1
+440.4 R 1.953(xtended re)-.15 F 1.953(gular e)-.15 F 1.953
+(xpression and)-.15 F .207(matched accordingly \(as in)144 452.4 R F1
-.37(re)2.707 G -.1(ge)-.03 G(x)-.1 E F0 2.707(\(3\)\). The)B .207
(return v)2.707 F .207
-(alue is 0 if the string matches the pattern, and 1)-.25 F 3.345
-(otherwise. If)144 375.6 R .845(the re)3.345 F .845(gular e)-.15 F .846
+(alue is 0 if the string matches the pattern, and 1)-.25 F 3.346
+(otherwise. If)144 464.4 R .846(the re)3.346 F .846(gular e)-.15 F .845
(xpression is syntactically incorrect, the conditional e)-.15 F
-(xpression')-.15 E 3.346(sr)-.55 G(eturn)-3.346 E -.25(va)144 387.6 S
-.667(lue is 2.).25 F .667(If the shell option)5.667 F F4(nocasematch)
+(xpression')-.15 E 3.345(sr)-.55 G(eturn)-3.345 E -.25(va)144 476.4 S
+.666(lue is 2.).25 F .667(If the shell option)5.667 F F3(nocasematch)
3.167 E F0 .667(is enabled, the match is performed without re)3.167 F
--.05(ga)-.15 G .666(rd to).05 F .378(the case of alphabetic characters.)
-144 399.6 R(An)5.378 E 2.878(yp)-.15 G .378
-(art of the pattern may be quoted to force it to be matched)-2.878 F
-.265(as a string.)144 411.6 R .265
-(Substrings matched by parenthesized sube)5.265 F .265
-(xpressions within the re)-.15 F .265(gular e)-.15 F .265(xpression are)
--.15 F(sa)144 423.6 Q -.15(ve)-.2 G 3.096(di).15 G 3.097(nt)-3.096 G
-.597(he array v)-3.097 F(ariable)-.25 E F2 -.27(BA)3.097 G(SH_REMA).27 E
-(TCH)-.855 E F3(.)A F0 .597(The element of)5.097 F F2 -.27(BA)3.097 G
-(SH_REMA).27 E(TCH)-.855 E F0 .597(with inde)2.847 F 3.097(x0i)-.15 G(s)
--3.097 E .049(the portion of the string matching the entire re)144 435.6
-R .049(gular e)-.15 F 2.549(xpression. The)-.15 F .049(element of)2.549
-F F2 -.27(BA)2.549 G(SH_REMA).27 E(TCH)-.855 E F0(with inde)144 447.6 Q
-(x)-.15 E F1(n)2.5 E F0(is the portion of the string matching the)2.5 E
-F1(n)2.5 E F0(th parenthesized sube)A(xpression.)-.15 E .785
-(Expressions may be combined using the follo)144 465.6 R .786
+-.05(ga)-.15 G .667(rd to).05 F .593(the case of alphabetic characters.)
+144 488.4 R(An)5.593 E 3.093(yp)-.15 G .592
+(art of the pattern may be quoted to force the quoted por)-3.093 F(-)-.2
+E 1.016(tion to be matched as a string.)144 500.4 R(Brack)6.016 E 1.016
+(et e)-.1 F 1.016(xpressions in re)-.15 F 1.016(gular e)-.15 F 1.016
+(xpressions must be treated care-)-.15 F(fully)144 512.4 Q 4.436(,s)-.65
+G 1.936
+(ince normal quoting characters lose their meanings between brack)-4.436
+F 4.435(ets. If)-.1 F 1.935(the pattern is)4.435 F .264
+(stored in a shell v)144 524.4 R .264(ariable, quoting the v)-.25 F .264
+(ariable e)-.25 F .265
+(xpansion forces the entire pattern to be matched as)-.15 F 3.774(as)144
+536.4 S 3.774(tring. Substrings)-3.774 F 1.274
+(matched by parenthesized sube)3.774 F 1.273(xpressions within the re)
+-.15 F 1.273(gular e)-.15 F 1.273(xpression are)-.15 F(sa)144 548.4 Q
+-.15(ve)-.2 G 3.096(di).15 G 3.097(nt)-3.096 G .597(he array v)-3.097 F
+(ariable)-.25 E F2 -.27(BA)3.097 G(SH_REMA).27 E(TCH)-.855 E F4(.)A F0
+.597(The element of)5.097 F F2 -.27(BA)3.097 G(SH_REMA).27 E(TCH)-.855 E
+F0 .597(with inde)2.847 F 3.097(x0i)-.15 G(s)-3.097 E .049
+(the portion of the string matching the entire re)144 560.4 R .049
+(gular e)-.15 F 2.549(xpression. The)-.15 F .049(element of)2.549 F F2
+-.27(BA)2.549 G(SH_REMA).27 E(TCH)-.855 E F0(with inde)144 572.4 Q(x)
+-.15 E F1(n)2.5 E F0(is the portion of the string matching the)2.5 E F1
+(n)2.5 E F0(th parenthesized sube)A(xpression.)-.15 E .785
+(Expressions may be combined using the follo)144 590.4 R .786
(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
-477.6 Q F4(\()144 495.6 Q F1 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F4(\))
-2.5 E F0 .523(Returns the v)180 507.6 R .522(alue of)-.25 F F1 -.2(ex)
+602.4 Q F3(\()144 620.4 Q F1 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F3(\))
+2.5 E F0 .523(Returns the v)180 632.4 R .522(alue of)-.25 F F1 -.2(ex)
3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522(his may be used to o)
-5.522 F -.15(ve)-.15 G .522(rride the normal precedence of).15 F
-(operators.)180 519.6 Q F4(!)144 531.6 Q F1 -.2(ex)2.5 G(pr).2 E(ession)
--.37 E F0 -.35(Tr)180 543.6 S(ue if).35 E F1 -.2(ex)2.5 G(pr).2 E
-(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F1 -.2(ex)144 555.6 S(pr).2 E
-(ession1)-.37 E F4(&&)2.5 E F1 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0
--.35(Tr)180 567.6 S(ue if both).35 E F1 -.2(ex)2.5 G(pr).2 E(ession1)
+(operators.)180 644.4 Q F3(!)144 656.4 Q F1 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F0 -.35(Tr)180 668.4 S(ue if).35 E F1 -.2(ex)2.5 G(pr).2 E
+(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F1 -.2(ex)144 680.4 S(pr).2 E
+(ession1)-.37 E F3(&&)2.5 E F1 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0
+-.35(Tr)180 692.4 S(ue if both).35 E F1 -.2(ex)2.5 G(pr).2 E(ession1)
-.37 E F0(and)2.5 E F1 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(are true.)
-2.52 E F1 -.2(ex)144 579.6 S(pr).2 E(ession1)-.37 E F4(||)2.5 E F1 -.2
-(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 591.6 S(ue if either).35
+2.52 E F1 -.2(ex)144 704.4 S(pr).2 E(ession1)-.37 E F3(||)2.5 E F1 -.2
+(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 716.4 S(ue if either).35
E F1 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E F1 -.2(ex)2.5 G(pr)
-.2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 608.4 Q F4(&&)3.64 E F0
-(and)3.64 E F4(||)3.64 E F0 1.14(operators do not e)3.64 F -.25(va)-.25
-G(luate).25 E F1 -.2(ex)3.641 G(pr).2 E(ession2)-.37 E F0 1.141
-(if the v)3.641 F 1.141(alue of)-.25 F F1 -.2(ex)3.641 G(pr).2 E
+.2 E(ession2)-.37 E F0(is true.)2.52 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(5)195.95 E 0 Cg EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(The)144 84 Q/F1 10/Times-Bold@0 SF(&&)3.64 E F0(and)3.64 E F1(||)
+3.64 E F0 1.14(operators do not e)3.64 F -.25(va)-.25 G(luate).25 E/F2
+10/Times-Italic@0 SF -.2(ex)3.641 G(pr).2 E(ession2)-.37 E F0 1.141
+(if the v)3.641 F 1.141(alue of)-.25 F F2 -.2(ex)3.641 G(pr).2 E
(ession1)-.37 E F0 1.141(is suf)3.641 F 1.141(\214cient to)-.25 F
-(determine the return v)144 620.4 Q(alue of the entire conditional e)
--.25 E(xpression.)-.15 E F4 -.25(fo)108 637.2 S(r).25 E F1(name)2.5 E F0
-2.5([[)2.5 G F4(in)A F0([)2.5 E F1(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0
-2.5(]];])2.5 G F4(do)A F1(list)2.5 E F0(;)2.5 E F4(done)2.5 E F0 .424
-(The list of w)144 649.2 R .424(ords follo)-.1 F(wing)-.25 E F4(in)2.924
+(determine the return v)144 96 Q(alue of the entire conditional e)-.25 E
+(xpression.)-.15 E F1 -.25(fo)108 112.8 S(r).25 E F2(name)2.5 E F0 2.5
+([[)2.5 G F1(in)A F0([)2.5 E F2(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0 2.5
+(]];])2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .424
+(The list of w)144 124.8 R .424(ords follo)-.1 F(wing)-.25 E F1(in)2.924
E F0 .423(is e)2.924 F .423(xpanded, generating a list of items.)-.15 F
-.423(The v)5.423 F(ariable)-.25 E F1(name)2.923 E F0 .423(is set to)
-2.923 F .653(each element of this list in turn, and)144 661.2 R F1(list)
+.423(The v)5.423 F(ariable)-.25 E F2(name)2.923 E F0 .423(is set to)
+2.923 F .653(each element of this list in turn, and)144 136.8 R F2(list)
3.153 E F0 .653(is e)3.153 F -.15(xe)-.15 G .653(cuted each time.).15 F
-.653(If the)5.653 F F4(in)3.153 E F1(wor)3.153 E(d)-.37 E F0 .653
-(is omitted, the)3.153 F F4 -.25(fo)3.153 G(r).25 E F0 .649(command e)
-144 673.2 R -.15(xe)-.15 G(cutes).15 E F1(list)3.149 E F0 .648
-(once for each positional parameter that is set \(see)3.148 F F2 -.666
-(PA)3.148 G(RAMETERS).666 E F0(belo)2.898 E(w\).)-.25 E .153
-(The return status is the e)144 685.2 R .153
+.653(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653
+(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .649(command e)
+144 148.8 R -.15(xe)-.15 G(cutes).15 E F2(list)3.149 E F0 .648
+(once for each positional parameter that is set \(see)3.148 F/F3 9
+/Times-Bold@0 SF -.666(PA)3.148 G(RAMETERS).666 E F0(belo)2.898 E(w\).)
+-.25 E .153(The return status is the e)144 160.8 R .153
(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.654
(cutes. If).15 F .154(the e)2.654 F .154(xpansion of the items)-.15 F
-(follo)144 697.2 Q(wing)-.25 E F4(in)2.5 E F0
+(follo)144 172.8 Q(wing)-.25 E F1(in)2.5 E F0
(results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
-(cuted, and the return status is 0.).15 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(5)190.955 E 0 Cg EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.25(fo)108 84 S(r).25 E F0(\(\()2.5 E/F2
-10/Times-Italic@0 SF -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G
-(pr2).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5
-E F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.236
-(First, the arithmetic e)144 96 R(xpression)-.15 E F2 -.2(ex)3.736 G
-(pr1).2 E F0 1.235(is e)3.736 F -.25(va)-.25 G 1.235
+(cuted, and the return status is 0.).15 E F1 -.25(fo)108 189.6 S(r).25 E
+F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2
+E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2
+(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.236(First, the arithmetic e)
+144 201.6 R(xpression)-.15 E F2 -.2(ex)3.736 G(pr1).2 E F0 1.235(is e)
+3.736 F -.25(va)-.25 G 1.235
(luated according to the rules described belo).25 F 3.735(wu)-.25 G
-(nder)-3.735 E/F3 9/Times-Bold@0 SF .561(ARITHMETIC EV)144 108 R(ALU)
--1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0 .561
-(The arithmetic e)5.061 F(xpression)-.15 E F2 -.2(ex)3.061 G(pr2).2 E F0
-.562(is then e)3.062 F -.25(va)-.25 G .562(luated repeatedly until).25 F
-.592(it e)144 120 R -.25(va)-.25 G .592(luates to zero.).25 F .592
-(Each time)5.592 F F2 -.2(ex)3.092 G(pr2).2 E F0 -.25(eva)3.092 G .592
+(nder)-3.735 E F3 .561(ARITHMETIC EV)144 213.6 R(ALU)-1.215 E -.855(AT)
+-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0 .561(The arithmetic e)
+5.061 F(xpression)-.15 E F2 -.2(ex)3.061 G(pr2).2 E F0 .562(is then e)
+3.062 F -.25(va)-.25 G .562(luated repeatedly until).25 F .592(it e)144
+225.6 R -.25(va)-.25 G .592(luates to zero.).25 F .592(Each time)5.592 F
+F2 -.2(ex)3.092 G(pr2).2 E F0 -.25(eva)3.092 G .592
(luates to a non-zero v).25 F(alue,)-.25 E F2(list)3.092 E F0 .591(is e)
3.092 F -.15(xe)-.15 G .591(cuted and the arith-).15 F .228(metic e)144
-132 R(xpression)-.15 E F2 -.2(ex)2.728 G(pr3).2 E F0 .229(is e)2.728 F
+237.6 R(xpression)-.15 E F2 -.2(ex)2.728 G(pr3).2 E F0 .229(is e)2.728 F
-.25(va)-.25 G 2.729(luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229
(xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G
2.729(si)-2.729 G 2.729(fi)-2.729 G 2.729(te)-2.729 G -.25(va)-2.979 G
-.229(luates to 1.).25 F .228(The return v)144 144 R .228(alue is the e)
--.25 F .228(xit status of the last command in)-.15 F F2(list)2.728 E F0
-.227(that is e)2.728 F -.15(xe)-.15 G .227(cuted, or f).15 F .227
-(alse if an)-.1 F 2.727(yo)-.15 G 2.727(ft)-2.727 G(he)-2.727 E -.15(ex)
-144 156 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E F1(select)108
-172.8 Q F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)-.37 E F0
-2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 .432
-(The list of w)144 184.8 R .432(ords follo)-.1 F(wing)-.25 E F1(in)2.932
-E F0 .432(is e)2.932 F .432(xpanded, generating a list of items.)-.15 F
-.433(The set of e)5.433 F .433(xpanded w)-.15 F(ords)-.1 E .843
-(is printed on the standard error)144 196.8 R 3.342(,e)-.4 G .842
+.229(luates to 1.).25 F .228(The return v)144 249.6 R .228
+(alue is the e)-.25 F .228(xit status of the last command in)-.15 F F2
+(list)2.728 E F0 .227(that is e)2.728 F -.15(xe)-.15 G .227(cuted, or f)
+.15 F .227(alse if an)-.1 F 2.727(yo)-.15 G 2.727(ft)-2.727 G(he)-2.727
+E -.15(ex)144 261.6 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E F1
+(select)108 278.4 Q F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)
+-.37 E F0 2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0
+.432(The list of w)144 290.4 R .432(ords follo)-.1 F(wing)-.25 E F1(in)
+2.932 E F0 .432(is e)2.932 F .432(xpanded, generating a list of items.)
+-.15 F .433(The set of e)5.433 F .433(xpanded w)-.15 F(ords)-.1 E .843
+(is printed on the standard error)144 302.4 R 3.342(,e)-.4 G .842
(ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he)
-3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .842
(is omitted, the posi-)3.342 F .201(tional parameters are printed \(see)
-144 208.8 R F3 -.666(PA)2.701 G(RAMETERS).666 E F0(belo)2.451 E 2.701
+144 314.4 R F3 -.666(PA)2.701 G(RAMETERS).666 E F0(belo)2.451 E 2.701
(w\). The)-.25 F F3(PS3)2.701 E F0 .201(prompt is then displayed and a)
-2.451 F .214(line read from the standard input.)144 220.8 R .213
+2.451 F .214(line read from the standard input.)144 326.4 R .213
(If the line consists of a number corresponding to one of the dis-)5.214
-F 1.537(played w)144 232.8 R 1.537(ords, then the v)-.1 F 1.537(alue of)
+F 1.537(played w)144 338.4 R 1.537(ords, then the v)-.1 F 1.537(alue of)
-.25 F F2(name)4.397 E F0 1.537(is set to that w)4.217 F 4.037(ord. If)
-.1 F 1.538(the line is empty)4.038 F 4.038(,t)-.65 G 1.538(he w)-4.038
-F 1.538(ords and)-.1 F .066(prompt are displayed ag)144 244.8 R 2.566
+F 1.538(ords and)-.1 F .066(prompt are displayed ag)144 350.4 R 2.566
(ain. If)-.05 F .065(EOF is read, the command completes.)2.566 F(An)
5.065 E 2.565(yo)-.15 G .065(ther v)-2.565 F .065(alue read causes)-.25
-F F2(name)144 256.8 Q F0 .972(to be set to null.)3.652 F .972
+F F2(name)144 362.4 Q F0 .972(to be set to null.)3.652 F .972
(The line read is sa)5.972 F -.15(ve)-.2 G 3.473(di).15 G 3.473(nt)
-3.473 G .973(he v)-3.473 F(ariable)-.25 E F3(REPL)3.473 E(Y)-.828 E F4
(.)A F0(The)5.473 E F2(list)3.563 E F0 .973(is e)4.153 F -.15(xe)-.15 G
-.973(cuted after).15 F .072(each selection until a)144 268.8 R F1(br)
+.973(cuted after).15 F .072(each selection until a)144 374.4 R F1(br)
2.571 E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select)
2.571 E F0 .071(is the e)2.571 F .071(xit status of the)-.15 F
-(last command e)144 280.8 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E
+(last command e)144 386.4 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E
F0 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)
--.15 G(cuted.).15 E F1(case)108 297.6 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5
+-.15 G(cuted.).15 E F1(case)108 403.2 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5
E F0 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
(pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...)
-2.5 E F1(esac)2.5 E F0(A)144 309.6 Q F1(case)3.264 E F0 .764
+2.5 E F1(esac)2.5 E F0(A)144 415.2 Q F1(case)3.264 E F0 .764
(command \214rst e)3.264 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
3.264(,a)C .764(nd tries to match it ag)-3.264 F .764(ainst each)-.05 F
F2(pattern)3.264 E F0 .765(in turn, using the)3.264 F .596
-(same matching rules as for pathname e)144 321.6 R .595(xpansion \(see)
+(same matching rules as for pathname e)144 427.2 R .595(xpansion \(see)
-.15 F F1 -.1(Pa)3.095 G .595(thname Expansion).1 F F0(belo)3.095 E
3.095(w\). The)-.25 F F2(wor)3.095 E(d)-.37 E F0(is)3.095 E -.15(ex)144
-333.6 S 1.092(panded using tilde e).15 F 1.092
+439.2 S 1.092(panded using tilde e).15 F 1.092
(xpansion, parameter and v)-.15 F 1.092(ariable e)-.25 F 1.092
(xpansion, arithmetic substitution, com-)-.15 F 1.268
-(mand substitution, process substitution and quote remo)144 345.6 R -.25
+(mand substitution, process substitution and quote remo)144 451.2 R -.25
(va)-.15 G 3.768(l. Each).25 F F2(pattern)3.768 E F0 -.15(ex)3.768 G
-1.268(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 357.6 R
+1.268(amined is e).15 F(xpanded)-.15 E .353(using tilde e)144 463.2 R
.353(xpansion, parameter and v)-.15 F .353(ariable e)-.25 F .353
(xpansion, arithmetic substitution, command substi-)-.15 F 1.517
-(tution, and process substitution.)144 369.6 R 1.517
+(tution, and process substitution.)144 475.2 R 1.517
(If the shell option)6.517 F F1(nocasematch)4.016 E F0 1.516
(is enabled, the match is per)4.016 F(-)-.2 E 1.346(formed without re)
-144 381.6 R -.05(ga)-.15 G 1.346
+144 487.2 R -.05(ga)-.15 G 1.346
(rd to the case of alphabetic characters.).05 F 1.347
-(When a match is found, the corre-)6.347 F(sponding)144 393.6 Q F2(list)
+(When a match is found, the corre-)6.347 F(sponding)144 499.2 Q F2(list)
2.777 E F0 .277(is e)2.777 F -.15(xe)-.15 G 2.777(cuted. If).15 F(the)
2.777 E F1(;;)2.777 E F0 .277
(operator is used, no subsequent matches are attempted after the)2.777 F
-.848(\214rst pattern match.)144 405.6 R(Using)5.848 E F1(;&)3.348 E F0
+.848(\214rst pattern match.)144 511.2 R(Using)5.848 E F1(;&)3.348 E F0
.849(in place of)3.349 F F1(;;)3.349 E F0 .849(causes e)3.349 F -.15(xe)
-.15 G .849(cution to continue with the).15 F F2(list)3.349 E F0
-(associated)3.349 E .078(with the ne)144 417.6 R .078
+(associated)3.349 E .078(with the ne)144 523.2 R .078
(xt set of patterns.)-.15 F(Using)5.078 E F1(;;&)2.578 E F0 .078
(in place of)2.578 F F1(;;)2.578 E F0 .077
(causes the shell to test the ne)2.578 F .077(xt pattern list in)-.15 F
-.227(the statement, if an)144 429.6 R 1.527 -.65(y, a)-.15 H .227(nd e)
+.227(the statement, if an)144 535.2 R 1.527 -.65(y, a)-.15 H .227(nd e)
.65 F -.15(xe)-.15 G .227(cute an).15 F 2.727(ya)-.15 G(ssociated)-2.727
E F2(list)2.727 E F0 .227(on a successful match.)2.727 F .227(The e)
-5.227 F .227(xit status is zero)-.15 F(if no pattern matches.)144 441.6
+5.227 F .227(xit status is zero)-.15 F(if no pattern matches.)144 547.2
Q(Otherwise, it is the e)5 E(xit status of the last command e)-.15 E
--.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0(.)A F1(if)108 458.4 Q F2
-(list)2.5 E F0(;)A F1(then)2.5 E F2(list;)2.5 E F0([)2.5 E F1(elif)2.5 E
-F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5
-E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 470.4 Q F1
-(if)2.978 E F2(list)3.068 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978
+-.15(xe)-.15 G(cuted in).15 E F2(list)2.5 E F0(.)A F1(if)108 564 Q F2
+(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;[)C F1(elif)A F2
+(list)2.5 E F0(;)A F1(then)2.5 E F2(list)2.5 E F0 2.5(;].)C(.. [)-2.5 E
+F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C F1<8c>A F0(The)144 576 Q F1(if)
+2.978 E F2(list)3.068 E F0 .478(is e)3.658 F -.15(xe)-.15 G 2.978
(cuted. If).15 F .478(its e)2.978 F .478(xit status is zero, the)-.15 F
F1(then)2.978 E F2(list)2.978 E F0 .478(is e)2.978 F -.15(xe)-.15 G
2.978(cuted. Otherwise,).15 F(each)2.978 E F1(elif)2.977 E F2(list)2.977
-E F0 1.087(is e)144 482.4 R -.15(xe)-.15 G 1.087
+E F0 1.087(is e)144 588 R -.15(xe)-.15 G 1.087
(cuted in turn, and if its e).15 F 1.087
(xit status is zero, the corresponding)-.15 F F1(then)3.587 E F2(list)
3.587 E F0 1.088(is e)3.588 F -.15(xe)-.15 G 1.088(cuted and the).15 F
-.104(command completes.)144 494.4 R .103(Otherwise, the)5.104 F F1(else)
+.104(command completes.)144 600 R .103(Otherwise, the)5.104 F F1(else)
2.603 E F2(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103
(cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e)
--.15 F .103(xit sta-)-.15 F(tus of the last command e)144 506.4 Q -.15
-(xe)-.15 G(cuted, or zero if no condition tested true.).15 E F1(while)
-108 523.2 Q F2(list-1)2.5 E F0(;)A F1(do)2.5 E F2(list-2)2.5 E F0(;)A F1
-(done)2.5 E(until)108 535.2 Q F2(list-1)2.5 E F0(;)A F1(do)2.5 E F2
-(list-2)2.5 E F0(;)A F1(done)2.5 E F0(The)144 547.2 Q F1(while)3.45 E F0
+-.15 F .103(xit sta-)-.15 F(tus of the last command e)144 612 Q -.15(xe)
+-.15 G(cuted, or zero if no condition tested true.).15 E F1(while)108
+628.8 Q F2(list-1)2.5 E F0(;)A F1(do)2.5 E F2(list-2)2.5 E F0(;)A F1
+(done)2.5 E(until)108 640.8 Q F2(list-1)2.5 E F0(;)A F1(do)2.5 E F2
+(list-2)2.5 E F0(;)A F1(done)2.5 E F0(The)144 652.8 Q F1(while)3.45 E F0
.95(command continuously e)3.45 F -.15(xe)-.15 G .95(cutes the list).15
F F2(list-2)3.45 E F0 .95(as long as the last command in the list)3.45 F
-F2(list-1)144 559.2 Q F0 .205(returns an e)2.705 F .205
+F2(list-1)144 664.8 Q F0 .205(returns an e)2.705 F .205
(xit status of zero.)-.15 F(The)5.205 E F1(until)2.705 E F0 .205
(command is identical to the)2.705 F F1(while)2.705 E F0 .205
-(command, e)2.705 F(xcept)-.15 E .599(that the test is ne)144 571.2 R
+(command, e)2.705 F(xcept)-.15 E .599(that the test is ne)144 676.8 R
-.05(ga)-.15 G(ted;).05 E F2(list-2)3.189 E F0 .599(is e)3.119 F -.15
(xe)-.15 G .6(cuted as long as the last command in).15 F F2(list-1)3.19
-E F0 .6(returns a non-zero)3.1 F -.15(ex)144 583.2 S .205(it status.).15
+E F0 .6(returns a non-zero)3.1 F -.15(ex)144 688.8 S .205(it status.).15
F .205(The e)5.205 F .205(xit status of the)-.15 F F1(while)2.705 E F0
(and)2.705 E F1(until)2.704 E F0 .204(commands is the e)2.704 F .204
-(xit status of the last command)-.15 F -.15(exe)144 595.2 S(cuted in).15
+(xit status of the last command)-.15 F -.15(exe)144 700.8 S(cuted in).15
E F2(list-2)2.5 E F0 2.5(,o)C 2.5(rz)-2.5 G(ero if none w)-2.5 E(as e)
--.1 E -.15(xe)-.15 G(cuted.).15 E F1(Copr)87 612 Q(ocesses)-.18 E F0(A)
-108 624 Q F2(copr)3.712 E(ocess)-.45 E F0 1.212
+-.1 E -.15(xe)-.15 G(cuted.).15 E(GNU Bash 4.3)72 768 Q(2014 February 2)
+141.79 E(6)195.95 E 0 Cg EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(Copr)87 84 Q(ocesses)-.18 E F0(A)108 96 Q
+/F2 10/Times-Italic@0 SF(copr)3.712 E(ocess)-.45 E F0 1.212
(is a shell command preceded by the)3.712 F F1(copr)3.713 E(oc)-.18 E F0
(reserv)3.713 E 1.213(ed w)-.15 F 3.713(ord. A)-.1 F 1.213
(coprocess is e)3.713 F -.15(xe)-.15 G 1.213(cuted asyn-).15 F .575(chr\
onously in a subshell, as if the command had been terminated with the)
-108 636 R F1(&)3.074 E F0 .574(control operator)3.074 F 3.074(,w)-.4 G
-.574(ith a tw)-3.074 F(o-)-.1 E -.1(wa)108 648 S 2.5(yp).1 G
+108 108 R F1(&)3.074 E F0 .574(control operator)3.074 F 3.074(,w)-.4 G
+.574(ith a tw)-3.074 F(o-)-.1 E -.1(wa)108 120 S 2.5(yp).1 G
(ipe established between the e)-2.5 E -.15(xe)-.15 G
(cuting shell and the coprocess.).15 E(The format for a coprocess is:)
-108 664.8 Q F1(copr)144 681.6 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27
+108 136.8 Q F1(copr)144 153.6 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27
E F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37
-E F0(])A .922(This creates a coprocess named)108 698.4 R F2 -.27(NA)
-3.422 G(ME).27 E F0 5.922(.I)C(f)-5.922 E F2 -.27(NA)3.422 G(ME).27 E F0
-.923(is not supplied, the def)3.422 F .923(ault name is)-.1 F F2(COPR)
-3.423 E(OC)-.4 E F0(.)A F2 -.27(NA)5.923 G(ME).27 E F0 .64
-(must not be supplied if)108 710.4 R F2(command)3.14 E F0 .64(is a)3.14
+E F0(])A .708(This creates a coprocess named)108 170.4 R F2 -.27(NA)
+3.208 G(ME).27 E F0 5.708(.I)C(f)-5.708 E F2 -.27(NA)3.208 G(ME).27 E F0
+.708(is not supplied, the def)3.208 F .708(ault name is)-.1 F F1(COPR)
+3.209 E(OC)-.3 E F0(.)A F2 -.27(NA)5.709 G(ME).27 E F0 .64
+(must not be supplied if)108 182.4 R F2(command)3.14 E F0 .64(is a)3.14
F F2 .64(simple command)3.14 F F0 .64(\(see abo)3.14 F -.15(ve)-.15 G
.64(\); otherwise, it is interpreted as the \214rst).15 F -.1(wo)108
-722.4 S .163(rd of the simple command.).1 F .163(When the coproc is e)
-5.163 F -.15(xe)-.15 G .163(cuted, the shell creates an array v).15 F
-.163(ariable \(see)-.25 F F1(Arrays)2.663 E F0(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(6)190.955 E 0 Cg EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(belo)108 84 Q .512(w\) named)-.25 F/F1 10/Times-Italic@0 SF -.27
-(NA)3.012 G(ME).27 E F0 .512(in the conte)3.012 F .511(xt of the e)-.15
-F -.15(xe)-.15 G .511(cuting shell.).15 F .511(The standard output of)
-5.511 F F1(command)3.211 E F0 .511(is connected)3.781 F .81
-(via a pipe to a \214le descriptor in the e)108 96 R -.15(xe)-.15 G .811
-(cuting shell, and that \214le descriptor is assigned to).15 F F1 -.27
-(NA)3.311 G(ME).27 E F0 3.311([0]. The)B .717(standard input of)108 108
-R F1(command)3.417 E F0 .716
-(is connected via a pipe to a \214le descriptor in the e)3.987 F -.15
-(xe)-.15 G .716(cuting shell, and that \214le).15 F .702
-(descriptor is assigned to)108 120 R F1 -.27(NA)3.202 G(ME).27 E F0
-3.202([1]. This)B .703(pipe is established before an)3.203 F 3.203(yr)
--.15 G .703(edirections speci\214ed by the com-)-3.203 F 1.184
-(mand \(see)108 132 R/F2 9/Times-Bold@0 SF(REDIRECTION)3.684 E F0(belo)
-3.434 E 3.684(w\). The)-.25 F 1.183
-(\214le descriptors can be utilized as ar)3.684 F 1.183
-(guments to shell commands)-.18 F 1.796
-(and redirections using standard w)108 144 R 1.796(ord e)-.1 F 4.297
-(xpansions. The)-.15 F 1.797(process ID of the shell spa)4.297 F 1.797
-(wned to e)-.15 F -.15(xe)-.15 G 1.797(cute the).15 F .483
-(coprocess is a)108 156 R -.25(va)-.2 G .483(ilable as the v).25 F .483
-(alue of the v)-.25 F(ariable)-.25 E F1 -.27(NA)2.983 G(ME).27 E F0
-2.983(_PID. The)B/F3 10/Times-Bold@0 SF(wait)2.983 E F0 -.2(bu)2.983 G
-.483(iltin command may be used to).2 F -.1(wa)108 168 S
-(it for the coprocess to terminate.).1 E
-(The return status of a coprocess is the e)108 184.8 Q(xit status of)
--.15 E F1(command)2.5 E F0(.)A F3(Shell Function De\214nitions)87 201.6
-Q F0 2.697(As)108 213.6 S .198
-(hell function is an object that is called lik)-2.697 F 2.698(eas)-.1 G
-.198(imple command and e)-2.698 F -.15(xe)-.15 G .198
-(cutes a compound command with).15 F 2.5(an)108 225.6 S .5 -.25(ew s)
--2.5 H(et of positional parameters.).25 E
-(Shell functions are declared as follo)5 E(ws:)-.25 E F1(name)108 242.4
-Q F0(\(\))2.5 E F1(compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C
-(dir).37 E(ection)-.37 E F0(])A F3(function)108 254.4 Q F1(name)2.5 E F0
-([\(\)])2.5 E F1(compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir)
-.37 E(ection)-.37 E F0(])A 1.403(This de\214nes a function named)144
-266.4 R F1(name)3.902 E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402
-(ed w)-.15 F(ord)-.1 E F3(function)3.902 E F0 1.402(is optional.)3.902 F
-1.402(If the)6.402 F F3(function)3.902 E F0(reserv)144 278.4 Q .162
+194.4 S 1.44(rd of the simple command.).1 F 1.44
+(When the coprocess is e)6.44 F -.15(xe)-.15 G 1.44
+(cuted, the shell creates an array v).15 F 1.44(ariable \(see)-.25 F F1
+(Arrays)108 206.4 Q F0(belo)3.671 E 1.171(w\) named)-.25 F F2 -.27(NA)
+3.671 G(ME).27 E F0 1.171(in the conte)3.671 F 1.171(xt of the e)-.15 F
+-.15(xe)-.15 G 1.171(cuting shell.).15 F 1.17(The standard output of)
+6.17 F F2(command)3.87 E F0(is)4.44 E 2.029
+(connected via a pipe to a \214le descriptor in the e)108 218.4 R -.15
+(xe)-.15 G 2.029
+(cuting shell, and that \214le descriptor is assigned to).15 F F2 -.27
+(NA)108 230.4 S(ME).27 E F0 3.857([0]. The)B 1.357(standard input of)
+3.857 F F2(command)4.057 E F0 1.356
+(is connected via a pipe to a \214le descriptor in the e)4.627 F -.15
+(xe)-.15 G(cuting).15 E .103
+(shell, and that \214le descriptor is assigned to)108 242.4 R F2 -.27
+(NA)2.603 G(ME).27 E F0 2.603([1]. This)B .103
+(pipe is established before an)2.603 F 2.604(yr)-.15 G .104
+(edirections spec-)-2.604 F 1.272(i\214ed by the command \(see)108 254.4
+R/F3 9/Times-Bold@0 SF(REDIRECTION)3.771 E F0(belo)3.521 E 3.771
+(w\). The)-.25 F 1.271(\214le descriptors can be utilized as ar)3.771 F
+1.271(guments to)-.18 F .515
+(shell commands and redirections using standard w)108 266.4 R .515
+(ord e)-.1 F 3.015(xpansions. The)-.15 F .515
+(\214le descriptors are not a)3.015 F -.25(va)-.2 G .515(ilable in).25 F
+3.637(subshells. The)108 278.4 R 1.137(process ID of the shell spa)3.637
+F 1.137(wned to e)-.15 F -.15(xe)-.15 G 1.137(cute the coprocess is a)
+.15 F -.25(va)-.2 G 1.136(ilable as the v).25 F 1.136(alue of the)-.25 F
+-.25(va)108 290.4 S(riable).25 E F2 -.27(NA)2.5 G(ME).27 E F0 2.5
+(_PID. The)B F1(wait)2.5 E F0 -.2(bu)2.5 G
+(iltin command may be used to w).2 E
+(ait for the coprocess to terminate.)-.1 E .336
+(Since the coprocess is created as an asynchronous command, the)108
+307.2 R F1(copr)2.836 E(oc)-.18 E F0 .336(command al)2.836 F -.1(wa)-.1
+G .336(ys returns success.).1 F
+(The return status of a coprocess is the e)108 319.2 Q(xit status of)
+-.15 E F2(command)2.5 E F0(.)A F1(Shell Function De\214nitions)87 336 Q
+F0 2.698(As)108 348 S .198
+(hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G
+.198(imple command and e)-2.698 F -.15(xe)-.15 G .197
+(cutes a compound command with).15 F 2.5(an)108 360 S .5 -.25(ew s)-2.5
+H(et of positional parameters.).25 E
+(Shell functions are declared as follo)5 E(ws:)-.25 E F2(name)108 376.8
+Q F0(\(\))2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C
+(dir).37 E(ection)-.37 E F0(])A F1(function)108 388.8 Q F2(name)2.5 E F0
+([\(\)])2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C(dir)
+.37 E(ection)-.37 E F0(])A 1.402(This de\214nes a function named)144
+400.8 R F2(name)3.902 E F0 6.402(.T)C 1.402(he reserv)-6.402 F 1.402
+(ed w)-.15 F(ord)-.1 E F1(function)3.902 E F0 1.402(is optional.)3.902 F
+1.403(If the)6.402 F F1(function)3.903 E F0(reserv)144 412.8 Q .162
(ed w)-.15 F .162(ord is supplied, the parentheses are optional.)-.1 F
-(The)5.162 E F1(body)2.662 E F0 .162(of the function is the compound)
-2.662 F(command)144 290.4 Q F1(compound\255command)2.784 E F0(\(see)
-3.354 E F3 .084(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G
-2.584(\). That).15 F .084(command is usually a)2.584 F F1(list)144 302.4
+(The)5.162 E F2(body)2.662 E F0 .162(of the function is the compound)
+2.662 F(command)144 424.8 Q F2(compound\255command)2.784 E F0(\(see)
+3.354 E F1 .084(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G
+2.584(\). That).15 F .084(command is usually a)2.584 F F2(list)144 436.8
Q F0 .044(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F
-2.544(yc)-.15 G .044(ommand listed under)-2.544 F F3 .044
-(Compound Commands)2.544 F F0(abo)144 314.4 Q -.15(ve)-.15 G(.).15 E F1
-(compound\255command)6.671 E F0 1.671(is e)4.171 F -.15(xe)-.15 G 1.671
-(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1(name)4.171 E F0 1.671
-(is speci\214ed as the name of a simple)4.171 F 3.008(command. An)144
-326.4 R 3.009(yr)-.15 G .509(edirections \(see)-3.009 F F2(REDIRECTION)
-3.009 E F0(belo)2.759 E .509
-(w\) speci\214ed when a function is de\214ned are)-.25 F .581
-(performed when the function is e)144 338.4 R -.15(xe)-.15 G 3.081
-(cuted. The).15 F -.15(ex)3.081 G .58
-(it status of a function de\214nition is zero unless a).15 F .177(synta\
-x error occurs or a readonly function with the same name already e)144
-350.4 R 2.678(xists. When)-.15 F -.15(exe)2.678 G .178(cuted, the).15 F
--.15(ex)144 362.4 S .64(it status of a function is the e).15 F .64
-(xit status of the last command e)-.15 F -.15(xe)-.15 G .64
-(cuted in the body).15 F 5.64(.\()-.65 G(See)-5.64 E F2(FUNC-)3.14 E
-(TIONS)144 374.4 Q F0(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95
-/Times-Bold@0 SF(COMMENTS)72 391.2 Q F0 .982(In a non-interacti)108
-403.2 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
--.15(ve s)-.25 H .982(hell in which the).15 F F3(interacti)3.482 E -.1
-(ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F3(shopt)3.482 E
-F0 -.2(bu)108 415.2 S .952(iltin is enabled \(see).2 F F2 .952(SHELL B)
+2.544(yc)-.15 G .044(ommand listed under)-2.544 F F1 .044
+(Compound Commands)2.544 F F0(abo)144 448.8 Q -.15(ve)-.15 G(.).15 E F2
+(compound\255command)6.67 E F0 1.67(is e)4.17 F -.15(xe)-.15 G 1.671
+(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2(name)4.171 E F0 1.671
+(is speci\214ed as the name of a simple)4.171 F 2.753(command. When)144
+460.8 R(in)2.753 E F2 .253(posix mode)2.753 F F0(,)A F2(name)2.753 E F0
+.253(may not be the name of one of the POSIX)2.753 F F2 .252(special b)
+2.753 F(uiltins)-.2 E F0(.)A(An)144 472.8 Q 3.241(yr)-.15 G .741
+(edirections \(see)-3.241 F F3(REDIRECTION)3.241 E F0(belo)2.991 E .742
+(w\) speci\214ed when a function is de\214ned are performed)-.25 F .171
+(when the function is e)144 484.8 R -.15(xe)-.15 G 2.671(cuted. The).15
+F -.15(ex)2.671 G .17
+(it status of a function de\214nition is zero unless a syntax error).15
+F .704(occurs or a readonly function with the same name already e)144
+496.8 R 3.205(xists. When)-.15 F -.15(exe)3.205 G .705(cuted, the e).15
+F .705(xit status)-.15 F 1.822(of a function is the e)144 508.8 R 1.821
+(xit status of the last command e)-.15 F -.15(xe)-.15 G 1.821
+(cuted in the body).15 F 6.821(.\()-.65 G(See)-6.821 E F3(FUNCTIONS)
+4.321 E F0(belo)144 520.8 Q -.65(w.)-.25 G(\)).65 E/F4 10.95
+/Times-Bold@0 SF(COMMENTS)72 537.6 Q F0 .982(In a non-interacti)108
+549.6 R 1.282 -.15(ve s)-.25 H .982(hell, or an interacti).15 F 1.282
+-.15(ve s)-.25 H .982(hell in which the).15 F F1(interacti)3.482 E -.1
+(ve)-.1 G(_comments).1 E F0 .982(option to the)3.482 F F1(shopt)3.482 E
+F0 -.2(bu)108 561.6 S .952(iltin is enabled \(see).2 F F3 .952(SHELL B)
3.452 F(UIL)-.09 E .952(TIN COMMANDS)-.828 F F0(belo)3.202 E .952
-(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F3(#)3.451 E
+(w\), a w)-.25 F .952(ord be)-.1 F .952(ginning with)-.15 F F1(#)3.451 E
F0 .951(causes that w)3.451 F(ord)-.1 E .604
-(and all remaining characters on that line to be ignored.)108 427.2 R
+(and all remaining characters on that line to be ignored.)108 573.6 R
.605(An interacti)5.605 F .905 -.15(ve s)-.25 H .605(hell without the)
-.15 F F3(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 439.2 Q F0
+.15 F F1(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 585.6 Q F0
1.337(option enabled does not allo)3.837 F 3.837(wc)-.25 G 3.836
-(omments. The)-3.837 F F3(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
+(omments. The)-3.837 F F1(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
F0 1.336(option is on by def)3.836 F 1.336(ault in)-.1 F(interacti)108
-451.2 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 468 S -.438(OT)
-.11 G(ING).438 E F1(Quoting)108 480 Q F0 .477(is used to remo)2.977 F
+597.6 Q .3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 614.4 S -.438(OT)
+.11 G(ING).438 E F2(Quoting)108 626.4 Q F0 .477(is used to remo)2.977 F
.777 -.15(ve t)-.15 H .477
(he special meaning of certain characters or w).15 F .477
(ords to the shell.)-.1 F .478(Quoting can be)5.478 F .185
(used to disable special treatment for special characters, to pre)108
-492 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184
-(ords from being recognized as)-.1 F(such, and to pre)108 504 Q -.15(ve)
--.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108 520.8
-R F1(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288(listed abo)
-2.788 F .588 -.15(ve u)-.15 H(nder).15 E F2(DEFINITIONS)2.788 E F0 .288
-(has special meaning to the shell and must be)2.538 F
-(quoted if it is to represent itself.)108 532.8 Q 1.345
-(When the command history e)108 549.6 R 1.344(xpansion f)-.15 F 1.344
-(acilities are being used \(see)-.1 F F2(HIST)3.844 E(OR)-.162 E 3.594
+638.4 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184
+(ords from being recognized as)-.1 F(such, and to pre)108 650.4 Q -.15
+(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108
+667.2 R F2(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
+(listed abo)2.788 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
+2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
+(quoted if it is to represent itself.)108 679.2 Q 1.345
+(When the command history e)108 696 R 1.344(xpansion f)-.15 F 1.344
+(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.594 E 1.344(w\), the)
--.25 F F1(history e)108 561.6 Q(xpansion)-.2 E F0(character)2.5 E 2.5
-(,u)-.4 G(sually)-2.5 E F3(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5
-E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
-(There are three quoting mechanisms: the)108 578.4 Q F1(escape c)2.5 E
+-.25 F F2(history e)108 708 Q(xpansion)-.2 E F0(character)2.5 E 2.5(,u)
+-.4 G(sually)-2.5 E F1(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5 E
+-.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
+(There are three quoting mechanisms: the)108 724.8 Q F2(escape c)2.5 E
(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
-(ingle quotes, and double quotes.)-2.5 E 2.974(An)108 595.2 S .474
-(on-quoted backslash \()-2.974 F F3(\\)A F0 2.974(\)i)C 2.974(st)-2.974
-G(he)-2.974 E F1 .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0 5.474
-(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)-.15 F
-.474(alue of the ne)-.25 F .475(xt character that)-.15 F(follo)108 607.2
-Q 1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
-(wline>. If)-.25 F(a)4.053 E F3(\\)4.053 E F0(<ne)A 1.553
+(ingle quotes, and double quotes.)-2.5 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(7)195.95 E 0 Cg EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 2.974(An)108 84 S .474(on-quoted backslash \()-2.974 F/F1 10
+/Times-Bold@0 SF(\\)A F0 2.974(\)i)C 2.974(st)-2.974 G(he)-2.974 E/F2 10
+/Times-Italic@0 SF .474(escape c)2.974 F(har)-.15 E(acter)-.15 E F0
+5.474(.I).73 G 2.974(tp)-5.474 G(reserv)-2.974 E .474(es the literal v)
+-.15 F .474(alue of the ne)-.25 F .475(xt character that)-.15 F(follo)
+108 96 Q 1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
+(wline>. If)-.25 F(a)4.053 E F1(\\)4.053 E F0(<ne)A 1.553
(wline> pair appears, and the backslash is not itself)-.25 F 1.122
-(quoted, the)108 619.2 R F3(\\)3.622 E F0(<ne)A 1.122
+(quoted, the)108 108 R F1(\\)3.622 E F0(<ne)A 1.122
(wline> is treated as a line continuation \(that is, it is remo)-.25 F
-.15(ve)-.15 G 3.622(df).15 G 1.123(rom the input stream and)-3.622 F
-(ef)108 631.2 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
-(Enclosing characters in single quotes preserv)108 648 R .295
+(ef)108 120 Q(fecti)-.25 E -.15(ve)-.25 G(ly ignored\).).15 E .295
+(Enclosing characters in single quotes preserv)108 136.8 R .295
(es the literal v)-.15 F .295(alue of each character within the quotes.)
-.25 F 2.795(As)5.295 G(in-)-2.795 E
-(gle quote may not occur between single quotes, e)108 660 Q -.15(ve)-.25
-G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033
-(Enclosing characters in double quotes preserv)108 676.8 R .034
+(gle quote may not occur between single quotes, e)108 148.8 Q -.15(ve)
+-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033
+(Enclosing characters in double quotes preserv)108 165.6 R .034
(es the literal v)-.15 F .034
(alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-688.8 S .828(ception of).15 F F3($)3.328 E F0(,)A F3<92>3.328 E F0(,)A
-F3(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
-(xpansion is enabled,)-.15 F F3(!)3.328 E F0 5.828(.T)C .828
-(he characters)-5.828 F F3($)3.328 E F0(and)3.328 E F3<92>3.328 E F0
+177.6 S .828(ception of).15 F F1($)3.328 E F0(,)A F1<92>3.328 E F0(,)A
+F1(\\)3.328 E F0 3.328(,a)C .828(nd, when history e)-3.328 F .828
+(xpansion is enabled,)-.15 F F1(!)3.328 E F0 5.828(.T)C .828
+(he characters)-5.828 F F1($)3.328 E F0(and)3.328 E F1<92>3.328 E F0
.827(retain their special)3.328 F .074(meaning within double quotes.)108
-700.8 R .074(The backslash retains its special meaning only when follo)
-5.074 F .075(wed by one of the)-.25 F(follo)108 712.8 Q .205
-(wing characters:)-.25 F F3($)2.705 E F0(,)A F3<92>2.705 E F0(,)A F3(")
-3.538 E F0(,).833 E F3(\\)2.705 E F0 2.705(,o)C(r)-2.705 E F3(<newline>)
+189.6 R .074(The backslash retains its special meaning only when follo)
+5.074 F .075(wed by one of the)-.25 F(follo)108 201.6 Q .205
+(wing characters:)-.25 F F1($)2.705 E F0(,)A F1<92>2.705 E F0(,)A F1(")
+3.538 E F0(,).833 E F1(\\)2.705 E F0 2.705(,o)C(r)-2.705 E F1(<newline>)
2.705 E F0 5.205(.A)C .204
(double quote may be quoted within double quotes by pre-)-2.5 F .081
-(ceding it with a backslash.)108 724.8 R .082(If enabled, history e)
-5.082 F .082(xpansion will be performed unless an)-.15 F F3(!)2.582 E F0
-.082(appearing in double)5.082 F(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(7)190.955 E 0 Cg EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(quotes is escaped using a backslash.)108 84 Q
-(The backslash preceding the)5 E/F1 10/Times-Bold@0 SF(!)2.5 E F0
-(is not remo)5 E -.15(ve)-.15 G(d.).15 E(The special parameters)108
-100.8 Q F1(*)2.5 E F0(and)2.5 E F1(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2
-H(pecial meaning when in double quotes \(see).15 E/F2 9/Times-Bold@0 SF
+(ceding it with a backslash.)108 213.6 R .082(If enabled, history e)
+5.082 F .082(xpansion will be performed unless an)-.15 F F1(!)2.582 E F0
+.082(appearing in double)5.082 F(quotes is escaped using a backslash.)
+108 225.6 Q(The backslash preceding the)5 E F1(!)2.5 E F0(is not remo)5
+E -.15(ve)-.15 G(d.).15 E(The special parameters)108 242.4 Q F1(*)2.5 E
+F0(and)2.5 E F1(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
+(pecial meaning when in double quotes \(see).15 E/F3 9/Times-Bold@0 SF
-.666(PA)2.5 G(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108
-117.6 S .212(rds of the form).8 F F1($)2.712 E F0<08>A/F3 10
-/Times-Italic@0 SF(string)A F0 2.712<0861>C .211(re treated specially)
--2.712 F 5.211(.T)-.65 G .211(he w)-5.211 F .211(ord e)-.1 F .211
-(xpands to)-.15 F F3(string)2.711 E F0 2.711(,w)C .211
-(ith backslash-escaped char)-2.711 F(-)-.2 E .604
-(acters replaced as speci\214ed by the ANSI C standard.)108 129.6 R .605
+259.2 S .212(rds of the form).8 F F1($)2.712 E F0<08>A F2(string)A F0
+2.712<0861>C .211(re treated specially)-2.712 F 5.211(.T)-.65 G .211
+(he w)-5.211 F .211(ord e)-.1 F .211(xpands to)-.15 F F2(string)2.711 E
+F0 2.711(,w)C .211(ith backslash-escaped char)-2.711 F(-)-.2 E .604
+(acters replaced as speci\214ed by the ANSI C standard.)108 271.2 R .605
(Backslash escape sequences, if present, are decoded)5.605 F(as follo)
-108 141.6 Q(ws:)-.25 E F1(\\a)144 153.6 Q F0(alert \(bell\))28.22 E F1
-(\\b)144 165.6 Q F0(backspace)27.66 E F1(\\e)144 177.6 Q(\\E)144 189.6 Q
-F0(an escape character)26.55 E F1(\\f)144 201.6 Q F0(form feed)29.89 E
-F1(\\n)144 213.6 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144
-225.6 Q F0(carriage return)28.78 E F1(\\t)144 237.6 Q F0(horizontal tab)
-29.89 E F1(\\v)144 249.6 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)
-144 261.6 Q F0(backslash)30.44 E F1<5c08>144 273.6 Q F0(single quote)
-30.44 E F1(\\")144 285.6 Q F0(double quote)27.67 E F1(\\)144 297.6 Q F3
+108 283.2 Q(ws:)-.25 E F1(\\a)144 295.2 Q F0(alert \(bell\))28.22 E F1
+(\\b)144 307.2 Q F0(backspace)27.66 E F1(\\e)144 319.2 Q(\\E)144 331.2 Q
+F0(an escape character)26.55 E F1(\\f)144 343.2 Q F0(form feed)29.89 E
+F1(\\n)144 355.2 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144
+367.2 Q F0(carriage return)28.78 E F1(\\t)144 379.2 Q F0(horizontal tab)
+29.89 E F1(\\v)144 391.2 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)
+144 403.2 Q F0(backslash)30.44 E F1<5c08>144 415.2 Q F0(single quote)
+30.44 E F1(\\")144 427.2 Q F0(double quote)27.67 E F1(\\)144 439.2 Q F2
(nnn)A F0(the eight-bit character whose v)18.22 E(alue is the octal v)
--.25 E(alue)-.25 E F3(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)
-144 309.6 Q F3(HH)A F0(the eight-bit character whose v)13.78 E
-(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F3(HH)2.5 E F0
+-.25 E(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)
+144 451.2 Q F2(HH)A F0(the eight-bit character whose v)13.78 E
+(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0
(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1
-(\\u)144 321.6 Q F3(HHHH)A F0 1.507
-(the Unicode \(ISO/IEC 10646\) character whose v)180 333.6 R 1.506
-(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F3(HHHH)
-4.006 E F0(\(one to four he)180 345.6 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 357.6 Q F3(HHHHHHHH)A F0 .547
-(the Unicode \(ISO/IEC 10646\) character whose v)180 369.6 R .547
-(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F3(HHHHH-)
-3.048 E(HHH)180 381.6 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F1(\\c)144 393.6 Q F3(x)A F0 2.5(ac)24.34 G(ontrol-)-2.5
-E F3(x)A F0(character)2.5 E(The e)108 410.4 Q(xpanded result is single-\
-quoted, as if the dollar sign had not been present.)-.15 E 2.64(Ad)108
-427.2 S .14(ouble-quoted string preceded by a dollar sign \()-2.64 F F1
-($)A F0(")A F3(string)A F0 .14
+(\\u)144 463.2 Q F2(HHHH)A F0 1.507
+(the Unicode \(ISO/IEC 10646\) character whose v)180 475.2 R 1.506
+(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
+4.006 E F0(\(one to four he)180 487.2 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 499.2 Q F2(HHHHHHHH)A F0 .547
+(the Unicode \(ISO/IEC 10646\) character whose v)180 511.2 R .547
+(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
+3.048 E(HHH)180 523.2 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
+(igits\))-2.5 E F1(\\c)144 535.2 Q F2(x)A F0 2.5(ac)24.34 G(ontrol-)-2.5
+E F2(x)A F0(character)2.5 E(The e)108 552 Q(xpanded result is single-qu\
+oted, as if the dollar sign had not been present.)-.15 E 2.64(Ad)108
+568.8 S .14(ouble-quoted string preceded by a dollar sign \()-2.64 F F1
+($)A F0(")A F2(string)A F0 .14
("\) will cause the string to be translated according)B .495
-(to the current locale.)108 439.2 R .495(If the current locale is)5.495
+(to the current locale.)108 580.8 R .495(If the current locale is)5.495
F F1(C)2.995 E F0(or)2.995 E F1(POSIX)2.995 E F0 2.995(,t)C .495
(he dollar sign is ignored.)-2.995 F .496(If the string is trans-)5.496
-F(lated and replaced, the replacement is double-quoted.)108 451.2 Q/F4
-10.95/Times-Bold@0 SF -.81(PA)72 468 S(RAMETERS).81 E F0(A)108 480 Q F3
-(par)4.593 E(ameter)-.15 E F0 .843(is an entity that stores v)4.073 F
-3.343(alues. It)-.25 F .843(can be a)3.343 F F3(name)3.342 E F0 3.342
+F(lated and replaced, the replacement is double-quoted.)108 592.8 Q/F4
+10.95/Times-Bold@0 SF -.81(PA)72 609.6 S(RAMETERS).81 E F0(A)108 621.6 Q
+F2(par)4.593 E(ameter)-.15 E F0 .843(is an entity that stores v)4.073 F
+3.343(alues. It)-.25 F .843(can be a)3.343 F F2(name)3.342 E F0 3.342
(,an).18 G(umber)-3.342 E 3.342(,o)-.4 G 3.342(ro)-3.342 G .842
-(ne of the special characters)-3.342 F .822(listed belo)108 492 R 3.323
-(wu)-.25 G(nder)-3.323 E F1 .823(Special P)3.323 F(arameters)-.1 E F0
-5.823(.A)C F3(variable)-2.21 E F0 .823(is a parameter denoted by a)3.503
-F F3(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823(riable has a).25
-F F3(value)108 504 Q F0 .369(and zero or more)2.869 F F3(attrib)2.869 E
-(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
+(ne of the special characters)-3.342 F .822(listed belo)108 633.6 R
+3.323(wu)-.25 G(nder)-3.323 E F1 .823(Special P)3.323 F(arameters)-.1 E
+F0 5.823(.A)C F2(variable)-2.21 E F0 .823(is a parameter denoted by a)
+3.503 F F2(name)3.323 E F0 5.823(.A).18 G -.25(va)-2.5 G .823
+(riable has a).25 F F2(value)108 645.6 Q F0 .369(and zero or more)2.869
+F F2(attrib)2.869 E(utes)-.2 E F0 5.369(.A)C(ttrib)-5.369 E .369
(utes are assigned using the)-.2 F F1(declar)2.868 E(e)-.18 E F0 -.2(bu)
2.868 G .368(iltin command \(see).2 F F1(declar)2.868 E(e)-.18 E F0
-(belo)108 516 Q 2.5(wi)-.25 G(n)-2.5 E F2(SHELL B)2.5 E(UIL)-.09 E
-(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 2.754(Ap)108 532.8
+(belo)108 657.6 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)2.5 E(UIL)-.09 E
+(TIN COMMANDS)-.828 E/F5 9/Times-Roman@0 SF(\).)A F0 2.754(Ap)108 674.4
S .254(arameter is set if it has been assigned a v)-2.754 F 2.754
(alue. The)-.25 F .254(null string is a v)2.754 F .255(alid v)-.25 F
2.755(alue. Once)-.25 F 2.755(av)2.755 G .255(ariable is set, it)-3.005
-F(may be unset only by using the)108 544.8 Q F1(unset)2.5 E F0 -.2(bu)
-2.5 G(iltin command \(see).2 E F2(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 561.6 Q F3(variable)2.79 E F0
-(may be assigned to by a statement of the form)2.68 E F3(name)144 578.4
-Q F0(=[)A F3(value)A F0(])A(If)108 595.2 Q F3(value)3.023 E F0 .233
+F(may be unset only by using the)108 686.4 Q F1(unset)2.5 E F0 -.2(bu)
+2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
+-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 703.2 Q F2(variable)2.79 E F0
+(may be assigned to by a statement of the form)2.68 E F2(name)144 720 Q
+F0(=[)A F2(value)A F0(])A(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E
+(8)195.95 E 0 Cg EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(If)108 84 Q/F1 10/Times-Italic@0 SF(value)3.023 E F0 .233
(is not gi)2.913 F -.15(ve)-.25 G .233(n, the v).15 F .232
-(ariable is assigned the null string.)-.25 F(All)5.232 E F3(values)3.022
+(ariable is assigned the null string.)-.25 F(All)5.232 E F1(values)3.022
E F0(under)3.002 E .232(go tilde e)-.18 F .232(xpansion, parameter)-.15
-F .515(and v)108 607.2 R .515(ariable e)-.25 F .515
+F .515(and v)108 96 R .515(ariable e)-.25 F .515
(xpansion, command substitution, arithmetic e)-.15 F .515
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
--3.015 E F2(EXP)3.015 E(ANSION)-.666 E F0(belo)108 619.2 Q 2.699
-(w\). If)-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F F1
-(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F3(value)
-2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .198
+-3.015 E/F2 9/Times-Bold@0 SF(EXP)3.015 E(ANSION)-.666 E F0(belo)108 108
+Q 2.699(w\). If)-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F/F3
+10/Times-Bold@0 SF(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)
+-.2 F F1(value)2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .198
(luated as an arithmetic e).25 F .198(xpression e)-.15 F -.15(ve)-.25 G
-(n).15 E .901(if the $\(\(...\)\) e)108 631.2 R .901
-(xpansion is not used \(see)-.15 F F1 .901(Arithmetic Expansion)3.401 F
+(n).15 E .901(if the $\(\(...\)\) e)108 120 R .901
+(xpansion is not used \(see)-.15 F F3 .901(Arithmetic Expansion)3.401 F
F0(belo)3.401 E 3.402(w\). W)-.25 F .902
-(ord splitting is not performed,)-.8 F 1.179(with the e)108 643.2 R
-1.179(xception of)-.15 F F1("$@")3.679 E F0 1.179(as e)3.679 F 1.179
-(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.178(Special P)
+(ord splitting is not performed,)-.8 F 1.179(with the e)108 132 R 1.179
+(xception of)-.15 F F3("$@")3.679 E F0 1.179(as e)3.679 F 1.179
+(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F3 1.178(Special P)
3.678 F(arameters)-.1 E F0 6.178(.P)C 1.178(athname e)-6.328 F 1.178
-(xpansion is not)-.15 F 3.648(performed. Assignment)108 655.2 R 1.148
-(statements may also appear as ar)3.648 F 1.149(guments to the)-.18 F F1
-(alias)3.649 E F0(,)A F1(declar)3.649 E(e)-.18 E F0(,)A F1(typeset)3.649
-E F0(,)A F1(export)3.649 E F0(,)A F1 -.18(re)108 667.2 S(adonly).18 E F0
-2.5(,a)C(nd)-2.5 E F1(local)2.5 E F0 -.2(bu)2.5 G(iltin commands.).2 E
-.377(In the conte)108 684 R .377
+(xpansion is not)-.15 F 3.648(performed. Assignment)108 144 R 1.148
+(statements may also appear as ar)3.648 F 1.149(guments to the)-.18 F F3
+(alias)3.649 E F0(,)A F3(declar)3.649 E(e)-.18 E F0(,)A F3(typeset)3.649
+E F0(,)A F3(export)3.649 E F0(,)A F3 -.18(re)108 156 S(adonly).18 E F0
+2.63(,a)C(nd)-2.63 E F3(local)2.63 E F0 -.2(bu)2.63 G .13
+(iltin commands.).2 F .13(When in)5.13 F F1 .129(posix mode)2.629 F F0
+2.629(,t)C .129(hese b)-2.629 F .129
+(uiltins may appear in a command after)-.2 F
+(one or more instances of the)108 168 Q F3(command)2.5 E F0 -.2(bu)2.5 G
+(iltin and retain these assignment statement properties.).2 E .376
+(In the conte)108 184.8 R .376
(xt where an assignment statement is assigning a v)-.15 F .376
-(alue to a shell v)-.25 F .376(ariable or array inde)-.25 F .376
+(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
(x, the +=)-.15 F .257
-(operator can be used to append to or add to the v)108 696 R(ariable')
+(operator can be used to append to or add to the v)108 196.8 R(ariable')
-.25 E 2.757(sp)-.55 G(re)-2.757 E .257(vious v)-.25 F 2.757(alue. When)
--.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .361
-(for which the)108 708 R F3(inte)2.861 E -.1(ge)-.4 G(r).1 E F0(attrib)
-2.861 E .361(ute has been set,)-.2 F F3(value)2.861 E F0 .361(is e)2.861
-F -.25(va)-.25 G .36(luated as an arithmetic e).25 F .36
-(xpression and added to the)-.15 F -.25(va)108 720 S(riable').25 E 2.888
-(sc)-.55 G .388(urrent v)-2.888 F .388(alue, which is also e)-.25 F -.25
-(va)-.25 G 2.889(luated. When).25 F .389(+= is applied to an array v)
-2.889 F .389(ariable using compound)-.25 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(8)190.955 E 0 Cg EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .186(assignment \(see)108 84 R/F1 10/Times-Bold@0 SF(Arrays)2.686
-E F0(belo)2.686 E .186(w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G
-.185(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.685
-(wv)-.25 G .185(alues are)-2.935 F 1.384(appended to the array be)108 96
-R 1.384(ginning at one greater than the array')-.15 F 3.885(sm)-.55 G
-1.385(aximum inde)-3.885 F 3.885(x\()-.15 G 1.385(for inde)-3.885 F -.15
-(xe)-.15 G 3.885(da).15 G 1.385(rrays\) or)-3.885 F .123
-(added as additional k)108 108 R -.15(ey)-.1 G<ad76>.15 E .123
+-.25 F .257(+= is applied to a v)2.757 F(ariable)-.25 E .36
+(for which the)108 208.8 R F1(inte)2.86 E -.1(ge)-.4 G(r).1 E F0(attrib)
+2.86 E .36(ute has been set,)-.2 F F1(value)2.86 E F0 .361(is e)2.861 F
+-.25(va)-.25 G .361(luated as an arithmetic e).25 F .361
+(xpression and added to the)-.15 F -.25(va)108 220.8 S(riable').25 E
+2.889(sc)-.55 G .389(urrent v)-2.889 F .389(alue, which is also e)-.25 F
+-.25(va)-.25 G 2.889(luated. When).25 F .389
+(+= is applied to an array v)2.889 F .388(ariable using compound)-.25 F
+.185(assignment \(see)108 232.8 R F3(Arrays)2.685 E F0(belo)2.685 E .185
+(w\), the v)-.25 F(ariable')-.25 E 2.685(sv)-.55 G .185
+(alue is not unset \(as it is when using =\), and ne)-2.935 F 2.686(wv)
+-.25 G .186(alues are)-2.936 F 1.385(appended to the array be)108 244.8
+R 1.384(ginning at one greater than the array')-.15 F 3.884(sm)-.55 G
+1.384(aximum inde)-3.884 F 3.884(x\()-.15 G 1.384(for inde)-3.884 F -.15
+(xe)-.15 G 3.884(da).15 G 1.384(rrays\) or)-3.884 F .122
+(added as additional k)108 256.8 R -.15(ey)-.1 G<ad76>.15 E .122
(alue pairs in an associati)-.25 F .423 -.15(ve a)-.25 H(rray).15 E
-5.123(.W)-.65 G .122(hen applied to a string-v)-5.123 F .122(alued v)
--.25 F(ariable,)-.25 E/F2 10/Times-Italic@0 SF(value)2.622 E F0(is e)108
-120 Q(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
-(alue.)-2.75 E F1 -.2(Po)87 136.8 S(sitional P).2 E(arameters)-.1 E F0
-(A)108 148.8 Q F2 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is \
-a parameter denoted by one or more digits, other than the single digit \
-0.)3.935 F(Posi-)5.706 E .445
-(tional parameters are assigned from the shell')108 160.8 R 2.944(sa)
--.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1
-(ke).2 G .444(d, and may be reassigned using).1 F(the)108 172.8 Q F1
-(set)3.333 E F0 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional\
- parameters may not be assigned to with assignment statements.)5.833 F
-(The)5.834 E .334(positional parameters are temporarily replaced when a\
- shell function is e)108 184.8 R -.15(xe)-.15 G .333(cuted \(see).15 F
-/F3 9/Times-Bold@0 SF(FUNCTIONS)2.833 E F0(belo)2.583 E(w\).)-.25 E
+5.123(.W)-.65 G .123(hen applied to a string-v)-5.123 F .123(alued v)
+-.25 F(ariable,)-.25 E F1(value)2.623 E F0(is e)108 268.8 Q
+(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
+(alue.)-2.75 E 3.383(Av)108 285.6 S .883(ariable can be assigned the)
+-3.633 F F1(namer)3.382 E(ef)-.37 E F0(attrib)3.382 E .882
+(ute using the)-.2 F F3<ad6e>3.382 E F0 .882(option to the)3.382 F F3
+(declar)3.382 E(e)-.18 E F0(or)3.382 E F3(local)3.382 E F0 -.2(bu)3.382
+G .882(iltin com-).2 F .315(mands \(see the descriptions of)108 297.6 R
+F3(declar)2.815 E(e)-.18 E F0(and)2.815 E F3(local)2.815 E F0(belo)2.815
+E .316(w\) to create a)-.25 F F1(namer)2.816 E(ef)-.37 E F0 2.816(,o)C
+2.816(rar)-2.816 G .316(eference to another v)-2.816 F(ari-)-.25 E 3.335
+(able. This)108 309.6 R(allo)3.335 E .835(ws v)-.25 F .835
+(ariables to be manipulated indirectly)-.25 F 5.835(.W)-.65 G(hene)
+-5.835 E -.15(ve)-.25 G 3.335(rt).15 G .835(he nameref v)-3.335 F .835
+(ariable is referenced or)-.25 F .021
+(assigned to, the operation is actually performed on the v)108 321.6 R
+.021(ariable speci\214ed by the nameref v)-.25 F(ariable')-.25 E 2.522
+(sv)-.55 G 2.522(alue. A)-2.772 F .819
+(nameref is commonly used within shell functions to refer to a v)108
+333.6 R .818(ariable whose name is passed as an ar)-.25 F(gu-)-.18 E
+.131(ment to the function.)108 345.6 R -.15(Fo)5.131 G 2.631(ri).15 G
+.131(nstance, if a v)-2.631 F .132
+(ariable name is passed to a shell function as its \214rst ar)-.25 F
+.132(gument, run-)-.18 F(ning)108 357.6 Q/F4 10/Courier@0 SF
+(declare -n ref=$1)144 375.6 Q F0 .303
+(inside the function creates a nameref v)108 393.6 R(ariable)-.25 E F3
+-.18(re)2.803 G(f).18 E F0 .303(whose v)2.803 F .303(alue is the v)-.25
+F .302(ariable name passed as the \214rst ar)-.25 F(gu-)-.18 E 3.318
+(ment. References)108 405.6 R .818(and assignments to)3.318 F F3 -.18
+(re)3.318 G(f).18 E F0 .818
+(are treated as references and assignments to the v)3.318 F .818
+(ariable whose)-.25 F .275(name w)108 417.6 R .275(as passed as)-.1 F F3
+($1)2.775 E F0 5.275(.I)C 2.775(ft)-5.275 G .275(he control v)-2.775 F
+.275(ariable in a)-.25 F F3 -.25(fo)2.775 G(r).25 E F0 .275
+(loop has the nameref attrib)2.775 F .274(ute, the list of w)-.2 F .274
+(ords can)-.1 F .354(be a list of shell v)108 429.6 R .354
+(ariables, and a name reference will be established for each w)-.25 F
+.355(ord in the list, in turn, when)-.1 F .086(the loop is e)108 441.6 R
+-.15(xe)-.15 G 2.586(cuted. Array).15 F -.25(va)2.586 G .086
+(riables cannot be gi).25 F -.15(ve)-.25 G 2.586(nt).15 G(he)-2.586 E F3
+<ad6e>2.586 E F0(attrib)2.585 E 2.585(ute. Ho)-.2 F(we)-.25 E -.15(ve)
+-.25 G .885 -.4(r, n).15 H .085(ameref v).4 F .085(ariables can ref-)
+-.25 F .883(erence array v)108 453.6 R .883
+(ariables and subscripted array v)-.25 F 3.383(ariables. Namerefs)-.25 F
+.883(can be unset using the)3.383 F F3<ad6e>3.383 E F0 .884
+(option to the)3.383 F F3(unset)108 465.6 Q F0 -.2(bu)2.558 G 2.558
+(iltin. Otherwise,).2 F(if)2.558 E F3(unset)2.558 E F0 .058(is e)2.558 F
+-.15(xe)-.15 G .058(cuted with the name of a nameref v).15 F .057
+(ariable as an ar)-.25 F .057(gument, the v)-.18 F(ari-)-.25 E
+(able referenced by the nameref v)108 477.6 Q(ariable will be unset.)
+-.25 E F3 -.2(Po)87 494.4 S(sitional P).2 E(arameters)-.1 E F0(A)108
+506.4 Q F1 .705(positional par)4.455 F(ameter)-.15 E F0 .706(is a param\
+eter denoted by one or more digits, other than the single digit 0.)3.935
+F(Posi-)5.706 E .445(tional parameters are assigned from the shell')108
+518.4 R 2.944(sa)-.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F
+-.2(vo)-.4 G -.1(ke).2 G .444(d, and may be reassigned using).1 F(the)
+108 530.4 Q F3(set)3.333 E F0 -.2(bu)3.333 G .833(iltin command.).2 F
+.834(Positional parameters may not be assigned to with assignment state\
+ments.)5.833 F(The)5.834 E .334(positional parameters are temporarily r\
+eplaced when a shell function is e)108 542.4 R -.15(xe)-.15 G .333
+(cuted \(see).15 F F2(FUNCTIONS)2.833 E F0(belo)2.583 E(w\).)-.25 E
1.403(When a positional parameter consisting of more than a single digi\
-t is e)108 201.6 R 1.404(xpanded, it must be enclosed in)-.15 F
-(braces \(see)108 213.6 Q F3(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E
-(w\).)-.25 E F1(Special P)87 230.4 Q(arameters)-.1 E F0 1.675
-(The shell treats se)108 242.4 R -.15(ve)-.25 G 1.675
+t is e)108 559.2 R 1.404(xpanded, it must be enclosed in)-.15 F
+(braces \(see)108 571.2 Q F2(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E
+(w\).)-.25 E F3(Special P)87 588 Q(arameters)-.1 E F0 1.675
+(The shell treats se)108 600 R -.15(ve)-.25 G 1.675
(ral parameters specially).15 F 6.675(.T)-.65 G 1.674
(hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 254.4 Q(wed.)-.25 E F1(*)108 266.4 Q F0 .605
-(Expands to the positional parameters, starting from one.)31 F .606
-(When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .084
-(ble quotes, it e)144 278.4 R .084(xpands to a single w)-.15 F .084
-(ord with the v)-.1 F .084
-(alue of each parameter separated by the \214rst char)-.25 F(-)-.2 E
-.003(acter of the)144 290.4 R F3(IFS)2.503 E F0 .003(special v)2.253 F
-2.503(ariable. That)-.25 F .003(is, ")2.503 F F1($*)A F0 2.503("i)C
-2.503(se)-2.503 G(qui)-2.503 E -.25(va)-.25 G .003(lent to ").25 F F1
-($1)A F2(c)A F1($2)A F2(c)A F1(...)A F0 .003(", where)B F2(c)2.703 E F0
-.004(is the \214rst char)2.813 F(-)-.2 E .769(acter of the v)144 302.4 R
-.769(alue of the)-.25 F F3(IFS)3.269 E F0 -.25(va)3.019 G 3.269
-(riable. If).25 F F3(IFS)3.268 E F0 .768
-(is unset, the parameters are separated by spaces.)3.018 F(If)5.768 E F3
-(IFS)144 314.4 Q F0(is null, the parameters are joined without interv)
-2.25 E(ening separators.)-.15 E F1(@)108 326.4 Q F0 .605
+(them is not allo)108 612 Q(wed.)-.25 E F3(*)108 624 Q F0 .223
+(Expands to the positional parameters, starting from one.)31 F .224
+(When the e)5.224 F .224(xpansion is not within double)-.15 F .663
+(quotes, each positional parameter e)144 636 R .662
+(xpands to a separate w)-.15 F 3.162(ord. In)-.1 F(conte)3.162 E .662
+(xts where it is performed,)-.15 F 1.081(those w)144 648 R 1.081
+(ords are subject to further w)-.1 F 1.082(ord splitting and pathname e)
+-.1 F 3.582(xpansion. When)-.15 F 1.082(the e)3.582 F(xpansion)-.15 E
+.915(occurs within double quotes, it e)144 660 R .914
+(xpands to a single w)-.15 F .914(ord with the v)-.1 F .914
+(alue of each parameter sepa-)-.25 F .89
+(rated by the \214rst character of the)144 672 R F2(IFS)3.39 E F0 .89
+(special v)3.14 F 3.39(ariable. That)-.25 F .891(is, ")3.391 F F3($*)A
+F0 3.391("i)C 3.391(se)-3.391 G(qui)-3.391 E -.25(va)-.25 G .891
+(lent to ").25 F F3($1)A F1(c)A F3($2)A F1(c)A F3(...)A F0(",)A(where)
+144 684 Q F1(c)3.533 E F0 .832(is the \214rst character of the v)3.643 F
+.832(alue of the)-.25 F F2(IFS)3.332 E F0 -.25(va)3.082 G 3.332
+(riable. If).25 F F2(IFS)3.332 E F0 .832(is unset, the parameters are)
+3.082 F(separated by spaces.)144 696 Q(If)5 E F2(IFS)2.5 E F0
+(is null, the parameters are joined without interv)2.25 E
+(ening separators.)-.15 E F3(@)108 708 Q F0 .605
(Expands to the positional parameters, starting from one.)26.7 F .606
(When the e)5.605 F .606(xpansion occurs within dou-)-.15 F .114
-(ble quotes, each parameter e)144 338.4 R .114(xpands to a separate w)
--.15 F 2.614(ord. That)-.1 F .113(is, ")2.613 F F1($@)A F0 2.613("i)C
-2.613(se)-2.613 G(qui)-2.613 E -.25(va)-.25 G .113(lent to ").25 F F1
-($1)A F0 2.613("")C F1($2)-2.613 E F0 2.613(".)C(..)-2.613 E .134
-(If the double-quoted e)144 350.4 R .134(xpansion occurs within a w)-.15
-F .135(ord, the e)-.1 F .135
+(ble quotes, each parameter e)144 720 R .114(xpands to a separate w)-.15
+F 2.614(ord. That)-.1 F .113(is, ")2.613 F F3($@)A F0 2.613("i)C 2.613
+(se)-2.613 G(qui)-2.613 E -.25(va)-.25 G .113(lent to ").25 F F3($1)A F0
+2.613("")C F3($2)-2.613 E F0 2.613(".)C(..)-2.613 E(GNU Bash 4.3)72 768
+Q(2014 February 2)141.79 E(9)195.95 E 0 Cg EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .134(If the double-quoted e)144 84 R .134
+(xpansion occurs within a w)-.15 F .135(ord, the e)-.1 F .135
(xpansion of the \214rst parameter is joined)-.15 F .151(with the be)144
-362.4 R .151(ginning part of the original w)-.15 F .151(ord, and the e)
--.1 F .15(xpansion of the last parameter is joined with)-.15 F .337
-(the last part of the original w)144 374.4 R 2.837(ord. When)-.1 F .338
-(there are no positional parameters, ")2.837 F F1($@)A F0 2.838("a)C(nd)
--2.838 E F1($@)2.838 E F0 -.15(ex)2.838 G(pand).15 E
-(to nothing \(i.e., the)144 386.4 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15
-(ve)-.15 G(d\).).15 E F1(#)108 398.4 Q F0
+96 R .151(ginning part of the original w)-.15 F .151(ord, and the e)-.1
+F .15(xpansion of the last parameter is joined with)-.15 F .337
+(the last part of the original w)144 108 R 2.837(ord. When)-.1 F .338
+(there are no positional parameters, ")2.837 F/F1 10/Times-Bold@0 SF($@)
+A F0 2.838("a)C(nd)-2.838 E F1($@)2.838 E F0 -.15(ex)2.838 G(pand).15 E
+(to nothing \(i.e., the)144 120 Q 2.5(ya)-.15 G(re remo)-2.5 E -.15(ve)
+-.15 G(d\).).15 E F1(#)108 132 Q F0
(Expands to the number of positional parameters in decimal.)31 E F1(?)
-108 410.4 Q F0(Expands to the e)31 E(xit status of the most recently e)
+108 144 Q F0(Expands to the e)31 E(xit status of the most recently e)
-.15 E -.15(xe)-.15 G(cuted fore).15 E(ground pipeline.)-.15 E F1<ad>108
-422.4 Q F0 .882
+156 Q F0 .882
(Expands to the current option \215ags as speci\214ed upon in)30.3 F -.2
(vo)-.4 G .881(cation, by the).2 F F1(set)3.381 E F0 -.2(bu)3.381 G .881
(iltin command, or).2 F(those set by the shell itself \(such as the)144
-434.4 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 446.4 Q F0 .214
+168 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 180 Q F0 .214
(Expands to the process ID of the shell.)31 F .214
(In a \(\) subshell, it e)5.214 F .214
(xpands to the process ID of the current)-.15 F
-(shell, not the subshell.)144 458.4 Q F1(!)108 470.4 Q F0
-(Expands to the process ID of the most recently e)32.67 E -.15(xe)-.15 G
-(cuted background \(asynchronous\) command.).15 E F1(0)108 482.4 Q F0
-1.692(Expands to the name of the shell or shell script.)31 F 1.691
-(This is set at shell initialization.)6.692 F(If)6.691 E F1(bash)4.191 E
-F0(is)4.191 E(in)144 494.4 Q -.2(vo)-.4 G -.1(ke).2 G 3.077(dw).1 G .577
-(ith a \214le of commands,)-3.077 F F1($0)3.077 E F0 .578
-(is set to the name of that \214le.)3.077 F(If)5.578 E F1(bash)3.078 E
-F0 .578(is started with the)3.078 F F1<ad63>3.078 E F0 .369
-(option, then)144 506.4 R F1($0)2.869 E F0 .369
-(is set to the \214rst ar)2.869 F .369(gument after the string to be e)
--.18 F -.15(xe)-.15 G .369(cuted, if one is present.).15 F(Other)5.368 E
-(-)-.2 E(wise, it is set to the \214le name used to in)144 518.4 Q -.2
-(vo)-.4 G -.1(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25
-(iv e)-2.5 H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E
-F1(_)108 530.4 Q F0 .054
-(At shell startup, set to the absolute pathname used to in)31 F -.2(vo)
--.4 G .255 -.1(ke t).2 H .055(he shell or shell script being e).1 F -.15
-(xe)-.15 G(cuted).15 E .692(as passed in the en)144 542.4 R .692
+(shell, not the subshell.)144 192 Q F1(!)108 204 Q F0 .499(Expands to t\
+he process ID of the job most recently placed into the background, whet\
+her e)32.67 F -.15(xe)-.15 G(cuted).15 E
+(as an asynchronous command or using the)144 216 Q F1(bg)2.5 E F0 -.2
+(bu)2.5 G(iltin \(see).2 E/F2 9/Times-Bold@0 SF(JOB CONTR)2.5 E(OL)-.27
+E F0(belo)2.25 E(w\).)-.25 E F1(0)108 228 Q F0 1.691
+(Expands to the name of the shell or shell script.)31 F 1.692
+(This is set at shell initialization.)6.692 F(If)6.692 E F1(bash)4.192 E
+F0(is)4.192 E(in)144 240 Q -.2(vo)-.4 G -.1(ke).2 G 3.078(dw).1 G .578
+(ith a \214le of commands,)-3.078 F F1($0)3.078 E F0 .578
+(is set to the name of that \214le.)3.078 F(If)5.577 E F1(bash)3.077 E
+F0 .577(is started with the)3.077 F F1<ad63>3.077 E F0 .368
+(option, then)144 252 R F1($0)2.869 E F0 .369(is set to the \214rst ar)
+2.869 F .369(gument after the string to be e)-.18 F -.15(xe)-.15 G .369
+(cuted, if one is present.).15 F(Other)5.369 E(-)-.2 E
+(wise, it is set to the \214lename used to in)144 264 Q -.2(vo)-.4 G -.1
+(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5 H
+2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F1(_)108 276
+Q F0 .055(At shell startup, set to the absolute pathname used to in)31 F
+-.2(vo)-.4 G .255 -.1(ke t).2 H .054(he shell or shell script being e).1
+F -.15(xe)-.15 G(cuted).15 E .691(as passed in the en)144 288 R .691
(vironment or ar)-.4 F .691(gument list.)-.18 F(Subsequently)5.691 E
-3.191(,e)-.65 G .691(xpands to the last ar)-3.341 F .691(gument to the)
--.18 F(pre)144 554.4 Q .57(vious command, after e)-.25 F 3.07
+3.191(,e)-.65 G .692(xpands to the last ar)-3.341 F .692(gument to the)
+-.18 F(pre)144 300 Q .571(vious command, after e)-.25 F 3.071
(xpansion. Also)-.15 F .571(set to the full pathname used to in)3.071 F
--.2(vo)-.4 G .771 -.1(ke e).2 H .571(ach command).1 F -.15(exe)144 566.4
-S 1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
+-.2(vo)-.4 G .77 -.1(ke e).2 H .57(ach command).1 F -.15(exe)144 312 S
+1.6(cuted and placed in the en).15 F 1.6(vironment e)-.4 F 1.6
(xported to that command.)-.15 F 1.6(When checking mail, this)6.6 F
(parameter holds the name of the mail \214le currently being check)144
-578.4 Q(ed.)-.1 E F1(Shell V)87 595.2 Q(ariables)-.92 E F0(The follo)108
-607.2 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA)
-108 624 S(SH).3 E F0(Expands to the full \214le name used to in)9.07 E
+324 Q(ed.)-.1 E F1(Shell V)87 340.8 Q(ariables)-.92 E F0(The follo)108
+352.8 Q(wing v)-.25 E(ariables are set by the shell:)-.25 E F1 -.3(BA)
+108 369.6 S(SH).3 E F0(Expands to the full \214lename used to in)9.07 E
-.2(vo)-.4 G .2 -.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A
-F1 -.3(BA)108 636 S(SHOPTS).3 E F0 2.548(Ac)144 648 S .049
-(olon-separated list of enabled shell options.)-2.548 F .049(Each w)
+F1 -.3(BA)108 381.6 S(SHOPTS).3 E F0 2.549(Ac)144 393.6 S .049
+(olon-separated list of enabled shell options.)-2.549 F .049(Each w)
5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049
-(gument for the)-.18 F F1<ad73>2.549 E F0 1.398(option to the)144 660 R
-F1(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F3
+(gument for the)-.18 F F1<ad73>2.548 E F0 1.398(option to the)144 405.6
+R F1(shopt)3.898 E F0 -.2(bu)3.898 G 1.398(iltin command \(see).2 F F2
1.398(SHELL B)3.898 F(UIL)-.09 E 1.398(TIN COMMANDS)-.828 F F0(belo)
-3.648 E 3.898(w\). The)-.25 F(options)3.898 E .476(appearing in)144 672
-R F3 -.27(BA)2.976 G(SHOPTS).27 E F0 .476(are those reported as)2.726 F
-F2(on)3.206 E F0(by)3.217 E F1(shopt)2.977 E F0 5.477(.I)C 2.977(ft)
--5.477 G .477(his v)-2.977 F .477(ariable is in the en)-.25 F(vironment)
--.4 E(when)144 684 Q F1(bash)3.142 E F0 .642(starts up, each shell opti\
-on in the list will be enabled before reading an)3.142 F 3.141(ys)-.15 G
-.641(tartup \214les.)-3.141 F(This v)144 696 Q(ariable is read-only)-.25
-E(.)-.65 E(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(9)190.955 E
-0 Cg EP
-%%Page: 10 10
+3.648 E 3.898(w\). The)-.25 F(options)3.898 E .477(appearing in)144
+417.6 R F2 -.27(BA)2.977 G(SHOPTS).27 E F0 .477(are those reported as)
+2.727 F/F3 10/Times-Italic@0 SF(on)3.207 E F0(by)3.217 E F1(shopt)2.977
+E F0 5.476(.I)C 2.976(ft)-5.476 G .476(his v)-2.976 F .476
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 429.6 Q F1(bash)
+3.141 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
+F(This v)144 441.6 Q(ariable is read-only)-.25 E(.)-.65 E F1 -.3(BA)108
+453.6 S(SHPID).3 E F0 .188(Expands to the process ID of the current)144
+465.6 R F1(bash)2.688 E F0 2.687(process. This)2.687 F(dif)2.687 E .187
+(fers from)-.25 F F1($$)2.687 E F0 .187(under certain circum-)2.687 F
+(stances, such as subshells that do not require)144 477.6 Q F1(bash)2.5
+E F0(to be re-initialized.)2.5 E F1 -.3(BA)108 489.6 S(SH_ALIASES).3 E
+F0 1.195(An associati)144 501.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v)
+.15 F 1.195(ariable whose members correspond to the internal list of al\
+iases as main-)-.25 F .025(tained by the)144 513.6 R F1(alias)2.524 E F0
+-.2(bu)2.524 G 2.524(iltin. Elements).2 F .024
+(added to this array appear in the alias list; unsetting array ele-)
+2.524 F(ments cause aliases to be remo)144 525.6 Q -.15(ve)-.15 G 2.5
+(df).15 G(rom the alias list.)-2.5 E F1 -.3(BA)108 537.6 S(SH_ARGC).3 E
+F0 .934(An array v)144 549.6 R .934(ariable whose v)-.25 F .934
+(alues are the number of parameters in each frame of the current)-.25 F
+F1(bash)3.435 E F0 -.15(exe)144 561.6 S .535(cution call stack.).15 F
+.535(The number of parameters to the current subroutine \(shell functio\
+n or script)5.535 F -.15(exe)144 573.6 S .141(cuted with).15 F F1(.)
+2.641 E F0(or)2.641 E F1(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)
+-2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
+(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
+(cuted, the number of).15 F 2.631(parameters passed is pushed onto)144
+585.6 R F2 -.27(BA)5.13 G(SH_ARGC).27 E/F4 9/Times-Roman@0 SF(.)A F0
+2.63(The shell sets)7.13 F F2 -.27(BA)5.13 G(SH_ARGC).27 E F0 2.63
+(only when in)4.88 F -.15(ex)144 597.6 S(tended deb).15 E
+(ugging mode \(see the description of the)-.2 E F1(extdeb)2.5 E(ug)-.2 E
+F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E
+(w\))-.25 E F1 -.3(BA)108 609.6 S(SH_ARGV).3 E F0 .979(An array v)144
+621.6 R .979(ariable containing all of the parameters in the current)
+-.25 F F1(bash)3.48 E F0 -.15(exe)3.48 G .98(cution call stack.).15 F
+(The)5.98 E .275(\214nal parameter of the last subroutine call is at th\
+e top of the stack; the \214rst parameter of the initial)144 633.6 R
+1.424(call is at the bottom.)144 645.6 R 1.424(When a subroutine is e)
+6.424 F -.15(xe)-.15 G 1.424
+(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144
+657.6 S(SH_ARGV).27 E F4(.)A F0 2.197(The shell sets)6.697 F F2 -.27(BA)
+4.697 G(SH_ARGV).27 E F0 2.197(only when in e)4.447 F 2.197(xtended deb)
+-.15 F 2.197(ugging mode \(see the)-.2 F(description of the)144 669.6 Q
+F1(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2
+(bu)2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3(BA)108 681.6 S(SH_CMDS).3 E
+F0 .667(An associati)144 693.6 R .967 -.15(ve a)-.25 H .667(rray v).15 F
+.668(ariable whose members correspond to the internal hash table of com\
+mands)-.25 F .147(as maintained by the)144 705.6 R F1(hash)2.647 E F0
+-.2(bu)2.646 G 2.646(iltin. Elements).2 F .146
+(added to this array appear in the hash table; unsetting)2.646 F
+(array elements cause commands to be remo)144 717.6 Q -.15(ve)-.15 G 2.5
+(df).15 G(rom the hash table.)-2.5 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(10)190.95 E 0 Cg EP
+%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SHPID).3 E F0 .187
-(Expands to the process ID of the current)144 96 R F1(bash)2.687 E F0
-2.688(process. This)2.688 F(dif)2.688 E .188(fers from)-.25 F F1($$)
-2.688 E F0 .188(under certain circum-)2.688 F
-(stances, such as subshells that do not require)144 108 Q F1(bash)2.5 E
-F0(to be re-initialized.)2.5 E F1 -.3(BA)108 120 S(SH_ALIASES).3 E F0
-1.195(An associati)144 132 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F
-1.195(ariable whose members correspond to the internal list of aliases \
-as main-)-.25 F .024(tained by the)144 144 R F1(alias)2.524 E F0 -.2(bu)
-2.524 G 2.524(iltin. Elements).2 F .024
-(added to this array appear in the alias list; unsetting array ele-)
-2.524 F(ments cause aliases to be remo)144 156 Q -.15(ve)-.15 G 2.5(df)
-.15 G(rom the alias list.)-2.5 E F1 -.3(BA)108 168 S(SH_ARGC).3 E F0
-.935(An array v)144 180 R .935(ariable whose v)-.25 F .934
-(alues are the number of parameters in each frame of the current)-.25 F
-F1(bash)3.434 E F0 -.15(exe)144 192 S .535(cution call stack.).15 F .535
-(The number of parameters to the current subroutine \(shell function or\
- script)5.535 F -.15(exe)144 204 S .142(cuted with).15 F F1(.)2.642 E F0
-(or)2.642 E F1(sour)2.642 E(ce)-.18 E F0 2.642(\)i)C 2.642(sa)-2.642 G
-2.642(tt)-2.642 G .142(he top of the stack.)-2.642 F .141
-(When a subroutine is e)5.141 F -.15(xe)-.15 G .141
-(cuted, the number of).15 F 2.63(parameters passed is pushed onto)144
-216 R/F2 9/Times-Bold@0 SF -.27(BA)5.13 G(SH_ARGC).27 E/F3 9
-/Times-Roman@0 SF(.)A F0 2.63(The shell sets)7.13 F F2 -.27(BA)5.131 G
-(SH_ARGC).27 E F0 2.631(only when in)4.881 F -.15(ex)144 228 S
-(tended deb).15 E(ugging mode \(see the description of the)-.2 E F1
-(extdeb)2.5 E(ug)-.2 E F0(option to the)2.5 E F1(shopt)2.5 E F0 -.2(bu)
-2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3(BA)108 240 S(SH_ARGV).3 E F0 .98
-(An array v)144 252 R .979
-(ariable containing all of the parameters in the current)-.25 F F1(bash)
-3.479 E F0 -.15(exe)3.479 G .979(cution call stack.).15 F(The)5.979 E
-.275(\214nal parameter of the last subroutine call is at the top of the\
- stack; the \214rst parameter of the initial)144 264 R 1.424
-(call is at the bottom.)144 276 R 1.424(When a subroutine is e)6.424 F
--.15(xe)-.15 G 1.424(cuted, the parameters supplied are pushed onto).15
-F F2 -.27(BA)144 288 S(SH_ARGV).27 E F3(.)A F0 2.197(The shell sets)
-6.697 F F2 -.27(BA)4.697 G(SH_ARGV).27 E F0 2.197(only when in e)4.447 F
-2.197(xtended deb)-.15 F 2.197(ugging mode \(see the)-.2 F
-(description of the)144 300 Q F1(extdeb)2.5 E(ug)-.2 E F0(option to the)
-2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin belo).2 E(w\))-.25 E F1 -.3
-(BA)108 312 S(SH_CMDS).3 E F0 .668(An associati)144 324 R .968 -.15
-(ve a)-.25 H .668(rray v).15 F .668(ariable whose members correspond to\
- the internal hash table of commands)-.25 F .146(as maintained by the)
-144 336 R F1(hash)2.646 E F0 -.2(bu)2.646 G 2.646(iltin. Elements).2 F
-.146(added to this array appear in the hash table; unsetting)2.646 F
-(array elements cause commands to be remo)144 348 Q -.15(ve)-.15 G 2.5
-(df).15 G(rom the hash table.)-2.5 E F1 -.3(BA)108 360 S(SH_COMMAND).3 E
-F0 1.243(The command currently being e)144 372 R -.15(xe)-.15 G 1.243
-(cuted or about to be e).15 F -.15(xe)-.15 G 1.242
-(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.242(cuting a).15 F
+-.35 E/F1 10/Times-Bold@0 SF -.3(BA)108 84 S(SH_COMMAND).3 E F0 1.242
+(The command currently being e)144 96 R -.15(xe)-.15 G 1.243
+(cuted or about to be e).15 F -.15(xe)-.15 G 1.243
+(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F
(command as the result of a trap, in which case it is the command e)144
-384 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
-396 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 408 Q
+108 Q -.15(xe)-.15 G(cuting at the time of the trap.).15 E F1 -.3(BA)108
+120 S(SH_EXECUTION_STRING).3 E F0(The command ar)144 132 Q
(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G
-(cation option.).2 E F1 -.3(BA)108 420 S(SH_LINENO).3 E F0 .692
-(An array v)144 432 R .692(ariable whose members are the line numbers i\
-n source \214les where each corresponding)-.25 F .97(member of)144 444 R
-F2(FUNCN)3.47 E(AME)-.18 E F0 -.1(wa)3.22 G 3.47(si).1 G -1.9 -.4(nv o)
--3.47 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4 10
-/Times-Italic@0 SF($i)A F1(]})A F0 .969
-(is the line number in the source)3.469 F 14.671(\214le \()144 456 R F1
-(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.171(\)w)C(here)-17.171
-E F1(${FUNCN)17.172 E(AME[)-.2 E F4($i)A F1(]})A F0 -.1(wa)17.172 G
-17.172(sc).1 G 14.672(alled \(or)-17.172 F F1(${B)144 468 Q(ASH_LINENO[)
--.3 E F4($i-1)A F1(]})A F0 .115
+(cation option.).2 E F1 -.3(BA)108 144 S(SH_LINENO).3 E F0 .693
+(An array v)144 156 R .692(ariable whose members are the line numbers i\
+n source \214les where each corresponding)-.25 F .969(member of)144 168
+R/F2 9/Times-Bold@0 SF(FUNCN)3.469 E(AME)-.18 E F0 -.1(wa)3.219 G 3.469
+(si).1 G -1.9 -.4(nv o)-3.469 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E
+(ASH_LINENO[)-.3 E/F3 10/Times-Italic@0 SF($i)A F1(]})A F0 .97
+(is the line number in the source)3.469 F 14.672(\214le \()144 180 R F1
+(${B)A(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0 17.172(\)w)C(here)-17.172
+E F1(${FUNCN)17.172 E(AME[)-.2 E F3($i)A F1(]})A F0 -.1(wa)17.172 G
+17.171(sc).1 G 14.671(alled \(or)-17.171 F F1(${B)144 192 Q(ASH_LINENO[)
+-.3 E F3($i-1)A F1(]})A F0 .115
(if referenced within another shell function\).)2.615 F(Use)5.115 E F2
(LINENO)2.615 E F0 .115(to obtain the)2.365 F(current line number)144
-480 Q(.)-.55 E F1 -.3(BA)108 492 S(SH_REMA).3 E(TCH)-.95 E F0 .005
-(An array v)144 504 R .005(ariable whose members are assigned by the)
--.25 F F1(=~)2.506 E F0 .006(binary operator to the)2.506 F F1([[)2.506
-E F0 .006(conditional com-)2.506 F 2.507(mand. The)144 516 R .007
-(element with inde)2.507 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007
-(he portion of the string matching the entire re)-2.507 F .006(gular e)
--.15 F(xpression.)-.15 E .997(The element with inde)144 528 R(x)-.15 E
-F4(n)3.497 E F0 .997(is the portion of the string matching the)3.497 F
-F4(n)3.498 E F0 .998(th parenthesized sube)B(xpres-)-.15 E 2.5
-(sion. This)144 540 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
-F1 -.3(BA)108 552 S(SH_SOURCE).3 E F0 .126(An array v)144 564 R .125(ar\
+204 Q(.)-.55 E F1 -.3(BA)108 216 S(SH_REMA).3 E(TCH)-.95 E F0 .006
+(An array v)144 228 R .006(ariable whose members are assigned by the)
+-.25 F F1(=~)2.506 E F0 .005(binary operator to the)2.506 F F1([[)2.505
+E F0 .005(conditional com-)2.505 F 2.506(mand. The)144 240 R .007
+(element with inde)2.506 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007
+(he portion of the string matching the entire re)-2.507 F .007(gular e)
+-.15 F(xpression.)-.15 E .998(The element with inde)144 252 R(x)-.15 E
+F3(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
+F3(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E 2.5
+(sion. This)144 264 R -.25(va)2.5 G(riable is read-only).25 E(.)-.65 E
+F1 -.3(BA)108 276 S(SH_SOURCE).3 E F0 .125(An array v)144 288 R .125(ar\
iable whose members are the source \214lenames where the corresponding \
-shell function)-.25 F .78(names in the)144 576 R F2(FUNCN)3.28 E(AME)
+shell function)-.25 F .781(names in the)144 300 R F2(FUNCN)3.28 E(AME)
-.18 E F0 .78(array v)3.03 F .78(ariable are de\214ned.)-.25 F .78
-(The shell function)5.78 F F1(${FUNCN)3.281 E(AME[)-.2 E F4($i)A F1(]})A
-F0(is)3.281 E(de\214ned in the \214le)144 588 Q F1(${B)2.5 E
-(ASH_SOURCE[)-.3 E F4($i)A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E
-(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0(.)A F1 -.3(BA)108 600 S
-(SH_SUBSHELL).3 E F0 .402
-(Incremented by one each time a subshell or subshell en)144 612 R .401
-(vironment is spa)-.4 F 2.901(wned. The)-.15 F .401(initial v)2.901 F
-.401(alue is)-.25 F(0.)144 624 Q F1 -.3(BA)108 636 S(SH_VERSINFO).3 E F0
-2.644(Ar)144 648 S .144(eadonly array v)-2.644 F .144
+(The shell function)5.78 F F1(${FUNCN)3.28 E(AME[)-.2 E F3($i)A F1(]})A
+F0(is)3.28 E(de\214ned in the \214le)144 312 Q F1(${B)2.5 E(ASH_SOURCE[)
+-.3 E F3($i)A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E(ASH_SOURCE[)
+-.3 E F3($i+1)A F1(]})A F0(.)A F1 -.3(BA)108 324 S(SH_SUBSHELL).3 E F0
+.296(Incremented by one within each subshell or subshell en)144 336 R
+.296(vironment when the shell be)-.4 F .297(gins e)-.15 F -.15(xe)-.15 G
+(cuting).15 E(in that en)144 348 Q 2.5(vironment. The)-.4 F(initial v)
+2.5 E(alue is 0.)-.25 E F1 -.3(BA)108 360 S(SH_VERSINFO).3 E F0 2.645
+(Ar)144 372 S .145(eadonly array v)-2.645 F .144
(ariable whose members hold v)-.25 F .144
-(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145
-(.T)C(he)-5.145 E -.25(va)144 660 S
+(ersion information for this instance of)-.15 F F1(bash)2.644 E F0 5.144
+(.T)C(he)-5.144 E -.25(va)144 384 S
(lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
-(BA)144 678 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
-(ersion number \(the)-.15 E F4 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
-(BA)144 690 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
-(ersion number \(the)-.15 E F4(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
-144 702 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
-(ve)-.25 G(l.).15 E F1 -.3(BA)144 714 S(SH_VERSINFO[).3 E F0(3)A F1(])A
-F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(10)185.955 E 0 Cg EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF -.3(BA)144 84 S(SH_VERSINFO[).3 E F0(4)A F1
-(])A F0(The release status \(e.g.,)24.74 E/F2 10/Times-Italic@0 SF
-(beta1)2.5 E F0(\).)A F1 -.3(BA)144 96 S(SH_VERSINFO[).3 E F0(5)A F1(])A
-F0(The v)24.74 E(alue of)-.25 E/F3 9/Times-Bold@0 SF(MA)2.5 E(CHTYPE)
--.495 E/F4 9/Times-Roman@0 SF(.)A F1 -.3(BA)108 108 S(SH_VERSION).3 E F0
-(Expands to a string describing the v)144 120 Q
+(BA)144 402 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)24.74 E
+(ersion number \(the)-.15 E F3 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
+(BA)144 414 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)24.74 E
+(ersion number \(the)-.15 E F3(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
+144 426 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)24.74 E -.15
+(ve)-.25 G(l.).15 E F1 -.3(BA)144 438 S(SH_VERSINFO[).3 E F0(3)A F1(])A
+F0(The b)24.74 E(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 450 S
+(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)24.74 E
+F3(beta1)2.5 E F0(\).)A F1 -.3(BA)144 462 S(SH_VERSINFO[).3 E F0(5)A F1
+(])A F0(The v)24.74 E(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E/F4 9
+/Times-Roman@0 SF(.)A F1 -.3(BA)108 474 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 486 Q
(ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-132 Q(ORD)-.1 E F0 .397(An inde)144 144 R 2.897(xi)-.15 G(nto)-2.897 E
+498 Q(ORD)-.1 E F0 .396(An inde)144 510 R 2.896(xi)-.15 G(nto)-2.896 E
F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
-(ord containing the current cursor position.)-.1 F .396(This v)5.396 F
-(ari-)-.25 E 1.18(able is a)144 156 R -.25(va)-.2 G 1.181
+(ord containing the current cursor position.)-.1 F .397(This v)5.397 F
+(ari-)-.25 E 1.181(able is a)144 522 R -.25(va)-.2 G 1.181
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
-(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
-1.181(acilities \(see)-.1 F F1(Pr)144 168 Q(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 180 Q F0(The k)144 192 Q .3
+(db).1 G 3.681(yt)-3.681 G 1.18(he programmable completion f)-3.681 F
+1.18(acilities \(see)-.1 F F1(Pr)144 534 Q(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 546 Q F0(The k)144 558 Q .3
-.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G .3
-.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t).2
-H(he current completion function.).1 E F1(COMP_LINE)108 204 Q F0 1.208
-(The current command line.)144 216 R 1.208(This v)6.208 F 1.208
+H(he current completion function.).1 E F1(COMP_LINE)108 570 Q F0 1.207
+(The current command line.)144 582 R 1.208(This v)6.208 F 1.208
(ariable is a)-.25 F -.25(va)-.2 G 1.208
-(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F
-2.848(mands in)144 228 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
+(ilable only in shell functions and e).25 F 1.208(xternal com-)-.15 F
+2.849(mands in)144 594 R -.2(vo)-.4 G -.1(ke).2 G 5.349(db).1 G 5.349
(yt)-5.349 G 2.849(he programmable completion f)-5.349 F 2.849
-(acilities \(see)-.1 F F1(Pr)5.349 E 2.849(ogrammable Completion)-.18 F
-F0(belo)144 240 Q(w\).)-.25 E F1(COMP_POINT)108 252 Q F0 .667(The inde)
-144 264 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666
-(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H 3.166
+(acilities \(see)-.1 F F1(Pr)5.349 E 2.848(ogrammable Completion)-.18 F
+F0(belo)144 606 Q(w\).)-.25 E F1(COMP_POINT)108 618 Q F0 .666(The inde)
+144 630 R 3.166(xo)-.15 G 3.166(ft)-3.166 G .666
+(he current cursor position relati)-3.166 F .966 -.15(ve t)-.25 H 3.166
(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
-F .666(If the)5.666 F .534
+F .667(If the)5.667 F .535
(current cursor position is at the end of the current command, the v)144
-276 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 288 Q F0 7.006(.T)C 2.006(his v)-7.006 F 2.006
-(ariable is a)-.25 F -.25(va)-.2 G 2.005
-(ilable only in shell functions and e).25 F 2.005(xternal commands)-.15
-F(in)144 300 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+642 R .534(alue of this v)-.25 F .534(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 654 Q F0 7.005(.T)C 2.005(his v)-7.005 F 2.005
+(ariable is a)-.25 F -.25(va)-.2 G 2.006
+(ilable only in shell functions and e).25 F 2.006(xternal commands)-.15
+F(in)144 666 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108
-312 Q F0 .041(Set to an inte)144 324 R .041(ger v)-.15 F .041(alue corr\
+678 Q F0 .042(Set to an inte)144 690 R .042(ger v)-.15 F .041(alue corr\
esponding to the type of completion attempted that caused a completion)
--.25 F .338(function to be called:)144 336 R F2 -.5(TA)2.837 G(B).5 E F0
-2.837(,f)C .337(or normal completion,)-2.837 F F2(?)2.837 E F0 2.837(,f)
-C .337(or listing completions after successi)-2.837 F .637 -.15(ve t)
--.25 H(abs,).15 E F2(!)144 348 Q F0 4.091(,f)C 1.591
-(or listing alternati)-4.091 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np)
--4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F2(@)4.092
+-.25 F .337(function to be called:)144 702 R F3 -.5(TA)2.837 G(B).5 E F0
+2.837(,f)C .337(or normal completion,)-2.837 F F3(?)2.837 E F0 2.837(,f)
+C .337(or listing completions after successi)-2.837 F .638 -.15(ve t)
+-.25 H(abs,).15 E F3(!)144 714 Q F0 4.092(,f)C 1.592
+(or listing alternati)-4.092 F -.15(ve)-.25 G 4.092(so).15 G 4.092(np)
+-4.092 G 1.592(artial w)-4.092 F 1.592(ord completion,)-.1 F F3(@)4.092
E F0 4.092(,t)C 4.092(ol)-4.092 G 1.592(ist completions if the w)-4.092
-F 1.592(ord is not)-.1 F 1.553(unmodi\214ed, or)144 360 R F2(%)4.053 E
+F 1.591(ord is not)-.1 F 1.552(unmodi\214ed, or)144 726 R F3(%)4.052 E
F0 4.052(,f)C 1.552(or menu completion.)-4.052 F 1.552(This v)6.552 F
1.552(ariable is a)-.25 F -.25(va)-.2 G 1.552
-(ilable only in shell functions and).25 F -.15(ex)144 372 S 2.928
-(ternal commands in).15 F -.2(vo)-.4 G -.1(ke).2 G 5.429(db).1 G 5.429
-(yt)-5.429 G 2.929(he programmable completion f)-5.429 F 2.929
-(acilities \(see)-.1 F F1(Pr)5.429 E(ogrammable)-.18 E(Completion)144
-384 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 396 Q(ORDBREAKS)-.1 E F0
-1.336(The set of characters that the)144 408 R F1 -.18(re)3.836 G
-(adline).18 E F0 1.336(library treats as w)3.836 F 1.335
-(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If)
-144 420 R F3(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
-(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G
-3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G
-(ubse-)-3.126 E(quently reset.)144 432 Q F1(COMP_W)108 444 Q(ORDS)-.1 E
-F0 .654(An array v)144 456 R .654(ariable \(see)-.25 F F1(Arrays)3.154 E
-F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F .653(vidual w)
--.25 F .653(ords in the current command)-.1 F 4.332(line. The)144 468 R
+(ilable only in shell functions and).25 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(11)190.95 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.15(ex)144 84 S 2.929(ternal commands in).15 F -.2(vo)-.4 G -.1
+(ke).2 G 5.429(db).1 G 5.429(yt)-5.429 G 2.929
+(he programmable completion f)-5.429 F 2.929(acilities \(see)-.1 F/F1 10
+/Times-Bold@0 SF(Pr)5.428 E(ogrammable)-.18 E(Completion)144 96 Q F0
+(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 108 Q(ORDBREAKS)-.1 E F0 1.335
+(The set of characters that the)144 120 R F1 -.18(re)3.836 G(adline).18
+E F0 1.336(library treats as w)3.836 F 1.336
+(ord separators when performing w)-.1 F(ord)-.1 E 3.126(completion. If)
+144 132 R/F2 9/Times-Bold@0 SF(COMP_W)3.126 E(ORDBREAKS)-.09 E F0 .626
+(is unset, it loses its special properties, e)2.876 F -.15(ve)-.25 G
+3.125(ni).15 G 3.125(fi)-3.125 G 3.125(ti)-3.125 G 3.125(ss)-3.125 G
+(ubse-)-3.125 E(quently reset.)144 144 Q F1(COMP_W)108 156 Q(ORDS)-.1 E
+F0 .653(An array v)144 168 R .653(ariable \(see)-.25 F F1(Arrays)3.153 E
+F0(belo)3.153 E .654(w\) consisting of the indi)-.25 F .654(vidual w)
+-.25 F .654(ords in the current command)-.1 F 4.333(line. The)144 180 R
1.832(line is split into w)4.332 F 1.832(ords as)-.1 F F1 -.18(re)4.332
-G(adline).18 E F0 -.1(wo)4.332 G 1.832(uld split it, using).1 F F3
-(COMP_W)4.332 E(ORDBREAKS)-.09 E F0(as)4.083 E .832(described abo)144
-480 R -.15(ve)-.15 G 5.832(.T).15 G .832(his v)-5.832 F .832
-(ariable is a)-.25 F -.25(va)-.2 G .831
-(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.331
-(db).1 G 3.331(yt)-3.331 G .831(he programmable)-3.331 F(completion f)
-144 492 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 504 Q(OC)-.3 E F0 .168(An array v)
-144 516 R .168(ariable \(see)-.25 F F1(Arrays)2.668 E F0(belo)2.669 E
+G(adline).18 E F0 -.1(wo)4.332 G 1.832(uld split it, using).1 F F2
+(COMP_W)4.332 E(ORDBREAKS)-.09 E F0(as)4.082 E .831(described abo)144
+192 R -.15(ve)-.15 G 5.831(.T).15 G .831(his v)-5.831 F .831
+(ariable is a)-.25 F -.25(va)-.2 G .832
+(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.332
+(db).1 G 3.332(yt)-3.332 G .832(he programmable)-3.332 F(completion f)
+144 204 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 216 Q(OC)-.3 E F0 .169(An array v)
+144 228 R .169(ariable \(see)-.25 F F1(Arrays)2.669 E F0(belo)2.669 E
.169
(w\) created to hold the \214le descriptors for output from and input)
--.25 F(to an unnamed coprocess \(see)144 528 Q F1(Copr)2.5 E(ocesses)
--.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 540 Q -.55(AC)
--.9 G(K).55 E F0 2.26(An array v)144 552 R 2.26(ariable \(see)-.25 F F1
+-.25 F(to an unnamed coprocess \(see)144 240 Q F1(Copr)2.5 E(ocesses)
+-.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 252 Q -.55(AC)
+-.9 G(K).55 E F0 2.26(An array v)144 264 R 2.26(ariable \(see)-.25 F F1
(Arrays)4.76 E F0(belo)4.76 E 2.26
(w\) containing the current contents of the directory stack.)-.25 F
-1.094(Directories appear in the stack in the order the)144 564 R 3.594
-(ya)-.15 G 1.095(re displayed by the)-3.594 F F1(dirs)3.595 E F0 -.2(bu)
-3.595 G 3.595(iltin. Assigning).2 F(to)3.595 E 1.432
-(members of this array v)144 576 R 1.432
+1.095(Directories appear in the stack in the order the)144 276 R 3.594
+(ya)-.15 G 1.094(re displayed by the)-3.594 F F1(dirs)3.594 E F0 -.2(bu)
+3.594 G 3.594(iltin. Assigning).2 F(to)3.594 E 1.431
+(members of this array v)144 288 R 1.432
(ariable may be used to modify directories already in the stack, b)-.25
-F 1.431(ut the)-.2 F F1(pushd)144 588 Q F0(and)2.746 E F1(popd)2.746 E
+F 1.432(ut the)-.2 F F1(pushd)144 300 Q F0(and)2.746 E F1(popd)2.746 E
F0 -.2(bu)2.746 G .246(iltins must be used to add and remo).2 F .546
-.15(ve d)-.15 H 2.746(irectories. Assignment).15 F .246(to this v)2.746
-F(ariable)-.25 E .351(will not change the current directory)144 600 R
-5.35(.I)-.65 G(f)-5.35 E F3(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35
-(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.85
-(ni).15 G(f)-2.85 E(it is subsequently reset.)144 612 Q F1(EUID)108 624
-Q F0 1.103(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)-.25 H
+F(ariable)-.25 E .35(will not change the current directory)144 312 R
+5.35(.I)-.65 G(f)-5.35 E F2(DIRST)2.85 E -.495(AC)-.81 G(K).495 E F0 .35
+(is unset, it loses its special properties, e)2.6 F -.15(ve)-.25 G 2.851
+(ni).15 G(f)-2.851 E(it is subsequently reset.)144 324 Q F1(EUID)108 336
+Q F0 1.104(Expands to the ef)11 F(fecti)-.25 E 1.403 -.15(ve u)-.25 H
1.103(ser ID of the current user).15 F 3.603(,i)-.4 G 1.103
-(nitialized at shell startup.)-3.603 F 1.104(This v)6.103 F 1.104
-(ariable is)-.25 F(readonly)144 636 Q(.)-.65 E F1(FUNCN)108 648 Q(AME)
--.2 E F0 .479(An array v)144 660 R .479
+(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103
+(ariable is)-.25 F(readonly)144 348 Q(.)-.65 E F1(FUNCN)108 360 Q(AME)
+-.2 E F0 .478(An array v)144 372 R .479
(ariable containing the names of all shell functions currently in the e)
--.25 F -.15(xe)-.15 G .478(cution call stack.).15 F .276
-(The element with inde)144 672 R 2.776(x0i)-.15 G 2.776(st)-2.776 G .276
-(he name of an)-2.776 F 2.777(yc)-.15 G(urrently-e)-2.777 E -.15(xe)-.15
-G .277(cuting shell function.).15 F .277(The bottom-most)5.277 F .385
-(element \(the one with the highest inde)144 684 R .384(x\) is)-.15 F/F5
-10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .384
-(ariable e)-.25 F .384(xists only when a shell func-)-.15 F .034
-(tion is e)144 696 R -.15(xe)-.15 G 2.534(cuting. Assignments).15 F(to)
-2.535 E F3(FUNCN)2.535 E(AME)-.18 E F0(ha)2.285 E .335 -.15(ve n)-.2 H
+-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
+(The element with inde)144 384 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276
+(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)-.15
+G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F .384
+(element \(the one with the highest inde)144 396 R .384(x\) is)-.15 F/F3
+10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .385
+(ariable e)-.25 F .385(xists only when a shell func-)-.15 F .035
+(tion is e)144 408 R -.15(xe)-.15 G 2.535(cuting. Assignments).15 F(to)
+2.535 E F2(FUNCN)2.535 E(AME)-.18 E F0(ha)2.285 E .335 -.15(ve n)-.2 H
2.535(oe).15 G -.25(ff)-2.535 G .035(ect and return an error status.).25
-F(If)5.035 E F3(FUNC-)2.535 E -.18(NA)144 708 S(ME).18 E F0
+F(If)5.034 E F2(FUNC-)2.534 E -.18(NA)144 420 S(ME).18 E F0
(is unset, it loses its special properties, e)2.25 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E 3.176(This v)144 726 R 3.176(ariable can be used with)-.25 F F1
--.3(BA)5.675 G(SH_LINENO).3 E F0(and)5.675 E F1 -.3(BA)5.675 G
-(SH_SOURCE).3 E F0 8.175(.E)C 3.175(ach element of)-8.175 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(11)185.955 E 0 Cg EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(FUNCN)144 84 Q(AME)-.2 E F0 .11
-(has corresponding elements in)2.61 F F1 -.3(BA)2.61 G(SH_LINENO).3 E F0
-(and)2.61 E F1 -.3(BA)2.61 G(SH_SOURCE).3 E F0 .11(to describe)2.61 F
-10.057(the call stack.)144 96 R -.15(Fo)15.057 G 12.557(ri).15 G
-(nstance,)-12.557 E F1(${FUNCN)12.557 E(AME[)-.2 E/F2 10/Times-Italic@0
-SF($i)A F1(]})A F0 -.1(wa)12.557 G 12.557(sc).1 G 10.057
-(alled from the \214le)-12.557 F F1(${B)144 108 Q(ASH_SOURCE[)-.3 E F2
-($i+1)A F1(]})A F0 1.091(at line number)3.591 F F1(${B)3.591 E
-(ASH_LINENO[)-.3 E F2($i)A F1(]})A F0 6.091(.T)C(he)-6.091 E F1(caller)
-3.591 E F0 -.2(bu)3.592 G 1.092(iltin displays).2 F
-(the current call stack using this information.)144 120 Q F1(GR)108 132
-Q(OUPS)-.3 E F0 1.229(An array v)144 144 R 1.228(ariable containing the\
- list of groups of which the current user is a member)-.25 F 6.228(.A)
--.55 G(ssign-)-6.228 E .596(ments to)144 156 R/F3 9/Times-Bold@0 SF(GR)
-3.096 E(OUPS)-.27 E F0(ha)2.847 E .897 -.15(ve n)-.2 H 3.097(oe).15 G
+-2.5 E .11(This v)144 438 R .111(ariable can be used with)-.25 F F1 -.3
+(BA)2.611 G(SH_LINENO).3 E F0(and)2.611 E F1 -.3(BA)2.611 G(SH_SOURCE).3
+E F0 5.111(.E)C .111(ach element of)-5.111 F F1(FUNC-)2.611 E -.2(NA)144
+450 S(ME).2 E F0 1.404(has corresponding elements in)3.904 F F1 -.3(BA)
+3.904 G(SH_LINENO).3 E F0(and)3.904 E F1 -.3(BA)3.904 G(SH_SOURCE).3 E
+F0 1.404(to describe the)3.904 F .012(call stack.)144 462 R -.15(Fo)
+5.012 G 2.512(ri).15 G(nstance,)-2.512 E F1(${FUNCN)2.512 E(AME[)-.2 E
+/F4 10/Times-Italic@0 SF($i)A F1(]})A F0 -.1(wa)2.512 G 2.512(sc).1 G
+.012(alled from the \214le)-2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F4
+($i+1)A F1(]})A F0 1.184(at line number)144 474 R F1(${B)3.684 E
+(ASH_LINENO[)-.3 E F4($i)A F1(]})A F0 6.184(.T)C(he)-6.184 E F1(caller)
+3.683 E F0 -.2(bu)3.683 G 1.183
+(iltin displays the current call stack using).2 F(this information.)144
+486 Q F1(GR)108 498 Q(OUPS)-.3 E F0 1.228(An array v)144 510 R 1.228(ar\
+iable containing the list of groups of which the current user is a memb\
+er)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E .597(ments to)144 522 R F2(GR)
+3.097 E(OUPS)-.27 E F0(ha)2.847 E .897 -.15(ve n)-.2 H 3.097(oe).15 G
-.25(ff)-3.097 G .597(ect and return an error status.).25 F(If)5.597 E
-F3(GR)3.097 E(OUPS)-.27 E F0 .597(is unset, it loses its spe-)2.847 F
-(cial properties, e)144 168 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G
-2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 180
-Q F0 .356(The history number)144 192 R 2.856(,o)-.4 G 2.856(ri)-2.856 G
-(nde)-2.856 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356
-(he history list, of the current command.)-2.856 F(If)5.356 E F3
-(HISTCMD)2.855 E F0 .355(is unset, it)2.605 F
-(loses its special properties, e)144 204 Q -.15(ve)-.25 G 2.5(ni).15 G
+F2(GR)3.097 E(OUPS)-.27 E F0 .597(is unset, it loses its spe-)2.847 F
+(cial properties, e)144 534 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G
+2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(HISTCMD)108 546
+Q F0 .355(The history number)144 558 R 2.855(,o)-.4 G 2.855(ri)-2.855 G
+(nde)-2.855 E 2.856(xi)-.15 G 2.856(nt)-2.856 G .356
+(he history list, of the current command.)-2.856 F(If)5.356 E F2
+(HISTCMD)2.856 E F0 .356(is unset, it)2.606 F
+(loses its special properties, e)144 570 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1
-(HOSTN)108 216 Q(AME)-.2 E F0
-(Automatically set to the name of the current host.)144 228 Q F1
-(HOSTTYPE)108 240 Q F0 .222(Automatically set to a string that uniquely\
- describes the type of machine on which)144 252 R F1(bash)2.723 E F0
-.223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 264 R(def)
-2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 276 Q F0 1.408(Each\
+(HOSTN)108 582 Q(AME)-.2 E F0
+(Automatically set to the name of the current host.)144 594 Q F1
+(HOSTTYPE)108 606 Q F0 .223(Automatically set to a string that uniquely\
+ describes the type of machine on which)144 618 R F1(bash)2.722 E F0
+.222(is e)2.722 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144 630 R(def)
+2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 642 Q F0 1.408(Each\
time this parameter is referenced, the shell substitutes a decimal num\
-ber representing the)144 288 R .078(current sequential line number \(st\
-arting with 1\) within a script or function.)144 300 R .079
-(When not in a script or)5.078 F .307(function, the v)144 312 R .307
-(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E
-F3(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F
-(special properties, e)144 324 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 336 Q
+ber representing the)144 654 R .078(current sequential line number \(st\
+arting with 1\) within a script or function.)144 666 R .078
+(When not in a script or)5.078 F .306(function, the v)144 678 R .306
+(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.307 E
+F2(LINENO)2.807 E F0 .307(is unset, it loses its)2.557 F
+(special properties, e)144 690 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 702 Q
(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully describ\
-es the system type on which)144 348 R F1(bash)3.398 E F0 .899(is e)3.398
-F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 360 Q F2
+es the system type on which)144 714 R F1(bash)3.398 E F0 .898(is e)3.398
+F -.15(xe)-.15 G .898(cuting, in).15 F(the standard GNU)144 726 Q F4
(cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E
-(ault is system-dependent.)-.1 E F1(MAPFILE)108 372 Q F0 .294
-(An array v)144 384 R .294(ariable \(see)-.25 F F1(Arrays)2.794 E F0
-(belo)2.794 E .294(w\) created to hold the te)-.25 F .293
-(xt read by the)-.15 F F1(map\214le)2.793 E F0 -.2(bu)2.793 G .293
-(iltin when no).2 F -.25(va)144 396 S(riable name is supplied.).25 E F1
-(OLDPWD)108 408 Q F0(The pre)144 420 Q(vious w)-.25 E
-(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(OPT)108 432 Q(ARG)-.9 E F0 1.626(The v)144 444 R 1.627
-(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F
-F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2 F F3
-(SHELL)4.127 E -.09(BU)144 456 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E F1(OPTIND)108 468 Q F0 1.652(The inde)144 480 R 4.152
-(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152 F 1.652(xt ar)-.15 F
-1.652(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2(bu)
-4.151 G 1.651(iltin command \(see).2 F F3(SHELL)4.151 E -.09(BU)144 492
-S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108
-504 Q F0 .329(Automatically set to a string that describes the operatin\
-g system on which)144 516 R F1(bash)2.83 E F0 .33(is e)2.83 F -.15(xe)
--.15 G 2.83(cuting. The).15 F(def)144 528 Q(ault is system-dependent.)
--.1 E F1(PIPEST)108 540 Q -.95(AT)-.9 G(US).95 E F0 .61(An array v)144
-552 R .61(ariable \(see)-.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61
-(w\) containing a list of e)-.25 F .61(xit status v)-.15 F .61
-(alues from the processes in)-.25 F(the most-recently-e)144 564 Q -.15
-(xe)-.15 G(cuted fore).15 E
+(ault is system-dependent.)-.1 E(GNU Bash 4.3)72 768 Q(2014 February 2)
+141.79 E(12)190.95 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(MAPFILE)108 84 Q F0 .293(An array v)144 96
+R .293(ariable \(see)-.25 F F1(Arrays)2.793 E F0(belo)2.793 E .293
+(w\) created to hold the te)-.25 F .294(xt read by the)-.15 F F1
+(map\214le)2.794 E F0 -.2(bu)2.794 G .294(iltin when no).2 F -.25(va)144
+108 S(riable name is supplied.).25 E F1(OLDPWD)108 120 Q F0(The pre)144
+132 Q(vious w)-.25 E(orking directory as set by the)-.1 E F1(cd)2.5 E F0
+(command.)2.5 E F1(OPT)108 144 Q(ARG)-.9 E F0 1.627(The v)144 156 R
+1.627(alue of the last option ar)-.25 F 1.627(gument processed by the)
+-.18 F F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.626(iltin command \(see).2
+F/F2 9/Times-Bold@0 SF(SHELL)4.126 E -.09(BU)144 168 S(IL).09 E
+(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 180 Q F0
+1.651(The inde)144 192 R 4.151(xo)-.15 G 4.151(ft)-4.151 G 1.651(he ne)
+-4.151 F 1.651(xt ar)-.15 F 1.652(gument to be processed by the)-.18 F
+F1(getopts)4.152 E F0 -.2(bu)4.152 G 1.652(iltin command \(see).2 F F2
+(SHELL)4.152 E -.09(BU)144 204 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
+2.25 E(w\).)-.25 E F1(OSTYPE)108 216 Q F0 .329(Automatically set to a s\
+tring that describes the operating system on which)144 228 R F1(bash)
+2.829 E F0 .329(is e)2.829 F -.15(xe)-.15 G 2.829(cuting. The).15 F(def)
+144 240 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 252 Q -.95(AT)
+-.9 G(US).95 E F0 .61(An array v)144 264 R .61(ariable \(see)-.25 F F1
+(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
+(xit status v)-.15 F .61(alues from the processes in)-.25 F
+(the most-recently-e)144 276 Q -.15(xe)-.15 G(cuted fore).15 E
(ground pipeline \(which may contain only a single command\).)-.15 E F1
-(PPID)108 576 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
+(PPID)108 288 Q F0(The process ID of the shell')12.67 E 2.5(sp)-.55 G
2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
-F1(PWD)108 588 Q F0(The current w)12.67 E
+F1(PWD)108 300 Q F0(The current w)12.67 E
(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(RANDOM)108 600 Q F0 .565
-(Each time this parameter is referenced, a random inte)144 612 R .566
-(ger between 0 and 32767 is generated.)-.15 F(The)5.566 E .01
-(sequence of random numbers may be initialized by assigning a v)144 624
-R .01(alue to)-.25 F F3(RANDOM)2.51 E/F4 9/Times-Roman@0 SF(.)A F0(If)
-4.51 E F3(RANDOM)2.51 E F0(is)2.26 E
-(unset, it loses its special properties, e)144 636 Q -.15(ve)-.25 G 2.5
+(RANDOM)108 312 Q F0 .566
+(Each time this parameter is referenced, a random inte)144 324 R .565
+(ger between 0 and 32767 is generated.)-.15 F(The)5.565 E .01
+(sequence of random numbers may be initialized by assigning a v)144 336
+R .01(alue to)-.25 F F2(RANDOM)2.51 E/F3 9/Times-Roman@0 SF(.)A F0(If)
+4.51 E F2(RANDOM)2.51 E F0(is)2.26 E
+(unset, it loses its special properties, e)144 348 Q -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F1(READLINE_LINE)108 648 Q F0 1.546(The contents of the)144 660 R
+-2.5 E F1(READLINE_LINE)108 360 Q F0 1.547(The contents of the)144 372 R
F1 -.18(re)4.047 G(adline).18 E F0 1.547(line b)4.047 F(uf)-.2 E(fer)
--.25 E 4.047(,f)-.4 G 1.547(or use with)-4.047 F/F5 10/Courier@0 SF
-1.547(bind -x)4.047 F F0(\(see)4.047 E F3 1.547(SHELL B)4.047 F(UIL)-.09
-E 1.547(TIN COM-)-.828 F(MANDS)144 672 Q F0(belo)2.25 E(w\).)-.25 E F1
-(READLINE_POINT)108 684 Q F0 .314
-(The position of the insertion point in the)144 696 R F1 -.18(re)2.813 G
+-.25 E 4.047(,f)-.4 G 1.547(or use with)-4.047 F/F4 10/Courier@0 SF
+1.547(bind -x)4.047 F F0(\(see)4.047 E F2 1.546(SHELL B)4.047 F(UIL)-.09
+E 1.546(TIN COM-)-.828 F(MANDS)144 384 Q F0(belo)2.25 E(w\).)-.25 E F1
+(READLINE_POINT)108 396 Q F0 .313
+(The position of the insertion point in the)144 408 R F1 -.18(re)2.813 G
(adline).18 E F0 .313(line b)2.813 F(uf)-.2 E(fer)-.25 E 2.813(,f)-.4 G
-.313(or use with)-2.813 F F5 .313(bind -x)2.813 F F0(\(see)2.813 E F3
-(SHELL)2.813 E -.09(BU)144 708 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(12)
-185.955 E 0 Cg EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(REPL)108 84 Q(Y)-.92 E F0
-(Set to the line of input read by the)144 96 Q F1 -.18(re)2.5 G(ad).18 E
-F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)-.18
-E F1(SECONDS)108 108 Q F0 .795(Each time this parameter is referenced, \
-the number of seconds since shell in)144 120 R -.2(vo)-.4 G .795
-(cation is returned.).2 F .713(If a v)144 132 R .712
-(alue is assigned to)-.25 F/F2 9/Times-Bold@0 SF(SECONDS)3.212 E/F3 9
-/Times-Roman@0 SF(,)A F0 .712(the v)2.962 F .712
-(alue returned upon subsequent references is the number)-.25 F .407
-(of seconds since the assignment plus the v)144 144 R .408
-(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .408
-(is unset, it loses its special)2.658 F(properties, e)144 156 Q -.15(ve)
+.313(or use with)-2.813 F F4 .314(bind -x)2.814 F F0(\(see)2.814 E F2
+(SHELL)2.814 E -.09(BU)144 420 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
+2.25 E(w\).)-.25 E F1(REPL)108 432 Q(Y)-.92 E F0
+(Set to the line of input read by the)144 444 Q F1 -.18(re)2.5 G(ad).18
+E F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)
+-.18 E F1(SECONDS)108 456 Q F0 .795(Each time this parameter is referen\
+ced, the number of seconds since shell in)144 468 R -.2(vo)-.4 G .795
+(cation is returned.).2 F .712(If a v)144 480 R .712
+(alue is assigned to)-.25 F F2(SECONDS)3.212 E F3(,)A F0 .712(the v)
+2.962 F .712(alue returned upon subsequent references is the number)-.25
+F .408(of seconds since the assignment plus the v)144 492 R .408
+(alue assigned.)-.25 F(If)5.408 E F2(SECONDS)2.908 E F0 .407
+(is unset, it loses its special)2.658 F(properties, e)144 504 Q -.15(ve)
-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 168 Q F0 3.263(Ac)144 180 S
-.763(olon-separated list of enabled shell options.)-3.263 F .763(Each w)
+(ubsequently reset.)-2.5 E F1(SHELLOPTS)108 516 Q F0 3.262(Ac)144 528 S
+.763(olon-separated list of enabled shell options.)-3.262 F .763(Each w)
5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F .763
-(gument for the)-.18 F F1<ad6f>144 192 Q F0 1.173(option to the)3.673 F
-F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F F2 1.174
-(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)3.424 E
-3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 204 R F2
-(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F4 10
+(gument for the)-.18 F F1<ad6f>144 540 Q F0 1.174(option to the)3.674 F
+F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F F2 1.173
+(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)3.423 E
+3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 552 R F2
+(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F/F5 10
/Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0
-5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .019
-(ariable is in the en)-.25 F(vironment)-.4 E(when)144 216 Q F1(bash)
-3.141 E F0 .642(starts up, each shell option in the list will be enable\
-d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
-F(This v)144 228 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 240 Q
-(VL)-.92 E F0(Incremented by one each time an instance of)144 252 Q F1
-(bash)2.5 E F0(is started.)2.5 E F1(UID)108 264 Q F0
+5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .02
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 564 Q F1(bash)
+3.142 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.142 F 3.141(ys)-.15 G .641(tartup \214les.)-3.141
+F(This v)144 576 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 588 Q
+(VL)-.92 E F0(Incremented by one each time an instance of)144 600 Q F1
+(bash)2.5 E F0(is started.)2.5 E F1(UID)108 612 Q F0
(Expands to the user ID of the current user)17.67 E 2.5(,i)-.4 G
(nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .994(The follo)108 280.8 R .994(wing v)-.25 F .994
+E(.)-.65 E .993(The follo)108 628.8 R .993(wing v)-.25 F .994
(ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
-(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
-(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 292.8
-Q -.65(w.)-.25 G F1 -.3(BA)108 309.6 S(SH_ENV).3 E F0 .505
-(If this parameter is set when)144 321.6 R F1(bash)3.005 E F0 .505(is e)
-3.005 F -.15(xe)-.15 G .506(cuting a shell script, its v).15 F .506
-(alue is interpreted as a \214lename)-.25 F .355
-(containing commands to initialize the shell, as in)144 333.6 R F4
-(~/.bashr)2.855 E(c)-.37 E F0 5.354(.T).31 G .354(he v)-5.354 F .354
-(alue of)-.25 F F2 -.27(BA)2.854 G(SH_ENV).27 E F0 .354(is subjected)
-2.604 F .525(to parameter e)144 345.6 R .525
-(xpansion, command substitution, and arithmetic e)-.15 F .525
-(xpansion before being interpreted)-.15 F(as a \214le name.)144 357.6 Q
-F2 -.666(PA)5 G(TH)-.189 E F0
-(is not used to search for the resultant \214le name.)2.25 E F1 -.3(BA)
-108 369.6 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 381.6
-R .481(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25
-F(,)-.4 E F1(bash)2.98 E F0 .48(will write the trace output gener)2.98 F
-(-)-.2 E 3.114(ated when)144 393.6 R/F5 10/Courier@0 SF 3.114(set -x)
+(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 640.8
+Q -.65(w.)-.25 G F1 -.3(BA)108 657.6 S(SH_COMP).3 E -.95(AT)-.74 G F0
+1.193(The v)144 669.6 R 1.193(alue is used to set the shell')-.25 F
+3.693(sc)-.55 G 1.192(ompatibility le)-3.693 F -.15(ve)-.25 G 3.692
+(l. See).15 F 1.192(the description of the)3.692 F F1(shopt)3.692 E F0
+-.2(bu)3.692 G(iltin).2 E(belo)144 681.6 Q 2.871(wu)-.25 G(nder)-2.871 E
+F1 .371(SHELL B)2.871 F(UIL)-.1 E .371(TIN COMMANDS)-.92 F F0 .372
+(for a description of the v)2.872 F .372(arious compatibility le)-.25 F
+(v-)-.25 E .361(els and their ef)144 693.6 R 2.861(fects. The)-.25 F
+-.25(va)2.861 G .361
+(lue may be a decimal number \(e.g., 4.2\) or an inte).25 F .36
+(ger \(e.g., 42\) corre-)-.15 F 1.75
+(sponding to the desired compatibility le)144 705.6 R -.15(ve)-.25 G
+4.251(l. If).15 F F1 -.3(BA)4.251 G(SH_COMP).3 E -.95(AT)-.74 G F0 1.751
+(is unset or set to the empty)5.201 F .578(string, the compatibility le)
+144 717.6 R -.15(ve)-.25 G 3.078(li).15 G 3.078(ss)-3.078 G .578
+(et to the def)-3.078 F .578(ault for the current v)-.1 F 3.078
+(ersion. If)-.15 F F1 -.3(BA)3.078 G(SH_COMP).3 E -.95(AT)-.74 G F0(is)
+4.028 E .248(set to a v)144 729.6 R .248(alue that is not one of the v)
+-.25 F .248(alid compatibility le)-.25 F -.15(ve)-.25 G .249
+(ls, the shell prints an error message and).15 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(13)190.95 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 1.12(sets the compatibility le)144 84 R -.15(ve)-.25 G 3.62(lt)
+.15 G 3.619(ot)-3.62 G 1.119(he def)-3.619 F 1.119
+(ault for the current v)-.1 F 3.619(ersion. The)-.15 F -.25(va)3.619 G
+1.119(lid compatibility le).25 F -.15(ve)-.25 G(ls).15 E .575
+(correspond to the compatibility options accepted by the)144 96 R/F1 10
+/Times-Bold@0 SF(shopt)3.075 E F0 -.2(bu)3.076 G .576
+(iltin described belo).2 F 3.076(w\()-.25 G .576(for e)-3.076 F(xam-)
+-.15 E(ple,)144 108 Q F1(compat42)2.5 E F0(means that 4.2 and 42 are v)
+2.5 E(alid v)-.25 E 2.5(alues\). The)-.25 F(current v)2.5 E
+(ersion is also a v)-.15 E(alid v)-.25 E(alue.)-.25 E F1 -.3(BA)108 120
+S(SH_ENV).3 E F0 .506(If this parameter is set when)144 132 R F1(bash)
+3.006 E F0 .506(is e)3.006 F -.15(xe)-.15 G .505
+(cuting a shell script, its v).15 F .505
+(alue is interpreted as a \214lename)-.25 F .354
+(containing commands to initialize the shell, as in)144 144 R/F2 10
+/Times-Italic@0 SF(~/.bashr)2.855 E(c)-.37 E F0 5.355(.T).31 G .355
+(he v)-5.355 F .355(alue of)-.25 F/F3 9/Times-Bold@0 SF -.27(BA)2.855 G
+(SH_ENV).27 E F0 .355(is subjected)2.605 F .525(to parameter e)144 156 R
+.525(xpansion, command substitution, and arithmetic e)-.15 F .525
+(xpansion before being interpreted)-.15 F(as a \214lename.)144 168 Q F3
+-.666(PA)5 G(TH)-.189 E F0
+(is not used to search for the resultant \214lename.)2.25 E F1 -.3(BA)
+108 180 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 192 R
+.48(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F
+(,)-.4 E F1(bash)2.981 E F0 .481(will write the trace output gener)2.981
+F(-)-.2 E 3.114(ated when)144 204 R/F4 10/Courier@0 SF 3.114(set -x)
5.614 F F0 3.114(is enabled to that \214le descriptor)5.614 F 8.114(.T)
--.55 G 3.114(he \214le descriptor is closed when)-8.114 F F2 -.27(BA)144
-405.6 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)
-2.388 F 2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F2 -.27(BA)2.638
-G(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the \
-empty string causes the trace output to be sent to the standard error)
-144 417.6 R 7.531(.N)-.55 G 2.531(ote that setting)-7.531 F F2 -.27(BA)
-144 429.6 S(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error\
- \214le descriptor\) and then unsetting it will result in the)2.991 F
-(standard error being closed.)144 441.6 Q F1(CDP)108 453.6 Q -.95(AT)
--.74 G(H).95 E F0 1.247(The search path for the)144 465.6 R F1(cd)3.747
-E F0 3.747(command. This)3.747 F 1.248
-(is a colon-separated list of directories in which the)3.747 F 3.796
-(shell looks for destination directories speci\214ed by the)144 477.6 R
-F1(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795
-(alue is)-.25 F F5(".:~:/usr")144 489.6 Q F0(.)A F1(COLUMNS)108 501.6 Q
-F0 .828(Used by the)144 513.6 R F1(select)3.328 E F0 .829(compound comm\
-and to determine the terminal width when printing selection)3.328 F 2.5
-(lists. Automatically)144 525.6 R(set upon receipt of a)2.5 E F2
-(SIGWINCH)2.5 E F3(.)A F1(COMPREPL)108 537.6 Q(Y)-.92 E F0 .848
-(An array v)144 549.6 R .848(ariable from which)-.25 F F1(bash)3.348 E
-F0 .848(reads the possible completions generated by a shell function)
-3.348 F(in)144 561.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5
-G(he programmable completion f)-2.5 E(acility \(see)-.1 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(EMA)108 573.6
-Q(CS)-.55 E F0(If)144 585.6 Q F1(bash)2.535 E F0 .035(\214nds this v)
-2.535 F .035(ariable in the en)-.25 F .036
-(vironment when the shell starts with v)-.4 F(alue)-.25 E F5(t)2.536 E
-F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F
-(shell is running in an Emacs shell b)144 597.6 Q(uf)-.2 E
-(fer and disables line editing.)-.25 E F1(ENV)108 609.6 Q F0(Similar to)
-14.89 E F2 -.27(BA)2.5 G(SH_ENV).27 E F3(;)A F0
+-.55 G 3.114(he \214le descriptor is closed when)-8.114 F F3 -.27(BA)144
+216 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388
+F 2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G
+(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the e\
+mpty string causes the trace output to be sent to the standard error)144
+228 R 7.53(.N)-.55 G 2.53(ote that setting)-7.53 F F3 -.27(BA)144 240 S
+(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error \214le des\
+criptor\) and then unsetting it will result in the)2.99 F
+(standard error being closed.)144 252 Q F1(CDP)108 264 Q -.95(AT)-.74 G
+(H).95 E F0 1.248(The search path for the)144 276 R F1(cd)3.748 E F0
+3.748(command. This)3.748 F 1.247
+(is a colon-separated list of directories in which the)3.748 F 3.795
+(shell looks for destination directories speci\214ed by the)144 288 R F1
+(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796
+(alue is)-.25 F F4(".:~:/usr")144 300 Q F0(.)A F1(CHILD_MAX)108 312 Q F0
+.997(Set the number of e)144 324 R .997(xited child status v)-.15 F .997
+(alues for the shell to remember)-.25 F 5.997(.B)-.55 G .997
+(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)-3.497 E -.25(va)144 336
+S 1.077(lue to be decreased belo).25 F 3.577(waP)-.25 G 1.077
+(OSIX-mandated minimum, and there is a maximum v)-3.577 F 1.078
+(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 348 Q
+2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)-.25 E
+F1(COLUMNS)108 360 Q F0 .829(Used by the)144 372 R F1(select)3.329 E F0
+.828(compound command to determine the terminal width when printing sel\
+ection)3.329 F 4.506(lists. Automatically)144 384 R 2.006(set if the)
+4.506 F F1(checkwinsize)4.506 E F0 2.007
+(option is enabled or in an interacti)4.506 F 2.307 -.15(ve s)-.25 H
+2.007(hell upon).15 F(receipt of a)144 396 Q F3(SIGWINCH)2.5 E/F5 9
+/Times-Roman@0 SF(.)A F1(COMPREPL)108 408 Q(Y)-.92 E F0 .848(An array v)
+144 420 R .848(ariable from which)-.25 F F1(bash)3.348 E F0 .848
+(reads the possible completions generated by a shell function)3.348 F
+(in)144 432 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
+.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F1
+(Pr)2.785 E .285(ogrammable Completion)-.18 F F0(belo)2.785 E 2.785
+(w\). Each)-.25 F(array element contains one possible completion.)144
+444 Q F1(EMA)108 456 Q(CS)-.55 E F0(If)144 468 Q F1(bash)2.536 E F0 .036
+(\214nds this v)2.536 F .036(ariable in the en)-.25 F .036
+(vironment when the shell starts with v)-.4 F(alue)-.25 E F4(t)2.535 E
+F0 2.535(,i)C 2.535(ta)-2.535 G .035(ssumes that the)-2.535 F
+(shell is running in an Emacs shell b)144 480 Q(uf)-.2 E
+(fer and disables line editing.)-.25 E F1(ENV)108 492 Q F0(Similar to)
+14.89 E F3 -.27(BA)2.5 G(SH_ENV).27 E F5(;)A F0
(used when the shell is in)2.25 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
-2.5(nP)-2.5 G(OSIX mode.)-2.5 E F1(FCEDIT)108 621.6 Q F0(The def)144
-633.6 Q(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G
-(iltin command.).2 E F1(FIGNORE)108 645.6 Q F0 2.599(Ac)144 657.6 S .098
-(olon-separated list of suf)-2.599 F<8c78>-.25 E .098
-(es to ignore when performing \214lename completion \(see)-.15 F F2
-(READLINE)2.598 E F0(belo)144 669.6 Q 2.704(w\). A)-.25 F .204
-(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
--.25 F F2(FIGNORE)2.705 E F0 .205(is e)2.455 F .205
-(xcluded from the list)-.15 F(of matched \214lenames.)144 681.6 Q 2.5
-(As)5 G(ample v)-2.5 E(alue is)-.25 E F5(".o:~")2.5 E F0(.)A F1
-(FUNCNEST)108 693.6 Q F0 1.78(If set to a numeric v)144 705.6 R 1.78
+2.5(nP)-2.5 G(OSIX mode.)-2.5 E F1(FCEDIT)108 504 Q F0(The def)144 516 Q
+(ault editor for the)-.1 E F1(fc)2.5 E F0 -.2(bu)2.5 G(iltin command.).2
+E F1(FIGNORE)108 528 Q F0 2.598(Ac)144 540 S .098
+(olon-separated list of suf)-2.598 F<8c78>-.25 E .098
+(es to ignore when performing \214lename completion \(see)-.15 F F3
+(READLINE)2.599 E F0(belo)144 552 Q 2.705(w\). A)-.25 F .205
+(\214lename whose suf)2.705 F .205(\214x matches one of the entries in)
+-.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .204
+(xcluded from the list)-.15 F(of matched \214lenames.)144 564 Q 2.5(As)5
+G(ample v)-2.5 E(alue is)-.25 E F4(".o:~")2.5 E F0(.)A F1(FUNCNEST)108
+576 Q F0 1.78(If set to a numeric v)144 588 R 1.78
(alue greater than 0, de\214nes a maximum function nesting le)-.25 F
--.15(ve)-.25 G 4.28(l. Function).15 F(in)144 717.6 Q -.2(vo)-.4 G
+-.15(ve)-.25 G 4.28(l. Function).15 F(in)144 600 Q -.2(vo)-.4 G
(cations that e).2 E(xceed this nesting le)-.15 E -.15(ve)-.25 G 2.5(lw)
-.15 G(ill cause the current command to abort.)-2.5 E(GNU Bash-4.2)72 768
-Q(2010 December 28)135.965 E(13)185.955 E 0 Cg EP
-%%Page: 14 14
+.15 G(ill cause the current command to abort.)-2.5 E F1(GLOBIGNORE)108
+612 Q F0 3.118(Ac)144 624 S .618(olon-separated list of patterns de\214\
+ning the set of \214lenames to be ignored by pathname e)-3.118 F(xpan-)
+-.15 E 3.131(sion. If)144 636 R 3.132<618c>3.131 G .632
+(lename matched by a pathname e)-3.132 F .632
+(xpansion pattern also matches one of the patterns in)-.15 F F3
+(GLOBIGNORE)144 648 Q F5(,)A F0(it is remo)2.25 E -.15(ve)-.15 G 2.5(df)
+.15 G(rom the list of matches.)-2.5 E F1(HISTCONTR)108 660 Q(OL)-.3 E F0
+2.654(Ac)144 672 S .153(olon-separated list of v)-2.654 F .153
+(alues controlling ho)-.25 F 2.653(wc)-.25 G .153(ommands are sa)-2.653
+F -.15(ve)-.2 G 2.653(do).15 G 2.653(nt)-2.653 G .153(he history list.)
+-2.653 F .153(If the list)5.153 F .49(of v)144 684 R .49(alues includes)
+-.25 F F2(ignor)2.99 E(espace)-.37 E F0 2.99(,l).18 G .49(ines which be)
+-2.99 F .491(gin with a)-.15 F F1(space)2.991 E F0 .491
+(character are not sa)2.991 F -.15(ve)-.2 G 2.991(di).15 G 2.991(nt)
+-2.991 G .491(he his-)-2.991 F .558(tory list.)144 696 R 3.058(Av)5.558
+G .558(alue of)-3.308 F F2(ignor)3.068 E(edups)-.37 E F0 .558
+(causes lines matching the pre)3.328 F .557
+(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.958
+(Av)144 708 S .458(alue of)-3.208 F F2(ignor)2.968 E(eboth)-.37 E F0
+.458(is shorthand for)3.238 F F2(ignor)2.959 E(espace)-.37 E F0(and)
+2.959 E F2(ignor)2.959 E(edups)-.37 E F0 5.459(.A)C -.25(va)-2.5 G .459
+(lue of).25 F F2(er)2.959 E(asedups)-.15 E F0(causes)2.959 E .699
+(all pre)144 720 R .698
+(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
+3.198(df).15 G .698(rom the history list before that line is)-3.198 F
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(14)190.95 E 0 Cg EP
+%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(GLOBIGNORE)108 84 Q F0 3.118(Ac)144 96 S
-.618(olon-separated list of patterns de\214ning the set of \214lenames \
-to be ignored by pathname e)-3.118 F(xpan-)-.15 E 3.132(sion. If)144 108
-R 3.132<618c>3.132 G .632(lename matched by a pathname e)-3.132 F .632
-(xpansion pattern also matches one of the patterns in)-.15 F/F2 9
-/Times-Bold@0 SF(GLOBIGNORE)144 120 Q/F3 9/Times-Roman@0 SF(,)A F0
-(it is remo)2.25 E -.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)
--2.5 E F1(HISTCONTR)108 132 Q(OL)-.3 E F0 2.653(Ac)144 144 S .153
-(olon-separated list of v)-2.653 F .153(alues controlling ho)-.25 F
-2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
-G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .154(If the list)
-5.153 F .491(of v)144 156 R .491(alues includes)-.25 F/F4 10
-/Times-Italic@0 SF(ignor)2.991 E(espace)-.37 E F0 2.991(,l).18 G .491
-(ines which be)-2.991 F .491(gin with a)-.15 F F1(space)2.991 E F0 .49
-(character are not sa)2.991 F -.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99
-G .49(he his-)-2.99 F .557(tory list.)144 168 R 3.057(Av)5.557 G .557
-(alue of)-3.307 F F4(ignor)3.067 E(edups)-.37 E F0 .557
-(causes lines matching the pre)3.327 F .558
-(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.959
-(Av)144 180 S .459(alue of)-3.209 F F4(ignor)2.969 E(eboth)-.37 E F0
-.459(is shorthand for)3.239 F F4(ignor)2.959 E(espace)-.37 E F0(and)
-2.959 E F4(ignor)2.958 E(edups)-.37 E F0 5.458(.A)C -.25(va)-2.5 G .458
-(lue of).25 F F4(er)2.958 E(asedups)-.15 E F0(causes)2.958 E .698
-(all pre)144 192 R .698
-(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
-3.198(df).15 G .699(rom the history list before that line is)-3.198 F
-(sa)144 204 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264
-(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263
-(ist is ignored.).15 F(If)5.263 E F2(HISTCONTR)2.763 E(OL)-.27 E F0 .263
-(is unset, or does not include)2.513 F 2.941(av)144 216 S .441(alid v)
--3.191 F .441(alue, all lines read by the shell parser are sa)-.25 F
--.15(ve)-.2 G 2.942(do).15 G 2.942(nt)-2.942 G .442
-(he history list, subject to the v)-2.942 F .442(alue of)-.25 F F2
-(HISTIGNORE)144 228 Q F3(.)A F0 1.981(The second and subsequent lines o\
-f a multi-line compound command are not)6.482 F
-(tested, and are added to the history re)144 240 Q -.05(ga)-.15 G
-(rdless of the v).05 E(alue of)-.25 E F2(HISTCONTR)2.5 E(OL)-.27 E F3(.)
-A F1(HISTFILE)108 252 Q F0 .181
-(The name of the \214le in which command history is sa)144 264 R -.15
-(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F2(HIST)2.681 E(OR)-.162 E(Y)
--.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v)
--.1 F(alue)-.25 E(is)144 276 Q F4(~/.bash_history)2.5 E F0 5(.I)C 2.5
-(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
-(dw).15 G(hen an interacti)-2.5 E .3 -.15(ve s)-.25 H(hell e).15 E
-(xits.)-.15 E F1(HISTFILESIZE)108 288 Q F0 1.623
-(The maximum number of lines contained in the history \214le.)144 300 R
-1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
-312 S .305(lue, the history \214le is truncated, if necessary).25 F
-2.805(,b)-.65 G 2.805(yr)-2.805 G(emo)-2.805 E .305
-(ving the oldest entries, to contain no more)-.15 F .602
-(than that number of lines.)144 324 R .602(The def)5.602 F .602(ault v)
--.1 F .602(alue is 500.)-.25 F .601
-(The history \214le is also truncated to this size)5.602 F
-(after writing it when an interacti)144 336 Q .3 -.15(ve s)-.25 H
-(hell e).15 E(xits.)-.15 E F1(HISTIGNORE)108 348 Q F0 2.657(Ac)144 360 S
-.157(olon-separated list of patterns used to decide which command lines\
- should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G 2.658(nt)-2.658 G
-.158(he his-)-2.658 F .708(tory list.)144 372 R .708
-(Each pattern is anchored at the be)5.708 F .707
-(ginning of the line and must match the complete line)-.15 F .625
-(\(no implicit `)144 384 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125
-(ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626
-(ainst the line after the checks speci\214ed by)-.05 F F2(HISTCONTR)144
-396 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
+-.35 E(sa)144 84 Q -.15(ve)-.2 G 2.763(d. An).15 F 2.763(yv)-.15 G .263
+(alue not in the abo)-3.013 F .563 -.15(ve l)-.15 H .263
+(ist is ignored.).15 F(If)5.263 E/F1 9/Times-Bold@0 SF(HISTCONTR)2.763 E
+(OL)-.27 E F0 .264(is unset, or does not include)2.513 F 2.942(av)144 96
+S .442(alid v)-3.192 F .442
+(alue, all lines read by the shell parser are sa)-.25 F -.15(ve)-.2 G
+2.941(do).15 G 2.941(nt)-2.941 G .441(he history list, subject to the v)
+-2.941 F .441(alue of)-.25 F F1(HISTIGNORE)144 108 Q/F2 9/Times-Roman@0
+SF(.)A F0 1.981(The second and subsequent lines of a multi-line compoun\
+d command are not)6.481 F(tested, and are added to the history re)144
+120 Q -.05(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTCONTR)
+2.5 E(OL)-.27 E F2(.)A/F3 10/Times-Bold@0 SF(HISTFILE)108 132 Q F0 .181
+(The name of the \214le in which command history is sa)144 144 R -.15
+(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F1(HIST)2.681 E(OR)-.162 E(Y)
+-.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181(ault v)
+-.1 F(alue)-.25 E(is)144 156 Q/F4 10/Times-Italic@0 SF(~/.bash_history)
+2.5 E F0 5(.I)C 2.5(fu)-5 G(nset, the command history is not sa)-2.5 E
+-.15(ve)-.2 G 2.5(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E F3
+(HISTFILESIZE)108 168 Q F0 1.622
+(The maximum number of lines contained in the history \214le.)144 180 R
+1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25(va)144
+192 S .932(lue, the history \214le is truncated, if necessary).25 F
+3.432(,t)-.65 G 3.432(oc)-3.432 G .932
+(ontain no more than that number of lines by)-3.432 F(remo)144 204 Q .87
+(ving the oldest entries.)-.15 F .871(The history \214le is also trunca\
+ted to this size after writing it when a)5.87 F 1.245(shell e)144 216 R
+3.745(xits. If)-.15 F 1.244(the v)3.744 F 1.244
+(alue is 0, the history \214le is truncated to zero size.)-.25 F 1.244
+(Non-numeric v)6.244 F 1.244(alues and)-.25 F 1.021(numeric v)144 228 R
+1.022(alues less than zero inhibit truncation.)-.25 F 1.022
+(The shell sets the def)6.022 F 1.022(ault v)-.1 F 1.022(alue to the v)
+-.25 F 1.022(alue of)-.25 F F3(HISTSIZE)144 240 Q F0(after reading an)
+2.5 E 2.5(ys)-.15 G(tartup \214les.)-2.5 E F3(HISTIGNORE)108 252 Q F0
+2.658(Ac)144 264 S .158(olon-separated list of patterns used to decide \
+which command lines should be sa)-2.658 F -.15(ve)-.2 G 2.657(do).15 G
+2.657(nt)-2.657 G .157(he his-)-2.657 F .707(tory list.)144 276 R .707
+(Each pattern is anchored at the be)5.707 F .708
+(ginning of the line and must match the complete line)-.15 F .626
+(\(no implicit `)144 288 R F3(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
+(ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625
+(ainst the line after the checks speci\214ed by)-.05 F F1(HISTCONTR)144
+300 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
(In addition to the normal shell pattern matching characters, `)6.793 F
-F1(&)A F0(')A 2.514(matches the pre)144 408 R 2.514(vious history line.)
--.25 F(`)7.514 E F1(&)A F0 5.014('m)C 2.514
-(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 420
-Q -.15(ve)-.15 G 3.353(db).15 G .853(efore attempting a match.)-3.353 F
+F3(&)A F0(')A 2.515(matches the pre)144 312 R 2.515(vious history line.)
+-.25 F(`)7.514 E F3(&)A F0 5.014('m)C 2.514
+(ay be escaped using a backslash; the backslash is)-5.014 F(remo)144 324
+Q -.15(ve)-.15 G 3.352(db).15 G .852(efore attempting a match.)-3.352 F
.852(The second and subsequent lines of a multi-line compound)5.852 F
-(command are not tested, and are added to the history re)144 432 Q -.05
-(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F2(HISTIGNORE)2.5 E F3
-(.)A F1(HISTSIZE)108 444 Q F0 1.942
-(The number of commands to remember in the command history \(see)144 456
-R F2(HIST)4.443 E(OR)-.162 E(Y)-.315 E F0(belo)4.193 E 4.443(w\). The)
--.25 F(def)144 468 Q(ault v)-.1 E(alue is 500.)-.25 E F1(HISTTIMEFORMA)
-108 480 Q(T)-.95 E F0 .952(If this v)144 492 R .952
-(ariable is set and not null, its v)-.25 F .951
-(alue is used as a format string for)-.25 F F4(strftime)3.451 E F0 .951
-(\(3\) to print the)B .672
-(time stamp associated with each history entry displayed by the)144 504
-R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v)
-3.173 F .673(ariable is)-.25 F .144
-(set, time stamps are written to the history \214le so the)144 516 R
+(command are not tested, and are added to the history re)144 336 Q -.05
+(ga)-.15 G(rdless of the v).05 E(alue of)-.25 E F1(HISTIGNORE)2.5 E F2
+(.)A F3(HISTSIZE)108 348 Q F0 1.387
+(The number of commands to remember in the command history \(see)144 360
+R F1(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If)
+-.25 F(the)3.887 E -.25(va)144 372 S 1.32(lue is 0, commands are not sa)
+.25 F -.15(ve)-.2 G 3.82(di).15 G 3.821(nt)-3.82 G 1.321
+(he history list.)-3.821 F 1.321(Numeric v)6.321 F 1.321
+(alues less than zero result in)-.25 F -2.15 -.25(ev e)144 384 T .437
+(ry command being sa).25 F -.15(ve)-.2 G 2.937(do).15 G 2.937(nt)-2.937
+G .437(he history list \(there is no limit\).)-2.937 F .436
+(The shell sets the def)5.436 F .436(ault v)-.1 F(alue)-.25 E
+(to 500 after reading an)144 396 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E
+F3(HISTTIMEFORMA)108 408 Q(T)-.95 E F0 .951(If this v)144 420 R .951
+(ariable is set and not null, its v)-.25 F .952
+(alue is used as a format string for)-.25 F F4(strftime)3.452 E F0 .952
+(\(3\) to print the)B .673
+(time stamp associated with each history entry displayed by the)144 432
+R F3(history)3.173 E F0 -.2(bu)3.172 G 3.172(iltin. If).2 F .672(this v)
+3.172 F .672(ariable is)-.25 F .144
+(set, time stamps are written to the history \214le so the)144 444 R
2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144
-(ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\
- character to distinguish timestamps from other history lines.)144 528 Q
-F1(HOME)108 540 Q F0 1.27
-(The home directory of the current user; the def)144 552 R 1.27(ault ar)
--.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
-(iltin command.).2 F(The)6.27 E -.25(va)144 564 S(lue of this v).25 E
-(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
-(HOSTFILE)108 576 Q F0 1.015
-(Contains the name of a \214le in the same format as)144 588 R F4
+(ed across shell sessions.)-.15 F(This)5.145 E(uses the history comment\
+ character to distinguish timestamps from other history lines.)144 456 Q
+F3(HOME)108 468 Q F0 1.27
+(The home directory of the current user; the def)144 480 R 1.27(ault ar)
+-.1 F 1.27(gument for the)-.18 F F3(cd)3.77 E F0 -.2(bu)3.77 G 1.27
+(iltin command.).2 F(The)6.27 E -.25(va)144 492 S(lue of this v).25 E
+(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F3
+(HOSTFILE)108 504 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 516 R F4
(/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
-.55(needs to complete a hostname.)144 600 R .551
+.551(needs to complete a hostname.)144 528 R .551
(The list of possible hostname completions may be changed while)5.551 F
-1.059(the shell is running; the ne)144 612 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.058
-(alue is changed,)-.25 F F1(bash)144 624 Q F0 .138
-(adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e)
--2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0
-.138(is set, b)2.388 F .139(ut has no v)-.2 F .139(alue, or)-.25 F .518
-(does not name a readable \214le,)144 636 R F1(bash)3.018 E F0 .518
-(attempts to read)3.018 F F4(/etc/hosts)4.683 E F0 .517
-(to obtain the list of possible host-)4.683 F(name completions.)144 648
-Q(When)5 E F2(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
-2.25 E F1(IFS)108 660 Q F0(The)20.44 E F4 .555(Internal F)3.635 F .555
-(ield Separ)-.45 F(ator)-.15 E F0 .555(that is used for w)3.785 F .556
-(ord splitting after e)-.1 F .556(xpansion and to split lines into)-.15
-F -.1(wo)144 672 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+1.058(the shell is running; the ne)144 540 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.059
+(alue is changed,)-.25 F F3(bash)144 552 Q F0 .138
+(adds the contents of the ne)2.639 F 2.638<778c>-.25 G .138(le to the e)
+-2.638 F .138(xisting list.)-.15 F(If)5.138 E F1(HOSTFILE)2.638 E F0
+.138(is set, b)2.388 F .138(ut has no v)-.2 F .138(alue, or)-.25 F .517
+(does not name a readable \214le,)144 564 R F3(bash)3.017 E F0 .517
+(attempts to read)3.017 F F4(/etc/hosts)4.684 E F0 .518
+(to obtain the list of possible host-)4.684 F(name completions.)144 576
+Q(When)5 E F1(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
+2.25 E F3(IFS)108 588 Q F0(The)20.44 E F4 .556(Internal F)3.636 F .556
+(ield Separ)-.45 F(ator)-.15 E F0 .556(that is used for w)3.786 F .556
+(ord splitting after e)-.1 F .555(xpansion and to split lines into)-.15
+F -.1(wo)144 600 S(rds with the).1 E F3 -.18(re)2.5 G(ad).18 E F0 -.2
(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E
-(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 684 Q
-F0 .503(Controls the action of an interacti)144 696 R .803 -.15(ve s)
--.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503
-(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
-144 708 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F3(IGNOREEOF)108 612 Q
+F0 .503(Controls the action of an interacti)144 624 R .803 -.15(ve s)
+-.25 H .503(hell on receipt of an).15 F F1(EOF)3.003 E F0 .503
+(character as the sole input.)2.753 F .504(If set,)5.504 F .426(the v)
+144 636 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F1
(EOF)3.076 E F0 .426
-(characters which must be typed as the \214rst characters)2.676 F .303
-(on an input line before)144 720 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+(characters which must be typed as the \214rst characters)2.676 F .302
+(on an input line before)144 648 R F3(bash)2.802 E F0 -.15(ex)2.802 G
2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302
(xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302
-(umeric v).15 F .302(alue, or has)-.25 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(14)185.955 E 0 Cg EP
-%%Page: 15 15
+(umeric v).15 F .303(alue, or has)-.25 F(no v)144 660 Q(alue, the def)
+-.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E
+F1(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F3
+(INPUTRC)108 672 Q F0 1.436(The \214lename for the)144 684 R F3 -.18(re)
+3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G
+1.436(rriding the def).15 F 1.436(ault of)-.1 F F4(~/.inputr)5.602 E(c)
+-.37 E F0(\(see)5.601 E F1(READLINE)3.935 E F0(belo)144 696 Q(w\).)-.25
+E F3(LANG)108 708 Q F0 1.239(Used to determine the locale cate)7.11 F
+1.239(gory for an)-.15 F 3.739(yc)-.15 G(ate)-3.739 E 1.24
+(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
+(starting with)144 720 Q F3(LC_)2.5 E F0(.)A(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(15)190.95 E 0 Cg EP
+%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(no v)144 84 Q(alue, the def)-.25 E(ault v)-.1 E(alue is 10.)-.25
-E(If it does not e)5 E(xist,)-.15 E/F1 9/Times-Bold@0 SF(EOF)2.5 E F0
-(signi\214es the end of input to the shell.)2.25 E/F2 10/Times-Bold@0 SF
-(INPUTRC)108 96 Q F0 1.435(The \214lename for the)144 108 R F2 -.18(re)
-3.936 G(adline).18 E F0 1.436(startup \214le, o)3.936 F -.15(ve)-.15 G
-1.436(rriding the def).15 F 1.436(ault of)-.1 F/F3 10/Times-Italic@0 SF
-(~/.inputr)5.602 E(c)-.37 E F0(\(see)5.602 E F1(READLINE)3.936 E F0
-(belo)144 120 Q(w\).)-.25 E F2(LANG)108 132 Q F0 1.24
-(Used to determine the locale cate)7.11 F 1.239(gory for an)-.15 F 3.739
-(yc)-.15 G(ate)-3.739 E 1.239(gory not speci\214cally selected with a v)
--.15 F(ariable)-.25 E(starting with)144 144 Q F2(LC_)2.5 E F0(.)A F2
-(LC_ALL)108 156 Q F0 .973(This v)144 168 R .973(ariable o)-.25 F -.15
-(ve)-.15 G .973(rrides the v).15 F .973(alue of)-.25 F F1(LANG)3.473 E
-F0 .973(and an)3.223 F 3.473(yo)-.15 G(ther)-3.473 E F2(LC_)3.473 E F0
--.25(va)3.473 G .974(riable specifying a locale cate-).25 F(gory)144 180
-Q(.)-.65 E F2(LC_COLLA)108 192 Q(TE)-.95 E F0 .412(This v)144 204 R .412
-(ariable determines the collation order used when sorting the results o\
-f pathname e)-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144
-216 R 1.464(vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)
--.25 G 1.465(lence classes, and collating sequences).25 F
-(within pathname e)144 228 Q(xpansion and pattern matching.)-.15 E F2
-(LC_CTYPE)108 240 Q F0 1.936(This v)144 252 R 1.936
+-.35 E/F1 10/Times-Bold@0 SF(LC_ALL)108 84 Q F0 .974(This v)144 96 R
+.974(ariable o)-.25 F -.15(ve)-.15 G .974(rrides the v).15 F .973
+(alue of)-.25 F/F2 9/Times-Bold@0 SF(LANG)3.473 E F0 .973(and an)3.223 F
+3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0 -.25(va)3.473 G .973
+(riable specifying a locale cate-).25 F(gory)144 108 Q(.)-.65 E F1
+(LC_COLLA)108 120 Q(TE)-.95 E F0 .411(This v)144 132 R .412(ariable det\
+ermines the collation order used when sorting the results of pathname e)
+-.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 144 R 1.465
+(vior of range e)-.2 F 1.464(xpressions, equi)-.15 F -.25(va)-.25 G
+1.464(lence classes, and collating sequences).25 F(within pathname e)144
+156 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 168 Q F0
+1.935(This v)144 180 R 1.936
(ariable determines the interpretation of characters and the beha)-.25 F
-1.935(vior of character classes)-.2 F(within pathname e)144 264 Q
-(xpansion and pattern matching.)-.15 E F2(LC_MESSA)108 276 Q(GES)-.55 E
-F0(This v)144 288 Q(ariable determines the locale used to translate dou\
-ble-quoted strings preceded by a)-.25 E F2($)2.5 E F0(.)A F2(LC_NUMERIC)
-108 300 Q F0(This v)144 312 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F2(LINES)108 324 Q F0 .054
-(Used by the)5.99 F F2(select)2.554 E F0 .054(compound command to deter\
-mine the column length for printing selection lists.)2.554 F
-(Automatically set upon receipt of a)144 336 Q F1(SIGWINCH)2.5 E/F4 9
-/Times-Roman@0 SF(.)A F2(MAIL)108 348 Q F0 1.201
+1.936(vior of character classes)-.2 F(within pathname e)144 192 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 204 Q(GES)-.55 E
+F0(This v)144 216 Q(ariable determines the locale used to translate dou\
+ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
+108 228 Q F0(This v)144 240 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LINES)108 252 Q F0 .055
+(Used by the)5.99 F F1(select)2.555 E F0 .054(compound command to deter\
+mine the column length for printing selection lists.)2.555 F .264
+(Automatically set if the)144 264 R F1(checkwinsize)2.764 E F0 .264
+(option is enabled or in an interacti)2.764 F .565 -.15(ve s)-.25 H .265
+(hell upon receipt of a).15 F F2(SIGWINCH)144 276 Q/F3 9/Times-Roman@0
+SF(.)A F1(MAIL)108 288 Q F0 1.201
(If this parameter is set to a \214le or directory name and the)8.78 F
-F1(MAILP)3.701 E -.855(AT)-.666 G(H).855 E F0 -.25(va)3.451 G 1.201
-(riable is not set,).25 F F2(bash)3.701 E F0
-(informs the user of the arri)144 360 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
+F2(MAILP)3.701 E -.855(AT)-.666 G(H).855 E F0 -.25(va)3.451 G 1.201
+(riable is not set,).25 F F1(bash)3.701 E F0
+(informs the user of the arri)144 300 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
(fm)-2.5 G(ail in the speci\214ed \214le or Maildir)-2.5 E
-(-format directory)-.2 E(.)-.65 E F2(MAILCHECK)108 372 Q F0 .098
-(Speci\214es ho)144 384 R 2.598(wo)-.25 G .098(ften \(in seconds\))
--2.598 F F2(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
+(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 312 Q F0 .098
+(Speci\214es ho)144 324 R 2.598(wo)-.25 G .098(ften \(in seconds\))
+-2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224
(to check for mail, the shell does so before displaying the primary pro\
-mpt.)144 396 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066
-(or set to a v)144 408 R .066(alue that is not a number greater than or\
- equal to zero, the shell disables mail checking.)-.25 F F2(MAILP)108
-420 Q -.95(AT)-.74 G(H).95 E F0 2.815(Ac)144 432 S .314
-(olon-separated list of \214le names to be check)-2.815 F .314
-(ed for mail.)-.1 F .314(The message to be printed when mail)5.314 F
-(arri)144 444 Q -.15(ve)-.25 G 3.42(si).15 G 3.42(nap)-3.42 G .92(artic\
-ular \214le may be speci\214ed by separating the \214le name from the m\
-essage with a)-3.42 F 2.808(`?'. When)144 456 R .308(used in the te)
-2.808 F .308(xt of the message,)-.15 F F2($_)2.808 E F0 -.15(ex)2.808 G
-.308(pands to the name of the current mail\214le.).15 F(Exam-)5.307 E
-(ple:)144 468 Q F2(MAILP)144 480 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A
-(ar/mail/bfox?"Y)-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
-(ail":~/shell\255mail?"$_ has mail!"\010).15 E F2(Bash)144 492 Q F0 .388
-(supplies a def)2.888 F .388(ault v)-.1 F .388(alue for this v)-.25 F
-.388(ariable, b)-.25 F .389
+mpt.)144 336 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F .066
+(or set to a v)144 348 R .066(alue that is not a number greater than or\
+ equal to zero, the shell disables mail checking.)-.25 F F1(MAILP)108
+360 Q -.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 372 S .49
+(olon-separated list of \214lenames to be check)-2.99 F .49
+(ed for mail.)-.1 F .49(The message to be printed when mail)5.49 F(arri)
+144 384 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \
+\214le may be speci\214ed by separating the \214lename from the message\
+ with a `?'.)-2.62 F(When used in the te)144 396 Q(xt of the message,)
+-.15 E F1($_)2.5 E F0 -.15(ex)2.5 G
+(pands to the name of the current mail\214le.).15 E(Example:)5 E F1
+(MAILP)144 408 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y)
+-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 420 Q F0 .389
+(supplies a def)2.889 F .389(ault v)-.1 F .389(alue for this v)-.25 F
+.389(ariable, b)-.25 F .388
(ut the location of the user mail \214les that it uses is)-.2 F
-(system dependent \(e.g., /v)144 504 Q(ar/mail/)-.25 E F2($USER)A F0
-(\).)A F2(OPTERR)108 516 Q F0 .39(If set to the v)144 528 R .39(alue 1,)
--.25 F F2(bash)2.89 E F0 .389(displays error messages generated by the)
-2.889 F F2(getopts)2.889 E F0 -.2(bu)2.889 G .389(iltin command \(see).2
-F F1 .359(SHELL B)144 540 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0
-(belo)2.609 E(w\).)-.25 E F1(OPTERR)5.359 E F0 .36
-(is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G -.1
-(ke).2 G(d).1 E(or a shell script is e)144 552 Q -.15(xe)-.15 G(cuted.)
-.15 E F2 -.74(PA)108 564 S(TH)-.21 E F0 .588
-(The search path for commands.)9.91 F .587
+(system dependent \(e.g., /v)144 432 Q(ar/mail/)-.25 E F1($USER)A F0
+(\).)A F1(OPTERR)108 444 Q F0 .389(If set to the v)144 456 R .389
+(alue 1,)-.25 F F1(bash)2.889 E F0 .389
+(displays error messages generated by the)2.889 F F1(getopts)2.89 E F0
+-.2(bu)2.89 G .39(iltin command \(see).2 F F2 .36(SHELL B)144 468 R(UIL)
+-.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E(w\).)-.25 E F2(OPTERR)
+5.36 E F0 .359(is initialized to 1 each time the shell is in)2.61 F -.2
+(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 480 Q -.15(xe)
+-.15 G(cuted.).15 E F1 -.74(PA)108 492 S(TH)-.21 E F0 .587
+(The search path for commands.)9.91 F .588
(It is a colon-separated list of directories in which the shell looks)
-5.588 F .471(for commands \(see)144 576 R F1 .471(COMMAND EXECUTION)
-2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472
-(zero-length \(null\) directory name in the)2.972 F -.25(va)144 588 S
-.536(lue of).25 F F1 -.666(PA)3.036 G(TH)-.189 E F0 .535
-(indicates the current directory)2.786 F 5.535(.A)-.65 G .535
-(null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent)
--3.035 E .867(colons, or as an initial or trailing colon.)144 600 R .868
-(The def)5.868 F .868(ault path is system-dependent, and is set by the)
--.1 F 26.329(administrator who installs)144 612 R F2(bash)28.829 E F0
-31.329(.A)C 26.328(common v)-2.501 F 26.328(alue is)-.25 F/F5 10
-/Courier@0 SF(/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin)144 624
-Q F0(.)A F2(POSIXL)108 636 Q(Y_CORRECT)-.92 E F0 .471(If this v)144 648
-R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F2(bash)
-2.971 E F0 .471(starts, the shell enters)2.971 F F3 .472(posix mode)
-2.972 F F0 .472(before reading)2.972 F .011
-(the startup \214les, as if the)144 660 R F2(\255\255posix)2.511 E F0
+5.587 F .472(for commands \(see)144 504 R F2 .472(COMMAND EXECUTION)
+2.972 F F0(belo)2.722 E 2.972(w\). A)-.25 F .471
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 516 S
+.535(lue of).25 F F2 -.666(PA)3.035 G(TH)-.189 E F0 .535
+(indicates the current directory)2.785 F 5.535(.A)-.65 G .535
+(null directory name may appear as tw)-2.5 F 3.036(oa)-.1 G(djacent)
+-3.036 E .868(colons, or as an initial or trailing colon.)144 528 R .868
+(The def)5.868 F .867(ault path is system-dependent, and is set by the)
+-.1 F 26.328(administrator who installs)144 540 R F1(bash)28.828 E F0
+31.329(.A)C 26.329(common v)-2.5 F 26.329(alue is)-.25 F/F4 10/Courier@0
+SF(/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)144 552
+Q F0(.)A F1(POSIXL)108 564 Q(Y_CORRECT)-.92 E F0 .472(If this v)144 576
+R .472(ariable is in the en)-.25 F .471(vironment when)-.4 F F1(bash)
+2.971 E F0 .471(starts, the shell enters)2.971 F/F5 10/Times-Italic@0 SF
+.471(posix mode)2.971 F F0 .471(before reading)2.971 F .011
+(the startup \214les, as if the)144 588 R F1(\255\255posix)2.511 E F0
(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F .011
-(If it is set while the shell is)5.011 F(running,)144 672 Q F2(bash)2.5
-E F0(enables)2.5 E F3(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
--2.5 G(he command)-2.5 E F5(set -o posix)2.5 E F0(had been e)2.5 E -.15
-(xe)-.15 G(cuted.).15 E F2(PR)108 684 Q(OMPT_COMMAND)-.3 E F0
-(If set, the v)144 696 Q(alue is e)-.25 E -.15(xe)-.15 G
-(cuted as a command prior to issuing each primary prompt.).15 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(15)185.955 E 0 Cg EP
-%%Page: 16 16
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(PR)108 84 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0
-.676(If set to a number greater than zero, the v)144 96 R .676
+(If it is set while the shell is)5.011 F(running,)144 600 Q F1(bash)2.5
+E F0(enables)2.5 E F5(posix mode)2.5 E F0 2.5(,a)C 2.5(si)-2.5 G 2.5(ft)
+-2.5 G(he command)-2.5 E F4(set -o posix)2.5 E F0(had been e)2.5 E -.15
+(xe)-.15 G(cuted.).15 E F1(PR)108 612 Q(OMPT_COMMAND)-.3 E F0
+(If set, the v)144 624 Q(alue is e)-.25 E -.15(xe)-.15 G
+(cuted as a command prior to issuing each primary prompt.).15 E F1(PR)
+108 636 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
+(If set to a number greater than zero, the v)144 648 R .676
(alue is used as the number of trailing directory compo-)-.25 F .923
-(nents to retain when e)144 108 R .923(xpanding the)-.15 F F1(\\w)3.423
+(nents to retain when e)144 660 R .923(xpanding the)-.15 F F1(\\w)3.423
E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see)
-3.423 F/F2 9/Times-Bold@0 SF(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E
-(w\).)-.25 E(Characters remo)144 120 Q -.15(ve)-.15 G 2.5(da).15 G
-(re replaced with an ellipsis.)-2.5 E F1(PS1)108 132 Q F0 .064(The v)
+3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E
+(Characters remo)144 672 Q -.15(ve)-.15 G 2.5(da).15 G
+(re replaced with an ellipsis.)-2.5 E F1(PS1)108 684 Q F0 .065(The v)
19.33 F .065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15
F F2(PR)2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065
-(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 144 R
+(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 696 R
(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0
--.74('')2.5 G(.).74 E F1(PS2)108 156 Q F0 .118(The v)19.33 F .118
-(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F2(PS1)
-2.617 E F0 .117(and used as the secondary prompt string.)2.367 F(The)
-5.117 E(def)144 168 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
-(.).74 E F1(PS3)108 180 Q F0 1.115(The v)19.33 F 1.115
+-.74('')2.5 G(.).74 E F1(PS2)108 708 Q F0 .117(The v)19.33 F .117
+(alue of this parameter is e)-.25 F .117(xpanded as with)-.15 F F2(PS1)
+2.617 E F0 .118(and used as the secondary prompt string.)2.368 F(The)
+5.118 E(def)144 720 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
+(.).74 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(16)190.95 E 0 Cg
+EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(PS3)108 84 Q F0 1.116(The v)19.33 F 1.115
(alue of this parameter is used as the prompt for the)-.25 F F1(select)
-3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR)
-144 192 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 204 Q F0
-.101(The v)19.33 F .101(alue of this parameter is e)-.25 F .101
-(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1
-(alue is printed before each command)-.25 F F1(bash)144 216 Q F0 .291
-(displays during an e)2.791 F -.15(xe)-.15 G .292(cution trace.).15 F
-.292(The \214rst character of)5.292 F F2(PS4)2.792 E F0 .292
-(is replicated multiple times, as)2.542 F(necessary)144 228 Q 2.5(,t)
+3.615 E F0 1.115(command \(see)3.615 F/F2 9/Times-Bold@0 SF 1.115
+(SHELL GRAM-)3.615 F(MAR)144 96 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E
+F1(PS4)108 108 Q F0 .1(The v)19.33 F .1(alue of this parameter is e)-.25
+F .1(xpanded as with)-.15 F F2(PS1)2.6 E F0 .101(and the v)2.35 F .101
+(alue is printed before each command)-.25 F F1(bash)144 120 Q F0 .292
+(displays during an e)2.792 F -.15(xe)-.15 G .292(cution trace.).15 F
+.292(The \214rst character of)5.292 F F2(PS4)2.792 E F0 .291
+(is replicated multiple times, as)2.542 F(necessary)144 132 Q 2.5(,t)
-.65 G 2.5(oi)-2.5 G(ndicate multiple le)-2.5 E -.15(ve)-.25 G
(ls of indirection.).15 E(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0
--.74('')2.5 G(.).74 E F1(SHELL)108 240 Q F0 .664
-(The full pathname to the shell is k)144 252 R .664(ept in this en)-.1 F
-.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .663
-(it is not set when the shell)3.164 F(starts,)144 264 Q F1(bash)2.5 E F0
+-.74('')2.5 G(.).74 E F1(SHELL)108 144 Q F0 .663
+(The full pathname to the shell is k)144 156 R .664(ept in this en)-.1 F
+.664(vironment v)-.4 F 3.164(ariable. If)-.25 F .664
+(it is not set when the shell)3.164 F(starts,)144 168 Q F1(bash)2.5 E F0
(assigns to it the full pathname of the current user')2.5 E 2.5(sl)-.55
-G(ogin shell.)-2.5 E F1(TIMEFORMA)108 276 Q(T)-.95 E F0 .826(The v)144
-288 R .826
+G(ogin shell.)-2.5 E F1(TIMEFORMA)108 180 Q(T)-.95 E F0 .827(The v)144
+192 R .826
(alue of this parameter is used as a format string specifying ho)-.25 F
-3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
-(pipelines pre\214x)144 300 R .649(ed with the)-.15 F F1(time)3.149 E F0
-(reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F
-(The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711
-(an escape sequence that is e)144 312 R .711(xpanded to a time v)-.15 F
-.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
-(and their meanings are as follo)144 324 Q
-(ws; the braces denote optional portions.)-.25 E F1(%%)144 342 Q F0 2.5
-(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 354 Q/F3 10
+3.326(wt)-.25 G .826(he timing information for)-3.326 F .648
+(pipelines pre\214x)144 204 R .648(ed with the)-.15 F F1(time)3.148 E F0
+(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F
+(The)5.649 E F1(%)3.149 E F0 .649(character introduces)3.149 F .712
+(an escape sequence that is e)144 216 R .711(xpanded to a time v)-.15 F
+.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
+(and their meanings are as follo)144 228 Q
+(ws; the braces denote optional portions.)-.25 E F1(%%)144 246 Q F0 2.5
+(Al)30 G(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 258 Q/F3 10
/Times-Italic@0 SF(p)A F1(][l]R)A F0(The elapsed time in seconds.)11.68
-E F1(%[)144 366 Q F3(p)A F1(][l]U)A F0
-(The number of CPU seconds spent in user mode.)11.68 E F1(%[)144 378 Q
+E F1(%[)144 270 Q F3(p)A F1(][l]U)A F0
+(The number of CPU seconds spent in user mode.)11.68 E F1(%[)144 282 Q
F3(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.)
-13.34 E F1(%P)144 390 Q F0
+13.34 E F1(%P)144 294 Q F0
(The CPU percentage, computed as \(%U + %S\) / %R.)33.89 E .87
-(The optional)144 406.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
+(The optional)144 310.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
3.37 F F3(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
-(he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
-144 418.8 R -.25(va)2.525 G .025
-(lue of 0 causes no decimal point or fraction to be output.).25 F .026
-(At most three places after the)5.025 F .538
-(decimal point may be speci\214ed; v)144 430.8 R .538(alues of)-.25 F F3
-(p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E
-F3(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 442.8 Q
-(alue 3 is used.)-.25 E .667(The optional)144 459.6 R F1(l)3.167 E F0
+(he number of fractional digits after a decimal)-3.37 F 2.526(point. A)
+144 322.8 R -.25(va)2.526 G .025
+(lue of 0 causes no decimal point or fraction to be output.).25 F .025
+(At most three places after the)5.025 F .537
+(decimal point may be speci\214ed; v)144 334.8 R .537(alues of)-.25 F F3
+(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
+F3(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 346.8 Q
+(alue 3 is used.)-.25 E .668(The optional)144 363.6 R F1(l)3.168 E F0
.668(speci\214es a longer format, including minutes, of the form)3.168 F
-F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.168(s. The)B -.25(va)
-3.168 G(lue).25 E(of)144 471.6 Q F3(p)2.5 E F0
-(determines whether or not the fraction is included.)2.5 E .001
-(If this v)144 488.4 R .001(ariable is not set,)-.25 F F1(bash)2.501 E
-F0 .001(acts as if it had the v)2.501 F(alue)-.25 E F1($\010\\nr)2.5 E
-(eal\\t%3lR\\nuser\\t%3lU\\nsys%3lS\010)-.18 E F0(.)A .494(If the v)144
-500.4 R .494(alue is null, no timing information is displayed.)-.25 F
-2.994(At)5.494 G .494(railing ne)-2.994 F .494
-(wline is added when the for)-.25 F(-)-.2 E(mat string is displayed.)144
-512.4 Q F1(TMOUT)108 524.4 Q F0 .941(If set to a v)144 536.4 R .941
-(alue greater than zero,)-.25 F F2(TMOUT)3.441 E F0 .941
-(is treated as the def)3.191 F .941(ault timeout for the)-.1 F F1 -.18
-(re)3.441 G(ad).18 E F0 -.2(bu)3.441 G(iltin.).2 E(The)144 548.4 Q F1
-(select)2.81 E F0 .31(command terminates if input does not arri)2.81 F
-.611 -.15(ve a)-.25 H(fter).15 E F2(TMOUT)2.811 E F0 .311
-(seconds when input is com-)2.561 F .886(ing from a terminal.)144 560.4
-R .886(In an interacti)5.886 F 1.185 -.15(ve s)-.25 H .885(hell, the v)
-.15 F .885(alue is interpreted as the number of seconds to)-.25 F -.1
-(wa)144 572.4 S .546(it for input after issuing the primary prompt.).1 F
-F1(Bash)5.546 E F0 .546(terminates after w)3.046 F .546
-(aiting for that number of)-.1 F(seconds if input does not arri)144
-584.4 Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 596.4 Q F0 .391(If set,)144
-608.4 R F1(bash)2.891 E F0 .391(uses its v)2.891 F .391
-(alue as the name of a directory in which)-.25 F F1(bash)2.89 E F0 .39
-(creates temporary \214les for the)2.89 F(shell')144 620.4 Q 2.5(su)-.55
-G(se.)-2.5 E F1(auto_r)108 632.4 Q(esume)-.18 E F0 .53(This v)144 644.4
-R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
-(he shell interacts with the user and job control.)-3.03 F .531
-(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 656.4 R
+F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.167(s. The)B -.25(va)
+3.167 G(lue).25 E(of)144 375.6 Q F3(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E 13.364
+(If this v)144 392.4 R 13.364(ariable is not set,)-.25 F F1(bash)15.865
+E F0 13.365(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr)
+144 404.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113
+(.I)C 4.613(ft)-7.113 G 2.113(he v)-4.613 F 2.113
+(alue is null, no timing information is dis-)-.25 F 2.5(played. A)144
+416.4 R(trailing ne)2.5 E
+(wline is added when the format string is displayed.)-.25 E F1(TMOUT)108
+428.4 Q F0 .941(If set to a v)144 440.4 R .941(alue greater than zero,)
+-.25 F F2(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941
+(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441
+G(iltin.).2 E(The)144 452.4 Q F1(select)2.811 E F0 .311
+(command terminates if input does not arri)2.811 F .61 -.15(ve a)-.25 H
+(fter).15 E F2(TMOUT)2.81 E F0 .31(seconds when input is com-)2.56 F
+.885(ing from a terminal.)144 464.4 R .885(In an interacti)5.885 F 1.185
+-.15(ve s)-.25 H .885(hell, the v).15 F .886
+(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 476.4
+S 1.05(it for a line of input after issuing the primary prompt.).1 F F1
+(Bash)6.05 E F0 1.05(terminates after w)3.55 F 1.05(aiting for that)-.1
+F(number of seconds if a complete line of input does not arri)144 488.4
+Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 500.4 Q F0 .39(If set,)144 512.4
+R F1(bash)2.89 E F0 .39(uses its v)2.89 F .39
+(alue as the name of a directory in which)-.25 F F1(bash)2.891 E F0 .391
+(creates temporary \214les for the)2.891 F(shell')144 524.4 Q 2.5(su)
+-.55 G(se.)-2.5 E F1(auto_r)108 536.4 Q(esume)-.18 E F0 .531(This v)144
+548.4 R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531
+(he shell interacts with the user and job control.)-3.031 F .53
+(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 560.4 R
.538(ord simple commands without redirections are treated as candidates\
- for resumption of an)-.1 F -.15(ex)144 668.4 S .366(isting stopped job)
-.15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366
-(wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F
-1.125(the string typed, the job most recently accessed is selected.)144
-680.4 R(The)6.125 E F3(name)3.985 E F0 1.124(of a stopped job, in this)
-3.805 F(conte)144 692.4 Q 1.132
+ for resumption of an)-.1 F -.15(ex)144 572.4 S .367(isting stopped job)
+.15 F 5.367(.T)-.4 G .366(here is no ambiguity allo)-5.367 F .366
+(wed; if there is more than one job be)-.25 F .366(ginning with)-.15 F
+1.124(the string typed, the job most recently accessed is selected.)144
+584.4 R(The)6.125 E F3(name)3.985 E F0 1.125(of a stopped job, in this)
+3.805 F(conte)144 596.4 Q 1.133
(xt, is the command line used to start it.)-.15 F 1.133(If set to the v)
-6.133 F(alue)-.25 E F3 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133
-(he string supplied must)-3.633 F .625
-(match the name of a stopped job e)144 704.4 R .624(xactly; if set to)
--.15 F F3(substring)3.124 E F0 3.124(,t).22 G .624
-(he string supplied needs to match a)-3.124 F .884
-(substring of the name of a stopped job)144 716.4 R 5.884(.T)-.4 G(he)
--5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
-(vides functionality analogous to)-.15 F(the)144 728.4 Q F1(%?)3.334 E
-F0 .834(job identi\214er \(see)5.834 F F2 .834(JOB CONTR)3.334 F(OL)-.27
+6.133 F(alue)-.25 E F3 -.2(ex)3.633 G(act).2 E F0 3.632(,t).68 G 1.132
+(he string supplied must)-3.632 F .624
+(match the name of a stopped job e)144 608.4 R .624(xactly; if set to)
+-.15 F F3(substring)3.125 E F0 3.125(,t).22 G .625
+(he string supplied needs to match a)-3.125 F .885
+(substring of the name of a stopped job)144 620.4 R 5.884(.T)-.4 G(he)
+-5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884
+(vides functionality analogous to)-.15 F(the)144 632.4 Q F1(%?)3.333 E
+F0 .833(job identi\214er \(see)5.833 F F2 .834(JOB CONTR)3.334 F(OL)-.27
E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an)3.334 F 3.334(yo)
--.15 G .834(ther v)-3.334 F .833(alue, the supplied string)-.25 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(16)185.955 E 0 Cg EP
-%%Page: 17 17
+-.15 G .834(ther v)-3.334 F .834(alue, the supplied string)-.25 F .316
+(must be a pre\214x of a stopped job')144 644.4 R 2.816(sn)-.55 G .316
+(ame; this pro)-2.816 F .315(vides functionality analogous to the)-.15 F
+F1(%)2.815 E F3(string)A F0(job)2.815 E(identi\214er)144 656.4 Q(.)-.55
+E F1(histchars)108 668.4 Q F0 2.069(The tw)144 680.4 R 4.57(oo)-.1 G
+4.57(rt)-4.57 G 2.07(hree characters which control history e)-4.57 F
+2.07(xpansion and tok)-.15 F 2.07(enization \(see)-.1 F F2(HIST)4.57 E
+(OR)-.162 E(Y)-.315 E(EXP)144 692.4 Q(ANSION)-.666 E F0(belo)3.466 E
+3.716(w\). The)-.25 F 1.216(\214rst character is the)3.716 F F3 1.215
+(history e)3.715 F(xpansion)-.2 E F0(character)3.715 E 3.715(,t)-.4 G
+1.215(he character which)-3.715 F .798(signals the start of a history e)
+144 704.4 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B
+.798(second character is the)3.298 F F3(quic)3.298 E 3.298(ks)-.2 G
+(ubstitu-)-3.298 E(tion)144 716.4 Q F0(character)2.74 E 2.74(,w)-.4 G
+.239(hich is used as shorthand for re-running the pre)-2.74 F .239
+(vious command entered, substitut-)-.25 F .575
+(ing one string for another in the command.)144 728.4 R .575(The def)
+5.575 F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .576
+(optional third character is the)3.076 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(17)190.95 E 0 Cg EP
+%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .315(must be a pre\214x of a stopped job')144 84 R 2.816(sn)-.55
-G .316(ame; this pro)-2.816 F .316(vides functionality analogous to the)
--.15 F/F1 10/Times-Bold@0 SF(%)2.816 E/F2 10/Times-Italic@0 SF(string)A
-F0(job)2.816 E(identi\214er)144 96 Q(.)-.55 E F1(histchars)108 108 Q F0
-2.07(The tw)144 120 R 4.57(oo)-.1 G 4.57(rt)-4.57 G 2.07
-(hree characters which control history e)-4.57 F 2.07(xpansion and tok)
--.15 F 2.07(enization \(see)-.1 F/F3 9/Times-Bold@0 SF(HIST)4.569 E(OR)
--.162 E(Y)-.315 E(EXP)144 132 Q(ANSION)-.666 E F0(belo)3.465 E 3.715
-(w\). The)-.25 F 1.215(\214rst character is the)3.715 F F2 1.216
-(history e)3.715 F(xpansion)-.2 E F0(character)3.716 E 3.716(,t)-.4 G
-1.216(he character which)-3.716 F .798(signals the start of a history e)
-144 144 R .798(xpansion, normally `)-.15 F F1(!)A F0 3.298('. The)B .798
-(second character is the)3.298 F F2(quic)3.298 E 3.298(ks)-.2 G
-(ubstitu-)-3.298 E(tion)144 156 Q F0(character)2.739 E 2.739(,w)-.4 G
-.239(hich is used as shorthand for re-running the pre)-2.739 F .24
-(vious command entered, substitut-)-.25 F .576
-(ing one string for another in the command.)144 168 R .575(The def)5.575
-F .575(ault is `)-.1 F F1(^)A F0 3.075('. The)B .575
-(optional third character is the)3.075 F .223(character which indicates\
- that the remainder of the line is a comment when found as the \214rst \
-char)144 180 R(-)-.2 E 1.294(acter of a w)144 192 R 1.294
-(ord, normally `)-.1 F F1(#)A F0 3.794('. The)B 1.293
-(history comment character causes history substitution to be)3.794 F
-.379(skipped for the remaining w)144 204 R .379(ords on the line.)-.1 F
-.38(It does not necessarily cause the shell parser to treat)5.379 F
-(the rest of the line as a comment.)144 216 Q F1(Arrays)87 232.8 Q(Bash)
-108 244.8 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F -.15
-(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15(ve a)
--.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .89
-(ariable may be used as an)-3.641 F(inde)108 256.8 Q -.15(xe)-.15 G
-2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2
-(bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15
-F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F
-.329(an array)108 268.8 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr)
--.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G
-2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F
-5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328
-(rrays are refer)-2.828 F(-)-.2 E 1.386(enced using inte)108 280.8 R
-1.386(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F
-1.387(are zero-based; associati)3.887 F 1.687 -.15(ve a)-.25 H 1.387
-(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108 292.8
-Q 2.463(An inde)108 309.6 R -.15(xe)-.15 G 4.963(da).15 G 2.463
+-.35 E .223(character which indicates that the remainder of the line is\
+ a comment when found as the \214rst char)144 84 R(-)-.2 E 1.293
+(acter of a w)144 96 R 1.293(ord, normally `)-.1 F/F1 10/Times-Bold@0 SF
+(#)A F0 3.793('. The)B 1.294
+(history comment character causes history substitution to be)3.794 F .38
+(skipped for the remaining w)144 108 R .38(ords on the line.)-.1 F .379
+(It does not necessarily cause the shell parser to treat)5.379 F
+(the rest of the line as a comment.)144 120 Q F1(Arrays)87 136.8 Q(Bash)
+108 148.8 Q F0(pro)3.39 E .89(vides one-dimensional inde)-.15 F -.15(xe)
+-.15 G 3.39(da).15 G .891(nd associati)-3.39 F 1.191 -.15(ve a)-.25 H
+.891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .891
+(ariable may be used as an)-3.641 F(inde)108 160.8 Q -.15(xe)-.15 G
+2.574(da).15 G .074(rray; the)-2.574 F F1(declar)2.574 E(e)-.18 E F0 -.2
+(bu)2.574 G .074(iltin will e).2 F .073(xplicitly declare an array)-.15
+F 5.073(.T)-.65 G .073(here is no maximum limit on the size of)-5.073 F
+.328(an array)108 172.8 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828(yr)
+-.15 G .329(equirement that members be inde)-2.828 F -.15(xe)-.15 G
+2.829(do).15 G 2.829(ra)-2.829 G .329(ssigned contiguously)-2.829 F
+5.329(.I)-.65 G(nde)-5.329 E -.15(xe)-.15 G 2.829(da).15 G .329
+(rrays are refer)-2.829 F(-)-.2 E 1.387(enced using inte)108 184.8 R
+1.387(gers \(including arithmetic e)-.15 F 3.887(xpressions\) and)-.15 F
+1.387(are zero-based; associati)3.887 F 1.686 -.15(ve a)-.25 H 1.386
+(rrays are refer).15 F(-)-.2 E .219(enced using arbitrary strings.)108
+196.8 R .219(Unless otherwise noted, inde)5.219 F -.15(xe)-.15 G 2.719
+(da).15 G .219(rray indices must be non-ne)-2.719 F -.05(ga)-.15 G(ti)
+.05 E .52 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.463(An inde)108
+213.6 R -.15(xe)-.15 G 4.963(da).15 G 2.463
(rray is created automatically if an)-4.963 F 4.963(yv)-.15 G 2.462
-(ariable is assigned to using the syntax)-5.213 F F2(name)4.962 E F0([)A
-F2(sub-)A(script)108 321.6 Q F0(]=)A F2(value)A F0 5.426(.T)C(he)-5.426
-E F2(subscript)3.266 E F0 .426(is treated as an arithmetic e)3.606 F
-.426(xpression that must e)-.15 F -.25(va)-.25 G .427(luate to a number)
-.25 F 5.427(.I)-.55 G(f)-5.427 E F2(sub-)3.267 E(script)108 333.6 Q F0
--.25(eva)3.913 G .733
-(luates to a number less than zero, it is used as an of).25 F .733
-(fset from one greater than the array')-.25 F 3.233(sm)-.55 G(axi-)
--3.233 E 1.104(mum inde)108 345.6 R 3.604(x\()-.15 G 1.105
-(so a subcript of -1 refers to the last element of the array\).)-3.604 F
-2.705 -.8(To e)6.105 H 1.105(xplicitly declare an inde).65 F -.15(xe)
--.15 G(d).15 E(array)108 357.6 Q 3.828(,u)-.65 G(se)-3.828 E F1(declar)
-3.828 E 3.828<65ad>-.18 G(a)-3.828 E F2(name)3.828 E F0(\(see)3.828 E F3
-1.327(SHELL B)3.827 F(UIL)-.09 E 1.327(TIN COMMANDS)-.828 F F0(belo)
-3.577 E(w\).)-.25 E F1(declar)6.327 E 3.827<65ad>-.18 G(a)-3.827 E F2
-(name)3.827 E F1([)A F2(subscript)A F1(])A F0(is)3.827 E
-(also accepted; the)108 369.6 Q F2(subscript)2.5 E F0(is ignored.)2.5 E
-(Associati)108 386.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
+(ariable is assigned to using the syntax)-5.213 F/F2 10/Times-Italic@0
+SF(name)4.962 E F0([)A F2(sub-)A(script)108 225.6 Q F0(]=)A F2(value)A
+F0 6.548(.T)C(he)-6.548 E F2(subscript)4.388 E F0 1.549
+(is treated as an arithmetic e)4.728 F 1.549(xpression that must e)-.15
+F -.25(va)-.25 G 1.549(luate to a number).25 F 6.549(.T)-.55 G(o)-7.349
+E -.15(ex)108 237.6 S 1.98(plicitly declare an inde).15 F -.15(xe)-.15 G
+4.48(da).15 G(rray)-4.48 E 4.48(,u)-.65 G(se)-4.48 E F1(declar)4.48 E
+4.48<65ad>-.18 G(a)-4.48 E F2(name)4.48 E F0(\(see)4.48 E/F3 9
+/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)
+-.828 F F0(belo)4.229 E(w\).)-.25 E F1(declar)108 249.6 Q 2.5<65ad>-.18
+G(a)-2.5 E F2(name)2.5 E F1([)A F2(subscript)A F1(])A F0
+(is also accepted; the)2.5 E F2(subscript)2.5 E F0(is ignored.)2.5 E
+(Associati)108 266.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
F1(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108
-403.2 Q .94(utes may be speci\214ed for an array v)-.2 F .941
+283.2 Q .94(utes may be speci\214ed for an array v)-.2 F .941
(ariable using the)-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1
-.18(re)3.441 G(adonly).18 E F0 -.2(bu)3.441 G 3.441(iltins. Each).2 F
-(attrib)3.441 E(ute)-.2 E(applies to all members of an array)108 415.2 Q
+(attrib)3.441 E(ute)-.2 E(applies to all members of an array)108 295.2 Q
(.)-.65 E 1.647
-(Arrays are assigned to using compound assignments of the form)108 432 R
+(Arrays are assigned to using compound assignments of the form)108 312 R
F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647
(... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each)
--4.147 F F2(value)108 444 Q F0 .122(is of the form [)2.622 F F2
-(subscript)A F0(]=)A F2(string)A F0 5.122(.I)C(nde)-5.122 E -.15(xe)-.15
-G 2.622(da).15 G .122(rray assignments do not require the brack)-2.622 F
-.122(et and subscript.)-.1 F .164(When assigning to inde)108 456 R -.15
-(xe)-.15 G 2.663(da).15 G .163(rrays, if the optional brack)-2.663 F
-.163(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G
-2.663(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 468 R
-3.91(xo)-.15 G 3.91(ft)-3.91 G 1.41
-(he element assigned is the last inde)-3.91 F 3.911(xa)-.15 G 1.411
-(ssigned to by the statement plus one.)-3.911 F(Inde)108 480 Q
-(xing starts at zero.)-.15 E(When assigning to an associati)108 496.8 Q
-.3 -.15(ve a)-.25 H(rray).15 E 2.5(,t)-.65 G(he subscript is required.)
--2.5 E .24(This syntax is also accepted by the)108 513.6 R F1(declar)
-2.74 E(e)-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
+-4.147 F F2(value)108 324 Q F0 1.833(is of the form [)4.332 F F2
+(subscript)A F0(]=)A F2(string)A F0 6.833(.I)C(nde)-6.833 E -.15(xe)-.15
+G 4.333(da).15 G 1.833(rray assignments do not require an)-4.333 F 1.833
+(ything b)-.15 F(ut)-.2 E F2(string)4.333 E F0(.)A .164
+(When assigning to inde)108 336 R -.15(xe)-.15 G 2.663(da).15 G .163
+(rrays, if the optional brack)-2.663 F .163
+(ets and subscript are supplied, that inde)-.1 F 2.663(xi)-.15 G 2.663
+(sa)-2.663 G(ssigned)-2.663 E 1.41(to; otherwise the inde)108 348 R 3.91
+(xo)-.15 G 3.91(ft)-3.91 G 1.41(he element assigned is the last inde)
+-3.91 F 3.911(xa)-.15 G 1.411(ssigned to by the statement plus one.)
+-3.911 F(Inde)108 360 Q(xing starts at zero.)-.15 E
+(When assigning to an associati)108 376.8 Q .3 -.15(ve a)-.25 H(rray).15
+E 2.5(,t)-.65 G(he subscript is required.)-2.5 E .24
+(This syntax is also accepted by the)108 393.6 R F1(declar)2.74 E(e)-.18
+E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
(vidual array elements may be assigned to using the)-.25 F F2(name)108
-525.6 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0
-(syntax introduced abo)2.5 E -.15(ve)-.15 G(.).15 E(An)108 542.4 Q 3.575
-(ye)-.15 G 1.075(lement of an array may be referenced using ${)-3.575 F
-F2(name)A F0([)A F2(subscript)A F0 3.575(]}. The)B 1.076
-(braces are required to a)3.576 F -.2(vo)-.2 G(id).2 E 1.542
-(con\215icts with pathname e)108 554.4 R 4.041(xpansion. If)-.15 F F2
+405.6 Q F0([)A F2(subscript)A F0(]=)A F2(value)A F0 1.917
+(syntax introduced abo)4.416 F -.15(ve)-.15 G 6.917(.W).15 G 1.917
+(hen assigning to an inde)-6.917 F -.15(xe)-.15 G 4.417(da).15 G(rray)
+-4.417 E 4.417(,i)-.65 G(f)-4.417 E F2(name)4.777 E F0 1.917(is sub-)
+4.597 F .116(scripted by a ne)108 417.6 R -.05(ga)-.15 G(ti).05 E .416
+-.15(ve n)-.25 H(umber).15 E 2.616(,t)-.4 G .115
+(hat number is interpreted as relati)-2.616 F .415 -.15(ve t)-.25 H
+2.615(oo).15 G .115(ne greater than the maximum inde)-2.615 F(x)-.15 E
+(of)108 429.6 Q F2(name)3.338 E F0 3.338(,s)C 3.338(on)-3.338 G -2.25
+-.15(eg a)-3.338 H(ti).15 E 1.138 -.15(ve i)-.25 H .838
+(ndices count back from the end of the array).15 F 3.338(,a)-.65 G .838
+(nd an inde)-3.338 F 3.338(xo)-.15 G 3.338<66ad>-3.338 G 3.338(1r)-3.338
+G .838(eferences the last)-3.338 F(element.)108 441.6 Q(An)108 458.4 Q
+3.576(ye)-.15 G 1.076(lement of an array may be referenced using ${)
+-3.576 F F2(name)A F0([)A F2(subscript)A F0 3.575(]}. The)B 1.075
+(braces are required to a)3.575 F -.2(vo)-.2 G(id).2 E 1.541
+(con\215icts with pathname e)108 470.4 R 4.041(xpansion. If)-.15 F F2
(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0(or)4.041 E F1(*)4.041 E
F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541
-(xpands to all members of)-.15 F F2(name)4.041 E F0(.)A 1.056
-(These subscripts dif)108 566.4 R 1.056(fer only when the w)-.25 F 1.057
-(ord appears within double quotes.)-.1 F 1.057(If the w)6.057 F 1.057
-(ord is double-quoted,)-.1 F(${)108 578.4 Q F2(name)A F0 .521([*]} e)B
-.521(xpands to a single w)-.15 F .521(ord with the v)-.1 F .52
+(xpands to all members of)-.15 F F2(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 482.4 R 1.057(fer only when the w)-.25 F 1.057
+(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056
+(ord is double-quoted,)-.1 F(${)108 494.4 Q F2(name)A F0 .52([*]} e)B
+.52(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521
(alue of each array member separated by the \214rst character)-.25 F
-1.374(of the)108 590.4 R F3(IFS)3.874 E F0 1.374(special v)3.624 F 1.375
+1.375(of the)108 506.4 R F3(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
(ariable, and ${)-.25 F F2(name)A F0 1.375([@]} e)B 1.375
-(xpands each element of)-.15 F F2(name)3.875 E F0 1.375(to a separate w)
-3.875 F 3.875(ord. When)-.1 F 2.028(there are no array members, ${)108
-602.4 R F2(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
-2.027(If the double-quoted e)7.028 F 2.027(xpansion occurs)-.15 F .758
-(within a w)108 614.4 R .759(ord, the e)-.1 F .759
+(xpands each element of)-.15 F F2(name)3.875 E F0 1.374(to a separate w)
+3.875 F 3.874(ord. When)-.1 F 2.027(there are no array members, ${)108
+518.4 R F2(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
+(within a w)108 530.4 R .759(ord, the e)-.1 F .759
(xpansion of the \214rst parameter is joined with the be)-.15 F .759
-(ginning part of the original w)-.15 F(ord,)-.1 E .516(and the e)108
-626.4 R .516(xpansion of the last parameter is joined with the last par\
-t of the original w)-.15 F 3.015(ord. This)-.1 F .515(is analogous)3.015
-F .227(to the e)108 638.4 R .228(xpansion of the special parameters)-.15
+(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
+542.4 R .516(xpansion of the last parameter is joined with the last par\
+t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
+F .228(to the e)108 554.4 R .228(xpansion of the special parameters)-.15
F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228
-(Special P)2.728 F(arameters)-.1 E F0(abo)2.728 E -.15(ve)-.15 G 2.728
-(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 650.4
+(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
+(\). ${#).15 F F2(name)A F0([)A F2(subscript)A F0(]})A -.15(ex)108 566.4
S .886(pands to the length of ${).15 F F2(name)A F0([)A F2(subscript)A
F0 3.386(]}. If)B F2(subscript)3.386 E F0(is)3.386 E F1(*)3.386 E F0(or)
3.386 E F1(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
-(xpansion is the number of ele-)-.15 F .462(ments in the array)108 662.4
-R 5.462(.R)-.65 G .462(eferencing an array v)-5.462 F .463
-(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .463
-(lent to referencing the array).25 F(with a subscript of 0.)108 674.4 Q
-.168(An array v)108 691.2 R .168
+(xpansion is the number of ele-)-.15 F .463(ments in the array)108 578.4
+R 5.463(.R)-.65 G .463(eferencing an array v)-5.463 F .462
+(ariable without a subscript is equi)-.25 F -.25(va)-.25 G .462
+(lent to referencing the array).25 F .233(with a subscript of 0.)108
+590.4 R .233(If the)5.233 F F2(subscript)3.073 E F0 .233
+(used to reference an element of an inde)3.413 F -.15(xe)-.15 G 2.733
+(da).15 G .233(rray e)-2.733 F -.25(va)-.25 G .233(luates to a num-).25
+F .617(ber less than zero, it is interpreted as relati)108 602.4 R .917
+-.15(ve t)-.25 H 3.117(oo).15 G .616(ne greater than the maximum inde)
+-3.117 F 3.116(xo)-.15 G 3.116(ft)-3.116 G .616(he array)-3.116 F 3.116
+(,s)-.65 G 3.116(on)-3.116 G -.15(eg)-3.116 G(-).15 E(ati)108 614.4 Q .3
+-.15(ve i)-.25 H(ndices count back from the end of the array).15 E 2.5
+(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
+(eferences the last element.)-2.5 E .168(An array v)108 631.2 R .168
(ariable is considered set if a subscript has been assigned a v)-.25 F
2.668(alue. The)-.25 F .168(null string is a v)2.668 F .168(alid v)-.25
-F(alue.)-.25 E(The)108 708 Q F1(unset)2.766 E F0 -.2(bu)2.766 G .267
-(iltin is used to destro).2 F 2.767(ya)-.1 G(rrays.)-2.767 E F1(unset)
-5.267 E F2(name)2.767 E F0([)A F2(subscript)A F0 2.767(]d)C(estro)-2.767
-E .267(ys the array element at inde)-.1 F(x)-.15 E F2(sub-)2.767 E
-(script)108 720 Q F0 6.205(.C)C 1.205(are must be tak)-6.205 F 1.205
-(en to a)-.1 F -.2(vo)-.2 G 1.205(id unw).2 F 1.205(anted side ef)-.1 F
-1.204(fects caused by pathname e)-.25 F(xpansion.)-.15 E F1(unset)6.204
-E F2(name)3.704 E F0(,)A(GNU Bash-4.2)72 768 Q(2010 December 28)135.965
-E(17)185.955 E 0 Cg EP
-%%Page: 18 18
+F(alue.)-.25 E .418(It is possible to obtain the k)108 648 R -.15(ey)-.1
+G 2.918(s\().15 G .418(indices\) of an array as well as the v)-2.918 F
+2.917(alues. ${)-.25 F F1(!)A F2(name)A F0([)A F2(@)A F0 .417(]} and ${)
+B F1(!)A F2(name)A F0([)A F2(*)A F0(]})A -.15(ex)108 660 S .749
+(pand to the indices assigned in array v).15 F(ariable)-.25 E F2(name)
+3.249 E F0 5.749(.T)C .75
+(he treatment when in double quotes is similar to)-5.749 F(the e)108 672
+Q(xpansion of the special parameters)-.15 E F2(@)2.5 E F0(and)2.5 E F2
+(*)2.5 E F0(within double quotes.)2.5 E(The)108 688.8 Q F1(unset)2.767 E
+F0 -.2(bu)2.767 G .267(iltin is used to destro).2 F 2.767(ya)-.1 G
+(rrays.)-2.767 E F1(unset)5.267 E F2(name)2.767 E F0([)A F2(subscript)A
+F0 2.767(]d)C(estro)-2.767 E .267(ys the array element at inde)-.1 F(x)
+-.15 E F2(sub-)2.766 E(script)108 700.8 Q F0 6.318(.N)C -2.25 -.15(eg a)
+-6.318 H(ti).15 E 1.618 -.15(ve s)-.25 H 1.318(ubscripts to inde).15 F
+-.15(xe)-.15 G 3.818(da).15 G 1.319
+(rrays are interpreted as described abo)-3.818 F -.15(ve)-.15 G 6.319
+(.C).15 G 1.319(are must be tak)-6.319 F 1.319(en to)-.1 F -.2(avo)108
+712.8 S .298(id unw).2 F .298(anted side ef)-.1 F .298
+(fects caused by pathname e)-.25 F(xpansion.)-.15 E F1(unset)5.298 E F2
+(name)2.797 E F0 2.797(,w)C(here)-2.797 E F2(name)2.797 E F0 .297
+(is an array)2.797 F 2.797(,o)-.65 G(r)-2.797 E F1(unset)2.797 E F2
+(name)108 724.8 Q F0([)A F2(subscript)A F0(], where)A F2(subscript)2.5 E
+F0(is)2.5 E F1(*)2.5 E F0(or)2.5 E F1(@)2.5 E F0 2.5(,r)C(emo)-2.5 E
+-.15(ve)-.15 G 2.5(st).15 G(he entire array)-2.5 E(.)-.65 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(18)190.95 E 0 Cg EP
+%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(where)108 84 Q/F1 10/Times-Italic@0 SF(name)2.5 E F0(is an array)
-2.5 E 2.5(,o)-.65 G(r)-2.5 E/F2 10/Times-Bold@0 SF(unset)2.5 E F1(name)
-2.5 E F0([)A F1(subscript)A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E
-F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G
-2.5(st).15 G(he entire array)-2.5 E(.)-.65 E(The)108 100.8 Q F2(declar)
-3.573 E(e)-.18 E F0(,)A F2(local)3.573 E F0 3.573(,a)C(nd)-3.573 E F2
--.18(re)3.573 G(adonly).18 E F0 -.2(bu)3.573 G 1.073
-(iltins each accept a).2 F F2<ad61>3.573 E F0 1.073
-(option to specify an inde)3.573 F -.15(xe)-.15 G 3.574(da).15 G 1.074
-(rray and a)-3.574 F F2<ad41>3.574 E F0 .339
-(option to specify an associati)108 112.8 R .638 -.15(ve a)-.25 H(rray)
-.15 E 5.338(.I)-.65 G 2.838(fb)-5.338 G .338(oth options are supplied,)
--2.838 F F2<ad41>2.838 E F0(tak)2.838 E .338(es precedence.)-.1 F(The)
-5.338 E F2 -.18(re)2.838 G(ad).18 E F0 -.2(bu)2.838 G(iltin).2 E .44
-(accepts a)108 124.8 R F2<ad61>2.941 E F0 .441
+-.35 E(The)108 84 Q/F1 10/Times-Bold@0 SF(declar)3.573 E(e)-.18 E F0(,)A
+F1(local)3.573 E F0 3.573(,a)C(nd)-3.573 E F1 -.18(re)3.573 G(adonly).18
+E F0 -.2(bu)3.573 G 1.073(iltins each accept a).2 F F1<ad61>3.573 E F0
+1.073(option to specify an inde)3.573 F -.15(xe)-.15 G 3.574(da).15 G
+1.074(rray and a)-3.574 F F1<ad41>3.574 E F0 .339
+(option to specify an associati)108 96 R .638 -.15(ve a)-.25 H(rray).15
+E 5.338(.I)-.65 G 2.838(fb)-5.338 G .338(oth options are supplied,)
+-2.838 F F1<ad41>2.838 E F0(tak)2.838 E .338(es precedence.)-.1 F(The)
+5.338 E F1 -.18(re)2.838 G(ad).18 E F0 -.2(bu)2.838 G(iltin).2 E .44
+(accepts a)108 108 R F1<ad61>2.941 E F0 .441
(option to assign a list of w)2.941 F .441
(ords read from the standard input to an array)-.1 F 5.441(.T)-.65 G(he)
--5.441 E F2(set)2.941 E F0(and)2.941 E F2(declar)2.941 E(e)-.18 E F0 -.2
-(bu)108 136.8 S(iltins display array v).2 E(alues in a w)-.25 E
-(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F3 10.95
-/Times-Bold@0 SF(EXP)72 153.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
-rmed on the command line after it has been split into w)108 165.6 R 3.26
+-5.441 E F1(set)2.941 E F0(and)2.941 E F1(declar)2.941 E(e)-.18 E F0 -.2
+(bu)108 120 S(iltins display array v).2 E(alues in a w)-.25 E
+(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F2 10.95
+/Times-Bold@0 SF(EXP)72 136.8 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
+rmed on the command line after it has been split into w)108 148.8 R 3.26
(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26(nk).15 G .76
-(inds of)-3.26 F -.15(ex)108 177.6 S .369(pansion performed:).15 F F1
-(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .369(tilde e)
-2.869 F(xpansion)-.2 E F0(,).24 E F1(par)2.869 E .369
-(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .37
-(command sub-)2.869 F(stitution)108 189.6 Q F0(,).24 E F1(arithmetic e)
-2.5 E(xpansion)-.2 E F0(,).24 E F1(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5
-E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)2.5 E(xpansion)-.2 E F0(.).24
-E .471(The order of e)108 206.4 R .471(xpansions is: brace e)-.15 F .471
-(xpansion, tilde e)-.15 F .471(xpansion, parameter)-.15 F 2.971(,v)-.4 G
-.47(ariable and arithmetic e)-3.221 F(xpansion)-.15 E
-(and command substitution \(done in a left-to-right f)108 218.4 Q
-(ashion\), w)-.1 E(ord splitting, and pathname e)-.1 E(xpansion.)-.15 E
-(On systems that can support it, there is an additional e)108 235.2 Q
-(xpansion a)-.15 E -.25(va)-.2 G(ilable:).25 E F1(pr)2.5 E
-(ocess substitution)-.45 E F0(.)A 1.486(Only brace e)108 252 R 1.486
-(xpansion, w)-.15 F 1.486(ord splitting, and pathname e)-.1 F 1.487
+(inds of)-3.26 F -.15(ex)108 160.8 S .369(pansion performed:).15 F/F3 10
+/Times-Italic@0 SF(br)2.869 E .369(ace e)-.15 F(xpansion)-.2 E F0(,).24
+E F3 .369(tilde e)2.869 F(xpansion)-.2 E F0(,).24 E F3(par)2.869 E .369
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F3 .37
+(command sub-)2.869 F(stitution)108 172.8 Q F0(,).24 E F3(arithmetic e)
+2.5 E(xpansion)-.2 E F0(,).24 E F3(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5
+E F0 2.5(,a).22 G(nd)-2.5 E F3(pathname e)2.5 E(xpansion)-.2 E F0(.).24
+E .419(The order of e)108 189.6 R .419(xpansions is: brace e)-.15 F .418
+(xpansion; tilde e)-.15 F .418(xpansion, parameter and v)-.15 F .418
+(ariable e)-.25 F .418(xpansion, arithmetic)-.15 F -.15(ex)108 201.6 S
+.195(pansion, and command substitution \(done in a left-to-right f).15 F
+.196(ashion\); w)-.1 F .196(ord splitting; and pathname e)-.1 F(xpan-)
+-.15 E(sion.)108 213.6 Q .257
+(On systems that can support it, there is an additional e)108 230.4 R
+.257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F3(pr)2.757 E .257
+(ocess substitution)-.45 F F0 5.257(.T)C .256(his is per)-5.257 F(-)-.2
+E(formed at the same time as tilde, parameter)108 242.4 Q 2.5(,v)-.4 G
+(ariable, and arithmetic e)-2.75 E(xpansion and command substitution.)
+-.15 E 1.486(Only brace e)108 259.2 R 1.486(xpansion, w)-.15 F 1.486
+(ord splitting, and pathname e)-.1 F 1.487
(xpansion can change the number of w)-.15 F 1.487(ords of the)-.1 F -.15
-(ex)108 264 S 1.165(pansion; other e).15 F 1.165(xpansions e)-.15 F
+(ex)108 271.2 S 1.165(pansion; other e).15 F 1.165(xpansions e)-.15 F
1.165(xpand a single w)-.15 F 1.165(ord to a single w)-.1 F 3.665
(ord. The)-.1 F 1.164(only e)3.665 F 1.164(xceptions to this are the)
--.15 F -.15(ex)108 276 S(pansions of ").15 E F2($@)A F0 2.5("a)C(nd ")
--2.5 E F2(${)A F1(name)A F2([@]})A F0 2.5("a)C 2.5(se)-2.5 G
+-.15 F -.15(ex)108 283.2 S(pansions of ").15 E F1($@)A F0 2.5("a)C(nd ")
+-2.5 E F1(${)A F3(name)A F1([@]})A F0 2.5("a)C 2.5(se)-2.5 G
(xplained abo)-2.65 E .3 -.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0
-SF -.666(PA)2.5 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F2
-(Brace Expansion)87 292.8 Q F1(Br)108.58 304.8 Q .606(ace e)-.15 F
-(xpansion)-.2 E F0 .606
+SF -.666(PA)2.5 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF(\).)A F1
+(Brace Expansion)87 300 Q F3(Br)108.58 312 Q .606(ace e)-.15 F(xpansion)
+-.2 E F0 .606
(is a mechanism by which arbitrary strings may be generated.)3.346 F
-.606(This mechanism is similar)5.606 F(to)108 316.8 Q F1 .415
-(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
+.606(This mechanism is similar)5.606 F(to)108 324 Q F3 .415(pathname e)
+2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
(ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
.415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
-(he)-2.915 E .151(form of an optional)108 328.8 R F1(pr)2.651 E(eamble)
+(he)-2.915 E .151(form of an optional)108 336 R F3(pr)2.651 E(eamble)
-.37 E F0 2.651(,f).18 G(ollo)-2.651 E .151
(wed by either a series of comma-separated strings or a sequence e)-.25
-F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 340.8 R
-.563(wed by an optional)-.25 F F1(postscript)3.063 E F0 5.563(.T).68 G
-.563(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659
-(contained within the braces, and the postscript is then appended to ea\
-ch resulting string, e)108 352.8 R .659(xpanding left to)-.15 F(right.)
-108 364.8 Q .719(Brace e)108 381.6 R .719(xpansions may be nested.)-.15
-F .719(The results of each e)5.719 F .719
+F(xpres-)-.15 E .563(sion between a pair of braces, follo)108 348 R .563
+(wed by an optional)-.25 F F3(postscript)3.063 E F0 5.563(.T).68 G .563
+(he preamble is pre\214x)-5.563 F .563(ed to each string)-.15 F .659(co\
+ntained within the braces, and the postscript is then appended to each \
+resulting string, e)108 360 R .659(xpanding left to)-.15 F(right.)108
+372 Q .719(Brace e)108 388.8 R .719(xpansions may be nested.)-.15 F .719
+(The results of each e)5.719 F .719
(xpanded string are not sorted; left to right order is)-.15 F(preserv)
-108 393.6 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0
-(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.242(As)
-108 410.4 S .742(equence e)-3.242 F .742(xpression tak)-.15 F .742
-(es the form)-.1 F F2({)3.242 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A
-F2(]})A F0 3.242(,w)C(here)-3.242 E F1(x)3.242 E F0(and)3.243 E F1(y)
+108 400.8 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F1({)A F0
+(d,c,b)A F1(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.242(As)
+108 417.6 S .742(equence e)-3.242 F .742(xpression tak)-.15 F .742
+(es the form)-.1 F F1({)3.242 E F3(x)A F1(..)A F3(y)A F1([..)A F3(incr)A
+F1(]})A F0 3.242(,w)C(here)-3.242 E F3(x)3.242 E F0(and)3.243 E F3(y)
3.243 E F0 .743(are either inte)3.243 F .743(gers or single characters,)
--.15 F(and)108 422.4 Q F1(incr)3.032 E F0 3.032(,a)C 3.032(no)-3.032 G
+-.15 F(and)108 429.6 Q F3(incr)3.032 E F0 3.032(,a)C 3.032(no)-3.032 G
.532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G
.532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
(xpression e)-.15 F .531(xpands to each)-.15 F .077(number between)108
-434.4 R F1(x)2.577 E F0(and)2.577 E F1(y)2.577 E F0 2.577(,i)C(nclusi)
+441.6 R F3(x)2.577 E F0(and)2.577 E F3(y)2.577 E F0 2.577(,i)C(nclusi)
-2.577 E -.15(ve)-.25 G 5.077(.S).15 G .077(upplied inte)-5.077 F .077
-(gers may be pre\214x)-.15 F .077(ed with)-.15 F F1(0)2.577 E F0 .078
+(gers may be pre\214x)-.15 F .077(ed with)-.15 F F3(0)2.577 E F0 .078
(to force each term to ha)2.578 F .378 -.15(ve t)-.2 H(he).15 E .015
-(same width.)108 446.4 R .015(When either)5.015 F F1(x)2.515 E F0(or)
-2.515 E F1(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell att\
+(same width.)108 453.6 R .015(When either)5.015 F F3(x)2.515 E F0(or)
+2.515 E F3(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell att\
empts to force all generated terms to contain)-.15 F 1.143
-(the same number of digits, zero-padding where necessary)108 458.4 R
+(the same number of digits, zero-padding where necessary)108 465.6 R
6.143(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F
-(xpression)-.15 E -.15(ex)108 470.4 S .542(pands to each character le)
-.15 F .542(xicographically between)-.15 F F1(x)3.042 E F0(and)3.042 E F1
-(y)3.042 E F0 3.042(,i)C(nclusi)-3.042 E -.15(ve)-.25 G 5.542(.N).15 G
-.542(ote that both)-5.542 F F1(x)3.041 E F0(and)3.041 E F1(y)3.041 E F0
-.541(must be of)3.041 F .182(the same type.)108 482.4 R .182
-(When the increment is supplied, it is used as the dif)5.182 F .183
-(ference between each term.)-.25 F .183(The def)5.183 F(ault)-.1 E
-(increment is 1 or -1 as appropriate.)108 494.4 Q .582(Brace e)108 511.2
+(xpression)-.15 E -.15(ex)108 477.6 S 1.064(pands to each character le)
+.15 F 1.064(xicographically between)-.15 F F3(x)3.564 E F0(and)3.564 E
+F3(y)3.564 E F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G
+1.064(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .983
+(that both)108 489.6 R F3(x)3.483 E F0(and)3.483 E F3(y)3.483 E F0 .983
+(must be of the same type.)3.483 F .984
+(When the increment is supplied, it is used as the dif)5.983 F(ference)
+-.25 E(between each term.)108 501.6 Q(The def)5 E
+(ault increment is 1 or -1 as appropriate.)-.1 E .582(Brace e)108 518.4
R .582(xpansion is performed before an)-.15 F 3.082(yo)-.15 G .581
(ther e)-3.082 F .581(xpansions, and an)-.15 F 3.081(yc)-.15 G .581
(haracters special to other e)-3.081 F(xpansions)-.15 E .015
-(are preserv)108 523.2 R .015(ed in the result.)-.15 F .015
-(It is strictly te)5.015 F(xtual.)-.15 E F2(Bash)5.016 E F0 .016
+(are preserv)108 530.4 R .015(ed in the result.)-.15 F .015
+(It is strictly te)5.015 F(xtual.)-.15 E F1(Bash)5.016 E F0 .016
(does not apply an)2.516 F 2.516(ys)-.15 G .016
-(yntactic interpretation to the con-)-2.516 F(te)108 535.2 Q
+(yntactic interpretation to the con-)-2.516 F(te)108 542.4 Q
(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.)
--.15 E 3.633(Ac)108 552 S 1.133(orrectly-formed brace e)-3.633 F 1.132(\
-xpansion must contain unquoted opening and closing braces, and at least\
- one)-.15 F 3.44(unquoted comma or a v)108 564 R 3.441(alid sequence e)
--.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
+-.15 E 3.633(Ac)108 559.2 S 1.133(orrectly-formed brace e)-3.633 F 1.132
+(xpansion must contain unquoted opening and closing braces, and at leas\
+t one)-.15 F 3.44(unquoted comma or a v)108 571.2 R 3.441
+(alid sequence e)-.25 F 5.941(xpression. An)-.15 F 5.941(yi)-.15 G 3.441
(ncorrectly formed brace e)-5.941 F 3.441(xpansion is left)-.15 F 2.755
-(unchanged. A)108 576 R F2({)2.755 E F0(or)2.755 E F2(,)2.755 E F0 .255
-(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
+(unchanged. A)108 583.2 R F1({)2.755 E F0(or)2.755 E F1(,)2.755 E F0
+.255(may be quoted with a backslash to pre)2.755 F -.15(ve)-.25 G .255
(nt its being considered part of a brace e).15 F(xpres-)-.15 E 2.91
-(sion. T)108 588 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41
+(sion. T)108 595.2 R 2.91(oa)-.8 G -.2(vo)-3.11 G .41
(id con\215icts with parameter e).2 F .411(xpansion, the string)-.15 F
-F2(${)2.911 E F0 .411(is not considered eligible for brace e)2.911 F
-(xpan-)-.15 E(sion.)108 600 Q 1.476(This construct is typically used as\
- shorthand when the common pre\214x of the strings to be generated is)
-108 616.8 R(longer than in the abo)108 628.8 Q .3 -.15(ve ex)-.15 H
-(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144 645.6 Q -.65(w,)-.25
-G(dist,b).65 E(ugs})-.2 E(or)108 657.6 Q(cho)144 669.6 Q
+F1(${)2.911 E F0 .411(is not considered eligible for brace e)2.911 F
+(xpan-)-.15 E(sion.)108 607.2 Q 1.476(This construct is typically used \
+as shorthand when the common pre\214x of the strings to be generated is)
+108 624 R(longer than in the abo)108 636 Q .3 -.15(ve ex)-.15 H(ample:)
+.15 E(mkdir /usr/local/src/bash/{old,ne)144 652.8 Q -.65(w,)-.25 G
+(dist,b).65 E(ugs})-.2 E(or)108 664.8 Q(cho)144 676.8 Q
(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15 E(w_e)
--.25 E(x}})-.15 E .618(Brace e)108 686.4 R .618
+-.25 E(x}})-.15 E .618(Brace e)108 693.6 R .618
(xpansion introduces a slight incompatibility with historical v)-.15 F
-.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618
+.618(ersions of)-.15 F F1(sh)3.118 E F0(.)A F1(sh)5.618 E F0 .618
(does not treat open-)3.118 F .248
-(ing or closing braces specially when the)108 698.4 R 2.748(ya)-.15 G
+(ing or closing braces specially when the)108 705.6 R 2.748(ya)-.15 G
.247(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247
-(es them in the output.)-.15 F F2(Bash)5.247 E F0(remo)108 710.4 Q -.15
+(es them in the output.)-.15 F F1(Bash)5.247 E F0(remo)108 717.6 Q -.15
(ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
(ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
-(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh)
-3.53 E F0(as)3.53 E F1(\214le{1,2})108 722.4 Q F0 .515
+(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F1(sh)
+3.53 E F0(as)3.53 E F3(\214le{1,2})108 729.6 Q F0 .515
(appears identically in the output.)3.015 F .515(The same w)5.515 F .515
-(ord is output as)-.1 F F1 .514(\214le1 \214le2)4.925 F F0 .514(after e)
-3.034 F .514(xpansion by)-.15 F F2(bash)3.014 E F0(.)A(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(18)185.955 E 0 Cg EP
-%%Page: 19 19
+(ord is output as)-.1 F F3 .514(\214le1 \214le2)4.925 F F0 .514(after e)
+3.034 F .514(xpansion by)-.15 F F1(bash)3.014 E F0(.)A(GNU Bash 4.3)72
+768 Q(2014 February 2)141.79 E(19)190.95 E 0 Cg EP
+%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
@@ -2452,9 +2638,9 @@ ith the corresponding element from the directory stack, as it w)108
(ariable assignment is check)-.25 F .167(ed for unquoted tilde-pre\214x)
-.1 F .167(es immediately follo)-.15 F .167(wing a)-.25 F F1(:)2.667 E
F0 .167(or the \214rst)2.667 F F1(=)2.666 E F0 5.166(.I)C(n)-5.166 E
-.281(these cases, tilde e)108 307.2 R .282(xpansion is also performed.)
--.15 F(Consequently)5.282 E 2.782(,o)-.65 G .282
-(ne may use \214le names with tildes in assign-)-2.782 F(ments to)108
+.467(these cases, tilde e)108 307.2 R .467(xpansion is also performed.)
+-.15 F(Consequently)5.467 E 2.967(,o)-.65 G .468
+(ne may use \214lenames with tildes in assign-)-2.967 F(ments to)108
319.2 Q F2 -.666(PA)2.5 G(TH)-.189 E F4(,)A F2(MAILP)2.25 E -.855(AT)
-.666 G(H).855 E F4(,)A F0(and)2.25 E F2(CDP)2.5 E -.855(AT)-.666 G(H)
.855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)-.15 E
@@ -2479,51 +2665,55 @@ Q 1.189
1.205(is a positional)4.435 F .264
(parameter with more than one digit, or when)144 465.6 R F3(par)4.014 E
(ameter)-.15 E F0 .264(is follo)3.494 F .264
-(wed by a character which is not to)-.25 F
-(be interpreted as part of its name.)144 477.6 Q .685
-(If the \214rst character of)108 494.4 R F3(par)3.185 E(ameter)-.15 E F0
-.685(is an e)3.185 F .685(xclamation point \()-.15 F F1(!)A F0 .685
-(\), a le)B -.15(ve)-.25 G 3.186(lo).15 G 3.186(fv)-3.186 G .686
-(ariable indirection is introduced.)-3.436 F F1(Bash)108 506.4 Q F0 .106
-(uses the v)2.606 F .106(alue of the v)-.25 F .106
+(wed by a character which is not to)-.25 F 2.676
+(be interpreted as part of its name.)144 477.6 R(The)7.677 E F3(par)
+5.177 E(ameter)-.15 E F0 2.677(is a shell parameter as described abo)
+5.177 F -.15(ve)-.15 G F1 -.74(PA)144 489.6 S(RAMETERS).74 E F0 2.5(\)o)
+C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A F0
+(\).)A .816(If the \214rst character of)108 506.4 R F3(par)3.316 E
+(ameter)-.15 E F0 .816(is an e)3.316 F .816(xclamation point \()-.15 F
+F1(!)A F0 .816(\), it introduces a le)B -.15(ve)-.25 G 3.316(lo).15 G
+3.315(fv)-3.316 G .815(ariable indirection.)-3.565 F F1(Bash)108 518.4 Q
+F0 .106(uses the v)2.606 F .106(alue of the v)-.25 F .106
(ariable formed from the rest of)-.25 F F3(par)2.606 E(ameter)-.15 E F0
.106(as the name of the v)2.606 F .106(ariable; this v)-.25 F(ari-)-.25
-E .351(able is then e)108 518.4 R .351(xpanded and that v)-.15 F .352
+E .352(able is then e)108 530.4 R .352(xpanded and that v)-.15 F .351
(alue is used in the rest of the substitution, rather than the v)-.25 F
-.352(alue of)-.25 F F3(par)2.852 E(ame-)-.15 E(ter)108 530.4 Q F0 2.52
-(itself. This)2.52 F .02(is kno)2.52 F .02(wn as)-.25 F F3(indir)2.52 E
-.02(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019 F .019
-(xceptions to this are the e)-.15 F .019(xpansions of ${)-.15 F F1(!)A
-F3(pr)A(e\214x)-.37 E F1(*)A F0 2.519(}a)C(nd)-2.519 E(${)108 542.4 Q F1
-(!)A F3(name)A F0([)A F3(@)A F0 .762(]} described belo)B 4.563 -.65
+.351(alue of)-.25 F F3(par)2.851 E(ame-)-.15 E(ter)108 542.4 Q F0 2.519
+(itself. This)2.519 F .019(is kno)2.519 F .019(wn as)-.25 F F3(indir)
+2.519 E .019(ect e)-.37 F(xpansion)-.2 E F0 5.019(.T)C .019(he e)-5.019
+F .02(xceptions to this are the e)-.15 F .02(xpansions of ${)-.15 F F1
+(!)A F3(pr)A(e\214x)-.37 E F1(*)A F0 2.52(}a)C(nd)-2.52 E(${)108 554.4 Q
+F1(!)A F3(name)A F0([)A F3(@)A F0 .763(]} described belo)B 4.563 -.65
(w. T)-.25 H .763(he e).65 F .763
(xclamation point must immediately follo)-.15 F 3.263(wt)-.25 G .763
-(he left brace in order to)-3.263 F(introduce indirection.)108 554.4 Q
-.334(In each of the cases belo)108 571.2 R -.65(w,)-.25 G F3(wor)3.484 E
+(he left brace in order to)-3.263 F(introduce indirection.)108 566.4 Q
+.334(In each of the cases belo)108 583.2 R -.65(w,)-.25 G F3(wor)3.484 E
(d)-.37 E F0 .334(is subject to tilde e)2.834 F .334
(xpansion, parameter e)-.15 F .334(xpansion, command substitution,)-.15
-F(and arithmetic e)108 583.2 Q(xpansion.)-.15 E .697
-(When not performing substring e)108 600 R .698
-(xpansion, using the forms documented belo)-.15 F -.65(w,)-.25 G F1
-(bash)3.848 E F0 .698(tests for a parameter)3.198 F
-(that is unset or null.)108 612 Q(Omitting the colon results in a test \
-only for a parameter that is unset.)5 E(${)108 628.8 Q F3(par)A(ameter)
--.15 E F1<3aad>A F3(wor)A(d)-.37 E F0(})A F1 .723(Use Default V)144
-640.8 R(alues)-.92 E F0 5.723(.I)C(f)-5.723 E F3(par)4.473 E(ameter)-.15
-E F0 .723(is unset or null, the e)3.953 F .722(xpansion of)-.15 F F3
-(wor)3.562 E(d)-.37 E F0 .722(is substituted.)3.992 F(Other)5.722 E(-)
--.2 E(wise, the v)144 652.8 Q(alue of)-.25 E F3(par)3.75 E(ameter)-.15 E
-F0(is substituted.)3.23 E(${)108 664.8 Q F3(par)A(ameter)-.15 E F1(:=)A
-F3(wor)A(d)-.37 E F0(})A F1 2.004(Assign Default V)144 676.8 R(alues)
--.92 E F0 7.004(.I)C(f)-7.004 E F3(par)5.754 E(ameter)-.15 E F0 2.005
-(is unset or null, the e)5.234 F 2.005(xpansion of)-.15 F F3(wor)4.845 E
-(d)-.37 E F0 2.005(is assigned to)5.275 F F3(par)144 688.8 Q(ameter)-.15
-E F0 5.279(.T).73 G .279(he v)-5.279 F .279(alue of)-.25 F F3(par)4.029
-E(ameter)-.15 E F0 .278(is then substituted.)3.508 F .278
+F(and arithmetic e)108 595.2 Q(xpansion.)-.15 E 1.09
+(When not performing substring e)108 612 R 1.089
+(xpansion, using the forms documented belo)-.15 F 3.589(w\()-.25 G
+(e.g.,)-3.589 E F1(:-)3.589 E F0(\),)A F1(bash)3.589 E F0 1.089
+(tests for a)3.589 F(parameter that is unset or null.)108 624 Q(Omittin\
+g the colon results in a test only for a parameter that is unset.)5 E
+(${)108 640.8 Q F3(par)A(ameter)-.15 E F1<3aad>A F3(wor)A(d)-.37 E F0(})
+A F1 .722(Use Default V)144 652.8 R(alues)-.92 E F0 5.722(.I)C(f)-5.722
+E F3(par)4.472 E(ameter)-.15 E F0 .723(is unset or null, the e)3.952 F
+.723(xpansion of)-.15 F F3(wor)3.563 E(d)-.37 E F0 .723(is substituted.)
+3.993 F(Other)5.723 E(-)-.2 E(wise, the v)144 664.8 Q(alue of)-.25 E F3
+(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 676.8 Q F3
+(par)A(ameter)-.15 E F1(:=)A F3(wor)A(d)-.37 E F0(})A F1 2.005
+(Assign Default V)144 688.8 R(alues)-.92 E F0 7.005(.I)C(f)-7.005 E F3
+(par)5.755 E(ameter)-.15 E F0 2.005(is unset or null, the e)5.235 F
+2.004(xpansion of)-.15 F F3(wor)4.844 E(d)-.37 E F0 2.004
+(is assigned to)5.274 F F3(par)144 700.8 Q(ameter)-.15 E F0 5.278(.T).73
+G .278(he v)-5.278 F .278(alue of)-.25 F F3(par)4.028 E(ameter)-.15 E F0
+.278(is then substituted.)3.508 F .279
(Positional parameters and special param-)5.278 F
-(eters may not be assigned to in this w)144 700.8 Q(ay)-.1 E(.)-.65 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(19)185.955 E 0 Cg EP
-%%Page: 20 20
+(eters may not be assigned to in this w)144 712.8 Q(ay)-.1 E(.)-.65 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(20)190.95 E 0 Cg EP
+%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
@@ -2533,9 +2723,9 @@ BP
96 R .535(or if Null or Unset)-.18 F F0 5.535(.I)C(f)-5.535 E F1(par)
4.285 E(ameter)-.15 E F0 .535(is null or unset, the e)3.765 F .535
(xpansion of)-.15 F F1(wor)3.035 E(d)-.37 E F0 .535(\(or a mes-)3.035 F
-.662(sage to that ef)144 108 R .662(fect if)-.25 F F1(wor)3.502 E(d)-.37
-E F0 .661(is not present\) is written to the standard error and the she\
-ll, if it is not)3.932 F(interacti)144 120 Q -.15(ve)-.25 G 2.5(,e).15 G
+.661(sage to that ef)144 108 R .661(fect if)-.25 F F1(wor)3.501 E(d)-.37
+E F0 .662(is not present\) is written to the standard error and the she\
+ll, if it is not)3.931 F(interacti)144 120 Q -.15(ve)-.25 G 2.5(,e).15 G
2.5(xits. Otherwise,)-2.65 F(the v)2.5 E(alue of)-.25 E F1(par)2.5 E
(ameter)-.15 E F0(is substituted.)2.5 E(${)108 132 Q F1(par)A(ameter)
-.15 E F2(:+)A F1(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 144 R .745
@@ -2545,3454 +2735,3603 @@ ll, if it is not)3.932 F(interacti)144 120 Q -.15(ve)-.25 G 2.5(,e).15 G
(xpan-)-.15 E(sion of)144 156 Q F1(wor)2.84 E(d)-.37 E F0
(is substituted.)3.27 E(${)108 168 Q F1(par)A(ameter)-.15 E F2(:)A F1
(of)A(fset)-.18 E F0(})A(${)108 180 Q F1(par)A(ameter)-.15 E F2(:)A F1
-(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .797(Substring Expansion)
-144 192 R F0 5.797(.E)C .796(xpands to up to)-5.797 F F1(length)3.296 E
-F0 .796(characters of)3.296 F F1(par)3.296 E(ameter)-.15 E F0 .796
-(starting at the character)3.296 F .228(speci\214ed by)144 204 R F1(of)
-2.728 E(fset)-.18 E F0 5.228(.I)C(f)-5.228 E F1(length)2.728 E F0 .229
-(is omitted, e)2.729 F .229(xpands to the substring of)-.15 F F1(par)
-2.729 E(ameter)-.15 E F0 .229(starting at the char)2.729 F(-)-.2 E .433
-(acter speci\214ed by)144 216 R F1(of)2.933 E(fset)-.18 E F0(.)A F1
-(length)5.433 E F0(and)2.933 E F1(of)2.933 E(fset)-.18 E F0 .433
-(are arithmetic e)2.933 F .433(xpressions \(see)-.15 F/F3 9/Times-Bold@0
-SF .432(ARITHMETIC EV)2.933 F(ALU-)-1.215 E -.855(AT)144 228 S(ION).855
-E F0(belo)2.925 E 3.175(w\). If)-.25 F F1(of)3.175 E(fset)-.18 E F0 -.25
-(eva)3.175 G .676(luates to a number less than zero, the v).25 F .676
-(alue is used as an of)-.25 F .676(fset from)-.25 F .103
-(the end of the v)144 240 R .103(alue of)-.25 F F1(par)2.603 E(ameter)
--.15 E F0 5.103(.I)C(f)-5.103 E F1(length)2.603 E F0 -.25(eva)2.603 G
-.103(luates to a number less than zero, and).25 F F1(par)2.602 E(ameter)
--.15 E F0(is)2.602 E(not)144 252 Q F2(@)3.642 E F0 1.142
-(and not an inde)3.642 F -.15(xe)-.15 G 3.642(do).15 G 3.642(ra)-3.642 G
-(ssociati)-3.642 E 1.443 -.15(ve a)-.25 H(rray).15 E 3.643(,i)-.65 G
-3.643(ti)-3.643 G 3.643(si)-3.643 G 1.143(nterpreted as an of)-3.643 F
-1.143(fset from the end of the)-.25 F -.25(va)144 264 S .038(lue of).25
-F F1(par)2.538 E(ameter)-.15 E F0 .037
-(rather than a number of characters, and the e)2.538 F .037
-(xpansion is the characters between)-.15 F .073(the tw)144 276 R 2.573
-(oo)-.1 G -.25(ff)-2.573 G 2.573(sets. If).25 F F1(par)2.573 E(ameter)
--.15 E F0(is)2.574 E F2(@)2.574 E F0 2.574(,t)C .074(he result is)-2.574
-F F1(length)2.574 E F0 .074(positional parameters be)2.574 F .074
-(ginning at)-.15 F F1(of)2.574 E(fset)-.18 E F0 5.074(.I)C(f)-5.074 E F1
-(par)144 288 Q(ameter)-.15 E F0 .205(is an inde)2.705 F -.15(xe)-.15 G
-2.705(da).15 G .205(rray name subscripted by @ or *, the result is the)
--2.705 F F1(length)2.705 E F0 .205(members of the)2.705 F .696(array be)
-144 300 R .697(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1
-(of)A(fset)-.18 E F0 3.197(]}. A)B(ne)3.197 E -.05(ga)-.15 G(ti).05 E
--.15(ve)-.25 G F1(of)3.347 E(fset)-.18 E F0 .697(is tak)3.197 F .697
-(en relati)-.1 F .997 -.15(ve t)-.25 H 3.197(oo).15 G .697
-(ne greater than)-3.197 F 1.404(the maximum inde)144 312 R 3.903(xo)-.15
-G 3.903(ft)-3.903 G 1.403(he speci\214ed array)-3.903 F 6.403(.S)-.65 G
-1.403(ubstring e)-6.403 F 1.403(xpansion applied to an associati)-.15 F
-1.703 -.15(ve a)-.25 H(rray).15 E 1.294(produces unde\214ned results.)
-144 324 R 1.294(Note that a ne)6.294 F -.05(ga)-.15 G(ti).05 E 1.595
--.15(ve o)-.25 H -.25(ff).15 G 1.295
-(set must be separated from the colon by at).25 F .959
-(least one space to a)144 336 R -.2(vo)-.2 G .959
-(id being confused with the :- e).2 F 3.458(xpansion. Substring)-.15 F
-(inde)3.458 E .958(xing is zero-based)-.15 F .414
-(unless the positional parameters are used, in which case the inde)144
-348 R .415(xing starts at 1 by def)-.15 F 2.915(ault. If)-.1 F F1(of)
-2.915 E(f-)-.18 E(set)144 360 Q F0
-(is 0, and the positional parameters are used,)2.5 E F2($0)2.5 E F0
-(is pre\214x)2.5 E(ed to the list.)-.15 E(${)108 376.8 Q F2(!)A F1(pr)A
-(e\214x)-.37 E F2(*)A F0(})A(${)108 388.8 Q F2(!)A F1(pr)A(e\214x)-.37 E
-F2(@)A F0(})A F2 .085(Names matching pr)144 400.8 R(e\214x)-.18 E F0
-5.085(.E)C .084(xpands to the names of v)-5.085 F .084
+(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .002(Substring Expansion)
+144 192 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F1(length)2.502 E
+F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F1(par)2.502 E
+(ameter)-.15 E F0 .002(starting at the)2.502 F 1.082
+(character speci\214ed by)144 204 R F1(of)3.582 E(fset)-.18 E F0 6.082
+(.I)C(f)-6.082 E F1(par)3.582 E(ameter)-.15 E F0(is)3.582 E F2(@)3.582 E
+F0 3.582(,a)C 3.582(ni)-3.582 G(nde)-3.582 E -.15(xe)-.15 G 3.582(da).15
+G 1.082(rray subscripted by)-3.582 F F2(@)3.582 E F0(or)3.581 E F2(*)
+3.581 E F0 3.581(,o)C 3.581(ra)-3.581 G(n)-3.581 E(associati)144 216 Q
+1.022 -.15(ve a)-.25 H .722(rray name, the results dif).15 F .722
+(fer as described belo)-.25 F 4.522 -.65(w. I)-.25 H(f).65 E F1(length)
+3.222 E F0 .722(is omitted, e)3.222 F .722(xpands to the)-.15 F .043
+(substring of the v)144 228 R .043(alue of)-.25 F F1(par)2.543 E(ameter)
+-.15 E F0 .042(starting at the character speci\214ed by)2.543 F F1(of)
+2.542 E(fset)-.18 E F0 .042(and e)2.542 F .042(xtending to the)-.15 F
+.846(end of the v)144 240 R(alue.)-.25 E F1(length)5.846 E F0(and)3.346
+E F1(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .847
+(xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .847(ARITHMETIC EV)3.347 F
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 252 Q(w\).)-.25 E
+(If)144 276 Q F1(of)3.029 E(fset)-.18 E F0 -.25(eva)3.029 G .529
+(luates to a number less than zero, the v).25 F .529
+(alue is used as an of)-.25 F .529(fset in characters from the)-.25 F
+.045(end of the v)144 288 R .045(alue of)-.25 F F1(par)2.546 E(ameter)
+-.15 E F0 5.046(.I)C(f)-5.046 E F1(length)2.546 E F0 -.25(eva)2.546 G
+.046(luates to a number less than zero, it is interpreted as an).25 F
+(of)144 300 Q .203(fset in characters from the end of the v)-.25 F .202
+(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .202
+(rather than a number of characters, and)2.702 F .557(the e)144 312 R
+.557(xpansion is the characters between)-.15 F F1(of)3.057 E(fset)-.18 E
+F0 .557(and that result.)3.057 F .558(Note that a ne)5.558 F -.05(ga)
+-.15 G(ti).05 E .858 -.15(ve o)-.25 H -.25(ff).15 G .558(set must be).25
+F(separated from the colon by at least one space to a)144 324 Q -.2(vo)
+-.2 G(id being confused with the).2 E F2(:-)2.5 E F0 -.15(ex)2.5 G
+(pansion.).15 E(If)144 348 Q F1(par)2.959 E(ameter)-.15 E F0(is)2.959 E
+F2(@)2.959 E F0 2.959(,t)C .459(he result is)-2.959 F F1(length)2.959 E
+F0 .459(positional parameters be)2.959 F .458(ginning at)-.15 F F1(of)
+2.958 E(fset)-.18 E F0 5.458(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15
+(ve)-.25 G F1(of)3.108 E(fset)-.18 E F0 .095(is tak)144 360 R .095
+(en relati)-.1 F .396 -.15(ve t)-.25 H 2.596(oo).15 G .096
+(ne greater than the greatest positional parameter)-2.596 F 2.596(,s)-.4
+G 2.596(oa)-2.596 G 2.596(no)-2.596 G -.25(ff)-2.596 G .096(set of -1 e)
+.25 F -.25(va)-.25 G .096(luates to).25 F 1.322
+(the last positional parameter)144 372 R 6.322(.I)-.55 G 3.822(ti)-6.322
+G 3.822(sa)-3.822 G 3.822(ne)-3.822 G 1.322(xpansion error if)-3.972 F
+F1(length)3.822 E F0 -.25(eva)3.822 G 1.322
+(luates to a number less than).25 F(zero.)144 384 Q(If)144 408 Q F1(par)
+3.013 E(ameter)-.15 E F0 .514(is an inde)3.013 F -.15(xe)-.15 G 3.014
+(da).15 G .514(rray name subscripted by @ or *, the result is the)-3.014
+F F1(length)3.014 E F0 .514(members of)3.014 F 1.082(the array be)144
+420 R 1.082(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A
+(fset)-.18 E F0 3.582(]}. A)B(ne)3.582 E -.05(ga)-.15 G(ti).05 E -.15
+(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.081(is tak)3.581 F 1.081
+(en relati)-.1 F 1.381 -.15(ve t)-.25 H 3.581(oo).15 G 1.081(ne greater)
+-3.581 F 1.079(than the maximum inde)144 432 R 3.579(xo)-.15 G 3.579(ft)
+-3.579 G 1.079(he speci\214ed array)-3.579 F 6.079(.I)-.65 G 3.579(ti)
+-6.079 G 3.579(sa)-3.579 G 3.58(ne)-3.579 G 1.08(xpansion error if)-3.73
+F F1(length)3.58 E F0 -.25(eva)3.58 G 1.08(luates to a).25 F
+(number less than zero.)144 444 Q(Substring e)144 468 Q
+(xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H
+(rray produces unde\214ned results.).15 E 1.931(Substring inde)144 492 R
+1.931(xing is zero-based unless the positional parameters are used, in \
+which case the)-.15 F(inde)144 504 Q .306(xing starts at 1 by def)-.15 F
+2.806(ault. If)-.1 F F1(of)2.807 E(fset)-.18 E F0 .307
+(is 0, and the positional parameters are used,)2.807 F F2($0)2.807 E F0
+.307(is pre\214x)2.807 F(ed)-.15 E(to the list.)144 516 Q(${)108 532.8 Q
+F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 544.8 Q F2(!)A F1(pr)A
+(e\214x)-.37 E F2(@)A F0(})A F2 .085(Names matching pr)144 556.8 R
+(e\214x)-.18 E F0 5.085(.E)C .084(xpands to the names of v)-5.085 F .084
(ariables whose names be)-.25 F .084(gin with)-.15 F F1(pr)2.584 E
(e\214x)-.37 E F0 2.584(,s)C(epa-)-2.584 E .257
-(rated by the \214rst character of the)144 412.8 R F3(IFS)2.757 E F0
+(rated by the \214rst character of the)144 568.8 R F3(IFS)2.757 E F0
.257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.758 E F0 .258
(is used and the e)2.758 F .258(xpansion appears)-.15 F
-(within double quotes, each v)144 424.8 Q(ariable name e)-.25 E
-(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 441.6 Q F2(!)A F1(name)
-A F0([)A F1(@)A F0(]})A(${)108 453.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0
-(]})A F2 2.036(List of array k)144 465.6 R(eys)-.1 E F0 7.036(.I)C(f)
+(within double quotes, each v)144 580.8 Q(ariable name e)-.25 E
+(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 597.6 Q F2(!)A F1(name)
+A F0([)A F1(@)A F0(]})A(${)108 609.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0
+(]})A F2 2.036(List of array k)144 621.6 R(eys)-.1 E F0 7.036(.I)C(f)
-7.036 E F1(name)4.536 E F0 2.036(is an array v)4.536 F 2.036
(ariable, e)-.25 F 2.036(xpands to the list of array indices \(k)-.15 F
--.15(ey)-.1 G(s\)).15 E .595(assigned in)144 477.6 R F1(name)3.095 E F0
+-.15(ey)-.1 G(s\)).15 E .595(assigned in)144 633.6 R F1(name)3.095 E F0
5.595(.I)C(f)-5.595 E F1(name)3.095 E F0 .595(is not an array)3.095 F
3.095(,e)-.65 G .595(xpands to 0 if)-3.245 F F1(name)3.095 E F0 .596
-(is set and null otherwise.)3.095 F(When)5.596 E F1(@)144 489.6 Q F0
+(is set and null otherwise.)3.095 F(When)5.596 E F1(@)144 645.6 Q F0
(is used and the e)2.5 E(xpansion appears within double quotes, each k)
-.15 E .3 -.15(ey ex)-.1 H(pands to a separate w).15 E(ord.)-.1 E(${)108
-506.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 518.4 S .471
+662.4 Q F2(#)A F1(par)A(ameter)-.15 E F0(})A F2 -.1(Pa)144 674.4 S .471
(rameter length).1 F F0 5.471(.T)C .471
(he length in characters of the v)-5.471 F .471(alue of)-.25 F F1(par)
2.971 E(ameter)-.15 E F0 .47(is substituted.)2.97 F(If)5.47 E F1(par)
-4.22 E(ame-)-.15 E(ter)144 530.4 Q F0(is)4.438 E F2(*)3.708 E F0(or)
+4.22 E(ame-)-.15 E(ter)144 686.4 Q F0(is)4.438 E F2(*)3.708 E F0(or)
3.708 E F2(@)3.708 E F0 3.708(,t)C 1.208(he v)-3.708 F 1.208
(alue substituted is the number of positional parameters.)-.25 F(If)
-6.209 E F1(par)4.959 E(ameter)-.15 E F0 1.209(is an)4.439 F
-(array name subscripted by)144 542.4 Q F2(*)2.5 E F0(or)2.5 E F2(@)2.5 E
-F0 2.5(,t)C(he v)-2.5 E
-(alue substituted is the number of elements in the array)-.25 E(.)-.65 E
-(${)108 559.2 Q F1(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A
-(${)108 571.2 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A
-F2(Remo)144 583.2 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196
+6.209 E F1(par)4.959 E(ameter)-.15 E F0 1.209(is an)4.439 F .349
+(array name subscripted by)144 698.4 R F2(*)2.849 E F0(or)2.849 E F2(@)
+2.849 E F0 2.849(,t)C .349(he v)-2.849 F .349
+(alue substituted is the number of elements in the array)-.25 F 5.348
+(.I)-.65 G(f)-5.348 E F1(par)145.25 710.4 Q(ameter)-.15 E F0 .455
+(is an inde)3.685 F -.15(xe)-.15 G 2.955(da).15 G .456
+(rray name subscripted by a ne)-2.955 F -.05(ga)-.15 G(ti).05 E .756
+-.15(ve n)-.25 H(umber).15 E 2.956(,t)-.4 G .456
+(hat number is interpreted)-2.956 F .973(as relati)144 722.4 R 1.273
+-.15(ve t)-.25 H 3.473(oo).15 G .973(ne greater than the maximum inde)
+-3.473 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0
+3.472(,s)C 3.472(on)-3.472 G -2.25 -.15(eg a)-3.472 H(ti).15 E 1.272
+-.15(ve i)-.25 H .972(ndices count back).15 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(21)190.95 E 0 Cg EP
+%%Page: 22 22
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(from the end of the array)144 84 Q 2.5(,a)-.65 G(nd an inde)-2.5
+E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
+(eferences the last element.)-2.5 E(${)108 100.8 Q/F1 10/Times-Italic@0
+SF(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(#)A F1(wor)A(d)-.37 E F0(})
+A(${)108 112.8 Q F1(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A
+F2(Remo)144 124.8 Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196
(e\214x patter)-.18 F(n)-.15 E F0 6.196(.T)C(he)-6.196 E F1(wor)4.036 E
(d)-.37 E F0 1.196(is e)4.466 F 1.196
-(xpanded to produce a pattern just as in path-)-.15 F .151(name e)144
-595.2 R 2.651(xpansion. If)-.15 F .152(the pattern matches the be)2.652
+(xpanded to produce a pattern just as in path-)-.15 F .152(name e)144
+136.8 R 2.652(xpansion. If)-.15 F .152(the pattern matches the be)2.652
F .152(ginning of the v)-.15 F .152(alue of)-.25 F F1(par)2.652 E
-(ameter)-.15 E F0 2.652(,t).73 G .152(hen the result of)-2.652 F 1.4
-(the e)144 607.2 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4
+(ameter)-.15 E F0 2.652(,t).73 G .151(hen the result of)-2.652 F 1.4
+(the e)144 148.8 R 1.4(xpansion is the e)-.15 F 1.4(xpanded v)-.15 F 1.4
(alue of)-.25 F F1(par)5.15 E(ameter)-.15 E F0 1.4
(with the shortest matching pattern \(the `)4.63 F(`)-.74 E F2(#)A F0
--.74('')C .281(case\) or the longest matching pattern \(the `)144 619.2
+-.74('')C .281(case\) or the longest matching pattern \(the `)144 160.8
R(`)-.74 E F2(##)A F0 1.761 -.74('' c)D .281(ase\) deleted.).74 F(If)
5.281 E F1(par)4.031 E(ameter)-.15 E F0(is)3.511 E F2(@)2.781 E F0(or)
-2.781 E F2(*)2.782 E F0 2.782(,t)C .282(he pattern)-2.782 F(remo)144
-631.2 Q -.25(va)-.15 G 3.274(lo).25 G .774
+2.781 E F2(*)2.781 E F0 2.781(,t)C .281(he pattern)-2.781 F(remo)144
+172.8 Q -.25(va)-.15 G 3.274(lo).25 G .774
(peration is applied to each positional parameter in turn, and the e)
--3.274 F .774(xpansion is the resul-)-.15 F .401(tant list.)144 643.2 R
-(If)5.401 E F1(par)4.151 E(ameter)-.15 E F0 .401(is an array v)3.631 F
+-3.274 F .774(xpansion is the resul-)-.15 F .402(tant list.)144 184.8 R
+(If)5.402 E F1(par)4.152 E(ameter)-.15 E F0 .401(is an array v)3.632 F
.401(ariable subscripted with)-.25 F F2(@)2.901 E F0(or)2.901 E F2(*)
-2.901 E F0 2.902(,t)C .402(he pattern remo)-2.902 F -.25(va)-.15 G 2.902
-(lo).25 G(peration)-2.902 E
-(is applied to each member of the array in turn, and the e)144 655.2 Q
-(xpansion is the resultant list.)-.15 E(${)108 672 Q F1(par)A(ameter)
--.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 684 Q F1(par)A(ameter)-.15
-E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 696 Q .347 -.1(ve m)-.1 H
-.147(atching suf\214x patter).1 F(n)-.15 E F0 5.147(.T)C(he)-5.147 E F1
-(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F .146
-(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 708
-S 3.088(pansion. If).15 F .588
+2.901 E F0 2.901(,t)C .401(he pattern remo)-2.901 F -.25(va)-.15 G 2.901
+(lo).25 G(peration)-2.901 E
+(is applied to each member of the array in turn, and the e)144 196.8 Q
+(xpansion is the resultant list.)-.15 E(${)108 213.6 Q F1(par)A(ameter)
+-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 225.6 Q F1(par)A(ameter)
+-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 237.6 Q .346 -.1
+(ve m)-.1 H .146(atching suf\214x patter).1 F(n)-.15 E F0 5.146(.T)C(he)
+-5.146 E F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147
+(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144
+249.6 S 3.088(pansion. If).15 F .588
(the pattern matches a trailing portion of the e)3.088 F .588(xpanded v)
-.15 F .588(alue of)-.25 F F1(par)3.088 E(ameter)-.15 E F0 3.088(,t).73
-G .588(hen the)-3.088 F .226(result of the e)144 720 R .226
+G .588(hen the)-3.088 F .226(result of the e)144 261.6 R .226
(xpansion is the e)-.15 F .226(xpanded v)-.15 F .226(alue of)-.25 F F1
(par)3.976 E(ameter)-.15 E F0 .226
-(with the shortest matching pattern \(the)3.456 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(20)185.955 E 0 Cg EP
-%%Page: 21 21
+(with the shortest matching pattern \(the)3.456 F -.74(``)144 273.6 S F2
+(%).74 E F0 1.522 -.74('' c)D .042
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(%%)A F0
+1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E F1(par)3.792 E
+(ameter)-.15 E F0(is)3.272 E F2(@)2.541 E F0(or)2.541 E F2(*)2.541 E F0
+2.541(,t)C(he)-2.541 E .44(pattern remo)144 285.6 R -.25(va)-.15 G 2.94
+(lo).25 G .441
+(peration is applied to each positional parameter in turn, and the e)
+-2.94 F .441(xpansion is the)-.15 F .241(resultant list.)144 297.6 R(If)
+5.241 E F1(par)3.991 E(ameter)-.15 E F0 .241(is an array v)3.471 F .241
+(ariable subscripted with)-.25 F F2(@)2.741 E F0(or)2.74 E F2(*)2.74 E
+F0 2.74(,t)C .24(he pattern remo)-2.74 F -.25(va)-.15 G 2.74(lo).25 G
+(per)-2.74 E(-)-.2 E
+(ation is applied to each member of the array in turn, and the e)144
+309.6 Q(xpansion is the resultant list.)-.15 E(${)108 326.4 Q F1(par)A
+(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0(})A F2 -.1(Pa)
+144 338.4 S(tter).1 E 3.606(ns)-.15 G(ubstitution)-3.606 E F0 6.106(.T)C
+(he)-6.106 E F1(pattern)3.606 E F0 1.106(is e)3.606 F 1.107
+(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E
+(sion.)144 350.4 Q F1 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034
+(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F1(pattern)
+3.533 E F0(ag)3.533 E 1.033(ainst its v)-.05 F 1.033
+(alue is replaced with)-.25 F F1(string)144 362.4 Q F0 5.16(.I)C(f)-5.16
+E F1(pattern)2.66 E F0(be)2.66 E .16(gins with)-.15 F F2(/)2.66 E F0
+2.66(,a)C .161(ll matches of)-2.66 F F1(pattern)2.661 E F0 .161
+(are replaced with)2.661 F F1(string)2.661 E F0 5.161(.N)C .161
+(ormally only the)-5.161 F .807(\214rst match is replaced.)144 374.4 R
+(If)5.807 E F1(pattern)3.307 E F0(be)3.307 E .807(gins with)-.15 F F2(#)
+3.307 E F0 3.306(,i)C 3.306(tm)-3.306 G .806(ust match at the be)-3.306
+F .806(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 386.4 S .62
+(lue of).25 F F1(par)3.12 E(ameter)-.15 E F0 5.62(.I)C(f)-5.62 E F1
+(pattern)3.12 E F0(be)3.12 E .62(gins with)-.15 F F2(%)3.12 E F0 3.12
+(,i)C 3.121(tm)-3.12 G .621(ust match at the end of the e)-3.121 F .621
+(xpanded v)-.15 F .621(alue of)-.25 F F1(par)144 398.4 Q(ameter)-.15 E
+F0 6.254(.I)C(f)-6.254 E F1(string)3.754 E F0 1.253(is null, matches of)
+3.753 F F1(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F2(/)
+3.753 E F0(follo)3.753 E(wing)-.25 E F1(pattern)3.753 E F0 1.253(may be)
+3.753 F 2.678(omitted. If)144 410.4 R F1(par)3.928 E(ameter)-.15 E F0
+(is)3.408 E F2(@)2.678 E F0(or)2.678 E F2(*)2.679 E F0 2.679(,t)C .179
+(he substitution operation is applied to each positional parameter)
+-2.679 F .619(in turn, and the e)144 422.4 R .619
+(xpansion is the resultant list.)-.15 F(If)5.619 E F1(par)4.369 E
+(ameter)-.15 E F0 .618(is an array v)3.849 F .618
+(ariable subscripted with)-.25 F F2(@)144 434.4 Q F0(or)3.223 E F2(*)
+3.223 E F0 3.223(,t)C .723(he substitution operation is applied to each\
+ member of the array in turn, and the e)-3.223 F(xpan-)-.15 E
+(sion is the resultant list.)144 446.4 Q(${)108 463.2 Q F1(par)A(ameter)
+-.15 E F2(^)A F1(pattern)A F0(})A(${)108 475.2 Q F1(par)A(ameter)-.15 E
+F2(^^)A F1(pattern)A F0(})A(${)108 487.2 Q F1(par)A(ameter)-.15 E F2(,)A
+F1(pattern)A F0(})A(${)108 499.2 Q F1(par)A(ameter)-.15 E F2(,,)A F1
+(pattern)A F0(})A F2 .438(Case modi\214cation)144 511.2 R F0 5.438(.T)C
+.438(his e)-5.438 F .437
+(xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par)
+2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F1(pattern)144 523.2 Q
+F0 1.406(is e)3.906 F 1.407
+(xpanded to produce a pattern just as in pathname e)-.15 F 3.907
+(xpansion. Each)-.15 F 1.407(character in the)3.907 F -.15(ex)144 535.2
+S 1.232(panded v).15 F 1.232(alue of)-.25 F F1(par)3.732 E(ameter)-.15 E
+F0 1.232(is tested ag)3.732 F(ainst)-.05 E F1(pattern)3.732 E F0 3.732
+(,a)C 1.232(nd, if it matches the pattern, its case is)-3.732 F(con)144
+547.2 Q -.15(ve)-.4 G 2.924(rted. The).15 F .424
+(pattern should not attempt to match more than one character)2.924 F
+5.424(.T)-.55 G(he)-5.424 E F2(^)2.924 E F0 .424(operator con-)2.924 F
+-.15(ve)144 559.2 S .61(rts lo).15 F .61(wercase letters matching)-.25 F
+F1(pattern)3.11 E F0 .61(to uppercase; the)3.11 F F2(,)3.11 E F0 .61
+(operator con)3.11 F -.15(ve)-.4 G .61(rts matching uppercase).15 F
+1.547(letters to lo)144 571.2 R 4.047(wercase. The)-.25 F F2(^^)4.047 E
+F0(and)4.047 E F2(,,)4.047 E F0 -.15(ex)4.047 G 1.547(pansions con).15 F
+-.15(ve)-.4 G 1.547(rt each matched character in the e).15 F(xpanded)
+-.15 E -.25(va)144 583.2 S .634(lue; the).25 F F2(^)3.134 E F0(and)3.134
+E F2(,)3.134 E F0 -.15(ex)3.134 G .634(pansions match and con).15 F -.15
+(ve)-.4 G .633(rt only the \214rst character in the e).15 F .633
+(xpanded v)-.15 F 3.133(alue. If)-.25 F F1(pattern)144 595.2 Q F0 .78
+(is omitted, it is treated lik)3.28 F 3.28(ea)-.1 G F2(?)A F0 3.28(,w)C
+.78(hich matches e)-3.28 F -.15(ve)-.25 G .78(ry character).15 F 5.78
+(.I)-.55 G(f)-5.78 E F1(par)4.53 E(ameter)-.15 E F0(is)4.01 E F2(@)3.28
+E F0(or)3.28 E F2(*)3.28 E F0(,)A .582(the case modi\214cation operatio\
+n is applied to each positional parameter in turn, and the e)144 607.2 R
+(xpansion)-.15 E .468(is the resultant list.)144 619.2 R(If)5.468 E F1
+(par)4.218 E(ameter)-.15 E F0 .468(is an array v)3.698 F .468
+(ariable subscripted with)-.25 F F2(@)2.968 E F0(or)2.968 E F2(*)2.969 E
+F0 2.969(,t)C .469(he case modi\214ca-)-2.969 F .005(tion operation is \
+applied to each member of the array in turn, and the e)144 631.2 R .005
+(xpansion is the resultant list.)-.15 F F2(Command Substitution)87 648 Q
+F1 1.697(Command substitution)108 660 R F0(allo)4.197 E 1.697
+(ws the output of a command to replace the command name.)-.25 F 1.698
+(There are tw)6.698 F(o)-.1 E(forms:)108 672 Q F2($\()144 688.8 Q F1
+(command)A F2(\))1.666 E F0(or)108 700.8 Q F2<92>144 712.8 Q F1(command)
+A F2<92>A(Bash)108 729.6 Q F0 1.709(performs the e)4.209 F 1.709
+(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F1(command)4.209 E F0
+1.708(and replacing the command substitution with the)4.208 F
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(22)190.95 E 0 Cg EP
+%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.74(``)144 84 S/F1 10/Times-Bold@0 SF(%).74 E F0 1.521 -.74
-('' c)D .042(ase\) or the longest matching pattern \(the `).74 F(`)-.74
-E F1(%%)A F0 1.522 -.74('' c)D .042(ase\) deleted.).74 F(If)5.042 E/F2
-10/Times-Italic@0 SF(par)3.792 E(ameter)-.15 E F0(is)3.272 E F1(@)2.542
-E F0(or)2.542 E F1(*)2.542 E F0 2.542(,t)C(he)-2.542 E .441
-(pattern remo)144 96 R -.25(va)-.15 G 2.941(lo).25 G .441
-(peration is applied to each positional parameter in turn, and the e)
--2.941 F .44(xpansion is the)-.15 F .24(resultant list.)144 108 R(If)
-5.24 E F2(par)3.99 E(ameter)-.15 E F0 .24(is an array v)3.47 F .241
-(ariable subscripted with)-.25 F F1(@)2.741 E F0(or)2.741 E F1(*)2.741 E
-F0 2.741(,t)C .241(he pattern remo)-2.741 F -.25(va)-.15 G 2.741(lo).25
-G(per)-2.741 E(-)-.2 E
-(ation is applied to each member of the array in turn, and the e)144 120
-Q(xpansion is the resultant list.)-.15 E(${)108 136.8 Q F2(par)A(ameter)
--.15 E F1(/)A F2(pattern)A F1(/)A F2(string)A F0(})A F1 -.1(Pa)144 148.8
-S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607 E F0 6.107(.T)C(he)-6.107
-E F2(pattern)3.607 E F0 1.107(is e)3.607 F 1.106
-(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E
-(sion.)144 160.8 Q F2 -.8(Pa)6.033 G -.15(ra).8 G(meter).15 E F0 1.033
-(is e)3.533 F 1.033(xpanded and the longest match of)-.15 F F2(pattern)
-3.533 E F0(ag)3.533 E 1.034(ainst its v)-.05 F 1.034
-(alue is replaced with)-.25 F F2(string)144 172.8 Q F0 5.161(.I)C(f)
--5.161 E F2(pattern)2.661 E F0(be)2.661 E .161(gins with)-.15 F F1(/)
-2.661 E F0 2.661(,a)C .161(ll matches of)-2.661 F F2(pattern)2.661 E F0
-.16(are replaced with)2.661 F F2(string)2.66 E F0 5.16(.N)C .16
-(ormally only the)-5.16 F .806(\214rst match is replaced.)144 184.8 R
-(If)5.806 E F2(pattern)3.306 E F0(be)3.306 E .806(gins with)-.15 F F1(#)
-3.306 E F0 3.306(,i)C 3.307(tm)-3.306 G .807(ust match at the be)-3.307
-F .807(ginning of the e)-.15 F(xpanded)-.15 E -.25(va)144 196.8 S .621
-(lue of).25 F F2(par)3.121 E(ameter)-.15 E F0 5.621(.I)C(f)-5.621 E F2
-(pattern)3.121 E F0(be)3.121 E .621(gins with)-.15 F F1(%)3.121 E F0
-3.121(,i)C 3.121(tm)-3.121 G .62(ust match at the end of the e)-3.121 F
-.62(xpanded v)-.15 F .62(alue of)-.25 F F2(par)144 208.8 Q(ameter)-.15 E
-F0 6.253(.I)C(f)-6.253 E F2(string)3.753 E F0 1.253(is null, matches of)
-3.753 F F2(pattern)3.753 E F0 1.253(are deleted and the)3.753 F F1(/)
-3.753 E F0(follo)3.753 E(wing)-.25 E F2(pattern)3.753 E F0 1.254(may be)
-3.754 F 2.679(omitted. If)144 220.8 R F2(par)3.929 E(ameter)-.15 E F0
-(is)3.409 E F1(@)2.679 E F0(or)2.679 E F1(*)2.679 E F0 2.679(,t)C .178
-(he substitution operation is applied to each positional parameter)
--2.679 F .618(in turn, and the e)144 232.8 R .619
-(xpansion is the resultant list.)-.15 F(If)5.619 E F2(par)4.369 E
-(ameter)-.15 E F0 .619(is an array v)3.849 F .619
-(ariable subscripted with)-.25 F F1(@)144 244.8 Q F0(or)3.224 E F1(*)
-3.224 E F0 3.224(,t)C .723(he substitution operation is applied to each\
- member of the array in turn, and the e)-3.224 F(xpan-)-.15 E
-(sion is the resultant list.)144 256.8 Q(${)108 273.6 Q F2(par)A(ameter)
--.15 E F1(^)A F2(pattern)A F0(})A(${)108 285.6 Q F2(par)A(ameter)-.15 E
-F1(^^)A F2(pattern)A F0(})A(${)108 297.6 Q F2(par)A(ameter)-.15 E F1(,)A
-F2(pattern)A F0(})A(${)108 309.6 Q F2(par)A(ameter)-.15 E F1(,,)A F2
-(pattern)A F0(})A F1 .437(Case modi\214cation)144 321.6 R F0 5.437(.T)C
-.437(his e)-5.437 F .438
-(xpansion modi\214es the case of alphabetic characters in)-.15 F F2(par)
-2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F2(pattern)144 333.6 Q
-F0 .814(is e)3.314 F .813
-(xpanded to produce a pattern just as in pathname e)-.15 F 3.313
-(xpansion. The)-.15 F F1(^)3.313 E F0 .813(operator con)3.313 F -.15(ve)
--.4 G(rts).15 E(lo)144 345.6 Q .18(wercase letters matching)-.25 F F2
-(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F1(,)2.681 E F0 .181
-(operator con)2.681 F -.15(ve)-.4 G .181(rts matching uppercase letters)
-.15 F .085(to lo)144 357.6 R 2.585(wercase. The)-.25 F F1(^^)2.585 E F0
-(and)2.585 E F1(,,)2.585 E F0 -.15(ex)2.585 G .085(pansions con).15 F
--.15(ve)-.4 G .085(rt each matched character in the e).15 F .085
-(xpanded v)-.15 F .085(alue; the)-.25 F F1(^)2.585 E F0(and)144 369.6 Q
-F1(,)3.59 E F0 -.15(ex)3.59 G 1.09(pansions match and con).15 F -.15(ve)
--.4 G 1.091(rt only the \214rst character in the e).15 F 1.091
-(xpanded v)-.15 F 3.591(alue. If)-.25 F F2(pattern)3.591 E F0(is)3.591 E
-1.121(omitted, it is treated lik)144 381.6 R 3.621(ea)-.1 G F1(?)A F0
-3.621(,w)C 1.121(hich matches e)-3.621 F -.15(ve)-.25 G 1.121
-(ry character).15 F 6.12(.I)-.55 G(f)-6.12 E F2(par)4.87 E(ameter)-.15 E
-F0(is)4.35 E F1(@)3.62 E F0(or)3.62 E F1(*)3.62 E F0 3.62(,t)C 1.12
-(he case)-3.62 F 1.335(modi\214cation operation is applied to each posi\
-tional parameter in turn, and the e)144 393.6 R 1.335(xpansion is the)
--.15 F 1.308(resultant list.)144 405.6 R(If)6.308 E F2(par)5.058 E
-(ameter)-.15 E F0 1.308(is an array v)4.538 F 1.308
-(ariable subscripted with)-.25 F F1(@)3.808 E F0(or)3.808 E F1(*)3.808 E
-F0 3.808(,t)C 1.308(he case modi\214cation)-3.808 F
-(operation is applied to each member of the array in turn, and the e)144
-417.6 Q(xpansion is the resultant list.)-.15 E F1(Command Substitution)
-87 434.4 Q F2 1.697(Command substitution)108 446.4 R F0(allo)4.197 E
-1.697(ws the output of a command to replace the command name.)-.25 F
-1.698(There are tw)6.698 F(o)-.1 E(forms:)108 458.4 Q F1($\()144 475.2 Q
-F2(command)A F1(\))1.666 E F0(or)108 487.2 Q F1<92>144 499.2 Q F2
-(command)A F1<92>A(Bash)108 516 Q F0 .02(performs the e)2.52 F .02
-(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F2(command)2.519 E F0
-.019(and replacing the command substitution with the stan-)2.519 F .768
-(dard output of the command, with an)108 528 R 3.268(yt)-.15 G .768
-(railing ne)-3.268 F .768(wlines deleted.)-.25 F .768(Embedded ne)5.768
-F .768(wlines are not deleted, b)-.25 F(ut)-.2 E(the)108 540 Q 3.219(ym)
--.15 G .719(ay be remo)-3.219 F -.15(ve)-.15 G 3.219(dd).15 G .719
-(uring w)-3.219 F .719(ord splitting.)-.1 F .719
-(The command substitution)5.719 F F1($\(cat)3.219 E F2(\214le)3.219 E F1
-(\))A F0 .718(can be replaced by the)3.219 F(equi)108 552 Q -.25(va)-.25
-G(lent b).25 E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E F1
-(\))A F0(.)A 1.724(When the old-style backquote form of substitution is\
- used, backslash retains its literal meaning e)108 568.8 R(xcept)-.15 E
-.315(when follo)108 580.8 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1
-<92>2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(h\
-e \214rst backquote not preceded by a backslash terminates the command \
-sub-)-5.315 F 3.886(stitution. When)108 592.8 R 1.386(using the $\()
-3.886 F F2(command).833 E F0 3.886(\)f)1.666 G 1.387
+-.35 E .749(standard output of the command, with an)108 84 R 3.249(yt)
+-.15 G .749(railing ne)-3.249 F .749(wlines deleted.)-.25 F .75
+(Embedded ne)5.749 F .75(wlines are not deleted,)-.25 F -.2(bu)108 96 S
+3.197(tt).2 G(he)-3.197 E 3.197(ym)-.15 G .697(ay be remo)-3.197 F -.15
+(ve)-.15 G 3.196(dd).15 G .696(uring w)-3.196 F .696(ord splitting.)-.1
+F .696(The command substitution)5.696 F/F1 10/Times-Bold@0 SF($\(cat)
+3.196 E/F2 10/Times-Italic@0 SF(\214le)3.196 E F1(\))A F0 .696
+(can be replaced by)3.196 F(the equi)108 108 Q -.25(va)-.25 G(lent b).25
+E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E F1(\))A F0(.)A
+1.724(When the old-style backquote form of substitution is used, backsl\
+ash retains its literal meaning e)108 124.8 R(xcept)-.15 E .315
+(when follo)108 136.8 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1<92>
+2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(he \
+\214rst backquote not preceded by a backslash terminates the command su\
+b-)-5.315 F 3.886(stitution. When)108 148.8 R 1.386(using the $\()3.886
+F F2(command).833 E F0 3.886(\)f)1.666 G 1.387
(orm, all characters between the parentheses mak)-3.886 F 3.887(eu)-.1 G
3.887(pt)-3.887 G 1.387(he com-)-3.887 F
-(mand; none are treated specially)108 604.8 Q(.)-.65 E .894
-(Command substitutions may be nested.)108 621.6 R 2.494 -.8(To n)5.894 H
+(mand; none are treated specially)108 160.8 Q(.)-.65 E .894
+(Command substitutions may be nested.)108 177.6 R 2.494 -.8(To n)5.894 H
.894(est when using the backquoted form, escape the inner back-).8 F
-(quotes with backslashes.)108 633.6 Q .422
-(If the substitution appears within double quotes, w)108 650.4 R .422
+(quotes with backslashes.)108 189.6 Q .422
+(If the substitution appears within double quotes, w)108 206.4 R .422
(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15
-F(on the results.)108 662.4 Q F1(Arithmetic Expansion)87 679.2 Q F0
-1.035(Arithmetic e)108 691.2 R 1.035(xpansion allo)-.15 F 1.035
+F(on the results.)108 218.4 Q F1(Arithmetic Expansion)87 235.2 Q F0
+1.035(Arithmetic e)108 247.2 R 1.035(xpansion allo)-.15 F 1.035
(ws the e)-.25 F -.25(va)-.25 G 1.034(luation of an arithmetic e).25 F
1.034(xpression and the substitution of the result.)-.15 F
-(The format for arithmetic e)108 703.2 Q(xpansion is:)-.15 E F1($\(\()
-144 720 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(21)185.955 E 0 Cg EP
-%%Page: 22 22
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(The)108 84 Q/F1 10/Times-Italic@0 SF -.2(ex)2.665 G(pr).2 E
-(ession)-.37 E F0 .165(is treated as if it were within double quotes, b)
-2.905 F .166(ut a double quote inside the parentheses is not)-.2 F 1.075
-(treated specially)108 96 R 6.075(.A)-.65 G 1.074(ll tok)-6.075 F 1.074
-(ens in the e)-.1 F 1.074(xpression under)-.15 F 1.074(go parameter e)
--.18 F 1.074(xpansion, string e)-.15 F 1.074(xpansion, command)-.15 F
-(substitution, and quote remo)108 108 Q -.25(va)-.15 G 2.5
-(l. Arithmetic).25 F -.15(ex)2.5 G(pansions may be nested.).15 E 1.378
-(The e)108 124.8 R -.25(va)-.25 G 1.378
+(The format for arithmetic e)108 259.2 Q(xpansion is:)-.15 E F1($\(\()
+144 276 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 292.8 Q
+F2 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165
+(is treated as if it were within double quotes, b)2.905 F .166
+(ut a double quote inside the parentheses is not)-.2 F .231
+(treated specially)108 304.8 R 5.231(.A)-.65 G .231(ll tok)-5.231 F .231
+(ens in the e)-.1 F .231(xpression under)-.15 F .231(go parameter and v)
+-.18 F .23(ariable e)-.25 F .23(xpansion, command substi-)-.15 F 1.059
+(tution, and quote remo)108 316.8 R -.25(va)-.15 G 3.559(l. The).25 F
+1.059(result is treated as the arithmetic e)3.559 F 1.06
+(xpression to be e)-.15 F -.25(va)-.25 G 3.56(luated. Arithmetic).25 F
+-.15(ex)108 328.8 S(pansions may be nested.).15 E 1.379(The e)108 345.6
+R -.25(va)-.25 G 1.378
(luation is performed according to the rules listed belo).25 F 3.878(wu)
--.25 G(nder)-3.878 E/F2 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
-(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F3 9/Times-Roman@0 SF(.)A F0
-(If)5.879 E F1 -.2(ex)108 136.8 S(pr).2 E(ession)-.37 E F0(is in)2.74 E
--.25(va)-.4 G(lid,).25 E/F4 10/Times-Bold@0 SF(bash)2.5 E F0
-(prints a message indicating f)2.5 E(ailure and no substitution occurs.)
--.1 E F4(Pr)87 153.6 Q(ocess Substitution)-.18 E F1(Pr)108 165.6 Q .971
-(ocess substitution)-.45 F F0 .971
-(is supported on systems that support named pipes \()3.471 F F1(FIFOs)A
-F0 3.47(\)o)C 3.47(rt)-3.47 G(he)-3.47 E F4(/de)3.47 E(v/fd)-.15 E F0
-.97(method of)3.47 F .021(naming open \214les.)108 177.6 R .021(It tak)
-5.021 F .021(es the form of)-.1 F F4(<\()2.521 E F1(list)A F4(\)).833 E
-F0(or)2.521 E F4(>\()2.521 E F1(list)A F4(\)).833 E F0 5.021(.T)C .021
-(he process)-5.021 F F1(list)2.521 E F0 .021
-(is run with its input or output con-)2.521 F .059(nected to a)108 189.6
-R F1(FIFO)2.559 E F0 .058(or some \214le in)2.559 F F4(/de)2.558 E(v/fd)
+-.25 G(nder)-3.878 E/F3 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0
+(If)5.878 E F2 -.2(ex)108 357.6 S(pr).2 E(ession)-.37 E F0(is in)2.74 E
+-.25(va)-.4 G(lid,).25 E F1(bash)2.5 E F0(prints a message indicating f)
+2.5 E(ailure and no substitution occurs.)-.1 E F1(Pr)87 374.4 Q
+(ocess Substitution)-.18 E F2(Pr)108 386.4 Q .97(ocess substitution)-.45
+F F0 .971(is supported on systems that support named pipes \()3.47 F F2
+(FIFOs)A F0 3.471(\)o)C 3.471(rt)-3.471 G(he)-3.471 E F1(/de)3.471 E
+(v/fd)-.15 E F0 .971(method of)3.471 F .022(naming open \214les.)108
+398.4 R .021(It tak)5.022 F .021(es the form of)-.1 F F1(<\()2.521 E F2
+(list)A F1(\)).833 E F0(or)2.521 E F1(>\()2.521 E F2(list)A F1(\)).833 E
+F0 5.021(.T)C .021(he process)-5.021 F F2(list)2.521 E F0 .021
+(is run with its input or output con-)2.521 F .058(nected to a)108 410.4
+R F2(FIFO)2.558 E F0 .058(or some \214le in)2.558 F F1(/de)2.558 E(v/fd)
-.15 E F0 5.058(.T)C .058(he name of this \214le is passed as an ar)
--5.058 F .058(gument to the current com-)-.18 F .13
-(mand as the result of the e)108 201.6 R 2.63(xpansion. If)-.15 F(the)
-2.63 E F4(>\()2.63 E F1(list)A F4(\)).833 E F0 .13
-(form is used, writing to the \214le will pro)2.63 F .131
-(vide input for)-.15 F F1(list)2.631 E F0(.)A(If the)108 213.6 Q F4(<\()
-2.5 E F1(list)A F4(\)).833 E F0
-(form is used, the \214le passed as an ar)2.5 E
-(gument should be read to obtain the output of)-.18 E F1(list)2.5 E F0
-(.)A .897(When a)108 230.4 R -.25(va)-.2 G .896(ilable, process substit\
-ution is performed simultaneously with parameter and v).25 F .896
+-5.058 F .059(gument to the current com-)-.18 F .131
+(mand as the result of the e)108 422.4 R 2.631(xpansion. If)-.15 F(the)
+2.63 E F1(>\()2.63 E F2(list)A F1(\)).833 E F0 .13
+(form is used, writing to the \214le will pro)2.63 F .13(vide input for)
+-.15 F F2(list)2.63 E F0(.)A(If the)108 434.4 Q F1(<\()2.5 E F2(list)A
+F1(\)).833 E F0(form is used, the \214le passed as an ar)2.5 E
+(gument should be read to obtain the output of)-.18 E F2(list)2.5 E F0
+(.)A .896(When a)108 451.2 R -.25(va)-.2 G .896(ilable, process substit\
+ution is performed simultaneously with parameter and v).25 F .897
(ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 242.4 Q(xpansion.)-.15 E F4
--.75(Wo)87 259.2 S(rd Splitting).75 E F0 1.142
-(The shell scans the results of parameter e)108 271.2 R 1.143
-(xpansion, command substitution, and arithmetic e)-.15 F 1.143
-(xpansion that)-.15 F(did not occur within double quotes for)108 283.2 Q
-F1(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
-(The shell treats each character of)108 300 R F2(IFS)2.563 E F0 .063
+(command substitution, and arithmetic e)108 463.2 Q(xpansion.)-.15 E F1
+-.75(Wo)87 480 S(rd Splitting).75 E F0 1.143
+(The shell scans the results of parameter e)108 492 R 1.142
+(xpansion, command substitution, and arithmetic e)-.15 F 1.142
+(xpansion that)-.15 F(did not occur within double quotes for)108 504 Q
+F2(wor)2.5 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
+(The shell treats each character of)108 520.8 R F3(IFS)2.563 E F0 .063
(as a delimiter)2.313 F 2.563(,a)-.4 G .063
(nd splits the results of the other e)-2.563 F .063(xpansions into w)
--.15 F(ords)-.1 E 1.788(on these characters.)108 312 R(If)6.788 E F2
-(IFS)4.288 E F0 1.788(is unset, or its v)4.038 F 1.789(alue is e)-.25 F
-(xactly)-.15 E F4(<space><tab><newline>)4.289 E F0 4.289(,t)C 1.789
-(he def)-4.289 F 1.789(ault, then)-.1 F .022(sequences of)108 324 R F4
-(<space>)2.522 E F0(,)A F4(<tab>)2.522 E F0 2.521(,a)C(nd)-2.521 E F4
-(<newline>)2.521 E F0 .021(at the be)2.521 F .021
-(ginning and end of the results of the pre)-.15 F .021(vious e)-.25 F
-(xpan-)-.15 E .585(sions are ignored, and an)108 336 R 3.086(ys)-.15 G
-.586(equence of)-3.086 F F2(IFS)3.086 E F0 .586
-(characters not at the be)2.836 F .586(ginning or end serv)-.15 F .586
-(es to delimit w)-.15 F(ords.)-.1 E(If)108 348 Q F2(IFS)3.617 E F0 1.117
-(has a v)3.367 F 1.117(alue other than the def)-.25 F 1.117
-(ault, then sequences of the whitespace characters)-.1 F F4(space)3.617
-E F0(and)3.617 E F4(tab)3.617 E F0(are)3.617 E .315(ignored at the be)
-108 360 R .315(ginning and end of the w)-.15 F .315
-(ord, as long as the whitespace character is in the v)-.1 F .315
-(alue of)-.25 F F2(IFS)2.815 E F0(\(an)2.566 E F2(IFS)108 372 Q F0 1.054
-(whitespace character\).)3.304 F(An)6.054 E 3.554(yc)-.15 G 1.054
-(haracter in)-3.554 F F2(IFS)3.554 E F0 1.053(that is not)3.303 F F2
-(IFS)3.553 E F0 1.053(whitespace, along with an)3.303 F 3.553(ya)-.15 G
-(djacent)-3.553 E F2(IFS)3.553 E F0 .331
-(whitespace characters, delimits a \214eld.)108 384 R 2.831(As)5.331 G
-.332(equence of)-2.831 F F2(IFS)2.832 E F0 .332
-(whitespace characters is also treated as a delim-)2.582 F(iter)108 396
-Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F2(IFS)2.5 E F0
-(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.879
-(Explicit null ar)108 412.8 R 1.879(guments \()-.18 F F4 .833("").833 G
-F0(or)3.545 E F4 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.)
--4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.878
-(guments, resulting from the)-.18 F -.15(ex)108 424.8 S .176
-(pansion of parameters that ha).15 F .476 -.15(ve n)-.2 H 2.676(ov).15 G
-.176(alues, are remo)-2.926 F -.15(ve)-.15 G 2.676(d. If).15 F 2.677(ap)
-2.677 G .177(arameter with no v)-2.677 F .177(alue is e)-.25 F .177
-(xpanded within)-.15 F(double quotes, a null ar)108 436.8 Q
-(gument results and is retained.)-.18 E(Note that if no e)108 453.6 Q
-(xpansion occurs, no splitting is performed.)-.15 E F4 -.1(Pa)87 470.4 S
-(thname Expansion).1 E F0 .371(After w)108 482.4 R .371
-(ord splitting, unless the)-.1 F F4<ad66>2.871 E F0 .371
-(option has been set,)2.871 F F4(bash)2.871 E F0 .37(scans each w)2.87 F
-.37(ord for the characters)-.1 F F4(*)2.87 E F0(,)A F4(?)2.87 E F0 2.87
-(,a)C(nd)-2.87 E F4([)2.87 E F0(.)A .677
-(If one of these characters appears, then the w)108 494.4 R .677
-(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F1(pattern)3.177 E
-F0 3.177(,a).24 G .678(nd replaced with an alphabeti-)-3.177 F 1.457
-(cally sorted list of \214le names matching the pattern.)108 506.4 R
-1.456(If no matching \214le names are found, and the shell)6.457 F
-(option)108 518.4 Q F4(nullglob)2.537 E F0 .038(is not enabled, the w)
-2.537 F .038(ord is left unchanged.)-.1 F .038(If the)5.038 F F4
-(nullglob)2.538 E F0 .038(option is set, and no matches are)2.538 F .306
-(found, the w)108 530.4 R .306(ord is remo)-.1 F -.15(ve)-.15 G 2.806
-(d. If).15 F(the)2.805 E F4(failglob)2.805 E F0 .305
-(shell option is set, and no matches are found, an error message)2.805 F
-.928(is printed and the command is not e)108 542.4 R -.15(xe)-.15 G
-3.428(cuted. If).15 F .928(the shell option)3.428 F F4(nocaseglob)3.428
-E F0 .929(is enabled, the match is per)3.429 F(-)-.2 E .033
-(formed without re)108 554.4 R -.05(ga)-.15 G .033
-(rd to the case of alphabetic characters.).05 F .032
-(When a pattern is used for pathname e)5.032 F(xpansion,)-.15 E .104
-(the character)108 566.4 R F4 -.63(``)2.604 G -.55(.').63 G(')-.08 E F0
-.104(at the start of a name or immediately follo)5.104 F .105
-(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.605(,u)-.65 G
-(nless)-2.605 E .888(the shell option)108 578.4 R F4(dotglob)3.388 E F0
-.888(is set.)3.388 F .887
-(When matching a pathname, the slash character must al)5.888 F -.1(wa)
--.1 G .887(ys be matched).1 F -.15(ex)108 590.4 S(plicitly).15 E 6.165
-(.I)-.65 G 3.665(no)-6.165 G 1.165(ther cases, the)-3.665 F F4 -.63(``)
-3.665 G -.55(.').63 G(')-.08 E F0 1.166
-(character is not treated specially)6.165 F 6.166(.S)-.65 G 1.166
-(ee the description of)-6.166 F F4(shopt)3.666 E F0(belo)3.666 E(w)-.25
-E(under)108 602.4 Q F2 .478(SHELL B)2.978 F(UIL)-.09 E .478
-(TIN COMMANDS)-.828 F F0 .477(for a description of the)2.728 F F4
-(nocaseglob)2.977 E F0(,)A F4(nullglob)2.977 E F0(,)A F4(failglob)2.977
-E F0 2.977(,a)C(nd)-2.977 E F4(dotglob)2.977 E F0(shell options.)108
-614.4 Q(The)108 631.2 Q F2(GLOBIGNORE)2.63 E F0 .13(shell v)2.38 F .131
-(ariable may be used to restrict the set of \214le names matching a)-.25
-F F1(pattern)2.631 E F0 5.131(.I).24 G(f)-5.131 E F2(GLO-)2.631 E
-(BIGNORE)108 643.2 Q F0 2.015(is set, each matching \214le name that al\
-so matches one of the patterns in)4.265 F F2(GLOBIGNORE)4.515 E F0(is)
-4.264 E(remo)108 655.2 Q -.15(ve)-.15 G 2.503(df).15 G .003
-(rom the list of matches.)-2.503 F .003(The \214le names)5.003 F F4 -.63
-(``)2.503 G -.55(.').63 G(')-.08 E F0(and)5.003 E F4 -.63(``)2.503 G(..)
-.63 E -.63('')-.55 G F0 .004(are al)5.633 F -.1(wa)-.1 G .004
-(ys ignored when).1 F F2(GLOBIGNORE)2.504 E F0(is)2.254 E .046
-(set and not null.)108 667.2 R(Ho)5.046 E(we)-.25 E -.15(ve)-.25 G .846
--.4(r, s).15 H(etting).4 E F2(GLOBIGNORE)2.546 E F0 .046
-(to a non-null v)2.296 F .045(alue has the ef)-.25 F .045
-(fect of enabling the)-.25 F F4(dotglob)2.545 E F0 .613
-(shell option, so all other \214le names be)108 679.2 R .614
-(ginning with a)-.15 F F4 -.63(``)3.114 G -.55(.').63 G(')-.08 E F0 .614
-(will match.)5.614 F 2.214 -.8(To g)5.614 H .614(et the old beha).8 F
-.614(vior of ignoring)-.2 F .457(\214le names be)108 691.2 R .457
-(ginning with a)-.15 F F4 -.63(``)2.957 G -.55(.').63 G(')-.08 E F0
-2.957(,m)C(ak)-2.957 E(e)-.1 E F4 -.63(``)2.957 G(.*').63 E(')-.63 E F0
-.457(one of the patterns in)5.457 F F2(GLOBIGNORE)2.957 E F3(.)A F0(The)
-4.957 E F4(dotglob)2.956 E F0 .456(option is)2.956 F(disabled when)108
-703.2 Q F2(GLOBIGNORE)2.5 E F0(is unset.)2.25 E F4 -.1(Pa)108 720 S
-(tter).1 E 2.5(nM)-.15 G(atching)-2.5 E F0(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(22)185.955 E 0 Cg EP
-%%Page: 23 23
+-.15 F(ords)-.1 E .207(using these characters as \214eld terminators.)
+108 532.8 R(If)5.207 E F3(IFS)2.707 E F0 .207(is unset, or its v)2.457 F
+.207(alue is e)-.25 F(xactly)-.15 E F1(<space><tab><newline>)2.707 E F0
+(,)A .836(the def)108 544.8 R .836(ault, then sequences of)-.1 F F1
+(<space>)3.336 E F0(,)A F1(<tab>)3.336 E F0 3.336(,a)C(nd)-3.336 E F1
+(<newline>)3.336 E F0 .837(at the be)3.336 F .837
+(ginning and end of the results of)-.15 F .346(the pre)108 556.8 R .345
+(vious e)-.25 F .345(xpansions are ignored, and an)-.15 F 2.845(ys)-.15
+G .345(equence of)-2.845 F F3(IFS)2.845 E F0 .345
+(characters not at the be)2.595 F .345(ginning or end serv)-.15 F(es)
+-.15 E 1.236(to delimit w)108 568.8 R 3.736(ords. If)-.1 F F3(IFS)3.736
+E F0 1.236(has a v)3.486 F 1.236(alue other than the def)-.25 F 1.237
+(ault, then sequences of the whitespace characters)-.1 F F1(space)108
+580.8 Q F0(and)3.187 E F1(tab)3.187 E F0 .687(are ignored at the be)
+3.187 F .687(ginning and end of the w)-.15 F .686
+(ord, as long as the whitespace character is in)-.1 F .276(the v)108
+592.8 R .276(alue of)-.25 F F3(IFS)2.777 E F0(\(an)2.527 E F3(IFS)2.777
+E F0 .277(whitespace character\).)2.527 F(An)5.277 E 2.777(yc)-.15 G
+.277(haracter in)-2.777 F F3(IFS)2.777 E F0 .277(that is not)2.527 F F3
+(IFS)2.777 E F0 .277(whitespace, along with)2.527 F(an)108 604.8 Q 3.336
+(ya)-.15 G(djacent)-3.336 E F3(IFS)3.336 E F0 .836
+(whitespace characters, delimits a \214eld.)3.086 F 3.335(As)5.835 G
+.835(equence of)-3.335 F F3(IFS)3.335 E F0 .835
+(whitespace characters is also)3.085 F(treated as a delimiter)108 616.8
+Q 5(.I)-.55 G 2.5(ft)-5 G(he v)-2.5 E(alue of)-.25 E F3(IFS)2.5 E F0
+(is null, no w)2.25 E(ord splitting occurs.)-.1 E 1.878
+(Explicit null ar)108 633.6 R 1.878(guments \()-.18 F F1 .833("").833 G
+F0(or)3.545 E F1 .833<0808>5.211 G F0 4.378(\)a)C 1.878(re retained.)
+-4.378 F 1.878(Unquoted implicit null ar)6.878 F 1.879
+(guments, resulting from the)-.18 F -.15(ex)108 645.6 S .177
+(pansion of parameters that ha).15 F .477 -.15(ve n)-.2 H 2.677(ov).15 G
+.177(alues, are remo)-2.927 F -.15(ve)-.15 G 2.676(d. If).15 F 2.676(ap)
+2.676 G .176(arameter with no v)-2.676 F .176(alue is e)-.25 F .176
+(xpanded within)-.15 F(double quotes, a null ar)108 657.6 Q
+(gument results and is retained.)-.18 E(Note that if no e)108 674.4 Q
+(xpansion occurs, no splitting is performed.)-.15 E F1 -.1(Pa)87 691.2 S
+(thname Expansion).1 E F0 .37(After w)108 703.2 R .37
+(ord splitting, unless the)-.1 F F1<ad66>2.87 E F0 .37
+(option has been set,)2.87 F F1(bash)2.87 E F0 .371(scans each w)2.871 F
+.371(ord for the characters)-.1 F F1(*)2.871 E F0(,)A F1(?)2.871 E F0
+2.871(,a)C(nd)-2.871 E F1([)2.871 E F0(.)A .678
+(If one of these characters appears, then the w)108 715.2 R .677
+(ord is re)-.1 F -.05(ga)-.15 G .677(rded as a).05 F F2(pattern)3.177 E
+F0 3.177(,a).24 G .677(nd replaced with an alphabeti-)-3.177 F .562
+(cally sorted list of \214lenames matching the pattern \(see)108 727.2 R
+F3 -.09(Pa)3.062 G(tter).09 E 2.812(nM)-.135 G(atching)-2.812 E F0(belo)
+2.812 E 3.062(w\). If)-.25 F .562(no matching \214lenames)3.062 F
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(23)190.95 E 0 Cg EP
+%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(An)108 84 Q 3.138(yc)-.15 G .638(haracter that appears in a patt\
-ern, other than the special pattern characters described belo)-3.138 F
-1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 96 R 1.12
-(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G 1.12
-(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F .576
-(escaping backslash is discarded when matching.)108 108 R .576
+-.35 E .009(are found, and the shell option)108 84 R/F1 10/Times-Bold@0
+SF(nullglob)2.509 E F0 .008(is not enabled, the w)2.509 F .008
+(ord is left unchanged.)-.1 F .008(If the)5.008 F F1(nullglob)2.508 E F0
+.008(option is)2.508 F .442(set, and no matches are found, the w)108 96
+R .442(ord is remo)-.1 F -.15(ve)-.15 G 2.942(d. If).15 F(the)2.943 E F1
+(failglob)2.943 E F0 .443(shell option is set, and no matches are)2.943
+F 1.38(found, an error message is printed and the command is not e)108
+108 R -.15(xe)-.15 G 3.88(cuted. If).15 F 1.38(the shell option)3.88 F
+F1(nocaseglob)3.88 E F0(is)3.88 E .103
+(enabled, the match is performed without re)108 120 R -.05(ga)-.15 G
+.104(rd to the case of alphabetic characters.).05 F .104
+(When a pattern is used)5.104 F .378(for pathname e)108 132 R .378
+(xpansion, the character)-.15 F F1 -.63(``)2.878 G -.55(.').63 G(')-.08
+E F0 .378(at the start of a name or immediately follo)5.378 F .377
+(wing a slash must be)-.25 F .578(matched e)108 144 R(xplicitly)-.15 E
+3.078(,u)-.65 G .578(nless the shell option)-3.078 F F1(dotglob)3.079 E
+F0 .579(is set.)3.079 F .579
+(When matching a pathname, the slash character)5.579 F 1.789(must al)108
+156 R -.1(wa)-.1 G 1.788(ys be matched e).1 F(xplicitly)-.15 E 6.788(.I)
+-.65 G 4.288(no)-6.788 G 1.788(ther cases, the)-4.288 F F1 -.63(``)4.288
+G -.55(.').63 G(')-.08 E F0 1.788(character is not treated specially)
+6.788 F 6.788(.S)-.65 G 1.788(ee the)-6.788 F .165(description of)108
+168 R F1(shopt)2.665 E F0(belo)2.665 E 2.665(wu)-.25 G(nder)-2.665 E/F2
+9/Times-Bold@0 SF .165(SHELL B)2.665 F(UIL)-.09 E .165(TIN COMMANDS)
+-.828 F F0 .166(for a description of the)2.415 F F1(nocaseglob)2.666 E
+F0(,)A F1(null-)2.666 E(glob)108 180 Q F0(,)A F1(failglob)2.5 E F0 2.5
+(,a)C(nd)-2.5 E F1(dotglob)2.5 E F0(shell options.)2.5 E(The)108 196.8 Q
+F2(GLOBIGNORE)2.786 E F0 .286(shell v)2.536 F .285
+(ariable may be used to restrict the set of \214lenames matching a)-.25
+F/F3 10/Times-Italic@0 SF(pattern)2.785 E F0 5.285(.I).24 G(f)-5.285 E
+F2(GLO-)2.785 E(BIGNORE)108 208.8 Q F0 2.316(is set, each matching \214\
+lename that also matches one of the patterns in)4.565 F F2(GLOBIGNORE)
+4.816 E F0(is)4.566 E(remo)108 220.8 Q -.15(ve)-.15 G 2.66(df).15 G .16
+(rom the list of matches.)-2.66 F .16(The \214lenames)5.16 F F1 -.63(``)
+2.66 G -.55(.').63 G(')-.08 E F0(and)5.16 E F1 -.63(``)2.66 G(..).63 E
+-.63('')-.55 G F0 .16(are al)5.79 F -.1(wa)-.1 G .159(ys ignored when).1
+F F2(GLOBIGNORE)2.659 E F0(is)2.409 E .045(set and not null.)108 232.8 R
+(Ho)5.045 E(we)-.25 E -.15(ve)-.25 G .845 -.4(r, s).15 H(etting).4 E F2
+(GLOBIGNORE)2.545 E F0 .046(to a non-null v)2.296 F .046
+(alue has the ef)-.25 F .046(fect of enabling the)-.25 F F1(dotglob)
+2.546 E F0 .787(shell option, so all other \214lenames be)108 244.8 R
+.787(ginning with a)-.15 F F1 -.63(``)3.287 G -.55(.').63 G(')-.08 E F0
+.787(will match.)5.787 F 2.386 -.8(To g)5.787 H .786(et the old beha).8
+F .786(vior of ignoring)-.2 F .641(\214lenames be)108 256.8 R .641
+(ginning with a)-.15 F F1 -.63(``)3.141 G -.55(.').63 G(')-.08 E F0
+3.141(,m)C(ak)-3.141 E(e)-.1 E F1 -.63(``)3.141 G(.*').63 E(')-.63 E F0
+.642(one of the patterns in)5.642 F F2(GLOBIGNORE)3.142 E/F4 9
+/Times-Roman@0 SF(.)A F0(The)5.142 E F1(dotglob)3.142 E F0 .642
+(option is)3.142 F(disabled when)108 268.8 Q F2(GLOBIGNORE)2.5 E F0
+(is unset.)2.25 E F1 -.1(Pa)108 285.6 S(tter).1 E 2.5(nM)-.15 G(atching)
+-2.5 E F0(An)108 302.4 Q 3.138(yc)-.15 G .638(haracter that appears in \
+a pattern, other than the special pattern characters described belo)
+-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 3.62(itself. The)108 314.4
+R 1.12(NUL character may not occur in a pattern.)3.62 F 3.62(Ab)6.12 G
+1.12(ackslash escapes the follo)-3.62 F 1.12(wing character; the)-.25 F
+.576(escaping backslash is discarded when matching.)108 326.4 R .576
(The special pattern characters must be quoted if the)5.576 F 3.076(ya)
--.15 G(re)-3.076 E(to be matched literally)108 120 Q(.)-.65 E
-(The special pattern characters ha)108 136.8 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E/F1 10/Times-Bold@0 SF(*)144 153.6
-Q F0 .377(Matches an)31 F 2.877(ys)-.15 G .376
-(tring, including the null string.)-2.877 F .376(When the)5.376 F F1
-(globstar)2.876 E F0 .376(shell option is enabled,)2.876 F(and)180 165.6
-Q F1(*)3.275 E F0 .775(is used in a pathname e)3.275 F .775
-(xpansion conte)-.15 F .775(xt, tw)-.15 F 3.275(oa)-.1 G(djacent)-3.275
-E F1(*)3.275 E F0 3.275(su)C .775(sed as a single pattern)-3.275 F 1.058
-(will match all \214les and zero or more directories and subdirectories\
-.)180 177.6 R 1.058(If follo)6.058 F 1.058(wed by a)-.25 F F1(/)3.558 E
-F0(,)A(tw)180 189.6 Q 2.5(oa)-.1 G(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C
-(ill match only directories and subdirectories.)-2.5 E F1(?)144 201.6 Q
-F0(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F1
-([...])144 213.6 Q F0 .578(Matches an)21.84 F 3.078(yo)-.15 G .578
-(ne of the enclosed characters.)-3.078 F 3.079(Ap)5.579 G .579
-(air of characters separated by a h)-3.079 F(yphen)-.05 E .537
-(denotes a)180 225.6 R/F2 10/Times-Italic@0 SF -.15(ra)3.037 G(ng).15 E
-3.037(ee)-.1 G(xpr)-3.237 E(ession)-.37 E F0 3.037(;a)C .837 -.15(ny c)
--3.037 H .537(haracter that sorts between those tw).15 F 3.036(oc)-.1 G
-.536(haracters, inclu-)-3.036 F(si)180 237.6 Q -.15(ve)-.25 G 3.712(,u)
-.15 G 1.212(sing the current locale')-3.712 F 3.712(sc)-.55 G 1.212
-(ollating sequence and character set, is matched.)-3.712 F 1.213(If the)
-6.213 F 1.124(\214rst character follo)180 249.6 R 1.124(wing the)-.25 F
-F1([)3.624 E F0 1.124(is a)3.624 F F1(!)3.624 E F0 1.124(or a)6.124 F F1
-(^)3.623 E F0 1.123(then an)3.623 F 3.623(yc)-.15 G 1.123
-(haracter not enclosed is matched.)-3.623 F .894
-(The sorting order of characters in range e)180 261.6 R .895
-(xpressions is determined by the current locale)-.15 F .258(and the v)
-180 273.6 R .257(alue of the)-.25 F/F3 9/Times-Bold@0 SF(LC_COLLA)2.757
-E(TE)-.855 E F0 .257(shell v)2.507 F .257(ariable, if set.)-.25 F(A)
-5.257 E F1<ad>2.757 E F0 .257(may be matched by includ-)2.757 F .78
-(ing it as the \214rst or last character in the set.)180 285.6 R(A)5.78
-E F1(])3.28 E F0 .78(may be matched by including it as the)3.28 F
-(\214rst character in the set.)180 297.6 Q -.4(Wi)180 315.6 S(thin).4 E
-F1([)3.071 E F0(and)3.071 E F1(])3.071 E F0(,)A F2 -.15(ch)3.071 G(ar)
-.15 E .571(acter classes)-.15 F F0 .571
-(can be speci\214ed using the syntax)3.071 F F1([:)3.07 E F2(class)A F1
-(:])A F0 3.07(,w)C(here)-3.07 E F2(class)3.07 E F0(is one of the follo)
-180 327.6 Q(wing classes de\214ned in the POSIX standard:)-.25 E F1
-8.173(alnum alpha ascii blank cntrl digit graph lo)180 339.6 R 8.173
-(wer print punct space)-.1 F 5(upper w)180 351.6 R 5(ord xdigit)-.1 F F0
-4.29(Ac)180 363.6 S 1.789(haracter class matches an)-4.29 F 4.289(yc)
+-.15 G(re)-3.076 E(to be matched literally)108 338.4 Q(.)-.65 E
+(The special pattern characters ha)108 355.2 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1(*)144 372 Q F0 .376(Matches an)
+31 F 2.876(ys)-.15 G .376(tring, including the null string.)-2.876 F
+.376(When the)5.376 F F1(globstar)2.876 E F0 .377
+(shell option is enabled,)2.876 F(and)180 384 Q F1(*)3.275 E F0 .775
+(is used in a pathname e)3.275 F .775(xpansion conte)-.15 F .775(xt, tw)
+-.15 F 3.275(oa)-.1 G(djacent)-3.275 E F1(*)3.275 E F0 3.275(su)C .775
+(sed as a single pattern)-3.275 F 1.058(will match all \214les and zero\
+ or more directories and subdirectories.)180 396 R 1.058(If follo)6.058
+F 1.058(wed by a)-.25 F F1(/)3.558 E F0(,)A(tw)180 408 Q 2.5(oa)-.1 G
+(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C
+(ill match only directories and subdirectories.)-2.5 E F1(?)144 420 Q F0
+(Matches an)31 E 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E F1([...])
+144 432 Q F0 .579(Matches an)21.84 F 3.079(yo)-.15 G .579
+(ne of the enclosed characters.)-3.079 F 3.079(Ap)5.579 G .578
+(air of characters separated by a h)-3.079 F(yphen)-.05 E .684
+(denotes a)180 444 R F3 -.15(ra)3.184 G(ng).15 E 3.184(ee)-.1 G(xpr)
+-3.384 E(ession)-.37 E F0 3.184(;a)C .984 -.15(ny c)-3.184 H .684
+(haracter that f).15 F .684(alls between those tw)-.1 F 3.185(oc)-.1 G
+.685(haracters, inclu-)-3.185 F(si)180 456 Q -.15(ve)-.25 G 3.713(,u).15
+G 1.213(sing the current locale')-3.713 F 3.712(sc)-.55 G 1.212
+(ollating sequence and character set, is matched.)-3.712 F 1.212(If the)
+6.212 F 1.123(\214rst character follo)180 468 R 1.123(wing the)-.25 F F1
+([)3.623 E F0 1.123(is a)3.623 F F1(!)3.623 E F0 1.124(or a)6.123 F F1
+(^)3.624 E F0 1.124(then an)3.624 F 3.624(yc)-.15 G 1.124
+(haracter not enclosed is matched.)-3.624 F .895
+(The sorting order of characters in range e)180 480 R .894
+(xpressions is determined by the current locale)-.15 F .375(and the v)
+180 492 R .375(alues of the)-.25 F F2(LC_COLLA)2.875 E(TE)-.855 E F0(or)
+2.625 E F2(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375
+(ariables, if set.)-.25 F 1.976 -.8(To o)5.376 H .376(btain the tra-).8
+F .068(ditional interpretation of range e)180 504 R .068
+(xpressions, where)-.15 F F1([a\255d])2.568 E F0 .067(is equi)2.567 F
+-.25(va)-.25 G .067(lent to).25 F F1([abcd])2.567 E F0 2.567(,s)C .067
+(et v)-2.567 F(alue)-.25 E .156(of the)180 516 R F1(LC_ALL)2.656 E F0
+.156(shell v)2.656 F .156(ariable to)-.25 F F1(C)2.657 E F0 2.657(,o)C
+2.657(re)-2.657 G .157(nable the)-2.657 F F1(globasciiranges)2.657 E F0
+.157(shell option.)2.657 F(A)5.157 E F1<ad>2.657 E F0(may)2.657 E .193(\
+be matched by including it as the \214rst or last character in the set.)
+180 528 R(A)5.193 E F1(])2.693 E F0 .193(may be matched by)2.693 F
+(including it as the \214rst character in the set.)180 540 Q -.4(Wi)180
+558 S(thin).4 E F1([)3.07 E F0(and)3.07 E F1(])3.07 E F0(,)A F3 -.15(ch)
+3.07 G(ar).15 E .571(acter classes)-.15 F F0 .571
+(can be speci\214ed using the syntax)3.071 F F1([:)3.071 E F3(class)A F1
+(:])A F0 3.071(,w)C(here)-3.071 E F3(class)3.071 E F0
+(is one of the follo)180 570 Q
+(wing classes de\214ned in the POSIX standard:)-.25 E F1 8.173
+(alnum alpha ascii blank cntrl digit graph lo)180 582 R 8.173
+(wer print punct space)-.1 F 5(upper w)180 594 R 5(ord xdigit)-.1 F F0
+4.289(Ac)180 606 S 1.789(haracter class matches an)-4.289 F 4.289(yc)
-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F1
--.1(wo)4.289 G(rd).1 E F0(character)4.289 E
-(class matches letters, digits, and the character _.)180 375.6 Q -.4(Wi)
-180 393.6 S(thin).4 E F1([)4.536 E F0(and)4.536 E F1(])4.536 E F0 4.536
-(,a)C(n)-4.536 E F2 2.036(equivalence class)4.536 F F0 2.037
-(can be speci\214ed using the syntax)4.536 F F1([=)4.537 E F2(c)A F1(=])
-A F0 4.537(,w)C(hich)-4.537 E .125(matches all characters with the same\
- collation weight \(as de\214ned by the current locale\) as)180 405.6 R
-(the character)180 417.6 Q F2(c)2.5 E F0(.)A -.4(Wi)180 435.6 S(thin).4
-E F1([)2.5 E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)
-2.5 E F2(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F2
-(symbol)2.5 E F0(.)A .704(If the)108 452.4 R F1(extglob)3.204 E F0 .705
-(shell option is enabled using the)3.204 F F1(shopt)3.205 E F0 -.2(bu)
-3.205 G .705(iltin, se).2 F -.15(ve)-.25 G .705(ral e).15 F .705
-(xtended pattern matching operators)-.15 F .256(are recognized.)108
-464.4 R .256(In the follo)5.256 F .256(wing description, a)-.25 F F2
+-.1(wo)4.29 G(rd).1 E F0(character)4.29 E
+(class matches letters, digits, and the character _.)180 618 Q -.4(Wi)
+180 636 S(thin).4 E F1([)4.537 E F0(and)4.537 E F1(])4.537 E F0 4.537
+(,a)C(n)-4.537 E F3 2.037(equivalence class)4.537 F F0 2.036
+(can be speci\214ed using the syntax)4.536 F F1([=)4.536 E F3(c)A F1(=])
+A F0 4.536(,w)C(hich)-4.536 E .125(matches all characters with the same\
+ collation weight \(as de\214ned by the current locale\) as)180 648 R
+(the character)180 660 Q F3(c)2.5 E F0(.)A -.4(Wi)180 678 S(thin).4 E F1
+([)2.5 E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)2.5
+E F3(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F3(symbol)
+2.5 E F0(.)A .705(If the)108 694.8 R F1(extglob)3.205 E F0 .705
+(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu)
+3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
+(xtended pattern matching operators)-.15 F .255(are recognized.)108
+706.8 R .255(In the follo)5.255 F .255(wing description, a)-.25 F F3
(pattern-list)2.755 E F0 .255
-(is a list of one or more patterns separated by a)2.755 F F1(|)2.755 E
+(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
F0(.)A(Composite patterns may be formed using one or more of the follo)
-108 476.4 Q(wing sub-patterns:)-.25 E F1(?\()144 500.4 Q F2
-(pattern-list).833 E F1(\)).833 E F0
-(Matches zero or one occurrence of the gi)180 512.4 Q -.15(ve)-.25 G 2.5
-(np).15 G(atterns)-2.5 E F1(*\()144 524.4 Q F2(pattern-list).833 E F1
-(\)).833 E F0(Matches zero or more occurrences of the gi)180 536.4 Q
--.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 548.4 Q F2
-(pattern-list).833 E F1(\)).833 E F0
-(Matches one or more occurrences of the gi)180 560.4 Q -.15(ve)-.25 G
-2.5(np).15 G(atterns)-2.5 E F1(@\()144 572.4 Q F2(pattern-list).833 E F1
-(\)).833 E F0(Matches one of the gi)180 584.4 Q -.15(ve)-.25 G 2.5(np)
-.15 G(atterns)-2.5 E F1(!\()144 596.4 Q F2(pattern-list).833 E F1(\))
-.833 E F0(Matches an)180 608.4 Q(ything e)-.15 E(xcept one of the gi)
--.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(Quote Remo)87 625.2
-Q -.1(va)-.1 G(l).1 E F0 1.112(After the preceding e)108 637.2 R 1.112
-(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
-3.613 E F0(,)A F1<08>3.613 E F0 3.613(,a)C(nd)-3.613 E F1(")4.446 E F0
-1.113(that did not result)4.446 F(from one of the abo)108 649.2 Q .3
--.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F4
-10.95/Times-Bold@0 SF(REDIRECTION)72 666 Q F0 .545
-(Before a command is e)108 678 R -.15(xe)-.15 G .545
-(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E
-(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .616
-(by the shell.)108 690 R .617(Redirection may also be used to open and \
-close \214les for the current shell e)5.616 F -.15(xe)-.15 G .617
-(cution en).15 F(viron-)-.4 E 3.275(ment. The)108 702 R(follo)3.275 E
-.774(wing redirection operators may precede or appear an)-.25 F .774
-(ywhere within a)-.15 F F2 .774(simple command)3.614 F F0(or)4.044 E
-(may follo)108 714 Q 2.5(wa)-.25 G F2(command)A F0 5(.R).77 G
-(edirections are processed in the order the)-5 E 2.5(ya)-.15 G(ppear)
--2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Each redirection tha\
-t may be preceded by a \214le descriptor number may instead be preceded\
- by a w)108 730.8 R .772(ord of)-.1 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(23)185.955 E 0 Cg EP
-%%Page: 24 24
+108 718.8 Q(wing sub-patterns:)-.25 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(24)190.95 E 0 Cg EP
+%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .293(the form {)108 84 R/F1 10/Times-Italic@0 SF(varname)A F0
-2.793(}. In)B .293(this case, for each redirection operator e)2.793 F
-.293(xcept >&- and <&-, the shell will allocate)-.15 F 3.498<618c>108 96
-S .999(le descriptor greater than 10 and assign it to)-3.498 F F1
-(varname)3.499 E F0 5.999(.I)C 3.499(f>)-5.999 G .999
-(&- or <&- is preceded by {)-3.499 F F1(varname)A F0 .999(}, the)B -.25
-(va)108 108 S(lue of).25 E F1(varname)2.5 E F0
-(de\214nes the \214le descriptor to close.)2.5 E .284(In the follo)108
-124.8 R .283(wing descriptions, if the \214le descriptor number is omit\
-ted, and the \214rst character of the redirect-)-.25 F .512
-(ion operator is)108 136.8 R/F2 10/Times-Bold@0 SF(<)3.012 E F0 3.012
-(,t)C .512
+-.35 E/F1 10/Times-Bold@0 SF(?\()144 84 Q/F2 10/Times-Italic@0 SF
+(pattern-list).833 E F1(\)).833 E F0
+(Matches zero or one occurrence of the gi)180 96 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E F1(*\()144 108 Q F2(pattern-list).833 E F1(\))
+.833 E F0(Matches zero or more occurrences of the gi)180 120 Q -.15(ve)
+-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 132 Q F2(pattern-list).833
+E F1(\)).833 E F0(Matches one or more occurrences of the gi)180 144 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 156 Q F2
+(pattern-list).833 E F1(\)).833 E F0(Matches one of the gi)180 168 Q
+-.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(!\()144 180 Q F2
+(pattern-list).833 E F1(\)).833 E F0(Matches an)180 192 Q(ything e)-.15
+E(xcept one of the gi)-.15 E -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E
+F1(Quote Remo)87 208.8 Q -.1(va)-.1 G(l).1 E F0 1.113
+(After the preceding e)108 220.8 R 1.113
+(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
+3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0
+1.112(that did not result)4.445 F(from one of the abo)108 232.8 Q .3
+-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
+10.95/Times-Bold@0 SF(REDIRECTION)72 249.6 Q F0 .545
+(Before a command is e)108 261.6 R -.15(xe)-.15 G .545
+(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E
+(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .405
+(by the shell.)108 273.6 R .405(Redirection allo)5.405 F .405(ws comman\
+ds' \214le handles to be duplicated, opened, closed, made to refer to)
+-.25 F(dif)108 285.6 Q 1.019(ferent \214les, and can change the \214les\
+ the command reads from and writes to.)-.25 F 1.02
+(Redirection may also be)6.02 F .215
+(used to modify \214le handles in the current shell e)108 297.6 R -.15
+(xe)-.15 G .215(cution en).15 F 2.715(vironment. The)-.4 F(follo)2.715 E
+.215(wing redirection operators)-.25 F .875(may precede or appear an)108
+309.6 R .875(ywhere within a)-.15 F F2 .875(simple command)3.715 F F0
+.875(or may follo)4.145 F 3.376(wa)-.25 G F2(command)A F0 5.876(.R).77 G
+.876(edirections are)-5.876 F(processed in the order the)108 321.6 Q 2.5
+(ya)-.15 G(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Eac\
+h redirection that may be preceded by a \214le descriptor number may in\
+stead be preceded by a w)108 338.4 R .771(ord of)-.1 F .292(the form {)
+108 350.4 R F2(varname)A F0 2.793(}. In)B .293
+(this case, for each redirection operator e)2.793 F .293
+(xcept >&- and <&-, the shell will allocate)-.15 F 3.18<618c>108 362.4 S
+.679(le descriptor greater than or equal to 10 and assign it to)-3.18 F
+F2(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679
+(&- or <&- is preceded by {)-3.179 F F2(var)A(-)-.2 E(name)108 374.4 Q
+F0(}, the v)A(alue of)-.25 E F2(varname)2.5 E F0
+(de\214nes the \214le descriptor to close.)2.5 E .283(In the follo)108
+391.2 R .284(wing descriptions, if the \214le descriptor number is omit\
+ted, and the \214rst character of the redirect-)-.25 F .513
+(ion operator is)108 403.2 R F1(<)3.012 E F0 3.012(,t)C .512
(he redirection refers to the standard input \(\214le descriptor 0\).)
-3.012 F .512(If the \214rst character of the)5.512 F
-(redirection operator is)108 148.8 Q F2(>)2.5 E F0 2.5(,t)C
+(redirection operator is)108 415.2 Q F1(>)2.5 E F0 2.5(,t)C
(he redirection refers to the standard output \(\214le descriptor 1\).)
--2.5 E .825(The w)108 165.6 R .825(ord follo)-.1 F .824
-(wing the redirection operator in the follo)-.25 F .824
-(wing descriptions, unless otherwise noted, is sub-)-.25 F .772
-(jected to brace e)108 177.6 R .773(xpansion, tilde e)-.15 F .773
-(xpansion, parameter e)-.15 F .773
-(xpansion, command substitution, arithmetic e)-.15 F(xpan-)-.15 E .844
-(sion, quote remo)108 189.6 R -.25(va)-.15 G .843(l, pathname e).25 F
-.843(xpansion, and w)-.15 F .843(ord splitting.)-.1 F .843(If it e)5.843
-F .843(xpands to more than one w)-.15 F(ord,)-.1 E F2(bash)3.343 E F0
-(reports an error)108 201.6 Q(.)-.55 E
-(Note that the order of redirections is signi\214cant.)108 218.4 Q -.15
-(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 235.2 Q F2(>)2.5
-E F0(dirlist 2)2.5 E F2(>&)A F0(1)A
-(directs both standard output and standard error to the \214le)108 252 Q
-F1(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144 268.8
-Q F2(>&)A F0(1)A F2(>)2.5 E F0(dirlist)2.5 E .527
-(directs only the standard output to \214le)108 285.6 R F1(dirlist)3.027
-E F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527
+-2.5 E .824(The w)108 432 R .824(ord follo)-.1 F .824
+(wing the redirection operator in the follo)-.25 F .825
+(wing descriptions, unless otherwise noted, is sub-)-.25 F .463
+(jected to brace e)108 444 R .463(xpansion, tilde e)-.15 F .462
+(xpansion, parameter and v)-.15 F .462(ariable e)-.25 F .462
+(xpansion, command substitution, arith-)-.15 F .866(metic e)108 456 R
+.866(xpansion, quote remo)-.15 F -.25(va)-.15 G .866(l, pathname e).25 F
+.867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867
+F .867(xpands to more than one)-.15 F -.1(wo)108 468 S(rd,).1 E F1(bash)
+2.5 E F0(reports an error)2.5 E(.)-.55 E
+(Note that the order of redirections is signi\214cant.)108 484.8 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 501.6 Q F1(>)2.5
+E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
+(directs both standard output and standard error to the \214le)108 518.4
+Q F2(dirlist)2.5 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
+535.2 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .527
+(directs only the standard output to \214le)108 552 R F2(dirlist)3.027 E
+F0 3.027(,b).68 G .527(ecause the standard error w)-3.027 F .527
(as duplicated from the standard)-.1 F
-(output before the standard output w)108 297.6 Q(as redirected to)-.1 E
-F1(dirlist)2.5 E F0(.).68 E F2(Bash)108 314.4 Q F0 .599(handles se)3.099
-F -.15(ve)-.25 G .599(ral \214lenames specially when the).15 F 3.099(ya)
--.15 G .598(re used in redirections, as described in the follo)-3.099 F
-(wing)-.25 E(table:)108 326.4 Q F2(/de)144 343.2 Q(v/fd/)-.15 E F1(fd)A
-F0(If)180 355.2 Q F1(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15
-E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F1(fd)2.5 E F0(is duplicated.)2.5
-E F2(/de)144 367.2 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)
-180 379.2 Q F2(/de)144 391.2 Q(v/stdout)-.15 E F0
-(File descriptor 1 is duplicated.)180 403.2 Q F2(/de)144 415.2 Q
-(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 427.2 Q F2(/de)
-144 439.2 Q(v/tcp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If)180 451.2 Q
-F1(host)2.996 E F0 .496(is a v)2.996 F .496
-(alid hostname or Internet address, and)-.25 F F1(port)2.997 E F0 .497
-(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 463.2 Q F2(bash)2.5 E F0
-(attempts to open a TCP connection to the corresponding sock)2.5 E(et.)
--.1 E F2(/de)144 475.2 Q(v/udp/)-.15 E F1(host)A F2(/)A F1(port)A F0(If)
-180 487.2 Q F1(host)2.997 E F0 .497(is a v)2.997 F .497
-(alid hostname or Internet address, and)-.25 F F1(port)2.996 E F0 .496
+(output before the standard output w)108 564 Q(as redirected to)-.1 E F2
+(dirlist)2.5 E F0(.).68 E F1(Bash)108 580.8 Q F0 .598(handles se)3.098 F
+-.15(ve)-.25 G .598(ral \214lenames specially when the).15 F 3.099(ya)
+-.15 G .599(re used in redirections, as described in the follo)-3.099 F
+(wing)-.25 E(table:)108 592.8 Q F1(/de)144 609.6 Q(v/fd/)-.15 E F2(fd)A
+F0(If)180 621.6 Q F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15
+E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5
+E F1(/de)144 633.6 Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)
+180 645.6 Q F1(/de)144 657.6 Q(v/stdout)-.15 E F0
+(File descriptor 1 is duplicated.)180 669.6 Q F1(/de)144 681.6 Q
+(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180 693.6 Q F1(/de)
+144 705.6 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 717.6 Q
+F2(host)2.997 E F0 .497(is a v)2.997 F .497
+(alid hostname or Internet address, and)-.25 F F2(port)2.996 E F0 .496
(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 499.2 Q F2(bash)2.5 E F0
-(attempts to open a UDP connection to the corresponding sock)2.5 E(et.)
--.1 E 2.5(Af)108 516 S
+(vice name,)180 729.6 Q F1(bash)2.5 E F0
+(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(25)190.95 E 0 Cg EP
+%%Page: 26 26
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(/de)144 84 Q(v/udp/)-.15 E/F2 10
+/Times-Italic@0 SF(host)A F1(/)A F2(port)A F0(If)180 96 Q F2(host)2.996
+E F0 .496(is a v)2.996 F .496(alid hostname or Internet address, and)
+-.25 F F2(port)2.997 E F0 .497(is an inte)2.997 F .497
+(ger port number or ser)-.15 F(-)-.2 E(vice name,)180 108 Q F1(bash)2.5
+E F0(attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af)
+108 124.8 S
(ailure to open or create a \214le causes the redirection to f)-2.6 E
-(ail.)-.1 E .946(Redirections using \214le descriptors greater than 9 s\
-hould be used with care, as the)108 532.8 R 3.447(ym)-.15 G .947
-(ay con\215ict with \214le)-3.447 F
-(descriptors the shell uses internally)108 544.8 Q(.)-.65 E F2(Redir)87
-561.6 Q(ecting Input)-.18 E F0 .391
+(ail.)-.1 E .947(Redirections using \214le descriptors greater than 9 s\
+hould be used with care, as the)108 141.6 R 3.446(ym)-.15 G .946
+(ay con\215ict with \214le)-3.446 F
+(descriptors the shell uses internally)108 153.6 Q(.)-.65 E F1(Redir)87
+170.4 Q(ecting Input)-.18 E F0 .391
(Redirection of input causes the \214le whose name results from the e)
-108 573.6 R .391(xpansion of)-.15 F F1(wor)3.231 E(d)-.37 E F0 .391
-(to be opened for read-)3.661 F(ing on \214le descriptor)108 585.6 Q F1
+108 182.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 194.4 Q F2
(n)2.5 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
-(he standard input \(\214le descriptor 0\) if)-2.5 E F1(n)2.86 E F0
+(he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0
(is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 602.4 Q([)144 619.2 Q
-F1(n)A F0(])A F2(<)A F1(wor)A(d)-.37 E F2(Redir)87 636 Q(ecting Output)
--.18 E F0 .174
+(The general format for redirecting input is:)108 211.2 Q([)144 228 Q F2
+(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 244.8 Q(ecting Output)
+-.18 E F0 .175
(Redirection of output causes the \214le whose name results from the e)
-108 648 R .175(xpansion of)-.15 F F1(wor)3.015 E(d)-.37 E F0 .175
-(to be opened for writ-)3.445 F .825(ing on \214le descriptor)108 660 R
-F1(n)3.325 E F0 3.325(,o).24 G 3.325(rt)-3.325 G .824
-(he standard output \(\214le descriptor 1\) if)-3.325 F F1(n)3.684 E F0
-.824(is not speci\214ed.)3.564 F .824(If the \214le does not)5.824 F
--.15(ex)108 672 S(ist it is created; if it does e).15 E
+108 256.8 R .174(xpansion of)-.15 F F2(wor)3.014 E(d)-.37 E F0 .174
+(to be opened for writ-)3.444 F .824(ing on \214le descriptor)108 268.8
+R F2(n)3.324 E F0 3.324(,o).24 G 3.324(rt)-3.324 G .824
+(he standard output \(\214le descriptor 1\) if)-3.324 F F2(n)3.684 E F0
+.824(is not speci\214ed.)3.564 F .825(If the \214le does not)5.825 F
+-.15(ex)108 280.8 S(ist it is created; if it does e).15 E
(xist it is truncated to zero size.)-.15 E
-(The general format for redirecting output is:)108 688.8 Q([)144 705.6 Q
-F1(n)A F0(])A F2(>)A F1(wor)A(d)-.37 E F0 .154
-(If the redirection operator is)108 722.4 R F2(>)2.654 E F0 2.654(,a)C
-.154(nd the)-2.654 F F2(noclob)2.654 E(ber)-.1 E F0 .154(option to the)
-2.654 F F2(set)2.655 E F0 -.2(bu)2.655 G .155
-(iltin has been enabled, the redirection).2 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(24)185.955 E 0 Cg EP
-%%Page: 25 25
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .658(will f)108 84 R .658
-(ail if the \214le whose name results from the e)-.1 F .658(xpansion of)
--.15 F/F1 10/Times-Italic@0 SF(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G
-.657(ists and is a re).15 F .657(gular \214le.)-.15 F .657(If the redi-)
-5.657 F .408(rection operator is)108 96 R/F2 10/Times-Bold@0 SF(>|)2.909
-E F0 2.909(,o)C 2.909(rt)-2.909 G .409(he redirection operator is)-2.909
-F F2(>)2.909 E F0 .409(and the)2.909 F F2(noclob)2.909 E(ber)-.1 E F0
-.409(option to the)2.909 F F2(set)2.909 E F0 -.2(bu)2.909 G .409
+(The general format for redirecting output is:)108 297.6 Q([)144 314.4 Q
+F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .155
+(If the redirection operator is)108 331.2 R F1(>)2.655 E F0 2.655(,a)C
+.155(nd the)-2.655 F F1(noclob)2.655 E(ber)-.1 E F0 .154(option to the)
+2.654 F F1(set)2.654 E F0 -.2(bu)2.654 G .154
+(iltin has been enabled, the redirection).2 F .657(will f)108 343.2 R
+.657(ail if the \214le whose name results from the e)-.1 F .658
+(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .658
+(ists and is a re).15 F .658(gular \214le.)-.15 F .658(If the redi-)
+5.658 F .409(rection operator is)108 355.2 R F1(>|)2.909 E F0 2.909(,o)C
+2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E
+F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409
+(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.908 G .408
(iltin command).2 F(is not enabled, the redirection is attempted e)108
-108 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)-2.5
-E F1(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F2 -.25(Ap)87 124.8
-S(pending Redir).25 E(ected Output)-.18 E F0 .642
-(Redirection of output in this f)108 136.8 R .642
-(ashion causes the \214le whose name results from the e)-.1 F .641
-(xpansion of)-.15 F F1(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .473
-(opened for appending on \214le descriptor)108 148.8 R F1(n)2.973 E F0
+367.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
+-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87
+384 S(pending Redir).25 E(ected Output)-.18 E F0 .641
+(Redirection of output in this f)108 396 R .642
+(ashion causes the \214le whose name results from the e)-.1 F .642
+(xpansion of)-.15 F F2(wor)3.482 E(d)-.37 E F0 .642(to be)3.912 F .474
+(opened for appending on \214le descriptor)108 408 R F2(n)2.974 E F0
2.974(,o).24 G 2.974(rt)-2.974 G .474
-(he standard output \(\214le descriptor 1\) if)-2.974 F F1(n)3.334 E F0
-.474(is not speci\214ed.)3.214 F(If)5.474 E(the \214le does not e)108
-160.8 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 177.6 Q([)144 194.4 Q
-F1(n)A F0(])A F2(>>)A F1(wor)A(d)-.37 E F2(Redir)87 216 Q
-(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .249
-(This construct allo)108 228 R .249(ws both the standard output \(\214l\
-e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F
-(tor 2\) to be redirected to the \214le whose name is the e)108 240 Q
-(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E(There are tw)108
-256.8 Q 2.5(of)-.1 G
-(ormats for redirecting standard output and standard error:)-2.5 E F2
-(&>)144 273.6 Q F1(wor)A(d)-.37 E F0(and)108 285.6 Q F2(>&)144 297.6 Q
-F1(wor)A(d)-.37 E F0(Of the tw)108 314.4 Q 2.5(of)-.1 G
+(he standard output \(\214le descriptor 1\) if)-2.974 F F2(n)3.333 E F0
+.473(is not speci\214ed.)3.213 F(If)5.473 E(the \214le does not e)108
+420 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 436.8 Q([)144 453.6 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 475.2 Q
+(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .248
+(This construct allo)108 487.2 R .249(ws both the standard output \(\
+\214le descriptor 1\) and the standard error output \(\214le descrip-)
+-.25 F(tor 2\) to be redirected to the \214le whose name is the e)108
+499.2 Q(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
+(There are tw)108 516 Q 2.5(of)-.1 G
+(ormats for redirecting standard output and standard error:)-2.5 E F1
+(&>)144 532.8 Q F2(wor)A(d)-.37 E F0(and)108 544.8 Q F1(>&)144 556.8 Q
+F2(wor)A(d)-.37 E F0(Of the tw)108 573.6 Q 2.5(of)-.1 G
(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F2(>)144 331.2 Q F1(wor)A(d)-.37 E F0(2)2.5
-E F2(>&)A F0(1)A F2 -.25(Ap)87 352.8 S
+-.25(va)-.25 G(lent to).25 E F1(>)144 590.4 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A .115(When using the second form,)108 607.2 R F2(wor)
+2.614 E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)
+-.15 F F1<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.614(td)-2.614 G
+.114(oes, other redirection operators)-2.614 F(apply \(see)108 619.2 Q
+F1(Duplicating File Descriptors)2.5 E F0(belo)2.5 E
+(w\) for compatibility reasons.)-.25 E F1 -.25(Ap)87 636 S
(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .248
-(This construct allo)108 364.8 R .249(ws both the standard output \(\
-\214le descriptor 1\) and the standard error output \(\214le descrip-)
--.25 F(tor 2\) to be appended to the \214le whose name is the e)108
-376.8 Q(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E
+(This construct allo)108 648 R .249(ws both the standard output \(\214l\
+e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F
+(tor 2\) to be appended to the \214le whose name is the e)108 660 Q
+(xpansion of)-.15 E F2(wor)2.5 E(d)-.37 E F0(.).77 E
(The format for appending standard output and standard error is:)108
-393.6 Q F2(&>>)144 410.4 Q F1(wor)A(d)-.37 E F0
-(This is semantically equi)108 427.2 Q -.25(va)-.25 G(lent to).25 E F2
-(>>)144 444 Q F1(wor)A(d)-.37 E F0(2)2.5 E F2(>&)A F0(1)A F2(Her)87
-460.8 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redirection i\
+676.8 Q F1(&>>)144 693.6 Q F2(wor)A(d)-.37 E F0
+(This is semantically equi)108 710.4 Q -.25(va)-.25 G(lent to).25 E F1
+(>>)144 727.2 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(26)190.95 E 0 Cg EP
+%%Page: 27 27
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(\(see)108 84 Q/F1 10/Times-Bold@0 SF
+(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E F1(Her)87
+100.8 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redirection i\
nstructs the shell to read input from the current source until a line c\
-ontaining only)108 472.8 R F1(delimiter)108.35 484.8 Q F0 .614
-(\(with no trailing blanks\) is seen.)3.844 F .615
+ontaining only)108 112.8 R/F2 10/Times-Italic@0 SF(delimiter)108.35
+124.8 Q F0 .614(\(with no trailing blanks\) is seen.)3.844 F .615
(All of the lines read up to that point are then used as the stan-)5.615
-F(dard input for a command.)108 496.8 Q
-(The format of here-documents is:)108 513.6 Q F2(<<)144 530.4 Q F0([)A
-F2<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 542.4 Q(e-document)-.37 E
-(delimiter)144 554.4 Q F0 .128(No parameter e)108 571.2 R .127
-(xpansion, command substitution, arithmetic e)-.15 F .127
-(xpansion, or pathname e)-.15 F .127(xpansion is performed)-.15 F(on)108
-583.2 Q F1(wor)3.274 E(d)-.37 E F0 5.774(.I).77 G 3.274(fa)-5.774 G
-1.074 -.15(ny c)-3.274 H .774(haracters in).15 F F1(wor)3.614 E(d)-.37 E
-F0 .774(are quoted, the)4.044 F F1(delimiter)3.624 E F0 .774
-(is the result of quote remo)4.004 F -.25(va)-.15 G 3.275(lo).25 G(n)
--3.275 E F1(wor)3.275 E(d)-.37 E F0 3.275(,a).77 G(nd)-3.275 E .905
-(the lines in the here-document are not e)108 595.2 R 3.405(xpanded. If)
--.15 F F1(wor)3.405 E(d)-.37 E F0 .904
-(is unquoted, all lines of the here-document are)3.405 F .694
-(subjected to parameter e)108 607.2 R .695
-(xpansion, command substitution, and arithmetic e)-.15 F 3.195
-(xpansion. In)-.15 F .695(the latter case, the)3.195 F
-(character sequence)108 619.2 Q F2(\\<newline>)2.5 E F0(is ignored, and)
-2.5 E F2(\\)2.5 E F0(must be used to quote the characters)2.5 E F2(\\)
-2.5 E F0(,)A F2($)2.5 E F0 2.5(,a)C(nd)-2.5 E F2<92>2.5 E F0(.)A .602
-(If the redirection operator is)108 636 R F2(<<\255)3.101 E F0 3.101(,t)
+F(dard input for a command.)108 136.8 Q
+(The format of here-documents is:)108 153.6 Q F1(<<)144 170.4 Q F0([)A
+F1<ad>A F0(])A F2(wor)A(d)-.37 E(her)164 182.4 Q(e-document)-.37 E
+(delimiter)144 194.4 Q F0 .302(No parameter and v)108 211.2 R .302
+(ariable e)-.25 F .302(xpansion, command substitution, arithmetic e)-.15
+F .301(xpansion, or pathname e)-.15 F(xpansion)-.15 E .225
+(is performed on)108 223.2 R F2(wor)2.725 E(d)-.37 E F0 5.225(.I).77 G
+2.726(fa)-5.225 G .526 -.15(ny c)-2.726 H .226(haracters in).15 F F2
+(wor)3.066 E(d)-.37 E F0 .226(are quoted, the)3.496 F F2(delimiter)3.076
+E F0 .226(is the result of quote remo)3.456 F -.25(va)-.15 G 2.726(lo)
+.25 G(n)-2.726 E F2(wor)108 235.2 Q(d)-.37 E F0 2.715(,a).77 G .215
+(nd the lines in the here-document are not e)-2.715 F 2.714(xpanded. If)
+-.15 F F2(wor)2.714 E(d)-.37 E F0 .214
+(is unquoted, all lines of the here-docu-)2.714 F .499
+(ment are subjected to parameter e)108 247.2 R .499
+(xpansion, command substitution, and arithmetic e)-.15 F .5
+(xpansion, the character)-.15 F(sequence)108 259.2 Q F1(\\<newline>)2.5
+E F0(is ignored, and)2.5 E F1(\\)2.5 E F0
+(must be used to quote the characters)2.5 E F1(\\)2.5 E F0(,)A F1($)2.5
+E F0 2.5(,a)C(nd)-2.5 E F1<92>2.5 E F0(.)A .602
+(If the redirection operator is)108 276 R F1(<<\255)3.101 E F0 3.101(,t)
C .601(hen all leading tab characters are stripped from input lines and\
- the line)-3.101 F(containing)108 648 Q F1(delimiter)2.5 E F0 5(.T).73 G
+ the line)-3.101 F(containing)108 288 Q F2(delimiter)2.5 E F0 5(.T).73 G
(his allo)-5 E
(ws here-documents within shell scripts to be indented in a natural f)
--.25 E(ashion.)-.1 E F2(Her)87 664.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0
-2.5(Av)108 676.8 S(ariant of here documents, the format is:)-2.75 E F2
-(<<<)144 693.6 Q F1(wor)A(d)-.37 E F0(The)108 710.4 Q F1(wor)2.5 E(d)
--.37 E F0(is e)2.5 E
-(xpanded and supplied to the command on its standard input.)-.15 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(25)185.955 E 0 Cg EP
-%%Page: 26 26
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(Duplicating File Descriptors)87 84 Q F0
-(The redirection operator)108 96 Q([)144 112.8 Q/F2 10/Times-Italic@0 SF
-(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0 .126
-(is used to duplicate input \214le descriptors.)108 129.6 R(If)5.127 E
+-.25 E(ashion.)-.1 E F1(Her)87 304.8 Q 2.5(eS)-.18 G(trings)-2.5 E F0
+2.5(Av)108 316.8 S(ariant of here documents, the format is:)-2.75 E F1
+(<<<)144 333.6 Q F2(wor)A(d)-.37 E F0(The)108 350.4 Q F2(wor)2.893 E(d)
+-.37 E F0(under)2.893 E .393(goes brace e)-.18 F .393(xpansion, tilde e)
+-.15 F .393(xpansion, parameter and v)-.15 F .394(ariable e)-.25 F .394
+(xpansion, command substi-)-.15 F 2.148(tution, arithmetic e)108 362.4 R
+2.148(xpansion, and quote remo)-.15 F -.25(va)-.15 G 4.648(l. P).25 F
+2.148(athname e)-.15 F 2.148(xpansion and w)-.15 F 2.147
+(ord splitting are not per)-.1 F(-)-.2 E 2.5(formed. The)108 374.4 R(re\
+sult is supplied as a single string to the command on its standard inpu\
+t.)2.5 E F1(Duplicating File Descriptors)87 391.2 Q F0
+(The redirection operator)108 403.2 Q([)144 420 Q F2(n)A F0(])A F1(<&)A
+F2(wor)A(d)-.37 E F0 .126
+(is used to duplicate input \214le descriptors.)108 436.8 R(If)5.127 E
F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
(pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-141.6 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
+448.8 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G
2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.297 E(d)-.37 E F0
.457(do not specify a \214le descriptor open)3.727 F .149
-(for input, a redirection error occurs.)108 153.6 R(If)5.149 E F2(wor)
+(for input, a redirection error occurs.)108 460.8 R(If)5.149 E F2(wor)
2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F1<ad>2.649 E
F0 2.65<2c8c>C .15(le descriptor)-2.65 F F2(n)3.01 E F0 .15(is closed.)
2.89 F(If)5.15 E F2(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
-(the standard input \(\214le descriptor 0\) is used.)108 165.6 Q
-(The operator)108 182.4 Q([)144 199.2 Q F2(n)A F0(])A F1(>&)A F2(wor)A
+(the standard input \(\214le descriptor 0\) is used.)108 472.8 Q
+(The operator)108 489.6 Q([)144 506.4 Q F2(n)A F0(])A F1(>&)A F2(wor)A
(d)-.37 E F0 .444
-(is used similarly to duplicate output \214le descriptors.)108 216 R(If)
-5.444 E F2(n)3.304 E F0 .443
+(is used similarly to duplicate output \214le descriptors.)108 523.2 R
+(If)5.444 E F2(n)3.304 E F0 .443
(is not speci\214ed, the standard output \(\214le descrip-)3.183 F 1.357
-(tor 1\) is used.)108 228 R 1.357(If the digits in)6.357 F F2(wor)4.197
-E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for output,\
- a redirection error)4.627 F 2.597(occurs. As)108 240 R 2.597(as)2.597 G
-.097(pecial case, if)-2.597 F F2(n)2.596 E F0 .096(is omitted, and)2.596
-F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)2.596 F .096
-(xpand to one or more digits, the standard out-)-.15 F
-(put and standard error are redirected as described pre)108 252 Q
-(viously)-.25 E(.)-.65 E F1(Mo)87 268.8 Q(ving File Descriptors)-.1 E F0
-(The redirection operator)108 280.8 Q([)144 297.6 Q F2(n)A F0(])A F1(<&)
-A F2(digit)A F1<ad>A F0(mo)108 314.4 Q -.15(ve)-.15 G 3.035(st).15 G
-.535(he \214le descriptor)-3.035 F F2(digit)3.035 E F0 .535
-(to \214le descriptor)3.035 F F2(n)3.035 E F0 3.035(,o).24 G 3.035(rt)
--3.035 G .536(he standard input \(\214le descriptor 0\) if)-3.035 F F2
-(n)3.036 E F0 .536(is not speci-)3.036 F(\214ed.)108 326.4 Q F2(digit)5
-E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
-(Similarly)108 343.2 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
-144 360 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 376.8 Q
--.15(ve)-.15 G 2.786(st).15 G .286(he \214le descriptor)-2.786 F F2
-(digit)2.786 E F0 .286(to \214le descriptor)2.786 F F2(n)2.786 E F0
-2.786(,o).24 G 2.786(rt)-2.786 G .285
-(he standard output \(\214le descriptor 1\) if)-2.786 F F2(n)2.785 E F0
-.285(is not speci-)2.785 F(\214ed.)108 388.8 Q F1
-(Opening File Descriptors f)87 405.6 Q(or Reading and Writing)-.25 E F0
-(The redirection operator)108 417.6 Q([)144 434.4 Q F2(n)A F0(])A F1(<>)
-A F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
-451.2 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
+(tor 1\) is used.)108 535.2 R 1.357(If the digits in)6.357 F F2(wor)
+4.197 E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for o\
+utput, a redirection error)4.627 F 2.754(occurs. If)108 547.2 R F2(wor)
+3.094 E(d)-.37 E F0 -.25(eva)3.524 G .254(luates to).25 F F1<ad>2.754 E
+F0 2.754<2c8c>C .254(le descriptor)-2.754 F F2(n)3.114 E F0 .254
+(is closed.)2.994 F .254(As a special case, if)5.254 F F2(n)2.754 E F0
+.253(is omitted, and)2.754 F F2(wor)2.753 E(d)-.37 E F0(does)2.753 E
+.965(not e)108 559.2 R .965(xpand to one or more digits or)-.15 F F1<ad>
+3.465 E F0 3.466(,t)C .966
+(he standard output and standard error are redirected as described)
+-3.466 F(pre)108 571.2 Q(viously)-.25 E(.)-.65 E F1(Mo)87 588 Q
+(ving File Descriptors)-.1 E F0(The redirection operator)108 600 Q([)144
+616.8 Q F2(n)A F0(])A F1(<&)A F2(digit)A F1<ad>A F0(mo)108 633.6 Q -.15
+(ve)-.15 G 3.036(st).15 G .536(he \214le descriptor)-3.036 F F2(digit)
+3.036 E F0 .536(to \214le descriptor)3.036 F F2(n)3.036 E F0 3.036(,o)
+.24 G 3.036(rt)-3.036 G .535
+(he standard input \(\214le descriptor 0\) if)-3.036 F F2(n)3.035 E F0
+.535(is not speci-)3.035 F(\214ed.)108 645.6 Q F2(digit)5 E F0
+(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A(Similarly)
+108 662.4 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 679.2 Q
+F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 696 Q -.15(ve)-.15 G
+2.785(st).15 G .285(he \214le descriptor)-2.785 F F2(digit)2.785 E F0
+.285(to \214le descriptor)2.785 F F2(n)2.785 E F0 2.785(,o).24 G 2.785
+(rt)-2.785 G .286(he standard output \(\214le descriptor 1\) if)-2.785 F
+F2(n)2.786 E F0 .286(is not speci-)2.786 F(\214ed.)108 708 Q
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(27)190.95 E 0 Cg EP
+%%Page: 28 28
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(Opening File Descriptors f)87 84 Q
+(or Reading and Writing)-.25 E F0(The redirection operator)108 96 Q([)
+144 112.8 Q/F2 10/Times-Italic@0 SF(n)A F0(])A F1(<>)A F2(wor)A(d)-.37 E
+F0 1.349(causes the \214le whose name is the e)108 129.6 R 1.349
+(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
(to be opened for both reading and writing on \214le)4.619 F(descriptor)
-108 463.2 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
+108 141.6 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
(le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E
(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95
-/Times-Bold@0 SF(ALIASES)72 480 Q F2(Aliases)108 492 Q F0(allo)3.174 E
-3.174(was)-.25 G .674(tring to be substituted for a w)-3.174 F .674
-(ord when it is used as the \214rst w)-.1 F .673
+/Times-Bold@0 SF(ALIASES)72 158.4 Q F2(Aliases)108 170.4 Q F0(allo)3.173
+E 3.173(was)-.25 G .674(tring to be substituted for a w)-3.173 F .674
+(ord when it is used as the \214rst w)-.1 F .674
(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
-ses that may be set and unset with the)108 504 R F1(alias)2.894 E F0
-(and)2.894 E F1(unalias)2.894 E F0 -.2(bu)2.894 G .394(iltin commands).2
-F(\(see)108 516 Q/F4 9/Times-Bold@0 SF 1.98(SHELL B)4.48 F(UIL)-.09 E
-1.98(TIN COMMANDS)-.828 F F0(belo)4.23 E 4.48(w\). The)-.25 F 1.98
-(\214rst w)4.48 F 1.979(ord of each simple command, if unquoted, is)-.1
-F(check)108 528 Q .472(ed to see if it has an alias.)-.1 F .472
-(If so, that w)5.472 F .473(ord is replaced by the te)-.1 F .473
-(xt of the alias.)-.15 F .473(The characters)5.473 F F1(/)2.973 E F0(,)A
-F1($)2.973 E F0(,)A F1<92>2.973 E F0(,)A(and)108 540 Q F1(=)3.612 E F0
-1.112(and an)3.612 F 3.612(yo)-.15 G 3.612(ft)-3.612 G 1.112(he shell)
--3.612 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
-(or quoting characters listed abo)3.612 F 1.411 -.15(ve m)-.15 H 1.111
-(ay not appear in an alias).15 F 3.619(name. The)108 552 R 1.119
-(replacement te)3.619 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
-1.119(alid shell input, including shell metacharacters.)-3.869 F 1.12
-(The \214rst)6.12 F -.1(wo)108 564 S .514(rd of the replacement te).1 F
-.514(xt is tested for aliases, b)-.15 F .514(ut a w)-.2 F .513
-(ord that is identical to an alias being e)-.1 F .513(xpanded is)-.15 F
-.295(not e)108 576 R .295(xpanded a second time.)-.15 F .296
-(This means that one may alias)5.295 F F1(ls)2.796 E F0(to)2.796 E F1
-.296(ls \255F)2.796 F F0 2.796(,f)C .296(or instance, and)-2.796 F F1
-(bash)2.796 E F0 .296(does not try)2.796 F .543(to recursi)108 588 R
--.15(ve)-.25 G .543(ly e).15 F .543(xpand the replacement te)-.15 F
-3.043(xt. If)-.15 F .543(the last character of the alias v)3.043 F .542
-(alue is a)-.25 F F2(blank)3.042 E F0 3.042(,t).67 G .542(hen the ne)
--3.042 F(xt)-.15 E(command w)108 600 Q(ord follo)-.1 E
+ses that may be set and unset with the)108 182.4 R F1(alias)2.893 E F0
+(and)2.893 E F1(unalias)2.893 E F0 -.2(bu)2.893 G .393(iltin commands).2
+F(\(see)108 194.4 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09
+E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98
+(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F
+(check)108 206.4 Q .473(ed to see if it has an alias.)-.1 F .473
+(If so, that w)5.473 F .472(ord is replaced by the te)-.1 F .472
+(xt of the alias.)-.15 F .472(The characters)5.472 F F1(/)2.972 E F0(,)A
+F1($)2.972 E F0(,)A F1<92>2.972 E F0(,)A(and)108 218.4 Q F1(=)3.611 E F0
+1.111(and an)3.611 F 3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)
+-3.611 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
+(or quoting characters listed abo)3.612 F 1.412 -.15(ve m)-.15 H 1.112
+(ay not appear in an alias).15 F 3.62(name. The)108 230.4 R 1.12
+(replacement te)3.62 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
+1.119(alid shell input, including shell metacharacters.)-3.869 F 1.119
+(The \214rst)6.119 F -.1(wo)108 242.4 S .513(rd of the replacement te).1
+F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
+(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F
+.296(not e)108 254.4 R .296(xpanded a second time.)-.15 F .296
+(This means that one may alias)5.296 F F1(ls)2.796 E F0(to)2.796 E F1
+.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F1
+(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 266.4 R
+-.15(ve)-.25 G .542(ly e).15 F .542(xpand the replacement te)-.15 F
+3.042(xt. If)-.15 F .543(the last character of the alias v)3.042 F .543
+(alue is a)-.25 F F2(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne)
+-3.043 F(xt)-.15 E(command w)108 278.4 Q(ord follo)-.1 E
(wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
-E(Aliases are created and listed with the)108 616.8 Q F1(alias)2.5 E F0
+E(Aliases are created and listed with the)108 295.2 Q F1(alias)2.5 E F0
(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1
(unalias)2.5 E F0(command.)2.5 E .284
-(There is no mechanism for using ar)108 633.6 R .284
+(There is no mechanism for using ar)108 312 R .284
(guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
.284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
-108 645.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
-(Aliases are not e)108 662.4 R 1.22
+108 324 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22
+(Aliases are not e)108 340.8 R 1.22
(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u)
.15 G 1.22(nless the)-3.72 F F1(expand_aliases)3.72 E F0 1.22
-(shell option is set)3.72 F(using)108 674.4 Q F1(shopt)2.5 E F0
+(shell option is set)3.72 F(using)108 352.8 Q F1(shopt)2.5 E F0
(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F4
(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
-E .435
+E .436
(The rules concerning the de\214nition and use of aliases are some)108
-691.2 R .436(what confusing.)-.25 F F1(Bash)5.436 E F0(al)2.936 E -.1
-(wa)-.1 G .436(ys reads at least).1 F .338
-(one complete line of input before e)108 703.2 R -.15(xe)-.15 G .338
+369.6 R .435(what confusing.)-.25 F F1(Bash)5.435 E F0(al)2.935 E -.1
+(wa)-.1 G .435(ys reads at least).1 F .337
+(one complete line of input before e)108 381.6 R -.15(xe)-.15 G .338
(cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338
-(he commands on that line.)-2.838 F .337(Aliases are e)5.337 F .337
-(xpanded when)-.15 F 3.403(ac)108 715.2 S .904
-(ommand is read, not when it is e)-3.403 F -.15(xe)-.15 G 3.404
+(he commands on that line.)-2.838 F .338(Aliases are e)5.338 F .338
+(xpanded when)-.15 F 3.404(ac)108 393.6 S .904
+(ommand is read, not when it is e)-3.404 F -.15(xe)-.15 G 3.404
(cuted. Therefore,).15 F .904
-(an alias de\214nition appearing on the same line as)3.404 F 1.162
-(another command does not tak)108 727.2 R 3.662(ee)-.1 G -.25(ff)-3.662
+(an alias de\214nition appearing on the same line as)3.404 F 1.161
+(another command does not tak)108 405.6 R 3.662(ee)-.1 G -.25(ff)-3.662
G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
-1.161(The commands follo)6.161 F 1.161(wing the)-.25 F(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(26)185.955 E 0 Cg EP
-%%Page: 27 27
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .277(alias de\214nition on that line are not af)108 84 R .277
+1.162(The commands follo)6.162 F 1.162(wing the)-.25 F .277
+(alias de\214nition on that line are not af)108 417.6 R .277
(fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha)
-2.777 E .277(vior is also an issue when functions)-.2 F .699(are e)108
-96 R -.15(xe)-.15 G 3.199(cuted. Aliases).15 F .699(are e)3.199 F .699(\
-xpanded when a function de\214nition is read, not when the function is \
-e)-.15 F -.15(xe)-.15 G(cuted,).15 E .494
-(because a function de\214nition is itself a compound command.)108 108 R
-.495(As a consequence, aliases de\214ned in a func-)5.494 F .085
-(tion are not a)108 120 R -.25(va)-.2 G .084
+2.777 E .277(vior is also an issue when functions)-.2 F .698(are e)108
+429.6 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F
+.699(xpanded when a function de\214nition is read, not when the functio\
+n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495
+(because a function de\214nition is itself a compound command.)108 441.6
+R .494(As a consequence, aliases de\214ned in a func-)5.494 F .084
+(tion are not a)108 453.6 R -.25(va)-.2 G .084
(ilable until after that function is e).25 F -.15(xe)-.15 G 2.584
(cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F
--.1(wa)-.1 G .084(ys put alias de\214nitions on a sepa-).1 F
-(rate line, and do not use)108 132 Q/F1 10/Times-Bold@0 SF(alias)2.5 E
-F0(in compound commands.)2.5 E -.15(Fo)108 148.8 S 2.5(ra).15 G(lmost e)
+-.1(wa)-.1 G .085(ys put alias de\214nitions on a sepa-).1 F
+(rate line, and do not use)108 465.6 Q F1(alias)2.5 E F0
+(in compound commands.)2.5 E -.15(Fo)108 482.4 S 2.5(ra).15 G(lmost e)
-2.5 E -.15(ve)-.25 G
-(ry purpose, aliases are superseded by shell functions.).15 E/F2 10.95
-/Times-Bold@0 SF(FUNCTIONS)72 165.6 Q F0 3.467(As)108 177.6 S .967
-(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15
-H(nder).15 E/F3 9/Times-Bold@0 SF .967(SHELL GRAMMAR)3.467 F/F4 9
-/Times-Roman@0 SF(,)A F0 .968(stores a series of commands for)3.217 F
-1.002(later e)108 189.6 R -.15(xe)-.15 G 3.502(cution. When).15 F 1.002
-(the name of a shell function is used as a simple command name, the lis\
-t of com-)3.502 F .315(mands associated with that function name is e)108
-201.6 R -.15(xe)-.15 G 2.816(cuted. Functions).15 F .316(are e)2.816 F
--.15(xe)-.15 G .316(cuted in the conte).15 F .316(xt of the current)-.15
-F .036(shell; no ne)108 213.6 R 2.536(wp)-.25 G .036
-(rocess is created to interpret them \(contrast this with the e)-2.536 F
--.15(xe)-.15 G .036(cution of a shell script\).).15 F .035(When a)5.035
-F .639(function is e)108 225.6 R -.15(xe)-.15 G .639(cuted, the ar).15 F
+(ry purpose, aliases are superseded by shell functions.).15 E F3
+(FUNCTIONS)72 499.2 Q F0 3.468(As)108 511.2 S .968
+(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15
+H(nder).15 E F4 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F0
+.967(stores a series of commands for)3.217 F 1.001(later e)108 523.2 R
+-.15(xe)-.15 G 3.501(cution. When).15 F 1.002(the name of a shell funct\
+ion is used as a simple command name, the list of com-)3.501 F .316
+(mands associated with that function name is e)108 535.2 R -.15(xe)-.15
+G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .315
+(cuted in the conte).15 F .315(xt of the current)-.15 F .035
+(shell; no ne)108 547.2 R 2.535(wp)-.25 G .036
+(rocess is created to interpret them \(contrast this with the e)-2.535 F
+-.15(xe)-.15 G .036(cution of a shell script\).).15 F .036(When a)5.036
+F .64(function is e)108 559.2 R -.15(xe)-.15 G .64(cuted, the ar).15 F
.639
(guments to the function become the positional parameters during its e)
--.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 237.6
-R F1(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532
-(Special parameter)5.532 F F1(0)3.032 E F0 .532(is unchanged.)3.032 F
-.532(The \214rst ele-)5.532 F(ment of the)108 249.6 Q F3(FUNCN)2.5 E
+-.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 571.2
+R F1(#)3.032 E F0 .532(is updated to re\215ect the change.)3.032 F .532
+(Special parameter)5.532 F F1(0)3.033 E F0 .533(is unchanged.)3.033 F
+.533(The \214rst ele-)5.533 F(ment of the)108 583.2 Q F4(FUNCN)2.5 E
(AME)-.18 E F0 -.25(va)2.25 G
(riable is set to the name of the function while the function is e).25 E
-.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108
-266.4 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
+600 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
(vironment are identical between a function and its caller with)-.4 F
-1.049(these e)108 278.4 R 3.548(xceptions: the)-.15 F F3(DEB)3.548 E(UG)
+1.048(these e)108 612 R 3.548(xceptions: the)-.15 F F4(DEB)3.548 E(UG)
-.09 E F0(and)3.298 E F1(RETURN)3.548 E F0 1.048
(traps \(see the description of the)3.548 F F1(trap)3.548 E F0 -.2(bu)
-3.548 G 1.048(iltin under).2 F F3(SHELL)3.548 E -.09(BU)108 290.4 S(IL)
-.09 E .478(TIN COMMANDS)-.828 F F0(belo)2.728 E .479
+3.548 G 1.048(iltin under).2 F F4(SHELL)3.549 E -.09(BU)108 624 S(IL).09
+E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
--.25 G 2.979(nt).15 G(he)-2.979 E F1(trace)2.979 E F0(attrib)2.979 E
-.479(ute \(see)-.2 F .421(the description of the)108 302.4 R F3(declar)
-2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
--.25 F F1 .42(\255o functrace)2.92 F F0 .42
-(shell option has been enabled with the)2.92 F F1(set)2.92 E F0 -.2(bu)
-108 314.4 S .071(iltin \(in which case all functions inherit the).2 F F1
+-.25 G 2.978(nt).15 G(he)-2.978 E F1(trace)2.978 E F0(attrib)2.978 E
+.478(ute \(see)-.2 F .42(the description of the)108 636 R F4(declar)2.92
+E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)-.25 F
+F1 .42(\255o functrace)2.92 F F0 .42
+(shell option has been enabled with the)2.92 F F1(set)2.921 E F0 -.2(bu)
+108 648 S .072(iltin \(in which case all functions inherit the).2 F F1
(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F1(RETURN)2.572 E F0 .072
-(traps\), and the)2.572 F F3(ERR)2.572 E F0 .072(trap is not inher)2.322
-F(-)-.2 E(ited unless the)108 326.4 Q F1(\255o errtrace)2.5 E F0
-(shell option has been enabled.)2.5 E -1.11(Va)108 343.2 S .656
+(traps\), and the)2.572 F F4(ERR)2.571 E F0 .071(trap is not inher)2.321
+F(-)-.2 E(ited unless the)108 660 Q F1(\255o errtrace)2.5 E F0
+(shell option has been enabled.)2.5 E -1.11(Va)108 676.8 S .655
(riables local to the function may be declared with the)1.11 F F1(local)
-3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F(Ordinarily)5.655 E
-3.155(,v)-.65 G .655(ariables and)-3.405 F(their v)108 355.2 Q
+3.155 E F0 -.2(bu)3.156 G .656(iltin command.).2 F(Ordinarily)5.656 E
+3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 688.8 Q
(alues are shared between the function and its caller)-.25 E(.)-.55 E
-(The)108 372 Q F1(FUNCNEST)3.528 E F0 -.25(va)3.528 G 1.028
+(The)108 705.6 Q F1(FUNCNEST)3.529 E F0 -.25(va)3.529 G 1.028
(riable, if set to a numeric v).25 F 1.028
(alue greater than 0, de\214nes a maximum function nesting)-.25 F(le)108
-384 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
+717.6 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
(cations that e).2 E(xceed the limit cause the entire command to abort.)
--.15 E .044(If the b)108 400.8 R .043(uiltin command)-.2 F F1 -.18(re)
-2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
-(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.043(cution resumes with).15 F 1.011(the ne)108 412.8 R 1.011
-(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
-1.011(ommand associated with the)-3.511 F F1(RETURN)3.512 E F0 1.012
-(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 424.8 R
--.15(xe)-.15 G .214(cution resumes.).15 F .213
-(When a function completes, the v)5.214 F .213
+-.15 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(28)190.95 E 0 Cg
+EP
+%%Page: 29 29
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .043(If the b)108 84 R .043(uiltin command)-.2 F/F1 10
+/Times-Bold@0 SF -.18(re)2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F
+-.15(xe)-.15 G .043(cuted in a function, the function completes and e)
+.15 F -.15(xe)-.15 G .044(cution resumes with).15 F 1.012(the ne)108 96
+R 1.012(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)
+-.15 G 1.011(ommand associated with the)-3.511 F F1(RETURN)3.511 E F0
+1.011(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 108
+R -.15(xe)-.15 G .213(cution resumes.).15 F .213
+(When a function completes, the v)5.213 F .214
(alues of the positional parameters and the spe-)-.25 F(cial parameter)
-108 436.8 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
-2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
--2.65 G(cution.).15 E 1.358
-(Function names and de\214nitions may be listed with the)108 453.6 R F1
+108 120 Q F1(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E 2.5
+(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)-2.65
+G(cution.).15 E 1.359
+(Function names and de\214nitions may be listed with the)108 136.8 R F1
<ad66>3.858 E F0 1.358(option to the)3.858 F F1(declar)3.858 E(e)-.18 E
-F0(or)3.859 E F1(typeset)3.859 E F0 -.2(bu)3.859 G 1.359(iltin com-).2 F
-3.39(mands. The)108 465.6 R F1<ad46>3.39 E F0 .89(option to)3.39 F F1
+F0(or)3.858 E F1(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F
+3.39(mands. The)108 148.8 R F1<ad46>3.39 E F0 .89(option to)3.39 F F1
(declar)3.39 E(e)-.18 E F0(or)3.39 E F1(typeset)3.39 E F0 .89
(will list the function names only \(and optionally the source)3.39 F
-.326(\214le and line number)108 477.6 R 2.826(,i)-.4 G 2.826(ft)-2.826 G
-(he)-2.826 E F1(extdeb)2.826 E(ug)-.2 E F0 .326
-(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F .327
-(xported so that subshells)-.15 F 1.298(automatically ha)108 489.6 R
-1.598 -.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F1<ad66>3.798 E
-F0 1.298(option to the)3.798 F F1(export)3.797 E F0 -.2(bu)3.797 G 3.797
-(iltin. A).2 F 1.297(function de\214nition may be)3.797 F .16
-(deleted using the)108 501.6 R F1<ad66>2.66 E F0 .16(option to the)2.66
-F F1(unset)2.66 E F0 -.2(bu)2.66 G 2.661(iltin. Note).2 F .161
-(that shell functions and v)2.661 F .161(ariables with the same name)
--.25 F 1.325(may result in multiple identically-named entries in the en)
-108 513.6 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G
-3.825(hildren. Care)-3.825 F(should be tak)108 525.6 Q
-(en in cases where this may cause a problem.)-.1 E .371
-(Functions may be recursi)108 542.4 R -.15(ve)-.25 G 5.371(.T).15 G(he)
+.327(\214le and line number)108 160.8 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
+(he)-2.827 E F1(extdeb)2.827 E(ug)-.2 E F0 .326
+(shell option is enabled\).)2.827 F .326(Functions may be e)5.326 F .326
+(xported so that subshells)-.15 F 1.297(automatically ha)108 172.8 R
+1.597 -.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F1<ad66>3.797 E
+F0 1.297(option to the)3.797 F F1(export)3.798 E F0 -.2(bu)3.798 G 3.798
+(iltin. A).2 F 1.298(function de\214nition may be)3.798 F .161
+(deleted using the)108 184.8 R F1<ad66>2.661 E F0 .161(option to the)
+2.661 F F1(unset)2.661 E F0 -.2(bu)2.661 G 2.661(iltin. Note).2 F .16
+(that shell functions and v)2.661 F .16(ariables with the same name)-.25
+F 1.325(may result in multiple identically-named entries in the en)108
+196.8 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
+(hildren. Care)-3.825 F(should be tak)108 208.8 Q
+(en in cases where this may cause a problem.)-.1 E .372
+(Functions may be recursi)108 225.6 R -.15(ve)-.25 G 5.371(.T).15 G(he)
-5.371 E F1(FUNCNEST)2.871 E F0 -.25(va)2.871 G .371
(riable may be used to limit the depth of the function call).25 F 1.141
-(stack and restrict the number of function in)108 554.4 R -.2(vo)-.4 G
+(stack and restrict the number of function in)108 237.6 R -.2(vo)-.4 G
3.641(cations. By).2 F(def)3.641 E 1.141
-(ault, no limit is imposed on the number of)-.1 F(recursi)108 566.4 Q .3
--.15(ve c)-.25 H(alls.).15 E F2(ARITHMETIC EV)72 583.2 Q(ALU)-1.478 E
--1.04(AT)-.657 G(ION)1.04 E F0 2.297(The shell allo)108 595.2 R 2.297
-(ws arithmetic e)-.25 F 2.297(xpressions to be e)-.15 F -.25(va)-.25 G
-2.297(luated, under certain circumstances \(see the).25 F F1(let)4.798 E
-F0(and)4.798 E F1(declar)108 607.2 Q(e)-.18 E F0 -.2(bu)2.706 G .206
-(iltin commands and).2 F F1 .206(Arithmetic Expansion)2.706 F F0 2.705
-(\). Ev)B .205(aluation is done in \214x)-.25 F .205(ed-width inte)-.15
-F .205(gers with no)-.15 F .428(check for o)108 619.2 R -.15(ve)-.15 G
-(r\215o).15 E 1.728 -.65(w, t)-.25 H .428(hough di).65 F .428
-(vision by 0 is trapped and \215agged as an error)-.25 F 5.429(.T)-.55 G
-.429(he operators and their prece-)-5.429 F 1.92(dence, associati)108
-631.2 R(vity)-.25 E 4.42(,a)-.65 G 1.92(nd v)-4.42 F 1.92
-(alues are the same as in the C language.)-.25 F 1.919(The follo)6.919 F
-1.919(wing list of operators is)-.25 F(grouped into le)108 643.2 Q -.15
+(ault, no limit is imposed on the number of)-.1 F(recursi)108 249.6 Q .3
+-.15(ve c)-.25 H(alls.).15 E/F2 10.95/Times-Bold@0 SF(ARITHMETIC EV)72
+266.4 Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 2.298
+(The shell allo)108 278.4 R 2.297(ws arithmetic e)-.25 F 2.297
+(xpressions to be e)-.15 F -.25(va)-.25 G 2.297
+(luated, under certain circumstances \(see the).25 F F1(let)4.797 E F0
+(and)4.797 E F1(declar)108 290.4 Q(e)-.18 E F0 -.2(bu)2.705 G .205
+(iltin commands and).2 F F1 .205(Arithmetic Expansion)2.705 F F0 2.705
+(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte)-.15
+F .206(gers with no)-.15 F .429(check for o)108 302.4 R -.15(ve)-.15 G
+(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428
+(vision by 0 is trapped and \215agged as an error)-.25 F 5.428(.T)-.55 G
+.428(he operators and their prece-)-5.428 F 1.919(dence, associati)108
+314.4 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919
+(alues are the same as in the C language.)-.25 F 1.92(The follo)6.92 F
+1.92(wing list of operators is)-.25 F(grouped into le)108 326.4 Q -.15
(ve)-.25 G(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)
--.25 G(ls are listed in order of decreasing precedence.).15 E/F5 10
-/Times-Italic@0 SF(id)108 660 Q F1(++)A F5(id)2.5 E F1<adad>A F0 -.25
-(va)144 672 S(riable post-increment and post-decrement).25 E F1(++)108
-684 Q F5(id)A F1<adad>2.5 E F5(id)A F0 -.25(va)144 696 S
-(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 708 S F0
-(unary minus and plus)19.6 E(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(27)185.955 E 0 Cg EP
-%%Page: 28 28
+-.25 G(ls are listed in order of decreasing precedence.).15 E/F3 10
+/Times-Italic@0 SF(id)108 343.2 Q F1(++)A F3(id)2.5 E F1<adad>A F0 -.25
+(va)144 355.2 S(riable post-increment and post-decrement).25 E F1(++)108
+367.2 Q F3(id)A F1<adad>2.5 E F3(id)A F0 -.25(va)144 379.2 S
+(riable pre-increment and pre-decrement).25 E F1 2.5<ad2b>108 391.2 S F0
+(unary minus and plus)19.6 E F1 2.5(!~)108 403.2 S F0
+(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108
+415.2 Q F0 -.15(ex)26 G(ponentiation).15 E F1 2.5(*/%)108 427.2 S F0
+(multiplication, di)10.72 E(vision, remainder)-.25 E F1 2.5<2bad>108
+439.2 S F0(addition, subtraction)19.6 E F1(<< >>)108 451.2 Q F0
+(left and right bitwise shifts)10.7 E F1(<= >= < >)108 463.2 Q F0
+(comparison)144 475.2 Q F1(== !=)108 487.2 Q F0(equality and inequality)
+13.07 E F1(&)108 499.2 Q F0(bitwise AND)27.67 E F1(^)108 511.2 Q F0
+(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108
+523.2 Q F0(bitwise OR)33.8 E F1(&&)108 535.2 Q F0(logical AND)19.34 E F1
+(||)108 547.2 Q F0(logical OR)31.6 E F3 -.2(ex)108 559.2 S(pr).2 E F1(?)
+A F3 -.2(ex)C(pr).2 E F1(:)A F3 -.2(ex)C(pr).2 E F0
+(conditional operator)144 571.2 Q F1 2.5(=*)108 583.2 S 2.5(=/)-2.5 G
+2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
+(<= >>= &= ^= |=)-2.5 E F0(assignment)144 595.2 Q F3 -.2(ex)108 607.2 S
+(pr1).2 E F1(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 619.2 Q .68
+(Shell v)108 636 R .68(ariables are allo)-.25 F .68
+(wed as operands; parameter e)-.25 F .68
+(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 648 R 1.007(ithin an e)-.4 F
+1.007(xpression, shell v)-.15 F 1.007
+(ariables may also be referenced by name without using the parameter)
+-.25 F -.15(ex)108 660 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G
+1.041(hell v)-3.541 F 1.041(ariable that is null or unset e)-.25 F -.25
+(va)-.25 G 1.04(luates to 0 when referenced by name without).25 F 1.466
+(using the parameter e)108 672 R 1.466(xpansion syntax.)-.15 F 1.467
+(The v)6.466 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
+(va)-.25 G 1.467(luated as an arithmetic e).25 F(xpression)-.15 E 1.39
+(when it is referenced, or when a v)108 684 R 1.389
+(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he)
+-3.889 E F3(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389
+(ute using)-.2 F F1(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is)
+3.889 E .332(assigned a v)108 696 R 2.832(alue. A)-.25 F .332(null v)
+2.832 F .332(alue e)-.25 F -.25(va)-.25 G .332(luates to 0.).25 F 2.832
+(As)5.332 G .332(hell v)-2.832 F .332(ariable need not ha)-.25 F .632
+-.15(ve i)-.2 H(ts).15 E F3(inte)2.832 E -.1(ge)-.4 G(r).1 E F0(attrib)
+2.832 E .333(ute turned on)-.2 F(to be used in an e)108 708 Q
+(xpression.)-.15 E 1.406
+(Constants with a leading 0 are interpreted as octal numbers.)108 724.8
+R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
+-.15 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(29)190.95 E 0 Cg
+EP
+%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF 2.5(!~)108 84 S F0(logical and bitwise ne)
-24.34 E -.05(ga)-.15 G(tion).05 E F1(**)108 96 Q F0 -.15(ex)26 G
-(ponentiation).15 E F1 2.5(*/%)108 108 S F0(multiplication, di)10.72 E
-(vision, remainder)-.25 E F1 2.5<2bad>108 120 S F0
-(addition, subtraction)19.6 E F1(<< >>)108 132 Q F0
-(left and right bitwise shifts)10.7 E F1(<= >= < >)108 144 Q F0
-(comparison)144 156 Q F1(== !=)108 168 Q F0(equality and inequality)
-13.07 E F1(&)108 180 Q F0(bitwise AND)27.67 E F1(^)108 192 Q F0
-(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F1(|)108
-204 Q F0(bitwise OR)33.8 E F1(&&)108 216 Q F0(logical AND)19.34 E F1(||)
-108 228 Q F0(logical OR)31.6 E/F2 10/Times-Italic@0 SF -.2(ex)108 240 S
-(pr).2 E F1(?)A F2 -.2(ex)C(pr).2 E F1(:)A F2 -.2(ex)C(pr).2 E F0
-(conditional operator)144 252 Q F1 2.5(=*)108 264 S 2.5(=/)-2.5 G 2.5
-(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G(<= >>= &= ^= |=)
--2.5 E F0(assignment)144 276 Q F2 -.2(ex)108 288 S(pr1).2 E F1(,)2.5 E
-F2 -.2(ex)2.5 G(pr2).2 E F0(comma)144 300 Q .68(Shell v)108 316.8 R .68
-(ariables are allo)-.25 F .68(wed as operands; parameter e)-.25 F .68
-(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.508(ated. W)108 328.8 R 1.008(ithin an e)-.4
-F 1.008(xpression, shell v)-.15 F 1.007
-(ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 340.8 S 1.04(pansion syntax.).15 F 3.54(As)6.04 G
-1.04(hell v)-3.54 F 1.04(ariable that is null or unset e)-.25 F -.25(va)
--.25 G 1.041(luates to 0 when referenced by name without).25 F 1.467
-(using the parameter e)108 352.8 R 1.467(xpansion syntax.)-.15 F 1.467
-(The v)6.467 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
-(va)-.25 G 1.466(luated as an arithmetic e).25 F(xpression)-.15 E 1.389
-(when it is referenced, or when a v)108 364.8 R 1.389
-(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.89(nt).15 G(he)-3.89
-E F2(inte)3.89 E -.1(ge)-.4 G(r).1 E F0(attrib)3.89 E 1.39(ute using)-.2
-F F1(declar)3.89 E 3.89(e-)-.18 G(i)-3.89 E F0(is)3.89 E .333
-(assigned a v)108 376.8 R 2.832(alue. A)-.25 F .332(null v)2.832 F .332
-(alue e)-.25 F -.25(va)-.25 G .332(luates to 0.).25 F 2.832(As)5.332 G
-.332(hell v)-2.832 F .332(ariable need not ha)-.25 F .632 -.15(ve i)-.2
-H(ts).15 E F2(inte)2.832 E -.1(ge)-.4 G(r).1 E F0(attrib)2.832 E .332
-(ute turned on)-.2 F(to be used in an e)108 388.8 Q(xpression.)-.15 E
-1.406(Constants with a leading 0 are interpreted as octal numbers.)108
-405.6 R 3.906(Al)6.406 G 1.407(eading 0x or 0X denotes he)-3.906 F
-(xadecimal.)-.15 E .113(Otherwise, numbers tak)108 417.6 R 2.613(et)-.1
-G .113(he form [)-2.613 F F2(base#)A F0 .112(]n, where the optional)B F2
-(base)2.612 E F0 .112(is a decimal number between 2 and 64)2.612 F .533
-(representing the arithmetic base, and)108 429.6 R F2(n)3.033 E F0 .533
-(is a number in that base.)3.033 F(If)5.534 E F2(base#)3.034 E F0 .534
-(is omitted, then base 10 is used.)3.034 F .916
-(The digits greater than 9 are represented by the lo)108 441.6 R .915
-(wercase letters, the uppercase letters, @, and _, in that)-.25 F(order)
-108 453.6 Q 5.67(.I)-.55 G(f)-5.67 E F2(base)3.17 E F0 .67
-(is less than or equal to 36, lo)3.17 F .671
-(wercase and uppercase letters may be used interchangeably to)-.25 F
-(represent numbers between 10 and 35.)108 465.6 Q .235(Operators are e)
-108 482.4 R -.25(va)-.25 G .235(luated in order of precedence.).25 F
-(Sub-e)5.234 E .234(xpressions in parentheses are e)-.15 F -.25(va)-.25
-G .234(luated \214rst and may).25 F -.15(ove)108 494.4 S
-(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
-/Times-Bold@0 SF(CONDITION)72 511.2 Q(AL EXPRESSIONS)-.219 E F0 .255
-(Conditional e)108 523.2 R .255(xpressions are used by the)-.15 F F1([[)
-2.755 E F0 .255(compound command and the)2.755 F F1(test)2.755 E F0(and)
-2.755 E F1([)2.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F
-.77(\214le attrib)108 535.2 R .77
+-.35 E .112(Otherwise, numbers tak)108 84 R 2.612(et)-.1 G .112
+(he form [)-2.612 F/F1 10/Times-Italic@0 SF(base#)A F0 .112
+(]n, where the optional)B F1(base)2.612 E F0 .113
+(is a decimal number between 2 and 64)2.612 F .534
+(representing the arithmetic base, and)108 96 R F1(n)3.034 E F0 .534
+(is a number in that base.)3.034 F(If)5.533 E F1(base#)3.033 E F0 .533
+(is omitted, then base 10 is used.)3.033 F .16(When specifying)108 108 R
+F1(n)2.66 E F0 2.66(,t)C .16
+(he digits greater< than 9 are represented by the lo)-2.66 F .16
+(wercase letters, the uppercase letters,)-.25 F .943
+(@, and _, in that order)108 120 R 5.943(.I)-.55 G(f)-5.943 E F1(base)
+3.443 E F0 .942(is less than or equal to 36, lo)3.443 F .942
+(wercase and uppercase letters may be used)-.25 F
+(interchangeably to represent numbers between 10 and 35.)108 132 Q .234
+(Operators are e)108 148.8 R -.25(va)-.25 G .234
+(luated in order of precedence.).25 F(Sub-e)5.234 E .234
+(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .235
+(luated \214rst and may).25 F -.15(ove)108 160.8 S
+(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F2 10.95
+/Times-Bold@0 SF(CONDITION)72 177.6 Q(AL EXPRESSIONS)-.219 E F0 .256
+(Conditional e)108 189.6 R .256(xpressions are used by the)-.15 F/F3 10
+/Times-Bold@0 SF([[)2.755 E F0 .255(compound command and the)2.755 F F3
+(test)2.755 E F0(and)2.755 E F3([)2.755 E F0 -.2(bu)2.755 G .255
+(iltin commands to test).2 F .77(\214le attrib)108 201.6 R .77
(utes and perform string and arithmetic comparisons.)-.2 F .77
-(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.04
-(unary or binary primaries.)108 547.2 R 1.04(If an)6.04 F(y)-.15 E F2
-(\214le)3.54 E F0(ar)3.54 E 1.041
-(gument to one of the primaries is of the form)-.18 F F2(/de)3.541 E
-(v/fd/n)-.15 E F0 3.541(,t)C 1.041(hen \214le)-3.541 F(descriptor)108
-559.2 Q F2(n)3.789 E F0 1.289(is check)3.789 F 3.789(ed. If)-.1 F(the)
-3.789 E F2(\214le)3.789 E F0(ar)3.789 E 1.289
-(gument to one of the primaries is one of)-.18 F F2(/de)3.789 E(v/stdin)
--.15 E F0(,)A F2(/de)3.788 E(v/stdout)-.15 E F0 3.788(,o)C(r)-3.788 E F2
-(/de)108 571.2 Q(v/stderr)-.15 E F0 2.5<2c8c>C
+(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.041
+(unary or binary primaries.)108 213.6 R 1.041(If an)6.041 F(y)-.15 E F1
+(\214le)3.541 E F0(ar)3.541 E 1.04
+(gument to one of the primaries is of the form)-.18 F F1(/de)3.54 E
+(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 225.6
+Q F1(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E
+F1(\214le)3.789 E F0(ar)3.789 E 1.289
+(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin)
+-.15 E F0(,)A F1(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F1
+(/de)108 237.6 Q(v/stderr)-.15 E F0 2.5<2c8c>C
(le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5
-(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .721
+(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .722
(Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 588 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 600 Q
-1.096(When used with)108 618 R F1([[)3.596 E F0 3.596(,t)C(he)-3.596 E
-F1(<)3.596 E F0(and)3.595 E F1(>)3.595 E F0 1.095(operators sort le)
-3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.095
-E F1(test)3.595 E F0(com-)3.595 E(mand sorts using ASCII ordering.)108
-630 Q F1<ad61>108 654 Q F2(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E
-F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1<ad62>108 666 Q F2
-(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is a block special \214le.).15 E F1<ad63>108 678 Q F2
-(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is a character special \214le.).15 E F1<ad64>108 690 Q F2
-(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is a directory).15 E(.)-.65 E F1<ad65>108 702 Q F2
-(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists.).15 E F1<ad66>108 714 Q F2(\214le)2.5 E F0 -.35(Tr)12.25 G
-(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E
-(gular \214le.)-.15 E(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E
-(28)185.955 E 0 Cg EP
-%%Page: 29 29
+108 254.4 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 266.4
+Q 1.095(When used with)108 284.4 R F3([[)3.595 E F0 3.595(,t)C(he)-3.595
+E F3(<)3.595 E F0(and)3.595 E F3(>)3.595 E F0 1.095(operators sort le)
+3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.096
+E F3(test)3.596 E F0(com-)3.596 E(mand sorts using ASCII ordering.)108
+296.4 Q F3<ad61>108 320.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35
+E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F3<ad62>108 332.4 Q F1
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a block special \214le.).15 E F3<ad63>108 344.4 Q F1
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a character special \214le.).15 E F3<ad64>108 356.4 Q
+F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F3<ad65>108 368.4 Q F1
+(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists.).15 E F3<ad66>108 380.4 Q F1(\214le)2.5 E F0 -.35(Tr)12.25 G
+(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a re).15 E
+(gular \214le.)-.15 E F3<ad67>108 392.4 Q F1(\214le)2.5 E F0 -.35(Tr)
+10.58 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is set-group-id.).15 E F3<ad68>108 404.4 Q F1(\214le)2.5 E F0
+-.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a symbolic link.).15 E F3<ad6b>108 416.4 Q F1(\214le)2.5 E
+F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.)
+-2.5 E F3<ad70>108 428.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35
+E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).)
+.15 E F3<ad72>108 440.4 Q F1(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E
+F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F3<ad73>108
+452.4 Q F1(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F1(\214le)2.5 E
+F0 -.15(ex)2.5 G(ists and has a size greater than zero.).15 E F3<ad74>
+108 464.4 Q F1(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E
+F1(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F3<ad75>108
+476.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E
+F0 -.15(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F3
+<ad77>108 488.4 Q F1(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.).15 E F3<ad78>108
+500.4 Q F1(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F1(\214le)2.5 E
+F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F3
+<ad47>108 512.4 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E
+(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E F3<ad4c>108 524.4 Q F1
+(\214le)2.5 E F0 -.35(Tr)8.91 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a symbolic link.).15 E F3<ad4e>108 536.4 Q F1(\214le)
+2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F3
+<ad4f>108 548.4 Q F1(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F1
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E
+(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F3<ad53>108 560.4 Q F1
+(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)
+2.5 G(ists and is a sock).15 E(et.)-.1 E F1(\214le1)108 572.4 Q F3
+(\255ef)2.5 E F1(\214le2)2.5 E F0 -.35(Tr)144 584.4 S(ue if).35 E F1
+(\214le1)2.5 E F0(and)2.5 E F1(\214le2)2.5 E F0(refer to the same de)2.5
+E(vice and inode numbers.)-.25 E F1(\214le1)108 596.4 Q F0<ad>2.5 E F3
+(nt)A F1(\214le2)2.5 E F0 -.35(Tr)144 608.4 S .039(ue if).35 F F1
+(\214le1)2.539 E F0 .039(is ne)2.539 F .039
+(wer \(according to modi\214cation date\) than)-.25 F F1(\214le2)2.539 E
+F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F1(\214le1)2.539 E F0 -.15
+(ex)2.539 G .039(ists and).15 F F1(\214le2)2.539 E F0 .038(does not.)
+2.538 F F1(\214le1)108 620.4 Q F0<ad>2.5 E F3(ot)A F1(\214le2)2.5 E F0
+-.35(Tr)144 632.4 S(ue if).35 E F1(\214le1)2.5 E F0(is older than)2.5 E
+F1(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F1(\214le2)2.5 E F0
+-.15(ex)2.5 G(ists and).15 E F1(\214le1)2.5 E F0(does not.)2.5 E F3
+<ad6f>108 644.4 Q F1(optname)2.5 E F0 -.35(Tr)144 656.4 S .262
+(ue if the shell option).35 F F1(optname)2.992 E F0 .262(is enabled.)
+2.942 F .262(See the list of options under the description of the)5.262
+F F3<ad6f>2.763 E F0(option to the)144 668.4 Q F3(set)2.5 E F0 -.2(bu)
+2.5 G(iltin belo).2 E -.65(w.)-.25 G F3<ad76>108 680.4 Q F1(varname)2.5
+E F0 -.35(Tr)144 692.4 S(ue if the shell v).35 E(ariable)-.25 E F1
+(varname)2.79 E F0(is set \(has been assigned a v)2.68 E(alue\).)-.25 E
+F3<ad52>108 704.4 Q F1(varname)2.5 E F0 -.35(Tr)144 716.4 S
+(ue if the shell v).35 E(ariable)-.25 E F1(varname)2.79 E F0
+(is set and is a name reference.)2.68 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(30)190.95 E 0 Cg EP
+%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF<ad67>108 84 Q/F2 10/Times-Italic@0 SF
-(\214le)2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is set-group-id.).15 E F1<ad68>108 96 Q F2(\214le)2.5 E
-F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F1<ad6b>108 108 Q F2(\214le)2.5 E F0
--.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G(it is set.)
--2.5 E F1<ad70>108 120 Q F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E
-F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a named pipe \(FIFO\).).15
-E F1<ad72>108 132 Q F2(\214le)2.5 E F0 -.35(Tr)11.14 G(ue if).35 E F2
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is readable.).15 E F1<ad73>108
-144 Q F2(\214le)2.5 E F0 -.35(Tr)11.69 G(ue if).35 E F2(\214le)2.5 E F0
--.15(ex)2.5 G(ists and has a size greater than zero.).15 E F1<ad74>108
-156 Q F2(fd)2.5 E F0 -.35(Tr)16.69 G(ue if \214le descriptor).35 E F2
-(fd)4.47 E F0(is open and refers to a terminal.)3.27 E F1<ad75>108 168 Q
-F2(\214le)2.5 E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15
-(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F1<ad77>108
-180 Q F2(\214le)2.5 E F0 -.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0
--.15(ex)2.5 G(ists and is writable.).15 E F1<ad78>108 192 Q F2(\214le)
-2.5 E F0 -.35(Tr)10.58 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1<ad47>108 204 Q F2
-(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)
-2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15
-(ve g)-.25 H(roup id.).15 E F1<ad4c>108 216 Q F2(\214le)2.5 E F0 -.35
-(Tr)8.91 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a symbolic link.).15 E F1<ad4e>108 228 Q F2(\214le)2.5 E F0
--.35(Tr)8.36 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F1
-<ad4f>108 240 Q F2(\214le)2.5 E F0 -.35(Tr)7.8 G(ue if).35 E F2(\214le)
-2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)
--.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F1<ad53>108 252 Q F2(\214le)2.5
-E F0 -.35(Tr)10.02 G(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a sock).15 E(et.)-.1 E F2(\214le1)108 264 Q F1(\255ef)2.5 E
-F2(\214le2)2.5 E F0 -.35(Tr)144 276 S(ue if).35 E F2(\214le1)2.5 E F0
-(and)2.5 E F2(\214le2)2.5 E F0(refer to the same de)2.5 E
-(vice and inode numbers.)-.25 E F2(\214le1)108 288 Q F0<ad>2.5 E F1(nt)A
-F2(\214le2)2.5 E F0 -.35(Tr)144 300 S .038(ue if).35 F F2(\214le1)2.538
-E F0 .039(is ne)2.539 F .039
-(wer \(according to modi\214cation date\) than)-.25 F F2(\214le2)2.539 E
-F0 2.539(,o)C 2.539(ri)-2.539 G(f)-2.539 E F2(\214le1)2.539 E F0 -.15
-(ex)2.539 G .039(ists and).15 F F2(\214le2)2.539 E F0 .039(does not.)
-2.539 F F2(\214le1)108 312 Q F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0
--.35(Tr)144 324 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2
-(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0
--.15(ex)2.5 G(ists and).15 E F2(\214le1)2.5 E F0(does not.)2.5 E F1
-<ad6f>108 336 Q F2(optname)2.5 E F0 -.35(Tr)144 348 S .263
-(ue if the shell option).35 F F2(optname)2.992 E F0 .262(is enabled.)
-2.942 F .262(See the list of options under the description of the)5.262
-F F1<ad6f>2.762 E F0(option to the)144 360 Q F1(set)2.5 E F0 -.2(bu)2.5
-G(iltin belo).2 E -.65(w.)-.25 G F1<ad76>108 372 Q F2(varname)2.5 E F0
--.35(Tr)144 384 S(ue if the shell v).35 E(ariable)-.25 E F2(varname)2.79
-E F0(is set \(has been assigned a v)2.68 E(alue\).)-.25 E F1<ad7a>108
-396 Q F2(string)2.5 E F0 -.35(Tr)144 408 S(ue if the length of).35 E F2
-(string)2.5 E F0(is zero.)2.5 E F2(string)108 420 Q F1<ad6e>108 432 Q F2
-(string)2.5 E F0 -.35(Tr)144 444 S(ue if the length of).35 E F2(string)
-2.84 E F0(is non-zero.)2.72 E F2(string1)108 460.8 Q F1(==)2.5 E F2
-(string2)2.5 E(string1)108 472.8 Q F1(=)2.5 E F2(string2)2.5 E F0 -.35
-(Tr)144 484.8 S(ue if the strings are equal.).35 E F1(=)5 E F0
-(should be used with the)2.5 E F1(test)2.5 E F0
-(command for POSIX conformance.)2.5 E F2(string1)108 501.6 Q F1(!=)2.5 E
-F2(string2)2.5 E F0 -.35(Tr)144 513.6 S
-(ue if the strings are not equal.).35 E F2(string1)108 530.4 Q F1(<)2.5
-E F2(string2)2.5 E F0 -.35(Tr)144 542.4 S(ue if).35 E F2(string1)2.5 E
+-.35 E/F1 10/Times-Bold@0 SF<ad7a>108 84 Q/F2 10/Times-Italic@0 SF
+(string)2.5 E F0 -.35(Tr)144 96 S(ue if the length of).35 E F2(string)
+2.5 E F0(is zero.)2.5 E F2(string)108 108 Q F1<ad6e>108 120 Q F2(string)
+2.5 E F0 -.35(Tr)144 132 S(ue if the length of).35 E F2(string)2.84 E F0
+(is non-zero.)2.72 E F2(string1)108 148.8 Q F1(==)2.5 E F2(string2)2.5 E
+(string1)108 160.8 Q F1(=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 172.8 S
+.862(ue if the strings are equal.).35 F F1(=)5.861 E F0 .861
+(should be used with the)3.361 F F1(test)3.361 E F0 .861
+(command for POSIX conformance.)3.361 F .446(When used with the)144
+184.8 R F1([[)2.946 E F0 .446
+(command, this performs pattern matching as described abo)2.946 F .747
+-.15(ve \()-.15 H F1(Compound).15 E(Commands)144 196.8 Q F0(\).)A F2
+(string1)108 213.6 Q F1(!=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 225.6 S
+(ue if the strings are not equal.).35 E F2(string1)108 242.4 Q F1(<)2.5
+E F2(string2)2.5 E F0 -.35(Tr)144 254.4 S(ue if).35 E F2(string1)2.5 E
F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E(xicographically)-.15
-E(.)-.65 E F2(string1)108 559.2 Q F1(>)2.5 E F2(string2)2.5 E F0 -.35
-(Tr)144 571.2 S(ue if).35 E F2(string1)2.5 E F0(sorts after)2.5 E F2
+E(.)-.65 E F2(string1)108 271.2 Q F1(>)2.5 E F2(string2)2.5 E F0 -.35
+(Tr)144 283.2 S(ue if).35 E F2(string1)2.5 E F0(sorts after)2.5 E F2
(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F2(ar)108.33
-588 Q(g1)-.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF
-(OP)144 600 Q F0 .385(is one of)2.634 F F1(\255eq)2.885 E F0(,)A F1
+300 Q(g1)-.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF
+(OP)144 312 Q F0 .385(is one of)2.635 F F1(\255eq)2.885 E F0(,)A F1
(\255ne)2.885 E F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A
F1(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385
(.T)C .385(hese arithmetic binary operators return true if)-5.385 F F2
-(ar)2.885 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, les\
-s than or equal to, greater than, or greater than or equal to)144 612 R
-F2(ar)144 624 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly)
+(ar)2.884 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, les\
+s than or equal to, greater than, or greater than or equal to)144 324 R
+F2(ar)144 336 Q(g2)-.37 E F0 2.5(,r)C(especti)-2.5 E -.15(ve)-.25 G(ly)
.15 E(.)-.65 E F2(Ar)6.01 E(g1)-.37 E F0(and)2.5 E F2(ar)2.83 E(g2)-.37
E F0(may be positi)2.52 E .3 -.15(ve o)-.25 H 2.5(rn).15 G -2.25 -.15
(eg a)-2.5 H(ti).15 E .3 -.15(ve i)-.25 H(nte).15 E(gers.)-.15 E/F4
-10.95/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 640.8 Q(ANSION)-.81 E F0
-.613(When a simple command is e)108 652.8 R -.15(xe)-.15 G .614
-(cuted, the shell performs the follo).15 F .614(wing e)-.25 F .614
+10.95/Times-Bold@0 SF(SIMPLE COMMAND EXP)72 352.8 Q(ANSION)-.81 E F0
+.614(When a simple command is e)108 364.8 R -.15(xe)-.15 G .614
+(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613
(xpansions, assignments, and redi-)-.15 F(rections, from left to right.)
-108 664.8 Q 26(1. The)108 681.6 R -.1(wo)4.349 G 1.849
-(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.848
+108 376.8 Q 26(1. The)108 393.6 R -.1(wo)4.348 G 1.848
+(rds that the parser has mark).1 F 1.848(ed as v)-.1 F 1.849
(ariable assignments \(those preceding the command)-.25 F
-(name\) and redirections are sa)144 693.6 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E 26(2. The)108 710.4 R -.1(wo)3.663 G 1.163
+(name\) and redirections are sa)144 405.6 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E 26(2. The)108 422.4 R -.1(wo)3.664 G 1.164
(rds that are not v).1 F 1.164
-(ariable assignments or redirections are e)-.25 F 3.664(xpanded. If)-.15
-F(an)3.664 E 3.664(yw)-.15 G 1.164(ords remain)-3.764 F .776(after e)144
-722.4 R .776(xpansion, the \214rst w)-.15 F .776(ord is tak)-.1 F .775
+(ariable assignments or redirections are e)-.25 F 3.663(xpanded. If)-.15
+F(an)3.663 E 3.663(yw)-.15 G 1.163(ords remain)-3.763 F .775(after e)144
+434.4 R .775(xpansion, the \214rst w)-.15 F .775(ord is tak)-.1 F .775
(en to be the name of the command and the remaining w)-.1 F(ords)-.1 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(29)185.955 E 0 Cg EP
-%%Page: 30 30
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(are the ar)144 84 Q(guments.)-.18 E 26(3. Redirections)108 100.8
-R(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E/F1
-9/Times-Bold@0 SF(REDIRECTION)2.5 E/F2 9/Times-Roman@0 SF(.)A F0 26
-(4. The)108 117.6 R(te)3.216 E .717(xt after the)-.15 F/F3 10
-/Times-Bold@0 SF(=)3.217 E F0 .717(in each v)3.217 F .717
-(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
-(xpansion, parameter e)-.15 F(xpansion,)-.15 E .34
-(command substitution, arithmetic e)144 129.6 R .339
+(are the ar)144 446.4 Q(guments.)-.18 E 26(3. Redirections)108 463.2 R
+(are performed as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15 E F3
+(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0 26(4. The)108 480 R(te)
+3.217 E .717(xt after the)-.15 F F1(=)3.217 E F0 .717(in each v)3.217 F
+.717(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
+(xpansion, parameter e)-.15 F(xpansion,)-.15 E .339
+(command substitution, arithmetic e)144 492 R .339
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
-(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 141.6 Q
-.332(If no command name results, the v)108 158.4 R .332
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 504 Q .332
+(If no command name results, the v)108 520.8 R .332
(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
-2.833(vironment. Otherwise,)-.4 F(the)2.833 E -.25(va)108 170.4 S .757
+2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 532.8 S .757
(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
(xe)-.15 G .757(cuted command and do not af).15 F .757
-(fect the current shell en)-.25 F(vi-)-.4 E 3.176(ronment. If)108 182.4
-R(an)3.176 E 3.176(yo)-.15 G 3.176(ft)-3.176 G .677
-(he assignments attempts to assign a v)-3.176 F .677
-(alue to a readonly v)-.25 F .677(ariable, an error occurs, and)-.25 F
-(the command e)108 194.4 Q(xits with a non-zero status.)-.15 E .15
-(If no command name results, redirections are performed, b)108 211.2 R
-.149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
-(vironment. A)-.4 F(redirection error causes the command to e)108 223.2
+(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 544.8
+R(an)3.177 E 3.177(yo)-.15 G 3.177(ft)-3.177 G .677
+(he assignments attempts to assign a v)-3.177 F .677
+(alue to a readonly v)-.25 F .676(ariable, an error occurs, and)-.25 F
+(the command e)108 556.8 Q(xits with a non-zero status.)-.15 E .149
+(If no command name results, redirections are performed, b)108 573.6 R
+.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65
+(vironment. A)-.4 F(redirection error causes the command to e)108 585.6
Q(xit with a non-zero status.)-.15 E 1.064
-(If there is a command name left after e)108 240 R 1.064(xpansion, e)
+(If there is a command name left after e)108 602.4 R 1.064(xpansion, e)
-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
-4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108 252
-R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069
-(xpansions contained a command substitution, the e)-.15 F .068
-(xit status of the command)-.15 F .466(is the e)108 264 R .466
-(xit status of the last command substitution performed.)-.15 F .467
-(If there were no command substitutions, the)5.466 F(command e)108 276 Q
-(xits with a status of zero.)-.15 E/F4 10.95/Times-Bold@0 SF
-(COMMAND EXECUTION)72 292.8 Q F0 .547
-(After a command has been split into w)108 304.8 R .546
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108
+614.4 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069
+(xpansions contained a command substitution, the e)-.15 F .069
+(xit status of the command)-.15 F .467(is the e)108 626.4 R .466
+(xit status of the last command substitution performed.)-.15 F .466
+(If there were no command substitutions, the)5.466 F(command e)108 638.4
+Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 655.2 Q F0
+.546(After a command has been split into w)108 667.2 R .547
(ords, if it results in a simple command and an optional list of ar)-.1
-F(gu-)-.18 E(ments, the follo)108 316.8 Q(wing actions are tak)-.25 E
+F(gu-)-.18 E(ments, the follo)108 679.2 Q(wing actions are tak)-.25 E
(en.)-.1 E .379(If the command name contains no slashes, the shell atte\
-mpts to locate it.)108 333.6 R .379(If there e)5.379 F .379
+mpts to locate it.)108 696 R .379(If there e)5.379 F .379
(xists a shell function by)-.15 F .246(that name, that function is in)
-108 345.6 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
-.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F1(FUNCTIONS)
-2.746 E F2(.)A F0 .246(If the name does not match a func-)4.746 F
-(tion, the shell searches for it in the list of shell b)108 357.6 Q 2.5
+108 708 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G .246
+(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)2.746
+E F5(.)A F0 .246(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 720 Q 2.5
(uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
-(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309
-(If the name is neither a shell function nor a b)108 374.4 R .31
-(uiltin, and contains no slashes,)-.2 F F3(bash)2.81 E F0 .31
-(searches each element of)2.81 F(the)108 386.4 Q F1 -.666(PA)3.163 G(TH)
--.189 E F0 .662(for a directory containing an e)2.913 F -.15(xe)-.15 G
-.662(cutable \214le by that name.).15 F F3(Bash)5.662 E F0 .662
-(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108
-398.4 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F3(hash)4.415 E
-F0(under)4.415 E F1 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS)
--.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E .72
-(search of the directories in)108 410.4 R F1 -.666(PA)3.22 G(TH)-.189 E
-F0 .719
-(is performed only if the command is not found in the hash table.)2.97 F
-.719(If the)5.719 F .956(search is unsuccessful, the shell searches for\
- a de\214ned shell function named)108 422.4 R F3(command_not_f)3.456 E
-(ound_han-)-.25 E(dle)108 434.4 Q F0 5.278(.I)C 2.778(ft)-5.278 G .278
-(hat function e)-2.778 F .278(xists, it is in)-.15 F -.2(vo)-.4 G -.1
-(ke).2 G 2.778(dw).1 G .277
-(ith the original command and the original command')-2.778 F 2.777(sa)
--.55 G -.18(rg)-2.777 G(uments).18 E .775(as its ar)108 446.4 R .775
+(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(GNU Bash 4.3)72 768
+Q(2014 February 2)141.79 E(31)190.95 E 0 Cg EP
+%%Page: 32 32
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .31(If the name is neither a shell function nor a b)108 84 R .309
+(uiltin, and contains no slashes,)-.2 F/F1 10/Times-Bold@0 SF(bash)2.809
+E F0 .309(searches each element of)2.809 F(the)108 96 Q/F2 9
+/Times-Bold@0 SF -.666(PA)3.162 G(TH)-.189 E F0 .662
+(for a directory containing an e)2.912 F -.15(xe)-.15 G .662
+(cutable \214le by that name.).15 F F1(Bash)5.662 E F0 .663
+(uses a hash table to remember)3.162 F 1.915(the full pathnames of e)108
+108 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F1(hash)4.415 E
+F0(under)4.415 E F2 1.915(SHELL B)4.415 F(UIL)-.09 E 1.914(TIN COMMANDS)
+-.828 F F0(belo)4.164 E 4.414(w\). A)-.25 F(full)4.414 E .719
+(search of the directories in)108 120 R F2 -.666(PA)3.219 G(TH)-.189 E
+F0 .72(is performed only if the command is not found in the hash table.)
+2.969 F .72(If the)5.72 F .956(search is unsuccessful, the shell search\
+es for a de\214ned shell function named)108 132 R F1(command_not_f)3.455
+E(ound_han-)-.25 E(dle)108 144 Q F0 5.277(.I)C 2.777(ft)-5.277 G .277
+(hat function e)-2.777 F .277(xists, it is in)-.15 F -.2(vo)-.4 G -.1
+(ke).2 G 2.777(dw).1 G .278
+(ith the original command and the original command')-2.777 F 2.778(sa)
+-.55 G -.18(rg)-2.778 G(uments).18 E .776(as its ar)108 156 R .776
(guments, and the function')-.18 F 3.275(se)-.55 G .775
(xit status becomes the e)-3.425 F .775(xit status of the shell.)-.15 F
-.776(If that function is not)5.776 F
-(de\214ned, the shell prints an error message and returns an e)108 458.4
-Q(xit status of 127.)-.15 E 1.089(If the search is successful, or if th\
-e command name contains one or more slashes, the shell e)108 475.2 R
--.15(xe)-.15 G 1.089(cutes the).15 F .197(named program in a separate e)
-108 487.2 R -.15(xe)-.15 G .197(cution en).15 F 2.698(vironment. Ar)-.4
-F .198(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198
-(n, and the remain-).15 F(ing ar)108 499.2 Q
+.775(If that function is not)5.775 F
+(de\214ned, the shell prints an error message and returns an e)108 168 Q
+(xit status of 127.)-.15 E 1.089(If the search is successful, or if the\
+ command name contains one or more slashes, the shell e)108 184.8 R -.15
+(xe)-.15 G 1.09(cutes the).15 F .198(named program in a separate e)108
+196.8 R -.15(xe)-.15 G .198(cution en).15 F 2.698(vironment. Ar)-.4 F
+.198(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .197
+(n, and the remain-).15 F(ing ar)108 208.8 Q
(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
-(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 516 R -.15
-(xe)-.15 G 1.809(cution f).15 F 1.809
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.809(If this e)108 225.6 R
+-.15(xe)-.15 G 1.809(cution f).15 F 1.809
(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.809
(cutable format, and the \214le is not a directory).15 F 4.309(,i)-.65 G
-4.309(ti)-4.309 G(s)-4.309 E .677(assumed to be a)108 528 R/F5 10
-/Times-Italic@0 SF .678(shell script)3.177 F F0 3.178(,a\214)C .678
+4.309(ti)-4.309 G(s)-4.309 E .678(assumed to be a)108 237.6 R/F3 10
+/Times-Italic@0 SF .678(shell script)3.178 F F0 3.178(,a\214)C .678
(le containing shell commands.)-3.178 F 3.178(As)5.678 G .678
-(ubshell is spa)-3.178 F .678(wned to e)-.15 F -.15(xe)-.15 G .678
-(cute it.).15 F(This)5.678 E .33
-(subshell reinitializes itself, so that the ef)108 540 R .33
-(fect is as if a ne)-.25 F 2.829(ws)-.25 G .329(hell had been in)-2.829
-F -.2(vo)-.4 G -.1(ke).2 G 2.829(dt).1 G 2.829(oh)-2.829 G .329
-(andle the script, with)-2.829 F 1.219(the e)108 552 R 1.219
+(ubshell is spa)-3.178 F .677(wned to e)-.15 F -.15(xe)-.15 G .677
+(cute it.).15 F(This)5.677 E .329
+(subshell reinitializes itself, so that the ef)108 249.6 R .329
+(fect is as if a ne)-.25 F 2.83(ws)-.25 G .33(hell had been in)-2.83 F
+-.2(vo)-.4 G -.1(ke).2 G 2.83(dt).1 G 2.83(oh)-2.83 G .33
+(andle the script, with)-2.83 F 1.219(the e)108 261.6 R 1.219
(xception that the locations of commands remembered by the parent \(see)
--.15 F F3(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F1
-(SHELL)3.719 E -.09(BU)108 564 S(IL).09 E(TIN COMMANDS)-.828 E F2(\))A
-F0(are retained by the child.)2.25 E .348(If the program is a \214le be)
-108 580.8 R .348(ginning with)-.15 F F3(#!)2.848 E F0 2.848(,t)C .347(h\
-e remainder of the \214rst line speci\214es an interpreter for the pro-)
--2.848 F 3.178(gram. The)108 592.8 R .678(shell e)3.178 F -.15(xe)-.15 G
-.678(cutes the speci\214ed interpreter on operating systems that do not\
- handle this e).15 F -.15(xe)-.15 G(cutable).15 E 1.193(format themselv)
-108 604.8 R 3.693(es. The)-.15 F(ar)3.693 E 1.193
-(guments to the interpreter consist of a single optional ar)-.18 F 1.192
-(gument follo)-.18 F 1.192(wing the)-.25 F 1.13
-(interpreter name on the \214rst line of the program, follo)108 616.8 R
-1.131(wed by the name of the program, follo)-.25 F 1.131(wed by the)-.25
-F(command ar)108 628.8 Q(guments, if an)-.18 E -.65(y.)-.15 G F4
-(COMMAND EXECUTION ENVIR)72 645.6 Q(ONMENT)-.329 E F0(The shell has an)
-108 657.6 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0
-2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E 32.5<836f>108
-674.4 S 1.406(pen \214les inherited by the shell at in)-32.5 F -.2(vo)
--.4 G 1.405(cation, as modi\214ed by redirections supplied to the).2 F
-F3(exec)3.905 E F0 -.2(bu)144 686.4 S(iltin).2 E 32.5<8374>108 703.2 S
-(he current w)-32.5 E(orking directory as set by)-.1 E F3(cd)2.5 E F0(,)
-A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0 2.5(,o)C 2.5(ri)
--2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(30)185.955 E 0 Cg EP
-%%Page: 31 31
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 32.5<8374>108 84 S(he \214le creation mode mask as set by)-32.5 E
-/F1 10/Times-Bold@0 SF(umask)2.5 E F0(or inherited from the shell')2.5 E
-2.5(sp)-.55 G(arent)-2.5 E 32.5<8363>108 100.8 S(urrent traps set by)
--32.5 E F1(trap)2.5 E F0 32.5<8373>108 117.6 S .256
-(hell parameters that are set by v)-32.5 F .256
-(ariable assignment or with)-.25 F F1(set)2.756 E F0 .257
-(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E
-(in the en)144 129.6 Q(vironment)-.4 E 32.5<8373>108 146.4 S
+-.15 F F1(hash)3.719 E F0(belo)3.719 E 3.719(wu)-.25 G(nder)-3.719 E F2
+(SHELL)3.719 E -.09(BU)108 273.6 S(IL).09 E(TIN COMMANDS)-.828 E/F4 9
+/Times-Roman@0 SF(\))A F0(are retained by the child.)2.25 E .347
+(If the program is a \214le be)108 290.4 R .347(ginning with)-.15 F F1
+(#!)2.847 E F0 2.847(,t)C .348(he remainder of the \214rst line speci\
+\214es an interpreter for the pro-)-2.847 F 3.178(gram. The)108 302.4 R
+.678(shell e)3.178 F -.15(xe)-.15 G .678(cutes the speci\214ed interpre\
+ter on operating systems that do not handle this e).15 F -.15(xe)-.15 G
+(cutable).15 E 1.192(format themselv)108 314.4 R 3.692(es. The)-.15 F
+(ar)3.693 E 1.193
+(guments to the interpreter consist of a single optional ar)-.18 F 1.193
+(gument follo)-.18 F 1.193(wing the)-.25 F 1.131
+(interpreter name on the \214rst line of the program, follo)108 326.4 R
+1.13(wed by the name of the program, follo)-.25 F 1.13(wed by the)-.25 F
+(command ar)108 338.4 Q(guments, if an)-.18 E -.65(y.)-.15 G/F5 10.95
+/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 355.2 Q(ONMENT)-.329 E F0
+(The shell has an)108 367.2 Q F3 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E
+(onment)-.45 E F0 2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25
+E 32.5<836f>108 384 S 1.405(pen \214les inherited by the shell at in)
+-32.5 F -.2(vo)-.4 G 1.406
+(cation, as modi\214ed by redirections supplied to the).2 F F1(exec)
+3.906 E F0 -.2(bu)144 396 S(iltin).2 E 32.5<8374>108 412.8 S
+(he current w)-32.5 E(orking directory as set by)-.1 E F1(cd)2.5 E F0(,)
+A F1(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F1(popd)2.5 E F0 2.5(,o)C 2.5(ri)
+-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E 32.5
+<8374>108 429.6 S(he \214le creation mode mask as set by)-32.5 E F1
+(umask)2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)
+-2.5 E 32.5<8363>108 446.4 S(urrent traps set by)-32.5 E F1(trap)2.5 E
+F0 32.5<8373>108 463.2 S .257(hell parameters that are set by v)-32.5 F
+.256(ariable assignment or with)-.25 F F1(set)2.756 E F0 .256
+(or inherited from the shell')2.756 F 2.756(sp)-.55 G(arent)-2.756 E
+(in the en)144 475.2 Q(vironment)-.4 E 32.5<8373>108 492 S
(hell functions de\214ned during e)-32.5 E -.15(xe)-.15 G
(cution or inherited from the shell').15 E 2.5(sp)-.55 G
-(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 163.2 S
+(arent in the en)-2.5 E(vironment)-.4 E 32.5<836f>108 508.8 S
(ptions enabled at in)-32.5 E -.2(vo)-.4 G(cation \(either by def).2 E
(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F1(set)2.5 E
-F0 32.5<836f>108 180 S(ptions enabled by)-32.5 E F1(shopt)2.5 E F0 32.5
-<8373>108 196.8 S(hell aliases de\214ned with)-32.5 E F1(alias)2.5 E F0
-32.5<8376>108 213.6 S
+F0 32.5<836f>108 525.6 S(ptions enabled by)-32.5 E F1(shopt)2.5 E F0
+32.5<8373>108 542.4 S(hell aliases de\214ned with)-32.5 E F1(alias)2.5 E
+F0 32.5<8376>108 559.2 S
(arious process IDs, including those of background jobs, the v)-32.75 E
(alue of)-.25 E F1($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
-/F2 9/Times-Bold@0 SF(PPID)2.5 E F0 .427
-(When a simple command other than a b)108 230.4 R .426
-(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426
-(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas)
--2.926 G(eparate)-2.926 E -.15(exe)108 242.4 S .133(cution en).15 F .133
+F2(PPID)2.5 E F0 .426(When a simple command other than a b)108 576 R
+.427(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427
+(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas)
+-2.927 G(eparate)-2.927 E -.15(exe)108 588 S .134(cution en).15 F .134
(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
-.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
-(the shell.)108 254.4 Q 32.5<8374>108 271.2 S 1.056(he shell')-32.5 F
-3.556(so)-.55 G 1.056(pen \214les, plus an)-3.556 F 3.556(ym)-.15 G
+.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F
+(the shell.)108 600 Q 32.5<8374>108 616.8 S 1.055(he shell')-32.5 F
+3.555(so)-.55 G 1.055(pen \214les, plus an)-3.555 F 3.556(ym)-.15 G
1.056
(odi\214cations and additions speci\214ed by redirections to the com-)
--3.556 F(mand)144 283.2 Q 32.5<8374>108 300 S(he current w)-32.5 E
-(orking directory)-.1 E 32.5<8374>108 316.8 S
-(he \214le creation mode mask)-32.5 E 32.5<8373>108 333.6 S .856(hell v)
+-3.556 F(mand)144 628.8 Q 32.5<8374>108 645.6 S(he current w)-32.5 E
+(orking directory)-.1 E 32.5<8374>108 662.4 S
+(he \214le creation mode mask)-32.5 E 32.5<8373>108 679.2 S .857(hell v)
-32.5 F .857(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857
(xport, along with v)-.15 F .857(ariables e)-.25 F .857
-(xported for the command,)-.15 F(passed in the en)144 345.6 Q(vironment)
--.4 E 32.5<8374>108 362.4 S .307
-(raps caught by the shell are reset to the v)-32.5 F .306
-(alues inherited from the shell')-.25 F 2.806(sp)-.55 G .306
-(arent, and traps ignored)-2.806 F(by the shell are ignored)144 374.4 Q
-2.5(Ac)108 391.2 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
-2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
+(xported for the command,)-.15 F(passed in the en)144 691.2 Q(vironment)
+-.4 E 32.5<8374>108 708 S .306
+(raps caught by the shell are reset to the v)-32.5 F .307
+(alues inherited from the shell')-.25 F 2.807(sp)-.55 G .307
+(arent, and traps ignored)-2.807 F(by the shell are ignored)144 720 Q
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(32)190.95 E 0 Cg EP
+%%Page: 33 33
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 2.5(Ac)108 84 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di)
+.1 G 2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
(vironment.)-.4 E .577(Command substitution, commands grouped with pare\
-ntheses, and asynchronous commands are in)108 408 R -.2(vo)-.4 G -.1(ke)
-.2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 420 S .245(ubshell en)-2.745
-F .245(vironment that is a duplicate of the shell en)-.4 F .244
-(vironment, e)-.4 F .244(xcept that traps caught by the shell are)-.15 F
-.358(reset to the v)108 432 R .358
+ntheses, and asynchronous commands are in)108 100.8 R -.2(vo)-.4 G -.1
+(ke).2 G 3.077(di).1 G(n)-3.077 E 2.744(as)108 112.8 S .244(ubshell en)
+-2.744 F .244(vironment that is a duplicate of the shell en)-.4 F .245
+(vironment, e)-.4 F .245(xcept that traps caught by the shell are)-.15 F
+.359(reset to the v)108 124.8 R .358
(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
-G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo)
--.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 444 R
--.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.356
-(vironment. Changes)-.4 F .856(made to the subshell en)3.356 F(viron-)
--.4 E(ment cannot af)108 456 Q(fect the shell')-.25 E 2.5(se)-.55 G -.15
-(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.376(Subshells spa)108
-472.8 R 1.376(wned to e)-.15 F -.15(xe)-.15 G 1.377
+G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
+-.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 136.8
+R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357
+(vironment. Changes)-.4 F .857(made to the subshell en)3.357 F(viron-)
+-.4 E(ment cannot af)108 148.8 Q(fect the shell')-.25 E 2.5(se)-.55 G
+-.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.377(Subshells spa)108
+165.6 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377
(cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F
-F1<ad65>3.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When)
-108 484.8 R(not in)2.5 E/F3 10/Times-Italic@0 SF(posix)2.5 E F0(mode,)
-2.5 E F1(bash)2.5 E F0(clears the)2.5 E F1<ad65>2.5 E F0
-(option in such subshells.)2.5 E .405(If a command is follo)108 501.6 R
-.405(wed by a)-.25 F F1(&)2.905 E F0 .404(and job control is not acti)
-2.905 F -.15(ve)-.25 G 2.904(,t).15 G .404(he def)-2.904 F .404
-(ault standard input for the command)-.1 F .197(is the empty \214le)108
-513.6 R F3(/de)2.697 E(v/null)-.15 E F0 5.197(.O)C .197
-(therwise, the in)-5.197 F -.2(vo)-.4 G -.1(ke).2 G 2.697(dc).1 G .198
-(ommand inherits the \214le descriptors of the calling shell)-2.697 F
-(as modi\214ed by redirections.)108 525.6 Q/F4 10.95/Times-Bold@0 SF
-(ENVIR)72 542.4 Q(ONMENT)-.329 E F0 2.354(When a program is in)108 554.4
-R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G 4.853(ti)-4.853 G 4.853(sg)
--4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na).25 G 4.853(na)-4.853 G 2.353
-(rray of strings called the)-4.853 F F3(en)4.853 E(vir)-.4 E(onment)-.45
-E F0 7.353(.T).68 G 2.353(his is a list of)-7.353 F F3(name)108 566.4 Q
-F0<ad>A F3(value)A F0(pairs, of the form)2.5 E F3(name)2.5 E F0(=)A F3
-(value)A F0(.).18 E 1.485(The shell pro)108 583.2 R 1.485(vides se)-.15
-F -.15(ve)-.25 G 1.485(ral w).15 F 1.485(ays to manipulate the en)-.1 F
-3.985(vironment. On)-.4 F(in)3.985 E -.2(vo)-.4 G 1.486
-(cation, the shell scans its o).2 F(wn)-.25 E(en)108 595.2 Q .144(viron\
-ment and creates a parameter for each name found, automatically marking\
- it for)-.4 F F3 -.2(ex)2.643 G(port).2 E F0 .143(to child pro-)3.323 F
-2.703(cesses. Ex)108 607.2 R .203(ecuted commands inherit the en)-.15 F
-2.703(vironment. The)-.4 F F1(export)2.703 E F0(and)2.703 E F1(declar)
-2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.704
-(wp)-.25 G(aram-)-2.704 E 1.153
-(eters and functions to be added to and deleted from the en)108 619.2 R
-3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.153
-(alue of a parameter in the)-.25 F(en)108 631.2 Q .64
+/F1 10/Times-Bold@0 SF<ad65>3.876 E F0 1.376(option from the parent)
+3.876 F 2.5(shell. When)108 177.6 R(not in)2.5 E/F2 10/Times-Italic@0 SF
+(posix)2.5 E F0(mode,)2.5 E F1(bash)2.5 E F0(clears the)2.5 E F1<ad65>
+2.5 E F0(option in such subshells.)2.5 E .404(If a command is follo)108
+194.4 R .404(wed by a)-.25 F F1(&)2.904 E F0 .405
+(and job control is not acti)2.904 F -.15(ve)-.25 G 2.905(,t).15 G .405
+(he def)-2.905 F .405(ault standard input for the command)-.1 F .198
+(is the empty \214le)108 206.4 R F2(/de)2.698 E(v/null)-.15 E F0 5.198
+(.O)C .198(therwise, the in)-5.198 F -.2(vo)-.4 G -.1(ke).2 G 2.698(dc)
+.1 G .197(ommand inherits the \214le descriptors of the calling shell)
+-2.698 F(as modi\214ed by redirections.)108 218.4 Q/F3 10.95
+/Times-Bold@0 SF(ENVIR)72 235.2 Q(ONMENT)-.329 E F0 2.353
+(When a program is in)108 247.2 R -.2(vo)-.4 G -.1(ke).2 G 4.853(di).1 G
+4.853(ti)-4.853 G 4.853(sg)-4.853 G -2.15 -.25(iv e)-4.853 H 4.853(na)
+.25 G 4.853(na)-4.853 G 2.353(rray of strings called the)-4.853 F F2(en)
+4.853 E(vir)-.4 E(onment)-.45 E F0 7.353(.T).68 G 2.354
+(his is a list of)-7.353 F F2(name)108 259.2 Q F0<ad>A F2(value)A F0
+(pairs, of the form)2.5 E F2(name)2.5 E F0(=)A F2(value)A F0(.).18 E
+1.486(The shell pro)108 276 R 1.486(vides se)-.15 F -.15(ve)-.25 G 1.486
+(ral w).15 F 1.485(ays to manipulate the en)-.1 F 3.985(vironment. On)
+-.4 F(in)3.985 E -.2(vo)-.4 G 1.485(cation, the shell scans its o).2 F
+(wn)-.25 E(en)108 288 Q .144(vironment and creates a parameter for each\
+ name found, automatically marking it for)-.4 F F2 -.2(ex)2.644 G(port)
+.2 E F0 .144(to child pro-)3.324 F 2.704(cesses. Ex)108 300 R .203
+(ecuted commands inherit the en)-.15 F 2.703(vironment. The)-.4 F F1
+(export)2.703 E F0(and)2.703 E F1(declar)2.703 E 2.703<65ad>-.18 G(x)
+-2.703 E F0 .203(commands allo)2.703 F 2.703(wp)-.25 G(aram-)-2.703 E
+1.153(eters and functions to be added to and deleted from the en)108 312
+R 3.653(vironment. If)-.4 F 1.153(the v)3.653 F 1.154
+(alue of a parameter in the)-.25 F(en)108 324 Q .64
(vironment is modi\214ed, the ne)-.4 F 3.14(wv)-.25 G .64
(alue becomes part of the en)-3.39 F .64(vironment, replacing the old.)
--.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 643.2
-R 3.08(ye)-.15 G -.15(xe)-3.23 G .58
-(cuted command consists of the shell').15 F 3.08(si)-.55 G .58
-(nitial en)-3.08 F .58(vironment, whose v)-.4 F .58(alues may be)-.25 F
-.3(modi\214ed in the shell, less an)108 655.2 R 2.8(yp)-.15 G .3
-(airs remo)-2.8 F -.15(ve)-.15 G 2.8(db).15 G 2.801(yt)-2.8 G(he)-2.801
-E F1(unset)2.801 E F0 .301(command, plus an)2.801 F 2.801(ya)-.15 G .301
-(dditions via the)-2.801 F F1(export)2.801 E F0(and)2.801 E F1(declar)
-108 667.2 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E .563(The en)108
-684 R .563(vironment for an)-.4 F(y)-.15 E F3 .563(simple command)3.403
-F F0 .562
+-.4 F .64(The en)5.64 F(viron-)-.4 E .58(ment inherited by an)108 336 R
+3.08(ye)-.15 G -.15(xe)-3.23 G .58(cuted command consists of the shell')
+.15 F 3.08(si)-.55 G .58(nitial en)-3.08 F .58(vironment, whose v)-.4 F
+.58(alues may be)-.25 F .301(modi\214ed in the shell, less an)108 348 R
+2.801(yp)-.15 G .301(airs remo)-2.801 F -.15(ve)-.15 G 2.801(db).15 G
+2.801(yt)-2.801 G(he)-2.801 E F1(unset)2.801 E F0 .3(command, plus an)
+2.8 F 2.8(ya)-.15 G .3(dditions via the)-2.8 F F1(export)2.8 E F0(and)
+2.8 E F1(declar)108 360 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)2.5 E
+.562(The en)108 376.8 R .562(vironment for an)-.4 F(y)-.15 E F2 .562
+(simple command)3.402 F F0 .563
(or function may be augmented temporarily by pre\214xing it with)3.833 F
-.202(parameter assignments, as described abo)108 696 R .502 -.15(ve i)
--.15 H(n).15 E F2 -.666(PA)2.702 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF
-(.)A F0 .202(These assignment statements af)4.702 F .203(fect only the)
--.25 F(en)108 708 Q(vironment seen by that command.)-.4 E .81(If the)108
-724.8 R F1<ad6b>3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31
-E F0 -.2(bu)3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F3
-(all)3.64 E F0 .81(parameter assignments are placed in)3.82 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(31)185.955 E 0 Cg EP
-%%Page: 32 32
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(the en)108 84 Q
+.203(parameter assignments, as described abo)108 388.8 R .502 -.15(ve i)
+-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5
+9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F
+.202(fect only the)-.25 F(en)108 400.8 Q
+(vironment seen by that command.)-.4 E .81(If the)108 417.6 R F1<ad6b>
+3.31 E F0 .81(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)
+3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0
+.81(parameter assignments are placed in)3.82 F(the en)108 429.6 Q
(vironment for a command, not just those that precede the command name.)
--.4 E(When)108 100.8 Q/F1 10/Times-Bold@0 SF(bash)3.396 E F0(in)3.396 E
--.2(vo)-.4 G -.1(ke).2 G 3.396(sa).1 G 3.397(ne)-3.396 G .897
-(xternal command, the v)-3.547 F(ariable)-.25 E F1(_)3.397 E F0 .897
-(is set to the full \214le name of the command and)3.397 F
-(passed to that command in its en)108 112.8 Q(vironment.)-.4 E/F2 10.95
-/Times-Bold@0 SF(EXIT ST)72 129.6 Q -1.04(AT)-.986 G(US)1.04 E F0 .151
-(The e)108 141.6 R .151(xit status of an e)-.15 F -.15(xe)-.15 G .151
-(cuted command is the v).15 F .15(alue returned by the)-.25 F/F3 10
-/Times-Italic@0 SF(waitpid)2.65 E F0 .15(system call or equi)2.65 F -.25
-(va)-.25 G .15(lent func-).25 F 2.847(tion. Exit)108 153.6 R .347
-(statuses f)2.847 F .347(all between 0 and 255, though, as e)-.1 F .347
-(xplained belo)-.15 F 1.647 -.65(w, t)-.25 H .347(he shell may use v).65
-F .348(alues abo)-.25 F .648 -.15(ve 1)-.15 H(25).15 E(specially)108
-165.6 Q 5.674(.E)-.65 G .674(xit statuses from shell b)-5.674 F .673
+-.4 E(When)108 446.4 Q F1(bash)3.586 E F0(in)3.586 E -.2(vo)-.4 G -.1
+(ke).2 G 3.586(sa).1 G 3.586(ne)-3.586 G 1.086(xternal command, the v)
+-3.736 F(ariable)-.25 E F1(_)3.586 E F0 1.085
+(is set to the full \214lename of the command and)3.586 F
+(passed to that command in its en)108 458.4 Q(vironment.)-.4 E F3
+(EXIT ST)72 475.2 Q -1.04(AT)-.986 G(US)1.04 E F0 .15(The e)108 487.2 R
+.15(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v)
+.15 F .151(alue returned by the)-.25 F F2(waitpid)2.651 E F0 .151
+(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848
+(tion. Exit)108 499.2 R .348(statuses f)2.848 F .347
+(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25
+F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 511.2 Q 5.673(.E)-.65 G
+.673(xit statuses from shell b)-5.673 F .673
(uiltins and compound commands are also limited to this range. Under)-.2
-F(certain circumstances, the shell will use special v)108 177.6 Q
+F(certain circumstances, the shell will use special v)108 523.2 Q
(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15(Fo)108
-194.4 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G .873
-(urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F .873
-(xit status has succeeded.)-.15 F .873(An e)5.873 F .873(xit status of)
--.15 F .049(zero indicates success.)108 206.4 R 2.549(An)5.049 G .049
-(on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549
-(ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f)
--2.549 F .048(atal sig-)-.1 F(nal)108 218.4 Q F3(N)2.5 E F0(,)A F1(bash)
-2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F3(N)A F0(as the e)2.5 E
-(xit status.)-.15 E .404
-(If a command is not found, the child process created to e)108 235.2 R
--.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405
-(If a command is)5.405 F(found b)108 247.2 Q(ut is not e)-.2 E -.15(xe)
--.15 G(cutable, the return status is 126.).15 E(If a command f)108 264 Q
-(ails because of an error during e)-.1 E(xpansion or redirection, the e)
--.15 E(xit status is greater than zero.)-.15 E .081(Shell b)108 280.8 R
-.081(uiltin commands return a status of 0 \()-.2 F F3(true)A F0 2.581
-(\)i)C 2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F3
-(false)A F0 2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08
-(rror occurs while)-2.58 F(the)108 292.8 Q 2.5(ye)-.15 G -.15(xe)-2.65 G
-2.5(cute. All).15 F -.2(bu)2.5 G(iltins return an e).2 E
-(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 309.6 Q
-F0 .201(itself returns the e)2.701 F .202
-(xit status of the last command e)-.15 F -.15(xe)-.15 G .202
-(cuted, unless a syntax error occurs, in which case).15 F(it e)108 321.6
+540 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G .873
+(urposes, a command which e)-3.373 F .873(xits with a zero e)-.15 F .873
+(xit status has succeeded.)-.15 F .872(An e)5.872 F .872(xit status of)
+-.15 F .048(zero indicates success.)108 552 R 2.548(An)5.048 G .049
+(on-zero e)-2.548 F .049(xit status indicates f)-.15 F 2.549
+(ailure. When)-.1 F 2.549(ac)2.549 G .049(ommand terminates on a f)
+-2.549 F .049(atal sig-)-.1 F(nal)108 564 Q F2(N)2.5 E F0(,)A F1(bash)
+2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E
+(xit status.)-.15 E .405
+(If a command is not found, the child process created to e)108 580.8 R
+-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .404
+(If a command is)5.404 F(found b)108 592.8 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 609.6
+Q(ails because of an error during e)-.1 E
+(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
+-.15 E .08(Shell b)108 626.4 R .08
+(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581(\)i)C
+2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F2(false)A F0
+2.581(\)i)C 2.581(fa)-2.581 G 2.581(ne)-2.581 G .081(rror occurs while)
+-2.581 F(the)108 638.4 Q 2.5(ye)-.15 G -.15(xe)-2.65 G 2.5(cute. All).15
+F -.2(bu)2.5 G(iltins return an e).2 E
+(xit status of 2 to indicate incorrect usage.)-.15 E F1(Bash)108 655.2 Q
+F0 .202(itself returns the e)2.702 F .202
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .201
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 667.2
Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1
-(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F2
-(SIGN)72 338.4 Q(ALS)-.219 E F0(When)108 350.4 Q F1(bash)3.183 E F0 .683
-(is interacti)3.183 F -.15(ve)-.25 G 3.183(,i).15 G 3.183(nt)-3.183 G
-.683(he absence of an)-3.183 F 3.183(yt)-.15 G .683(raps, it ignores)
--3.183 F/F4 9/Times-Bold@0 SF(SIGTERM)3.183 E F0 .682(\(so that)2.933 F
-F1 .682(kill 0)3.182 F F0 .682(does not kill an)3.182 F(interacti)108
-362.4 Q .757 -.15(ve s)-.25 H .457(hell\), and).15 F F4(SIGINT)2.957 E
-F0 .458(is caught and handled \(so that the)2.707 F F1(wait)2.958 E F0
--.2(bu)2.958 G .458(iltin is interruptible\).).2 F .458(In all cases,)
-5.458 F F1(bash)108 374.4 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E/F5
-9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E(fect,)-.25 E F1
-(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)
--.162 E F5(,)A F0(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 391.2
-Q 1.065(uiltin commands run by)-.2 F F1(bash)3.565 E F0(ha)3.565 E 1.365
--.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.064
-(alues inherited by the shell from its)-.25 F 3.247(parent. When)108
-403.2 R .747(job control is not in ef)3.247 F .747
-(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.248 E F0(and)
-2.998 E F4(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653
-(tion to these inherited handlers.)108 415.2 R .653
-(Commands run as a result of command substitution ignore the k)5.653 F
--.15(ey)-.1 G(board-).15 E(generated job control signals)108 427.2 Q F4
-(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4
-(SIGTSTP)2.5 E F5(.)A F0 2.045(The shell e)108 444 R 2.045(xits by def)
--.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E F5(.)A F0
-2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346 -.15
-(ve s)-.25 H 2.046(hell resends the).15 F F4(SIGHUP)108 456 Q F0 1.005
-(to all jobs, running or stopped.)3.255 F 1.004(Stopped jobs are sent)
-6.005 F F4(SIGCONT)3.504 E F0 1.004(to ensure that the)3.254 F 3.504(yr)
--.15 G(ecei)-3.504 E 1.304 -.15(ve t)-.25 H(he).15 E F4(SIGHUP)108 468 Q
-F5(.)A F0 2.529 -.8(To p)5.429 H(re).8 E -.15(ve)-.25 G .93(nt the shel\
+(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F3
+(SIGN)72 684 Q(ALS)-.219 E F0(When)108 696 Q F1(bash)3.182 E F0 .682
+(is interacti)3.182 F -.15(ve)-.25 G 3.182(,i).15 G 3.182(nt)-3.182 G
+.682(he absence of an)-3.182 F 3.183(yt)-.15 G .683(raps, it ignores)
+-3.183 F F4(SIGTERM)3.183 E F0 .683(\(so that)2.933 F F1 .683(kill 0)
+3.183 F F0 .683(does not kill an)3.183 F(interacti)108 708 Q .758 -.15
+(ve s)-.25 H .458(hell\), and).15 F F4(SIGINT)2.958 E F0 .458
+(is caught and handled \(so that the)2.708 F F1(wait)2.958 E F0 -.2(bu)
+2.958 G .457(iltin is interruptible\).).2 F .457(In all cases,)5.457 F
+F1(bash)108 720 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E F5(.)A F0
+(If job control is in ef)4.5 E(fect,)-.25 E F1(bash)2.5 E F0(ignores)2.5
+E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25
+E F4(SIGTSTP)2.5 E F5(.)A F0(GNU Bash 4.3)72 768 Q(2014 February 2)
+141.79 E(33)190.95 E 0 Cg EP
+%%Page: 34 34
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(Non-b)108 84 Q 1.064(uiltin commands run by)-.2 F/F1 10
+/Times-Bold@0 SF(bash)3.564 E F0(ha)3.564 E 1.365 -.15(ve s)-.2 H 1.065
+(ignal handlers set to the v).15 F 1.065
+(alues inherited by the shell from its)-.25 F 3.248(parent. When)108 96
+R .748(job control is not in ef)3.248 F .747
+(fect, asynchronous commands ignore)-.25 F/F2 9/Times-Bold@0 SF(SIGINT)
+3.247 E F0(and)2.997 E F2(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997
+F .652(tion to these inherited handlers.)108 108 R .653
+(Commands run as a result of command substitution ignore the k)5.652 F
+-.15(ey)-.1 G(board-).15 E(generated job control signals)108 120 Q F2
+(SIGTTIN)2.5 E/F3 9/Times-Roman@0 SF(,)A F2(SIGTT)2.25 E(OU)-.162 E F3
+(,)A F0(and)2.25 E F2(SIGTSTP)2.5 E F3(.)A F0 2.046(The shell e)108
+136.8 R 2.046(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F2
+(SIGHUP)4.545 E F3(.)A F0 2.045(Before e)6.545 F 2.045
+(xiting, an interacti)-.15 F 2.345 -.15(ve s)-.25 H 2.045
+(hell resends the).15 F F2(SIGHUP)108 148.8 Q F0 1.004
+(to all jobs, running or stopped.)3.254 F 1.004(Stopped jobs are sent)
+6.004 F F2(SIGCONT)3.505 E F0 1.005(to ensure that the)3.255 F 3.505(yr)
+-.15 G(ecei)-3.505 E 1.305 -.15(ve t)-.25 H(he).15 E F2(SIGHUP)108 160.8
+Q F3(.)A F0 2.53 -.8(To p)5.43 H(re).8 E -.15(ve)-.25 G .93(nt the shel\
l from sending the signal to a particular job, it should be remo).15 F
--.15(ve)-.15 G 3.43(df).15 G .93(rom the)-3.43 F 1.357
-(jobs table with the)108 480 R F1(diso)3.857 E(wn)-.1 E F0 -.2(bu)3.857
-G 1.357(iltin \(see).2 F F4 1.356(SHELL B)3.856 F(UIL)-.09 E 1.356
-(TIN COMMANDS)-.828 F F0(belo)3.606 E 1.356(w\) or mark)-.25 F 1.356
-(ed to not recei)-.1 F -.15(ve)-.25 G F4(SIGHUP)108 492 Q F0(using)2.25
-E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A .166(If the)108 508.8 R F1
+-.15(ve)-.15 G 3.429(df).15 G .929(rom the)-3.429 F 1.356
+(jobs table with the)108 172.8 R F1(diso)3.856 E(wn)-.1 E F0 -.2(bu)
+3.856 G 1.356(iltin \(see).2 F F2 1.356(SHELL B)3.856 F(UIL)-.09 E 1.356
+(TIN COMMANDS)-.828 F F0(belo)3.607 E 1.357(w\) or mark)-.25 F 1.357
+(ed to not recei)-.1 F -.15(ve)-.25 G F2(SIGHUP)108 184.8 Q F0(using)
+2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A .166(If the)108 201.6 R F1
(huponexit)2.666 E F0 .166(shell option has been set with)2.666 F F1
-(shopt)2.666 E F0(,)A F1(bash)2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)
+(shopt)2.666 E F0(,)A F1(bash)2.666 E F0 .166(sends a)2.666 F F2(SIGHUP)
2.666 E F0 .166(to all jobs when an interacti)2.416 F -.15(ve)-.25 G
-(login shell e)108 520.8 Q(xits.)-.15 E(If)108 537.6 Q F1(bash)3.047 E
-F0 .547(is w)3.047 F .546(aiting for a command to complete and recei)-.1
+(login shell e)108 213.6 Q(xits.)-.15 E(If)108 230.4 Q F1(bash)3.046 E
+F0 .546(is w)3.046 F .546(aiting for a command to complete and recei)-.1
F -.15(ve)-.25 G 3.046(sas).15 G .546
-(ignal for which a trap has been set, the trap)-3.046 F .662
-(will not be e)108 549.6 R -.15(xe)-.15 G .662
+(ignal for which a trap has been set, the trap)-3.046 F .663
+(will not be e)108 242.4 R -.15(xe)-.15 G .663
(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
-F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .99
-(via the)108 561.6 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\
+F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .99
+(via the)108 254.4 R F1(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin, the rec\
eption of a signal for which a trap has been set will cause the).2 F F1
(wait)3.49 E F0 -.2(bu)3.49 G .99(iltin to).2 F
-(return immediately with an e)108 573.6 Q
+(return immediately with an e)108 266.4 Q
(xit status greater than 128, immediately after which the trap is e)-.15
-E -.15(xe)-.15 G(cuted.).15 E F2(JOB CONTR)72 590.4 Q(OL)-.329 E F3 -.25
-(Jo)108 602.4 S 4.567(bc).25 G(ontr)-4.567 E(ol)-.45 E F0 2.067
-(refers to the ability to selecti)5.077 F -.15(ve)-.25 G 2.067
-(ly stop \().15 F F3(suspend)A F0 4.567(\)t)C 2.068(he e)-4.567 F -.15
-(xe)-.15 G 2.068(cution of processes and continue).15 F(\()108 614.4 Q
-F3 -.37(re)C(sume).37 E F0 3.202(\)t)C .702(heir e)-3.202 F -.15(xe)-.15
-G .702(cution at a later point.).15 F 3.202(Au)5.702 G .702
+E -.15(xe)-.15 G(cuted.).15 E/F4 10.95/Times-Bold@0 SF(JOB CONTR)72
+283.2 Q(OL)-.329 E/F5 10/Times-Italic@0 SF -.25(Jo)108 295.2 S 4.568(bc)
+.25 G(ontr)-4.568 E(ol)-.45 E F0 2.068(refers to the ability to selecti)
+5.078 F -.15(ve)-.25 G 2.067(ly stop \().15 F F5(suspend)A F0 4.567(\)t)
+C 2.067(he e)-4.567 F -.15(xe)-.15 G 2.067
+(cution of processes and continue).15 F(\()108 307.2 Q F5 -.37(re)C
+(sume).37 E F0 3.201(\)t)C .701(heir e)-3.201 F -.15(xe)-.15 G .702
+(cution at a later point.).15 F 3.202(Au)5.702 G .702
(ser typically emplo)-3.202 F .702(ys this f)-.1 F .702
-(acility via an interacti)-.1 F 1.001 -.15(ve i)-.25 H(nterf).15 E(ace)
--.1 E(supplied jointly by the operating system k)108 626.4 Q(ernel')-.1
+(acility via an interacti)-.1 F 1.002 -.15(ve i)-.25 H(nterf).15 E(ace)
+-.1 E(supplied jointly by the operating system k)108 319.2 Q(ernel')-.1
E 2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15 G(nd)-2.5 E
-F1(bash)2.5 E F0(.)A .784(The shell associates a)108 643.2 R F3(job)
-5.024 E F0 .784(with each pipeline.)3.514 F .784(It k)5.784 F .785
-(eeps a table of currently e)-.1 F -.15(xe)-.15 G .785
-(cuting jobs, which may be).15 F .341(listed with the)108 655.2 R F1
-(jobs)2.841 E F0 2.841(command. When)2.841 F F1(bash)2.841 E F0 .341
-(starts a job asynchronously \(in the)2.841 F F3(bac)2.84 E(kgr)-.2 E
-(ound)-.45 E F0 .34(\), it prints a line).77 F(that looks lik)108 667.2
-Q(e:)-.1 E([1] 25647)144 684 Q .241(indicating that this job is job num\
-ber 1 and that the process ID of the last process in the pipeline assoc\
-iated)108 700.8 R .733(with this job is 25647.)108 712.8 R .732
+F1(bash)2.5 E F0(.)A .785(The shell associates a)108 336 R F5(job)5.025
+E F0 .785(with each pipeline.)3.515 F .784(It k)5.785 F .784
+(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784
+(cuting jobs, which may be).15 F .34(listed with the)108 348 R F1(jobs)
+2.84 E F0 2.84(command. When)2.84 F F1(bash)2.84 E F0 .341
+(starts a job asynchronously \(in the)2.84 F F5(bac)2.841 E(kgr)-.2 E
+(ound)-.45 E F0 .341(\), it prints a line).77 F(that looks lik)108 360 Q
+(e:)-.1 E([1] 25647)144 376.8 Q .241(indicating that this job is job nu\
+mber 1 and that the process ID of the last process in the pipeline asso\
+ciated)108 393.6 R .732(with this job is 25647.)108 405.6 R .733
(All of the processes in a single pipeline are members of the same job)
-5.733 F(.)-.4 E F1(Bash)5.732 E F0(uses)3.232 E(the)108 724.8 Q F3(job)
-4.24 E F0(abstraction as the basis for job control.)2.73 E(GNU Bash-4.2)
-72 768 Q(2010 December 28)135.965 E(32)185.955 E 0 Cg EP
-%%Page: 33 33
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 3.062 -.8(To f)108 84 T 1.462
-(acilitate the implementation of the user interf).7 F 1.463
-(ace to job control, the operating system maintains the)-.1 F .871
-(notion of a)108 96 R/F1 10/Times-Italic@0 SF(curr)3.371 E .871
-(ent terminal pr)-.37 F .871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871
-(.M)C .87(embers of this process group \(processes whose process)-5.871
-F .023
+5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 417.6 Q F5(job)
+4.24 E F0(abstraction as the basis for job control.)2.73 E 3.063 -.8
+(To f)108 434.4 T 1.463(acilitate the implementation of the user interf)
+.7 F 1.462(ace to job control, the operating system maintains the)-.1 F
+.87(notion of a)108 446.4 R F5(curr)3.37 E .87(ent terminal pr)-.37 F
+.871(ocess gr)-.45 F .871(oup ID)-.45 F F0 5.871(.M)C .871
+(embers of this process group \(processes whose process)-5.871 F .023
(group ID is equal to the current terminal process group ID\) recei)108
-108 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
-(board-generated signals such as).15 F/F2 9/Times-Bold@0 SF(SIG-)2.523 E
-(INT)108 120 Q/F3 9/Times-Roman@0 SF(.)A F0 1.347
-(These processes are said to be in the)5.847 F F1(for)3.846 E -.4(eg)
--.37 G -.45(ro).4 G(und).45 E F0(.).77 E F1(Bac)6.926 E(kgr)-.2 E(ound)
--.45 E F0 1.346(processes are those whose process)4.616 F .145
-(group ID dif)108 132 R .145(fers from the terminal')-.25 F .146
-(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .146
-(board-generated signals.).15 F .146(Only fore-)5.146 F .16
-(ground processes are allo)108 144 R .16(wed to read from or)-.25 F 2.66
-(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F4 10
-/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
--2.66 F(-)-.2 E 3.051(minal. Background)108 156 R .551
-(processes which attempt to read from \(write to when)3.051 F F4 .551
-(stty tostop)3.051 F F0 .552(is in ef)3.052 F .552(fect\) the)-.25 F
-.718(terminal are sent a)108 168 R F2 .718(SIGTTIN \(SIGTT)3.218 F(OU\))
--.162 E F0 .718(signal by the k)2.968 F(ernel')-.1 E 3.217(st)-.55 G
-.717(erminal dri)-3.217 F -.15(ve)-.25 G 1.517 -.4(r, w).15 H .717
-(hich, unless caught, sus-).4 F(pends the process.)108 180 Q 1.087
-(If the operating system on which)108 196.8 R/F5 10/Times-Bold@0 SF
-(bash)3.587 E F0 1.088(is running supports job control,)3.588 F F5(bash)
-3.588 E F0 1.088(contains f)3.588 F 1.088(acilities to use it.)-.1 F -.8
-(Ty)108 208.8 S .302(ping the).8 F F1(suspend)3.142 E F0 .302
-(character \(typically)3.572 F F5(^Z)2.801 E F0 2.801(,C)C .301
+458.4 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
+(board-generated signals such as).15 F F2(SIG-)2.522 E(INT)108 470.4 Q
+F3(.)A F0 1.346(These processes are said to be in the)5.846 F F5(for)
+3.847 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F5(Bac)6.927 E
+(kgr)-.2 E(ound)-.45 E F0 1.347(processes are those whose process)4.617
+F .146(group ID dif)108 482.4 R .146(fers from the terminal')-.25 F .146
+(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .145
+(board-generated signals.).15 F .145(Only fore-)5.145 F .16
+(ground processes are allo)108 494.4 R .16(wed to read from or)-.25 F
+2.66(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6
+10/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
+-2.66 F(-)-.2 E 3.052(minal. Background)108 506.4 R .551
+(processes which attempt to read from \(write to when)3.052 F F6 .551
+(stty tostop)3.051 F F0 .551(is in ef)3.051 F .551(fect\) the)-.25 F
+.717(terminal are sent a)108 518.4 R F2 .717(SIGTTIN \(SIGTT)3.217 F
+(OU\))-.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218(st)-.55
+G .718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H .718
+(hich, unless caught, sus-).4 F(pends the process.)108 530.4 Q 1.088
+(If the operating system on which)108 547.2 R F1(bash)3.588 E F0 1.088
+(is running supports job control,)3.588 F F1(bash)3.587 E F0 1.087
+(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8(Ty)108 559.2 S
+.301(ping the).8 F F5(suspend)3.141 E F0 .301(character \(typically)
+3.571 F F1(^Z)2.801 E F0 2.801(,C)C .301
(ontrol-Z\) while a process is running causes that process to be)-2.801
-F 2.142(stopped and returns control to)108 220.8 R F5(bash)4.642 E F0
-7.142(.T)C 2.142(yping the)-7.942 F F1 2.142(delayed suspend)4.992 F F0
-2.143(character \(typically)5.413 F F5(^Y)4.643 E F0 4.643(,C)C
-(ontrol-Y\))-4.643 E .021(causes the process to be stopped when it atte\
+F 2.143(stopped and returns control to)108 571.2 R F1(bash)4.642 E F0
+7.142(.T)C 2.142(yping the)-7.942 F F5 2.142(delayed suspend)4.992 F F0
+2.142(character \(typically)5.412 F F1(^Y)4.642 E F0 4.642(,C)C
+(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\
mpts to read input from the terminal, and control to be returned)108
-232.8 R(to)108 244.8 Q F5(bash)3.392 E F0 5.892(.T)C .892
+583.2 R(to)108 595.2 Q F1(bash)3.392 E F0 5.892(.T)C .892
(he user may then manipulate the state of this job, using the)-5.892 F
-F5(bg)3.392 E F0 .892(command to continue it in the)3.392 F .895
-(background, the)108 256.8 R F5(fg)3.395 E F0 .895
-(command to continue it in the fore)3.395 F .895(ground, or the)-.15 F
-F5(kill)3.395 E F0 .894(command to kill it.)3.395 F(A)5.894 E F5(^Z)
-3.394 E F0(tak)3.394 E(es)-.1 E(ef)108 268.8 Q .948(fect immediately)
--.25 F 3.448(,a)-.65 G .948(nd has the additional side ef)-3.448 F .948
+F1(bg)3.392 E F0 .892(command to continue it in the)3.392 F .894
+(background, the)108 607.2 R F1(fg)3.394 E F0 .895
+(command to continue it in the fore)3.394 F .895(ground, or the)-.15 F
+F1(kill)3.395 E F0 .895(command to kill it.)3.395 F(A)5.895 E F1(^Z)
+3.395 E F0(tak)3.395 E(es)-.1 E(ef)108 619.2 Q .949(fect immediately)
+-.25 F 3.449(,a)-.65 G .948(nd has the additional side ef)-3.449 F .948
(fect of causing pending output and typeahead to be dis-)-.25 F(carded.)
-108 280.8 Q .777(There are a number of w)108 297.6 R .777
-(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F5
-(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 309.6
-Q F1(jobspec)A F0 3.457(\). Job)B(number)3.457 E F1(n)3.817 E F0 .957
-(may be referred to as)3.697 F F5(%n)3.457 E F0 5.957(.A)C .957
+108 631.2 Q .777(There are a number of w)108 648 R .777
+(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F1
+(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 660 Q
+F5(jobspec)A F0 3.458(\). Job)B(number)3.458 E F5(n)3.818 E F0 .957
+(may be referred to as)3.697 F F1(%n)3.457 E F0 5.957(.A)C .957
(job may also be referred to using a pre\214x of the)-2.5 F .59(name us\
ed to start it, or using a substring that appears in its command line.)
-108 321.6 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F5(%ce)3.09 E
-F0 .59(refers to a)3.09 F(stopped)108 333.6 Q F5(ce)3.463 E F0(job)3.463
-E 5.963(.I)-.4 G 3.463(fap)-5.963 G .963
-(re\214x matches more than one job,)-3.463 F F5(bash)3.463 E F0 .963
-(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F5(%?ce)3.463 E
-F0 3.464(,o)C 3.464(nt)-3.464 G .964(he other)-3.464 F .087
-(hand, refers to an)108 345.6 R 2.587(yj)-.15 G .087
-(ob containing the string)-2.587 F F5(ce)2.587 E F0 .087
+108 672 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F1(%ce)3.09 E F0
+.59(refers to a)3.09 F(stopped)108 684 Q F1(ce)3.464 E F0(job)3.464 E
+5.964(.I)-.4 G 3.463(fap)-5.964 G .963
+(re\214x matches more than one job,)-3.463 F F1(bash)3.463 E F0 .963
+(reports an error)3.463 F 5.963(.U)-.55 G(sing)-5.963 E F1(%?ce)3.463 E
+F0 3.463(,o)C 3.463(nt)-3.463 G .963(he other)-3.463 F .086
+(hand, refers to an)108 696 R 2.587(yj)-.15 G .087
+(ob containing the string)-2.587 F F1(ce)2.587 E F0 .087
(in its command line.)2.587 F .087
-(If the substring matches more than one)5.087 F(job,)108 357.6 Q F5
-(bash)2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018
-(he symbols)-5.018 F F5(%%)2.518 E F0(and)2.518 E F5(%+)2.518 E F0 .018
+(If the substring matches more than one)5.087 F(job,)108 708 Q F1(bash)
+2.518 E F0 .018(reports an error)2.518 F 5.018(.T)-.55 G .018
+(he symbols)-5.018 F F1(%%)2.518 E F0(and)2.518 E F1(%+)2.518 E F0 .018
(refer to the shell')2.518 F 2.518(sn)-.55 G .018(otion of the)-2.518 F
-F1(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
--2.518 F .495(the last job stopped while it w)108 369.6 R .495
+F5(curr)2.518 E .018(ent job)-.37 F F0 2.518(,w).23 G .018(hich is)
+-2.518 F .494(the last job stopped while it w)108 720 R .495
(as in the fore)-.1 F .495(ground or started in the background.)-.15 F
-(The)5.494 E F1(pr)4.244 E -.15(ev)-.37 G .494(ious job).15 F F0 .494
-(may be)3.224 F .787(referenced using)108 381.6 R F5<25ad>3.287 E F0
-5.787(.I)C 3.287(ft)-5.787 G .787(here is only a single job,)-3.287 F F5
-(%+)3.287 E F0(and)3.287 E F5<25ad>3.287 E F0 .788
-(can both be used to refer to that job)3.287 F 5.788(.I)-.4 G(n)-5.788 E
-.257(output pertaining to jobs \(e.g., the output of the)108 393.6 R F5
+(The)5.495 E F5(pr)4.245 E -.15(ev)-.37 G .495(ious job).15 F F0 .495
+(may be)3.225 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(34)190.95
+E 0 Cg EP
+%%Page: 35 35
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .788(referenced using)108 84 R/F1 10/Times-Bold@0 SF<25ad>3.288 E
+F0 5.788(.I)C 3.288(ft)-5.788 G .787(here is only a single job,)-3.288 F
+F1(%+)3.287 E F0(and)3.287 E F1<25ad>3.287 E F0 .787
+(can both be used to refer to that job)3.287 F 5.787(.I)-.4 G(n)-5.787 E
+.256(output pertaining to jobs \(e.g., the output of the)108 96 R F1
(jobs)2.756 E F0 .256(command\), the current job is al)2.756 F -.1(wa)
--.1 G .256(ys \215agged with a).1 F F5(+)2.756 E F0(,)A .41(and the pre)
-108 405.6 R .41(vious job with a)-.25 F F5<ad>2.91 E F0 5.41(.A)C .411
-(single % \(with no accompan)-2.5 F .411
+-.1 G .257(ys \215agged with a).1 F F1(+)2.757 E F0(,)A .411
+(and the pre)108 108 R .411(vious job with a)-.25 F F1<ad>2.911 E F0
+5.411(.A)C .411(single % \(with no accompan)-2.5 F .41
(ying job speci\214cation\) also refers to the cur)-.15 F(-)-.2 E
-(rent job)108 417.6 Q(.)-.4 E .444
-(Simply naming a job can be used to bring it into the fore)108 434.4 R
-(ground:)-.15 E F5(%1)2.943 E F0 .443(is a synon)2.943 F .443(ym for)
--.15 F F5 -.63(``)2.943 G .443(fg %1').63 F(')-.63 E F0 2.943(,b)C
-(ringing)-2.943 E 1.472(job 1 from the background into the fore)108
-446.4 R 3.972(ground. Similarly)-.15 F(,)-.65 E F5 -.63(``)3.973 G 1.473
-(%1 &').63 F(')-.63 E F0 1.473(resumes job 1 in the background,)3.973 F
-(equi)108 458.4 Q -.25(va)-.25 G(lent to).25 E F5 -.63(``)2.5 G(bg %1')
-.63 E(')-.63 E F0(.)A .131(The shell learns immediately whene)108 475.2
-R -.15(ve)-.25 G 2.631(raj).15 G .131(ob changes state.)-2.631 F
-(Normally)5.131 E(,)-.65 E F5(bash)2.631 E F0 -.1(wa)2.63 G .13
-(its until it is about to print a).1 F .157
-(prompt before reporting changes in a job')108 487.2 R 2.657(ss)-.55 G
-.157(tatus so as to not interrupt an)-2.657 F 2.658(yo)-.15 G .158
-(ther output.)-2.658 F .158(If the)5.158 F F5<ad62>2.658 E F0 .158
-(option to)2.658 F(the)108 499.2 Q F5(set)3.952 E F0 -.2(bu)3.952 G
-1.452(iltin command is enabled,).2 F F5(bash)3.952 E F0 1.451
-(reports such changes immediately)3.952 F 6.451(.A)-.65 G 1.751 -.15
-(ny t)-6.451 H 1.451(rap on).15 F F2(SIGCHLD)3.951 E F0(is)3.701 E -.15
-(exe)108 511.2 S(cuted for each child that e).15 E(xits.)-.15 E .032
-(If an attempt to e)108 528 R(xit)-.15 E F5(bash)2.532 E F0 .032
-(is made while jobs are stopped \(or)2.532 F 2.533(,i)-.4 G 2.533(ft)
--2.533 G(he)-2.533 E F5(checkjobs)2.533 E F0 .033
-(shell option has been enabled)2.533 F 2.02(using the)108 540 R F5
-(shopt)4.52 E F0 -.2(bu)4.52 G 2.02
-(iltin, running\), the shell prints a w).2 F 2.019
-(arning message, and, if the)-.1 F F5(checkjobs)4.519 E F0 2.019
-(option is)4.519 F .458(enabled, lists the jobs and their statuses.)108
-552 R(The)5.458 E F5(jobs)2.958 E F0 .459
-(command may then be used to inspect their status.)2.958 F .459(If a)
-5.459 F .604(second attempt to e)108 564 R .604
+(rent job)108 120 Q(.)-.4 E .443
+(Simply naming a job can be used to bring it into the fore)108 136.8 R
+(ground:)-.15 E F1(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F1 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
+(ringing)-2.944 E 1.473(job 1 from the background into the fore)108
+148.8 R 3.973(ground. Similarly)-.15 F(,)-.65 E F1 -.63(``)3.972 G 1.472
+(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F
+(equi)108 160.8 Q -.25(va)-.25 G(lent to).25 E F1 -.63(``)2.5 G(bg %1')
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 177.6 R
+-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
+5.131 E(,)-.65 E F1(bash)2.631 E F0 -.1(wa)2.631 G .131
+(its until it is about to print a).1 F .158
+(prompt before reporting changes in a job')108 189.6 R 2.658(ss)-.55 G
+.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
+(ther output.)-2.657 F .157(If the)5.157 F F1<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 201.6 Q F1(set)3.951 E F0 -.2(bu)3.951 G
+1.451(iltin command is enabled,).2 F F1(bash)3.951 E F0 1.452
+(reports such changes immediately)3.951 F 6.452(.A)-.65 G 1.752 -.15
+(ny t)-6.452 H 1.452(rap on).15 F/F2 9/Times-Bold@0 SF(SIGCHLD)3.952 E
+F0(is)3.702 E -.15(exe)108 213.6 S(cuted for each child that e).15 E
+(xits.)-.15 E .033(If an attempt to e)108 230.4 R(xit)-.15 E F1(bash)
+2.533 E F0 .033(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4
+G 2.532(ft)-2.532 G(he)-2.532 E F1(checkjobs)2.532 E F0 .032
+(shell option has been enabled)2.532 F 2.019(using the)108 242.4 R F1
+(shopt)4.519 E F0 -.2(bu)4.519 G 2.019
+(iltin, running\), the shell prints a w).2 F 2.02
+(arning message, and, if the)-.1 F F1(checkjobs)4.52 E F0 2.02
+(option is)4.52 F .459(enabled, lists the jobs and their statuses.)108
+254.4 R(The)5.459 E F1(jobs)2.959 E F0 .458
+(command may then be used to inspect their status.)2.958 F .458(If a)
+5.458 F .603(second attempt to e)108 266.4 R .604
(xit is made without an interv)-.15 F .604
(ening command, the shell does not print another w)-.15 F(arning,)-.1 E
-(and an)108 576 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F6
-10.95/Times-Bold@0 SF(PR)72 592.8 Q(OMPTING)-.329 E F0 .644(When e)108
-604.8 R -.15(xe)-.15 G .644(cuting interacti).15 F -.15(ve)-.25 G(ly).15
-E(,)-.65 E F5(bash)3.144 E F0 .645(displays the primary prompt)3.145 F
-F2(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.826
-(and the secondary prompt)108 616.8 R F2(PS2)4.326 E F0 1.825
-(when it needs more input to complete a command.)4.076 F F5(Bash)6.825 E
-F0(allo)4.325 E 1.825(ws these)-.25 F 1.499(prompt strings to be custom\
+(and an)108 278.4 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E/F3
+10.95/Times-Bold@0 SF(PR)72 295.2 Q(OMPTING)-.329 E F0 .645(When e)108
+307.2 R -.15(xe)-.15 G .645(cuting interacti).15 F -.15(ve)-.25 G(ly).15
+E(,)-.65 E F1(bash)3.145 E F0 .645(displays the primary prompt)3.145 F
+F2(PS1)3.145 E F0 .645(when it is ready to read a command,)2.895 F 1.825
+(and the secondary prompt)108 319.2 R F2(PS2)4.325 E F0 1.825
+(when it needs more input to complete a command.)4.075 F F1(Bash)6.826 E
+F0(allo)4.326 E 1.826(ws these)-.25 F 1.499(prompt strings to be custom\
ized by inserting a number of backslash-escaped special characters that\
- are)108 628.8 R(decoded as follo)108 640.8 Q(ws:)-.25 E F5(\\a)144
-652.8 Q F0(an ASCII bell character \(07\))28.22 E F5(\\d)144 664.8 Q F0
+ are)108 331.2 R(decoded as follo)108 343.2 Q(ws:)-.25 E F1(\\a)144
+355.2 Q F0(an ASCII bell character \(07\))28.22 E F1(\\d)144 367.2 Q F0
(the date in "W)27.66 E(eekday Month Date" format \(e.g., "T)-.8 E
-(ue May 26"\))-.45 E F5(\\D{)144 676.8 Q F1(format)A F5(})A F0(the)180
-688.8 Q F1(format)3.927 E F0 1.427(is passed to)3.927 F F1(strftime)
-3.927 E F0 1.427
+(ue May 26"\))-.45 E F1(\\D{)144 379.2 Q/F4 10/Times-Italic@0 SF(format)
+A F1(})A F0(the)180 391.2 Q F4(format)3.926 E F0 1.426(is passed to)
+3.926 F F4(strftime)3.926 E F0 1.427
(\(3\) and the result is inserted into the prompt string; an)B(empty)180
-700.8 Q F1(format)2.5 E F0
+403.2 Q F4(format)2.5 E F0
(results in a locale-speci\214c time representation.)2.5 E
-(The braces are required)5 E F5(\\e)144 712.8 Q F0
-(an ASCII escape character \(033\))28.78 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(33)185.955 E 0 Cg EP
-%%Page: 34 34
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(\\h)144 84 Q F0
-(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 96 Q F0
-(the hostname)25.44 E F1(\\j)144 108 Q F0
+(The braces are required)5 E F1(\\e)144 415.2 Q F0
+(an ASCII escape character \(033\))28.78 E F1(\\h)144 427.2 Q F0
+(the hostname up to the \214rst `.)27.66 E(')-.7 E F1(\\H)144 439.2 Q F0
+(the hostname)25.44 E F1(\\j)144 451.2 Q F0
(the number of jobs currently managed by the shell)29.89 E F1(\\l)144
-120 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
--2.5 E(vice name)-.25 E F1(\\n)144 132 Q F0(ne)27.66 E(wline)-.25 E F1
-(\\r)144 144 Q F0(carriage return)28.78 E F1(\\s)144 156 Q F0
+463.2 Q F0(the basename of the shell')30.44 E 2.5(st)-.55 G(erminal de)
+-2.5 E(vice name)-.25 E F1(\\n)144 475.2 Q F0(ne)27.66 E(wline)-.25 E F1
+(\\r)144 487.2 Q F0(carriage return)28.78 E F1(\\s)144 499.2 Q F0
(the name of the shell, the basename of)29.33 E F1($0)2.5 E F0
(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F1(\\t)144
-168 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T)144
-180 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1(\\@)144
-192 Q F0(the current time in 12-hour am/pm format)23.92 E F1(\\A)144 204
-Q F0(the current time in 24-hour HH:MM format)26 E F1(\\u)144 216 Q F0
-(the username of the current user)27.66 E F1(\\v)144 228 Q F0(the v)
-28.22 E(ersion of)-.15 E F1(bash)2.5 E F0(\(e.g., 2.00\))2.5 E F1(\\V)
-144 240 Q F0(the release of)26 E F1(bash)2.5 E F0 2.5(,v)C
-(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G(e.g., 2.00.0\))
--2.5 E F1(\\w)144 252 Q F0 .115(the current w)26 F .115
-(orking directory)-.1 F 2.615(,w)-.65 G(ith)-2.615 E/F2 9/Times-Bold@0
-SF($HOME)2.615 E F0(abbre)2.365 E .116(viated with a tilde \(uses the v)
--.25 F .116(alue of the)-.25 F F2(PR)180 264 Q(OMPT_DIR)-.27 E(TRIM)-.36
-E F0 -.25(va)2.25 G(riable\)).25 E F1(\\W)144 276 Q F0
+511.2 Q F0(the current time in 24-hour HH:MM:SS format)29.89 E F1(\\T)
+144 523.2 Q F0(the current time in 12-hour HH:MM:SS format)26.55 E F1
+(\\@)144 535.2 Q F0(the current time in 12-hour am/pm format)23.92 E F1
+(\\A)144 547.2 Q F0(the current time in 24-hour HH:MM format)26 E F1
+(\\u)144 559.2 Q F0(the username of the current user)27.66 E F1(\\v)144
+571.2 Q F0(the v)28.22 E(ersion of)-.15 E F1(bash)2.5 E F0
+(\(e.g., 2.00\))2.5 E F1(\\V)144 583.2 Q F0(the release of)26 E F1(bash)
+2.5 E F0 2.5(,v)C(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5(l\().15 G
+(e.g., 2.00.0\))-2.5 E F1(\\w)144 595.2 Q F0 .116(the current w)26 F
+.116(orking directory)-.1 F 2.616(,w)-.65 G(ith)-2.616 E F2($HOME)2.616
+E F0(abbre)2.366 E .115(viated with a tilde \(uses the v)-.25 F .115
+(alue of the)-.25 F F2(PR)180 607.2 Q(OMPT_DIR)-.27 E(TRIM)-.36 E F0
+-.25(va)2.25 G(riable\)).25 E F1(\\W)144 619.2 Q F0
(the basename of the current w)23.22 E(orking directory)-.1 E 2.5(,w)
-.65 G(ith)-2.5 E F2($HOME)2.5 E F0(abbre)2.25 E(viated with a tilde)
--.25 E F1(\\!)144 288 Q F0(the history number of this command)29.89 E F1
-(\\#)144 300 Q F0(the command number of this command)28.22 E F1(\\$)144
-312 Q F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a)
-.15 E F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 324 Q
-/F3 10/Times-Italic@0 SF(nnn)A F0
-(the character corresponding to the octal number)18.22 E F3(nnn)2.5 E F1
-(\\\\)144 336 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 348 Q F0
-(be)29.89 E 1.257(gin a sequence of non-printing characters, which coul\
-d be used to embed a terminal)-.15 F(control sequence into the prompt)
-180 360 Q F1(\\])144 372 Q F0(end a sequence of non-printing characters)
-29.89 E .119(The command number and the history number are usually dif)
-108 388.8 R .12(ferent: the history number of a command is its)-.25 F
-1.585(position in the history list, which may include commands restored\
- from the history \214le \(see)108 400.8 R F2(HIST)4.084 E(OR)-.162 E(Y)
--.315 E F0(belo)108 412.8 Q .541(w\), while the command number is the p\
-osition in the sequence of commands e)-.25 F -.15(xe)-.15 G .541
-(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 424.8 R
+-.25 E F1(\\!)144 631.2 Q F0(the history number of this command)29.89 E
+F1(\\#)144 643.2 Q F0(the command number of this command)28.22 E F1(\\$)
+144 655.2 Q F0(if the ef)28.22 E(fecti)-.25 E .3 -.15(ve U)-.25 H
+(ID is 0, a).15 E F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E
+(\\)144 667.2 Q F4(nnn)A F0
+(the character corresponding to the octal number)18.22 E F4(nnn)2.5 E F1
+(\\\\)144 679.2 Q F0 2.5(ab)30.44 G(ackslash)-2.5 E F1(\\[)144 691.2 Q
+F0(be)29.89 E 1.257(gin a sequence of non-printing characters, which co\
+uld be used to embed a terminal)-.15 F(control sequence into the prompt)
+180 703.2 Q F1(\\])144 715.2 Q F0
+(end a sequence of non-printing characters)29.89 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(35)190.95 E 0 Cg EP
+%%Page: 36 36
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .12(The command number and the history number are usually dif)108
+84 R .119(ferent: the history number of a command is its)-.25 F 1.585(p\
+osition in the history list, which may include commands restored from t\
+he history \214le \(see)108 96 R/F1 9/Times-Bold@0 SF(HIST)4.085 E(OR)
+-.162 E(Y)-.315 E F0(belo)108 108 Q .541(w\), while the command number \
+is the position in the sequence of commands e)-.25 F -.15(xe)-.15 G .54
+(cuted during the cur).15 F(-)-.2 E .546(rent shell session.)108 120 R
.546(After the string is decoded, it is e)5.546 F .546
(xpanded via parameter e)-.15 F .546(xpansion, command substitu-)-.15 F
-.351(tion, arithmetic e)108 436.8 R .352(xpansion, and quote remo)-.15 F
--.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F F1
-(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .352(shell option \(see the)2.852
-F(description of the)108 448.8 Q F1(shopt)2.5 E F0(command under)2.5 E
-F2(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)
--.25 E/F4 10.95/Times-Bold@0 SF(READLINE)72 465.6 Q F0 .151
+.352(tion, arithmetic e)108 132 R .352(xpansion, and quote remo)-.15 F
+-.25(va)-.15 G .352(l, subject to the v).25 F .352(alue of the)-.25 F/F2
+10/Times-Bold@0 SF(pr)2.852 E(omptv)-.18 E(ars)-.1 E F0 .351
+(shell option \(see the)2.852 F(description of the)108 144 Q F2(shopt)
+2.5 E F0(command under)2.5 E F1(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
+-.828 E F0(belo)2.25 E(w\).)-.25 E/F3 10.95/Times-Bold@0 SF(READLINE)72
+160.8 Q F0 .15
(This is the library that handles reading input when using an interacti)
-108 477.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F1
-(\255\255noediting)2.65 E F0(option)2.65 E 1.208(is gi)108 489.6 R -.15
-(ve)-.25 G 3.708(na).15 G 3.708(ts)-3.708 G 1.208(hell in)-3.708 F -.2
-(vo)-.4 G 3.708(cation. Line).2 F 1.208
-(editing is also used when using the)3.708 F F1<ad65>3.709 E F0 1.209
-(option to the)3.709 F F1 -.18(re)3.709 G(ad).18 E F0 -.2(bu)3.709 G
-3.709(iltin. By).2 F(def)108 501.6 Q .851
+108 172.8 R .451 -.15(ve s)-.25 H .151(hell, unless the).15 F F2
+(\255\255noediting)2.651 E F0(option)2.651 E 1.209(is gi)108 184.8 R
+-.15(ve)-.25 G 3.709(na).15 G 3.709(ts)-3.709 G 1.209(hell in)-3.709 F
+-.2(vo)-.4 G 3.709(cation. Line).2 F 1.208
+(editing is also used when using the)3.709 F F2<ad65>3.708 E F0 1.208
+(option to the)3.708 F F2 -.18(re)3.708 G(ad).18 E F0 -.2(bu)3.708 G
+3.708(iltin. By).2 F(def)108 196.8 Q .851
(ault, the line editing commands are similar to those of Emacs.)-.1 F
-3.351(Av)5.851 G .851(i-style line editing interf)-3.351 F .851
-(ace is also)-.1 F -.2(av)108 513.6 S 3.35(ailable. Line)-.05 F .85
+3.351(Av)5.851 G .851(i-style line editing interf)-3.351 F .852
+(ace is also)-.1 F -.2(av)108 208.8 S 3.35(ailable. Line)-.05 F .85
(editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the)
--3.35 F F1 .85(\255o emacs)3.35 F F0(or)3.35 E F1 .85(\255o vi)3.35 F F0
-.85(options to the)3.35 F F1(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
-(\(see)108 525.6 Q F2 .763(SHELL B)3.263 F(UIL)-.09 E .763(TIN COMMANDS)
--.828 F F0(belo)3.013 E 3.263(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
+-3.35 F F2 .85(\255o emacs)3.35 F F0(or)3.35 E F2 .85(\255o vi)3.35 F F0
+.85(options to the)3.35 F F2(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
+(\(see)108 220.8 Q F1 .762(SHELL B)3.262 F(UIL)-.09 E .762(TIN COMMANDS)
+-.828 F F0(belo)3.012 E 3.262(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
-3.263 F 3.263(fl)-.25 G .763
-(ine editing after the shell is running, use the)-3.263 F F1(+o)3.262 E
-(emacs)108 537.6 Q F0(or)2.5 E F1(+o vi)2.5 E F0(options to the)2.5 E F1
-(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(Readline Notation)87 554.4 Q
+(ine editing after the shell is running, use the)-3.263 F F2(+o)3.263 E
+(emacs)108 232.8 Q F0(or)2.5 E F2(+o vi)2.5 E F0(options to the)2.5 E F2
+(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F2(Readline Notation)87 249.6 Q
F0 .463(In this section, the Emacs-style notation is used to denote k)
-108 566.4 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke)
-2.963 G .463(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0(,)A
-1.153(e.g., C\255n means Control\255N.)108 578.4 R(Similarly)6.153 E(,)
--.65 E F3(meta)4.033 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)
--.05 F F3 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652(oM)-3.652 G 1.152
-(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke)108 590.4 S .83
-(yboards without a)-.05 F F3(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65
-(y, M)-.05 H<ad>.65 E F3(x)A F0 .83(means ESC)3.33 F F3(x)3.33 E F0 3.33
-(,i)C .831(.e., press the Escape k)-3.33 F 1.131 -.15(ey t)-.1 H .831
-(hen the).15 F F3(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 H
-.831(his mak).65 F(es)-.1 E .6(ESC the)108 602.4 R F3 .6(meta pr)3.1 F
-(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F3(x)A F0
-.599(means ESC\255Control\255)3.099 F F3(x)A F0 3.099(,o)C 3.099(rp)
--3.099 G .599(ress the Escape k)-3.099 F .899 -.15(ey t)-.1 H .599
-(hen hold).15 F(the Control k)108 614.4 Q .3 -.15(ey w)-.1 H
-(hile pressing the).15 E F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
-.65 E .619(Readline commands may be gi)108 631.2 R -.15(ve)-.25 G 3.119
-(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
-.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.62 E(ho)
-108 643.2 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti).4 G
-3.119(st)-3.119 G .619(he sign of the ar)-3.119 F .619
+108 261.6 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke)
+2.963 G .463(ys are denoted by C\255)-.05 F/F4 10/Times-Italic@0 SF -.1
+(ke)C(y)-.2 E F0(,)A 1.152(e.g., C\255n means Control\255N.)108 273.6 R
+(Similarly)6.152 E(,)-.65 E F4(meta)4.032 E F0 -.1(ke)3.913 G 1.153
+(ys are denoted by M\255)-.05 F F4 -.1(ke)C(y)-.2 E F0 3.653(,s)C 3.653
+(oM)-3.653 G 1.153(\255x means Meta\255X.)-3.653 F(\(On)6.153 E -.1(ke)
+108 285.6 S .831(yboards without a)-.05 F F4(meta)3.711 E F0 -.1(ke)
+3.591 G 2.131 -.65(y, M)-.05 H<ad>.65 E F4(x)A F0 .831(means ESC)3.331 F
+F4(x)3.331 E F0 3.331(,i)C .83(.e., press the Escape k)-3.331 F 1.13
+-.15(ey t)-.1 H .83(hen the).15 F F4(x)4.1 E F0 -.1(ke)3.86 G 4.63 -.65
+(y. T)-.05 H .83(his mak).65 F(es)-.1 E .599(ESC the)108 297.6 R F4 .599
+(meta pr)3.099 F(e\214x)-.37 E F0 5.599(.T)C .599
+(he combination M\255C\255)-5.599 F F4(x)A F0 .599
+(means ESC\255Control\255)3.099 F F4(x)A F0 3.099(,o)C 3.099(rp)-3.099 G
+.6(ress the Escape k)-3.099 F .9 -.15(ey t)-.1 H .6(hen hold).15 F
+(the Control k)108 309.6 Q .3 -.15(ey w)-.1 H(hile pressing the).15 E F4
+(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\)).65 E .62
+(Readline commands may be gi)108 326.4 R -.15(ve)-.25 G 3.119(nn).15 G
+(umeric)-3.119 E F4(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G .619
+(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E(ho)108
+338.4 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti).4 G
+3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 1.018(acts in the forw)108 655.2 R 1.018
-(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C
-1.018(auses that command to act in a backw)-3.518 F 1.019
-(ard direction.)-.1 F(Com-)6.019 E(mands whose beha)108 667.2 Q
+(ument to a command that).18 F 1.019(acts in the forw)108 350.4 R 1.018
+(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.018
+(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 362.4 Q
(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
--.25 E -.65(w.)-.25 G .812(When a command is described as)108 684 R F3
+-.25 E -.65(w.)-.25 G .811(When a command is described as)108 379.2 R F4
(killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
-(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .811
-(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F3
-(yank-)-3.311 E(ing)108 696 Q F0 2.529(\). The)B .029(killed te)2.529 F
-.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F3
+(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .812
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.312(l\().25 G F4
+(yank-)-3.312 E(ing)108 391.2 Q F0 2.529(\). The)B .029(killed te)2.529
+F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F4
.029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
.029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
--.15 F .567(which can be yank)108 708 R .567(ed all at once.)-.1 F .567
-(Commands which do not kill te)5.567 F .567
+-.15 F .567(which can be yank)108 403.2 R .567(ed all at once.)-.1 F
+.567(Commands which do not kill te)5.567 F .567
(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
-108 720 Q(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(34)185.955 E
-0 Cg EP
-%%Page: 35 35
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(Readline Initialization)87 84 Q F0 .091(Re\
-adline is customized by putting commands in an initialization \214le \(\
-the)108 96 R/F2 10/Times-Italic@0 SF(inputr)2.591 E(c)-.37 E F0 2.591
-(\214le\). The)2.591 F .092(name of this \214le)2.591 F .197(is tak)108
-108 R .196(en from the v)-.1 F .196(alue of the)-.25 F/F3 9/Times-Bold@0
-SF(INPUTRC)2.696 E F0 -.25(va)2.446 G 2.696(riable. If).25 F .196
-(that v)2.696 F .196(ariable is unset, the def)-.25 F .196(ault is)-.1 F
-F2(~/.inputr)2.696 E(c)-.37 E F0 5.196(.W).31 G .196(hen a)-5.196 F
-1.034(program which uses the readline library starts up, the initializa\
-tion \214le is read, and the k)108 120 R 1.335 -.15(ey b)-.1 H 1.035
-(indings and).15 F -.25(va)108 132 S 1.15(riables are set.).25 F 1.15
-(There are only a fe)6.15 F 3.649(wb)-.25 G 1.149(asic constructs allo)
--3.649 F 1.149(wed in the readline initialization \214le.)-.25 F(Blank)
-6.149 E .736(lines are ignored.)108 144 R .737(Lines be)5.737 F .737
-(ginning with a)-.15 F F1(#)3.237 E F0 .737(are comments.)3.237 F .737
-(Lines be)5.737 F .737(ginning with a)-.15 F F1($)3.237 E F0 .737
-(indicate conditional)3.237 F 2.5(constructs. Other)108 156 R
-(lines denote k)2.5 E .3 -.15(ey b)-.1 H(indings and v).15 E
-(ariable settings.)-.25 E .987(The def)108 172.8 R .987(ault k)-.1 F
--.15(ey)-.1 G .987(-bindings may be changed with an).15 F F2(inputr)
-3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
-(programs that use this library may)3.487 F(add their o)108 184.8 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 201.6 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 218.4 Q -.15(ve)-.25
-G(rsal\255ar).15 E(gument)-.18 E(or)108 230.4 Q(C\255Meta\255u: uni)144
-242.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 254.4
-Q F2(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G
-(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F2
-(univer)2.5 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.26(The follo)
-108 271.2 R 1.261(wing symbolic character names are recognized:)-.25 F
-F2 -.4(RU)3.761 G(BOUT).4 E F0(,)1.27 E F2(DEL)3.761 E F0(,).53 E F2
-(ESC)3.761 E F0(,).72 E F2(LFD)3.761 E F0(,).28 E F2(NEWLINE)3.761 E F0
-(,).73 E F2(RET)3.761 E F0(,)1.27 E F2(RETURN)108 283.2 Q F0(,)1.1 E F2
-(SPC)2.5 E F0(,).72 E F2(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G
-(nd)-2.5 E F2 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 300 R .209(ws k)-.25 F
+108 415.2 Q F2(Readline Initialization)87 432 Q F0 .091(Readline is cus\
+tomized by putting commands in an initialization \214le \(the)108 444 R
+F4(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591 F .091
+(name of this \214le)2.591 F .196(is tak)108 456 R .196(en from the v)
+-.1 F .196(alue of the)-.25 F F1(INPUTRC)2.696 E F0 -.25(va)2.446 G
+2.696(riable. If).25 F .196(that v)2.696 F .196
+(ariable is unset, the def)-.25 F .196(ault is)-.1 F F4(~/.inputr)2.696
+E(c)-.37 E F0 5.196(.W).31 G .197(hen a)-5.196 F 1.034(program which us\
+es the readline library starts up, the initialization \214le is read, a\
+nd the k)108 468 R 1.334 -.15(ey b)-.1 H 1.034(indings and).15 F -.25
+(va)108 480 S 1.149(riables are set.).25 F 1.149(There are only a fe)
+6.149 F 3.649(wb)-.25 G 1.149(asic constructs allo)-3.649 F 1.15
+(wed in the readline initialization \214le.)-.25 F(Blank)6.15 E .737
+(lines are ignored.)108 492 R .737(Lines be)5.737 F .737(ginning with a)
+-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737(Lines be)5.737 F
+.737(ginning with a)-.15 F F2($)3.237 E F0 .736(indicate conditional)
+3.236 F 2.5(constructs. Other)108 504 R(lines denote k)2.5 E .3 -.15
+(ey b)-.1 H(indings and v).15 E(ariable settings.)-.25 E .986(The def)
+108 520.8 R .986(ault k)-.1 F -.15(ey)-.1 G .987
+(-bindings may be changed with an).15 F F4(inputr)3.497 E(c)-.37 E F0
+3.487(\214le. Other)3.797 F .987(programs that use this library may)
+3.487 F(add their o)108 532.8 Q(wn commands and bindings.)-.25 E -.15
+(Fo)108 549.6 S 2.5(re).15 G(xample, placing)-2.65 E
+(M\255Control\255u: uni)144 566.4 Q -.15(ve)-.25 G(rsal\255ar).15 E
+(gument)-.18 E(or)108 578.4 Q(C\255Meta\255u: uni)144 590.4 Q -.15(ve)
+-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 602.4 Q F4(inputr)
+2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)
+-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F4(univer)2.5 E
+(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.261(The follo)108 619.2 R
+1.261(wing symbolic character names are recognized:)-.25 F F4 -.4(RU)
+3.761 G(BOUT).4 E F0(,)1.27 E F4(DEL)3.761 E F0(,).53 E F4(ESC)3.761 E
+F0(,).72 E F4(LFD)3.761 E F0(,).28 E F4(NEWLINE)3.76 E F0(,).73 E F4
+(RET)3.76 E F0(,)1.27 E F4(RETURN)108 631.2 Q F0(,)1.1 E F4(SPC)2.5 E F0
+(,).72 E F4(SP)2.5 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E F4
+-.5(TA)2.5 G(B).5 E F0(.).27 E .209
+(In addition to command names, readline allo)108 648 R .209(ws k)-.25 F
-.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 312 Q F2(macr)2.5 E(o)-.45 E F0(\).)A F1
-(Readline K)87 328.8 Q(ey Bindings)-.25 E F0 .366
-(The syntax for controlling k)108 340.8 R .666 -.15(ey b)-.1 H .366
-(indings in the).15 F F2(inputr)2.876 E(c)-.37 E F0 .366
+-.1 H(s).15 E(pressed \(a)108 660 Q F4(macr)2.5 E(o)-.45 E F0(\).)A F2
+(Readline K)87 676.8 Q(ey Bindings)-.25 E F0 .366
+(The syntax for controlling k)108 688.8 R .666 -.15(ey b)-.1 H .366
+(indings in the).15 F F4(inputr)2.876 E(c)-.37 E F0 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .383(command or the te)108 352.8 R .383(xt of a macro and a k)
+5.366 F .382(command or the te)108 700.8 R .383(xt of a macro and a k)
-.15 F .683 -.15(ey s)-.1 H .383
(equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 364.8 R 3.353(ow)-.1 G .853
+(\214ed in one of tw)108 712.8 R 3.353(ow)-.1 G .853
(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
-(ame, possibly with).15 F F2(Meta\255)3.353 E F0(or)3.353 E F2(Contr)
+(ame, possibly with).15 F F4(Meta\255)3.353 E F0(or)3.353 E F4(Contr)
3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 376.8 Q 1.542(When using the form)108 393.6 R F1
--.1(ke)4.042 G(yname).1 E F0(:)A F2(function\255name).833 E F0(or)4.042
-E F2(macr)4.042 E(o)-.45 E F0(,)A F2 -.1(ke)4.042 G(yname)-.2 E F0 1.542
-(is the name of a k)4.222 F 1.841 -.15(ey s)-.1 H 1.541(pelled out in)
-.15 F 2.5(English. F)108 405.6 R(or e)-.15 E(xample:)-.15 E
-(Control-u: uni)144 429.6 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
-E(Meta-Rubout: backw)144 441.6 Q(ard-kill-w)-.1 E(ord)-.1 E
-(Control-o: "> output")144 453.6 Q .698(In the abo)108 470.4 R .998 -.15
+(ey)-.1 G(sequence.)108 724.8 Q(GNU Bash 4.3)72 768 Q(2014 February 2)
+141.79 E(36)190.95 E 0 Cg EP
+%%Page: 37 37
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 1.541(When using the form)108 84 R/F1 10/Times-Bold@0 SF -.1(ke)
+4.041 G(yname).1 E F0(:)A/F2 10/Times-Italic@0 SF(function\255name).833
+E F0(or)4.041 E F2(macr)4.042 E(o)-.45 E F0(,)A F2 -.1(ke)4.042 G(yname)
+-.2 E F0 1.542(is the name of a k)4.222 F 1.842 -.15(ey s)-.1 H 1.542
+(pelled out in).15 F 2.5(English. F)108 96 R(or e)-.15 E(xample:)-.15 E
+(Control-u: uni)144 120 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E
+(Meta-Rubout: backw)144 132 Q(ard-kill-w)-.1 E(ord)-.1 E
+(Control-o: "> output")144 144 Q .699(In the abo)108 160.8 R .998 -.15
(ve ex)-.15 H(ample,).15 E F2(C\255u)3.038 E F0 .698
(is bound to the function)3.448 F F1(uni)3.198 E -.1(ve)-.1 G
(rsal\255ar).1 E(gument)-.1 E F0(,)A F2(M\255DEL)3.878 E F0 .698
-(is bound to the func-)3.728 F(tion)108 482.4 Q F1
-(backward\255kill\255w)2.759 E(ord)-.1 E F0 2.759(,a)C(nd)-2.759 E F2
-(C\255o)2.599 E F0 .258(is bound to run the macro e)2.939 F .258
+(is bound to the func-)3.728 F(tion)108 172.8 Q F1
+(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F2
+(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-494.4 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .055(In the second form,)108 511.2 R F1("k)2.555
-E(eyseq")-.1 E F0(:)A F2(function\255name).833 E F0(or)2.555 E F2(macr)
-2.555 E(o)-.45 E F0(,)A F1 -.1(ke)2.555 G(yseq).1 E F0(dif)2.556 E .056
-(fers from)-.25 F F1 -.1(ke)2.556 G(yname).1 E F0(abo)2.556 E .356 -.15
-(ve i)-.15 H 2.556(nt).15 G .056(hat strings)-2.556 F 1.284
-(denoting an entire k)108 523.2 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+184.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 201.6 R F1("k)2.556
+E(eyseq")-.1 E F0(:)A F2(function\255name).833 E F0(or)2.556 E F2(macr)
+2.556 E(o)-.45 E F0(,)A F1 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
+(fers from)-.25 F F1 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
+(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
+(denoting an entire k)108 213.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .385(GNU Emacs style k)108 535.2 R .685 -.15(ey e)-.1 H
-.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .386
-(xample, b)-.15 F .386(ut the symbolic character names)-.2 F
-(are not recognized.)108 547.2 Q("\\C\255u": uni)144 571.2 Q -.15(ve)
+(Some)6.284 E .386(GNU Emacs style k)108 225.6 R .686 -.15(ey e)-.1 H
+.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
+(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
+(are not recognized.)108 237.6 Q("\\C\255u": uni)144 261.6 Q -.15(ve)
-.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 583.2 Q
-("\\e[11~": "Function K)144 595.2 Q .3 -.15(ey 1)-.25 H(").15 E .315
-(In this e)108 612 R(xample,)-.15 E F2(C\255u)2.655 E F0 .315(is ag)
-3.065 F .315(ain bound to the function)-.05 F F1(uni)2.815 E -.1(ve)-.1
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 273.6 Q
+("\\e[11~": "Function K)144 285.6 Q .3 -.15(ey 1)-.25 H(").15 E .314
+(In this e)108 302.4 R(xample,)-.15 E F2(C\255u)2.654 E F0 .314(is ag)
+3.064 F .315(ain bound to the function)-.05 F F1(uni)2.815 E -.1(ve)-.1
G(rsal\255ar).1 E(gument)-.1 E F0(.)A F2 .315(C\255x C\255r)5.155 F F0
-.314(is bound to the func-)3.544 F(tion)108 624 Q F1 -.18(re)2.5 G<ad72>
-.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F2(ESC [ 1 1 ~)
-3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F4(Function Key 1)
-2.5 E F0(.)A(The full set of GNU Emacs style escape sequences is)108
-640.8 Q F1<5c43ad>144 652.8 Q F0(control pre\214x)20.3 E F1<5c4dad>144
-664.8 Q F0(meta pre\214x)18.08 E F1(\\e)144 676.8 Q F0
-(an escape character)28.78 E F1(\\\\)144 688.8 Q F0(backslash)30.44 E F1
-(\\")144 700.8 Q F0(literal ")27.67 E F1<5c08>144 712.8 Q F0
-(literal \010)30.44 E(In addition to the GNU Emacs style escape sequenc\
-es, a second set of backslash escapes is a)108 729.6 Q -.25(va)-.2 G
-(ilable:).25 E(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(35)
-185.955 E 0 Cg EP
-%%Page: 36 36
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(\\a)144 84 Q F0(alert \(bell\))28.22 E F1
-(\\b)144 96 Q F0(backspace)27.66 E F1(\\d)144 108 Q F0(delete)27.66 E F1
-(\\f)144 120 Q F0(form feed)29.89 E F1(\\n)144 132 Q F0(ne)27.66 E
-(wline)-.25 E F1(\\r)144 144 Q F0(carriage return)28.78 E F1(\\t)144 156
-Q F0(horizontal tab)29.89 E F1(\\v)144 168 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F1(\\)144 180 Q/F2 10/Times-Italic@0 SF(nnn)A F0
+.315(is bound to the func-)3.545 F(tion)108 314.4 Q F1 -.18(re)2.5 G
+<ad72>.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F2
+(ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F3
+(Function Key 1)2.5 E F0(.)A
+(The full set of GNU Emacs style escape sequences is)108 331.2 Q F1
+<5c43ad>144 343.2 Q F0(control pre\214x)20.3 E F1<5c4dad>144 355.2 Q F0
+(meta pre\214x)18.08 E F1(\\e)144 367.2 Q F0(an escape character)28.78 E
+F1(\\\\)144 379.2 Q F0(backslash)30.44 E F1(\\")144 391.2 Q F0
+(literal ")27.67 E F1<5c08>144 403.2 Q F0(literal \010)30.44 E(In addit\
+ion to the GNU Emacs style escape sequences, a second set of backslash \
+escapes is a)108 420 Q -.25(va)-.2 G(ilable:).25 E F1(\\a)144 432 Q F0
+(alert \(bell\))28.22 E F1(\\b)144 444 Q F0(backspace)27.66 E F1(\\d)144
+456 Q F0(delete)27.66 E F1(\\f)144 468 Q F0(form feed)29.89 E F1(\\n)144
+480 Q F0(ne)27.66 E(wline)-.25 E F1(\\r)144 492 Q F0(carriage return)
+28.78 E F1(\\t)144 504 Q F0(horizontal tab)29.89 E F1(\\v)144 516 Q F0
+-.15(ve)28.22 G(rtical tab).15 E F1(\\)144 528 Q F2(nnn)A F0
(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)144
-192 Q F2(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
+540 Q F2(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E
-2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.141
-(When entering the te)108 208.8 R 1.141(xt of a macro, single or double\
- quotes must be used to indicate a macro de\214nition.)-.15 F .09
-(Unquoted te)108 220.8 R .09(xt is assumed to be a function name.)-.15 F
-.089(In the macro body)5.089 F 2.589(,t)-.65 G .089
-(he backslash escapes described abo)-2.589 F -.15(ve)-.15 G(are e)108
-232.8 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.142
+(When entering the te)108 556.8 R 1.141(xt of a macro, single or double\
+ quotes must be used to indicate a macro de\214nition.)-.15 F .089
+(Unquoted te)108 568.8 R .089(xt is assumed to be a function name.)-.15
+F .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
+(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G(are e)108
+580.8 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
(ther character in the macro te)-2.5 E(xt, including " and \010.)-.15 E
-F1(Bash)108 249.6 Q F0(allo)2.929 E .429(ws the current readline k)-.25
-F .729 -.15(ey b)-.1 H .429
-(indings to be displayed or modi\214ed with the).15 F F1(bind)2.93 E F0
--.2(bu)2.93 G .43(iltin command.).2 F .046
-(The editing mode may be switched during interacti)108 261.6 R .346 -.15
-(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.545 E F0 .045
-(option to the)2.545 F F1(set)2.545 E F0 -.2(bu)2.545 G .045
-(iltin command).2 F(\(see)108 273.6 Q/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
+F1(Bash)108 597.6 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
+.73 -.15(ey b)-.1 H .429(indings to be displayed or modi\214ed with the)
+.15 F F1(bind)2.929 E F0 -.2(bu)2.929 G .429(iltin command.).2 F .045
+(The editing mode may be switched during interacti)108 609.6 R .345 -.15
+(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.546 E F0 .046
+(option to the)2.546 F F1(set)2.546 E F0 -.2(bu)2.546 G .046
+(iltin command).2 F(\(see)108 621.6 Q/F4 9/Times-Bold@0 SF(SHELL B)2.5 E
(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1
-(Readline V)87 290.4 Q(ariables)-.92 E F0 .043(Readline has v)108 302.4
+(Readline V)87 638.4 Q(ariables)-.92 E F0 .044(Readline has v)108 650.4
R .043(ariables that can be used to further customize its beha)-.25 F
(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
-(riable may be set in the).25 F F2(inpu-)2.554 E(tr)108 314.4 Q(c)-.37 E
-F0(\214le with a statement of the form)2.81 E F1(set)144 331.2 Q F2
+(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 662.4 Q(c)-.37 E
+F0(\214le with a statement of the form)2.81 E F1(set)144 679.2 Q F2
(variable\255name value)2.5 E F0 .79(Except where noted, readline v)108
-348 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F(alues)
+696 R .79(ariables can tak)-.25 F 3.29(et)-.1 G .79(he v)-3.29 F(alues)
-.25 E F1(On)3.29 E F0(or)3.29 E F1(Off)3.29 E F0 .79(\(without re)3.29
-F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)5.79 E .448(nized v)
-108 360 R .448(ariable names are ignored.)-.25 F .448(When a v)5.448 F
-.448(ariable v)-.25 F .448(alue is read, empty or null v)-.25 F .449
-(alues, "on" \(case-insensi-)-.25 F(ti)108 372 Q -.15(ve)-.25 G .468
+F -.05(ga)-.15 G .79(rd to case\).).05 F(Unrecog-)5.79 E .449(nized v)
+108 708 R .448(ariable names are ignored.)-.25 F .448(When a v)5.448 F
+.448(ariable v)-.25 F .448(alue is read, empty or null v)-.25 F .448
+(alues, "on" \(case-insensi-)-.25 F(ti)108 720 Q -.15(ve)-.25 G .467
(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F1(On)
2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25
-F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .467
-(he v)-5.468 F .467(ariables and their def)-.25 F(ault)-.1 E -.25(va)108
-384 S(lues are:).25 E F1(bell\255style \(audible\))108 400.8 Q F0 .01
-(Controls what happens when readline w)144 412.8 R .011
-(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none)
-2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
-.94(rings the bell.)144 424.8 R .94(If set to)5.94 F F1(visible)3.44 E
-F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25
-(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0
-(,)A(readline attempts to ring the terminal')144 436.8 Q 2.5(sb)-.55 G
-(ell.)-2.5 E F1(bind\255tty\255special\255chars \(On\))108 448.8 Q F0
-.055(If set to)144 460.8 R F1(On)2.555 E F0 2.555(,r)C .056(eadline att\
-empts to bind the control characters treated specially by the k)-2.555 F
-(ernel')-.1 E 2.556(st)-.55 G(ermi-)-2.556 E(nal dri)144 472.8 Q -.15
+F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .468
+(he v)-5.468 F .468(ariables and their def)-.25 F(ault)-.1 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(37)190.95 E 0 Cg EP
+%%Page: 38 38
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E -.25(va)108 84 S(lues are:).25 E/F1 10/Times-Bold@0 SF
+(bell\255style \(audible\))108 100.8 Q F0 .011
+(Controls what happens when readline w)144 112.8 R .011
+(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F1(none)2.51
+E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
+(rings the bell.)144 124.8 R .94(If set to)5.94 F F1(visible)3.44 E F0
+3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
+-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
+(readline attempts to ring the terminal')144 136.8 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 148.8 Q F0 .056
+(If set to)144 160.8 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
+s to bind the control characters treated specially by the k)-2.556 F
+(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 172.8 Q -.15
(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
--.25 G(lents.).25 E F1(comment\255begin \(`)108 484.8 Q(`#')-.63 E('\))
--.63 E F0 .885(The string that is inserted when the readline)144 496.8 R
-F1(insert\255comment)3.385 E F0 .884(command is e)3.384 F -.15(xe)-.15 G
-3.384(cuted. This).15 F(com-)3.384 E(mand is bound to)144 508.8 Q F1
+-.25 G(lents.).25 E F1(color)108 184.8 Q(ed\255stats \(Off\))-.18 E F0
+1.579(If set to)144 196.8 R F1(On)4.079 E F0 4.079(,r)C 1.579
+(eadline displays possible completions using dif)-4.079 F 1.58
+(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144 208.8 R
+(color de\214nitions are tak)2.5 E(en from the v)-.1 E(alue of the)-.25
+E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F1
+(comment\255begin \(`)108 220.8 Q(`#')-.63 E('\))-.63 E F0 .885
+(The string that is inserted when the readline)144 232.8 R F1
+(insert\255comment)3.385 E F0 .884(command is e)3.384 F -.15(xe)-.15 G
+3.384(cuted. This).15 F(com-)3.384 E(mand is bound to)144 244.8 Q F1
(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0
-(in vi command mode.)2.5 E F1(completion\255ignor)108 520.8 Q
-(e\255case \(Off\))-.18 E F0(If set to)144 532.8 Q F1(On)2.5 E F0 2.5
+(in vi command mode.)2.5 E F1(completion\255ignor)108 256.8 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 268.8 Q F1(On)2.5 E F0 2.5
(,r)C(eadline performs \214lename matching and completion in a case\255\
insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1(completion\255pr)
-108 544.8 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\
+108 280.8 Q(e\214x\255display\255length \(0\))-.18 E F0 .829(The length\
in characters of the common pre\214x of a list of possible completions\
- that is displayed)144 556.8 R 1.275(without modi\214cation.)144 568.8 R
+ that is displayed)144 292.8 R 1.275(without modi\214cation.)144 304.8 R
1.275(When set to a v)6.275 F 1.274
(alue greater than zero, common pre\214x)-.25 F 1.274
-(es longer than this)-.15 F -.25(va)144 580.8 S(lue are replaced with a\
+(es longer than this)-.15 F -.25(va)144 316.8 S(lue are replaced with a\
n ellipsis when displaying possible completions.).25 E F1
-(completion\255query\255items \(100\))108 592.8 Q F0 .529
-(This determines when the user is queried about vie)144 604.8 R .53
+(completion\255query\255items \(100\))108 328.8 Q F0 .529
+(This determines when the user is queried about vie)144 340.8 R .53
(wing the number of possible completions gen-)-.25 F .561(erated by the)
-144 616.8 R F1(possible\255completions)3.061 E F0 3.061(command. It)
+144 352.8 R F1(possible\255completions)3.061 E F0 3.061(command. It)
3.061 F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56
(ger v)-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144
-628.8 R .783(If the number of possible completions is greater than or e\
-qual to the v)5.782 F .783(alue of this)-.25 F -.25(va)144 640.8 S .237
+364.8 R .783(If the number of possible completions is greater than or e\
+qual to the v)5.782 F .783(alue of this)-.25 F -.25(va)144 376.8 S .237
(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
-.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 652.8 Q F1(con)108
-664.8 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 676.8
+.237(re simply listed)-2.737 F(on the terminal.)144 388.8 Q F1(con)108
+400.8 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 412.8
R F1(On)3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F -.15(ve)-.4
G .613(rt characters with the eighth bit set to an ASCII k).15 F .913
-.15(ey s)-.1 H .613(equence by).15 F .541
(stripping the eighth bit and pre\214xing an escape character \(in ef)
-144 688.8 R .541(fect, using escape as the)-.25 F F2 .541(meta pr)3.041
-F(e-)-.37 E<8c78>144 700.8 Q F0(\).)A(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(36)185.955 E 0 Cg EP
-%%Page: 37 37
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(disable\255completion \(Off\))108 84 Q F0
-.038(If set to)144 96 R F1(On)2.538 E F0 2.538(,r)C .038
-(eadline will inhibit w)-2.538 F .038(ord completion.)-.1 F .038
+144 424.8 R .541(fect, using escape as the)-.25 F/F2 10/Times-Italic@0
+SF .541(meta pr)3.041 F(e-)-.37 E<8c78>144 436.8 Q F0(\).)A F1
+(disable\255completion \(Off\))108 448.8 Q F0 .038(If set to)144 460.8 R
+F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038
+(ord completion.)-.1 F .038
(Completion characters will be inserted into the)5.038 F(line as if the)
-144 108 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
-(.)A F1(editing\255mode \(emacs\))108 120 Q F0 .142
-(Controls whether readline be)144 132 R .141(gins with a set of k)-.15 F
-.441 -.15(ey b)-.1 H .141(indings similar to).15 F/F2 10/Times-Italic@0
-SF(Emacs)2.641 E F0(or)2.641 E F2(vi)2.641 E F0(.)A F1(editing\255mode)
-5.141 E F0(can be set to either)144 144 Q F1(emacs)2.5 E F0(or)2.5 E F1
-(vi)2.5 E F0(.)A F1(echo\255contr)108 156 Q(ol\255characters \(On\))-.18
-E F0 1.21(When set to)144 168 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71
-G 1.211(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211
+144 472.8 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
+F0(.)A F1(editing\255mode \(emacs\))108 484.8 Q F0 .142
+(Controls whether readline be)144 496.8 R .141(gins with a set of k)-.15
+F .441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.641 E F0
+(or)2.641 E F2(vi)2.641 E F0(.)A F1(editing\255mode)5.141 E F0
+(can be set to either)144 508.8 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(echo\255contr)108 520.8 Q(ol\255characters \(On\))-.18 E F0
+1.21(When set to)144 532.8 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71 G
+1.211(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211
(upport it, readline echoes a character)-3.711 F
-(corresponding to a signal generated from the k)144 180 Q -.15(ey)-.1 G
-(board.).15 E F1(enable\255k)108 192 Q(eypad \(Off\))-.1 E F0 .893
-(When set to)144 204 R F1(On)3.393 E F0 3.393(,r)C .893
+(corresponding to a signal generated from the k)144 544.8 Q -.15(ey)-.1
+G(board.).15 E F1(enable\255k)108 556.8 Q(eypad \(Off\))-.1 E F0 .893
+(When set to)144 568.8 R F1(On)3.393 E F0 3.393(,r)C .893
(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
.893(pad when it is called.).15 F .892(Some sys-)5.893 F
-(tems need this to enable the arro)144 216 Q 2.5(wk)-.25 G -.15(ey)-2.6
-G(s.).15 E F1(enable\255meta\255k)108 228 Q(ey \(On\))-.1 E F0 .64
-(When set to)144 240 R F1(On)3.14 E F0 3.14(,r)C .64
+(tems need this to enable the arro)144 580.8 Q 2.5(wk)-.25 G -.15(ey)
+-2.6 G(s.).15 E F1(enable\255meta\255k)108 592.8 Q(ey \(On\))-.1 E F0
+.64(When set to)144 604.8 R F1(On)3.14 E F0 3.14(,r)C .64
(eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64
(eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64
-(he terminal claims to support).15 F(when it is called.)144 252 Q
+(he terminal claims to support).15 F(when it is called.)144 616.8 Q
(On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H
2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1
-(expand\255tilde \(Off\))108 264 Q F0(If set to)144 276 Q F1(On)2.5 E F0
-2.5(,t)C(ilde e)-2.5 E(xpansion is performed when readline attempts w)
--.15 E(ord completion.)-.1 E F1(history\255pr)108 288 Q(eser)-.18 E -.1
-(ve)-.1 G(\255point \(Off\)).1 E F0 1.339(If set to)144 300 R F1(On)
-3.839 E F0 3.839(,t)C 1.338(he history code attempts to place point at \
-the same location on each history line)-3.839 F(retrie)144 312 Q -.15
-(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G
-(ious-history).15 E F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1
-(history\255size \(0\))108 324 Q F0 .462
-(Set the maximum number of history entries sa)144 336 R -.15(ve)-.2 G
-2.963(di).15 G 2.963(nt)-2.963 G .463(he history list.)-2.963 F .463
-(If set to zero, the number of)5.463 F
-(entries in the history list is not limited.)144 348 Q F1
-(horizontal\255scr)108 360 Q(oll\255mode \(Off\))-.18 E F0 .449
-(When set to)144 372 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448
-(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448
+(expand\255tilde \(Off\))108 628.8 Q F0(If set to)144 640.8 Q F1(On)2.5
+E F0 2.5(,t)C(ilde e)-2.5 E
+(xpansion is performed when readline attempts w)-.15 E(ord completion.)
+-.1 E F1(history\255pr)108 652.8 Q(eser)-.18 E -.1(ve)-.1 G
+(\255point \(Off\)).1 E F0 1.339(If set to)144 664.8 R F1(On)3.839 E F0
+3.839(,t)C 1.338(he history code attempts to place point at the same lo\
+cation on each history line)-3.839 F(retrie)144 676.8 Q -.15(ve)-.25 G
+2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0
+(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(0\))108
+688.8 Q F0 .948(Set the maximum number of history entries sa)144 700.8 R
+-.15(ve)-.2 G 3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)
+-3.448 F .949(If set to zero, an)5.948 F 3.449(ye)-.15 G(xisting)-3.599
+E .483(history entries are deleted and no ne)144 712.8 R 2.983(we)-.25 G
+.483(ntries are sa)-2.983 F -.15(ve)-.2 G 2.983(d. If).15 F .482
+(set to a v)2.983 F .482(alue less than zero, the num-)-.25 F
+(ber of history entries is not limited.)144 724.8 Q(By def)5 E
+(ault, the number of history entries is not limited.)-.1 E(GNU Bash 4.3)
+72 768 Q(2014 February 2)141.79 E(38)190.95 E 0 Cg EP
+%%Page: 39 39
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(horizontal\255scr)108 84 Q
+(oll\255mode \(Off\))-.18 E F0 .448(When set to)144 96 R F1(On)2.948 E
+F0 2.948(,m)C(ak)-2.948 E .448
+(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .449
(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
when it becomes longer than the screen width rather than wrapping to a\
- ne)144 384 R(w)-.25 E(line.)144 396 Q F1(input\255meta \(Off\))108 408
-Q F0 .228(If set to)144 420 R F1(On)2.728 E F0 2.728(,r)C .227(eadline \
+ ne)144 108 R(w)-.25 E(line.)144 120 Q F1(input\255meta \(Off\))108 132
+Q F0 .227(If set to)144 144 R F1(On)2.727 E F0 2.727(,r)C .228(eadline \
will enable eight-bit input \(that is, it will not strip the high bit f\
-rom the char)-2.728 F(-)-.2 E .956(acters it reads\), re)144 432 R -.05
+rom the char)-2.727 F(-)-.2 E .957(acters it reads\), re)144 156 R -.05
(ga)-.15 G .956(rdless of what the terminal claims it can support.).05 F
-.957(The name)5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F
-(synon)144 444 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 456 Q
+.956(The name)5.956 F F1(meta\255\215ag)3.456 E F0 .956(is a)3.456 F
+(synon)144 168 Q(ym for this v)-.15 E(ariable.)-.25 E F1(isear)108 180 Q
(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))-.63 E F0 .439(\
The string of characters that should terminate an incremental search wi\
-thout subsequently e)144 468 R -.15(xe)-.15 G(cut-).15 E .934
-(ing the character as a command.)144 480 R .935(If this v)5.935 F .935
-(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935
-(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 492 Q F2
-(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 504 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
-516 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
-(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02
-(emacs, emacs\255standar)4.52 F(d,)-.37 E .068
-(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 528 R F0 2.568(,a)C
-(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0 .068
-(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
-2.569 E F0(;)A F2(emacs)2.569 E F0 1.544(is equi)144 540 R -.25(va)-.25
-G 1.544(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
+thout subsequently e)144 192 R -.15(xe)-.15 G(cut-).15 E .935
+(ing the character as a command.)144 204 R .935(If this v)5.935 F .935
+(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
+(alue, the characters)-3.684 F/F2 10/Times-Italic@0 SF(ESC)3.434 E F0
+(and)144 216 Q F2(C\255J)2.5 E F0(will terminate an incremental search.)
+2.5 E F1 -.1(ke)108 228 S(ymap \(emacs\)).1 E F0 2.02
+(Set the current readline k)144 240 R -.15(ey)-.1 G 4.521(map. The).15 F
+2.021(set of v)4.521 F 2.021(alid k)-.25 F -.15(ey)-.1 G 2.021
+(map names is).15 F F2 2.021(emacs, emacs\255standar)4.521 F(d,)-.37 E
+.069(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 252 R F0 2.568
+(,a)C(nd)-2.568 E F2(vi\255insert)2.568 E F0(.).68 E F2(vi)5.068 E F0
+.068(is equi)2.568 F -.25(va)-.25 G .068(lent to).25 F F2(vi\255command)
+2.568 E F0(;)A F2(emacs)2.568 E F0 1.543(is equi)144 264 R -.25(va)-.25
+G 1.543(lent to).25 F F2(emacs\255standar)4.044 E(d)-.37 E F0 6.544(.T)C
1.544(he def)-6.544 F 1.544(ault v)-.1 F 1.544(alue is)-.25 F F2(emacs)
4.044 E F0 4.044(;t).27 G 1.544(he v)-4.044 F 1.544(alue of)-.25 F F1
-(editing\255mode)4.043 E F0(also)4.043 E(af)144 552 Q(fects the def)-.25
-E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1(mark\255dir)108 564 Q
-(ectories \(On\))-.18 E F0(If set to)144 576 Q F1(On)2.5 E F0 2.5(,c)C
+(editing\255mode)4.044 E F0(also)4.044 E(af)144 276 Q(fects the def)-.25
+E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)108 288 S
+(yseq\255timeout \(500\)).1 E F0 .368(Speci\214es the duration)144 300 R
+F2 -.37(re)2.867 G(adline).37 E F0 .367(will w)2.867 F .367
+(ait for a character when reading an ambiguous k)-.1 F .667 -.15(ey s)
+-.1 H(equence).15 E 1.356(\(one that can form a complete k)144 312 R
+1.656 -.15(ey s)-.1 H 1.356(equence using the input read so f).15 F(ar)
+-.1 E 3.856(,o)-.4 G 3.856(rc)-3.856 G 1.356(an tak)-3.856 F 3.856(ea)
+-.1 G(dditional)-3.856 E .32(input to complete a longer k)144 324 R .62
+-.15(ey s)-.1 H 2.82(equence\). If).15 F .32(no input is recei)2.82 F
+-.15(ve)-.25 G 2.82(dw).15 G .32(ithin the timeout,)-2.82 F F2 -.37(re)
+2.82 G(adline).37 E F0(will)2.82 E .906(use the shorter b)144 336 R .907
+(ut complete k)-.2 F 1.207 -.15(ey s)-.1 H 3.407(equence. The).15 F -.25
+(va)3.407 G .907(lue is speci\214ed in milliseconds, so a v).25 F .907
+(alue of)-.25 F .05(1000 means that)144 348 R F2 -.37(re)2.55 G(adline)
+.37 E F0 .05(will w)2.55 F .05(ait one second for additional input.)-.1
+F .05(If this v)5.05 F .05(ariable is set to a v)-.25 F(alue)-.25 E .051
+(less than or equal to zero, or to a non-numeric v)144 360 R(alue,)-.25
+E F2 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051
+(ait until another k)-.1 F .352 -.15(ey i)-.1 H 2.552(sp).15 G(ressed)
+-2.552 E(to decide which k)144 372 Q .3 -.15(ey s)-.1 H
+(equence to complete.).15 E F1(mark\255dir)108 384 Q(ectories \(On\))
+-.18 E F0(If set to)144 396 Q F1(On)2.5 E F0 2.5(,c)C
(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F1(mark\255modi\214ed\255lines \(Off\))108 588 Q F0(If set to)144
-600 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
+.15 E F1(mark\255modi\214ed\255lines \(Off\))108 408 Q F0(If set to)144
+420 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
-.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
-(*)A F0(\).)A F1(mark\255symlink)108 612 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 624 R F1(On)2.675 E F0
+(*)A F0(\).)A F1(mark\255symlink)108 432 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 444 R F1(On)2.675 E F0
2.675(,c)C .175
(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 636
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 456
Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 648 Q F0 .193(This v)144 660 R
-.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192
-(auses readline to match \214les whose names be)-2.693 F .192
-(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E .456
-(\214les\) when performing \214lename completion.)144 672 R .456
+(match\255hidden\255\214les \(On\))108 468 Q F0 .192(This v)144 480 R
+.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
+(auses readline to match \214les whose names be)-2.692 F .193
+(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E .457
+(\214les\) when performing \214lename completion.)144 492 R .456
(If set to)5.456 F F1(Off)2.956 E F0 2.956(,t)C .456(he leading `.)
--2.956 F 2.956('m)-.7 G .457(ust be supplied by the)-2.956 F
-(user in the \214lename to be completed.)144 684 Q F1
-(menu\255complete\255display\255pr)108 696 Q(e\214x \(Off\))-.18 E F0
-1.586(If set to)144 708 R F1(On)4.086 E F0 4.086(,m)C 1.585(enu complet\
+-2.956 F 2.956('m)-.7 G .456(ust be supplied by the)-2.956 F
+(user in the \214lename to be completed.)144 504 Q F1
+(menu\255complete\255display\255pr)108 516 Q(e\214x \(Off\))-.18 E F0
+1.585(If set to)144 528 R F1(On)4.085 E F0 4.085(,m)C 1.585(enu complet\
ion displays the common pre\214x of the list of possible completions)
--4.086 F(\(which may be empty\) before c)144 720 Q
-(ycling through the list.)-.15 E(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(37)185.955 E 0 Cg EP
-%%Page: 38 38
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(output\255meta \(Off\))108 84 Q F0 .506
-(If set to)144 96 R F1(On)3.006 E F0 3.006(,r)C .507(eadline will displ\
-ay characters with the eighth bit set directly rather than as a meta-)
--3.006 F(pre\214x)144 108 Q(ed escape sequence.)-.15 E F1
-(page\255completions \(On\))108 120 Q F0 .809(If set to)144 132 R F1(On)
-3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F/F2 10
-/Times-Italic@0 SF(mor)3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
+-4.085 F(\(which may be empty\) before c)144 540 Q
+(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 552 Q F0
+.507(If set to)144 564 R F1(On)3.007 E F0 3.007(,r)C .507(eadline will \
+display characters with the eighth bit set directly rather than as a me\
+ta-)-3.007 F(pre\214x)144 576 Q(ed escape sequence.)-.15 E F1
+(page\255completions \(On\))108 588 Q F0 .808(If set to)144 600 R F1(On)
+3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F F2(mor)
+3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
(ager to display a screenful of possible comple-)-3.308 F
-(tions at a time.)144 144 Q F1
-(print\255completions\255horizontally \(Off\))108 156 Q F0 1.318
-(If set to)144 168 R F1(On)3.818 E F0 3.818(,r)C 1.319(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.818
-F(order)144 180 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1 -2.29 -.18(re v)108 192 T(ert\255all\255at\255newline \(Off\)).08 E
-F0 .699(If set to)144 204 R F1(On)3.199 E F0 3.199(,r)C .699
+(tions at a time.)144 612 Q F1
+(print\255completions\255horizontally \(Off\))108 624 Q F0 1.319
+(If set to)144 636 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
+play completions with matches sorted horizontally in alphabetical)-3.819
+F(order)144 648 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
+E F1 -2.29 -.18(re v)108 660 T(ert\255all\255at\255newline \(Off\)).08 E
+F0 .698(If set to)144 672 R F1(On)3.198 E F0 3.198(,r)C .699
(eadline will undo all changes to history lines before returning when)
--3.199 F F1(accept\255line)3.198 E F0(is)3.198 E -.15(exe)144 216 S
+-3.198 F F1(accept\255line)3.199 E F0(is)3.199 E -.15(exe)144 684 S
2.686(cuted. By).15 F(def)2.686 E .186
(ault, history lines may be modi\214ed and retain indi)-.1 F .186
-(vidual undo lists across calls to)-.25 F F1 -.18(re)144 228 S(adline)
-.18 E F0(.)A F1(sho)108 240 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
-F0 .304(This alters the def)144 252 R .304(ault beha)-.1 F .304
-(vior of the completion functions.)-.2 F .304(If set to)5.304 F F1(On)
-2.804 E F0 2.803(,w)C .303(ords which ha)-2.903 F .603 -.15(ve m)-.2 H
-(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 264 R(bell.)144 276 Q F1
-(sho)108 288 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
-(This alters the def)144 300 R 5.346(ault beha)-.1 F 5.345
-(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
--.1 F F1(sho)144 312 Q(w\255all\255if\255ambiguous)-.1 E F0 6.69(.I)C
-4.19(fs)-6.69 G 1.691(et to)-4.19 F F1(On)4.191 E F0 4.191(,w)C 1.691
+(vidual undo lists across calls to)-.25 F F1 -.18(re)144 696 S(adline)
+.18 E F0(.)A(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(39)190.95 E
+0 Cg EP
+%%Page: 40 40
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(sho)108 84 Q
+(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .303(This alters the def)
+144 96 R .303(ault beha)-.1 F .304(vior of the completion functions.)-.2
+F .304(If set to)5.304 F F1(On)2.804 E F0 2.804(,w)C .304(ords which ha)
+-2.904 F .604 -.15(ve m)-.2 H(ore).15 E 1.264(than one possible complet\
+ion cause the matches to be listed immediately instead of ringing the)
+144 108 R(bell.)144 120 Q F1(sho)108 132 Q
+(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345
+(This alters the def)144 144 R 5.345(ault beha)-.1 F 5.345
+(vior of the completion functions in a f)-.2 F 5.346(ashion similar to)
+-.1 F F1(sho)144 156 Q(w\255all\255if\255ambiguous)-.1 E F0 6.691(.I)C
+4.191(fs)-6.691 G 1.691(et to)-4.191 F F1(On)4.191 E F0 4.191(,w)C 1.691
(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691
-(ore than one possible completion).15 F 1.04(without an)144 324 R 3.54
+(ore than one possible completion).15 F 1.039(without an)144 168 R 3.539
(yp)-.15 G 1.039
-(ossible partial completion \(the possible completions don')-3.54 F
-3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
-es to be listed immediately instead of ringing the bell.)144 336 Q F1
-(skip\255completed\255text \(Off\))108 348 Q F0 .094(If set to)144 360 R
+(ossible partial completion \(the possible completions don')-3.539 F
+3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\
+s to be listed immediately instead of ringing the bell.)144 180 Q F1
+(sho)108 192 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 1.019
+(If set to)144 204 R F1(On)3.519 E F0 3.519(,a)C 1.018
+(dd a character to the be)-3.519 F 1.018
+(ginning of the prompt indicating the editing mode: emacs)-.15 F
+(\(@\), vi command \(:\) or vi insertion \(+\).)144 216 Q F1
+(skip\255completed\255text \(Off\))108 228 Q F0 .094(If set to)144 240 R
F1(On)2.594 E F0 2.594(,t)C .095(his alters the def)-2.594 F .095
(ault completion beha)-.1 F .095
-(vior when inserting a single match into the line.)-.2 F(It')144 372 Q
+(vior when inserting a single match into the line.)-.2 F(It')144 252 Q
2.546(so)-.55 G .046(nly acti)-2.546 F .346 -.15(ve w)-.25 H .046
(hen performing completion in the middle of a w).15 F 2.545(ord. If)-.1
F .045(enabled, readline does not)2.545 F 1.394(insert characters from \
-the completion that match characters after point in the w)144 384 R
-1.395(ord being com-)-.1 F(pleted, so portions of the w)144 396 Q
+the completion that match characters after point in the w)144 264 R
+1.395(ord being com-)-.1 F(pleted, so portions of the w)144 276 Q
(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1
-(visible\255stats \(Off\))108 408 Q F0 .847(If set to)144 420 R F1(On)
+(visible\255stats \(Off\))108 288 Q F0 .847(If set to)144 300 R F1(On)
3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
-(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
-(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 432 Q F1
-(Readline Conditional Constructs)87 448.8 Q F0 .05
-(Readline implements a f)108 460.8 R .05(acility similar in spirit to t\
+(st)-.55 G .846(ype as reported by)-3.346 F/F2 10/Times-Italic@0 SF
+(stat)3.346 E F0 .846(\(2\) is appended to the \214lename)B
+(when listing possible completions.)144 312 Q F1
+(Readline Conditional Constructs)87 328.8 Q F0 .05
+(Readline implements a f)108 340.8 R .05(acility similar in spirit to t\
he conditional compilation features of the C preprocessor)-.1 F .097
-(which allo)108 472.8 R .097(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(which allo)108 352.8 R .097(ws k)-.25 F .396 -.15(ey b)-.1 H .096
(indings and v).15 F .096
(ariable settings to be performed as the result of tests.)-.25 F .096
-(There are four parser)5.096 F(directi)108 484.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 501.6 Q F0(The)24.89 E F1($if)2.962 E
+(There are four parser)5.096 F(directi)108 364.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 381.6 Q F0(The)24.89 E F1($if)2.962 E
F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\
editing mode, the terminal being used,)-.25 F .478
-(or the application using readline.)144 513.6 R .477(The te)5.477 F .477
+(or the application using readline.)144 393.6 R .477(The te)5.477 F .477
(xt of the test e)-.15 F .477
(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 525.6 Q F1(mode)144 542.4 Q F0(The)
+(are required to isolate it.)144 405.6 Q F1(mode)144 422.4 Q F0(The)
12.67 E F1(mode=)3.711 E F0 1.211(form of the)3.711 F F1($if)3.711 E F0
(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
(sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 554.4 R .565(may be used in conjunction with the)3.065 F
+(mode. This)180 434.4 R .565(may be used in conjunction with the)3.065 F
F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .735(set bindings in the)180 566.4 R F2(emacs\255standar)3.235 E
+3.065 F .735(set bindings in the)180 446.4 R F2(emacs\255standar)3.235 E
(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)3.235 E F0 -.1(ke)3.235 G .735
-(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 578.4
-Q F1(term)144 595.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696
+(ymaps only if readline is starting)-.05 F(out in emacs mode.)180 458.4
+Q F1(term)144 475.2 Q F0(The)15.46 E F1(term=)3.197 E F0 .696
(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
-(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 607.2 R
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 487.2 R
.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 619.2 Q F1(=)3.232
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 499.2 Q F1(=)3.232
E F0 .732(is tested ag)3.232 F .732(ainst the both full name of the ter\
minal and the portion of the terminal)-.05 F(name before the \214rst)180
-631.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
+511.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E F1(application)144 648 Q F0(The)180 660
+2.5(,f).77 G(or instance.)-2.5 E F1(application)144 528 Q F0(The)180 540
Q F1(application)3.003 E F0 .503
(construct is used to include application-speci\214c settings.)3.003 F
.503(Each program)5.503 F .114(using the readline library sets the)180
-672 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+552 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
(nd an initialization \214le can test for a)-2.614 F .5(particular v)180
-684 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
+564 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
-(ci\214c program.)180 696 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+(ci\214c program.)180 576 R -.15(Fo)5.397 G 2.896(ri).15 G .396
(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
-(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 708 Q
-(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(38)185.955 E 0 Cg EP
-%%Page: 39 39
+(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 588 Q
+(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 612 Q F0
+(Bash)2.5 E 2.5(#Q)180 624 S(uote the current or pre)-2.5 E(vious w)-.25
+E(ord)-.1 E("\\C\255xq": "\\eb\\"\\ef\\"")180 636 Q F1($endif)180 648 Q
+($endif)108 664.8 Q F0(This command, as seen in the pre)9.33 E(vious e)
+-.25 E(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1
+($else)108 681.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5
+E F0(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 698.4 Q F0 .356
+(This directi)144 710.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
+(es a single \214lename as an ar)-.1 F .357
+(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
+144 722.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(40)190.95 E 0 Cg EP
+%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF($if)180 84 Q F0(Bash)2.5 E 2.5(#Q)180 96 S
-(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C\255xq": "\\eb\\"\\ef\\"")180 108 Q F1($endif)180 120 Q($endif)108
-136.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
-(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 153.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
-(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F1($include)108 170.4 Q F0 .356
-(This directi)144 182.4 R .656 -.15(ve t)-.25 H(ak).15 E .356
-(es a single \214lename as an ar)-.1 F .357
-(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 194.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E/F2 10/Times-Italic@0 SF(/etc/inputr)2.5
-E(c)-.37 E F0(:)A F1($include)144 218.4 Q F2(/etc/inputr)5.833 E(c)-.37
-E F1(Sear)87 235.2 Q(ching)-.18 E F0 .835(Readline pro)108 247.2 R .835
+-.35 E/F1 10/Times-Bold@0 SF($include)144 84 Q/F2 10/Times-Italic@0 SF
+(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 100.8 Q(ching)-.18 E F0 .835
+(Readline pro)108 112.8 R .835
(vides commands for searching through the command history \(see)-.15 F
/F3 9/Times-Bold@0 SF(HIST)3.334 E(OR)-.162 E(Y)-.315 E F0(belo)3.084 E
-.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 259.2 Q
+.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 124.8 Q
(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E
(emental)-.37 E F0(and)3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51
-E .697(Incremental searches be)108 276 R .697
+E .697(Incremental searches be)108 141.6 R .697
(gin before the user has \214nished typing the search string.)-.15 F
.698(As each character of the)5.698 F .113
-(search string is typed, readline displays the ne)108 288 R .112
+(search string is typed, readline displays the ne)108 153.6 R .112
(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
E 5.112(.A)-.55 G(n)-5.112 E .542
-(incremental search requires only as man)108 300 R 3.042(yc)-.15 G .542
-(haracters as needed to \214nd the desired history entry)-3.042 F 5.542
-(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224(acters present in the v)
-108 312 R .224(alue of the)-.25 F F1(isear)2.724 E(ch-terminators)-.18 E
-F0 -.25(va)2.724 G .224
+(incremental search requires only as man)108 165.6 R 3.042(yc)-.15 G
+.542(haracters as needed to \214nd the desired history entry)-3.042 F
+5.542(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224
+(acters present in the v)108 177.6 R .224(alue of the)-.25 F F1(isear)
+2.724 E(ch-terminators)-.18 E F0 -.25(va)2.724 G .224
(riable are used to terminate an incremental search.).25 F .66
-(If that v)108 324 R .66(ariable has not been assigned a v)-.25 F .66
+(If that v)108 189.6 R .66(ariable has not been assigned a v)-.25 F .66
(alue the Escape and Control-J characters will terminate an incre-)-.25
-F .097(mental search.)108 336 R .096(Control-G will abort an incrementa\
-l search and restore the original line.)5.097 F .096(When the search is)
-5.096 F(terminated, the history entry containing the search string beco\
-mes the current line.)108 348 Q 2.938 -.8(To \214)108 364.8 T 1.339(nd \
-other matching entries in the history list, type Control-S or Control-R\
- as appropriate.).8 F 1.339(This will)6.339 F .675(search backw)108
-376.8 R .675(ard or forw)-.1 F .675(ard in the history for the ne)-.1 F
-.674(xt entry matching the search string typed so f)-.15 F(ar)-.1 E
-5.674(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 388.8 R .474 -.15
-(ey s)-.1 H .174
+F .097(mental search.)108 201.6 R .096(Control-G will abort an incremen\
+tal search and restore the original line.)5.097 F .096
+(When the search is)5.096 F(terminated, the history entry containing th\
+e search string becomes the current line.)108 213.6 Q 2.938 -.8(To \214)
+108 230.4 T 1.339(nd other matching entries in the history list, type C\
+ontrol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675
+(search backw)108 242.4 R .675(ard or forw)-.1 F .675
+(ard in the history for the ne)-.1 F .674
+(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.674
+(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 254.4 R .474 -.15(ey s)-.1
+H .174
(equence bound to a readline command will terminate the search and e).15
F -.15(xe)-.15 G .175(cute that command.).15 F -.15(Fo)5.175 G(r).15 E
-.541(instance, a)108 400.8 R F2(ne)3.041 E(wline)-.15 E F0 .541
+.541(instance, a)108 266.4 R F2(ne)3.041 E(wline)-.15 E F0 .541
(will terminate the search and accept the line, thereby e)3.041 F -.15
-(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 412.8
-Q .653(Readline remembers the last incremental search string.)108 429.6
+(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 278.4
+Q .653(Readline remembers the last incremental search string.)108 295.2
R .653(If tw)5.653 F 3.153(oC)-.1 G .653(ontrol-Rs are typed without an)
-3.153 F 3.153(yi)-.15 G(nterv)-3.153 E(en-)-.15 E
-(ing characters de\214ning a ne)108 441.6 Q 2.5(ws)-.25 G
+(ing characters de\214ning a ne)108 307.2 Q 2.5(ws)-.25 G
(earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.)
-2.5 E .567(Non-incremental searches read the entire search string befo\
-re starting to search for matching history lines.)108 458.4 R(The searc\
-h string may be typed by the user or be part of the contents of the cur\
-rent line.)108 470.4 Q F1(Readline Command Names)87 487.2 Q F0 1.391
-(The follo)108 499.2 R 1.391
+re starting to search for matching history lines.)108 324 R(The search \
+string may be typed by the user or be part of the contents of the curre\
+nt line.)108 336 Q F1(Readline Command Names)87 352.8 Q F0 1.391
+(The follo)108 364.8 R 1.391
(wing is a list of the names of the commands and the def)-.25 F 1.391
(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 511.2 R .122
+3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 376.8 R .122
(names without an accompan)2.622 F .122(ying k)-.15 F .421 -.15(ey s)-.1
H .121(equence are unbound by def).15 F 2.621(ault. In)-.1 F .121
-(the follo)2.621 F(wing)-.25 E(descriptions,)108 523.2 Q F2(point)3.41 E
+(the follo)2.621 F(wing)-.25 E(descriptions,)108 388.8 Q F2(point)3.41 E
F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E
F0 .911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db)
-.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 535.2 Q F0 2.5
+.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 400.8 Q F0 2.5
(command. The)2.5 F(te)2.5 E
(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 552 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 564 Q F0(Mo)144 576 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 588 Q F0(Mo)144 600 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 612 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 624 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E F1(backward\255char \(C\255b\))108
-636 Q F0(Mo)144 648 Q .3 -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E
-F1 -.25(fo)108 660 S(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 672
-Q .823 -.15(ve f)-.15 H(orw).15 E .523(ard to the end of the ne)-.1 F
-.523(xt w)-.15 F 3.023(ord. W)-.1 F .522
-(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 684 Q F1(backward\255w)108 696 Q(ord \(M\255b\))
--.1 E F0(Mo)144 708 Q 1.71 -.15(ve b)-.15 H 1.41
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 417.6 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 429.6 Q F0(Mo)144 441.6 Q .3
+-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
+(end\255of\255line \(C\255e\))108 453.6 Q F0(Mo)144 465.6 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
+477.6 S(rward\255char \(C\255f\)).25 E F0(Mo)144 489.6 Q .3 -.15(ve f)
+-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
+(backward\255char \(C\255b\))108 501.6 Q F0(Mo)144 513.6 Q .3 -.15(ve b)
+-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 525.6 S(rward\255w)
+.25 E(ord \(M\255f\))-.1 E F0(Mo)144 537.6 Q .823 -.15(ve f)-.15 H(orw)
+.15 E .523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)
+-.1 F .522(ords are composed of alphanumeric characters \(let-)-.8 F
+(ters and digits\).)144 549.6 Q F1(backward\255w)108 561.6 Q
+(ord \(M\255b\))-.1 E F0(Mo)144 573.6 Q 1.71 -.15(ve b)-.15 H 1.41
(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 720 Q(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(39)185.955 E 0 Cg EP
-%%Page: 40 40
+(characters \(letters and digits\).)144 585.6 Q F1(shell\255f)108 597.6
+Q(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 609.6 Q .784 -.15(ve f)-.15 H
+(orw).15 E .484(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984
+(ord. W)-.1 F .484(ords are delimited by non-quoted shell metacharac-)
+-.8 F(ters.)144 621.6 Q F1(shell\255backward\255w)108 633.6 Q(ord)-.1 E
+F0(Mo)144 645.6 Q .908 -.15(ve b)-.15 H .609
+(ack to the start of the current or pre).15 F .609(vious w)-.25 F 3.109
+(ord. W)-.1 F .609(ords are delimited by non-quoted shell)-.8 F
+(metacharacters.)144 657.6 Q F1(clear\255scr)108 669.6 Q(een \(C\255l\))
+-.18 E F0 .993(Clear the screen lea)144 681.6 R .993
+(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
+.993(th an ar).4 F .993(gument, refresh the)-.18 F
+(current line without clearing the screen.)144 693.6 Q F1 -.18(re)108
+705.6 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 717.6 Q(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(41)190.95 E 0 Cg EP
+%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(shell\255f)108 84 Q(orward\255w)-.25 E(ord)
--.1 E F0(Mo)144 96 Q .784 -.15(ve f)-.15 H(orw).15 E .484
-(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984(ord. W)-.1 F .484
-(ords are delimited by non-quoted shell metacharac-)-.8 F(ters.)144 108
-Q F1(shell\255backward\255w)108 120 Q(ord)-.1 E F0(Mo)144 132 Q .908
--.15(ve b)-.15 H .609(ack to the start of the current or pre).15 F .609
-(vious w)-.25 F 3.109(ord. W)-.1 F .609
-(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 144 Q
-F1(clear\255scr)108 156 Q(een \(C\255l\))-.18 E F0 .993
-(Clear the screen lea)144 168 R .993
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
-.993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 180 Q F1 -.18(re)108 192
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-204 Q F1(Commands f)87 220.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 232.8 Q(n\))-.15 E F0 .158
-(Accept the line re)144 244.8 R -.05(ga)-.15 G .158
+-.35 E/F1 10/Times-Bold@0 SF(Commands f)87 84 Q
+(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
+96 Q(n\))-.15 E F0 .158(Accept the line re)144 108 R -.05(ga)-.15 G .158
(rdless of where the cursor is.).05 F .158(If this line is non-empty)
5.158 F 2.659(,a)-.65 G .159(dd it to the history list)-2.659 F .699
-(according to the state of the)144 256.8 R/F2 9/Times-Bold@0 SF
-(HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F
-.699(the line is a modi\214ed history line, then)3.199 F
-(restore the history line to its original state.)144 268.8 Q F1(pr)108
-280.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
-(Fetch the pre)144 292.8 Q(vious command from the history list, mo)-.25
-E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 304.8
-Q F0(Fetch the ne)144 316.8 Q(xt command from the history list, mo)-.15
-E(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 328.8 Q F0(Mo)144 340.8 Q .3
--.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 352.8 Q F0(Mo)144 364.8 Q
-.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
-(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 376.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.47(Search backw)144 388.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.471
-(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 400.8 Q F1 -.25(fo)108 412.8 S
+(according to the state of the)144 120 R/F2 9/Times-Bold@0 SF(HISTCONTR)
+3.199 E(OL)-.27 E F0 -.25(va)2.949 G 3.199(riable. If).25 F .699
+(the line is a modi\214ed history line, then)3.199 F
+(restore the history line to its original state.)144 132 Q F1(pr)108 144
+Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
+156 Q(vious command from the history list, mo)-.25 E
+(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 168 Q
+F0(Fetch the ne)144 180 Q(xt command from the history list, mo)-.15 E
+(ving forw)-.15 E(ard in the list.)-.1 E F1
+(beginning\255of\255history \(M\255<\))108 192 Q F0(Mo)144 204 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)-.65 E
+F1(end\255of\255history \(M\255>\))108 216 Q F0(Mo)144 228 Q .3 -.15
+(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65
+G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108
+240 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47
+(Search backw)144 252 R 1.471(ard starting at the current line and mo)
+-.1 F 1.471(ving `up' through the history as necessary)-.15 F(.)-.65 E
+(This is an incremental search.)144 264 Q F1 -.25(fo)108 276 S
(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 424.8 R 1.132(ard starting at the current line and mo)
--.1 F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 436.8 Q F1
-(non\255incr)108 448.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)
-144 460.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 472.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 484.8 Q
-(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.354(Search forw)144 496.8 R 1.354(ard through the history using \
-a non-incremental search for a string supplied by the)-.1 F(user)144
-508.8 Q(.)-.55 E F1(history\255sear)108 520.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .248(Search forw)144 532.8 R .249(ard through the history for\
- the string of characters between the start of the current line)-.1 F
-(and the point.)144 544.8 Q(This is a non-incremental search.)5 E F1
-(history\255sear)108 556.8 Q(ch\255backward)-.18 E F0 .951(Search backw)
-144 568.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 580.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 592.8 Q
-2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-604.8 R .622(gument to the pre)-.18 F .622
+(Search forw)144 288 R 1.132(ard starting at the current line and mo)-.1
+F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)-.25
+F(.)-.65 E(This is an incremental search.)144 300 Q F1(non\255incr)108
+312 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E
+(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)144 324 R .164(ar\
+d through the history starting at the current line using a non-incremen\
+tal search for)-.1 F 2.5(as)144 336 S(tring supplied by the user)-2.5 E
+(.)-.55 E F1(non\255incr)108 348 Q(emental\255f)-.18 E(orward\255sear)
+-.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 360 R
+1.354(ard through the history using a non-incremental search for a stri\
+ng supplied by the)-.1 F(user)144 372 Q(.)-.55 E F1(history\255sear)108
+384 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 396 R .249(a\
+rd through the history for the string of characters between the start o\
+f the current line)-.1 F(and the point.)144 408 Q
+(This is a non-incremental search.)5 E F1(history\255sear)108 420 Q
+(ch\255backward)-.18 E F0 .951(Search backw)144 432 R .951(ard through \
+the history for the string of characters between the start of the curre\
+nt)-.1 F(line and the point.)144 444 Q
+(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 456 Q
+2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 468
+R .622(gument to the pre)-.18 F .622
(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .795(at point.)144 616.8 R -.4(Wi)5.795 G .794
+.622(vious line\))-.25 F .795(at point.)144 480 R -.4(Wi)5.795 G .794
(th an ar).4 F(gument)-.18 E/F3 10/Times-Italic@0 SF(n)3.294 E F0 3.294
(,i).24 G .794(nsert the)-3.294 F F3(n)3.294 E F0 .794(th w)B .794
(ord from the pre)-.1 F .794(vious command \(the w)-.25 F .794
-(ords in the)-.1 F(pre)144 628.8 Q .291(vious command be)-.25 F .291
+(ords in the)-.1 F(pre)144 492 Q .291(vious command be)-.25 F .291
(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
(ument inserts the).18 F F3(n)2.791 E F0 .291(th w)B .292
-(ord from the end of)-.1 F .282(the pre)144 640.8 R .282(vious command.)
+(ord from the end of)-.1 F .282(the pre)144 504 R .282(vious command.)
-.25 F .282(Once the ar)5.282 F(gument)-.18 E F3(n)2.781 E F0 .281
(is computed, the ar)2.781 F .281(gument is e)-.18 F .281
-(xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 652.8 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 664.8 Q
+(xtracted as if the "!)-.15 F F3(n)A F0(")A(history e)144 516 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 528 Q
2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 676.8 R 1.307(gument to the pre)-.18 F 1.307
+(Insert the last ar)144 540 R 1.307(gument to the pre)-.18 F 1.307
(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 688.8 S .204(th a numeric ar)
-.4 F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F
-(e)-.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.203(.S)C(uccessi)
--5.203 E .503 -.15(ve c)-.25 H .203(alls to).15 F F1(yank\255last\255ar)
-2.703 E(g)-.1 E F0(mo)144 700.8 Q .806 -.15(ve b)-.15 H .507
+(vious history entry\).)-.25 F -.4(Wi)144 552 S .204(th a numeric ar).4
+F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
+-.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.203(.S)C(uccessi)-5.203
+E .503 -.15(ve c)-.25 H .203(alls to).15 F F1(yank\255last\255ar)2.703 E
+(g)-.1 E F0(mo)144 564 Q .806 -.15(ve b)-.15 H .507
(ack through the history list, inserting the last w).15 F .507
(ord \(or the w)-.1 F .507(ord speci\214ed by the ar)-.1 F(gument)-.18 E
-1.397(to the \214rst call\) of each line in turn.)144 712.8 R(An)6.396 E
+1.397(to the \214rst call\) of each line in turn.)144 576 R(An)6.396 E
3.896(yn)-.15 G 1.396(umeric ar)-3.896 F 1.396
(gument supplied to these successi)-.18 F 1.696 -.15(ve c)-.25 H(alls)
-.15 E .491(determines the direction to mo)144 724.8 R .791 -.15(ve t)
--.15 H .491(hrough the history).15 F 5.492(.A)-.65 G(ne)-2.5 E -.05(ga)
--.15 G(ti).05 E .792 -.15(ve a)-.25 H -.18(rg).15 G .492
-(ument switches the direction).18 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(40)185.955 E 0 Cg EP
-%%Page: 41 41
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .494(through the history \(back or forw)144 84 R 2.994
-(ard\). The)-.1 F .494(history e)2.994 F .494(xpansion f)-.15 F .494
-(acilities are used to e)-.1 F .494(xtract the last)-.15 F(ar)144 96 Q
-(gument, as if the "!$" history e)-.18 E(xpansion had been speci\214ed.)
--.15 E/F1 10/Times-Bold@0 SF(shell\255expand\255line \(M\255C\255e\))108
-108 Q F0 .622(Expand the line as the shell does.)144 120 R .622
+.15 E .491(determines the direction to mo)144 588 R .791 -.15(ve t)-.15
+H .491(hrough the history).15 F 5.492(.A)-.65 G(ne)-2.5 E -.05(ga)-.15 G
+(ti).05 E .792 -.15(ve a)-.25 H -.18(rg).15 G .492
+(ument switches the direction).18 F .494
+(through the history \(back or forw)144 600 R 2.994(ard\). The)-.1 F
+.494(history e)2.994 F .494(xpansion f)-.15 F .494
+(acilities are used to e)-.1 F .494(xtract the last)-.15 F -.1(wo)144
+612 S(rd, as if the "!$" history e).1 E(xpansion had been speci\214ed.)
+-.15 E F1(shell\255expand\255line \(M\255C\255e\))108 624 Q F0 .622
+(Expand the line as the shell does.)144 636 R .622
(This performs alias and history e)5.622 F .623
-(xpansion as well as all of the)-.15 F(shell w)144 132 Q(ord e)-.1 E 2.5
-(xpansions. See)-.15 F/F2 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
-(YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
+(xpansion as well as all of the)-.15 F(shell w)144 648 Q(ord e)-.1 E 2.5
+(xpansions. See)-.15 F F2(HIST)2.5 E(OR)-.162 E 2.25(YE)-.315 G(XP)-2.25
+E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
(or a description of history e)-2.5 E(xpansion.)-.15 E F1
-(history\255expand\255line \(M\255^\))108 144 Q F0 .939
-(Perform history e)144 156 R .939(xpansion on the current line.)-.15 F
+(history\255expand\255line \(M\255^\))108 660 Q F0 .939
+(Perform history e)144 672 R .939(xpansion on the current line.)-.15 F
(See)5.939 E F2(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
(ANSION)-.666 E F0(belo)3.189 E 3.438(wf)-.25 G .938(or a descrip-)
--3.438 F(tion of history e)144 168 Q(xpansion.)-.15 E F1(magic\255space)
-108 180 Q F0 1.626(Perform history e)144 192 R 1.626
+-3.438 F(tion of history e)144 684 Q(xpansion.)-.15 E F1(magic\255space)
+108 696 Q F0 1.626(Perform history e)144 708 R 1.626
(xpansion on the current line and insert a space.)-.15 F(See)6.627 E F2
(HIST)4.127 E(OR)-.162 E 3.877(YE)-.315 G(XP)-3.877 E(ANSION)-.666 E F0
-(belo)144 204 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
-(xpansion.)-.15 E F1(alias\255expand\255line)108 216 Q F0 .395
-(Perform alias e)144 228 R .395(xpansion on the current line.)-.15 F
-(See)5.395 E F2(ALIASES)2.895 E F0(abo)2.645 E .694 -.15(ve f)-.15 H
-.394(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 240 Q F1
-(history\255and\255alias\255expand\255line)108 252 Q F0
-(Perform history and alias e)144 264 Q(xpansion on the current line.)
--.15 E F1(insert\255last\255ar)108 276 Q(gument \(M\255.)-.1 E 2.5(,M)
-.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 288 S(ynon)-2.5 E(ym for)
+(belo)144 720 Q 2.5(wf)-.25 G(or a description of history e)-2.5 E
+(xpansion.)-.15 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(42)
+190.95 E 0 Cg EP
+%%Page: 43 43
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(alias\255expand\255line)108 84 Q F0 .395
+(Perform alias e)144 96 R .395(xpansion on the current line.)-.15 F(See)
+5.395 E/F2 9/Times-Bold@0 SF(ALIASES)2.895 E F0(abo)2.645 E .694 -.15
+(ve f)-.15 H .394(or a description of alias e).15 F(xpan-)-.15 E(sion.)
+144 108 Q F1(history\255and\255alias\255expand\255line)108 120 Q F0
+(Perform history and alias e)144 132 Q(xpansion on the current line.)
+-.15 E F1(insert\255last\255ar)108 144 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 156 S(ynon)-2.5 E(ym for)
-.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1
-(operate\255and\255get\255next \(C\255o\))108 300 Q F0 .947
-(Accept the current line for e)144 312 R -.15(xe)-.15 G .948
+(operate\255and\255get\255next \(C\255o\))108 168 Q F0 .947
+(Accept the current line for e)144 180 R -.15(xe)-.15 G .948
(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15
(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F
-(history for editing.)144 324 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
+(history for editing.)144 192 Q(An)5 E 2.5(ya)-.15 G -.18(rg)-2.5 G
(ument is ignored.).18 E F1
-(edit\255and\255execute\255command \(C\255xC\255e\))108 336 Q F0(In)144
-348 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
+(edit\255and\255execute\255command \(C\255xC\255e\))108 204 Q F0(In)144
+216 Q -.2(vo)-.4 G 1.226 -.1(ke a).2 H 3.526(ne).1 G 1.026
(ditor on the current command line, and e)-3.526 F -.15(xe)-.15 G 1.026
(cute the result as shell commands.).15 F F1(Bash)6.026 E F0
-(attempts to in)144 360 Q -.2(vo)-.4 G -.1(ke).2 G F2($VISU)2.6 E(AL)
+(attempts to in)144 228 Q -.2(vo)-.4 G -.1(ke).2 G F2($VISU)2.6 E(AL)
-.54 E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)-.162 E F3(,)A F0
(and)2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0(as the editor)2.5 E
2.5(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87
-376.8 Q(or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108
-388.8 Q F0 .357(Delete the character at point.)144 400.8 R .358
-(If point is at the be)5.358 F .358
-(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 412.8 Q(as not bound to)-.1 E
-F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E F2(EOF)2.5 E F3(.)
-A F1(backward\255delete\255char \(Rubout\))108 424.8 Q F0 .553
-(Delete the character behind the cursor)144 436.8 R 5.553(.W)-.55 G .553
-(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
-.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F
-.552(xt on)-.15 F(the kill ring.)144 448.8 Q F1 -.25(fo)108 460.8 S
-(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 472.8 R 2.973(,u)-.4 G .474
+244.8 Q(or Changing T)-.25 E(ext)-.92 E F4(end\255of\255\214le)108 256.8
+Q F1(\(usually C\255d\))2.5 E F0 .798
+(The character indicating end-of-\214le as set, for e)144 268.8 R .799
+(xample, by)-.15 F/F5 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C 3.299
+(ft)-5.799 G .799(his character is read when)-3.299 F .592
+(there are no characters on the line, and point is at the be)144 280.8 R
+.592(ginning of the line, Readline interprets it)-.15 F
+(as the end of input and returns)144 292.8 Q F2(EOF)2.5 E F3(.)A F1
+(delete\255char \(C\255d\))108 304.8 Q F0 .441
+(Delete the character at point.)144 316.8 R .442
+(If this function is bound to the same character as the tty)5.441 F F1
+(EOF)2.942 E F0(char)2.942 E(-)-.2 E(acter)144 328.8 Q 2.5(,a)-.4 G(s)
+-2.5 E F1(C\255d)2.5 E F0(commonly is, see abo)2.5 E .3 -.15(ve f)-.15 H
+(or the ef).15 E(fects.)-.25 E F1(backward\255delete\255char \(Rubout\))
+108 340.8 Q F0 .553(Delete the character behind the cursor)144 352.8 R
+5.553(.W)-.55 G .553(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553
+(umeric ar)-3.053 F .552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552
+(he deleted te).15 F .552(xt on)-.15 F(the kill ring.)144 364.8 Q F1
+-.25(fo)108 376.8 S(rward\255backward\255delete\255char).25 E F0 .473
+(Delete the character under the cursor)144 388.8 R 2.973(,u)-.4 G .474
(nless the cursor is at the end of the line, in which case the)-2.973 F
-(character behind the cursor is deleted.)144 484.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 496.8 Q F0 .779(Add the ne)144
-508.8 R .779(xt character typed to the line v)-.15 F 3.279
+(character behind the cursor is deleted.)144 400.8 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 412.8 Q F0 .779(Add the ne)144
+424.8 R .779(xt character typed to the line v)-.15 F 3.279
(erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278
-(,f)C(or)-3.278 E -.15(ex)144 520.8 S(ample.).15 E F1
-(tab\255insert \(C\255v T)108 532.8 Q(AB\))-.9 E F0
-(Insert a tab character)144 544.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 556.8 Q F0
-(Insert the character typed.)144 568.8 Q F1
-(transpose\255chars \(C\255t\))108 580.8 Q F0 .321
-(Drag the character before point forw)144 592.8 R .321(ard o)-.1 F -.15
+(,f)C(or)-3.278 E -.15(ex)144 436.8 S(ample.).15 E F1
+(tab\255insert \(C\255v T)108 448.8 Q(AB\))-.9 E F0
+(Insert a tab character)144 460.8 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 472.8 Q F0
+(Insert the character typed.)144 484.8 Q F1
+(transpose\255chars \(C\255t\))108 496.8 Q F0 .321
+(Drag the character before point forw)144 508.8 R .321(ard o)-.1 F -.15
(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .322
(ving point forw)-.15 F .322(ard as well.)-.1 F 1.182
(If point is at the end of the line, then this transposes the tw)144
-604.8 R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 616.8 Q(guments ha)-.18 E
+520.8 R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E
+-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 532.8 Q(guments ha)-.18 E
.3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 628.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-640.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
+(transpose\255w)108 544.8 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
+556.8 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
-2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
-(is at the end of the line, this transposes the last tw)144 652.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 664.8 Q
+(is at the end of the line, this transposes the last tw)144 568.8 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 580.8 Q
(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144
-676.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
+592.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
-.05(ga)-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 688.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 700.8 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 712.8 Q 1.647
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 604.8 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 616.8 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 628.8 Q 1.647
(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 724.8 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(41)185.955 E 0 Cg EP
-%%Page: 42 42
+-.25 F(vious)-.25 E -.1(wo)144 640.8 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 652.8 Q
+(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144
+664.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F
+-.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 676.8 S(rd, b)
+.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108
+688.8 S(rwrite\255mode).1 E F0 -.8(To)144 700.8 S .437(ggle o).8 F -.15
+(ve)-.15 G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
+(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
+(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
+(Wi)144 712.8 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+-.15(ve n)-.25 H .781(umeric ar).15 F .781
+(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
+(fects)-.25 E(only)144 724.8 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
+4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
+F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F F4 -.37(re)
+4.395 G(adline\(\)).37 E F0 1.895(starts in insert)4.395 F(GNU Bash 4.3)
+72 768 Q(2014 February 2)141.79 E(43)190.95 E 0 Cg EP
+%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(capitalize\255w)108 84 Q(ord \(M\255c\))-.1
-E F0 1.975(Capitalize the current \(or follo)144 96 R 1.974(wing\) w)
--.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E
-2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974(ument, capitalize the pre).18
-F(vious)-.25 E -.1(wo)144 108 S(rd, b).1 E(ut do not mo)-.2 E .3 -.15
-(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 120 S(rwrite\255mode).1 E F0 -.8
-(To)144 132 S .437(ggle o).8 F -.15(ve)-.15 G .437(rwrite mode.).15 F
--.4(Wi)5.437 G .437(th an e).4 F .437(xplicit positi)-.15 F .738 -.15
-(ve n)-.25 H .438(umeric ar).15 F .438(gument, switches to o)-.18 F -.15
-(ve)-.15 G .438(rwrite mode.).15 F -.4(Wi)144 144 S .781(th an e).4 F
-.781(xplicit non-positi)-.15 F 1.081 -.15(ve n)-.25 H .781(umeric ar).15
-F .781(gument, switches to insert mode.)-.18 F .78(This command af)5.781
-F(fects)-.25 E(only)144 156 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
-4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
-F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F2 10
-/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
-(starts in insert)4.395 F 3.969(mode. In)144 168 R -.15(ove)3.969 G
-1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
-.957(pushing the te)144 180 R .957(xt to the right.)-.15 F .958
-(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
-.958(replace the character)3.458 F(before point with a space.)144 192 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-208.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 220.8 Q F0
-(Kill the te)144 232.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 244.8 Q F0(Kill backw)
-144 256.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 268.8 Q F0(Kill backw)144 280.8
+-.35 E 3.969(mode. In)144 84 R -.15(ove)3.969 G 1.469
+(rwrite mode, characters bound to).15 F/F1 10/Times-Bold@0 SF
+(self\255insert)3.969 E F0 1.468(replace the te)3.969 F 1.468
+(xt at point rather than)-.15 F .957(pushing the te)144 96 R .957
+(xt to the right.)-.15 F .958(Characters bound to)5.957 F F1
+(backward\255delete\255char)3.458 E F0 .958(replace the character)3.458
+F(before point with a space.)144 108 Q(By def)5 E
+(ault, this command is unbound.)-.1 E F1(Killing and Y)87 124.8 Q
+(anking)-.85 E(kill\255line \(C\255k\))108 136.8 Q F0(Kill the te)144
+148.8 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 160.8 Q F0(Kill backw)
+144 172.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 184.8 Q F0(Kill backw)144 196.8
Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 292.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 208.8 Q F0
(Kill all characters on the current line, no matter where point is.)144
-304.8 Q F1(kill\255w)108 316.8 Q(ord \(M\255d\))-.1 E F0 .729
-(Kill from point to the end of the current w)144 328.8 R .728
+220.8 Q F1(kill\255w)108 232.8 Q(ord \(M\255d\))-.1 E F0 .729
+(Kill from point to the end of the current w)144 244.8 R .728
(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 340.8 S
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 256.8 S
(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 352.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 364.8 Q(ord behind point.)
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 268.8 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 280.8 Q(ord behind point.)
-.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
-(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 376.8 Q
+(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 292.8 Q
(ord \(M\255d\))-.1 E F0 .728
-(Kill from point to the end of the current w)144 388.8 R .729
+(Kill from point to the end of the current w)144 304.8 R .729
(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 400.8 S
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 316.8 S
(rd boundaries are the same as those used by).8 E F1(shell\255f)2.5 E
(orward\255w)-.25 E(ord)-.1 E F0(.)A F1(shell\255backward\255kill\255w)
-108 412.8 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 424.8 R
+108 328.8 Q(ord \(M\255Rubout\))-.1 E F0 3.025(Kill the w)144 340.8 R
3.025(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025
(rd boundaries are the same as those used by).8 F F1(shell\255back-)
-5.525 E(ward\255w)144 436.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 448.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 460.8 R .364
+5.525 E(ward\255w)144 352.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 364.8 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 376.8 R .364
(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
-472.8 Q F1(unix\255\214lename\255rubout)108 484.8 Q F0 .167(Kill the w)
-144 496.8 R .166
+388.8 Q F1(unix\255\214lename\255rubout)108 400.8 Q F0 .167(Kill the w)
+144 412.8 R .166
(ord behind point, using white space and the slash character as the w)
--.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 508.8 Q
+-.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 424.8 Q
(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
--2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 520.8 Q F0
-(Delete all spaces and tabs around point.)144 532.8 Q F1(kill\255r)108
-544.8 Q(egion)-.18 E F0(Kill the te)144 556.8 Q(xt in the current re)
--.15 E(gion.)-.15 E F1(copy\255r)108 568.8 Q(egion\255as\255kill)-.18 E
-F0(Cop)144 580.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 436.8 Q F0
+(Delete all spaces and tabs around point.)144 448.8 Q F1(kill\255r)108
+460.8 Q(egion)-.18 E F0(Kill the te)144 472.8 Q(xt in the current re)
+-.15 E(gion.)-.15 E F1(copy\255r)108 484.8 Q(egion\255as\255kill)-.18 E
+F0(Cop)144 496.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 592.8 Q(ord)-.1 E F0(Cop)144 604.8 Q 4.8(yt)
+(copy\255backward\255w)108 508.8 Q(ord)-.1 E F0(Cop)144 520.8 Q 4.8(yt)
-.1 G 2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E
(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144
-616.8 Q(ord)-.1 E F0(.)A F1(copy\255f)108 628.8 Q(orward\255w)-.25 E
-(ord)-.1 E F0(Cop)144 640.8 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008
+532.8 Q(ord)-.1 E F0(.)A F1(copy\255f)108 544.8 Q(orward\255w)-.25 E
+(ord)-.1 E F0(Cop)144 556.8 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008
(ord follo)-.1 F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25
E 7.007(.T)-.55 G 2.007(he w)-7.007 F 2.007
(ord boundaries are the same as)-.1 F F1 -.25(fo)4.507 G -.37(r-).25 G
-(ward\255w)144 652.8 Q(ord)-.1 E F0(.)A F1(yank \(C\255y\))108 664.8 Q
-F0 -1(Ya)144 676.8 S(nk the top of the kill ring into the b)1 E(uf)-.2 E
-(fer at point.)-.25 E F1(yank\255pop \(M\255y\))108 688.8 Q F0
-(Rotate the kill ring, and yank the ne)144 700.8 Q 2.5(wt)-.25 G 2.5
+(ward\255w)144 568.8 Q(ord)-.1 E F0(.)A F1(yank \(C\255y\))108 580.8 Q
+F0 -1(Ya)144 592.8 S(nk the top of the kill ring into the b)1 E(uf)-.2 E
+(fer at point.)-.25 E F1(yank\255pop \(M\255y\))108 604.8 Q F0
+(Rotate the kill ring, and yank the ne)144 616.8 Q 2.5(wt)-.25 G 2.5
(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(42)185.955 E 0 Cg EP
-%%Page: 43 43
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(Numeric Ar)87 84 Q(guments)-.1 E
-(digit\255ar)108 96 Q(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0
-.641(Add this digit to the ar)144 108 R .641
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 633.6 Q
+(guments)-.1 E(digit\255ar)108 645.6 Q
+(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
+(Add this digit to the ar)144 657.6 R .641
(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
--.15 E(ati)144 120 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 132 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 144 R .779(ay to specify an ar)-.1 F 3.279
+-.15 E(ati)144 669.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
+(uni)108 681.6 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
+(This is another w)144 693.6 R .779(ay to specify an ar)-.1 F 3.279
(gument. If)-.18 F .779(this command is follo)3.279 F .778
(wed by one or more digits,)-.25 F 1.376
(optionally with a leading minus sign, those digits de\214ne the ar)144
-156 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-168 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+705.6 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+717.6 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .898(wise ignored.)144 180 R .898
+-.2 F(-)-.2 E .898(wise ignored.)144 729.6 R .898
(As a special case, if this command is immediately follo)5.898 F .898
-(wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 192 R .243
+(wed by a character that is)-.25 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(44)190.95 E 0 Cg EP
+%%Page: 45 45
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .243(neither a digit or minus sign, the ar)144 84 R .243
(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 204 Q .378
+-.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 96 Q .378
(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(four)144 216 Q 2.5(,as)-.4 G(econd time mak)
--2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
-(Completing)87 232.8 Q(complete \(T)108 244.8 Q(AB\))-.9 E F0 1.137
-(Attempt to perform completion on the te)144 256.8 R 1.137
+.378(gument count)-.18 F(four)144 108 Q 2.5(,as)-.4 G(econd time mak)
+-2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E/F1 10
+/Times-Bold@0 SF(Completing)87 124.8 Q(complete \(T)108 136.8 Q(AB\))-.9
+E F0 1.137(Attempt to perform completion on the te)144 148.8 R 1.137
(xt before point.)-.15 F F1(Bash)6.137 E F0 1.137
-(attempts completion treating the)3.637 F(te)144 268.8 Q .532(xt as a v)
+(attempts completion treating the)3.637 F(te)144 160.8 Q .532(xt as a v)
-.15 F .532(ariable \(if the te)-.25 F .532(xt be)-.15 F .533(gins with)
-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .533(xt be)-.15 F
.533(gins with)-.15 F F1(~)3.033 E F0 .533(\), hostname \(if the)B(te)
-144 280.8 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
+144 172.8 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
(\), or command \(including aliases and functions\) in turn.)B .701
(If none of these pro-)5.701 F
-(duces a match, \214lename completion is attempted.)144 292.8 Q F1
-(possible\255completions \(M\255?\))108 304.8 Q F0
-(List the possible completions of the te)144 316.8 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 328.8 Q F0 .783
-(Insert all completions of the te)144 340.8 R .783
+(duces a match, \214lename completion is attempted.)144 184.8 Q F1
+(possible\255completions \(M\255?\))108 196.8 Q F0
+(List the possible completions of the te)144 208.8 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 220.8 Q F0 .783
+(Insert all completions of the te)144 232.8 R .783
(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
-352.8 Q F0(.)A F1(menu\255complete)108 364.8 Q F0 .929(Similar to)144
-376.8 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
+244.8 Q F0(.)A F1(menu\255complete)108 256.8 Q F0 .929(Similar to)144
+268.8 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 388.8 R 1.193(Repeated e)6.193 F -.15
+1.193(possible completions.)144 280.8 R 1.193(Repeated e)6.193 F -.15
(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
(steps through the list of possible)3.694 F .829
-(completions, inserting each match in turn.)144 400.8 R .828
+(completions, inserting each match in turn.)144 292.8 R .828
(At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 412.8 R F1(bell\255style)3.227 E F0
+(\(subject to the setting of)144 304.8 R F1(bell\255style)3.227 E F0
3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F
.727(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227
E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73
-(positions forw)144 424.8 R 1.73(ard in the list of matches; a ne)-.1 F
+(positions forw)144 316.8 R 1.73(ard in the list of matches; a ne)-.1 F
-.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
(ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
-E(through the list.)144 436.8 Q(This command is intended to be bound to)
+E(through the list.)144 328.8 Q(This command is intended to be bound to)
5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E
-(ault.)-.1 E F1(menu\255complete\255backward)108 448.8 Q F0 .82
-(Identical to)144 460.8 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82
+(ault.)-.1 E F1(menu\255complete\255backward)108 340.8 Q F0 .82
+(Identical to)144 352.8 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82
(ut mo)-3.52 F -.15(ve)-.15 G 3.32(sb).15 G(ackw)-3.32 E .82
(ard through the list of possible completions, as if)-.1 F F1
-(menu\255complete)144 472.8 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
+(menu\255complete)144 364.8 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
(nan).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg)
.15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E
-F1(delete\255char\255or\255list)108 484.8 Q F0 .234
-(Deletes the character under the cursor if not at the be)144 496.8 R
+F1(delete\255char\255or\255list)108 376.8 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 388.8 R
.234(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)
-2.734 E F0(\).)A .425(If at the end of the line, beha)144 508.8 R -.15
+2.734 E F0(\).)A .425(If at the end of the line, beha)144 400.8 R -.15
(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
(possible\255completions)2.925 E F0 5.425(.T)C .425
-(his command is unbound)-5.425 F(by def)144 520.8 Q(ault.)-.1 E F1
-(complete\255\214lename \(M\255/\))108 532.8 Q F0
-(Attempt \214lename completion on the te)144 544.8 Q(xt before point.)
--.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 556.8 Q
-F0(List the possible completions of the te)144 568.8 Q
+(his command is unbound)-5.425 F(by def)144 412.8 Q(ault.)-.1 E F1
+(complete\255\214lename \(M\255/\))108 424.8 Q F0
+(Attempt \214lename completion on the te)144 436.8 Q(xt before point.)
+-.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 448.8 Q
+F0(List the possible completions of the te)144 460.8 Q
(xt before point, treating it as a \214lename.)-.15 E F1
-(complete\255user)108 580.8 Q(name \(M\255~\))-.15 E F0
-(Attempt completion on the te)144 592.8 Q
+(complete\255user)108 472.8 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 484.8 Q
(xt before point, treating it as a username.)-.15 E F1(possible\255user)
-108 604.8 Q(name\255completions \(C\255x ~\))-.15 E F0
-(List the possible completions of the te)144 616.8 Q
+108 496.8 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 508.8 Q
(xt before point, treating it as a username.)-.15 E F1(complete\255v)108
-628.8 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
-640.8 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
-F1(possible\255v)108 652.8 Q(ariable\255completions \(C\255x $\))-.1 E
-F0(List the possible completions of the te)144 664.8 Q
+520.8 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
+532.8 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
+F1(possible\255v)108 544.8 Q(ariable\255completions \(C\255x $\))-.1 E
+F0(List the possible completions of the te)144 556.8 Q
(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
-(complete\255hostname \(M\255@\))108 676.8 Q F0
-(Attempt completion on the te)144 688.8 Q
+(complete\255hostname \(M\255@\))108 568.8 Q F0
+(Attempt completion on the te)144 580.8 Q
(xt before point, treating it as a hostname.)-.15 E F1
-(possible\255hostname\255completions \(C\255x @\))108 700.8 Q F0
-(List the possible completions of the te)144 712.8 Q
-(xt before point, treating it as a hostname.)-.15 E(GNU Bash-4.2)72 768
-Q(2010 December 28)135.965 E(43)185.955 E 0 Cg EP
-%%Page: 44 44
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(complete\255command \(M\255!\))108 84 Q F0
-.581(Attempt completion on the te)144 96 R .581
+(possible\255hostname\255completions \(C\255x @\))108 592.8 Q F0
+(List the possible completions of the te)144 604.8 Q
+(xt before point, treating it as a hostname.)-.15 E F1
+(complete\255command \(M\255!\))108 616.8 Q F0 .581
+(Attempt completion on the te)144 628.8 R .581
(xt before point, treating it as a command name.)-.15 F .58
-(Command comple-)5.58 F .715(tion attempts to match the te)144 108 R
+(Command comple-)5.58 F .715(tion attempts to match the te)144 640.8 R
.715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F
.715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F
-(\214nally e)144 120 Q -.15(xe)-.15 G
+(\214nally e)144 652.8 Q -.15(xe)-.15 G
(cutable \214lenames, in that order).15 E(.)-.55 E F1
-(possible\255command\255completions \(C\255x !\))108 132 Q F0
-(List the possible completions of the te)144 144 Q
+(possible\255command\255completions \(C\255x !\))108 664.8 Q F0
+(List the possible completions of the te)144 676.8 Q
(xt before point, treating it as a command name.)-.15 E F1
-(dynamic\255complete\255history \(M\255T)108 156 Q(AB\))-.9 E F0 .425
-(Attempt completion on the te)144 168 R .425
+(dynamic\255complete\255history \(M\255T)108 688.8 Q(AB\))-.9 E F0 .425
+(Attempt completion on the te)144 700.8 R .425
(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424
(ainst lines from the history list)-.05 F
-(for possible completion matches.)144 180 Q F1(dab)108 192 Q(br)-.1 E
--.15(ev)-.18 G(\255expand).15 E F0 .61
-(Attempt menu completion on the te)144 204 R .611
+(for possible completion matches.)144 712.8 Q(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(45)190.95 E 0 Cg EP
+%%Page: 46 46
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(dab)108 84 Q(br)-.1 E -.15(ev)-.18 G
+(\255expand).15 E F0 .61(Attempt menu completion on the te)144 96 R .611
(xt before point, comparing the te)-.15 F .611(xt ag)-.15 F .611
(ainst lines from the his-)-.05 F
-(tory list for possible completion matches.)144 216 Q F1
-(complete\255into\255braces \(M\255{\))108 228 Q F0 .4(Perform \214lena\
+(tory list for possible completion matches.)144 108 Q F1
+(complete\255into\255braces \(M\255{\))108 120 Q F0 .4(Perform \214lena\
me completion and insert the list of possible completions enclosed with\
-in braces so)144 240 R(the list is a)144 252 Q -.25(va)-.2 G
+in braces so)144 132 R(the list is a)144 144 Q -.25(va)-.2 G
(ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 268.8 S(yboard Macr).25 E(os)-.18
-E(start\255kbd\255macr)108 280.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
-.833 E F0(Be)144 292.8 Q(gin sa)-.15 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 160.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 172.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 184.8 Q(gin sa)-.15 E
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro.).15 E F1(end\255kbd\255macr)108 304.8 Q 2.5(o\()-.18 G
-(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 316.8 Q
+(board macro.).15 E F1(end\255kbd\255macr)108 196.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 208.8 Q
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
(board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 328.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 340.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+(call\255last\255kbd\255macr)108 220.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 232.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
-.1 G .999(board macro de\214ned, by making the characters in the macro\
- appear as if).15 F(typed at the k)144 352.8 Q -.15(ey)-.1 G(board.).15
-E F1(Miscellaneous)87 369.6 Q -.18(re)108 381.6 S<ad72>.18 E
+ appear as if).15 F(typed at the k)144 244.8 Q -.15(ey)-.1 G(board.).15
+E F1(print\255last\255kbd\255macr)108 256.8 Q 2.5(o\()-.18 G(\))-2.5 E
+F0(Print the last k)144 268.8 Q -.15(ey)-.1 G
+(board macro de\214ned in a format suitable for the).15 E/F2 10
+/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1
+(Miscellaneous)87 285.6 Q -.18(re)108 297.6 S<ad72>.18 E
(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
-(Read in the contents of the)144 393.6 R/F2 10/Times-Italic@0 SF(inputr)
-4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)
--.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F
-(found there.)144 405.6 Q F1(abort \(C\255g\))108 417.6 Q F0 3.248
-(Abort the current editing command and ring the terminal')144 429.6 R
+(Read in the contents of the)144 309.6 R F2(inputr)4.277 E(c)-.37 E F0
+1.776(\214le, and incorporate an)4.276 F 4.276(yb)-.15 G 1.776
+(indings or v)-4.276 F 1.776(ariable assignments)-.25 F(found there.)144
+321.6 Q F1(abort \(C\255g\))108 333.6 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 345.6 R
5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
-(bell\255style)144 441.6 Q F0(\).)A F1(do\255upper)108 453.6 Q
+(bell\255style)144 357.6 Q F0(\).)A F1(do\255upper)108 369.6 Q
(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 465.6 R F2(x)
+C(..\))-2.5 E F0 1.756(If the meta\214ed character)144 381.6 R F2(x)
4.256 E F0 1.755(is lo)4.256 F 1.755
(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 477.6 Q(.)-.55 E F1(pr)108 489.6 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 501.6 Q
+(uppercase character)144 393.6 Q(.)-.55 E F1(pr)108 405.6 Q
+(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 417.6 Q
(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
-(undo \(C\255_, C\255x C\255u\))108 513.6 Q F0
-(Incremental undo, separately remembered for each line.)144 525.6 Q F1
--2.29 -.18(re v)108 537.6 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 549.6 R 1.095(This is lik)6.095
+(undo \(C\255_, C\255x C\255u\))108 429.6 Q F0
+(Incremental undo, separately remembered for each line.)144 441.6 Q F1
+-2.29 -.18(re v)108 453.6 T(ert\255line \(M\255r\)).08 E F0 1.095
+(Undo all changes made to this line.)144 465.6 R 1.095(This is lik)6.095
F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 561.6 Q F1
-(tilde\255expand \(M\255&\))108 573.6 Q F0(Perform tilde e)144 585.6 Q
+(return the line to its initial state.)144 477.6 Q F1
+(tilde\255expand \(M\255&\))108 489.6 Q F0(Perform tilde e)144 501.6 Q
(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 597.6 Q F0
-(Set the mark to the point.)144 609.6 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 513.6 Q F0
+(Set the mark to the point.)144 525.6 Q(If a numeric ar)5 E
(gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 621.6 Q F0(Sw)
-144 633.6 Q .283(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 537.6 Q F0(Sw)
+144 549.6 Q .283(ap the point with the mark.)-.1 F .283
(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
-144 645.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 657.6 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144
-669.6 S .535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G
+144 561.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 573.6 Q(ch \(C\255]\))-.18 E F0 3.035(Ac)144
+585.6 S .535(haracter is read and point is mo)-3.035 F -.15(ve)-.15 G
3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
(xt occurrence of that character)-.15 F 5.536(.A)-.55 G(ne)-2.5 E -.05
(ga)-.15 G(ti).05 E .836 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 681.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 693.6 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 705.6 S 1.044
+144 597.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 609.6 Q
+(ch\255backward \(M\255C\255]\))-.18 E F0 3.544(Ac)144 621.6 S 1.044
(haracter is read and point is mo)-3.544 F -.15(ve)-.15 G 3.544(dt).15 G
3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
(vious occurrence of that character)-.25 F 6.043(.A)-.55 G(ne)-2.5 E
-.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 717.6 Q(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(44)185.955 E 0 Cg EP
-%%Page: 45 45
+(count searches for subsequent occurrences.)144 633.6 Q F1
+(skip\255csi\255sequence)108 645.6 Q F0 1.826
+(Read enough characters to consume a multi-k)144 657.6 R 2.126 -.15
+(ey s)-.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)
+-.1 G 4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 669.6 R
+.791(Such sequences be)5.791 F .791
+(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
+.331(If this sequence is bound to "\\[", k)144 681.6 R -.15(ey)-.1 G
+2.831(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15
+(ve n)-.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F
+(xplic-)-.15 E .026(itly bound to a readline command, instead of insert\
+ing stray characters into the editing b)144 693.6 R(uf)-.2 E(fer)-.25 E
+5.026(.T)-.55 G(his)-5.026 E(is unbound by def)144 705.6 Q(ault, b)-.1 E
+(ut usually bound to ESC\255[.)-.2 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(46)190.95 E 0 Cg EP
+%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(skip\255csi\255sequence)108 84 Q F0 1.826
-(Read enough characters to consume a multi-k)144 96 R 2.126 -.15(ey s)
--.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
-4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 108 R .791
-(Such sequences be)5.791 F .791
-(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-.331(If this sequence is bound to "\\[", k)144 120 R -.15(ey)-.1 G 2.831
-(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
--.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
--.15 E .026(itly bound to a readline command, instead of inserting stra\
-y characters into the editing b)144 132 R(uf)-.2 E(fer)-.25 E 5.026(.T)
--.55 G(his)-5.026 E(is unbound by def)144 144 Q(ault, b)-.1 E
-(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
-156 Q F0 -.4(Wi)144 168 S .48(thout a numeric ar).4 F .48(gument, the v)
--.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
--.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 180 Q .098
+-.35 E/F1 10/Times-Bold@0 SF(insert\255comment \(M\255#\))108 84 Q F0
+-.4(Wi)144 96 S .48(thout a numeric ar).4 F .48(gument, the v)-.18 F
+.481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
+2.981 G .481(riable is inserted at the).25 F(be)144 108 Q .098
(ginning of the current line.)-.15 F .098(If a numeric ar)5.098 F .097
(gument is supplied, this command acts as a toggle:)-.18 F(if)5.097 E
-.321(the characters at the be)144 192 R .321
+.321(the characters at the be)144 120 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
--.25 F .832(inserted, otherwise the characters in)144 204 R F1
+-.25 F .832(inserted, otherwise the characters in)144 132 R F1
(comment\255begin)3.332 E F0 .831(are deleted from the be)3.332 F .831
(ginning of the line.)-.15 F 1.468
-(In either case, the line is accepted as if a ne)144 216 R 1.468
+(In either case, the line is accepted as if a ne)144 144 R 1.468
(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
-1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 228 Q F0 .84
+1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 156 Q F0 .84
(causes this command to mak)3.34 F 3.339(et)-.1 G .839
(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F
-(gu-)-.18 E(ment causes the comment character to be remo)144 240 Q -.15
+(gu-)-.18 E(ment causes the comment character to be remo)144 168 Q -.15
(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
-(cuted by the shell.).15 E F1(glob\255complete\255w)108 252 Q
-(ord \(M\255g\))-.1 E F0 .791(The w)144 264 R .791
+(cuted by the shell.).15 E F1(glob\255complete\255w)108 180 Q
+(ord \(M\255g\))-.1 E F0 .791(The w)144 192 R .791
(ord before point is treated as a pattern for pathname e)-.1 F .792
-(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 276
-R(pattern is used to generate a list of matching \214le names for possi\
-ble completions.)2.5 E F1(glob\255expand\255w)108 288 Q
-(ord \(C\255x *\))-.1 E F0 .372(The w)144 300 R .372
-(ord before point is treated as a pattern for pathname e)-.1 F .371
-(xpansion, and the list of matching \214le)-.15 F .516
-(names is inserted, replacing the w)144 312 R 3.016(ord. If)-.1 F 3.016
+(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 204
+R(pattern is used to generate a list of matching \214lenames for possib\
+le completions.)2.5 E F1(glob\255expand\255w)108 216 Q(ord \(C\255x *\))
+-.1 E F0 .176(The w)144 228 R .176
+(ord before point is treated as a pattern for pathname e)-.1 F .176
+(xpansion, and the list of matching \214le-)-.15 F .516
+(names is inserted, replacing the w)144 240 R 3.016(ord. If)-.1 F 3.016
(an)3.016 G .516(umeric ar)-3.016 F .516
(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
-144 324 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
-108 336 Q F0 .923(The list of e)144 348 R .923(xpansions that w)-.15 F
+144 252 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
+108 264 Q F0 .923(The list of e)144 276 R .923(xpansions that w)-.15 F
.923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
(glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F
-.872(the line is redra)144 360 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
+.872(the line is redra)144 288 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
.872(umeric ar)-3.372 F .872
(gument is supplied, an asterisk is appended before pathname)-.18 F -.15
-(ex)144 372 S(pansion.).15 E F1(dump\255functions)108 384 Q F0 .627
-(Print all of the functions and their k)144 396 R .927 -.15(ey b)-.1 H
+(ex)144 300 S(pansion.).15 E F1(dump\255functions)108 312 Q F0 .627
+(Print all of the functions and their k)144 324 R .927 -.15(ey b)-.1 H
.626(indings to the readline output stream.).15 F .626(If a numeric ar)
5.626 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 408 Q
+(ment is supplied, the output is formatted in such a w)144 336 Q
(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 420 Q(ariables)-.1 E F0
-1.799(Print all of the settable readline v)144 432 R 1.799
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 348 Q(ariables)-.1 E F0
+1.799(Print all of the settable readline v)144 360 R 1.799
(ariables and their v)-.25 F 1.8(alues to the readline output stream.)
--.25 F 1.8(If a)6.8 F .305(numeric ar)144 444 R .304
+-.25 F 1.8(If a)6.8 F .305(numeric ar)144 372 R .304
(gument is supplied, the output is formatted in such a w)-.18 F .304
-(ay that it can be made part of an)-.1 F F2(inputr)144 456 Q(c)-.37 E F0
-(\214le.)2.5 E F1(dump\255macr)108 468 Q(os)-.18 E F0 .592
-(Print all of the readline k)144 480 R .892 -.15(ey s)-.1 H .592
+(ay that it can be made part of an)-.1 F F2(inputr)144 384 Q(c)-.37 E F0
+(\214le.)2.5 E F1(dump\255macr)108 396 Q(os)-.18 E F0 .592
+(Print all of the readline k)144 408 R .892 -.15(ey s)-.1 H .592
(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
-3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 492 Q
+3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 420 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
-(\214le.)144 504 Q F1(display\255shell\255v)108 516 Q
-(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 528 Q
+(\214le.)144 432 Q F1(display\255shell\255v)108 444 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 456 Q
(ersion information about the current instance of)-.15 E F1(bash)2.5 E
-F0(.)A F1(Pr)87 544.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
-556.8 R .147(ord completion is attempted for an ar)-.1 F .147
+F0(.)A F1(Pr)87 472.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
+484.8 R .147(ord completion is attempted for an ar)-.1 F .147
(gument to a command for which a completion speci\214cation \(a)-.18 F
-F2(compspec)108 568.8 Q F0 3.829(\)h)C 1.329
+F2(compspec)108 496.8 Q F0 3.829(\)h)C 1.329
(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu)
3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829
F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
--.25 F(programmable completion f)108 580.8 Q(acilities are in)-.1 E -.2
+-.25 F(programmable completion f)108 508.8 Q(acilities are in)-.1 E -.2
(vo)-.4 G -.1(ke).2 G(d.).1 E .497
-(First, the command name is identi\214ed.)108 597.6 R .497
+(First, the command name is identi\214ed.)108 525.6 R .497
(If the command w)5.497 F .498
(ord is the empty string \(completion attempted at)-.1 F .234(the be)108
-609.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
+537.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
(ompspec de\214ned with the)-2.733 F F1<ad45>2.733 E F0 .233(option to)
2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .233(If a comp-)
5.233 F .481(spec has been de\214ned for that command, the compspec is \
-used to generate the list of possible completions)108 621.6 R .823
-(for the w)108 633.6 R 3.323(ord. If)-.1 F .823(the command w)3.323 F
+used to generate the list of possible completions)108 549.6 R .823
+(for the w)108 561.6 R 3.323(ord. If)-.1 F .823(the command w)3.323 F
.822(ord is a full pathname, a compspec for the full pathname is search\
-ed for)-.1 F 2.866(\214rst. If)108 645.6 R .367(no compspec is found fo\
+ed for)-.1 F 2.866(\214rst. If)108 573.6 R .367(no compspec is found fo\
r the full pathname, an attempt is made to \214nd a compspec for the po\
-rtion)2.866 F(follo)108 657.6 Q .299(wing the \214nal slash.)-.25 F .298
+rtion)2.866 F(follo)108 585.6 Q .299(wing the \214nal slash.)-.25 F .298
(If those searches do not result in a compspec, an)5.299 F 2.798(yc)-.15
G .298(ompspec de\214ned with the)-2.798 F F1<ad44>2.798 E F0(option to)
-108 669.6 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E
+108 597.6 Q F1(complete)2.5 E F0(is used as the def)2.5 E(ault.)-.1 E
.817(Once a compspec has been found, it is used to generate the list of\
- matching w)108 686.4 R 3.317(ords. If)-.1 F 3.317(ac)3.317 G .817
-(ompspec is not)-3.317 F(found, the def)108 698.4 Q(ault)-.1 E F1(bash)
+ matching w)108 614.4 R 3.317(ords. If)-.1 F 3.317(ac)3.317 G .817
+(ompspec is not)-3.317 F(found, the def)108 626.4 Q(ault)-.1 E F1(bash)
2.5 E F0(completion as described abo)2.5 E .3 -.15(ve u)-.15 H(nder).15
E F1(Completing)2.5 E F0(is performed.)2.5 E .464
-(First, the actions speci\214ed by the compspec are used.)108 715.2 R
+(First, the actions speci\214ed by the compspec are used.)108 643.2 R
.463(Only matches which are pre\214x)5.464 F .463(ed by the w)-.15 F
-.463(ord being)-.1 F .595(completed are returned.)108 727.2 R .595
+.463(ord being)-.1 F .595(completed are returned.)108 655.2 R .595
(When the)5.595 F F1<ad66>3.095 E F0(or)3.095 E F1<ad64>3.095 E F0 .596
(option is used for \214lename or directory name completion, the)3.095 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(45)185.955 E 0 Cg EP
-%%Page: 46 46
+(shell v)108 667.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
+(is used to \214lter the matches.)2.25 E(An)108 684 Q 4.084(yc)-.15 G
+1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584
+(xpansion pattern to the)-.15 F F1<ad47>4.084 E F0 1.584
+(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 696 S
+.554(rds generated by the pattern need not match the w).1 F .555
+(ord being completed.)-.1 F(The)5.555 E F3(GLOBIGNORE)3.055 E F0 .555
+(shell v)2.805 F(ari-)-.25 E
+(able is not used to \214lter the matches, b)108 708 Q(ut the)-.2 E F3
+(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 724.8 Q
+.321(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18
+F F1<ad57>2.821 E F0 .32(option is considered.)2.821 F .32
+(The string is \214rst split using the)5.32 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(47)190.95 E 0 Cg EP
+%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(shell v)108 84 Q(ariable)-.25 E/F1 9/Times-Bold@0 SF(FIGNORE)2.5
-E F0(is used to \214lter the matches.)2.25 E(An)108 100.8 Q 4.084(yc)
--.15 G 1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584
-(xpansion pattern to the)-.15 F/F2 10/Times-Bold@0 SF<ad47>4.084 E F0
-1.584(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108
-112.8 S .554(rds generated by the pattern need not match the w).1 F .555
-(ord being completed.)-.1 F(The)5.555 E F1(GLOBIGNORE)3.055 E F0 .555
-(shell v)2.805 F(ari-)-.25 E
-(able is not used to \214lter the matches, b)108 124.8 Q(ut the)-.2 E F1
-(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 141.6 Q
-.321(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18
-F F2<ad57>2.821 E F0 .32(option is considered.)2.821 F .32
-(The string is \214rst split using the)5.32 F .412(characters in the)108
-153.6 R F1(IFS)2.912 E F0 .412(special v)2.662 F .412
-(ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
-.413(Each w)5.412 F .413(ord is then e)-.1 F(xpanded)-.15 E .092
-(using brace e)108 165.6 R .092(xpansion, tilde e)-.15 F .092
-(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .091
-(xpansion, command substitution, and arith-)-.15 F 1.396(metic e)108
-177.6 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
-(nder).15 E F1(EXP)3.896 E(ANSION)-.666 E/F3 9/Times-Roman@0 SF(.)A F0
-1.396(The results are split using the rules described)5.896 F(abo)108
-189.6 Q .51 -.15(ve u)-.15 H(nder).15 E F2 -.75(Wo)2.71 G .21
+-.35 E .412(characters in the)108 84 R/F1 9/Times-Bold@0 SF(IFS)2.912 E
+F0 .412(special v)2.662 F .412(ariable as delimiters.)-.25 F .412
+(Shell quoting is honored.)5.412 F .413(Each w)5.412 F .413
+(ord is then e)-.1 F(xpanded)-.15 E .092(using brace e)108 96 R .092
+(xpansion, tilde e)-.15 F .092(xpansion, parameter and v)-.15 F .092
+(ariable e)-.25 F .091(xpansion, command substitution, and arith-)-.15 F
+1.396(metic e)108 108 R 1.396(xpansion, as described abo)-.15 F 1.696
+-.15(ve u)-.15 H(nder).15 E F1(EXP)3.896 E(ANSION)-.666 E/F2 9
+/Times-Roman@0 SF(.)A F0 1.396
+(The results are split using the rules described)5.896 F(abo)108 120 Q
+.51 -.15(ve u)-.15 H(nder).15 E/F3 10/Times-Bold@0 SF -.75(Wo)2.71 G .21
(rd Splitting).75 F F0 5.21(.T)C .209(he results of the e)-5.21 F .209
(xpansion are pre\214x-matched ag)-.15 F .209(ainst the w)-.05 F .209
-(ord being com-)-.1 F(pleted, and the matching w)108 201.6 Q
+(ord being com-)-.1 F(pleted, and the matching w)108 132 Q
(ords become the possible completions.)-.1 E 1.237
-(After these matches ha)108 218.4 R 1.537 -.15(ve b)-.2 H 1.237
+(After these matches ha)108 148.8 R 1.537 -.15(ve b)-.2 H 1.237
(een generated, an).15 F 3.737(ys)-.15 G 1.238
-(hell function or command speci\214ed with the)-3.737 F F2<ad46>3.738 E
-F0(and)3.738 E F2<ad43>3.738 E F0 3.376(options is in)108 230.4 R -.2
+(hell function or command speci\214ed with the)-3.737 F F3<ad46>3.738 E
+F0(and)3.738 E F3<ad43>3.738 E F0 3.376(options is in)108 160.8 R -.2
(vo)-.4 G -.1(ke).2 G 5.875(d. When).1 F 3.375
(the command or function is in)5.875 F -.2(vo)-.4 G -.1(ke).2 G 3.375
-(d, the).1 F F1(COMP_LINE)5.875 E F3(,)A F1(COMP_POINT)5.625 E F3(,)A F1
-(COMP_KEY)108 242.4 Q F3(,)A F0(and)2.407 E F1(COMP_TYPE)2.657 E F0 -.25
+(d, the).1 F F1(COMP_LINE)5.875 E F2(,)A F1(COMP_POINT)5.625 E F2(,)A F1
+(COMP_KEY)108 172.8 Q F2(,)A F0(and)2.407 E F1(COMP_TYPE)2.657 E F0 -.25
(va)2.407 G .157(riables are assigned v).25 F .157
-(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F2 .158
+(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F3 .158
(Shell V)2.658 F(ariables)-.92 E F0 5.158(.I)C(f)-5.158 E 3.486(as)108
-254.4 S .986(hell function is being in)-3.486 F -.2(vo)-.4 G -.1(ke).2 G
+184.8 S .986(hell function is being in)-3.486 F -.2(vo)-.4 G -.1(ke).2 G
.986(d, the).1 F F1(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F1
(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
-(riables are also set.).25 F(When)5.985 E .608
-(the function or command is in)108 266.4 R -.2(vo)-.4 G -.1(ke).2 G .608
-(d, the \214rst ar).1 F .608(gument is the name of the command whose ar)
--.18 F .609(guments are)-.18 F .073(being completed, the second ar)108
-278.4 R .073(gument is the w)-.18 F .073
-(ord being completed, and the third ar)-.1 F .073(gument is the w)-.18 F
-.072(ord pre-)-.1 F .607(ceding the w)108 290.4 R .607
-(ord being completed on the current command line.)-.1 F .608
-(No \214ltering of the generated completions)5.607 F(ag)108 302.4 Q .094
-(ainst the w)-.05 F .093(ord being completed is performed; the function\
- or command has complete freedom in generat-)-.1 F(ing the matches.)108
-314.4 Q(An)108 331.2 Q 2.937(yf)-.15 G .437(unction speci\214ed with)
--2.937 F F2<ad46>2.937 E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G
-2.937<648c>.1 G 2.937(rst. The)-2.937 F .437(function may use an)2.937 F
-2.937(yo)-.15 G 2.937(ft)-2.937 G .437(he shell f)-2.937 F .438
-(acilities, including)-.1 F(the)108 343.2 Q F2(compgen)2.957 E F0 -.2
-(bu)2.957 G .457(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956
-(og).65 G .456(enerate the matches.)-2.956 F .456
+(riables are also set.).25 F(When)5.985 E .346
+(the function or command is in)108 196.8 R -.2(vo)-.4 G -.1(ke).2 G .346
+(d, the \214rst ar).1 F .346(gument \()-.18 F F3($1)A F0 2.847(\)i)C
+2.847(st)-2.847 G .347(he name of the command whose ar)-2.847 F(guments)
+-.18 E .264(are being completed, the second ar)108 208.8 R .264
+(gument \()-.18 F F3($2)A F0 2.764(\)i)C 2.764(st)-2.764 G .264(he w)
+-2.764 F .263(ord being completed, and the third ar)-.1 F .263
+(gument \()-.18 F F3($3)A F0 2.763(\)i)C(s)-2.763 E .628(the w)108 220.8
+R .628(ord preceding the w)-.1 F .629
+(ord being completed on the current command line.)-.1 F .629
+(No \214ltering of the generated)5.629 F .715(completions ag)108 232.8 R
+.715(ainst the w)-.05 F .714(ord being completed is performed; the func\
+tion or command has complete free-)-.1 F(dom in generating the matches.)
+108 244.8 Q(An)108 261.6 Q 2.937(yf)-.15 G .437
+(unction speci\214ed with)-2.937 F F3<ad46>2.937 E F0 .437(is in)2.937 F
+-.2(vo)-.4 G -.1(ke).2 G 2.937<648c>.1 G 2.937(rst. The)-2.937 F .437
+(function may use an)2.937 F 2.937(yo)-.15 G 2.937(ft)-2.937 G .437
+(he shell f)-2.937 F .438(acilities, including)-.1 F(the)108 273.6 Q F3
+(compgen)2.957 E F0 -.2(bu)2.957 G .457(iltin described belo).2 F 1.756
+-.65(w, t)-.25 H 2.956(og).65 G .456(enerate the matches.)-2.956 F .456
(It must put the possible completions in the)5.456 F F1(COMPREPL)108
-355.2 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E(Ne)108 372 Q .08
-(xt, an)-.15 F 2.58(yc)-.15 G .08(ommand speci\214ed with the)-2.58 F F2
-<ad43>2.58 E F0 .081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581
-(di).1 G 2.581(na)-2.581 G 2.581(ne)-2.581 G -.4(nv)-2.581 G .081
-(ironment equi).4 F -.25(va)-.25 G .081(lent to command sub-).25 F 2.859
-(stitution. It)108 384 R .359(should print a list of completions, one p\
-er line, to the standard output.)2.859 F .358(Backslash may be used)
-5.359 F(to escape a ne)108 396 Q(wline, if necessary)-.25 E(.)-.65 E
-.376(After all of the possible completions are generated, an)108 412.8 R
-2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F2<ad58>2.877
-E F0 .377(option is applied to the)2.877 F 3.182(list. The)108 424.8 R
+285.6 Q(Y)-.828 E F0(array v)2.25 E(ariable, one per array element.)-.25
+E(Ne)108 302.4 Q .08(xt, an)-.15 F 2.58(yc)-.15 G .08
+(ommand speci\214ed with the)-2.58 F F3<ad43>2.58 E F0 .081
+(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581(di).1 G 2.581(na)
+-2.581 G 2.581(ne)-2.581 G -.4(nv)-2.581 G .081(ironment equi).4 F -.25
+(va)-.25 G .081(lent to command sub-).25 F 2.859(stitution. It)108 314.4
+R .359(should print a list of completions, one per line, to the standar\
+d output.)2.859 F .358(Backslash may be used)5.359 F(to escape a ne)108
+326.4 Q(wline, if necessary)-.25 E(.)-.65 E .376
+(After all of the possible completions are generated, an)108 343.2 R
+2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F3<ad58>2.877
+E F0 .377(option is applied to the)2.877 F 3.182(list. The)108 355.2 R
.682(\214lter is a pattern as used for pathname e)3.182 F .681
-(xpansion; a)-.15 F F2(&)3.181 E F0 .681
+(xpansion; a)-.15 F F3(&)3.181 E F0 .681
(in the pattern is replaced with the te)3.181 F .681(xt of)-.15 F .522
-(the w)108 436.8 R .522(ord being completed.)-.1 F 3.022(Al)5.522 G
-(iteral)-3.022 E F2(&)3.022 E F0 .523
+(the w)108 367.2 R .522(ord being completed.)-.1 F 3.022(Al)5.522 G
+(iteral)-3.022 E F3(&)3.022 E F0 .523
(may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve)
--.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 448.8 R
+-.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 379.2 R
(An)5.85 E 3.35(yc)-.15 G .849
(ompletion that matches the pattern will be remo)-3.35 F -.15(ve)-.15 G
3.349(df).15 G .849(rom the list.)-3.349 F 3.349(Al)5.849 G(eading)
--3.349 E F2(!)3.349 E F0(ne)108 460.8 Q -.05(ga)-.15 G
+-3.349 E F3(!)3.349 E F0(ne)108 391.2 Q -.05(ga)-.15 G
(tes the pattern; in this case an).05 E 2.5(yc)-.15 G
(ompletion not matching the pattern will be remo)-2.5 E -.15(ve)-.15 G
-(d.).15 E(Finally)108 477.6 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H
-.586(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F2
-<ad50>3.087 E F0(and)3.087 E F2<ad53>3.087 E F0 .587
+(d.).15 E(Finally)108 408 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H .586
+(re\214x and suf).15 F .587(\214x speci\214ed with the)-.25 F F3<ad50>
+3.087 E F0(and)3.087 E F3<ad53>3.087 E F0 .587
(options are added to each member of the com-)3.087 F(pletion list, and\
the result is returned to the readline completion code as the list of \
-possible completions.)108 489.6 Q .247(If the pre)108 506.4 R .247
+possible completions.)108 420 Q .247(If the pre)108 436.8 R .247
(viously-applied actions do not generate an)-.25 F 2.747(ym)-.15 G .247
-(atches, and the)-2.747 F F2 .247(\255o dir)2.747 F(names)-.15 E F0 .247
-(option w)2.747 F .246(as supplied to)-.1 F F2(complete)108 518.4 Q F0
+(atches, and the)-2.747 F F3 .247(\255o dir)2.747 F(names)-.15 E F0 .247
+(option w)2.747 F .246(as supplied to)-.1 F F3(complete)108 448.8 Q F0
(when the compspec w)2.5 E
(as de\214ned, directory name completion is attempted.)-.1 E .461
-(If the)108 535.2 R F2 .462(\255o plusdirs)2.961 F F0 .462(option w)
-2.962 F .462(as supplied to)-.1 F F2(complete)2.962 E F0 .462
+(If the)108 465.6 R F3 .462(\255o plusdirs)2.961 F F0 .462(option w)
+2.962 F .462(as supplied to)-.1 F F3(complete)2.962 E F0 .462
(when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
-F(pletion is attempted and an)108 547.2 Q 2.5(ym)-.15 G
+F(pletion is attempted and an)108 477.6 Q 2.5(ym)-.15 G
(atches are added to the results of the other actions.)-2.5 E .56
-(By def)108 564 R .56(ault, if a compspec is found, whate)-.1 F -.15(ve)
--.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559
+(By def)108 494.4 R .56(ault, if a compspec is found, whate)-.1 F -.15
+(ve)-.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559
(enerates is returned to the completion code as the full set)-3.06 F
-.631(of possible completions.)108 576 R .631(The def)5.631 F(ault)-.1 E
-F2(bash)3.131 E F0 .631
+.631(of possible completions.)108 506.4 R .631(The def)5.631 F(ault)-.1
+E F3(bash)3.131 E F0 .631
(completions are not attempted, and the readline def)3.131 F .632
-(ault of \214le-)-.1 F .559(name completion is disabled.)108 588 R .559
-(If the)5.559 F F2 .559(\255o bashdefault)3.059 F F0 .559(option w)3.059
-F .559(as supplied to)-.1 F F2(complete)3.058 E F0 .558
-(when the compspec)3.058 F -.1(wa)108 600 S 3.171(sd).1 G .671
-(e\214ned, the)-3.171 F F2(bash)3.171 E F0(def)3.171 E .671
+(ault of \214le-)-.1 F .559(name completion is disabled.)108 518.4 R
+.559(If the)5.559 F F3 .559(\255o bashdefault)3.059 F F0 .559(option w)
+3.059 F .559(as supplied to)-.1 F F3(complete)3.058 E F0 .558
+(when the compspec)3.058 F -.1(wa)108 530.4 S 3.171(sd).1 G .671
+(e\214ned, the)-3.171 F F3(bash)3.171 E F0(def)3.171 E .671
(ault completions are attempted if the compspec generates no matches.)
--.1 F .672(If the)5.672 F F2<ad6f>3.172 E(default)108 612 Q F0 1.207
-(option w)3.707 F 1.207(as supplied to)-.1 F F2(complete)3.707 E F0
+-.1 F .672(If the)5.672 F F3<ad6f>3.172 E(default)108 542.4 Q F0 1.207
+(option w)3.707 F 1.207(as supplied to)-.1 F F3(complete)3.707 E F0
1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
3.707(sd)-.55 G(ef)-3.707 E 1.206(ault completion)-.1 F
-(will be performed if the compspec \(and, if attempted, the def)108 624
-Q(ault)-.1 E F2(bash)2.5 E F0(completions\) generate no matches.)2.5 E
-.245(When a compspec indicates that directory name completion is desire\
-d, the programmable completion func-)108 640.8 R .633(tions force readl\
-ine to append a slash to completed names which are symbolic links to di\
-rectories, subject)108 652.8 R 2.761(to the v)108 664.8 R 2.761
-(alue of the)-.25 F F2(mark\255dir)5.261 E(ectories)-.18 E F0 2.761
+(will be performed if the compspec \(and, if attempted, the def)108
+554.4 Q(ault)-.1 E F3(bash)2.5 E F0(completions\) generate no matches.)
+2.5 E .245(When a compspec indicates that directory name completion is \
+desired, the programmable completion func-)108 571.2 R .633(tions force\
+ readline to append a slash to completed names which are symbolic links\
+ to directories, subject)108 583.2 R 2.761(to the v)108 595.2 R 2.761
+(alue of the)-.25 F F3(mark\255dir)5.261 E(ectories)-.18 E F0 2.761
(readline v)5.261 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.762
-(rdless of the setting of the).05 F F2(mark-sym-)5.262 E(link)108 676.8
+(rdless of the setting of the).05 F F3(mark-sym-)5.262 E(link)108 607.2
Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
.191(There is some support for dynamically modifying completions.)108
-693.6 R .19(This is most useful when used in combina-)5.191 F 1.33
-(tion with a def)108 705.6 R 1.33(ault completion speci\214ed with)-.1 F
-F2 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33
+624 R .19(This is most useful when used in combina-)5.191 F 1.33
+(tion with a def)108 636 R 1.33(ault completion speci\214ed with)-.1 F
+F3 1.33(complete -D)3.83 F F0 6.33(.I)C(t')-6.33 E 3.83(sp)-.55 G 1.33
(ossible for shell functions e)-3.83 F -.15(xe)-.15 G 1.33(cuted as).15
F .93(completion handlers to indicate that completion should be retried\
- by returning an e)108 717.6 R .93(xit status of 124.)-.15 F .93(If a)
-5.93 F .1(shell function returns 124, and changes the compspec associat\
-ed with the command on which completion is)108 729.6 R(GNU Bash-4.2)72
-768 Q(2010 December 28)135.965 E(46)185.955 E 0 Cg EP
-%%Page: 47 47
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .666(being attempted \(supplied as the \214rst ar)108 84 R .665
+ by returning an e)108 648 R .93(xit status of 124.)-.15 F .93(If a)5.93
+F .1(shell function returns 124, and changes the compspec associated wi\
+th the command on which completion is)108 660 R .666
+(being attempted \(supplied as the \214rst ar)108 672 R .665
(gument when the function is e)-.18 F -.15(xe)-.15 G .665
-(cuted\), programmable completion).15 F .083(restarts from the be)108 96
-R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc)-.25 G
-.084(ompspec for that command.)-2.584 F .084(This allo)5.084 F .084
-(ws a set of)-.25 F(completions to be b)108 108 Q(uilt dynamically as c\
+(cuted\), programmable completion).15 F .083(restarts from the be)108
+684 R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc)-.25
+G .084(ompspec for that command.)-2.584 F .084(This allo)5.084 F .084
+(ws a set of)-.25 F(completions to be b)108 696 Q(uilt dynamically as c\
ompletion is attempted, rather than being loaded all at once.)-.2 E -.15
-(Fo)108 124.8 S 2.637(ri).15 G .137
+(Fo)108 712.8 S 2.637(ri).15 G .137
(nstance, assuming that there is a library of compspecs, each k)-2.637 F
.137(ept in a \214le corresponding to the name of)-.1 F
-(the command, the follo)108 136.8 Q(wing def)-.25 E
+(the command, the follo)108 724.8 Q(wing def)-.25 E
(ault completion function w)-.1 E(ould load completions dynamically:)-.1
-E/F1 10/Courier@0 SF(_completion_loader\(\))108 153.6 Q({)108 165.6 Q 6
-(.")144 177.6 S
+E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(48)190.95 E 0 Cg EP
+%%Page: 49 49
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Courier@0 SF(_completion_loader\(\))108 84 Q({)108 96 Q 6
+(.")144 108 S
(/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})108
-189.6 Q(complete -D -F _completion_loader)108 201.6 Q/F2 10.95
-/Times-Bold@0 SF(HIST)72 230.4 Q(OR)-.197 E(Y)-.383 E F0 .371(When the)
-108 242.4 R/F3 10/Times-Bold@0 SF .371(\255o history)2.871 F F0 .371
-(option to the)2.871 F F3(set)2.872 E F0 -.2(bu)2.872 G .372
+120 Q(complete -D -F _completion_loader -o bashdefault -o default)108
+132 Q/F2 10.95/Times-Bold@0 SF(HIST)72 160.8 Q(OR)-.197 E(Y)-.383 E F0
+.371(When the)108 172.8 R/F3 10/Times-Bold@0 SF .371(\255o history)2.871
+F F0 .371(option to the)2.871 F F3(set)2.872 E F0 -.2(bu)2.872 G .372
(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F/F4
10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .305
-(the list of commands pre)108 254.4 R .305(viously typed.)-.25 F .305
+(the list of commands pre)108 184.8 R .305(viously typed.)-.25 F .305
(The v)5.305 F .304(alue of the)-.25 F/F5 9/Times-Bold@0 SF(HISTSIZE)
2.804 E F0 -.25(va)2.554 G .304(riable is used as the number of com-).25
-F .429(mands to sa)108 266.4 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
+F .429(mands to sa)108 196.8 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
(istory list.)-2.929 F .429(The te)5.429 F .429(xt of the last)-.15 F F5
(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43(ault 500\) is sa)-.1 F
-.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E .287
(stores each command in the history list prior to parameter and v)108
-278.4 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E
-(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 290.4
+208.8 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E
+(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 220.8
S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
(xpansion is performed, subject to the v)-.15 F 1.565
(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)4.065 E F0
-(and)3.816 E F5(HISTCONTR)108 302.4 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)
+(and)3.816 E F5(HISTCONTR)108 232.8 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)
A F0 .082
(On startup, the history is initialized from the \214le named by the v)
-108 319.2 R(ariable)-.25 E F5(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
+108 249.6 R(ariable)-.25 E F5(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
E F4(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
-331.2 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315
+261.6 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315
(is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G
-.315(ontain no more than the number of)-2.815 F .532
-(lines speci\214ed by the v)108 343.2 R .532(alue of)-.25 F F5
-(HISTFILESIZE)3.032 E F6(.)A F0 .532
-(When the history \214le is read, lines be)5.032 F .532
-(ginning with the his-)-.15 F 1.158(tory comment character follo)108
-355.2 R 1.159(wed immediately by a digit are interpreted as timestamps \
-for the preceding)-.25 F .053(history line.)108 367.2 R .053
-(These timestamps are optionally displayed depending on the v)5.053 F
-.052(alue of the)-.25 F F5(HISTTIMEFORMA)2.552 E(T)-.855 E F0 -.25(va)
-108 379.2 S 4.386(riable. When).25 F 1.886(an interacti)4.386 F 2.187
--.15(ve s)-.25 H 1.887(hell e).15 F 1.887(xits, the last)-.15 F F5
-($HISTSIZE)4.387 E F0 1.887(lines are copied from the history list to)
-4.137 F F5($HISTFILE)108 391.2 Q F6(.)A F0 .056(If the)4.556 F F3
-(histappend)2.556 E F0 .056
-(shell option is enabled \(see the description of)2.556 F F3(shopt)2.556
-E F0(under)2.556 E F5 .056(SHELL B)2.556 F(UIL)-.09 E(TIN)-.828 E
-(COMMANDS)108 403.2 Q F0(belo)2.671 E .422(w\), the lines are appended \
-to the history \214le, otherwise the history \214le is o)-.25 F -.15(ve)
--.15 G 2.922(rwritten. If).15 F F5(HISTFILE)108 415.2 Q F0 .435(is unse\
-t, or if the history \214le is unwritable, the history is not sa)2.685 F
--.15(ve)-.2 G 2.934(d. If).15 F(the)2.934 E F5(HISTTIMEFORMA)2.934 E(T)
--.855 E F0 -.25(va)108 427.2 S .916
+.315(ontain no more than the number of)-2.815 F .659
+(lines speci\214ed by the v)108 273.6 R .659(alue of)-.25 F F5
+(HISTFILESIZE)3.158 E F6(.)A F0(If)5.158 E F3(HISTFILESIZE)3.158 E F0
+.658(is unset, or set to null, a non-numeric)3.158 F -.25(va)108 285.6 S
+.142(lue, or a numeric v).25 F .142
+(alue less than zero, the history \214le is not truncated.)-.25 F .142
+(When the history \214le is read, lines)5.142 F(be)108 297.6 Q 1.605
+(ginning with the history comment character follo)-.15 F 1.604
+(wed immediately by a digit are interpreted as time-)-.25 F .098
+(stamps for the preceding history line.)108 309.6 R .098
+(These timestamps are optionally displayed depending on the v)5.098 F
+.098(alue of)-.25 F(the)108 321.6 Q F5(HISTTIMEFORMA)3.559 E(T)-.855 E
+F0 -.25(va)3.309 G 3.559(riable. When).25 F 3.559(as)3.559 G 1.059
+(hell with history enabled e)-3.559 F 1.059(xits, the last)-.15 F F5
+($HISTSIZE)3.559 E F0 1.058(lines are)3.309 F .158
+(copied from the history list to)108 333.6 R F5($HISTFILE)2.658 E F6(.)A
+F0 .158(If the)4.658 F F3(histappend)2.658 E F0 .159
+(shell option is enabled \(see the description of)2.659 F F3(shopt)108
+345.6 Q F0(under)2.582 E F5 .082(SHELL B)2.582 F(UIL)-.09 E .082
+(TIN COMMANDS)-.828 F F0(belo)2.332 E .082
+(w\), the lines are appended to the history \214le, otherwise the)-.25 F
+.196(history \214le is o)108 357.6 R -.15(ve)-.15 G 2.696(rwritten. If)
+.15 F F5(HISTFILE)2.696 E F0 .197(is unset, or if the history \214le is\
+ unwritable, the history is not sa)2.446 F -.15(ve)-.2 G(d.).15 E .584
+(If the)108 369.6 R F5(HISTTIMEFORMA)3.084 E(T)-.855 E F0 -.25(va)2.834
+G .584
(riable is set, time stamps are written to the history \214le, mark).25
-F .917(ed with the history comment character)-.1 F 3.417(,s)-.4 G(o)
--3.417 E(the)108 439.2 Q 3.083(ym)-.15 G .583(ay be preserv)-3.083 F
-.583(ed across shell sessions.)-.15 F .582
-(This uses the history comment character to distinguish time-)5.583 F
-.986(stamps from other history lines.)108 451.2 R .986(After sa)5.986 F
-.986(ving the history)-.2 F 3.486(,t)-.65 G .987
-(he history \214le is truncated to contain no more)-3.486 F(than)108
-463.2 Q F5(HISTFILESIZE)2.5 E F0 2.5(lines. If)2.25 F F5(HISTFILESIZE)
-2.5 E F0(is not set, no truncation is performed.)2.25 E 1.294(The b)108
-480 R 1.294(uiltin command)-.2 F F3(fc)3.794 E F0(\(see)3.794 E F5 1.293
-(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F F0(belo)3.543 E
-1.293(w\) may be used to list or edit and re-)-.25 F -.15(exe)108 492 S
-.673(cute a portion of the history list.).15 F(The)5.673 E F3(history)
-3.173 E F0 -.2(bu)3.173 G .673
+F .583(ed with the his-)-.1 F 1.147(tory comment character)108 381.6 R
+3.647(,s)-.4 G 3.647(ot)-3.647 G(he)-3.647 E 3.647(ym)-.15 G 1.147
+(ay be preserv)-3.647 F 1.147(ed across shell sessions.)-.15 F 1.148
+(This uses the history comment)6.148 F 1.377
+(character to distinguish timestamps from other history lines.)108 393.6
+R 1.377(After sa)6.377 F 1.377(ving the history)-.2 F 3.876(,t)-.65 G
+1.376(he history \214le is)-3.876 F .756
+(truncated to contain no more than)108 405.6 R F5(HISTFILESIZE)3.257 E
+F0 3.257(lines. If)3.007 F F5(HISTFILESIZE)3.257 E F0 .757
+(is unset, or set to null, a non-)3.007 F(numeric v)108 417.6 Q
+(alue, or a numeric v)-.25 E
+(alue less than zero, the history \214le is not truncated.)-.25 E 1.294
+(The b)108 434.4 R 1.294(uiltin command)-.2 F F3(fc)3.794 E F0(\(see)
+3.794 E F5 1.293(SHELL B)3.794 F(UIL)-.09 E 1.293(TIN COMMANDS)-.828 F
+F0(belo)3.543 E 1.293(w\) may be used to list or edit and re-)-.25 F
+-.15(exe)108 446.4 S .673(cute a portion of the history list.).15 F(The)
+5.673 E F3(history)3.173 E F0 -.2(bu)3.173 G .673
(iltin may be used to display or modify the history list).2 F .28
-(and manipulate the history \214le.)108 504 R .279
+(and manipulate the history \214le.)108 458.4 R .279
(When using command-line editing, search commands are a)5.279 F -.25(va)
--.2 G .279(ilable in each).25 F(editing mode that pro)108 516 Q
-(vide access to the history list.)-.15 E 1.485(The shell allo)108 532.8
+-.2 G .279(ilable in each).25 F(editing mode that pro)108 470.4 Q
+(vide access to the history list.)-.15 E 1.485(The shell allo)108 487.2
R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
-3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F5(HISTCONTR)3.986
-E(OL)-.27 E F0(and)3.736 E F5(HISTIGNORE)108 544.8 Q F0 -.25(va)2.708 G
+E(OL)-.27 E F0(and)3.736 E F5(HISTIGNORE)108 499.2 Q F0 -.25(va)2.708 G
.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o)
-.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F3
-(cmdhist)108 556.8 Q F0 .75
+(cmdhist)108 511.2 Q F0 .75
(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
-.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
-(the same history entry)108 568.8 R 3.577(,a)-.65 G 1.077
+(the same history entry)108 523.2 R 3.577(,a)-.65 G 1.077
(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
1.077(yntactic correctness.)-3.577 F(The)6.077 E F3(lithist)3.576 E F0
-.373(shell option causes the shell to sa)108 580.8 R .674 -.15(ve t)-.2
+.373(shell option causes the shell to sa)108 535.2 R .674 -.15(ve t)-.2
H .374(he command with embedded ne).15 F .374
(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319
-(description of the)108 592.8 R F3(shopt)2.819 E F0 -.2(bu)2.819 G .318
+(description of the)108 547.2 R F3(shopt)2.819 E F0 -.2(bu)2.819 G .318
(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F5 .318(SHELL B)2.818 F
(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318
(for information on setting and)2.568 F(unsetting shell options.)108
-604.8 Q F2(HIST)72 621.6 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E
-(ANSION)-.81 E F0 .61(The shell supports a history e)108 633.6 R .611
+559.2 Q F2(HIST)72 576 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)
+-.81 E F0 .61(The shell supports a history e)108 588 R .611
(xpansion feature that is similar to the history e)-.15 F .611
(xpansion in)-.15 F F3(csh.)3.111 E F0 .611(This section)5.611 F .871
-(describes what syntax features are a)108 645.6 R -.25(va)-.2 G 3.371
+(describes what syntax features are a)108 600 R -.25(va)-.2 G 3.371
(ilable. This).25 F .871(feature is enabled by def)3.371 F .87
(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87(hells, and).15 F
-2.013(can be disabled using the)108 657.6 R F3(+H)4.514 E F0 2.014
+2.013(can be disabled using the)108 612 R F3(+H)4.514 E F0 2.014
(option to the)4.514 F F3(set)4.514 E F0 -.2(bu)4.514 G 2.014
(iltin command \(see).2 F F5 2.014(SHELL B)4.514 F(UIL)-.09 E 2.014
-(TIN COMMANDS)-.828 F F0(belo)108 669.6 Q 2.5(w\). Non-interacti)-.25 F
-.3 -.15(ve s)-.25 H(hells do not perform history e).15 E
-(xpansion by def)-.15 E(ault.)-.1 E 1.306(History e)108 686.4 R 1.306
+(TIN COMMANDS)-.828 F F0(belo)108 624 Q 2.5(w\). Non-interacti)-.25 F .3
+-.15(ve s)-.25 H(hells do not perform history e).15 E(xpansion by def)
+-.15 E(ault.)-.1 E 1.306(History e)108 640.8 R 1.306
(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
input stream, making it easy to repeat)-.1 F .209
-(commands, insert the ar)108 698.4 R .209(guments to a pre)-.18 F .21
+(commands, insert the ar)108 652.8 R .209(guments to a pre)-.18 F .21
(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 710.4 Q(.)-.65 E 1.164(History e)108
-727.2 R 1.163(xpansion is performed immediately after a complete line i\
-s read, before the shell breaks it into)-.15 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(47)185.955 E 0 Cg EP
-%%Page: 48 48
+F(vious)-.25 E(commands quickly)108 664.8 Q(.)-.65 E 1.164(History e)108
+681.6 R 1.163(xpansion is performed immediately after a complete line i\
+s read, before the shell breaks it into)-.15 F -.1(wo)108 693.6 S 3.2
+(rds. It).1 F(tak)3.2 E .7(es place in tw)-.1 F 3.2(op)-.1 G 3.2
+(arts. The)-3.2 F .7
+(\214rst is to determine which line from the history list to use during)
+3.2 F 4.368(substitution. The)108 705.6 R 1.868(second is to select por\
+tions of that line for inclusion into the current one.)4.368 F 1.867
+(The line)6.867 F .662(selected from the history is the)108 717.6 R F4
+-.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663
+(nd the portions of that line that are acted upon are)-3.162 F F4(wor)
+3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F4(modi\214er)108 729.6
+Q(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227
+(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226
+(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F
+(ashion)-.1 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(49)190.95 E
+0 Cg EP
+%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.1(wo)108 84 S 3.2(rds. It).1 F(tak)3.2 E .7(es place in tw)-.1
-F 3.2(op)-.1 G 3.2(arts. The)-3.2 F .7
-(\214rst is to determine which line from the history list to use during)
-3.2 F 4.368(substitution. The)108 96 R 1.868(second is to select portio\
-ns of that line for inclusion into the current one.)4.368 F 1.867
-(The line)6.867 F .662(selected from the history is the)108 108 R/F1 10
-/Times-Italic@0 SF -.15(ev)3.162 G(ent).15 E F0 3.162(,a)C .663
-(nd the portions of that line that are acted upon are)-3.162 F F1(wor)
-3.163 E(ds)-.37 E F0 5.663(.V)C(arious)-6.773 E F1(modi\214er)108 120 Q
-(s)-.1 E F0 .227(are a)2.727 F -.25(va)-.2 G .227
-(ilable to manipulate the selected w).25 F 2.727(ords. The)-.1 F .226
-(line is brok)2.726 F .226(en into w)-.1 F .226(ords in the same f)-.1 F
-(ashion)-.1 E .351(as when reading input, so that se)108 132 R -.15(ve)
--.25 G(ral).15 E F1(metac)2.852 E(har)-.15 E(acter)-.15 E F0 .352
-(-separated w)B .352(ords surrounded by quotes are considered)-.1 F .625
-(one w)108 144 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
+-.35 E .351(as when reading input, so that se)108 84 R -.15(ve)-.25 G
+(ral).15 E/F1 10/Times-Italic@0 SF(metac)2.852 E(har)-.15 E(acter)-.15 E
+F0 .352(-separated w)B .352(ords surrounded by quotes are considered)-.1
+F .625(one w)108 96 R 3.125(ord. History)-.1 F -.15(ex)3.125 G .624
(pansions are introduced by the appearance of the history e).15 F .624
-(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 156 Q/F2
+(xpansion character)-.15 F 3.124(,w)-.4 G(hich)-3.124 E(is)108 108 Q/F2
10/Times-Bold@0 SF(!)3.333 E F0(by def)3.333 E 2.5(ault. Only)-.1 F
(backslash \()2.5 E F2(\\).833 E F0 2.5(\)a).833 G
(nd single quotes can quote the history e)-2.5 E(xpansion character)-.15
-E(.)-.55 E(Se)108 172.8 Q -.15(ve)-.25 G .03
+E(.)-.55 E(Se)108 124.8 Q -.15(ve)-.25 G .03
(ral characters inhibit history e).15 F .03
(xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
-F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 184.8 T
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 136.8 T
3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G
.662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)
-.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2
(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.162 E
-F0(will also inhibit e)108 196.8 Q(xpansion.)-.15 E(Se)108 213.6 Q -.15
+F0(will also inhibit e)108 148.8 Q(xpansion.)-.15 E(Se)108 165.6 Q -.15
(ve)-.25 G .109(ral shell options settable with the).15 F F2(shopt)2.609
E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
-(vior of history e)-.2 F(xpansion.)-.15 E 1.143(If the)108 225.6 R F2
+(vior of history e)-.2 F(xpansion.)-.15 E 1.143(If the)108 177.6 R F2
(histv)3.643 E(erify)-.1 E F0 1.143
(shell option is enabled \(see the description of the)3.643 F F2(shopt)
3.643 E F0 -.2(bu)3.643 G 1.143(iltin belo).2 F 1.143(w\), and)-.25 F F2
-.18(re)3.643 G(adline).18 E F0(is)3.642 E .461(being used, history sub\
-stitutions are not immediately passed to the shell parser)108 237.6 R
+stitutions are not immediately passed to the shell parser)108 189.6 R
5.461(.I)-.55 G .461(nstead, the e)-5.461 F .461(xpanded line)-.15 F
-1.516(is reloaded into the)108 249.6 R F2 -.18(re)4.016 G(adline).18 E
+1.516(is reloaded into the)108 201.6 R F2 -.18(re)4.016 G(adline).18 E
F0 1.516(editing b)4.016 F(uf)-.2 E 1.516
(fer for further modi\214cation.)-.25 F(If)6.516 E F2 -.18(re)4.015 G
-(adline).18 E F0 1.515(is being used, and the)4.015 F F2(histr)108 261.6
+(adline).18 E F0 1.515(is being used, and the)4.015 F F2(histr)108 213.6
Q(eedit)-.18 E F0 1.202(shell option is enabled, a f)3.702 F 1.202
(ailed history substitution will be reloaded into the)-.1 F F2 -.18(re)
-3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 273.6 S -.25(ff).2 G
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 225.6 S -.25(ff).2 G
1.161(er for correction.).25 F(The)6.161 E F2<ad70>3.661 E F0 1.161
(option to the)3.661 F F2(history)3.661 E F0 -.2(bu)3.661 G 1.16
-(iltin command may be used to see what a history).2 F -.15(ex)108 285.6
+(iltin command may be used to see what a history).2 F -.15(ex)108 237.6
S .055(pansion will do before using it.).15 F(The)5.055 E F2<ad73>2.555
E F0 .055(option to the)2.555 F F2(history)2.556 E F0 -.2(bu)2.556 G
.056(iltin may be used to add commands to the).2 F
-(end of the history list without actually e)108 297.6 Q -.15(xe)-.15 G
+(end of the history list without actually e)108 249.6 Q -.15(xe)-.15 G
(cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G
-(ilable for subsequent recall.).25 E 2.2(The shell allo)108 314.4 R 2.2
+(ilable for subsequent recall.).25 E 2.2(The shell allo)108 266.4 R 2.2
(ws control of the v)-.25 F 2.2(arious characters used by the history e)
-.25 F 2.2(xpansion mechanism \(see the)-.15 F 1.146(description of)108
-326.4 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
+278.4 R F2(histchars)3.646 E F0(abo)3.646 E 1.446 -.15(ve u)-.15 H(nder)
.15 E F2 1.146(Shell V)3.646 F(ariables)-.92 E F0 3.646(\). The)B 1.147
(shell uses the history comment character to)3.646 F
-(mark history timestamps when writing the history \214le.)108 338.4 Q F2
-(Ev)87 355.2 Q(ent Designators)-.1 E F0 .205(An e)108 367.2 R -.15(ve)
+(mark history timestamps when writing the history \214le.)108 290.4 Q F2
+(Ev)87 307.2 Q(ent Designators)-.1 E F0 .205(An e)108 319.2 R -.15(ve)
-.25 G .204(nt designator is a reference to a command line entry in the\
history list.).15 F .204(Unless the reference is abso-)5.204 F(lute, e)
-108 379.2 Q -.15(ve)-.25 G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5
-(ot).15 G(he current position in the history list.)-2.5 E F2(!)108 396 Q
+108 331.2 Q -.15(ve)-.25 G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5
+(ot).15 G(he current position in the history list.)-2.5 E F2(!)108 348 Q
F0 1.607(Start a history substitution, e)32.67 F 1.607(xcept when follo)
-.15 F 1.607(wed by a)-.25 F F2(blank)4.107 E F0 4.107(,n)C -.25(ew)
--4.107 G 1.608(line, carriage return, = or \().25 F(\(when the)144 408 Q
+-4.107 G 1.608(line, carriage return, = or \().25 F(\(when the)144 360 Q
F2(extglob)2.5 E F0(shell option is enabled using the)2.5 E F2(shopt)2.5
-E F0 -.2(bu)2.5 G(iltin\).).2 E F2(!)108 420 Q F1(n)A F0
-(Refer to command line)27.67 E F1(n)2.5 E F0(.).24 E F2<21ad>108 432 Q
+E F0 -.2(bu)2.5 G(iltin\).).2 E F2(!)108 372 Q F1(n)A F0
+(Refer to command line)27.67 E F1(n)2.5 E F0(.).24 E F2<21ad>108 384 Q
F1(n)A F0(Refer to the current command minus)21.97 E F1(n)2.5 E F0(.).24
-E F2(!!)108 444 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 456 Q F1(string)A
+E F2(!!)108 396 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
+(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 408 Q F1(string)A
F0 .865(Refer to the most recent command preceding the current position\
- in the history list starting with)9.33 F F1(string)144 468 Q F0(.).22 E
-F2(!?)108 480 Q F1(string)A F2([?])A F0 1.304(Refer to the most recent \
-command preceding the current postition in the history list containing)
-144 492 R F1(string)144 504 Q F0 5(.T).22 G(he trailing)-5 E F2(?)2.5 E
+ in the history list starting with)9.33 F F1(string)144 420 Q F0(.).22 E
+F2(!?)108 432 Q F1(string)A F2([?])A F0 1.503(Refer to the most recent \
+command preceding the current position in the history list containing)
+144 444 R F1(string)144 456 Q F0 5(.T).22 G(he trailing)-5 E F2(?)2.5 E
F0(may be omitted if)2.5 E F1(string)2.84 E F0(is follo)2.72 E
(wed immediately by a ne)-.25 E(wline.)-.25 E/F3 12/Times-Bold@0 SF(^)
-108 521 Q F1(string1)-5 I F3(^)5 I F1(string2)-5 I F3(^)5 I F0 .784
-(Quick substitution.)144 528 R .784(Repeat the pre)5.784 F .784
+108 473 Q F1(string1)-5 I F3(^)5 I F1(string2)-5 I F3(^)5 I F0 .784
+(Quick substitution.)144 480 R .784(Repeat the pre)5.784 F .784
(vious command, replacing)-.25 F F1(string1)3.624 E F0(with)3.283 E F1
(string2)3.283 E F0 5.783(.E).02 G(qui)-5.783 E -.25(va)-.25 G .783
-(lent to).25 F -.74(``)144 540 S(!!:s/).74 E F1(string1)A F0(/)A F1
+(lent to).25 F -.74(``)144 492 S(!!:s/).74 E F1(string1)A F0(/)A F1
(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 552 Q F0
+(belo)2.5 E(w\).)-.25 E F2(!#)108 504 Q F0
(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 568.8 S(rd Designators).75 E F0 -.8(Wo)108 580.8 S 1.313
+(Wo)87 520.8 S(rd Designators).75 E F0 -.8(Wo)108 532.8 S 1.313
(rd designators are used to select desired w).8 F 1.314(ords from the e)
-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314
(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
-.53(from the w)108 592.8 R .529(ord designator)-.1 F 5.529(.I)-.55 G
+.53(from the w)108 544.8 R .529(ord designator)-.1 F 5.529(.I)-.55 G
3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
-3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
-(are numbered from the be)108 604.8 R 1.3
+(are numbered from the be)108 556.8 R 1.3
(ginning of the line, with the \214rst w)-.15 F 1.301
(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
-F(inserted into the current line separated by single spaces.)108 616.8 Q
-F2 2.5(0\()108 633.6 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 645.6 Q
+F(inserted into the current line separated by single spaces.)108 568.8 Q
+F2 2.5(0\()108 585.6 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 597.6 Q
2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
-F1(n)108.36 657.6 Q F0(The)30.64 E F1(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)
-108 669.6 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
-E(ord 1.)-.1 E F2($)108 681.6 Q F0(The last ar)31 E(gument.)-.18 E F2(%)
-108 693.6 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F1
-(string)A F0(?' search.)A F1(x)108.77 705.6 Q F2<ad>A F1(y)A F0 2.5(Ar)
+F1(n)108.36 609.6 Q F0(The)30.64 E F1(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)
+108 621.6 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5
+E(ord 1.)-.1 E F2($)108 633.6 Q F0 .064(The last w)31 F 2.564(ord. This)
+-.1 F .064(is usually the last ar)2.564 F .064(gument, b)-.18 F .064
+(ut will e)-.2 F .064(xpand to the zeroth w)-.15 F .063
+(ord if there is only)-.1 F(one w)144 645.6 Q(ord in the line.)-.1 E F2
+(%)108 657.6 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F1
+(string)A F0(?' search.)A F1(x)108.77 669.6 Q F2<ad>A F1(y)A F0 2.5(Ar)
20.65 G(ange of w)-2.5 E(ords; `\255)-.1 E F1(y)A F0 2.5('a)C(bbre)-2.5
-E(viates `0\255)-.25 E F1(y)A F0('.)A F2(*)108 717.6 Q F0 .316
-(All of the w)31 F .316(ords b)-.1 F .316(ut the zeroth.)-.2 F .315
+E(viates `0\255)-.25 E F1(y)A F0('.)A F2(*)108 681.6 Q F0 .315
+(All of the w)31 F .315(ords b)-.1 F .315(ut the zeroth.)-.2 F .315
(This is a synon)5.315 F .315(ym for `)-.15 F F1(1\255$)A F0 2.815
-('. It)B .315(is not an error to use)2.815 F F2(*)2.815 E F0 .315
-(if there is)2.815 F(just one w)144 729.6 Q(ord in the e)-.1 E -.15(ve)
--.25 G(nt; the empty string is returned in that case.).15 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(48)185.955 E 0 Cg EP
-%%Page: 49 49
+('. It)B .315(is not an error to use)2.815 F F2(*)2.816 E F0 .316
+(if there is)2.816 F(just one w)144 693.6 Q(ord in the e)-.1 E -.15(ve)
+-.25 G(nt; the empty string is returned in that case.).15 E F2(x*)108
+705.6 Q F0(Abbre)26 E(viates)-.25 E F1(x\255$)2.5 E F0(.)A F2<78ad>108
+717.6 Q F0(Abbre)25.3 E(viates)-.25 E F1(x\255$)2.5 E F0(lik)2.5 E(e)-.1
+E F2(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(50)190.95 E 0 Cg EP
+%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(x*)108 84 Q F0(Abbre)26 E(viates)-.25 E/F2
-10/Times-Italic@0 SF(x\255$)2.5 E F0(.)A F1<78ad>108 96 Q F0(Abbre)25.3
-E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5 E(e)-.1 E F1(x*)2.5 E F0 2.5
-(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E(If a w)108 112.8 Q
-(ord designator is supplied without an e)-.1 E -.15(ve)-.25 G
-(nt speci\214cation, the pre).15 E(vious command is used as the e)-.25 E
--.15(ve)-.25 G(nt.).15 E F1(Modi\214ers)87 129.6 Q F0 .183
-(After the optional w)108 141.6 R .183(ord designator)-.1 F 2.683(,t)-.4
-G .184(here may appear a sequence of one or more of the follo)-2.683 F
-.184(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 153.6 Q F1(h)
-108 170.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
-(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 182.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
-(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 194.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
-(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 206.4 Q F0(Remo)31.56 E .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 218.4
-Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F1(q)108 230.4 Q F0
+-.35 E(If a w)108 84 Q(ord designator is supplied without an e)-.1 E
+-.15(ve)-.25 G(nt speci\214cation, the pre).15 E
+(vious command is used as the e)-.25 E -.15(ve)-.25 G(nt.).15 E/F1 10
+/Times-Bold@0 SF(Modi\214ers)87 100.8 Q F0 .184(After the optional w)108
+112.8 R .184(ord designator)-.1 F 2.684(,t)-.4 G .183
+(here may appear a sequence of one or more of the follo)-2.684 F .183
+(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 124.8 Q F1(h)108
+141.6 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
+(railing \214lename component, lea).15 E(ving only the head.)-.2 E F1(t)
+108 153.6 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
+(ll leading \214lename components, lea).15 E(ving the tail.)-.2 E F1(r)
+108 165.6 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
+(\214x of the form)-.25 E/F2 10/Times-Italic@0 SF(.xxx)2.5 E F0 2.5(,l)C
+(ea)-2.5 E(ving the basename.)-.2 E F1(e)108 177.6 Q F0(Remo)31.56 E .3
+-.15(ve a)-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1
+(p)108 189.6 Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E
+(ut do not e)-.2 E -.15(xe)-.15 G(cute it.).15 E F1(q)108 201.6 Q F0
(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 242.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
+-.1 E F1(x)108 213.6 Q F0(Quote the substituted w)31 E(ords as with)-.1
E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
-2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 254.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 266.4 Q F2(ne)3.082 E(w)-.15 E
-F0 .221(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221
+2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 225.6 Q F2(old)A F1(/)A
+F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 237.6 Q F2(ne)3.081 E(w)-.15 E
+F0 .221(for the \214rst occurrence of)3.031 F F2(old)2.951 E F0 .221
(in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721
-(yd)-.15 G .221(elimiter can be used in place)-2.721 F .616(of /.)144
-278.4 R .617
+(yd)-.15 G .221(elimiter can be used in place)-2.721 F .617(of /.)144
+249.6 R .617
(The \214nal delimiter is optional if it is the last character of the e)
-5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
-F .666(be quoted in)144 290.4 R F2(old)3.396 E F0(and)3.936 E F2(ne)
+5.617 F -.15(ve)-.25 G .617(nt line.).15 F .616(The delimiter may)5.616
+F .666(be quoted in)144 261.6 R F2(old)3.396 E F0(and)3.936 E F2(ne)
3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666
(If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166
(ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E
-F0 5.666(.A).77 G .274(single backslash will quote the &.)144 302.4 R
-(If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
-F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775
-(fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E
-(ous history substitutions took place, the last)144 314.4 Q F2(string)
+F0 5.666(.A).77 G .275(single backslash will quote the &.)144 273.6 R
+(If)5.275 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544
+F F2(old)3.004 E F0 .274(substituted, or)3.544 F 2.774(,i)-.4 G 2.774
+(fn)-2.774 G 2.774(op)-2.774 G(re)-2.774 E(vi-)-.25 E
+(ous history substitutions took place, the last)144 285.6 Q F2(string)
2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1
-(&)108 326.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
-(g)108 338.4 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G
-2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.)
-.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897
-('\()C(e.g.,)-2.897 E(`)144 350.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
--.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218
-(used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
-(elimiter can be used in place of /, and the \214nal)-3.718 F .09
-(delimiter is optional if it is the last character of the e)144 362.4 R
--.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089
-(may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 374.4 Q F0
-(.)A F1(G)108 386.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0
-2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25
-G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 403.2 Q(UIL)-.11 E
-(TIN COMMANDS)-1.007 E F0 .062(Unless otherwise noted, each b)108 415.2
+(&)108 297.6 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1
+(g)108 309.6 Q F0 .397(Cause changes to be applied o)31 F -.15(ve)-.15 G
+2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398(nt line.)
+.15 F .398(This is used in conjunction with `)5.398 F F1(:s)A F0 2.898
+('\()C(e.g.,)-2.898 E(`)144 321.6 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+-.15 E F1(/)A F0 1.219('\) or `)B F1(:&)A F0 3.719('. If)B 1.219
+(used with `)3.719 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.218
+(elimiter can be used in place of /, and the \214nal)-3.718 F .089
+(delimiter is optional if it is the last character of the e)144 333.6 R
+-.15(ve)-.25 G .09(nt line.).15 F(An)5.09 E F1(a)2.59 E F0 .09
+(may be used as a synon)2.59 F .09(ym for)-.15 F F1(g)144 345.6 Q F0(.)A
+F1(G)108 357.6 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 2.5
+('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 G
+(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 374.4 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .063(Unless otherwise noted, each b)108 386.4
R .062(uiltin command documented in this section as accepting options p\
-receded by)-.2 F F1<ad>108 427.2 Q F0(accepts)2.534 E F1<adad>2.534 E F0
-.034(to signify the end of the options.)2.534 F(The)5.034 E F1(:)2.534 E
+receded by)-.2 F F1<ad>108 398.4 Q F0(accepts)2.533 E F1<adad>2.533 E F0
+.034(to signify the end of the options.)2.533 F(The)5.034 E F1(:)2.534 E
F0(,)A F1(true)2.534 E F0(,)A F1(false)2.534 E F0 2.534(,a)C(nd)-2.534 E
-F1(test)2.534 E F0 -.2(bu)2.534 G .033(iltins do not accept options and)
-.2 F .077(do not treat)108 439.2 R F1<adad>2.577 E F0(specially)2.577 E
+F1(test)2.534 E F0 -.2(bu)2.534 G .034(iltins do not accept options and)
+.2 F .078(do not treat)108 410.4 R F1<adad>2.577 E F0(specially)2.577 E
5.077(.T)-.65 G(he)-5.077 E F1(exit)2.577 E F0(,)A F1(logout)2.577 E F0
(,)A F1(br)2.577 E(eak)-.18 E F0(,)A F1(continue)2.577 E F0(,)A F1(let)
2.577 E F0 2.577(,a)C(nd)-2.577 E F1(shift)2.577 E F0 -.2(bu)2.577 G
-.077(iltins accept and process ar).2 F(gu-)-.18 E .32(ments be)108 451.2
-R .32(ginning with)-.15 F F1<ad>2.82 E F0 .32(without requiring)2.82 F
-F1<adad>2.82 E F0 5.319(.O)C .319(ther b)-5.319 F .319
-(uiltins that accept ar)-.2 F .319(guments b)-.18 F .319
-(ut are not speci\214ed as)-.2 F 1.143(accepting options interpret ar)
-108 463.2 R 1.143(guments be)-.18 F 1.143(ginning with)-.15 F F1<ad>
+.077(iltins accept and process ar).2 F(gu-)-.18 E .319(ments be)108
+422.4 R .319(ginning with)-.15 F F1<ad>2.819 E F0 .319
+(without requiring)2.819 F F1<adad>2.819 E F0 5.319(.O)C .319(ther b)
+-5.319 F .319(uiltins that accept ar)-.2 F .32(guments b)-.18 F .32
+(ut are not speci\214ed as)-.2 F 1.144(accepting options interpret ar)
+108 434.4 R 1.144(guments be)-.18 F 1.144(ginning with)-.15 F F1<ad>
3.643 E F0 1.143(as in)3.643 F -.25(va)-.4 G 1.143
-(lid options and require).25 F F1<adad>3.644 E F0 1.144(to pre)3.644 F
--.15(ve)-.25 G 1.144(nt this).15 F(interpretation.)108 475.2 Q F1(:)108
-493.2 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .452(No ef)144 505.2 R
-.452(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
-(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .451(and performing an)
-3.221 F 2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. A)144
-517.2 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 534 Q F2
+(lid options and require).25 F F1<adad>3.643 E F0 1.143(to pre)3.643 F
+-.15(ve)-.25 G 1.143(nt this).15 F(interpretation.)108 446.4 Q F1(:)108
+464.4 Q F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .451(No ef)144 476.4 R
+.451(fect; the command does nothing be)-.25 F .452(yond e)-.15 F
+(xpanding)-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)
+3.222 F 2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. A)144
+488.4 R(zero e)2.5 E(xit code is returned.)-.15 E F1(.)110.5 505.2 Q F2
(\214lename)6.666 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108
-546 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0
-(])A 1.02(Read and e)144 558 R -.15(xe)-.15 G 1.02(cute commands from)
-.15 F F2(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
-(vironment and return the e)-.4 F(xit)-.15 E 1.68
-(status of the last command e)144 570 R -.15(xe)-.15 G 1.68(cuted from)
-.15 F F2(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F2(\214lename)6.09
-E F0 1.68(does not contain a slash, \214le)4.36 F .608(names in)144 582
-R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+517.2 Q(ce)-.18 E F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E
+F0(])A 1.02(Read and e)144 529.2 R -.15(xe)-.15 G 1.02
+(cute commands from).15 F F2(\214lename)5.43 E F0 1.02
+(in the current shell en)3.7 F 1.02(vironment and return the e)-.4 F
+(xit)-.15 E 1.458(status of the last command e)144 541.2 R -.15(xe)-.15
+G 1.458(cuted from).15 F F2(\214lename)3.958 E F0 6.458(.I).18 G(f)
+-6.458 E F2(\214lename)5.868 E F0 1.458
+(does not contain a slash, \214le-)4.138 F .608(names in)144 553.2 R/F4
+9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
(are used to \214nd the directory containing)2.858 F F2(\214lename)3.108
E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
-3.108 G(TH)-.189 E F0 .833(need not be e)144 594 R -.15(xe)-.15 G 3.333
-(cutable. When).15 F F1(bash)3.333 E F0 .832(is not in)3.333 F F2 .832
-(posix mode)3.332 F F0 3.332(,t)C .832
-(he current directory is searched if no)-3.332 F .981
-(\214le is found in)144 606 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
+3.108 G(TH)-.189 E F0 .832(need not be e)144 565.2 R -.15(xe)-.15 G
+3.332(cutable. When).15 F F1(bash)3.332 E F0 .832(is not in)3.332 F F2
+.832(posix mode)3.332 F F0 3.332(,t)C .833
+(he current directory is searched if no)-3.332 F .982
+(\214le is found in)144 577.2 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E(cepath)-.18
E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .982(f, the)-.25 F F4 -.666(PA)144 618
-S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)5.112 F(y)-.15
-E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F 2.612
-(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2
-(\214lename)144 630 Q F0 .341(is e)2.841 F -.15(xe)-.15 G 2.841
-(cuted. Otherwise).15 F .341(the positional parameters are unchanged.)
-2.841 F .342(The return status is the)5.342 F .716
-(status of the last command e)144 642 R .716
+(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144
+589.2 S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F
+(y)-.15 E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F
+2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F2
+(\214lename)144 601.2 Q F0 .342(is e)2.842 F -.15(xe)-.15 G 2.842
+(cuted. Otherwise).15 F .342(the positional parameters are unchanged.)
+2.842 F .341(The return status is the)5.341 F .716
+(status of the last command e)144 613.2 R .716
(xited within the script \(0 if no commands are e)-.15 F -.15(xe)-.15 G
-.716(cuted\), and f).15 F .715(alse if)-.1 F F2(\214lename)145.91 654 Q
-F0(is not found or cannot be read.)2.68 E F1(alias)108 670.8 Q F0([)2.5
+.716(cuted\), and f).15 F .716(alse if)-.1 F F2(\214lename)145.91 625.2
+Q F0(is not found or cannot be read.)2.68 E F1(alias)108 642 Q F0([)2.5
E F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(..])-2.5 E F1(Alias)144 682.8 Q F0 2.724(with no ar)5.224 F 2.724
+(..])-2.5 E F1(Alias)144 654 Q F0 2.725(with no ar)5.225 F 2.724
(guments or with the)-.18 F F1<ad70>5.224 E F0 2.724
-(option prints the list of aliases in the form)5.224 F F1(alias)5.225 E
-F2(name)144 694.8 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
+F2(name)144 666 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
.58(When ar)5.58 F .58
(guments are supplied, an alias is de\214ned for each)-.18 F F2(name)
-3.08 E F0(whose)144 706.8 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
+3.08 E F0(whose)144 678 Q F2(value)2.895 E F0 .395(is gi)2.895 F -.15
(ve)-.25 G 2.895(n. A).15 F .395(trailing space in)2.895 F F2(value)
5.395 E F0 .395(causes the ne)2.895 F .395(xt w)-.15 F .395
(ord to be check)-.1 F .395(ed for alias sub-)-.1 F .054
-(stitution when the alias is e)144 718.8 R 2.554(xpanded. F)-.15 F .054
+(stitution when the alias is e)144 690 R 2.554(xpanded. F)-.15 F .054
(or each)-.15 F F2(name)2.554 E F0 .054(in the ar)2.554 F .054
-(gument list for which no)-.18 F F2(value)2.554 E F0 .053(is sup-)2.553
-F 1.313(plied, the name and v)144 730.8 R 1.314
+(gument list for which no)-.18 F F2(value)2.554 E F0 .054(is sup-)2.554
+F 1.314(plied, the name and v)144 702 R 1.314
(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314
-(returns true unless a)3.814 F F2(name)3.814 E F0 1.314(is gi)3.814 F
--.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(49)185.955 E 0 Cg EP
-%%Page: 50 50
+(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F
+-.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
+(which no alias has been de\214ned.)144 714 Q(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(51)190.95 E 0 Cg EP
+%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(which no alias has been de\214ned.)144 84 Q/F1 10/Times-Bold@0 SF
-(bg)108 100.8 Q F0([)2.5 E/F2 10/Times-Italic@0 SF(jobspec)A F0(...])2.5
-E .745(Resume each suspended job)144 112.8 R F2(jobspec)3.245 E F0 .745
-(in the background, as if it had been started with)3.245 F F1(&)3.244 E
-F0 5.744(.I)C(f)-5.744 E F2(job-)4.984 E(spec)144 124.8 Q F0 .671
-(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
--3.171 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
-(bg)5.672 E F2(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
-(when job control is disabled or)144 136.8 R 2.919(,w)-.4 G .419
-(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
-(peci\214ed)-2.918 E F2(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
-(ot)-2.918 E(found or w)144 148.8 Q(as started without job control.)-.1
-E F1(bind)108 165.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F1(\255lpsvPSV)-2.5 E F0(])A F1(bind)108 177.6 Q F0([)2.5 E F1
+-.35 E/F1 10/Times-Bold@0 SF(bg)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0
+SF(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144 96 R F2
+(jobspec)3.244 E F0 .745
+(in the background, as if it had been started with)3.244 F F1(&)3.245 E
+F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 108 Q F0 .672
+(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
+-3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
+(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
+(when job control is disabled or)144 120 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
+(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
+(ot)-2.919 E(found or w)144 132 Q(as started without job control.)-.1 E
+F1(bind)108 148.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F1(\255lpsvPSVX)-2.5 E F0(])A F1(bind)108 160.8 Q F0([)2.5 E F1
<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2
(function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C
-F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 189.6 Q F0
+F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 172.8 Q F0
([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F1<ad66>2.5 E F2
-(\214lename)2.5 E F1(bind)108 201.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
+(\214lename)2.5 E F1(bind)108 184.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
G(ymap)-.2 E F0(])A F1<ad78>2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(shell\255command)A F1(bind)108 213.6 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
+(shell\255command)A F1(bind)108 196.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(function\255name)A F1(bind)108 225.6 Q F2 -.37(re)2.5 G
-(adline\255command).37 E F0 .238(Display current)144 237.6 R F1 -.18(re)
-2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
-(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
-(equence to a).15 F F1 -.18(re)2.739 G(adline).18 E F0 .239(function or)
-2.739 F .476(macro, or set a)144 249.6 R F1 -.18(re)2.976 G(adline).18 E
-F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
-.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F2
-(.inputr)144 261.6 Q(c)-.37 E F0 2.983(,b).31 G .484
-(ut each binding or command must be passed as a separate ar)-3.183 F
-.484(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 273.6 R(if supplied, ha)2.5
+(function\255name)A F1(bind)108 208.8 Q F2 -.37(re)2.5 G
+(adline\255command).37 E F0 .239(Display current)144 220.8 R F1 -.18(re)
+2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
+(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
+(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or)
+2.738 F .475(macro, or set a)144 232.8 R F1 -.18(re)2.975 G(adline).18 E
+F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
+.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2
+(.inputr)144 244.8 Q(c)-.37 E F0 2.984(,b).31 G .484
+(ut each binding or command must be passed as a separate ar)-3.184 F
+.483(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
+(re\255read\255init\255\214le'. Options,)144 256.8 R(if supplied, ha)2.5
E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
-285.6 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 297.6 Q F2 -.1(ke)5.159 G
-(ymap)-.2 E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658(map to be af)
-.15 F 2.658(fected by the subsequent bindings.)-.25 F(Acceptable)7.658 E
-F2 -.1(ke)180 309.6 S(ymap)-.2 E F0 3.192(names are)5.882 F F2 3.192
-(emacs, emacs\255standar)5.692 F 3.193
+268.8 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 280.8 Q F2 -.1(ke)5.158 G
+(ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af)
+.15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E
+F2 -.1(ke)180 292.8 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
+(emacs, emacs\255standar)5.693 F 3.192
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 321.6 Q F0 4.43(,a)C(nd)-4.43 E F2(vi\255insert)4.429
-E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G 1.929
-(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0 1.929
-(is equi)4.429 F -.25(va)-.25 G 1.929(lent to).25 F F2(emacs\255standar)
-180 333.6 Q(d)-.37 E F0(.)A F1<ad6c>144 345.6 Q F0
+(vi\255command)180 304.8 Q F0 4.429(,a)C(nd)-4.429 E F2(vi\255insert)
+4.429 E F0(.).68 E F2(vi)6.929 E F0 1.929(is equi)4.429 F -.25(va)-.25 G
+1.929(lent to).25 F F2(vi\255command)4.429 E F0(;)A F2(emacs)4.429 E F0
+1.929(is equi)4.429 F -.25(va)-.25 G 1.93(lent to).25 F F2
+(emacs\255standar)180 316.8 Q(d)-.37 E F0(.)A F1<ad6c>144 328.8 Q F0
(List the names of all)27.52 E F1 -.18(re)2.5 G(adline).18 E F0
-(functions.)2.5 E F1<ad70>144 357.6 Q F0(Display)24.74 E F1 -.18(re)2.5
+(functions.)2.5 E F1<ad70>144 340.8 Q F0(Display)24.74 E F1 -.18(re)2.5
G(adline).18 E F0(function names and bindings in such a w)2.5 E
-(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 369.6
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 352.8
Q F0(List current)24.19 E F1 -.18(re)2.5 G(adline).18 E F0
-(function names and bindings.)2.5 E F1<ad73>144 381.6 Q F0(Display)26.41
+(function names and bindings.)2.5 E F1<ad73>144 364.8 Q F0(Display)26.41
E F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
--.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 393.6 S 2.5(yt).1 G
-(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 405.6 Q
+-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 376.8 S 2.5(yt).1 G
+(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 388.8 Q
F0(Display)24.74 E F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
-.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F1<ad76>144 417.6 Q F0(Display)25.3 E F1 -.18(re)2.5 G
+(utput.)-2.5 E F1<ad76>144 400.8 Q F0(Display)25.3 E F1 -.18(re)2.5 G
(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 429.6 Q F0(List current)23.08 E F1
+(an be re-read.)-2.5 E F1<ad56>144 412.8 Q F0(List current)23.08 E F1
-.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad66>144 441.6 Q F2(\214lename)2.5 E F0(Read k)180
-453.6 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
-F1<ad71>144 465.6 Q F2(function)2.5 E F0(Query about which k)180 477.6 Q
+(alues.)-.25 E F1<ad66>144 424.8 Q F2(\214lename)2.5 E F0(Read k)180
+436.8 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 448.8 Q F2(function)2.5 E F0(Query about which k)180 460.8 Q
-.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H
-(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 489.6 Q F2(function)
-2.5 E F0(Unbind all k)180 501.6 Q -.15(ey)-.1 G 2.5(sb).15 G
-(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 513.6 Q
-F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 525.6 Q .3 -.15(ve a)-.15 H .3
+(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 472.8 Q F2(function)
+2.5 E F0(Unbind all k)180 484.8 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 496.8 Q
+F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 508.8 Q .3 -.15(ve a)-.15 H .3
-.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0
-(.)A F1<ad78>144 537.6 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
-(shell\255command)A F0(Cause)180 549.6 Q F2(shell\255command)4.325 E F0
+(.)A F1<ad78>144 520.8 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
+(shell\255command)A F0(Cause)180 532.8 Q F2(shell\255command)4.325 E F0
1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)
-.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
-(When)6.825 E F2(shell\255com-)4.325 E(mand)180 561.6 Q F0 1.764(is e)
-4.264 F -.15(xe)-.15 G 1.765(cuted, the shell sets the).15 F/F3 9
+(When)6.825 E F2(shell\255com-)4.325 E(mand)180 544.8 Q F0 1.765(is e)
+4.265 F -.15(xe)-.15 G 1.765(cuted, the shell sets the).15 F/F3 9
/Times-Bold@0 SF(READLINE_LINE)4.265 E F0 -.25(va)4.015 G 1.765
-(riable to the contents of the).25 F F1 -.18(re)180 573.6 S(adline).18 E
-F0 1.353(line b)3.853 F(uf)-.2 E 1.353(fer and the)-.25 F F3
+(riable to the contents of the).25 F F1 -.18(re)180 556.8 S(adline).18 E
+F0 1.353(line b)3.852 F(uf)-.2 E 1.353(fer and the)-.25 F F3
(READLINE_POINT)3.853 E F0 -.25(va)3.603 G 1.353
-(riable to the current location of the).25 F 2.011(insertion point.)180
-585.6 R 2.011(If the e)7.011 F -.15(xe)-.15 G 2.011
+(riable to the current location of the).25 F 2.012(insertion point.)180
+568.8 R 2.011(If the e)7.012 F -.15(xe)-.15 G 2.011
(cuted command changes the v).15 F 2.011(alue of)-.25 F F3
-(READLINE_LINE)4.512 E F0(or)4.262 E F3(READLINE_POINT)180 597.6 Q/F4 9
+(READLINE_LINE)4.511 E F0(or)4.261 E F3(READLINE_POINT)180 580.8 Q/F4 9
/Times-Roman@0 SF(,)A F0(those ne)2.25 E 2.5(wv)-.25 G
-(alues will be re\215ected in the editing state.)-2.75 E(The return v)
-144 614.4 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+(alues will be re\215ected in the editing state.)-2.75 E F1<ad58>144
+592.8 Q F0 .829(List all k)23.08 F 1.129 -.15(ey s)-.1 H .829
+(equences bound to shell commands and the associated commands in a for)
+.15 F(-)-.2 E(mat that can be reused as input.)180 604.8 Q(The return v)
+144 621.6 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 631.2 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
-(Exit from within a)144 643.2 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
+E F1(br)108 638.4 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
+(Exit from within a)144 650.4 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F5 10/Symbol SF<b3>2.554
-E F0(1.)2.554 E(If)144 655.2 Q F2(n)3.074 E F0 .215(is greater than the\
+E F0(1.)2.554 E(If)144 662.4 Q F2(n)3.074 E F0 .215(is greater than the\
number of enclosing loops, all enclosing loops are e)2.954 F 2.715
(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
-667.2 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
-(bu)108 684 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E F2
-(ar)A(guments)-.37 E F0(])A(Ex)144 696 Q .793
+674.4 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
+(bu)108 691.2 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F2(ar)A(guments)-.37 E F0(])A(Ex)144 703.2 Q .793
(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F2
(ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
-(when de\214ning a function whose name is the same as a shell b)144 708
-R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144 720 R
-.57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0 -.2(bu)
-3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E 5.57(.T)
--.65 G .57(he return status)-5.57 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(50)185.955 E 0 Cg EP
-%%Page: 51 51
+(when de\214ning a function whose name is the same as a shell b)144
+715.2 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
+727.2 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
+5.57(.T)-.65 G .57(he return status)-5.57 F(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(52)190.95 E 0 Cg EP
+%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
@@ -6020,2367 +6359,2556 @@ ent e)144 148.8 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
(cuting a subroutine call or).15 F F1 -.2(ex)3.019 G(pr).2 E F0 .519
(does not corre-)3.019 F(spond to a v)144 184.8 Q
(alid position in the call stack.)-.25 E F2(cd)108 201.6 Q F0([)2.5 E F2
-<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0(]]] [)A F1(dir)A F0(])
-A .21(Change the current directory to)144 213.6 R F1(dir)2.71 E F0 5.21
-(.T)C .21(he v)-5.21 F(ariable)-.25 E/F3 9/Times-Bold@0 SF(HOME)2.71 E
-F0 .21(is the def)2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21
-(he v)-5.21 F(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0
-.777(de\214nes the search path for the directory containing)144 225.6 R
-F1(dir)3.276 E F0 5.776(.A).73 G(lternati)-5.776 E 1.076 -.15(ve d)-.25
-H .776(irectory names in).15 F F3(CDP)3.276 E -.855(AT)-.666 G(H).855 E
-F0 .764(are separated by a colon \(:\).)144 237.6 R 3.264(An)5.764 G
-.764(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H)
-.855 E F0 .764(is the same as the current direc-)3.014 F(tory)144 249.6
-Q 2.974(,i)-.65 G .474(.e., `)-2.974 F(`)-.74 E F2(.)A F0 -.74('')C
-5.474(.I).74 G(f)-5.474 E F1(dir)3.324 E F0(be)3.704 E .474
-(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H)
-.855 E F0 .473(is not used. The)2.724 F F2<ad50>2.973 E F0 .473
-(option says to use)2.973 F .579(the ph)144 261.6 R .579
-(ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F2<ad50>3.08 E F0 .58
-(option to the)3.08 F F2(set)144 273.6 Q F0 -.2(bu)2.717 G .217
-(iltin command\); the).2 F F2<ad4c>2.717 E F0 .217
-(option forces symbolic links to be follo)2.717 F 2.716(wed. If)-.25 F
-(the)2.716 E F2<ad65>2.716 E F0 .216(option is sup-)2.716 F 1.086
-(plied with)144 285.6 R F2<ad50>3.586 E F0 3.586(,a)C 1.086
-(nd the current w)-3.586 F 1.087
-(orking directory cannot be successfully determined after a suc-)-.1 F
-.44(cessful directory change,)144 297.6 R F2(cd)2.94 E F0 .44
-(will return an unsuccessful status.)2.94 F .44(An ar)5.44 F .44
-(gument of)-.18 F F2<ad>2.94 E F0 .44(is equi)2.94 F -.25(va)-.25 G .44
-(lent to).25 F F3($OLDPWD)144 309.6 Q/F4 9/Times-Roman@0 SF(.)A F0 1.044
-(If a non-empty directory name from)5.544 F F3(CDP)3.544 E -.855(AT)
--.666 G(H).855 E F0 1.045(is used, or if)3.295 F F2<ad>3.545 E F0 1.045
-(is the \214rst ar)3.545 F(gument,)-.18 E .021(and the directory change\
- is successful, the absolute pathname of the ne)144 321.6 R 2.521(ww)
--.25 G .021(orking directory is writ-)-2.621 F .165
-(ten to the standard output.)144 333.6 R .165(The return v)5.165 F .165
-(alue is true if the directory w)-.25 F .165(as successfully changed; f)
--.1 F(alse)-.1 E(otherwise.)144 345.6 Q F2(command)108 362.4 Q F0([)2.5
-E F2(\255pVv)A F0(])A F1(command)2.5 E F0([)2.5 E F1(ar)A(g)-.37 E F0
-(...])2.5 E(Run)144 374.4 Q F1(command)2.957 E F0(with)3.527 E F1(ar)
-3.087 E(gs)-.37 E F0 .257
+<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0(]] [\255@]] [)A F1
+(dir)A F0(])A .321(Change the current directory to)144 213.6 R F1(dir)
+2.821 E F0 5.321(.i)C(f)-5.321 E F1(dir)2.821 E F0 .322
+(is not supplied, the v)2.821 F .322(alue of the)-.25 F/F3 9
+/Times-Bold@0 SF(HOME)2.822 E F0 .322(shell v)2.572 F .322(ariable is)
+-.25 F 1.036(the def)144 225.6 R 3.536(ault. An)-.1 F 3.536(ya)-.15 G
+1.035(dditional ar)-3.536 F 1.035(guments follo)-.18 F(wing)-.25 E F1
+(dir)3.535 E F0 1.035(are ignored.)3.535 F 1.035(The v)6.035 F(ariable)
+-.25 E F3(CDP)3.535 E -.855(AT)-.666 G(H).855 E F0(de\214nes)3.285 E
+.849(the search path for the directory containing)144 237.6 R F1(dir)
+3.349 E F0 3.35(:e).73 G .85(ach directory name in)-3.35 F F3(CDP)3.35 E
+-.855(AT)-.666 G(H).855 E F0 .85(is searched for)3.1 F F1(dir)144 249.6
+Q F0 5.665(.A)C(lternati)-5.665 E .965 -.15(ve d)-.25 H .665
+(irectory names in).15 F F3(CDP)3.165 E -.855(AT)-.666 G(H).855 E F0
+.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .664
+(ull directory name)-3.165 F(in)144 261.6 Q F3(CDP)4.162 E -.855(AT)
+-.666 G(H).855 E F0 1.662(is the same as the current directory)3.912 F
+4.162(,i)-.65 G 1.662(.e., `)-4.162 F(`)-.74 E F2(.)A F0 -.74('')C 6.662
+(.I).74 G(f)-6.662 E F1(dir)4.513 E F0(be)4.893 E 1.663
+(gins with a slash \(/\), then)-.15 F F3(CDP)144 273.6 Q -.855(AT)-.666
+G(H).855 E F0 .347(is not used. The)2.598 F F2<ad50>2.847 E F0 .347
+(option causes)2.847 F F2(cd)2.847 E F0 .347(to use the ph)2.847 F .347
+(ysical directory structure by resolving)-.05 F 1.12
+(symbolic links while tra)144 285.6 R -.15(ve)-.2 G(rsing).15 E F1(dir)
+3.62 E F0 1.12(and before processing instances of)3.62 F F1(..)3.62 E F0
+(in)3.62 E F1(dir)3.62 E F0 1.12(\(see also the)3.62 F F2<ad50>3.62 E F0
+.395(option to the)144 297.6 R F2(set)2.895 E F0 -.2(bu)2.895 G .395
+(iltin command\); the).2 F F2<ad4c>2.895 E F0 .395
+(option forces symbolic links to be follo)2.895 F .395(wed by resolv-)
+-.25 F .443(ing the link after processing instances of)144 309.6 R F1
+(..)2.943 E F0(in)2.943 E F1(dir)2.943 E F0 5.443(.I)C(f)-5.443 E F1(..)
+2.943 E F0 .443(appears in)2.943 F F1(dir)2.943 E F0 2.943(,i)C 2.943
+(ti)-2.943 G 2.944(sp)-2.943 G .444(rocessed by remo)-2.944 F(ving)-.15
+E .744(the immediately pre)144 321.6 R .744
+(vious pathname component from)-.25 F F1(dir)3.244 E F0 3.244(,b)C .744
+(ack to a slash or the be)-3.244 F .744(ginning of)-.15 F F1(dir)3.244 E
+F0(.)A 1.465(If the)144 333.6 R F2<ad65>3.965 E F0 1.465
+(option is supplied with)3.965 F F2<ad50>3.965 E F0 3.965(,a)C 1.465
+(nd the current w)-3.965 F 1.466
+(orking directory cannot be successfully)-.1 F .468
+(determined after a successful directory change,)144 345.6 R F2(cd)2.968
+E F0 .468(will return an unsuccessful status.)2.968 F .467(On systems)
+5.467 F .336(that support it, the)144 357.6 R F2<ad40>2.836 E F0 .336
+(option presents the e)2.836 F .336(xtended attrib)-.15 F .337
+(utes associated with a \214le as a directory)-.2 F(.)-.65 E .71(An ar)
+144 369.6 R .71(gument of)-.18 F F2<ad>3.21 E F0 .71(is con)3.21 F -.15
+(ve)-.4 G .71(rted to).15 F F3($OLDPWD)3.21 E F0 .71
+(before the directory change is attempted.)2.96 F .71(If a non-)5.71 F
+.106(empty directory name from)144 381.6 R F3(CDP)2.606 E -.855(AT)-.666
+G(H).855 E F0 .107(is used, or if)2.356 F F2<ad>2.607 E F0 .107
+(is the \214rst ar)2.607 F .107(gument, and the directory change)-.18 F
+.038(is successful, the absolute pathname of the ne)144 393.6 R 2.538
+(ww)-.25 G .038(orking directory is written to the standard output.)
+-2.638 F(The return v)144 405.6 Q(alue is true if the directory w)-.25 E
+(as successfully changed; f)-.1 E(alse otherwise.)-.1 E F2(command)108
+422.4 Q F0([)2.5 E F2(\255pVv)A F0(])A F1(command)2.5 E F0([)2.5 E F1
+(ar)A(g)-.37 E F0(...])2.5 E(Run)144 434.4 Q F1(command)2.956 E F0(with)
+3.527 E F1(ar)3.087 E(gs)-.37 E F0 .257
(suppressing the normal shell function lookup. Only b)3.027 F .257
-(uiltin commands or)-.2 F .501(commands found in the)144 386.4 R F3
--.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G 3.002
+(uiltin commands or)-.2 F .502(commands found in the)144 446.4 R F3
+-.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
(cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502(option is gi)3.002
-F -.15(ve)-.25 G .502(n, the search for).15 F F1(command)3.202 E F0(is)
-3.772 E .4(performed using a def)144 398.4 R .4(ault v)-.1 F .4
-(alue for)-.25 F F3 -.666(PA)2.9 G(TH)-.189 E F0 .399
+F -.15(ve)-.25 G .501(n, the search for).15 F F1(command)3.201 E F0(is)
+3.771 E .399(performed using a def)144 458.4 R .399(ault v)-.1 F .399
+(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0 .4
(that is guaranteed to \214nd all of the standard utilities.)2.649 F(If)
-5.399 E .174(either the)144 410.4 R F2<ad56>2.674 E F0(or)2.674 E F2
-<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F1
-(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F2<ad76>2.675 E
-F0 .175(option causes)2.675 F 3.11(as)144 422.4 S .61(ingle w)-3.11 F
-.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
--.4 G -.1(ke).2 G F1(command)3.41 E F0 .61(to be displayed; the)3.88 F
-F2<ad56>144 434.4 Q F0 .249(option produces a more v)2.749 F .249
-(erbose description.)-.15 F .249(If the)5.249 F F2<ad56>2.749 E F0(or)
-2.749 E F2<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
-(xit status)-.15 F 1.005(is 0 if)144 446.4 R F1(command)3.705 E F0 -.1
-(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+5.4 E .175(either the)144 470.4 R F2<ad56>2.675 E F0(or)2.675 E F2<ad76>
+2.675 E F0 .175(option is supplied, a description of)2.675 F F1(command)
+2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F2<ad76>2.674 E F0 .174
+(option causes)2.674 F 3.317(as)144 482.4 S .817(ingle w)-3.317 F .817
+(ord indicating the command or \214lename used to in)-.1 F -.2(vo)-.4 G
+-.1(ke).2 G F1(command)3.618 E F0 .818(to be displayed; the)4.088 F F2
+<ad56>144 494.4 Q F0 .25(option produces a more v)2.75 F .25
+(erbose description.)-.15 F .249(If the)5.25 F F2<ad56>2.749 E F0(or)
+2.749 E F2<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
+(xit status)-.15 F 1.004(is 0 if)144 506.4 R F1(command)3.704 E F0 -.1
+(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
(If neither option is supplied and an error occurred or)6.005 F F1
-(command)144.2 458.4 Q F0 1.598(cannot be found, the e)4.868 F 1.599
-(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
-(xit status of the)-.15 F F2(command)4.099 E F0 -.2(bu)144 470.4 S
+(command)144.2 518.4 Q F0 1.599(cannot be found, the e)4.869 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
+(xit status of the)-.15 F F2(command)4.098 E F0 -.2(bu)144 530.4 S
(iltin is the e).2 E(xit status of)-.15 E F1(command)2.5 E F0(.).77 E F2
-(compgen)108 487.2 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
--.37 E F0(])A .013(Generate possible completion matches for)144 499.2 R
+(compgen)108 547.2 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
+-.37 E F0(])A .012(Generate possible completion matches for)144 559.2 R
F1(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513
-E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
-(accepted by the)144 511.2 R F2(complete)3.481 E F0 -.2(bu)3.481 G .981
+E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
+(accepted by the)144 571.2 R F2(complete)3.482 E F0 -.2(bu)3.481 G .981
(iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and)
-3.481 E F2<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
--3.481 F 1.415(standard output.)144 523.2 R 1.415(When using the)6.415 F
+3.481 E F2<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
+-3.481 F 1.415(standard output.)144 583.2 R 1.415(When using the)6.415 F
F2<ad46>3.915 E F0(or)3.915 E F2<ad43>3.915 E F0 1.415(options, the v)
3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
-F(grammable completion f)144 535.2 Q(acilities, while a)-.1 E -.25(va)
+F(grammable completion f)144 595.2 Q(acilities, while a)-.1 E -.25(va)
-.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)
--.25 E .352(The matches will be generated in the same w)144 559.2 R .352
+-.25 E .352(The matches will be generated in the same w)144 619.2 R .352
(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
em directly from a completion speci\214cation with the same \215ags.)144
-571.2 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
-2.52 F(those completions matching)144 583.2 Q F1(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 607.2 Q
+631.2 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 643.2 Q F1(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 667.2 Q
(alue is true unless an in)-.25 E -.25(va)-.4 G
(lid option is supplied, or no matches were generated.).25 E F2
-(complete)108 624 Q F0([)3.728 E F2(\255abcdefgjksuv)A F0 3.728(][)C F2
-<ad6f>-3.728 E F1(comp-option)3.728 E F0 3.728(][)C F2(\255DE)-3.728 E
+(complete)108 684 Q F0([)3.729 E F2(\255abcdefgjksuv)A F0 3.729(][)C F2
+<ad6f>-3.729 E F1(comp-option)3.729 E F0 3.729(][)C F2(\255DE)-3.729 E
F0 3.728(][)C F2<ad41>-3.728 E F1(action)3.728 E F0 3.728(][)C F2<ad47>
--3.728 E F1(globpat)3.728 E F0 3.729(][)C F2<ad57>-3.729 E F1(wor)3.729
-E(dlist)-.37 E F0 3.729(][)C F2<ad46>-3.729 E F1(func-)3.729 E(tion)108
-636 Q F0 2.5(][)C F2<ad43>-2.5 E F1(command)2.5 E F0(])A([)144 648 Q F2
+-3.728 E F1(globpat)3.728 E F0 3.728(][)C F2<ad57>-3.728 E F1(wor)3.728
+E(dlist)-.37 E F0 3.728(][)C F2<ad46>-3.728 E F1(func-)3.728 E(tion)108
+696 Q F0 2.5(][)C F2<ad43>-2.5 E F1(command)2.5 E F0(])A([)144 708 Q F2
<ad58>A F1(\214lterpat)2.5 E F0 2.5(][)C F2<ad50>-2.5 E F1(pr)2.5 E
(e\214x)-.37 E F0 2.5(][)C F2<ad53>-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])
-A F1(name)2.5 E F0([)2.5 E F1(name ...)A F0(])A F2(complete \255pr)108
-660 Q F0([)2.5 E F2(\255DE)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E
-.633(Specify ho)144 672 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633
-(uments to each).18 F F1(name)3.133 E F0 .633(should be completed.)3.133
-F .634(If the)5.634 F F2<ad70>3.134 E F0 .634
-(option is supplied, or if no)3.134 F .14(options are supplied, e)144
-684 R .139(xisting completion speci\214cations are printed in a w)-.15 F
-.139(ay that allo)-.1 F .139(ws them to be)-.25 F .31(reused as input.)
-144 696 R(The)5.31 E F2<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)
--.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F1
-(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
-F1(name)2.81 E F0(s)A 1.347
-(are supplied, all completion speci\214cations.)144 708 R(The)6.347 E F2
-<ad44>3.847 E F0 1.346(option indicates that the remaining options)3.847
-F .5(and actions should apply to the `)144 720 R(`def)-.74 E(ault')-.1 E
-3('c)-.74 G .5(ommand completion; that is, completion attempted on)-3 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(51)185.955 E 0 Cg EP
-%%Page: 52 52
+A F1(name)2.5 E F0([)2.5 E F1(name ...)A F0(])A(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(53)190.95 E 0 Cg EP
+%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 3.455(ac)144 84 S .955(ommand for which no completion has pre)
--3.455 F .955(viously been de\214ned.)-.25 F(The)5.955 E/F1 10
-/Times-Bold@0 SF<ad45>3.455 E F0 .955(option indicates that)3.455 F .064
-(the remaining options and actions should apply to `)144 96 R(`empty')
--.74 E 2.565('c)-.74 G .065(ommand completion; that is, comple-)-2.565 F
-(tion attempted on a blank line.)144 108 Q 1.438
+-.35 E/F1 10/Times-Bold@0 SF(complete \255pr)108 84 Q F0([)2.5 E F1
+(\255DE)A F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0(...])2.5 E
+.634(Specify ho)144 96 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
+(uments to each).18 F F2(name)3.134 E F0 .634(should be completed.)3.134
+F .633(If the)5.634 F F1<ad70>3.133 E F0 .633
+(option is supplied, or if no)3.133 F .139(options are supplied, e)144
+108 R .139(xisting completion speci\214cations are printed in a w)-.15 F
+.14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)144
+120 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15 G
+2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2(name)
+2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2
+(name)2.81 E F0(s)A 1.346
+(are supplied, all completion speci\214cations.)144 132 R(The)6.347 E F1
+<ad44>3.847 E F0 1.347(option indicates that the remaining options)3.847
+F .5(and actions should apply to the `)144 144 R(`def)-.74 E(ault')-.1 E
+3('c)-.74 G .5(ommand completion; that is, completion attempted on)-3 F
+3.455(ac)144 156 S .955(ommand for which no completion has pre)-3.455 F
+.955(viously been de\214ned.)-.25 F(The)5.955 E F1<ad45>3.455 E F0 .955
+(option indicates that)3.455 F .065
+(the remaining options and actions should apply to `)144 168 R(`empty')
+-.74 E 2.564('c)-.74 G .064(ommand completion; that is, comple-)-2.564 F
+(tion attempted on a blank line.)144 180 Q 1.437
(The process of applying these completion speci\214cations when w)144
-132 R 1.437(ord completion is attempted is)-.1 F(described abo)144 144 Q
+204 R 1.438(ord completion is attempted is)-.1 F(described abo)144 216 Q
.3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(.)A .555(Other options, if speci\214ed, ha)144 168 R .855 -.15(ve t)
+F0(.)A .556(Other options, if speci\214ed, ha)144 240 R .856 -.15(ve t)
-.2 H .555(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F
-.555(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0
-3.056(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723
-(options \(and, if necessary)144 180 R 3.223(,t)-.65 G(he)-3.223 E F1
-<ad50>3.223 E F0(and)3.223 E F1<ad53>3.223 E F0 .722
-(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
-(sion before the)144 192 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 204 Q/F2
-10/Times-Italic@0 SF(comp-option)2.5 E F0(The)184 216 Q F2(comp-option)
-2.79 E F0 .291(controls se)2.791 F -.15(ve)-.25 G .291
-(ral aspects of the compspec').15 F 2.791(sb)-.55 G(eha)-2.791 E .291
-(vior be)-.2 F .291(yond the simple)-.15 F(generation of completions.)
-184 228 Q F2(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184
-240 Q F0 .281(Perform the rest of the def)224 252 R(ault)-.1 E F1(bash)
-2.781 E F0 .281(completions if the compspec generates no)2.781 F
-(matches.)224 264 Q F1(default)184 276 Q F0 2.875(Use readline')10 F
-5.375(sd)-.55 G(ef)-5.375 E 2.876
-(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 288 Q F1(dir)184 300 Q(names)-.15 E F0(Perform directory name compl\
-etion if the compspec generates no matches.)224 312 Q F1(\214lenames)184
-324 Q F0 -.7(Te)224 336 S .137(ll readline that the compspec generates \
-\214lenames, so it can perform an).7 F 2.636<798c>-.15 G(le-)-2.636 E
-.134(name\255speci\214c processing \(lik)224 348 R 2.634(ea)-.1 G .134
-(dding a slash to directory names, quoting spe-)-2.634 F .45
-(cial characters, or suppressing trailing spaces\).)224 360 R .45
-(Intended to be used with shell)5.45 F(functions.)224 372 Q F1(nospace)
-184 384 Q F0 -.7(Te)6.11 G .22
-(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
-.22(ords completed at the end)-.1 F(of the line.)224 396 Q F1(plusdirs)
-184 408 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
-(atches de\214ned by the compspec are generated, directory name)-4.485 F
-.583(completion is attempted and an)224 420 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 432
-Q F1<ad41>144 444 Q F2(action)2.5 E F0(The)184 456 Q F2(action)2.5 E F0
-(may be one of the follo)2.5 E
+.555(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0
+3.055(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722
+(options \(and, if necessary)144 252 R 3.222(,t)-.65 G(he)-3.222 E F1
+<ad50>3.222 E F0(and)3.222 E F1<ad53>3.222 E F0 .723
+(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
+(sion before the)144 264 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 276 Q F2
+(comp-option)2.5 E F0(The)184 288 Q F2(comp-option)2.791 E F0 .291
+(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
+.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
+(yond the simple)-.15 F(generation of completions.)184 300 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 312 Q F0
+.281(Perform the rest of the def)224 324 R(ault)-.1 E F1(bash)2.781 E F0
+.281(completions if the compspec generates no)2.781 F(matches.)224 336 Q
+F1(default)184 348 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef)
+-5.376 E 2.875(ault \214lename completion if the compspec generates no)
+-.1 F(matches.)224 360 Q F1(dir)184 372 Q(names)-.15 E F0(Perform direc\
+tory name completion if the compspec generates no matches.)224 384 Q F1
+(\214lenames)184 396 Q F0 -.7(Te)224 408 S .137(ll readline that the co\
+mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
+G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 420 R 2.634
+(ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
+.45(cial characters, or suppressing trailing spaces\).)224 432 R .45
+(Intended to be used with shell)5.45 F(functions.)224 444 Q F1(noquote)
+184 456 Q F0 -.7(Te)5.55 G .814
+(ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
+3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
+(\214lenames is the def)224 468 Q(ault\).)-.1 E F1(nospace)184 480 Q F0
+-.7(Te)6.11 G .22(ll readline not to append a space \(the def).7 F .22
+(ault\) to w)-.1 F .22(ords completed at the end)-.1 F(of the line.)224
+492 Q F1(plusdirs)184 504 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G
+1.985(atches de\214ned by the compspec are generated, directory name)
+-4.485 F .583(completion is attempted and an)224 516 R 3.084(ym)-.15 G
+.584(atches are added to the results of the other)-3.084 F(actions.)224
+528 Q F1<ad41>144 540 Q F2(action)2.5 E F0(The)184 552 Q F2(action)2.5 E
+F0(may be one of the follo)2.5 E
(wing to generate a list of possible completions:)-.25 E F1(alias)184
-468 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
-E F0(.)A F1(arrayv)184 480 Q(ar)-.1 E F0(Array v)224 492 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 504 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 516 S(iltin).2 E F0
+564 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 576 Q(ar)-.1 E F0(Array v)224 588 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 600 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 612 S(iltin).2 E F0
(Names of shell b)11.85 E(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 528
-Q F0(Command names.)224 540 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 552 Q(ectory)-.18 E F0(Directory names.)224 564 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 576
-Q F0(Names of disabled shell b)224 588 Q(uiltins.)-.2 E F1(enabled)184
-600 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-612 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
--.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-624 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
-E F0(.)A F1(function)184 636 Q F0(Names of shell functions.)224 648 Q F1
-(gr)184 660 Q(oup)-.18 E F0(Group names.)14.62 E
-(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-672 Q F0(Help topics as accepted by the)224 684 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 696 Q F0(Hostnames, as tak)224 708
-Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(52)185.955 E 0 Cg EP
-%%Page: 53 53
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 624
+Q F0(Command names.)224 636 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 648 Q(ectory)-.18 E F0(Directory names.)224 660 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 672
+Q F0(Names of disabled shell b)224 684 Q(uiltins.)-.2 E F1(enabled)184
+696 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+708 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A(GNU Bash 4.3)72
+768 Q(2014 February 2)141.79 E(54)190.95 E 0 Cg EP
+%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(job)184 84 Q F0
-(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 96 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 108 Q(ed w)-.15 E 2.5(ords. May)
--.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-120 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 132 Q(vice)-.1 E F0(Service names.)10.67 E
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 144 Q
-F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
-F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 156 Q F0(Shell option names as accepted by the)16.66 E F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 168 Q F0
-(Signal names.)14.99 E F1(stopped)184 180 Q F0
+-.35 E/F1 10/Times-Bold@0 SF(\214le)184 84 Q F0(File names.)27.22 E
+(May also be speci\214ed as)5 E F1<ad66>2.5 E F0(.)A F1(function)184 96
+Q F0(Names of shell functions.)224 108 Q F1(gr)184 120 Q(oup)-.18 E F0
+(Group names.)14.62 E(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)
+A F1(helptopic)184 132 Q F0(Help topics as accepted by the)224 144 Q F1
+(help)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(hostname)184 156 Q F0
+(Hostnames, as tak)224 168 Q(en from the \214le speci\214ed by the)-.1 E
+/F2 9/Times-Bold@0 SF(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E
+F1(job)184 180 Q F0(Job names, if job control is acti)26.11 E -.15(ve)
+-.25 G 5(.M).15 G(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1
+-.1(ke)184 192 S(yw).1 E(ord)-.1 E F0(Shell reserv)224 204 Q(ed w)-.15 E
+2.5(ords. May)-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1
+(running)184 216 Q F0(Names of running jobs, if job control is acti)5.54
+E -.15(ve)-.25 G(.).15 E F1(ser)184 228 Q(vice)-.1 E F0(Service names.)
+10.67 E(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)
+184 240 Q F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1
+<ad6f>2.5 E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.)
+.2 E F1(shopt)184 252 Q F0(Shell option names as accepted by the)16.66 E
+F1(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 264 Q F0
+(Signal names.)14.99 E F1(stopped)184 276 Q F0
(Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 192 Q F0(User names.)21.67 E
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 204 S
+.15 E F1(user)184 288 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 300 S
(riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 216 Q/F2
-10/Times-Italic@0 SF(command)2.5 E(command)184 228 Q F0 1.056(is e)3.556
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 312 Q/F3
+10/Times-Italic@0 SF(command)2.5 E(command)184 324 Q F0 1.056(is e)3.556
F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
(vironment, and its output is used as the possible)-.4 F(completions.)
-184 240 Q F1<ad46>144 252 Q F2(function)2.5 E F0 1.18
-(The shell function)184 264 R F2(function)3.68 E F0 1.181(is e)3.681 F
--.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.681
-(vironment. When)-.4 F 1.181(it \214n-)3.681 F .932
-(ishes, the possible completions are retrie)184 276 R -.15(ve)-.25 G
-3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F/F3 9
-/Times-Bold@0 SF(COMPREPL)3.431 E(Y)-.828 E F0(array)3.181 E -.25(va)184
-288 S(riable.).25 E F1<ad47>144 300 Q F2(globpat)2.5 E F0 1.007
-(The pathname e)184 312 R 1.007(xpansion pattern)-.15 F F2(globpat)3.507
-E F0 1.007(is e)3.507 F 1.008(xpanded to generate the possible comple-)
--.15 F(tions.)184 324 Q F1<ad50>144 336 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 348 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+184 336 Q F1<ad46>144 348 Q F3(function)2.5 E F0 .113
+(The shell function)184 360 R F3(function)2.614 E F0 .114(is e)2.614 F
+-.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
+(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 372 R
+-.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
+($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
+(he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
+(are being completed, the second ar)184 384 R 1.407(gument \()-.18 F F1
+($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
+(ord being completed, and the)-.1 F .104(third ar)184 396 R .104
+(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
+-2.604 F .104(ord preceding the w)-.1 F .103
+(ord being completed on the current com-)-.1 F .101(mand line.)184 408 R
+.101(When it \214nishes, the possible completions are retrie)5.101 F
+-.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
+-.25 F F2(COMPREPL)184 420 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E
+F1<ad47>144 432 Q F3(globpat)2.5 E F0 1.008(The pathname e)184 444 R
+1.008(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F
+1.007(xpanded to generate the possible comple-)-.15 F(tions.)184 456 Q
+F1<ad50>144 468 Q F3(pr)2.5 E(e\214x)-.37 E(pr)184 480 Q(e\214x)-.37 E
+F0 .534(is added at the be)3.034 F .534
(ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 360 Q F1<ad53>144 372 Q F2(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 492 Q F1<ad53>144 504 Q F3(suf)2.5 E
2.81(\214x suf)-.18 F<8c78>-.18 E F0
(is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 384 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 396 Q F2(wor)3.639 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.639 F F3(IFS)3.64 E F0 1.14
-(special v)3.39 F 1.14(ariable as delimiters, and)-.25 F 2.008
-(each resultant w)184 408 R 2.008(ord is e)-.1 F 4.508(xpanded. The)-.15
-F 2.007(possible completions are the members of the)4.508 F
-(resultant list which match the w)184 420 Q(ord being completed.)-.1 E
-F1<ad58>144 432 Q F2(\214lterpat)2.5 E(\214lterpat)184 444 Q F0 .455
-(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 F
-.456(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 456 R 1.596
-(guments, and each completion)-.18 F(matching)184 468 Q F2(\214lterpat)
-3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
-(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
-(tes the pattern;).05 F(in this case, an)184 480 Q 2.5(yc)-.15 G
-(ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E .467(The return v)144 496.8 R .467
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 516 Q F3(wor)2.5 E
+(dlist)-.37 E F0(The)184 528 Q F3(wor)3.64 E(dlist)-.37 E F0 1.14
+(is split using the characters in the)3.64 F F2(IFS)3.64 E F0 1.139
+(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F 2.007
+(each resultant w)184 540 R 2.007(ord is e)-.1 F 4.507(xpanded. The)-.15
+F 2.008(possible completions are the members of the)4.507 F
+(resultant list which match the w)184 552 Q(ord being completed.)-.1 E
+F1<ad58>144 564 Q F3(\214lterpat)2.5 E(\214lterpat)184 576 Q F0 .456
+(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
+.455(is applied to the list of possible)2.956 F 1.596
+(completions generated by the preceding options and ar)184 588 R 1.596
+(guments, and each completion)-.18 F(matching)184 600 Q F3(\214lterpat)
+3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
+(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
+(in)3.204 E F3(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 612 Q 2.5(yc)-.15 G
+(ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E
+-.15(ve)-.15 G(d.).15 E .466(The return v)144 628.8 R .466
(alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
-(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
-(plied without a)144 508.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
-1.362(ompletion speci\214cation for a).15 F F2(name)144 520.8 Q F0
+(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
+(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
+(plied without a)144 640.8 R F3(name)3.862 E F0(ar)3.862 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
+1.361(ompletion speci\214cation for a).15 F F3(name)144 652.8 Q F0
(for which no speci\214cation e)2.5 E
(xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 537.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
-F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2
-(name)-2.5 E F0(])A .447(Modify completion options for each)144 549.6 R
-F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0
-.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .725
-(completion if no)144 561.6 R F2(name)3.225 E F0 3.225(sa)C .725
-(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .726
-(n, display the completion options for).15 F(each)144 573.6 Q F2(name)
-3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
-5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
-F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 585.6 Q F0 -.2(bu)
-2.797 G .297(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
+F1(compopt)108 669.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
+F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C F3
+(name)-2.5 E F0(])A .447(Modify completion options for each)144 681.6 R
+F3(name)2.947 E F0 .447(according to the)2.947 F F3(option)2.947 E F0
+.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .726
+(completion if no)144 693.6 R F3(name)3.226 E F0 3.226(sa)C .726
+(re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .725
+(n, display the completion options for).15 F(each)144 705.6 Q F3(name)
+3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
+5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 717.6 Q F0 -.2(bu)
+2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
-5.297 E F1<ad44>2.797 E F0 .297
(option indicates that the remaining options should apply to)2.797 F
-1.228(the `)144 597.6 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(o\
+1.227(the `)144 729.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
mmand completion; that is, completion attempted on a command for which \
-no)-3.728 F 2.177(completion has pre)144 609.6 R 2.177
-(viously been de\214ned.)-.25 F(The)7.177 E F1<ad45>4.677 E F0 2.178
-(option indicates that the remaining options)4.678 F(should apply to `)
-144 621.6 Q(`empty')-.74 E 2.5('c)-.74 G
+no)-3.727 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(55)190.95 E 0
+Cg EP
+%%Page: 56 56
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 2.178(completion has pre)144 84 R 2.178(viously been de\214ned.)
+-.25 F(The)7.178 E/F1 10/Times-Bold@0 SF<ad45>4.678 E F0 2.177
+(option indicates that the remaining options)4.677 F(should apply to `)
+144 96 Q(`empty')-.74 E 2.5('c)-.74 G
(ommand completion; that is, completion attempted on a blank line.)-2.5
-E 1.388(The return v)144 645.6 R 1.388(alue is true unless an in)-.25 F
--.25(va)-.4 G 1.387
+E 1.387(The return v)144 120 R 1.387(alue is true unless an in)-.25 F
+-.25(va)-.4 G 1.388
(lid option is supplied, an attempt is made to modify the).25 F
-(options for a)144 657.6 Q F2(name)2.5 E F0
+(options for a)144 132 Q/F2 10/Times-Italic@0 SF(name)2.5 E F0
(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F1(continue)108 674.4 Q F0([)
-2.5 E F2(n)A F0(])A 1.753(Resume the ne)144 686.4 R 1.753
+(xists, or an output error occurs.)-.15 E F1(continue)108 148.8 Q F0([)
+2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 160.8 R 1.754
(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
-(select)4.254 E F0 4.254(loop. If)4.254 F F2(n)4.614 E F0 1.754
-(is speci\214ed,)4.494 F 1.209(resume at the)144 698.4 R F2(n)3.709 E F0
-1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F4 10
+(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
+(is speci\214ed,)4.493 F 1.208(resume at the)144 172.8 R F2(n)3.709 E F0
+1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F3 10
/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
-(is greater than the number of enclosing)3.949 F .513
-(loops, the last enclosing loop \(the `)144 710.4 R(`top-le)-.74 E -.15
-(ve)-.25 G(l').15 E 3.013('l)-.74 G .513(oop\) is resumed.)-3.013 F .514
-(The return v)5.514 F .514(alue is 0 unless)-.25 F F2(n)3.014 E F0(is)
-3.014 E(not greater than or equal to 1.)144 722.4 Q(GNU Bash-4.2)72 768
-Q(2010 December 28)135.965 E(53)185.955 E 0 Cg EP
-%%Page: 54 54
+(is greater than the number of enclosing)3.949 F .514
+(loops, the last enclosing loop \(the `)144 184.8 R(`top-le)-.74 E -.15
+(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
+(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
+3.013 E(not greater than or equal to 1.)144 196.8 Q F1(declar)108 213.6
+Q(e)-.18 E F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C F1<ad70>-2.5 E
+F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
+(typeset)108 225.6 Q F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C F1
+<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E 1.264(Declare v)144 237.6 R 1.264(ariables and/or gi)-.25 F
+1.564 -.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)
+3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25
+G 3.765(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F
+-.25(va)144 249.6 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
+(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 261.6 Q F2(name)2.774 E
+F0(ar)2.774 E .274(guments, additional options, other than)-.18 F F1
+<ad66>2.775 E F0(and)2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275
+(re ignored.)-2.775 F(When)5.275 E F1<ad70>2.775 E F0 .275(is supplied)
+2.775 F(without)144 273.6 Q F2(name)4.814 E F0(ar)4.814 E 2.314
+(guments, it will display the attrib)-.18 F 2.314(utes and v)-.2 F 2.313
+(alues of all v)-.25 F 2.313(ariables ha)-.25 F 2.313(ving the)-.2 F
+(attrib)144 285.6 Q 1.181(utes speci\214ed by the additional options.)
+-.2 F 1.182(If no other options are supplied with)6.181 F F1<ad70>3.682
+E F0(,)A F1(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144
+297.6 R .62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12
+(ariables. The)-.25 F F1<ad66>3.12 E F0 .62
+(option will restrict the display)3.12 F 1.29(to shell functions.)144
+309.6 R(The)6.29 E F1<ad46>3.79 E F0 1.291(option inhibits the display \
+of function de\214nitions; only the function)3.791 F .948
+(name and attrib)144 321.6 R .948(utes are printed.)-.2 F .948(If the)
+5.948 F F1(extdeb)3.448 E(ug)-.2 E F0 .948
+(shell option is enabled using)3.448 F F1(shopt)3.448 E F0 3.448(,t)C
+.948(he source)-3.448 F 1.342(\214le name and line number where the fun\
+ction is de\214ned are displayed as well.)144 333.6 R(The)6.342 E F1
+<ad46>3.842 E F0(option)3.842 E(implies)144 345.6 Q F1<ad66>3.892 E F0
+6.392(.T)C(he)-6.392 E F1<ad67>3.892 E F0 1.391(option forces v)3.892 F
+1.391(ariables to be created or modi\214ed at the global scope, e)-.25 F
+-.15(ve)-.25 G(n).15 E(when)144 357.6 Q F1(declar)4.382 E(e)-.18 E F0
+1.882(is e)4.382 F -.15(xe)-.15 G 1.882(cuted in a shell function.).15 F
+1.883(It is ignored in all other cases.)6.882 F 1.883(The follo)6.883 F
+(wing)-.25 E .794(options can be used to restrict output to v)144 369.6
+R .794(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2
+F 1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 381.6 Q(utes:)-.2 E
+F1<ad61>144 393.6 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E
+-.15(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1
+(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 405.6 Q
+F0(Each)23.08 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25
+H(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15
+(ve)-.15 G(\).).15 E F1<ad66>144 417.6 Q F0(Use function names only)
+26.97 E(.)-.65 E F1<ad69>144 429.6 Q F0 .557(The v)27.52 F .558
+(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
+(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .558
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 441.6 Q F0(abo)
+2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)
+-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 453.6 Q
+F0 .91(When the v)27.52 F .909(ariable is assigned a v)-.25 F .909
+(alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
+G .909(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 465.6 R
+(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 477.6
+Q F0(Gi)24.74 E 1.619 -.15(ve e)-.25 H(ach).15 E F2(name)3.819 E F0(the)
+3.819 E F2(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
+(ute, making it a name reference to another v)-.2 F(ariable.)-.25 E
+1.033(That other v)180 489.6 R 1.033(ariable is de\214ned by the v)-.25
+F 1.033(alue of)-.25 F F2(name)3.533 E F0 6.033(.A)C 1.033
+(ll references and assignments to)-6.033 F F2(name)180 501.6 Q F0 4.032
+(,e)C 1.532(xcept for changing the)-4.182 F F1<ad6e>4.032 E F0(attrib)
+4.032 E 1.532(ute itself, are performed on the v)-.2 F 1.533
+(ariable refer)-.25 F(-)-.2 E(enced by)180 513.6 Q F2(name)2.5 E F0 1.1
+-.55('s v)D 2.5(alue. The).3 F F1<ad6e>2.5 E F0(attrib)2.5 E
+(ute cannot be applied to array v)-.2 E(ariables.)-.25 E F1<ad72>144
+525.6 Q F0(Mak)25.86 E(e)-.1 E F2(name)5.047 E F0 5.047(sr)C(eadonly)
+-5.047 E 7.547(.T)-.65 G 2.546(hese names cannot then be assigned v)
+-7.547 F 2.546(alues by subsequent)-.25 F
+(assignment statements or unset.)180 537.6 Q F1<ad74>144 549.6 Q F0(Gi)
+26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2(name)2.929 E F0(the)2.929 E
+F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929(ute. T)-.2 F .429
+(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)-.1 E F0(and)2.93
+E F1(RETURN)2.93 E F0(traps from the calling shell.)180 561.6 Q
+(The trace attrib)5 E(ute has no special meaning for v)-.2 E(ariables.)
+-.25 E F1<ad75>144 573.6 Q F0 .91(When the v)24.74 F .909
+(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F
+(-)-.2 E 2.5(case. The)180 585.6 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2
+E(ute is disabled.)-.2 E F1<ad78>144 597.6 Q F0(Mark)25.3 E F2(name)2.5
+E F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
+(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 614.4 R
+2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F
+.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
+.645(to destro)144 626.4 R 3.145(ya)-.1 G 3.145(na)-3.145 G .645(rray v)
+-3.145 F .645(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo)
+3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.144
+(ute. When)-.2 F .644(used in a func-)3.144 F(tion,)144 638.4 Q F1
+(declar)2.835 E(e)-.18 E F0(and)2.835 E F1(typeset)2.835 E F0(mak)2.835
+E 2.835(ee)-.1 G(ach)-2.835 E F2(name)2.835 E F0 .335
+(local, as with the)2.835 F F1(local)2.835 E F0 .335
+(command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E 1.283
+(is supplied.)144 650.4 R 1.283(If a v)6.283 F 1.283
+(ariable name is follo)-.25 F 1.283(wed by =)-.25 F F2(value)A F0 3.783
+(,t)C 1.283(he v)-3.783 F 1.283(alue of the v)-.25 F 1.282
+(ariable is set to)-.25 F F2(value)3.782 E F0(.)A .926(When using)144
+662.4 R F1<ad61>3.426 E F0(or)3.426 E F1<ad41>3.426 E F0 .927
+(and the compound assignment syntax to create array v)3.426 F .927
+(ariables, additional)-.25 F(attrib)144 674.4 Q .592(utes do not tak)-.2
+F 3.092(ee)-.1 G -.25(ff)-3.092 G .592
+(ect until subsequent assignments.).25 F .592(The return v)5.592 F .592
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .429
+(option is encountered, an attempt is made to de\214ne a function using)
+144 686.4 R/F5 10/Courier@0 SF .429(\255f foo=bar)2.929 F F0 2.929(,a)C
+2.929(na)-2.929 G .429(ttempt is)-2.929 F .063(made to assign a v)144
+698.4 R .063(alue to a readonly v)-.25 F .062
+(ariable, an attempt is made to assign a v)-.25 F .062
+(alue to an array v)-.25 F(ari-)-.25 E .102
+(able without using the compound assignment syntax \(see)144 710.4 R F1
+(Arrays)2.602 E F0(abo)2.602 E -.15(ve)-.15 G .102(\), one of the).15 F
+F2(names)2.602 E F0 .102(is not a)2.602 F -.25(va)144 722.4 S .172
+(lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
+(ariable, an)-.25 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(56)
+190.95 E 0 Cg EP
+%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(declar)108 84 Q(e)-.18 E F0([)2.5 E F1
-(\255aAfFgilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C/F2 10
-/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E
-F1(typeset)108 96 Q F0([)2.5 E F1(\255aAfFgilrtux)A F0 2.5(][)C F1<ad70>
--2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
--2.5 E 1.265(Declare v)144 108 R 1.265(ariables and/or gi)-.25 F 1.565
--.15(ve t)-.25 H 1.265(hem attrib).15 F 3.765(utes. If)-.2 F(no)3.765 E
-F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25 G 3.764
-(nt).15 G 1.264(hen display the v)-3.764 F 1.264(alues of)-.25 F -.25
-(va)144 120 S 3.482(riables. The).25 F F1<ad70>3.482 E F0 .982
-(option will display the attrib)3.482 F .982(utes and v)-.2 F .983
-(alues of each)-.25 F F2(name)3.483 E F0 5.983(.W).18 G(hen)-5.983 E F1
-<ad70>3.483 E F0 .983(is used)3.483 F(with)144 132 Q F2(name)3.58 E F0
-(ar)3.58 E 1.079(guments, additional options are ignored.)-.18 F(When)
-6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2(name)
-3.579 E F0(ar)3.579 E(gu-)-.18 E .15(ments, it will display the attrib)
-144 144 R .15(utes and v)-.2 F .151(alues of all v)-.25 F .151
-(ariables ha)-.25 F .151(ving the attrib)-.2 F .151
-(utes speci\214ed by the)-.2 F .047(additional options.)144 156 R .047
-(If no other options are supplied with)5.047 F F1<ad70>2.547 E F0(,)A F1
-(declar)2.547 E(e)-.18 E F0 .046(will display the attrib)2.546 F .046
-(utes and)-.2 F -.25(va)144 168 S 1.362(lues of all shell v).25 F 3.862
-(ariables. The)-.25 F F1<ad66>3.862 E F0 1.363
-(option will restrict the display to shell functions.)3.862 F(The)6.363
-E F1<ad46>3.863 E F0 2.422(option inhibits the display of function de\
-\214nitions; only the function name and attrib)144 180 R 2.422(utes are)
--.2 F 2.663(printed. If)144 192 R(the)2.663 E F1(extdeb)2.663 E(ug)-.2 E
-F0 .164(shell option is enabled using)2.663 F F1(shopt)2.664 E F0 2.664
-(,t)C .164(he source \214le name and line number)-2.664 F 1.288
-(where the function is de\214ned are displayed as well.)144 204 R(The)
-6.288 E F1<ad46>3.788 E F0 1.288(option implies)3.788 F F1<ad66>3.788 E
-F0 6.288(.T)C(he)-6.288 E F1<ad67>3.788 E F0(option)3.788 E .49
-(forces v)144 216 R .49
-(ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G 2.991(nw).15 G(hen)-2.991 E F1(declar)2.991 E(e)-.18 E F0
-.491(is e)2.991 F -.15(xe)-.15 G .491(cuted in a).15 F .125
-(shell function.)144 228 R .125(It is ignored in all other cases.)5.125
-F .125(The follo)5.125 F .124
-(wing options can be used to restrict output)-.25 F(to v)144 240 Q
-(ariables with the speci\214ed attrib)-.25 E(ute or to gi)-.2 E .3 -.15
-(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144 252 Q F0
-(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E -.15(xe)-.15 G 2.5(da).15
-G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F1<ad41>144 264 Q F0(Each)23.08 E F2(name)2.5 E F0
-(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15 E(ariable \(see)
--.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad66>144
-276 Q F0(Use function names only)26.97 E(.)-.65 E F1<ad69>144 288 Q F0
-.557(The v)27.52 F .558(ariable is treated as an inte)-.25 F .558
-(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F3 9
-/Times-Bold@0 SF .558(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)
-180 300 Q F0(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G
-(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E
-F1<ad6c>144 312 Q F0 .91(When the v)27.52 F .909
-(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
--.25 E(-)-.2 E 2.5(case. The)180 324 R(upper)2.5 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F1<ad72>144 336 Q F0(Mak)25.86 E(e)-.1 E F2
-(name)5.046 E F0 5.046(sr)C(eadonly)-5.046 E 7.546(.T)-.65 G 2.546
-(hese names cannot then be assigned v)-7.546 F 2.547
-(alues by subsequent)-.25 F(assignment statements or unset.)180 348 Q F1
-<ad74>144 360 Q F0(Gi)26.97 E .73 -.15(ve e)-.25 H(ach).15 E F2(name)
-2.93 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
-(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
--.1 E F0(and)2.929 E F1(RETURN)2.929 E F0(traps from the calling shell.)
-180 372 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
-(ariables.)-.25 E F1<ad75>144 384 Q F0 .909(When the v)24.74 F .909
-(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to upper).15 F(-)
--.2 E 2.5(case. The)180 396 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F1<ad78>144 408 Q F0(Mark)25.3 E F2(name)2.5 E
-F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
-(vironment.)-.4 E .121(Using `+' instead of `\255' turns of)144 424.8 R
-2.621(ft)-.25 G .121(he attrib)-2.621 F .121(ute instead, with the e)-.2
-F .12(xceptions that)-.15 F F1(+a)2.62 E F0 .12(may not be used)2.62 F
-.644(to destro)144 436.8 R 3.144(ya)-.1 G 3.144(na)-3.144 G .644(rray v)
--3.144 F .644(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo)
-3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.145
-(ute. When)-.2 F .645(used in a func-)3.145 F 1.186(tion, mak)144 448.8
-R 1.186(es each)-.1 F F2(name)3.686 E F0 1.186(local, as with the)3.686
-F F1(local)3.686 E F0 1.186(command, unless the)3.686 F F1<ad67>3.686 E
-F0 1.186(option is supplied, If a)3.686 F -.25(va)144 460.8 S .117
-(riable name is follo).25 F .118(wed by =)-.25 F F2(value)A F0 2.618(,t)
-C .118(he v)-2.618 F .118(alue of the v)-.25 F .118(ariable is set to)
--.25 F F2(value)2.618 E F0 5.118(.T)C .118(he return v)-5.118 F .118
-(alue is 0)-.25 F 2.794(unless an in)144 472.8 R -.25(va)-.4 G 2.793(li\
-d option is encountered, an attempt is made to de\214ne a function usin\
-g).25 F/F4 10/Courier@0 SF<ad66>5.293 E(foo=bar)144 484.8 Q F0 3.992(,a)
-C 3.993(na)-3.992 G 1.493(ttempt is made to assign a v)-3.993 F 1.493
-(alue to a readonly v)-.25 F 1.493(ariable, an attempt is made to)-.25 F
-1.183(assign a v)144 496.8 R 1.183(alue to an array v)-.25 F 1.183
-(ariable without using the compound assignment syntax \(see)-.25 F F1
-(Arrays)3.682 E F0(abo)144 508.8 Q -.15(ve)-.15 G .096(\), one of the)
-.15 F F2(names)2.597 E F0 .097(is not a v)2.597 F .097(alid shell v)-.25
-F .097(ariable name, an attempt is made to turn of)-.25 F 2.597(fr)-.25
-G(eadonly)-2.597 E .659(status for a readonly v)144 520.8 R .658
-(ariable, an attempt is made to turn of)-.25 F 3.158(fa)-.25 G .658
-(rray status for an array v)-3.158 F .658(ariable, or)-.25 F
-(an attempt is made to display a non-e)144 532.8 Q
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 549.6
-Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1 2.5(][)C(\255clpv])-2.5 E F0
--.4(Wi)144 561.6 S .328
+-.35 E .96(attempt is made to turn of)144 84 R 3.46(fa)-.25 G .96
+(rray status for an array v)-3.46 F .96
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 96 Q
+(xistent function with)-.15 E/F1 10/Times-Bold@0 SF<ad66>2.5 E F0(.)A F1
+(dirs [\255clpv] [+)108 112.8 Q/F2 10/Times-Italic@0 SF(n)A F1 2.5(][)C
+<ad>-2.5 E F2(n)A F1(])A F0 -.4(Wi)144 124.8 S .329
(thout options, displays the list of currently remembered directories.)
-.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 573.6 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 585.6 Q
+.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
+(single line with directory names separated by spaces.)144 136.8 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 148.8 Q
F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
-2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 597.6 Q F2(n)A F0
-1.564(Displays the)25.3 F F2(n)4.064 E F0 1.565
-(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
-(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 609.6 Q F1<ad>144 621.6 Q F2
+2.5(se).15 G(ntries from the list.)-2.5 E F1<ad63>144 160.8 Q F0
+(Clears the directory stack by deleting all of the entries.)25.86 E F1
+<ad6c>144 172.8 Q F0 .882
+(Produces a listing using full pathnames; the def)27.52 F .881
+(ault listing format uses a tilde to denote)-.1 F(the home directory)180
+184.8 Q(.)-.65 E F1<ad70>144 196.8 Q F0
+(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
+208.8 Q F0 .272(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
+G(he)-2.773 E(stack.)180 220.8 Q F1(+)144 232.8 Q F2(n)A F0 1.565
+(Displays the)25.3 F F2(n)4.065 E F0 1.565
+(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
+(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 244.8 Q F1<ad>144 256.8 Q F2
(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 633.6 Q F1<ad63>144 645.6 Q F0
-(Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 657.6 Q F0 .324(Produces a longer listing; the def)27.52 F
-.324(ault listing format uses a tilde to denote the home direc-)-.1 F
-(tory)180 669.6 Q(.)-.65 E F1<ad70>144 681.6 Q F0
-(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-693.6 Q F0 .273(Print the directory stack with one entry per line, pre\
-\214xing each entry with its inde)25.3 F 2.772(xi)-.15 G 2.772(nt)-2.772
-G(he)-2.772 E(stack.)180 705.6 Q 1.706(The return v)144 722.4 R 1.706
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G 1.707
-(lid option is supplied or).25 F F2(n)4.207 E F0(inde)4.207 E -.15(xe)
--.15 G 4.207(sb).15 G -.15(ey)-4.207 G 1.707(ond the end of the).15 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(54)185.955 E 0 Cg EP
-%%Page: 55 55
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(directory stack.)144 84 Q/F1 10/Times-Bold@0 SF(diso)108 100.8 Q
-(wn)-.1 E F0([)2.5 E F1(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C
-/F2 10/Times-Italic@0 SF(jobspec)-2.5 E F0(...])2.5 E -.4(Wi)144 112.8 S
-.295(thout options, each).4 F F2(jobspec)4.535 E F0 .295(is remo)3.105 F
--.15(ve)-.15 G 2.795(df).15 G .295(rom the table of acti)-2.795 F .595
--.15(ve j)-.25 H 2.795(obs. If).15 F F2(jobspec)4.535 E F0 .295
-(is not present,)3.105 F .422(and neither)144 124.8 R F1<ad61>2.922 E F0
-(nor)2.922 E F1<ad72>2.922 E F0 .422(is supplied, the shell')2.922 F
-2.922(sn)-.55 G .422(otion of the)-2.922 F F2(curr)2.923 E .423(ent job)
--.37 F F0 .423(is used.)2.923 F .423(If the)5.423 F F1<ad68>2.923 E F0
-.423(option is)2.923 F(gi)144 136.8 Q -.15(ve)-.25 G .141(n, each).15 F
-F2(jobspec)4.381 E F0 .141(is not remo)2.951 F -.15(ve)-.15 G 2.641(df)
-.15 G .141(rom the table, b)-2.641 F .141(ut is mark)-.2 F .141
-(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)2.641 E F0 .14
-(is not sent to the)2.39 F .004(job if the shell recei)144 148.8 R -.15
-(ve)-.25 G 2.504(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .004
-(If no)4.504 F F2(jobspec)4.244 E F0 .004(is present, and neither the)
-2.814 F F1<ad61>2.504 E F0 .005(nor the)2.504 F F1<ad72>2.505 E F0 .005
-(option is)2.505 F 1.229(supplied, the)144 160.8 R F2(curr)3.729 E 1.229
-(ent job)-.37 F F0 1.229(is used.)3.729 F 1.229(If no)6.229 F F2
-(jobspec)5.469 E F0 1.229(is supplied, the)4.039 F F1<ad61>3.729 E F0
-1.228(option means to remo)3.729 F 1.528 -.15(ve o)-.15 H(r).15 E .656
-(mark all jobs; the)144 172.8 R F1<ad72>3.156 E F0 .657
-(option without a)3.156 F F2(jobspec)4.897 E F0(ar)3.467 E .657
-(gument restricts operation to running jobs.)-.18 F(The)5.657 E
-(return v)144 184.8 Q(alue is 0 unless a)-.25 E F2(jobspec)4.24 E F0
-(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 201.6 Q
-F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.395(Output the)144 213.6 R F2(ar)2.895 E(g)-.37 E F0 .395
-(s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
-(wline. The)-.25 F .394(return status is al)2.895 F -.1(wa)-.1 G .394
-(ys 0.).1 F(If)5.394 E F1<ad6e>2.894 E F0 .548
-(is speci\214ed, the trailing ne)144 225.6 R .548(wline is suppressed.)
--.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
--.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 237.6 Q
-.053(wing backslash-escaped characters is enabled.)-.25 F(The)5.053 E F1
-<ad45>2.553 E F0 .052(option disables the interpretation of these)2.552
-F 1.502(escape characters, e)144 249.6 R -.15(ve)-.25 G 4.002(no).15 G
-4.002(ns)-4.002 G 1.502(ystems where the)-4.002 F 4.002(ya)-.15 G 1.502
-(re interpreted by def)-4.002 F 4.003(ault. The)-.1 F F1(xpg_echo)4.003
-E F0(shell)4.003 E .009
-(option may be used to dynamically determine whether or not)144 261.6 R
-F1(echo)2.509 E F0 -.15(ex)2.509 G .009(pands these escape characters)
-.15 F .659(by def)144 273.6 R(ault.)-.1 E F1(echo)5.659 E F0 .659
-(does not interpret)3.159 F F1<adad>3.159 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.66 E F0 .66
-(interprets the follo)3.16 F(wing)-.25 E(escape sequences:)144 285.6 Q
-F1(\\a)144 297.6 Q F0(alert \(bell\))28.22 E F1(\\b)144 309.6 Q F0
-(backspace)27.66 E F1(\\c)144 321.6 Q F0(suppress further output)28.78 E
-F1(\\e)144 333.6 Q(\\E)144 345.6 Q F0(an escape character)26.55 E F1
-(\\f)144 357.6 Q F0(form feed)29.89 E F1(\\n)144 369.6 Q F0(ne)27.66 E
-2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 381.6 Q F0(carriage return)28.78 E
-F1(\\t)144 393.6 Q F0(horizontal tab)29.89 E F1(\\v)144 405.6 Q F0 -.15
-(ve)28.22 G(rtical tab).15 E F1(\\\\)144 417.6 Q F0(backslash)30.44 E F1
-(\\0)144 429.6 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+(without options, starting with zero.)180 268.8 Q .258(The return v)144
+285.6 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
+-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
+.15 F(tory stack.)144 297.6 Q F1(diso)108 314.4 Q(wn)-.1 E F0([)2.5 E F1
+(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0
+(...])2.5 E -.4(Wi)144 326.4 S .121(thout options, remo).4 F .422 -.15
+(ve e)-.15 H(ach).15 E F2(jobspec)4.362 E F0 .122
+(from the table of acti)2.932 F .422 -.15(ve j)-.25 H 2.622(obs. If).15
+F F2(jobspec)4.362 E F0 .122(is not present, and)2.932 F .096
+(neither the)144 338.4 R F1<ad61>2.596 E F0 .096(nor the)2.596 F F1
+<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E
+.096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1
+<ad68>2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each)
+.15 F F2(jobspec)144 350.4 Q F0 .672(is not remo)3.482 F -.15(ve)-.15 G
+3.172(df).15 G .672(rom the table, b)-3.172 F .672(ut is mark)-.2 F .672
+(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.172 E F0 .673
+(is not sent to the job if the)2.922 F .962(shell recei)144 362.4 R -.15
+(ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
+(If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
+<ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 374.4 R F1
+<ad72>3.858 E F0 1.358(option without a)3.858 F F2(jobspec)5.598 E F0
+(ar)4.169 E 1.359(gument restricts operation to running jobs.)-.18 F
+1.359(The return)6.359 F -.25(va)144 386.4 S(lue is 0 unless a).25 E F2
+(jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
+F1(echo)108 403.2 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)
+-.37 E F0(...])2.5 E .425(Output the)144 415.2 R F2(ar)2.925 E(g)-.37 E
+F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
+(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307
+(error occurs.)144 427.2 R(If)5.307 E F1<ad6e>2.807 E F0 .307
+(is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25
+F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15
+(ve)-.25 G .308(n, inter).15 F(-)-.2 E 1.349(pretation of the follo)144
+439.2 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
+6.348 E F1<ad45>3.848 E F0 1.348(option disables the)3.848 F 1.054
+(interpretation of these escape characters, e)144 451.2 R -.15(ve)-.25 G
+3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.555
+(ya)-.15 G 1.055(re interpreted by def)-3.555 F(ault.)-.1 E(The)144
+463.2 Q F1(xpg_echo)3.459 E F0 .959
+(shell option may be used to dynamically determine whether or not)3.459
+F F1(echo)3.458 E F0 -.15(ex)3.458 G(pands).15 E .715
+(these escape characters by def)144 475.2 R(ault.)-.1 E F1(echo)5.715 E
+F0 .716(does not interpret)3.215 F F1<adad>3.216 E F0 .716
+(to mean the end of options.)3.216 F F1(echo)5.716 E F0
+(interprets the follo)144 487.2 Q(wing escape sequences:)-.25 E F1(\\a)
+144 499.2 Q F0(alert \(bell\))28.22 E F1(\\b)144 511.2 Q F0(backspace)
+27.66 E F1(\\c)144 523.2 Q F0(suppress further output)28.78 E F1(\\e)144
+535.2 Q(\\E)144 547.2 Q F0(an escape character)26.55 E F1(\\f)144 559.2
+Q F0(form feed)29.89 E F1(\\n)144 571.2 Q F0(ne)27.66 E 2.5(wl)-.25 G
+(ine)-2.5 E F1(\\r)144 583.2 Q F0(carriage return)28.78 E F1(\\t)144
+595.2 Q F0(horizontal tab)29.89 E F1(\\v)144 607.2 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F1(\\\\)144 619.2 Q F0(backslash)30.44 E F1(\\0)144
+631.2 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
-(\(zero to three octal digits\))2.5 E F1(\\x)144 441.6 Q F2(HH)A F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 643.2 Q F2(HH)A F0
(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\u)144 453.6 Q F2(HHHH)A F0
-1.507(the Unicode \(ISO/IEC 10646\) character whose v)180 465.6 R 1.506
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\u)144 655.2 Q F2(HHHH)A F0
+1.507(the Unicode \(ISO/IEC 10646\) character whose v)180 667.2 R 1.506
(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.006 E F0(\(one to four he)180 477.6 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 489.6 Q F2(HHHHHHHH)A F0 .547
-(the Unicode \(ISO/IEC 10646\) character whose v)180 501.6 R .547
+4.006 E F0(\(one to four he)180 679.2 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 691.2 Q F2(HHHHHHHH)A F0 .547
+(the Unicode \(ISO/IEC 10646\) character whose v)180 703.2 R .547
(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.048 E(HHH)180 513.6 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F1(enable)108 530.4 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C
-F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
-(][)C F2(name)-2.5 E F0(...])2.5 E .278(Enable and disable b)144 542.4 R
-.278(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
-(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833
-(the same name as a shell b)144 554.4 R .834(uiltin to be e)-.2 F -.15
-(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15
-(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99
-(the shell normally searches for b)144 566.4 R .989
-(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .989
-(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
-(abled; otherwise,)144 578.4 R F2(names)4.082 E F0 1.582(are enabled.)
+3.048 E(HHH)180 715.2 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
+(igits\))-2.5 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(57)190.95
+E 0 Cg EP
+%%Page: 58 58
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(enable)108 84 Q F0([)2.5 E F1<ad61>A F0 2.5
+(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E/F2 10/Times-Italic@0
+SF(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .278
+(Enable and disable b)144 96 R .278(uiltin shell commands.)-.2 F .278
+(Disabling a b)5.278 F .278(uiltin allo)-.2 F .278
+(ws a disk command which has)-.25 F .833(the same name as a shell b)144
+108 R .834(uiltin to be e)-.2 F -.15(xe)-.15 G .834
+(cuted without specifying a full pathname, e).15 F -.15(ve)-.25 G 3.334
+(nt).15 G(hough)-3.334 E .99(the shell normally searches for b)144 120 R
+.989(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0
+.989(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
+(abled; otherwise,)144 132 R F2(names)4.082 E F0 1.582(are enabled.)
4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
-F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082
-G(TH)-.189 E F0 .081(instead of the shell b)144 590.4 R .081(uiltin v)
--.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
-2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
-(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 602.4 S 1.524
+F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0
+SF -.666(PA)4.082 G(TH)-.189 E F0 .081(instead of the shell b)144 144 R
+.081(uiltin v)-.2 F .081(ersion, run)-.15 F/F4 10/Courier@0 SF .081
+(enable -n test)2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 156 S 1.524
(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
-(ystems that support dynamic loading.)-4.024 F(The)144 614.4 Q F1<ad64>
+(ystems that support dynamic loading.)-4.024 F(The)144 168 Q F1<ad64>
2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
-5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
--.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 626.4 R F1<ad70>
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 180 R F1<ad70>
2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
-638.4 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+192 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
(If)5.098 E F1<ad61>2.598 E F0 1.916
-(is supplied, the list printed includes all b)144 650.4 R 1.916
+(is supplied, the list printed includes all b)144 204 R 1.916
(uiltins, with an indication of whether or not each is)-.2 F 2.879
-(enabled. If)144 662.4 R F1<ad73>2.879 E F0 .379
+(enabled. If)144 216 R F1<ad73>2.879 E F0 .379
(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
-(alue)-.25 E .994(is 0 unless a)144 674.4 R F2(name)3.854 E F0 .994
+(alue)-.25 E .994(is 0 unless a)144 228 R F2(name)3.854 E F0 .994
(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
--.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
-686.4 Q F1 -2.3 -.15(ev a)108 703.2 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 715.2 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C
-.671(re read and concatenated together into a single command.)-3.171 F
-.67(This command is then read)5.67 F .495(and e)144 727.2 R -.15(xe)-.15
-G .495(cuted by the shell, and its e).15 F .495
+-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144 240
+Q F1 -2.3 -.15(ev a)108 256.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0
+(...])2.5 E(The)144 268.8 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671
+(re read and concatenated together into a single command.)-3.171 F .67
+(This command is then read)5.67 F .495(and e)144 280.8 R -.15(xe)-.15 G
+.495(cuted by the shell, and its e).15 F .495
(xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
--2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(55)185.955 E 0 Cg EP
-%%Page: 56 56
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(or only null ar)144 84 Q(guments,)-.18 E/F1 10/Times-Bold@0 SF
--2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1(exec)108 100.8 Q F0
-([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10/Times-Italic@0 SF
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 292.8 Q
+(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
+(exec)108 309.6 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
--.37 E F0(]])A(If)144 112.8 Q F2(command)3.006 E F0 .306
+-.37 E F0(]])A(If)144 321.6 Q F2(command)3.006 E F0 .306
(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
-(guments)-.37 E F0(become)3.075 E .176(the ar)144 124.8 R .176
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 333.6 R .176
(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
(he)-2.676 E F1<ad6c>2.676 E F0 .176
(option is supplied, the shell places a dash at the be)2.676 F .177
-(ginning of)-.15 F .5(the zeroth ar)144 136.8 R .5(gument passed to)-.18
+(ginning of)-.15 F .5(the zeroth ar)144 345.6 R .5(gument passed to)-.18
F F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999
E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0
-.499(option causes)2.999 F F2(com-)3.199 E(mand)144 148.8 Q F0 .638
+.499(option causes)2.999 F F2(com-)3.199 E(mand)144 357.6 Q F0 .638
(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F 1.078(zeroth ar)144 160.8 R 1.077(gument to the e)-.18 F -.15
+3.319 F 1.078(zeroth ar)144 369.6 R 1.077(gument to the e)-.18 F -.15
(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 172.8 Q .617 -.15(ve s)-.25 H .317(hell e).15 F
-.317(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .318
-(is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
-(ure. An)144 184.8 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
-(hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
-(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 196.8 Q 3.036(yr)-.15 G .536
+.15 F(non-interacti)144 381.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
+.576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
+(shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
+F(ail-)-.1 E 2.505(ure. An)144 393.6 R(interacti)2.505 E .305 -.15(ve s)
+-.25 H .005(hell returns f).15 F .005(ailure if the \214le cannot be e)
+-.1 F -.15(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
+(is not speci\214ed,)3.275 F(an)144 405.6 Q 3.036(yr)-.15 G .536
(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
(ect in the current shell, and the return status is 0.).25 F .536
-(If there is a redirection)5.536 F(error)144 208.8 Q 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 225.6 Q F0([)2.5 E F2(n)A F0
+(If there is a redirection)5.536 F(error)144 417.6 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F1(exit)108 434.4 Q F0([)2.5 E F2(n)A F0
6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of)
-.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
(is omitted, the e)2.835 F .095(xit status is that of the last command)
--.15 F -.15(exe)144 237.6 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
-/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F1(export)108 254.4 Q F0([)2.5
-E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0(]] ...)A F1(export \255p)108 266.4 Q F0 .256(The supplied)144 278.4 R
-F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
-.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.627(commands. If)144 290.4 R(the)2.627 E F1
-<ad66>2.627 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the)
-.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
-5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126
-(n, or if the).15 F F1<ad70>144 302.4 Q F0 .659
-(option is supplied, a list of all names that are e)3.159 F .66
-(xported in this shell is printed.)-.15 F(The)5.66 E F1<ad6e>3.16 E F0
-(option)3.16 E 1.587(causes the e)144 314.4 R 1.587
-(xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
-(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.586(ariable name is follo)-4.336 F 1.586(wed by)-.25 F(=)144 326.4 Q
-F2(wor)A(d)-.37 E F0 2.803(,t)C .303(he v)-2.803 F .303(alue of the v)
--.25 F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1
-(export)5.304 E F0 .304(returns an e)2.804 F .304
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .294
-(option is encountered, one of the)144 338.4 R F2(names)2.793 E F0 .293
-(is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F1<ad66>2.793 E F0 .293(is supplied with a)2.793 F F2(name)144.36
-350.4 Q F0(that is not a function.)2.68 E F1(fc)108 367.2 Q F0([)2.5 E
+-.15 F -.15(exe)144 446.4 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
+E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E
+F1(export)108 463.2 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)
+-2.5 E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 475.2 Q
+F0 .256(The supplied)144 487.2 R F2(names)3.117 E F0 .257(are mark)3.027
+F .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
+(commands. If)144 499.2 R(the)2.627 E F1<ad66>2.627 E F0 .127
+(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E
+F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1<ad70>
+144 511.2 Q F0 .048(option is supplied, a list of names of all e)2.547 F
+.048(xported v)-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1
+<ad6e>2.548 E F0 .048(option causes the)2.548 F -.15(ex)144 523.2 S
+1.447(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
+(rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
+1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 535.2 S .741(lue of the v)
+.25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
+(export)5.741 E F0 .742(returns an e)3.242 F .742
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
+.25 F .032(encountered, one of the)144 547.2 R F2(names)2.532 E F0 .032
+(is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
+F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
+(that)2.711 E(is not a function.)144 559.2 Q F1(fc)108 576 Q F0([)2.5 E
F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-379.2 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
-(cmd)-2.5 E F0(])A .477(Fix Command.)144 391.2 R .478
-(In the \214rst form, a range of commands from)5.477 F F2<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .478
-(is selected from the his-)3.658 F .882(tory list.)144 403.2 R F2 -.45
-(Fi)5.882 G -.1(rs).45 G(t).1 E F0(and)4.062 E F2(last)3.472 E F0 .882
-(may be speci\214ed as a string \(to locate the last command be)4.062 F
-.881(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
-415.2 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
--.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .797(umber is used as an)
-.15 F(of)144 427.2 Q .277(fset from the current command number\).)-.25 F
-(If)5.277 E F2(last)2.867 E F0 .276
-(is not speci\214ed it is set to the current command)3.457 F .092
-(for listing \(so that)144 439.2 R/F4 10/Courier@0 SF .092
-(fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
-2.592 F F2<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72>
-4.502 E(st)-.1 E F0 .093(is not)3.273 F
-(speci\214ed it is set to the pre)144 451.2 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 475.2
-Q F1<ad6e>2.522 E F0 .022
+588 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+(cmd)-2.5 E F0(])A .431
+(The \214rst form selects a range of commands from)144 600 R F2<8c72>
+4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
+(from the history list and displays or)3.612 F .142(edits and re-e)144
+612 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+.45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
+(may be speci\214ed as a string \(to locate the last command)3.321 F(be)
+144 624 Q .31(ginning with that string\) or as a number \(an inde)-.15 F
+2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga)
+-.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .315(is used as an of)
+144 636 R .315(fset from the current command number\).)-.25 F(If)5.315 E
+F2(last)2.904 E F0 .314(is not speci\214ed it is set to the cur)3.494 F
+(-)-.2 E .948(rent command for listing \(so that)144 648 R F4 .948
+(fc \255l \25510)3.448 F F0 .948(prints the last 10 commands\) and to)
+3.448 F F2<8c72>5.359 E(st)-.1 E F0(other)4.129 E(-)-.2 E 2.5(wise. If)
+144 660 R F2<8c72>4.41 E(st)-.1 E F0
+(is not speci\214ed it is set to the pre)3.18 E
+(vious command for editing and \25516 for listing.)-.25 E(The)144 684 Q
+F1<ad6e>2.522 E F0 .022
(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 487.2 R .438(If the)
-5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+(rses the order of).15 F .438(the commands.)144 696 R .438(If the)5.438
+F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.335(the editor gi)144 499.2 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
-F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
-(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
-(n,).15 E .63(the v)144 511.2 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
-F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
-F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
-(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 523.2 R .951
-(ariable is set,)-.25 F F2(vi)5.117 E F0 .951(is used.)5.117 F .95
-(When editing is complete, the edited commands are echoed and)5.951 F
--.15(exe)144 535.2 S(cuted.).15 E .039(In the second form,)144 559.2 R
-F2(command)2.539 E F0 .039(is re-e)2.539 F -.15(xe)-.15 G .039
-(cuted after each instance of).15 F F2(pat)2.54 E F0 .04(is replaced by)
-2.54 F F2 -.37(re)2.54 G(p).37 E F0 5.04(.A)C(useful)-2.5 E .406
-(alias to use with this is)144 571.2 R F4 .406(r='fc \255s')2.906 F F0
-2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F4 6.406(rc)2.906
-G(c)-6.406 E F0 .406(runs the last command be)2.906 F .406(ginning with)
--.15 F F4(cc)144 583.2 Q F0(and typing)2.5 E F4(r)2.5 E F0(re-e)2.5 E
--.15(xe)-.15 G(cutes the last command.).15 E .142
-(If the \214rst form is used, the return v)144 607.2 R .142
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
-(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .455(specify history lines out of range.)144 619.2
-R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
-(alue of the)-.25 F .787(last command e)144 631.2 R -.15(xe)-.15 G .787
-(cuted or f).15 F .788
-(ailure if an error occurs with the temporary \214le of commands.)-.1 F
-.788(If the)5.788 F 1.136
-(second form is used, the return status is that of the command re-e)144
-643.2 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
-(does not)4.405 F(specify a v)144 655.2 Q
-(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F1(fg)108 672 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)144
-684 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
-(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
-(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.414(is not present, the)4.223 F(shell')144 696 Q 3.117(sn)-.55 G .617
-(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617
-(is used.)3.117 F .617(The return v)5.617 F .616
-(alue is that of the command placed into the)-.25 F(fore)144 708 Q .362
-(ground, or f)-.15 F .362(ailure if run when job control is disabled or)
--.1 F 2.862(,w)-.4 G .363(hen run with job control enabled, if)-2.862 F
-F2(jobspec)145.74 720 Q F0 .004(does not specify a v)2.815 F .004
-(alid job or)-.25 F F2(jobspec)4.244 E F0 .004(speci\214es a job that w)
-2.814 F .004(as started without job control.)-.1 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(56)185.955 E 0 Cg EP
-%%Page: 57 57
+.335(the editor gi)144 708 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F2
+(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835(do)
+.1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 F
+(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E 1.668(the v)144 720 R 1.668(alue of the)-.25 F F3(FCEDIT)4.168
+E F0 -.25(va)3.918 G 1.668(riable is used, and the v).25 F 1.669
+(alue of)-.25 F F3(EDIT)4.169 E(OR)-.162 E F0(if)3.919 E F3(FCEDIT)4.169
+E F0 1.669(is not set.)3.919 F(If)6.669 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(58)190.95 E 0 Cg EP
+%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(getopts)108 84 Q/F2 10/Times-Italic@0 SF
-(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144
-96 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F2
-(optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 108 R .149
-(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
--.15(ve a)-.2 H(n).15 E(ar)144 120 Q .578
-(gument, which should be separated from it by white space.)-.18 F .579
+-.35 E .187(neither v)144 84 R .187(ariable is set,)-.25 F/F1 10
+/Times-Italic@0 SF(vi)4.353 E F0 .187(is used.)4.353 F .187
+(When editing is complete, the edited commands are echoed and)5.187 F
+-.15(exe)144 96 S(cuted.).15 E .788(In the second form,)144 120 R F1
+(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
+(cuted after each instance of).15 F F1(pat)3.288 E F0 .788
+(is replaced by)3.288 F F1 -.37(re)3.289 G(p).37 E F0(.)A F1(Com-)5.789
+E(mand)144 132 Q F0 .347(is intepreted the same as)2.847 F F1<8c72>2.847
+E(st)-.1 E F0(abo)2.847 E -.15(ve)-.15 G 5.347(.A).15 G .347
+(useful alias to use with this is)-2.5 F/F2 10/Courier@0 SF .346
+(r='fc \255s')2.847 F F0 2.846(,s)C 2.846(ot)-2.846 G(hat)-2.846 E
+(typing)144 144 Q F2 7.165(rc)3.665 G(c)-7.165 E F0 1.165
+(runs the last command be)3.665 F 1.166(ginning with)-.15 F F2(cc)3.666
+E F0 1.166(and typing)3.666 F F2(r)3.666 E F0(re-e)3.666 E -.15(xe)-.15
+G 1.166(cutes the last com-).15 F(mand.)144 156 Q .142
+(If the \214rst form is used, the return v)144 180 R .142
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F1(last)2.732 E F0 .454(specify history lines out of range.)144 192 R
+.454(If the)5.454 F/F3 10/Times-Bold@0 SF<ad65>2.954 E F0 .454
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 204 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
+(ailure if an error occurs with the temporary \214le of commands.)-.1 F
+.787(If the)5.787 F 1.135
+(second form is used, the return status is that of the command re-e)144
+216 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 228 Q
+(alid history line, in which case)-.25 E F3(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F3(fg)108 244.8 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
+144 256.8 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
+(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
+1.413(is not present, the)4.223 F(shell')144 268.8 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617
+(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 280.8 Q
+.363(ground, or f)-.15 F .363
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
+(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 292.8 Q
+F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F1(jobspec)
+4.244 E F0 .004(speci\214es a job that w)2.814 F .004
+(as started without job control.)-.1 F F3(getopts)108 309.6 Q F1
+(optstring name)2.5 E F0([)2.5 E F1(ar)A(gs)-.37 E F0(])A F3(getopts)144
+321.6 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.294 F F1
+(optstring)6.023 E F0 .793(contains the option)3.513 F .149
+(characters to be recognized; if a character is follo)144 333.6 R .15
+(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
+-.15(ve a)-.2 H(n).15 E(ar)144 345.6 Q .579
+(gument, which should be separated from it by white space.)-.18 F .578
(The colon and question mark char)5.579 F(-)-.2 E 1.665
-(acters may not be used as option characters.)144 132 R 1.665
-(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
-4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .796
-(option in the shell v)144 144 R(ariable)-.25 E F2(name)3.296 E F0 3.296
-(,i).18 G(nitializing)-3.296 E F2(name)3.657 E F0 .797(if it does not e)
-3.477 F .797(xist, and the inde)-.15 F 3.297(xo)-.15 G 3.297(ft)-3.297 G
-.797(he ne)-3.297 F(xt)-.15 E(ar)144 156 Q .085
-(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
-4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .845
-(or a shell script is in)144 168 R -.2(vo)-.4 G -.1(ke).2 G 3.345
-(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F1
-(getopts)3.346 E F0 .846(places that ar)3.346 F(gument)-.18 E .804
-(into the v)144 180 R(ariable)-.25 E F3(OPT)3.304 E(ARG)-.81 E F4(.)A F0
-.803(The shell does not reset)5.304 F F3(OPTIND)3.303 E F0 .803
-(automatically; it must be manually)3.053 F .293
-(reset between multiple calls to)144 192 R F1(getopts)2.793 E F0 .293
+(acters may not be used as option characters.)144 357.6 R 1.665
+(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F3(getopts)
+4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
+(option in the shell v)144 369.6 R(ariable)-.25 E F1(name)3.297 E F0
+3.297(,i).18 G(nitializing)-3.297 E F1(name)3.657 E F0 .797
+(if it does not e)3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G
+3.296(ft)-3.296 G .796(he ne)-3.296 F(xt)-.15 E(ar)144 381.6 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E/F4 9
+/Times-Bold@0 SF(OPTIND)2.585 E/F5 9/Times-Roman@0 SF(.)A F4(OPTIND)
+4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .846
+(or a shell script is in)144 393.6 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F3
+(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803
+(into the v)144 405.6 R(ariable)-.25 E F4(OPT)3.303 E(ARG)-.81 E F5(.)A
+F0 .803(The shell does not reset)5.303 F F4(OPTIND)3.303 E F0 .804
+(automatically; it must be manually)3.054 F .294
+(reset between multiple calls to)144 417.6 R F3(getopts)2.793 E F0 .293
(within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F
-2.793(ws)-.25 G .294(et of parameters)-2.793 F(is to be used.)144 204 Q
-2.044(When the end of options is encountered,)144 228 R F1(getopts)4.543
-E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
-(alue greater than zero.)-.25 F F3(OPTIND)144 240 Q F0
+2.793(ws)-.25 G .293(et of parameters)-2.793 F(is to be used.)144 429.6
+Q 2.043(When the end of options is encountered,)144 453.6 R F3(getopts)
+4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
+(alue greater than zero.)-.25 F F4(OPTIND)144 465.6 Q F0
(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
-(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F2(name)2.5 E F0
-(is set to ?.)2.5 E F1(getopts)144 264 Q F0 2.392
-(normally parses the positional parameters, b)4.892 F 2.392
-(ut if more ar)-.2 F 2.393(guments are gi)-.18 F -.15(ve)-.25 G 4.893
-(ni).15 G(n)-4.893 E F2(ar)4.893 E(gs)-.37 E F0(,).27 E F1(getopts)144
-276 Q F0(parses those instead.)2.5 E F1(getopts)144 300 Q F0 1.166
-(can report errors in tw)3.666 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
-1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.165
-(is a colon,)3.885 F F2(silent)4.005 E F0(error)4.345 E 1.263
-(reporting is used.)144 312 R 1.263
-(In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .394(missing option ar)144 324
-R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
--.25 E F3(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
-(will be displayed, e)144 336 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
-G(he \214rst character of)-2.5 E F2(optstring)2.73 E F0(is not a colon.)
-2.72 E .666(If an in)144 360 R -.25(va)-.4 G .666(lid option is seen,)
-.25 F F1(getopts)3.166 E F0 .667(places ? into)3.167 F F2(name)3.527 E
-F0 .667(and, if not silent, prints an error message)3.347 F .4
-(and unsets)144 372 R F3(OPT)2.9 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1
-(getopts)2.899 E F0 .399
-(is silent, the option character found is placed in)2.899 F F3(OPT)2.899
-E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144
-384 Q 1.241(If a required ar)144 408 R 1.241(gument is not found, and)
--.18 F F1(getopts)3.741 E F0 1.241(is not silent, a question mark \()
-3.741 F F1(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242
-(laced in)-3.742 F F2(name)144 420 Q F0(,).18 E F3(OPT)2.735 E(ARG)-.81
-E F0 .234(is unset, and a diagnostic message is printed.)2.485 F(If)
-5.234 E F1(getopts)2.734 E F0 .234(is silent, then a colon \()2.734 F F1
-(:).833 E F0(\)).833 E(is placed in)144 432 Q F2(name)2.86 E F0(and)2.68
-E F3(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25
-E F1(getopts)144 456 Q F0 .902
+(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
+(is set to ?.)2.5 E F3(getopts)144 489.6 Q F0 2.393
+(normally parses the positional parameters, b)4.893 F 2.392
+(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
+(ni).15 G(n)-4.892 E F1(ar)4.892 E(gs)-.37 E F0(,).27 E F3(getopts)144
+501.6 Q F0(parses those instead.)2.5 E F3(getopts)144 525.6 Q F0 1.165
+(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
+1.165(the \214rst character of)3.665 F F1(optstring)3.895 E F0 1.166
+(is a colon,)3.886 F F1(silent)4.006 E F0(error)4.346 E 1.071
+(reporting is used.)144 537.6 R 1.071
+(In normal operation, diagnostic messages are printed when in)6.071 F
+-.25(va)-.4 G 1.07(lid options or).25 F .393(missing option ar)144 549.6
+R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
+-.25 E F4(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
+(will be displayed, e)144 561.6 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)
+-2.5 G(he \214rst character of)-2.5 E F1(optstring)2.73 E F0
+(is not a colon.)2.72 E .667(If an in)144 585.6 R -.25(va)-.4 G .667
+(lid option is seen,).25 F F3(getopts)3.167 E F0 .667(places ? into)
+3.167 F F1(name)3.527 E F0 .666
+(and, if not silent, prints an error message)3.347 F .399(and unsets)144
+597.6 R F4(OPT)2.899 E(ARG)-.81 E F5(.)A F0(If)4.899 E F3(getopts)2.899
+E F0 .399(is silent, the option character found is placed in)2.899 F F4
+(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F
+(diagnostic message is printed.)144 609.6 Q 1.242(If a required ar)144
+633.6 R 1.242(gument is not found, and)-.18 F F3(getopts)3.741 E F0
+1.241(is not silent, a question mark \()3.741 F F3(?).833 E F0 3.741
+(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F F1(name)144 645.6
+Q F0(,).18 E F4(OPT)2.734 E(ARG)-.81 E F0 .234
+(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F3
+(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F3(:).833 E
+F0(\)).833 E(is placed in)144 657.6 Q F1(name)2.86 E F0(and)2.68 E F4
+(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F3
+(getopts)144 681.6 Q F0 .902
(returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 468 Q F1(hash)108 484.8
-Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\214lename)2.5 E
-F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .858
-(Each time)144 496.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
-G -.1(ke).2 G .858(d, the full pathname of the command).1 F F2(name)
-3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 508.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
-.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .099(If the)144 520.8
-R F1<ad70>2.599 E F0 .099
-(option is supplied, no path search is performed, and)2.599 F F2
-(\214lename)4.508 E F0 .098(is used as the full \214le name)2.778 F
-1.711(of the command.)144 532.8 R(The)6.711 E F1<ad72>4.211 E F0 1.711
-(option causes the shell to for)4.211 F 1.712
-(get all remembered locations.)-.18 F(The)6.712 E F1<ad64>4.212 E F0
-.833(option causes the shell to for)144 544.8 R .833
+3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 693.6 Q(GNU Bash 4.3)72
+768 Q(2014 February 2)141.79 E(59)190.95 E 0 Cg EP
+%%Page: 60 60
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(hash)108 84 Q F0([)2.5 E F1(\255lr)A F0 2.5
+(][)C F1<ad70>-2.5 E/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)
+C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .858(Each time)144
+96 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4 G -.1(ke).2 G .858
+(d, the full pathname of the command).1 F F2(name)3.718 E F0 .858
+(is determined by searching)3.538 F .956(the directories in)144 108 R F1
+($P)3.456 E -.95(AT)-.74 G(H).95 E F0 .956(and remembered.)3.456 F(An)
+5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
+(viously-remembered pathname is discarded.)-.25 F .242(If the)144 120 R
+F1<ad70>2.742 E F0 .243
+(option is supplied, no path search is performed, and)2.742 F F2
+(\214lename)4.653 E F0 .243(is used as the full \214lename)2.923 F 1.712
+(of the command.)144 132 R(The)6.712 E F1<ad72>4.212 E F0 1.711
+(option causes the shell to for)4.212 F 1.711
+(get all remembered locations.)-.18 F(The)6.711 E F1<ad64>4.211 E F0
+.833(option causes the shell to for)144 144 R .833
(get the remembered location of each)-.18 F F2(name)3.333 E F0 5.833(.I)
C 3.333(ft)-5.833 G(he)-3.333 E F1<ad74>3.333 E F0 .833(option is sup-)
-3.333 F .703(plied, the full pathname to which each)144 556.8 R F2(name)
-3.204 E F0 .704(corresponds is printed.)3.204 F .704(If multiple)5.704 F
-F2(name)3.204 E F0(ar)3.204 E(guments)-.18 E .795(are supplied with)144
-568.8 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0
-.795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F1
+3.333 F .704(plied, the full pathname to which each)144 156 R F2(name)
+3.204 E F0 .703(corresponds is printed.)3.204 F .703(If multiple)5.703 F
+F2(name)3.203 E F0(ar)3.203 E(guments)-.18 E .795(are supplied with)144
+168 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0 .795
+(is printed before the hashed full pathname.)3.295 F(The)5.795 E F1
<ad6c>3.295 E F0 .795(option causes)3.295 F .934
-(output to be displayed in a format that may be reused as input.)144
-580.8 R .934(If no ar)5.934 F .935(guments are gi)-.18 F -.15(ve)-.25 G
-.935(n, or if).15 F(only)144 592.8 Q F1<ad6c>2.822 E F0 .322
-(is supplied, information about remembered commands is printed.)2.822 F
-.321(The return status is true)5.321 F(unless a)144 604.8 Q F2(name)2.86
-E F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
-.25 E F1(help)108 621.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
-(pattern)-2.5 E F0(])A .866(Display helpful information about b)144
-633.6 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
-.867(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25
-G 3.367(sd).15 G(etailed)-3.367 E .307(help on all commands matching)144
-645.6 R F2(pattern)2.807 E F0 2.807(;o).24 G .307
-(therwise help for all the b)-2.807 F .306
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 657.6 Q F1
-<ad64>144 669.6 Q F0(Display a short description of each)24.74 E F2
-(pattern)2.5 E F1<ad6d>144 681.6 Q F0(Display the description of each)
+(output to be displayed in a format that may be reused as input.)144 180
+R .934(If no ar)5.934 F .934(guments are gi)-.18 F -.15(ve)-.25 G .934
+(n, or if).15 F(only)144 192 Q F1<ad6c>2.821 E F0 .321
+(is supplied, information about remembered commands is printed.)2.821 F
+.322(The return status is true)5.322 F(unless a)144 204 Q F2(name)2.86 E
+F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
+.25 E F1(help)108 220.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
+(pattern)-2.5 E F0(])A .867(Display helpful information about b)144
+232.8 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
+.866(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25
+G 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
+244.8 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
+(therwise help for all the b)-2.807 F .307
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 256.8 Q F1
+<ad64>144 268.8 Q F0(Display a short description of each)24.74 E F2
+(pattern)2.5 E F1<ad6d>144 280.8 Q F0(Display the description of each)
21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
--2.5 E F1<ad73>144 693.6 Q F0
+-2.5 E F1<ad73>144 292.8 Q F0
(Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E
-F0(The return status is 0 unless no command matches)144 710.4 Q F2
-(pattern)2.5 E F0(.).24 E(GNU Bash-4.2)72 768 Q(2010 December 28)135.965
-E(57)185.955 E 0 Cg EP
-%%Page: 58 58
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(history [)108 84 Q/F2 10/Times-Italic@0 SF
-(n)A F1(])A(history \255c)108 96 Q(history \255d)108 108 Q F2(of)2.5 E
-(fset)-.18 E F1(history \255anrw)108 120 Q F0([)2.5 E F2(\214lename)A F0
-(])A F1(history \255p)108 132 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A
-2.5(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 144 Q F2(ar)2.5 E(g)
--.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 156
-S .752
+F0(The return status is 0 unless no command matches)144 309.6 Q F2
+(pattern)2.5 E F0(.).24 E F1(history [)108 326.4 Q F2(n)A F1(])A
+(history \255c)108 338.4 Q(history \255d)108 350.4 Q F2(of)2.5 E(fset)
+-.18 E F1(history \255anrw)108 362.4 Q F0([)2.5 E F2(\214lename)A F0(])A
+F1(history \255p)108 374.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 386.4 Q F2(ar)2.5 E(g)
+-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
+398.4 S .752
(th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
-G .381(been modi\214ed.)144 168 R .38(An ar)5.38 F .38(gument of)-.18 F
+.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
+G .38(been modi\214ed.)144 410.4 R .38(An ar)5.38 F .38(gument of)-.18 F
F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 180 Q(T)-.855 E F0 .264
-(is set and not null, it is used as a format string for)2.514 F F2
-(strftime)2.765 E F0 .265(\(3\) to display the time stamp asso-)B 1.02
-(ciated with each displayed history entry)144 192 R 6.019(.N)-.65 G
+/Times-Bold@0 SF(HISTTIMEFOR-)2.881 E(MA)144 422.4 Q(T)-.855 E F0 .265
+(is set and not null, it is used as a format string for)2.515 F F2
+(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019
+(ciated with each displayed history entry)144 434.4 R 6.019(.N)-.65 G
3.519(oi)-6.019 G(nterv)-3.519 E 1.019
(ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 204 R(If)5.176 E F2(\214lename)
+(time stamp and the history line.)144 446.4 R(If)5.176 E F2(\214lename)
2.676 E F0 .176
(is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 216 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)2.25
-E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad63>144 228 Q F0
+(not, the v)144 458.4 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)
+2.25 E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad63>144 470.4 Q F0
(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
-240 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 252 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 264 Q F0 .599
-(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.099('h)-.74 G .598
-(istory lines \(history lines entered since the be)-3.099 F .598
-(ginning of the current)-.15 F F1(bash)180 276 Q F0
-(session\) to the history \214le.)2.5 E F1<ad6e>144 288 Q F0 .854(Read \
-the history lines not already read from the history \214le into the cur\
-rent history list.)24.74 F .773
-(These are lines appended to the history \214le since the be)180 300 R
-.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
-(sion.)180 312 Q F1<ad72>144 324 Q F0(Read the contents of the history \
-\214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>144
-336 Q F0(Write the current history to the history \214le, o)23.08 E -.15
-(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
--2.5 E F1<ad70>144 348 Q F0 .625
+482.4 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 494.4 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 506.4 Q F0 .598
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
+(istory lines \(history lines entered since the be)-3.098 F .599
+(ginning of the current)-.15 F F1(bash)180 518.4 Q F0
+(session\) to the history \214le.)2.5 E F1<ad6e>144 530.4 Q F0 .854(Rea\
+d the history lines not already read from the history \214le into the c\
+urrent history list.)24.74 F .772
+(These are lines appended to the history \214le since the be)180 542.4 R
+.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
+(sion.)180 554.4 Q F1<ad72>144 566.4 Q F0(Read the contents of the hist\
+ory \214le and append them to the current history list.)25.86 E F1<ad77>
+144 578.4 Q F0(Write the current history list to the history \214le, o)
+23.08 E -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F1<ad70>144 590.4 Q F0 .626
(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
-3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
-2.975(output. Does)180 360 R .475
+3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+2.975(output. Does)180 602.4 R .475
(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 372 Q(xpansion.)-.15 E F1<ad73>144 384 Q F0 .362
-(Store the)26.41 F F2(ar)3.192 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
-(he last command in the history list is)-5.363 F(remo)180 396 Q -.15(ve)
--.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .146(If the)144 412.8 R F3(HISTTIMEFORMA)2.645 E(T)
+(normal history e)180 614.4 Q(xpansion.)-.15 E F1<ad73>144 626.4 Q F0
+.363(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(he last command in the history list is)-5.363 F(remo)180 638.4 Q -.15
+(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .145(If the)144 655.2 R F3(HISTTIMEFORMA)2.645 E(T)
-.855 E F0 -.25(va)2.395 G .145
(riable is set, the time stamp information associated with each history)
-.25 F .668(entry is written to the history \214le, mark)144 424.8 R .669
-(ed with the history comment character)-.1 F 5.669(.W)-.55 G .669
-(hen the history)-5.669 F .956(\214le is read, lines be)144 436.8 R .956
-(ginning with the history comment character follo)-.15 F .955
-(wed immediately by a digit)-.25 F .415
-(are interpreted as timestamps for the pre)144 448.8 R .416
-(vious history line.)-.25 F .416(The return v)5.416 F .416
+.25 F .669(entry is written to the history \214le, mark)144 667.2 R .669
+(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
+(hen the history)-5.668 F .955(\214le is read, lines be)144 679.2 R .956
+(ginning with the history comment character follo)-.15 F .956
+(wed immediately by a digit)-.25 F .416
+(are interpreted as timestamps for the pre)144 691.2 R .416
+(vious history line.)-.25 F .416(The return v)5.416 F .415
(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 460.8 R -.25(va)-.4 G(lid).25 E F2(of)2.999 E(fset)-.18 E F0
-(is)2.999 E(supplied as an ar)144 472.8 Q(gument to)-.18 E F1<ad64>2.5 E
-F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
-(xpansion supplied as an ar)-.15 E(gument to)-.18 E F1<ad70>2.5 E F0 -.1
-(fa)2.5 G(ils.).1 E F1(jobs)108 489.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5
-(][)C F2(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 501.6 Q F2(command)
-2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
-(The \214rst form lists the acti)144 513.6 Q .3 -.15(ve j)-.25 H 2.5
+, an in)144 703.2 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
+3 E(supplied as an ar)144 715.2 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
+(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
+E(gument to)-.18 E F1<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E(GNU Bash 4.3)
+72 768 Q(2014 February 2)141.79 E(60)190.95 E 0 Cg EP
+%%Page: 61 61
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(jobs)108 84 Q F0([)2.5 E F1(\255lnprs)A F0
+2.5(][)C/F2 10/Times-Italic@0 SF(jobspec)A F0(... ])2.5 E F1(jobs \255x)
+108 96 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5
+E(The \214rst form lists the acti)144 108 Q .3 -.15(ve j)-.25 H 2.5
(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad6c>144 525.6 Q F0
+(wing meanings:)-.25 E F1<ad6c>144 120 Q F0
(List process IDs in addition to the normal information.)27.52 E F1
-<ad6e>144 537.6 Q F0 .193(Display information only about jobs that ha)
-24.74 F .494 -.15(ve c)-.2 H .194(hanged status since the user w).15 F
-.194(as last noti-)-.1 F(\214ed of their status.)180 549.6 Q F1<ad70>144
-561.6 Q F0(List only the process ID of the job')24.74 E 2.5(sp)-.55 G
-(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 573.6 Q F0
-(Restrict output to running jobs.)25.86 E F1<ad73>144 585.6 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 602.4 Q F2(jobspec)
-4.554 E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
-(n, output is restricted to information about that job).15 F 5.313(.T)
--.4 G .313(he return status is 0 unless)-5.313 F(an in)144 614.4 Q -.25
+<ad6e>144 132 Q F0 .194(Display information only about jobs that ha)
+24.74 F .494 -.15(ve c)-.2 H .193(hanged status since the user w).15 F
+.193(as last noti-)-.1 F(\214ed of their status.)180 144 Q F1<ad70>144
+156 Q F0(List only the process ID of the job')24.74 E 2.5(sp)-.55 G
+(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 168 Q F0
+(Display only running jobs.)25.86 E F1<ad73>144 180 Q F0
+(Display only stopped jobs.)26.41 E(If)144 196.8 Q F2(jobspec)4.553 E F0
+.313(is gi)3.123 F -.15(ve)-.25 G .313
+(n, output is restricted to information about that job).15 F 5.314(.T)
+-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 208.8 Q -.25
(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 631.2 R F1
-<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 225.6 R F1
+<ad78>2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
-3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
-(with the corre-)3.164 F(sponding process group ID, and e)144 643.2 Q
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394
+(with the corre-)3.164 F(sponding process group ID, and e)144 237.6 Q
-.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
-F1(kill)108 660 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
+F1(kill)108 254.4 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
-(kill \255l)108 672 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G
-(it_status).2 E F0(])A .12(Send the signal named by)144 684 R F2
-(sigspec)2.96 E F0(or)2.93 E F2(signum)2.96 E F0 .119
-(to the processes named by)2.939 F F2(pid)3.869 E F0(or)3.389 E F2
-(jobspec)2.619 E F0(.).31 E F2(sigspec)5.459 E F0(is)2.929 E .318
-(either a case-insensiti)144 696 R .618 -.15(ve s)-.25 H .318
-(ignal name such as).15 F F3(SIGKILL)2.818 E F0 .319
-(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
-(pre\214x\) or a signal)2.569 F(number;)144 708 Q F2(signum)4.189 E F0
-1.349(is a signal number)4.169 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
+(kill \255l)108 266.4 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5
+G(it_status).2 E F0(])A .119(Send the signal named by)144 278.4 R F2
+(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119
+(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2
+(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319
+(either a case-insensiti)144 290.4 R .619 -.15(ve s)-.25 H .319
+(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.819 E F0 .318
+(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
+(pre\214x\) or a signal)2.568 F(number;)144 302.4 Q F2(signum)4.188 E F0
+1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
-1.348(is assumed.)3.599 F(An)6.348 E(ar)144 720 Q .522(gument of)-.18 F
-F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
-F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
-F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
-.15 F(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(58)185.955 E 0 Cg
-EP
-%%Page: 59 59
+1.349(is assumed.)3.599 F(An)6.349 E(ar)144 314.4 Q .523(gument of)-.18
+F F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)
+5.523 F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when)
+.18 F F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523
+(n, the names).15 F .28(of the signals corresponding to the ar)144 326.4
+R .28(guments are listed, and the return status is 0.)-.18 F(The)5.28 E
+F2 -.2(ex)2.78 G(it_status).2 E F0(ar)144 338.4 Q .378(gument to)-.18 F
+F1<ad6c>2.878 E F0 .378
+(is a number specifying either a signal number or the e)2.878 F .377
+(xit status of a process termi-)-.15 F .593(nated by a signal.)144 350.4
+R F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
+(occurs or an in)144 362.4 Q -.25(va)-.4 G(lid option is encountered.)
+.25 E F1(let)108 379.2 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(Each)144 391.2 Q F2(ar)3.027 E(g)-.37 E F0 .197
+(is an arithmetic e)2.917 F .197(xpression to be e)-.15 F -.25(va)-.25 G
+.196(luated \(see).25 F F3 .196(ARITHMETIC EV)2.696 F(ALU)-1.215 E -.855
+(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G 2.696(\). If).15 F
+(the last)144 403.2 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
+(luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.)
+2.5 E F1(local)108 420 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)-2.5
+E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 432 S 2.56(re)
+.15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06(ariable named)
+-.25 F F2(name)2.92 E F0 .06(is created, and assigned)2.74 F F2(value)
+2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0 .06(can be)2.56 F
+(an)144 444 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653
+(he options accepted by)-3.153 F F1(declar)3.153 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F1(local)3.152 E F0 .652
+(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
+456 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
+(isible scope restricted to that function and its children.).15 F -.4
+(Wi)5.861 G .861(th no operands,).4 F F1(local)144 468 Q F0 1.165
+(writes a list of local v)3.665 F 1.165
+(ariables to the standard output.)-.25 F 1.165(It is an error to use)
+6.165 F F1(local)3.664 E F0 1.164(when not)3.664 F .232
+(within a function.)144 480 R .233(The return status is 0 unless)5.232 F
+F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F -.25
+(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144 492 Q
+F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
+508.8 Q F0(Exit a login shell.)9.33 E F1(map\214le)108 525.6 Q F0([)2.5
+E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0
+2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5
+(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)
+2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2
+(arr)-2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 537.6 S(adarray).18 E F0([)
+2.5 E F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5
+E F0 2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E
+F0 2.5(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2
+(callbac)2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0
+2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0(])A .351
+(Read lines from the standard input into the inde)144 549.6 R -.15(xe)
+-.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F2(arr)2.85 E
+(ay)-.15 E F0 2.85(,o).32 G 2.85(rf)-2.85 G .35(rom \214le descriptor)
+-2.85 F F2(fd)2.85 E F0 1.248(if the)144 561.6 R F1<ad75>3.748 E F0
+1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E F3
+(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E F2(arr)3.749 E
+(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249 F(ha)144
+573.6 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6e>
+144 585.6 Q F0(Cop)24.74 E 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F2
+(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)2.5 E F0
+(is 0, all lines are copied.)2.5 E F1<ad4f>144 597.6 Q F0(Be)22.52 E
+(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x)
+-.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5(xi)
+-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 609.6 Q F0
+(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 621.6 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E
+(wline from each line read.)-.25 E F1<ad75>144 633.6 Q F0
+(Read lines from \214le descriptor)24.74 E F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 645.6 Q F0(Ev)23.08 E
+(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum)
+2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
+(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 657.6
+Q F0(Specify the number of lines read between each call to)25.86 E F2
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 674.4 Q F1<ad43>2.968 E F0 .467
+(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
+(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
+(luated, it is sup-).25 F .261(plied the inde)144 686.4 R 2.761(xo)-.15
+G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
+igned and the line to be assigned to that element)-.15 F .275
+(as additional ar)144 698.4 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
+F0 .275(is e)2.775 F -.25(va)-.25 G .274
+(luated after the line is read b).25 F .274
+(ut before the array element is)-.2 F(assigned.)144 710.4 Q
+(If not supplied with an e)144 727.2 Q(xplicit origin,)-.15 E F1
+(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E(GNU Bash 4.3)72 768 Q(2014 February 2)
+141.79 E(61)190.95 E 0 Cg EP
+%%Page: 62 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .28(of the signals corresponding to the ar)144 84 R .28
-(guments are listed, and the return status is 0.)-.18 F(The)5.28 E/F1 10
-/Times-Italic@0 SF -.2(ex)2.78 G(it_status).2 E F0(ar)144 96 Q .377
-(gument to)-.18 F/F2 10/Times-Bold@0 SF<ad6c>2.877 E F0 .378
-(is a number specifying either a signal number or the e)2.877 F .378
-(xit status of a process termi-)-.15 F .594(nated by a signal.)144 108 R
-F2(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
-.593(as successfully sent, or f)-.1 F .593(alse if an error)-.1 F
-(occurs or an in)144 120 Q -.25(va)-.4 G(lid option is encountered.).25
-E F2(let)108 136.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
-(...])2.5 E(Each)144 148.8 Q F1(ar)3.026 E(g)-.37 E F0 .196
-(is an arithmetic e)2.916 F .197(xpression to be e)-.15 F -.25(va)-.25 G
-.197(luated \(see).25 F/F3 9/Times-Bold@0 SF .197(ARITHMETIC EV)2.697 F
-(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)2.447 E -.15(ve)-.15 G
-2.697(\). If).15 F(the last)144 160.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25
-(eva)2.72 G(luates to 0,).25 E F2(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F2(local)108 177.6 Q F0([)2.5
-E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
-(..])-2.5 E -.15(Fo)144 189.6 S 2.56(re).15 G .06(ach ar)-2.56 F .06
-(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0 .06
-(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)
--5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 201.6 Q 3.152(yo)
--.15 G 3.152(ft)-3.152 G .652(he options accepted by)-3.152 F F2(declar)
-3.152 E(e)-.18 E F0 5.652(.W)C(hen)-5.652 E F2(local)3.152 E F0 .653
-(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-213.6 Q F1(name)3.721 E F0 .861(to ha)3.541 F 1.161 -.15(ve a v)-.2 H
-.861(isible scope restricted to that function and its children.).15 F
--.4(Wi)5.86 G .86(th no operands,).4 F F2(local)144 225.6 Q F0 1.164
-(writes a list of local v)3.664 F 1.165
-(ariables to the standard output.)-.25 F 1.165(It is an error to use)
-6.165 F F2(local)3.665 E F0 1.165(when not)3.665 F .233
-(within a function.)144 237.6 R .233(The return status is 0 unless)5.233
-F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
--.25(va)-.4 G(lid).25 E F1(name)3.092 E F0(is)2.912 E(supplied, or)144
-249.6 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
-(logout)108 266.4 Q F0(Exit a login shell.)9.33 E F2(map\214le)108 283.2
-Q F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1
-(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5(][)C F2
-<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>
--2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)
-2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 295.2 S
-(adarray).18 E F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>
--2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5
-(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C
-F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1
-(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A .35
-(Read lines from the standard input into the inde)144 307.2 R -.15(xe)
--.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F1(arr)2.851 E
-(ay)-.15 E F0 2.851(,o).32 G 2.851(rf)-2.851 G .351
-(rom \214le descriptor)-2.851 F F1(fd)2.851 E F0 1.249(if the)144 319.2
-R F2<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249
-F(ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1
-E F1(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,)
--6.248 F(ha)144 331.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad6e>144 343.2 Q F0(Cop)24.74 E 2.5(ya)-.1 G
-2.5(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18 F F1
-(count)2.5 E F0(is 0, all lines are copied.)2.5 E F2<ad4f>144 355.2 Q F0
-(Be)22.52 E(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0(at inde)
-2.82 E(x)-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1
-E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 367.2 Q F0
-(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2
-<ad74>144 379.2 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E
-(wline from each line read.)-.25 E F2<ad75>144 391.2 Q F0
-(Read lines from \214le descriptor)24.74 E F1(fd)2.5 E F0
-(instead of the standard input.)2.5 E F2<ad43>144 403.2 Q F0(Ev)23.08 E
-(aluate)-.25 E F1(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F1(quantum)
-2.5 E F0(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F0
-(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2<ad63>144 415.2
-Q F0(Specify the number of lines read between each call to)25.86 E F1
-(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 432 Q F2<ad43>2.967 E F0 .467
-(is speci\214ed without)2.967 F F2<ad63>2.967 E F0 2.967(,t)C .467
-(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1
-(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .262(plied the inde)144 444 R 2.762(xo)-.15 G
-2.762(ft)-2.762 G .262(he ne)-2.762 F .261(xt array element to be assig\
-ned and the line to be assigned to that element)-.15 F .274
-(as additional ar)144 456 R(guments.)-.18 E F1(callbac)5.274 E(k)-.2 E
-F0 .274(is e)2.774 F -.25(va)-.25 G .274
-(luated after the line is read b).25 F .275
-(ut before the array element is)-.2 F(assigned.)144 468 Q
-(If not supplied with an e)144 484.8 Q(xplicit origin,)-.15 E F2
-(map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F2(map\214le)144 501.6 Q F0 1.906
-(returns successfully unless an in)4.406 F -.25(va)-.4 G 1.905
-(lid option or option ar).25 F 1.905(gument is supplied,)-.18 F F1(arr)
-4.405 E(ay)-.15 E F0(is)4.405 E(in)144 513.6 Q -.25(va)-.4 G
-(lid or unassignable, or if).25 E F1(arr)2.5 E(ay)-.15 E F0
+-.35 E/F1 10/Times-Bold@0 SF(map\214le)144 84 Q F0 1.905
+(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905
+(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F/F2 10
+/Times-Italic@0 SF(arr)4.406 E(ay)-.15 E F0(is)4.406 E(in)144 96 Q -.25
+(va)-.4 G(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F2(popd)108 530.4 Q F0<5bad>2.5 E F2(n)A F0 2.5(][)C(+)-2.5 E F1(n)A F0
-2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144 542.4 Q -.15(ve)-.15 G 2.799
-(se).15 G .299(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G
-.299(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15
-G .3(he top directory from the)-2.799 F 1.479(stack, and performs a)144
-554.4 R F2(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
-(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
-F(wing)-.25 E(meanings:)144 566.4 Q F2<ad6e>144 578.4 Q F0 .551
+F1(popd)108 112.8 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
+2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 124.8 Q -.15(ve)-.15 G 2.8(se)
+.15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299
+(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G
+.299(he top directory from the)-2.799 F 1.478(stack, and performs a)144
+136.8 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
+(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
+(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
+F(wing)-.25 E(meanings:)144 148.8 Q F1<ad6e>144 160.8 Q F0 .551
(Suppresses the normal change of directory when remo)24.74 F .551
(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 590.4 Q F2(+)144 602.4 Q F1(n)A
-F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0
+(that only the stack is manipulated.)180 172.8 Q F1(+)144 184.8 Q F2(n)A
+F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0
.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
-F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-614.4 S 2.5(re).15 G(xample:)-2.65 E/F4 10/Courier@0 SF(popd +0)2.5 E F0
+F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+196.8 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
--.65 E F4(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 626.4 Q F1(n)A F0
-(Remo)25.3 E -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F1(n)3.759 E F0
-1.259(th entry counting from the right of the list sho)B 1.26(wn by)-.25
-F F2(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180
-638.4 R(or e)-.15 E(xample:)-.15 E F4(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F4(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 655.2 R F2(popd)
-3.144 E F0 .644(command is successful, a)3.144 F F2(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F2(popd)5.643
-E F0 .415(returns f)144 667.2 R .415(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.916
-(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 679.2 Q
-(ails.)-.1 E F2(printf)108 696 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0(])
-A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A 1.437
-(Write the formatted)144 708 R F1(ar)3.937 E(guments)-.37 E F0 1.437
-(to the standard output under the control of the)3.937 F F1(format)3.936
-E F0 6.436(.T)C(he)-6.436 E F2<ad76>3.936 E F0 .126
-(option causes the output to be assigned to the v)144 720 R(ariable)-.25
-E F1(var)2.626 E F0 .126(rather than being printed to the standard)2.626
-F(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(59)185.955 E 0 Cg EP
-%%Page: 60 60
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(output.)144 84 Q(The)144 108 Q/F1 10/Times-Italic@0 SF(format)
-3.018 E F0 .517(is a character string which contains three types of obj\
-ects: plain characters, which are)3.018 F .704(simply copied to standar\
-d output, character escape sequences, which are con)144 120 R -.15(ve)
--.4 G .704(rted and copied to).15 F .036(the standard output, and forma\
-t speci\214cations, each of which causes printing of the ne)144 132 R
-.036(xt successi)-.15 F -.15(ve)-.25 G F1(ar)144 144 Q(gument)-.37 E F0
-5.531(.I)C 3.031(na)-5.531 G .531(ddition to the standard)-3.031 F F1
-(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B/F2 10
-/Times-Bold@0 SF(printf)3.032 E F0 .532(interprets the follo)3.032 F(w-)
--.25 E(ing e)144 156 Q(xtensions:)-.15 E F2(%b)144 168 Q F0(causes)20.44
-E F2(printf)5.115 E F0 2.615(to e)5.115 F 2.615
-(xpand backslash escape sequences in the corresponding)-.15 F F1(ar)
-5.115 E(gument)-.37 E F0(\(e)180 180 Q .608(xcept that)-.15 F F2(\\c)
-3.108 E F0 .608(terminates output, backslashes in)3.108 F F2<5c08>3.108
-E F0(,)A F2(\\")3.108 E F0 3.108(,a)C(nd)-3.108 E F2(\\?)3.108 E F0 .608
+-.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 208.8 Q F2(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 220.8 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+237.6 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F1(popd)5.644 E F0 .416(returns f)144 249.6 R .416
+(alse if an in)-.1 F -.25(va)-.4 G .415
+(lid option is encountered, the directory stack is empty).25 F 2.915
+(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
+(tory stack entry is speci\214ed, or the directory change f)144 261.6 Q
+(ails.)-.1 E F1(printf)108 278.4 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
+(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.436
+(Write the formatted)144 290.4 R F2(ar)3.936 E(guments)-.37 E F0 1.437
+(to the standard output under the control of the)3.936 F F2(format)3.937
+E F0 6.437(.T)C(he)-6.437 E F1<ad76>3.937 E F0 .126
+(option causes the output to be assigned to the v)144 302.4 R(ariable)
+-.25 E F2(var)2.626 E F0 .126(rather than being printed to the standard)
+2.626 F(output.)144 314.4 Q(The)144 338.4 Q F2(format)3.017 E F0 .517(i\
+s a character string which contains three types of objects: plain chara\
+cters, which are)3.017 F .704(simply copied to standard output, charact\
+er escape sequences, which are con)144 350.4 R -.15(ve)-.4 G .703
+(rted and copied to).15 F .036(the standard output, and format speci\
+\214cations, each of which causes printing of the ne)144 362.4 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 374.4 Q(gument)-.37 E F0
+5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
+(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
+E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 386.4 Q
+(xtensions:)-.15 E F1(%b)144 398.4 Q F0(causes)20.44 E F1(printf)5.115 E
+F0 2.615(to e)5.115 F 2.615
+(xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
+5.115 E(gument)-.37 E F0(\(e)180 410.4 Q .608(xcept that)-.15 F F1(\\c)
+3.108 E F0 .608(terminates output, backslashes in)3.108 F F1<5c08>3.108
+E F0(,)A F1(\\")3.108 E F0 3.108(,a)C(nd)-3.108 E F1(\\?)3.108 E F0 .608
(are not remo)3.108 F -.15(ve)-.15 G .608(d, and octal).15 F(escapes be)
-180 192 Q(ginning with)-.15 E F2(\\0)2.5 E F0
-(may contain up to four digits\).)2.5 E F2(%q)144 204 Q F0(causes)20.44
-E F2(printf)2.51 E F0 .01(to output the corresponding)2.51 F F1(ar)2.51
-E(gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
-(input.)180 216 Q F2(%\()144 228 Q F1(datefmt)A F2(\)T)A F0(causes)180
-240 Q F2(printf)4.403 E F0 1.904
-(to output the date-time string resulting from using)4.403 F F1(datefmt)
-4.404 E F0 1.904(as a format)4.404 F .381(string for)180 252 R F1
-(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F1(ar)
+180 422.4 Q(ginning with)-.15 E F1(\\0)2.5 E F0
+(may contain up to four digits\).)2.5 E F1(%q)144 434.4 Q F0(causes)
+20.44 E F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2
+(ar)2.51 E(gument)-.37 E F0 .01(in a format that can be reused as shell)
+2.51 F(input.)180 446.4 Q F1(%\()144 458.4 Q F2(datefmt)A F1(\)T)A F0
+(causes)180 470.4 Q F1(printf)4.404 E F0 1.904
+(to output the date-time string resulting from using)4.404 F F2(datefmt)
+4.404 E F0 1.903(as a format)4.404 F .38(string for)180 482.4 R F2
+(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
-(ger representing the number)-.15 F .457(of seconds since the epoch.)180
-264 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F
-.458(alues may be used: -1 represents the)-.25 F
-(current time, and -2 represents the time the shell w)180 276 Q(as in)
--.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(Ar)144 292.8 Q .464(guments to n\
-on-string format speci\214ers are treated as C constants, e)-.18 F .463
-(xcept that a leading plus or)-.15 F 1.258(minus sign is allo)144 304.8
+(ger representing the number)-.15 F .458(of seconds since the epoch.)180
+494.4 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F
+.458(alues may be used: -1 represents the)-.25 F .847
+(current time, and -2 represents the time the shell w)180 506.4 R .847
+(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.348(d. If).1 F .848(no ar)3.348
+F .848(gument is speci-)-.18 F .355(\214ed, con)180 518.4 R -.15(ve)-.4
+G .355(rsion beha).15 F -.15(ve)-.2 G 2.855(sa).15 G 2.855(si)-2.855 G
+2.855(f-)-2.855 G 2.855(1h)-2.855 G .354(ad been gi)-2.855 F -.15(ve)
+-.25 G 2.854(n. This).15 F .354(is an e)2.854 F .354
+(xception to the usual)-.15 F F1(printf)2.854 E F0(beha)180 530.4 Q
+(vior)-.2 E(.)-.55 E(Ar)144 547.2 Q .463(guments to non-string format s\
+peci\214ers are treated as C constants, e)-.18 F .464
+(xcept that a leading plus or)-.15 F 1.259(minus sign is allo)144 559.2
R 1.259
(wed, and if the leading character is a single or double quote, the v)
--.25 F 1.259(alue is the)-.25 F(ASCII v)144 316.8 Q(alue of the follo)
--.25 E(wing character)-.25 E(.)-.55 E(The)144 333.6 Q F1(format)3.424 E
-F0 .923(is reused as necessary to consume all of the)3.424 F F1(ar)3.423
-E(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
-3.423 E F0 .923(requires more)3.423 F F1(ar)144 345.6 Q(guments)-.37 E
-F0 .033(than are supplied, the e)2.533 F .033
+-.25 F 1.258(alue is the)-.25 F(ASCII v)144 571.2 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 588 Q F2(format)3.423 E F0
+.923(is reused as necessary to consume all of the)3.423 F F2(ar)3.423 E
+(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F2(format)
+3.423 E F0 .924(requires more)3.424 F F2(ar)144 600 Q(guments)-.37 E F0
+.033(than are supplied, the e)2.534 F .033
(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
-.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .034(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 357.6 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd)
-108 374.4 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C
-<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 386.4 Q F0([)2.5 E F2<ad6e>A F0
-2.5(][)C F1(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
-rectory stack, or rotates the stack, making the ne)144 398.4 R 3.139(wt)
--.25 G .639(op of the)-3.139 F 1.315(stack the current w)144 410.4 R
-1.315(orking directory)-.1 F 6.315(.W)-.65 G 1.315(ith no ar)-6.715 F
-1.315(guments, e)-.18 F 1.316(xchanges the top tw)-.15 F 3.816(od)-.1 G
-1.316(irectories and)-3.816 F .872
-(returns 0, unless the directory stack is empty)144 422.4 R 5.871(.A)
--.65 G -.18(rg)-5.871 G .871(uments, if supplied, ha).18 F 1.171 -.15
-(ve t)-.2 H .871(he follo).15 F .871(wing mean-)-.25 F(ings:)144 434.4 Q
-F2<ad6e>144 446.4 Q F0 .902(Suppresses the normal change of directory w\
+.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 612 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
+108 628.8 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
+<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 640.8 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
+irectory stack, or rotates the stack, making the ne)144 652.8 R 3.14(wt)
+-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 664.8 R 1.316
+(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315
+(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315
+(irectories and)-3.815 F .871
+(returns 0, unless the directory stack is empty)144 676.8 R 5.871(.A)
+-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
+(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 688.8 Q
+F1<ad6e>144 700.8 Q F0 .902(Suppresses the normal change of directory w\
hen adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 458.4 Q F2(+)144 470.4 Q F1(n)A F0
-1.268(Rotates the stack so that the)25.3 F F1(n)3.768 E F0 1.267
-(th directory \(counting from the left of the list sho)B 1.267(wn by)
--.25 F F2(dirs)180 482.4 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F2<ad>144 494.4 Q F1(n)A F0
-.92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92
+(only the stack is manipulated.)180 712.8 Q(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(62)190.95 E 0 Cg EP
+%%Page: 63 63
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(+)144 84 Q/F2 10/Times-Italic@0 SF(n)A F0
+1.267(Rotates the stack so that the)25.3 F F2(n)3.767 E F0 1.268
+(th directory \(counting from the left of the list sho)B 1.268(wn by)
+-.25 F F1(dirs)180 96 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1<ad>144 108 Q F2(n)A F0 .92(Rotates the stack so that the)25.3
+F F2(n)3.42 E F0 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F2(dirs)180 506.4 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1(dir)144.35 518.4 Q F0(Adds)23.98 E F1(dir)2.85 E F0
-(to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .489(If the)144 535.2
-R F2(pushd)2.989 E F0 .489(command is successful, a)2.989 F F2(dirs)
-2.988 E F0 .488(is performed as well.)2.988 F .488
-(If the \214rst form is used,)5.488 F F2(pushd)2.988 E F0 1.039
-(returns 0 unless the cd to)144 547.2 R F1(dir)3.889 E F0 -.1(fa)4.269 G
-3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.54 E F0
-1.04(returns 0 unless the directory)3.54 F .847(stack is empty)144 559.2
-R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent directory stack element i\
-s speci\214ed, or the directory change to the)-.15 F(speci\214ed ne)144
-571.2 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E(ails.)-.1 E F2(pwd)108
-588 Q F0([)2.5 E F2(\255LP)A F0(])A .844
-(Print the absolute pathname of the current w)144 600 R .845
+F F1(dirs)180 120 Q F0 2.5(,s)C(tarting with zero\) is at the top.)-2.5
+E F2(dir)144.35 132 Q F0(Adds)23.98 E F2(dir)3.137 E F0 .287
+(to the directory stack at the top, making it the ne)3.517 F 2.788(wc)
+-.25 G .288(urrent w)-2.788 F .288(orking directory as)-.1 F
+(if it had been supplied as the ar)180 144 Q(gument to the)-.18 E F1(cd)
+2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .489(If the)144 160.8 R F1(pushd)2.989
+E F0 .489(command is successful, a)2.989 F F1(dirs)2.988 E F0 .488
+(is performed as well.)2.988 F .488(If the \214rst form is used,)5.488 F
+F1(pushd)2.988 E F0 1.039(returns 0 unless the cd to)144 172.8 R F2(dir)
+3.889 E F0 -.1(fa)4.269 G 3.539(ils. W).1 F 1.039(ith the second form,)
+-.4 F F1(pushd)3.54 E F0 1.04(returns 0 unless the directory)3.54 F .847
+(stack is empty)144 184.8 R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent\
+ directory stack element is speci\214ed, or the directory change to the)
+-.15 F(speci\214ed ne)144 196.8 Q 2.5(wc)-.25 G(urrent directory f)-2.5
+E(ails.)-.1 E F1(pwd)108 213.6 Q F0([)2.5 E F1(\255LP)A F0(])A .844
+(Print the absolute pathname of the current w)144 225.6 R .845
(orking directory)-.1 F 5.845(.T)-.65 G .845
(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
-612 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2 .181
-(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2(set)
-2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263(enabled. If)
-144 624 R(the)3.263 E F2<ad4c>3.263 E F0 .763
+237.6 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
+(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263
+(enabled. If)144 249.6 R(the)3.263 E F1<ad4c>3.263 E F0 .763
(option is used, the pathname printed may contain symbolic links.)3.263
F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 636 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 648 Q F2 -.18(re)108 664.8 S(ad)
-.18 E F0([)3.816 E F2(\255ers)A F0 3.816(][)C F2<ad61>-3.816 E F1(aname)
-3.816 E F0 3.816(][)C F2<ad64>-3.816 E F1(delim)3.816 E F0 3.816(][)C F2
-<ad69>-3.816 E F1(te)3.816 E(xt)-.2 E F0 3.816(][)C F2<ad6e>-3.816 E F1
-(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad4e>-3.817 E F1(nc)
-3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad70>-3.817 E F1(pr)3.817 E
-(ompt)-.45 E F0 3.817(][)C F2<ad74>-3.817 E F1(timeout)3.817 E F0 3.817
-(][)C F2<ad75>-3.817 E F1(fd)3.817 E F0(])A([)108 676.8 Q F1(name)A F0
-(...])2.5 E .516(One line is read from the standard input, or from the \
-\214le descriptor)144 688.8 R F1(fd)3.016 E F0 .516(supplied as an ar)
-3.016 F .517(gument to)-.18 F(the)144 700.8 Q F2<ad75>2.539 E F0 .039
+ reading the name of the current directory or an in)144 261.6 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 273.6 Q F1 -.18(re)108 290.4 S
+(ad).18 E F0([)3.816 E F1(\255ers)A F0 3.816(][)C F1<ad61>-3.816 E F2
+(aname)3.816 E F0 3.816(][)C F1<ad64>-3.816 E F2(delim)3.816 E F0 3.816
+(][)C F1<ad69>-3.816 E F2(te)3.816 E(xt)-.2 E F0 3.816(][)C F1<ad6e>
+-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad4e>-3.817 E
+F2(nc)3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad70>-3.817 E F2(pr)
+3.817 E(ompt)-.45 E F0 3.817(][)C F1<ad74>-3.817 E F2(timeout)3.817 E F0
+3.817(][)C F1<ad75>-3.817 E F2(fd)3.817 E F0(])A([)108 302.4 Q F2(name)A
+F0(...])2.5 E .516(One line is read from the standard input, or from th\
+e \214le descriptor)144 314.4 R F2(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .517(gument to)-.18 F(the)144 326.4 Q F1<ad75>2.539 E F0 .039
(option, and the \214rst w)2.539 F .038(ord is assigned to the \214rst)
--.1 F F1(name)2.538 E F0 2.538(,t).18 G .038(he second w)-2.538 F .038
-(ord to the second)-.1 F F1(name)2.538 E F0(,).18 E .42
-(and so on, with lefto)144 712.8 R -.15(ve)-.15 G 2.92(rw).15 G .42
+-.1 F F2(name)2.538 E F0 2.538(,t).18 G .038(he second w)-2.538 F .038
+(ord to the second)-.1 F F2(name)2.538 E F0(,).18 E .42
+(and so on, with lefto)144 338.4 R -.15(ve)-.15 G 2.92(rw).15 G .42
(ords and their interv)-3.02 F .42
-(ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 724.8 R .541(wer w)
+(ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 350.4 R .541(wer w)
-.25 F .541(ords read from the input stream than names, the remaining n\
-ames are assigned empty)-.1 F(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(60)185.955 E 0 Cg EP
-%%Page: 61 61
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.25(va)144 84 S 2.51(lues. The).25 F .011(characters in)2.511 F
-/F1 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
-(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
-(backslash character \()2.511 F/F2 10/Times-Bold@0 SF(\\)A F0 2.511(\)m)
-C(ay)-2.511 E 1.891(be used to remo)144 96 R 2.191 -.15(ve a)-.15 H
-2.191 -.15(ny s).15 H 1.891(pecial meaning for the ne).15 F 1.89
-(xt character read and for line continuation.)-.15 F
-(Options, if supplied, ha)144 108 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 120 Q/F3 10/Times-Italic@0 SF(aname)
-2.5 E F0 1.049(The w)180 132 R 1.049
+ames are assigned empty)-.1 F -.25(va)144 362.4 S 3.357(lues. The).25 F
+.857(characters in)3.357 F/F3 9/Times-Bold@0 SF(IFS)3.357 E F0 .857
+(are used to split the line into w)3.107 F .857
+(ords using the same rules the shell)-.1 F .754(uses for e)144 374.4 R
+.753(xpansion \(described abo)-.15 F 1.053 -.15(ve u)-.15 H(nder).15 E
+F1 -.75(Wo)3.253 G .753(rd Splitting).75 F F0 3.253(\). The)B .753
+(backslash character \()3.253 F F1(\\)A F0 3.253(\)m)C .753(ay be)-3.253
+F .075(used to remo)144 386.4 R .375 -.15(ve a)-.15 H .375 -.15(ny s).15
+H .075(pecial meaning for the ne).15 F .076
+(xt character read and for line continuation.)-.15 F(Options,)5.076 E
+(if supplied, ha)144 398.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 410.4 Q F2(aname)2.5 E F0 1.05(The w)
+180 422.4 R 1.049
(ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F3(aname)3.55 E F0 3.55(,s).18 G 1.05(tarting at 0.)-3.55 F F3
-(aname)180.33 144 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5 -.25
-(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F3(name)2.5 E F0(ar)2.5
-E(guments are ignored.)-.18 E F2<ad64>144 156 Q F3(delim)2.5 E F0
-(The \214rst character of)180 168 Q F3(delim)2.5 E F0
+-.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
+F2(aname)180.33 434.4 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 446.4 Q F2(delim)2.5 E
+F0(The \214rst character of)180 458.4 Q F2(delim)2.5 E F0
(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F2<ad65>144 180 Q F0 .373
-(If the standard input is coming from a terminal,)25.86 F F2 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F1(READLINE)2.872 E F0(abo)2.622 E
--.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G(sed)-2.872 E .218
-(to obtain the line.)180 192 R .218(Readline uses the current \(or def)
-5.218 F .218(ault, if line editing w)-.1 F .218(as not pre)-.1 F
-(viously)-.25 E(acti)180 204 Q -.15(ve)-.25 G 2.5(\)e).15 G
-(diting settings.)-2.5 E F2<ad69>144 216 Q F3(te)2.5 E(xt)-.2 E F0(If)
-10.78 E F2 -.18(re)2.716 G(adline).18 E F0 .216
-(is being used to read the line,)2.716 F F3(te)2.716 E(xt)-.2 E F0 .216
-(is placed into the editing b)2.716 F(uf)-.2 E .215(fer before edit-)
--.25 F(ing be)180 228 Q(gins.)-.15 E F2<ad6e>144 240 Q F3(nc)2.5 E(har)
--.15 E(s)-.1 E F2 -.18(re)180 252 S(ad).18 E F0 1.394
-(returns after reading)3.894 F F3(nc)3.894 E(har)-.15 E(s)-.1 E F0 1.395
-(characters rather than w)3.894 F 1.395(aiting for a complete line of)
--.1 F(input, b)180 264 Q(ut honor a delimiter if fe)-.2 E(wer than)-.25
-E F3(nc)2.5 E(har)-.15 E(s)-.1 E F0
-(characters are read before the delimiter)2.5 E(.)-.55 E F2<ad4e>144 276
-Q F3(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 288 S(ad).18 E F0 1.269
-(returns after reading e)3.77 F(xactly)-.15 E F3(nc)3.769 E(har)-.15 E
-(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.269
-(aiting for a complete)-.1 F .274
-(line of input, unless EOF is encountered or)180 300 R F2 -.18(re)2.775
-G(ad).18 E F0 .275(times out.)2.775 F .275(Delimiter characters encoun-)
-5.275 F 1.003
-(tered in the input are not treated specially and do not cause)180 312 R
-F2 -.18(re)3.502 G(ad).18 E F0 1.002(to return until)3.502 F F3(nc)3.502
-E(har)-.15 E(s)-.1 E F0(characters are read.)180 324 Q F2<ad70>144 336 Q
-F3(pr)2.5 E(ompt)-.45 E F0(Display)180 348 Q F3(pr)3.66 E(ompt)-.45 E F0
-1.161(on standard error)3.66 F 3.661(,w)-.4 G 1.161
+F1<ad65>144 470.4 Q F0 .372
+(If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
+-.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+(to obtain the line.)180 482.4 R .218
+(Readline uses the current \(or def)5.218 F .218
+(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
+(acti)180 494.4 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
+F1<ad69>144 506.4 Q F2(te)2.5 E(xt)-.2 E F0(If)10.78 E F1 -.18(re)2.715
+G(adline).18 E F0 .216(is being used to read the line,)2.715 F F2(te)
+2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
+.216(fer before edit-)-.25 F(ing be)180 518.4 Q(gins.)-.15 E F1<ad6e>144
+530.4 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 542.4 S(ad).18 E
+F0 1.395(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E
+F0 1.395(characters rather than w)3.895 F 1.394
+(aiting for a complete line of)-.1 F(input, b)180 554.4 Q
+(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15 E
+(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1
+<ad4e>144 566.4 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 578.4 S
+(ad).18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)
+3.769 E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F
+1.27(aiting for a complete)-.1 F .275
+(line of input, unless EOF is encountered or)180 590.4 R F1 -.18(re)
+2.775 G(ad).18 E F0 .274(times out.)2.774 F .274
+(Delimiter characters encoun-)5.274 F 1.002
+(tered in the input are not treated specially and do not cause)180 602.4
+R F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)
+3.503 E(har)-.15 E(s)-.1 E F0(characters are read.)180 614.4 Q F1<ad70>
+144 626.4 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)180 638.4 Q F2(pr)3.661 E
+(ompt)-.45 E F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161
(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
--.25 F(an)180 360 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
-(prompt is displayed only if input is coming from a terminal.)2.5 E F2
-<ad72>144 372 Q F0 .544(Backslash does not act as an escape character)
-25.86 F 5.543(.T)-.55 G .543(he backslash is considered to be part of)
--5.543 F(the line.)180 384 Q(In particular)5 E 2.5(,ab)-.4 G
+-.25 F(an)180 650.4 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+(prompt is displayed only if input is coming from a terminal.)2.5 E F1
+<ad72>144 662.4 Q F0 .543(Backslash does not act as an escape character)
+25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of)
+-5.543 F(the line.)180 674.4 Q(In particular)5 E 2.5(,ab)-.4 G
(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
--.25 E F2<ad73>144 396 Q F0(Silent mode.)26.41 E
-(If input is coming from a terminal, characters are not echoed.)5 E F2
-<ad74>144 408 Q F3(timeout)2.5 E F0(Cause)180 420 Q F2 -.18(re)3.548 G
-(ad).18 E F0 1.048(to time out and return f)3.548 F 1.048
-(ailure if a complete line of input is not read within)-.1 F F3(timeout)
-180 432 Q F0(seconds.)3.497 E F3(timeout)5.997 E F0 .997
-(may be a decimal number with a fractional portion follo)3.497 F(wing)
--.25 E .576(the decimal point.)180 444 R .576(This option is only ef)
-5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F2 -.18(re)3.076 G
-(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .142
-(pipe, or other special \214le; it has no ef)180 456 R .142
-(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.141 E
-F3(timeout)2.641 E F0 .141(is 0,)2.641 F F2 -.18(re)180 468 S(ad).18 E
-F0 .113(returns success if input is a)2.613 F -.25(va)-.2 G .113
-(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .114
-(ailure otherwise.)-2.713 F(The e)180 480 Q
-(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
-E F2<ad75>144 492 Q F3(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F3(fd)2.5 E F0(.)A .192(If no)144 508.8 R F3(names)3.052 E F0
-.192(are supplied, the line read is assigned to the v)2.962 F(ariable)
--.25 E F1(REPL)2.691 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .191
-(The return code is zero,)4.691 F 1.343
-(unless end-of-\214le is encountered,)144 520.8 R F2 -.18(re)3.843 G(ad)
+-.25 E F1<ad73>144 686.4 Q F0(Silent mode.)26.41 E
+(If input is coming from a terminal, characters are not echoed.)5 E F1
+<ad74>144 698.4 Q F2(timeout)2.5 E F0(Cause)180 710.4 Q F1 -.18(re)2.929
+G(ad).18 E F0 .428(to time out and return f)2.929 F .428
+(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
+(ber of characters\) is not read within)180 722.4 R F2(timeout)3.061 E
+F0(seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number)
+3.061 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(63)190.95 E 0 Cg
+EP
+%%Page: 64 64
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E(with a fractional portion follo)180 84 Q(wing the decimal point.)
+-.25 E(This option is only ef)5 E(fecti)-.25 E .3 -.15(ve i)-.25 H(f).15
+E/F1 10/Times-Bold@0 SF -.18(re)2.5 G(ad).18 E F0 .506(is reading input\
+ from a terminal, pipe, or other special \214le; it has no ef)180 96 R
+.506(fect when reading)-.25 F .59(from re)180 108 R .59(gular \214les.)
+-.15 F(If)5.59 E F1 -.18(re)3.09 G(ad).18 E F0 .589(times out,)3.09 F F1
+-.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2 G 3.089(sa).15 G .889
+-.15(ny p)-3.089 H .589(artial input read into the speci\214ed).15 F
+-.25(va)180 120 S(riable).25 E/F2 10/Times-Italic@0 SF(name)2.77 E F0
+5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 .27(is 0,)2.77 F F1 -.18(re)
+2.77 G(ad).18 E F0 .27(returns immediately)2.77 F 2.77(,w)-.65 G .27
+(ithout trying to read an)-2.77 F 2.77(yd)-.15 G(ata.)-2.77 E 1.12
+(The e)180 132 R 1.12(xit status is 0 if input is a)-.15 F -.25(va)-.2 G
+1.12(ilable on the speci\214ed \214le descriptor).25 F 3.62(,n)-.4 G
+1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180 144 R -.15(ex)2.5 G
+(it status is greater than 128 if the timeout is e).15 E(xceeded.)-.15 E
+F1<ad75>144 156 Q F2(fd)2.5 E F0(Read input from \214le descriptor)14.46
+E F2(fd)2.5 E F0(.)A .191(If no)144 172.8 R F2(names)3.051 E F0 .191
+(are supplied, the line read is assigned to the v)2.961 F(ariable)-.25 E
+/F3 9/Times-Bold@0 SF(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A
+F0 .192(The return code is zero,)4.692 F 1.344
+(unless end-of-\214le is encountered,)144 184.8 R F1 -.18(re)3.844 G(ad)
.18 E F0 1.343
-(times out \(in which case the return code is greater than)3.843 F
-(128\), or an in)144 532.8 Q -.25(va)-.4 G
-(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F2
-<ad75>2.5 E F0(.)A F2 -.18(re)108 549.6 S(adonly).18 E F0([)2.5 E F2
-(\255aAf)A F0 2.5(][)C F2<ad70>-2.5 E F0 2.5(][)C F3(name)-2.5 E F0([=)A
-F3(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 561.6 R -.15(ve)
--.25 G(n).15 E F3(names)3.27 E F0 .77(are mark)3.27 F .77
-(ed readonly; the v)-.1 F .77(alues of these)-.25 F F3(names)3.63 E F0
+(times out \(in which case the return code is greater than)3.844 F .871
+(128\), a v)144 196.8 R .871
+(ariable assignment error \(such as assigning to a readonly v)-.25 F
+.872(ariable\) occurs, or an in)-.25 F -.25(va)-.4 G(lid).25 E
+(\214le descriptor is supplied as the ar)144 208.8 Q(gument to)-.18 E F1
+<ad75>2.5 E F0(.)A F1 -.18(re)108 225.6 S(adonly).18 E F0([)2.5 E F1
+(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A
+F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 237.6 R -.15(ve)
+-.25 G(n).15 E F2(names)3.27 E F0 .77(are mark)3.27 F .77
+(ed readonly; the v)-.1 F .77(alues of these)-.25 F F2(names)3.63 E F0
.77(may not be changed by subse-)3.54 F 1.096(quent assignment.)144
-573.6 R 1.096(If the)6.096 F F2<ad66>3.596 E F0 1.097
-(option is supplied, the functions corresponding to the)3.596 F F3
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 585.6 Q 3.334(ed. The)
--.1 F F2<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
+249.6 R 1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
+(option is supplied, the functions corresponding to the)3.596 F F2
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 261.6 Q 3.334(ed. The)
+-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
--3.334 F F2<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .776(ables to associati)144 597.6 R 1.076 -.15(ve a)-.25 H 3.276
-(rrays. If).15 F .777(both options are supplied,)3.276 F F2<ad41>3.277 E
-F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F3(name)
-3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 609.6 R -.15(ve)
--.25 G .521(n, or if the).15 F F2<ad70>3.021 E F0 .521
+-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
+-.25 E .776(ables to associati)144 273.6 R 1.076 -.15(ve a)-.25 H 3.276
+(rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
+F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
+3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 285.6 R -.15(ve)
+-.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
(option is supplied, a list of all readonly names is printed.)3.021 F
.521(The other)5.521 F .295(options may be used to restrict the output \
-to a subset of the set of readonly names.)144 621.6 R(The)5.296 E F2
+to a subset of the set of readonly names.)144 297.6 R(The)5.296 E F1
<ad70>2.796 E F0(option)2.796 E .786
(causes output to be displayed in a format that may be reused as input.)
-144 633.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
-645.6 Q .717(wed by =)-.25 F F3(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
--3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F3(wor)
+144 309.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
+321.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
+-3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
-5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the)
-144 657.6 R F3(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
--.25 F .26(ariable name, or)-.25 F F2<ad66>2.76 E F0 .26
-(is supplied with a)2.76 F F3(name)144.36 669.6 Q F0
-(that is not a function.)2.68 E F2 -.18(re)108 686.4 S(tur).18 E(n)-.15
-E F0([)2.5 E F3(n)A F0(])A .586(Causes a function to e)144 698.4 R .587
-(xit with the return v)-.15 F .587(alue speci\214ed by)-.25 F F3(n)3.087
-E F0 5.587(.I).24 G(f)-5.587 E F3(n)3.447 E F0 .587
-(is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 710.4 R -.15(xe)-.15 G 1.335
-(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
-1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
-144 722.4 S .794(cution of a script by the).15 F F2(.)3.294 E F0(\()
-5.794 E F2(sour)A(ce)-.18 E F0 3.294(\)c)C .794
-(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .795
-(cuting that script).15 F(GNU Bash-4.2)72 768 Q(2010 December 28)135.965
-E(61)185.955 E 0 Cg EP
-%%Page: 62 62
+144 333.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
+-.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26
+(is supplied with a)2.76 F F2(name)144.36 345.6 Q F0
+(that is not a function.)2.68 E F1 -.18(re)108 362.4 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 374.4 R
+-.15(xe)-.15 G .02(cuting and return the v).15 F .021
+(alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F
+5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .469
+(the return status is that of the last command e)144 386.4 R -.15(xe)
+-.15 G .469(cuted in the function body).15 F 5.469(.I)-.65 G(f)-5.469 E
+F1 -.18(re)2.969 G(tur).18 E(n)-.15 E F0 .468(is used out-)2.969 F .466
+(side a function, b)144 398.4 R .466(ut during e)-.2 F -.15(xe)-.15 G
+.467(cution of a script by the).15 F F1(.)2.967 E F0(\()5.467 E F1(sour)
+A(ce)-.18 E F0 2.967(\)c)C .467(ommand, it causes the shell to)-2.967 F
+.088(stop e)144 410.4 R -.15(xe)-.15 G .087
+(cuting that script and return either).15 F F2(n)2.947 E F0 .087
+(or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe)
+-.15 G .087(cuted within).15 F .613(the script as the e)144 422.4 R .613
+(xit status of the script.)-.15 F(If)5.613 E F2(n)3.113 E F0 .613
+(is supplied, the return v)3.113 F .613
+(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 434.4 R
+.011(return status is non-zero if)2.511 F F1 -.18(re)2.511 G(tur).18 E
+(n)-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01
+(gument, or is used outside)-.18 F 2.909(af)144 446.4 S .409
+(unction and not during e)-2.909 F -.15(xe)-.15 G .41
+(cution of a script by).15 F F1(.)2.91 E F0(or)3.743 E F1(sour)2.91 E
+(ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41
+(ommand associated with the).15 F F1(RETURN)144 458.4 Q F0(trap is e)2.5
+E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G
+(cution resumes after the function or script.).15 E F1(set)108 475.2 Q
+F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E
+F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
+F1(set)108 487.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
+(+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0
+(...])2.5 E -.4(Wi)144 499.2 S .836(thout options, the name and v).4 F
+.835(alue of each shell v)-.25 F .835
+(ariable are displayed in a format that can be)-.25 F .784
+(reused as input for setting or resetting the currently-set v)144 511.2
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.912(reset. In)144 523.2 R F2(posix)2.912 E F0
+.412(mode, only shell v)2.912 F .412(ariables are listed.)-.25 F .412
+(The output is sorted according to the current)5.412 F 3.53
+(locale. When)144 535.2 R 1.031(options are speci\214ed, the)3.53 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
+-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
+1.624(after option processing are treated as v)144 547.2 R 1.623
+(alues for the positional parameters and are assigned, in)-.25 F(order)
+144 559.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 571.2 Q
+F0 .539(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 583.2 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 595.2 Q F0 .132
+(Report the status of terminated background jobs immediately)28.74 F
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 607.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 619.2 Q F0
+.087(Exit immediately if a)29.86 F F2(pipeline)2.587 E F0 .087
+(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 631.2 Q
+F2 1.294(compound command)3.794 F F0(\(see)3.794 E F3 1.294
+(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e).15 F
+1.293(xits with a non-zero status.)-.15 F .079(The shell does not e)184
+643.2 R .079(xit if the command that f)-.15 F .08
+(ails is part of the command list immediately)-.1 F(follo)184 655.2 Q
+1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
+4.154 E(ed)-.15 E -.1(wo)184 667.2 S .581(rds, part of an).1 F 3.081(yc)
+-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
+(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 679.2 R
+F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
+-3.418 H .918(ommand in a pipeline b).15 F .917
+(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
+-.25(va)184 691.2 S .66(lue is being in).25 F -.15(ve)-.4 G .66
+(rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
+(ompound command other than a subshell returns a)-3.161 F 1.113
+(non-zero status because a command f)184 703.2 R 1.112(ailed while)-.1 F
+F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
+(eing ignored, the shell does)-3.612 F .177(not e)184 715.2 R 2.677
+(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
+(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
+(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
+(option applies to)2.678 F 3.325(the shell en)184 727.2 R 3.325
+(vironment and each subshell en)-.4 F 3.325(vironment separately \(see)
+-.4 F F3(COMMAND)5.824 E F0(GNU Bash 4.3)72 768 Q(2014 February 2)141.79
+E(64)190.95 E 0 Cg EP
+%%Page: 65 65
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .246(and return either)144 84 R/F1 10/Times-Italic@0 SF(n)3.106 E
-F0 .246(or the e)2.986 F .246(xit status of the last command e)-.15 F
--.15(xe)-.15 G .246(cuted within the script as the e).15 F .245
-(xit sta-)-.15 F .081(tus of the script.)144 96 R .082
-(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
-(cution of a script by).15 F/F2 10/Times-Bold@0 SF(.)2.582 E F0 2.582
-(,t).833 G .082(he return sta-)-2.582 F 2.306(tus is f)144 108 R 4.806
-(alse. An)-.1 F 4.806(yc)-.15 G 2.305(ommand associated with the)-4.806
-F F2(RETURN)4.805 E F0 2.305(trap is e)4.805 F -.15(xe)-.15 G 2.305
-(cuted before e).15 F -.15(xe)-.15 G(cution).15 E
-(resumes after the function or script.)144 120 Q F2(set)108 136.8 Q F0
-([)2.5 E F2(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F2<ad6f>-2.5 E F1
-(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E(g)-.37 E F0(...])2.5 E F2
-(set)108 148.8 Q F0([)2.5 E F2(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F2(+o)
--2.5 E F1(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E(g)-.37 E F0
-(...])2.5 E -.4(Wi)144 160.8 S .835(thout options, the name and v).4 F
-.835(alue of each shell v)-.25 F .836
-(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 172.8
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 184.8 R F1 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
-(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 196.8 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 208.8 R 1.624
-(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 220.8 Q 2.5(,t)-.4 G(o)-2.5 E F2($1)2.5 E F0(,)A F2($2)2.5 E F0(,)A
-F2 2.5(... $)2.5 F F1(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
--.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad61>144 232.8 Q
-F0 .54(Automatically mark v)29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 244.8 Q
-(vironment of subsequent commands.)-.4 E F2<ad62>144 256.8 Q F0 .131
-(Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 268.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F2<ad65>144 280.8 Q F0
-.511(Exit immediately if a)29.86 F F1(pipeline)3.011 E F0 .511
-(\(which may consist of a single)3.011 F F1 .51(simple command)3.01 F F0
-3.01(\), a)B F1(sub-)3.01 E(shell)184 292.8 Q F0 .872
-(command enclosed in parentheses, or one of the commands e)3.372 F -.15
-(xe)-.15 G .872(cuted as part of a).15 F .399
-(command list enclosed by braces \(see)184 304.8 R/F3 9/Times-Bold@0 SF
-.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
-.399(xits with a non-zero)-3.049 F 3.968(status. The)184 316.8 R 1.468
-(shell does not e)3.968 F 1.468(xit if the command that f)-.15 F 1.468
-(ails is part of the command list)-.1 F .57(immediately follo)184 328.8
-R .57(wing a)-.25 F F2(while)3.07 E F0(or)3.07 E F2(until)3.07 E F0 -.1
-(ke)3.069 G(yw)-.05 E .569(ord, part of the test follo)-.1 F .569
-(wing the)-.25 F F2(if)3.069 E F0(or)3.069 E F2(elif)3.069 E F0(reserv)
-184 340.8 Q .909(ed w)-.15 F .909(ords, part of an)-.1 F 3.409(yc)-.15 G
-.909(ommand e)-3.409 F -.15(xe)-.15 G .909(cuted in a).15 F F2(&&)3.409
-E F0(or)3.409 E F2(||)3.41 E F0 .91(list e)3.41 F .91(xcept the command)
--.15 F(follo)184 352.8 Q .05(wing the \214nal)-.25 F F2(&&)2.55 E F0(or)
-2.55 E F2(||)2.55 E F0 2.55(,a)C .35 -.15(ny c)-2.55 H .049
-(ommand in a pipeline b).15 F .049(ut the last, or if the command')-.2 F
-(s)-.55 E .372(return v)184 364.8 R .372(alue is being in)-.25 F -.15
-(ve)-.4 G .372(rted with).15 F F2(!)2.872 E F0 5.372(.A)C .372(trap on)
--2.5 F F2(ERR)2.872 E F0 2.872(,i)C 2.873(fs)-2.872 G .373(et, is e)
--2.873 F -.15(xe)-.15 G .373(cuted before the shell).15 F -.15(ex)184
-376.8 S 2.897(its. This).15 F .397(option applies to the shell en)2.897
-F .396(vironment and each subshell en)-.4 F .396(vironment sepa-)-.4 F
-.19(rately \(see)184 388.8 R F3 .19(COMMAND EXECUTION ENVIR)2.69 F
-(ONMENT)-.27 E F0(abo)2.44 E -.15(ve)-.15 G .19
-(\), and may cause subshells).15 F(to e)184 400.8 Q(xit before e)-.15 E
--.15(xe)-.15 G(cuting all the commands in the subshell.).15 E F2<ad66>
-144 412.8 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F2<ad68>144
-424.8 Q F0 2.239(Remember the location of commands as the)28.74 F 4.738
-(ya)-.15 G 2.238(re look)-4.738 F 2.238(ed up for e)-.1 F -.15(xe)-.15 G
-4.738(cution. This).15 F(is)4.738 E(enabled by def)184 436.8 Q(ault.)-.1
-E F2<ad6b>144 448.8 Q F0 .513(All ar)28.74 F .514
+-.35 E/F1 9/Times-Bold@0 SF .106(EXECUTION ENVIR)184 84 R(ONMENT)-.27 E
+F0(abo)2.356 E -.15(ve)-.15 G .107(\), and may cause subshells to e).15
+F .107(xit before e)-.15 F -.15(xe)-.15 G(cuting).15 E
+(all the commands in the subshell.)184 96 Q 2.042
+(If a compound command or shell function e)184 114 R -.15(xe)-.15 G
+2.042(cutes in a conte).15 F 2.042(xt where)-.15 F/F2 10/Times-Bold@0 SF
+<ad65>4.542 E F0 2.042(is being)4.542 F 1.435
+(ignored, none of the commands e)184 126 R -.15(xe)-.15 G 1.436
+(cuted within the compound command or function).15 F .194
+(body will be af)184 138 R .194(fected by the)-.25 F F2<ad65>2.694 E F0
+.193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F2
+<ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure)
+-.1 E 3.39(status. If)184 150 R 3.39(ac)3.39 G .89
+(ompound command or shell function sets)-3.39 F F2<ad65>3.39 E F0 .89
+(while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E
+(where)184 162 Q F2<ad65>3.154 E F0 .654
+(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
+-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
+(or the command containing the function call completes.)184 174 Q F2
+<ad66>144 186 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F2<ad68>
+144 198 Q F0 2.238(Remember the location of commands as the)28.74 F
+4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)
+-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184 210 Q
+(ault.)-.1 E F2<ad6b>144 222 Q F0 .514(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
-F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 460.8 Q F2
-<ad6d>144 472.8 Q F0 .149(Monitor mode.)25.97 F .149
-(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
-.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .636
-(on systems that support it \(see)184 484.8 R F3 .636(JOB CONTR)3.136 F
-(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .637
-(processes run in a)3.136 F .642
-(separate process group and a line containing their e)184 496.8 R .641
-(xit status is printed upon their com-)-.15 F(pletion.)184 508.8 Q F2
-<ad6e>144 520.8 Q F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F
--.15(xe)-.15 G .652(cute them.).15 F .653
-(This may be used to check a shell script for)5.652 F(syntax errors.)184
-532.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F2<ad6f>144 544.8 Q F1(option\255name)2.5 E F0(The)184 556.8 Q F1
-(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F2
-(allexport)184 568.8 Q F0(Same as)224 580.8 Q F2<ad61>2.5 E F0(.)A F2
-(braceexpand)184 592.8 Q F0(Same as)224 604.8 Q F2<ad42>2.5 E F0(.)A F2
-(emacs)184 616.8 Q F0 .089
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 234 Q F2
+<ad6d>144 246 Q F0 .148(Monitor mode.)25.97 F .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
+(on systems that support it \(see)184 258 R F1 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
+(processes run in a separate)3.151 F .678(process group.)184 270 R .679
+(When a background job completes, the shell prints a line containing it\
+s)5.678 F -.15(ex)184 282 S(it status.).15 E F2<ad6e>144 294 Q F0 .653
+(Read commands b)28.74 F .653(ut do not e)-.2 F -.15(xe)-.15 G .653
+(cute them.).15 F .652(This may be used to check a shell script for)
+5.653 F(syntax errors.)184 306 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F2<ad6f>144 318 Q/F3 10/Times-Italic@0 SF
+(option\255name)2.5 E F0(The)184 330 Q F3(option\255name)2.5 E F0
+(can be one of the follo)2.5 E(wing:)-.25 E F2(allexport)184 342 Q F0
+(Same as)224 354 Q F2<ad61>2.5 E F0(.)A F2(braceexpand)184 366 Q F0
+(Same as)224 378 Q F2<ad42>2.5 E F0(.)A F2(emacs)184 390 Q F0 .089
(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 628.8 R -.15(ve)-.25 G 3.45(,u).15 G
-.95(nless the shell is started with the)-3.45 F F2(\255\255noediting)
-3.45 E F0 2.5(option. This)224 640.8 R(also af)2.5 E
-(fects the editing interf)-.25 E(ace used for)-.1 E F2 -.18(re)2.5 G
-(ad \255e).18 E F0(.)A F2(err)184 652.8 Q(exit)-.18 E F0(Same as)11.31 E
-F2<ad65>2.5 E F0(.)A F2(errtrace)184 664.8 Q F0(Same as)5.03 E F2<ad45>
-2.5 E F0(.)A F2(functrace)184 676.8 Q F0(Same as)224 688.8 Q F2<ad54>2.5
-E F0(.)A F2(hashall)184 700.8 Q F0(Same as)9.43 E F2<ad68>2.5 E F0(.)A
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(62)185.955 E 0 Cg EP
-%%Page: 63 63
+(when the shell is interacti)224 402 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F2(\255\255noediting)3.45 E
+F0 2.5(option. This)224 414 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F2 -.18(re)2.5 G(ad \255e).18 E F0(.)A F2(err)
+184 426 Q(exit)-.18 E F0(Same as)11.31 E F2<ad65>2.5 E F0(.)A F2
+(errtrace)184 438 Q F0(Same as)5.03 E F2<ad45>2.5 E F0(.)A F2(functrace)
+184 450 Q F0(Same as)224 462 Q F2<ad54>2.5 E F0(.)A F2(hashall)184 474 Q
+F0(Same as)9.43 E F2<ad68>2.5 E F0(.)A F2(histexpand)184 486 Q F0
+(Same as)224 498 Q F2<ad48>2.5 E F0(.)A F2(history)184 510 Q F0 .586
+(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
+(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F1(HIST)3.087 E
+(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is)
+5.087 F(on by def)224 522 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
+(hells.).15 E F2(ignor)184 534 Q(eeof)-.18 E F0 1.657(The ef)224 546 R
+1.657(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
+(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
+.15 E(\(see)224 558 Q F2(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
+(ve)-.15 G(\).).15 E F2 -.1(ke)184 570 S(yw).1 E(ord)-.1 E F0(Same as)
+224 582 Q F2<ad6b>2.5 E F0(.)A F2(monitor)184 594 Q F0(Same as)5.56 E F2
+<ad6d>2.5 E F0(.)A F2(noclob)184 606 Q(ber)-.1 E F0(Same as)224 618 Q F2
+<ad43>2.5 E F0(.)A F2(noexec)184 630 Q F0(Same as)11.12 E F2<ad6e>2.5 E
+F0(.)A F2(noglob)184 642 Q F0(Same as)11.1 E F2<ad66>2.5 E F0(.)A F2
+(nolog)184 654 Q F0(Currently ignored.)16.66 E F2(notify)184 666 Q F0
+(Same as)15 E F2<ad62>2.5 E F0(.)A F2(nounset)184 678 Q F0(Same as)6.66
+E F2<ad75>2.5 E F0(.)A F2(onecmd)184 690 Q F0(Same as)6.67 E F2<ad74>2.5
+E F0(.)A F2(ph)184 702 Q(ysical)-.15 E F0(Same as)5.14 E F2<ad50>2.5 E
+F0(.)A F2(pipefail)184 714 Q F0 1.029(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 726 R
+1.136
+(xit with a non-zero status, or zero if all commands in the pipeline)
+-.15 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(65)190.95 E 0 Cg
+EP
+%%Page: 66 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(histexpand)184 84 Q F0(Same as)224 96 Q F1
-<ad48>2.5 E F0(.)A F1(history)184 108 Q F0 .587(Enable command history)
-10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887
--.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E
-(Y)-.315 E/F3 9/Times-Roman@0 SF(.)A F0 .587(This option is)5.087 F
-(on by def)224 120 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(ignor)184 132 Q(eeof)-.18 E F0 1.656(The ef)224 144 R 1.656
-(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
-4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-156 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F1 -.1(ke)184 168 S(yw).1 E(ord)-.1 E F0(Same as)224 180 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 192 Q F0(Same as)5.56 E F1<ad6d>2.5 E
-F0(.)A F1(noclob)184 204 Q(ber)-.1 E F0(Same as)224 216 Q F1<ad43>2.5 E
-F0(.)A F1(noexec)184 228 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
-(noglob)184 240 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
-252 Q F0(Currently ignored.)16.66 E F1(notify)184 264 Q F0(Same as)15 E
-F1<ad62>2.5 E F0(.)A F1(nounset)184 276 Q F0(Same as)6.66 E F1<ad75>2.5
-E F0(.)A F1(onecmd)184 288 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
-(ph)184 300 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
-(pipefail)184 312 Q F0 1.03(If set, the return v)7.77 F 1.029
-(alue of a pipeline is the v)-.25 F 1.029
-(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 324 R
-1.136
-(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 336 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 348 Q F0
-2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
-2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 360 Q
-/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 372 Q(vileged)
--.1 E F0(Same as)224 384 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 396 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 408 Q F0
-1.465(Use a vi-style command line editing interf)32.22 F 3.966
-(ace. This)-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F
-(interf)224 420 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 432 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-450 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F5
-(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
-(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
-462 Q F0 1.071(is supplied with no)3.571 F F5(option\255name)3.571 E F0
-3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
-(commands to recreate the current)3.572 F
-(option settings is displayed on the standard output.)184 474 Q F1<ad70>
-144 486 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F5(privile)4.822 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
-F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.071
-(\214les are not pro-)3.322 F 1.5
-(cessed, shell functions are not inherited from the en)184 498 R 1.501
-(vironment, and the)-.4 F F2(SHELLOPTS)4.001 E F3(,)A F2 -.27(BA)184 510
-S(SHOPTS).27 E F3(,)A F2(CDP)2.775 E -.855(AT)-.666 G(H).855 E F3(,)A F0
-(and)2.775 E F2(GLOBIGNORE)3.025 E F0 -.25(va)2.775 G .524
-(riables, if the).25 F 3.024(ya)-.15 G .524(ppear in the en)-3.024 F
-(vironment,)-.4 E .379(are ignored.)184 522 R .379
-(If the shell is started with the ef)5.379 F(fecti)-.25 E .679 -.15
-(ve u)-.25 H .38(ser \(group\) id not equal to the real).15 F .462
-(user \(group\) id, and the)184 534 R F1<ad70>2.961 E F0 .461
-(option is not supplied, these actions are tak)2.961 F .461
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 546 Q .694 -.15(ve u)-.25 H .394
+-.35 E -.15(ex)224 84 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E/F1 10/Times-Bold@0 SF
+(posix)184 96 Q F0 2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1
+(bash)4.591 E F0 2.091(where the def)4.591 F 2.091(ault operation dif)
+-.1 F 2.091(fers from the)-.25 F 1.212
+(POSIX standard to match the standard \()224 108 R/F2 10/Times-Italic@0
+SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9/Times-Bold@0 SF 1.212
+(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E 2.306
+(for a reference to a document that details ho)224 120 R 4.807(wp)-.25 G
+2.307(osix mode af)-4.807 F 2.307(fects bash')-.25 F(s)-.55 E(beha)224
+132 Q(vior)-.2 E(.)-.55 E F1(pri)184 144 Q(vileged)-.1 E F0(Same as)224
+156 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 168 S(rbose).1 E F0(Same as)
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 180 Q F0 1.466
+(Use a vi-style command line editing interf)32.22 F 3.965(ace. This)-.1
+F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224 192 Q
+(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(xtrace)184
+204 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 222 Q F1<ad6f>3.052
+E F0 .552(is supplied with no)3.052 F F2(option\255name)3.053 E F0 3.053
+(,t)C .553(he v)-3.053 F .553(alues of the current options are printed.)
+-.25 F(If)5.553 E F1(+o)184 234 Q F0 1.072(is supplied with no)3.572 F
+F2(option\255name)3.572 E F0 3.572(,a)C 1.071(series of)-.001 F F1(set)
+3.571 E F0 1.071(commands to recreate the current)3.571 F
+(option settings is displayed on the standard output.)184 246 Q F1<ad70>
+144 258 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
+F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 270 R 1.5
+(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
+-.27(BA)184 282 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
+.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
+.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
+(vironment,)-.4 E .38(are ignored.)184 294 R .38
+(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
+-.25 H .379(ser \(group\) id not equal to the real).15 F .461
+(user \(group\) id, and the)184 306 R F1<ad70>2.961 E F0 .461
+(option is not supplied, these actions are tak)2.961 F .462
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 318 Q .695 -.15(ve u)-.25 H .395
(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
-2.895 E F0 .395(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .387(user id is not reset.)184 558 R -.45(Tu)5.387 G
-.387(rning this option of).45 F 2.886(fc)-.25 G .386(auses the ef)-2.886
-F(fecti)-.25 E .686 -.15(ve u)-.25 H .386(ser and group ids to be).15 F
-(set to the real user and group ids.)184 570 Q F1<ad74>144 582 Q F0
+2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
+E -.15(ve)-.25 G .386(user id is not reset.)184 330 R -.45(Tu)5.386 G
+.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
+F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
+(set to the real user and group ids.)184 342 Q F1<ad74>144 354 Q F0
(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15
-E F1<ad75>144 594 Q F0 -.35(Tr)28.74 G .043(eat unset v).35 F .044(aria\
+E F1<ad75>144 366 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\
bles and parameters other than the special parameters "@" and "*" as an)
--.25 F .183(error when performing parameter e)184 606 R 2.683
-(xpansion. If)-.15 F -.15(ex)2.683 G .182
+-.25 F .182(error when performing parameter e)184 378 R 2.682
+(xpansion. If)-.15 F -.15(ex)2.682 G .183
(pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 618 R 3.246(,t)-.4 G .746
+(able or parameter)184 390 R 3.246(,t)-.4 G .746
(he shell prints an error message, and, if not interacti)-3.246 F -.15
(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-630 Q F1<ad76>144 642 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 654 Q F0 .315(After e)29.3 F .315
-(xpanding each)-.15 F F5 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
+402 Q F1<ad76>144 414 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 426 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 666 R F1
+F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 438 R F1
-.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
-(xpanded v)-.15 F 1.236(alue of)-.25 F F2(PS4)3.736 E F3(,)A F0(follo)
-3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 678 Q
+(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 450 Q
(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 690 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+<ad42>144 462 Q F0 2.578(The shell performs brace e)27.63 F 2.578
(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 702 Q
-(ault.)-.1 E F1<ad43>144 714 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
-F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 474 Q
+(ault.)-.1 E F1<ad43>144 486 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
+F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
-2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
-5.436(tors. This)184 726 R 2.936(may be o)5.436 F -.15(ve)-.15 G 2.936
-(rridden when creating output \214les by using the redirection).15 F
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(63)185.955 E 0 Cg EP
-%%Page: 64 64
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(operator)184 84 Q/F1 10/Times-Bold@0 SF(>|)2.5 E F0(instead of)
-2.5 E F1(>)2.5 E F0(.)A F1<ad45>144 96 Q F0 .103(If set, an)27.63 F
-2.603(yt)-.15 G .103(rap on)-2.603 F F1(ERR)2.603 E F0 .104
-(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 108 R -.15(xe)-.15 G .839(cuted in a subshell en).15
-F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 120 Q F1
-<ad48>144 132 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
-(style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 144 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 156 Q F0 1.165
-(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
-(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
-(that change the current w)184 168 R 2.822(orking directory)-.1 F 7.822
-(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
-(ysical directory structure)-.05 F 2.686(instead. By)184 180 R(def)2.686
+2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
+3.053(tors. This)184 498 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+(rridden when creating output \214les by using the redirection opera-)
+.15 F(tor)184 510 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 522 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
+-2.604 F F1(ERR)2.604 E F0 .103
+(is inherited by shell functions, command substitutions, and com-)2.604
+F .838(mands e)184 534 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
+(trap is normally not inherited in)3.339 F(such cases.)184 546 Q F1
+<ad48>144 558 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
+(style history substitution.)5.532 F .531(This option is on by def)5.532
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 570 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 582 Q F0 .959
+(If set, the shell does not resolv)28.19 F 3.459(es)-.15 G .959
+(ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
+(cuting commands such as).15 F F1(cd)3.46 E F0 2.822
+(that change the current w)184 594 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
+(ysical directory structure)-.05 F 2.685(instead. By)184 606 R(def)2.685
E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 192 Q(.)-.65 E F1<ad54>144
-204 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 618 Q(.)-.65 E F1<ad54>144
+630 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 216 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 642 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 228 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 240 Q
-F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 654 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 666 Q
+F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.401 E(the positional parameters are set to the)184 252 Q
-/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5
-(ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>
-2.5 E F0(.)A F1<ad>144 264 Q F0 1.945
-(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g)
--.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944
-(ssigned to the positional)-4.444 F 3.445(parameters. The)184 276 R F1
-<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
-(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
-3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
-(parameters remain unchanged.)184 288 Q .425(The options are of)144
-304.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(Otherwise,)5.4 E(the positional parameters are set to the)184 678 Q F2
+(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
+(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
+690 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
+(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
+1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 702 R
+F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
+(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
+3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
+(parameters remain unchanged.)184 714 Q .425(The options are of)144
+730.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .177
-(to be turned of)144 316.8 R 2.677(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F(GNU Bash 4.3)72
+768 Q(2014 February 2)141.79 E(66)190.95 E 0 Cg EP
+%%Page: 67 67
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E .178(to be turned of)144 84 R 2.678(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
-(current set of options may be found in)144 328.8 R F1<24ad>2.566 E F0
-5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
-(is encountered.)144 340.8 Q F1(shift)108 357.6 Q F0([)2.5 E F2(n)A F0
-(])A .428(The positional parameters from)144 369.6 R F2(n)2.928 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
-.429(rameters represented by the num-).15 F(bers)144 381.6 Q F1($#)2.583
-E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
-(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
--.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
-.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
-(is 0, no parameters are changed.)144 393.6 R(If)5.06 E F2(n)2.92 E F0
-.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
-(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 405.6 R
-.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
-.143(is greater than)2.883 F F1($#)2.643 E F0
-(or less than zero; otherwise 0.)144 417.6 Q F1(shopt)108 434.4 Q F0([)
+-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+(current set of options may be found in)144 96 R/F1 10/Times-Bold@0 SF
+<24ad>2.566 E F0 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)
+-.1 G .066(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(is encountered.)144 108 Q F1(shift)108 124.8 Q F0([)2.5 E/F2 10
+/Times-Italic@0 SF(n)A F0(])A .429(The positional parameters from)144
+136.8 R F2(n)2.929 E F0 .429(+1 ... are renamed to)B F1 .429($1 ....)
+2.929 F F0 -.15(Pa)5.428 G .428(rameters represented by the num-).15 F
+(bers)144 148.8 Q F1($#)2.582 E F0(do)2.582 E .082(wn to)-.25 F F1($#)
+2.582 E F0<ad>A F2(n)A F0 .082(+1 are unset.)B F2(n)5.442 E F0 .082
+(must be a non-ne)2.822 F -.05(ga)-.15 G(ti).05 E .383 -.15(ve n)-.25 H
+.083(umber less than or equal to).15 F F1($#)2.583 E F0 5.083(.I)C(f)
+-5.083 E F2(n)2.943 E F0 .06(is 0, no parameters are changed.)144 160.8
+R(If)5.06 E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06
+(n, it is assumed to be 1.).15 F(If)5.06 E F2(n)2.92 E F0 .06
+(is greater than)2.8 F F1($#)2.56 E F0 2.56(,t)C(he)-2.56 E .143
+(positional parameters are not changed.)144 172.8 R .144
+(The return status is greater than zero if)5.143 F F2(n)3.004 E F0 .144
+(is greater than)2.884 F F1($#)2.644 E F0
+(or less than zero; otherwise 0.)144 184.8 Q F1(shopt)108 201.6 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 446.4 S .222(ggle the v).8 F .222
-(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
-(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
-<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 458.4 R(The)
-144 470.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.827 F .328(Other options)
-5.328 F(ha)144 482.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 494.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 506.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 518.4 Q F0 .003(Suppresses normal out\
-put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 530.4 R .255
-(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
-(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
-(all)180 542.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 554.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
-(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .128
-(If either)144 571.2 R F1<ad73>2.628 E F0(or)2.628 E F1<ad75>2.628 E F0
-.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.023
-(are set or unset, respecti)144 583.2 R -.15(ve)-.25 G(ly).15 E 6.023
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.023 F F1(shopt)3.524 E F0
-1.024(options are disabled \(unset\) by)3.524 F(def)144 595.2 Q(ault.)
+-2.5 E F0(...])2.5 E -.8(To)144 213.6 S .64(ggle the v).8 F .639
+(alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
+5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
+(listed belo)144 225.6 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
+(option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
+F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
+(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 237.6 R .826
+(ith no options, or with the)-.4 F F1<ad70>3.326 E F0 .825
+(option, a list of all settable options is displayed, with an)3.326 F
+.945(indication of whether or not each is set.)144 249.6 R(The)5.945 E
+F1<ad70>3.445 E F0 .945(option causes output to be displayed in a form)
+3.445 F(that may be reused as input.)144 261.6 Q(Other options ha)5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad73>144 273.6 Q
+F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1<ad75>144 285.6
+Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A F1<ad71>144
+297.6 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
+tus indicates whether the)24.74 F F2(optname)2.503 E F0(is)2.503 E .255
+(set or unset.)180 309.6 R .255(If multiple)5.255 F F2(optname)2.755 E
+F0(ar)2.755 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
+(ith)-2.756 E F1<ad71>2.756 E F0 2.756(,t)C .256
+(he return status is zero if)-2.756 F(all)180 321.6 Q F2(optnames)2.5 E
+F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 333.6 Q F0
+(Restricts the v)25.3 E(alues of)-.25 E F2(optname)2.5 E F0
+(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0(option to the)2.5
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .625(If either)144 350.4 R F1
+<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
+3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124
+E F0(sho)3.124 E .624(ws only those options which are)-.25 F 2.233
+(set or unset, respecti)144 362.4 R -.15(ve)-.25 G(ly).15 E 7.234(.U)
+-.65 G 2.234(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0
+2.234(options are disabled \(unset\) by)4.734 F(def)144 374.4 Q(ault.)
-.1 E 1.544(The return status when listing options is zero if all)144
-612 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
+391.2 R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)
4.044 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 624 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
--.25 F(option.)144 636 Q(The list of)144 652.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(autocd)144 670.8 Q F0 .2
+144 403.2 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
+(alid shell)-.25 F(option.)144 415.2 Q(The list of)144 432 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 450 Q F0 .2
(If set, a command name that is the name of a directory is e)11.11 F
-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 682.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 462 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 694.8 Q(ars)-.1 E F0 .155(If set, an ar)184 706.8 R .155
+F1(cdable_v)144 474 Q(ars)-.1 E F0 .155(If set, an ar)184 486 R .155
(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 718.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(64)185.955 E 0 Cg EP
-%%Page: 65 65
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(cdspell)144 84 Q F0 1.055
+(name of a v)184 498 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 510 Q F0
+1.055
(If set, minor errors in the spelling of a directory component in a)
10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 96 R 1.487(errors check)3.987 F 1.487
+(corrected. The)184 522 R 1.487(errors check)3.987 F 1.487
(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
--.4 G(nd)-3.988 E .552(one character too man)184 108 R 4.352 -.65(y. I)
--.15 H 3.052(fac).65 G .552
-(orrection is found, the corrected \214le name is printed, and)-3.052 F
-(the command proceeds.)184 120 Q(This option is only used by interacti)5
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 132 Q F0 2.079
-(If set,)184 144 R F1(bash)4.579 E F0 2.079
+-.4 G(nd)-3.988 E .77(one character too man)184 534 R 4.57 -.65(y. I)
+-.15 H 3.27(fac).65 G .77
+(orrection is found, the corrected \214lename is printed, and)-3.27 F
+(the command proceeds.)184 546 Q(This option is only used by interacti)5
+E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 558 Q F0 2.079
+(If set,)184 570 R F1(bash)4.579 E F0 2.079
(checks that a command found in the hash table e)4.579 F 2.08
-(xists before trying to)-.15 F -.15(exe)184 156 S(cute it.).15 E
+(xists before trying to)-.15 F -.15(exe)184 582 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 168 Q
-F0 .449(If set,)184 180 R F1(bash)2.949 E F0 .449
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 594 Q
+F0 .449(If set,)184 606 R F1(bash)2.949 E F0 .449
(lists the status of an)2.949 F 2.949(ys)-.15 G .448
(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.438(shell. If)184 192 R(an)3.438 E 3.438(yj)-.15 G
+F -.15(ve)-.25 G 3.438(shell. If)184 618 R(an)3.438 E 3.438(yj)-.15 G
.938(obs are running, this causes the e)-3.438 F .938
(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 2.203
-(attempted without an interv)184 204 R 2.203(ening command \(see)-.15 F
-/F2 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 216 Q -.1(wa)-.1
+(attempted without an interv)184 630 R 2.203(ening command \(see)-.15 F
+/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 642 Q -.1(wa)-.1
G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E F1(checkwinsize)144 228 Q F0 .796(If set,)184
-240 R F1(bash)3.296 E F0 .796(checks the windo)3.296 F 3.296(ws)-.25 G
+(obs are stopped.)-2.5 E F1(checkwinsize)144 654 Q F0 .796(If set,)184
+666 R F1(bash)3.296 E F0 .796(checks the windo)3.296 F 3.296(ws)-.25 G
.797(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G
-.797(pdates the)-3.297 F -.25(va)184 252 S(lues of).25 E F2(LINES)2.5 E
-F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A F1(cmdhist)144
-264 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202(attempts to sa)
+.797(pdates the)-3.297 F -.25(va)184 678 S(lues of).25 E F3(LINES)2.5 E
+F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist)144
+690 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202(attempts to sa)
3.702 F 1.502 -.15(ve a)-.2 H 1.202
(ll lines of a multiple-line command in the same history).15 F(entry)184
-276 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 288 Q
-F0 .419(If set,)184 300 R F1(bash)2.919 E F0 .419(changes its beha)2.919
-F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the)184 312 Q F1([[)2.5 E F0
-(conditional command')2.5 E(s)-.55 E F1(=~)2.5 E F0(operator)2.5 E(.)
--.55 E F1(compat32)144 324 Q F0 1.41(If set,)184 336 R F1(bash)3.91 E F0
-1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F 1.409
-(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.265
-(string comparison when using the)184 348 R F1([[)3.766 E F0 1.266
-(conditional command')3.766 F(s)-.55 E F1(<)3.766 E F0(and)3.766 E F1(>)
-3.766 E F0 3.766(operators. Bash)3.766 F -.15(ve)184 360 S .513
-(rsions prior to bash-4.1 use ASCII collation and).15 F/F4 10
-/Times-Italic@0 SF(str)3.012 E(cmp)-.37 E F0 .512
-(\(3\); bash-4.1 and later use the).19 F(current locale')184 372 Q 2.5
-(sc)-.55 G(ollation sequence and)-2.5 E F4(str)2.5 E(coll)-.37 E F0
-(\(3\).).51 E F1(compat40)144 384 Q F0 1.409(If set,)184 396 R F1(bash)
-3.909 E F0 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F
-1.41(ersion 4.0 with respect to locale-speci\214c)-.15 F .423
-(string comparison when using the)184 408 R F1([[)2.922 E F0 .422
+702 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E(GNU Bash 4.3)72 768 Q
+(2014 February 2)141.79 E(67)190.95 E 0 Cg EP
+%%Page: 68 68
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF(compat31)144 84 Q F0 .419(If set,)184 96 R
+F1(bash)2.919 E F0 .419(changes its beha)2.919 F .419(vior to that of v)
+-.2 F .42(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E
+.462(to the)184 108 R F1([[)2.962 E F0 .462(conditional command')2.962 F
+(s)-.55 E F1(=~)2.962 E F0 .462
+(operator and locale-speci\214c string comparison when)2.962 F .71
+(using the)184 120 R F1([[)3.21 E F0 .71(conditional command')3.21 F(s)
+-.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash)
+3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .821
+(use ASCII collation and)184 132 R/F2 10/Times-Italic@0 SF(str)3.321 E
+(cmp)-.37 E F0 .821(\(3\); bash-4.1 and later use the current locale')
+.19 F 3.32(sc)-.55 G(ollation)-3.32 E(sequence and)184 144 Q F2(str)2.5
+E(coll)-.37 E F0(\(3\).).51 E F1(compat32)144 156 Q F0 1.409(If set,)184
+168 R F1(bash)3.909 E F0 1.409(changes its beha)3.909 F 1.409
+(vior to that of v)-.2 F 1.41
+(ersion 3.2 with respect to locale-speci\214c)-.15 F .423
+(string comparison when using the)184 180 R F1([[)2.922 E F0 .422
(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
-2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\) and the ef)184
-420 Q(fect of interrupting a command list.)-.25 E F1(compat41)144 432 Q
-F0 1.443(If set,)184 444 R F1(bash)3.943 E F0 3.943(,w)C 1.444
-(hen in posix mode, treats a single quote in a double-quoted parameter)
--3.943 F -.15(ex)184 456 S .959(pansion as a special character).15 F
-5.959(.T)-.55 G .958(he single quotes must match \(an e)-5.959 F -.15
-(ve)-.25 G 3.458(nn).15 G .958(umber\) and)-3.458 F .59
-(the characters between the single quotes are considered quoted.)184 468
+2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\).)184 192 Q F1
+(compat40)144 204 Q F0 1.409(If set,)184 216 R F1(bash)3.909 E F0 1.409
+(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41
+(ersion 4.0 with respect to locale-speci\214c)-.15 F 2.008
+(string comparison when using the)184 228 R F1([[)4.508 E F0 2.007
+(conditional command')4.508 F(s)-.55 E F1(<)4.507 E F0(and)4.507 E F1(>)
+4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 240 R
+F1(compat31)3.269 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769
+(fect of interrupting a command list.)-.25 F .77(Bash v)5.77 F(ersions)
+-.15 E .087(4.0 and later interrupt the list as if the shell recei)184
+252 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F .086
+(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 264 Q
+(xt command in the list.)-.15 E F1(compat41)144 276 Q F0 1.483(If set,)
+184 288 R F1(bash)3.983 E F0 3.983(,w)C 1.483(hen in)-3.983 F F2(posix)
+3.983 E F0 1.484
+(mode, treats a single quote in a double-quoted parameter)3.983 F -.15
+(ex)184 300 S .959(pansion as a special character).15 F 5.959(.T)-.55 G
+.958(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458
+(nn).15 G .958(umber\) and)-3.458 F .59
+(the characters between the single quotes are considered quoted.)184 312
R .59(This is the beha)5.59 F .59(vior of)-.2 F .59
-(posix mode through v)184 480 R .589(ersion 4.1.)-.15 F .589(The def)
+(posix mode through v)184 324 R .589(ersion 4.1.)-.15 F .589(The def)
5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
-(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 492 Q F1(dirspell)144 504 Q
-F0 .858(If set,)7.77 F F1(bash)3.358 E F0 .858
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 336 Q F1(compat42)144 348 Q
+F0 1.796(If set,)184 360 R F1(bash)4.296 E F0 1.796
+(does not process the replacement string in the pattern substitution w)
+4.296 F(ord)-.1 E -.15(ex)184 372 S(pansion using quote remo).15 E -.25
+(va)-.15 G(l.).25 E F1(complete_fullquote)144 384 Q F0 .654(If set,)184
+396 R F1(bash)3.153 E F0 .653(quotes all shell metacharacters in \214le\
+names and directory names when per)3.153 F(-)-.2 E 1.524
+(forming completion.)184 408 R 1.524(If not set,)6.524 F F1(bash)4.024 E
+F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
+(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
+haracters that will be quoted in completed \214lenames when these)184
+420 R .028(metacharacters appear in shell v)184 432 R .028
+(ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
+(This means)5.029 F 1.073(that dollar signs in v)184 444 R 1.073
+(ariable names that e)-.25 F 1.073
+(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
+(ev e)184 456 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ollar signs appearing in \214lenames will not be quoted, either).15 F
+6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
+(only when bash is using backslashes to quote completed \214lenames.)184
+468 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 480 Q
+(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
+(ersions through 4.2.)-.15 E F1(dir)144 492 Q(expand)-.18 E F0 .486
+(If set,)184 504 R F1(bash)2.986 E F0 .486
+(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
+.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
+516 R .179(This changes the contents of the readline editing b)5.18 F
+(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
+184 528 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 540 Q F0 .858(If set,)7.77 F
+F1(bash)3.358 E F0 .858
(attempts spelling correction on directory names during w)3.358 F .859
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 516 Q(xist.)-.15 E
-F1(dotglob)144 528 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 552 Q(xist.)-.15 E
+F1(dotglob)144 564 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 540 Q F0 1.386
+(xpansion.)-.15 E F1(execfail)144 576 Q F0 1.386
(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.387(cute the \214le speci\214ed as an).15 F(ar)184 552 Q
+1.387(cute the \214le speci\214ed as an).15 F(ar)184 588 Q
(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 564 Q F0
-.717(If set, aliases are e)184 576 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .716
-(This option is enabled)5.217 F(by def)184 588 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 600 Q(ug)-.2 E F0
-(If set, beha)184 612 Q(vior intended for use by deb)-.2 E
-(uggers is enabled:)-.2 E F1(1.)184 624 Q F0(The)28.5 E F1<ad46>4.25 E
-F0 1.75(option to the)4.25 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251
-G 1.751(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 636 Q
-(gument.)-.18 E F1(2.)184 648 Q F0 1.667(If the command run by the)28.5
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 600 Q F0
+.717(If set, aliases are e)184 612 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(ALIASES)3.217 E
+/F4 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
+(by def)184 624 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 636 Q(ug)-.2 E F0(If set, beha)184 648 Q
+(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
+660 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1
+(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
+(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 672 Q
+(gument.)-.18 E F1(2.)184 684 Q F0 1.667(If the command run by the)28.5
F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 660
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 672 Q F0 .84
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 696
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 708 Q F0 .84
(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
-(exe)220 684 S .488
+(exe)220 720 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
--.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 696 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
--.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 708 Q
-F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G
-(SH_ARGV).27 E F0 .904(are updated as described in their descriptions)
-3.154 F(abo)220 720 Q -.15(ve)-.15 G(.).15 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(65)185.955 E 0 Cg EP
-%%Page: 66 66
+-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(68)190.95 E 0 Cg EP
+%%Page: 69 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(5.)184 84 Q F0 1.359
+-.35 E/F1 10/Times-Bold@0 SF(sour)220 84 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(iltins\), a call to).2 E F1 -.18(re)2.5 G(tur).18 E(n)-.15 E F0
+(is simulated.)2.5 E F1(4.)184 96 Q/F2 9/Times-Bold@0 SF -.27(BA)28.5 G
+(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0 .904
+(are updated as described in their descriptions)3.154 F(abo)220 108 Q
+-.15(ve)-.15 G(.).15 E F1(5.)184 120 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-96 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F2 10
+132 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F3 10
/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 108 Q F0 .804(Error tracing is enabled:)28.5 F .805
-(command substitution, shell functions, and subshells)5.804 F(in)220 120
-Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
+184 144 Q F0 .804(Error tracing is enabled:)28.5 F .805
+(command substitution, shell functions, and subshells)5.804 F(in)220 156
+Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 132 Q F0 .4(If set, the e)8.89 F .4
+2.5 E F1(extglob)144 168 Q F0 .4(If set, the e)8.89 F .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 144 Q
-F0(are enabled.)2.5 E F1(extquote)144 156 Q F0 2.473(If set,)184 168 R
-F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
-E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within)
--4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 180 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 192 Q F0
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 180 Q
+F0(are enabled.)2.5 E F1(extquote)144 192 Q F0 2.473(If set,)184 204 R
+F1($)4.973 E F0<08>A F3(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F3(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F3(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 216 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 228 Q F0
1.425(If set, patterns which f)7.77 F 1.425
(ail to match \214lenames during pathname e)-.1 F 1.424
-(xpansion result in an)-.15 F -.15(ex)184 204 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 216 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 228 R<8c78>-.25 E .936(es speci\214ed by the)
--.15 F/F3 9/Times-Bold@0 SF(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936
-(ariable cause w)-.25 F .937(ords to be ignored)-.1 F .32
-(when performing w)184 240 R .32(ord completion e)-.1 F -.15(ve)-.25 G
-2.82(ni).15 G 2.82(ft)-2.82 G .32(he ignored w)-2.82 F .32
-(ords are the only possible com-)-.1 F 2.947(pletions. See)184 252 R F3
-.447(SHELL V)2.947 F(ARIABLES)-1.215 E F0(abo)2.697 E .747 -.15(ve f)
--.15 H .448(or a description of).15 F F3(FIGNORE)2.948 E/F4 9
-/Times-Roman@0 SF(.)A F0 .448(This option is)4.948 F(enabled by def)184
-264 Q(ault.)-.1 E F1(globstar)144 276 Q F0 .519(If set, the pattern)5 F
-F1(**)3.019 E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)
--.15 F .518(xt will match all \214les and zero)-.15 F .431
-(or more directories and subdirectories.)184 288 R .431
+(xpansion result in an)-.15 F -.15(ex)184 240 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 252 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 264 R<8c78>-.25 E .936(es speci\214ed by the)
+-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
+-.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 276 R .32
+(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
+(pletions. See)184 288 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
+(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
+(FIGNORE)2.948 E/F4 9/Times-Roman@0 SF(.)A F0 .448(This option is)4.948
+F(enabled by def)184 300 Q(ault.)-.1 E F1(globasciiranges)144 312 Q F0
+2.519(If set, range e)184 324 R 2.519
+(xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
+(xpressions \(see)-.15 F F2 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
+(Matching)184 336 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
+-3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
+(nt)-3.214 G .714(he traditional C locale when performing comparisons.)
+-3.214 F 1.02(That is, the current locale')184 348 R 3.52(sc)-.55 G 1.02
+(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F F1
+(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 360 R F1(A)
+3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)-3.457 F
+.957(-case and lo)-.2 F(wer)-.25 E .957
+(-case ASCII characters will collate)-.2 F(together)184 372 Q(.)-.55 E
+F1(globstar)144 384 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0
+.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+(xt will match all \214les and zero)-.15 F .431
+(or more directories and subdirectories.)184 396 R .431
(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
-300 Q F1(gnu_errfmt)144 312 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 324 Q F1(histappend)144
-336 Q F0 .676
+408 Q F1(gnu_errfmt)144 420 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 432 Q F1(histappend)144
+444 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-348 R .676(alue of the)-.25 F F3(HISTFILE)3.176 E F0 -.25(va)2.926 G
-(ri-).25 E(able when the shell e)184 360 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 372 Q(eedit)-.18
-E F0 .575(If set, and)184 384 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+456 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 468 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 480 Q(eedit)-.18
+E F0 .575(If set, and)184 492 R F1 -.18(re)3.075 G(adline).18 E F0 .575
(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
-(tory substitution.)184 396 Q F1(histv)144 408 Q(erify)-.1 E F0 .403
-(If set, and)184 420 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(tory substitution.)184 504 Q F1(histv)144 516 Q(erify)-.1 E F0 .403
+(If set, and)184 528 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .661(passed to the shell parser)184 432 R 5.661(.I)-.55 G .662
+2.903 F .661(passed to the shell parser)184 540 R 5.661(.I)-.55 G .662
(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
-G(adline).18 E F0(editing)3.162 E -.2(bu)184 444 S -.25(ff).2 G(er).25 E
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 552 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 456 Q F0 1.182(If set, and)184 468 R F1 -.18(re)3.682
+(hostcomplete)144 564 Q F0 1.182(If set, and)184 576 R F1 -.18(re)3.682
G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
-480 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+588 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
-F3(READLINE)3.881 E F0(abo)184 492 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 504 Q F0(If set,)
-184 516 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E F0
+F2(READLINE)3.881 E F0(abo)184 600 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 612 Q F0(If set,)
+184 624 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 528 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 540 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 636 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 648 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
(ord and all remaining characters on)-.1 F .967
-(that line to be ignored in an interacti)184 552 R 1.267 -.15(ve s)-.25
-H .967(hell \(see).15 F F3(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 564 Q
-(ault.)-.1 E F1(lastpipe)144 576 Q F0 1.212
+(that line to be ignored in an interacti)184 660 R 1.267 -.15(ve s)-.25
+H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 672 Q
+(ault.)-.1 E F1(lastpipe)144 684 Q F0 1.212
(If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15
G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15
-(exe)184 588 S(cuted in the background in the current shell en).15 E
-(vironment.)-.4 E F1(lithist)144 600 Q F0 .654(If set, and the)15.55 F
+(exe)184 696 S(cuted in the background in the current shell en).15 E
+(vironment.)-.4 E F1(lithist)144 708 Q F0 .654(If set, and the)15.55 F
F1(cmdhist)3.154 E F0 .654
(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
-(with embedded ne)184 612 Q
-(wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 624 Q F0 .486
-(The shell sets this option if it is started as a login shell \(see)184
-636 R F3(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 648 S(lue may not be changed.).25
-E F1(mailwar)144 660 Q(n)-.15 E F0 .814(If set, and a \214le that)184
-672 R F1(bash)3.314 E F0 .815
-(is checking for mail has been accessed since the last time it)3.314 F
--.1(wa)184 684 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
-(`The mail in)-.74 E F2(mail\214le)2.5 E F0(has been read')2.5 E 2.5('i)
--.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144 696
-Q F0 .325(If set, and)184 708 R F1 -.18(re)2.825 G(adline).18 E F0 .325
-(is being used,)2.825 F F1(bash)2.824 E F0 .324
-(will not attempt to search the)2.824 F F3 -.666(PA)2.824 G(TH)-.189 E
-F0 .324(for possible)2.574 F
-(completions when completion is attempted on an empty line.)184 720 Q
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(66)185.955 E 0 Cg EP
-%%Page: 67 67
+(with embedded ne)184 720 Q
+(wlines rather than using semicolon separators where possible.)-.25 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(69)190.95 E 0 Cg EP
+%%Page: 70 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(nocaseglob)144 84 Q F0 .436(If set,)184 96
-R F1(bash)2.936 E F0 .436(matches \214lenames in a case\255insensiti)
-2.936 F .737 -.15(ve f)-.25 H .437(ashion when performing pathname).05 F
--.15(ex)184 108 S(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion)
-.1 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(nocasematch)144 120 Q F0
-1.194(If set,)184 132 R F1(bash)3.694 E F0 1.194
-(matches patterns in a case\255insensiti)3.694 F 1.493 -.15(ve f)-.25 H
-1.193(ashion when performing matching).05 F(while e)184 144 Q -.15(xe)
--.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5 E F1([[)2.5 E F0
-(conditional commands.)2.5 E F1(nullglob)144 156 Q F0 .854(If set,)184
-168 R F1(bash)3.354 E F0(allo)3.354 E .855
+-.35 E/F1 10/Times-Bold@0 SF(login_shell)144 84 Q F0 .486
+(The shell sets this option if it is started as a login shell \(see)184
+96 R/F2 9/Times-Bold@0 SF(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)
+2.736 E -.15(ve)-.15 G 2.986(\). The).15 F -.25(va)184 108 S
+(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .814
+(If set, and a \214le that)184 132 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
+-.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
+(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
+(no_empty_cmd_completion)144 156 Q F0 .325(If set, and)184 168 R F1 -.18
+(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E
+F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)
+-.189 E F0 .324(for possible)2.574 F
+(completions when completion is attempted on an empty line.)184 180 Q F1
+(nocaseglob)144 192 Q F0 .436(If set,)184 204 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 216 S
+(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.194(If set,)184
+240 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
+F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0
+.854(If set,)184 276 R F1(bash)3.354 E F0(allo)3.354 E .855
(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
--3.355 E -.15(ex)184 180 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 192 Q(ogcomp)-.18 E F0 .677
-(If set, the programmable completion f)184 204 R .677(acilities \(see)
+-3.355 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 312 R .677(acilities \(see)
-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
--.15(ve)-.15 G(\)).15 E(are enabled.)184 216 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 228 Q(omptv)
--.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 240 R 1.448
+-.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 348 R 1.448
(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 252 S .171(pansion, and quote remo).15 F -.25(va)-.15
+-.15 F -.15(ex)184 360 S .171(pansion, and quote remo).15 F -.25(va)-.15
G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F/F2 9/Times-Bold@0 SF(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15
-(ve)-.15 G(.).15 E(This option is enabled by def)184 264 Q(ault.)-.1 E
-F1 -.18(re)144 276 S(stricted_shell).18 E F0 1.069
+-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
+(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
+S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
-184 288 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 300 Q 4.178
+184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 Q 4.178
(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
-184 312 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 324 Q(erbose)-.1 E F0 .501(If set, the)184 336 R F1
+F1(shift_v)144 432 Q(erbose)-.1 E F0 .501(If set, the)184 444 R F1
(shift)3.001 E F0 -.2(bu)3.001 G .501
(iltin prints an error message when the shift count e).2 F .502
-(xceeds the number)-.15 F(of positional parameters.)184 348 Q F1(sour)
-144 360 Q(cepath)-.18 E F0 .771(If set, the)184 372 R F1(sour)3.271 E
+(xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour)
+144 468 Q(cepath)-.18 E F0 .771(If set, the)184 480 R F1(sour)3.271 E
(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
-184 384 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
--.1 E F1(xpg_echo)144 396 Q F0(If set, the)184 408 Q F1(echo)2.5 E F0
+184 492 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 504 Q F0(If set, the)184 516 Q F1(echo)2.5 E F0
-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
-E(ault.)-.1 E F1(suspend)108 424.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
-(Suspend the e)144 436.8 R -.15(xe)-.15 G 1.001
+E(ault.)-.1 E F1(suspend)108 532.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 544.8 R -.15(xe)-.15 G 1.001
(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
-3.502 F .023(suspended; the)144 448.8 R F1<ad66>2.523 E F0 .023
+3.502 F .023(suspended; the)144 556.8 R F1<ad66>2.523 E F0 .023
(option can be used to o)2.523 F -.15(ve)-.15 G .022
(rride this and force the suspension.).15 F .022(The return status is)
-5.022 F 2.5(0u)144 460.8 S(nless the shell is a login shell and)-2.5 E
+5.022 F 2.5(0u)144 568.8 S(nless the shell is a login shell and)-2.5 E
F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
-E F1(test)108 477.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 489.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
-(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.188
-(operator and operand must be a separate ar)144 501.6 R 3.688
-(gument. Expressions)-.18 F 1.187(are composed of the primaries)3.688 F
-1.889(described abo)144 513.6 R 2.189 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)4.389 E 1.889(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)6.389 E F0 1.89(does not accept an)4.389 F 4.39(yo)-.15 G 1.89
-(ptions, nor)-4.39 F(does it accept and ignore an ar)144 525.6 Q
-(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .786(Expressions may be combined using the follo)144 543.6 R .785
+E F1(test)108 585.6 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 597.6 Q F3 -.2
+(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877
+(Return a status of 0 \(true\) or 1 \(f)6.77 F .878
+(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 609.6
+S(pr).2 E F0 5.53(.E).73 G .53
+(ach operator and operand must be a separate ar)-5.53 F 3.03
+(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079
+(primaries described abo)144 621.6 R 3.379 -.15(ve u)-.15 H(nder).15 E
+F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF
+(.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E
+(options, nor does it accept and ignore an ar)144 633.6 Q(gument of)-.18
+E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .786
+(Expressions may be combined using the follo)144 651.6 R .785
(wing operators, listed in decreasing order of prece-)-.25 F 3.411
-(dence. The)144 555.6 R -.25(eva)3.411 G .911
+(dence. The)144 663.6 R -.25(eva)3.411 G .911
(luation depends on the number of ar).25 F .912(guments; see belo)-.18 F
4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F
-(used when there are \214v)144 567.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments.)-.18 E F1(!)144 579.6 Q F3 -.2(ex)2.5 G(pr).2 E
+(used when there are \214v)144 675.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F1(!)144 687.6 Q F3 -.2(ex)2.5 G(pr).2 E
F0 -.35(Tr)12.6 G(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E
-(alse.)-.1 E F1(\()144 591.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
+(alse.)-.1 E F1(\()144 699.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
.26(Returns the v)6.77 F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0
5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 603.6 Q F3 -.2
-(ex)144 615.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0
--.35(Tr)180 627.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5
-E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 639.6 S
-(pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180
-651.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2
-(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 668.4 Q F0(and)2.5 E
-F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E
-(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 686.4 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 698.4 Q(xpression is f)-.15 E(alse.)-.1 E(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(67)185.955 E 0 Cg EP
-%%Page: 68 68
+(rride the normal precedence of opera-).15 F(tors.)180 711.6 Q
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(70)190.95 E 0 Cg EP
+%%Page: 71 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 2.5(1a)144 84 S -.18(rg)-2.5 G(ument).18 E(The e)180 96 Q
+-.35 E/F1 10/Times-Italic@0 SF -.2(ex)144 84 S(pr1).2 E F0<ad>2.5 E/F2
+10/Times-Bold@0 SF(a)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 96 S
+(ue if both).35 E F1 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F1 -.2(ex)2.5 G
+(pr2).2 E F0(are true.)2.52 E F1 -.2(ex)144 108 S(pr1).2 E F0<ad>2.5 E
+F2(o)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 120 S(ue if either).35 E
+F1 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0
+(is true.)2.52 E F2(test)144 136.8 Q F0(and)2.5 E F2([)2.5 E F0 -.25
+(eva)2.5 G(luate conditional e).25 E
+(xpressions using a set of rules based on the number of ar)-.15 E
+(guments.)-.18 E 2.5(0a)144 154.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 166.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 178.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 190.8 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 108 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)180
-120 R .37(gument is)-.18 F/F1 10/Times-Bold@0 SF(!)2.87 E F0 2.87(,t)C
-.37(he e)-2.87 F .37(xpression is true if and only if the second ar)-.15
-F .37(gument is null.)-.18 F .38(If the \214rst ar)180 132 R .38
+E 2.5(2a)144 202.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 214.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+F .37(xpression is true if and only if the second ar)-.15 F .37
+(gument is null.)-.18 F .38(If the \214rst ar)180 226.8 R .38
(gument is one of the unary conditional operators listed abo)-.18 F .679
--.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
-144 Q .552(AL EXPRESSIONS)-.18 F/F3 9/Times-Roman@0 SF(,)A F0 .552
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
+238.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
-.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 156 Q
+.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 250.8 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 168 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 180 R .236
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 262.8 S -.18(rg)-2.5 G
+(uments).18 E .236(The follo)180 274.8 R .236
(wing conditions are applied in the order listed.)-.25 F .236
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 192 R 1.155 -.15(ve u)
--.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F F3(,)A
-F0(the)3.105 E .579(result of the e)180 204 R .578(xpression is the res\
-ult of the binary test using the \214rst and third ar)-.15 F(guments)
--.18 E 1.332(as operands.)180 216 R(The)6.332 E F1<ad61>3.832 E F0(and)
-3.832 E F1<ad6f>3.832 E F0 1.333
+(the binary conditional operators listed abo)180 286.8 R 1.155 -.15
+(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
+F4(,)A F0(the)3.105 E .579(result of the e)180 298.8 R .578(xpression i\
+s the result of the binary test using the \214rst and third ar)-.15 F
+(guments)-.18 E 1.332(as operands.)180 310.8 R(The)6.332 E F2<ad61>3.832
+E F0(and)3.832 E F2<ad6f>3.832 E F0 1.333
(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 228 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F
-.558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558
-(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1
-E(gument)-.18 E .52(test using the second and third ar)180 240 R 3.021
-(guments. If)-.18 F .521(the \214rst ar)3.021 F .521(gument is e)-.18 F
-(xactly)-.15 E F1(\()3.021 E F0 .521(and the third)3.021 F(ar)180 252 Q
-.485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0 2.985(,t)C .485
-(he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18
-F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 264 Q
-(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 276 S -.18(rg)-2.5 G
-(uments).18 E .384(If the \214rst ar)180 288 R .384(gument is)-.18 F F1
-(!)2.884 E F0 2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15
-G .385(tion of the three-ar).05 F .385(gument e)-.18 F .385
-(xpression com-)-.15 F 1.648(posed of the remaining ar)180 300 R 4.147
-(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
-(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
-(according to precedence using the rules listed abo)180 312 Q -.15(ve)
--.15 G(.).15 E 2.5(5o)144 324 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
-E 1.635(The e)180 336 R 1.635(xpression is parsed and e)-.15 F -.25(va)
--.25 G 1.635(luated according to precedence using the rules listed).25 F
-(abo)180 348 Q -.15(ve)-.15 G(.).15 E(When used with)144 366 Q F1(test)
-2.5 E F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5
-E F1(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using ASCII ordering.)-.15 E F1(times)108 382.8 Q F0
+(three ar)180 322.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
+F .558(gument is)-.18 F F2(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
+.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
+(o-ar)-.1 E(gument)-.18 E .52(test using the second and third ar)180
+334.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .521
+(gument is e)-.18 F(xactly)-.15 E F2(\()3.021 E F0 .521(and the third)
+3.021 F(ar)180 346.8 Q .485(gument is e)-.18 F(xactly)-.15 E F2(\))2.985
+E F0 2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
+(wise, the e)180 358.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
+370.8 S -.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 382.8 R
+.384(gument is)-.18 F F2(!)2.884 E F0 2.885(,t)C .385
+(he result is the ne)-2.885 F -.05(ga)-.15 G .385(tion of the three-ar)
+.05 F .385(gument e)-.18 F .385(xpression com-)-.15 F 1.648
+(posed of the remaining ar)180 394.8 R 4.147(guments. Otherwise,)-.18 F
+1.647(the e)4.147 F 1.647(xpression is parsed and e)-.15 F -.25(va)-.25
+G(luated).25 E(according to precedence using the rules listed abo)180
+406.8 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 418.8 S 2.5(rm)-2.5 G(ore ar)
+-2.5 E(guments)-.18 E 1.635(The e)180 430.8 R 1.635
+(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+442.8 Q -.15(ve)-.15 G(.).15 E(When used with)144 460.8 Q F2(test)2.5 E
+F0(or)2.5 E F2([)2.5 E F0 2.5(,t)C(he)-2.5 E F2(<)2.5 E F0(and)2.5 E F2
+(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using ASCII ordering.)-.15 E F2(times)108 477.6 Q F0
1.229(Print the accumulated user and system times for the shell and for\
- processes run from the shell.)13.23 F(The return status is 0.)144 394.8
-Q F1(trap)108 411.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F4 10
-/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F4(sigspec)2.5 E F0(...])2.5 E
-.702(The command)144 423.6 R F4(ar)3.532 E(g)-.37 E F0 .702
-(is to be read and e)3.422 F -.15(xe)-.15 G .702
-(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
-(ignal\(s\))-3.203 E F4(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F4
-(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
-144 435.6 R F4(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
-F0 3.108(,e)C .608
+ processes run from the shell.)13.23 F(The return status is 0.)144 489.6
+Q F2(trap)108 506.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)
+A(g)-.37 E F0(])A F1(sigspec)2.5 E F0(...])2.5 E .702(The command)144
+518.4 R F1(ar)3.532 E(g)-.37 E F0 .702(is to be read and e)3.422 F -.15
+(xe)-.15 G .702(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203
+(ss).15 G(ignal\(s\))-3.203 E F1(sigspec)3.203 E F0 5.703(.I).31 G(f)
+-5.703 E F1(ar)3.533 E(g)-.37 E F0(is)3.423 E .609
+(absent \(and there is a single)144 530.4 R F1(sigspec)3.108 E F0 3.108
+(\)o)C(r)-3.108 E F2<ad>3.108 E F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.658(\(the v)144 447.6 R .658(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F4(ar)3.488 E(g)-.37 E F0 .659
-(is the null string the signal speci\214ed by each)3.378 F F4(sigspec)
-144.34 459.6 Q F0 .581
+.658(\(the v)144 542.4 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .659
+(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
+144.34 554.4 Q F0 .581
(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
--.1(ke).2 G 3.08(s. If).1 F F4(ar)3.41 E(g)-.37 E F0 .58
-(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
-(been supplied, then the trap commands associated with each)144 471.6 R
-F4(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
-F(gu-)-.18 E .86(ments are supplied or if only)144 483.6 R F1<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+-.1(ke).2 G 3.08(s. If).1 F F1(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F2<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 566.4 R
+F1(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
+F(gu-)-.18 E .86(ments are supplied or if only)144 578.4 R F2<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 495.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
+(signal. The)144 590.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
to print a list of signal names and their corresponding num-)2.83 F
-4.311(bers. Each)144 507.6 R F4(sigspec)4.651 E F0 1.811
-(is either a signal name de\214ned in <)4.621 F F4(signal.h)A F0 1.81
+4.311(bers. Each)144 602.4 R F1(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F1(signal.h)A F0 1.81
(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
-(names are case insensiti)144 519.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
-F2(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648(If a)144 537.6 R F4
-(sigspec)4.488 E F0(is)4.458 E F2(EXIT)4.148 E F0 1.648
-(\(0\) the command)3.898 F F4(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
+(names are case insensiti)144 614.4 Q .3 -.15(ve a)-.25 H(nd the).15 E
+F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648(If a)144 632.4 R F1
+(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0 1.648
+(\(0\) the command)3.898 F F1(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F
-1.649(If a)6.649 F F4(sigspec)4.489 E F0(is)4.459 E F2(DEB)144 549.6 Q
-(UG)-.09 E F3(,)A F0 1.168(the command)3.418 F F4(ar)3.998 E(g)-.37 E F0
+1.649(If a)6.649 F F1(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 644.4 Q
+(UG)-.09 E F4(,)A F0 1.168(the command)3.418 F F1(ar)3.998 E(g)-.37 E F0
1.168(is e)3.888 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
--.25 G(ry).15 E F4 1.167(simple command)3.667 F F0(,)A F4(for)3.667 E F0
-(command,)3.667 E F4(case)3.667 E F0(com-)3.667 E(mand,)144 561.6 Q F4
+-.25 G(ry).15 E F1 1.167(simple command)3.667 F F0(,)A F1(for)3.667 E F0
+(command,)3.667 E F1(case)3.667 E F0(com-)3.667 E(mand,)144 656.4 Q F1
(select)2.646 E F0 .146(command, e)2.646 F -.15(ve)-.25 G .146
-(ry arithmetic).15 F F4(for)2.646 E F0 .147
+(ry arithmetic).15 F F1(for)2.646 E F0 .147
(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
-(cutes in a).15 F .146(shell function \(see)144 573.6 R F2 .146
+(cutes in a).15 F .146(shell function \(see)144 668.4 R F3 .146
(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0
-.145(option to)2.645 F(the)144 585.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
-(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG)
--.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F4(sigspec)3.54 E F0(is)3.51 E F2
-(RETURN)3.2 E F3(,)A F0 .701(the com-)2.951 F(mand)144 597.6 Q F4(ar)
+F .146(to the description of the)2.646 F F2(extdeb)2.645 E(ug)-.2 E F0
+.145(option to)2.645 F(the)144 680.4 Q F2(shopt)3.2 E F0 -.2(bu)3.2 G .7
+(iltin for details of its ef).2 F .7(fect on the)-.25 F F2(DEB)3.2 E(UG)
+-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F1(sigspec)3.54 E F0(is)3.51 E F3
+(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 692.4 Q F1(ar)
3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce)
--.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 609.6 Q -.15(xe)
--.15 G(cuting.).15 E .928(If a)144 627.6 R F4(sigspec)3.768 E F0(is)
-3.738 E F2(ERR)3.429 E F3(,)A F0 .929(the command)3.179 F F4(ar)3.759 E
-(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F
--.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero)
--3.429 F -.15(ex)144 639.6 S 1.009(it status, subject to the follo).15 F
-1.009(wing conditions.)-.25 F(The)6.009 E F2(ERR)3.509 E F0 1.009
-(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008
-(ailed com-)-.1 F .324
-(mand is part of the command list immediately follo)144 651.6 R .324
-(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1
-(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F .151(in an)144
-663.6 R F4(if)2.661 E F0 .151(statement, part of a command e)4.611 F
--.15(xe)-.15 G .151(cuted in a).15 F F1(&&)2.651 E F0(or)2.651 E F1(||)
-2.651 E F0 .151(list, or if the command')2.651 F 2.651(sr)-.55 G .151
-(eturn v)-2.651 F(alue)-.25 E(is being in)144 675.6 Q -.15(ve)-.4 G
-(rted via).15 E F1(!)2.5 E F0 5(.T)C(hese are the same conditions obe)-5
-E(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(option.)2.5 E 1.095
-(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-693.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 705.6 R .662
-(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
--.4 F 2.5(created. The)144 717.6 R(return status is f)2.5 E(alse if an)
--.1 E(y)-.15 E F4(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
-(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E(GNU Bash-4.2)
-72 768 Q(2010 December 28)135.965 E(68)185.955 E 0 Cg EP
-%%Page: 69 69
+.643(cuted with the).15 F F2(.)3.143 E F0(or)3.143 E F2(sour)3.143 E(ce)
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 704.4 Q -.15(xe)
+-.15 G(cuting.).15 E .521(If a)144 722.4 R F1(sigspec)3.361 E F0(is)
+3.331 E F3(ERR)3.021 E F4(,)A F0 .522(the command)2.771 F F1(ar)3.352 E
+(g)-.37 E F0 .522(is e)3.242 F -.15(xe)-.15 G .522(cuted whene).15 F
+-.15(ve)-.25 G 3.022(raap).15 G .522(ipeline \(which may consist of a)
+-3.022 F(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(71)190.95 E 0 Cg
+EP
+%%Page: 72 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(type)108 84 Q F0([)2.5 E F1(\255aftpP)A F0
-(])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5
-E -.4(Wi)144 96 S .173(th no options, indicate ho).4 F 2.673(we)-.25 G
-(ach)-2.673 E F2(name)3.033 E F0 -.1(wo)2.853 G .174
+-.35 E .185(single simple command\), a list, or a compound command retu\
+rns a non\255zero e)144 84 R .184(xit status, subject to)-.15 F .451
+(the follo)144 96 R .451(wing conditions.)-.25 F(The)5.451 E/F1 9
+/Times-Bold@0 SF(ERR)2.951 E F0 .451(trap is not e)2.701 F -.15(xe)-.15
+G .451(cuted if the f).15 F .452(ailed command is part of the com-)-.1 F
+.388(mand list immediately follo)144 108 R .388(wing a)-.25 F/F2 10
+/Times-Bold@0 SF(while)2.888 E F0(or)2.888 E F2(until)2.888 E F0 -.1(ke)
+2.888 G(yw)-.05 E .388(ord, part of the test in an)-.1 F/F3 10
+/Times-Italic@0 SF(if)2.897 E F0 .387(statement, part)4.847 F .777
+(of a command e)144 120 R -.15(xe)-.15 G .778(cuted in a).15 F F2(&&)
+3.278 E F0(or)3.278 E F2(||)3.278 E F0 .778(list e)3.278 F .778
+(xcept the command follo)-.15 F .778(wing the \214nal)-.25 F F2(&&)3.278
+E F0(or)3.278 E F2(||)3.278 E F0 3.278(,a)C -.15(ny)-3.278 G 1.28
+(command in a pipeline b)144 132 R 1.28(ut the last, or if the command')
+-.2 F 3.78(sr)-.55 G 1.28(eturn v)-3.78 F 1.28(alue is being in)-.25 F
+-.15(ve)-.4 G 1.28(rted using).15 F F2(!)3.78 E F0(.)A
+(These are the same conditions obe)144 144 Q(yed by the)-.15 E F2(err)
+2.5 E(exit)-.18 E F0(\()2.5 E F2<ad65>A F0 2.5(\)o)C(ption.)-2.5 E 1.095
+(Signals ignored upon entry to the shell cannot be trapped or reset.)144
+162 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 174 R .662
+(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
+-.4 F 2.5(created. The)144 186 R(return status is f)2.5 E(alse if an)-.1
+E(y)-.15 E F3(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
+(lid; otherwise).25 E F2(trap)2.5 E F0(returns true.)2.5 E F2(type)108
+202.8 Q F0([)2.5 E F2(\255aftpP)A F0(])A F3(name)2.5 E F0([)2.5 E F3
+(name)A F0(...])2.5 E -.4(Wi)144 214.8 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F3(name)
+3.033 E F0 -.1(wo)2.853 G .174
(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
-F1<ad74>144 108 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
-.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
-F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
-(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
-(\214le)5.252 E F0(if)3.522 E F2(name)144.36 120 Q F0 .086
+F2<ad74>144 226.8 Q F0 .843(option is used,)3.343 F F2(type)3.343 E F0
+.843(prints a string which is one of)3.343 F F3(alias)3.343 E F0(,).27 E
+F3 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F3(function)3.343 E F0
+(,).24 E F3 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F3
+(\214le)5.252 E F0(if)3.522 E F3(name)144.36 238.8 Q F0 .086
(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F3
(name)2.947 E F0 .087(is not)2.767 F .119
-(found, then nothing is printed, and an e)144 132 R .118
+(found, then nothing is printed, and an e)144 250.8 R .118
(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
-F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
-(either returns the name of the disk \214le that w)144 144 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
+F2<ad70>2.618 E F0 .118(option is used,)2.618 F F2(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 262.8 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F3(name)3.715 E F0
.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
-144 156 R/F3 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141 G
-.641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E F1
-<ad50>3.14 E F0 .64(option forces a)3.14 F/F4 9/Times-Bold@0 SF -.666
-(PA)3.14 G(TH)-.189 E F0 .112(search for each)144 168 R F2(name)2.612 E
-F0 2.612(,e)C -.15(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F3 .113
-(type -t name)2.613 F F0 -.1(wo)2.613 G .113(uld not return).1 F F2
-(\214le)2.613 E F0 5.113(.I).18 G 2.613(fac)-5.113 G .113
-(ommand is hashed,)-2.613 F F1<ad70>2.613 E F0(and)144 180 Q F1<ad50>
-2.945 E F0 .445(print the hashed v)2.945 F .444
-(alue, not necessarily the \214le that appears \214rst in)-.25 F F4
--.666(PA)2.944 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .444(If the)
-4.944 F F1<ad61>2.944 E F0(option)2.944 E .265(is used,)144 192 R F1
-(type)2.765 E F0 .265(prints all of the places that contain an e)2.765 F
--.15(xe)-.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18
-G .265(his includes aliases)-5.265 F .427
-(and functions, if and only if the)144 204 R F1<ad70>2.926 E F0 .426
-(option is not also used.)2.926 F .426
-(The table of hashed commands is not)5.426 F .548(consulted when using)
-144 216 R F1<ad61>3.048 E F0 5.548(.T)C(he)-5.548 E F1<ad66>3.048 E F0
-.549(option suppresses shell function lookup, as with the)3.048 F F1
-(command)3.049 E F0 -.2(bu)144 228 S(iltin.).2 E F1(type)5 E F0
-(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
-(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 244.8
-Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
-(limit)A F0(]])A(Pro)144 256.8 Q .244(vides control o)-.15 F -.15(ve)
--.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+144 274.8 R/F4 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F3(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F2<ad50>3.14 E F0 .64(option forces a)3.14 F F1 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 286.8 R F3(name)2.612 E F0 2.612(,e)C -.15
+(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F4 .113(type -t name)2.613 F F0
+-.1(wo)2.613 G .113(uld not return).1 F F3(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F2<ad70>2.613 E
+F0(and)144 298.8 Q F2<ad50>3.231 E F0 .731(print the hashed v)3.231 F
+.73(alue, which is not necessarily the \214le that appears \214rst in)
+-.25 F F1 -.666(PA)3.23 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .73
+(If the)5.23 F F2<ad61>144 310.8 Q F0 1.748(option is used,)4.248 F F2
+(type)4.248 E F0 1.748(prints all of the places that contain an e)4.248
+F -.15(xe)-.15 G 1.748(cutable named).15 F F3(name)4.249 E F0 6.749(.T)
+.18 G(his)-6.749 E .744
+(includes aliases and functions, if and only if the)144 322.8 R F2<ad70>
+3.244 E F0 .744(option is not also used.)3.244 F .743
+(The table of hashed)5.744 F 1.223(commands is not consulted when using)
+144 334.8 R F2<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F2<ad66>3.723 E F0
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 346.8 R F2(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F2(type)
+5.326 E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 358.8 Q F2(ulimit)108 375.6 Q F0([)2.5 E F2
+(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F3(limit)A F0(]])A
+(Pro)144 387.6 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743(rt).15
+G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 268.8 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+.944(that allo)144 399.6 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F2<ad48>3.444 E F0(and)3.444 E F2<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 280.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 411.6 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 292.8 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-304.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+ft limit may)2.708 F .426(be increased up to the v)144 423.6 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F2<ad48>2.925 E
+F0(nor)2.925 E F2<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+435.6 R .139(The v)5.139 F .139(alue of)-.25 F F3(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 316.8 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
-(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
+.742(of the special v)144 447.6 R(alues)-.25 E F2(hard)3.242 E F0(,)A F2
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F2(unlimited)3.241 E F0 3.241(,w)
C .741(hich stand for the current hard limit, the current)-3.241 F .78
-(soft limit, and no limit, respecti)144 328.8 R -.15(ve)-.25 G(ly).15 E
-5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
+(soft limit, and no limit, respecti)144 459.6 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F3(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 340.8 R F1<ad48>2.999 E F0
-.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .499(resource is printed, unless the)144 471.6 R F2<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
(more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 352.8 Q 2.5
-(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
-<ad61>144 364.8 Q F0(All current limits are reported)25.3 E F1<ad62>144
-376.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
-F1<ad63>144 388.8 Q F0(The maximum size of core \214les created)25.86 E
-F1<ad64>144 400.8 Q F0(The maximum size of a process')24.74 E 2.5(sd)
--.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 412.8 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 424.8 Q
+(limit name and unit are printed before the v)144 483.6 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2
+<ad61>144 495.6 Q F0(All current limits are reported)25.3 E F2<ad62>144
+507.6 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F2<ad63>144 519.6 Q F0(The maximum size of core \214les created)25.86 E
+F2<ad64>144 531.6 Q F0(The maximum size of a process')24.74 E 2.5(sd)
+-.55 G(ata se)-2.5 E(gment)-.15 E F2<ad65>144 543.6 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F2<ad66>144 555.6 Q
F0(The maximum size of \214les written by the shell and its children)
-26.97 E F1<ad69>144 436.8 Q F0(The maximum number of pending signals)
-27.52 E F1<ad6c>144 448.8 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F1<ad6d>144 460.8 Q F0
+26.97 E F2<ad69>144 567.6 Q F0(The maximum number of pending signals)
+27.52 E F2<ad6c>144 579.6 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F2<ad6d>144 591.6 Q F0
(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F1<ad6e>144 472.8 Q F0 .791(Th\
+(ystems do not honor this limit\))-2.5 E F2<ad6e>144 603.6 Q F0 .791(Th\
e maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-484.8 Q F1<ad70>144 496.8 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
-<ad71>144 508.8 Q F0
-(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
-520.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
-532.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 544.8 Q F0
-(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 556.8 Q
+24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
+(be set\))180 615.6 Q F2<ad70>144 627.6 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F2
+<ad71>144 639.6 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F2<ad72>144
+651.6 Q F0(The maximum real-time scheduling priority)25.86 E F2<ad73>144
+663.6 Q F0(The maximum stack size)26.41 E F2<ad74>144 675.6 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F2<ad75>144 687.6 Q
F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F1<ad76>144 568.8 Q F0 .47
+(ilable to a single user).25 E F2<ad76>144 699.6 Q F0 .47
(The maximum amount of virtual memory a)25.3 F -.25(va)-.2 G .47
(ilable to the shell and, on some systems, to).25 F(its children)180
-580.8 Q F1<ad78>144 592.8 Q F0(The maximum number of \214le locks)25.3 E
-F1<ad54>144 604.8 Q F0(The maximum number of threads)23.63 E(If)144
-621.6 Q F2(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G .343
-(n, it is the ne).15 F 2.843(wv)-.25 G .343
-(alue of the speci\214ed resource \(the)-3.093 F F1<ad61>2.843 E F0 .343
-(option is display only\).)2.843 F .343(If no)5.343 F .175(option is gi)
-144 633.6 R -.15(ve)-.25 G .175(n, then).15 F F1<ad66>2.675 E F0 .175
-(is assumed.)2.675 F -1.11(Va)5.175 G .175
-(lues are in 1024-byte increments, e)1.11 F .176(xcept for)-.15 F F1
-<ad74>2.676 E F0 2.676(,w)C .176(hich is in)-2.676 F(seconds,)144 645.6
-Q F1<ad70>2.516 E F0 2.516(,w)C .016
-(hich is in units of 512-byte blocks, and)-2.516 F F1<ad54>2.516 E F0(,)
-A F1<ad62>2.515 E F0(,)A F1<ad6e>2.515 E F0 2.515(,a)C(nd)-2.515 E F1
-<ad75>2.515 E F0 2.515(,w)C .015(hich are unscaled v)-2.515 F(al-)-.25 E
-3.787(ues. The)144 657.6 R 1.287(return status is 0 unless an in)3.787 F
--.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+711.6 Q(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(72)190.95 E 0 Cg
+EP
+%%Page: 73 73
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E/F1 10/Times-Bold@0 SF<ad78>144 84 Q F0
+(The maximum number of \214le locks)25.3 E F1<ad54>144 96 Q F0
+(The maximum number of threads)23.63 E(If)144 112.8 Q/F2 10
+/Times-Italic@0 SF(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G
+.468(n, and the).15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968
+F F2(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
+(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045
+(no option is gi)144 124.8 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66>
+2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1
+<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144
+136.8 R F1<ad70>2.902 E F0 2.902(,w)C .402
+(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,)
+A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1
+<ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144
+148.8 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083
+F -.25(va)-.4 G .583(lid option or ar).25 F .583
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
-669.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 686.4 Q F0([)2.5 E F1
+160.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 177.6 Q F0([)2.5 E F1
<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
-(The user \214le-creation mask is set to)144 698.4 R F2(mode)2.7 E F0
+(The user \214le-creation mask is set to)144 189.6 R F2(mode)2.7 E F0
5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 710.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-722.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+pted by)144 201.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+213.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
-(option causes the mask to be)2.882 F(GNU Bash-4.2)72 768 Q
-(2010 December 28)135.965 E(69)185.955 E 0 Cg EP
-%%Page: 70 70
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E .547(printed in symbolic form; the def)144 84 R .547
+(option causes the mask to be)2.882 F .547
+(printed in symbolic form; the def)144 225.6 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
-(he)-3.047 E/F1 10/Times-Bold@0 SF<ad70>3.047 E F0 .547
-(option is supplied, and)3.047 F/F2 10/Times-Italic@0 SF(mode)144.38 96
-Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 108 Q
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
+(mode)144.38 237.6 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 249.6 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
-(unalias)108 124.8 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E(Remo)144 136.8 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
+(unalias)108 266.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 278.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 148.8 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+F(remo)144 290.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 165.6 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 177.6 S 3.107
-(re).15 G(ach)-3.107 E F2(name)3.107 E F0 3.107(,r).18 G(emo)-3.107 E
-.907 -.15(ve t)-.15 H .607(he corresponding v).15 F .607
-(ariable or function.)-.25 F .606(If no options are supplied, or the)
-5.607 F F1<ad76>144 189.6 Q F0 .304(option is gi)2.804 F -.15(ve)-.25 G
-.304(n, each).15 F F2(name)3.164 E F0 .305(refers to a shell v)2.985 F
-2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .305
-(riables may not be unset.).25 F(If)5.305 E F1<ad66>144 201.6 Q F0 .46
-(is speci\214ed, each)2.96 F F2(name)3.32 E F0 .459
-(refers to a shell function, and the function de\214nition is remo)3.14
-F -.15(ve)-.15 G 2.959(d. Each).15 F .902(unset v)144 213.6 R .902
-(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
-(rom the en)-3.402 F .903(vironment passed to subsequent commands.)-.4 F
-(If)5.903 E(an)144 225.6 Q 6.916(yo)-.15 G(f)-6.916 E/F3 9/Times-Bold@0
-SF(COMP_W)6.916 E(ORDBREAKS)-.09 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)
-6.665 E F4(,)A F3(SECONDS)6.665 E F4(,)A F3(LINENO)6.665 E F4(,)A F3
-(HISTCMD)6.665 E F4(,)A F3(FUNCN)6.665 E(AME)-.18 E F4(,)A F3(GR)144
-237.6 Q(OUPS)-.27 E F4(,)A F0(or)2.522 E F3(DIRST)2.772 E -.495(AC)-.81
-G(K).495 E F0 .272(are unset, the)2.522 F 2.772(yl)-.15 G .272
-(ose their special properties, e)-2.772 F -.15(ve)-.25 G 2.772(ni).15 G
-2.772(ft)-2.772 G(he)-2.772 E 2.773(ya)-.15 G .273(re subsequently)
--2.773 F 2.5(reset. The)144 249.6 R -.15(ex)2.5 G
-(it status is true unless a).15 E F2(name)2.86 E F0(is readonly)2.68 E
-(.)-.65 E F1(wait)108 266.4 Q F0([)2.5 E F2 2.5(n.)C(..)-2.5 E F0(])A
--.8(Wa)144 278.4 S .288
-(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F2(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 290.4 R -.15(ve)-.25 G
-.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
-(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
-F2(n)3.583 E F0(is)3.463 E 1.266(not gi)144 302.4 R -.15(ve)-.25 G 1.266
-(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
-(nd the return status is zero.)-3.765 F(If)6.265 E F2(n)4.125 E F0 .456
-(speci\214es a non-e)144 314.4 R .457
-(xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F -.15(ex)144 326.4 S
-(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55 E
-/F5 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 343.2 Q F0(If)108 355.2 Q
-F1(bash)4.397 E F0 1.897(is started with the name)4.397 F F1(rbash)4.397
-E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<ad72>4.397 E F0 1.896
-(option is supplied at in)4.397 F -.2(vo)-.4 G 1.896
-(cation, the shell becomes).2 F 3.445(restricted. A)108 367.2 R .945
-(restricted shell is used to set up an en)3.445 F .946
-(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
-(beha)108 379.2 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1
+(is not a de\214ned alias.)2.68 E F1(unset)108 307.2 Q F0<5bad>2.5 E F1
+(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...])
+2.5 E -.15(Fo)144 319.2 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0
+3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327
+(he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327
+(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
+-.25 G 1.328(n, each).15 F F2(name)144.36 331.2 Q F0 1.551
+(refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551
+(ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va)
+4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 343.2 R F1
+<ad66>4.641 E F0 2.141(is speci\214ed, each)4.641 F F2(name)5.001 E F0
+2.141(refers to a shell function, and the function de\214nition is)4.821
+F(remo)144 355.2 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F1<ad6e>
+2.537 E F0 .037(option is supplied, and)2.537 F F2(name)2.537 E F0 .037
+(is a v)2.537 F .037(ariable with the)-.25 F F2(namer)2.537 E(ef)-.37 E
+F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.537 E .492
+(be unset rather than the v)144 367.2 R .492(ariable it references.)-.25
+F F1<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F1
+<ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F
+.221(options are supplied, each)144 379.2 R F2(name)2.721 E F0 .221
+(refers to a v)2.721 F .22(ariable; if there is no v)-.25 F .22
+(ariable by that name, an)-.25 F 2.72(yf)-.15 G(unc-)-2.72 E 1.188
+(tion with that name is unset.)144 391.2 R 1.189(Each unset v)6.189 F
+1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.689(df).15 G
+1.189(rom the en)-3.689 F(vironment)-.4 E 3.206
+(passed to subsequent commands.)144 403.2 R 3.206(If an)8.206 F 5.706
+(yo)-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09
+E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E
+F4(,)A F3(LINENO)144 415.2 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
+4.347 E(AME)-.18 E F4(,)A F3(GR)4.347 E(OUPS)-.27 E F4(,)A F0(or)4.348 E
+F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348
+F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144
+427.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15
+G(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a)
+-.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 444 Q
+F0([)2.5 E F1<ad6e>A F0 2.5(][)C F2 2.5(n.)-2.5 G(..)-2.5 E F0(])A -.8
+(Wa)144 456 S .027(it for each speci\214ed child process and return its\
+ termination status.).8 F(Each)5.026 E F2(n)2.886 E F0 .026
+(may be a process ID)2.766 F .256
+(or a job speci\214cation; if a job spec is gi)144 468 R -.15(ve)-.25 G
+.256(n, all processes in that job').15 F 2.756(sp)-.55 G .256
+(ipeline are w)-2.756 F .256(aited for)-.1 F 5.256(.I)-.55 G(f)-5.256 E
+F2(n)3.116 E F0 .318(is not gi)144 480 R -.15(ve)-.25 G .318
+(n, all currently acti).15 F .618 -.15(ve c)-.25 H .318
+(hild processes are w).15 F .318(aited for)-.1 F 2.818(,a)-.4 G .318
+(nd the return status is zero.)-2.818 F .317(If the)5.317 F F1<ad6e>144
+492 Q F0 .361(option is supplied,)2.861 F F1(wait)2.861 E F0 -.1(wa)
+2.861 G .361(its for an).1 F 2.862(yj)-.15 G .362
+(ob to terminate and returns its e)-2.862 F .362(xit status.)-.15 F(If)
+5.362 E F2(n)3.222 E F0(speci\214es)3.102 E 2.596(an)144 504 S(on-e)
+-2.596 E .096(xistent process or job, the return status is 127.)-.15 F
+.095(Otherwise, the return status is the e)5.095 F .095(xit status)-.15
+F(of the last process or job w)144 516 Q(aited for)-.1 E(.)-.55 E/F5
+10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 532.8 Q F0(If)108 544.8 Q F1
+(bash)4.396 E F0 1.896(is started with the name)4.396 F F1(rbash)4.397 E
+F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F1<ad72>4.397 E F0 1.897
+(option is supplied at in)4.397 F -.2(vo)-.4 G 1.897
+(cation, the shell becomes).2 F 3.446(restricted. A)108 556.8 R .945
+(restricted shell is used to set up an en)3.446 F .945
+(vironment more controlled than the standard shell.)-.4 F(It)5.945 E
+(beha)108 568.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F1
(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
-(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108 396
-S(hanging directories with)-32.5 E F1(cd)2.5 E F0 32.5<8373>108 412.8 S
-(etting or unsetting the v)-32.5 E(alues of)-.25 E F3(SHELL)2.5 E F4(,)A
-F3 -.666(PA)2.25 G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)2.25 E
-F3 -.27(BA)2.5 G(SH_ENV).27 E F0 32.5<8373>108 429.6 S
+(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108
+585.6 S(hanging directories with)-32.5 E F1(cd)2.5 E F0 32.5<8373>108
+602.4 S(etting or unsetting the v)-32.5 E(alues of)-.25 E F3(SHELL)2.5 E
+F4(,)A F3 -.666(PA)2.25 G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)
+2.25 E F3 -.27(BA)2.5 G(SH_ENV).27 E F0 32.5<8373>108 619.2 S
(pecifying command names containing)-32.5 E F1(/)2.5 E F0 32.5<8373>108
-446.4 S(pecifying a \214le name containing a)-32.5 E F1(/)2.5 E F0
+636 S(pecifying a \214lename containing a)-32.5 E F1(/)2.5 E F0
(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E F0 -.2(bu)5 G
-(iltin command).2 E 32.5<8373>108 463.2 S .45
+(iltin command).2 E 32.5<8373>108 652.8 S .449
(pecifying a \214lename containing a slash as an ar)-32.5 F .449
-(gument to the)-.18 F F1<ad70>2.949 E F0 .449(option to the)2.949 F F1
-(hash)2.949 E F0 -.2(bu)2.949 G .449(iltin com-).2 F(mand)144 475.2 Q
-32.5<8369>108 492 S(mporting function de\214nitions from the shell en)
--32.5 E(vironment at startup)-.4 E 32.5<8370>108 508.8 S(arsing the v)
+(gument to the)-.18 F F1<ad70>2.95 E F0 .45(option to the)2.95 F F1
+(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 664.8 Q 32.5
+<8369>108 681.6 S(mporting function de\214nitions from the shell en)
+-32.5 E(vironment at startup)-.4 E 32.5<8370>108 698.4 S(arsing the v)
-32.5 E(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E
-(vironment at startup)-.4 E 32.5<8372>108 525.6 S(edirecting output usi\
-ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E 32.5
-<8375>108 542.4 S(sing the)-32.5 E F1(exec)2.5 E F0 -.2(bu)2.5 G
+(vironment at startup)-.4 E 32.5<8372>108 715.2 S(edirecting output usi\
+ng the >, >|, <>, >&, &>, and >> redirection operators)-32.5 E
+(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(73)190.95 E 0 Cg EP
+%%Page: 74 74
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
+-.35 E 32.5<8375>108 84 S(sing the)-32.5 E/F1 10/Times-Bold@0 SF(exec)
+2.5 E F0 -.2(bu)2.5 G
(iltin command to replace the shell with another command).2 E 32.5<8361>
-108 559.2 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
+108 100.8 S(dding or deleting b)-32.5 E(uiltin commands with the)-.2 E
F1<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1
-(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8375>108 576 S
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8375>108 117.6 S
(sing the)-32.5 E F1(enable)2.5 E F0 -.2(bu)2.5 G
(iltin command to enable disabled shell b).2 E(uiltins)-.2 E 32.5<8373>
-108 592.8 S(pecifying the)-32.5 E F1<ad70>2.5 E F0(option to the)2.5 E
-F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 609.6
+108 134.4 S(pecifying the)-32.5 E F1<ad70>2.5 E F0(option to the)2.5 E
+F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E 32.5<8374>108 151.2
S(urning of)-32.5 E 2.5(fr)-.25 G(estricted mode with)-2.5 E F1(set +r)
2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 626.4 Q 2.5(ys)-.15 G
+(These restrictions are enforced after an)108 168 Q 2.5(ys)-.15 G
(tartup \214les are read.)-2.5 E 1.566
-(When a command that is found to be a shell script is e)108 643.2 R -.15
-(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0
-(abo)3.817 E -.15(ve)-.15 G(\),).15 E F1(rbash)108 655.2 Q F0(turns of)
-2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
-E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F5(SEE ALSO)72
-672 Q F2(Bash Refer)108 684 Q(ence Manual)-.37 E F0 2.5(,B)C(rian F)-2.5
-E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu Readline Libr)108 696 Q
+(When a command that is found to be a shell script is e)108 184.8 R -.15
+(xe)-.15 G 1.566(cuted \(see).15 F/F2 9/Times-Bold@0 SF 1.566
+(COMMAND EXECUTION)4.066 F F0(abo)3.816 E -.15(ve)-.15 G(\),).15 E F1
+(rbash)108 196.8 Q F0(turns of)2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H
+(estrictions in the shell spa).15 E(wned to e)-.15 E -.15(xe)-.15 G
+(cute the script.).15 E/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 213.6 Q/F4
+10/Times-Italic@0 SF(Bash Refer)108 225.6 Q(ence Manual)-.37 E F0 2.5
+(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F4
+(The Gnu Readline Libr)108 237.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu History Libr)108 249.6 Q
(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(70)185.955 E 0 Cg EP
-%%Page: 71 71
+F4 -.8(Po)108 261.6 S(rtable Oper).8 E
+(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
+-.8 E F0 2.5(,I)C(EEE --)-2.5 E(http://pubs.opengroup.or)144 273.6 Q
+(g/onlinepubs/9699919799/)-.18 E(http://tiswww)108 285.6 Q
+(.case.edu/~chet/bash/POSIX -- a description of posix mode)-.65 E F4(sh)
+108 297.6 Q F0(\(1\),)A F4(ksh)2.5 E F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A
+F4(emacs)108 309.6 Q F0(\(1\),)A F4(vi)2.5 E F0(\(1\))A F4 -.37(re)108
+321.6 S(adline).37 E F0(\(3\))A F3(FILES)72 338.4 Q F4(/bin/bash)109.666
+350.4 Q F0(The)144 362.4 Q F1(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E
+F4(/etc/pr)109.666 374.4 Q(o\214le)-.45 E F0
+(The systemwide initialization \214le, e)144 386.4 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bash_pr)109.666 398.4 Q(o\214le)-.45
+E F0(The personal initialization \214le, e)144 410.4 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bashr)109.666 422.4 Q(c)-.37 E F0
+(The indi)144 434.4 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F4(~/.bash_lo)109.666 446.4 Q(gout)-.1 E F0
+(The indi)144 458.4 Q(vidual login shell cleanup \214le, e)-.25 E -.15
+(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F4(~/.inputr)
+109.666 470.4 Q(c)-.37 E F0(Indi)144 482.4 Q(vidual)-.25 E F4 -.37(re)
+2.5 G(adline).37 E F0(initialization \214le)2.5 E F3 -.548(AU)72 499.2 S
+(THORS).548 E F0(Brian F)108 511.2 Q(ox, Free Softw)-.15 E(are F)-.1 E
+(oundation)-.15 E(bfox@gnu.or)108 523.2 Q(g)-.18 E(Chet Rame)108 540 Q
+1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)
+-2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108 552 Q(y@case.edu)-.15 E
+F3 -.11(BU)72 568.8 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .567
+(If you \214nd a b)108 580.8 R .568(ug in)-.2 F F1(bash,)3.068 E F0 .568
+(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
+3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .568(ug, and)-.2
+F 5.626(that it appears in the latest v)108 592.8 R 5.625(ersion of)-.15
+F F1(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
+(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
+(ilable from).25 F F4(ftp://ftp.gnu.or)108 604.8 Q(g/pub/gnu/bash/)-.37
+E F0(.)A .41(Once you ha)108 621.6 R .71 -.15(ve d)-.2 H .41
+(etermined that a b).15 F .41(ug actually e)-.2 F .411(xists, use the)
+-.15 F F4(bashb)3.181 E(ug)-.2 E F0 .411(command to submit a b)3.131 F
+.411(ug report.)-.2 F(If)5.411 E .595(you ha)108 633.6 R .895 -.15
+(ve a \214)-.2 H .595(x, you are encouraged to mail that as well!).15 F
+.594(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F
+(be mailed to)108 645.6 Q F4 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
+(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F1(gnu.bash.b)2.5 E(ug)
+-.2 E F0(.)A(ALL b)108 662.4 Q(ug reports should include:)-.2 E(The v)
+108 679.2 Q(ersion number of)-.15 E F1(bash)2.5 E F0(The hardw)108 691.2
+Q(are and operating system)-.1 E(The compiler used to compile)108 703.2
+Q(GNU Bash 4.3)72 768 Q(2014 February 2)141.79 E(74)190.95 E 0 Cg EP
+%%Page: 75 75
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Italic@0 SF(The Gnu History Libr)108 84 Q(ary)-.15 E
-F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F1 -.8(Po)108
-96 S(rtable Oper).8 E(ating System Interface \(POSIX\) P)-.15 E
-(art 2: Shell and Utilities)-.8 E F0 2.5(,I)C(EEE)-2.5 E F1(sh)108 108 Q
-F0(\(1\),)A F1(ksh)2.5 E F0(\(1\),)A F1(csh)2.5 E F0(\(1\))A F1(emacs)
-108 120 Q F0(\(1\),)A F1(vi)2.5 E F0(\(1\))A F1 -.37(re)108 132 S
-(adline).37 E F0(\(3\))A/F2 10.95/Times-Bold@0 SF(FILES)72 148.8 Q F1
-(/bin/bash)109.666 160.8 Q F0(The)144 172.8 Q/F3 10/Times-Bold@0 SF
-(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E F1(/etc/pr)109.666 184.8 Q
-(o\214le)-.45 E F0(The systemwide initialization \214le, e)144 196.8 Q
--.15(xe)-.15 G(cuted for login shells).15 E F1(~/.bash_pr)109.666 208.8
-Q(o\214le)-.45 E F0(The personal initialization \214le, e)144 220.8 Q
--.15(xe)-.15 G(cuted for login shells).15 E F1(~/.bashr)109.666 232.8 Q
-(c)-.37 E F0(The indi)144 244.8 Q(vidual per)-.25 E(-interacti)-.2 E
--.15(ve)-.25 G(-shell startup \214le).15 E F1(~/.bash_lo)109.666 256.8 Q
-(gout)-.1 E F0(The indi)144 268.8 Q
-(vidual login shell cleanup \214le, e)-.25 E -.15(xe)-.15 G
-(cuted when a login shell e).15 E(xits)-.15 E F1(~/.inputr)109.666 280.8
-Q(c)-.37 E F0(Indi)144 292.8 Q(vidual)-.25 E F1 -.37(re)2.5 G(adline).37
-E F0(initialization \214le)2.5 E F2 -.548(AU)72 309.6 S(THORS).548 E F0
-(Brian F)108 321.6 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
-(bfox@gnu.or)108 333.6 Q(g)-.18 E(Chet Rame)108 350.4 Q 1.3 -.65(y, C)
--.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)
--.25 G(rsity).15 E(chet.rame)108 362.4 Q(y@case.edu)-.15 E F2 -.11(BU)72
-379.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568
-(If you \214nd a b)108 391.2 R .568(ug in)-.2 F F3(bash,)3.068 E F0 .568
-(you should report it.)3.068 F .568(But \214rst, you should mak)5.568 F
-3.068(es)-.1 G .568(ure that it really is a b)-3.068 F .567(ug, and)-.2
-F 5.625(that it appears in the latest v)108 403.2 R 5.625(ersion of)-.15
-F F3(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
-(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
-(ilable from).25 F F1(ftp://ftp.gnu.or)108 415.2 Q(g/pub/gnu/bash/)-.37
-E F0(.)A .411(Once you ha)108 432 R .711 -.15(ve d)-.2 H .411
-(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
--.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
-(ug report.)-.2 F(If)5.41 E .594(you ha)108 444 R .894 -.15(ve a \214)
--.2 H .595(x, you are encouraged to mail that as well!).15 F .595
-(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
-(be mailed to)108 456 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
-(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug)
--.2 E F0(.)A(ALL b)108 472.8 Q(ug reports should include:)-.2 E(The v)
-108 489.6 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 501.6
-Q(are and operating system)-.1 E(The compiler used to compile)108 513.6
-Q 2.5(Ad)108 525.6 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2
-E 2.5(As)108 537.6 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15
-G(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 554.4 Q(ug)-.2 E F0
+-.35 E 2.5(Ad)108 84 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)
+-.2 E 2.5(As)108 96 S(hort script or `recipe' which e)-2.5 E -.15(xe)
+-.15 G(rcises the b).15 E(ug)-.2 E/F1 10/Times-Italic@0 SF(bashb)108.27
+112.8 Q(ug)-.2 E F0
(inserts the \214rst three items automatically into the template it pro)
2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
-571.2 Q(ug reports concerning this manual page should be directed to)-.2
+129.6 Q(ug reports concerning this manual page should be directed to)-.2
E F1 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.)
-.25 E F2 -.11(BU)72 588 S(GS).11 E F0(It')108 600 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.869
-(There are some subtle dif)108 616.8 R 1.869(ferences between)-.25 F F3
-(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
-F3(sh)4.368 E F0 4.368(,m)C 1.868(ostly because of the)-4.368 F/F4 9
-/Times-Bold@0 SF(POSIX)108 628.8 Q F0(speci\214cation.)2.25 E
-(Aliases are confusing in some uses.)108 645.6 Q(Shell b)108 662.4 Q
+.25 E/F2 10.95/Times-Bold@0 SF -.11(BU)72 146.4 S(GS).11 E F0(It')108
+158.4 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868
+(There are some subtle dif)108 175.2 R 1.868(ferences between)-.25 F/F3
+10/Times-Bold@0 SF(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869
+(ersions of)-.15 F F3(sh)4.369 E F0 4.369(,m)C 1.869
+(ostly because of the)-4.369 F/F4 9/Times-Bold@0 SF(POSIX)108 187.2 Q F0
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 204 Q
+(Shell b)108 220.8 Q
(uiltin commands and functions are not stoppable/restartable.)-.2 E
1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 679.2 R .39
-(process suspension is attempted.)108 691.2 R .389
-(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
-G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
-(mand in the sequence.)108 703.2 R .192(It suf)5.192 F .192(\214ces to \
-place the sequence of commands between parentheses to force it into a)
--.25 F(subshell, which may be stopped as a unit.)108 715.2 Q
-(GNU Bash-4.2)72 768 Q(2010 December 28)135.965 E(71)185.955 E 0 Cg EP
-%%Page: 72 72
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(Array v)108 84 Q(ariables may not \(yet\) be e)-.25 E(xported.)
--.15 E(There may be only one acti)108 100.8 Q .3 -.15(ve c)-.25 H
-(oprocess at a time.).15 E(GNU Bash-4.2)72 768 Q(2010 December 28)
-135.965 E(72)185.955 E 0 Cg EP
+re not handled gracefully when)108 237.6 R .389
+(process suspension is attempted.)108 249.6 R .389
+(When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15
+G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.)
+108 261.6 R .192(It suf)5.193 F .192(\214ces to place the sequence of c\
+ommands between parentheses to force it into a)-.25 F
+(subshell, which may be stopped as a unit.)108 273.6 Q(Array v)108 290.4
+Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(There may be only one acti)108 307.2 Q .3 -.15(ve c)-.25 H
+(oprocess at a time.).15 E(GNU Bash 4.3)72 768 Q(2014 February 2)141.79
+E(75)190.95 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/bashref.dvi b/doc/bashref.dvi
index 5494dbf1..f56627f8 100644
--- a/doc/bashref.dvi
+++ b/doc/bashref.dvi
Binary files differ
diff --git a/doc/bashref.html b/doc/bashref.html
index ee634229..6f927076 100644
--- a/doc/bashref.html
+++ b/doc/bashref.html
@@ -1,6 +1,6 @@
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on December, 28 2010 by texi2html 1.64 -->
+<!-- Created on February, 24 2014 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
@@ -27,27 +27,28 @@ Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 28 December 2010).
+the Bash shell (version 4.3, 2 February 2014).
+The Bash home page is <A HREF="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</A>.
</P><P>
-This is Edition 4.2, last updated 28 December 2010,
+This is Edition 4.3, last updated 2 February 2014,
of <CITE>The GNU Bash Reference Manual</CITE>,
-for <CODE>Bash</CODE>, Version 4.2.
+for <CODE>Bash</CODE>, Version 4.3.
</P><P>
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
borrowed concepts from are the Bourne Shell (<TT>`sh'</TT>), the Korn Shell
(<TT>`ksh'</TT>), and the C-shell (<TT>`csh'</TT> and its successor,
-<TT>`tcsh'</TT>). The following menu breaks the features up into
-categories based upon which one of these other shells inspired the
-feature.
+<TT>`tcsh'</TT>). The following menu breaks the features up into
+categories, noting which features were inspired by other shells and
+which are specific to Bash.
</P><P>
This manual is meant as a brief introduction to features found in
@@ -67,14 +68,14 @@ reference on shell behavior.
to use it.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC96">8. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Chapter describing the command line
editing features.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC120">9. Using History Interactively</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Command History Expansion</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC127">10. Installing Bash</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to build and install Bash on your system.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC136">A. Reporting Bugs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to report bugs in Bash.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC137">B. Major Differences From The Bourne Shell</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A terse list of the differences
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC121">9. Using History Interactively</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Command History Expansion</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC128">10. Installing Bash</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to build and install Bash on your system.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC137">A. Reporting Bugs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to report bugs in Bash.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC138">B. Major Differences From The Bourne Shell</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A terse list of the differences
between Bash and historical
versions of /bin/sh.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC139">C. GNU Free Documentation License</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Copying and sharing this documentation.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC141">D. Indexes</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Various indexes for this manual.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC140">C. GNU Free Documentation License</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Copying and sharing this documentation.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC142">D. Indexes</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Various indexes for this manual.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
@@ -88,7 +89,7 @@ reference on shell behavior.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<A NAME="Introduction"></A>
@@ -111,7 +112,7 @@ reference on shell behavior.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.1 What is Bash? </H2>
@@ -155,7 +156,7 @@ and Windows platforms.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 1.2 What is a shell? </H2>
@@ -199,7 +200,7 @@ Shells also provide a small set of built-in
commands (<EM>builtins</EM>) implementing functionality impossible
or inconvenient to obtain via separate utilities.
For example, <CODE>cd</CODE>, <CODE>break</CODE>, <CODE>continue</CODE>, and
-<CODE>exec</CODE>) cannot be implemented outside of the shell because
+<CODE>exec</CODE> cannot be implemented outside of the shell because
they directly manipulate the shell itself.
The <CODE>history</CODE>, <CODE>getopts</CODE>, <CODE>kill</CODE>, or <CODE>pwd</CODE>
builtins, among others, could be implemented in separate utilities,
@@ -232,7 +233,7 @@ described in this manual.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC5"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 2. Definitions </H1>
@@ -381,7 +382,7 @@ Words may not include unquoted <CODE>metacharacters</CODE>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC59"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 3. Basic Shell Features </H1>
@@ -427,7 +428,7 @@ and to named files, and how the shell executes commands.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.1 Shell Syntax </H2>
@@ -467,7 +468,7 @@ available for further inspection or processing.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.1.1 Shell Operation </H3>
@@ -532,7 +533,7 @@ status (see section <A HREF="bashref.html#SEC56">3.7.5 Exit Status</A>).
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.1.2 Quoting </H3>
@@ -560,9 +561,9 @@ Each of the shell metacharacters (see section <A HREF="bashref.html#SEC4">2. Def
has special meaning to the shell and must be quoted if it is to
represent itself.
When the command history expansion facilities are being used
-(see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>), the
+(see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>), the
<VAR>history expansion</VAR> character, usually <SAMP>`!'</SAMP>, must be quoted
-to prevent history expansion. See section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>, for
+to prevent history expansion. See section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>, for
more details concerning history expansion.
</P><P>
@@ -581,7 +582,7 @@ There are three quoting mechanisms: the
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.1.2.1 Escape Character </H4>
@@ -605,7 +606,7 @@ the input stream and effectively ignored).
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.1.2.2 Single Quotes </H4>
@@ -628,7 +629,7 @@ between single quotes, even when preceded by a backslash.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.1.2.3 Double Quotes </H4>
@@ -669,7 +670,7 @@ when in double quotes (see section <A HREF="bashref.html#SEC32">3.5.3 Shell Para
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.1.2.4 ANSI-C Quoting </H4>
@@ -738,7 +739,7 @@ been present.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC14"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.1.2.5 Locale-Specific Translation </H4>
@@ -777,7 +778,7 @@ fashion:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC15"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.1.3 Comments </H3>
@@ -807,7 +808,7 @@ a shell interactive.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.2 Shell Commands </H2>
@@ -846,7 +847,7 @@ some other grouping.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.1 Simple Commands </H3>
@@ -877,7 +878,7 @@ the command was terminated by signal <VAR>n</VAR>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.2 Pipelines </H3>
@@ -892,7 +893,7 @@ the control operators <SAMP>`|'</SAMP> or <SAMP>`|&#38;'</SAMP>.
<A NAME="IDX25"></A>
<A NAME="IDX26"></A>
The format for a pipeline is
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>[<CODE>time</CODE> [<CODE>-p</CODE>]] [<CODE>!</CODE>] <VAR>command1</VAR> [ [<CODE>|</CODE> or <CODE>|&#38;</CODE>] <VAR>command2</VAR> <small>...</small>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[time [-p]] [!] <VAR>command1</VAR> [ | or |&#38; <VAR>command2</VAR> ] <small>...</small>
</pre></td></tr></table></P><P>
The output of each command in the pipeline is connected via a pipe
@@ -902,9 +903,11 @@ connection is performed before any redirections specified by the
command.
</P><P>
-If <SAMP>`|&#38;'</SAMP> is used, the standard error of <VAR>command1</VAR> is connected to
-<VAR>command2</VAR>'s standard input through the pipe; it is shorthand for
-<CODE>2&#62;&#38;1 |</CODE>. This implicit redirection of the standard error is
+If <SAMP>`|&#38;'</SAMP> is used, <VAR>command1</VAR>'s standard error, in addition to
+its standard output, is connected to
+<VAR>command2</VAR>'s standard input through the pipe;
+it is shorthand for <CODE>2&#62;&#38;1 |</CODE>.
+This implicit redirection of the standard error to the standard output is
performed after any redirections specified by the command.
</P><P>
@@ -962,7 +965,7 @@ returning a value.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.3 Lists of Commands </H3>
@@ -1037,7 +1040,7 @@ executed in the list.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.4 Compound Commands </H3>
@@ -1058,6 +1061,11 @@ Any redirections (see section <A HREF="bashref.html#SEC40">3.6 Redirections</A>)
apply to all commands within that compound command unless explicitly overridden.
</P><P>
+In most cases a list of commands in a compound command's description may be
+separated from the rest of the command by one or more newlines, and may be
+followed by a newline in place of a semicolon.
+</P><P>
+
Bash provides looping constructs, conditional commands, and mechanisms
to group commands and execute them as a unit.
</P><P>
@@ -1073,7 +1081,7 @@ to group commands and execute them as a unit.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.2.4.1 Looping Constructs </H4>
@@ -1093,18 +1101,24 @@ command's syntax, it may be replaced with one or more newlines.
<A NAME="IDX28"></A>
<A NAME="IDX29"></A>
The syntax of the <CODE>until</CODE> command is:
+<P>
+
<TABLE><tr><td>&nbsp;</td><td class=example><pre>until <VAR>test-commands</VAR>; do <VAR>consequent-commands</VAR>; done
-</pre></td></tr></table>Execute <VAR>consequent-commands</VAR> as long as
+</pre></td></tr></table></P><P>
+
+Execute <VAR>consequent-commands</VAR> as long as
<VAR>test-commands</VAR> has an exit status which is not zero.
The return status is the exit status of the last command executed
in <VAR>consequent-commands</VAR>, or zero if none was executed.
-<P>
+</P><P>
<DT><CODE>while</CODE>
<DD><A NAME="IDX30"></A>
The syntax of the <CODE>while</CODE> command is:
+<P>
+
<TABLE><tr><td>&nbsp;</td><td class=example><pre>while <VAR>test-commands</VAR>; do <VAR>consequent-commands</VAR>; done
-</pre></td></tr></table><P>
+</pre></td></tr></table></P><P>
Execute <VAR>consequent-commands</VAR> as long as
<VAR>test-commands</VAR> has an exit status of zero.
@@ -1118,7 +1132,9 @@ The syntax of the <CODE>for</CODE> command is:
<P>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>for <VAR>name</VAR> [ [in [<VAR>words</VAR> <small>...</small>] ] ; ] do <VAR>commands</VAR>; done
-</pre></td></tr></table>Expand <VAR>words</VAR>, and execute <VAR>commands</VAR> once for each member
+</pre></td></tr></table></P><P>
+
+Expand <VAR>words</VAR>, and execute <VAR>commands</VAR> once for each member
in the resultant list, with <VAR>name</VAR> bound to the current member.
If <SAMP>`in <VAR>words</VAR>'</SAMP> is not present, the <CODE>for</CODE> command
executes the <VAR>commands</VAR> once for each positional parameter that is
@@ -1133,7 +1149,9 @@ An alternate form of the <CODE>for</CODE> command is also supported:
</P><P>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>for (( <VAR>expr1</VAR> ; <VAR>expr2</VAR> ; <VAR>expr3</VAR> )) ; do <VAR>commands</VAR> ; done
-</pre></td></tr></table>First, the arithmetic expression <VAR>expr1</VAR> is evaluated according
+</pre></td></tr></table></P><P>
+
+First, the arithmetic expression <VAR>expr1</VAR> is evaluated according
to the rules described below (see section <A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A>).
The arithmetic expression <VAR>expr2</VAR> is then evaluated repeatedly
until it evaluates to zero.
@@ -1142,8 +1160,6 @@ executed and the arithmetic expression <VAR>expr3</VAR> is evaluated.
If any expression is omitted, it behaves as if it evaluates to 1.
The return value is the exit status of the last command in <VAR>commands</VAR>
that is executed, or false if any of the expressions is invalid.
-</P><P>
-
</DL>
<P>
@@ -1162,7 +1178,7 @@ may be used to control loop execution.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.2.4.2 Conditional Constructs </H4>
@@ -1207,7 +1223,7 @@ zero if no condition tested true.
The syntax of the <CODE>case</CODE> command is:
<P>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>case <VAR>word</VAR> in [ [(] <VAR>pattern</VAR> [| <VAR>pattern</VAR>]<small>...</small>) <VAR>command-list</VAR> ;;]<small>...</small> esac</CODE>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>case <VAR>word</VAR> in [ [(] <VAR>pattern</VAR> [| <VAR>pattern</VAR>]<small>...</small>) <VAR>command-list</VAR> ;;]<small>...</small> esac
</pre></td></tr></table></P><P>
<CODE>case</CODE> will selectively execute the <VAR>command-list</VAR> corresponding to
@@ -1233,6 +1249,8 @@ There may be an arbitrary number of <CODE>case</CODE> clauses, each terminated
by a <SAMP>`;;'</SAMP>, <SAMP>`;&#38;'</SAMP>, or <SAMP>`;;&#38;'</SAMP>.
The first pattern that matches determines the
command-list that is executed.
+It's a common idiom to use <SAMP>`*'</SAMP> as the final pattern to define the
+default case, since that pattern will always match.
</P><P>
Here is an example using <CODE>case</CODE> in a script that could be used to
@@ -1331,28 +1349,30 @@ the conditional expression <VAR>expression</VAR>.
Expressions are composed of the primaries described below in
<A HREF="bashref.html#SEC83">6.4 Bash Conditional Expressions</A>.
Word splitting and filename expansion are not performed on the words
-between the <SAMP>`[['</SAMP> and <SAMP>`]]'</SAMP>; tilde expansion, parameter and
+between the <CODE>[[</CODE> and <CODE>]]</CODE>; tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
substitution, and quote removal are performed.
Conditional operators such as <SAMP>`-f'</SAMP> must be unquoted to be recognized
as primaries.
</P><P>
-When used with <SAMP>`[['</SAMP>, the <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators sort
+When used with <CODE>[[</CODE>, the <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators sort
lexicographically using the current locale.
</P><P>
When the <SAMP>`=='</SAMP> and <SAMP>`!='</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 <A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A>.
+to the rules described below in <A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A>,
+as if the <CODE>extglob</CODE> shell option were enabled.
+The <SAMP>`='</SAMP> operator is identical to <SAMP>`=='</SAMP>.
If the shell option <CODE>nocasematch</CODE>
(see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>)
is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (<SAMP>`=='</SAMP>) or does not
match (<SAMP>`!='</SAMP>)the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force it to be matched as a
-string.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
</P><P>
An additional binary operator, <SAMP>`=~'</SAMP>, is available, with the same
@@ -1367,8 +1387,12 @@ If the shell option <CODE>nocasematch</CODE>
(see the description of <CODE>shopt</CODE> in <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>)
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.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
+Bracket expressions in regular expressions must be treated carefully,
+since normal quoting characters lose their meanings between brackets.
+If the pattern is stored in a shell variable, quoting the variable
+expansion forces the entire pattern to be matched as a string.
Substrings matched by parenthesized subexpressions within the regular
expression are saved in the array variable <CODE>BASH_REMATCH</CODE>.
The element of <CODE>BASH_REMATCH</CODE> with index 0 is the portion of the string
@@ -1377,6 +1401,57 @@ The element of <CODE>BASH_REMATCH</CODE> with index <VAR>n</VAR> is the portion
string matching the <VAR>n</VAR>th parenthesized subexpression.
</P><P>
+For example, the following will match a line
+(stored in the shell variable <VAR>line</VAR>)
+if there is a sequence of characters in the value consisting of
+any number, including zero, of
+space characters, zero or one instances of <SAMP>`a'</SAMP>, then a <SAMP>`b'</SAMP>:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>[[ $line =~ [[:space:]]*(a)?b ]]
+</pre></td></tr></table></P><P>
+
+That means values like <SAMP>`aab'</SAMP> and <SAMP>` aaaaaab'</SAMP> will match, as
+will a line containing a <SAMP>`b'</SAMP> anywhere in its value.
+</P><P>
+
+Storing the regular expression in a shell variable is often a useful
+way to avoid problems with quoting characters that are special to the
+shell.
+It is sometimes difficult to specify a regular expression literally
+without using quotes, or to keep track of the quoting used by regular
+expressions while paying attention to the shell's quote removal.
+Using a shell variable to store the pattern decreases these problems.
+For example, the following is equivalent to the above:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>pattern='[[:space:]]*(a)?b'
+[[ $line =~ $pattern ]]
+</pre></td></tr></table></P><P>
+
+If you want to match a character that's special to the regular expression
+grammar, it has to be quoted to remove its special meaning.
+This means that in the pattern <SAMP>`xxx.txt'</SAMP>, the <SAMP>`.'</SAMP> matches any
+character in the string (its usual regular expression meaning), but in the
+pattern <SAMP>`"xxx.txt"'</SAMP> it can only match a literal <SAMP>`.'</SAMP>.
+Shell programmers should take special care with backslashes, since backslashes
+are used both by the shell and regular expressions to remove the special
+meaning from the following character.
+The following two sets of commands are <EM>not</EM> equivalent:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>pattern='\.'
+
+[[ . =~ $pattern ]]
+[[ . =~ \. ]]
+
+[[ . =~ "$pattern" ]]
+[[ . =~ '\.' ]]
+</pre></td></tr></table></P><P>
+
+The first two matches will succeed, but the second two will not, because
+in the second two the backslash will be part of the pattern to be matched.
+In the first two examples, the backslash removes the special meaning from
+<SAMP>`.'</SAMP>, so the literal <SAMP>`.'</SAMP> matches.
+If the string in the first examples were anything other than <SAMP>`.'</SAMP>, say
+<SAMP>`a'</SAMP>, the pattern would not match, because the quoted <SAMP>`.'</SAMP> in the
+pattern loses its special meaning of matching any single character.
+</P><P>
+
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
</P><P>
@@ -1398,11 +1473,11 @@ This may be used to override the normal precedence of operators.
<DT><CODE><VAR>expression1</VAR> || <VAR>expression2</VAR></CODE>
<DD>True if either <VAR>expression1</VAR> or <VAR>expression2</VAR> is true.
</DL>
+<P>
+
The <CODE>&#38;&#38;</CODE> and <CODE>||</CODE> operators do not evaluate <VAR>expression2</VAR> if the
value of <VAR>expression1</VAR> is sufficient to determine the return
value of the entire conditional expression.
-<P>
-
</DL>
<P>
@@ -1417,7 +1492,7 @@ value of the entire conditional expression.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC23"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.2.4.3 Grouping Commands </H4>
@@ -1478,7 +1553,7 @@ The exit status of both of these constructs is the exit status of
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.5 Coprocesses </H3>
@@ -1493,7 +1568,7 @@ established between the executing shell and the coprocess.
</P><P>
The format for a coprocess is:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>coproc</CODE> [<VAR>NAME</VAR>] <VAR>command</VAR> [<VAR>redirections</VAR>]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>coproc [<VAR>NAME</VAR>] <VAR>command</VAR> [<VAR>redirections</VAR>]
</pre></td></tr></table></P><P>
This creates a coprocess named <VAR>NAME</VAR>.
@@ -1503,27 +1578,30 @@ command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>); ot
the first word of the simple command.
</P><P>
-When the coproc is executed, the shell creates an array variable
+When the coprocess is executed, the shell creates an array variable
(see section <A HREF="bashref.html#SEC86">6.7 Arrays</A>)
-named <VAR>NAME</VAR> in the context of the executing shell.
+named <CODE>NAME</CODE> in the context of the executing shell.
The standard output of <VAR>command</VAR>
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to <VAR>NAME</VAR>[0].
+and that file descriptor is assigned to <CODE>NAME</CODE>[0].
The standard input of <VAR>command</VAR>
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to <VAR>NAME</VAR>[1].
+and that file descriptor is assigned to <CODE>NAME</CODE>[1].
This pipe is established before any redirections specified by the
command (see section <A HREF="bashref.html#SEC40">3.6 Redirections</A>).
The file descriptors can be utilized as arguments to shell commands
and redirections using standard word expansions.
+The file descriptors are not available in subshells.
</P><P>
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable <VAR>NAME</VAR>_PID.
+available as the value of the variable <CODE>NAME</CODE>_PID.
The <CODE>wait</CODE>
builtin command may be used to wait for the coprocess to terminate.
</P><P>
+Since the coprocess is created as an asynchronous command,
+the <CODE>coproc</CODE> command always returns success.
The return status of a coprocess is the exit status of <VAR>command</VAR>.
</P><P>
@@ -1538,50 +1616,66 @@ The return status of a coprocess is the exit status of <VAR>command</VAR>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC25"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.2.6 GNU Parallel </H3>
<!--docid::SEC24::-->
<P>
+There are ways to run commands in parallel that are not built into Bash.
+GNU Parallel is a tool to do just that.
+</P><P>
+
GNU Parallel, as its name suggests, can be used to build and run commands
in parallel. You may run the same command with different arguments, whether
-they are filenames, usernames, hostnames, or lines read from files.
+they are filenames, usernames, hostnames, or lines read from files. GNU
+Parallel provides shorthand references to many of the most common operations
+(input lines, various portions of the input line, different ways to specify
+the input source, and so on). Parallel can replace <CODE>xargs</CODE> or feed
+commands from its input sources to several different instances of Bash.
</P><P>
For a complete description, refer to the GNU Parallel documentation. A few
examples should provide a brief introduction to its use.
</P><P>
-For example, it is easy to prefix each line in a text file with a specified
-string:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>cat file | parallel -k echo prefix_string
-</pre></td></tr></table>The <SAMP>`-k'</SAMP> option is required to preserve the lines' order.
+For example, it is easy to replace <CODE>xargs</CODE> to gzip all html files in the
+current directory and its subdirectories:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>find . -type f -name '*.html' -print | parallel gzip
+</pre></td></tr></table>If you need to protect special characters such as newlines in file names,
+use find's <SAMP>`-print0'</SAMP> option and parallel's <SAMP>`-0'</SAMP> option.
</P><P>
-Similarly, you can append a specified string to each line in a text file:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>cat file | parallel -k echo {} append_string
-</pre></td></tr></table></P><P>
-
You can use Parallel to move files from the current directory when the
number of files is too large to process with one <CODE>mv</CODE> invocation:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls | parallel mv {} destdir
</pre></td></tr></table></P><P>
As you can see, the {} is replaced with each line read from standard input.
+While using <CODE>ls</CODE> will work in most instances, it is not sufficient to
+deal with all filenames.
+If you need to accommodate special characters in filenames, you can use
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>find . -depth 1 \! -name '.*' -print0 | parallel -0 mv {} destdir
+</pre></td></tr></table></P><P>
+
+as alluded to above.
+</P><P>
+
This will run as many <CODE>mv</CODE> commands as there are files in the current
-directory. You can emulate a parallel <CODE>xargs</CODE> by adding the <SAMP>`-X'</SAMP>
-option:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls | parallel -X mv {} destdir
+directory.
+You can emulate a parallel <CODE>xargs</CODE> by adding the <SAMP>`-X'</SAMP> option:
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>find . -depth 1 \! -name '.*' -print0 | parallel -0 -X mv {} destdir
</pre></td></tr></table></P><P>
GNU Parallel can replace certain common idioms that operate on lines read
-from a file (in this case, filenames):
-<TABLE><tr><td>&nbsp;</td><td class=example><pre> for x in $(cat list); do
- do-something1 $x config-$x
- do-something2 &#60; $x
- done | process-output
+from a file (in this case, filenames listed one per line):
+<TABLE><tr><td>&nbsp;</td><td class=example><pre> while IFS= read -r x; do
+ do-something1 "$x" "config-$x"
+ do-something2 &#60; "$x"
+ done &#60; file | process-output
</pre></td></tr></table></P><P>
with a more compact syntax reminiscent of lambdas:
@@ -1592,18 +1686,40 @@ Parallel provides a built-in mechanism to remove filename extensions, which
lends itself to batch file transformations or renaming:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ls *.gz | parallel -j+0 "zcat {} | bzip2 >{.}.bz2 &&#38; rm {}"
</pre></td></tr></table>This will recompress all files in the current directory with names ending
-in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+(We use <CODE>ls</CODE> for brevity here; using <CODE>find</CODE> as above is more
+robust in the face of filenames containing unexpected characters.)
+Parallel can take arguments from the command line; the above can also be
+written as
</P><P>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>parallel "zcat {} | bzip2 >{.}.bz2 &&#38; rm {}" ::: *.gz
+</pre></td></tr></table></P><P>
+
If a command generates output, you may want to preserve the input order in
the output. For instance, the following command
<TABLE><tr><td>&nbsp;</td><td class=example><pre>{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel traceroute
-</pre></td></tr></table>will display as output the traceroute invocation that finishes first. Using
-the <SAMP>`-k'</SAMP> option, as we saw above
+</pre></td></tr></table>will display as output the traceroute invocation that finishes first.
+Adding the <SAMP>`-k'</SAMP> option
<TABLE><tr><td>&nbsp;</td><td class=example><pre>{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel -k traceroute
</pre></td></tr></table>will ensure that the output of <CODE>traceroute foss.org.my</CODE> is displayed first.
</P><P>
+Finally, Parallel can be used to run a sequence of shell commands in parallel,
+similar to <SAMP>`cat file | bash'</SAMP>.
+It is not uncommon to take a list of filenames, create a series of shell
+commands to operate on them, and feed that list of commnds to a shell.
+Parallel can speed this up. Assuming that <TT>`file'</TT> contains a list of
+shell commands, one per line,
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>parallel -j 10 &#60; file
+</pre></td></tr></table></P><P>
+
+will evaluate the commands using the shell (since no explicit command is
+supplied as an argument), in blocks of ten shell jobs at a time.
+</P><P>
+
<A NAME="Shell Functions"></A>
<HR SIZE="6">
<A NAME="SEC25"></A>
@@ -1615,7 +1731,7 @@ the <SAMP>`-k'</SAMP> option, as we saw above
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC59"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.3 Shell Functions </H2>
@@ -1633,8 +1749,13 @@ shell context; no new process is created to interpret them.
Functions are declared using this syntax:
<A NAME="IDX45"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>name</VAR> () <VAR>compound-command</VAR> [ <VAR>redirections</VAR> ]<BR>or<BR>
-<CODE>function</CODE> <VAR>name</VAR> [()] <VAR>compound-command</VAR> [ <VAR>redirections</VAR> ]
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>name</VAR> () <VAR>compound-command</VAR> [ <VAR>redirections</VAR> ]
+</pre></td></tr></table></P><P>
+
+or
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>function <VAR>name</VAR> [()] <VAR>compound-command</VAR> [ <VAR>redirections</VAR> ]
</pre></td></tr></table></P><P>
This defines a shell function named <VAR>name</VAR>. The reserved
@@ -1647,6 +1768,9 @@ That command is usually a <VAR>list</VAR> enclosed between { and }, but
may be any compound command listed above.
<VAR>compound-command</VAR> is executed whenever <VAR>name</VAR> is specified as the
name of a command.
+When the shell is in POSIX mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>),
+<VAR>name</VAR> may not be the same as one of the special builtins
+(see section <A HREF="bashref.html#SEC65">4.4 Special Builtins</A>).
Any redirections (see section <A HREF="bashref.html#SEC40">3.6 Redirections</A>) associated with the shell function
are performed when the function is executed.
</P><P>
@@ -1723,8 +1847,8 @@ the function and the commands it invokes.
</P><P>
Function names and definitions may be listed with the
-<SAMP>`-f'</SAMP> option to the <CODE>declare</CODE> or <CODE>typeset</CODE>
-builtin commands (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
+<SAMP>`-f'</SAMP> option to the <CODE>declare</CODE> (<CODE>typeset</CODE>)
+builtin command (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
The <SAMP>`-F'</SAMP> option to <CODE>declare</CODE> or <CODE>typeset</CODE>
will list the function names only
(and optionally the source file and line number, if the <CODE>extdebug</CODE>
@@ -1756,7 +1880,7 @@ By default, no limit is placed on the number of recursive calls.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.4 Shell Parameters </H2>
@@ -1800,6 +1924,9 @@ Assignment statements may also appear as arguments to the
<CODE>alias</CODE>,
<CODE>declare</CODE>, <CODE>typeset</CODE>, <CODE>export</CODE>, <CODE>readonly</CODE>,
and <CODE>local</CODE> builtin commands.
+When in POSIX mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>), these builtins may appear
+in a command after one or more instances of the <CODE>command</CODE> builtin
+and retain these assignment statement properties.
</P><P>
In the context where an assignment statement is assigning a value
@@ -1819,6 +1946,38 @@ When applied to a string-valued variable, <VAR>value</VAR> is expanded and
appended to the variable's value.
</P><P>
+A variable can be assigned the <VAR>nameref</VAR> attribute using the
+<SAMP>`-n'</SAMP> option to the \fBdeclare\fP or \fBlocal\fP builtin commands
+(see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>)
+to create a <VAR>nameref</VAR>, or a reference to another variable.
+This allows variables to be manipulated indirectly.
+Whenever the nameref variable is referenced or assigned to, the operation
+is actually performed on the variable specified by the nameref variable's
+value.
+A nameref is commonly used within shell functions to refer to a variable
+whose name is passed as an argument to the function.
+For instance, if a variable name is passed to a shell function as its first
+argument, running
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare -n ref=$1
+</pre></td></tr></table>inside the function creates a nameref variable <VAR>ref</VAR> whose value is
+the variable name passed as the first argument.
+References and assignments to <VAR>ref</VAR> are treated as references and
+assignments to the variable whose name was passed as <CODE>$1</CODE>.
+</P><P>
+
+If the control variable in a <CODE>for</CODE> loop has the nameref attribute,
+the list of words can be a list of shell variables, and a name reference
+will be established for each word in the list, in turn, when the loop is
+executed.
+Array variables cannot be given the <SAMP>`-n'</SAMP> attribute.
+However, nameref variables can reference array variables and subscripted
+array variables.
+Namerefs can be unset using the <SAMP>`-n'</SAMP> option to the <CODE>unset</CODE> builtin
+(see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>).
+Otherwise, if <CODE>unset</CODE> is executed with the name of a nameref variable
+as an argument, the variable referenced by the nameref variable will be unset.
+</P><P>
+
<A NAME="Positional Parameters"></A>
<HR SIZE="6">
<A NAME="SEC27"></A>
@@ -1830,7 +1989,7 @@ appended to the variable's value.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.4.1 Positional Parameters </H3>
@@ -1866,7 +2025,7 @@ digit is expanded, it must be enclosed in braces.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC29"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.4.2 Special Parameters </H3>
@@ -1882,8 +2041,13 @@ only be referenced; assignment to them is not allowed.
<A NAME="IDX46"></A>
<DT><CODE>*</CODE>
<DD><A NAME="IDX47"></A>
-Expands to the positional parameters, starting from one. When the
-expansion occurs within double quotes, it expands to a single word
+<A NAME="IDX48"></A>
+($*) Expands to the positional parameters, starting from one.
+When the expansion is not within double quotes, each positional parameter
+expands to a separate word.
+In contexts where it is performed, those words
+are subject to further word splitting and pathname expansion.
+When the expansion occurs within double quotes, it expands to a single word
with the value of each parameter separated by the first character
of the <CODE>IFS</CODE>
special variable. That is, <CODE>"$*"</CODE> is equivalent
@@ -1895,10 +2059,11 @@ If <CODE>IFS</CODE> is null, the parameters are joined without intervening
separators.
<P>
-<A NAME="IDX48"></A>
+<A NAME="IDX49"></A>
<DT><CODE>@</CODE>
-<DD><A NAME="IDX49"></A>
-Expands to the positional parameters, starting from one. When the
+<DD><A NAME="IDX50"></A>
+<A NAME="IDX51"></A>
+($@) Expands to the positional parameters, starting from one. When the
expansion occurs within double quotes, each parameter expands to a
separate word. That is, <CODE>"$@"</CODE> is equivalent to
<CODE>"$1" "$2" <small>...</small></CODE>.
@@ -1911,46 +2076,53 @@ When there are no positional parameters, <CODE>"$@"</CODE> and
expand to nothing (i.e., they are removed).
<P>
-<A NAME="IDX50"></A>
+<A NAME="IDX52"></A>
<DT><CODE>#</CODE>
-<DD><A NAME="IDX51"></A>
-Expands to the number of positional parameters in decimal.
+<DD><A NAME="IDX53"></A>
+<A NAME="IDX54"></A>
+($#) Expands to the number of positional parameters in decimal.
<P>
-<A NAME="IDX52"></A>
+<A NAME="IDX55"></A>
<DT><CODE>?</CODE>
-<DD><A NAME="IDX53"></A>
-Expands to the exit status of the most recently executed foreground
+<DD><A NAME="IDX56"></A>
+<A NAME="IDX57"></A>
+($?) Expands to the exit status of the most recently executed foreground
pipeline.
<P>
-<A NAME="IDX54"></A>
+<A NAME="IDX58"></A>
<DT><CODE>-</CODE>
-<DD><A NAME="IDX55"></A>
-(A hyphen.) Expands to the current option flags as specified upon
+<DD><A NAME="IDX59"></A>
+<A NAME="IDX60"></A>
+($-, a hyphen.) Expands to the current option flags as specified upon
invocation, by the <CODE>set</CODE>
builtin command, or those set by the shell itself
(such as the <SAMP>`-i'</SAMP> option).
<P>
-<A NAME="IDX56"></A>
+<A NAME="IDX61"></A>
<DT><CODE>$</CODE>
-<DD><A NAME="IDX57"></A>
-Expands to the process ID of the shell. In a <CODE>()</CODE> subshell, it
+<DD><A NAME="IDX62"></A>
+<A NAME="IDX63"></A>
+($$) Expands to the process ID of the shell. In a <CODE>()</CODE> subshell, it
expands to the process ID of the invoking shell, not the subshell.
<P>
-<A NAME="IDX58"></A>
+<A NAME="IDX64"></A>
<DT><CODE>!</CODE>
-<DD><A NAME="IDX59"></A>
-Expands to the process ID of the most recently executed background
-(asynchronous) command.
+<DD><A NAME="IDX65"></A>
+<A NAME="IDX66"></A>
+($!) Expands to the process ID of the job most recently placed into the
+background, whether executed as an asynchronous command or using
+the <CODE>bg</CODE> builtin (see section <A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A>).
<P>
-<A NAME="IDX60"></A>
+<A NAME="IDX67"></A>
<DT><CODE>0</CODE>
-<DD><A NAME="IDX61"></A>
-Expands to the name of the shell or shell script. This is set at
+<DD><A NAME="IDX68"></A>
+<A NAME="IDX69"></A>
+($0) Expands to the name of the shell or shell script. This is set at
shell initialization. If Bash is invoked with a file of commands
(see section <A HREF="bashref.html#SEC58">3.8 Shell Scripts</A>), <CODE>$0</CODE> is set to the name of that file.
If Bash is started with the <SAMP>`-c'</SAMP> option (see section <A HREF="bashref.html#SEC70">6.1 Invoking Bash</A>),
@@ -1959,10 +2131,11 @@ executed, if one is present. Otherwise, it is set
to the filename used to invoke Bash, as given by argument zero.
<P>
-<A NAME="IDX62"></A>
+<A NAME="IDX70"></A>
<DT><CODE>_</CODE>
-<DD><A NAME="IDX63"></A>
-(An underscore.)
+<DD><A NAME="IDX71"></A>
+<A NAME="IDX72"></A>
+($_, an underscore.)
At shell startup, set to the absolute pathname used to invoke the
shell or shell script being executed as passed in the environment
or argument list.
@@ -1985,7 +2158,7 @@ When checking mail, this parameter holds the name of the mail file.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.5 Shell Expansions </H2>
@@ -1994,6 +2167,8 @@ When checking mail, this parameter holds the name of the mail file.
Expansion is performed on the command line after it has been split into
<CODE>token</CODE>s. There are seven kinds of expansion performed:
+</P><P>
+
<UL>
<LI>brace expansion
<LI>tilde expansion
@@ -2021,16 +2196,18 @@ Expansion is performed on the command line after it has been split into
</TABLE></BLOCKQUOTE>
<P>
-The order of expansions is: brace expansion, tilde expansion,
-parameter, variable, and arithmetic expansion and
-command substitution
-(done in a left-to-right fashion), word splitting, and filename
-expansion.
+The order of expansions is:
+brace expansion;
+tilde expansion, parameter and variable expansion, arithmetic expansion,
+and command substitution (done in a left-to-right fashion);
+word splitting;
+and filename expansion.
</P><P>
On systems that can support it, there is an additional expansion
-available: <VAR>process substitution</VAR>. This is performed at the
-same time as parameter, variable, and arithmetic expansion and
+available: <VAR>process substitution</VAR>.
+This is performed at the
+same time as tilde, parameter, variable, and arithmetic expansion and
command substitution.
</P><P>
@@ -2057,7 +2234,7 @@ is performed.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.1 Brace Expansion </H3>
@@ -2067,9 +2244,9 @@ is performed.
Brace expansion is a mechanism by which arbitrary strings may be generated.
This mechanism is similar to
<VAR>filename expansion</VAR> (see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>),
-but the file names generated need not exist.
+but the filenames generated need not exist.
Patterns to be brace expanded take the form of an optional <VAR>preamble</VAR>,
-followed by either a series of comma-separated strings or a seqeunce expression
+followed by either a series of comma-separated strings or a sequence expression
between a pair of braces,
followed by an optional <VAR>postscript</VAR>.
The preamble is prefixed to each string contained within the braces, and
@@ -2091,12 +2268,14 @@ and <VAR>incr</VAR>, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
<VAR>x</VAR> and <VAR>y</VAR>, inclusive.
Supplied integers may be prefixed with <SAMP>`0'</SAMP> to force each term to have the
-same width. When either <VAR>x</VAR> or <VAR>y</VAR> begins with a zero, the shell
+same width.
+When either <VAR>x</VAR> or <VAR>y</VAR> 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</VAR> and <VAR>y</VAR>, inclusive. Note that
-both <VAR>x</VAR> and <VAR>y</VAR> must be of the same type.
+lexicographically between <VAR>x</VAR> and <VAR>y</VAR>, inclusive,
+using the default C locale.
+Note that both <VAR>x</VAR> and <VAR>y</VAR> 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.
</P><P>
@@ -2141,7 +2320,7 @@ above example:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.2 Tilde Expansion </H3>
@@ -2185,7 +2364,7 @@ left unchanged.
Each variable assignment is checked for unquoted tilde-prefixes immediately
following a <SAMP>`:'</SAMP> or the first <SAMP>`='</SAMP>.
In these cases, tilde expansion is also performed.
-Consequently, one may use file names with tildes in assignments to
+Consequently, one may use filenames with tildes in assignments to
<CODE>PATH</CODE>, <CODE>MAILPATH</CODE>, and <CODE>CDPATH</CODE>,
and the shell assigns the expanded value.
</P><P>
@@ -2223,8 +2402,6 @@ The following table shows how Bash treats unquoted tilde-prefixes:
<DT><CODE>~-<VAR>N</VAR></CODE>
<DD>The string that would be displayed by <SAMP>`dirs -<VAR>N</VAR>'</SAMP>
-<P>
-
</DL>
<P>
@@ -2239,7 +2416,7 @@ The following table shows how Bash treats unquoted tilde-prefixes:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.3 Shell Parameter Expansion </H3>
@@ -2261,22 +2438,23 @@ expansion.
</P><P>
The basic form of parameter expansion is ${<VAR>parameter</VAR>}.
-The value of <VAR>parameter</VAR> is substituted. The braces are required
-when <VAR>parameter</VAR>
+The value of <VAR>parameter</VAR> is substituted.
+The <VAR>parameter</VAR> is a shell parameter as described above
+(see section <A HREF="bashref.html#SEC26">3.4 Shell Parameters</A>) or an array reference (see section <A HREF="bashref.html#SEC86">6.7 Arrays</A>).
+The braces are required when <VAR>parameter</VAR>
is a positional parameter with more than one digit,
-or when <VAR>parameter</VAR>
-is followed by a character that is not to be
+or when <VAR>parameter</VAR> is followed by a character that is not to be
interpreted as part of its name.
</P><P>
If the first character of <VAR>parameter</VAR> is an exclamation point (!),
-a level of variable indirection is introduced.
+it introduces a level of variable indirection.
Bash uses the value of the variable formed from the rest of
<VAR>parameter</VAR> as the name of the variable; this variable is then
expanded and that value is used in the rest of the substitution, rather
than the value of <VAR>parameter</VAR> itself.
This is known as <CODE>indirect expansion</CODE>.
-The exceptions to this are the expansions of ${!<VAR>prefix</VAR><BR>}
+The exceptions to this are the expansions of ${!<VAR>prefix</VAR>*}
and ${!<VAR>name</VAR>[@]}
described below.
The exclamation point must immediately follow the left brace in order to
@@ -2288,7 +2466,7 @@ parameter expansion, command substitution, and arithmetic expansion.
</P><P>
When not performing substring expansion, using the form described
-below, Bash tests for a parameter that is unset or null.
+below (e.g., <SAMP>`:-'</SAMP>), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included,
the operator tests for both <VAR>parameter</VAR>'s existence and that its value
@@ -2329,35 +2507,160 @@ is null or unset, nothing is substituted, otherwise the expansion of
<DT><CODE>${<VAR>parameter</VAR>:<VAR>offset</VAR>}</CODE>
<DD><DT><CODE>${<VAR>parameter</VAR>:<VAR>offset</VAR>:<VAR>length</VAR>}</CODE>
-<DD>Expands to up to <VAR>length</VAR> characters of <VAR>parameter</VAR>
+<DD>This is referred to as Substring Expansion.
+It expands to up to <VAR>length</VAR> characters of the value of <VAR>parameter</VAR>
starting at the character specified by <VAR>offset</VAR>.
-If <VAR>length</VAR> is omitted, expands to the substring of
-<VAR>parameter</VAR> starting at the character specified by <VAR>offset</VAR>.
+If <VAR>parameter</VAR> is <SAMP>`@'</SAMP>, an indexed array subscripted by
+<SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>, or an associative array name, the results differ as
+described below.
+If <VAR>length</VAR> is omitted, it expands to the substring of the value of
+<VAR>parameter</VAR> starting at the character specified by <VAR>offset</VAR>
+and extending to the end of the value.
<VAR>length</VAR> and <VAR>offset</VAR> are arithmetic expressions
(see section <A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A>).
-This is referred to as Substring Expansion.
<P>
If <VAR>offset</VAR> evaluates to a number less than zero, the value
-is used as an offset from the end of the value of <VAR>parameter</VAR>.
-If <VAR>length</VAR> evaluates to a number less than zero, and <VAR>parameter</VAR>
-is not <SAMP>`@'</SAMP> and not an indexed or associative array, it is interpreted
-as an offset from the end of the value of <VAR>parameter</VAR> rather than
-a number of characters, and the expansion is the characters between the
-two offsets.
+is used as an offset in characters
+from the end of the value of <VAR>parameter</VAR>.
+If <VAR>length</VAR> evaluates to a number less than zero,
+it is interpreted as an offset in characters
+from the end of the value of <VAR>parameter</VAR> rather than
+a number of characters, and the expansion is the characters between
+<VAR>offset</VAR> and that result.
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the <SAMP>`:-'</SAMP> expansion.
+</P><P>
+
+Here are some examples illustrating substring expansion on parameters and
+subscripted arrays:
+</P><P>
+
+@verbatim
+$ string=01234567890abcdefgh
+$ echo ${string:7}
+7890abcdefgh
+$ echo ${string:7:0}
+</P><P>
+
+$ echo ${string:7:2}
+78
+$ echo ${string:7:-2}
+7890abcdef
+$ echo ${string: -7}
+bcdefgh
+$ echo ${string: -7:0}
+</P><P>
+
+$ echo ${string: -7:2}
+bc
+$ echo ${string: -7:-2}
+bcdef
+$ set -- 01234567890abcdefgh
+$ echo ${1:7}
+7890abcdefgh
+$ echo ${1:7:0}
+</P><P>
+
+$ echo ${1:7:2}
+78
+$ echo ${1:7:-2}
+7890abcdef
+$ echo ${1: -7}
+bcdefgh
+$ echo ${1: -7:0}
+</P><P>
+
+$ echo ${1: -7:2}
+bc
+$ echo ${1: -7:-2}
+bcdef
+$ array[0]=01234567890abcdefgh
+$ echo ${array[0]:7}
+7890abcdefgh
+$ echo ${array[0]:7:0}
+</P><P>
+
+$ echo ${array[0]:7:2}
+78
+$ echo ${array[0]:7:-2}
+7890abcdef
+$ echo ${array[0]: -7}
+bcdefgh
+$ echo ${array[0]: -7:0}
+</P><P>
+
+$ echo ${array[0]: -7:2}
+bc
+$ echo ${array[0]: -7:-2}
+bcdef
+</P><P>
+
If <VAR>parameter</VAR> is <SAMP>`@'</SAMP>, the result is <VAR>length</VAR> positional
parameters beginning at <VAR>offset</VAR>.
+A negative <VAR>offset</VAR> is taken relative to one greater than the greatest
+positional parameter, so an offset of -1 evaluates to the last positional
+parameter.
+It is an expansion error if <VAR>length</VAR> evaluates to a number less than zero.
+</P><P>
+
+The following examples illustrate substring expansion using positional
+parameters:
+</P><P>
+
+@verbatim
+$ set -- 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${7}
+7 8 9 0 a b c d e f g h
+$ echo ${7:0}
+</P><P>
+
+$ echo ${7:2}
+7 8
+$ echo ${7:-2}
+bash: -2: substring expression &#60; 0
+$ echo ${ -7:2}
+b c
+$ echo ${0}
+./bash 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${0:2}
+./bash 1
+$ echo ${ -7:0}
+</P><P>
+
If <VAR>parameter</VAR> is an indexed array name subscripted
by <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>, the result is the <VAR>length</VAR>
members of the array beginning with <CODE>${<VAR>parameter</VAR>[<VAR>offset</VAR>]}</CODE>.
A negative <VAR>offset</VAR> is taken relative to one greater than the maximum
index of the specified array.
+It is an expansion error if <VAR>length</VAR> evaluates to a number less than zero.
+</P><P>
+
+These examples show how you can use substring expansion with indexed
+arrays:
+</P><P>
+
+@verbatim
+$ array=(0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h)
+$ echo ${array[@]:7}
+7 8 9 0 a b c d e f g h
+$ echo ${array[@]:7:2}
+7 8
+$ echo ${array[@]: -7:2}
+b c
+$ echo ${array[@]: -7:-2}
+bash: -2: substring expression &#60; 0
+$ echo ${array[@]:0}
+0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${array[@]:0:2}
+0 1
+$ echo ${array[@]: -7:0}
+</P><P>
+
Substring expansion applied to an associative array produces undefined
results.
</P><P>
-Note that a negative offset must be separated from the colon by at least
-one space to avoid being confused with the <SAMP>`:-'</SAMP> expansion.
Substring indexing is zero-based unless the positional parameters
are used, in which case the indexing starts at 1 by default.
If <VAR>offset</VAR> is 0, and the positional parameters are used, <CODE>$@</CODE> is
@@ -2389,6 +2692,11 @@ If <VAR>parameter</VAR> is <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP>, the value subst
is the number of positional parameters.
If <VAR>parameter</VAR> is an array name subscripted by <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP>,
the value substituted is the number of elements in the array.
+If <VAR>parameter</VAR>
+is an indexed array name subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+<VAR>parameter</VAR>, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
<P>
<DT><CODE>${<VAR>parameter</VAR>#<VAR>word</VAR>}</CODE>
@@ -2457,6 +2765,9 @@ array in turn, and the expansion is the resultant list.
<DD>This expansion modifies the case of alphabetic characters in <VAR>parameter</VAR>.
The <VAR>pattern</VAR> is expanded to produce a pattern just as in
filename expansion.
+Each character in the expanded value of <VAR>parameter</VAR> is tested against
+<VAR>pattern</VAR>, and, if it matches the pattern, its case is converted.
+The pattern should not attempt to match more than one character.
The <SAMP>`^'</SAMP> operator converts lowercase letters matching <VAR>pattern</VAR>
to uppercase; the <SAMP>`,'</SAMP> operator converts matching uppercase letters
to lowercase.
@@ -2472,8 +2783,6 @@ If <VAR>parameter</VAR>
is an array variable subscripted with <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>,
the case modification operation is applied to each member of the
array in turn, and the expansion is the resultant list.
-<P>
-
</DL>
<P>
@@ -2488,7 +2797,7 @@ array in turn, and the expansion is the resultant list.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.4 Command Substitution </H3>
@@ -2540,7 +2849,7 @@ filename expansion are not performed on the results.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.5 Arithmetic Expansion </H3>
@@ -2556,8 +2865,9 @@ and the substitution of the result. The format for arithmetic expansion is:
The expression is treated as if it were within double quotes, but
a double quote inside the parentheses is not treated specially.
-All tokens in the expression undergo parameter expansion, command
-substitution, and quote removal.
+All tokens in the expression undergo parameter and variable expansion,
+command substitution, and quote removal.
+The result is treated as the arithmetic expression to be evaluated.
Arithmetic expansions may be nested.
</P><P>
@@ -2578,7 +2888,7 @@ failure to the standard error and no substitution occurs.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.6 Process Substitution </H3>
@@ -2619,7 +2929,7 @@ expansion.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.7 Word Splitting </H3>
@@ -2632,7 +2942,8 @@ word splitting.
</P><P>
The shell treats each character of <CODE>$IFS</CODE> as a delimiter, and splits
-the results of the other expansions into words on these characters.
+the results of the other expansions into words using these characters
+as field terminators.
If <CODE>IFS</CODE> is unset, or its value is exactly <CODE>&#60;space&#62;&#60;tab&#62;&#60;newline&#62;</CODE>,
the default, then sequences of
<CODE> &#60;space&#62;</CODE>, <CODE>&#60;tab&#62;</CODE>, and <CODE>&#60;newline&#62;</CODE>
@@ -2673,7 +2984,7 @@ is performed.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.8 Filename Expansion </H3>
@@ -2681,10 +2992,10 @@ is performed.
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How the shell matches patterns.</TD></TR>
</TABLE></BLOCKQUOTE>
-<A NAME="IDX64"></A>
-<A NAME="IDX65"></A>
-<A NAME="IDX66"></A>
-<A NAME="IDX67"></A>
+<A NAME="IDX73"></A>
+<A NAME="IDX74"></A>
+<A NAME="IDX75"></A>
+<A NAME="IDX76"></A>
<P>
After word splitting, unless the <SAMP>`-f'</SAMP> option has been set
@@ -2693,7 +3004,8 @@ After word splitting, unless the <SAMP>`-f'</SAMP> option has been set
If one of these characters appears, then the word is
regarded as a <VAR>pattern</VAR>,
and replaced with an alphabetically sorted list of
-file names matching the pattern. If no matching file names are found,
+filenames matching the pattern (see section <A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A>).
+If no matching filenames are found,
and the shell option <CODE>nullglob</CODE> is disabled, the word is left
unchanged.
If the <CODE>nullglob</CODE> option is set, and no matches are found, the word
@@ -2707,7 +3019,7 @@ without regard to the case of alphabetic characters.
When a pattern is used for filename expansion, the character <SAMP>`.'</SAMP>
at the start of a filename or immediately following a slash
must be matched explicitly, unless the shell option <CODE>dotglob</CODE> is set.
-When matching a file name, the slash character must always be
+When matching a filename, the slash character must always be
matched explicitly.
In other cases, the <SAMP>`.'</SAMP> character is not treated specially.
</P><P>
@@ -2746,7 +3058,7 @@ is unset.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC39"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H4> 3.5.8.1 Pattern Matching </H4>
@@ -2777,7 +3089,7 @@ directories and subdirectories.
<DT><CODE>[<small>...</small>]</CODE>
<DD>Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a <VAR>range expression</VAR>;
-any character that sorts between those two characters, inclusive,
+any character that falls between those two characters, inclusive,
using the current locale's collating sequence and character set,
is matched. If the first character following the
<SAMP>`['</SAMP> is a <SAMP>`!'</SAMP> or a <SAMP>`^'</SAMP>
@@ -2786,8 +3098,8 @@ may be matched by including it as the first or last character
in the set. A <SAMP>`]'</SAMP> may be matched by including it as the first
character in the set.
The sorting order of characters in range expressions is determined by
-the current locale and the value of the <CODE>LC_COLLATE</CODE> shell variable,
-if set.
+the current locale and the values of the
+<CODE>LC_COLLATE</CODE> and <CODE>LC_ALL</CODE> shell variables, if set.
<P>
For example, in the default C locale, <SAMP>`[a-dx-z]'</SAMP> is equivalent to
@@ -2796,7 +3108,8 @@ these locales <SAMP>`[a-dx-z]'</SAMP> is typically not equivalent to <SAMP>`[abc
it might be equivalent to <SAMP>`[aBbCcDdxXyYz]'</SAMP>, for example. To obtain
the traditional interpretation of ranges in bracket expressions, you can
force the use of the C locale by setting the <CODE>LC_COLLATE</CODE> or
-<CODE>LC_ALL</CODE> environment variable to the value <SAMP>`C'</SAMP>.
+<CODE>LC_ALL</CODE> environment variable to the value <SAMP>`C'</SAMP>, or enable the
+<CODE>globasciiranges</CODE> shell option.
</P><P>
Within <SAMP>`['</SAMP> and <SAMP>`]'</SAMP>, <VAR>character classes</VAR> can be specified
@@ -2862,7 +3175,7 @@ sub-patterns:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC40"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.5.9 Quote Removal </H3>
@@ -2885,7 +3198,7 @@ result from one of the above expansions are removed.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.6 Redirections </H2>
@@ -2895,7 +3208,11 @@ result from one of the above expansions are removed.
Before a command is executed, its input and output
may be <VAR>redirected</VAR>
using a special notation interpreted by the shell.
-Redirection may also be used to open and close files for the
+Redirection allows commands' file handles to be
+duplicated, opened, closed,
+made to refer to different files,
+and can change the files the command reads from and writes to.
+Redirection may also be used to modify file handles in the
current shell execution environment. The following redirection
operators may precede or appear anywhere within a
simple command or may follow a command.
@@ -2961,16 +3278,14 @@ redirections, as described in the following table:
<DT><CODE>/dev/tcp/<VAR>host</VAR>/<VAR>port</VAR></CODE>
<DD>If <VAR>host</VAR> is a valid hostname or Internet address, and <VAR>port</VAR>
-is an integer port number or service name, Bash attempts to open a TCP
-connection to the corresponding socket.
+is an integer port number or service name, Bash attempts to open
+the corresponding TCP socket.
<P>
<DT><CODE>/dev/udp/<VAR>host</VAR>/<VAR>port</VAR></CODE>
<DD>If <VAR>host</VAR> is a valid hostname or Internet address, and <VAR>port</VAR>
-is an integer port number or service name, Bash attempts to open a UDP
-connection to the corresponding socket.
-<P>
-
+is an integer port number or service name, Bash attempts to open
+the corresponding UDP socket.
</DL>
<P>
@@ -2992,7 +3307,7 @@ internally.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.1 Redirecting Input </H3>
@@ -3018,7 +3333,7 @@ The general format for redirecting input is:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.2 Redirecting Output </H3>
@@ -3054,7 +3369,7 @@ is attempted even if the file named by <VAR>word</VAR> exists.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.3 Appending Redirected Output </H3>
@@ -3081,7 +3396,7 @@ The general format for appending output is:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.4 Redirecting Standard Output and Standard Error </H3>
@@ -3101,7 +3416,10 @@ standard error:
</pre></td></tr></table>Of the two forms, the first is preferred.
This is semantically equivalent to
<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;<VAR>word</VAR> 2&#62;&#38;1
-</pre></td></tr></table></P><P>
+</pre></td></tr></table>When using the second form, <VAR>word</VAR> may not expand to a number or
+<SAMP>`-'</SAMP>. If it does, other redirection operators apply
+(see Duplicating File Descriptors below) for compatibility reasons.
+</P><P>
<HR SIZE="6">
<A NAME="SEC45"></A>
@@ -3113,7 +3431,7 @@ This is semantically equivalent to
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.5 Appending Standard Output and Standard Error </H3>
@@ -3129,7 +3447,8 @@ The format for appending standard output and standard error is:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#38;&#62;&#62;<VAR>word</VAR>
</pre></td></tr></table>This is semantically equivalent to
<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#62;&#62;<VAR>word</VAR> 2&#62;&#38;1
-</pre></td></tr></table></P><P>
+</pre></td></tr></table>(see Duplicating File Descriptors below).
+</P><P>
<HR SIZE="6">
<A NAME="SEC46"></A>
@@ -3141,7 +3460,7 @@ The format for appending standard output and standard error is:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.6 Here Documents </H3>
@@ -3159,15 +3478,15 @@ The format of here-documents is:
<VAR>delimiter</VAR>
</pre></td></tr></table></P><P>
-No parameter expansion, command substitution, arithmetic expansion,
-or filename expansion is performed on
+No parameter and variable expansion, command substitution,
+arithmetic expansion, or filename expansion is performed on
<VAR>word</VAR>. If any characters in <VAR>word</VAR> are quoted, the
<VAR>delimiter</VAR> is the result of quote removal on <VAR>word</VAR>,
and the lines in the here-document are not expanded.
If <VAR>word</VAR> is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion. In the latter
-case, the character sequence <CODE>\newline</CODE> is ignored, and <SAMP>`\'</SAMP>
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence <CODE>\newline</CODE> is ignored, and <SAMP>`\'</SAMP>
must be used to quote the characters
<SAMP>`\'</SAMP>, <SAMP>`$'</SAMP>, and <SAMP>``'</SAMP>.
</P><P>
@@ -3189,7 +3508,7 @@ natural fashion.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.7 Here Strings </H3>
@@ -3198,8 +3517,12 @@ A variant of here documents, the format is:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>&#60;&#60;&#60; <VAR>word</VAR>
</pre></td></tr></table><P>
-The <VAR>word</VAR> is expanded and supplied to the command on its standard
-input.
+The <VAR>word</VAR> undergoes
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and quote removal.
+Pathname expansion and word splitting are not performed.
+The result is supplied as a single string to the command on its
+standard input.
</P><P>
<HR SIZE="6">
@@ -3212,7 +3535,7 @@ input.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.8 Duplicating File Descriptors </H3>
@@ -3226,8 +3549,8 @@ is made to be a copy of that file descriptor.
If the digits in <VAR>word</VAR> do not specify a file descriptor open for
input, a redirection error occurs.
If <VAR>word</VAR>
-evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed. If
-<VAR>n</VAR> is not specified, the standard input (file descriptor 0) is used.
+evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed.
+If <VAR>n</VAR> is not specified, the standard input (file descriptor 0) is used.
<P>
The operator
@@ -3236,8 +3559,10 @@ The operator
<VAR>n</VAR> is not specified, the standard output (file descriptor 1) is used.
If the digits in <VAR>word</VAR> do not specify a file descriptor open for
output, a redirection error occurs.
+If <VAR>word</VAR>
+evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed.
As a special case, if <VAR>n</VAR> is omitted, and <VAR>word</VAR> does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or <SAMP>`-'</SAMP>, the standard output and standard
error are redirected as described previously.
</P><P>
@@ -3251,7 +3576,7 @@ error are redirected as described previously.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.9 Moving File Descriptors </H3>
@@ -3279,7 +3604,7 @@ or the standard output (file descriptor 1) if <VAR>n</VAR> is not specified.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC51"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.6.10 Opening File Descriptors for Reading and Writing </H3>
@@ -3303,7 +3628,7 @@ is not specified. If the file does not exist, it is created.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.7 Executing Commands </H2>
@@ -3336,7 +3661,7 @@ is not specified. If the file does not exist, it is created.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.1 Simple Command Expansion </H3>
@@ -3403,7 +3728,7 @@ were no command substitutions, the command exits with a status of zero.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.2 Command Search and Execution </H3>
@@ -3480,7 +3805,7 @@ the command to complete and collects its exit status.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.3 Command Execution Environment </H3>
@@ -3613,7 +3938,7 @@ shell as modified by redirections.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.4 Environment </H3>
@@ -3655,7 +3980,7 @@ not just those that precede the command name.
</P><P>
When Bash invokes an external command, the variable <SAMP>`$_'</SAMP>
-is set to the full path name of the command and passed to that
+is set to the full pathname of the command and passed to that
command in its environment.
</P><P>
@@ -3670,7 +3995,7 @@ command in its environment.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.5 Exit Status </H3>
@@ -3681,7 +4006,7 @@ The exit status of an executed command is the value returned by the
<VAR>waitpid</VAR> 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
+compound commands are also limited to this range. Under certain
circumstances, the shell will use special values to indicate specific
failure modes.
</P><P>
@@ -3727,7 +4052,7 @@ All builtins return an exit status of 2 to indicate incorrect usage.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC58"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 3.7.6 Signals </H3>
@@ -3792,7 +4117,7 @@ which the trap is executed.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC59"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 3.8 Shell Scripts </H2>
@@ -3868,7 +4193,7 @@ under another shell.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 4. Shell Builtin Commands </H1>
@@ -3903,7 +4228,7 @@ Several builtin commands are described in other chapters: builtin
commands which provide the Bash interface to the job control
facilities (see section <A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A>), the directory stack
(see section <A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A>), the command history
-(see section <A HREF="bashref.html#SEC122">9.2 Bash History Builtins</A>), and the programmable completion
+(see section <A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A>), and the programmable completion
facilities (see section <A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A>).
</P><P>
@@ -3934,7 +4259,7 @@ require <SAMP>`--'</SAMP> to prevent this interpretation.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.1 Bourne Shell Builtins </H2>
@@ -3947,16 +4272,20 @@ These commands are implemented as specified by the POSIX standard.
<DL COMPACT>
<DT><CODE>: (a colon)</CODE>
-<DD><A NAME="IDX68"></A>
+<DD><A NAME="IDX77"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>: [<VAR>arguments</VAR>]
-</pre></td></tr></table>Do nothing beyond expanding <VAR>arguments</VAR> and performing redirections.
+</pre></td></tr></table><P>
+
+Do nothing beyond expanding <VAR>arguments</VAR> and performing redirections.
The return status is zero.
-<P>
+</P><P>
<DT><CODE>. (a period)</CODE>
-<DD><A NAME="IDX69"></A>
+<DD><A NAME="IDX78"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>. <VAR>filename</VAR> [<VAR>arguments</VAR>]
-</pre></td></tr></table>Read and execute commands from the <VAR>filename</VAR> argument in the
+</pre></td></tr></table><P>
+
+Read and execute commands from the <VAR>filename</VAR> argument in the
current shell context. If <VAR>filename</VAR> does not contain a slash,
the <CODE>PATH</CODE> variable is used to find <VAR>filename</VAR>.
When Bash is not in POSIX mode, the current directory is searched
@@ -3968,34 +4297,63 @@ The return status is the exit status of the last command executed, or
zero if no commands are executed. If <VAR>filename</VAR> is not found, or
cannot be read, the return status is non-zero.
This builtin is equivalent to <CODE>source</CODE>.
-<P>
+</P><P>
<DT><CODE>break</CODE>
-<DD><A NAME="IDX70"></A>
+<DD><A NAME="IDX79"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>break [<VAR>n</VAR>]
-</pre></td></tr></table>Exit from a <CODE>for</CODE>, <CODE>while</CODE>, <CODE>until</CODE>, or <CODE>select</CODE> loop.
+</pre></td></tr></table><P>
+
+Exit from a <CODE>for</CODE>, <CODE>while</CODE>, <CODE>until</CODE>, or <CODE>select</CODE> loop.
If <VAR>n</VAR> is supplied, the <VAR>n</VAR>th enclosing loop is exited.
<VAR>n</VAR> must be greater than or equal to 1.
The return status is zero unless <VAR>n</VAR> is not greater than or equal to 1.
-<P>
+</P><P>
<DT><CODE>cd</CODE>
-<DD><A NAME="IDX71"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>cd [-L|[-P [-e]]] [<VAR>directory</VAR>]
-</pre></td></tr></table>Change the current working directory to <VAR>directory</VAR>.
-If <VAR>directory</VAR> is not given, the value of the <CODE>HOME</CODE> shell
-variable is used.
-If the shell variable <CODE>CDPATH</CODE> exists, it is used as a search path.
+<DD><A NAME="IDX80"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>cd [-L|[-P [-e]] [-@] [<VAR>directory</VAR>]
+</pre></td></tr></table><P>
+
+Change the current working directory to <VAR>directory</VAR>.
+If <VAR>directory</VAR> is not supplied, the value of the <CODE>HOME</CODE>
+shell variable is used.
+Any additional arguments following <VAR>directory</VAR> are ignored.
+If the shell variable
+<CODE>CDPATH</CODE> exists, it is used as a search path:
+each directory name in <CODE>CDPATH</CODE> is searched for
+<VAR>directory</VAR>, with alternative directory names in <CODE>CDPATH</CODE>
+separated by a colon (<SAMP>`:'</SAMP>).
If <VAR>directory</VAR> begins with a slash, <CODE>CDPATH</CODE> is not used.
-<P>
+</P><P>
+
+The <SAMP>`-P'</SAMP> option means to not follow symbolic links: symbolic links
+are resolved while <CODE>cd</CODE> is traversing <VAR>directory</VAR> and before
+processing an instance of <SAMP>`..'</SAMP> in <VAR>directory</VAR>.
+</P><P>
+
+By default, or when the <SAMP>`-L'</SAMP> option is supplied, symbolic links
+in <VAR>directory</VAR> are resolved after <CODE>cd</CODE> processes an instance
+of <SAMP>`..'</SAMP> in <VAR>directory</VAR>.
+</P><P>
+
+If <SAMP>`..'</SAMP> appears in <VAR>directory</VAR>, it is processed by removing the
+immediately preceding pathname component, back to a slash or the beginning
+of <VAR>directory</VAR>.
+</P><P>
-The <SAMP>`-P'</SAMP> option means to not follow symbolic links; symbolic
-links are followed by default or with the <SAMP>`-L'</SAMP> option.
If the <SAMP>`-e'</SAMP> option is supplied with <SAMP>`-P'</SAMP>
and the current working directory cannot be successfully determined
after a successful directory change, <CODE>cd</CODE> will return an unsuccessful
status.
-If <VAR>directory</VAR> is <SAMP>`-'</SAMP>, it is equivalent to <CODE>$OLDPWD</CODE>.
+</P><P>
+
+On systems that support it, the <SAMP>`-@'</SAMP> option presents the extended
+attributes associated with a file as a directory.
+</P><P>
+
+If <VAR>directory</VAR> is <SAMP>`-'</SAMP>, it is converted to <CODE>$OLDPWD</CODE>
+before the directory change is attempted.
</P><P>
If a non-empty directory name from <CODE>CDPATH</CODE> is used, or if
@@ -4009,30 +4367,36 @@ non-zero otherwise.
</P><P>
<DT><CODE>continue</CODE>
-<DD><A NAME="IDX72"></A>
+<DD><A NAME="IDX81"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>continue [<VAR>n</VAR>]
-</pre></td></tr></table>Resume the next iteration of an enclosing <CODE>for</CODE>, <CODE>while</CODE>,
+</pre></td></tr></table><P>
+
+Resume the next iteration of an enclosing <CODE>for</CODE>, <CODE>while</CODE>,
<CODE>until</CODE>, or <CODE>select</CODE> loop.
If <VAR>n</VAR> is supplied, the execution of the <VAR>n</VAR>th enclosing loop
is resumed.
<VAR>n</VAR> must be greater than or equal to 1.
The return status is zero unless <VAR>n</VAR> is not greater than or equal to 1.
-<P>
+</P><P>
<DT><CODE>eval</CODE>
-<DD><A NAME="IDX73"></A>
+<DD><A NAME="IDX82"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>eval [<VAR>arguments</VAR>]
-</pre></td></tr></table>The arguments are concatenated together into a single command, which is
+</pre></td></tr></table><P>
+
+The arguments are concatenated together into a single command, which is
then read and executed, and its exit status returned as the exit status
of <CODE>eval</CODE>.
If there are no arguments or only empty arguments, the return status is
zero.
-<P>
+</P><P>
<DT><CODE>exec</CODE>
-<DD><A NAME="IDX74"></A>
+<DD><A NAME="IDX83"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>exec [-cl] [-a <VAR>name</VAR>] [<VAR>command</VAR> [<VAR>arguments</VAR>]]
-</pre></td></tr></table>If <VAR>command</VAR>
+</pre></td></tr></table><P>
+
+If <VAR>command</VAR>
is supplied, it replaces the shell without creating a new process.
If the <SAMP>`-l'</SAMP> option is supplied, the shell places a dash at the
beginning of the zeroth argument passed to <VAR>command</VAR>.
@@ -4041,32 +4405,41 @@ The <SAMP>`-c'</SAMP> option causes <VAR>command</VAR> to be executed with an em
environment.
If <SAMP>`-a'</SAMP> is supplied, the shell passes <VAR>name</VAR> as the zeroth
argument to <VAR>command</VAR>.
+If <VAR>command</VAR>
+cannot be executed for some reason, a non-interactive shell exits,
+unless the <CODE>execfail</CODE> shell option
+is enabled. In that case, it returns failure.
+An interactive shell returns failure if the file cannot be executed.
If no <VAR>command</VAR> 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.
-<P>
+</P><P>
<DT><CODE>exit</CODE>
-<DD><A NAME="IDX75"></A>
+<DD><A NAME="IDX84"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>exit [<VAR>n</VAR>]
-</pre></td></tr></table>Exit the shell, returning a status of <VAR>n</VAR> to the shell's parent.
+</pre></td></tr></table><P>
+
+Exit the shell, returning a status of <VAR>n</VAR> to the shell's parent.
If <VAR>n</VAR> is omitted, the exit status is that of the last command executed.
Any trap on <CODE>EXIT</CODE> is executed before the shell terminates.
-<P>
+</P><P>
<DT><CODE>export</CODE>
-<DD><A NAME="IDX76"></A>
+<DD><A NAME="IDX85"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>export [-fn] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>]]
-</pre></td></tr></table>Mark each <VAR>name</VAR> to be passed to child processes
+</pre></td></tr></table><P>
+
+Mark each <VAR>name</VAR> to be passed to child processes
in the environment. If the <SAMP>`-f'</SAMP> option is supplied, the <VAR>name</VAR>s
refer to shell functions; otherwise the names refer to shell variables.
The <SAMP>`-n'</SAMP> option means to no longer mark each <VAR>name</VAR> for export.
If no <VAR>names</VAR> are supplied, or if the <SAMP>`-p'</SAMP> option is given, a
-list of exported names is displayed.
+list of names of all exported variables is displayed.
The <SAMP>`-p'</SAMP> option displays output in a form that may be reused as input.
If a variable name is followed by =<VAR>value</VAR>, the value of
the variable is set to <VAR>value</VAR>.
-<P>
+</P><P>
The return status is zero unless an invalid option is supplied, one of
the names is not a valid shell variable name, or <SAMP>`-f'</SAMP> is supplied
@@ -4074,12 +4447,14 @@ with a name that is not a shell function.
</P><P>
<DT><CODE>getopts</CODE>
-<DD><A NAME="IDX77"></A>
+<DD><A NAME="IDX86"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>getopts <VAR>optstring</VAR> <VAR>name</VAR> [<VAR>args</VAR>]
-</pre></td></tr></table><CODE>getopts</CODE> is used by shell scripts to parse positional parameters.
+</pre></td></tr></table><P>
+
+<CODE>getopts</CODE> is used by shell scripts to parse positional parameters.
<VAR>optstring</VAR> contains the option characters to be recognized; if a
character is followed by a colon, the option is expected to have an
-argument, which should be separated from it by white space.
+argument, which should be separated from it by whitespace.
The colon (<SAMP>`:'</SAMP>) and question mark (<SAMP>`?'</SAMP>) may not be
used as option characters.
Each time it is invoked, <CODE>getopts</CODE>
@@ -4094,7 +4469,7 @@ When an option requires an argument,
The shell does not reset <CODE>OPTIND</CODE> automatically; it must be manually
reset between multiple calls to <CODE>getopts</CODE> within the same shell
invocation if a new set of parameters is to be used.
-<P>
+</P><P>
When the end of options is encountered, <CODE>getopts</CODE> exits with a
return value greater than zero.
@@ -4109,7 +4484,7 @@ given in <VAR>args</VAR>, <CODE>getopts</CODE> parses those instead.
<CODE>getopts</CODE> can report errors in two ways. If the first character of
<VAR>optstring</VAR> is a colon, <VAR>silent</VAR>
-error reporting is used. In normal operation diagnostic messages
+error reporting is used. In normal operation, diagnostic messages
are printed when invalid options or missing option arguments are
encountered.
If the variable <CODE>OPTERR</CODE>
@@ -4132,9 +4507,11 @@ If <CODE>getopts</CODE> is silent, then a colon (<SAMP>`:'</SAMP>) is placed in
</P><P>
<DT><CODE>hash</CODE>
-<DD><A NAME="IDX78"></A>
+<DD><A NAME="IDX87"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>hash [-r] [-p <VAR>filename</VAR>] [-dt] [<VAR>name</VAR>]
-</pre></td></tr></table>Each time <CODE>hash</CODE> is invoked, it remembers the full pathnames of the
+</pre></td></tr></table><P>
+
+Each time <CODE>hash</CODE> is invoked, it remembers the full pathnames of the
commands specified as <VAR>name</VAR> arguments,
so they need not be searched for on subsequent invocations.
The commands are found by searching through the directories listed in
@@ -4155,12 +4532,14 @@ If no arguments are given, or if only <SAMP>`-l'</SAMP> is supplied,
information about remembered commands is printed.
The return status is zero unless a <VAR>name</VAR> is not found or an invalid
option is supplied.
-<P>
+</P><P>
<DT><CODE>pwd</CODE>
-<DD><A NAME="IDX79"></A>
+<DD><A NAME="IDX88"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>pwd [-LP]
-</pre></td></tr></table>Print the absolute pathname of the current working directory.
+</pre></td></tr></table><P>
+
+Print the absolute pathname of the current working directory.
If the <SAMP>`-P'</SAMP> option is supplied, the pathname printed will not
contain symbolic links.
If the <SAMP>`-L'</SAMP> option is supplied, the pathname printed may contain
@@ -4168,20 +4547,25 @@ symbolic links.
The return status is zero unless an error is encountered while
determining the name of the current directory or an invalid option
is supplied.
-<P>
+</P><P>
<DT><CODE>readonly</CODE>
-<DD><A NAME="IDX80"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>readonly [-aApf] [<VAR>name</VAR>[=<VAR>value</VAR>]] <small>...</small>
-</pre></td></tr></table>Mark each <VAR>name</VAR> as readonly.
+<DD><A NAME="IDX89"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>readonly [-aAf] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>]] <small>...</small>
+</pre></td></tr></table><P>
+
+Mark each <VAR>name</VAR> as readonly.
The values of these names may not be changed by subsequent assignment.
If the <SAMP>`-f'</SAMP> option is supplied, each <VAR>name</VAR> refers to a shell
function.
The <SAMP>`-a'</SAMP> option means each <VAR>name</VAR> refers to an indexed
array variable; the <SAMP>`-A'</SAMP> option means each <VAR>name</VAR> refers
to an associative array variable.
+If both options are supplied, <SAMP>`-A'</SAMP> takes precedence.
If no <VAR>name</VAR> arguments are given, or if the <SAMP>`-p'</SAMP>
option is supplied, a list of all readonly names is printed.
+The other options may be used to restrict the output to a subset of
+the set of readonly names.
The <SAMP>`-p'</SAMP> option causes output to be displayed in a format that
may be reused as input.
If a variable name is followed by =<VAR>value</VAR>, the value of
@@ -4189,28 +4573,37 @@ the variable is set to <VAR>value</VAR>.
The return status is zero unless an invalid option is supplied, one of
the <VAR>name</VAR> arguments is not a valid shell variable or function name,
or the <SAMP>`-f'</SAMP> option is supplied with a name that is not a shell function.
-<P>
+</P><P>
<DT><CODE>return</CODE>
-<DD><A NAME="IDX81"></A>
+<DD><A NAME="IDX90"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>return [<VAR>n</VAR>]
-</pre></td></tr></table>Cause a shell function to exit with the return value <VAR>n</VAR>.
+</pre></td></tr></table><P>
+
+Cause a shell function to stop executing and return the value <VAR>n</VAR>
+to its caller.
If <VAR>n</VAR> is not supplied, the return value is the exit status of the
last command executed in the function.
-This may also be used to terminate execution of a script being executed
-with the <CODE>.</CODE> (or <CODE>source</CODE>) builtin, returning either <VAR>n</VAR> or
+<CODE>return</CODE> may also be used to terminate execution of a script
+being executed with the <CODE>.</CODE> (<CODE>source</CODE>) builtin,
+returning either <VAR>n</VAR> or
the exit status of the last command executed within the script as the exit
status of the script.
+If <VAR>n</VAR> is supplied, the return value is its least significant
+8 bits.
Any command associated with the <CODE>RETURN</CODE> trap is executed
before execution resumes after the function or script.
-The return status is non-zero if <CODE>return</CODE> is used outside a function
+The return status is non-zero if <CODE>return</CODE> is supplied a non-numeric
+argument or is used outside a function
and not during the execution of a script by <CODE>.</CODE> or <CODE>source</CODE>.
-<P>
+</P><P>
<DT><CODE>shift</CODE>
-<DD><A NAME="IDX82"></A>
+<DD><A NAME="IDX91"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>shift [<VAR>n</VAR>]
-</pre></td></tr></table>Shift the positional parameters to the left by <VAR>n</VAR>.
+</pre></td></tr></table><P>
+
+Shift the positional parameters to the left by <VAR>n</VAR>.
The positional parameters from <VAR>n</VAR>+1 <small>...</small> <CODE>$#</CODE> are
renamed to <CODE>$1</CODE> <small>...</small> <CODE>$#</CODE>-<VAR>n</VAR>.
Parameters represented by the numbers <CODE>$#</CODE> to <CODE>$#</CODE>-<VAR>n</VAR>+1
@@ -4221,19 +4614,24 @@ are not changed.
If <VAR>n</VAR> is not supplied, it is assumed to be 1.
The return status is zero unless <VAR>n</VAR> is greater than <CODE>$#</CODE> or
less than zero, non-zero otherwise.
-<P>
+</P><P>
<DT><CODE>test</CODE>
<DD><DT><CODE>[</CODE>
-<DD><A NAME="IDX83"></A>
-<A NAME="IDX84"></A>
-Evaluate a conditional expression <VAR>expr</VAR>.
+<DD><A NAME="IDX92"></A>
+<A NAME="IDX93"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>test <VAR>expr</VAR>
+</pre></td></tr></table><P>
+
+Evaluate a conditional express
+ion <VAR>expr</VAR> and return a status of 0
+(true) or 1 (false).
Each operator and operand must be a separate argument.
Expressions are composed of the primaries described below in
<A HREF="bashref.html#SEC83">6.4 Bash Conditional Expressions</A>.
<CODE>test</CODE> does not accept any options, nor does it accept and ignore
an argument of <SAMP>`--'</SAMP> as signifying the end of options.
-<P>
+</P><P>
When the <CODE>[</CODE> form is used, the last argument to the command must
be a <CODE>]</CODE>.
@@ -4321,16 +4719,20 @@ operators sort lexicographically using ASCII ordering.
</P><P>
<DT><CODE>times</CODE>
-<DD><A NAME="IDX85"></A>
+<DD><A NAME="IDX94"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>times
-</pre></td></tr></table>Print out the user and system times used by the shell and its children.
+</pre></td></tr></table><P>
+
+Print out the user and system times used by the shell and its children.
The return status is zero.
-<P>
+</P><P>
<DT><CODE>trap</CODE>
-<DD><A NAME="IDX86"></A>
+<DD><A NAME="IDX95"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>trap [-lp] [<VAR>arg</VAR>] [<VAR>sigspec</VAR> <small>...</small>]
-</pre></td></tr></table>The commands in <VAR>arg</VAR> are to be read and executed when the
+</pre></td></tr></table><P>
+
+The commands in <VAR>arg</VAR> are to be read and executed when the
shell receives signal <VAR>sigspec</VAR>. If <VAR>arg</VAR> is absent (and
there is a single <VAR>sigspec</VAR>) or
equal to <SAMP>`-'</SAMP>, each specified signal's disposition is reset
@@ -4347,7 +4749,7 @@ The <SAMP>`-l'</SAMP> option causes the shell to print a list of signal names
and their corresponding numbers.
Each <VAR>sigspec</VAR> is either a signal name or a signal number.
Signal names are case insensitive and the <CODE>SIG</CODE> prefix is optional.
-<P>
+</P><P>
If a <VAR>sigspec</VAR>
is <CODE>0</CODE> or <CODE>EXIT</CODE>, <VAR>arg</VAR> is executed when the shell exits.
@@ -4364,15 +4766,21 @@ each time a shell function or a script executed with the <CODE>.</CODE> or
</P><P>
If a <VAR>sigspec</VAR> is <CODE>ERR</CODE>, the command <VAR>arg</VAR>
-is executed whenever a simple command has a non-zero exit status,
+is executed whenever
+a pipeline (which may consist of a single simple
+command), a list, or a compound command returns a
+non-zero exit status,
subject to the following conditions.
The <CODE>ERR</CODE> trap is not executed if the failed command is part of the
command list immediately following an <CODE>until</CODE> or <CODE>while</CODE> keyword,
part of the test following the <CODE>if</CODE> or <CODE>elif</CODE> reserved words,
-part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> list,
+part of a command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> list
+except the command following the final <CODE>&#38;&#38;</CODE> or <CODE>||</CODE>,
+any command in a pipeline but the last,
or if the command's return
status is being inverted using <CODE>!</CODE>.
-These are the same conditions obeyed by the <CODE>errexit</CODE> option.
+These are the same conditions obeyed by the <CODE>errexit</CODE> (<SAMP>`-e'</SAMP>)
+option.
</P><P>
Signals ignored upon entry to the shell cannot be trapped or reset.
@@ -4385,9 +4793,11 @@ valid signal.
</P><P>
<DT><CODE>umask</CODE>
-<DD><A NAME="IDX87"></A>
+<DD><A NAME="IDX96"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>umask [-p] [-S] [<VAR>mode</VAR>]
-</pre></td></tr></table>Set the shell process's file creation mask to <VAR>mode</VAR>. If
+</pre></td></tr></table><P>
+
+Set the shell process's file creation mask to <VAR>mode</VAR>. If
<VAR>mode</VAR> begins with a digit, it is interpreted as an octal number;
if not, it is interpreted as a symbolic mode mask similar
to that accepted by the <CODE>chmod</CODE> command. If <VAR>mode</VAR> is
@@ -4398,7 +4808,7 @@ If the <SAMP>`-p'</SAMP> option is supplied, and <VAR>mode</VAR>
is omitted, the output is in a form that may be reused as input.
The return status is zero if the mode is successfully changed or if
no <VAR>mode</VAR> argument is supplied, and non-zero otherwise.
-<P>
+</P><P>
Note that when the mode is interpreted as an octal number, each number
of the umask is subtracted from <CODE>7</CODE>. Thus, a umask of <CODE>022</CODE>
@@ -4406,13 +4816,22 @@ results in permissions of <CODE>755</CODE>.
</P><P>
<DT><CODE>unset</CODE>
-<DD><A NAME="IDX88"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>unset [-fv] [<VAR>name</VAR>]
-</pre></td></tr></table>Each variable or function <VAR>name</VAR> is removed.
-If no options are supplied, or the <SAMP>`-v'</SAMP> option is given, each
-<VAR>name</VAR> refers to a shell variable.
+<DD><A NAME="IDX97"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>unset [-fnv] [<VAR>name</VAR>]
+</pre></td></tr></table><P>
+
+Remove each variable or function <VAR>name</VAR>.
+If the <SAMP>`-v'</SAMP> option is given, each
+<VAR>name</VAR> refers to a shell variable and that variable is remvoved.
If the <SAMP>`-f'</SAMP> option is given, the <VAR>name</VAR>s refer to shell
functions, and the function definition is removed.
+If the <SAMP>`-n'</SAMP> option is supplied, and <VAR>name</VAR> is a variable with
+the <VAR>nameref</VAR> attribute, <VAR>name</VAR> will be unset rather than the
+variable it references.
+<SAMP>`-n'</SAMP> has no effect if the <SAMP>`-f'</SAMP> option is supplied.
+If no options are supplied, each <VAR>name</VAR> refers to a variable; if
+there is no variable by that name, any function with that name is
+unset.
Readonly variables and functions may not be unset.
The return status is zero unless a <VAR>name</VAR> is readonly.
</DL>
@@ -4429,7 +4848,7 @@ The return status is zero unless a <VAR>name</VAR> is readonly.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.2 Bash Builtin Commands </H2>
@@ -4444,8 +4863,8 @@ Some of these commands are specified in the POSIX standard.
<DL COMPACT>
<DT><CODE>alias</CODE>
-<DD><A NAME="IDX89"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>alias [<CODE>-p</CODE>] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+<DD><A NAME="IDX98"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>alias [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
</pre></td></tr></table><P>
Without arguments or with the <SAMP>`-p'</SAMP> option, <CODE>alias</CODE> prints
@@ -4458,8 +4877,8 @@ Aliases are described in <A HREF="bashref.html#SEC85">6.6 Aliases</A>.
</P><P>
<DT><CODE>bind</CODE>
-<DD><A NAME="IDX90"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>bind [-m <VAR>keymap</VAR>] [-lpsvPSV]
+<DD><A NAME="IDX99"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>bind [-m <VAR>keymap</VAR>] [-lpsvPSVX]
bind [-m <VAR>keymap</VAR>] [-q <VAR>function</VAR>] [-u <VAR>function</VAR>] [-r <VAR>keyseq</VAR>]
bind [-m <VAR>keymap</VAR>] -f <VAR>filename</VAR>
bind [-m <VAR>keymap</VAR>] -x <VAR>keyseq:shell-command</VAR>
@@ -4555,6 +4974,11 @@ of the insertion point.
If the executed command changes the value of <CODE>READLINE_LINE</CODE> or
<CODE>READLINE_POINT</CODE>, those new values will be reflected in the
editing state.
+<P>
+
+<DT><CODE>-X</CODE>
+<DD>List all key sequences bound to shell commands and the associated commands
+in a format that can be reused as input.
</DL>
<P>
@@ -4563,22 +4987,26 @@ error occurs.
</P><P>
<DT><CODE>builtin</CODE>
-<DD><A NAME="IDX91"></A>
+<DD><A NAME="IDX100"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>builtin [<VAR>shell-builtin</VAR> [<VAR>args</VAR>]]
-</pre></td></tr></table>Run a shell builtin, passing it <VAR>args</VAR>, and return its exit status.
+</pre></td></tr></table><P>
+
+Run a shell builtin, passing it <VAR>args</VAR>, and return its exit status.
This is useful when defining a shell function with the same
name as a shell builtin, retaining the functionality of the builtin within
the function.
The return status is non-zero if <VAR>shell-builtin</VAR> is not a shell
builtin command.
-<P>
+</P><P>
<DT><CODE>caller</CODE>
-<DD><A NAME="IDX92"></A>
+<DD><A NAME="IDX101"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>caller [<VAR>expr</VAR>]
-</pre></td></tr></table>Returns the context of any active subroutine call (a shell function or
+</pre></td></tr></table><P>
+
+Returns the context of any active subroutine call (a shell function or
a script executed with the <CODE>.</CODE> or <CODE>source</CODE> builtins).
-<P>
+</P><P>
Without <VAR>expr</VAR>, <CODE>caller</CODE> displays the line number and source
filename of the current subroutine call.
@@ -4595,9 +5023,11 @@ call stack.
</P><P>
<DT><CODE>command</CODE>
-<DD><A NAME="IDX93"></A>
+<DD><A NAME="IDX102"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>command [-pVv] <VAR>command</VAR> [<VAR>arguments</VAR> <small>...</small>]
-</pre></td></tr></table>Runs <VAR>command</VAR> with <VAR>arguments</VAR> ignoring any shell function
+</pre></td></tr></table><P>
+
+Runs <VAR>command</VAR> with <VAR>arguments</VAR> ignoring any shell function
named <VAR>command</VAR>.
Only shell builtin commands or commands found by searching the
<CODE>PATH</CODE> are executed.
@@ -4609,7 +5039,7 @@ that is guaranteed to find all of the standard utilities.
The return status in this case is 127 if <VAR>command</VAR> cannot be
found or an error occurred, and the exit status of <VAR>command</VAR>
otherwise.
-<P>
+</P><P>
If either the <SAMP>`-V'</SAMP> or <SAMP>`-v'</SAMP> option is supplied, a
description of <VAR>command</VAR> is printed. The <SAMP>`-v'</SAMP> option
@@ -4620,8 +5050,8 @@ zero if <VAR>command</VAR> is found, and non-zero if not.
</P><P>
<DT><CODE>declare</CODE>
-<DD><A NAME="IDX94"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare [-aAfFilrtux] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+<DD><A NAME="IDX103"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare [-aAfFgilnrtux] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
</pre></td></tr></table><P>
Declare variables and give them attributes. If no <VAR>name</VAR>s
@@ -4630,8 +5060,8 @@ are given, then display the values of variables instead.
The <SAMP>`-p'</SAMP> option will display the attributes and values of each
<VAR>name</VAR>.
-When <SAMP>`-p'</SAMP> is used with <VAR>name</VAR> arguments, additional options
-are ignored.
+When <SAMP>`-p'</SAMP> is used with <VAR>name</VAR> arguments, additional options,
+other than <SAMP>`-f'</SAMP> and <SAMP>`-F'</SAMP>, are ignored.
</P><P>
When <SAMP>`-p'</SAMP> is supplied without <VAR>name</VAR> arguments, <CODE>declare</CODE>
@@ -4651,7 +5081,7 @@ the function is defined are displayed as well.
</P><P>
The <SAMP>`-g'</SAMP> option forces variables to be created or modified at
-the global scope, even when \fBdeclare\fP is executed in a shell function.
+the global scope, even when <CODE>declare</CODE> is executed in a shell function.
It is ignored in all other cases.
</P><P>
@@ -4684,6 +5114,16 @@ converted to lower-case.
The upper-case attribute is disabled.
<P>
+<DT><CODE>-n</CODE>
+<DD>Give each <VAR>name</VAR> the <VAR>nameref</VAR> attribute, making
+it a name reference to another variable.
+That other variable is defined by the value of <VAR>name</VAR>.
+All references and assignments to <VAR>name</VAR>, except for changing the
+<SAMP>`-n'</SAMP> attribute itself, are performed on the variable referenced by
+<VAR>name</VAR>'s value.
+The <SAMP>`-n'</SAMP> attribute cannot be applied to array variables.
+<P>
+
<DT><CODE>-r</CODE>
<DD>Make <VAR>name</VAR>s readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
@@ -4718,6 +5158,11 @@ If a variable name is followed by =<VAR>value</VAR>, the value of the variable
is set to <VAR>value</VAR>.
</P><P>
+When using <SAMP>`-a'</SAMP> or <SAMP>`-A'</SAMP> and the compound assignment syntax to
+create array variables, additional attributes do not take effect until
+subsequent assignments.
+</P><P>
+
The return status is zero unless an invalid option is encountered,
an attempt is made to define a function using <SAMP>`-f foo=bar'</SAMP>,
an attempt is made to assign a value to a readonly variable,
@@ -4730,11 +5175,13 @@ or an attempt is made to display a non-existent function with <SAMP>`-f'</SAMP>.
</P><P>
<DT><CODE>echo</CODE>
-<DD><A NAME="IDX95"></A>
+<DD><A NAME="IDX104"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>echo [-neE] [<VAR>arg</VAR> <small>...</small>]
-</pre></td></tr></table>Output the <VAR>arg</VAR>s, separated by spaces, terminated with a
+</pre></td></tr></table><P>
+
+Output the <VAR>arg</VAR>s, separated by spaces, terminated with a
newline.
-The return status is always 0.
+The return status is 0 unless a write error occurs.
If <SAMP>`-n'</SAMP> is specified, the trailing newline is suppressed.
If the <SAMP>`-e'</SAMP> option is given, interpretation of the following
backslash-escaped characters is enabled.
@@ -4744,7 +5191,7 @@ The <CODE>xpg_echo</CODE> shell option may be used to
dynamically determine whether or not <CODE>echo</CODE> expands these
escape characters by default.
<CODE>echo</CODE> does not interpret <SAMP>`--'</SAMP> to mean the end of options.
-<P>
+</P><P>
<CODE>echo</CODE> interprets the following escape sequences:
<DL COMPACT>
@@ -4785,9 +5232,11 @@ escape characters by default.
<P>
<DT><CODE>enable</CODE>
-<DD><A NAME="IDX96"></A>
+<DD><A NAME="IDX105"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>enable [-a] [-dnps] [-f <VAR>filename</VAR>] [<VAR>name</VAR> <small>...</small>]
-</pre></td></tr></table>Enable and disable builtin shell commands.
+</pre></td></tr></table><P>
+
+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 shell normally searches for builtins before disk commands.
@@ -4795,7 +5244,7 @@ If <SAMP>`-n'</SAMP> is used, the <VAR>name</VAR>s become disabled. Otherwise
<VAR>name</VAR>s are enabled. For example, to use the <CODE>test</CODE> binary
found via <CODE>$PATH</CODE> instead of the shell builtin version, type
<SAMP>`enable -n test'</SAMP>.
-<P>
+</P><P>
If the <SAMP>`-p'</SAMP> option is supplied, or no <VAR>name</VAR> arguments appear,
a list of shell builtins is printed. With no other arguments, the list
@@ -4820,13 +5269,15 @@ or there is an error loading a new builtin from a shared object.
</P><P>
<DT><CODE>help</CODE>
-<DD><A NAME="IDX97"></A>
+<DD><A NAME="IDX106"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>help [-dms] [<VAR>pattern</VAR>]
-</pre></td></tr></table>Display helpful information about builtin commands.
+</pre></td></tr></table><P>
+
+Display helpful information about builtin commands.
If <VAR>pattern</VAR> is specified, <CODE>help</CODE> gives detailed help
on all commands matching <VAR>pattern</VAR>, otherwise a list of
the builtins is printed.
-<P>
+</P><P>
Options, if supplied, have the following meanings:
</P><P>
@@ -4845,19 +5296,23 @@ The return status is zero unless no command matches <VAR>pattern</VAR>.
</P><P>
<DT><CODE>let</CODE>
-<DD><A NAME="IDX98"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>let <VAR>expression</VAR> [<VAR>expression</VAR>]
-</pre></td></tr></table>The <CODE>let</CODE> builtin allows arithmetic to be performed on shell
+<DD><A NAME="IDX107"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>let <VAR>expression</VAR> [<VAR>expression</VAR> <small>...</small>]
+</pre></td></tr></table><P>
+
+The <CODE>let</CODE> builtin allows arithmetic to be performed on shell
variables. Each <VAR>expression</VAR> is evaluated according to the
rules given below in <A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A>. If the
last <VAR>expression</VAR> evaluates to 0, <CODE>let</CODE> returns 1;
otherwise 0 is returned.
-<P>
+</P><P>
<DT><CODE>local</CODE>
-<DD><A NAME="IDX99"></A>
+<DD><A NAME="IDX108"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>local [<VAR>option</VAR>] <VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>
-</pre></td></tr></table>For each argument, a local variable named <VAR>name</VAR> is created,
+</pre></td></tr></table><P>
+
+For each argument, a local variable named <VAR>name</VAR> is created,
and assigned <VAR>value</VAR>.
The <VAR>option</VAR> can be any of the options accepted by <CODE>declare</CODE>.
<CODE>local</CODE> can only be used within a function; it makes the variable
@@ -4865,24 +5320,30 @@ The <VAR>option</VAR> can be any of the options accepted by <CODE>declare</CODE>
children. The return status is zero unless <CODE>local</CODE> is used outside
a function, an invalid <VAR>name</VAR> is supplied, or <VAR>name</VAR> is a
readonly variable.
-<P>
+</P><P>
<DT><CODE>logout</CODE>
-<DD><A NAME="IDX100"></A>
+<DD><A NAME="IDX109"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>logout [<VAR>n</VAR>]
-</pre></td></tr></table>Exit a login shell, returning a status of <VAR>n</VAR> to the shell's
+</pre></td></tr></table><P>
+
+Exit a login shell, returning a status of <VAR>n</VAR> to the shell's
parent.
-<P>
+</P><P>
<DT><CODE>mapfile</CODE>
-<DD><A NAME="IDX101"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>mapfile [-n <VAR>count</VAR>] [-O <VAR>origin</VAR>] [-s <VAR>count</VAR>] [-t] [-u <VAR>fd</VAR>] [
--C <VAR>callback</VAR>] [-c <VAR>quantum</VAR>] [<VAR>array</VAR>]
-</pre></td></tr></table>Read lines from the standard input into the indexed array variable <VAR>array</VAR>,
+<DD><A NAME="IDX110"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>mapfile [-n <VAR>count</VAR>] [-O <VAR>origin</VAR>] [-s <VAR>count</VAR>] [-t] [-u <VAR>fd</VAR>]
+ [-C <VAR>callback</VAR>] [-c <VAR>quantum</VAR>] [<VAR>array</VAR>]
+</pre></td></tr></table><P>
+
+Read lines from the standard input into the indexed array variable <VAR>array</VAR>,
or from file descriptor <VAR>fd</VAR>
if the <SAMP>`-u'</SAMP> option is supplied.
The variable <CODE>MAPFILE</CODE> is the default <VAR>array</VAR>.
Options, if supplied, have the following meanings:
+</P><P>
+
<DL COMPACT>
<DT><CODE>-n</CODE>
@@ -4923,13 +5384,15 @@ is not an indexed array.
</P><P>
<DT><CODE>printf</CODE>
-<DD><A NAME="IDX102"></A>
+<DD><A NAME="IDX111"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>printf [-v <VAR>var</VAR>] <VAR>format</VAR> [<VAR>arguments</VAR>]
-</pre></td></tr></table>Write the formatted <VAR>arguments</VAR> to the standard output under the
+</pre></td></tr></table><P>
+
+Write the formatted <VAR>arguments</VAR> to the standard output under the
control of the <VAR>format</VAR>.
The <SAMP>`-v'</SAMP> option causes the output to be assigned to the variable
<VAR>var</VAR> rather than being printed to the standard output.
-<P>
+</P><P>
The <VAR>format</VAR> is a character string which contains three types of objects:
plain characters, which are simply copied to standard output, character
@@ -4942,20 +5405,23 @@ interprets the following extensions:
<DL COMPACT>
<DT><CODE>%b</CODE>
-<DD>causes <CODE>printf</CODE> to expand backslash escape sequences in the
+<DD>Causes <CODE>printf</CODE> to expand backslash escape sequences in the
corresponding <VAR>argument</VAR>,
-(except that <SAMP>`\c'</SAMP> terminates output, backslashes in
+except that <SAMP>`\c'</SAMP> terminates output, backslashes in
<SAMP>`\''</SAMP>, <SAMP>`\"'</SAMP>, and <SAMP>`\?'</SAMP> are not removed, and octal escapes
-beginning with <SAMP>`\0'</SAMP> may contain up to four digits).
+beginning with <SAMP>`\0'</SAMP> may contain up to four digits.
<DT><CODE>%q</CODE>
-<DD>causes <CODE>printf</CODE> to output the
+<DD>Causes <CODE>printf</CODE> to output the
corresponding <VAR>argument</VAR> in a format that can be reused as shell input.
<DT><CODE>%(<VAR>datefmt</VAR>)T</CODE>
-<DD>causes <CODE>printf</CODE> to output the date-time string resulting from using
-<VAR>datefmt</VAR> as a format string for <CODE>strftime</CODE>(3). The corresponding
-<VAR>argument</VAR> is an integer representing the number of seconds since the
-epoch. Two special argument values may be used: -1 represents the current
+<DD>Causes <CODE>printf</CODE> to output the date-time string resulting from using
+<VAR>datefmt</VAR> as a format string for <CODE>strftime</CODE>(3).
+The corresponding <VAR>argument</VAR> is an integer representing the number of
+seconds since the epoch.
+Two special argument values may be used: -1 represents the current
time, and -2 represents the time the shell was invoked.
+If no argument is specified, conversion behaves as if -1 had been given.
+This is an exception to the usual <CODE>printf</CODE> behavior.
</DL>
<P>
@@ -4973,9 +5439,12 @@ non-zero on failure.
</P><P>
<DT><CODE>read</CODE>
-<DD><A NAME="IDX103"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>] [-N <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
-</pre></td></tr></table>One line is read from the standard input, or from the file descriptor
+<DD><A NAME="IDX112"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>read [-ers] [-a <VAR>aname</VAR>] [-d <VAR>delim</VAR>] [-i <VAR>text</VAR>] [-n <VAR>nchars</VAR>]
+ [-N <VAR>nchars</VAR>] [-p <VAR>prompt</VAR>] [-t <VAR>timeout</VAR>] [-u <VAR>fd</VAR>] [<VAR>name</VAR> <small>...</small>]
+</pre></td></tr></table><P>
+
+One line is read from the standard input, or from the file descriptor
<VAR>fd</VAR> supplied as an argument to the <SAMP>`-u'</SAMP> option, and the first word
is assigned to the first <VAR>name</VAR>, the second word to the second <VAR>name</VAR>,
and so on, with leftover words and their intervening separators assigned
@@ -4983,15 +5452,17 @@ to the last <VAR>name</VAR>.
If there are fewer words read from the input stream than names,
the remaining names are assigned empty values.
The characters in the value of the <CODE>IFS</CODE> variable
-are used to split the line into words.
+are used to split the line into words using the same rules the shell
+uses for expansion (described above in <A HREF="bashref.html#SEC36">3.5.7 Word Splitting</A>).
The backslash character <SAMP>`\'</SAMP> may be used to remove any special
meaning for the next character read and for line continuation.
If no names are supplied, the line read is assigned to the
variable <CODE>REPLY</CODE>.
The return code is zero, unless end-of-file is encountered, <CODE>read</CODE>
-times out (in which case the return code is greater than 128), or an
-invalid file descriptor is supplied as the argument to <SAMP>`-u'</SAMP>.
-<P>
+times out (in which case the return code is greater than 128),
+a variable assignment error (such as assigning to a readonly variable) occurs,
+or an invalid file descriptor is supplied as the argument to <SAMP>`-u'</SAMP>.
+</P><P>
Options, if supplied, have the following meanings:
</P><P>
@@ -5055,48 +5526,56 @@ not echoed.
<DT><CODE>-t <VAR>timeout</VAR></CODE>
<DD>Cause <CODE>read</CODE> to time out and return failure if a complete line of
-input is not read within <VAR>timeout</VAR> seconds.
+input (or a specified number of characters)
+is not read within <VAR>timeout</VAR> seconds.
<VAR>timeout</VAR> may be a decimal number with a fractional portion following
the decimal point.
This option is only effective if <CODE>read</CODE> is reading input from a
terminal, pipe, or other special file; it has no effect when reading
from regular files.
-If <VAR>timeout</VAR> is 0, <CODE>read</CODE> returns success if input is available on
-the specified file descriptor, failure otherwise.
+If <CODE>read</CODE> times out, <CODE>read</CODE> saves any partial input read into
+the specified variable <VAR>name</VAR>.
+If <VAR>timeout</VAR> is 0, <CODE>read</CODE> returns immediately, without trying to
+read and data. The exit status is 0 if input is available on
+the specified file descriptor, non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
<P>
<DT><CODE>-u <VAR>fd</VAR></CODE>
<DD>Read input from file descriptor <VAR>fd</VAR>.
-<P>
-
</DL>
<P>
<DT><CODE>readarray</CODE>
-<DD><A NAME="IDX104"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>readarray [-n <VAR>count</VAR>] [-O <VAR>origin</VAR>] [-s <VAR>count</VAR>] [-t] [-u <VAR>fd</VAR>] [
--C <VAR>callback</VAR>] [-c <VAR>quantum</VAR>] [<VAR>array</VAR>]
-</pre></td></tr></table>Read lines from the standard input into the indexed array variable <VAR>array</VAR>,
+<DD><A NAME="IDX113"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>readarray [-n <VAR>count</VAR>] [-O <VAR>origin</VAR>] [-s <VAR>count</VAR>] [-t] [-u <VAR>fd</VAR>]
+ [-C <VAR>callback</VAR>] [-c <VAR>quantum</VAR>] [<VAR>array</VAR>]
+</pre></td></tr></table><P>
+
+Read lines from the standard input into the indexed array variable <VAR>array</VAR>,
or from file descriptor <VAR>fd</VAR>
if the <SAMP>`-u'</SAMP> option is supplied.
-<P>
+</P><P>
A synonym for <CODE>mapfile</CODE>.
</P><P>
<DT><CODE>source</CODE>
-<DD><A NAME="IDX105"></A>
+<DD><A NAME="IDX114"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>source <VAR>filename</VAR>
-</pre></td></tr></table>A synonym for <CODE>.</CODE> (see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>).
-<P>
+</pre></td></tr></table><P>
+
+A synonym for <CODE>.</CODE> (see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>).
+</P><P>
<DT><CODE>type</CODE>
-<DD><A NAME="IDX106"></A>
+<DD><A NAME="IDX115"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>type [-afptP] [<VAR>name</VAR> <small>...</small>]
-</pre></td></tr></table>For each <VAR>name</VAR>, indicate how it would be interpreted if used as a
+</pre></td></tr></table><P>
+
+For each <VAR>name</VAR>, indicate how it would be interpreted if used as a
command name.
-<P>
+</P><P>
If the <SAMP>`-t'</SAMP> option is used, <CODE>type</CODE> prints a single word
which is one of <SAMP>`alias'</SAMP>, <SAMP>`function'</SAMP>, <SAMP>`builtin'</SAMP>,
@@ -5117,7 +5596,7 @@ The <SAMP>`-P'</SAMP> option forces a path search for each <VAR>name</VAR>, even
</P><P>
If a command is hashed, <SAMP>`-p'</SAMP> and <SAMP>`-P'</SAMP> print the hashed value,
-not necessarily the file that appears first in <CODE>$PATH</CODE>.
+which is not necessarily the file that appears first in <CODE>$PATH</CODE>.
</P><P>
If the <SAMP>`-a'</SAMP> option is used, <CODE>type</CODE> returns all of the places
@@ -5135,19 +5614,25 @@ if any are not found.
</P><P>
<DT><CODE>typeset</CODE>
-<DD><A NAME="IDX107"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>typeset [-afFrxi] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
-</pre></td></tr></table>The <CODE>typeset</CODE> command is supplied for compatibility with the Korn
-shell; however, it has been deprecated in favor of the <CODE>declare</CODE>
-builtin command.
-<P>
+<DD><A NAME="IDX116"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>typeset [-afFgrxilnrtux] [-p] [<VAR>name</VAR>[=<VAR>value</VAR>] <small>...</small>]
+</pre></td></tr></table><P>
+
+The <CODE>typeset</CODE> command is supplied for compatibility with the Korn
+shell.
+It is a synonym for the <CODE>declare</CODE> builtin command.
+</P><P>
<DT><CODE>ulimit</CODE>
-<DD><A NAME="IDX108"></A>
+<DD><A NAME="IDX117"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ulimit [-abcdefilmnpqrstuvxHST] [<VAR>limit</VAR>]
-</pre></td></tr></table><CODE>ulimit</CODE> provides control over the resources available to processes
+</pre></td></tr></table><P>
+
+<CODE>ulimit</CODE> 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:
+</P><P>
+
<DL COMPACT>
<DT><CODE>-S</CODE>
<DD>Change and report the soft limit associated with a resource.
@@ -5233,13 +5718,12 @@ some systems, to its children.
<DT><CODE>-T</CODE>
<DD>The maximum number of threads.
-<P>
-
</DL>
<P>
-If <VAR>limit</VAR> is given, it is the new value of the specified resource;
-the special <VAR>limit</VAR> values <CODE>hard</CODE>, <CODE>soft</CODE>, and
+If <VAR>limit</VAR> is given, and the <SAMP>`-a'</SAMP> option is not used,
+<VAR>limit</VAR> is the new value of the specified resource.
+The special <VAR>limit</VAR> values <CODE>hard</CODE>, <CODE>soft</CODE>, and
<CODE>unlimited</CODE> 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;
@@ -5249,9 +5733,9 @@ is printed, unless the <SAMP>`-H'</SAMP> option is supplied.
When setting new limits, if neither <SAMP>`-H'</SAMP> nor <SAMP>`-S'</SAMP> is supplied,
both the hard and soft limits are set.
If no option is given, then <SAMP>`-f'</SAMP> is assumed. Values are in 1024-byte
-increments, except for <SAMP>`-t'</SAMP>, which is in seconds, <SAMP>`-p'</SAMP>,
-which is in units of 512-byte blocks, and <SAMP>`-n'</SAMP> and <SAMP>`-u'</SAMP>, which
-are unscaled values.
+increments, except for <SAMP>`-t'</SAMP>, which is in seconds; <SAMP>`-p'</SAMP>,
+which is in units of 512-byte blocks; and <SAMP>`-T'</SAMP>, <SAMP>`-b'</SAMP>,
+<SAMP>`-n'</SAMP> and <SAMP>`-u'</SAMP>, which are unscaled values.
</P><P>
The return status is zero unless an invalid option or argument is supplied,
@@ -5259,15 +5743,13 @@ or an error occurs while setting a new limit.
</P><P>
<DT><CODE>unalias</CODE>
-<DD><A NAME="IDX109"></A>
+<DD><A NAME="IDX118"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>unalias [-a] [<VAR>name</VAR> <small>...</small> ]
</pre></td></tr></table><P>
Remove each <VAR>name</VAR> from the list of aliases. If <SAMP>`-a'</SAMP> is
supplied, all aliases are removed.
Aliases are described in <A HREF="bashref.html#SEC85">6.6 Aliases</A>.
-</P><P>
-
</DL>
<P>
@@ -5282,7 +5764,7 @@ Aliases are described in <A HREF="bashref.html#SEC85">6.6 Aliases</A>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.3 Modifying Shell Behavior </H2>
@@ -5306,7 +5788,7 @@ Aliases are described in <A HREF="bashref.html#SEC85">6.6 Aliases</A>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.3.1 The Set Builtin </H3>
@@ -5320,7 +5802,7 @@ parameters, or to display the names and values of shell variables.
<DL COMPACT>
<DT><CODE>set</CODE>
-<DD><A NAME="IDX110"></A>
+<DD><A NAME="IDX119"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>set [--abefhkmnptuvxBCEHPT] [-o <VAR>option-name</VAR>] [<VAR>argument</VAR> <small>...</small>]
set [+abefhkmnptuvxBCEHPT] [+o <VAR>option-name</VAR>] [<VAR>argument</VAR> <small>...</small>]
</pre></td></tr></table><P>
@@ -5349,11 +5831,11 @@ immediately, rather than before printing the next primary prompt.
<P>
<DT><CODE>-e</CODE>
-<DD>Exit immediately if a pipeline (see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>), which may consist
-of a single simple command (see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>),
-a subshell command enclosed in parentheses (see section <A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A>),
-or one of the commands executed as part of a command list enclosed
-by braces (see section <A HREF="bashref.html#SEC22">3.2.4.3 Grouping Commands</A>)
+<DD>Exit immediately if
+a pipeline (see section <A HREF="bashref.html#SEC17">3.2.2 Pipelines</A>), which may consist of a single simple command
+(see section <A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A>),
+a list (see section <A HREF="bashref.html#SEC18">3.2.3 Lists of Commands</A>),
+or a compound command (see section <A HREF="bashref.html#SEC19">3.2.4 Compound Commands</A>)
returns a non-zero status.
The shell does not exit if the command that fails is part of the
command list immediately following a <CODE>while</CODE> or <CODE>until</CODE> keyword,
@@ -5362,6 +5844,9 @@ part of any command executed in a <CODE>&#38;&#38;</CODE> or <CODE>||</CODE> lis
the command following the final <CODE>&#38;&#38;</CODE> or <CODE>||</CODE>,
any command in a pipeline but the last,
or if the command's return status is being inverted with <CODE>!</CODE>.
+If a compound command other than a subshell
+returns a non-zero status because a command failed
+while <SAMP>`-e'</SAMP> was being ignored, the shell does not exit.
A trap on <CODE>ERR</CODE>, if set, is executed before the shell exits.
<P>
@@ -5370,6 +5855,17 @@ separately (see section <A HREF="bashref.html#SEC54">3.7.3 Command Execution Env
subshells to exit before executing all the commands in the subshell.
</P><P>
+If a compound command or shell function executes in a context where
+<SAMP>`-e'</SAMP> is being ignored,
+none of the commands executed within the compound command or function body
+will be affected by the <SAMP>`-e'</SAMP> setting, even if <SAMP>`-e'</SAMP> is set
+and a command returns a failure status.
+If a compound command or shell function sets <SAMP>`-e'</SAMP> while executing in
+a context where <SAMP>`-e'</SAMP> is ignored, that setting will not have any
+effect until the compound command or the command containing the function
+call completes.
+</P><P>
+
<DT><CODE>-f</CODE>
<DD>Disable filename expansion (globbing).
<P>
@@ -5387,6 +5883,9 @@ the command name.
<DT><CODE>-m</CODE>
<DD>Job control is enabled (see section <A HREF="bashref.html#SEC92">7. Job Control</A>).
+All processes run in a separate process group.
+When a background job completes, the shell prints a line
+containing its exit status.
<P>
<DT><CODE>-n</CODE>
@@ -5436,7 +5935,7 @@ This also affects the editing interface used for <CODE>read -e</CODE>.
<P>
<DT><CODE>history</CODE>
-<DD>Enable command history, as described in <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>.
+<DD>Enable command history, as described in <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>.
This option is on by default in interactive shells.
<P>
@@ -5524,9 +6023,9 @@ processed, shell functions are not inherited from the environment,
and the <CODE>SHELLOPTS</CODE>, <CODE>BASHOPTS</CODE>, <CODE>CDPATH</CODE> and <CODE>GLOBIGNORE</CODE>
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</CODE> option is not supplied, these actions
+real user (group) id, and the <SAMP>`-p'</SAMP> option is not supplied, these actions
are taken and the effective user id is set to the real user id.
-If the <CODE>-p</CODE> option is supplied at startup, the effective user id is
+If the <SAMP>`-p'</SAMP> 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.
@@ -5573,12 +6072,12 @@ The <CODE>ERR</CODE> trap is normally not inherited in such cases.
<P>
<DT><CODE>-H</CODE>
-<DD>Enable <SAMP>`!'</SAMP> style history substitution (see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>).
+<DD>Enable <SAMP>`!'</SAMP> style history substitution (see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>).
This option is on by default for interactive shells.
<P>
<DT><CODE>-P</CODE>
-<DD>If set, do not follow symbolic links when performing commands such as
+<DD>If set, do not resolve symbolic links when performing commands such as
<CODE>cd</CODE> which change the current directory. The physical directory
is used instead. By default, Bash follows
the logical chain of directories when performing commands
@@ -5647,7 +6146,7 @@ The return status is always zero unless an invalid option is supplied.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC65"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 4.3.2 The Shopt Builtin </H3>
@@ -5660,15 +6159,20 @@ This builtin allows you to change additional shell optional behavior.
<DL COMPACT>
<DT><CODE>shopt</CODE>
-<DD><A NAME="IDX111"></A>
+<DD><A NAME="IDX120"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>shopt [-pqsu] [-o] [<VAR>optname</VAR> <small>...</small>]
-</pre></td></tr></table>Toggle the values of variables controlling optional shell behavior.
+</pre></td></tr></table><P>
+
+Toggle the values of settings controlling optional shell behavior.
+The settings can be either those listed below, or, if the
+<SAMP>`-o'</SAMP> option is used, those available with the <SAMP>`-o'</SAMP>
+option to the <CODE>set</CODE> builtin command (see section <A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A>).
With no options, or with the <SAMP>`-p'</SAMP> option, a list of all settable
options is displayed, with an indication of whether or not each is set.
The <SAMP>`-p'</SAMP> option causes output to be displayed in a form that
may be reused as input.
Other options have the following meanings:
-<P>
+</P><P>
<DL COMPACT>
<DT><CODE>-s</CODE>
@@ -5695,7 +6199,7 @@ non-zero otherwise.
<P>
If either <SAMP>`-s'</SAMP> or <SAMP>`-u'</SAMP>
-is used with no <VAR>optname</VAR> arguments, the display is limited to
+is used with no <VAR>optname</VAR> arguments, <CODE>shopt</CODE> shows only
those options which are set or unset, respectively.
</P><P>
@@ -5750,7 +6254,7 @@ The shell always postpones exiting if any jobs are stopped.
<DT><CODE>checkwinsize</CODE>
<DD>If set, Bash checks the window size after each command
-and, if necessary, updates the values of
+ and, if necessary, updates the values of
<CODE>LINES</CODE> and <CODE>COLUMNS</CODE>.
<P>
@@ -5764,34 +6268,72 @@ easy re-editing of multi-line commands.
<DT><CODE>compat31</CODE>
<DD>If set, Bash
changes its behavior to that of version 3.1 with respect to quoted
-arguments to the conditional command's <SAMP>`=~'</SAMP> operator.
+arguments to the conditional command's <SAMP>`=~'</SAMP> operator
+and with respect to locale-specific
+string comparison when using the <CODE>[[</CODE>
+conditional command's <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators.
+Bash versions prior to bash-4.1 use ASCII collation and strcmp(3);
+bash-4.1 and later use the current locale's collation sequence and strcoll(3).
<P>
<DT><CODE>compat32</CODE>
<DD>If set, Bash
changes its behavior to that of version 3.2 with respect to locale-specific
-string comparison when using the <SAMP>`[['</SAMP>
-conditional command's <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators.
-Bash versions prior to bash-4.0 use ASCII collation and strcmp(3);
-bash-4.1 and later use the current locale's collation sequence and strcoll(3).
+string comparison when using the <CODE>[[</CODE>
+conditional command's <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators (see previous item).
<P>
<DT><CODE>compat40</CODE>
<DD>If set, Bash
changes its behavior to that of version 4.0 with respect to locale-specific
-string comparison when using the <SAMP>`[['</SAMP>
-conditional command's <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators (see previous item)
+string comparison when using the <CODE>[[</CODE>
+conditional command's <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators (see description
+of <CODE>compat31</CODE>)
and the effect of interrupting a command list.
+Bash versions 4.0 and later interrupt the list as if the shell received the
+interrupt; previous versions continue with the next command in the list.
<P>
<DT><CODE>compat41</CODE>
-<DD>If set, Bash, when in posix mode, treats a single quote in a double-quoted
+<DD>If set, Bash, when in POSIX mode, treats a single quote in a double-quoted
parameter expansion as a special character. The single quotes must match
(an even number) and the characters between the single quotes are considered
quoted. This is the behavior of POSIX mode through version 4.1.
The default Bash behavior remains as in previous versions.
<P>
+<DT><CODE>compat42</CODE>
+<DD>If set, Bash
+does not process the replacement string in the pattern substitution word
+expansion using quote removal.
+<P>
+
+<DT><CODE>complete_fullquote</CODE>
+<DD>If set, Bash
+quotes all shell metacharacters in filenames and directory names when
+performing completion.
+If not set, Bash
+removes metacharacters such as the dollar sign from the set of
+characters that will be quoted in completed filenames
+when these metacharacters appear in shell variable references in words to be
+completed.
+This means that dollar signs in variable names that expand to directories
+will not be quoted;
+however, any dollar signs appearing in filenames will not be quoted, either.
+This is active only when bash is using backslashes to quote completed
+filenames.
+This variable is set by default, which is the default Bash behavior in
+versions through 4.2.
+<P>
+
+<DT><CODE>direxpand</CODE>
+<DD>If set, Bash
+replaces directory names with the results of word expansion when performing
+filename completion. This changes the contents of the readline editing
+buffer.
+If not set, Bash attempts to preserve what the user typed.
+<P>
+
<DT><CODE>dirspell</CODE>
<DD>If set, Bash
attempts spelling correction on directory names during word completion
@@ -5881,9 +6423,19 @@ See section <A HREF="bashref.html#SEC68">5.2 Bash Variables</A>, for a descripti
This option is enabled by default.
<P>
+<DT><CODE>globasciiranges</CODE>
+<DD>If set, range expressions used in pattern matching bracket expressions
+(see section <A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A>)
+behave as if in the traditional C locale when performing
+comparisons. That is, the current locale's collating sequence
+is not taken into account, so
+<SAMP>`b'</SAMP> will not collate between <SAMP>`A'</SAMP> and <SAMP>`B'</SAMP>,
+and upper-case and lower-case ASCII characters will collate together.
+<P>
+
<DT><CODE>globstar</CODE>
<DD>If set, the pattern <SAMP>`**'</SAMP> used in a filename expansion context will
-match a files and zero or more directories and subdirectories.
+match all files and zero or more directories and subdirectories.
If the pattern is followed by a <SAMP>`/'</SAMP>, only directories and
subdirectories match.
<P>
@@ -6022,8 +6574,6 @@ The return status when listing options is zero if all <VAR>optnames</VAR>
are enabled, non-zero otherwise.
When setting or unsetting options, the return status is zero unless an
<VAR>optname</VAR> is not a valid shell option.
-</P><P>
-
</DL>
<P>
@@ -6038,7 +6588,7 @@ When setting or unsetting options, the return status is zero unless an
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC66"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 4.4 Special Builtins </H2>
@@ -6087,7 +6637,7 @@ shift trap unset
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC69"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 5. Shell Variables </H1>
@@ -6116,7 +6666,7 @@ Bash automatically assigns default values to a number of variables.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC69"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.1 Bourne Shell Variables </H2>
@@ -6129,65 +6679,65 @@ In some cases, Bash assigns a default value to the variable.
<DL COMPACT>
-<A NAME="IDX112"></A>
+<A NAME="IDX121"></A>
<DT><CODE>CDPATH</CODE>
-<DD><A NAME="IDX113"></A>
+<DD><A NAME="IDX122"></A>
A colon-separated list of directories used as a search path for
the <CODE>cd</CODE> builtin command.
<P>
-<A NAME="IDX114"></A>
+<A NAME="IDX123"></A>
<DT><CODE>HOME</CODE>
-<DD><A NAME="IDX115"></A>
+<DD><A NAME="IDX124"></A>
The current user's home directory; the default for the <CODE>cd</CODE> builtin
command.
The value of this variable is also used by tilde expansion
(see section <A HREF="bashref.html#SEC31">3.5.2 Tilde Expansion</A>).
<P>
-<A NAME="IDX116"></A>
+<A NAME="IDX125"></A>
<DT><CODE>IFS</CODE>
-<DD><A NAME="IDX117"></A>
+<DD><A NAME="IDX126"></A>
A list of characters that separate fields; used when the shell splits
words as part of expansion.
<P>
-<A NAME="IDX118"></A>
+<A NAME="IDX127"></A>
<DT><CODE>MAIL</CODE>
-<DD><A NAME="IDX119"></A>
+<DD><A NAME="IDX128"></A>
If this parameter is set to a filename or directory name
and the <CODE>MAILPATH</CODE> variable
is not set, Bash informs the user of the arrival of mail in
the specified file or Maildir-format directory.
<P>
-<A NAME="IDX120"></A>
+<A NAME="IDX129"></A>
<DT><CODE>MAILPATH</CODE>
-<DD><A NAME="IDX121"></A>
+<DD><A NAME="IDX130"></A>
A colon-separated list of filenames which the shell periodically checks
for new mail.
Each list entry can specify the message that is printed when new mail
-arrives in the mail file by separating the file name from the message with
+arrives in the mail file by separating the filename from the message with
a <SAMP>`?'</SAMP>.
When used in the text of the message, <CODE>$_</CODE> expands to the name of
the current mail file.
<P>
-<A NAME="IDX122"></A>
+<A NAME="IDX131"></A>
<DT><CODE>OPTARG</CODE>
-<DD><A NAME="IDX123"></A>
+<DD><A NAME="IDX132"></A>
The value of the last option argument processed by the <CODE>getopts</CODE> builtin.
<P>
-<A NAME="IDX124"></A>
+<A NAME="IDX133"></A>
<DT><CODE>OPTIND</CODE>
-<DD><A NAME="IDX125"></A>
+<DD><A NAME="IDX134"></A>
The index of the last option argument processed by the <CODE>getopts</CODE> builtin.
<P>
-<A NAME="IDX126"></A>
+<A NAME="IDX135"></A>
<DT><CODE>PATH</CODE>
-<DD><A NAME="IDX127"></A>
+<DD><A NAME="IDX136"></A>
A colon-separated list of directories in which the shell looks for
commands.
A zero-length (null) directory name in the value of <CODE>PATH</CODE> indicates the
@@ -6196,17 +6746,17 @@ A null directory name may appear as two adjacent colons, or as an initial
or trailing colon.
<P>
-<A NAME="IDX128"></A>
+<A NAME="IDX137"></A>
<DT><CODE>PS1</CODE>
-<DD><A NAME="IDX129"></A>
+<DD><A NAME="IDX138"></A>
The primary prompt string. The default value is <SAMP>`\s-\v\$ '</SAMP>.
See section <A HREF="bashref.html#SEC89">6.9 Controlling the Prompt</A>, for the complete list of escape
sequences that are expanded before <CODE>PS1</CODE> is displayed.
<P>
-<A NAME="IDX130"></A>
+<A NAME="IDX139"></A>
<DT><CODE>PS2</CODE>
-<DD><A NAME="IDX131"></A>
+<DD><A NAME="IDX140"></A>
The secondary prompt string. The default value is <SAMP>`&#62; '</SAMP>.
<P>
@@ -6224,7 +6774,7 @@ The secondary prompt string. The default value is <SAMP>`&#62; '</SAMP>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC69"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 5.2 Bash Variables </H2>
@@ -6242,15 +6792,15 @@ variables for controlling the job control facilities
<DL COMPACT>
-<A NAME="IDX132"></A>
+<A NAME="IDX141"></A>
<DT><CODE>BASH</CODE>
-<DD><A NAME="IDX133"></A>
+<DD><A NAME="IDX142"></A>
The full pathname used to execute the current instance of Bash.
<P>
-<A NAME="IDX134"></A>
+<A NAME="IDX143"></A>
<DT><CODE>BASHOPTS</CODE>
-<DD><A NAME="IDX135"></A>
+<DD><A NAME="IDX144"></A>
A colon-separated list of enabled shell options. Each word in
the list is a valid argument for the <SAMP>`-s'</SAMP> option to the
<CODE>shopt</CODE> builtin command (see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>).
@@ -6261,17 +6811,17 @@ starts up, each shell option in the list will be enabled before
reading any startup files. This variable is readonly.
<P>
-<A NAME="IDX136"></A>
+<A NAME="IDX145"></A>
<DT><CODE>BASHPID</CODE>
-<DD><A NAME="IDX137"></A>
+<DD><A NAME="IDX146"></A>
Expands to the process ID of the current Bash process.
This differs from <CODE>$$</CODE> under certain circumstances, such as subshells
that do not require Bash to be re-initialized.
<P>
-<A NAME="IDX138"></A>
+<A NAME="IDX147"></A>
<DT><CODE>BASH_ALIASES</CODE>
-<DD><A NAME="IDX139"></A>
+<DD><A NAME="IDX148"></A>
An associative array variable whose members correspond to the internal
list of aliases as maintained by the <CODE>alias</CODE> builtin.
(see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>).
@@ -6279,9 +6829,9 @@ Elements added to this array appear in the alias list; unsetting array
elements cause aliases to be removed from the alias list.
<P>
-<A NAME="IDX140"></A>
+<A NAME="IDX149"></A>
<DT><CODE>BASH_ARGC</CODE>
-<DD><A NAME="IDX141"></A>
+<DD><A NAME="IDX150"></A>
An array variable whose values are the number of parameters in each
frame of the current bash execution call stack. The number of
parameters to the current subroutine (shell function or script executed
@@ -6294,9 +6844,9 @@ for a description of the <CODE>extdebug</CODE> option to the <CODE>shopt</CODE>
builtin).
<P>
-<A NAME="IDX142"></A>
+<A NAME="IDX151"></A>
<DT><CODE>BASH_ARGV</CODE>
-<DD><A NAME="IDX143"></A>
+<DD><A NAME="IDX152"></A>
An array variable containing all of the parameters in the current bash
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
@@ -6308,9 +6858,9 @@ for a description of the <CODE>extdebug</CODE> option to the <CODE>shopt</CODE>
builtin).
<P>
-<A NAME="IDX144"></A>
+<A NAME="IDX153"></A>
<DT><CODE>BASH_CMDS</CODE>
-<DD><A NAME="IDX145"></A>
+<DD><A NAME="IDX154"></A>
An associative array variable whose members correspond to the internal
hash table of commands as maintained by the <CODE>hash</CODE> builtin
(see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>).
@@ -6318,31 +6868,50 @@ Elements added to this array appear in the hash table; unsetting array
elements cause commands to be removed from the hash table.
<P>
-<A NAME="IDX146"></A>
+<A NAME="IDX155"></A>
<DT><CODE>BASH_COMMAND</CODE>
-<DD><A NAME="IDX147"></A>
+<DD><A NAME="IDX156"></A>
The command currently being executed or about to be executed, unless the
shell is executing a command as the result of a trap,
in which case it is the command executing at the time of the trap.
<P>
-<A NAME="IDX148"></A>
+<A NAME="IDX157"></A>
+<DT><CODE>BASH_COMPAT</CODE>
+<DD><A NAME="IDX158"></A>
+The value is used to set the shell's compatibility level.
+See section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>, for a description of the various compatibility
+levels and their effects.
+The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42)
+corresponding to the desired compatibility level.
+If <CODE>BASH_COMPAT</CODE> is unset or set to the empty string, the compatibility
+level is set to the default for the current version.
+If <CODE>BASH_COMPAT</CODE> is set to a value that is not one of the valid
+compatibility levels, the shell prints an error message and sets the
+compatibility level to the default for the current version.
+The valid compatibility levels correspond to the compatibility options
+accepted by the <CODE>shopt</CODE> builtin described above (for example,
+<VAR>compat42</VAR> means that 4.2 and 42 are valid values).
+The current version is also a valid value.
+<P>
+
+<A NAME="IDX159"></A>
<DT><CODE>BASH_ENV</CODE>
-<DD><A NAME="IDX149"></A>
+<DD><A NAME="IDX160"></A>
If this variable is set when Bash is invoked to execute a shell
script, its value is expanded and used as the name of a startup file
to read before executing the script. See section <A HREF="bashref.html#SEC71">6.2 Bash Startup Files</A>.
<P>
-<A NAME="IDX150"></A>
+<A NAME="IDX161"></A>
<DT><CODE>BASH_EXECUTION_STRING</CODE>
-<DD><A NAME="IDX151"></A>
+<DD><A NAME="IDX162"></A>
The command argument to the <SAMP>`-c'</SAMP> invocation option.
<P>
-<A NAME="IDX152"></A>
+<A NAME="IDX163"></A>
<DT><CODE>BASH_LINENO</CODE>
-<DD><A NAME="IDX153"></A>
+<DD><A NAME="IDX164"></A>
An array variable whose members are the line numbers in source files
where each corresponding member of <VAR>FUNCNAME</VAR> was invoked.
<CODE>${BASH_LINENO[$i]}</CODE> is the line number in the source file
@@ -6352,9 +6921,9 @@ referenced within another shell function).
Use <CODE>LINENO</CODE> to obtain the current line number.
<P>
-<A NAME="IDX154"></A>
+<A NAME="IDX165"></A>
<DT><CODE>BASH_REMATCH</CODE>
-<DD><A NAME="IDX155"></A>
+<DD><A NAME="IDX166"></A>
An array variable whose members are assigned by the <SAMP>`=~'</SAMP> binary
operator to the <CODE>[[</CODE> conditional command
(see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
@@ -6365,9 +6934,9 @@ string matching the <VAR>n</VAR>th parenthesized subexpression.
This variable is read-only.
<P>
-<A NAME="IDX156"></A>
+<A NAME="IDX167"></A>
<DT><CODE>BASH_SOURCE</CODE>
-<DD><A NAME="IDX157"></A>
+<DD><A NAME="IDX168"></A>
An array variable whose members are the source filenames where the
corresponding shell function names in the <CODE>FUNCNAME</CODE> array
variable are defined.
@@ -6375,16 +6944,17 @@ The shell function <CODE>${FUNCNAME[$i]}</CODE> is defined in the file
<CODE>${BASH_SOURCE[$i]}</CODE> and called from <CODE>${BASH_SOURCE[$i+1]}</CODE>
<P>
-<A NAME="IDX158"></A>
+<A NAME="IDX169"></A>
<DT><CODE>BASH_SUBSHELL</CODE>
-<DD><A NAME="IDX159"></A>
-Incremented by one each time a subshell or subshell environment is spawned.
+<DD><A NAME="IDX170"></A>
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
<P>
-<A NAME="IDX160"></A>
+<A NAME="IDX171"></A>
<DT><CODE>BASH_VERSINFO</CODE>
-<DD><A NAME="IDX161"></A>
+<DD><A NAME="IDX172"></A>
A readonly array variable (see section <A HREF="bashref.html#SEC86">6.7 Arrays</A>)
whose members hold version information for this instance of Bash.
The values assigned to the array members are as follows:
@@ -6414,20 +6984,18 @@ The values assigned to the array members are as follows:
<DT><CODE>BASH_VERSINFO[5]</CODE>
<DD>The value of <CODE>MACHTYPE</CODE>.
-<P>
-
</DL>
<P>
-<A NAME="IDX162"></A>
+<A NAME="IDX173"></A>
<DT><CODE>BASH_VERSION</CODE>
-<DD><A NAME="IDX163"></A>
+<DD><A NAME="IDX174"></A>
The version number of the current instance of Bash.
<P>
-<A NAME="IDX164"></A>
+<A NAME="IDX175"></A>
<DT><CODE>BASH_XTRACEFD</CODE>
-<DD><A NAME="IDX165"></A>
+<DD><A NAME="IDX176"></A>
If set to an integer corresponding to a valid file descriptor, Bash
will write the trace output generated when <SAMP>`set -x'</SAMP>
is enabled to that file descriptor.
@@ -6442,35 +7010,47 @@ descriptor) and then unsetting it will result in the standard error
being closed.
<P>
-<A NAME="IDX166"></A>
+<A NAME="IDX177"></A>
+<DT><CODE>CHILD_MAX</CODE>
+<DD><A NAME="IDX178"></A>
+Set the number of exited child status values for the shell to remember.
+Bash will not allow this value to be decreased below a POSIX-mandated
+minimum, and there is a maximum value (currently 8192) that this may
+not exceed.
+The minimum value is system-dependent.
+<P>
+
+<A NAME="IDX179"></A>
<DT><CODE>COLUMNS</CODE>
-<DD><A NAME="IDX167"></A>
+<DD><A NAME="IDX180"></A>
Used by the <CODE>select</CODE> command to determine the terminal width
-when printing selection lists. Automatically set upon receipt of a
+when printing selection lists.
+Automatically set if the <CODE>checkwinsize</CODE> option is enabled
+(see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>), or in an interactive shell upon receipt of a
<CODE>SIGWINCH</CODE>.
<P>
-<A NAME="IDX168"></A>
+<A NAME="IDX181"></A>
<DT><CODE>COMP_CWORD</CODE>
-<DD><A NAME="IDX169"></A>
+<DD><A NAME="IDX182"></A>
An index into <CODE>${COMP_WORDS}</CODE> of the word containing the current
cursor position.
This variable is available only in shell functions invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
<P>
-<A NAME="IDX170"></A>
+<A NAME="IDX183"></A>
<DT><CODE>COMP_LINE</CODE>
-<DD><A NAME="IDX171"></A>
+<DD><A NAME="IDX184"></A>
The current command line.
This variable is available only in shell functions and external
commands invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
<P>
-<A NAME="IDX172"></A>
+<A NAME="IDX185"></A>
<DT><CODE>COMP_POINT</CODE>
-<DD><A NAME="IDX173"></A>
+<DD><A NAME="IDX186"></A>
The index of the current cursor position relative to the beginning of
the current command.
If the current cursor position is at the end of the current command,
@@ -6480,9 +7060,9 @@ commands invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
<P>
-<A NAME="IDX174"></A>
+<A NAME="IDX187"></A>
<DT><CODE>COMP_TYPE</CODE>
-<DD><A NAME="IDX175"></A>
+<DD><A NAME="IDX188"></A>
Set to an integer value corresponding to the type of completion attempted
that caused a completion function to be called:
<VAR>TAB</VAR>, for normal completion,
@@ -6496,25 +7076,25 @@ commands invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
<P>
-<A NAME="IDX176"></A>
+<A NAME="IDX189"></A>
<DT><CODE>COMP_KEY</CODE>
-<DD><A NAME="IDX177"></A>
+<DD><A NAME="IDX190"></A>
The key (or final key of a key sequence) used to invoke the current
completion function.
<P>
-<A NAME="IDX178"></A>
+<A NAME="IDX191"></A>
<DT><CODE>COMP_WORDBREAKS</CODE>
-<DD><A NAME="IDX179"></A>
+<DD><A NAME="IDX192"></A>
The set of characters that the Readline library treats as word
separators when performing word completion.
If <CODE>COMP_WORDBREAKS</CODE> is unset, it loses its special properties,
even if it is subsequently reset.
<P>
-<A NAME="IDX180"></A>
+<A NAME="IDX193"></A>
<DT><CODE>COMP_WORDS</CODE>
-<DD><A NAME="IDX181"></A>
+<DD><A NAME="IDX194"></A>
An array variable consisting of the individual
words in the current command line.
The line is split into words as Readline would split it, using
@@ -6523,24 +7103,25 @@ This variable is available only in shell functions invoked by the
programmable completion facilities (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
<P>
-<A NAME="IDX182"></A>
+<A NAME="IDX195"></A>
<DT><CODE>COMPREPLY</CODE>
-<DD><A NAME="IDX183"></A>
+<DD><A NAME="IDX196"></A>
An array variable from which Bash reads the possible completions
generated by a shell function invoked by the programmable completion
facility (see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
+Each array element contains one possible completion.
<P>
-<A NAME="IDX184"></A>
+<A NAME="IDX197"></A>
<DT><CODE>COPROC</CODE>
-<DD><A NAME="IDX185"></A>
+<DD><A NAME="IDX198"></A>
An array variable created to hold the file descriptors
for output from and input to an unnamed coprocess (see section <A HREF="bashref.html#SEC23">3.2.5 Coprocesses</A>).
<P>
-<A NAME="IDX186"></A>
+<A NAME="IDX199"></A>
<DT><CODE>DIRSTACK</CODE>
-<DD><A NAME="IDX187"></A>
+<DD><A NAME="IDX200"></A>
An array variable containing the current contents of the directory stack.
Directories appear in the stack in the order they are displayed by the
<CODE>dirs</CODE> builtin.
@@ -6552,49 +7133,49 @@ If <CODE>DIRSTACK</CODE> is unset, it loses its special properties, even if
it is subsequently reset.
<P>
-<A NAME="IDX188"></A>
+<A NAME="IDX201"></A>
<DT><CODE>EMACS</CODE>
-<DD><A NAME="IDX189"></A>
+<DD><A NAME="IDX202"></A>
If Bash finds this variable in the environment when the shell
starts with value <SAMP>`t'</SAMP>, it assumes that the shell is running in an
Emacs shell buffer and disables line editing.
<P>
-<A NAME="IDX190"></A>
+<A NAME="IDX203"></A>
<DT><CODE>ENV</CODE>
-<DD><A NAME="IDX191"></A>
+<DD><A NAME="IDX204"></A>
Similar to <CODE>BASH_ENV</CODE>; used when the shell is invoked in
POSIX Mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>).
<P>
-<A NAME="IDX192"></A>
+<A NAME="IDX205"></A>
<DT><CODE>EUID</CODE>
-<DD><A NAME="IDX193"></A>
+<DD><A NAME="IDX206"></A>
The numeric effective user id of the current user. This variable
is readonly.
<P>
-<A NAME="IDX194"></A>
+<A NAME="IDX207"></A>
<DT><CODE>FCEDIT</CODE>
-<DD><A NAME="IDX195"></A>
+<DD><A NAME="IDX208"></A>
The editor used as a default by the <SAMP>`-e'</SAMP> option to the <CODE>fc</CODE>
builtin command.
<P>
-<A NAME="IDX196"></A>
+<A NAME="IDX209"></A>
<DT><CODE>FIGNORE</CODE>
-<DD><A NAME="IDX197"></A>
+<DD><A NAME="IDX210"></A>
A colon-separated list of suffixes to ignore when performing
filename completion.
-A file name whose suffix matches one of the entries in
+A filename whose suffix matches one of the entries in
<CODE>FIGNORE</CODE>
-is excluded from the list of matched file names. A sample
+is excluded from the list of matched filenames. A sample
value is <SAMP>`.o:~'</SAMP>
<P>
-<A NAME="IDX198"></A>
+<A NAME="IDX211"></A>
<DT><CODE>FUNCNAME</CODE>
-<DD><A NAME="IDX199"></A>
+<DD><A NAME="IDX212"></A>
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
@@ -6616,17 +7197,17 @@ The <CODE>caller</CODE> builtin displays the current call stack using this
information.
</P><P>
-<A NAME="IDX200"></A>
+<A NAME="IDX213"></A>
<DT><CODE>FUNCNEST</CODE>
-<DD><A NAME="IDX201"></A>
+<DD><A NAME="IDX214"></A>
If set to a numeric value greater than 0, defines a maximum function
nesting level. Function invocations that exceed this nesting level
will cause the current command to abort.
<P>
-<A NAME="IDX202"></A>
+<A NAME="IDX215"></A>
<DT><CODE>GLOBIGNORE</CODE>
-<DD><A NAME="IDX203"></A>
+<DD><A NAME="IDX216"></A>
A colon-separated list of patterns defining the set of filenames to
be ignored by filename expansion.
If a filename matched by a filename expansion pattern also matches one
@@ -6634,9 +7215,9 @@ of the patterns in <CODE>GLOBIGNORE</CODE>, it is removed from the list
of matches.
<P>
-<A NAME="IDX204"></A>
+<A NAME="IDX217"></A>
<DT><CODE>GROUPS</CODE>
-<DD><A NAME="IDX205"></A>
+<DD><A NAME="IDX218"></A>
An array variable containing the list of groups of which the current
user is a member.
Assignments to <CODE>GROUPS</CODE> have no effect and return an error status.
@@ -6644,11 +7225,11 @@ If <CODE>GROUPS</CODE> is unset, it loses its special properties, even if it is
subsequently reset.
<P>
-<A NAME="IDX206"></A>
+<A NAME="IDX219"></A>
<DT><CODE>histchars</CODE>
-<DD><A NAME="IDX207"></A>
+<DD><A NAME="IDX220"></A>
Up to three characters which control history expansion, quick
-substitution, and tokenization (see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>).
+substitution, and tokenization (see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>).
The first character is the
<VAR>history expansion</VAR> character, that is, the character which signifies the
start of a history expansion, normally <SAMP>`!'</SAMP>. The second character is the
@@ -6661,17 +7242,17 @@ remaining words on the line. It does not necessarily cause the shell
parser to treat the rest of the line as a comment.
<P>
-<A NAME="IDX208"></A>
+<A NAME="IDX221"></A>
<DT><CODE>HISTCMD</CODE>
-<DD><A NAME="IDX209"></A>
+<DD><A NAME="IDX222"></A>
The history number, or index in the history list, of the current
command. If <CODE>HISTCMD</CODE> is unset, it loses its special properties,
even if it is subsequently reset.
<P>
-<A NAME="IDX210"></A>
+<A NAME="IDX223"></A>
<DT><CODE>HISTCONTROL</CODE>
-<DD><A NAME="IDX211"></A>
+<DD><A NAME="IDX224"></A>
A colon-separated list of values controlling how commands are saved on
the history list.
If the list of values includes <SAMP>`ignorespace'</SAMP>, lines which begin
@@ -6692,28 +7273,31 @@ not tested, and are added to the history regardless of the value of
<CODE>HISTCONTROL</CODE>.
<P>
-<A NAME="IDX212"></A>
+<A NAME="IDX225"></A>
<DT><CODE>HISTFILE</CODE>
-<DD><A NAME="IDX213"></A>
+<DD><A NAME="IDX226"></A>
The name of the file to which the command history is saved. The
default value is <TT>`~/.bash_history'</TT>.
<P>
-<A NAME="IDX214"></A>
+<A NAME="IDX227"></A>
<DT><CODE>HISTFILESIZE</CODE>
-<DD><A NAME="IDX215"></A>
-The maximum number of lines contained in the history file. When this
-variable is assigned a value, the history file is truncated, if
-necessary, by removing the oldest entries,
-to contain no more than that number of lines.
+<DD><A NAME="IDX228"></A>
+The maximum number of lines contained in the history file.
+When this variable is assigned a value, the history file is truncated,
+if necessary, to contain no more than that number of lines
+by removing the oldest entries.
The history file is also truncated to this size after
-writing it when an interactive shell exits.
-The default value is 500.
+writing it when a shell exits.
+If the value is 0, the history file is truncated to zero size.
+Non-numeric values and numeric values less than zero inhibit truncation.
+The shell sets the default value to the value of <CODE>HISTSIZE</CODE>
+after reading any startup files.
<P>
-<A NAME="IDX216"></A>
+<A NAME="IDX229"></A>
<DT><CODE>HISTIGNORE</CODE>
-<DD><A NAME="IDX217"></A>
+<DD><A NAME="IDX230"></A>
A colon-separated list of patterns used to decide which command
lines should be saved on the history list. Each pattern is
anchored at the beginning of the line and must match the complete
@@ -6735,16 +7319,19 @@ Combining these two patterns, separating them with a colon,
provides the functionality of <CODE>ignoreboth</CODE>.
</P><P>
-<A NAME="IDX218"></A>
+<A NAME="IDX231"></A>
<DT><CODE>HISTSIZE</CODE>
-<DD><A NAME="IDX219"></A>
+<DD><A NAME="IDX232"></A>
The maximum number of commands to remember on the history list.
-The default value is 500.
+If the value is 0, commands are not saved in the history list.
+Numeric values less than zero result in every command being saved
+on the history list (there is no limit).
+The shell sets the default value to 500 after reading any startup files.
<P>
-<A NAME="IDX220"></A>
+<A NAME="IDX233"></A>
<DT><CODE>HISTTIMEFORMAT</CODE>
-<DD><A NAME="IDX221"></A>
+<DD><A NAME="IDX234"></A>
If this variable is set and not null, its value is used as a format string
for <VAR>strftime</VAR> to print the time stamp associated with each history
entry displayed by the <CODE>history</CODE> builtin.
@@ -6754,9 +7341,9 @@ This uses the history comment character to distinguish timestamps from
other history lines.
<P>
-<A NAME="IDX222"></A>
+<A NAME="IDX235"></A>
<DT><CODE>HOSTFILE</CODE>
-<DD><A NAME="IDX223"></A>
+<DD><A NAME="IDX236"></A>
Contains the name of a file in the same format as <TT>`/etc/hosts'</TT> that
should be read when the shell needs to complete a hostname.
The list of possible hostname completions may be changed while the shell
@@ -6770,21 +7357,21 @@ Bash attempts to read
When <CODE>HOSTFILE</CODE> is unset, the hostname list is cleared.
<P>
-<A NAME="IDX224"></A>
+<A NAME="IDX237"></A>
<DT><CODE>HOSTNAME</CODE>
-<DD><A NAME="IDX225"></A>
+<DD><A NAME="IDX238"></A>
The name of the current host.
<P>
-<A NAME="IDX226"></A>
+<A NAME="IDX239"></A>
<DT><CODE>HOSTTYPE</CODE>
-<DD><A NAME="IDX227"></A>
+<DD><A NAME="IDX240"></A>
A string describing the machine Bash is running on.
<P>
-<A NAME="IDX228"></A>
+<A NAME="IDX241"></A>
<DT><CODE>IGNOREEOF</CODE>
-<DD><A NAME="IDX229"></A>
+<DD><A NAME="IDX242"></A>
Controls the action of the shell on receipt of an <CODE>EOF</CODE> character
as the sole input. If set, the value denotes the number
of consecutive <CODE>EOF</CODE> characters that can be read as the
@@ -6795,30 +7382,30 @@ If the variable does not exist, then <CODE>EOF</CODE> signifies the end of
input to the shell. This is only in effect for interactive shells.
<P>
-<A NAME="IDX230"></A>
+<A NAME="IDX243"></A>
<DT><CODE>INPUTRC</CODE>
-<DD><A NAME="IDX231"></A>
+<DD><A NAME="IDX244"></A>
The name of the Readline initialization file, overriding the default
of <TT>`~/.inputrc'</TT>.
<P>
-<A NAME="IDX232"></A>
+<A NAME="IDX245"></A>
<DT><CODE>LANG</CODE>
-<DD><A NAME="IDX233"></A>
+<DD><A NAME="IDX246"></A>
Used to determine the locale category for any category not specifically
selected with a variable starting with <CODE>LC_</CODE>.
<P>
-<A NAME="IDX234"></A>
+<A NAME="IDX247"></A>
<DT><CODE>LC_ALL</CODE>
-<DD><A NAME="IDX235"></A>
+<DD><A NAME="IDX248"></A>
This variable overrides the value of <CODE>LANG</CODE> and any other
<CODE>LC_</CODE> variable specifying a locale category.
<P>
-<A NAME="IDX236"></A>
+<A NAME="IDX249"></A>
<DT><CODE>LC_COLLATE</CODE>
-<DD><A NAME="IDX237"></A>
+<DD><A NAME="IDX250"></A>
This variable determines the collation order used when sorting the
results of filename expansion, and
determines the behavior of range expressions, equivalence classes,
@@ -6826,51 +7413,53 @@ and collating sequences within filename expansion and pattern matching
(see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>).
<P>
-<A NAME="IDX238"></A>
+<A NAME="IDX251"></A>
<DT><CODE>LC_CTYPE</CODE>
-<DD><A NAME="IDX239"></A>
+<DD><A NAME="IDX252"></A>
This variable determines the interpretation of characters and the
behavior of character classes within filename expansion and pattern
matching (see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>).
<P>
-<A NAME="IDX240"></A>
+<A NAME="IDX253"></A>
<DT><CODE>LC_MESSAGES</CODE>
-<DD><A NAME="IDX241"></A>
+<DD><A NAME="IDX254"></A>
This variable determines the locale used to translate double-quoted
strings preceded by a <SAMP>`$'</SAMP> (see section <A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A>).
<P>
-<A NAME="IDX242"></A>
+<A NAME="IDX255"></A>
<DT><CODE>LC_NUMERIC</CODE>
-<DD><A NAME="IDX243"></A>
+<DD><A NAME="IDX256"></A>
This variable determines the locale category used for number formatting.
<P>
-<A NAME="IDX244"></A>
+<A NAME="IDX257"></A>
<DT><CODE>LINENO</CODE>
-<DD><A NAME="IDX245"></A>
+<DD><A NAME="IDX258"></A>
The line number in the script or shell function currently executing.
<P>
-<A NAME="IDX246"></A>
+<A NAME="IDX259"></A>
<DT><CODE>LINES</CODE>
-<DD><A NAME="IDX247"></A>
+<DD><A NAME="IDX260"></A>
Used by the <CODE>select</CODE> command to determine the column length
-for printing selection lists. Automatically set upon receipt of a
+for printing selection lists.
+Automatically set if the <CODE>checkwinsize</CODE> option is enabled
+(see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>), or in an interactive shell upon receipt of a
<CODE>SIGWINCH</CODE>.
<P>
-<A NAME="IDX248"></A>
+<A NAME="IDX261"></A>
<DT><CODE>MACHTYPE</CODE>
-<DD><A NAME="IDX249"></A>
+<DD><A NAME="IDX262"></A>
A string that fully describes the system type on which Bash
is executing, in the standard GNU <VAR>cpu-company-system</VAR> format.
<P>
-<A NAME="IDX250"></A>
+<A NAME="IDX263"></A>
<DT><CODE>MAILCHECK</CODE>
-<DD><A NAME="IDX251"></A>
+<DD><A NAME="IDX264"></A>
How often (in seconds) that the shell should check for mail in the
files specified in the <CODE>MAILPATH</CODE> or <CODE>MAIL</CODE> variables.
The default is 60 seconds. When it is time to check
@@ -6879,87 +7468,87 @@ If this variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
<P>
-<A NAME="IDX252"></A>
+<A NAME="IDX265"></A>
<DT><CODE>MAPFILE</CODE>
-<DD><A NAME="IDX253"></A>
+<DD><A NAME="IDX266"></A>
An array variable created to hold the text read by the
<CODE>mapfile</CODE> builtin when no variable name is supplied.
<P>
-<A NAME="IDX254"></A>
+<A NAME="IDX267"></A>
<DT><CODE>OLDPWD</CODE>
-<DD><A NAME="IDX255"></A>
+<DD><A NAME="IDX268"></A>
The previous working directory as set by the <CODE>cd</CODE> builtin.
<P>
-<A NAME="IDX256"></A>
+<A NAME="IDX269"></A>
<DT><CODE>OPTERR</CODE>
-<DD><A NAME="IDX257"></A>
+<DD><A NAME="IDX270"></A>
If set to the value 1, Bash displays error messages
generated by the <CODE>getopts</CODE> builtin command.
<P>
-<A NAME="IDX258"></A>
+<A NAME="IDX271"></A>
<DT><CODE>OSTYPE</CODE>
-<DD><A NAME="IDX259"></A>
+<DD><A NAME="IDX272"></A>
A string describing the operating system Bash is running on.
<P>
-<A NAME="IDX260"></A>
+<A NAME="IDX273"></A>
<DT><CODE>PIPESTATUS</CODE>
-<DD><A NAME="IDX261"></A>
+<DD><A NAME="IDX274"></A>
An array variable (see section <A HREF="bashref.html#SEC86">6.7 Arrays</A>)
containing a list of exit status values from the processes
in the most-recently-executed foreground pipeline (which may
contain only a single command).
<P>
-<A NAME="IDX262"></A>
+<A NAME="IDX275"></A>
<DT><CODE>POSIXLY_CORRECT</CODE>
-<DD><A NAME="IDX263"></A>
-If this variable is in the environment when <CODE>bash</CODE> starts, the shell
+<DD><A NAME="IDX276"></A>
+If this variable is in the environment when Bash starts, the shell
enters POSIX mode (see section <A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A>) before reading the
startup files, as if the <SAMP>`--posix'</SAMP> invocation option had been supplied.
-If it is set while the shell is running, <CODE>bash</CODE> enables POSIX mode,
+If it is set while the shell is running, Bash enables POSIX mode,
as if the command
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>set -o posix</CODE>
</pre></td></tr></table>had been executed.
<P>
-<A NAME="IDX264"></A>
+<A NAME="IDX277"></A>
<DT><CODE>PPID</CODE>
-<DD><A NAME="IDX265"></A>
+<DD><A NAME="IDX278"></A>
The process ID of the shell's parent process. This variable
is readonly.
<P>
-<A NAME="IDX266"></A>
+<A NAME="IDX279"></A>
<DT><CODE>PROMPT_COMMAND</CODE>
-<DD><A NAME="IDX267"></A>
+<DD><A NAME="IDX280"></A>
If set, the value is interpreted as a command to execute
before the printing of each primary prompt (<CODE>$PS1</CODE>).
<P>
-<A NAME="IDX268"></A>
+<A NAME="IDX281"></A>
<DT><CODE>PROMPT_DIRTRIM</CODE>
-<DD><A NAME="IDX269"></A>
+<DD><A NAME="IDX282"></A>
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</CODE> and
<CODE>\W</CODE> prompt string escapes (see section <A HREF="bashref.html#SEC89">6.9 Controlling the Prompt</A>).
Characters removed are replaced with an ellipsis.
<P>
-<A NAME="IDX270"></A>
+<A NAME="IDX283"></A>
<DT><CODE>PS3</CODE>
-<DD><A NAME="IDX271"></A>
+<DD><A NAME="IDX284"></A>
The value of this variable is used as the prompt for the
<CODE>select</CODE> command. If this variable is not set, the
<CODE>select</CODE> command prompts with <SAMP>`#? '</SAMP>
<P>
-<A NAME="IDX272"></A>
+<A NAME="IDX285"></A>
<DT><CODE>PS4</CODE>
-<DD><A NAME="IDX273"></A>
+<DD><A NAME="IDX286"></A>
The value is the prompt printed before the command line is echoed
when the <SAMP>`-x'</SAMP> option is set (see section <A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A>).
The first character of <CODE>PS4</CODE> is replicated multiple times, as
@@ -6967,43 +7556,43 @@ necessary, to indicate multiple levels of indirection.
The default is <SAMP>`+ '</SAMP>.
<P>
-<A NAME="IDX274"></A>
+<A NAME="IDX287"></A>
<DT><CODE>PWD</CODE>
-<DD><A NAME="IDX275"></A>
+<DD><A NAME="IDX288"></A>
The current working directory as set by the <CODE>cd</CODE> builtin.
<P>
-<A NAME="IDX276"></A>
+<A NAME="IDX289"></A>
<DT><CODE>RANDOM</CODE>
-<DD><A NAME="IDX277"></A>
+<DD><A NAME="IDX290"></A>
Each time this parameter is referenced, a random integer
between 0 and 32767 is generated. Assigning a value to this
variable seeds the random number generator.
<P>
-<A NAME="IDX278"></A>
+<A NAME="IDX291"></A>
<DT><CODE>READLINE_LINE</CODE>
-<DD><A NAME="IDX279"></A>
+<DD><A NAME="IDX292"></A>
The contents of the Readline line buffer, for use
with <SAMP>`bind -x'</SAMP> (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
<P>
-<A NAME="IDX280"></A>
+<A NAME="IDX293"></A>
<DT><CODE>READLINE_POINT</CODE>
-<DD><A NAME="IDX281"></A>
+<DD><A NAME="IDX294"></A>
The position of the insertion point in the Readline line buffer, for use
with <SAMP>`bind -x'</SAMP> (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
<P>
-<A NAME="IDX282"></A>
+<A NAME="IDX295"></A>
<DT><CODE>REPLY</CODE>
-<DD><A NAME="IDX283"></A>
+<DD><A NAME="IDX296"></A>
The default variable for the <CODE>read</CODE> builtin.
<P>
-<A NAME="IDX284"></A>
+<A NAME="IDX297"></A>
<DT><CODE>SECONDS</CODE>
-<DD><A NAME="IDX285"></A>
+<DD><A NAME="IDX298"></A>
This variable expands to the number of seconds since the
shell was started. Assignment to this variable resets
the count to the value assigned, and the expanded value
@@ -7011,17 +7600,17 @@ becomes the value assigned plus the number of seconds
since the assignment.
<P>
-<A NAME="IDX286"></A>
+<A NAME="IDX299"></A>
<DT><CODE>SHELL</CODE>
-<DD><A NAME="IDX287"></A>
+<DD><A NAME="IDX300"></A>
The full pathname to the shell is kept in this environment variable.
If it is not set when the shell starts,
Bash assigns to it the full pathname of the current user's login shell.
<P>
-<A NAME="IDX288"></A>
+<A NAME="IDX301"></A>
<DT><CODE>SHELLOPTS</CODE>
-<DD><A NAME="IDX289"></A>
+<DD><A NAME="IDX302"></A>
A colon-separated list of enabled shell options. Each word in
the list is a valid argument for the <SAMP>`-o'</SAMP> option to the
<CODE>set</CODE> builtin command (see section <A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A>).
@@ -7032,16 +7621,16 @@ starts up, each shell option in the list will be enabled before
reading any startup files. This variable is readonly.
<P>
-<A NAME="IDX290"></A>
+<A NAME="IDX303"></A>
<DT><CODE>SHLVL</CODE>
-<DD><A NAME="IDX291"></A>
+<DD><A NAME="IDX304"></A>
Incremented by one each time a new instance of Bash is started. This is
intended to be a count of how deeply your Bash shells are nested.
<P>
-<A NAME="IDX292"></A>
+<A NAME="IDX305"></A>
<DT><CODE>TIMEFORMAT</CODE>
-<DD><A NAME="IDX293"></A>
+<DD><A NAME="IDX306"></A>
The value of this parameter is used as a format string specifying
how the timing information for pipelines prefixed with the <CODE>time</CODE>
reserved word should be displayed.
@@ -7094,9 +7683,9 @@ If this variable is not set, Bash acts as if it had the value
A trailing newline is added when the format string is displayed.
</P><P>
-<A NAME="IDX294"></A>
+<A NAME="IDX307"></A>
<DT><CODE>TMOUT</CODE>
-<DD><A NAME="IDX295"></A>
+<DD><A NAME="IDX308"></A>
If set to a value greater than zero, <CODE>TMOUT</CODE> is treated as the
default timeout for the <CODE>read</CODE> builtin (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
The <CODE>select</CODE> command (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>) terminates
@@ -7105,22 +7694,23 @@ from a terminal.
<P>
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.
+the number of seconds to wait for a line of input after issuing
+the primary prompt.
+Bash
+terminates after waiting for that number of seconds if a complete
+line of input does not arrive.
</P><P>
-<A NAME="IDX296"></A>
+<A NAME="IDX309"></A>
<DT><CODE>TMPDIR</CODE>
-<DD><A NAME="IDX297"></A>
+<DD><A NAME="IDX310"></A>
If set, Bash uses its value as the name of a directory in which
Bash creates temporary files for the shell's use.
<P>
-<A NAME="IDX298"></A>
+<A NAME="IDX311"></A>
<DT><CODE>UID</CODE>
-<DD><A NAME="IDX299"></A>
+<DD><A NAME="IDX312"></A>
The numeric real user id of the current user. This variable is readonly.
<P>
@@ -7138,14 +7728,14 @@ The numeric real user id of the current user. This variable is readonly.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 6. Bash Features </H1>
<!--docid::SEC69::-->
<P>
-This section describes features unique to Bash.
+This chapter describes features unique to Bash.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
@@ -7159,7 +7749,7 @@ This section describes features unique to Bash.
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC85">6.6 Aliases</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Substituting one command for another.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC86">6.7 Arrays</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Array Variables.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC87">6.8 The Directory Stack</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">History of visited directories.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC89">6.9 Controlling the Prompt</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Controlling the PS1 string.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC89">6.9 Controlling the Prompt</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing the various prompt strings.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC90">6.10 The Restricted Shell</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A more controlled mode of shell execution.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC91">6.11 Bash POSIX Mode</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Making Bash behave more closely to what
the POSIX standard specifies.</TD></TR>
@@ -7177,7 +7767,7 @@ This section describes features unique to Bash.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.1 Invoking Bash </H2>
@@ -7266,8 +7856,6 @@ POSIX mode.
<DT><CODE>--version</CODE>
<DD>Show version information for this instance of
Bash on the standard output and exit successfully.
-<P>
-
</DL>
<P>
@@ -7276,9 +7864,10 @@ invocation which are not available with the <CODE>set</CODE> builtin.
</P><P>
<DL COMPACT>
-<DT><CODE>-c <VAR>string</VAR></CODE>
-<DD>Read and execute commands from <VAR>string</VAR> after processing the
-options, then exit. Any remaining arguments are assigned to the
+<DT><CODE>-c</CODE>
+<DD>Read and execute commands from the first non-option <VAR>argument</VAR>
+after processing the options, then exit.
+Any remaining arguments are assigned to the
positional parameters, starting with <CODE>$0</CODE>.
<P>
@@ -7334,17 +7923,15 @@ that may be reused as input.
<DD>A <CODE>--</CODE> signals the end of options and disables further option
processing.
Any arguments after the <CODE>--</CODE> are treated as filenames and arguments.
-<P>
-
</DL>
<P>
-<A NAME="IDX300"></A>
+<A NAME="IDX313"></A>
A <EM>login</EM> shell is one whose first character of argument zero is
<SAMP>`-'</SAMP>, or one invoked with the <SAMP>`--login'</SAMP> option.
</P><P>
-<A NAME="IDX301"></A>
+<A NAME="IDX314"></A>
An <EM>interactive</EM> shell is one started without non-option arguments,
unless <SAMP>`-s'</SAMP> is specified,
without specifying the <SAMP>`-c'</SAMP> option, and whose input and output are both
@@ -7376,7 +7963,7 @@ in the script. If no commands are executed, the exit status is 0.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.2 Bash Startup Files </H2>
@@ -7385,7 +7972,7 @@ in the script. If no commands are executed, the exit status is 0.
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
+Tildes are expanded in filenames as described above under
Tilde Expansion (see section <A HREF="bashref.html#SEC31">3.5.2 Tilde Expansion</A>).
</P><P>
@@ -7440,7 +8027,7 @@ the name of a file to read and execute. Bash behaves as if the
following command were executed:
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi</CODE>
</pre></td></tr></table>but the value of the <CODE>PATH</CODE> variable is not used to search for the
-file name.
+filename.
</P><P>
As noted above, if a non-interactive shell is invoked with the
@@ -7505,8 +8092,8 @@ file exists and is readable.
It will not do this if invoked as <CODE>sh</CODE>.
The <SAMP>`--norc'</SAMP> option may be used to inhibit this behavior, and the
<SAMP>`--rcfile'</SAMP> option may be used to force another file to be read, but
-<CODE>rshd</CODE> does not generally invoke the shell with those options or
-allow them to be specified.
+neither <CODE>rshd</CODE> nor <CODE>sshd</CODE> generally invoke the shell with those
+options or allow them to be specified.
</P><P>
<A NAME="SEC78"></A>
@@ -7515,12 +8102,12 @@ allow them to be specified.
<P>
If Bash is started with the effective user (group) id not equal to the
-real user (group) id, and the <CODE>-p</CODE> option is not supplied, no startup
+real user (group) id, and the <SAMP>`-p'</SAMP> option is not supplied, no startup
files are read, shell functions are not inherited from the environment,
the <CODE>SHELLOPTS</CODE>, <CODE>BASHOPTS</CODE>, <CODE>CDPATH</CODE>, and <CODE>GLOBIGNORE</CODE>
variables, if they appear in the environment, are ignored, and the effective
user id is set to the real user id.
-If the <CODE>-p</CODE> option is supplied at invocation, the startup behavior is
+If the <SAMP>`-p'</SAMP> option is supplied at invocation, the startup behavior is
the same, but the effective user id is not reset.
</P><P>
@@ -7535,7 +8122,7 @@ the same, but the effective user id is not reset.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.3 Interactive Shells </H2>
@@ -7560,7 +8147,7 @@ the same, but the effective user id is not reset.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 6.3.1 What is an Interactive Shell? </H3>
@@ -7594,7 +8181,7 @@ when an interactive shell is started.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 6.3.2 Is this Shell Interactive? </H3>
@@ -7636,7 +8223,7 @@ fi
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC83"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 6.3.3 Interactive Shell Behavior </H3>
@@ -7682,11 +8269,11 @@ standard input when reading a command (see section <A HREF="bashref.html#SEC63">
<P>
<LI>
-Command history (see section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>)
-and history expansion (see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>)
+Command history (see section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>)
+and history expansion (see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>)
are enabled by default.
Bash will save the command history to the file named by <CODE>$HISTFILE</CODE>
-when an interactive shell exits.
+when a shell with history enabled exits.
<P>
<LI>
@@ -7777,7 +8364,7 @@ printing <CODE>$PS1</CODE> (see section <A HREF="bashref.html#SEC68">5.2 Bash Va
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.4 Bash Conditional Expressions </H2>
@@ -7798,7 +8385,7 @@ If the <VAR>file</VAR> argument to one of the primaries is one of
descriptor 0, 1, or 2, respectively, is checked.
</P><P>
-When used with <SAMP>`[['</SAMP>, the <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators sort
+When used with <CODE>[[</CODE>, the <SAMP>`&#60;'</SAMP> and <SAMP>`&#62;'</SAMP> operators sort
lexicographically using the current locale.
The <CODE>test</CODE> command uses ASCII ordering.
</P><P>
@@ -7917,6 +8504,10 @@ option to the <CODE>set</CODE> builtin (see section <A HREF="bashref.html#SEC63"
<DD>True if the shell variable <VAR>varname</VAR> is set (has been assigned a value).
<P>
+<DT><CODE>-R <VAR>varname</VAR></CODE>
+<DD>True if the shell variable <VAR>varname</VAR> is set and is a name reference.
+<P>
+
<DT><CODE>-z <VAR>string</VAR></CODE>
<DD>True if the length of <VAR>string</VAR> is zero.
<P>
@@ -7929,9 +8520,13 @@ option to the <CODE>set</CODE> builtin (see section <A HREF="bashref.html#SEC63"
<DT><CODE><VAR>string1</VAR> == <VAR>string2</VAR></CODE>
<DD><DT><CODE><VAR>string1</VAR> = <VAR>string2</VAR></CODE>
<DD>True if the strings are equal.
-<SAMP>`='</SAMP> should be used with the <CODE>test</CODE> command for POSIX conformance.
+When used with the <CODE>[[</CODE> command, this performs pattern matching as
+described above (see section <A HREF="bashref.html#SEC21">3.2.4.2 Conditional Constructs</A>).
<P>
+<SAMP>`='</SAMP> should be used with the <CODE>test</CODE> command for POSIX conformance.
+</P><P>
+
<DT><CODE><VAR>string1</VAR> != <VAR>string2</VAR></CODE>
<DD>True if the strings are not equal.
<P>
@@ -7952,8 +8547,6 @@ is equal to, not equal to, less than, less than or equal to,
greater than, or greater than or equal to <VAR>arg2</VAR>,
respectively. <VAR>Arg1</VAR> and <VAR>arg2</VAR>
may be positive or negative integers.
-<P>
-
</DL>
<P>
@@ -7968,7 +8561,7 @@ may be positive or negative integers.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.5 Shell Arithmetic </H2>
@@ -8082,9 +8675,10 @@ Constants with a leading 0 are interpreted as octal numbers.
A leading <SAMP>`0x'</SAMP> or <SAMP>`0X'</SAMP> denotes hexadecimal. Otherwise,
numbers take the form [<VAR>base</VAR><CODE>#</CODE>]<VAR>n</VAR>, where the optional <VAR>base</VAR>
is a decimal number between 2 and 64 representing the arithmetic
-base, and <VAR>n</VAR> is a number in that base. If <VAR>base</VAR><CODE>#</CODE> is
-omitted, then base 10 is used.
-The digits greater than 9 are represented by the lowercase letters,
+base, and <VAR>n</VAR> is a number in that base.
+If <VAR>base</VAR><CODE>#</CODE> is omitted, then base 10 is used.
+When specifying <VAR>n</VAR>,
+he digits greater than 9 are represented by the lowercase letters,
the uppercase letters, <SAMP>`@'</SAMP>, and <SAMP>`_'</SAMP>, in that order.
If <VAR>base</VAR> is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
@@ -8107,7 +8701,7 @@ rules above.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.6 Aliases </H2>
@@ -8133,8 +8727,9 @@ aliases, but a word that is identical to an alias being expanded
is not expanded a second time.
This means that one may alias <CODE>ls</CODE> to <CODE>"ls -F"</CODE>,
for instance, and Bash does not try to recursively expand the
-replacement text. If the last character of the alias value is a
-space or tab character, then the next command word following the
+replacement text.
+If the last character of the alias value is a
+<VAR>blank</VAR>, then the next command word following the
alias is also checked for alias expansion.
</P><P>
@@ -8187,7 +8782,7 @@ For almost every purpose, shell functions are preferred over aliases.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.7 Arrays </H2>
@@ -8201,20 +8796,18 @@ 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 (see section <A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A>) and are zero-based;
+expressions (see section <A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A>)) and are zero-based;
associative arrays use arbitrary strings.
+Unless otherwise noted, indexed array indices must be non-negative integers.
</P><P>
An indexed array is created automatically if any variable is assigned to
using the syntax
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>name[<VAR>subscript</VAR>]=<VAR>value</VAR>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>name</VAR>[<VAR>subscript</VAR>]=<VAR>value</VAR>
</pre></td></tr></table></P><P>
The <VAR>subscript</VAR>
is treated as an arithmetic expression that must evaluate to a number.
-If <VAR>subscript</VAR> evaluates to a number less than zero, it is used as
-an offset from one greater than the array's maximum index (so a subcript
-of -1 refers to the last element of the array).
To explicitly declare an array, use
<TABLE><tr><td>&nbsp;</td><td class=example><pre>declare -a <VAR>name</VAR>
</pre></td></tr></table>The syntax
@@ -8233,10 +8826,10 @@ an array.
</P><P>
Arrays are assigned to using compound assignments of the form
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>name=(value<VAR>1</VAR> <small>...</small> value<VAR>n</VAR>)
+<TABLE><tr><td>&nbsp;</td><td class=example><pre><VAR>name</VAR>=(<VAR>value1</VAR> <VAR>value2</VAR> <small>...</small> )
</pre></td></tr></table>where each
<VAR>value</VAR> is of the form <CODE>[<VAR>subscript</VAR>]=</CODE><VAR>string</VAR>.
-Indexed array assignments do not require the bracket and subscript.
+Indexed array assignments do not require anything but <VAR>string</VAR>.
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
@@ -8248,53 +8841,75 @@ When assigning to an associative array, the subscript is required.
This syntax is also accepted by the <CODE>declare</CODE>
builtin. Individual array elements may be assigned to using the
-<CODE>name[</CODE><VAR>subscript</VAR><CODE>]=</CODE><VAR>value</VAR> syntax introduced above.
+<CODE><VAR>name</VAR>[<VAR>subscript</VAR>]=<VAR>value</VAR></CODE> syntax introduced above.
+</P><P>
+
+When assigning to an indexed array, if <VAR>name</VAR>
+is subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+<VAR>name</VAR>, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
</P><P>
Any element of an array may be referenced using
-<CODE>${name[</CODE><VAR>subscript</VAR><CODE>]}</CODE>.
+<CODE>${<VAR>name</VAR>[<VAR>subscript</VAR>]}</CODE>.
The braces are required to avoid
conflicts with the shell's filename expansion operators. If the
<VAR>subscript</VAR> is <SAMP>`@'</SAMP> or <SAMP>`*'</SAMP>, the word expands to all members
of the array <VAR>name</VAR>. These subscripts differ only when the word
appears within double quotes.
If the word is double-quoted,
-<CODE>${name[*]}</CODE> expands to a single word with
+<CODE>${<VAR>name</VAR>[*]}</CODE> expands to a single word with
the value of each array member separated by the first character of the
-<CODE>IFS</CODE> variable, and <CODE>${name[@]}</CODE> expands each element of
+<CODE>IFS</CODE> variable, and <CODE>${<VAR>name</VAR>[@]}</CODE> expands each element of
<VAR>name</VAR> to a separate word. When there are no array members,
-<CODE>${name[@]}</CODE> expands to nothing.
+<CODE>${<VAR>name</VAR>[@]}</CODE> expands to nothing.
If the double-quoted expansion occurs within a word, the expansion of
the first parameter is joined with the beginning part of the original
word, and the expansion of the last parameter is joined with the last
part of the original word.
This is analogous to the
expansion of the special parameters <SAMP>`@'</SAMP> and <SAMP>`*'</SAMP>.
-<CODE>${#name[</CODE><VAR>subscript</VAR><CODE>]}</CODE> expands to the length of
-<CODE>${name[</CODE><VAR>subscript</VAR><CODE>]}</CODE>.
+<CODE>${#<VAR>name</VAR>[<VAR>subscript</VAR>]}</CODE> expands to the length of
+<CODE>${<VAR>name</VAR>[<VAR>subscript</VAR>]}</CODE>.
If <VAR>subscript</VAR> is <SAMP>`@'</SAMP> or
<SAMP>`*'</SAMP>, the expansion is the number of elements in the array.
Referencing an array variable without a subscript is equivalent to
referencing with a subscript of 0.
+If the <VAR>subscript</VAR>
+used to reference an element of an indexed array
+evaluates to a number less than zero, it is
+interpreted as relative to one greater than the maximum index of the array,
+so negative indices count back from the end of the array,
+and an index of -1 refers to the last element.
</P><P>
An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
</P><P>
+It is possible to obtain the keys (indices) of an array as well as the values.
+${!<VAR>name</VAR>[@]} and ${!<VAR>name</VAR>[*]} expand to the indices
+assigned in array variable <VAR>name</VAR>.
+The treatment when in double quotes is similar to the expansion of the
+special parameters <SAMP>`@'</SAMP> and <SAMP>`*'</SAMP> within double quotes.
+</P><P>
+
The <CODE>unset</CODE> builtin is used to destroy arrays.
-<CODE>unset</CODE> <VAR>name</VAR>[<VAR>subscript</VAR>]
+<CODE>unset <VAR>name</VAR>[<VAR>subscript</VAR>]</CODE>
destroys the array element at index <VAR>subscript</VAR>.
+Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by filename
expansion.
-<CODE>unset</CODE> <VAR>name</VAR>, where <VAR>name</VAR> is an array, removes the
-entire array. A subscript of <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP> also removes the
+<CODE>unset <VAR>name</VAR></CODE>, where <VAR>name</VAR> is an array, removes the
+entire array. A subscript of <SAMP>`*'</SAMP> or <SAMP>`@'</SAMP> also removes the
entire array.
</P><P>
The <CODE>declare</CODE>, <CODE>local</CODE>, and <CODE>readonly</CODE>
builtins each accept a <SAMP>`-a'</SAMP> option to specify an indexed
array and a <SAMP>`-A'</SAMP> option to specify an associative array.
+If both options are supplied, <SAMP>`-A'</SAMP> takes precedence.
The <CODE>read</CODE> builtin accepts a <SAMP>`-a'</SAMP>
option to assign a list of words read from the standard input
to an array, and can read values from the standard input into
@@ -8314,7 +8929,7 @@ reused as input.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC89"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.8 The Directory Stack </H2>
@@ -8350,7 +8965,7 @@ as the value of the <CODE>DIRSTACK</CODE> shell variable.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC89"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 6.8.1 Directory Stack Builtins </H3>
@@ -8360,37 +8975,41 @@ as the value of the <CODE>DIRSTACK</CODE> shell variable.
<DL COMPACT>
<DT><CODE>dirs</CODE>
-<DD><A NAME="IDX302"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>dirs [+<VAR>N</VAR> | -<VAR>N</VAR>] [-clpv]
-</pre></td></tr></table>Display the list of currently remembered directories. Directories
+<DD><A NAME="IDX315"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>dirs [-clpv] [+<VAR>N</VAR> | -<VAR>N</VAR>]
+</pre></td></tr></table><P>
+
+Display the list of currently remembered directories. Directories
are added to the list with the <CODE>pushd</CODE> command; the
<CODE>popd</CODE> command removes directories from the list.
+</P><P>
+
<DL COMPACT>
-<DT><CODE>+<VAR>N</VAR></CODE>
-<DD>Displays the <VAR>N</VAR>th directory (counting from the left of the
-list printed by <CODE>dirs</CODE> when invoked without options), starting
-with zero.
-<DT><CODE>-<VAR>N</VAR></CODE>
-<DD>Displays the <VAR>N</VAR>th directory (counting from the right of the
-list printed by <CODE>dirs</CODE> when invoked without options), starting
-with zero.
<DT><CODE>-c</CODE>
<DD>Clears the directory stack by deleting all of the elements.
<DT><CODE>-l</CODE>
-<DD>Produces a longer listing; the default listing format uses a
-tilde to denote the home directory.
+<DD>Produces a listing using full pathnames;
+the default listing format uses a tilde to denote the home directory.
<DT><CODE>-p</CODE>
<DD>Causes <CODE>dirs</CODE> to print the directory stack with one entry per
line.
<DT><CODE>-v</CODE>
<DD>Causes <CODE>dirs</CODE> to print the directory stack with one entry per
line, prefixing each entry with its index in the stack.
+<DT><CODE>+<VAR>N</VAR></CODE>
+<DD>Displays the <VAR>N</VAR>th directory (counting from the left of the
+list printed by <CODE>dirs</CODE> when invoked without options), starting
+with zero.
+<DT><CODE>-<VAR>N</VAR></CODE>
+<DD>Displays the <VAR>N</VAR>th directory (counting from the right of the
+list printed by <CODE>dirs</CODE> when invoked without options), starting
+with zero.
</DL>
<P>
<DT><CODE>popd</CODE>
-<DD><A NAME="IDX303"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>popd [+<VAR>N</VAR> | -<VAR>N</VAR>] [-n]
+<DD><A NAME="IDX316"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>popd [-n] [+<VAR>N</VAR> | -<VAR>N</VAR>]
</pre></td></tr></table><P>
Remove the top entry from the directory stack, and <CODE>cd</CODE>
@@ -8399,23 +9018,25 @@ When no arguments are given, <CODE>popd</CODE>
removes the top directory from the stack and
performs a <CODE>cd</CODE> to the new top directory. The
elements are numbered from 0 starting at the first directory listed with
-<CODE>dirs</CODE>; i.e., <CODE>popd</CODE> is equivalent to <CODE>popd +0</CODE>.
+<CODE>dirs</CODE>; that is, <CODE>popd</CODE> is equivalent to <CODE>popd +0</CODE>.
+</P><P>
+
<DL COMPACT>
+<DT><CODE>-n</CODE>
+<DD>Suppresses the normal change of directory when removing directories
+from the stack, so that only the stack is manipulated.
<DT><CODE>+<VAR>N</VAR></CODE>
<DD>Removes the <VAR>N</VAR>th directory (counting from the left of the
list printed by <CODE>dirs</CODE>), starting with zero.
<DT><CODE>-<VAR>N</VAR></CODE>
<DD>Removes the <VAR>N</VAR>th directory (counting from the right of the
list printed by <CODE>dirs</CODE>), starting with zero.
-<DT><CODE>-n</CODE>
-<DD>Suppresses the normal change of directory when removing directories
-from the stack, so that only the stack is manipulated.
</DL>
<P>
-<A NAME="IDX304"></A>
+<A NAME="IDX317"></A>
<DT><CODE>pushd</CODE>
-<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>pushd [-n] [<VAR>+N</VAR> | <VAR>-N</VAR> | <VAR>dir</VAR> ]
+<DD><TABLE><tr><td>&nbsp;</td><td class=example><pre>pushd [-n] [<VAR>+N</VAR> | <VAR>-N</VAR> | <VAR>dir</VAR>]
</pre></td></tr></table><P>
Save the current directory on the top of the directory stack
@@ -8436,16 +9057,14 @@ the list by rotating the stack.
list printed by <CODE>dirs</CODE>, starting with zero) to the top of
the list by rotating the stack.
<DT><CODE><VAR>dir</VAR></CODE>
-<DD>Makes the current working directory be the top of the stack, and then
-executes the equivalent of `<CODE>cd</CODE> <VAR>dir</VAR>'.
-<CODE>cd</CODE>s to <VAR>dir</VAR>.
+<DD>Makes the current working directory be the top of the stack, making
+it the new current directory as if it had been supplied as an argument
+to the <CODE>cd</CODE> builtin.
</DL>
-<P>
-
</DL>
<P>
-<A NAME="Printing a Prompt"></A>
+<A NAME="Controlling the Prompt"></A>
<HR SIZE="6">
<A NAME="SEC89"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
@@ -8456,7 +9075,7 @@ executes the equivalent of `<CODE>cd</CODE> <VAR>dir</VAR>'.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.9 Controlling the Prompt </H2>
@@ -8470,7 +9089,7 @@ value is executed just as if it had been typed on the command line.
</P><P>
In addition, the following table describes the special characters which
-can appear in the prompt variables:
+can appear in the prompt variables <CODE>PS1</CODE> to <CODE>PS4</CODE>:
</P><P>
<DL COMPACT>
@@ -8539,7 +9158,7 @@ embed a terminal control sequence into the prompt.
The command number and the history number are usually different:
the history number of a command is its position in the history
list, which may include commands restored from the history file
-(see section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>), while the command number is
+(see section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>), while the command number is
the position in the sequence of commands executed during the current
shell session.
</P><P>
@@ -8561,7 +9180,7 @@ expansion, and quote removal, subject to the value of the
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.10 The Restricted Shell </H2>
@@ -8633,7 +9252,7 @@ the shell spawned to execute the script.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC92"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 6.11 Bash POSIX Mode </H2>
@@ -8700,6 +9319,13 @@ name, rather than on all assignment statements on the line.
<P>
<LI>
+The <CODE>command</CODE> builtin does not prevent builtins that take assignment
+statements as arguments from expanding them as assignment statements;
+when not in POSIX mode, assignment builtins lose their assignment
+statement expansion properties when preceded by <CODE>command</CODE>.
+<P>
+
+<LI>
The default history file is <TT>`~/.sh_history'</TT> (this is the
default value of <CODE>$HISTFILE</CODE>).
<P>
@@ -8748,6 +9374,11 @@ causes a fatal syntax error in non-interactive shells.
<P>
<LI>
+Function names may not be the same as one of the POSIX special
+builtins.
+<P>
+
+<LI>
POSIX special builtins are found before shell functions
during command lookup.
<P>
@@ -8789,7 +9420,7 @@ a value to a readonly variable.
<P>
<LI>
-A non-interactive shell exists with an error status if a variable
+A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a special
builtin, but not with any other simple command.
<P>
@@ -8805,6 +9436,11 @@ Process substitution is not available.
<P>
<LI>
+While variable indirection is available, it may not be applied to the
+<SAMP>`#'</SAMP> and <SAMP>`?'</SAMP> special parameters.
+<P>
+
+<LI>
Assignment statements preceding POSIX special builtins
persist in the shell environment after the builtin completes.
<P>
@@ -8917,6 +9553,13 @@ not interrupt the <CODE>wait</CODE> builtin and cause it to return immediately.
The trap command is run once for each child that exits.
<P>
+<LI>
+The <CODE>read</CODE> builtin may be interrupted by a signal for which a trap
+has been set.
+If Bash receives a trapped signal while executing <CODE>read</CODE>, the trap
+handler executes and <CODE>read</CODE> returns an exit status greater than 128.
+<P>
+
</OL>
<P>
@@ -8943,7 +9586,7 @@ the <CODE>echo</CODE> builtin to be fully conformant.
Bash can be configured to be POSIX-conformant by default, by specifying
the <SAMP>`--enable-strict-posix-default'</SAMP> to <CODE>configure</CODE> when building
-(see section <A HREF="bashref.html#SEC135">10.8 Optional Features</A>).
+(see section <A HREF="bashref.html#SEC136">10.8 Optional Features</A>).
</P><P>
<A NAME="Job Control"></A>
@@ -8957,7 +9600,7 @@ the <SAMP>`--enable-strict-posix-default'</SAMP> to <CODE>configure</CODE> when
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 7. Job Control </H1>
@@ -8988,7 +9631,7 @@ Bash allows you to access its facilities.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 7.1 Job Control Basics </H2>
@@ -9069,7 +9712,7 @@ previous job with a <SAMP>`-'</SAMP>.
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 example, <SAMP>`%ce'</SAMP> refers
-to a stopped <CODE>ce</CODE> job. Using <SAMP>`%?ce'</SAMP>, on the
+to a stopped <CODE>ce</CODE> job. Using <SAMP>`%?ce'</SAMP>, on the
other hand, refers to any job containing the string <SAMP>`ce'</SAMP> in
its command line. If the prefix or substring matches more than one job,
Bash reports an error.
@@ -9111,7 +9754,7 @@ Bash does not print another warning, and any stopped jobs are terminated.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 7.2 Job Control Builtins </H2>
@@ -9121,30 +9764,34 @@ Bash does not print another warning, and any stopped jobs are terminated.
<DL COMPACT>
<DT><CODE>bg</CODE>
-<DD><A NAME="IDX305"></A>
+<DD><A NAME="IDX318"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>bg [<VAR>jobspec</VAR> <small>...</small>]
-</pre></td></tr></table>Resume each suspended job <VAR>jobspec</VAR> in the background, as if it
+</pre></td></tr></table><P>
+
+Resume each suspended job <VAR>jobspec</VAR> in the background, as if it
had been started with <SAMP>`&#38;'</SAMP>.
If <VAR>jobspec</VAR> is not supplied, the current job is used.
The return status is zero unless it is run when job control is not
enabled, or, when run with job control enabled, any
<VAR>jobspec</VAR> was not found or specifies a job
that was started without job control.
-<P>
+</P><P>
<DT><CODE>fg</CODE>
-<DD><A NAME="IDX306"></A>
+<DD><A NAME="IDX319"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>fg [<VAR>jobspec</VAR>]
-</pre></td></tr></table>Resume the job <VAR>jobspec</VAR> in the foreground and make it the current job.
+</pre></td></tr></table><P>
+
+Resume the job <VAR>jobspec</VAR> in the foreground and make it the current job.
If <VAR>jobspec</VAR> is not supplied, the current job is used.
The return status is that of the command placed into the foreground,
or non-zero if run when job control is disabled or, when run with
job control enabled, <VAR>jobspec</VAR> does not specify a valid job or
<VAR>jobspec</VAR> specifies a job that was started without job control.
-<P>
+</P><P>
<DT><CODE>jobs</CODE>
-<DD><A NAME="IDX307"></A>
+<DD><A NAME="IDX320"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>jobs [-lnprs] [<VAR>jobspec</VAR>]
jobs -x <VAR>command</VAR> [<VAR>arguments</VAR>]
</pre></td></tr></table><P>
@@ -9168,11 +9815,11 @@ the user was last notified of their status.
<P>
<DT><CODE>-r</CODE>
-<DD>Restrict output to running jobs.
+<DD>Display only running jobs.
<P>
<DT><CODE>-s</CODE>
-<DD>Restrict output to stopped jobs.
+<DD>Display only stopped jobs.
</DL>
<P>
@@ -9189,10 +9836,12 @@ passing it <VAR>argument</VAR>s, returning its exit status.
</P><P>
<DT><CODE>kill</CODE>
-<DD><A NAME="IDX308"></A>
+<DD><A NAME="IDX321"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>kill [-s <VAR>sigspec</VAR>] [-n <VAR>signum</VAR>] [-<VAR>sigspec</VAR>] <VAR>jobspec</VAR> or <VAR>pid</VAR>
kill -l [<VAR>exit_status</VAR>]
-</pre></td></tr></table>Send a signal specified by <VAR>sigspec</VAR> or <VAR>signum</VAR> to the process
+</pre></td></tr></table><P>
+
+Send a signal specified by <VAR>sigspec</VAR> or <VAR>signum</VAR> to the process
named by job specification <VAR>jobspec</VAR> or process ID <VAR>pid</VAR>.
<VAR>sigspec</VAR> is either a case-insensitive signal name such as
<CODE>SIGINT</CODE> (with or without the <CODE>SIG</CODE> prefix)
@@ -9206,45 +9855,51 @@ is zero.
status of a process terminated by a signal.
The return status is zero if at least one signal was successfully sent,
or non-zero if an error occurs or an invalid option is encountered.
-<P>
+</P><P>
<DT><CODE>wait</CODE>
-<DD><A NAME="IDX309"></A>
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>wait [<VAR>jobspec</VAR> or <VAR>pid</VAR> ...]
-</pre></td></tr></table>Wait until the child process specified by each process ID <VAR>pid</VAR>
+<DD><A NAME="IDX322"></A>
+<TABLE><tr><td>&nbsp;</td><td class=example><pre>wait [-n] [<VAR>jobspec</VAR> or <VAR>pid</VAR> <small>...</small>]
+</pre></td></tr></table><P>
+
+Wait until the child process specified by each process ID <VAR>pid</VAR>
or job specification <VAR>jobspec</VAR> exits and return the exit status of the
last command waited for.
If a job spec is given, all processes in the job are waited for.
If no arguments are given, all currently active child processes are
waited for, and the return status is zero.
+If the <SAMP>`-n'</SAMP> option is supplied, <CODE>wait</CODE> waits for any job to
+terminate and returns its exit status.
If neither <VAR>jobspec</VAR> nor <VAR>pid</VAR> specifies an active child process
of the shell, the return status is 127.
-<P>
+</P><P>
<DT><CODE>disown</CODE>
-<DD><A NAME="IDX310"></A>
+<DD><A NAME="IDX323"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>disown [-ar] [-h] [<VAR>jobspec</VAR> <small>...</small>]
-</pre></td></tr></table>Without options, each <VAR>jobspec</VAR> is removed from the table of
+</pre></td></tr></table><P>
+
+Without options, remove each <VAR>jobspec</VAR> from the table of
active jobs.
If the <SAMP>`-h'</SAMP> option is given, the job is not removed from the table,
but is marked so that <CODE>SIGHUP</CODE> is not sent to the job if the shell
receives a <CODE>SIGHUP</CODE>.
-If <VAR>jobspec</VAR> is not present, and neither the <SAMP>`-a'</SAMP> nor <SAMP>`-r'</SAMP>
-option is supplied, the current job is used.
+If <VAR>jobspec</VAR> is not present, and neither the <SAMP>`-a'</SAMP> nor the
+<SAMP>`-r'</SAMP> option is supplied, the current job is used.
If no <VAR>jobspec</VAR> is supplied, the <SAMP>`-a'</SAMP> option means to remove or
mark all jobs; the <SAMP>`-r'</SAMP> option without a <VAR>jobspec</VAR>
argument restricts operation to running jobs.
-<P>
+</P><P>
<DT><CODE>suspend</CODE>
-<DD><A NAME="IDX311"></A>
+<DD><A NAME="IDX324"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>suspend [-f]
-</pre></td></tr></table>Suspend the execution of this shell until it receives a
+</pre></td></tr></table><P>
+
+Suspend the execution of this shell until it receives a
<CODE>SIGCONT</CODE> signal.
A login shell cannot be suspended; the <SAMP>`-f'</SAMP>
option can be used to override this and force the suspension.
-<P>
-
</DL>
<P>
@@ -9264,7 +9919,7 @@ supplied process IDs.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 7.3 Job Control Variables </H2>
@@ -9273,9 +9928,9 @@ supplied process IDs.
<DL COMPACT>
-<A NAME="IDX312"></A>
+<A NAME="IDX325"></A>
<DT><CODE>auto_resume</CODE>
-<DD><A NAME="IDX313"></A>
+<DD><A NAME="IDX326"></A>
This variable controls how the shell interacts with the user and
job control. If this variable exists then single word simple
commands without redirections are treated as candidates for resumption
@@ -9297,7 +9952,7 @@ analogous to the <SAMP>`%'</SAMP> job ID.
</DL>
<P>
-<A NAME="IDX314"></A>
+<A NAME="IDX327"></A>
</P><P>
<A NAME="Command Line Editing"></A>
@@ -9306,12 +9961,12 @@ analogous to the <SAMP>`%'</SAMP> job ID.
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC95"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC97"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 8. Command Line Editing </H1>
@@ -9346,6 +10001,8 @@ Line editing can be enabled at any time using the <SAMP>`-o emacs'</SAMP> or
a specific command.</TD></TR>
<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Builtin commands to specify how to
complete arguments for a particular command.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC120">8.8 A Programmable Completion Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example shell function for
+ generating possible completions.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
@@ -9357,10 +10014,10 @@ Line editing can be enabled at any time using the <SAMP>`-o emacs'</SAMP> or
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC98"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.1 Introduction to Line Editing </H2>
@@ -9419,7 +10076,7 @@ some keyboards.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.2 Readline Interaction </H2>
@@ -9458,7 +10115,7 @@ regardless of the location of the cursor within the line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.2.1 Readline Bare Essentials </H3>
@@ -9520,7 +10177,7 @@ than the character to the left of the cursor.)
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.2.2 Readline Movement Commands </H3>
@@ -9564,15 +10221,15 @@ operate on characters while meta keystrokes operate on words.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.2.3 Readline Killing Commands </H3>
<!--docid::SEC101::-->
<P>
-<A NAME="IDX315"></A>
-<A NAME="IDX316"></A>
+<A NAME="IDX328"></A>
+<A NAME="IDX329"></A>
</P><P>
<EM>Killing</EM> text means to delete the text from the line, but to save
@@ -9592,7 +10249,7 @@ that when you yank it back, you get it all. The kill
ring is not line specific; the text that you killed on a previously
typed line is available to be yanked back later, when you are typing
another line.
-<A NAME="IDX317"></A>
+<A NAME="IDX330"></A>
</P><P>
Here is the list of commands for killing text.
@@ -9649,7 +10306,7 @@ the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.2.4 Readline Arguments </H3>
@@ -9684,7 +10341,7 @@ which will delete the next ten characters on the input line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC104"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.2.5 Searching for Commands in the History </H3>
@@ -9692,7 +10349,7 @@ which will delete the next ten characters on the input line.
<P>
Readline provides commands for searching through the command history
-(see section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>)
+(see section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>)
for lines containing a specified string.
There are two search modes: <EM>incremental</EM> and <EM>non-incremental</EM>.
</P><P>
@@ -9747,7 +10404,7 @@ typed by the user or be part of the contents of the current line.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.3 Readline Init File </H2>
@@ -9800,7 +10457,7 @@ incorporating any changes that you might have made to it.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.3.1 Readline Init File Syntax </H3>
@@ -9851,11 +10508,11 @@ A great deal of run-time behavior is changeable with the following
variables.
</P><P>
-<A NAME="IDX318"></A>
+<A NAME="IDX331"></A>
<DL COMPACT>
<DT><CODE>bell-style</CODE>
-<DD><A NAME="IDX319"></A>
+<DD><A NAME="IDX332"></A>
Controls what happens when Readline wants to ring the terminal bell.
If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to
<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
@@ -9864,21 +10521,30 @@ the terminal's bell.
<P>
<DT><CODE>bind-tty-special-chars</CODE>
-<DD><A NAME="IDX320"></A>
+<DD><A NAME="IDX333"></A>
If set to <SAMP>`on'</SAMP>, Readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their Readline
equivalents.
<P>
+<DT><CODE>colored-stats</CODE>
+<DD><A NAME="IDX334"></A>
+If set to <SAMP>`on'</SAMP>, Readline displays possible completions using different
+colors to indicate their file type.
+The color definitions are taken from the value of the <CODE>LS_COLORS</CODE>
+environment variable.
+The default is <SAMP>`off'</SAMP>.
+<P>
+
<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX321"></A>
+<DD><A NAME="IDX335"></A>
The string to insert at the beginning of the line when the
<CODE>insert-comment</CODE> command is executed. The default value
is <CODE>"#"</CODE>.
<P>
<DT><CODE>completion-display-width</CODE>
-<DD><A NAME="IDX322"></A>
+<DD><A NAME="IDX336"></A>
The number of screen columns used to display possible matches
when performing completion.
The value is ignored if it is less than 0 or greater than the terminal
@@ -9888,21 +10554,21 @@ The default value is -1.
<P>
<DT><CODE>completion-ignore-case</CODE>
-<DD><A NAME="IDX323"></A>
+<DD><A NAME="IDX337"></A>
If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
in a case-insensitive fashion.
The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>completion-map-case</CODE>
-<DD><A NAME="IDX324"></A>
+<DD><A NAME="IDX338"></A>
If set to <SAMP>`on'</SAMP>, and <VAR>completion-ignore-case</VAR> is enabled, Readline
treats hyphens (<SAMP>`-'</SAMP>) and underscores (<SAMP>`_'</SAMP>) as equivalent when
performing case-insensitive filename matching and completion.
<P>
<DT><CODE>completion-prefix-display-length</CODE>
-<DD><A NAME="IDX325"></A>
+<DD><A NAME="IDX339"></A>
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
@@ -9910,7 +10576,7 @@ replaced with an ellipsis when displaying possible completions.
<P>
<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX326"></A>
+<DD><A NAME="IDX340"></A>
The number of possible completions that determines when the user is
asked whether the list of possibilities should be displayed.
If the number of possible completions is greater than this value,
@@ -9922,7 +10588,7 @@ The default limit is <CODE>100</CODE>.
<P>
<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX327"></A>
+<DD><A NAME="IDX341"></A>
If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
eighth bit set to an ASCII key sequence by stripping the eighth
bit and prefixing an <KBD>ESC</KBD> character, converting them to a
@@ -9930,14 +10596,14 @@ meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX328"></A>
+<DD><A NAME="IDX342"></A>
If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX329"></A>
+<DD><A NAME="IDX343"></A>
The <CODE>editing-mode</CODE> variable controls which default set of
key bindings is used. By default, Readline starts up in Emacs editing
mode, where the keystrokes are most similar to Emacs. This variable can be
@@ -9951,7 +10617,7 @@ keyboard. The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX330"></A>
+<DD><A NAME="IDX344"></A>
When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys. The default is <SAMP>`off'</SAMP>.
@@ -9965,13 +10631,13 @@ The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX331"></A>
+<DD><A NAME="IDX345"></A>
If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
attempts word completion. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-preserve-point</CODE>
-<DD><A NAME="IDX332"></A>
+<DD><A NAME="IDX346"></A>
If set to <SAMP>`on'</SAMP>, 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</CODE>
@@ -9979,13 +10645,17 @@ or <CODE>next-history</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>history-size</CODE>
-<DD><A NAME="IDX333"></A>
-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.
+<DD><A NAME="IDX347"></A>
+Set the maximum number of history entries saved in the history list.
+If set to zero, any existing history entries are deleted and no new entries
+are saved.
+If set to a value less than zero, the number of history entries is not
+limited.
+By default, the number of history entries is not limited.
<P>
<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX334"></A>
+<DD><A NAME="IDX348"></A>
This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
@@ -9994,8 +10664,8 @@ this variable is set to <SAMP>`off'</SAMP>.
<P>
<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX335"></A>
-<A NAME="IDX336"></A>
+<DD><A NAME="IDX349"></A>
+<A NAME="IDX350"></A>
If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
@@ -10004,7 +10674,7 @@ synonym for this variable.
<P>
<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX337"></A>
+<DD><A NAME="IDX351"></A>
The string of characters that should terminate an incremental search without
subsequently executing the character as a command (see section <A HREF="bashref.html#SEC103">8.2.5 Searching for Commands in the History</A>).
If this variable has not been given a value, the characters <KBD>ESC</KBD> and
@@ -10012,7 +10682,7 @@ If this variable has not been given a value, the characters <KBD>ESC</KBD> and
<P>
<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX338"></A>
+<DD><A NAME="IDX352"></A>
Sets Readline's idea of the current keymap for key binding commands.
Acceptable <CODE>keymap</CODE> names are
<CODE>emacs</CODE>,
@@ -10029,20 +10699,37 @@ The value of the <CODE>editing-mode</CODE> variable also affects the
default keymap.
<P>
+<DT><CODE>keyseq-timeout</CODE>
+<DD>Specifies the duration Readline will wait for a character when reading an
+ambiguous key sequence (one that can form a complete key sequence using
+the input read so far, or can take additional input to complete a longer
+key sequence).
+If no input is received within the timeout, Readline will use the shorter
+but complete key sequence.
+Readline uses this value to determine whether or not input is
+available on the current input source (<CODE>rl_instream</CODE> by default).
+The value is specified in milliseconds, so a value of 1000 means that
+Readline will wait one second for additional input.
+If this variable is set to a value less than or equal to zero, or to a
+non-numeric value, Readline will wait until another key is pressed to
+decide which key sequence to complete.
+The default value is <CODE>500</CODE>.
+<P>
+
<DT><CODE>mark-directories</CODE>
<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
appended. The default is <SAMP>`on'</SAMP>.
<P>
<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX339"></A>
+<DD><A NAME="IDX353"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
This variable is <SAMP>`off'</SAMP> by default.
<P>
<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX340"></A>
+<DD><A NAME="IDX354"></A>
If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
to directories have a slash appended (subject to the value of
<CODE>mark-directories</CODE>).
@@ -10050,7 +10737,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX341"></A>
+<DD><A NAME="IDX355"></A>
This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
completion.
@@ -10060,21 +10747,21 @@ This variable is <SAMP>`on'</SAMP> by default.
<P>
<DT><CODE>menu-complete-display-prefix</CODE>
-<DD><A NAME="IDX342"></A>
+<DD><A NAME="IDX356"></A>
If set to <SAMP>`on'</SAMP>, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling through
the list. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX343"></A>
+<DD><A NAME="IDX357"></A>
If set to <SAMP>`on'</SAMP>, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX344"></A>
+<DD><A NAME="IDX358"></A>
If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
to display a screenful of possible completions at a time.
This variable is <SAMP>`on'</SAMP> by default.
@@ -10087,7 +10774,7 @@ The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>revert-all-at-newline</CODE>
-<DD><A NAME="IDX345"></A>
+<DD><A NAME="IDX359"></A>
If set to <SAMP>`on'</SAMP>, Readline will undo all changes to history lines
before returning when <CODE>accept-line</CODE> is executed. By default,
history lines may be modified and retain individual undo lists across
@@ -10095,7 +10782,7 @@ calls to <CODE>readline</CODE>. The default is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX346"></A>
+<DD><A NAME="IDX360"></A>
This alters the default behavior of the completion functions. If
set to <SAMP>`on'</SAMP>,
words which have more than one possible completion cause the
@@ -10104,7 +10791,7 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>show-all-if-unmodified</CODE>
-<DD><A NAME="IDX347"></A>
+<DD><A NAME="IDX361"></A>
This alters the default behavior of the completion functions in
a fashion similar to <VAR>show-all-if-ambiguous</VAR>.
If set to <SAMP>`on'</SAMP>,
@@ -10115,8 +10802,16 @@ of ringing the bell.
The default value is <SAMP>`off'</SAMP>.
<P>
+<DT><CODE>show-mode-in-prompt</CODE>
+<DD><A NAME="IDX362"></A>
+If set to <SAMP>`on'</SAMP>, add a character to the beginning of the prompt
+indicating the editing mode: emacs (<SAMP>`@'</SAMP>), vi command (<SAMP>`:'</SAMP>),
+or vi insertion (<SAMP>`+'</SAMP>).
+The default value is <SAMP>`off'</SAMP>.
+<P>
+
<DT><CODE>skip-completed-text</CODE>
-<DD><A NAME="IDX348"></A>
+<DD><A NAME="IDX363"></A>
If set to <SAMP>`on'</SAMP>, this alters the default completion behavior when
inserting a single match into the line. It's only active when
performing completion in the middle of a word. If enabled, readline
@@ -10131,7 +10826,7 @@ The default value is <SAMP>`off'</SAMP>.
<P>
<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX349"></A>
+<DD><A NAME="IDX364"></A>
If set to <SAMP>`on'</SAMP>, a character denoting a file's type
is appended to the filename when listing possible
completions. The default is <SAMP>`off'</SAMP>.
@@ -10297,7 +10992,7 @@ insert a single <SAMP>`\'</SAMP> into the line:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.3.2 Conditional Init Constructs </H3>
@@ -10382,7 +11077,7 @@ For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC108"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.3.3 Sample Init File </H3>
@@ -10400,7 +11095,7 @@ binding, variable assignment, and conditional syntax.
# You can re-read the inputrc file with C-x C-r.
# Lines beginning with '#' are comments.
#
-# First, include any systemwide bindings and variable
+# First, include any system-wide bindings and variable
# assignments from /etc/Inputrc
$include /etc/Inputrc
@@ -10505,7 +11200,7 @@ $endif
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.4 Bindable Readline Commands </H2>
@@ -10549,74 +11244,74 @@ The text between the point and mark is referred to as the <EM>region</EM>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.1 Commands For Moving </H3>
<!--docid::SEC109::-->
<DL COMPACT>
-<A NAME="IDX350"></A>
+<A NAME="IDX365"></A>
<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX351"></A>
+<DD><A NAME="IDX366"></A>
Move to the start of the current line.
<P>
-<A NAME="IDX352"></A>
+<A NAME="IDX367"></A>
<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX353"></A>
+<DD><A NAME="IDX368"></A>
Move to the end of the line.
<P>
-<A NAME="IDX354"></A>
+<A NAME="IDX369"></A>
<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX355"></A>
+<DD><A NAME="IDX370"></A>
Move forward a character.
<P>
-<A NAME="IDX356"></A>
+<A NAME="IDX371"></A>
<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX357"></A>
+<DD><A NAME="IDX372"></A>
Move back a character.
<P>
-<A NAME="IDX358"></A>
+<A NAME="IDX373"></A>
<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX359"></A>
+<DD><A NAME="IDX374"></A>
Move forward to the end of the next word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX360"></A>
+<A NAME="IDX375"></A>
<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX361"></A>
+<DD><A NAME="IDX376"></A>
Move back to the start of the current or previous word.
Words are composed of letters and digits.
<P>
-<A NAME="IDX362"></A>
+<A NAME="IDX377"></A>
<DT><CODE>shell-forward-word ()</CODE>
-<DD><A NAME="IDX363"></A>
+<DD><A NAME="IDX378"></A>
Move forward to the end of the next word.
Words are delimited by non-quoted shell metacharacters.
<P>
-<A NAME="IDX364"></A>
+<A NAME="IDX379"></A>
<DT><CODE>shell-backward-word ()</CODE>
-<DD><A NAME="IDX365"></A>
+<DD><A NAME="IDX380"></A>
Move back to the start of the current or previous word.
Words are delimited by non-quoted shell metacharacters.
<P>
-<A NAME="IDX366"></A>
+<A NAME="IDX381"></A>
<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX367"></A>
+<DD><A NAME="IDX382"></A>
Clear the screen and redraw the current line,
leaving the current line at the top of the screen.
<P>
-<A NAME="IDX368"></A>
+<A NAME="IDX383"></A>
<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX369"></A>
+<DD><A NAME="IDX384"></A>
Refresh the current line. By default, this is unbound.
<P>
@@ -10634,7 +11329,7 @@ Refresh the current line. By default, this is unbound.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.2 Commands For Manipulating The History </H3>
@@ -10642,9 +11337,9 @@ Refresh the current line. By default, this is unbound.
<P>
<DL COMPACT>
-<A NAME="IDX370"></A>
+<A NAME="IDX385"></A>
<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX371"></A>
+<DD><A NAME="IDX386"></A>
Accept the line regardless of where the cursor is.
If this line is
non-empty, add it to the history list according to the setting of
@@ -10653,81 +11348,104 @@ If this line is a modified history line, then restore the history line
to its original state.
<P>
-<A NAME="IDX372"></A>
+<A NAME="IDX387"></A>
<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX373"></A>
+<DD><A NAME="IDX388"></A>
Move `back' through the history list, fetching the previous command.
<P>
-<A NAME="IDX374"></A>
+<A NAME="IDX389"></A>
<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX375"></A>
+<DD><A NAME="IDX390"></A>
Move `forward' through the history list, fetching the next command.
<P>
-<A NAME="IDX376"></A>
+<A NAME="IDX391"></A>
<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX377"></A>
+<DD><A NAME="IDX392"></A>
Move to the first line in the history.
<P>
-<A NAME="IDX378"></A>
+<A NAME="IDX393"></A>
<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX379"></A>
+<DD><A NAME="IDX394"></A>
Move to the end of the input history, i.e., the line currently
being entered.
<P>
-<A NAME="IDX380"></A>
+<A NAME="IDX395"></A>
<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX381"></A>
+<DD><A NAME="IDX396"></A>
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX382"></A>
+<A NAME="IDX397"></A>
<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX383"></A>
+<DD><A NAME="IDX398"></A>
Search forward starting at the current line and moving `down' through
the the history as necessary. This is an incremental search.
<P>
-<A NAME="IDX384"></A>
+<A NAME="IDX399"></A>
<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX385"></A>
+<DD><A NAME="IDX400"></A>
Search backward starting at the current line and moving `up'
through the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX386"></A>
+<A NAME="IDX401"></A>
<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX387"></A>
+<DD><A NAME="IDX402"></A>
Search forward starting at the current line and moving `down'
through the the history as necessary using a non-incremental search
for a string supplied by the user.
<P>
-<A NAME="IDX388"></A>
+<A NAME="IDX403"></A>
<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX389"></A>
+<DD><A NAME="IDX404"></A>
Search forward through the history for the string of characters
between the start of the current line and the point.
+The search string must match at the beginning of a history line.
This is a non-incremental search.
By default, this command is unbound.
<P>
-<A NAME="IDX390"></A>
+<A NAME="IDX405"></A>
<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX391"></A>
+<DD><A NAME="IDX406"></A>
+Search backward through the history for the string of characters
+between the start of the current line and the point.
+The search string must match at the beginning of a history line.
+This is a non-incremental search.
+By default, this command is unbound.
+<P>
+
+<A NAME="IDX407"></A>
+<DT><CODE>history-substr-search-forward ()</CODE>
+<DD><A NAME="IDX408"></A>
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+The search string may match anywhere in a history line.
+This is a non-incremental search.
+By default, this command is unbound.
+<P>
+
+<A NAME="IDX409"></A>
+<DT><CODE>history-substr-search-backward ()</CODE>
+<DD><A NAME="IDX410"></A>
Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
+between the start of the current line and the point.
+The search string may match anywhere in a history line.
+This is a non-incremental search.
+By default, this command is unbound.
<P>
-<A NAME="IDX392"></A>
+<A NAME="IDX411"></A>
<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX393"></A>
+<DD><A NAME="IDX412"></A>
Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <VAR>n</VAR>,
@@ -10738,9 +11456,9 @@ Once the argument <VAR>n</VAR> is computed, the argument is extracted
as if the <SAMP>`!<VAR>n</VAR>'</SAMP> history expansion had been specified.
<P>
-<A NAME="IDX394"></A>
+<A NAME="IDX413"></A>
<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX395"></A>
+<DD><A NAME="IDX414"></A>
Insert last argument to the previous command (the last word of the
previous history entry).
With a numeric argument, behave exactly like <CODE>yank-nth-arg</CODE>.
@@ -10768,7 +11486,7 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.3 Commands For Changing Text </H3>
@@ -10776,46 +11494,55 @@ as if the <SAMP>`!$'</SAMP> history expansion had been specified.
<P>
<DL COMPACT>
-<A NAME="IDX396"></A>
+
+<A NAME="IDX415"></A>
+<DT><CODE><I>end-of-file</I> (usually C-d)</CODE>
+<DD><A NAME="IDX416"></A>
+The character indicating end-of-file as set, for example, by
+<CODE>stty</CODE>. If this character is read when there are no characters
+on the line, and point is at the beginning of the line, Readline
+interprets it as the end of input and returns EOF.
+<P>
+
+<A NAME="IDX417"></A>
<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX397"></A>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <CODE>delete-char</CODE>, then
-return EOF.
+<DD><A NAME="IDX418"></A>
+Delete the character at point. If this function is bound to the
+same character as the tty EOF character, as <KBD>C-d</KBD>
+commonly is, see above for the effects.
<P>
-<A NAME="IDX398"></A>
+<A NAME="IDX419"></A>
<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX399"></A>
+<DD><A NAME="IDX420"></A>
Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
<P>
-<A NAME="IDX400"></A>
+<A NAME="IDX421"></A>
<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX401"></A>
+<DD><A NAME="IDX422"></A>
Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
<P>
-<A NAME="IDX402"></A>
+<A NAME="IDX423"></A>
<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX403"></A>
+<DD><A NAME="IDX424"></A>
Add the next character typed to the line verbatim. This is
how to insert key sequences like <KBD>C-q</KBD>, for example.
<P>
-<A NAME="IDX404"></A>
+<A NAME="IDX425"></A>
<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX405"></A>
+<DD><A NAME="IDX426"></A>
Insert yourself.
<P>
-<A NAME="IDX406"></A>
+<A NAME="IDX427"></A>
<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX407"></A>
+<DD><A NAME="IDX428"></A>
Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -10824,39 +11551,39 @@ transposes the last two characters of the line.
Negative arguments have no effect.
<P>
-<A NAME="IDX408"></A>
+<A NAME="IDX429"></A>
<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX409"></A>
+<DD><A NAME="IDX430"></A>
Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
<P>
-<A NAME="IDX410"></A>
+<A NAME="IDX431"></A>
<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX411"></A>
+<DD><A NAME="IDX432"></A>
Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX412"></A>
+<A NAME="IDX433"></A>
<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX413"></A>
+<DD><A NAME="IDX434"></A>
Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
<P>
-<A NAME="IDX414"></A>
+<A NAME="IDX435"></A>
<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX415"></A>
+<DD><A NAME="IDX436"></A>
Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
<P>
-<A NAME="IDX416"></A>
+<A NAME="IDX437"></A>
<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX417"></A>
+<DD><A NAME="IDX438"></A>
Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -10887,7 +11614,7 @@ By default, this command is unbound.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.4 Killing And Yanking </H3>
@@ -10896,121 +11623,121 @@ By default, this command is unbound.
<DL COMPACT>
-<A NAME="IDX418"></A>
+<A NAME="IDX439"></A>
<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX419"></A>
+<DD><A NAME="IDX440"></A>
Kill the text from point to the end of the line.
<P>
-<A NAME="IDX420"></A>
+<A NAME="IDX441"></A>
<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX421"></A>
+<DD><A NAME="IDX442"></A>
Kill backward to the beginning of the line.
<P>
-<A NAME="IDX422"></A>
+<A NAME="IDX443"></A>
<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX423"></A>
+<DD><A NAME="IDX444"></A>
Kill backward from the cursor to the beginning of the current line.
<P>
-<A NAME="IDX424"></A>
+<A NAME="IDX445"></A>
<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX425"></A>
+<DD><A NAME="IDX446"></A>
Kill all characters on the current line, no matter where point is.
By default, this is unbound.
<P>
-<A NAME="IDX426"></A>
+<A NAME="IDX447"></A>
<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX427"></A>
+<DD><A NAME="IDX448"></A>
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <CODE>forward-word</CODE>.
<P>
-<A NAME="IDX428"></A>
+<A NAME="IDX449"></A>
<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX429"></A>
+<DD><A NAME="IDX450"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>backward-word</CODE>.
<P>
-<A NAME="IDX430"></A>
+<A NAME="IDX451"></A>
<DT><CODE>shell-kill-word ()</CODE>
-<DD><A NAME="IDX431"></A>
+<DD><A NAME="IDX452"></A>
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</CODE>.
<P>
-<A NAME="IDX432"></A>
+<A NAME="IDX453"></A>
<DT><CODE>shell-backward-kill-word ()</CODE>
-<DD><A NAME="IDX433"></A>
+<DD><A NAME="IDX454"></A>
Kill the word behind point.
Word boundaries are the same as <CODE>shell-backward-word</CODE>.
<P>
-<A NAME="IDX434"></A>
+<A NAME="IDX455"></A>
<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX435"></A>
+<DD><A NAME="IDX456"></A>
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX436"></A>
+<A NAME="IDX457"></A>
<DT><CODE>unix-filename-rubout ()</CODE>
-<DD><A NAME="IDX437"></A>
+<DD><A NAME="IDX458"></A>
Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
<P>
-<A NAME="IDX438"></A>
+<A NAME="IDX459"></A>
<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX439"></A>
+<DD><A NAME="IDX460"></A>
Delete all spaces and tabs around point. By default, this is unbound.
<P>
-<A NAME="IDX440"></A>
+<A NAME="IDX461"></A>
<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX441"></A>
+<DD><A NAME="IDX462"></A>
Kill the text in the current region.
By default, this command is unbound.
<P>
-<A NAME="IDX442"></A>
+<A NAME="IDX463"></A>
<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX443"></A>
+<DD><A NAME="IDX464"></A>
Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
<P>
-<A NAME="IDX444"></A>
+<A NAME="IDX465"></A>
<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX445"></A>
+<DD><A NAME="IDX466"></A>
Copy the word before point to the kill buffer.
The word boundaries are the same as <CODE>backward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX446"></A>
+<A NAME="IDX467"></A>
<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX447"></A>
+<DD><A NAME="IDX468"></A>
Copy the word following point to the kill buffer.
The word boundaries are the same as <CODE>forward-word</CODE>.
By default, this command is unbound.
<P>
-<A NAME="IDX448"></A>
+<A NAME="IDX469"></A>
<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX449"></A>
+<DD><A NAME="IDX470"></A>
Yank the top of the kill ring into the buffer at point.
<P>
-<A NAME="IDX450"></A>
+<A NAME="IDX471"></A>
<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX451"></A>
+<DD><A NAME="IDX472"></A>
Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
</DL>
@@ -11027,23 +11754,23 @@ the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.5 Specifying Numeric Arguments </H3>
<!--docid::SEC113::-->
<DL COMPACT>
-<A NAME="IDX452"></A>
+<A NAME="IDX473"></A>
<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX453"></A>
+<DD><A NAME="IDX474"></A>
Add this digit to the argument already accumulating, or start a new
argument. <KBD>M--</KBD> starts a negative argument.
<P>
-<A NAME="IDX454"></A>
+<A NAME="IDX475"></A>
<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX455"></A>
+<DD><A NAME="IDX476"></A>
This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -11070,7 +11797,7 @@ By default, this is not bound to a key.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.6 Letting Readline Type For You </H3>
@@ -11078,9 +11805,9 @@ By default, this is not bound to a key.
<P>
<DL COMPACT>
-<A NAME="IDX456"></A>
+<A NAME="IDX477"></A>
<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX457"></A>
+<DD><A NAME="IDX478"></A>
Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
Bash attempts completion treating the text as a variable (if the
@@ -11090,25 +11817,25 @@ command (including aliases and functions) in turn. If none
of these produces a match, filename completion is attempted.
<P>
-<A NAME="IDX458"></A>
+<A NAME="IDX479"></A>
<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX459"></A>
+<DD><A NAME="IDX480"></A>
List the possible completions of the text before point.
When displaying completions, Readline sets the number of columns used
for display to the value of <CODE>completion-display-width</CODE>, the value of
the environment variable <CODE>COLUMNS</CODE>, or the screen width, in that order.
<P>
-<A NAME="IDX460"></A>
+<A NAME="IDX481"></A>
<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX461"></A>
+<DD><A NAME="IDX482"></A>
Insert all completions of the text before point that would have
been generated by <CODE>possible-completions</CODE>.
<P>
-<A NAME="IDX462"></A>
+<A NAME="IDX483"></A>
<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX463"></A>
+<DD><A NAME="IDX484"></A>
Similar to <CODE>complete</CODE>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <CODE>menu-complete</CODE> steps through the list
@@ -11123,17 +11850,17 @@ This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
by default.
<P>
-<A NAME="IDX464"></A>
+<A NAME="IDX485"></A>
<DT><CODE>menu-complete-backward ()</CODE>
-<DD><A NAME="IDX465"></A>
+<DD><A NAME="IDX486"></A>
Identical to <CODE>menu-complete</CODE>, but moves backward through the list
of possible completions, as if <CODE>menu-complete</CODE> had been given a
negative argument.
<P>
-<A NAME="IDX466"></A>
+<A NAME="IDX487"></A>
<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX467"></A>
+<DD><A NAME="IDX488"></A>
Deletes the character under the cursor if not at the beginning or
end of the line (like <CODE>delete-char</CODE>).
If at the end of the line, behaves identically to
@@ -11141,64 +11868,64 @@ If at the end of the line, behaves identically to
This command is unbound by default.
<P>
-<A NAME="IDX468"></A>
+<A NAME="IDX489"></A>
<DT><CODE>complete-filename (M-/)</CODE>
-<DD><A NAME="IDX469"></A>
+<DD><A NAME="IDX490"></A>
Attempt filename completion on the text before point.
<P>
-<A NAME="IDX470"></A>
+<A NAME="IDX491"></A>
<DT><CODE>possible-filename-completions (C-x /)</CODE>
-<DD><A NAME="IDX471"></A>
+<DD><A NAME="IDX492"></A>
List the possible completions of the text before point,
treating it as a filename.
<P>
-<A NAME="IDX472"></A>
+<A NAME="IDX493"></A>
<DT><CODE>complete-username (M-~)</CODE>
-<DD><A NAME="IDX473"></A>
+<DD><A NAME="IDX494"></A>
Attempt completion on the text before point, treating
it as a username.
<P>
-<A NAME="IDX474"></A>
+<A NAME="IDX495"></A>
<DT><CODE>possible-username-completions (C-x ~)</CODE>
-<DD><A NAME="IDX475"></A>
+<DD><A NAME="IDX496"></A>
List the possible completions of the text before point,
treating it as a username.
<P>
-<A NAME="IDX476"></A>
+<A NAME="IDX497"></A>
<DT><CODE>complete-variable (M-$)</CODE>
-<DD><A NAME="IDX477"></A>
+<DD><A NAME="IDX498"></A>
Attempt completion on the text before point, treating
it as a shell variable.
<P>
-<A NAME="IDX478"></A>
+<A NAME="IDX499"></A>
<DT><CODE>possible-variable-completions (C-x $)</CODE>
-<DD><A NAME="IDX479"></A>
+<DD><A NAME="IDX500"></A>
List the possible completions of the text before point,
treating it as a shell variable.
<P>
-<A NAME="IDX480"></A>
+<A NAME="IDX501"></A>
<DT><CODE>complete-hostname (M-@)</CODE>
-<DD><A NAME="IDX481"></A>
+<DD><A NAME="IDX502"></A>
Attempt completion on the text before point, treating
it as a hostname.
<P>
-<A NAME="IDX482"></A>
+<A NAME="IDX503"></A>
<DT><CODE>possible-hostname-completions (C-x @)</CODE>
-<DD><A NAME="IDX483"></A>
+<DD><A NAME="IDX504"></A>
List the possible completions of the text before point,
treating it as a hostname.
<P>
-<A NAME="IDX484"></A>
+<A NAME="IDX505"></A>
<DT><CODE>complete-command (M-!)</CODE>
-<DD><A NAME="IDX485"></A>
+<DD><A NAME="IDX506"></A>
Attempt completion on the text before point, treating
it as a command name. Command completion attempts to
match the text against aliases, reserved words, shell
@@ -11206,32 +11933,32 @@ functions, shell builtins, and finally executable filenames,
in that order.
<P>
-<A NAME="IDX486"></A>
+<A NAME="IDX507"></A>
<DT><CODE>possible-command-completions (C-x !)</CODE>
-<DD><A NAME="IDX487"></A>
+<DD><A NAME="IDX508"></A>
List the possible completions of the text before point,
treating it as a command name.
<P>
-<A NAME="IDX488"></A>
+<A NAME="IDX509"></A>
<DT><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX489"></A>
+<DD><A NAME="IDX510"></A>
Attempt completion on the text before point, comparing
the text against lines from the history list for possible
completion matches.
<P>
-<A NAME="IDX490"></A>
+<A NAME="IDX511"></A>
<DT><CODE>dabbrev-expand ()</CODE>
-<DD><A NAME="IDX491"></A>
+<DD><A NAME="IDX512"></A>
Attempt menu completion on the text before point, comparing
the text against lines from the history list for possible
completion matches.
<P>
-<A NAME="IDX492"></A>
+<A NAME="IDX513"></A>
<DT><CODE>complete-into-braces (M-{)</CODE>
-<DD><A NAME="IDX493"></A>
+<DD><A NAME="IDX514"></A>
Perform filename completion and insert the list of possible completions
enclosed within braces so the list is available to the shell
(see section <A HREF="bashref.html#SEC30">3.5.1 Brace Expansion</A>).
@@ -11251,33 +11978,40 @@ enclosed within braces so the list is available to the shell
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.7 Keyboard Macros </H3>
<!--docid::SEC115::-->
<DL COMPACT>
-<A NAME="IDX494"></A>
+<A NAME="IDX515"></A>
<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX495"></A>
+<DD><A NAME="IDX516"></A>
Begin saving the characters typed into the current keyboard macro.
<P>
-<A NAME="IDX496"></A>
+<A NAME="IDX517"></A>
<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX497"></A>
+<DD><A NAME="IDX518"></A>
Stop saving the characters typed into the current keyboard macro
and save the definition.
<P>
-<A NAME="IDX498"></A>
+<A NAME="IDX519"></A>
<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX499"></A>
+<DD><A NAME="IDX520"></A>
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
<P>
+<A NAME="IDX521"></A>
+<DT><CODE>print-last-kbd-macro ()</CODE>
+<DD><A NAME="IDX522"></A>
+Print the last keboard macro defined in a format suitable for the
+<VAR>inputrc</VAR> file.
+<P>
+
</DL>
<P>
@@ -11292,94 +12026,94 @@ in the macro appear as if typed at the keyboard.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC117"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 8.4.8 Some Miscellaneous Commands </H3>
<!--docid::SEC116::-->
<DL COMPACT>
-<A NAME="IDX500"></A>
+<A NAME="IDX523"></A>
<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX501"></A>
+<DD><A NAME="IDX524"></A>
Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
any bindings or variable assignments found there.
<P>
-<A NAME="IDX502"></A>
+<A NAME="IDX525"></A>
<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX503"></A>
+<DD><A NAME="IDX526"></A>
Abort the current editing command and
ring the terminal's bell (subject to the setting of
<CODE>bell-style</CODE>).
<P>
-<A NAME="IDX504"></A>
+<A NAME="IDX527"></A>
<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX505"></A>
+<DD><A NAME="IDX528"></A>
If the metafied character <VAR>x</VAR> is lowercase, run the command
that is bound to the corresponding uppercase character.
<P>
-<A NAME="IDX506"></A>
+<A NAME="IDX529"></A>
<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX507"></A>
+<DD><A NAME="IDX530"></A>
Metafy the next character typed. This is for keyboards
without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
<KBD>M-f</KBD>.
<P>
-<A NAME="IDX508"></A>
+<A NAME="IDX531"></A>
<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX509"></A>
+<DD><A NAME="IDX532"></A>
Incremental undo, separately remembered for each line.
<P>
-<A NAME="IDX510"></A>
+<A NAME="IDX533"></A>
<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX511"></A>
+<DD><A NAME="IDX534"></A>
Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
command enough times to get back to the beginning.
<P>
-<A NAME="IDX512"></A>
+<A NAME="IDX535"></A>
<DT><CODE>tilde-expand (M-&#38;)</CODE>
-<DD><A NAME="IDX513"></A>
+<DD><A NAME="IDX536"></A>
Perform tilde expansion on the current word.
<P>
-<A NAME="IDX514"></A>
+<A NAME="IDX537"></A>
<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX515"></A>
+<DD><A NAME="IDX538"></A>
Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
<P>
-<A NAME="IDX516"></A>
+<A NAME="IDX539"></A>
<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX517"></A>
+<DD><A NAME="IDX540"></A>
Swap the point with the mark. The current cursor position is set to
the saved position, and the old cursor position is saved as the mark.
<P>
-<A NAME="IDX518"></A>
+<A NAME="IDX541"></A>
<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX519"></A>
+<DD><A NAME="IDX542"></A>
A character is read and point is moved to the next occurrence of that
character. A negative count searches for previous occurrences.
<P>
-<A NAME="IDX520"></A>
+<A NAME="IDX543"></A>
<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX521"></A>
+<DD><A NAME="IDX544"></A>
A character is read and point is moved to the previous occurrence
of that character. A negative count searches for subsequent
occurrences.
<P>
-<A NAME="IDX522"></A>
+<A NAME="IDX545"></A>
<DT><CODE>skip-csi-sequence ()</CODE>
-<DD><A NAME="IDX523"></A>
+<DD><A NAME="IDX546"></A>
Read enough characters to consume a multi-key sequence such as those
defined for keys like Home and End. Such sequences begin with a
Control Sequence Indicator (CSI), usually ESC-[. If this sequence is
@@ -11389,9 +12123,9 @@ stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
<P>
-<A NAME="IDX524"></A>
+<A NAME="IDX547"></A>
<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX525"></A>
+<DD><A NAME="IDX548"></A>
Without a numeric argument, the value of the <CODE>comment-begin</CODE>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -11406,115 +12140,115 @@ If a numeric argument causes the comment character to be removed, the line
will be executed by the shell.
<P>
-<A NAME="IDX526"></A>
+<A NAME="IDX549"></A>
<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX527"></A>
+<DD><A NAME="IDX550"></A>
Print all of the functions and their key bindings to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX528"></A>
+<A NAME="IDX551"></A>
<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX529"></A>
+<DD><A NAME="IDX552"></A>
Print all of the settable variables and their values to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX530"></A>
+<A NAME="IDX553"></A>
<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX531"></A>
+<DD><A NAME="IDX554"></A>
Print all of the Readline key sequences bound to macros and the
strings they output. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <VAR>inputrc</VAR> file. This command is unbound by default.
<P>
-<A NAME="IDX532"></A>
+<A NAME="IDX555"></A>
<DT><CODE>glob-complete-word (M-g)</CODE>
-<DD><A NAME="IDX533"></A>
+<DD><A NAME="IDX556"></A>
The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
generate a list of matching file names for possible completions.
<P>
-<A NAME="IDX534"></A>
+<A NAME="IDX557"></A>
<DT><CODE>glob-expand-word (C-x *)</CODE>
-<DD><A NAME="IDX535"></A>
+<DD><A NAME="IDX558"></A>
The word before point is treated as a pattern for pathname expansion,
and the list of matching file names is inserted, replacing the word.
If a numeric argument is supplied, a <SAMP>`*'</SAMP> is appended before
pathname expansion.
<P>
-<A NAME="IDX536"></A>
+<A NAME="IDX559"></A>
<DT><CODE>glob-list-expansions (C-x g)</CODE>
-<DD><A NAME="IDX537"></A>
+<DD><A NAME="IDX560"></A>
The list of expansions that would have been generated by
<CODE>glob-expand-word</CODE> is displayed, and the line is redrawn.
If a numeric argument is supplied, a <SAMP>`*'</SAMP> is appended before
pathname expansion.
<P>
-<A NAME="IDX538"></A>
+<A NAME="IDX561"></A>
<DT><CODE>display-shell-version (C-x C-v)</CODE>
-<DD><A NAME="IDX539"></A>
+<DD><A NAME="IDX562"></A>
Display version information about the current instance of Bash.
<P>
-<A NAME="IDX540"></A>
+<A NAME="IDX563"></A>
<DT><CODE>shell-expand-line (M-C-e)</CODE>
-<DD><A NAME="IDX541"></A>
+<DD><A NAME="IDX564"></A>
Expand the line as the shell does.
This performs alias and history expansion as well as all of the shell
word expansions (see section <A HREF="bashref.html#SEC29">3.5 Shell Expansions</A>).
<P>
-<A NAME="IDX542"></A>
+<A NAME="IDX565"></A>
<DT><CODE>history-expand-line (M-^)</CODE>
-<DD><A NAME="IDX543"></A>
+<DD><A NAME="IDX566"></A>
Perform history expansion on the current line.
<P>
-<A NAME="IDX544"></A>
+<A NAME="IDX567"></A>
<DT><CODE>magic-space ()</CODE>
-<DD><A NAME="IDX545"></A>
+<DD><A NAME="IDX568"></A>
Perform history expansion on the current line and insert a space
-(see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>).
+(see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>).
<P>
-<A NAME="IDX546"></A>
+<A NAME="IDX569"></A>
<DT><CODE>alias-expand-line ()</CODE>
-<DD><A NAME="IDX547"></A>
+<DD><A NAME="IDX570"></A>
Perform alias expansion on the current line (see section <A HREF="bashref.html#SEC85">6.6 Aliases</A>).
<P>
-<A NAME="IDX548"></A>
+<A NAME="IDX571"></A>
<DT><CODE>history-and-alias-expand-line ()</CODE>
-<DD><A NAME="IDX549"></A>
+<DD><A NAME="IDX572"></A>
Perform history and alias expansion on the current line.
<P>
-<A NAME="IDX550"></A>
+<A NAME="IDX573"></A>
<DT><CODE>insert-last-argument (M-. or M-_)</CODE>
-<DD><A NAME="IDX551"></A>
+<DD><A NAME="IDX574"></A>
A synonym for <CODE>yank-last-arg</CODE>.
<P>
-<A NAME="IDX552"></A>
+<A NAME="IDX575"></A>
<DT><CODE>operate-and-get-next (C-o)</CODE>
-<DD><A NAME="IDX553"></A>
+<DD><A NAME="IDX576"></A>
Accept the current line for execution and fetch the next line
relative to the current line from the history for editing. Any
argument is ignored.
<P>
-<A NAME="IDX554"></A>
+<A NAME="IDX577"></A>
<DT><CODE>edit-and-execute-command (C-xC-e)</CODE>
-<DD><A NAME="IDX555"></A>
+<DD><A NAME="IDX578"></A>
Invoke an editor on the current command line, and execute the result as shell
commands.
Bash attempts to invoke
@@ -11533,10 +12267,10 @@ as the editor, in that order.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.5 Readline vi Mode </H2>
@@ -11571,10 +12305,10 @@ so forth.
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.6 Programmable Completion </H2>
@@ -11645,10 +12379,11 @@ When the command or function is invoked, the <CODE>COMP_LINE</CODE>,
assigned values as described above (see section <A HREF="bashref.html#SEC68">5.2 Bash Variables</A>).
If a shell function is being invoked, the <CODE>COMP_WORDS</CODE> and
<CODE>COMP_CWORD</CODE> variables are also set.
-When the function or command is invoked, the first argument is the
+When the function or command is invoked, the first argument ($1) 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.
+second argument ($2) is the word being completed, and the third argument
+($3) 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.
@@ -11659,7 +12394,7 @@ The function may use any of the shell facilities, including the
<CODE>compgen</CODE> and <CODE>compopt</CODE> builtins described below
(see section <A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A>), to generate the matches.
It must put the possible completions in the <CODE>COMPREPLY</CODE> array
-variable.
+variable, one per array element.
</P><P>
Next, any command specified with the <SAMP>`-C'</SAMP> option is invoked
@@ -11736,9 +12471,9 @@ completion function would load completions dynamically:
<TABLE><tr><td>&nbsp;</td><td class=example><pre>_completion_loader()
{
- . "/etc/bash_completion.d/$1.sh" &#62;/dev/null 2&#62;&#38;1 &#38;&#38; return 124
+ . "/etc/bash_completion.d/$1.sh" &#62;/dev/null 2&#62;&#38;1 &#38;&#38; return 124
}
-complete -D -F _completion_loader
+complete -D -F _completion_loader -o bashdefault -o default
</pre></td></tr></table></P><P>
<A NAME="Programmable Completion Builtins"></A>
@@ -11747,25 +12482,26 @@ complete -D -F _completion_loader
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC118"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 8.7 Programmable Completion Builtins </H2>
<!--docid::SEC119::-->
<P>
-Two builtin commands are available to manipulate the programmable completion
-facilities.
+Three builtin commands are available to manipulate the programmable completion
+facilities: one to specify how the arguments to a particular command are to
+be completed, and two to modify the completion as it is happening.
</P><P>
<DL COMPACT>
<DT><CODE>compgen</CODE>
-<DD><A NAME="IDX556"></A>
+<DD><A NAME="IDX579"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compgen [<VAR>option</VAR>] [<VAR>word</VAR>]</CODE>
</pre></td></tr></table><P>
@@ -11791,7 +12527,7 @@ matches were generated.
</P><P>
<DT><CODE>complete</CODE>
-<DD><A NAME="IDX557"></A>
+<DD><A NAME="IDX580"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>complete [-abcdefgjksuv] [-o <VAR>comp-option</VAR>] [-DE] [-A <VAR>action</VAR>] [-G <VAR>globpat</VAR>] [-W <VAR>wordlist</VAR>]
[-F <VAR>function</VAR>] [-C <VAR>command</VAR>] [-X <VAR>filterpat</VAR>]
[-P <VAR>prefix</VAR>] [-S <VAR>suffix</VAR>] <VAR>name</VAR> [<VAR>name</VAR> <small>...</small>]</CODE>
@@ -11856,6 +12592,11 @@ This option is intended to be used with shell functions specified
with <SAMP>`-F'</SAMP>.
<P>
+<DT><CODE>noquote</CODE>
+<DD>Tell Readline not to quote the completed words if they are filenames
+(quoting filenames is the default).
+<P>
+
<DT><CODE>nospace</CODE>
<DD>Tell Readline not to append a space (the default) to words completed at
the end of the line.
@@ -11984,6 +12725,10 @@ used as the possible completions.
<DT><CODE>-F <VAR>function</VAR></CODE>
<DD>The shell function <VAR>function</VAR> is executed in the current shell
environment.
+When it is executed, $1 is the name of the command whose arguments are
+being completed, $2 is the word being completed, and $3 is the word
+preceding the word being completed, as described above
+(see section <A HREF="bashref.html#SEC118">8.6 Programmable Completion</A>).
When it finishes, the possible completions are retrieved from the value
of the <CODE>COMPREPLY</CODE> array variable.
<P>
@@ -12029,7 +12774,7 @@ an error occurs adding a completion specification.
</P><P>
<DT><CODE>compopt</CODE>
-<DD><A NAME="IDX558"></A>
+<DD><A NAME="IDX581"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>compopt</CODE> [-o <VAR>option</VAR>] [-DE] [+o <VAR>option</VAR>] [<VAR>name</VAR>]
</pre></td></tr></table>Modify completion options for each <VAR>name</VAR> according to the
<VAR>option</VAR>s, or for the currently-executing completion if no <VAR>name</VAR>s
@@ -12057,25 +12802,164 @@ specification exists, or an output error occurs.
</DL>
<P>
-<A NAME="IDX559"></A>
-</P><P>
-
-<A NAME="Using History Interactively"></A>
+<A NAME="A Programmable Completion Example"></A>
<HR SIZE="6">
<A NAME="SEC120"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC119"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC96"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
+</TR></TABLE>
+<H2> 8.8 A Programmable Completion Example </H2>
+<!--docid::SEC120::-->
+<P>
+
+The most common way to obtain additional completion functionality beyond
+the default actions <CODE>complete</CODE> and <CODE>compgen</CODE> provide is to use
+a shell function and bind it to a particular command using <CODE>complete -F</CODE>.
+</P><P>
+
+The following function provides completions for the <CODE>cd</CODE> builtin.
+It is a reasonably good example of what shell functions must do when
+used for completion. This function uses the word passsed as <CODE>$2</CODE>
+to determine the directory name to complete. You can also use the
+<CODE>COMP_WORDS</CODE> array variable; the current word is indexed by the
+<CODE>COMP_CWORD</CODE> variable.
+</P><P>
+
+The function relies on the <CODE>complete</CODE> and <CODE>compgen</CODE> builtins
+to do much of the work, adding only the things that the Bash <CODE>cd</CODE>
+does beyond accepting basic directory names:
+tilde expansion (see section <A HREF="bashref.html#SEC31">3.5.2 Tilde Expansion</A>),
+searching directories in <VAR>$CDPATH</VAR>, which is described above
+(see section <A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A>),
+and basic support for the <CODE>cdable_vars</CODE> shell option
+(see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>).
+<CODE>_comp_cd</CODE> modifies the value of <VAR>IFS</VAR> so that it contains only
+a newline to accommodate file names containing spaces and tabs --
+<CODE>compgen</CODE> prints the possible completions it generates one per line.
+</P><P>
+
+Possible completions go into the <VAR>COMPREPLY</VAR> array variable, one
+completion per array element. The programmable completion system retrieves
+the completions from there when the function returns.
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre># A completion function for the cd builtin
+# based on the cd completion function from the bash_completion package
+_comp_cd()
+{
+ local IFS=$' \t\n' # normalize IFS
+ local cur _skipdot _cdpath
+ local i j k
+
+ # Tilde expansion, with side effect of expanding tilde to full pathname
+ case "$2" in
+ \~*) eval cur="$2" ;;
+ *) cur=$2 ;;
+ esac
+
+ # no cdpath or absolute pathname -- straight directory completion
+ if [[ -z "${CDPATH:-}" ]] || [[ "$cur" == @(./*|../*|/*) ]]; then
+ # compgen prints paths one per line; could also use while loop
+ IFS=$'\n'
+ COMPREPLY=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ # CDPATH+directories in the current directory if not in CDPATH
+ else
+ IFS=$'\n'
+ _skipdot=false
+ # preprocess CDPATH to convert null directory names to .
+ _cdpath=${CDPATH/#:/.:}
+ _cdpath=${_cdpath//::/:.:}
+ _cdpath=${_cdpath/%:/:.}
+ for i in ${_cdpath//:/$'\n'}; do
+ if [[ $i -ef . ]]; then _skipdot=true; fi
+ k="${#COMPREPLY[@]}"
+ for j in $( compgen -d -- "$i/$cur" ); do
+ COMPREPLY[k++]=${j#$i/} # cut off directory
+ done
+ done
+ $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ fi
+
+ # variable names if appropriate shell option set and no completions
+ if shopt -q cdable_vars &#38;&#38; [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+ COMPREPLY=( $(compgen -v -- "$cur") )
+ fi
+
+ return 0
+}
+</pre></td></tr></table></P><P>
+
+We install the completion function using the <SAMP>`-F'</SAMP> option to
+<CODE>complete</CODE>:
+</P><P>
+
+<TABLE><tr><td>&nbsp;</td><td class=example><pre># Tell readline to quote appropriate and append slashes to directories;
+# use the bash default completion for other arguments
+complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
+</pre></td></tr></table></P><P>
+
+Since we'd like Bash and Readline to take care of some
+of the other details for us, we use several other options to tell Bash
+and Readline what to do. The <SAMP>`-o filenames'</SAMP> option tells Readline
+that the possible completions should be treated as filenames, and quoted
+appropriately. That option will also cause Readline to append a slash to
+filenames it can determine are directories (which is why we might want to
+extend <CODE>_comp_cd</CODE> to append a slash if we're using directories found
+via <VAR>CDPATH</VAR>: Readline can't tell those completions are directories).
+The <SAMP>`-o nospace'</SAMP> option tells Readline to not append a space
+character to the directory name, in case we want to append to it.
+The <SAMP>`-o bashdefault'</SAMP> option brings in the rest of the "Bash default"
+completions -- possible completion that Bash adds to the default Readline
+set. These include things like command name completion, variable completion
+for words beginning with <SAMP>`{'</SAMP>, completions containing pathname
+expansion patterns (see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>), and so on.
+</P><P>
+
+Once installed using <CODE>complete</CODE>, <CODE>_comp_cd</CODE> will be called every
+time we attempt word completion for a <CODE>cd</CODE> command.
+</P><P>
+
+Many more examples -- an extensive collection of completions for most of
+the common GNU, Unix, and Linux commands -- are available as part of the
+bash_completion project. This is installed by default on many GNU/Linux
+distributions. Originally written by Ian Macdonald, the project now lives
+at <A HREF="http://bash-completion.alioth.debian.org/">http://bash-completion.alioth.debian.org/</A>. There are ports for
+other systems such as Solaris and Mac OS X.
+</P><P>
+
+An older version of the bash_completion package is distributed with bash
+in the <TT>`examples/complete'</TT> subdirectory.
+</P><P>
+
+<A NAME="IDX582"></A>
+</P><P>
+
+<A NAME="Using History Interactively"></A>
+<HR SIZE="6">
+<A NAME="SEC121"></A>
+<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 9. Using History Interactively </H1>
-<!--docid::SEC120::-->
+<!--docid::SEC121::-->
<P>
This chapter describes how to use the GNU History Library
@@ -12086,30 +12970,30 @@ see the GNU Readline Library Manual.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How Bash lets you manipulate your command
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How Bash lets you manipulate your command
history.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC122">9.2 Bash History Builtins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The Bash builtin commands that manipulate
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The Bash builtin commands that manipulate
the command history.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC123">9.3 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What it feels like using History as a user.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC124">9.3 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What it feels like using History as a user.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<A NAME="Bash History Facilities"></A>
<HR SIZE="6">
-<A NAME="SEC121"></A>
+<A NAME="SEC122"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.1 Bash History Facilities </H2>
-<!--docid::SEC121::-->
+<!--docid::SEC122::-->
<P>
When the <SAMP>`-o history'</SAMP> option to the <CODE>set</CODE> builtin
@@ -12132,17 +13016,18 @@ file named by the <CODE>HISTFILE</CODE> variable (default <TT>`~/.bash_history'<
The file named by the value of <CODE>HISTFILE</CODE> is truncated, if
necessary, to contain no more than the number of lines specified by
the value of the <CODE>HISTFILESIZE</CODE> variable.
-When an interactive shell exits, the last
+When a shell with history enabled exits, the last
<CODE>$HISTSIZE</CODE> lines are copied from the history list to the file
named by <CODE>$HISTFILE</CODE>.
If the <CODE>histappend</CODE> shell option is set (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>),
the lines are appended to the history file,
otherwise the history file is overwritten.
If <CODE>HISTFILE</CODE>
-is unset, or if the history file is unwritable, the history is
-not saved. After saving the history, the history file is truncated
-to contain no more than <CODE>$HISTFILESIZE</CODE>
-lines. If <CODE>HISTFILESIZE</CODE> is not set, no truncation is performed.
+is unset, or if the history file is unwritable, the history is not saved.
+After saving the history, the history file is truncated
+to contain no more than <CODE>$HISTFILESIZE</CODE> lines.
+If <CODE>HISTFILESIZE</CODE> is unset, or set to null, a non-numeric value, or
+a numeric value less than zero, the history file is not truncated.
</P><P>
If the <CODE>HISTTIMEFORMAT</CODE> is set, the time stamp information
@@ -12179,20 +13064,20 @@ See section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>, for a de
<A NAME="Bash History Builtins"></A>
<HR SIZE="6">
-<A NAME="SEC122"></A>
+<A NAME="SEC123"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.2 Bash History Builtins </H2>
-<!--docid::SEC122::-->
+<!--docid::SEC123::-->
<P>
Bash provides two builtin commands which manipulate the
@@ -12202,13 +13087,15 @@ history list and history file.
<DL COMPACT>
<DT><CODE>fc</CODE>
-<DD><A NAME="IDX560"></A>
+<DD><A NAME="IDX583"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>fc [-e <VAR>ename</VAR>] [-lnr] [<VAR>first</VAR>] [<VAR>last</VAR>]</CODE>
<CODE>fc -s [<VAR>pat</VAR>=<VAR>rep</VAR>] [<VAR>command</VAR>]</CODE>
</pre></td></tr></table><P>
-Fix Command. In the first form, a range of commands from <VAR>first</VAR> to
-<VAR>last</VAR> is selected from the history list. Both <VAR>first</VAR> and
+The first form selects a range of commands from <VAR>first</VAR> to
+<VAR>last</VAR> from the history list and displays or edits and re-executes
+them.
+Both <VAR>first</VAR> and
<VAR>last</VAR> may be specified as a string (to locate the most recent
command beginning with that string) or as a number (an index into the
history list, where a negative number is used as an offset from the
@@ -12228,6 +13115,7 @@ When editing is complete, the edited commands are echoed and executed.
In the second form, <VAR>command</VAR> is re-executed after each instance
of <VAR>pat</VAR> in the selected command is replaced by <VAR>rep</VAR>.
+<VAR>command</VAR> is intepreted the same as <VAR>first</VAR> above.
</P><P>
A useful alias to use with the <CODE>fc</CODE> command is <CODE>r='fc -s'</CODE>, so
@@ -12236,7 +13124,7 @@ and typing <SAMP>`r'</SAMP> re-executes the last command (see section <A HREF="b
</P><P>
<DT><CODE>history</CODE>
-<DD><A NAME="IDX561"></A>
+<DD><A NAME="IDX584"></A>
<TABLE><tr><td>&nbsp;</td><td class=example><pre>history [<VAR>n</VAR>]
history -c
history -d <VAR>offset</VAR>
@@ -12282,12 +13170,12 @@ file since the beginning of the current Bash session.
<P>
<DT><CODE>-r</CODE>
-<DD>Read the current history file and append its contents to
+<DD>Read the history file and append its contents to
the history list.
<P>
<DT><CODE>-w</CODE>
-<DD>Write out the current history to the history file.
+<DD>Write out the current history list to the history file.
<P>
<DT><CODE>-p</CODE>
@@ -12314,20 +13202,20 @@ the value of the <CODE>HISTFILE</CODE> variable is used.
<A NAME="History Interaction"></A>
<HR SIZE="6">
-<A NAME="SEC123"></A>
+<A NAME="SEC124"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC122"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC120"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC121"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 9.3 History Expansion </H2>
-<!--docid::SEC123::-->
+<!--docid::SEC124::-->
<P>
The History library provides a history expansion feature that is similar
@@ -12383,35 +13271,35 @@ writing the history file.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC124">9.3.1 Event Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify which history line to use.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC125">9.3.2 Word Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying which words are of interest.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC126">9.3.3 Modifiers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modifying the results of substitution.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC125">9.3.1 Event Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify which history line to use.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC126">9.3.2 Word Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying which words are of interest.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC127">9.3.3 Modifiers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modifying the results of substitution.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<A NAME="Event Designators"></A>
<HR SIZE="6">
-<A NAME="SEC124"></A>
+<A NAME="SEC125"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 9.3.1 Event Designators </H3>
-<!--docid::SEC124::-->
+<!--docid::SEC125::-->
<P>
An event designator is a reference to a command line entry in the
history list.
Unless the reference is absolute, events are relative to the current
position in the history list.
-<A NAME="IDX562"></A>
+<A NAME="IDX585"></A>
</P><P>
<DL COMPACT>
@@ -12464,20 +13352,20 @@ with <VAR>string2</VAR>. Equivalent to
<A NAME="Word Designators"></A>
<HR SIZE="6">
-<A NAME="SEC125"></A>
+<A NAME="SEC126"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 9.3.2 Word Designators </H3>
-<!--docid::SEC125::-->
+<!--docid::SEC126::-->
<P>
Word designators are used to select desired words from the event.
@@ -12559,20 +13447,20 @@ previous command is used as the event.
<A NAME="Modifiers"></A>
<HR SIZE="6">
-<A NAME="SEC126"></A>
+<A NAME="SEC127"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC125"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC123"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC124"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H3> 9.3.3 Modifiers </H3>
-<!--docid::SEC126::-->
+<!--docid::SEC127::-->
<P>
After the optional word designator, you can add a sequence of one or more
@@ -12641,20 +13529,20 @@ or with <SAMP>`&#38;'</SAMP>.
<A NAME="Installing Bash"></A>
<HR SIZE="6">
-<A NAME="SEC127"></A>
+<A NAME="SEC128"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC126"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC4"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> 10. Installing Bash </H1>
-<!--docid::SEC127::-->
+<!--docid::SEC128::-->
<P>
This chapter provides basic instructions for installing Bash on
@@ -12666,38 +13554,38 @@ MS-DOS, OS/2, and Windows platforms.
</P><P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC128">10.1 Basic Installation</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Installation instructions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC129">10.2 Compilers and Options</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to set special options for various
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Installation instructions.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC130">10.2 Compilers and Options</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to set special options for various
systems.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC130">10.3 Compiling For Multiple Architectures</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to compile Bash for more
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC131">10.3 Compiling For Multiple Architectures</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to compile Bash for more
than one kind of system from
the same source tree.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC131">10.4 Installation Names</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to set the various paths used by the installation.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC132">10.5 Specifying the System Type</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to configure Bash for a particular system.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC133">10.6 Sharing Defaults</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to share default configuration values among GNU
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC132">10.4 Installation Names</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to set the various paths used by the installation.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC133">10.5 Specifying the System Type</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to configure Bash for a particular system.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC134">10.6 Sharing Defaults</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to share default configuration values among GNU
programs.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC134">10.7 Operation Controls</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Options recognized by the configuration program.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC135">10.8 Optional Features</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to enable and disable optional features when
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC135">10.7 Operation Controls</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Options recognized by the configuration program.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC136">10.8 Optional Features</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to enable and disable optional features when
building Bash.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<A NAME="Basic Installation"></A>
<HR SIZE="6">
-<A NAME="SEC128"></A>
+<A NAME="SEC129"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.1 Basic Installation </H2>
-<!--docid::SEC128::-->
+<!--docid::SEC129::-->
<P>
These are installation instructions for Bash.
@@ -12771,9 +13659,9 @@ to do them, and mail diffs or instructions to
considered for the next release.
</P><P>
-The file <TT>`configure.in'</TT> is used to create <CODE>configure</CODE>
+The file <TT>`configure.ac'</TT> is used to create <CODE>configure</CODE>
by a program called Autoconf. You only need
-<TT>`configure.in'</TT> if you want to change it or regenerate
+<TT>`configure.ac'</TT> if you want to change it or regenerate
<CODE>configure</CODE> using a newer version of Autoconf. If
you do this, make sure you are using Autoconf version 2.50 or
newer.
@@ -12787,20 +13675,20 @@ a different kind of computer), type <SAMP>`make distclean'</SAMP>.
<A NAME="Compilers and Options"></A>
<HR SIZE="6">
-<A NAME="SEC129"></A>
+<A NAME="SEC130"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.2 Compilers and Options </H2>
-<!--docid::SEC129::-->
+<!--docid::SEC130::-->
<P>
Some systems require unusual options for compilation or linking
@@ -12825,20 +13713,20 @@ is available.
<A NAME="Compiling For Multiple Architectures"></A>
<HR SIZE="6">
-<A NAME="SEC130"></A>
+<A NAME="SEC131"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC129"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.3 Compiling For Multiple Architectures </H2>
-<!--docid::SEC130::-->
+<!--docid::SEC131::-->
<P>
You can compile Bash for more than one kind of computer at the
@@ -12877,20 +13765,20 @@ directories for other architectures.
<A NAME="Installation Names"></A>
<HR SIZE="6">
-<A NAME="SEC131"></A>
+<A NAME="SEC132"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC130"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.4 Installation Names </H2>
-<!--docid::SEC131::-->
+<!--docid::SEC132::-->
<P>
By default, <SAMP>`make install'</SAMP> will install into
@@ -12911,20 +13799,20 @@ Documentation and other data files will still use the regular prefix.
<A NAME="Specifying the System Type"></A>
<HR SIZE="6">
-<A NAME="SEC132"></A>
+<A NAME="SEC133"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC131"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.5 Specifying the System Type </H2>
-<!--docid::SEC132::-->
+<!--docid::SEC133::-->
<P>
There may be some features <CODE>configure</CODE> can not figure out
@@ -12943,20 +13831,20 @@ values of each field.
<A NAME="Sharing Defaults"></A>
<HR SIZE="6">
-<A NAME="SEC133"></A>
+<A NAME="SEC134"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC132"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.6 Sharing Defaults </H2>
-<!--docid::SEC133::-->
+<!--docid::SEC134::-->
<P>
If you want to set default values for <CODE>configure</CODE> scripts to
@@ -12972,20 +13860,20 @@ but not all <CODE>configure</CODE> scripts do.
<A NAME="Operation Controls"></A>
<HR SIZE="6">
-<A NAME="SEC134"></A>
+<A NAME="SEC135"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC133"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.7 Operation Controls </H2>
-<!--docid::SEC134::-->
+<!--docid::SEC135::-->
<P>
<CODE>configure</CODE> recognizes the following options to control how it
@@ -13028,20 +13916,20 @@ options. <SAMP>`configure --help'</SAMP> prints the complete list.
<A NAME="Optional Features"></A>
<HR SIZE="6">
-<A NAME="SEC135"></A>
+<A NAME="SEC136"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC134"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> 10.8 Optional Features </H2>
-<!--docid::SEC135::-->
+<!--docid::SEC136::-->
<P>
The Bash <CODE>configure</CODE> has a number of <SAMP>`--enable-<VAR>feature</VAR>'</SAMP>
@@ -13139,7 +14027,8 @@ the following options, but it is processed first, so individual
options may be enabled using <SAMP>`enable-<VAR>feature</VAR>'</SAMP>.
</P><P>
-All of the following options except for <SAMP>`disabled-builtins'</SAMP> and
+All of the following options except for <SAMP>`disabled-builtins'</SAMP>,
+<SAMP>`directpand-default'</SAMP>, and
<SAMP>`xpg-echo-default'</SAMP> are
enabled by default, unless the operating system does not provide the
necessary support.
@@ -13164,7 +14053,7 @@ that behaves like the C language <CODE>for</CODE> statement
<DT><CODE>--enable-bang-history</CODE>
<DD>Include support for <CODE>csh</CODE>-like history substitution
-(see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>).
+(see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>).
<P>
<DT><CODE>--enable-brace-expansion</CODE>
@@ -13210,6 +14099,12 @@ This allows pipelines as well as shell builtins and functions to be timed.
<DD>Include support for the bash debugger (distributed separately).
<P>
+<DT><CODE>--enable-direxpand-default</CODE>
+<DD>Cause the <CODE>direxpand</CODE> shell option (see section <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A>)
+to be enabled by default when the shell starts.
+It is normally disabled by default.
+<P>
+
<DT><CODE>--enable-directory-stack</CODE>
<DD>Include support for a <CODE>csh</CODE>-like directory stack and the
<CODE>pushd</CODE>, <CODE>popd</CODE>, and <CODE>dirs</CODE> builtins
@@ -13238,6 +14133,13 @@ above under <A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A>.
above under <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A> to be enabled.
<P>
+<DT><CODE>--enable-glob-asciirange-default</CODE>
+<DD>Set the default value of the <VAR>globasciiranges</VAR> shell option described
+above under <A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A> to be enabled.
+This controls the behavior of character ranges when used in pattern matching
+bracket expressions.
+<P>
+
<DT><CODE>--enable-help-builtin</CODE>
<DD>Include the <CODE>help</CODE> builtin, which displays help on shell builtins and
variables (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>).
@@ -13245,7 +14147,7 @@ variables (see section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A
<DT><CODE>--enable-history</CODE>
<DD>Include command history and the <CODE>fc</CODE> and <CODE>history</CODE>
-builtin commands (see section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>).
+builtin commands (see section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>).
<P>
<DT><CODE>--enable-job-control</CODE>
@@ -13327,8 +14229,6 @@ which makes the Bash <CODE>echo</CODE> behave more like the version specified in
the Single Unix Specification, version 3.
See section <A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A>, for a description of the escape sequences that
<CODE>echo</CODE> recognizes.
-<P>
-
</DL>
<P>
@@ -13343,20 +14243,20 @@ information about its effect.
<A NAME="Reporting Bugs"></A>
<HR SIZE="6">
-<A NAME="SEC136"></A>
+<A NAME="SEC137"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC135"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC127"> &lt;&lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC128"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> A. Reporting Bugs </H1>
-<!--docid::SEC136::-->
+<!--docid::SEC137::-->
<P>
Please report all bugs you find in Bash.
@@ -13396,25 +14296,25 @@ the template it provides for filing a bug report.
</P><P>
Please send all reports concerning this manual to
-<A HREF="mailto:chet.ramey@case.edu">chet.ramey@case.edu</A>.
+<A HREF="mailto:bug-bash@gnu.org">bug-bash@gnu.org</A>.
</P><P>
<A NAME="Major Differences From The Bourne Shell"></A>
<HR SIZE="6">
-<A NAME="SEC137"></A>
+<A NAME="SEC138"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC136"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &lt;&lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> B. Major Differences From The Bourne Shell </H1>
-<!--docid::SEC137::-->
+<!--docid::SEC138::-->
<P>
Bash implements essentially the same grammar, parameter and
@@ -13453,7 +14353,7 @@ manipulate it.
<P>
<LI>
-Bash has command history (see section <A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>) and the
+Bash has command history (see section <A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>) and the
<CODE>history</CODE> and <CODE>fc</CODE> builtins to manipulate it.
The Bash history list maintains timestamp information and uses the
value of the <CODE>HISTTIMEFORMAT</CODE> variable to display it.
@@ -13461,7 +14361,7 @@ value of the <CODE>HISTTIMEFORMAT</CODE> variable to display it.
<LI>
Bash implements <CODE>csh</CODE>-like history expansion
-(see section <A HREF="bashref.html#SEC123">9.3 History Expansion</A>).
+(see section <A HREF="bashref.html#SEC124">9.3 History Expansion</A>).
<P>
<LI>
@@ -13574,7 +14474,7 @@ the value of <CODE>var</CODE>, is available (see section <A HREF="bashref.html#S
<P>
<LI>
-The expansion <CODE>${!<VAR>prefix}*</VAR></CODE> expansion, which expands to
+The expansion <CODE>${!<VAR>prefix</VAR>*}</CODE> expansion, which expands to
the names of all shell variables whose names begin with <VAR>prefix</VAR>,
is available (see section <A HREF="bashref.html#SEC32">3.5.3 Shell Parameter Expansion</A>).
<P>
@@ -13616,6 +14516,12 @@ This closes a longstanding shell security hole.
<P>
<LI>
+The filename expansion bracket expression code uses <SAMP>`!'</SAMP> and <SAMP>`^'</SAMP>
+to negate the set of characters between the brackets.
+The Bourne shell uses only <SAMP>`!'</SAMP>.
+<P>
+
+<LI>
Bash implements the full set of POSIX filename expansion operators,
including <VAR>character classes</VAR>, <VAR>equivalence classes</VAR>, and
<VAR>collating symbols</VAR> (see section <A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A>).
@@ -13778,7 +14684,7 @@ builtin (see section <A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A>).
<P>
<LI>
-The <SAMP>`-x'</SAMP> (<CODE>xtrace</CODE>) option displays commands other than
+The <SAMP>`-x'</SAMP> (<SAMP>`xtrace'</SAMP>) option displays commands other than
simple commands when performing an execution trace
(see section <A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A>).
<P>
@@ -13895,20 +14801,20 @@ More features unique to Bash may be found in <A HREF="bashref.html#SEC69">6. Bas
</P><P>
<HR SIZE="6">
-<A NAME="SEC138"></A>
+<A NAME="SEC139"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC137"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &gt;&gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> B.1 Implementation Differences From The SVR4.2 Shell </H2>
-<!--docid::SEC138::-->
+<!--docid::SEC139::-->
<P>
Since Bash is a completely new implementation, it does not suffer from
@@ -13980,20 +14886,20 @@ The SVR4.2 shell behaves differently when invoked as <CODE>jsh</CODE>
<A NAME="GNU Free Documentation License"></A>
<HR SIZE="6">
-<A NAME="SEC139"></A>
+<A NAME="SEC140"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC138"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &lt;&lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &lt;&lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &gt;&gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &gt;&gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> C. GNU Free Documentation License </H1>
-<!--docid::SEC139::-->
+<!--docid::SEC140::-->
<P>
<center>
@@ -14530,9 +15436,9 @@ provided the MMC is eligible for relicensing.
</OL>
<P>
-<A NAME="SEC140"></A>
+<A NAME="SEC141"></A>
<H2> ADDENDUM: How to use this License for your documents </H2>
-<!--docid::SEC140::-->
+<!--docid::SEC141::-->
<P>
To use this License in a document you have written, include a copy of
@@ -14571,49 +15477,49 @@ to permit their use in free software.
<A NAME="Indexes"></A>
<HR SIZE="6">
-<A NAME="SEC141"></A>
+<A NAME="SEC142"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC139"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC140"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1> D. Indexes </H1>
-<!--docid::SEC141::-->
+<!--docid::SEC142::-->
<P>
<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC142">D.1 Index of Shell Builtin Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash builtin commands.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC143">D.2 Index of Shell Reserved Words</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash reserved words.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC144">D.3 Parameter and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Quick reference helps you find the
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC143">D.1 Index of Shell Builtin Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash builtin commands.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC144">D.2 Index of Shell Reserved Words</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of Bash reserved words.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC145">D.3 Parameter and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Quick reference helps you find the
variable you want.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC145">D.4 Function Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of bindable Readline functions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC146">D.5 Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">General index for concepts described in
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC146">D.4 Function Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of bindable Readline functions.</TD></TR>
+<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="bashref.html#SEC147">D.5 Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">General index for concepts described in
this manual.</TD></TR>
</TABLE></BLOCKQUOTE>
<P>
<A NAME="Builtin Index"></A>
<HR SIZE="6">
-<A NAME="SEC142"></A>
+<A NAME="SEC143"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &gt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &gt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> D.1 Index of Shell Builtin Commands </H2>
-<!--docid::SEC142::-->
+<!--docid::SEC143::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#bt_." style="text-decoration:none"><b>.</b></A>
&nbsp;
<A HREF="bashref.html#bt_:" style="text-decoration:none"><b>:</b></A>
@@ -14662,105 +15568,105 @@ to permit their use in free software.
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_."></A>.</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX69"><CODE>.</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX78"><CODE>.</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_:"></A>:</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX68"><CODE>:</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX77"><CODE>:</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_["></A>[</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX84"><CODE>[</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX93"><CODE>[</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX89"><CODE>alias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX98"><CODE>alias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305"><CODE>bg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX90"><CODE>bind</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX70"><CODE>break</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX91"><CODE>builtin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318"><CODE>bg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX99"><CODE>bind</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX79"><CODE>break</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX100"><CODE>builtin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX92"><CODE>caller</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX71"><CODE>cd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX93"><CODE>command</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX556"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX557"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX558"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX72"><CODE>continue</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX101"><CODE>caller</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX80"><CODE>cd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX102"><CODE>command</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX579"><CODE>compgen</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX580"><CODE>complete</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX581"><CODE>compopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX81"><CODE>continue</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX94"><CODE>declare</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX302"><CODE>dirs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>disown</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX103"><CODE>declare</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315"><CODE>dirs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>disown</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX95"><CODE>echo</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX96"><CODE>enable</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX73"><CODE>eval</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX74"><CODE>exec</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX75"><CODE>exit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX76"><CODE>export</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX104"><CODE>echo</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX105"><CODE>enable</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX82"><CODE>eval</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX83"><CODE>exec</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX84"><CODE>exit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX85"><CODE>export</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX560"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.2 Bash History Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX583"><CODE>fc</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319"><CODE>fg</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX77"><CODE>getopts</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX86"><CODE>getopts</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX78"><CODE>hash</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX97"><CODE>help</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX561"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX87"><CODE>hash</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX106"><CODE>help</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX584"><CODE>history</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_J"></A>J</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>jobs</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>kill</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321"><CODE>kill</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_L"></A>L</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX98"><CODE>let</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX99"><CODE>local</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX100"><CODE>logout</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX107"><CODE>let</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX108"><CODE>local</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX109"><CODE>logout</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX101"><CODE>mapfile</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX110"><CODE>mapfile</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX303"><CODE>popd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX102"><CODE>printf</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304"><CODE>pushd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX79"><CODE>pwd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316"><CODE>popd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX111"><CODE>printf</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317"><CODE>pushd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC88">6.8.1 Directory Stack Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX88"><CODE>pwd</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX103"><CODE>read</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX104"><CODE>readarray</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX80"><CODE>readonly</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX81"><CODE>return</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX112"><CODE>read</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX113"><CODE>readarray</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX89"><CODE>readonly</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX90"><CODE>return</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX110"><CODE>set</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX82"><CODE>shift</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX111"><CODE>shopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX105"><CODE>source</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>suspend</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX119"><CODE>set</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC63">4.3.1 The Set Builtin</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX91"><CODE>shift</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX120"><CODE>shopt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC64">4.3.2 The Shopt Builtin</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX114"><CODE>source</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>suspend</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX83"><CODE>test</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX85"><CODE>times</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX86"><CODE>trap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX106"><CODE>type</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX107"><CODE>typeset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX92"><CODE>test</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX94"><CODE>times</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX95"><CODE>trap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX115"><CODE>type</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX116"><CODE>typeset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX108"><CODE>ulimit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX87"><CODE>umask</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX109"><CODE>unalias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX88"><CODE>unset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX117"><CODE>ulimit</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX96"><CODE>umask</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX118"><CODE>unalias</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC61">4.2 Bash Builtin Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX97"><CODE>unset</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC60">4.1 Bourne Shell Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="bt_W"></A>W</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>wait</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>wait</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC94">7.2 Job Control Builtins</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#bt_." style="text-decoration:none"><b>.</b></A>
&nbsp;
@@ -14809,20 +15715,20 @@ to permit their use in free software.
<A NAME="Reserved Word Index"></A>
<HR SIZE="6">
-<A NAME="SEC143"></A>
+<A NAME="SEC144"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> Up </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> D.2 Index of Shell Reserved Words </H2>
-<!--docid::SEC143::-->
+<!--docid::SEC144::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#rw_!" style="text-decoration:none"><b>!</b></A>
&nbsp;
<A HREF="bashref.html#rw_[" style="text-decoration:none"><b>[</b></A>
@@ -14938,20 +15844,20 @@ to permit their use in free software.
<A NAME="Variable Index"></A>
<HR SIZE="6">
-<A NAME="SEC144"></A>
+<A NAME="SEC145"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC143"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> Up </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC146"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC146"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> D.3 Parameter and Variable Index </H2>
-<!--docid::SEC144::-->
+<!--docid::SEC145::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A>
&nbsp;
<A HREF="bashref.html#vr_#" style="text-decoration:none"><b>#</b></A>
@@ -15014,302 +15920,317 @@ to permit their use in free software.
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_!"></A>!</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX58"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX59"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX64"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX65"><CODE>!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_#"></A>#</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX50"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX51"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX52"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX53"><CODE>#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_$"></A>$</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX56"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX57"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX61"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX62"><CODE>$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX66"><CODE>$!</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX54"><CODE>$#</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX63"><CODE>$$</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX48"><CODE>$*</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX60"><CODE>$-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX69"><CODE>$0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX57"><CODE>$?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX51"><CODE>$@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX72"><CODE>$_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_*"></A>*</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX46"><CODE>*</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX47"><CODE>*</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_-"></A>-</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX54"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX55"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX58"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX59"><CODE>-</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_0"></A>0</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX60"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX61"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX67"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX68"><CODE>0</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_?"></A>?</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX52"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX53"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX55"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX56"><CODE>?</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_@"></A>@</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX48"><CODE>@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX49"><CODE>@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX50"><CODE>@</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX62"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX63"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX70"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX71"><CODE>_</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>auto_resume</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX132"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX133"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX138"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX139"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX140"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX141"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX142"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX143"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX144"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX145"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX146"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX147"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX148"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX149"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX150"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX151"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX152"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX153"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX154"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX155"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX156"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX157"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX158"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX159"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX160"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX161"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX162"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX163"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX164"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX165"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX134"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX135"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX136"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX137"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX319"><CODE>bell-style</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX320"><CODE>bind-tty-special-chars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX141"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX142"><CODE>BASH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX147"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX148"><CODE>BASH_ALIASES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX149"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX150"><CODE>BASH_ARGC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX151"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX152"><CODE>BASH_ARGV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX153"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX154"><CODE>BASH_CMDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX155"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX156"><CODE>BASH_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX157"><CODE>BASH_COMPAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX158"><CODE>BASH_COMPAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX159"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX160"><CODE>BASH_ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX161"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX162"><CODE>BASH_EXECUTION_STRING</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX163"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX164"><CODE>BASH_LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX165"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX166"><CODE>BASH_REMATCH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX167"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX168"><CODE>BASH_SOURCE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX169"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX170"><CODE>BASH_SUBSHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX171"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX172"><CODE>BASH_VERSINFO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX173"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX174"><CODE>BASH_VERSION</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX175"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX176"><CODE>BASH_XTRACEFD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX143"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX144"><CODE>BASHOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX145"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX146"><CODE>BASHPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>bell-style</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>bind-tty-special-chars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX112"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX113"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX166"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX167"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX321"><CODE>comment-begin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX168"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX169"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX176"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX177"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX170"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX171"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX172"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX173"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX174"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX175"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX178"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX179"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX180"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX181"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX322"><CODE>completion-display-width</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX323"><CODE>completion-ignore-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX324"><CODE>completion-map-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX325"><CODE>completion-prefix-display-length</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX326"><CODE>completion-query-items</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX182"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX183"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327"><CODE>convert-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX184"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX185"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX121"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX122"><CODE>CDPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX177"><CODE>CHILD_MAX</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX178"><CODE>CHILD_MAX</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>colored-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX179"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX180"><CODE>COLUMNS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>comment-begin</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX181"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX182"><CODE>COMP_CWORD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX189"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX190"><CODE>COMP_KEY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX183"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX184"><CODE>COMP_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX185"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX186"><CODE>COMP_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX187"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX188"><CODE>COMP_TYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX191"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX192"><CODE>COMP_WORDBREAKS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX193"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX194"><CODE>COMP_WORDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>completion-display-width</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>completion-ignore-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>completion-map-case</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX339"><CODE>completion-prefix-display-length</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>completion-query-items</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX195"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX196"><CODE>COMPREPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>convert-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX197"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX198"><CODE>COPROC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX186"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX187"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328"><CODE>disable-completion</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX199"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>DIRSTACK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>disable-completion</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329"><CODE>editing-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX188"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX189"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330"><CODE>enable-keypad</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX190"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX191"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX192"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX193"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331"><CODE>expand-tilde</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>editing-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX202"><CODE>EMACS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>enable-keypad</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>ENV</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX206"><CODE>EUID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX345"><CODE>expand-tilde</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX194"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX195"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX196"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX197"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX198"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX199"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX200"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX201"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>FCEDIT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX209"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX210"><CODE>FIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX211"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>FUNCNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>FUNCNEST</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX202"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX203"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX204"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX205"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>GLOBIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX217"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX218"><CODE>GROUPS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX206"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX207"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX208"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX209"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX210"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX211"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX212"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX213"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX214"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX215"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX216"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX217"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX332"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX333"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX218"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX219"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX220"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX221"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX114"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX115"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX334"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX222"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX223"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX224"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX225"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX226"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX227"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX219"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX220"><CODE>histchars</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX221"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX222"><CODE>HISTCMD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX223"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX224"><CODE>HISTCONTROL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX225"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX226"><CODE>HISTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX227"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX228"><CODE>HISTFILESIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX229"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX230"><CODE>HISTIGNORE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>history-preserve-point</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>history-size</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX231"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX232"><CODE>HISTSIZE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX233"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX234"><CODE>HISTTIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX123"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX124"><CODE>HOME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>horizontal-scroll-mode</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>HOSTFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX237"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX238"><CODE>HOSTNAME</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX239"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX240"><CODE>HOSTTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX116"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX117"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX228"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX229"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX335"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX230"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX231"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX337"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX125"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX126"><CODE>IFS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>IGNOREEOF</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>input-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX243"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX244"><CODE>INPUTRC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>isearch-terminators</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX338"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>keymap</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_L"></A>L</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX232"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX233"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX234"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX235"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX236"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX237"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX238"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX239"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX245"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX246"><CODE>LANG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX247"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX248"><CODE>LC_ALL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX249"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX250"><CODE>LC_COLLATE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX251"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX252"><CODE>LC_CTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX21"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX240"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX241"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX242"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX243"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX244"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX245"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX246"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX247"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX253"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX254"><CODE>LC_MESSAGES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX255"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX256"><CODE>LC_NUMERIC</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX257"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX258"><CODE>LINENO</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX259"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX260"><CODE>LINES</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX248"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX249"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX118"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX119"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX250"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX251"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX120"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX121"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX252"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX253"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX339"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX340"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX341"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX342"><CODE>menu-complete-display-prefix</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX336"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX261"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX262"><CODE>MACHTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX127"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX128"><CODE>MAIL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX263"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX264"><CODE>MAILCHECK</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX129"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX130"><CODE>MAILPATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>MAPFILE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>mark-modified-lines</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>mark-symlinked-directories</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>match-hidden-files</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>menu-complete-display-prefix</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>meta-flag</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX254"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX255"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX122"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX123"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX256"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX257"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX124"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX125"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX258"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX259"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX343"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX268"><CODE>OLDPWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX131"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX132"><CODE>OPTARG</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX269"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX270"><CODE>OPTERR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX133"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX134"><CODE>OPTIND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX271"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX272"><CODE>OSTYPE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX357"><CODE>output-meta</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX344"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX126"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX127"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX260"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX261"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX262"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX263"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX264"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX265"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX266"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX267"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX268"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX269"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX128"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX129"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX130"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX131"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX270"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX271"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX272"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX273"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX274"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>page-completions</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX135"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX136"><CODE>PATH</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX273"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX274"><CODE>PIPESTATUS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX275"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX276"><CODE>POSIXLY_CORRECT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX277"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX278"><CODE>PPID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX279"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX280"><CODE>PROMPT_COMMAND</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX281"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>PROMPT_DIRTRIM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX137"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX138"><CODE>PS1</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX139"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX140"><CODE>PS2</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC67">5.1 Bourne Shell Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX284"><CODE>PS3</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX285"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX286"><CODE>PS4</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX287"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX288"><CODE>PWD</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX276"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX277"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX278"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX279"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX280"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX281"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX282"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX283"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX345"><CODE>revert-all-at-newline</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX289"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX290"><CODE>RANDOM</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX291"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX292"><CODE>READLINE_LINE</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX293"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX294"><CODE>READLINE_POINT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX295"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX296"><CODE>REPLY</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>revert-all-at-newline</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX284"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX285"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX286"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX287"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX288"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX289"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX290"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX291"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX346"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX347"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX348"><CODE>skip-completed-text</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX297"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX298"><CODE>SECONDS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX299"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX300"><CODE>SHELL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX301"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX302"><CODE>SHELLOPTS</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX303"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX304"><CODE>SHLVL</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>show-all-if-ambiguous</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>show-all-if-unmodified</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>show-mode-in-prompt</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>skip-completed-text</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_T"></A>T</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX22"><CODE>TEXTDOMAIN</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX23"><CODE>TEXTDOMAINDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX292"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX293"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX294"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX295"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX296"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX297"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX305"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX306"><CODE>TIMEFORMAT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX307"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX308"><CODE>TMOUT</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX309"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX310"><CODE>TMPDIR</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX298"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX299"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX311"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX312"><CODE>UID</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC68">5.2 Bash Variables</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="vr_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX349"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>visible-stats</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#vr_!" style="text-decoration:none"><b>!</b></A>
&nbsp;
@@ -15372,20 +16293,20 @@ to permit their use in free software.
<A NAME="Function Index"></A>
<HR SIZE="6">
-<A NAME="SEC145"></A>
+<A NAME="SEC146"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC144"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC146"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC146"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> Up </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC147"> &gt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC147"> &lt;&lt; </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> D.4 Function Index </H2>
-<!--docid::SEC145::-->
+<!--docid::SEC146::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
<A HREF="bashref.html#fn_B" style="text-decoration:none"><b>B</b></A>
@@ -15431,250 +16352,258 @@ to permit their use in free software.
<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX503"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX546"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX547"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX525"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX526"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX569"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX570"><CODE>alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX356"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX357"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX360"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX361"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX350"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX351"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX371"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX420"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX375"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX376"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX518"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX519"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX520"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX521"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX366"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX442"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX519"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX520"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX541"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX542"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX543"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX544"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX477"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>complete-command (M-!)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>complete-filename (M-/)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX502"><CODE>complete-hostname (M-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>complete-into-braces (M-{)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX493"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>complete-username (M-~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX498"><CODE>complete-variable (M-$)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX468"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX490"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX491"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX466"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX467"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX453"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX538"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX539"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX505"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX526"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX527"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX530"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX531"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX528"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX529"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX489"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>dabbrev-expand ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX488"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX473"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX561"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX562"><CODE>display-shell-version (C-x C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX527"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX528"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX549"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX550"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX553"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX554"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX551"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX552"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX509"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>dynamic-complete-history (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX554"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX555"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX497"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX352"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX353"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX577"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX578"><CODE>edit-and-execute-command (C-xC-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX517"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX518"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX415"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE><I>end-of-file</I> (usually C-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX367"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX539"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX540"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX354"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX355"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX382"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX358"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX359"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX421"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX370"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX397"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX398"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX532"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX533"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX534"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX535"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX536"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX537"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX555"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX556"><CODE>glob-complete-word (M-g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX557"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX558"><CODE>glob-expand-word (C-x *)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX559"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX560"><CODE>glob-list-expansions (C-x g)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX548"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX549"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX542"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX543"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX391"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX571"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX572"><CODE>history-and-alias-expand-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX565"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX566"><CODE>history-expand-line (M-^)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX405"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX409"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>history-substr-search-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX407"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>history-substr-search-forward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX524"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX525"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX460"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX550"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX551"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX547"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX548"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX481"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX573"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX574"><CODE>insert-last-argument (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX418"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX419"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX441"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX439"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX440"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX461"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX445"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX446"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX447"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX544"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX545"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX462"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX463"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX464"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX465"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX567"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX568"><CODE>magic-space ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX484"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX485"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>menu-complete-backward ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX374"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX375"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX386"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX385"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX389"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX390"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX401"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX399"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX400"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX552"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX553"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX416"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX417"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX575"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX576"><CODE>operate-and-get-next (C-o)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX438"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX486"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX487"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX459"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX482"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX483"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX474"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX478"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX506"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX507"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX372"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX373"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX507"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>possible-command-completions (C-x !)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX479"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX480"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX491"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX492"><CODE>possible-filename-completions (C-x /)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX503"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX504"><CODE>possible-hostname-completions (C-x @)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX495"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX496"><CODE>possible-username-completions (C-x ~)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX499"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>possible-variable-completions (C-x $)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC114">8.4.6 Letting Readline Type For You</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX529"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX530"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX387"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX388"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX521"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX522"><CODE>print-last-kbd-macro ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX402"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX403"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX423"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX424"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX500"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX501"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX368"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX369"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX381"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX510"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX511"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX523"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX524"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX383"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX384"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX396"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX533"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX534"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX404"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX405"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX514"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX433"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX364"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX365"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX540"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX541"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX362"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX363"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX522"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX523"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX494"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX495"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX425"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX426"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX537"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX538"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX453"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>shell-backward-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX379"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX380"><CODE>shell-backward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX563"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX564"><CODE>shell-expand-line (M-C-e)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX377"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX378"><CODE>shell-forward-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC109">8.4.1 Commands For Moving</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX452"><CODE>shell-kill-word ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX545"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX546"><CODE>skip-csi-sequence ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX515"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX516"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC115">8.4.7 Keyboard Macros</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX512"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX513"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX406"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX407"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX408"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX409"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX535"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX536"><CODE>tilde-expand (M-&#38;#38;)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX427"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX428"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX429"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX430"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX508"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX509"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX454"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX436"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX437"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX422"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX423"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX434"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX435"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX410"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX531"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX532"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC116">8.4.8 Some Miscellaneous Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX475"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX476"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC113">8.4.5 Specifying Numeric Arguments</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX457"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX458"><CODE>unix-filename-rubout ()</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX443"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX444"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX455"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX456"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX431"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX432"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC111">8.4.3 Commands For Changing Text</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX448"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX449"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX394"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX395"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX392"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX393"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX450"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX451"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX469"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX470"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX413"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX414"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX411"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX412"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC110">8.4.2 Commands For Manipulating The History</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX471"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX472"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="bashref.html#SEC112">8.4.4 Killing And Yanking</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#fn_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
@@ -15720,20 +16649,20 @@ to permit their use in free software.
<A NAME="Concept Index"></A>
<HR SIZE="6">
-<A NAME="SEC146"></A>
+<A NAME="SEC147"></A>
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC145"> &lt; </A>]</TD>
+<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC146"> &lt; </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141"> Up </A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142"> Up </A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H2> D.5 Concept Index </H2>
-<!--docid::SEC146::-->
+<!--docid::SEC147::-->
<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#cp_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
<A HREF="bashref.html#cp_B" style="text-decoration:none"><b>B</b></A>
@@ -15791,8 +16720,8 @@ to permit their use in free software.
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_B"></A>B</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC93">background</A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.1 Job Control Basics</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC128">Bash configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC128">10.1 Basic Installation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC128">Bash installation</A></TD><TD valign=top><A HREF="bashref.html#SEC128">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC129">Bash configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC129">Bash installation</A></TD><TD valign=top><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC5">Bourne shell</A></TD><TD valign=top><A HREF="bashref.html#SEC5">3. Basic Shell Features</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC30">brace expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC30">3.5.1 Brace Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX2">builtin</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
@@ -15801,7 +16730,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC99">command editing</A></TD><TD valign=top><A HREF="bashref.html#SEC99">8.2.1 Readline Bare Essentials</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC53">command execution</A></TD><TD valign=top><A HREF="bashref.html#SEC53">3.7.2 Command Search and Execution</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC52">command expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC52">3.7.1 Simple Command Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC121">command history</A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC122">command history</A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC53">command search</A></TD><TD valign=top><A HREF="bashref.html#SEC53">3.7.2 Command Search and Execution</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC33">command substitution</A></TD><TD valign=top><A HREF="bashref.html#SEC33">3.5.4 Command Substitution</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX26">command timing</A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
@@ -15815,7 +16744,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC16">commands, simple</A></TD><TD valign=top><A HREF="bashref.html#SEC16">3.2.1 Simple Commands</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC14">comments, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC14">3.1.3 Comments</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC119">completion builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC128">configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC128">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC129">configuration</A></TD><TD valign=top><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX3">control operator</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC23">coprocess</A></TD><TD valign=top><A HREF="bashref.html#SEC23">3.2.5 Coprocesses</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
@@ -15826,16 +16755,16 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC99">editing command lines</A></TD><TD valign=top><A HREF="bashref.html#SEC99">8.2.1 Readline Bare Essentials</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC55">environment</A></TD><TD valign=top><A HREF="bashref.html#SEC55">3.7.4 Environment</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC84">evaluation, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC124">event designators</A></TD><TD valign=top><A HREF="bashref.html#SEC124">9.3.1 Event Designators</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC125">event designators</A></TD><TD valign=top><A HREF="bashref.html#SEC125">9.3.1 Event Designators</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC54">execution environment</A></TD><TD valign=top><A HREF="bashref.html#SEC54">3.7.3 Command Execution Environment</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX4">exit status</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC56">exit status</A></TD><TD valign=top><A HREF="bashref.html#SEC56">3.7.5 Exit Status</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC29">expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC29">3.5 Shell Expansions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC34">expansion, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC34">3.5.5 Arithmetic Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC30">expansion, brace</A></TD><TD valign=top><A HREF="bashref.html#SEC30">3.5.1 Brace Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX64">expansion, filename</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX73">expansion, filename</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC32">expansion, parameter</A></TD><TD valign=top><A HREF="bashref.html#SEC32">3.5.3 Shell Parameter Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX65">expansion, pathname</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX74">expansion, pathname</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC31">expansion, tilde</A></TD><TD valign=top><A HREF="bashref.html#SEC31">3.5.2 Tilde Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC84">expressions, arithmetic</A></TD><TD valign=top><A HREF="bashref.html#SEC84">6.5 Shell Arithmetic</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC83">expressions, conditional</A></TD><TD valign=top><A HREF="bashref.html#SEC83">6.4 Bash Conditional Expressions</A></TD></TR>
@@ -15843,23 +16772,23 @@ to permit their use in free software.
<TR><TH><A NAME="cp_F"></A>F</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX5">field</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX6">filename</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX66">filename expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX75">filename expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC93">foreground</A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.1 Job Control Basics</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC25">functions, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC25">3.3 Shell Functions</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC122">history builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.2 Bash History Builtins</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX562">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC124">9.3.1 Event Designators</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC123">history expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.3 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC121">history list</A></TD><TD valign=top><A HREF="bashref.html#SEC121">9.1 Bash History Facilities</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX559">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC123">history builtins</A></TD><TD valign=top><A HREF="bashref.html#SEC123">9.2 Bash History Builtins</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX585">history events</A></TD><TD valign=top><A HREF="bashref.html#SEC125">9.3.1 Event Designators</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC124">history expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC124">9.3 History Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC122">history list</A></TD><TD valign=top><A HREF="bashref.html#SEC122">9.1 Bash History Facilities</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX582">History, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC120">8.8 A Programmable Completion Example</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX11">identifier</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC104">initialization file, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC104">8.3 Readline Init File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC128">installation</A></TD><TD valign=top><A HREF="bashref.html#SEC128">10.1 Basic Installation</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC129">installation</A></TD><TD valign=top><A HREF="bashref.html#SEC129">10.1 Basic Installation</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC98">interaction, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC98">8.2 Readline Interaction</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX301">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC79">interactive shell</A></TD><TD valign=top><A HREF="bashref.html#SEC79">6.3 Interactive Shells</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">internationalization</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
@@ -15869,12 +16798,12 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC93">job control</A></TD><TD valign=top><A HREF="bashref.html#SEC93">7.1 Job Control Basics</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX317">kill ring</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX315">killing text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX330">kill ring</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX328">killing text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_L"></A>L</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC13">localization</A></TD><TD valign=top><A HREF="bashref.html#SEC13">3.1.2.5 Locale-Specific Translation</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX300">login shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX313">login shell</A></TD><TD valign=top><A HREF="bashref.html#SEC70">6.1 Invoking Bash</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_M"></A>M</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC38">matching, pattern</A></TD><TD valign=top><A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A></TD></TR>
@@ -15893,7 +16822,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC26">parameters</A></TD><TD valign=top><A HREF="bashref.html#SEC26">3.4 Shell Parameters</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC27">parameters, positional</A></TD><TD valign=top><A HREF="bashref.html#SEC27">3.4.1 Positional Parameters</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC28">parameters, special</A></TD><TD valign=top><A HREF="bashref.html#SEC28">3.4.2 Special Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX67">pathname expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX76">pathname expansion</A></TD><TD valign=top><A HREF="bashref.html#SEC37">3.5.8 Filename Expansion</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC38">pattern matching</A></TD><TD valign=top><A HREF="bashref.html#SEC38">3.5.8.1 Pattern Matching</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC17">pipeline</A></TD><TD valign=top><A HREF="bashref.html#SEC17">3.2.2 Pipelines</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX1">POSIX</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
@@ -15909,7 +16838,7 @@ to permit their use in free software.
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC12">quoting, ANSI</A></TD><TD valign=top><A HREF="bashref.html#SEC12">3.1.2.4 ANSI-C Quoting</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX314">Readline, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX327">Readline, how to use</A></TD><TD valign=top><A HREF="bashref.html#SEC95">7.3 Job Control Variables</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC40">redirection</A></TD><TD valign=top><A HREF="bashref.html#SEC40">3.6 Redirections</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX15">reserved word</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC90">restricted shell</A></TD><TD valign=top><A HREF="bashref.html#SEC90">6.10 The Restricted Shell</A></TD></TR>
@@ -15935,14 +16864,14 @@ to permit their use in free software.
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC26">variable, shell</A></TD><TD valign=top><A HREF="bashref.html#SEC26">3.4 Shell Parameters</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX318">variables, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX331">variables, readline</A></TD><TD valign=top><A HREF="bashref.html#SEC105">8.3.1 Readline Init File Syntax</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_W"></A>W</TH><TD></TD><TD></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX20">word</A></TD><TD valign=top><A HREF="bashref.html#SEC4">2. Definitions</A></TD></TR>
<TR><TD></TD><TD valign=top><A HREF="bashref.html#SEC36">word splitting</A></TD><TD valign=top><A HREF="bashref.html#SEC36">3.5.7 Word Splitting</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
<TR><TH><A NAME="cp_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX316">yanking text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
+<TR><TD></TD><TD valign=top><A HREF="bashref.html#IDX329">yanking text</A></TD><TD valign=top><A HREF="bashref.html#SEC101">8.2.3 Readline Killing Commands</A></TD></TR>
<TR><TD COLSPAN=3> <HR></TD></TR>
</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="bashref.html#cp_A" style="text-decoration:none"><b>A</b></A>
&nbsp;
@@ -15995,7 +16924,7 @@ to permit their use in free software.
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Table of Contents</H1>
@@ -16267,67 +17196,69 @@ to permit their use in free software.
<BR>
<A NAME="TOC119" HREF="bashref.html#SEC119">8.7 Programmable Completion Builtins</A>
<BR>
+<A NAME="TOC120" HREF="bashref.html#SEC120">8.8 A Programmable Completion Example</A>
+<BR>
</UL>
-<A NAME="TOC120" HREF="bashref.html#SEC120">9. Using History Interactively</A>
+<A NAME="TOC121" HREF="bashref.html#SEC121">9. Using History Interactively</A>
<BR>
<UL>
-<A NAME="TOC121" HREF="bashref.html#SEC121">9.1 Bash History Facilities</A>
+<A NAME="TOC122" HREF="bashref.html#SEC122">9.1 Bash History Facilities</A>
<BR>
-<A NAME="TOC122" HREF="bashref.html#SEC122">9.2 Bash History Builtins</A>
+<A NAME="TOC123" HREF="bashref.html#SEC123">9.2 Bash History Builtins</A>
<BR>
-<A NAME="TOC123" HREF="bashref.html#SEC123">9.3 History Expansion</A>
+<A NAME="TOC124" HREF="bashref.html#SEC124">9.3 History Expansion</A>
<BR>
<UL>
-<A NAME="TOC124" HREF="bashref.html#SEC124">9.3.1 Event Designators</A>
+<A NAME="TOC125" HREF="bashref.html#SEC125">9.3.1 Event Designators</A>
<BR>
-<A NAME="TOC125" HREF="bashref.html#SEC125">9.3.2 Word Designators</A>
+<A NAME="TOC126" HREF="bashref.html#SEC126">9.3.2 Word Designators</A>
<BR>
-<A NAME="TOC126" HREF="bashref.html#SEC126">9.3.3 Modifiers</A>
+<A NAME="TOC127" HREF="bashref.html#SEC127">9.3.3 Modifiers</A>
<BR>
</UL>
</UL>
-<A NAME="TOC127" HREF="bashref.html#SEC127">10. Installing Bash</A>
+<A NAME="TOC128" HREF="bashref.html#SEC128">10. Installing Bash</A>
<BR>
<UL>
-<A NAME="TOC128" HREF="bashref.html#SEC128">10.1 Basic Installation</A>
+<A NAME="TOC129" HREF="bashref.html#SEC129">10.1 Basic Installation</A>
<BR>
-<A NAME="TOC129" HREF="bashref.html#SEC129">10.2 Compilers and Options</A>
+<A NAME="TOC130" HREF="bashref.html#SEC130">10.2 Compilers and Options</A>
<BR>
-<A NAME="TOC130" HREF="bashref.html#SEC130">10.3 Compiling For Multiple Architectures</A>
+<A NAME="TOC131" HREF="bashref.html#SEC131">10.3 Compiling For Multiple Architectures</A>
<BR>
-<A NAME="TOC131" HREF="bashref.html#SEC131">10.4 Installation Names</A>
+<A NAME="TOC132" HREF="bashref.html#SEC132">10.4 Installation Names</A>
<BR>
-<A NAME="TOC132" HREF="bashref.html#SEC132">10.5 Specifying the System Type</A>
+<A NAME="TOC133" HREF="bashref.html#SEC133">10.5 Specifying the System Type</A>
<BR>
-<A NAME="TOC133" HREF="bashref.html#SEC133">10.6 Sharing Defaults</A>
+<A NAME="TOC134" HREF="bashref.html#SEC134">10.6 Sharing Defaults</A>
<BR>
-<A NAME="TOC134" HREF="bashref.html#SEC134">10.7 Operation Controls</A>
+<A NAME="TOC135" HREF="bashref.html#SEC135">10.7 Operation Controls</A>
<BR>
-<A NAME="TOC135" HREF="bashref.html#SEC135">10.8 Optional Features</A>
+<A NAME="TOC136" HREF="bashref.html#SEC136">10.8 Optional Features</A>
<BR>
</UL>
-<A NAME="TOC136" HREF="bashref.html#SEC136">A. Reporting Bugs</A>
+<A NAME="TOC137" HREF="bashref.html#SEC137">A. Reporting Bugs</A>
<BR>
-<A NAME="TOC137" HREF="bashref.html#SEC137">B. Major Differences From The Bourne Shell</A>
+<A NAME="TOC138" HREF="bashref.html#SEC138">B. Major Differences From The Bourne Shell</A>
<BR>
<UL>
-<A NAME="TOC138" HREF="bashref.html#SEC138">B.1 Implementation Differences From The SVR4.2 Shell</A>
+<A NAME="TOC139" HREF="bashref.html#SEC139">B.1 Implementation Differences From The SVR4.2 Shell</A>
<BR>
</UL>
-<A NAME="TOC139" HREF="bashref.html#SEC139">C. GNU Free Documentation License</A>
+<A NAME="TOC140" HREF="bashref.html#SEC140">C. GNU Free Documentation License</A>
<BR>
-<A NAME="TOC141" HREF="bashref.html#SEC141">D. Indexes</A>
+<A NAME="TOC142" HREF="bashref.html#SEC142">D. Indexes</A>
<BR>
<UL>
-<A NAME="TOC142" HREF="bashref.html#SEC142">D.1 Index of Shell Builtin Commands</A>
+<A NAME="TOC143" HREF="bashref.html#SEC143">D.1 Index of Shell Builtin Commands</A>
<BR>
-<A NAME="TOC143" HREF="bashref.html#SEC143">D.2 Index of Shell Reserved Words</A>
+<A NAME="TOC144" HREF="bashref.html#SEC144">D.2 Index of Shell Reserved Words</A>
<BR>
-<A NAME="TOC144" HREF="bashref.html#SEC144">D.3 Parameter and Variable Index</A>
+<A NAME="TOC145" HREF="bashref.html#SEC145">D.3 Parameter and Variable Index</A>
<BR>
-<A NAME="TOC145" HREF="bashref.html#SEC145">D.4 Function Index</A>
+<A NAME="TOC146" HREF="bashref.html#SEC146">D.4 Function Index</A>
<BR>
-<A NAME="TOC146" HREF="bashref.html#SEC146">D.5 Concept Index</A>
+<A NAME="TOC147" HREF="bashref.html#SEC147">D.5 Concept Index</A>
<BR>
</UL>
</UL>
@@ -16336,7 +17267,7 @@ to permit their use in free software.
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>Short Table of Contents</H1>
@@ -16357,17 +17288,17 @@ to permit their use in free software.
<BR>
<A NAME="TOC96" HREF="bashref.html#SEC96">8. Command Line Editing</A>
<BR>
-<A NAME="TOC120" HREF="bashref.html#SEC120">9. Using History Interactively</A>
+<A NAME="TOC121" HREF="bashref.html#SEC121">9. Using History Interactively</A>
<BR>
-<A NAME="TOC127" HREF="bashref.html#SEC127">10. Installing Bash</A>
+<A NAME="TOC128" HREF="bashref.html#SEC128">10. Installing Bash</A>
<BR>
-<A NAME="TOC136" HREF="bashref.html#SEC136">A. Reporting Bugs</A>
+<A NAME="TOC137" HREF="bashref.html#SEC137">A. Reporting Bugs</A>
<BR>
-<A NAME="TOC137" HREF="bashref.html#SEC137">B. Major Differences From The Bourne Shell</A>
+<A NAME="TOC138" HREF="bashref.html#SEC138">B. Major Differences From The Bourne Shell</A>
<BR>
-<A NAME="TOC139" HREF="bashref.html#SEC139">C. GNU Free Documentation License</A>
+<A NAME="TOC140" HREF="bashref.html#SEC140">C. GNU Free Documentation License</A>
<BR>
-<A NAME="TOC141" HREF="bashref.html#SEC141">D. Indexes</A>
+<A NAME="TOC142" HREF="bashref.html#SEC142">D. Indexes</A>
<BR>
</BLOCKQUOTE>
@@ -16376,11 +17307,11 @@ to permit their use in free software.
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Top">Top</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC141">Index</A>]</TD>
+<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC142">Index</A>]</TD>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>December, 28 2010</I>
+This document was generated by <I>Chet Ramey</I> on <I>February, 24 2014</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
@@ -16542,7 +17473,7 @@ the following structure:
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>December, 28 2010</I>
+by <I>Chet Ramey</I> on <I>February, 24 2014</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
diff --git a/doc/bashref.info b/doc/bashref.info
index 5db35030..6f60af1c 100644
--- a/doc/bashref.info
+++ b/doc/bashref.info
@@ -1,30 +1,20 @@
This is bashref.info, produced by makeinfo version 4.13 from
-/Users/chet/src/bash/src/doc/bashref.texi.
+/usr/homes/chet/src/bash/src/doc/bashref.texi.
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 28 December 2010).
+the Bash shell (version 4.3, 2 February 2014).
- This is Edition 4.2, last updated 28 December 2010, of `The GNU Bash
-Reference Manual', for `Bash', Version 4.2.
+ This is Edition 4.3, last updated 2 February 2014, of `The GNU Bash
+Reference Manual', for `Bash', Version 4.3.
- Copyright (C) 1988-2010 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.
+ Copyright (C) 1988-2014 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 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)
- below. A copy of the license is 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."
-
+ 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 Free Documentation License".
INFO-DIR-SECTION Basics
START-INFO-DIR-ENTRY
@@ -38,17 +28,18 @@ Bash Features
*************
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 28 December 2010).
+the Bash shell (version 4.3, 2 February 2014). The Bash home page is
+`http://www.gnu.org/software/bash/'.
- This is Edition 4.2, last updated 28 December 2010, of `The GNU Bash
-Reference Manual', for `Bash', Version 4.2.
+ This is Edition 4.3, last updated 2 February 2014, of `The GNU Bash
+Reference Manual', for `Bash', Version 4.3.
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
borrowed concepts from are the Bourne Shell (`sh'), the Korn Shell
-(`ksh'), and the C-shell (`csh' and its successor, `tcsh'). The
-following menu breaks the features up into categories based upon which
-one of these other shells inspired the feature.
+(`ksh'), and the C-shell (`csh' and its successor, `tcsh'). The
+following menu breaks the features up into categories, noting which
+features were inspired by other shells and which are specific to Bash.
This manual is meant as a brief introduction to features found in
Bash. The Bash manual page should be used as the definitive reference
@@ -145,13 +136,12 @@ control over the contents of commands' environments.
Shells also provide a small set of built-in commands ("builtins")
implementing functionality impossible or inconvenient to obtain via
-separate utilities. For example, `cd', `break', `continue', and
-`exec') cannot be implemented outside of the shell because they
-directly manipulate the shell itself. The `history', `getopts',
-`kill', or `pwd' builtins, among others, could be implemented in
-separate utilities, but they are more convenient to use as builtin
-commands. All of the shell builtins are described in subsequent
-sections.
+separate utilities. For example, `cd', `break', `continue', and `exec'
+cannot be implemented outside of the shell because they directly
+manipulate the shell itself. The `history', `getopts', `kill', or `pwd'
+builtins, among others, could be implemented in separate utilities, but
+they are more convenient to use as builtin commands. All of the shell
+builtins are described in subsequent sections.
While executing commands is essential, most of the power (and
complexity) of shells is due to their embedded programming languages.
@@ -575,17 +565,18 @@ 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 [ [`|' or `|&'] 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. 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.
+ If `|&' is used, COMMAND1's standard error, in addition to its
+standard output, is connected to COMMAND2's standard input through the
+pipe; it is shorthand for `2>&1 |'. This implicit redirection of the
+standard error to the standard output 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
@@ -686,6 +677,10 @@ redirections (*note Redirections::) associated with a compound command
apply to all commands within that compound command unless explicitly
overridden.
+ In most cases a list of commands in a compound command's description
+may be separated from the rest of the command by one or more newlines,
+and may be followed by a newline in place of a semicolon.
+
Bash provides looping constructs, conditional commands, and
mechanisms to group commands and execute them as a unit.
@@ -702,7 +697,9 @@ syntax, it may be replaced with one or more newlines.
`until'
The syntax of the `until' command is:
+
until TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
+
Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
status which is not zero. The return status is the exit status of
the last command executed in CONSEQUENT-COMMANDS, or zero if none
@@ -710,6 +707,7 @@ syntax, it may be replaced with one or more newlines.
`while'
The syntax of the `while' command is:
+
while TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
@@ -721,6 +719,7 @@ syntax, it may be replaced with one or more newlines.
The syntax of the `for' command is:
for NAME [ [in [WORDS ...] ] ; ] do COMMANDS; done
+
Expand WORDS, and execute COMMANDS once for each member in the
resultant list, with NAME bound to the current member. If `in
WORDS' is not present, the `for' command executes the COMMANDS
@@ -733,6 +732,7 @@ syntax, it may be replaced with one or more newlines.
An alternate form of the `for' command is also supported:
for (( EXPR1 ; EXPR2 ; EXPR3 )) ; do COMMANDS ; done
+
First, the arithmetic expression EXPR1 is evaluated according to
the rules described below (*note Shell Arithmetic::). The
arithmetic expression EXPR2 is then evaluated repeatedly until it
@@ -743,7 +743,6 @@ syntax, it may be replaced with one or more newlines.
command in COMMANDS that is executed, or false if any of the
expressions is invalid.
-
The `break' and `continue' builtins (*note Bourne Shell Builtins::)
may be used to control loop execution.
@@ -777,7 +776,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
`case'
The syntax of the `case' command is:
- `case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac'
+ case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac
`case' will selectively execute the COMMAND-LIST corresponding to
the first PATTERN that matches WORD. If the shell option
@@ -797,7 +796,9 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
There may be an arbitrary number of `case' clauses, each terminated
by a `;;', `;&', or `;;&'. The first pattern that matches
- determines the command-list that is executed.
+ determines the command-list that is executed. It's a common idiom
+ to use `*' as the final pattern to define the default case, since
+ that pattern will always match.
Here is an example using `case' in a script that could be used to
describe one interesting feature of an animal:
@@ -881,13 +882,15 @@ 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
- shell option `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 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.
+ the rules described below in *note Pattern Matching::, as if the
+ `extglob' shell option were enabled. The `=' operator is
+ identical to `=='. If the shell option `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 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 the quoted portion 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
@@ -899,13 +902,63 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
(see the description of `shopt' in *note 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 `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.
+ force the quoted portion to be matched as a string. Bracket
+ expressions in regular expressions must be treated carefully,
+ since normal quoting characters lose their meanings between
+ brackets. If the pattern is stored in a shell variable, quoting
+ the variable expansion forces the entire pattern 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.
+
+ For example, the following will match a line (stored in the shell
+ variable LINE) if there is a sequence of characters in the value
+ consisting of any number, including zero, of space characters,
+ zero or one instances of `a', then a `b':
+ [[ $line =~ [[:space:]]*(a)?b ]]
+
+ That means values like `aab' and ` aaaaaab' will match, as will a
+ line containing a `b' anywhere in its value.
+
+ Storing the regular expression in a shell variable is often a
+ useful way to avoid problems with quoting characters that are
+ special to the shell. It is sometimes difficult to specify a
+ regular expression literally without using quotes, or to keep
+ track of the quoting used by regular expressions while paying
+ attention to the shell's quote removal. Using a shell variable to
+ store the pattern decreases these problems. For example, the
+ following is equivalent to the above:
+ pattern='[[:space:]]*(a)?b'
+ [[ $line =~ $pattern ]]
+
+ If you want to match a character that's special to the regular
+ expression grammar, it has to be quoted to remove its special
+ meaning. This means that in the pattern `xxx.txt', the `.'
+ matches any character in the string (its usual regular expression
+ meaning), but in the pattern `"xxx.txt"' it can only match a
+ literal `.'. Shell programmers should take special care with
+ backslashes, since backslashes are used both by the shell and
+ regular expressions to remove the special meaning from the
+ following character. The following two sets of commands are _not_
+ equivalent:
+ pattern='\.'
+
+ [[ . =~ $pattern ]]
+ [[ . =~ \. ]]
+
+ [[ . =~ "$pattern" ]]
+ [[ . =~ '\.' ]]
+
+ The first two matches will succeed, but the second two will not,
+ because in the second two the backslash will be part of the
+ pattern to be matched. In the first two examples, the backslash
+ removes the special meaning from `.', so the literal `.' matches.
+ If the string in the first examples were anything other than `.',
+ say `a', the pattern would not match, because the quoted `.' in the
+ pattern loses its special meaning of matching any single character.
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
@@ -922,11 +975,11 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
`EXPRESSION1 || EXPRESSION2'
True if either EXPRESSION1 or EXPRESSION2 is true.
+
The `&&' and `||' operators do not evaluate EXPRESSION2 if the
value of EXPRESSION1 is sufficient to determine the return value
of the entire conditional expression.
-

File: bashref.info, Node: Command Grouping, Prev: Conditional Constructs, Up: Compound Commands
@@ -976,29 +1029,32 @@ 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]
+ coproc [NAME] COMMAND [REDIRECTIONS]
This creates a coprocess named NAME. If NAME is not supplied, the
default name is COPROC. NAME must not be supplied if COMMAND is a
simple command (*note Simple Commands::); otherwise, it is interpreted
as the first word of the simple command.
- 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
+ When the coprocess 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[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.
+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 file descriptors are
+not available in subshells.
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable NAME_PID. The `wait' builtin
+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.
+ Since the coprocess is created as an asynchronous command, the
+`coproc' command always returns success. The return status of a
+coprocess is the exit status of COMMAND.

File: bashref.info, Node: GNU Parallel, Prev: Coprocesses, Up: Shell Commands
@@ -1006,39 +1062,51 @@ File: bashref.info, Node: GNU Parallel, Prev: Coprocesses, Up: Shell Commands
3.2.6 GNU Parallel
------------------
-GNU Parallel, as its name suggests, can be used to build and run
+There are ways to run commands in parallel that are not built into Bash.
+GNU Parallel is a tool to do just that.
+
+ GNU Parallel, as its name suggests, can be used to build and run
commands in parallel. You may run the same command with different
arguments, whether they are filenames, usernames, hostnames, or lines
-read from files.
+read from files. GNU Parallel provides shorthand references to many of
+the most common operations (input lines, various portions of the input
+line, different ways to specify the input source, and so on). Parallel
+can replace `xargs' or feed commands from its input sources to several
+different instances of Bash.
For a complete description, refer to the GNU Parallel documentation.
A few examples should provide a brief introduction to its use.
- For example, it is easy to prefix each line in a text file with a
-specified string:
- cat file | parallel -k echo prefix_string
- The `-k' option is required to preserve the lines' order.
-
- Similarly, you can append a specified string to each line in a text
-file:
- cat file | parallel -k echo {} append_string
+ For example, it is easy to replace `xargs' to gzip all html files in
+the current directory and its subdirectories:
+ find . -type f -name '*.html' -print | parallel gzip
+ If you need to protect special characters such as newlines in file
+names, use find's `-print0' option and parallel's `-0' option.
You can use Parallel to move files from the current directory when
the number of files is too large to process with one `mv' invocation:
ls | parallel mv {} destdir
As you can see, the {} is replaced with each line read from standard
-input. This will run as many `mv' commands as there are files in the
-current directory. You can emulate a parallel `xargs' by adding the
-`-X' option:
- ls | parallel -X mv {} destdir
+input. While using `ls' will work in most instances, it is not
+sufficient to deal with all filenames. If you need to accommodate
+special characters in filenames, you can use
+
+ find . -depth 1 \! -name '.*' -print0 | parallel -0 mv {} destdir
+
+as alluded to above.
+
+ This will run as many `mv' commands as there are files in the current
+directory. You can emulate a parallel `xargs' by adding the `-X'
+option:
+ find . -depth 1 \! -name '.*' -print0 | parallel -0 -X mv {} destdir
GNU Parallel can replace certain common idioms that operate on lines
-read from a file (in this case, filenames):
- for x in $(cat list); do
- do-something1 $x config-$x
- do-something2 < $x
- done | process-output
+read from a file (in this case, filenames listed one per line):
+ while IFS= read -r x; do
+ do-something1 "$x" "config-$x"
+ do-something2 < "$x"
+ done < file | process-output
with a more compact syntax reminiscent of lambdas:
cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" | process-output
@@ -1048,17 +1116,34 @@ extensions, which lends itself to batch file transformations or
renaming:
ls *.gz | parallel -j+0 "zcat {} | bzip2 >{.}.bz2 && rm {}"
This will recompress all files in the current directory with names
-ending in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+ending in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+(We use `ls' for brevity here; using `find' as above is more robust in
+the face of filenames containing unexpected characters.) Parallel can
+take arguments from the command line; the above can also be written as
+
+ parallel "zcat {} | bzip2 >{.}.bz2 && rm {}" ::: *.gz
If a command generates output, you may want to preserve the input
order in the output. For instance, the following command
{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel traceroute
- will display as output the traceroute invocation that finishes
-first. Using the `-k' option, as we saw above
+ will display as output the traceroute invocation that finishes first.
+Adding the `-k' option
{ echo foss.org.my ; echo debian.org; echo freenetproject.org; } | parallel -k traceroute
will ensure that the output of `traceroute foss.org.my' is displayed
first.
+ Finally, Parallel can be used to run a sequence of shell commands in
+parallel, similar to `cat file | bash'. It is not uncommon to take a
+list of filenames, create a series of shell commands to operate on
+them, and feed that list of commnds to a shell. Parallel can speed
+this up. Assuming that `file' contains a list of shell commands, one
+per line,
+
+ parallel -j 10 < file
+
+will evaluate the commands using the shell (since no explicit command is
+supplied as an argument), in blocks of ten shell jobs at a time.
+

File: bashref.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features
@@ -1074,9 +1159,10 @@ no new process is created to interpret them.
Functions are declared using this syntax:
NAME () COMPOUND-COMMAND [ REDIRECTIONS ]
- or
- `function' NAME [()] COMPOUND-COMMAND [ REDIRECTIONS ]
+ or
+
+ function NAME [()] COMPOUND-COMMAND [ REDIRECTIONS ]
This defines a shell function named NAME. The reserved word
`function' is optional. If the `function' reserved word is supplied,
@@ -1084,7 +1170,9 @@ the parentheses are optional. The BODY of the function is the compound
command COMPOUND-COMMAND (*note Compound Commands::). That command is
usually a LIST enclosed between { and }, but may be any compound
command listed above. COMPOUND-COMMAND is executed whenever NAME is
-specified as the name of a command. Any redirections (*note
+specified as the name of a command. When the shell is in POSIX mode
+(*note Bash POSIX Mode::), NAME may not be the same as one of the
+special builtins (*note Special Builtins::). Any redirections (*note
Redirections::) associated with the shell function are performed when
the function is executed.
@@ -1141,9 +1229,9 @@ builtin. These variables are visible only to the function and the
commands it invokes.
Function names and definitions may be listed with the `-f' option to
-the `declare' or `typeset' builtin commands (*note Bash Builtins::).
-The `-F' option to `declare' or `typeset' will list the function names
-only (and optionally the source file and line number, if the `extdebug'
+the `declare' (`typeset') builtin command (*note Bash Builtins::). The
+`-F' option to `declare' or `typeset' will list the function names only
+(and optionally the source file and line number, if the `extdebug'
shell option is enabled). Functions may be exported so that subshells
automatically have them defined with the `-f' option to the `export'
builtin (*note Bourne Shell Builtins::). Note that shell functions and
@@ -1188,7 +1276,10 @@ is not used (*note Arithmetic Expansion::). Word splitting is not
performed, with the exception of `"$@"' as explained below. Filename
expansion is not performed. Assignment statements may also appear as
arguments to the `alias', `declare', `typeset', `export', `readonly',
-and `local' builtin commands.
+and `local' builtin commands. When in POSIX mode (*note Bash POSIX
+Mode::), these builtins may appear in a command after one or more
+instances of the `command' builtin and retain these assignment
+statement properties.
In the context where an assignment statement is assigning a value to
a shell variable or array index (*note Arrays::), the `+=' operator can
@@ -1204,6 +1295,32 @@ key-value pairs in an associative array. When applied to a
string-valued variable, VALUE is expanded and appended to the
variable's value.
+ A variable can be assigned the NAMEREF attribute using the `-n'
+option to the \fBdeclare\fP or \fBlocal\fP builtin commands (*note Bash
+Builtins::) to create a NAMEREF, or a reference to another variable.
+This allows variables to be manipulated indirectly. Whenever the
+nameref variable is referenced or assigned to, the operation is
+actually performed on the variable specified by the nameref variable's
+value. A nameref is commonly used within shell functions to refer to a
+variable whose name is passed as an argument to the function. For
+instance, if a variable name is passed to a shell function as its first
+argument, running
+ declare -n ref=$1
+ inside the function creates a nameref variable REF whose value is
+the variable name passed as the first argument. References and
+assignments to REF are treated as references and assignments to the
+variable whose name was passed as `$1'.
+
+ If the control variable in a `for' loop has the nameref attribute,
+the list of words can be a list of shell variables, and a name reference
+will be established for each word in the list, in turn, when the loop is
+executed. Array variables cannot be given the `-n' attribute.
+However, nameref variables can reference array variables and subscripted
+array variables. Namerefs can be unset using the `-n' option to the
+`unset' builtin (*note Bourne Shell Builtins::). Otherwise, if `unset'
+is executed with the name of a nameref variable as an argument, the
+variable referenced by the nameref variable will be unset.
+

File: bashref.info, Node: Positional Parameters, Next: Special Parameters, Up: Shell Parameters
@@ -1233,63 +1350,69 @@ The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.
`*'
- Expands to the positional parameters, starting from one. When the
- expansion occurs within double quotes, it expands to a single word
- with the value of each parameter separated by the first character
- of the `IFS' special variable. That is, `"$*"' is equivalent to
- `"$1C$2C..."', where C is the first character of the value of the
- `IFS' variable. If `IFS' is unset, the parameters are separated
- by spaces. If `IFS' is null, the parameters are joined without
- intervening separators.
+ ($*) Expands to the positional parameters, starting from one.
+ When the expansion is not within double quotes, each positional
+ parameter expands to a separate word. In contexts where it is
+ performed, those words are subject to further word splitting and
+ pathname expansion. When the expansion occurs within double
+ quotes, it expands to a single word with the value of each
+ parameter separated by the first character of the `IFS' special
+ variable. That is, `"$*"' is equivalent to `"$1C$2C..."', where C
+ is the first character of the value of the `IFS' variable. If
+ `IFS' is unset, the parameters are separated by spaces. If `IFS'
+ is null, the parameters are joined without intervening separators.
`@'
- Expands to the positional parameters, starting from one. When the
- expansion occurs within double quotes, each parameter expands to a
- separate word. That is, `"$@"' is equivalent to `"$1" "$2" ...'.
- If the double-quoted expansion occurs within a word, the expansion
- of the first parameter is joined with the beginning part of the
- original word, and the expansion of the last parameter is joined
- with the last part of the original word. When there are no
- positional parameters, `"$@"' and `$@' expand to nothing (i.e.,
- they are removed).
+ ($@) Expands to the positional parameters, starting from one.
+ When the expansion occurs within double quotes, each parameter
+ expands to a separate word. That is, `"$@"' is equivalent to
+ `"$1" "$2" ...'. If the double-quoted expansion occurs within a
+ word, the expansion of the first parameter is joined with the
+ beginning part of the original word, and the expansion of the last
+ parameter is joined with the last part of the original word. When
+ there are no positional parameters, `"$@"' and `$@' expand to
+ nothing (i.e., they are removed).
`#'
- Expands to the number of positional parameters in decimal.
+ ($#) Expands to the number of positional parameters in decimal.
`?'
- Expands to the exit status of the most recently executed foreground
- pipeline.
+ ($?) Expands to the exit status of the most recently executed
+ foreground pipeline.
`-'
- (A hyphen.) Expands to the current option flags as specified upon
- invocation, by the `set' builtin command, or those set by the
+ ($-, a hyphen.) Expands to the current option flags as specified
+ upon invocation, by the `set' builtin command, or those set by the
shell itself (such as the `-i' option).
`$'
- Expands to the process ID of the shell. In a `()' subshell, it
- expands to the process ID of the invoking shell, not the subshell.
+ ($$) Expands to the process ID of the shell. In a `()' subshell,
+ it expands to the process ID of the invoking shell, not the
+ subshell.
`!'
- Expands to the process ID of the most recently executed background
- (asynchronous) command.
+ ($!) Expands to the process ID of the job most recently placed
+ into the background, whether executed as an asynchronous command
+ or using the `bg' builtin (*note Job Control Builtins::).
`0'
- Expands to the name of the shell or shell script. This is set at
- shell initialization. If Bash is invoked with a file of commands
- (*note Shell Scripts::), `$0' is set to the name of that file. If
- Bash is started with the `-c' option (*note Invoking Bash::), then
- `$0' is set to the first argument after the string to be executed,
- if one is present. Otherwise, it is set to the filename used to
- invoke Bash, as given by argument zero.
+ ($0) Expands to the name of the shell or shell script. This is
+ set at shell initialization. If Bash is invoked with a file of
+ commands (*note Shell Scripts::), `$0' is set to the name of that
+ file. If Bash is started with the `-c' option (*note Invoking
+ Bash::), then `$0' is set to the first argument after the string
+ to be executed, if one is present. Otherwise, it is set to the
+ filename used to invoke Bash, as given by argument zero.
`_'
- (An underscore.) At shell startup, set to the absolute pathname
- used to invoke the shell or shell script being executed as passed
- in the environment or argument list. Subsequently, expands to the
- last argument to the previous command, after expansion. Also set
- to the full pathname used to invoke each command executed and
- placed in the environment exported to that command. When checking
- mail, this parameter holds the name of the mail file.
+ ($_, an underscore.) At shell startup, set to the absolute
+ pathname used to invoke the shell or shell script being executed
+ as passed in the environment or argument list. Subsequently,
+ expands to the last argument to the previous command, after
+ expansion. Also set to the full pathname used to invoke each
+ command executed and placed in the environment exported to that
+ command. When checking mail, this parameter holds the name of the
+ mail file.

File: bashref.info, Node: Shell Expansions, Next: Redirections, Prev: Shell Parameters, Up: Basic Shell Features
@@ -1299,6 +1422,7 @@ File: bashref.info, Node: Shell Expansions, Next: Redirections, Prev: Shell P
Expansion is performed on the command line after it has been split into
`token's. There are seven kinds of expansion performed:
+
* brace expansion
* tilde expansion
@@ -1328,14 +1452,15 @@ Expansion is performed on the command line after it has been split into
* Quote Removal:: How and when quote characters are removed from
words.
- The order of expansions is: brace expansion, tilde expansion,
-parameter, variable, and arithmetic expansion and command substitution
-(done in a left-to-right fashion), word splitting, and filename
-expansion.
+ The order of expansions is: brace expansion; tilde expansion,
+parameter and variable expansion, arithmetic expansion, and command
+substitution (done in a left-to-right fashion); word splitting; and
+filename expansion.
On systems that can support it, there is an additional expansion
available: PROCESS SUBSTITUTION. This is performed at the same time as
-parameter, variable, and arithmetic expansion and command substitution.
+tilde, parameter, variable, and arithmetic expansion and command
+substitution.
Only brace expansion, word splitting, and filename expansion can
change the number of words of the expansion; other expansions expand a
@@ -1354,9 +1479,9 @@ File: bashref.info, Node: Brace Expansion, Next: Tilde Expansion, Up: Shell E
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.
+Filename Expansion::), but the filenames 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 seqeunce
+followed by either a series of comma-separated strings or a sequence
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
@@ -1375,10 +1500,10 @@ 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.
+to each character lexicographically between X and Y, inclusive, using
+the default C locale. 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
@@ -1436,7 +1561,7 @@ is left unchanged.
Each variable assignment is checked for unquoted tilde-prefixes
immediately following a `:' or the first `='. In these cases, tilde
-expansion is also performed. Consequently, one may use file names with
+expansion is also performed. Consequently, one may use filenames with
tildes in assignments to `PATH', `MAILPATH', and `CDPATH', and the
shell assigns the expanded value.
@@ -1466,7 +1591,6 @@ shell assigns the expanded value.
`~-N'
The string that would be displayed by `dirs -N'
-

File: bashref.info, Node: Shell Parameter Expansion, Next: Command Substitution, Prev: Tilde Expansion, Up: Shell Expansions
@@ -1485,28 +1609,29 @@ embedded arithmetic expansion, command substitution, or parameter
expansion.
The basic form of parameter expansion is ${PARAMETER}. The value of
-PARAMETER is substituted. The braces are required when PARAMETER is a
-positional parameter with more than one digit, or when PARAMETER is
-followed by a character that is not to be interpreted as part of its
-name.
-
- If the first character of PARAMETER is an exclamation point (!), a
-level of variable indirection is introduced. Bash uses the value of
-the variable formed from the rest of PARAMETER as the name of the
-variable; this variable is then expanded and that value is used in the
-rest of the substitution, rather than the value of PARAMETER itself.
-This is known as `indirect expansion'. The exceptions to this are the
-expansions of ${!PREFIX
-} and ${!NAME[@]} described below. The exclamation point must
-immediately follow the left brace in order to introduce indirection.
+PARAMETER is substituted. The PARAMETER is a shell parameter as
+described above (*note Shell Parameters::) or an array reference (*note
+Arrays::). The braces are required when PARAMETER is a positional
+parameter with more than one digit, or when PARAMETER is followed by a
+character that is not to be interpreted as part of its name.
+
+ If the first character of PARAMETER is an exclamation point (!), it
+introduces a level of variable indirection. Bash uses the value of the
+variable formed from the rest of PARAMETER as the name of the variable;
+this variable is then expanded and that value is used in the rest of
+the substitution, rather than the value of PARAMETER itself. This is
+known as `indirect expansion'. The exceptions to this are the
+expansions of ${!PREFIX*} and ${!NAME[@]} described below. The
+exclamation point must immediately follow the left brace in order to
+introduce indirection.
In each of the cases below, WORD is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the form described
-below, Bash tests for a parameter that is unset or null. Omitting the
-colon results in a test only for a parameter that is unset. Put
-another way, if the colon is included, the operator tests for both
+below (e.g., `:-'), Bash tests for a parameter that is unset or null.
+Omitting the colon results in a test only for a parameter that is unset.
+Put another way, if the colon is included, the operator tests for both
PARAMETER's existence and that its value is not null; if the colon is
omitted, the operator tests only for existence.
@@ -1532,28 +1657,133 @@ omitted, the operator tests only for existence.
`${PARAMETER:OFFSET}'
`${PARAMETER:OFFSET:LENGTH}'
- Expands to up to LENGTH characters of PARAMETER starting at the
- character specified by OFFSET. If LENGTH is omitted, expands to
- the substring of PARAMETER starting at the character specified by
- OFFSET. LENGTH and OFFSET are arithmetic expressions (*note Shell
- Arithmetic::). This is referred to as Substring Expansion.
+ This is referred to as Substring Expansion. It expands to up to
+ LENGTH characters of the value of PARAMETER starting at the
+ character specified by OFFSET. If PARAMETER is `@', an indexed
+ array subscripted by `@' or `*', or an associative array name, the
+ results differ as described below. If LENGTH is omitted, it
+ expands to the substring of the value of PARAMETER starting at the
+ character specified by OFFSET and extending to the end of the
+ value. LENGTH and OFFSET are arithmetic expressions (*note Shell
+ Arithmetic::).
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 LENGTH
- evaluates to a number less than zero, and PARAMETER is not `@' and
- not an indexed or associative array, it is interpreted as an
- offset from the end of the value of PARAMETER rather than a number
- of characters, and the expansion is the characters between the two
- offsets. If PARAMETER is `@', the result is LENGTH positional
- parameters beginning at 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.
+ as an offset in characters from the end of the value of PARAMETER.
+ If LENGTH evaluates to a number less than zero, it is interpreted
+ as an offset in characters from the end of the value of PARAMETER
+ rather than a number of characters, and the expansion is the
+ characters between OFFSET and that result. Note that a negative
+ offset must be separated from the colon by at least one space to
+ avoid being confused with the `:-' expansion.
+
+ Here are some examples illustrating substring expansion on
+ parameters and subscripted arrays:
+
+ $ string=01234567890abcdefgh
+ $ echo ${string:7}
+ 7890abcdefgh
+ $ echo ${string:7:0}
+
+ $ echo ${string:7:2}
+ 78
+ $ echo ${string:7:-2}
+ 7890abcdef
+ $ echo ${string: -7}
+ bcdefgh
+ $ echo ${string: -7:0}
+
+ $ echo ${string: -7:2}
+ bc
+ $ echo ${string: -7:-2}
+ bcdef
+ $ set -- 01234567890abcdefgh
+ $ echo ${1:7}
+ 7890abcdefgh
+ $ echo ${1:7:0}
+
+ $ echo ${1:7:2}
+ 78
+ $ echo ${1:7:-2}
+ 7890abcdef
+ $ echo ${1: -7}
+ bcdefgh
+ $ echo ${1: -7:0}
+
+ $ echo ${1: -7:2}
+ bc
+ $ echo ${1: -7:-2}
+ bcdef
+ $ array[0]=01234567890abcdefgh
+ $ echo ${array[0]:7}
+ 7890abcdefgh
+ $ echo ${array[0]:7:0}
+
+ $ echo ${array[0]:7:2}
+ 78
+ $ echo ${array[0]:7:-2}
+ 7890abcdef
+ $ echo ${array[0]: -7}
+ bcdefgh
+ $ echo ${array[0]: -7:0}
+
+ $ echo ${array[0]: -7:2}
+ bc
+ $ echo ${array[0]: -7:-2}
+ bcdef
+
+ If PARAMETER is `@', the result is LENGTH positional parameters
+ beginning at OFFSET. A negative OFFSET is taken relative to one
+ greater than the greatest positional parameter, so an offset of -1
+ evaluates to the last positional parameter. It is an expansion
+ error if LENGTH evaluates to a number less than zero.
+
+ The following examples illustrate substring expansion using
+ positional parameters:
+
+ $ set -- 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+ $ echo ${@:7}
+ 7 8 9 0 a b c d e f g h
+ $ echo ${@:7:0}
+
+ $ echo ${@:7:2}
+ 7 8
+ $ echo ${@:7:-2}
+ bash: -2: substring expression < 0
+ $ echo ${@: -7:2}
+ b c
+ $ echo ${@:0}
+ ./bash 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+ $ echo ${@:0:2}
+ ./bash 1
+ $ echo ${@: -7:0}
+
+ 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. It is
+ an expansion error if LENGTH evaluates to a number less than zero.
+
+ These examples show how you can use substring expansion with
+ indexed arrays:
+
+ $ array=(0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h)
+ $ echo ${array[@]:7}
+ 7 8 9 0 a b c d e f g h
+ $ echo ${array[@]:7:2}
+ 7 8
+ $ echo ${array[@]: -7:2}
+ b c
+ $ echo ${array[@]: -7:-2}
+ bash: -2: substring expression < 0
+ $ echo ${array[@]:0}
+ 0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+ $ echo ${array[@]:0:2}
+ 0 1
+ $ echo ${array[@]: -7:0}
+
+ Substring expansion applied to an associative array produces
+ undefined results.
+
Substring indexing is zero-based unless the positional parameters
are used, in which case the indexing starts at 1 by default. If
OFFSET is 0, and the positional parameters are used, `$@' is
@@ -1579,7 +1809,11 @@ omitted, the operator tests only for existence.
substituted. If PARAMETER is `*' or `@', the value substituted is
the number of positional parameters. If PARAMETER is an array
name subscripted by `*' or `@', the value substituted is the
- number of elements in the array.
+ number of elements in the array. If PARAMETER is an indexed array
+ name subscripted by a negative number, that number is interpreted
+ as relative to one greater than the maximum index of PARAMETER, so
+ negative indices count back from the end of the array, and an
+ index of -1 references the last element.
`${PARAMETER#WORD}'
`${PARAMETER##WORD}'
@@ -1632,19 +1866,21 @@ omitted, the operator tests only for existence.
`${PARAMETER,,PATTERN}'
This expansion modifies the case of alphabetic characters in
PARAMETER. The PATTERN is expanded to produce a pattern just as in
- filename 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 in the
- expanded value. 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.
-
+ filename expansion. Each character in the expanded value of
+ PARAMETER is tested against PATTERN, and, if it matches the
+ pattern, its case is converted. The pattern should not attempt to
+ match more than one character. 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 in the expanded value. 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
@@ -1691,8 +1927,10 @@ expansion is:
The expression is treated as if it were within double quotes, but a
double quote inside the parentheses is not treated specially. All
-tokens in the expression undergo parameter expansion, command
-substitution, and quote removal. Arithmetic expansions may be nested.
+tokens in the expression undergo parameter and variable expansion,
+command substitution, and quote removal. The result is treated as the
+arithmetic expression to be evaluated. Arithmetic expansions may be
+nested.
The evaluation is performed according to the rules listed below
(*note Shell Arithmetic::). If the expression is invalid, Bash prints
@@ -1735,19 +1973,20 @@ substitution, and arithmetic expansion that did not occur within double
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 `<space><tab><newline>', the
-default, then sequences of ` <space>', `<tab>', and `<newline>' 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.
+the results of the other expansions into words using these characters
+as field terminators. If `IFS' is unset, or its value is exactly
+`<space><tab><newline>', the default, then sequences of ` <space>',
+`<tab>', and `<newline>' 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
@@ -1769,19 +2008,20 @@ File: bashref.info, Node: Filename Expansion, Next: Quote Removal, Prev: Word
After word splitting, unless the `-f' option has been set (*note The
Set Builtin::), Bash scans each word for the characters `*', `?', and
`['. If one of these characters appears, then the word is regarded as
-a PATTERN, and replaced with an alphabetically sorted list of file
-names matching the pattern. If no matching file names are found, and
-the shell option `nullglob' is disabled, the word is left unchanged.
-If the `nullglob' option is set, and no matches are found, the word is
-removed. If the `failglob' shell option is set, and no matches are
-found, an error message is printed and the command is not executed. If
-the shell option `nocaseglob' is enabled, the match is performed
-without regard to the case of alphabetic characters.
+a PATTERN, and replaced with an alphabetically sorted list of filenames
+matching the pattern (*note Pattern Matching::). If no matching
+filenames are found, and the shell option `nullglob' is disabled, the
+word is left unchanged. If the `nullglob' option is set, and no
+matches are found, the word is removed. If the `failglob' shell option
+is set, and no matches are found, an error message is printed and the
+command is not executed. If the shell option `nocaseglob' is enabled,
+the match is performed without regard to the case of alphabetic
+characters.
When a pattern is used for filename expansion, the character `.' at
the start of a filename or immediately following a slash must be
matched explicitly, unless the shell option `dotglob' is set. When
-matching a file name, the slash character must always be matched
+matching a filename, the slash character must always be matched
explicitly. In other cases, the `.' character is not treated specially.
See the description of `shopt' in *note The Shopt Builtin::, for a
@@ -1826,15 +2066,15 @@ characters must be quoted if they are to be matched literally.
`[...]'
Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a RANGE EXPRESSION; any character
- that sorts between those two characters, inclusive, using the
+ that falls between those two characters, inclusive, using the
current locale's collating sequence and character set, is matched.
If the first character following the `[' is a `!' or a `^' then
any character not enclosed is matched. A `-' may be matched by
including it as the first or last character in the set. A `]' may
be matched by including it as the first character in the set. The
sorting order of characters in range expressions is determined by
- the current locale and the value of the `LC_COLLATE' shell
- variable, if set.
+ the current locale and the values of the `LC_COLLATE' and `LC_ALL'
+ shell variables, if set.
For example, in the default C locale, `[a-dx-z]' is equivalent to
`[abcdxyz]'. Many locales sort characters in dictionary order,
@@ -1843,7 +2083,7 @@ characters must be quoted if they are to be matched literally.
example. To obtain the traditional interpretation of ranges in
bracket expressions, you can force the use of the C locale by
setting the `LC_COLLATE' or `LC_ALL' environment variable to the
- value `C'.
+ value `C', or enable the `globasciiranges' shell option.
Within `[' and `]', CHARACTER CLASSES can be specified using the
syntax `[:'CLASS`:]', where CLASS is one of the following classes
@@ -1900,11 +2140,14 @@ File: bashref.info, Node: Redirections, Next: Executing Commands, Prev: Shell
================
Before a command is executed, its input and output may be REDIRECTED
-using a special notation interpreted by the shell. Redirection may
-also be used to open and close files for the current shell execution
-environment. The following redirection operators may precede or appear
-anywhere within a simple command or may follow a command. Redirections
-are processed in the order they appear, from left to right.
+using a special notation interpreted by the shell. Redirection allows
+commands' file handles to be duplicated, opened, closed, made to refer
+to different files, and can change the files the command reads from and
+writes to. Redirection may also be used to modify file handles in the
+current shell execution environment. The following redirection
+operators may precede or appear anywhere within a simple command or may
+follow a command. Redirections are processed in the order they appear,
+from left to right.
Each redirection that may be preceded by a file descriptor number
may instead be preceded by a word of the form {VARNAME}. In this case,
@@ -1952,14 +2195,13 @@ redirections, as described in the following table:
`/dev/tcp/HOST/PORT'
If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open a TCP
- connection to the corresponding socket.
+ integer port number or service name, Bash attempts to open the
+ corresponding TCP socket.
`/dev/udp/HOST/PORT'
If HOST is a valid hostname or Internet address, and PORT is an
- integer port number or service name, Bash attempts to open a UDP
- connection to the corresponding socket.
-
+ integer port number or service name, Bash attempts to open the
+ corresponding UDP socket.
A failure to open or create a file causes the redirection to fail.
@@ -2022,6 +2264,9 @@ error:
Of the two forms, the first is preferred. This is semantically
equivalent to
>WORD 2>&1
+ When using the second form, WORD may not expand to a number or `-'.
+If it does, other redirection operators apply (see Duplicating File
+Descriptors below) for compatibility reasons.
3.6.5 Appending Standard Output and Standard Error
--------------------------------------------------
@@ -2034,6 +2279,7 @@ file whose name is the expansion of WORD.
&>>WORD
This is semantically equivalent to
>>WORD 2>&1
+ (see Duplicating File Descriptors below).
3.6.6 Here Documents
--------------------
@@ -2048,12 +2294,12 @@ as the standard input for a command.
HERE-DOCUMENT
DELIMITER
- No parameter expansion, command substitution, arithmetic expansion,
-or filename expansion is performed on WORD. If any characters in WORD
-are quoted, the DELIMITER is the result of quote removal on WORD, and
-the lines in the here-document are not expanded. If WORD is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion. In the latter case,
+ No parameter and variable expansion, command substitution,
+arithmetic expansion, or filename expansion is performed on WORD. If
+any characters in WORD are quoted, the DELIMITER is the result of quote
+removal on WORD, and the lines in the here-document are not expanded.
+If WORD is unquoted, all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
the character sequence `\newline' is ignored, and `\' must be used to
quote the characters `\', `$', and ``'.
@@ -2068,8 +2314,11 @@ indented in a natural fashion.
A variant of here documents, the format is:
<<< WORD
- The WORD is expanded and supplied to the command on its standard
-input.
+ The WORD undergoes brace expansion, tilde expansion, parameter and
+variable expansion, command substitution, arithmetic expansion, and
+quote removal. Pathname expansion and word splitting are not performed.
+The result is supplied as a single string to the command on its
+standard input.
3.6.8 Duplicating File Descriptors
----------------------------------
@@ -2088,8 +2337,9 @@ the standard input (file descriptor 0) is used.
is used similarly to duplicate output file descriptors. If N is not
specified, the standard output (file descriptor 1) is used. If the
digits in WORD do not specify a file descriptor open for output, a
-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
+redirection error occurs. If WORD evaluates to `-', file descriptor N
+is closed. As a special case, if N is omitted, and WORD does not
+expand to one or more digits or `-', the standard output and standard
error are redirected as described previously.
3.6.9 Moving File Descriptors
@@ -2335,7 +2585,7 @@ parameter assignments are placed in the environment for a command, not
just those that precede the command name.
When Bash invokes an external command, the variable `$_' is set to
-the full path name of the command and passed to that command in its
+the full pathname of the command and passed to that command in its
environment.

@@ -2348,7 +2598,7 @@ 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
+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
@@ -2525,11 +2775,13 @@ standard.
`: (a colon)'
: [ARGUMENTS]
+
Do nothing beyond expanding ARGUMENTS and performing redirections.
The return status is zero.
`. (a period)'
. FILENAME [ARGUMENTS]
+
Read and execute commands from the FILENAME argument in the
current shell context. If FILENAME does not contain a slash, the
`PATH' variable is used to find FILENAME. When Bash is not in
@@ -2543,24 +2795,44 @@ standard.
`break'
break [N]
+
Exit from a `for', `while', `until', or `select' loop. If N is
supplied, the Nth enclosing loop is exited. N must be greater
than or equal to 1. The return status is zero unless N is not
greater than or equal to 1.
`cd'
- cd [-L|[-P [-e]]] [DIRECTORY]
+ cd [-L|[-P [-e]] [-@] [DIRECTORY]
+
Change the current working directory to DIRECTORY. If DIRECTORY
- is not given, the value of the `HOME' shell variable is used. If
- the shell variable `CDPATH' exists, it is used as a search path.
+ is not supplied, the value of the `HOME' shell variable is used.
+ Any additional arguments following DIRECTORY are ignored. If the
+ shell variable `CDPATH' exists, it is used as a search path: each
+ directory name in `CDPATH' is searched for DIRECTORY, with
+ alternative directory names in `CDPATH' separated by a colon (`:').
If DIRECTORY begins with a slash, `CDPATH' is not used.
- The `-P' option means to not follow symbolic links; symbolic links
- are followed by default or with the `-L' option. If the `-e'
- option is supplied with `-P' and the current working directory
- cannot be successfully determined after a successful directory
- change, `cd' will return an unsuccessful status. If DIRECTORY is
- `-', it is equivalent to `$OLDPWD'.
+ The `-P' option means to not follow symbolic links: symbolic links
+ are resolved while `cd' is traversing DIRECTORY and before
+ processing an instance of `..' in DIRECTORY.
+
+ By default, or when the `-L' option is supplied, symbolic links in
+ DIRECTORY are resolved after `cd' processes an instance of `..' in
+ DIRECTORY.
+
+ If `..' appears in DIRECTORY, it is processed by removing the
+ immediately preceding pathname component, back to a slash or the
+ beginning of DIRECTORY.
+
+ If the `-e' option is supplied with `-P' and the current working
+ directory cannot be successfully determined after a successful
+ directory change, `cd' will return an unsuccessful status.
+
+ On systems that support it, the `-@' option presents the extended
+ attributes associated with a file as a directory.
+
+ If DIRECTORY is `-', it is converted to `$OLDPWD' before the
+ directory change is attempted.
If a non-empty directory name from `CDPATH' is used, or if `-' is
the first argument, and the directory change is successful, the
@@ -2572,6 +2844,7 @@ standard.
`continue'
continue [N]
+
Resume the next iteration of an enclosing `for', `while', `until',
or `select' loop. If N is supplied, the execution of the Nth
enclosing loop is resumed. N must be greater than or equal to 1.
@@ -2580,6 +2853,7 @@ standard.
`eval'
eval [ARGUMENTS]
+
The arguments are concatenated together into a single command,
which is then read and executed, and its exit status returned as
the exit status of `eval'. If there are no arguments or only
@@ -2587,32 +2861,39 @@ standard.
`exec'
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 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.
+ If COMMAND cannot be executed for some reason, a non-interactive
+ shell exits, unless the `execfail' shell option is enabled. In
+ that case, it returns failure. An interactive shell returns
+ failure if the file cannot be executed. 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.
`exit'
exit [N]
+
Exit the shell, returning a status of N to the shell's parent. If
N is omitted, the exit status is that of the last command executed.
Any trap on `EXIT' is executed before the shell terminates.
`export'
export [-fn] [-p] [NAME[=VALUE]]
+
Mark each NAME to be passed to child processes in the environment.
If the `-f' option is supplied, the NAMEs refer to shell
functions; otherwise the names refer to shell variables. The `-n'
option means to no longer mark each NAME for export. If no NAMES
- are supplied, or if the `-p' option is given, a list of exported
- names is displayed. The `-p' option displays output in a form
- that may be reused as input. If a variable name is followed by
- =VALUE, the value of the variable is set to VALUE.
+ are supplied, or if the `-p' option is given, a list of names of
+ all exported variables is displayed. The `-p' option displays
+ output in a form 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 names is not a valid shell variable name, or `-f' is
@@ -2620,10 +2901,11 @@ standard.
`getopts'
getopts OPTSTRING NAME [ARGS]
+
`getopts' is used by shell scripts to parse positional parameters.
OPTSTRING contains the option characters to be recognized; if a
character is followed by a colon, the option is expected to have an
- argument, which should be separated from it by white space. The
+ argument, which should be separated from it by whitespace. The
colon (`:') and question mark (`?') may not be used as option
characters. Each time it is invoked, `getopts' places the next
option in the shell variable NAME, initializing NAME if it does
@@ -2644,7 +2926,7 @@ standard.
`getopts' can report errors in two ways. If the first character of
OPTSTRING is a colon, SILENT error reporting is used. In normal
- operation diagnostic messages are printed when invalid options or
+ operation, diagnostic messages are printed when invalid options or
missing option arguments are encountered. If the variable `OPTERR'
is set to 0, no error messages will be displayed, even if the first
character of `optstring' is not a colon.
@@ -2662,6 +2944,7 @@ standard.
`hash'
hash [-r] [-p FILENAME] [-dt] [NAME]
+
Each time `hash' is invoked, it remembers the full pathnames of the
commands specified as NAME arguments, so they need not be searched
for on subsequent invocations. The commands are found by
@@ -2681,6 +2964,7 @@ standard.
`pwd'
pwd [-LP]
+
Print the absolute pathname of the current working directory. If
the `-P' option is supplied, the pathname printed will not contain
symbolic links. If the `-L' option is supplied, the pathname
@@ -2689,36 +2973,43 @@ standard.
current directory or an invalid option is supplied.
`readonly'
- readonly [-aApf] [NAME[=VALUE]] ...
+ readonly [-aAf] [-p] [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 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.
+ each NAME refers to an associative array variable. If both
+ options are supplied, `-A' takes precedence. If no NAME arguments
+ are given, or if the `-p' option is supplied, a list of all
+ readonly names is printed. The other options may be used to
+ restrict the output to a subset of the set of readonly names. 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]
- Cause a shell function to exit with the return value N. If N is
- not supplied, the return value is the exit status of the last
- command executed in the function. This may also be used to
- terminate execution of a script being executed with the `.' (or
- `source') builtin, returning either N or the exit status of the
- last command executed within the script as the exit status of the
- script. Any command associated with the `RETURN' trap is executed
- before execution resumes after the function or script. The return
- status is non-zero if `return' is used outside a function and not
- during the execution of a script by `.' or `source'.
+
+ Cause a shell function to stop executing and return the value N to
+ its caller. If N is not supplied, the return value is the exit
+ status of the last command executed in the function. `return' may
+ also be used to terminate execution of a script being executed
+ with the `.' (`source') builtin, returning either N or the exit
+ status of the last command executed within the script as the exit
+ status of the script. If N is supplied, the return value is its
+ least significant 8 bits. Any command associated with the
+ `RETURN' trap is executed before execution resumes after the
+ function or script. The return status is non-zero if `return' is
+ supplied a non-numeric argument or is used outside a function and
+ not during the execution of a script by `.' or `source'.
`shift'
shift [N]
+
Shift the positional parameters to the left by N. The positional
parameters from N+1 ... `$#' are renamed to `$1' ... `$#'-N.
Parameters represented by the numbers `$#' to `$#'-N+1 are unset.
@@ -2730,11 +3021,14 @@ standard.
`test'
`['
- 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::.
- `test' does not accept any options, nor does it accept and ignore
- an argument of `--' as signifying the end of options.
+ test EXPR
+
+ Evaluate a conditional express ion EXPR and return a status of 0
+ (true) or 1 (false). Each operator and operand must be a separate
+ argument. Expressions are composed of the 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.
When the `[' form is used, the last argument to the command must
be a `]'.
@@ -2804,11 +3098,13 @@ standard.
`times'
times
+
Print out the user and system times used by the shell and its
children. The return status is zero.
`trap'
trap [-lp] [ARG] [SIGSPEC ...]
+
The commands in ARG are to be read and executed when the shell
receives signal SIGSPEC. If ARG is absent (and there is a single
SIGSPEC) or equal to `-', each specified signal's disposition is
@@ -2836,14 +3132,16 @@ standard.
builtins finishes executing.
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
+ pipeline (which may consist of a single simple command), a list,
+ or a compound command returns 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 following the `if'
or `elif' reserved words, 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.
+ `||' list except the command following the final `&&' or `||', any
+ command in a pipeline but the last, or if the command's return
+ status is being inverted using `!'. These are the same conditions
+ obeyed by the `errexit' (`-e') option.
Signals ignored upon entry to the shell cannot be trapped or reset.
Trapped signals that are not being ignored are reset to their
@@ -2855,6 +3153,7 @@ standard.
`umask'
umask [-p] [-S] [MODE]
+
Set the shell process's file creation mask to MODE. If MODE
begins with a digit, it is interpreted as an octal number; if not,
it is interpreted as a symbolic mode mask similar to that accepted
@@ -2871,13 +3170,19 @@ standard.
results in permissions of `755'.
`unset'
- unset [-fv] [NAME]
- Each variable or function NAME is removed. If no options are
- supplied, or the `-v' option is given, each NAME refers to a shell
- variable. If the `-f' option is given, the NAMEs refer to shell
- functions, and the function definition is removed. Readonly
- variables and functions may not be unset. The return status is
- zero unless a NAME is readonly.
+ unset [-fnv] [NAME]
+
+ Remove each variable or function NAME. If the `-v' option is
+ given, each NAME refers to a shell variable and that variable is
+ remvoved. If the `-f' option is given, the NAMEs refer to shell
+ functions, and the function definition is removed. If the `-n'
+ option is supplied, and NAME is a variable with the NAMEREF
+ attribute, NAME will be unset rather than the variable it
+ references. `-n' has no effect if the `-f' option is supplied.
+ If no options are supplied, each NAME refers to a variable; if
+ there is no variable by that name, any function with that name is
+ unset. Readonly variables and functions may not be unset. The
+ return status is zero unless a NAME is readonly.

File: bashref.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands
@@ -2890,7 +3195,7 @@ been extended in Bash. Some of these commands are specified in the
POSIX standard.
`alias'
- alias [`-p'] [NAME[=VALUE] ...]
+ alias [-p] [NAME[=VALUE] ...]
Without arguments or with the `-p' option, `alias' prints the list
of aliases on the standard output in a form that allows them to be
@@ -2900,7 +3205,7 @@ POSIX standard.
Aliases::.
`bind'
- bind [-m KEYMAP] [-lpsvPSV]
+ bind [-m KEYMAP] [-lpsvPSVX]
bind [-m KEYMAP] [-q FUNCTION] [-u FUNCTION] [-r KEYSEQ]
bind [-m KEYMAP] -f FILENAME
bind [-m KEYMAP] -x KEYSEQ:SHELL-COMMAND
@@ -2973,11 +3278,16 @@ POSIX standard.
changes the value of `READLINE_LINE' or `READLINE_POINT',
those new values will be reflected in the editing state.
+ `-X'
+ List all key sequences bound to shell commands and the
+ associated commands in a format that can be reused as input.
+
The return status is zero unless an invalid option is supplied or
an error occurs.
`builtin'
builtin [SHELL-BUILTIN [ARGS]]
+
Run a shell builtin, passing it ARGS, and return its exit status.
This is useful when defining a shell function with the same name
as a shell builtin, retaining the functionality of the builtin
@@ -2986,6 +3296,7 @@ POSIX standard.
`caller'
caller [EXPR]
+
Returns the context of any active subroutine call (a shell
function or a script executed with the `.' or `source' builtins).
@@ -3003,6 +3314,7 @@ POSIX standard.
`command'
command [-pVv] COMMAND [ARGUMENTS ...]
+
Runs COMMAND with ARGUMENTS ignoring any shell function named
COMMAND. Only shell builtin commands or commands found by
searching the `PATH' are executed. If there is a shell function
@@ -3021,14 +3333,14 @@ POSIX standard.
non-zero if not.
`declare'
- declare [-aAfFilrtux] [-p] [NAME[=VALUE] ...]
+ declare [-aAfFgilnrtux] [-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 with NAME arguments, additional options
- are ignored.
+ NAME. When `-p' is used with NAME arguments, additional options,
+ other than `-f' and `-F', are ignored.
When `-p' is supplied without NAME arguments, `declare' will
display the attributes and values of all variables having the
@@ -3044,8 +3356,8 @@ POSIX standard.
are displayed as well. `-F' implies `-f'.
The `-g' option forces variables to be created or modified at the
- global scope, even when \fBdeclare\fP is executed in a shell
- function. It is ignored in all other cases.
+ global scope, even when `declare' is executed in a shell function.
+ It is ignored in all other cases.
The following options can be used to restrict output to variables
with the specified attributes or to give variables attributes:
@@ -3069,6 +3381,14 @@ POSIX standard.
characters are converted to lower-case. The upper-case
attribute is disabled.
+ `-n'
+ Give each NAME the NAMEREF attribute, making it a name
+ reference to another variable. That other variable is
+ defined by the value of NAME. All references and assignments
+ to NAME, except for changing the `-n' attribute itself, are
+ performed on the variable referenced by NAME's value. The
+ `-n' attribute cannot be applied to array variables.
+
`-r'
Make NAMEs readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
@@ -3094,6 +3414,10 @@ POSIX standard.
command, unless the `-g' option is used. If a variable name is
followed by =VALUE, the value of the variable is set to VALUE.
+ When using `-a' or `-A' and the compound assignment syntax to
+ create array variables, additional attributes do not take effect
+ until subsequent assignments.
+
The return status is zero unless an invalid option is encountered,
an attempt is made to define a function using `-f foo=bar', an
attempt is made to assign a value to a readonly variable, an
@@ -3106,16 +3430,17 @@ POSIX standard.
`echo'
echo [-neE] [ARG ...]
+
Output the ARGs, separated by spaces, terminated with a newline.
- The return status is always 0. If `-n' is specified, the trailing
- newline is suppressed. If the `-e' option is given,
- interpretation of the following backslash-escaped characters is
- enabled. The `-E' option disables the interpretation of these
- escape characters, even on systems where they are interpreted by
- default. The `xpg_echo' shell option may be used to dynamically
- determine whether or not `echo' expands these escape characters by
- default. `echo' does not interpret `--' to mean the end of
- options.
+ The return status is 0 unless a write error occurs. If `-n' is
+ specified, the trailing newline is suppressed. If the `-e' option
+ is given, interpretation of the following backslash-escaped
+ characters is enabled. The `-E' option disables the
+ interpretation of these escape characters, even on systems where
+ they are interpreted by default. The `xpg_echo' shell option may
+ be used to dynamically determine whether or not `echo' expands
+ these escape characters by default. `echo' does not interpret
+ `--' to mean the end of options.
`echo' interprets the following escape sequences:
`\a'
@@ -3167,6 +3492,7 @@ POSIX standard.
`enable'
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
@@ -3195,6 +3521,7 @@ POSIX standard.
`help'
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.
@@ -3214,7 +3541,8 @@ POSIX standard.
The return status is zero unless no command matches PATTERN.
`let'
- let EXPRESSION [EXPRESSION]
+ 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
@@ -3222,6 +3550,7 @@ POSIX standard.
`local'
local [OPTION] NAME[=VALUE] ...
+
For each argument, a local variable named NAME is created, and
assigned VALUE. The OPTION can be any of the options accepted by
`declare'. `local' can only be used within a function; it makes
@@ -3232,15 +3561,18 @@ POSIX standard.
`logout'
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]
+ mapfile [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
+ [-C CALLBACK] [-c QUANTUM] [ARRAY]
+
Read lines from the standard input into the indexed 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.
@@ -3282,6 +3614,7 @@ POSIX standard.
`printf'
printf [-v VAR] FORMAT [ARGUMENTS]
+
Write the formatted ARGUMENTS to the standard output under the
control of the FORMAT. The `-v' option causes the output to be
assigned to the variable VAR rather than being printed to the
@@ -3296,23 +3629,25 @@ POSIX standard.
following extensions:
`%b'
- causes `printf' to expand backslash escape sequences in the
- corresponding ARGUMENT, (except that `\c' terminates output,
+ Causes `printf' to expand backslash escape sequences in the
+ corresponding ARGUMENT, except that `\c' terminates output,
backslashes in `\'', `\"', and `\?' are not removed, and
octal escapes beginning with `\0' may contain up to four
- digits).
+ digits.
`%q'
- causes `printf' to output the corresponding ARGUMENT in a
+ Causes `printf' to output the corresponding ARGUMENT in a
format that can be reused as shell input.
`%(DATEFMT)T'
- causes `printf' to output the date-time string resulting from
+ Causes `printf' to output the date-time string resulting from
using DATEFMT as a format string for `strftime'(3). The
corresponding ARGUMENT is an integer representing the number
of seconds since the epoch. Two special argument values may
be used: -1 represents the current time, and -2 represents
- the time the shell was invoked.
+ the time the shell was invoked. If no argument is specified,
+ conversion behaves as if -1 had been given. This is an
+ exception to the usual `printf' behavior.
Arguments to non-string format specifiers are treated as C
language constants, except that a leading plus or minus sign is
@@ -3326,7 +3661,9 @@ POSIX standard.
success, non-zero on failure.
`read'
- read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS] [-N NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...]
+ read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS]
+ [-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
@@ -3334,13 +3671,16 @@ POSIX standard.
separators assigned to the last NAME. If there are fewer words
read from the input stream than names, the remaining names are
assigned empty values. The characters in the value of the `IFS'
- variable are used to split the line into words. The backslash
- character `\' may be used to remove any special meaning for the
- 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 (in which case the return code is greater than 128), or
- an invalid file descriptor is supplied as the argument to `-u'.
+ variable are used to split the line into words using the same
+ rules the shell uses for expansion (described above in *note Word
+ Splitting::). The backslash character `\' may be used to remove
+ any special meaning for the 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 (in which case the
+ return code is greater than 128), a variable assignment error
+ (such as assigning to a readonly variable) occurs, or an invalid
+ file descriptor is supplied as the argument to `-u'.
Options, if supplied, have the following meanings:
@@ -3392,22 +3732,25 @@ POSIX standard.
`-t TIMEOUT'
Cause `read' to time out and return failure if a complete
- 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
+ line of input (or a specified number of characters) 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 `read' times out, `read'
+ saves any partial input read into the specified variable NAME.
+ If TIMEOUT is 0, `read' returns immediately, without trying to
+ read and data. The exit status is 0 if input is available on
+ the specified file descriptor, non-zero otherwise. The exit
status is greater than 128 if the timeout is exceeded.
`-u FD'
Read input from file descriptor FD.
-
`readarray'
- readarray [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD] [
- -C CALLBACK] [-c QUANTUM] [ARRAY]
+ readarray [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD]
+ [-C CALLBACK] [-c QUANTUM] [ARRAY]
+
Read lines from the standard input into the indexed array variable
ARRAY, or from file descriptor FD if the `-u' option is supplied.
@@ -3415,10 +3758,12 @@ POSIX standard.
`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.
@@ -3435,8 +3780,8 @@ POSIX standard.
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 a command is hashed, `-p' and `-P' print the hashed value,
+ which is 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
@@ -3449,16 +3794,18 @@ POSIX standard.
if any are not found.
`typeset'
- typeset [-afFrxi] [-p] [NAME[=VALUE] ...]
+ typeset [-afFgrxilnrtux] [-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.
+ shell. It is a synonym for the `declare' builtin command.
`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.
@@ -3526,19 +3873,19 @@ POSIX standard.
`-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. 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,
- except for `-t', which is in seconds, `-p', which is in units of
- 512-byte blocks, and `-n' and `-u', which are unscaled values.
+ If LIMIT is given, and the `-a' option is not used, LIMIT 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. 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, except for `-t',
+ which is in seconds; `-p', which is in units of 512-byte blocks;
+ and `-T', `-b', `-n' and `-u', which are unscaled values.
The return status is zero unless an invalid option or argument is
supplied, or an error occurs while setting a new limit.
@@ -3549,7 +3896,6 @@ POSIX standard.
Remove each NAME from the list of aliases. If `-a' is supplied,
all aliases are removed. Aliases are described in *note Aliases::.
-

File: bashref.info, Node: Modifying Shell Behavior, Next: Special Builtins, Prev: Bash Builtins, Up: Shell Builtin Commands
@@ -3598,23 +3944,34 @@ parameters, or to display the names and values of shell variables.
`-e'
Exit immediately if a pipeline (*note Pipelines::), which may
consist of a single simple command (*note Simple Commands::),
- a subshell command enclosed in parentheses (*note Command
- Grouping::), or one of the commands executed as part of a
- command list enclosed by braces (*note Command Grouping::)
- returns a non-zero status. The shell does not exit if 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 any command executed in a `&&' or
- `||' list except the command following the final `&&' or `||',
- any command in a pipeline but the last, or if the command's
- return status is being inverted with `!'. A trap on `ERR',
- if set, is executed before the shell exits.
+ a list (*note Lists::), or a compound command (*note Compound
+ Commands::) returns a non-zero status. The shell does not
+ exit if 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 any command executed
+ in a `&&' or `||' list except the command following the final
+ `&&' or `||', any command in a pipeline but the last, or if
+ the command's return status is being inverted with `!'. If a
+ compound command other than a subshell returns a non-zero
+ status because a command failed while `-e' was being ignored,
+ the shell does not exit. A trap on `ERR', if set, is
+ executed before the shell exits.
This option applies to the shell environment and each
subshell environment separately (*note Command Execution
Environment::), and may cause subshells to exit before
executing all the commands in the subshell.
+ If a compound command or shell function executes in a context
+ where `-e' is being ignored, none of the commands executed
+ within the compound command or function body will be affected
+ by the `-e' setting, even if `-e' is set and a command
+ returns a failure status. If a compound command or shell
+ function sets `-e' while executing in a context where `-e' is
+ ignored, that setting will not have any effect until the
+ compound command or the command containing the function call
+ completes.
+
`-f'
Disable filename expansion (globbing).
@@ -3628,7 +3985,9 @@ parameters, or to display the names and values of shell variables.
the command name.
`-m'
- Job control is enabled (*note Job Control::).
+ Job control is enabled (*note Job Control::). All processes
+ run in a separate process group. When a background job
+ completes, the shell prints a line containing its exit status.
`-n'
Read commands but do not execute them; this may be used to
@@ -3781,11 +4140,11 @@ parameters, or to display the names and values of shell variables.
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.
+ If set, do not resolve 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:
@@ -3839,11 +4198,15 @@ 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:
+
+ Toggle the values of settings controlling optional shell behavior.
+ The settings can be either those listed below, or, if the `-o'
+ option is used, those available with the `-o' option to the `set'
+ builtin command (*note The Set Builtin::). 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.
@@ -3861,9 +4224,8 @@ This builtin allows you to change additional shell optional behavior.
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.
+ If either `-s' or `-u' is used with no OPTNAME arguments, `shopt'
+ shows only those options which are set or unset, respectively.
Unless otherwise noted, the `shopt' options are disabled (off) by
default.
@@ -3906,7 +4268,7 @@ This builtin allows you to change additional shell optional behavior.
are stopped.
`checkwinsize'
- If set, Bash checks the window size after each command and,
+ If set, Bash checks the window size after each command and,
if necessary, updates the values of `LINES' and `COLUMNS'.
`cmdhist'
@@ -3917,30 +4279,59 @@ This builtin allows you to change additional shell optional behavior.
`compat31'
If set, Bash changes its behavior to that of version 3.1 with
respect to quoted arguments to the conditional command's `=~'
- operator.
+ operator and with respect to locale-specific string
+ comparison when using the `[[' conditional command's `<' and
+ `>' operators. Bash versions prior to bash-4.1 use ASCII
+ collation and strcmp(3); bash-4.1 and later use the current
+ locale's collation sequence and strcoll(3).
`compat32'
If set, Bash changes its behavior to that of version 3.2 with
respect to locale-specific string comparison when using the
- `[[' conditional command's `<' and `>' operators. Bash
- versions prior to bash-4.0 use ASCII collation and strcmp(3);
- bash-4.1 and later use the current locale's collation
- sequence and strcoll(3).
+ `[[' conditional command's `<' and `>' operators (see
+ previous item).
`compat40'
If set, Bash changes its behavior to that of version 4.0 with
respect to locale-specific string comparison when using the
`[[' conditional command's `<' and `>' operators (see
- previous item) and the effect of interrupting a command list.
+ description of `compat31') and the effect of interrupting a
+ command list. Bash versions 4.0 and later interrupt the list
+ as if the shell received the interrupt; previous versions
+ continue with the next command in the list.
`compat41'
- If set, Bash, when in posix mode, treats a single quote in a
+ If set, Bash, when in POSIX mode, treats a single quote in a
double-quoted parameter expansion as a special character.
The single quotes must match (an even number) and the
characters between the single quotes are considered quoted.
This is the behavior of POSIX mode through version 4.1. The
default Bash behavior remains as in previous versions.
+ `compat42'
+ If set, Bash does not process the replacement string in the
+ pattern substitution word expansion using quote removal.
+
+ `complete_fullquote'
+ If set, Bash quotes all shell metacharacters in filenames and
+ directory names when performing completion. If not set, Bash
+ removes metacharacters such as the dollar sign from the set of
+ characters that will be quoted in completed filenames when
+ these metacharacters appear in shell variable references in
+ words to be completed. This means that dollar signs in
+ variable names that expand to directories will not be quoted;
+ however, any dollar signs appearing in filenames will not be
+ quoted, either. This is active only when bash is using
+ backslashes to quote completed filenames. This variable is
+ set by default, which is the default Bash behavior in
+ versions through 4.2.
+
+ `direxpand'
+ If set, Bash replaces directory names with the results of
+ word expansion when performing filename completion. This
+ changes the contents of the readline editing buffer. If not
+ set, Bash attempts to preserve what the user typed.
+
`dirspell'
If set, Bash attempts spelling correction on directory names
during word completion if the directory name initially
@@ -4009,9 +4400,18 @@ This builtin allows you to change additional shell optional behavior.
*Note Bash Variables::, for a description of `FIGNORE'. This
option is enabled by default.
+ `globasciiranges'
+ If set, range expressions used in pattern matching bracket
+ expressions (*note Pattern Matching::) behave as if in the
+ traditional C locale when performing comparisons. That is,
+ the current locale's collating sequence is not taken into
+ account, so `b' will not collate between `A' and `B', and
+ upper-case and lower-case ASCII characters will collate
+ together.
+
`globstar'
If set, the pattern `**' used in a filename expansion context
- will match a files and zero or more directories and
+ will match all files and zero or more directories and
subdirectories. If the pattern is followed by a `/', only
directories and subdirectories match.
@@ -4094,8 +4494,8 @@ This builtin allows you to change additional shell optional behavior.
`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.
+ being expanded as described below (*note Controlling the
+ Prompt::). This option is enabled by default.
`restricted_shell'
The shell sets this option if it is started in restricted mode
@@ -4124,7 +4524,6 @@ This builtin allows you to change additional shell optional behavior.
the return status is zero unless an OPTNAME is not a valid shell
option.
-

File: bashref.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands
@@ -4199,7 +4598,7 @@ In some cases, Bash assigns a default value to the variable.
A colon-separated list of filenames which the shell periodically
checks for new mail. Each list entry can specify the message that
is printed when new mail arrives in the mail file by separating
- the file name from the message with a `?'. When used in the text
+ the filename from the message with a `?'. When used in the text
of the message, `$_' expands to the name of the current mail file.
`OPTARG'
@@ -4218,7 +4617,7 @@ In some cases, Bash assigns a default value to the variable.
`PS1'
The primary prompt string. The default value is `\s-\v\$ '.
- *Note Printing a Prompt::, for the complete list of escape
+ *Note Controlling the Prompt::, for the complete list of escape
sequences that are expanded before `PS1' is displayed.
`PS2'
@@ -4294,6 +4693,21 @@ Variables::).
unless the shell is executing a command as the result of a trap,
in which case it is the command executing at the time of the trap.
+`BASH_COMPAT'
+ The value is used to set the shell's compatibility level. *Note
+ The Shopt Builtin::, for a description of the various compatibility
+ levels and their effects. The value may be a decimal number
+ (e.g., 4.2) or an integer (e.g., 42) corresponding to the desired
+ compatibility level. If `BASH_COMPAT' is unset or set to the
+ empty string, the compatibility level is set to the default for
+ the current version. If `BASH_COMPAT' is set to a value that is
+ not one of the valid compatibility levels, the shell prints an
+ error message and sets the compatibility level to the default for
+ the current version. The valid compatibility levels correspond to
+ the compatibility options accepted by the `shopt' builtin
+ described above (for example, COMPAT42 means that 4.2 and 42 are
+ valid values). The current version is also a valid value.
+
`BASH_ENV'
If this variable is set when Bash is invoked to execute a shell
script, its value is expanded and used as the name of a startup
@@ -4327,8 +4741,9 @@ Variables::).
`${BASH_SOURCE[$i+1]}'
`BASH_SUBSHELL'
- Incremented by one each time a subshell or subshell environment is
- spawned. The initial value is 0.
+ Incremented by one within each subshell or subshell environment
+ when the shell begins executing in that environment. The initial
+ value is 0.
`BASH_VERSINFO'
A readonly array variable (*note Arrays::) whose members hold
@@ -4353,7 +4768,6 @@ Variables::).
`BASH_VERSINFO[5]'
The value of `MACHTYPE'.
-
`BASH_VERSION'
The version number of the current instance of Bash.
@@ -4368,10 +4782,18 @@ Variables::).
`BASH_XTRACEFD' to 2 (the standard error file descriptor) and then
unsetting it will result in the standard error being closed.
+`CHILD_MAX'
+ Set the number of exited child status values for the shell to
+ remember. Bash will not allow this value to be decreased below a
+ POSIX-mandated minimum, and there is a maximum value (currently
+ 8192) that this may not exceed. The minimum value is
+ system-dependent.
+
`COLUMNS'
Used by the `select' command to determine the terminal width when
- printing selection lists. Automatically set upon receipt of a
- `SIGWINCH'.
+ printing selection lists. Automatically set if the `checkwinsize'
+ option is enabled (*note The Shopt Builtin::), or in an
+ interactive shell upon receipt of a `SIGWINCH'.
`COMP_CWORD'
An index into `${COMP_WORDS}' of the word containing the current
@@ -4423,7 +4845,8 @@ Variables::).
`COMPREPLY'
An array variable from which Bash reads the possible completions
generated by a shell function invoked by the programmable
- completion facility (*note Programmable Completion::).
+ completion facility (*note Programmable Completion::). Each array
+ element contains one possible completion.
`COPROC'
An array variable created to hold the file descriptors for output
@@ -4458,9 +4881,9 @@ Variables::).
`FIGNORE'
A colon-separated list of suffixes to ignore when performing
- filename completion. A file name whose suffix matches one of the
- entries in `FIGNORE' is excluded from the list of matched file
- names. A sample value is `.o:~'
+ filename completion. A filename whose suffix matches one of the
+ entries in `FIGNORE' is excluded from the list of matched
+ filenames. A sample value is `.o:~'
`FUNCNAME'
An array variable containing the names of all shell functions
@@ -4540,10 +4963,13 @@ Variables::).
`HISTFILESIZE'
The maximum number of lines contained in the history file. When
this variable is assigned a value, the history file is truncated,
- if necessary, by removing the oldest entries, to contain no more
- than that number of lines. The history file is also truncated to
- this size after writing it when an interactive shell exits. The
- default value is 500.
+ if necessary, to contain no more than that number of lines by
+ removing the oldest entries. The history file is also truncated
+ to this size after writing it when a shell exits. If the value is
+ 0, the history file is truncated to zero size. Non-numeric values
+ and numeric values less than zero inhibit truncation. The shell
+ sets the default value to the value of `HISTSIZE' after reading
+ any startup files.
`HISTIGNORE'
A colon-separated list of patterns used to decide which command
@@ -4566,7 +4992,10 @@ Variables::).
`HISTSIZE'
The maximum number of commands to remember on the history list.
- The default value is 500.
+ If the value is 0, commands are not saved in the history list.
+ Numeric values less than zero result in every command being saved
+ on the history list (there is no limit). The shell sets the
+ default value to 500 after reading any startup files.
`HISTTIMEFORMAT'
If this variable is set and not null, its value is used as a
@@ -4642,8 +5071,9 @@ Variables::).
`LINES'
Used by the `select' command to determine the column length for
- printing selection lists. Automatically set upon receipt of a
- `SIGWINCH'.
+ printing selection lists. Automatically set if the `checkwinsize'
+ option is enabled (*note The Shopt Builtin::), or in an
+ interactive shell upon receipt of a `SIGWINCH'.
`MACHTYPE'
A string that fully describes the system type on which Bash is
@@ -4677,10 +5107,10 @@ Variables::).
foreground pipeline (which may contain only a single command).
`POSIXLY_CORRECT'
- If this variable is in the environment when `bash' starts, the
- shell enters POSIX mode (*note Bash POSIX Mode::) before reading
- the startup files, as if the `--posix' invocation option had been
- supplied. If it is set while the shell is running, `bash' enables
+ If this variable is in the environment when Bash starts, the shell
+ enters POSIX mode (*note Bash POSIX Mode::) before reading the
+ startup files, as if the `--posix' invocation option had been
+ supplied. If it is set while the shell is running, Bash enables
POSIX mode, as if the command
`set -o posix'
had been executed.
@@ -4696,7 +5126,7 @@ Variables::).
`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
+ the `\w' and `\W' prompt string escapes (*note Controlling the
Prompt::). Characters removed are replaced with an ellipsis.
`PS3'
@@ -4800,9 +5230,9 @@ Variables::).
from a terminal.
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.
+ seconds to wait for a line of input after issuing the primary
+ prompt. Bash terminates after waiting for that number of seconds
+ if a complete line of input does not arrive.
`TMPDIR'
If set, Bash uses its value as the name of a directory in which
@@ -4819,7 +5249,7 @@ File: bashref.info, Node: Bash Features, Next: Job Control, Prev: Shell Varia
6 Bash Features
***************
-This section describes features unique to Bash.
+This chapter describes features unique to Bash.
* Menu:
@@ -4833,7 +5263,7 @@ This section describes features unique to Bash.
* Aliases:: Substituting one command for another.
* Arrays:: Array Variables.
* The Directory Stack:: History of visited directories.
-* Printing a Prompt:: Controlling the PS1 string.
+* Controlling the Prompt:: Customizing the various prompt strings.
* The Restricted Shell:: A more controlled mode of shell execution.
* Bash POSIX Mode:: Making Bash behave more closely to what
the POSIX standard specifies.
@@ -4909,14 +5339,13 @@ single-character options to be recognized.
Show version information for this instance of Bash on the standard
output and exit successfully.
-
There are several single-character options that may be supplied at
invocation which are not available with the `set' builtin.
-`-c STRING'
- Read and execute commands from STRING after processing the
- options, then exit. Any remaining arguments are assigned to the
- positional parameters, starting with `$0'.
+`-c'
+ Read and execute commands from the first non-option ARGUMENT after
+ processing the options, then exit. Any remaining arguments are
+ assigned to the positional parameters, starting with `$0'.
`-i'
Force the shell to run interactively. Interactive shells are
@@ -4961,7 +5390,6 @@ invocation which are not available with the `set' builtin.
processing. Any arguments after the `--' are treated as filenames
and arguments.
-
A _login_ shell is one whose first character of argument zero is
`-', or one invoked with the `--login' option.
@@ -4988,7 +5416,7 @@ File: bashref.info, Node: Bash Startup Files, Next: Interactive Shells, Prev:
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
+expanded in filenames as described above under Tilde Expansion (*note
Tilde Expansion::).
Interactive shells are described in *note Interactive Shells::.
@@ -5031,7 +5459,7 @@ the name of a file to read and execute. Bash behaves as if the
following command were executed:
`if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi'
but the value of the `PATH' variable is not used to search for the
-file name.
+filename.
As noted above, if a non-interactive shell is invoked with the
`--login' option, Bash attempts to read and execute commands from the
@@ -5078,8 +5506,8 @@ 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.
+force another file to be read, but neither `rshd' nor `sshd' generally
+invoke the shell with those options or allow them to be specified.
Invoked with unequal effective and real UID/GIDs
................................................
@@ -5180,7 +5608,7 @@ several ways.
7. Command history (*note Bash History Facilities::) and history
expansion (*note History Interaction::) are enabled by default.
Bash will save the command history to the file named by `$HISTFILE'
- when an interactive shell exits.
+ when a shell with history enabled exits.
8. Alias expansion (*note Aliases::) is performed by default.
@@ -5336,6 +5764,9 @@ link itself.
True if the shell variable VARNAME is set (has been assigned a
value).
+`-R VARNAME'
+ True if the shell variable VARNAME is set and is a name reference.
+
`-z STRING'
True if the length of STRING is zero.
@@ -5345,8 +5776,11 @@ link itself.
`STRING1 == STRING2'
`STRING1 = STRING2'
- True if the strings are equal. `=' should be used with the `test'
- command for POSIX conformance.
+ True if the strings are equal. When used with the `[[' command,
+ this performs pattern matching as described above (*note
+ Conditional Constructs::).
+
+ `=' should be used with the `test' command for POSIX conformance.
`STRING1 != STRING2'
True if the strings are not equal.
@@ -5364,7 +5798,6 @@ link itself.
greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
positive or negative integers.
-

File: bashref.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
@@ -5450,12 +5883,12 @@ its INTEGER attribute turned on to be used in an expression.
Constants with a leading 0 are interpreted as octal numbers. A
leading `0x' or `0X' denotes hexadecimal. Otherwise, numbers take the
form [BASE`#']N, where the optional BASE is a decimal number between 2
-and 64 representing the arithmetic base, and N is a number in that
-base. If BASE`#' is omitted, then base 10 is used. The digits greater
-than 9 are represented by the lowercase letters, the uppercase letters,
-`@', and `_', in that order. If BASE is less than or equal to 36,
-lowercase and uppercase letters may be used interchangeably to
-represent numbers between 10 and 35.
+and 64 representing the arithmetic base, and N is a number in that base.
+If BASE`#' is omitted, then base 10 is used. When specifying N, he
+digits greater than 9 are represented by the lowercase letters, the
+uppercase letters, `@', and `_', in that order. If BASE is less than
+or equal to 36, lowercase and uppercase letters may be used
+interchangeably to represent numbers between 10 and 35.
Operators are evaluated in order of precedence. Sub-expressions in
parentheses are evaluated first and may override the precedence rules
@@ -5481,9 +5914,9 @@ including shell metacharacters. The first word of the replacement text
is tested for aliases, but a word that is identical to an alias being
expanded is not expanded a second time. This means that one may alias
`ls' to `"ls -F"', for instance, and Bash does not try to recursively
-expand the replacement text. If the last character of the alias value
-is a space or tab character, then the next command word following the
-alias is also checked for alias expansion.
+expand the replacement text. If the last character of the alias value
+is a BLANK, then the next command word following the alias is also
+checked for alias expansion.
Aliases are created and listed with the `alias' command, and removed
with the `unalias' command.
@@ -5524,24 +5957,22 @@ 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.
+(including arithmetic expressions (*note Shell Arithmetic::)) and are
+zero-based; associative arrays use arbitrary strings. Unless otherwise
+noted, indexed array indices must be non-negative integers.
An indexed array is created automatically if any variable is
assigned to using the syntax
- name[SUBSCRIPT]=VALUE
+ NAME[SUBSCRIPT]=VALUE
The SUBSCRIPT is treated as an arithmetic expression that must evaluate
-to a number. If SUBSCRIPT evaluates to a number less than zero, it is
-used as an offset from one greater than the array's maximum index (so a
-subcript of -1 refers to the last element of the array). To explicitly
-declare an array, use
+to a number. To explicitly declare an array, use
declare -a NAME
The syntax
declare -a NAME[SUBSCRIPT]
is also accepted; the SUBSCRIPT is ignored.
- Associative arrays are created using
+Associative arrays are created using
declare -A NAME.
Attributes may be specified for an array variable using the
@@ -5549,57 +5980,74 @@ declare an array, use
members of an array.
Arrays are assigned to using compound assignments of the form
- name=(value1 ... valueN)
+ NAME=(VALUE1 VALUE2 ... )
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
+assignments do not require anything but STRING. 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
+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
-with the shell's filename expansion operators. If the SUBSCRIPT is `@'
-or `*', the word expands to all members of the array NAME. These
-subscripts differ only when the word appears within double quotes. If
-the word is double-quoted, `${name[*]}' expands to a single word with
-the value of each array member separated by the first character of the
-`IFS' variable, and `${name[@]}' expands each element of NAME to a
-separate word. When there are no array members, `${name[@]}' expands
-to nothing. If the double-quoted expansion occurs within a word, the
-expansion of the first parameter is joined with the beginning part of
-the original word, and the expansion of the last parameter is joined
-with the last part of the original word. This is analogous to the
-expansion of the special parameters `@' 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 with a subscript of 0.
+ When assigning to an indexed array, if NAME is subscripted by a
+negative number, that number is interpreted as relative to one greater
+than the maximum index of NAME, so negative indices count back from the
+end of the array, and an index of -1 references the last element.
+
+ Any element of an array may be referenced using `${NAME[SUBSCRIPT]}'.
+The braces are required to avoid conflicts with the shell's filename
+expansion operators. If the SUBSCRIPT is `@' or `*', the word expands
+to all members of the array NAME. These subscripts differ only when
+the word appears within double quotes. If the word is double-quoted,
+`${NAME[*]}' expands to a single word with the value of each array
+member separated by the first character of the `IFS' variable, and
+`${NAME[@]}' expands each element of NAME to a separate word. When
+there are no array members, `${NAME[@]}' expands to nothing. If the
+double-quoted expansion occurs within a word, the expansion of the
+first parameter is joined with the beginning part of the original word,
+and the expansion of the last parameter is joined with the last part of
+the original word. This is analogous to the expansion of the special
+parameters `@' 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 with a subscript of 0. If the
+SUBSCRIPT used to reference an element of an indexed array evaluates to
+a number less than zero, it is interpreted as relative to one greater
+than the maximum index of the array, so negative indices count back
+from the end of the array, and an index of -1 refers to the last
+element.
An array variable is considered set if a subscript has been assigned
a value. The null string is a valid value.
- The `unset' builtin is used to destroy arrays. `unset'
-NAME[SUBSCRIPT] destroys the array element at index SUBSCRIPT. Care
-must be taken to avoid unwanted side effects caused by filename
-expansion. `unset' NAME, where NAME is an array, removes the entire
-array. A subscript of `*' or `@' also removes the entire array.
+ It is possible to obtain the keys (indices) of an array as well as
+the values. ${!NAME[@]} and ${!NAME[*]} expand to the indices assigned
+in array variable NAME. The treatment when in double quotes is similar
+to the expansion of the special parameters `@' and `*' within double
+quotes.
+
+ The `unset' builtin is used to destroy arrays. `unset
+NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
+Negative subscripts to indexed arrays are interpreted as described
+above. Care must be taken to avoid unwanted side effects caused by
+filename expansion. `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 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.
+associative array. If both options are supplied, `-A' takes precedence.
+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
+File: bashref.info, Node: The Directory Stack, Next: Controlling the Prompt, Prev: Arrays, Up: Bash Features
6.8 The Directory Stack
=======================
@@ -5625,26 +6073,18 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
------------------------------
`dirs'
- dirs [+N | -N] [-clpv]
+ dirs [-clpv] [+N | -N]
+
Display the list of currently remembered directories. Directories
are added to the list with the `pushd' command; the `popd' command
removes directories from the list.
- `+N'
- Displays the Nth directory (counting from the left of the
- list printed by `dirs' when invoked without options), starting
- with zero.
-
- `-N'
- Displays the Nth directory (counting from the right of the
- list printed by `dirs' when invoked without options), starting
- with zero.
`-c'
Clears the directory stack by deleting all of the elements.
`-l'
- Produces a longer listing; the default listing format uses a
- tilde to denote the home directory.
+ Produces a listing using full pathnames; the default listing
+ format uses a tilde to denote the home directory.
`-p'
Causes `dirs' to print the directory stack with one entry per
@@ -5654,15 +6094,31 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
Causes `dirs' to print the directory stack with one entry per
line, prefixing each entry with its index in the stack.
+ `+N'
+ Displays the Nth directory (counting from the left of the
+ list printed by `dirs' when invoked without options), starting
+ with zero.
+
+ `-N'
+ Displays the Nth directory (counting from the right of the
+ list printed by `dirs' when invoked without options), starting
+ with zero.
+
`popd'
- popd [+N | -N] [-n]
+ popd [-n] [+N | -N]
Remove the top entry from the directory stack, and `cd' to the new
top directory. When no arguments are given, `popd' removes the
top directory from the stack and performs a `cd' to the new top
directory. The elements are numbered from 0 starting at the first
- directory listed with `dirs'; i.e., `popd' is equivalent to `popd
- +0'.
+ directory listed with `dirs'; that is, `popd' is equivalent to
+ `popd +0'.
+
+ `-n'
+ Suppresses the normal change of directory when removing
+ directories from the stack, so that only the stack is
+ manipulated.
+
`+N'
Removes the Nth directory (counting from the left of the list
printed by `dirs'), starting with zero.
@@ -5671,13 +6127,8 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
Removes the Nth directory (counting from the right of the
list printed by `dirs'), starting with zero.
- `-n'
- Suppresses the normal change of directory when removing
- directories from the stack, so that only the stack is
- manipulated.
-
`pushd'
- pushd [-n] [+N | -N | DIR ]
+ 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
@@ -5700,11 +6151,11 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
`DIR'
Makes the current working directory be the top of the stack,
- and then executes the equivalent of ``cd' DIR'. `cd's to DIR.
-
+ making it the new current directory as if it had been
+ supplied as an argument to the `cd' builtin.

-File: bashref.info, Node: Printing a Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
+File: bashref.info, Node: Controlling the Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
6.9 Controlling the Prompt
==========================
@@ -5715,7 +6166,7 @@ non-null value, then the value is executed just as if it had been typed
on the command line.
In addition, the following table describes the special characters
-which can appear in the prompt variables:
+which can appear in the prompt variables `PS1' to `PS4':
`\a'
A bell character.
@@ -5814,7 +6265,7 @@ command substitution, arithmetic expansion, and quote removal, subject
to the value of the `promptvars' shell option (*note Bash Builtins::).

-File: bashref.info, Node: The Restricted Shell, Next: Bash POSIX Mode, Prev: Printing a Prompt, Up: Bash Features
+File: bashref.info, Node: The Restricted Shell, Next: Bash POSIX Mode, Prev: Controlling the Prompt, Up: Bash Features
6.10 The Restricted Shell
=========================
@@ -5910,147 +6361,164 @@ startup files.
8. Tilde expansion is only performed on assignments preceding a
command name, rather than on all assignment statements on the line.
- 9. The default history file is `~/.sh_history' (this is the default
+ 9. The `command' builtin does not prevent builtins that take
+ assignment statements as arguments from expanding them as
+ assignment statements; when not in POSIX mode, assignment builtins
+ lose their assignment statement expansion properties when preceded
+ by `command'.
+
+ 10. The default history file is `~/.sh_history' (this is the default
value of `$HISTFILE').
- 10. The output of `kill -l' prints all the signal names on a single
+ 11. The output of `kill -l' prints all the signal names on a single
line, separated by spaces, without the `SIG' prefix.
- 11. The `kill' builtin does not accept signal names with a `SIG'
+ 12. The `kill' builtin does not accept signal names with a `SIG'
prefix.
- 12. Non-interactive shells exit if FILENAME in `.' FILENAME is not
+ 13. Non-interactive shells exit if FILENAME in `.' FILENAME is not
found.
- 13. Non-interactive shells exit if a syntax error in an arithmetic
+ 14. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
- 14. Non-interactive shells exit if there is a syntax error in a script
+ 15. Non-interactive shells exit if there is a syntax error in a script
read with the `.' or `source' builtins, or in a string processed by
the `eval' builtin.
- 15. Redirection operators do not perform filename expansion on the word
+ 16. Redirection operators do not perform filename expansion on the word
in the redirection unless the shell is interactive.
- 16. Redirection operators do not perform word splitting on the word in
+ 17. Redirection operators do not perform word splitting on the word in
the redirection.
- 17. Function names must be valid shell `name's. That is, they may not
+ 18. Function names must be valid shell `name's. That is, they may not
contain characters other than letters, digits, and underscores, and
may not start with a digit. Declaring a function with an invalid
name causes a fatal syntax error in non-interactive shells.
- 18. POSIX special builtins are found before shell functions during
+ 19. Function names may not be the same as one of the POSIX special
+ builtins.
+
+ 20. POSIX special builtins are found before shell functions during
command lookup.
- 19. The `time' reserved word may be used by itself as a command. When
+ 21. The `time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The `TIMEFORMAT' variable controls the
format of the timing information.
- 20. When parsing and expanding a ${...} expansion that appears within
+ 22. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
- 21. The parser does not recognize `time' as a reserved word if the next
+ 23. The parser does not recognize `time' as a reserved word if the next
token begins with a `-'.
- 22. If a POSIX special builtin returns an error status, a
+ 24. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
- 23. A non-interactive shell exits with an error status if a variable
+ 25. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
- 24. A non-interactive shell exists with an error status if a variable
+ 26. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
special builtin, but not with any other simple command.
- 25. A non-interactive shell exits with an error status if the iteration
+ 27. A non-interactive shell exits with an error status if the iteration
variable in a `for' statement or the selection variable in a
`select' statement is a readonly variable.
- 26. Process substitution is not available.
+ 28. Process substitution is not available.
- 27. Assignment statements preceding POSIX special builtins persist in
+ 29. While variable indirection is available, it may not be applied to
+ the `#' and `?' special parameters.
+
+ 30. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
- 28. Assignment statements preceding shell function calls persist in the
+ 31. Assignment statements preceding shell function calls persist in the
shell environment after the function returns, as if a POSIX
special builtin command had been executed.
- 29. The `export' and `readonly' builtin commands display their output
+ 32. The `export' and `readonly' builtin commands display their output
in the format required by POSIX.
- 30. The `trap' builtin displays signal names without the leading `SIG'.
+ 33. The `trap' builtin displays signal names without the leading `SIG'.
- 31. The `trap' builtin doesn't check the first argument for a possible
+ 34. The `trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they
should use `-' as the first argument.
- 32. The `.' and `source' builtins do not search the current directory
+ 35. The `.' and `source' builtins do not search the current directory
for the filename argument if it is not found by searching `PATH'.
- 33. Subshells spawned to execute command substitutions inherit the
+ 36. Subshells spawned to execute command substitutions inherit the
value of the `-e' option from the parent shell. When not in POSIX
mode, Bash clears the `-e' option in such subshells.
- 34. Alias expansion is always enabled, even in non-interactive shells.
+ 37. Alias expansion is always enabled, even in non-interactive shells.
- 35. When the `alias' builtin displays alias definitions, it does not
+ 38. When the `alias' builtin displays alias definitions, it does not
display them with a leading `alias ' unless the `-p' option is
supplied.
- 36. When the `set' builtin is invoked without options, it does not
+ 39. When the `set' builtin is invoked without options, it does not
display shell function names and definitions.
- 37. When the `set' builtin is invoked without options, it displays
+ 40. When the `set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
- 38. When the `cd' builtin is invoked in LOGICAL mode, and the pathname
+ 41. When the `cd' builtin is invoked in LOGICAL mode, and the pathname
constructed from `$PWD' and the directory name supplied as an
argument does not refer to an existing directory, `cd' will fail
instead of falling back to PHYSICAL mode.
- 39. The `pwd' builtin verifies that the value it prints is the same as
+ 42. The `pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the `-P' option.
- 40. When listing the history, the `fc' builtin does not include an
+ 43. When listing the history, the `fc' builtin does not include an
indication of whether or not a history entry has been modified.
- 41. The default editor used by `fc' is `ed'.
+ 44. The default editor used by `fc' is `ed'.
- 42. The `type' and `command' builtins will not report a non-executable
+ 45. The `type' and `command' builtins will not report a non-executable
file as having been found, though the shell will attempt to
execute such a file if it is the only so-named file found in
`$PATH'.
- 43. The `vi' editing mode will invoke the `vi' editor directly when
+ 46. The `vi' editing mode will invoke the `vi' editor directly when
the `v' command is run, instead of checking `$VISUAL' and
`$EDITOR'.
- 44. When the `xpg_echo' option is enabled, Bash does not attempt to
+ 47. 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.
- 45. The `ulimit' builtin uses a block size of 512 bytes for the `-c'
+ 48. The `ulimit' builtin uses a block size of 512 bytes for the `-c'
and `-f' options.
- 46. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not
+ 49. The arrival of `SIGCHLD' when a trap is set on `SIGCHLD' does not
interrupt the `wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
+ 50. The `read' builtin may be interrupted by a signal for which a trap
+ has been set. If Bash receives a trapped signal while executing
+ `read', the trap handler executes and `read' returns an exit
+ status greater than 128.
+
There is other POSIX behavior that Bash does not implement by
default even when in POSIX mode. Specifically:
@@ -6147,10 +6615,10 @@ 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
-example, `%ce' refers to a stopped `ce' job. Using `%?ce', on the other
-hand, refers to any job containing the string `ce' in its command line.
-If the prefix or substring matches more than one job, Bash reports an
-error.
+example, `%ce' refers to a stopped `ce' job. Using `%?ce', on the
+other hand, refers to any job containing the string `ce' in its command
+line. If the prefix or substring matches more than one job, Bash
+reports an error.
Simply naming a job can be used to bring it into the foreground:
`%1' is a synonym for `fg %1', bringing job 1 from the background into
@@ -6180,6 +6648,7 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
`bg'
bg [JOBSPEC ...]
+
Resume each suspended job JOBSPEC in the background, as if it had
been started with `&'. If JOBSPEC is not supplied, the current
job is used. The return status is zero unless it is run when job
@@ -6189,6 +6658,7 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
`fg'
fg [JOBSPEC]
+
Resume the job JOBSPEC in the foreground and make it the current
job. If JOBSPEC is not supplied, the current job is used. The
return status is that of the command placed into the foreground,
@@ -6214,10 +6684,10 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
List only the process ID of the job's process group leader.
`-r'
- Restrict output to running jobs.
+ Display only running jobs.
`-s'
- Restrict output to stopped jobs.
+ Display only stopped jobs.
If JOBSPEC is given, output is restricted to information about
that job. If JOBSPEC is not supplied, the status of all jobs is
@@ -6231,6 +6701,7 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
`kill'
kill [-s SIGSPEC] [-n SIGNUM] [-SIGSPEC] JOBSPEC or PID
kill -l [EXIT_STATUS]
+
Send a signal specified by SIGSPEC or SIGNUM to the process named
by job specification JOBSPEC or process ID PID. SIGSPEC is either
a case-insensitive signal name such as `SIGINT' (with or without
@@ -6245,33 +6716,37 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
occurs or an invalid option is encountered.
`wait'
- wait [JOBSPEC or PID ...]
+ wait [-n] [JOBSPEC or PID ...]
+
Wait until the child process specified by each process ID PID or
job specification JOBSPEC exits and return the exit status of the
last command waited for. If a job spec is given, all processes in
the job are waited for. If no arguments are given, all currently
active child processes are waited for, and the return status is
- zero. If neither JOBSPEC nor PID specifies an active child process
- of the shell, the return status is 127.
+ zero. If the `-n' option is supplied, `wait' waits for any job to
+ terminate and returns its exit status. If neither JOBSPEC nor PID
+ specifies an active child process of the shell, the return status
+ is 127.
`disown'
disown [-ar] [-h] [JOBSPEC ...]
- Without options, each JOBSPEC is removed 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'. If JOBSPEC is not present, and
- neither the `-a' nor `-r' option is supplied, the current job is
- used. If no JOBSPEC is supplied, the `-a' option means to remove
- or mark all jobs; the `-r' option without a JOBSPEC argument
- restricts operation to running jobs.
+
+ Without options, remove each JOBSPEC 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'. If JOBSPEC is not present, and neither the
+ `-a' nor the `-r' option is supplied, the current job is used. If
+ no JOBSPEC is supplied, the `-a' option means to remove or mark
+ all jobs; the `-r' option without a JOBSPEC argument restricts
+ operation to running jobs.
`suspend'
suspend [-f]
+
Suspend the execution of this shell until it receives a `SIGCONT'
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
not accept JOBSPEC arguments. They must be supplied process IDs.
@@ -6332,6 +6807,8 @@ options to `set'.
a specific command.
* Programmable Completion Builtins:: Builtin commands to specify how to
complete arguments for a particular command.
+* A Programmable Completion Example:: An example shell function for
+ generating possible completions.

File: bashref.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
@@ -6667,6 +7144,12 @@ Variable Settings
characters treated specially by the kernel's terminal driver
to their Readline equivalents.
+ `colored-stats'
+ If set to `on', Readline displays possible completions using
+ different colors to indicate their file type. The color
+ definitions are taken from the value of the `LS_COLORS'
+ environment variable. The default is `off'.
+
`comment-begin'
The string to insert at the beginning of the line when the
`insert-comment' command is executed. The default value is
@@ -6752,8 +7235,10 @@ Variable Settings
`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.
+ history list. If set to zero, any existing history entries
+ are deleted and no new entries are saved. If set to a value
+ less than zero, the number of history entries is not limited.
+ By default, the number of history entries is not limited.
`horizontal-scroll-mode'
This variable can be set to either `on' or `off'. Setting it
@@ -6785,6 +7270,22 @@ Variable Settings
default value is `emacs'. The value of the `editing-mode'
variable also affects the default keymap.
+ `keyseq-timeout'
+ Specifies the duration Readline will wait for a character
+ when reading an ambiguous key sequence (one that can form a
+ complete key sequence using the input read so far, or can
+ take additional input to complete a longer key sequence). If
+ no input is received within the timeout, Readline will use
+ the shorter but complete key sequence. Readline uses this
+ value to determine whether or not input is available on the
+ current input source (`rl_instream' by default). The value
+ is specified in milliseconds, so a value of 1000 means that
+ Readline will wait one second for additional input. If this
+ variable is set to a value less than or equal to zero, or to a
+ non-numeric value, Readline will wait until another key is
+ pressed to decide which key sequence to complete. The
+ default value is `500'.
+
`mark-directories'
If set to `on', completed directory names have a slash
appended. The default is `on'.
@@ -6847,6 +7348,11 @@ Variable Settings
be listed immediately instead of ringing the bell. The
default value is `off'.
+ `show-mode-in-prompt'
+ If set to `on', add a character to the beginning of the prompt
+ indicating the editing mode: emacs (`@'), vi command (`:'),
+ or vi insertion (`+'). The default value is `off'.
+
`skip-completed-text'
If set to `on', this alters the default completion behavior
when inserting a single match into the line. It's only
@@ -7065,7 +7571,7 @@ variable assignment, and conditional syntax.
# You can re-read the inputrc file with C-x C-r.
# Lines beginning with '#' are comments.
#
- # First, include any systemwide bindings and variable
+ # First, include any system-wide bindings and variable
# assignments from /etc/Inputrc
$include /etc/Inputrc
@@ -7276,12 +7782,26 @@ File: bashref.info, Node: Commands For History, Next: Commands For Text, Prev
`history-search-forward ()'
Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
+ between the start of the current line and the point. The search
+ string must match at the beginning of a history line. This is a
non-incremental search. By default, this command is unbound.
`history-search-backward ()'
Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
+ between the start of the current line and the point. The search
+ string must match at the beginning of a history line. This is a
+ non-incremental search. By default, this command is unbound.
+
+`history-substr-search-forward ()'
+ Search forward through the history for the string of characters
+ between the start of the current line and the point. The search
+ string may match anywhere in a history line. This is a
+ non-incremental search. By default, this command is unbound.
+
+`history-substr-search-backward ()'
+ Search backward through the history for the string of characters
+ between the start of the current line and the point. The search
+ string may match anywhere in a history line. This is a
non-incremental search. By default, this command is unbound.
`yank-nth-arg (M-C-y)'
@@ -7313,10 +7833,16 @@ File: bashref.info, Node: Commands For Text, Next: Commands For Killing, Prev
8.4.3 Commands For Changing Text
--------------------------------
+`end-of-file (usually C-d)'
+ The character indicating end-of-file as set, for example, by
+ `stty'. If this character is read when there are no characters on
+ the line, and point is at the beginning of the line, Readline
+ interprets it as the end of input and returns EOF.
+
`delete-char (C-d)'
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to `delete-char', then return EOF.
+ Delete the character at point. If this function is bound to the
+ same character as the tty EOF character, as `C-d' commonly is, see
+ above for the effects.
`backward-delete-char (Rubout)'
Delete the character behind the cursor. A numeric argument means
@@ -7593,6 +8119,10 @@ File: bashref.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev
Re-execute the last keyboard macro defined, by making the
characters in the macro appear as if typed at the keyboard.
+`print-last-kbd-macro ()'
+ Print the last keboard macro defined in a format suitable for the
+ INPUTRC file.
+

File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
@@ -7812,18 +8342,19 @@ 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.
+function or command is invoked, the first argument ($1) is the name of
+the command whose arguments are being completed, the second argument
+($2) is the word being completed, and the third argument ($3) 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' and `compopt'
builtins described below (*note Programmable Completion Builtins::), to
generate the matches. It must put the possible completions in the
-`COMPREPLY' array variable.
+`COMPREPLY' array variable, one per array element.
Next, any command specified with the `-C' option is invoked in an
environment equivalent to command substitution. It should print a list
@@ -7887,18 +8418,20 @@ default completion function would load completions dynamically:
_completion_loader()
{
- . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
+ . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
}
- complete -D -F _completion_loader
+ complete -D -F _completion_loader -o bashdefault -o default

-File: bashref.info, Node: Programmable Completion Builtins, Prev: Programmable Completion, Up: Command Line Editing
+File: bashref.info, Node: Programmable Completion Builtins, Next: A Programmable Completion Example, Prev: Programmable Completion, Up: Command Line Editing
8.7 Programmable Completion Builtins
====================================
-Two builtin commands are available to manipulate the programmable
-completion facilities.
+Three builtin commands are available to manipulate the programmable
+completion facilities: one to specify how the arguments to a particular
+command are to be completed, and two to modify the completion as it is
+happening.
`compgen'
`compgen [OPTION] [WORD]'
@@ -7971,6 +8504,10 @@ completion facilities.
option is intended to be used with shell functions
specified with `-F'.
+ `noquote'
+ Tell Readline not to quote the completed words if they
+ are filenames (quoting filenames is the default).
+
`nospace'
Tell Readline not to append a space (the default) to
words completed at the end of the line.
@@ -8072,8 +8609,13 @@ completion facilities.
`-F FUNCTION'
The shell function FUNCTION is executed in the current shell
- environment. When it finishes, the possible completions are
- retrieved from the value of the `COMPREPLY' array variable.
+ environment. When it is executed, $1 is the name of the
+ command whose arguments are being completed, $2 is the word
+ being completed, and $3 is the word preceding the word being
+ completed, as described above (*note Programmable
+ Completion::). When it finishes, the possible completions
+ are retrieved from the value of the `COMPREPLY' array
+ variable.
`-G GLOBPAT'
The filename expansion pattern GLOBPAT is expanded to generate
@@ -8129,6 +8671,120 @@ completion facilities.

+File: bashref.info, Node: A Programmable Completion Example, Prev: Programmable Completion Builtins, Up: Command Line Editing
+
+8.8 A Programmable Completion Example
+=====================================
+
+The most common way to obtain additional completion functionality beyond
+the default actions `complete' and `compgen' provide is to use a shell
+function and bind it to a particular command using `complete -F'.
+
+ The following function provides completions for the `cd' builtin.
+It is a reasonably good example of what shell functions must do when
+used for completion. This function uses the word passsed as `$2' to
+determine the directory name to complete. You can also use the
+`COMP_WORDS' array variable; the current word is indexed by the
+`COMP_CWORD' variable.
+
+ The function relies on the `complete' and `compgen' builtins to do
+much of the work, adding only the things that the Bash `cd' does beyond
+accepting basic directory names: tilde expansion (*note Tilde
+Expansion::), searching directories in $CDPATH, which is described above
+(*note Bourne Shell Builtins::), and basic support for the
+`cdable_vars' shell option (*note The Shopt Builtin::). `_comp_cd'
+modifies the value of IFS so that it contains only a newline to
+accommodate file names containing spaces and tabs - `compgen' prints
+the possible completions it generates one per line.
+
+ Possible completions go into the COMPREPLY array variable, one
+completion per array element. The programmable completion system
+retrieves the completions from there when the function returns.
+
+ # A completion function for the cd builtin
+ # based on the cd completion function from the bash_completion package
+ _comp_cd()
+ {
+ local IFS=$' \t\n' # normalize IFS
+ local cur _skipdot _cdpath
+ local i j k
+
+ # Tilde expansion, with side effect of expanding tilde to full pathname
+ case "$2" in
+ \~*) eval cur="$2" ;;
+ *) cur=$2 ;;
+ esac
+
+ # no cdpath or absolute pathname -- straight directory completion
+ if [[ -z "${CDPATH:-}" ]] || [[ "$cur" == @(./*|../*|/*) ]]; then
+ # compgen prints paths one per line; could also use while loop
+ IFS=$'\n'
+ COMPREPLY=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ # CDPATH+directories in the current directory if not in CDPATH
+ else
+ IFS=$'\n'
+ _skipdot=false
+ # preprocess CDPATH to convert null directory names to .
+ _cdpath=${CDPATH/#:/.:}
+ _cdpath=${_cdpath//::/:.:}
+ _cdpath=${_cdpath/%:/:.}
+ for i in ${_cdpath//:/$'\n'}; do
+ if [[ $i -ef . ]]; then _skipdot=true; fi
+ k="${#COMPREPLY[@]}"
+ for j in $( compgen -d -- "$i/$cur" ); do
+ COMPREPLY[k++]=${j#$i/} # cut off directory
+ done
+ done
+ $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ fi
+
+ # variable names if appropriate shell option set and no completions
+ if shopt -q cdable_vars && [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+ COMPREPLY=( $(compgen -v -- "$cur") )
+ fi
+
+ return 0
+ }
+
+ We install the completion function using the `-F' option to
+`complete':
+
+ # Tell readline to quote appropriate and append slashes to directories;
+ # use the bash default completion for other arguments
+ complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
+
+Since we'd like Bash and Readline to take care of some of the other
+details for us, we use several other options to tell Bash and Readline
+what to do. The `-o filenames' option tells Readline that the possible
+completions should be treated as filenames, and quoted appropriately.
+That option will also cause Readline to append a slash to filenames it
+can determine are directories (which is why we might want to extend
+`_comp_cd' to append a slash if we're using directories found via
+CDPATH: Readline can't tell those completions are directories). The
+`-o nospace' option tells Readline to not append a space character to
+the directory name, in case we want to append to it. The `-o
+bashdefault' option brings in the rest of the "Bash default"
+completions - possible completion that Bash adds to the default Readline
+set. These include things like command name completion, variable
+completion for words beginning with `{', completions containing pathname
+expansion patterns (*note Filename Expansion::), and so on.
+
+ Once installed using `complete', `_comp_cd' will be called every
+time we attempt word completion for a `cd' command.
+
+ Many more examples - an extensive collection of completions for most
+of the common GNU, Unix, and Linux commands - are available as part of
+the bash_completion project. This is installed by default on many
+GNU/Linux distributions. Originally written by Ian Macdonald, the
+project now lives at `http://bash-completion.alioth.debian.org/'.
+There are ports for other systems such as Solaris and Mac OS X.
+
+ An older version of the bash_completion package is distributed with
+bash in the `examples/complete' subdirectory.
+
+
File: bashref.info, Node: Using History Interactively, Next: Installing Bash, Prev: Command Line Editing, Up: Top
9 Using History Interactively
@@ -8166,15 +8822,16 @@ the values of the shell variables `HISTIGNORE' and `HISTCONTROL'.
named by the `HISTFILE' variable (default `~/.bash_history'). The file
named by the value of `HISTFILE' is truncated, if necessary, to contain
no more than the number of lines specified by the value of the
-`HISTFILESIZE' variable. When an interactive shell exits, the last
-`$HISTSIZE' lines are copied from the history list to the file named by
-`$HISTFILE'. If the `histappend' shell option is set (*note Bash
-Builtins::), the lines are appended to the history file, otherwise the
-history file is overwritten. If `HISTFILE' is unset, or if the history
-file is unwritable, the history is not saved. After saving the
+`HISTFILESIZE' variable. When a shell with history enabled exits, the
+last `$HISTSIZE' lines are copied from the history list to the file
+named by `$HISTFILE'. If the `histappend' shell option is set (*note
+Bash Builtins::), the lines are appended to the history file, otherwise
+the history file is overwritten. If `HISTFILE' is unset, or if the
+history file is unwritable, the history is not saved. After saving the
history, the history file is truncated to contain no more than
-`$HISTFILESIZE' lines. If `HISTFILESIZE' is not set, no truncation is
-performed.
+`$HISTFILESIZE' lines. If `HISTFILESIZE' is unset, or set to null, a
+non-numeric value, or a numeric value less than zero, the history file
+is not truncated.
If the `HISTTIMEFORMAT' is set, the time stamp information
associated with each history entry is written to the history file,
@@ -8213,26 +8870,27 @@ and history file.
`fc [-e ENAME] [-lnr] [FIRST] [LAST]'
`fc -s [PAT=REP] [COMMAND]'
- Fix Command. In the first form, a range of commands from FIRST to
- LAST is selected from the history list. Both FIRST and LAST may
- be specified as a string (to locate the most recent command
- beginning with that string) or as a number (an index into the
- history list, where a negative number is used as an offset from the
- current command number). If LAST is not specified it is set to
- FIRST. If FIRST is not specified it is set to the previous
- command for editing and -16 for listing. If the `-l' flag is
- given, the commands are listed on standard output. The `-n' flag
- suppresses the command numbers when listing. The `-r' flag
- reverses the order of the listing. Otherwise, the editor given by
- ENAME is invoked on a file containing those commands. If ENAME is
- not given, the value of the following variable expansion is used:
- `${FCEDIT:-${EDITOR:-vi}}'. This says to use the value of the
- `FCEDIT' variable if set, or the value of the `EDITOR' variable if
- that is set, or `vi' if neither is set. When editing is complete,
- the edited commands are echoed and executed.
+ The first form selects a range of commands from FIRST to LAST from
+ the history list and displays or edits and re-executes them. Both
+ FIRST and LAST may be specified as a string (to locate the most
+ recent command beginning with that string) or as a number (an
+ index into the history list, where a negative number is used as an
+ offset from the current command number). If LAST is not specified
+ it is set to FIRST. If FIRST is not specified it is set to the
+ previous command for editing and -16 for listing. If the `-l'
+ flag is given, the commands are listed on standard output. The
+ `-n' flag suppresses the command numbers when listing. The `-r'
+ flag reverses the order of the listing. Otherwise, the editor
+ given by ENAME is invoked on a file containing those commands. If
+ ENAME is not given, the value of the following variable expansion
+ is used: `${FCEDIT:-${EDITOR:-vi}}'. This says to use the value
+ of the `FCEDIT' variable if set, or the value of the `EDITOR'
+ variable if that is set, or `vi' if neither is set. When editing
+ is complete, the edited commands are echoed and executed.
In the second form, COMMAND is re-executed after each instance of
- PAT in the selected command is replaced by REP.
+ PAT in the selected command is replaced by REP. COMMAND is
+ intepreted the same as FIRST above.
A useful alias to use with the `fc' command is `r='fc -s'', so
that typing `r cc' runs the last command beginning with `cc' and
@@ -8274,11 +8932,11 @@ and history file.
session.
`-r'
- Read the current history file and append its contents to the
- history list.
+ Read the history file and append its contents to the history
+ list.
`-w'
- Write out the current history to the history file.
+ Write out the current history list to the history file.
`-p'
Perform history substitution on the ARGs and display the
@@ -8584,8 +9242,8 @@ figure out how `configure' could check whether or not to do them, and
mail diffs or instructions to <bash-maintainers@gnu.org> so they can be
considered for the next release.
- 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
+ The file `configure.ac' is used to create `configure' by a program
+called Autoconf. You only need `configure.ac' if you want to change it
or regenerate `configure' using a newer version of Autoconf. If you do
this, make sure you are using Autoconf version 2.50 or newer.
@@ -8811,9 +9469,9 @@ compiled and linked, rather than changing run-time features.
following options, but it is processed first, so individual options may
be enabled using `enable-FEATURE'.
- All of the following options except for `disabled-builtins' and
-`xpg-echo-default' are enabled by default, unless the operating system
-does not provide the necessary support.
+ All of the following options except for `disabled-builtins',
+`directpand-default', and `xpg-echo-default' are enabled by default,
+unless the operating system does not provide the necessary support.
`--enable-alias'
Allow alias expansion and include the `alias' and `unalias'
@@ -8867,6 +9525,11 @@ does not provide the necessary support.
`--enable-debugger'
Include support for the bash debugger (distributed separately).
+`--enable-direxpand-default'
+ Cause the `direxpand' shell option (*note The Shopt Builtin::) to
+ be enabled by default when the shell starts. It is normally
+ disabled by default.
+
`--enable-directory-stack'
Include support for a `csh'-like directory stack and the `pushd',
`popd', and `dirs' builtins (*note The Directory Stack::).
@@ -8889,6 +9552,12 @@ does not provide the necessary support.
Set the default value of the EXTGLOB shell option described above
under *note The Shopt Builtin:: to be enabled.
+`--enable-glob-asciirange-default'
+ Set the default value of the GLOBASCIIRANGES shell option described
+ above under *note The Shopt Builtin:: to be enabled. This
+ controls the behavior of character ranges when used in pattern
+ matching bracket expressions.
+
`--enable-help-builtin'
Include the `help' builtin, which displays help on shell builtins
and variables (*note Bash Builtins::).
@@ -8922,8 +9591,8 @@ 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
- prompt string escape sequences.
+ strings. See *note Controlling the Prompt::, for a complete list
+ of prompt string escape sequences.
`--enable-readline'
Include support for command-line editing and history with the Bash
@@ -8962,7 +9631,6 @@ does not provide the necessary support.
Specification, version 3. *Note Bash Builtins::, for a
description of the escape sequences that `echo' recognizes.
-
The file `config-top.h' contains C Preprocessor `#define' statements
for options which are not settable from `configure'. Some of these are
not meant to be changed; beware of the consequences if you do. Read
@@ -9001,8 +9669,7 @@ newsgroup `gnu.bash.bug'.
`bashbug' inserts the first three items automatically into the template
it provides for filing a bug report.
- Please send all reports concerning this manual to
-<chet.ramey@case.edu>.
+ Please send all reports concerning this manual to <bug-bash@gnu.org>.

File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
@@ -9113,7 +9780,7 @@ the baseline reference.
PATTERN and replaces it with REPLACEMENT in the value of `var', is
available (*note Shell Parameter Expansion::).
- * The expansion `${!PREFIX}*' expansion, which expands to the names
+ * The expansion `${!PREFIX*}' expansion, which expands to the names
of all shell variables whose names begin with PREFIX, is available
(*note Shell Parameter Expansion::).
@@ -9138,6 +9805,10 @@ the baseline reference.
not all words (*note Word Splitting::). This closes a
longstanding shell security hole.
+ * The filename expansion bracket expression code uses `!' and `^' to
+ negate the set of characters between the brackets. The Bourne
+ shell uses only `!'.
+
* Bash implements the full set of POSIX filename expansion operators,
including CHARACTER CLASSES, EQUIVALENCE CLASSES, and COLLATING
SYMBOLS (*note Filename Expansion::).
@@ -9300,7 +9971,7 @@ the baseline reference.
as the value of the `DIRSTACK' shell variable.
* Bash interprets special backslash-escaped characters in the prompt
- strings when interactive (*note Printing a Prompt::).
+ strings when interactive (*note Controlling the Prompt::).
* The Bash restricted mode is more useful (*note The Restricted
Shell::); the SVR4.2 shell restricted mode is too limited.
@@ -9880,100 +10551,100 @@ D.1 Index of Shell Builtin Commands
* Menu:
* .: Bourne Shell Builtins.
- (line 16)
+ (line 17)
* :: Bourne Shell Builtins.
(line 11)
* [: Bourne Shell Builtins.
- (line 217)
+ (line 258)
* 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 98)
-* caller: Bash Builtins. (line 106)
+ (line 31)
+* builtin: Bash Builtins. (line 102)
+* caller: Bash Builtins. (line 111)
* cd: Bourne Shell Builtins.
- (line 36)
-* command: Bash Builtins. (line 123)
+ (line 39)
+* command: Bash Builtins. (line 129)
* compgen: Programmable Completion Builtins.
- (line 10)
+ (line 12)
* complete: Programmable Completion Builtins.
- (line 28)
+ (line 30)
* compopt: Programmable Completion Builtins.
- (line 217)
+ (line 228)
* continue: Bourne Shell Builtins.
- (line 58)
-* declare: Bash Builtins. (line 142)
+ (line 80)
+* declare: Bash Builtins. (line 149)
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
- (line 83)
-* echo: Bash Builtins. (line 226)
-* enable: Bash Builtins. (line 287)
+ (line 89)
+* echo: Bash Builtins. (line 245)
+* enable: Bash Builtins. (line 307)
* eval: Bourne Shell Builtins.
- (line 66)
+ (line 89)
* exec: Bourne Shell Builtins.
- (line 73)
+ (line 97)
* exit: Bourne Shell Builtins.
- (line 85)
+ (line 114)
* export: Bourne Shell Builtins.
- (line 91)
+ (line 121)
* fc: Bash History Builtins.
(line 10)
* fg: Job Control Builtins.
- (line 16)
+ (line 17)
* getopts: Bourne Shell Builtins.
- (line 106)
+ (line 137)
* hash: Bourne Shell Builtins.
- (line 148)
-* help: Bash Builtins. (line 315)
+ (line 180)
+* help: Bash Builtins. (line 336)
* history: Bash History Builtins.
- (line 39)
+ (line 40)
* jobs: Job Control Builtins.
- (line 25)
+ (line 27)
* kill: Job Control Builtins.
- (line 57)
-* let: Bash Builtins. (line 335)
-* local: Bash Builtins. (line 342)
-* logout: Bash Builtins. (line 352)
-* mapfile: Bash Builtins. (line 356)
+ (line 59)
+* let: Bash Builtins. (line 357)
+* local: Bash Builtins. (line 365)
+* logout: Bash Builtins. (line 376)
+* mapfile: Bash Builtins. (line 381)
* popd: Directory Stack Builtins.
- (line 37)
-* printf: Bash Builtins. (line 402)
+ (line 39)
+* printf: Bash Builtins. (line 429)
* pushd: Directory Stack Builtins.
- (line 58)
+ (line 61)
* pwd: Bourne Shell Builtins.
- (line 167)
-* read: Bash Builtins. (line 447)
-* readarray: Bash Builtins. (line 527)
+ (line 200)
+* read: Bash Builtins. (line 477)
+* readarray: Bash Builtins. (line 564)
* readonly: Bourne Shell Builtins.
- (line 176)
+ (line 210)
* return: Bourne Shell Builtins.
- (line 192)
+ (line 229)
* set: The Set Builtin. (line 11)
* shift: Bourne Shell Builtins.
- (line 205)
+ (line 245)
* shopt: The Shopt Builtin. (line 9)
-* source: Bash Builtins. (line 535)
+* source: Bash Builtins. (line 573)
* suspend: Job Control Builtins.
- (line 94)
+ (line 101)
* test: Bourne Shell Builtins.
- (line 217)
+ (line 258)
* times: Bourne Shell Builtins.
- (line 290)
+ (line 334)
* trap: Bourne Shell Builtins.
- (line 295)
-* type: Bash Builtins. (line 539)
-* typeset: Bash Builtins. (line 570)
-* ulimit: Bash Builtins. (line 576)
+ (line 340)
+* type: Bash Builtins. (line 578)
+* typeset: Bash Builtins. (line 610)
+* ulimit: Bash Builtins. (line 616)
* umask: Bourne Shell Builtins.
- (line 341)
-* unalias: Bash Builtins. (line 665)
+ (line 389)
+* unalias: Bash Builtins. (line 707)
* unset: Bourne Shell Builtins.
- (line 358)
+ (line 407)
* wait: Job Control Builtins.
- (line 73)
+ (line 76)

File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes
@@ -9986,9 +10657,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
- (line 117)
+ (line 119)
* ]]: Conditional Constructs.
- (line 117)
+ (line 119)
* case: Conditional Constructs.
(line 28)
* do: Looping Constructs. (line 12)
@@ -10001,19 +10672,19 @@ D.2 Index of Shell Reserved Words
(line 28)
* fi: Conditional Constructs.
(line 7)
-* for: Looping Constructs. (line 29)
+* for: Looping Constructs. (line 32)
* function: Shell Functions. (line 13)
* if: Conditional Constructs.
(line 7)
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
- (line 76)
+ (line 78)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
* until: Looping Constructs. (line 12)
-* while: Looping Constructs. (line 20)
+* while: Looping Constructs. (line 22)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
@@ -10026,15 +10697,24 @@ D.3 Parameter and Variable Index
* Menu:
-* !: Special Parameters. (line 46)
-* #: Special Parameters. (line 30)
-* $: Special Parameters. (line 42)
+* !: Special Parameters. (line 50)
+* #: Special Parameters. (line 33)
+* $: Special Parameters. (line 45)
+* $!: Special Parameters. (line 51)
+* $#: Special Parameters. (line 34)
+* $$: Special Parameters. (line 46)
+* $*: Special Parameters. (line 10)
+* $-: Special Parameters. (line 41)
+* $0: Special Parameters. (line 56)
+* $?: Special Parameters. (line 37)
+* $@: Special Parameters. (line 23)
+* $_: Special Parameters. (line 65)
* *: Special Parameters. (line 9)
-* -: Special Parameters. (line 37)
-* 0: Special Parameters. (line 50)
-* ?: Special Parameters. (line 33)
-* @: Special Parameters. (line 19)
-* _: Special Parameters. (line 59)
+* -: Special Parameters. (line 40)
+* 0: Special Parameters. (line 55)
+* ?: Special Parameters. (line 36)
+* @: Special Parameters. (line 22)
+* _: Special Parameters. (line 64)
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 13)
@@ -10043,15 +10723,16 @@ D.3 Parameter and Variable Index
* BASH_ARGV: Bash Variables. (line 47)
* BASH_CMDS: Bash Variables. (line 57)
* BASH_COMMAND: Bash Variables. (line 64)
-* BASH_ENV: Bash Variables. (line 69)
-* BASH_EXECUTION_STRING: Bash Variables. (line 75)
-* BASH_LINENO: Bash Variables. (line 78)
-* BASH_REMATCH: Bash Variables. (line 86)
-* BASH_SOURCE: Bash Variables. (line 94)
-* BASH_SUBSHELL: Bash Variables. (line 101)
-* BASH_VERSINFO: Bash Variables. (line 105)
-* BASH_VERSION: Bash Variables. (line 129)
-* BASH_XTRACEFD: Bash Variables. (line 132)
+* BASH_COMPAT: Bash Variables. (line 69)
+* BASH_ENV: Bash Variables. (line 84)
+* BASH_EXECUTION_STRING: Bash Variables. (line 90)
+* BASH_LINENO: Bash Variables. (line 93)
+* BASH_REMATCH: Bash Variables. (line 101)
+* BASH_SOURCE: Bash Variables. (line 109)
+* BASH_SUBSHELL: Bash Variables. (line 116)
+* BASH_VERSINFO: Bash Variables. (line 121)
+* BASH_VERSION: Bash Variables. (line 144)
+* BASH_XTRACEFD: Bash Variables. (line 147)
* BASHOPTS: Bash Variables. (line 16)
* BASHPID: Bash Variables. (line 25)
* bell-style: Readline Init File Syntax.
@@ -10060,152 +10741,157 @@ D.3 Parameter and Variable Index
(line 45)
* CDPATH: Bourne Shell Variables.
(line 9)
-* COLUMNS: Bash Variables. (line 143)
-* comment-begin: Readline Init File Syntax.
+* CHILD_MAX: Bash Variables. (line 158)
+* colored-stats: Readline Init File Syntax.
(line 50)
-* COMP_CWORD: Bash Variables. (line 148)
-* COMP_KEY: Bash Variables. (line 177)
-* COMP_LINE: Bash Variables. (line 154)
-* COMP_POINT: Bash Variables. (line 159)
-* COMP_TYPE: Bash Variables. (line 167)
-* COMP_WORDBREAKS: Bash Variables. (line 181)
-* COMP_WORDS: Bash Variables. (line 187)
+* COLUMNS: Bash Variables. (line 165)
+* comment-begin: Readline Init File Syntax.
+ (line 56)
+* COMP_CWORD: Bash Variables. (line 171)
+* COMP_KEY: Bash Variables. (line 200)
+* COMP_LINE: Bash Variables. (line 177)
+* COMP_POINT: Bash Variables. (line 182)
+* COMP_TYPE: Bash Variables. (line 190)
+* COMP_WORDBREAKS: Bash Variables. (line 204)
+* COMP_WORDS: Bash Variables. (line 210)
* completion-display-width: Readline Init File Syntax.
- (line 55)
+ (line 61)
* completion-ignore-case: Readline Init File Syntax.
- (line 62)
+ (line 68)
* completion-map-case: Readline Init File Syntax.
- (line 67)
-* completion-prefix-display-length: Readline Init File Syntax.
(line 73)
+* completion-prefix-display-length: Readline Init File Syntax.
+ (line 79)
* completion-query-items: Readline Init File Syntax.
- (line 80)
-* COMPREPLY: Bash Variables. (line 195)
+ (line 86)
+* COMPREPLY: Bash Variables. (line 218)
* convert-meta: Readline Init File Syntax.
- (line 90)
-* COPROC: Bash Variables. (line 200)
-* DIRSTACK: Bash Variables. (line 204)
-* disable-completion: Readline Init File Syntax.
(line 96)
+* COPROC: Bash Variables. (line 224)
+* DIRSTACK: Bash Variables. (line 228)
+* disable-completion: Readline Init File Syntax.
+ (line 102)
* editing-mode: Readline Init File Syntax.
- (line 101)
-* EMACS: Bash Variables. (line 214)
+ (line 107)
+* EMACS: Bash Variables. (line 238)
* enable-keypad: Readline Init File Syntax.
- (line 112)
-* ENV: Bash Variables. (line 219)
-* EUID: Bash Variables. (line 223)
+ (line 118)
+* ENV: Bash Variables. (line 243)
+* EUID: Bash Variables. (line 247)
* expand-tilde: Readline Init File Syntax.
- (line 123)
-* FCEDIT: Bash Variables. (line 227)
-* FIGNORE: Bash Variables. (line 231)
-* FUNCNAME: Bash Variables. (line 237)
-* FUNCNEST: Bash Variables. (line 255)
-* GLOBIGNORE: Bash Variables. (line 260)
-* GROUPS: Bash Variables. (line 266)
-* histchars: Bash Variables. (line 272)
-* HISTCMD: Bash Variables. (line 287)
-* HISTCONTROL: Bash Variables. (line 292)
-* HISTFILE: Bash Variables. (line 308)
-* HISTFILESIZE: Bash Variables. (line 312)
-* HISTIGNORE: Bash Variables. (line 320)
+ (line 129)
+* FCEDIT: Bash Variables. (line 251)
+* FIGNORE: Bash Variables. (line 255)
+* FUNCNAME: Bash Variables. (line 261)
+* FUNCNEST: Bash Variables. (line 279)
+* GLOBIGNORE: Bash Variables. (line 284)
+* GROUPS: Bash Variables. (line 290)
+* histchars: Bash Variables. (line 296)
+* HISTCMD: Bash Variables. (line 311)
+* HISTCONTROL: Bash Variables. (line 316)
+* HISTFILE: Bash Variables. (line 332)
+* HISTFILESIZE: Bash Variables. (line 336)
+* HISTIGNORE: Bash Variables. (line 347)
* history-preserve-point: Readline Init File Syntax.
- (line 127)
-* history-size: Readline Init File Syntax.
(line 133)
-* HISTSIZE: Bash Variables. (line 339)
-* HISTTIMEFORMAT: Bash Variables. (line 343)
+* history-size: Readline Init File Syntax.
+ (line 139)
+* HISTSIZE: Bash Variables. (line 366)
+* HISTTIMEFORMAT: Bash Variables. (line 373)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
- (line 138)
-* HOSTFILE: Bash Variables. (line 352)
-* HOSTNAME: Bash Variables. (line 363)
-* HOSTTYPE: Bash Variables. (line 366)
+ (line 146)
+* HOSTFILE: Bash Variables. (line 382)
+* HOSTNAME: Bash Variables. (line 393)
+* HOSTTYPE: Bash Variables. (line 396)
* IFS: Bourne Shell Variables.
(line 18)
-* IGNOREEOF: Bash Variables. (line 369)
+* IGNOREEOF: Bash Variables. (line 399)
* input-meta: Readline Init File Syntax.
- (line 145)
-* INPUTRC: Bash Variables. (line 379)
+ (line 153)
+* INPUTRC: Bash Variables. (line 409)
* isearch-terminators: Readline Init File Syntax.
- (line 152)
+ (line 160)
* keymap: Readline Init File Syntax.
- (line 159)
-* LANG: Bash Variables. (line 383)
-* LC_ALL: Bash Variables. (line 387)
-* LC_COLLATE: Bash Variables. (line 391)
-* LC_CTYPE: Bash Variables. (line 398)
+ (line 167)
+* LANG: Bash Variables. (line 413)
+* LC_ALL: Bash Variables. (line 417)
+* LC_COLLATE: Bash Variables. (line 421)
+* LC_CTYPE: Bash Variables. (line 428)
* LC_MESSAGES <1>: Locale Translation. (line 11)
-* LC_MESSAGES: Bash Variables. (line 403)
-* LC_NUMERIC: Bash Variables. (line 407)
-* LINENO: Bash Variables. (line 411)
-* LINES: Bash Variables. (line 415)
-* MACHTYPE: Bash Variables. (line 420)
+* LC_MESSAGES: Bash Variables. (line 433)
+* LC_NUMERIC: Bash Variables. (line 437)
+* LINENO: Bash Variables. (line 441)
+* LINES: Bash Variables. (line 445)
+* MACHTYPE: Bash Variables. (line 451)
* MAIL: Bourne Shell Variables.
(line 22)
-* MAILCHECK: Bash Variables. (line 424)
+* MAILCHECK: Bash Variables. (line 455)
* MAILPATH: Bourne Shell Variables.
(line 27)
-* MAPFILE: Bash Variables. (line 432)
+* MAPFILE: Bash Variables. (line 463)
* mark-modified-lines: Readline Init File Syntax.
- (line 172)
+ (line 196)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 177)
+ (line 201)
* match-hidden-files: Readline Init File Syntax.
- (line 182)
+ (line 206)
* menu-complete-display-prefix: Readline Init File Syntax.
- (line 189)
+ (line 213)
* meta-flag: Readline Init File Syntax.
- (line 145)
-* OLDPWD: Bash Variables. (line 436)
+ (line 153)
+* OLDPWD: Bash Variables. (line 467)
* OPTARG: Bourne Shell Variables.
(line 34)
-* OPTERR: Bash Variables. (line 439)
+* OPTERR: Bash Variables. (line 470)
* OPTIND: Bourne Shell Variables.
(line 38)
-* OSTYPE: Bash Variables. (line 443)
+* OSTYPE: Bash Variables. (line 474)
* output-meta: Readline Init File Syntax.
- (line 194)
+ (line 218)
* page-completions: Readline Init File Syntax.
- (line 199)
+ (line 223)
* PATH: Bourne Shell Variables.
(line 42)
-* PIPESTATUS: Bash Variables. (line 446)
-* POSIXLY_CORRECT: Bash Variables. (line 451)
-* PPID: Bash Variables. (line 460)
-* PROMPT_COMMAND: Bash Variables. (line 464)
-* PROMPT_DIRTRIM: Bash Variables. (line 468)
+* PIPESTATUS: Bash Variables. (line 477)
+* POSIXLY_CORRECT: Bash Variables. (line 482)
+* PPID: Bash Variables. (line 491)
+* PROMPT_COMMAND: Bash Variables. (line 495)
+* PROMPT_DIRTRIM: Bash Variables. (line 499)
* PS1: Bourne Shell Variables.
(line 48)
* PS2: Bourne Shell Variables.
(line 53)
-* PS3: Bash Variables. (line 474)
-* PS4: Bash Variables. (line 479)
-* PWD: Bash Variables. (line 485)
-* RANDOM: Bash Variables. (line 488)
-* READLINE_LINE: Bash Variables. (line 493)
-* READLINE_POINT: Bash Variables. (line 497)
-* REPLY: Bash Variables. (line 501)
+* PS3: Bash Variables. (line 505)
+* PS4: Bash Variables. (line 510)
+* PWD: Bash Variables. (line 516)
+* RANDOM: Bash Variables. (line 519)
+* READLINE_LINE: Bash Variables. (line 524)
+* READLINE_POINT: Bash Variables. (line 528)
+* REPLY: Bash Variables. (line 532)
* revert-all-at-newline: Readline Init File Syntax.
- (line 209)
-* SECONDS: Bash Variables. (line 504)
-* SHELL: Bash Variables. (line 510)
-* SHELLOPTS: Bash Variables. (line 515)
-* SHLVL: Bash Variables. (line 524)
+ (line 233)
+* SECONDS: Bash Variables. (line 535)
+* SHELL: Bash Variables. (line 541)
+* SHELLOPTS: Bash Variables. (line 546)
+* SHLVL: Bash Variables. (line 555)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 215)
+ (line 239)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 221)
+ (line 245)
+* show-mode-in-prompt: Readline Init File Syntax.
+ (line 254)
* skip-completed-text: Readline Init File Syntax.
- (line 230)
+ (line 259)
* TEXTDOMAIN: Locale Translation. (line 11)
* TEXTDOMAINDIR: Locale Translation. (line 11)
-* TIMEFORMAT: Bash Variables. (line 529)
-* TMOUT: Bash Variables. (line 567)
-* TMPDIR: Bash Variables. (line 579)
-* UID: Bash Variables. (line 583)
+* TIMEFORMAT: Bash Variables. (line 560)
+* TMOUT: Bash Variables. (line 598)
+* TMPDIR: Bash Variables. (line 610)
+* UID: Bash Variables. (line 614)
* visible-stats: Readline Init File Syntax.
- (line 243)
+ (line 272)

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -10220,14 +10906,14 @@ D.4 Function Index
(line 10)
* accept-line (Newline or Return): Commands For History. (line 6)
* backward-char (C-b): Commands For Moving. (line 15)
-* backward-delete-char (Rubout): Commands For Text. (line 11)
+* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-kill-line (C-x Rubout): Commands For Killing. (line 9)
* backward-kill-word (M-<DEL>): Commands For Killing. (line 24)
* backward-word (M-b): Commands For Moving. (line 22)
* beginning-of-history (M-<): Commands For History. (line 20)
* beginning-of-line (C-a): Commands For Moving. (line 6)
* call-last-kbd-macro (C-x e): Keyboard Macros. (line 13)
-* capitalize-word (M-c): Commands For Text. (line 46)
+* capitalize-word (M-c): Commands For Text. (line 52)
* character-search (C-]): Miscellaneous Commands.
(line 41)
* character-search-backward (M-C-]): Miscellaneous Commands.
@@ -10238,14 +10924,14 @@ D.4 Function Index
* 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 (C-d): Commands For Text. (line 12)
* delete-char-or-list (): Commands For Completion.
(line 43)
* 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)
-* downcase-word (M-l): Commands For Text. (line 42)
+* downcase-word (M-l): Commands For Text. (line 48)
* dump-functions (): Miscellaneous Commands.
(line 73)
* dump-macros (): Miscellaneous Commands.
@@ -10253,16 +10939,19 @@ D.4 Function Index
* dump-variables (): Miscellaneous Commands.
(line 79)
* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
+* end-of-file (usually C-d): Commands For Text. (line 6)
* end-of-history (M->): Commands For History. (line 23)
* end-of-line (C-e): Commands For Moving. (line 9)
* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
(line 36)
-* forward-backward-delete-char (): Commands For Text. (line 15)
+* forward-backward-delete-char (): Commands For Text. (line 21)
* forward-char (C-f): Commands For Moving. (line 12)
* forward-search-history (C-s): Commands For History. (line 31)
* forward-word (M-f): Commands For Moving. (line 18)
-* history-search-backward (): Commands For History. (line 51)
+* history-search-backward (): Commands For History. (line 52)
* history-search-forward (): Commands For History. (line 46)
+* history-substr-search-backward (): Commands For History. (line 64)
+* history-substr-search-forward (): Commands For History. (line 58)
* insert-comment (M-#): Miscellaneous Commands.
(line 60)
* insert-completions (M-*): Commands For Completion.
@@ -10280,37 +10969,38 @@ D.4 Function Index
(line 41)
* non-incremental-reverse-search-history (M-p): Commands For History.
(line 36)
-* overwrite-mode (): Commands For Text. (line 50)
+* overwrite-mode (): Commands For Text. (line 56)
* possible-completions (M-?): Commands For Completion.
(line 15)
* prefix-meta (<ESC>): Miscellaneous Commands.
(line 18)
* previous-history (C-p): Commands For History. (line 13)
-* quoted-insert (C-q or C-v): Commands For Text. (line 20)
+* print-last-kbd-macro (): Keyboard Macros. (line 17)
+* quoted-insert (C-q or C-v): Commands For Text. (line 26)
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* 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)
-* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 24)
+* self-insert (a, b, A, 1, !, ...): Commands For Text. (line 30)
* set-mark (C-@): Miscellaneous Commands.
(line 32)
* skip-csi-sequence (): Miscellaneous Commands.
(line 51)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
-* transpose-chars (C-t): Commands For Text. (line 27)
-* transpose-words (M-t): Commands For Text. (line 33)
+* transpose-chars (C-t): Commands For Text. (line 33)
+* transpose-words (M-t): Commands For Text. (line 39)
* undo (C-_ or C-x C-u): Miscellaneous Commands.
(line 22)
* universal-argument (): Numeric Arguments. (line 10)
* 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 37)
-* upcase-word (M-u): Commands For Text. (line 38)
+* upcase-word (M-u): Commands For Text. (line 44)
* 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-last-arg (M-. or M-_): Commands For History. (line 79)
+* yank-nth-arg (M-C-y): Commands For History. (line 70)
* yank-pop (M-y): Commands For Killing. (line 71)

@@ -10396,15 +11086,15 @@ D.5 Concept Index
* history expansion: History Interaction. (line 6)
* history list: Bash History Facilities.
(line 6)
-* History, how to use: Programmable Completion Builtins.
- (line 237)
+* History, how to use: A Programmable Completion Example.
+ (line 114)
* identifier: Definitions. (line 51)
* initialization file, readline: Readline Init File. (line 6)
* installation: Basic Installation. (line 6)
* interaction, readline: Readline Interaction.
(line 6)
* interactive shell <1>: Interactive Shells. (line 6)
-* interactive shell: Invoking Bash. (line 127)
+* interactive shell: Invoking Bash. (line 125)
* internationalization: Locale Translation. (line 6)
* job: Definitions. (line 38)
* job control <1>: Job Control Basics. (line 6)
@@ -10414,7 +11104,7 @@ D.5 Concept Index
* killing text: Readline Killing Commands.
(line 6)
* localization: Locale Translation. (line 6)
-* login shell: Invoking Bash. (line 124)
+* login shell: Invoking Bash. (line 122)
* matching, pattern: Pattern Matching. (line 6)
* metacharacter: Definitions. (line 46)
* name: Definitions. (line 51)
@@ -10439,7 +11129,8 @@ D.5 Concept Index
(line 6)
* programmable completion: Programmable Completion.
(line 6)
-* prompting: Printing a Prompt. (line 6)
+* prompting: Controlling the Prompt.
+ (line 6)
* quoting: Quoting. (line 6)
* quoting, ANSI: ANSI-C Quoting. (line 6)
* Readline, how to use: Job Control Variables.
@@ -10474,133 +11165,134 @@ D.5 Concept Index

Tag Table:
-Node: Top1346
-Node: Introduction3185
-Node: What is Bash?3413
-Node: What is a shell?4526
-Node: Definitions7066
-Node: Basic Shell Features9984
-Node: Shell Syntax11203
-Node: Shell Operation12233
-Node: Quoting13527
-Node: Escape Character14830
-Node: Single Quotes15315
-Node: Double Quotes15663
-Node: ANSI-C Quoting16788
-Node: Locale Translation18032
-Node: Comments18928
-Node: Shell Commands19546
-Node: Simple Commands20418
-Node: Pipelines21049
-Node: Lists23743
-Node: Compound Commands25472
-Node: Looping Constructs26276
-Node: Conditional Constructs28735
-Node: Command Grouping36848
-Node: Coprocesses38327
-Node: GNU Parallel39992
-Node: Shell Functions42460
-Node: Shell Parameters47404
-Node: Positional Parameters49820
-Node: Special Parameters50720
-Node: Shell Expansions53684
-Node: Brace Expansion55609
-Node: Tilde Expansion58364
-Node: Shell Parameter Expansion60715
-Node: Command Substitution69850
-Node: Arithmetic Expansion71183
-Node: Process Substitution72033
-Node: Word Splitting73083
-Node: Filename Expansion74706
-Node: Pattern Matching76845
-Node: Quote Removal80484
-Node: Redirections80779
-Node: Executing Commands89304
-Node: Simple Command Expansion89974
-Node: Command Search and Execution91904
-Node: Command Execution Environment94241
-Node: Environment97227
-Node: Exit Status98887
-Node: Signals100508
-Node: Shell Scripts102476
-Node: Shell Builtin Commands104994
-Node: Bourne Shell Builtins107022
-Node: Bash Builtins124952
-Node: Modifying Shell Behavior151166
-Node: The Set Builtin151511
-Node: The Shopt Builtin161045
-Node: Special Builtins173217
-Node: Shell Variables174196
-Node: Bourne Shell Variables174636
-Node: Bash Variables176663
-Node: Bash Features201572
-Node: Invoking Bash202455
-Node: Bash Startup Files208219
-Node: Interactive Shells213240
-Node: What is an Interactive Shell?213650
-Node: Is this Shell Interactive?214299
-Node: Interactive Shell Behavior215114
-Node: Bash Conditional Expressions218394
-Node: Shell Arithmetic222183
-Node: Aliases224942
-Node: Arrays227514
-Node: The Directory Stack231629
-Node: Directory Stack Builtins232343
-Node: Printing a Prompt235235
-Node: The Restricted Shell237987
-Node: Bash POSIX Mode239819
-Node: Job Control248480
-Node: Job Control Basics248940
-Node: Job Control Builtins253657
-Node: Job Control Variables258021
-Node: Command Line Editing259179
-Node: Introduction and Notation260746
-Node: Readline Interaction262368
-Node: Readline Bare Essentials263559
-Node: Readline Movement Commands265348
-Node: Readline Killing Commands266313
-Node: Readline Arguments268233
-Node: Searching269277
-Node: Readline Init File271463
-Node: Readline Init File Syntax272610
-Node: Conditional Init Constructs287952
-Node: Sample Init File290485
-Node: Bindable Readline Commands293602
-Node: Commands For Moving294809
-Node: Commands For History295953
-Node: Commands For Text299388
-Node: Commands For Killing302061
-Node: Numeric Arguments304518
-Node: Commands For Completion305657
-Node: Keyboard Macros309849
-Node: Miscellaneous Commands310420
-Node: Readline vi Mode316226
-Node: Programmable Completion317133
-Node: Programmable Completion Builtins324343
-Node: Using History Interactively333479
-Node: Bash History Facilities334163
-Node: Bash History Builtins337077
-Node: History Interaction340934
-Node: Event Designators343639
-Node: Word Designators344861
-Node: Modifiers346500
-Node: Installing Bash347904
-Node: Basic Installation349041
-Node: Compilers and Options351733
-Node: Compiling For Multiple Architectures352474
-Node: Installation Names354138
-Node: Specifying the System Type354956
-Node: Sharing Defaults355672
-Node: Operation Controls356345
-Node: Optional Features357303
-Node: Reporting Bugs366871
-Node: Major Differences From The Bourne Shell368072
-Node: GNU Free Documentation License384759
-Node: Indexes409955
-Node: Builtin Index410409
-Node: Reserved Word Index417236
-Node: Variable Index419684
-Node: Function Index432779
-Node: Concept Index439788
+Node: Top930
+Node: Introduction2848
+Node: What is Bash?3076
+Node: What is a shell?4189
+Node: Definitions6728
+Node: Basic Shell Features9646
+Node: Shell Syntax10865
+Node: Shell Operation11895
+Node: Quoting13189
+Node: Escape Character14492
+Node: Single Quotes14977
+Node: Double Quotes15325
+Node: ANSI-C Quoting16450
+Node: Locale Translation17694
+Node: Comments18590
+Node: Shell Commands19208
+Node: Simple Commands20080
+Node: Pipelines20711
+Node: Lists23449
+Node: Compound Commands25178
+Node: Looping Constructs26184
+Node: Conditional Constructs28647
+Node: Command Grouping39577
+Node: Coprocesses41056
+Node: GNU Parallel42889
+Node: Shell Functions46875
+Node: Shell Parameters51959
+Node: Positional Parameters56088
+Node: Special Parameters56988
+Node: Shell Expansions60327
+Node: Brace Expansion62270
+Node: Tilde Expansion65051
+Node: Shell Parameter Expansion67400
+Node: Command Substitution79694
+Node: Arithmetic Expansion81027
+Node: Process Substitution81959
+Node: Word Splitting83009
+Node: Filename Expansion84657
+Node: Pattern Matching86822
+Node: Quote Removal90522
+Node: Redirections90817
+Node: Executing Commands99981
+Node: Simple Command Expansion100651
+Node: Command Search and Execution102581
+Node: Command Execution Environment104918
+Node: Environment107904
+Node: Exit Status109563
+Node: Signals111185
+Node: Shell Scripts113153
+Node: Shell Builtin Commands115671
+Node: Bourne Shell Builtins117699
+Node: Bash Builtins137606
+Node: Modifying Shell Behavior165232
+Node: The Set Builtin165577
+Node: The Shopt Builtin175903
+Node: Special Builtins190324
+Node: Shell Variables191303
+Node: Bourne Shell Variables191743
+Node: Bash Variables193774
+Node: Bash Features220649
+Node: Invoking Bash221548
+Node: Bash Startup Files227326
+Node: Interactive Shells232355
+Node: What is an Interactive Shell?232765
+Node: Is this Shell Interactive?233414
+Node: Interactive Shell Behavior234229
+Node: Bash Conditional Expressions237517
+Node: Shell Arithmetic241519
+Node: Aliases244295
+Node: Arrays246851
+Node: The Directory Stack251832
+Node: Directory Stack Builtins252551
+Node: Controlling the Prompt255507
+Node: The Restricted Shell258279
+Node: Bash POSIX Mode260116
+Node: Job Control269502
+Node: Job Control Basics269962
+Node: Job Control Builtins274681
+Node: Job Control Variables279152
+Node: Command Line Editing280310
+Node: Introduction and Notation281982
+Node: Readline Interaction283604
+Node: Readline Bare Essentials284795
+Node: Readline Movement Commands286584
+Node: Readline Killing Commands287549
+Node: Readline Arguments289469
+Node: Searching290513
+Node: Readline Init File292699
+Node: Readline Init File Syntax293846
+Node: Conditional Init Constructs310832
+Node: Sample Init File313365
+Node: Bindable Readline Commands316483
+Node: Commands For Moving317690
+Node: Commands For History318834
+Node: Commands For Text323019
+Node: Commands For Killing325948
+Node: Numeric Arguments328405
+Node: Commands For Completion329544
+Node: Keyboard Macros333736
+Node: Miscellaneous Commands334424
+Node: Readline vi Mode340230
+Node: Programmable Completion341137
+Node: Programmable Completion Builtins348413
+Node: A Programmable Completion Example358159
+Node: Using History Interactively363409
+Node: Bash History Facilities364093
+Node: Bash History Builtins367092
+Node: History Interaction371020
+Node: Event Designators373725
+Node: Word Designators374947
+Node: Modifiers376586
+Node: Installing Bash377990
+Node: Basic Installation379127
+Node: Compilers and Options381819
+Node: Compiling For Multiple Architectures382560
+Node: Installation Names384224
+Node: Specifying the System Type385042
+Node: Sharing Defaults385758
+Node: Operation Controls386431
+Node: Optional Features387389
+Node: Reporting Bugs397453
+Node: Major Differences From The Bourne Shell398651
+Node: GNU Free Documentation License415510
+Node: Indexes440706
+Node: Builtin Index441160
+Node: Reserved Word Index447987
+Node: Variable Index450435
+Node: Function Index464615
+Node: Concept Index471916

End Tag Table
diff --git a/doc/bashref.pdf b/doc/bashref.pdf
index ef90d3bc..45284f78 100644
--- a/doc/bashref.pdf
+++ b/doc/bashref.pdf
Binary files differ
diff --git a/doc/bashref.ps b/doc/bashref.ps
index b49bef75..1d3bb836 100644
--- a/doc/bashref.ps
+++ b/doc/bashref.ps
@@ -1,17 +1,18 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.95a Copyright 2005 Radical Eye Software
+%%Creator: dvips(k) 5.991 Copyright 2011 Radical Eye Software
%%Title: bashref.dvi
-%%Pages: 168
+%%CreationDate: Mon Feb 24 08:28:32 2014
+%%Pages: 172
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10
-%%+ CMTI10 CMSLTT10 CMTT12 CMTT9 CMMI9 CMR9
+%%+ CMTI10 CMSLTT10 SFRM1095 CMTT12 CMTT9 CMMI9 CMR9
%%DocumentPaperSizes: Letter
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2010.12.28:1430
+%DVIPSSource: TeX output 2014.02.24:0828
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -43,19 +44,314 @@ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: cm-super-t1.enc 0 0
+% This file is generated from `T1uni.map' and `glyphlist.txt', `gl-other.txt'
+%
+% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+% LIGKERN quoteleft quoteleft =: quotedblleft ;
+% LIGKERN quoteright quoteright =: quotedblright ;
+% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ;
+% LIGKERN greater greater =: guillemotright ;
+% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ;
+%
+% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ;
+% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ;
+% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ;
+% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ;
+% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ;
+% LIGKERN nine {} * ; * {} nine ;
+%
+/T1Encoding [
+% 0x00
+/grave
+/acute
+/circumflex
+/tilde
+/dieresis
+/hungarumlaut
+/ring
+/caron
+/breve
+/macron
+/dotaccent
+/cedilla
+/ogonek
+/quotesinglbase
+/guilsinglleft
+/guilsinglright
+% 0x10
+/quotedblleft
+/quotedblright
+/quotedblbase
+/guillemotleft
+/guillemotright
+/endash
+/emdash
+/afii61664
+/perthousandzero % PERTHOUSAND ZERO
+/dotlessi
+/dotlessj
+/ff
+/fi
+/fl
+/ffi
+/ffl
+% 0x20
+/uni2423
+/exclam
+/quotedbl
+/numbersign
+/dollar
+/percent
+/ampersand
+/quoteright
+/parenleft
+/parenright
+/asterisk
+/plus
+/comma
+/hyphen
+/period
+/slash
+% 0x30
+/zero
+/one
+/two
+/three
+/four
+/five
+/six
+/seven
+/eight
+/nine
+/colon
+/semicolon
+/less
+/equal
+/greater
+/question
+% 0x40
+/at
+/A
+/B
+/C
+/D
+/E
+/F
+/G
+/H
+/I
+/J
+/K
+/L
+/M
+/N
+/O
+% 0x50
+/P
+/Q
+/R
+/S
+/T
+/U
+/V
+/W
+/X
+/Y
+/Z
+/bracketleft
+/backslash
+/bracketright
+/asciicircum
+/underscore
+% 0x60
+/quoteleft
+/a
+/b
+/c
+/d
+/e
+/f
+/g
+/h
+/i
+/j
+/k
+/l
+/m
+/n
+/o
+% 0x70
+/p
+/q
+/r
+/s
+/t
+/u
+/v
+/w
+/x
+/y
+/z
+/braceleft
+/bar
+/braceright
+/asciitilde
+/hyphen.alt % HANGING HYPHEN
+% 0x80
+/Abreve
+/Aogonek
+/Cacute
+/Ccaron
+/Dcaron
+/Ecaron
+/Eogonek
+/Gbreve
+/Lacute
+/Lcaron
+/Lslash
+/Nacute
+/Ncaron
+/Eng
+/Ohungarumlaut
+/Racute
+% 0x90
+/Rcaron
+/Sacute
+/Scaron
+/Scedilla
+/Tcaron
+/Tcommaaccent
+/Uhungarumlaut
+/Uring
+/Ydieresis
+/Zacute
+/Zcaron
+/Zdotaccent
+/IJ
+/Idotaccent
+/dcroat
+/section
+% 0xA0
+/abreve
+/aogonek
+/cacute
+/ccaron
+/dcaron
+/ecaron
+/eogonek
+/gbreve
+/lacute
+/lcaron
+/lslash
+/nacute
+/ncaron
+/eng
+/ohungarumlaut
+/racute
+% 0xB0
+/rcaron
+/sacute
+/scaron
+/scedilla
+/tcaron
+/tcommaaccent
+/uhungarumlaut
+/uring
+/ydieresis
+/zacute
+/zcaron
+/zdotaccent
+/ij
+/exclamdown
+/questiondown
+/sterling
+% 0xC0
+/Agrave
+/Aacute
+/Acircumflex
+/Atilde
+/Adieresis
+/Aring
+/AE
+/Ccedilla
+/Egrave
+/Eacute
+/Ecircumflex
+/Edieresis
+/Igrave
+/Iacute
+/Icircumflex
+/Idieresis
+% 0xD0
+/Eth
+/Ntilde
+/Ograve
+/Oacute
+/Ocircumflex
+/Otilde
+/Odieresis
+/OE
+/Oslash
+/Ugrave
+/Uacute
+/Ucircumflex
+/Udieresis
+/Yacute
+/Thorn
+/SS % Germandbls
+% 0xE0
+/agrave
+/aacute
+/acircumflex
+/atilde
+/adieresis
+/aring
+/ae
+/ccedilla
+/egrave
+/eacute
+/ecircumflex
+/edieresis
+/igrave
+/iacute
+/icircumflex
+/idieresis
+% 0xF0
+/eth
+/ntilde
+/ograve
+/oacute
+/ocircumflex
+/otilde
+/odieresis
+/oe
+/oslash
+/ugrave
+/uacute
+/ucircumflex
+/udieresis
+/yacute
+/thorn
+/germandbls % or /germandbls.alt
+] def
%%EndProcSet
%%BeginProcSet: texps.pro 0 0
@@ -76,23 +372,38 @@ end
%%EndProcSet
%%BeginFont: CMTT12
-%!PS-AdobeFont-1.1: CMTT12 1.0
-%%CreationDate: 1991 Aug 20 16:45:46
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMTT12 003.002
+%%Title: CMTT12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT12 known{/CMTT12 findfont dup/UniqueID known{dup
+/UniqueID get 5000833 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT12 def
+/FontBBox {-1 -234 524 695 }readonly def
+/UniqueID 5000833 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT12.) readonly def
/FullName (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMTT12 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
@@ -103,88 +414,85 @@ dup 108 /l put
dup 110 /n put
dup 111 /o put
dup 115 /s put
-dup 123 /braceleft put
-dup 125 /braceright put
+dup 124 /bar put
readonly def
-/FontBBox{-1 -234 524 695}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
-C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
-3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
-426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
-D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
-E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
-6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
-A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
-0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
-85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
-F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
-C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
-12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
-048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
-0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
-741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
-9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
-306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
-CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
-1353CC1FC512D59DFF847ACCD3D295C5D09DFE2A27B87A0F54938CC908FC87F8
-A08FF8F94A3051855B401F349F5CBC1DAD02C3CBE583E69FBD18FC747D2730B9
-A62F25952755ECC04C1852CB5CA505043B428E2BF1D407A26E0AC0C85E0DEB4C
-425D14F1A1BA5972EC78AF68FFDB2425A9F5ED10220B1716A83D53D5958094ED
-3D2CD66F2A070515F737516108CB2B0205255E9BA568C2A847679FCE1B1AAC31
-128359CED2C77D35333CE94AB2B05797C43EA28810F314D3283555D399E30FEC
-C1F113B94484B6CFCC0988EA652BD5E0F61983225CE3A1CC1FA80F13DD945516
-C84962DC76A254C62CCBDB47B6CBE6DD237E38177D216AB3F9BBF876C4775680
-A4F8CE4DB65064C59D540E36EDCF9C3AD79FFCFA244A6FB20D047BB4774E6316
-69F7D47D459A56A68B2F45417DA9C04CF6F370D13E2292908671929511BAC37F
-B8F709AC597A2B80340B60584817C685319CE7CD7FB243F5D9F9848D4B45CC4D
-22CE6FEDDC2316EC3199EEEF12CA0263ED6122153C444612F0612C338981E889
-ECB0006CFA33076F02EA838E03E551785BFD414BB360B19A0CFCEA852C12F6A7
-C36E68E2121B416EB29CC55D87804D6E79B876C7A0BEA416FE1FCC727D00E341
-47F2B3A20534E6C16D81C0CAA970639C0D690DF2383FA7D6693E1863F2BFA94D
-D7A0B91D6E2A5770D6997971C227B38D3AB79D62CFA3BB7E18E5857FDE0271DC
-8D0467EB8A60EF3A0EBD77730AD8F4D7AE248C103CCEFC17C717DDFCDE9ACE1C
-1BBBF78434C9F66C455D1A02859960717C61B0FE911A0FEC12B0783F944F9B1C
-B7BE3D1B67108D79A2C5C578B97B870F5BB646CFCECB27885DDAF5342783ED3D
-84463FF40B432FCDCEDAC7827FA0C1F6E26805C50EE6448BE598BA51324A6F5E
-493F035C131B7D9DB57EF720FE2E5FE1C532C51A0905EAFFE463BF7E47202808
-DFB0934AB9B27C12D8BB566BCF4D89709D282CDA9607E25DBC140F61671B1926
-0CBE74FBB99D87802E74A250E87029AA28E98B3FA3DFEFAD4723DE5961E9AF3C
-B5A35E3BED0B97894CF8E44176570DDCD6EDF06CB66F0CDCBE75F77E14C90F89
-BA830760415ECCE0DD1A1B2191891182275904FA1B587DE149829C711CB58ACA
-33843E14B42B9C120C917D57DD8EE4F0ECC257767B6AC6EB80E563F84101AE08
-829ABC0A055A4D33AB19281A0345AEE764A7D135BCAB8735A051D8A7892B4702
-E9917E2CB149C24C721C1D12731A5F8412524CED7E850602D8BD05F7BEB64F46
-472A600F50E758FD22A8126A913C001473CBC84165A4B46B25E00FB2348F3896
-20C8886A5B08704C319924C1749F33A3096406A27FDADC6F17807103DA04D354
-FEF400100881609A42E8572819B845B8A8B7FCF2CCCA75A1CB25BBBF3E2B1C45
-FC4BDEC03311D6CCF78669C53432D786530039B36A8037A95A231F17E98359E6
-F0E892CAEB646877F4C4FFBCCB5C5A8143FF00B90F01A62D0BE68D593E97A2CF
-2EC3C1D389C2474878A7E7BAF4C97C2733F958D6CD02F9EF880158455958A15A
-C2A4ED22526838EC3530C7EC5654204444A28529BF68ADCF93E3DA72ABD50E46
-3499D9A9A061D59C0D35F1FA5C5EA5CB93500268FE96B416F66EF179E184D595
-14DED98C95A8EEF2D172F8F59AC529A392838572C0E48018F8C9D6E6644AEA2D
-60C68F8B4BE2420B171750C96F8398C99DFB709379085C901EE6DA44DC4F671D
-10172309F8E7E7E8D9F5D4A6EBCFE0C28BDD4D6DAA0C103AA0BB2F2D52217302
-B580D26E9A89AB56927E729AFB576FDE9877B16A2483B67D3917729597707B08
-C183A0DE48462D2E16BA17F8BACB18BB9B15434551FD9F0D9F6142F4A668F631
-8BE9288B53AAF5755A28DAA6D71D17062D29D19A9EB299814755C4C6E5D03B64
-CE8ECD65C961AB35E468C36E087857A9315D362A1D3655A41D249C32C459760E
-A66FD627FCC6745F9575782B47F362A33C418F10C16E0DFB67A151E107B5109F
-4F58565797D5BA3E4B0A45978FDFA804C452F708A81314B36D5F448A836C08EB
-A2FF2DE947BD3779658BEA382C00DE63BF2AC04DC2DED83B8DFC1263E7819446
-244FBF5CFD4581952D515909B617C205A54AB0B40CA7ADE8DF11B60C4F14802A
-1398444E83A91834D2BF6E9525E6F9BBB4757EC393751695D626926D4240CA7D
-501664845B89C7E6BE94E3BE8D67531C5528465CCF393A383238EE573E2A452A
-97ECE639797A8B18FE620BE63784BAAD630E0F534E3715408A0AAABDB0767EE9
-92E8CC835ADACCE79B38AF6C21DA95F5B5EB17AD07892B6DE3598FE66FDB07F6
-
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D05DA0555DF933BB0
+7B42D264831116C06C79335D519461E7B0E870A6715E3D74A08D1BCF86E3BCC3
+A43FC6BAD1C68BD9D4AFCC06D845FD1F1E70D7A47F0BBCAECE8396E04591E5E3
+4797F646AFEEB7DB548183F0B74C9BB6BA2AA04E7F5950EC8AE97C741D4B2C5C
+A8E7A8DF5A36A30B5A7592D95E1DBC63EF33C92FE459792CED29E2B8B6919251
+75EF62089BD7D44A6E1F9B62EC802FBE62B821DA1C3B2DDED45D27964AD29ED0
+9FB7868F3A8FEADA87A8E42D52C1EB7229D7C79B60BDA263F2BDB025AE14A507
+098FA274206BACFB4A0A7257D5998EE8F0FDCA79CB61DD1FC59DADD11E16BF02
+ECDFD706CDA1E72054D4EB55AF7BA9F19955886BC0BD6E0E3FE3769C94AF3581
+DFB2BCD67FE2892AF07E858A01280194D8DD7332B3D0A585C87FAB056C2EAA9B
+5AD48D1C9F00CEF8EF0D1408DBE1C03D04B231D7B8D5D998FE0CD7EE19828EF2
+F988EBF6DDBFEE00F04A4A1F4E1A55DED7EF3AACEAB5005F1962C724A017C914
+2936E2E0DF26A55ACD7DD836C6035CBF07981C1BCE3615064F0540A1034C69B4
+E3908E76EF8925D486DF0B4A8E1F02D8AA99585A7C31847AB9382F83880C1C21
+C496AB2DF8E7BD4643B28B704B5F6B53429D3EE940A79135F5BF0396E5B46F23
+42AF406C26D12BEA7A41F332AEB75DF43C15334CF4651A99F602036946B1B91D
+4BB0D2E51C20216D892C8173241AC8FD15A37C3CDD8AB4FB67D8565AFA61C068
+95E3D6E46D7C09BBD09428207D506AD43C693F3C3D787F6A5C39084AE45E81C9
+830900DB50DAD10A17E118FB5E9680B5194716A788FF7514A1167DD1A305FBE5
+5925388A2E95AE46E8806E0F7B954D1A9F70EE29B069A9FEB0349298CE5311BB
+CAB039C21AEB714781BBCDBF2FFCBE7C4750D7693ED142ED0475EE9DB5D5F94F
+4D4613E2C379E494464447C4167C625D70B9DBE4756DEF299974B704A3C238DC
+FCD3AD96645559ACA5056F7FD695D2AA709960E30F055ADBDCC7FDF641920A9F
+A279AAB98424E76D01937F9CFE3CF4E3779650D7C2DC38AB27FB81EB16C19B13
+D47E0AC60C83641CCC1A00136625FE274C6AC706B516CBF14C54000BC2B7BD20
+A28D40FCD6D9B321855BDA608E23BD365208DAB23983C0D8A7C9DDC28ED62216
+12A20A3068D843B5FA016B8C6B9BBD36356BF85A128F96F0CE861FB9C998BB21
+E8624E3DE453C686D41DA7B72ABD919C5BE2F24440D11962C77742A8C0115A72
+9E974E71247FCD58318A4347813D4D5A73CF882A7513E2EFE05CE8C7195BDDC7
+DF250B59AD14D02D2991E2D0CF2D0022EF52D78780A34D2A5EBDB458198535BE
+8B67CE5E1C9152A21FBB14C4E72828182A77418DF5E3439ED90AC7529AF0E761
+A8FF0676364C61692CCAD317817EDCC17260FF7E2BD3FBD5B6BB078C8D5E78E2
+E2344C0FC14382F41601EE374DBBB0C2465AED57BC4ADF0622B22B2B9DEE8A65
+41F49237821D3C04AC267AE38B4847CA255747D41718122F35239FD328634281
+701854F90CF39734734FD82C4A893B68CA3DD5F353A5416BC710F8B627AB30E2
+CBE1887C4F4A8892FEE7FEC1FC2FD27005C3B416E3146D5C0F157710504DD523
+DD7196888D0DAD10D8BA80034973346DA10C42C39F13C7A1CC3A206874DAC8F4
+FF91066FE31954D26803547C6D73CF884ABA4E9919F94C61BE31389F338670CD
+EDD348C3147161C8A013BD73075E9D5453BB63F0D1C1FAF2D3508999293EFE73
+1938DEAAF8E9912B570CFA85337C0097B65F0BD87BC2985088EBC9C82C603762
+36C212F08216BCF7409C3C0C45EA3B3A70F355C88B00991913B8B37B394A51B0
+F31480B8864B519B46A664D84DA0DFAA5EF761088C8D753BB68DEDAB413082EF
+A3D13D88404B22353D13CADE3FE1A4C4C84B22D6E01883DB55B1070FF8DF4AED
+629BB76EDE1DCE72DD5E67DC7A65A823BD897435159D2A19EF6C1B8140DF6FA3
+B134DF24C97EBE566E371DAE070410144971C9591FC918AF87D5282DDB0B5646
+4FEDE6C79EB2442F59D3C9078750AD6BC35A5ECADC438496B1AD5DAC09445A54
+7DED15E0B678EB9310B3576A4962D846B405B019F7D9601A0435B34CEDB468F2
+249228EFB45311A50211148FBDCA8141406B7AF8A7F1712E15149114134BFB10
+D10CF434EC53D2E1482B3CAA38A50F3712C0FB9AA1452F468595BAA7C16BEB59
+B2F3C6771FECA7C8B2608C37FBB7142D61F31E86F5B712FE3B7DFB52153C6CC9
+95AC0DC8764DB20787FC4366FB90441976CECD1FF9D4ECB82FBED648C292401D
+DC2B6A71FAFF6D22C8FAEF0928C7280E8B0DB146EC742F8A479138642430AC85
+F6933F11D5171C0BDCA8DD5155489C4E9066882EDC00B078108B4A3C605C165F
+184C4198F9FCBBD65FDF7B7AFED6768C847E3C5E9788402902976DBCD5FB3CE3
+3D592281A1B5A17F0E648ED88529D43D525DF5FD966F9707C264A5AA7F703546
+F103259FC2F77CD379FF00A34BE6385EAA9DA5A06C7801F000EC795747997CC9
+C31D4EDA25CD2037DBD53DA48F51FBB2A757971D33F0C3EBF1F6B051F6D995F0
+082CA7139AA8C990D10197A25C613C199A634B63C5E8B8EBB91272F510D13162
+47A2ABB34D5741CD9E45022A81934C3CC7A8042BBF28A3E9BA7718E08AC91E35
+9C1864328AB297AFBF2DD62A13EE850B12DA21E621AECFD642FD70A42520E854
+9BC128C75DAB4B316F3FC8A944E6102B2F6700FAE355319F079027274E610266
+83C4F35A4FE9689BE48536E93D0C6C5F6011707F95E5DAE8DA8256B7CC81F688
+4184B8E96CBCF86E99E515AF5F90B209228DB44EC8618D12F602591F010A2669
+2BA8E81C1E18161D532D0C61DC696860227170A05406A52A6D89BF19FC952FF8
+D47D8E6333C1828A7E7E3B8BB1C7A85C35AA50AC0CC070E540D8F0BF951C6F87
+4B8A4E41D65350806F04B06F3F98E881649F3895D83A27B5A4F2D4DBC8EC483E
+5E43E196A6448A82B881F7EFF91D6C99C287E3439C5E6ACA6A53070CD1FA6384
+068F78E11E6F596E080C84EB0CD85422B46339CC8B5598D0D699C506ED02884E
+3C9B9EE27357AB5D42096F
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -194,25 +502,41 @@ A2FF2DE947BD3779658BEA382C00DE63BF2AC04DC2DED83B8DFC1263E7819446
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMR9
-%!PS-AdobeFont-1.1: CMR9 1.0
-%%CreationDate: 1991 Aug 20 16:39:59
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMR9 003.002
+%%Title: CMR9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup
+/UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR9 def
+/FontBBox {-39 -250 1036 750 }readonly def
+/UniqueID 5000792 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR9.) readonly def
/FullName (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMR9 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
@@ -266,298 +590,528 @@ dup 120 /x put
dup 121 /y put
dup 122 /z put
readonly def
-/FontBBox{-39 -250 1036 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
-3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
-046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
-C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
-A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
-A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
-731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
-09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
-49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
-5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
-54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
-C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
-11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4
-48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F
-25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52
-24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259
-21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D
-2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815
-2614114FCB2EAD5C07129169D177068A05D123FA94A1BA4CB69D6866DE72B305
-542D8C5FC997943D3A74BCC67CE5838933B4DD72CFF5EF285AF1A3678FA1E276
-B880602235D8D3633777078D9CF03CED0145A2C98A90DF1DEB7AE8FF96D370F4
-DB15045DED7BC8EBFDECABDFF6FBBF244A31A576203FE1A8292E91A9D1FBE931
-051570D4224B4A0A6A229B322E8C312E422AE6B50B05DA2BD42B784B5F64AF81
-89010C01067C52625CFC6BE9A6D383C0A4117C3E7B5A6102B4E499DA1091F10E
-98790162606EC258F6A203691A8838758D5E915A78B191C56072663CB37CD138
-8CD0866D26682029FE24391284179BE85A1086C6C307756D7FF138284B662FBE
-A86B5216EF695048AE526910BFE88DDB8D651D585B5B8D7A1E457A284979BCCB
-7A38585791293443055C7C79EFC140E6725DCD4CC66866178331939ED55262F0
-68A85757C07FB3E661324FCCFB3C394164BDEE5AB9E19F48D4F8264BD153B0F3
-BDBB617BD78B95096AB3E1790675C1A4E553516EAE0BA4ECF3703EF646E9F4E0
-AE9B346936CCE23F44F821AB12DA11D312D33830F07A000529D3A2A0866F67BD
-D1E50FAE5C1539EA730EE72EA642A060F1352CE7D8DF27CFDD1D007FEB36070B
-0C807A2EECE49A3DE849DA9CEAD0487A2EAC929C92270EA13C1A03196937B747
-3DD88B5E47CE93D8B07F6DBFE375B6AFA033692C61CF03A842E358ADA933C697
-D26914CCC7505CAB2973E488A195DB54F82412E0AFF344B116763FBC730747F5
-24EBCC4FECAF9450ADFCFE7AFCEBB795C39599A5C38392F8376EC4BA39C42EC9
-C35EE3324D35A6C4902FFC9266A12B6F9B2F2FD6C25B54B86286C96942DF91DF
-770D4A1CA99D2D08079EFD8C5969FB473FD832646105CA6DD00EC559BE8EBB14
-04667BA9EF9370D1787D94A108ECF9E5FD2B1E86C0417147BB31020C9F6AB571
-63853F5718ABA2B0E8B5DBB1CF13A31E3EFC464631B3027DB4001EC0BEBE50AB
-24ADDEA0BE07A3D0A9656E5E7A235B7C23BC77A99D18B3962B095FCFAECC3189
-7A4FB593ABE57BC0587E1DD883C1C7708AE98B2BA288CF4DE3E759A046D1A4D2
-3AC2ED1D728FCFB52AC7092C24AA1A2BC0901C9875A3D547BE00AF69F96DFE6E
-E2465104579A8E72D62CA221DC32E0F8B7670250C6797E7A8D320F8FAF3CAF55
-06A48B1388A1890485E17DBD705F0EC72469733343A3CB0B5000EB286D86FD35
-089CEC45CE92E5F7E86D10EF6EA41B8B2E0ECCC9580A4D6EEEB1A632B421ABBF
-67946E1DB896C5093F733DC91B39F5426807647B5B0436468609DA0BAB8BE701
-FC10CFBD1C9D02810FE22F3E6FC4575D7A576FBB2CB4039E785C9180101386DB
-4AB343DE4E705B6E5BC821E0F0CF7D3B021C558E61D68B98A9C89218E19CCE3B
-80FF99E8C213C796FD3CF43476832FDAEEA71CDC2C8C475D18745332B845DC96
-1AF7E38FEC1E0C12A785718405BF5AE70780161A7B39278956B1C073DA090220
-87873DB2F2C84DF46EEF6D169E9243AC8CDF7AE56BD45F92EB921B216C3A182B
-0BACE2FF94B8CD6A0D089F58E96CAB516637A5BB4CA22FDC56503C947CB0BDB9
-E57204111C8A60FF1354604EDC13AF4062E53848BE4B82799CDB525E494170EF
-3131F3B1EF71F9018ABEB33B64EEE7640B3DCC7A1519C7EE1B88971676CDDA06
-8E7E54F8DE8485873F3297097C7A7BDBAB6BE876080C75E953CD2B875C541138
-59E72622A8719A1640FE2524889C19B80514BBE1EC2C8164E687624F49B890F8
-6D74A758BC66F9F269FEF1AE396F7EA885F739D4156F917B3C072BD68CE5A5D9
-92A8569884F5344DD92B7DB405990E6CB885BD9A4970BAA28FC168066DC943FC
-F3B9EDCE7E78B857E76B1B4C3200FCAC0298E2B8DF7105BD6458DB913EB76136
-FF9F6B7C940FC435F3E803A9603D24D97A683FF9C6DF75B29D10378AB7AAE5DA
-5F531DA50A1CA6837C88B16683D626AC7D22EBB06B09A72A893EE52BCD9BE1AE
-F53FD9B40FEF8E75EACCA630701C9BD333F2C4ADFDB69383A4B9791E65FC0A4C
-FEF2001704072FFF68DD6CE5252E0C35DB2E3C68D0B4BF6B31C175B77C1B2DB1
-D3BCA2C544E9B4CB843CA268E024CEF1420DD215C4F74FCDB39FFECA898ECA3F
-999693191EEE8A29B54F519177763F5580F59F82F427A776406A00A44E748A1F
-E5E0D292A763CAE8F278792822C41F0BBB828B18CF312EE0F8A4A09005AC1022
-6A40D186FB40A2BD6A8EDBFDC9D09D4A591BFC7A75E709E91C08CF379FC48B09
-BE319E09D18D18EAB2E4A4A9F3B2F8DBD064D836041AAC60BA5318417E65B130
-79724639EDE691DE718600EA592E08B2E6171A2B6BABCB867EE1B96B545AC399
-1A904D67B9127317BE9C5FB65887A22A356844857795C46A9AE4F81EF4686314
-B642FC7C3730DD3AEA4FC3A0443E8584C4A7A725A0FF1ED837729EC244163846
-C172F50122C0AF2D8813C20048CA2C94932D35C4C8DC04C39B4C36E81316F137
-50C2F675678BA9BD8B2CB9C4F2A38554BC54E85FD27CEAC8B555A3749C05C0FF
-E067ED27A933FE2081EE405C1A923D1A9334B4E8357430C4F637B90B6CEDC216
-B7F6892493686733268A8FDDA644DB79E8E5713C5F7C7A50DE64C40AEAE7DC54
-6CFACBB0C0F46A953899489787CFFD8C7FA1EC161F4B2EF2D2C0B704654C3225
-4FF4A4874E34B32E4F82E1ECED0BBDCAF0DADD3DCF20549E6A40345F5C442E32
-A191BDEF9431589D3778CE7083849F4983953686BB56D13FB8A6C1E9CA76BFED
-4F89CE11C81E551D994ABF775D2B60639F0A2A67C4DAF416A71821C1E3AB37A9
-A4353C908A9DB90712EAD91E66A909A18125E6B25CCACBD7298A9A0D3A787BBC
-FDD94B012AF32AB92ECF0041ECA76D445E00B92C3314B510BB4AA0050CB0DB88
-1C62F1103E1D55E4878ECA9400B92B139A31E7BBDB0642175D0B407F9FCDA194
-C9CDB455870EA50F2890A9284EB97A010832AAF9B7CD0A686C27F3EE3A23AFB1
-F8A53AFF67550FAE4AF01F7FF4E43C8F70CE90F0E011EA960EBEFC24D4FD63B0
-58C3377E262D09848D159B48E55C975C926E0E3B9A31E9A54869675593E0C822
-D54AB77B23F5A3EA77C844EAF690D887BA3142B7B947180EF1B02F5DE124E66E
-EA1221BE552672EF39A35F64C73ED1E4CEDB9BB34D2909E878377F0D9CB5F189
-FE76F098DB219D29B3933D446D67A7D9C3F6841ED9CC89BF31573FFDD1D796F8
-DDAE883524C758EBF7BE4EE6E659DDB4459E7844FB36B390A59EBC8E808D954D
-69A2595CF84112ED51613961F98AB24F0E343E88882CEC9B8EFA07AAE1352590
-F6C42DF3EE257D32C6066495B9D45E15F1EDE670303FF6B32D5F7A796474DCBB
-70BA1ECE7E6DC941883B37B7FCB918781F834F19A13A3CDF96101A1BE14A8040
-1C4EA70314CFDEBF0EDD6805C730F83DF7F637C057E2180C3D2B40811B0B79F8
-C30D4DFDCCFEDC943CB6FA25E862A0220C064AB3F8310047DBF33DFABD94B6E3
-0D5B49A8254AE26DE08DA4ED08A4D7BB2B8A55E4BFB8716B73FEC259D6BEEE26
-BB60AED6332A87E45897F51C7A12B03B9A36BEC38518BFC382DA4D41E1F5AE6D
-6E4B77DC99D23E18F2255EE43E594D350D7AE8C83A402041E42718EDA46AFA98
-857879E51E5DAF09848D852FD6827310EEFFDF1CD784B73EEC932C54EAC836E0
-70618B66801630EDB278E4508EF63C9831F0A4D8DB7CCB39728AD4A5044FDE07
-E2768FDC60191A7C70CBE976EE4C1BAEC6FF07DBE4614CF0CC1239C266269064
-BA7A950E4E8FE1F75191438B2C3DC018B94BC673EA0DC79BC52DE624B3DE39E7
-581BC8DAABFD865697BECA2007BE57E026BDA607B48D90804206BE5147D94F92
-CFD28198136B07829DDDA89DC06A4A738448882BEE3A961C4CEB245250416A5E
-057FE491568CDB970B580B922F7121D76B517CBF310CC3C6BDC79B156B33F96F
-DD649953DADD5A7666A91EE7614F7EB5D3F40C68C7A3E74C21C8AD3DA764D8AC
-C9289A5A5CF4E6BD220090A8CD749BE50D2C0135B1FF443E41A7F037E3136DE2
-6AD9DD4D840E2265D6EFC1862738D11D11CB0498111EAD036F9A920B8079EA13
-1DA60D4487DFBAEA127D9330305019BAC3D62CB449458B3728C37B5970CD7FCF
-2CEF653CB1A37B8E16149A796F5F1515C2D505CAA449CF1571D2403A66808534
-37E8EA975F71FBF84FAF9D2A6E19778D4F0A21DC35DC73CC6851EFB55C04F832
-98816C20F8A7AF1E7BD898BC92E5B17E0C2560BFF448FF4F0C61B9B619AA9344
-957BA4DF012AA7CB844F6A2045B35E002755949748483545CDE6BA268F45CF93
-9A4BB9847D73CD53C0C54D27678A3C6BE478928AE3F7FEA9CA415CDF4467304F
-90EE099A0D1597241AAFB7C6594D48D0076FC938FDDB99E769B7C9E26CD3B834
-E708F72D69EA101A7A659D9A45EAD212A79CA612C46AB0C3822390CF8C359715
-842B0B9724CD7968B62A9AB251DBE3230E2A75780344004EB9565798A41725D8
-62C9316F4DAFD66FB503EDABFE85CA7A2DC73F2D3CFEF347C4396F67199275D6
-C15D4441727F2CC6F749B527CFE9C8FF95F87DE5C45DFA8BDBE0639916E92F86
-B5191DBBFA50186ACB02D0CF4A978CABDC22673BE96EB7B9D55E8AC8A42F5616
-0D47CF1C4D2788339C8995A6E93348B313ED8ECD4F7562FD46FCF7DAB75216A0
-A7368EA565E2AFCB92857C37C41E54FF1DE1430EB24CCC1A0441FDC87D122DDC
-8959FA7A691C18CB44EC2A5A711FC9188362597510C894CBDA48486E932BB1ED
-A35DC7083570126411BCF1838F3593A4D208C042F55A4A96CC0DE494EDD67AE3
-89CD635AA5093B969B604241F4F01AF65B430EEAC934D9A23C5DF3CB7156419E
-2D8977C77CA4CEE2293FCAAD12B694163FB4AA99C7348216BE0A9A86AF66C01A
-4F98E0E6C9CC4FE29D1494ACF281B4A0656909B87E6336F8D5EB590032268401
-C186C2B53E1026BFC1D001363B376A6AA5EBCBDFFFE87468B2ED480496035BCF
-2F409D2A4755AFD7CDA87DD3A6D4490CC5E1A18339DF00D3BD8803A78E75EBA5
-DC16C429474AD2F1C4D6E33EC477DC7F63F03501745573C9295555FE520A4090
-97AE83F9A411879BFF20BE70893A2C8FA46889B0340C30294D69F6472B94B615
-21745C9EB65997EBA32789FDB9144A630A34100B3FC2142213248488DDD46B19
-0E7B03AA78B70F66DCB5D80AB7A59AD954D90B212E723B2C19CDC44BF34EF8CD
-876EE89F3B29C2B3B7E1EF2894B109B59F1C1423C02D89A9594566E5FE179778
-3523F2C665DD4E2ADED8B09A6B4B7E5977245DC95C8E626E8F02F72F6BC0C9CD
-6F6B396FCA89FCD9BDD82F21C72F0208877C38525E087AD63EF3A73A64B460C7
-437D3DE8A3D33C7E13885581A3B895F28EF6EE357B78D9FE7172F42A4363B18F
-9060AA31889FA69584FE4B99F62C387AAE5F47F233ABB03E56B066B7687F2E83
-2D1A5B1294B1F778B40EF5614E05953F0539EDBE10F8151D23F7301F1BD3CC80
-03D645F6CE4E8DAF2C126537A54EAC7AC1772D1128FFF1E2F7AAFB60790453BE
-F11898B68FD4344CE141046FC591B4B8FA886E8C3BA638946D1629DC93B48CBA
-633F48348E4AB5BAA46AB436B6542DBE4D3BC3B26B3BAC8C5BF99334F1D8DA68
-2A805CCEA0FF53510C91BB85E137D3E63DB8647C7E46A9765278767DA1838964
-43F9C84F4AC0FC4FAA4951BE3D02BD4DE4AE4778E492544F4D9997DCDCBDD3E8
-2A6A780DDA679D86BB60BD08F4AC2E3467DB2A4E1F17E1A38DF332F82EA8B3EE
-1676C93888796C57BDAE6572795990157084750D6B080C2BEBD3F19A5FC61AEB
-BCB426DB3570BB0803D0EDF1712CABDC6474828C1BBC1B1E67FA18AA21D86A16
-C6E72EF8F6F4DB2898191ABA2486F94048CEB5F4B2D1321B0047476764577A8F
-F0492DA9A77B606FBB6787B94536AB286C6F6E68350C7F92E1945BBEAD8575E1
-DA29818CB64C28B48013D6E1B8EE3F26A3EFE588A278988EC249FDAD4E077A4C
-9EF91FD4F8256CC77601D4A0D9A0724A43D156F0E7603D67476D2E3493C4690D
-A84B84834827B84138B934FEC3CEED73AC380934C041A9EB8B24C8C035418D3D
-05232452BB268C814EAE8F9C73B0E4A3625CA4FD471F69DD1D576B7E11B3EFDB
-B38139565DA3B669D91C68F42097B5467329D6F56B722EB39330C92448F63EB9
-C2E54DA0233CBA9FD6E3D12E9419A6101D1CF32AE8BFDCAD20C40E2FD1F1F57B
-A9756C0577EA1B24D9C36935F20806C0342BA7DC0CAAE4CEB5AF5FCDC29BE62A
-19F65367AC70A0E54B4E5FA4DFA84B0B65129FE167B0855BA02C519A6FBA3BD8
-11D03A4091BA6CADA914FDD2AE88725ADA74829D757CC226D2BF4C45737732E5
-0494A4CB815BCCB8C5C9C7F88BEC01D07788630D0412BA25E890F7863250A482
-4E5D799CC845B8B39D8D17367F8CBB3211C0BF2EC572545E0D413FC1EB25073B
-BFD3FA9E510AF6CA80C2B0F827B36B9306C1462C801CBE28D1F4CBB9930AFE79
-B860D82CB414823E255899D716DB932AC10C19C33849B8D75A7EF322577FE59F
-8E90608F83C6CFDD029D367B7B7C76C34A5FE5E6D2B53B2C63DBDFAD937F73A6
-77950F4BF36B5F506B2C153CEC1D8FFD9F6ACED3C0EF99006E8FEA7C7354C53B
-F2069BB90D4C150DAA5B04273E7A5456385464A1DFC7BAA74273D473D5BF0D64
-536A749405170936BA5AFBEE07E9263452BC0242E9544FBB084C1BF99B4EB8E7
-A57C91062D07DA08D56F12435C45204BA6268F47553A4635EFD17D6A6593CCE3
-3DA4C57DF99373EE38E012F69F77F1616CD94C7CA262E6E0D90D7B9795F34EF6
-C04B75687090633AF0AF8829DD5035A04CD9D6235309CC673BB61E0729C49815
-D9EF9E3F14A09E10DDD7741D621AFDBA25A4937D432E54D0079C26349EA54A01
-10DE11D9408BBB86E0861C4E0966E4F6DDC790CD86719D53B6A1EE3E85B3A65F
-9B1C72C7CBA58C768685104BB7E68D83080928947CF4C5F699F3690967D166C5
-E21B97AEDDC77930B43273D9F1C2BF5DE9934E4B888742139301CEE5DFEA2C15
-5F8E0C765789200784CA6CC04D56AF3DAF9D5990E11E5677082B54317C310054
-5531B57F088323356355BF7A5BC9D839BA7C96F7178CA23C0FD1A24AAACE763F
-A58B4C0485787C170F5606792E6F3B4610EF7960D62D3E45D78645FC19B624EA
-9E0E24CAD0115F3FC6A1DC312D7CF8A76CEBAAF6B87BD2954BFDF244F9B7EA80
-C8C3B5352DF852343E982E8E2ED15A5F5103C556FF2954EADE05BAA4CB066B7F
-F21E08D46561B074308DC324B490E66112B91973F17AE2C98FC16009F9A9B31A
-9E08614579C94948A68042092BD45D87C6191838188FB7EC077DF88BC0810EEA
-39CE5F6E6A4E79A1A1DA4B4D02D1086A2D88F4DD7CE7221B813734A3FF4B5E4D
-1504E2EB87FECE3621B4684237DE50F129294D134213EE5A47FFC1471750F66E
-123667282C40828E3EAE7B5CC2750226CD2B0FF9B2E49F5D859D6AA6104098BC
-671E502CF2BD475F7AFA0EF0F95C1303832EE419B6A9EC838E971941C0D27DB5
-B1D2622E69D103937B0A0A34A057ED275C4207AC3E1077751C9A25820B0CE2A2
-A44FC289D78ABD3C156F6F1ADF1816766E77F28FFB75A393ADE51FAB234AFCD5
-37E271175ACE565A85482A25620984BD5D0737D6AC77EEE4EA9F3402D4965D33
-C7000C1069803BA6C3A821904BB97A3587170381537FC5A581707D4C3C632EA2
-741279DAAF6F7726B8DFC4279B89DFD1A43B26CD09F5F38DB748D114047C310D
-50FC309491913198D180FBBB3C1A89F682D5758C5D940A132FF032F3B44CA0FC
-FBC6811739B78F9A22A0B9DBCB31BC08376365E08452F8E276E05B4ECC6A9B1F
-846A7A6EC7A7BC86551E26286F5EE860F72D76D40E22EFD637B632A22D061060
-E51360F95697B02F523598854827B76B0B4E86F0BA7B0850455561D0E4FA44CA
-FF98CD03F4E085B6494F3822A8BC6297872AA7E666E281BCC44DA002B73F3271
-2808A77E6B548B0FD7B24B03A32205A066ADE862C501E15591E1057595D1B983
-81DA042F3FC24EF52EC513F85AE80B88D673374AF31A671DB169BA4A8EC43DD6
-A27CCD44EE88C681EC61CE61C2A54E5F1867A5C8D5923FD0BD3E448C3B2E5626
-D311B706525D769F5062915F05BEEE5140B7860AE4E282C2C8810BF944AB4760
-DE02BFE3E1840160F8F080291BBB03FA55E2CB6D15E2D2F50DB74ACFE0AE1AD7
-5F415B63DA8E5C7444C64EB93EF3017DB1564BC6D3A07E1AC4126DA48E92F316
-C3D1BB18451AD8C5BD89E16607B680275B444F61ADB6832090B8488DDF7EA5A5
-EBB1E70DD1BA9B8CC665A16046F4075760783891B7FBC717BC3C49423528473E
-5C616359F7D0E528CA71E643EB88AAF241A20CFF8667FBF43743CDFD1E45BD2D
-4212A276BEBE73081A5A8BF890E3CF932F8B8E70E646E2D78D64182BBEA6A94B
-1BAD8F9FAEA95C2468B3377CBEF942CAAB37BC8E9FA902E27B0A032449895AE9
-46989ECFF2EA561EE0138C9A43A3A74331BE94F083278AA1DEAB6B2B691E17CD
-9E83B9F4BC05F58C44660A81FA8EC8977877EC572450EEFA3EA452DB93FD5C90
-3D6CD160F80534ABA44D7A88130B6B890805AC3B1F7549DAF96C49D1D7BCD684
-BF9361A00814CBCEC8E6A89D95FF3F702360939851170399E0B3EE4044B7034F
-466C09BF2ECE65D4A379F00724C447526D4D461161F79D9C17FF9551900A39A4
-13DC53A0694C26A90F644B19D343AC29FD49A826D51199D1A3C6BA16FAE9F790
-A757995A523C424459555FCB4F8D1E722E606904920C7F02948E2D1112D0C646
-76E66D29E5F727402299E6804BB21B4212BCBB9CD600DA03057FCCC0366D5BD0
-1420DF25CE02266819D912E433C8C4813D0FBE2A7CF429A6BFA942E0B8BF5705
-9C312FF2C6151973F03F3E75663F7F05477E9488547E5A25F3AFA84467CA7241
-2FACC538E87F6213D9151BA1622DAB8D0EB2DE7163BB82C3FEE77D18A409DA5D
-410572C0861469721C7627DC1AFD9A5A30C0F23FF26B31E66826093A22504F5B
-7F492FEC4C163074796CE703B9BA9B20D2A72ADEB311994FBCDB4CC94C1E9C5D
-E8DC754DA37D7FE30393D6E1C8B3047C6349A11932BEC07D78931ABDCA9AC911
-4D155A91C95508300C13404A24B94A116789A65A02BC19F87AA5165F9A421EE0
-4176DCA8CF68C8F2CA4B9F1E029C8AD47E27C9ED39DD00EB3865BCCB7823FC46
-8293334870B2DD9C260FF0163239DCA914D262300693FA51BF52440A9C04EDBA
-2A43C092C10D1AD9E82C4E2100B9D4EC8466EC5A035F2996F05496ECB61364DE
-5CB529D3F268E135A0B84ED583B3C217E48C1295A5DB3FA48BED14B8BD1B66E6
-74FD14BC56326945C406C66985B7CF135A72B58018DFC5B6D2FAE195D85A6BC0
-6E90E8621DA89B783A7E1FE79F5E731F929292D1B37F064417E51B64E0870B4C
-C094CA5EDBF626EEE88935261B25244F36158EC58E8EC77922A16D6DAAAB60B5
-883D8F6257971A7CDA8F52B8BE18748170E5CC0D4E6D7265D901B3875C228D26
-813D99357B6229C9C49E382FC14FC01CA2E34C39ED57E805A30A5AF850A3891C
-D873638CD806D88D42D749837878C14E0B9AB950BB9F367AAC3EA506C5742196
-9460A3A2C2F4A03705A4F0A75FAF09C62EF6DE40485D72444E8F92A22FA84624
-012D2FABBD0CF86907BC75571DEDC9A9DAC47CB61FDBD08606DBABB4F8AB0884
-2D705A8DC2044EF01FB71B31E087C6B30F90C10C295E82346EA4C702FFF1E98B
-D7382C180C960E81CC5E3DA66B44701EF921150938CEC0FB0E2ED609F4F3D2E9
-9AAE5E4D6A8C9F541799280F9EE2911A47633F72D739487798BB6AC40F375C74
-2AB78B8D4B2954C65E2D6C5EEB6E7657DBD6715CCAFC9859002566410F67CA80
-073C8238A3E35512C8B1FDE88A2D8CB35B444A837C931E9A5239970CE2F971EB
-13CA32BE3420455FDA398D508AB41B6F92401F0DCBBB78FC3E2D2FB1B5FB09AF
-B0717D615B3ED608ED99C968A2790761C102CDA4CE40A60E4AA58DA3B92F6726
-2D0C0DF60BE0A7D24F168902B6CED64C3C69900BCF6F53981150A9F307A7EC6E
-C7A61B401AB530D995D7DFE0714FDF186C2F71459D116923FA4B3AE794C463DB
-F6CDFD8504DFE9E2A37E59508CA79CF3ACB323CADEED5EB59931B160AC6F616E
-5A2E8021E12FA8AEA8CB004DB2F6783BEEE1C0CC2F86481503E690D3990990EB
-F9C8DA3B2134662A78BF5C9397321C07197EA40B9D2712ABA8AEC64CF511B6A6
-A903F75FAEFD5FD78BACEF6AA9F7F21870AE17BB4870481DC2E421115071CD68
-98FF25BBABA862683D0DEBEDD73C25389E998A4BC54EDC1DD1FC2CC1F90EC83F
-DC5D7322062DED9DD30EDEDE0B4DE90AAC1A9E1C5BE4978BCBA8A2065C88440D
-6801B6A5566E1D219644C4929497B28DF2F9D9A399EF07B24841AD158871DE63
-4ACD35A46AAEEBB3580401470CDB02D3568E4DFEAB6417AF1F26A61C88AE3422
-19C24FA79A446E68A0300662485DCA28404AED8F0A54B530BFD243DBB7DB1C24
-532F5B6D0430C0778E99836AD0195313B830CE169547070C6FB78CE10356A240
-90F82B11C69AAAB9BDE21164C547851CCA2537F28A5DA32C4ACAAA5B2DAD4018
-B110FA3DE7AC13248D2777E0BFF838CBF2970AE48FB22A62452B6C244CB3ED1B
-AF7EC8C45DE1633947246F8A08FA5C68EED3AEFBF010A9B5FD3D828D2FA99EFE
-4CAD56638EDBE256A918D772A39A549BB6B04702AE1E90C64019124E5EB66A22
-6B0352E76B9E504B5A9A3559F06F077089C214097031D462E4C174133F92504E
-3BB0C4A5681CC87B7CB49B87C196F22A50A567FECB211A706090606AF8BC0BDE
-C27141308785FF015B6684959527FEA8DFA797FB396BA417050DFCCE775E452B
-BA5B1C1B3D3DDAB465EF77B4D598F55A518BB51F5BE4CC56E4FEA18DAB1D8793
-6659192B7FED0634EF63651196C4EBF0131EFDED59020525114C65D04212106A
-6F701AF5FC13D79202F85D28FFABB3B24123652BD7CE8B4097A716519B96CF85
-26A71B6A39271A43417A381901436FB7AE6140AE32B01D7C2E3F512B143A6850
-B06BFECE1F804B59D376BA8D8C67925179A0154C8E3B9884FF1D7750AF416A55
-72591DFCEE2C809E40D7BC49541D3C1BAC83CAB239533D5EE5A6DEF300B5F46C
-B3A18679DE50905A1D3F77DA8F366C4D028256025EC193C3B1A71EEDBAB523C1
-9C3AE134629627057257CFDCFB1D14B9C3DFF7008F73D2A0638D9A72DCEB6FB8
-FBF0A604EF3A92C3A49E840C293ED592AC1138055525F6B1D92613266017968F
-75A072E62EAB08CFA7F9061113F6BDDC33BEA121DD1E3BD868587E86E055E4D0
-BCCBA1E827F3F37909A43B065945B93939FBF4588407270FB026F40BB171A88A
-3E7D888F95A0E9499851FADF25C9636C50198318EA652E031D64714A59812901
-22A4FCA0FA88754AE96CFEE4163A1DA328AB83DC9E4436B5A5870E8D5588DC09
-576FA26F2C2D995CF67639EE5C4C209687C25290B4531210D38BD5B9BF503B39
-067421FB71DA146ED4C22EDFBE5201DEA9C9CC4A6C5CE215D1F0076739E2A70F
-14A6365C6FBDD8A0F0DC091A7E121450493490B2B226CC9096D57EE0B818EBBB
-3B1E653E3AA2DF732D1AED8DE83C28F32EA03098A10A8BB1E3F10841F7E288B7
-0731D5DE0C0C243702C4571B0F08341029EA61A0AFBF2BA1CD41CC1904A48573
-BA511FFD7E4D880D4263CE69AD0ABF0E146C27CAD8D71299C4AFA2532F2E8481
-C6126402923476EAB2E345750D6A22A40ACA5617938FF6BA331B58225111539F
-1C8E2C83B75A62E22D3DB4B910E909A588084F69F60272A4DAF44F1469DBC9AF
-F91393D79AEC524DE64ED9AD42516985CE04D37027DFFFAFD36CF3D444D7F946
-288EFAB1744B8FF8F1CC6A0C268DBD466BCC0E9BABD426CB0E2F67
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9AF72336CC4AD340
+15A449513D5F74BFB9A68ABC471020464E3E6E33008238B123DEDE18557D712E
+ED5223722892A4DAC477120B8C9F3FE3FD334EACD3E8AABDC3C967C61FF003B4
+B10C56D6A490CE9594D57A2D431B9E5E10FE3D8832E227A7087611431ABCD029
+85F4865E17E17F8CFBD2CADC97E0A8820E3ACEC873F31464466A9545E967E53C
+DBDDB8478E69063FBB891566BAF88B7660A4405B16834761F041CCF7650AF955
+F9E853AA9F5F4382E1FE7D0C5BB4023818A2383F91249D48CE021250EC9EEB1D
+2835E18FB73026250B32A8849067D5E2258797C917F998F2D4121D96560C5FB5
+B5D3471216639A8671B6DFAC5E3554EC36D9A72518525A795590C74DD70DA3A7
+78BFC43E51D6F2BA52F17D4DD00D389D3983EC54912AFF73684A8A7E345537B7
+E62361C04A47859DA084BC72EA53512DC54132EB2EE671793603015652EAFDE3
+41C4B6B679BD60AEC5153EA0D2200CB1D097DAD770F5F31E6FC475A225995277
+B867B731D5401E2D02B85BA85158C80FF7E2BBCC42B98AC867E67D25DB656072
+55A0D32AB7AA483A5A9686CEA4E2B3031D90D84DB3E2DEE7706C91BA81CB8DAA
+700E5F61E07D6998C9552C81B66FD10A10033D49EF3BCB0FF22ED0A3737523C9
+8F851C61C4BF8A213BF6EC70C956AE48B5BD276CC0437C72BF6515B10739919A
+F00F6ADD2798CB211668842349171A5AEB0664D2C44397E55A4A9EBDF54A3EF4
+FBBCDAD9DAEF4B0CAEF7112FA828F2F8D9F633D37E5516AB5ECEA87342EF8DC4
+3A50548490F5BC9A8A1F98AC7AEAD9D913BFA10CA86D73AEB5BACC1FEEFDCC15
+B3655522CCA2C772E902FAB2A6FC153597D52763EB44AB7489FF061F7F58E8F2
+AEAAF4D17F36CBFC00D3C653F335D14240C87DB4339DA9D30A5BD1F502BC9013
+461B9DB2FBEEC01BB18990439A0E9CA6576BC9CF6B1A3DB9386C4A5D4AA6A5DC
+CFA45FB75F22E10ECB72565DB441A194902C91427B4F676E531C661F7A2C3C85
+CD534D1C89B6779B2EDC8E44667B992C20C70B663BFBF680A6CF4383EB7CA26C
+4D1F06B5EF4025BBE65795F1EDB5CCB97050872D6C07BC2974F905ACDB7A765F
+291365D6C8152153E7F017A25FB4476C60FD9EAF9A121633DBEAC32F62850223
+D6418566AB350F90F4B35F19598478F76B63E347D4C61E203D4DB8ECB9889181
+C387F4B663A502C638761D2782BB96EAC81A0108D7BD6938F67FEBB69218D115
+D8E89CFABCE15C6ACC7FEB983332A51A6A73CF4E341574F366713D7FB29956D9
+9BF238A87483D37E526A2EA2F101EDD34E34CB92730DCA7235AA0027189BE405
+2DAB4AA021A30C28B26C50808E1E965C02F6212EC7C72F5683339425A7739380
+A422E6191ED8453AF0CAAA424AE44DFA7CC5C2F6EAA8D73A5101D8E9517DBCFB
+2858D0E8ECB7DC430EF23A9E4428CB7DED8D035D6050251AC101A2D0E884721E
+2F21E573F948048BB8FF888911C508CC198BD750083B339500C426AFCD5634A6
+AAAC1C7E91249667B231BBFC64B4317192FE07FE9DA0DDB5E517D097AAE46577
+9555F29D45C67CDE9812CAD03F220B20519F2FF32DCA56A554D4296FE2D1F3FB
+B209B5270E0E695EA5A0EF1144957CE045881AEB8D05D72CE57F4D34617AED67
+0D3AF0472CD8D60933651626550366E300E72A9C89ACD475C2E2ED9BD44B472D
+9DAFE943F8E02A6DC38E447EED964624C37C3130E48211CA279BB6A0BD59466B
+42F3D89B5746F29E084E22CF58395AF0F29E55113F3A3F2F52CB3A6DF3D026D0
+C81754B8E2E4A15F6943BE9D0087D5166060734FD07C4C57D7C7D90E8C9C1F35
+623CEEE3ABAE75E1A18A1E3B50B7266BD2D8E812CFEB4A46B856885B185640D6
+B9C22179551002B94282F57FB433B7FF157D2F0D240836B72AF4A331668AE5D4
+E6B85415F4E8B9D2F9AF90FAFAA0A3866DF417CA5A31348CF9B41B8F5F4D2F97
+CCF7ADE851B5E2E2F6E319AAF5792EBB9DA2C6AA8B73D889F3CDAA42932CDA7D
+07A7E59183CD89520DDFC36E5D513BFD8AD0886046585F29B4D7F42CC0C27AA7
+53915AB1167D292FE91957E94A57FEE2D49C20C9070ECD736BDEE0F046E60350
+EA539DC298156A4E0D019E7D481FDDA6861E20678516AB80ABEC1F09B126BCB9
+52E8272A06BB6DD87ACFC423B4A4FC9A3DC8DCAEBB807C5F748F1FF8B17B8B88
+F426206BF1B7B7D239D26BC3CF0776C467A98CFBBCA5FB6145D5900137ED19DC
+D002F10704AA680EC753C22E29AAB15712EF22AF73D80820A1EEE953463D4EA3
+81FAF99518D4FD0F862A324FC44C4B9542A92C5B60CC983CC8F647CE5BDB4D6D
+B92B380E0E5F7208A9CD91FA9A469548162C761C1BA05AC9D60B766764D821B6
+B4E17F56CE455F06EA1EE2D38FE47581746C4C5FBA63AEE2B58E877D1A8FA83A
+31C972D53B64E92EEEA147426A92CFBF76FC614119C6E9C6476FD6A069C803BF
+E949FBE50B5AB1F1463F9747E8D353F7BBD991C4F90F920BC9407D8E24720293
+846D052214E60390C3CB926D38C83AF697425D80C2B4FC4706615B905516B733
+46ACA325CEA68FB21B2D17CF0B68BA4DF249368625CF83441EDBF2B86C957C1E
+44CD722BD2537CE84FBA07EC7AE15C840041B9F7F3040072E6084CD55B301C08
+A64A53BD4D3DC30DCAC6C152F316ABC59B8EE978793EBD568849DCC2A75A495A
+BC83470D503F8E389F54B4A4A31624E83C601B43AC1E52CB811FAA7CA6B644A5
+1AE0BFD4FC774C9C9DFC2769ABFA9C83F900BE2DD4010416053A1D4874E6ECF4
+D86E44B4CAB15D53E5630C144B0C15B58DAAD785BA298B1893D1B09BA5D40344
+6678FD2D17FF6674433C976D6DAC659175CED26139967C9B2B9CFFD78FC2570A
+E5142141C2888DBF2DC8503F9137CE7CB21A1EBC2D65BF33FCEFBC85C9CB736E
+24E8595CE934AB032CC70BD6A3B0F3BDBFBBE185512FDB7BE3D4A6620478453E
+75D044BF770B44C9741E31985E6DAF5A318D7BED12B02A4BCFE60D25EF12843D
+EFC9BAE2A3F2EFAD66D7858E83EB46BB09D2FF8AE9C43844A7001C86ED97AF51
+C511E3A89A1BE349FF5215D1A57843EF51456B9838133846F19BE79AAA5C1AB0
+5F400E5E8E7B0BF96EFCA3B8F0894BE589F2C9FB6C97BD16D38F0A237CD4F034
+099C41F85C7E2C7BEC8E02C4F327306A53B4B48B26A8926670CEEF96F6DF2281
+7C2DAD99EF8B81BBB777227C2475AE7400DC393D9C0445E925DB1E955950F7AE
+53E9AC4306794239346A419F7B5DF4168382EF5956B81F83BD4BB7635B3BCC84
+7D84D05AEDC02D14675D777CD19B08124001A4F4EA96990D96000C082A12F00F
+7FEF793A7FA69D56D3A38D012168C5458B667190AFE80E02C816CAFF0A71953C
+D80B085CD286027E2FDBB05452AA762FD7C813B2E19A79C74190E04E746C4933
+CE1E300CAF5DD53B08110509BDA404EF07FA1BC5224BF1205DE8E0C3276A13DD
+866675103B960C5F36644F96B4FAC16F5D6E91F74629B318FCCC8E8CB13EB76B
+B0B7B90718D913A52A04732EA3667674994A325A7973C601A7DDD50F658E0826
+ACB8E53D4914B0274AED98D7BC3B2B7F9D48A7ECC2F8ABEE05CF2C4F2B90360B
+B7DF779EAF3E103D1D83EDBE32DDA873768D8C37DC10A5354A94B4153049AD64
+FF3E0BB51AB91D7C0B4134D8731CD0270DAAF19BED9EAD800A14B65B68EEE89B
+40DD624111670DDC7C030DEFE0D1B96420E249332445C155BA96231C88E70643
+D526BDF3CA1E05FEE72CE2B881CFC01ED780C10E89F0828AD55FE29043BC56E8
+2750A6DD15AADD54492F6092618F4CC6A31766B17FC60766D18C307EFC9BB787
+39047DAD6B38419EFBA46B4E2C932F97451FE78AD75FA90DE409FC6DD46585D2
+1941F5ED47A8FBAEF5A917A240959E8D9F9917DEA3247D9CAE6BF7A88DB4C4A4
+F9F5A6DCE542420A032FF3392FE0F3357B51F884D6181583A554F75B1DF192E9
+253CC828FF06B0D992D5316435980B044BB191508C7C45CD90F797F88856424B
+14A5707459C50EDCF3E3D8D1667AAA83015405354CE744C66D9A5728F29E0085
+6DBF740717FA0799E3BCC4ED7841588B496A5E549B953A7FD288B4A045DB611E
+E3B2F35963FF18ACCB1C968BEEA2CBF52B3999AAF89A05320BB2E97F52CFE06B
+9F10E3A79865A3059A957F97972D80ADF678A36E2B586C101FC6AFA4D137C13E
+EE7102C9B8EF78CB057F8B7476F146E8FF5C897FD5503DD198128CFF7B5FB339
+FAD0AF0EA967F77B07B367A4AC9F668F8BED99B98E87FAC750EE045602D76C3F
+289FC9D97694C96AAC0AD1BD3FA94DF2CBCEA24B40F47B9B59E54EECEE7AC4C3
+A3F5D19160E4C1EA830D57FBE10D8D46AC5CA0260F22FAA45236F0F542BEA9C5
+5A88F878F68B36114E0573900C65E305462B22A3429A17C7A567694414DDDA46
+5F30542B8FD4F00F6C295B2E8D3A986B953D96822DB2ECD48E8BB1763434E652
+152EF3717F5E7FA10FF0B01D9F64E22C5DBD7254629658887BACEC0ABDE972EE
+67299FB84A05B3EFE22B6976DB4CCA384232DDAE38C31623A4E39EA2E82C1EA3
+BBB68F1A7DBF405DEC37CB7203A895C36A44BD2D63F45B3888AF91D37B510A59
+3C921BB44DA620892AD87B665F69F6FA510B071ECC403CB2BE2F54B3969C9E88
+713244BC97C1466DA8216DA7600C221E7E7EF5C789D2E12B36422023A03E11BF
+2790FD6062FE6BF62F5010A92F0A104B76E255A0975E04F6F20F760881BDA7F5
+D834D1D328B6EC19AA7D5E5678A84C74C82553DBE8BB5765E84F5A8789032143
+6020940B4B8D45FC3433D356E28C25F42D0C19F911213D85951B2B00D01B77BB
+A4C72E964F9D95422BEDE582A05CD52E03D28A996E6CC8FCD910CBAB728073F9
+F9FAEED5470FFA55930447C5BA816F826F983D53EC9941EC8364B3060FD74C95
+26D4F5CA753B574FD2FA4D1D333785241D8741B79E628BC852FDC35478C5ED9A
+C1BE88C5EE7302816E65C12B58EA16FEDD4672EB3E24B6EDAD5DCE263BA8A970
+350B651E5A9F3C281D85BC3F44EADD0D93402E36489BA5185E7D388974B0B700
+70575188BB610CCA20F081E2CBDA13DCC6F72567962ADB342E02C1E763B673C5
+F7384E24C6E1730A3A790D690A2103AEF88E0C1D4480DC9B25E5C8C9E1919C95
+F83320179B4C7C4A26D559BFB24D7D596FB73758C9990C451E77FCDDD17763B8
+9C30A9534E3CB6680D3D419D4B70B0B0A0D160FCCDE169714E373F65B7144CC2
+DB9A44E041211E1517D3148E65A2486CBE5E74E625261CCF65392FB4F3091473
+F9E8DF327D59A58558E5C9F7190DB577D5DC658F5E36258291C708B3D224653D
+064BB6079F91293FC733710893AD1C96169B30CBFE4E9D52E7EFAE4AFEE68FEF
+1AFD5E7E9DFCE8DE332B0FDC0514F9B3090AC85BBFB527FD8034DD33E9576325
+A8769AE09AF1BA792447DDD932B98FC9486B39E0B04DDB3EFB7A30DA0940B33E
+E27490E0E841E87B1C90E5248A91742ABEDC10F43A8AF0F9C5B4A4930B1AADAF
+01874B9AC3B8D0DBECCDA6CD7E96471FAA15CB7F8A599C5746327CE392224C3C
+40BD60AF97BCA6FF6FCAB2FEA114D7300B89E91C3BC92D5B3E2C83BB37992D8C
+72F661EFD0AA034C738C019DFB79BF40651A1A34BC1EB9F5AAF58F8B3DA32645
+24AFF8636486F08BC21533B5FF7391B0679A78DFDCB03DAF6BB7475A1D51DAC1
+EE4BE9B986655D1FDB6936445EF99B58B303FE79F11275EEA96A9F6808EA8775
+D873D1052FAC93769789C700F20EB2ED6D15676F6E563A769CA9298E463FC311
+83281483B1C953370D196727A6A0E66D32D9480AB1B6DCA77868C1A2D5DB6483
+5F31EB6B18EEFEF1CDC31533E69B0AFC6B30FC9912DC89BAAEEADC30BE14F448
+1A6B70D36A5D9B01799BEEA686066114910842D022EB464A9A1E8F0A5628BA69
+AA9A1925CCADD44703BC67A89F3B48E4680726DC4360274185CF3C8AB747A8FC
+4B928AD62B092EFE48B01E33ED756DB696171FDB775396BBA138E056F71EDAE3
+7A1E4CC272B8418114B0E81DE0BC43DB3C133167344488820A92DF10FFA26FB9
+65FCA2C87D302E956DE6B4FE145145440C83DB43A68F8B29A592B127BDF49063
+B7F11E155CD4CAE305525BEA56B7C412A6260426407BD892A3F2B444AC3421E6
+FB6E6425EB5C3053C5644666B80405530FA0012B54557327C98E0F4F064099A6
+4ACAAFC1870359C1B6FBE7606BB8A26026AE20C212210449905E628AF1B20490
+8CE908B7EF3E3DB551C85AEB0F7FEB6A8D215B97998E5DD9C7CCFB2A9402B8B6
+1770D4023777D4B45A73F471355353412C51D4CE71FAD1E0AFBD87B5F86307F3
+10D0B94F1194EFFB64AD5DA54A4200490F609CA8B912E149F8217ABB1E9EBB3B
+C4470E7365CF5E1E761AA1945044B225BD53D142F6588C50E0644740F7DD55E4
+8F73201E5354A8BC78339211AFC4935F44701FBA043AAC4BA4698E9D7700029A
+C79F992F62627C91EB855F64C4B251718FDA71EDAF082A0C7B00550949D617A0
+7071FB14F05620CCF2180941341D8E60FC88823438FD728A4042AFA8B853107F
+852F631518B61B234565291B5D5B89DA818DEE3AE3B68A2869DFA63255CC882C
+3B16BBA08FCE3632E57FF7A07F857A1F0FDCADAB39D77960BD827CCC8661A997
+648BF5BEBC0FD2286C2A112A8DEB9CCB6330A049170D5D68EEEEA011D3EF3EBD
+855236B9380087CBBB6BE24191F728B7EAC5B50F7A547AA0989B7C7D3437DBCE
+1669341264E290646F2C8C5A3ACAAC7CB63DC692FAAE13E9B40E8BD39FE16A0C
+1660CE66872D061056C04DDDC265C024BEF8B7E3C3AEE76FE5C9702002C28BE0
+B180295EE00E567FA2E5CD1638226D24A7C732E1BD8103B476EF5702768689C7
+D4FCD47F2AB94A2B1FBAE6ABF87B09E7713C773FB65CA83F7318035B332B9F99
+24A2C8897527021321D003AAD7C273E4BFA2710B9BB26C2CFD3D9A5D7ED1096C
+552D50028AE2476FCD6D12A5D0A897521313ED1A3A8456A70C16EAA50A3E6733
+6DC89FEC56AB54A579EF264377A103939D5EE00A90B4F2206D0023AF9491FBE0
+800C6540FC945199E20E945F46CEEA2E885F6800B9DF042BCEF4291A4B1A62C8
+6A7ACFF872B25FA3AE69E0093F3D0FF13A3313430C06F1AF94D500431566F659
+E8C859A5F80F5BD2E85C8E32603D3745628E8FE6FBC50FA68F9C3811A2BEFEA4
+5852CAE2AE5AAD3230ED050593BAD0A9581EB7B327C6916B8FC348F4C23E6FA2
+00FA28AAACCB3091C1D83F7BB88672A53A2EA3B8C7C24374E400C57F0F01019F
+E52D5C47F389D4C9AF126F4080F9AB8D1C8F470932BBECCEC72A9796F6E965A4
+82057DDB43D68298A00880D4C2E2496F26F015FD83C5549215753459310339B7
+6B2961EEEE74DA31FEC8E2BDDA42D4080A32372AC372524BDDA580EF6634ACE3
+128C69D04D890DCA337212B109585C665AA83EFE47D5BABC2627A86EAD11BF7D
+744176652C7F9497785A7A06A994ED8414BBE8B26E74D48CB83FA24AAFBDD507
+84A90195EA3D77BCE8C2BEDDD1DC52E8164DF15D65B916EBDF3A8A76849653DF
+AE3CAF9561AF3B705F75B9E5DFD6758DB65A2FD54683759912E0D0035CFBCD86
+5C7018E5F1DFB86B739C4749DDCFB2F40529E1F15174DF4AE9833958B66ED869
+920CFB9524F05AB2FA84A4AC41A02490699F277A3B4ECC3C31ACF79E884B979C
+AEFF660A8EEF118C79F8DA266F89F32078B1C333DFA5264D6B64371276ED4DBD
+5A2DF213D85A56B1CA85DEA53ED0299C1FA48D463B11FC9A0751C986CAABB184
+829B1133CA8422DC11C6CEAAD463FEB468FC7AA2DDBE2E708D27D89164B12BD8
+B9A71A1D06D2FA9ED0B02168B32F6CC0FE765F2AF8A19C7196EE55648E642184
+BDF993C99EF7C10AD2A7962DB9B7851E6EE24A0C53475186BB44083AE18254B9
+F1CEA0B66A6581C81DE19DA8EEC9330A030F3384C1DF8216E5A25FB38C1B94F3
+403C3541593A016CB5FD306F41F40E82D4561EBCBF76153BDFCF338284348755
+0208360C5842FCD6B2D614387575B6E49F4B5A4DA281A352ABE8B76CFCD94A00
+1C586D19B68D965BD8D7EF0DC87271478CB4D0D1633676A2FC51B36876002A9B
+F5D632ED778BA9EA1C3741FFCC15AEEC11C8E1544DA7358473325812E50C2135
+84ECE7DCE281956681179C09C0E8DBAC5E4424AAD00FDA269BCD6412F1D6DCE0
+2BC7CABF85AE803D620F5140C63DAC4B0E5F7896343973FBB99486B93B6DB58F
+38ACBE8868CC58B3918C1AB4406FBCC7BE8496C78C9D628716BF1E306AA802D4
+5FAC522B1EE90448387DB8E85235FFAAF3754E2317B693D567A488753993B8C5
+DA3C8FA50A35202958FD0BF2900A6CE175920C2EC7CD449D4DB189A50958BF17
+644345CC38250088A694CF0F482ECC55ADCD02E17B3CCE66213A6163B8B44C9A
+89068E3B5301D2364F85BF9DF7C77342796363A7B6B294CE26DBB9179DC15756
+E1B32CE919AF44BC79A3AA8FDF6118345B2AE03F3B11D57D9AF50EBCF7152E37
+15510FBF60F16756FC674E2BF58E88CAB2CA2E8B47F50096C51179684331FD61
+8B34520C9C7D01E1511C924FA76B3CAF79501E0AA2C6E1EC6F00CB6CE24B4123
+F493B149B5A5147EF6BF1EF3CD21A76945B95082E1FB3C5A150D8AF793348E8C
+A988354FA46E3775486A6999E022EBE293E8396C8F9416929607730606CFA772
+BC8388BA5D64B79E52DD2048ABF21661121A001E6A75731B5DC43CE040396BD7
+B85603C8A0F37E522FD0CBA63C454B12960451CE65A69F98FB2FDBAE725C0999
+05FB68B4C1D320F5F3D61FA8446BE6F8BC46AD9CFA5674A3EC73B8F3419AF9EF
+7A1A3C9EDE3BD6359902D4B5F3AB4E3FF9CB2E1937937AFA182C651985703F20
+FB70E37AADED6345EF4E83CB140FF92310BACFBDA11F2CD5AD93AA7563D7426B
+0D4B6CF9B669F9A702956CA845E3814E4B5491E58F8C89714229942165A6E8E6
+58982D89C4FA7BC557214BF9ACE2C63AD88F2D1B18A04F510211687C35AA1F7F
+D2003D4E60400B95E70422024A7111D926F1B5A77074910710594B95680CFC4D
+911FC16B928D9644340A9D2382767FE6AD453E8E4CBF19F77D3DA2934B11FC95
+A6900C3CA3F2B6AE4290A005F908305CB37700680D76C4999AFE509B18305D28
+88C36292D6DA208A8D42F8B81FDEA7E93EE59D6AF3F1A3522EE91BE71BC655B9
+79C49B033A036E1FCD94FC581AE732A224F055503CFC69FBCDEA39CB00DC8A0B
+4BEFED99CFC4E44ED51DEDF9EA825FF6BB97D316726531CB4BA083B033C0B69B
+8068D5D3E3E31DED5F6267439F149549A6E12B00BA85818AEB491978364D9F7D
+7375CBD6C5511CC846D0058BD2CE5467EBCEACE5CBEB2D33AC8E12A84CA620EA
+99A0ED916B7770A056F6A9C361CD5118B5DDB10A5A4E643FFB8FC5DCBACDCB28
+696E26D030C5918548AD8B87E21E1B4BAA91AF23663CDE350A21C2CEEFD28947
+BC07BB49404FA39F251E36B95B7338EF03F2E63FBE0E023452097F21931A2599
+4EBA7BFA669EBEDC0F5B33375DFE6DB1638D19D4B5112B5338B14C93F707D340
+056B2B75AFE418EAF9CD57ED842F7B5FFF037B3A4B369C63E4DF9F0BDB4E39C6
+C5BE8EDA628F1C6FEEBC9D9886DBE502CCAA86092646094118069757DAC25C38
+2CA53CBA27577BAF2C57196489CBA54B96C650A1C130184A4444CDE2D0CB1A49
+FADCAF1FE3A66334F85FAFB00F142F28AF2D8FEFC29FE8E0FDA448F181040BF1
+62EA7AE75100BA46B49EF30F596CD9091164AF70666E254938BF6A44F01BBD2C
+4160164FD89FCD358E48908BEFBAAC4411B52390CEED6B46D729698CCA8E164C
+F77CEBB50C5254F81570E414B1E9E79269D3B2575E161620CC732C0405A29ED7
+1E5A6597D35B11EE08DC09FC9C27F0126C22C73A0EED657D7F91790777E7D8B1
+EBAFB0EC9ADAEFEF7F6A91A1028E46D76289EB1BC15D3597CFCD78D88B633759
+93CB4477596E28A1E413BE25D513BA611757C994AE812C5A6D9AD3F770499252
+C7F53E585E03B2FF056EECFB7ABAC474A981D757AB3B6F281744F01713782887
+9BE48307BC5516A067743C054A3927E015AB0B2AD2D80D229BA32FDAB660C3C2
+40DE8C83E1E4941B8D765B879222847F855960604EFF94E9D99E4AD0FF2E887D
+54DB39B984A9E9F69ABDDBB2A452661703841BE79200EDF24C4172D736B461E9
+8BC314AC1CE1650083B18B2AD809B5F2DCB314651433E357042A8AA73A184D38
+290AFF0443C4A293CA6F04643EA3C313FC6070D76400B0BCCEDD20B5F0A67200
+01584F0062794AD3D82C83FCE4380E28312815EE20DF3DD21D381046940A8C96
+4DFCB07E5A558DBF1DE489FF4FCD1C851A597B0EA58604BD16DC8FD89B9E70CC
+36F99E8327E9112D98C1AA1C355FEC942E879C3CF8C358FE955B1E2518C81270
+9BBB3F4BDDB57D04685FC0D90AD3566A81086B3BF196B2CDD42BD1455F588342
+C817CB9E0E75A0A24BE751B46DE8DC974554DF975D02864773F2EE856A0CF595
+0D614F71A1AAF4A72DB4E5896AE9C2B33F993C006DD7F644DD1B3AEBBF34AF8F
+A809C51EEF38E3912E82F7F15F4DBB9D6E5D7974B1B871AB3F3A48B72F0356DF
+CAD862D11273580D1BEC9E88931B7B9C74B8AC3DB5F3B3FA05213D3CE48C0F2B
+237A7DDC33D850D1B2B5B8CB7CC1A1A2221451FFF0AF88175EEF18EB932F47FA
+9A8A97F92B6E2A01CF8BDDCEED9E1776A1A3D4328FB7F8537689CCE7F145A8A6
+2DAD7C9C23C0DBA934E4803FCF9E7C292E67D748F972415E62E56B60DE016930
+B82AD792313A7D1CE655B0E08076AEE57E1BA5FB00FA2B264771507126FDEDBC
+688FA19EF5A87B5958A952A2CE751BF57B84FF314D5A005C32D5E7B63A56F336
+BE5C5BEDAC69462C93252A6C5CFA9C3AF6C40C8A2D13A738DBC1730D665FA91C
+60280FBCCF36E3EDEDA845C74817706474551248130533880FCB0B81C5BD0340
+B85157690619844D18A13AF540F18DA0AA3B172636B1FFB5380D937F11BB8F48
+E14384548CD17D33133B624733533E20C1C7A68F32C814E73C790EE009EE9721
+FE6B3C0503A45BF0D1747BD8D5E55E0021A12F97D8A913EC9AC33856CE65D0C6
+4BECD978E7B1C5A22FB51800C9B554341C40C619DE8053C50A3828E2B2AD44BB
+54F2D6AD9B0EF34235533491A2C369324D5045A6A72041FC486D20370D571D6E
+8ED76A32C6F4CB552933AE68B1E71945F9316C6F5DB23CF258A27C358D8F207A
+0B19A734F426D447CD45F2ECA02BE75BE30DAF9FE2F84DBB35DAF6663F34D0FC
+C25F317EBD33FCFAA24848D0F56B54009C105B42BF5CD900AD2C1393D57EE2E0
+6438DD0ACD28B342F813A7C9C0D1CF42E459589F5D7A102F8551158611E14AE4
+9033B687C0D41927D592D79F14FF0467EF256DD23FBFD7AAB6D514C0A7204009
+A1B8BB21323997EFFBE265D369AFF7093B13E98A26AE4B55F9F5F5B5EB77D844
+7F1ED62F1A030DA13046FB40C94080BA76C9C7F25AEBFBDF76997DAD76884D80
+854959216CF55D0A4F13E559B9382617523947D1E5BCA59E7CE7BE0EAF7C269F
+4887C747072D7C96115B9C1145CAB6BEE769A4CAD44518413FA7BBEA3DA15BBC
+E07087389695E766B103DDE55D1F8C1D04F9FB3334A36942CB754F89EBF3EFF0
+679DF5BE6C3E6616B77FE1DC41B111A8029140BF783F2F27268E54CBCAABF4BA
+FD116E27995957C0CC70B58A501847218F77F84AD941E244D1A72A50F537720A
+4BFFD96C7FCFE7B4A79A0BC31377D462371E4024166CDFE5186AEDFA642EABF2
+9FD28CC8CC0C57B2C883B10357C5446D501D0803338FA9F50816D17F6FEB077D
+5DCCC960972610D8AD90DCED3B00F6FBF110FCA7E929E7D393C508DBE61CC834
+EF0AA977EA93C2A3C9CDF7E5C608F838B1B3CB734DD982A1AC623ADB79254851
+474E0E1C2AED4B35A9A18010451F2D7482A9DAC24942F38E8B1AF5D2AD6AA0D1
+BEA5DB0D318A434EBE068EA54431DCC06FA6F926172B8E50CF99A61745EE3372
+49520D7C1B343AAF52BF71F3905BB01CC894D8DE06AA256BBA16F57EDC72094C
+5AF15066607143AFA5878C3090E58FFCA4723DFC356BE32A4F3CDFB06D012A67
+892C6A003A3882F41F09AB778C8E8E10C1AF7C458194706535EA8D4072A61E70
+9176ED028D863C9E5A0AD6949F439A1FF4FADBF40E5E928CEA8777FC00DDB0D1
+E822AEC89BB6B4B336070F0D2BC30AA4AD2A11DBC1F8B9B0549D50949CD3F47C
+C71FCB5081AF3D9E311A28E18E7FD6289B11D1A39EFF0497D9795B85E260F970
+799696C14BA5D5B9151C72DB327CCE9AC8AF75125DA580A2ABBD51E4F6CB72D9
+9ACDCDBA1CD5C9B03898D71294D500F3FB5CDAD4397430A86D6B3977CA15A2CE
+1A87CFE80A49CE46988BEBBD8A7860937AD2DF3DC11005ABB4773ECF0007BD95
+BBF8837949DAA8988D6BB30E422E9DAA401D4FFD63015B094F0A457FCF9AAE88
+3F3E024679830D4150E525BCA3498B184EAF19AD2867770F1F03469433077651
+0094B6581D5B0E54EDD40111A97E60E73C0B9330C9CF68A003D9749902BC0ABD
+8474348A4869B6FD17F55C705C12C31A028151848C6737F72698D1BE9C7088A6
+29E22CB19BF8E3042249D0C2583101AF3ACC511A810D47A473FBF542EC8209F2
+A3D16F24E2DCABAE3CCCF382BA30E258AB884479532DD04A6DA6604DF2B32625
+B3CC54C079281BA50EDDA55B30154547E9A8761659AADB488A018AEEAF68F80E
+0C7034F74267EB98E471E5BA1A9BEE783C32BE433A46FB39D161210FFB2D862B
+B62B8EB2B3C4A5C51A5214B96FB4FA1E040BDA70507B5B20071E401C23CFC0D7
+702EEEDFE1CE5419628C804607362866A89FC32212EC9A32400E65ACF2AAF06D
+2211C1013BB3178BD882E77D1781AF39374641925FDDCAD306E8C03E28FE4104
+750D9AF95BFA667F3A2992A1DD79560AF95D3B5398CD3BECF601C7A42B9B0D30
+943B26DB414F1661C0EF2A1E8D8191E649AF2A33D3F1A4F340F7CE44B95C923C
+EE17F390D1A6480F1C10D55EF9B8007BD1FED5ED6123F9998225BE27A8E6E2B3
+5843A30AAC796EEB9C47F143C965AD99DBF3AFDB7B491C465DB02CD8DE18D62F
+9E3201C95B045490043DA9DACDF9DAD3E79492DF5B2B33A85B2610A1CF604F98
+913BB447E6FA6834AF454BA5D841B7D8EFD9733FA010ADEF81A2E4C2D6874D8E
+80811743BB114A07DC96A66E8520A4054BC1AF6C080147BF8C0B55678194467F
+909043328297E38C777DA2104B14C0E7C7F0D6AAFBD5CE82531DA83DAFAB4059
+70DC981AF4E6A75187B499A13D918600D4D68CB073BFEB8F4EC1E48451E10236
+ACEDF95B93467357C7028C6BC1AFE878E1988B39DA06C2123727AA6549815BD4
+E88BE89E04CD0D9226C8FC0118CB9DE223ED54684A86284D3F6E0192DD8EC04B
+F1E5ADC9B5001C6A5D57605EAE071648045C256B743E02DDE3729D4A2E82BD0B
+A448C6153732FBA2B507607517E0E8F4B3A44A4BA58D546C5A446100B9D94033
+B68D986182DBE076AA0BF2BA88B85A1EB27A1F4F48C77987A84E9FC3F2BD19CE
+F0359FB3C2C0E4A1908D209F78C64A1B6C4F6F9DFA036B764F87715B7AB94E4C
+153F2640F2BBF27A088F1BD64455648CC448B808F15FF1A1209EBC6C6FAEC16A
+B2D161F097766B771C80593A0225256080B651B0BC64B5D07A04DC34C767A796
+B371F1974633D579A7BBE8F5CF1152AE55F7F0766A316CEBBF79D7C59F11DDFB
+6A89E19FF51BFB7DF15FDB6045892B586B6BD1C86C85E01BED07F0E60270B4D9
+2302E6572419FCF662763ED382EAC4FD445BCFC78F62C1CD65F9D12A35EA2D97
+22B818CE6C8CED2C7EEDFABC2F54E043A9DD67645050C2A715093A7EAEAB21DC
+99D14DD19FA2A6A268171AA569A86E6F879F4EBDA7A992F2F6F4ABEA25C489F0
+E4123EE182BD059A8515708BCA74846920202EE2ABBE9D53DC2CC16BBDAF02C5
+BD46600A6E80BD3A477AA960A4A2906651A7338419529F30755BFB064ACF916E
+9F4D354C309DBDB3479EC7F9F5EFA0058E10742DB647B0C45EB886A2F997DE9F
+534C01676E9EE0CC91DAE378111A7B0359978A43F1CE9EA98AF86FB5C59A894A
+B418CB112B4BA5BF017A7AC5D2D1F003FB274715A1D35B4BCCE309FDB9EE0DD1
+AF8567E3F5002155C6413A31D8970CB1A42A6D6E16B67CB24D1609EF671DBF2F
+B1085E1505CB05BEF96770B176A19F521D60B2F9AC46A5464A2401E2945F4559
+1D0603255DCA93B1F958381D3DB4A5FED62548BDEE0CBD9977AED1F17A00F19E
+1CF565C08EC5B4DE3C108B15615285BDB402A4480EFA1AD102846B3E543EDE5A
+5E6F7D37743479426F267415347E4C356B92F7D5D4A0632F333E5CFF2870FE19
+6C398FD66A952EFD26CD6C3BBC23041CD57D0860BC421D710D06E2FEA071080B
+56212A069CDDED701398CD9185BEEF08FA0AB16C97C7FE79FE16D6A6B11B7AF1
+A8816DEA4F99D2EE29A357913C51D569700D5C84A52ADD60F9E75562567E9AB5
+E35A1A1F656D12D0EEBD2AAB9846FAB4F7DE2699CF6D100E973DD0E5373289A9
+570A364A562306BF8501CACA8DB84C63F1EDE6BED1432B138EE201635897586E
+912EDC76BACE7047C529617C42582643BACEA3DE8B895B2AE895F77B140C4E15
+69E8ED61B57223B2BBC5C9E5A9A4475A2FB97BCE4DBF40280469FB1C685884ED
+C5974BE43BEB2A20AC947BEB1CB5CAC0A35E0D7671702AC28BCC4A999E57DA38
+194210379106144B965CDC4F246D0CACA7CD201A72007CE0C5FFCC37EBCF76E9
+45A77F7FCF51C434A9A89A020CA63A27A65972C05887FBE1BBC42B4F4F73957F
+7D33819A42CE80975F3034FB97366691F43273B5B93E472B51D792AC8BC7ADD1
+3519A5AD82C8A0087853DBEA22DFAD4B8534D21B8FC56316AE951E53F81EDC7B
+CADBDEECE84759DA9C23073B64561BA02B8DF0C2459165AF170FB95B316201BE
+D38F5982A2609E1BD8FBD493573F4E52843A2CD17B30B715DBCD82146AD366A6
+DCFF854DEFE6B59491BB56B0632C28D29AA90C76DB5FA0C1F9B128B9B12D53E2
+DA7BF86CDBB5E9432751AC5476690DCDA8F8F8CCF639FDBA2DEF0CA00BCB5011
+CECD240F45B271B6015EB7B7654CFB5DA4A2E8F320FB1E9234B98626D9D8D8F4
+057FDFAD9811182BD620CFF4DE2864AE715AFAD34840D128A30AFD1307FBFB6C
+876DDE39C2796C1718ED8A2DA7D9EB4D4341DF3F534419618FE709DF8BABAF3F
+3FE8288D735493B788668B75845CCBAC3F8C00CFE5E1552DC7107782512C509C
+A20C301A0DB7BCC34CB41D75A104E27B6059B0C3A6C504DF208CC3BF011D04F1
+2AE2716010DDF5AE6133701AC7058B43118C84B41CCC0DC299B6606912276854
+4B83958032CB8EBA71753D1BEBED53D2EEA20CF31FBC5072B2EAB23AEBE5248A
+FA27968481E19EB28B98414B7D31C7F26BB1924B291C366EBB48C571B3A7926F
+749B80FA339E44259F0119A5BD8B57E08DA3D0742043E5BC1C19A346B4895AC1
+3A04F9343956FF300493843F4E4B099F729BD3FD908A6DBBCFFA5ED0215A0BE3
+35ABF720CF166B5BCDD246BF0FDCBE949150BEF341C9E69E05FCC71E0C3E16ED
+4CF58BA615D931F318A071CDDC95EE4F7C5115AEA57B7858628F8E13DE33E771
+1F57861F42DB53EBBC4332DD5D3F96098E01BD1D66EB13144C2CE6A0558279EA
+51742CD7208D1C1E65A283D1CA73556856863CD47D78D1FC79CCE077BC2E5D14
+F10606DA0FEBF17CF8401A6CA37CFFD262A87432223A80BB1ABADED4261D46EC
+A83D208F90699DE6C9A389BB96F6C3F4E02777D308C2E3F508A14E21B1446E2A
+33BD47CA44355E7E128C73B9B3CCF46F50760248270603260C40BD9FCA63C01A
+F3270E80DC263E0B5BEEADFB0AD0EA48ACE0023AA6EBD736AAD1E999C492C674
+167E3746D71B4F58E6CD01B59C73A1E3AC18CEF0891FE511EAC8444133133AB4
+DC7CB359F92E7C53DE1E022B448E7E4E566D4FBD0096F4583EDC6756797D8635
+523B99ABBA63EAA2F25F1AB5F7C687D41B933897E1F8B27A6952E46381EF63BF
+FBA20918503CE2EC45C1A17E29CB5E462DFB547958356E2FF656C3A7C600F28A
+888A1B5DEE4D72CE606CD61AAC7E426BAC6119584F552F04B3D7EC96ED1EF048
+0FFC3B36569070BF4FCD2E46B3792E3A365D695CBB7E4826B4C83B1BFA88FDD2
+133A119122B249CACAA06EDF17D451B21136D01E343A78F365A0116510CB5C2B
+E947F1ECF2A62A32330D778525EA0D577B8F84FF34C27E30FC3C650697B96139
+C54204EA3DBFD74E6C42281A27C121F757FECCE281DB11740E3A56F380C79471
+294ACA3D94D03F62AC700C4B9E53C55AA423C5E0E7581192DF9CBBE60753DD4D
+181FBE50213D9D0705DA4CECF039B959308EDBFE219BE4E0541D30175E448717
+8496143152423969B755D9CDA8B1329836CC618BC0994B93DD83578BA6FDBD21
+AF4923DC8E1075B8BEF515738F2E681DB3D6E9AF5F7AA7BA32FEA6C6C10DA83B
+E1E01A0359A25C564AA1739D56FB040C56018CA5E8F69EDDD735BCE0EAF3EFCF
+7E9E6696C48AE1FA14D4CEBAA680170D300027C1329DFC81CB6C2349EE9789C0
+D15F7F2E1490447870E09FD26D40F18E5DE32E945996FDA4E8A9F77995C9AEEF
+24E82B7F26D107251EFEFD92A62FDC3E46E357EABF76D4B7D3543F02A33941C3
+0EA0A9E1691533C2E2EF79E02E0C4579794418496499C47C1E01C03D30616371
+B14C9850A0FF427FAD4F21FC84777EBB8B0CA14F7526C37779D1ED6ED2526E29
+1072467F0AC8079F509C634445322A859FF846F437D6455A0AC702D59B0F932F
+0EF41B329F42F83566FBA693B87C45E95D743F6523DE11DFA2CF7144CC329060
+BE3C24F17A584998B4EFA6E48CB65ADC840D6554793A9647E3BFEA0B865832D0
+9657A13D20641ADE20DDAC86D26583F5DA14101DA5C971CB385FAB7F4848CB1D
+8800CC239CB3A9E79FD1CCB5A667DE7184EF65A459FFCE472240A803D0ADB5C5
+7FD08B11C77EE7BB13B787DF3E01B99D57D101D8B209B6F7A274299E1EC57BDE
+0D385104C7C0D5F0F835EADB865073C334B74BFD2F5F34705E07334855658D49
+4A1FDE32645FA4DE91CDA7B17B941D0B23F104BB3377E983099AB3B61F794956
+F4854DF574FDA0B4C356C90ACBA0963F98390FA630BFEE1E2D9F995FC82BCD6F
+8C658B842D9574AF472082B60E52CC67070DA5AB29A7C973C9399749018CB904
+88A6FA21224F8DE7EF9F8069B12CC04622CBB7A0C55BA8AEA0523C6D4A64B089
+27E52BBA3B44E98569DBB50ECE9C48B2DDBE9502680E5B618A30C4B95DBEBC91
+9BA2355A940F6304770E70DED7453EC77B3C9C732C9DB9567E4193FB23C89592
+7BB60137EDFC52DF7B06F1262DA52F926E48CD5A750F71FDFC573EB8462845A0
+4EA8E0DAAC302A0EF2A156444F8703D5702EB6C9B58DC70F7F154C0F22A6B53F
+573FBE610D2A2DA232B21DC38D37D56D147670ECCA5DD005B990257691E5548F
+4095517F9FDB1EA0670BB3C325092635CD1207F565B27A6F901AD91484855A71
+A8683156ACB1A795255E8EB09D32F598E9475C97BA191469642FC49C81EE721F
+77B6363572A188885DBD798057AFF88DDF08724DF475B00BB73F681D975E9CF1
+1BFC142990DD34F2E1726FCC8D9F10BD9FDFA8A7BC92212709F00855B547E630
+C26BE4D5488927E8992AD160D8B55FC68C0F1D6A54C0679D275E58A3CAE51977
+B8048A8C2455D58F200DE978859A7D1FC44304C7EA735EFE591E28EC3DD083A9
+9E53D4EA808E10F4B9F3866643E2A0D1CC177FDB0F2CEC6C3DF9B1A92A6ACFAC
+08BE08436F708C3D13DB49DF09EEB57866CDD598B663F10AB42CD229E6325317
+F55716A44C75E7CD8D2B292DF39DE5040DB9F3563CFD2C186065730A0712D446
+501BAED4FD53A9D8F521624E270FA7F932294726E4B84A3FBB7659AD1C5A9240
+DAFC17654ECCDC38A9FAF28F301F10E5923F33DDB0B9AE116143218BB22BC3CE
+402633B164D6E4E3B3788216DE8E9B38677C71AEF5DD109C63641AA99C2B2DCA
+EB99606BC079F386CE077B9647CF93B400D50D11162AABEB08F42A19C52F9D68
+80FF02F006874D2AA3F41BA095DECE25CB7E021C91D25EFC992390C1ACB76357
+9225F06096DDD549FB855CD9F8FDEEFD1375D702E2E806760529475ABA67EE50
+B70FC8860FBBAD5745459DCB1B8AB9F1EAA5084080C2FF89141FF10B459DFB93
+2C35A171AE9219ED5FE507CE7E3813C94F346E924792B1130E9355628980A18C
+6F808F28C396EC813617EBFF922F73BBC8651438A1614C9F24043D110A589B89
+3FFB6F4E99C0AB4EA4E50A6284644137F093D527AB9490A7EBF6140D9DC1FB98
+5090CA16E9F08BE79B49912963719B3B35A442FCA493EE5198F9916F8655005A
+9EE372FC4404CB4168F82F810A58371ACF7AFD46CA46F2F94B194429255A9BC9
+4185CEC1C929945451968B0817842B3BAA28A1CE1E10B6CCC328E0487CFE90BC
+3BD9EECF5F8FF1C99C8805A4970CD486F4DC9BAB0129E86B1F67F08070F04A46
+B0910BA9E173FD4DCB568B08BBECFCF6695414662DE690BF32A90237C8B0E72C
+206D09A580DC92A135179A5E3F1E611A3B05DBB05E4A8D51BA3D0A165D3C40A6
+AE013DEBDF26FA757F6CBC881BE672BB467C1920C067A0B2A49A532A391A8E87
+F2C6E50D247AB108A1740D4D82F955A91D49E95259A3DF9715F34CB45ED5DC9A
+77631A4A1553EDB8D4ABD93869FF52D3CF0017CF887B408C02E8509DFCECDD27
+A295ECFE0332BDA5678C4393ADDD5D171B5FBD360CCA5810F79F5F879939DAE7
+892D53FF5F505CC0501BD40590420A291BFE8E67F09AB7A3E0665F6AA8FD04F9
+67C4B0084C48F9DE8F7E0785F3261844E45C9F5D4A45855BC5B7E00CBB865B31
+2BDBC1B1292DC374B6190D12246DB97BCF04F679DE3605E532451B3E9D7F5997
+E1F353BD1E35CB11C850C9CD5ECBC40C9685DCEAAD279E315FCF85855D6B40C5
+D0FEE8692D4108B04338A70A50BC6E2C04F4472E294A182B88C9021AD8C0ADA8
+0C7A752F764548A51DFECA58D6E39AB4F78BE0A83DF6D60D25CB0F328D8FFD49
+16427FFF198D1FC3F574B3271688A31DA28952EF065C884BC0FFEB547360A372
+7C39E5F2FC458831B9C42128CA69A8198FA0545CFB207856D6BA97E113FF7E26
+DC46395E649205C83DC7565F4130CD6BDD44ED8D4D383D0F37B34C6F2DC98CC7
+4F96BA2722C996879329A4B27089F0A68FD6355D26946039F25D013AAD2F22FF
+12FD7F617282C6F005A6EB12554C47FEE2A5B1D0FC7C595B9DAF268084C91B37
+5FE0ED62A934EB511362D1F14BCAC4950EBFBB2A3D1F45C1E34498871CB4C346
+54B7349577D54D26385D784C5E3C2D869A7336159724FAE151FAEB10E231F3C3
+A17B959192186081556463C3F5EE6FFDB06E82B8B9BD08C0443D8CD84BD6EA7B
+1C2BDB46327CA21FCF002B3E8EF4DECE86077AFE6BB5A941B9E068CA023D54C2
+8E91E503F48B0B4B96ABB07F084C2EADE9B2F41415EB312B9EE0612E69F51177
+654AD20A2D93D457E2FC3C66C3705F9B48A947329BE59DC7B871C055C590FFC3
+F6B5FD8212255D25EB7787E637D5CCAE0E1EA386BF0B911F414BA45E30F36CCD
+6F5A17D0A887B5BEC58B8E8D228E12C9568F820A7F820B6C9B6631EA8C2340EB
+377CEB0A490166FC33AE1F38D3629C090606D3E8AE8662A98D6C63793B1077CF
+092624F46AE4548DB4B22FB602C39EA2E74B5A26DCCCD210E043D508849703E1
+451C8A9061514DC7312755EF16C2165DC1DDE554A29C8AB6F9ABC9A5127041F9
+FC22CD3BF15A4A23DFC8FD5661DCDB1E1E1EA65E77DE4A8D60A2E564F467F071
+5C8EB4509C3F9A97D0371EBBD4584430AC8EF155084B63B9848FD4CE2B5C6DB2
+C3A1946B4BEFA7B088587F912D20F0A2E15A580584441A4742312DD4B34503FD
+338BFA7BFEB94379353CE264541D33433C4E996BECF418A2E3295B9961FBDF28
+77EB608CC870B97D9EB43FC3AF2DBAFEF337BE2F108DDFBFA090190158A244F0
+8A757A95FF8E25B6FBCE09A1DD6FC5C8897456E12AE7A9AAAF0E42FC632D35AD
+EA2C00D7C61E047CB071163F05FB5ADAE82D0E177BB7E6C9492C2FC9F511F75C
+0FCBF74F06E057F6B66D3F72873559C5C983DA7D7E75EEF7B783EA44E4AEDAFB
+2FD8C3779D38EFEFEE5BD565C3A73D307D81EC6C45C2F02B7B342DFBE2356484
+BE59EF6527E956D8E1C48C80395F34CF4AE1B8B5C2A06072DE5C59255ABA30B4
+3B5039CE2524141C0BA73CF79209B0B5AF17C59BA0EAB437802A22A2E2D6407C
+C861A71EA547220134412109DFA1F6D78BB0C34F6FD36003850FD3D9EDF39741
+2EBB9AA349BB5801C9FCFBAB69E1D3BD5F4752663E616A8E1FE486545F3F1BA3
+8F8A11E4C13B2CF97A497C2333A22C696B499647DD7439D3D7B636FBEED2D32C
+86FF745763413B53E064B16E5BF157C9DF7313FB9D46C752B52E963BFAFCB392
+531F4E46194A3BE24E2F51EC9BD57FD5E82668E2AA9D72DFDF7F4500C1B81526
+C09DEF71CA6D3A3A7ABB1BEF21E99DDDB82D307BAE2B6FB28FEFA5160E18304D
+25B1665A7375FFACA6C843A0E8BCBBF59FBE24068A79ED68A6F45AEB7201BB6F
+06EF67DD19243E68DB34025209E851DE3AB65D10E108316E733DFD25B0F8CC8C
+056740761BCF195AA6E1C2857BDE85983408D400A96EDB887889F7CCFF403606
+F9C01F7CA76C9CEFFFC9AB7D3ADCA36A0269283F5A65594ED68F43DC1BFC6117
+1D113760B0F469C34CF089EAEC99C5F7448BF6285DB05D35CE182CD80491D88E
+3CF21FDB249EC96516EA42BA9A716283C7C60A1D9E7EB9E217B2B4EE5F316110
+2DECF4D895423D64B87B776883FA49225B6061E820C9425129736754184CDEC0
+67B63E5D07A455BE0B9AE382FC997195AE0AC4C07FB761EA5002C3943008F7A4
+BC04588165242A9F4C31E811EBF1E145C2D102D1D7C9331EE6660E054E74CD7D
+8FA19BEBD2F89BDEA0DD0B54B0E1B5EBE3E9CB1E5A1F477CCAE0955BFE9950E0
+01211AC8F3430F958A4DFC6E74502D9E2EDF5E2CE261DE00D8DA75BCDB83293A
+0802B7D5F14BE14380DC1013877AE4624853F3FA041F944D19185862A8DCE73F
+5F0181BD84C3E65AD11B2F0A2FE36B1803084E82274CF4BE3B0151D309C3F104
+771C6DC985D7DDDC77BA40D844173A9486B539DCE051DC82FF6D6831F99B9891
+48D6B027B8B6B6279E6CEC7D0606DAAB1A86F2309F1A4842A1DFDD5116FBFEA5
+0AB6C354CB65782464770B72B39DDBA2565CDE941D68ED928151E23675B541EF
+33B070ACC0ED70A3A18D0833CE7A90C911840E06577872FD4C3A67E7C195F73C
+2418EF0889AB1AEA93269CB1B98CEF136DD38DDEEC2450F7C5FAA9775973E178
+1182455E0321C4DF13B1EC1466D8F5BBBFC38A2A054B57FED2E429ADD7CD3EB3
+425F266AD5F0B37576EF54143D42D675E895EF20F54E1CAFE0F2A2D2075B28FB
+EC034601A147177976623733D6FC00CBE2DDB1E9DC5DD9E7D12AF9E589843FD3
+607AFD7DCC3AC648862C559B98790640A78E112B757B15FA513A76E1C3AC4074
+DD520E94998D5DB08C1D3E822FEC4ECBFD1E398B480AE01690B14BF92948135B
+4C042F70CDF3B988BD02CD54CDCACF912AF09C0C59CF23F84094E5C976E6392D
+D7D5ABC68E9EE23C080B564096A30F67241987999244686137175D8570DE9AE4
+57EF670B5576BBC1C0AD4E26D7817B202674F70CA62A5EEB882C2ED1C6272C00
+5598595DF2AC7F82FD1C9606183157EAE7575B07828BC2C0B2D171F86BF3900E
+43FFD4F6463FB5C6A1201D26A8B58677F7CB00C5CBDE1FABE2641CC2172775C6
+3F9FB0496CE71E179D70333A628091B47A3100A5B4CE624EC9CE5E4D740CE3E0
+0F03450F95138A0437BD3A7C4F6FAFD1B8B2A0EE07FDF76E427A8ADEE7CBED56
+B57F9522F8CBDC3236224E6E3FADB549018E757E090E1CEEE91C45C032CF1F25
+67FE17978B998DEE1635236EAAE953623BE263D2C444327E91C4EF9740B768F8
+70A6CFEC3511252D7432C96E5B11B7AA80BF620B63B82AA4777823F7D0266A75
+6DDBBC79CB7EF862FC8AA67C07B87C40EAFC0C81C122AC0348F7702E95760F93
+33508D7852E4A494F5C6CCEB7CF67F1AFD391977AE0D85397BC85BA02C0C02ED
+51C9489230B568BDBB8485087350E140611053373E46EDE979AF4C1D1047925E
+9F67E9708D11BC71659DD61D3166B156670D67046AC2EBA08A25FCF2B84E7BB9
+56FAA25B67004C1D6DF8D12D4E9F1E3793CC1667EA7DFD6D67243DCFAB276AC4
+DA755EC98D63C11D5D10E59D74A4CF627F699F1A018B2AD652584A810B2DC519
+549B2CE246622CB20DB69F25399315A33B244BE0C05FEBAE53D00E4E266DEEDB
+D1912D49E6699105767FE996B0CE64AF777E5D559D36BB141456339447216362
+59721641A762F6F6A54CEB3D0D2D3F75927E362D6A6A99CA6A8BF739681A60C3
+232E952935AE9B34DD4FD3D15385F5A30B045F3670D517BFB924BCAB0371F3D3
+CE9C5161D8C634BCCCD3134F8AE366D3D7B2C7B32EA89FD61231E30DD3DC1BD7
+FD295D5E49051F6C35DD7AEF31CA904FC20F36F19E0B9B838750868D69A752BC
+64398CF36B006D8313D0A349C9D93AF56F0E01274D9AB369309B9F4E4BD0B8F9
+C6B3C66F38C3027CD1AF8802BC82904F3A619F89D5CA5BB78150A8D39B9A92A8
+9B5F5BD2674CBA06F7819C0C9261EA9671810A804C1C14CD6A1D7116F9491BBE
+269653566173D334F26E76CB8AC3C345D47220D777449AC0E82B435A2817AF7A
+711A664519CFC16804C966D8AC088DA2AAAAC79AE21E7B538F3554B65CF29AC1
+57B646E6BA127A7A0B169EC680ECF5C230CAA91A9ED6AB2A54B8EB7E8C94DA78
+67C22B180ED661264EB2004EEDF1923FC5EE30E0A6F87DDC414B7507887F8411
+9B999F25ECBDCF8FC3D9AF99AB8AC08736091CA28D78E77354F3205CD56F9221
+B6CB6D81A34E3C954F73BB23BC73D4E4E6B961EB4589E5C2E21E426D78E71958
+3782FAA65DC184CB4944FCBAD6ED0A882F8767E2E8A8CF272683BBCA8A4657FF
+8E856DB3188939D424341DD0D9B8074461D8F15FBFCFA7AD63C81C4F51396640
+9FF1B14685624376BD753D186F75C695CFF5BF63EC9B20D2CE365BD0A4822069
+686C8737732EA874127D96CE11F889A71071771D8356A5BCE475F98D79C8CA22
+E98F5175D0016913B0C927616AEC836578F02024E3D4FAE49F428F68A026C592
+37870C5DE3A1833AE1C24D461FEA
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -567,63 +1121,233 @@ F91393D79AEC524DE64ED9AD42516985CE04D37027DFFFAFD36CF3D444D7F946
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMMI9
-%!PS-AdobeFont-1.1: CMMI9 1.100
-%%CreationDate: 1996 Jul 23 07:53:55
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMMI9 003.002
+%%Title: CMMI9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup
+/UniqueID get 5087384 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI9 def
+/FontBBox {-29 -250 1075 750 }readonly def
+/UniqueID 5087384 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI9.) readonly def
/FullName (CMMI9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
end readonly def
-/FontName /CMMI9 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 58 /period put
readonly def
-/FontBBox{-29 -250 1075 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935
-86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505
-DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD
-67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF
-6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554
-FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7
-22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD
-730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F
-449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7
-97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A
-E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C
-AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA
-A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599
-B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B
-9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E
-759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3
-5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2
-BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680
-3435E9C9445A59A7C666418C4F2512C32058B1CE1EA46C7839C6E372F6CC60AE
-2CF46DD2F130B532DE8ECD42D9204500E413799E298CF6426F28D23BB7216BEA
-1A618B3ECC61B44DDEF0BB22D640B47C09AC0DF378CE68FC9CD88BDAE9ED89CB
-431A5CF9C3E9528FEE7A9936C2B1CF7B38DD2B95773F0EA0051607BE1B0B3588
-A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433
-30AE3C094654ABF4698C07F8C74E71D023DFD242EE83B1306786124DD8C6BFA7
-801E66CB944BE7EBCB3FE803EC97067AF7AFC8A4E9AC9D11
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBD07FC5A8862A8DB
+7E2B90C16137614CDAFB584A32E50C0935109679E31306B8BDD29F1756946A67
+7A7C2D9BA6FAB9B20A424AA0E6F4BA64C2801C2FB5A1156CBEED0ACB95F697B8
+BC2A6E6AA7EB1F9FD8E3C9B1A16697EE1F0E7400421A7765AB218FC837A49365
+82DC6B2C877A7DA84A81E6126EE96DB25C17A207D3020A045DCDAA064360DFFC
+E3CD50E21ED239D2A6450D04F879A26443ADEB6A20ACC504989876476C7D1A74
+91564FEA1F4CC2C8C8FDF666DB537F315AE1886C73CB5B00E67E7B398A6C018E
+540EAEE98BB8136C4F044EDD63C33431D2CF9740F051DF365A4045D9D8782112
+7BB5D494D9235BA98CF2F30CB119F5A904C32AD04C960C43FC1F5FD8DA7D90D8
+93AFB59F3FF4F796481AE2A7548F948FECFC6C127C4D3F159B08F206AE8C296D
+EE470DB2F879EA79475E029D22D7A8535C09A18689DB0609CC233E5199C02756
+972CC9C94D9FCE264DEE5D75C8D651E4E2D1189AD9588CB815722BB5EE3C379A
+6F31C2E6AE1AE4CCEB29766190AFA20EA937114978752189F1A9F42B39483149
+796FCFA123BA9CCD1D9BE28289660BCAE16C40B5B504058D55CFCBFB4F4E3D94
+DDBF39F157E63946534DA81C018B1C01B9F10DDB55E0A5C2B3985ED1977C039B
+D6755EA42CD09E27751E159C30B93F376DBE61CD3AED34BA36A768F232EB3B80
+E3E6B77C4A48D408217818E398B83D995AB6BC871F20991DF57313D6EB0C793D
+0F28088EBDB7F38DAF7E01AAB3476EC24D7BB38A9889A7D3038D930FF4289B83
+F54A7BE1E2D98A3822098D2E4D067A0D400C20C0B2B4BBD74C13ED1B827490F9
+ECF48F8C3994C1C5AAC9CF783BFA4F307528F51EAB55F961808A42ED53F00C97
+72A432EAEDCFCFB622389BDA707B6ACC9433B065CF29EBFE93AD14B8ECD5F47F
+F073F11822C49B8BE924CDFA6348C3A75E9BB9BF3F31C41716B34794B28CDAC9
+4DB8B087E180A9B3B17680F73D9C12C8D86A922C948093629F5D7F542ED882A1
+692F4F6696865E53E3E2DD43B2D5E8C989CFAA5CA5C4C5999045E170BDE9921C
+BACD6F2863F5553EAB2BA2D4A9034729EC0C4201DE90DA89B0A27C5A5C974109
+4E37BFB3F46B3A506169FB0C68E1CAFC844419A8D261A1FD86A3BB78E33D5FB1
+CFC687A5975987CE45155E5FDFAF0CC5FD5568CB1C26212F92E88255F0549F59
+41B33125946DE43436BEC00804063FBF03EC796E3361B1C852EC3038D107F80A
+9198968265D5488B26D7670B22C2D75EDFFD1B7B4AAFA36DFD94640C9D0E2D20
+5BCA18683EFB91834A3939AB8EB60E2F09655BE003582634C52770DA9668C292
+2E02929D812EE2B0CC65F020064AD5BDAC5F5693B30508F40ED8E20E87149BD5
+8DD41AFF83FD1944804017DC5A04512E593549FFFAE501131CE2FDB65EFD0B8B
+33809CBAEE411B3941C241550B9C30DD28088708F1C0CC3125CBEDCD985EAD28
+03313741F67DB5744A87B381147D5BA70AE1145C27F794854628D87D6C1ECCA1
+749E3465B950175D3C3F40E344297BD92D3190041A4392033A79BEAEAABB8DBE
+CC14E39612F43721CFAE6F79074429221CA588AA2501DE520A464DE157A03AFE
+3C082FAE7628FC0C57FFC61D0330AE6332D20FDBB09BF36848FE05E782D6379F
+64F9C82C45402481B0A35989027F9756BF5A79DA2D96E10F39167ADB4305578F
+90B509B6891338FA1D67DCFD61804AA6621526B2EE4769589A2646581712AC05
+DA6E98D16494F07D612743058F54FEE516BD89A8EC3E03F9D7F905175D3412C8
+F7329077FD6EB25213F3CAC94BA0C3363B759401B6EF7548C7D709F3241D030D
+4EB46A1AE81863C412BDDAEA6084C37143A4C5E41BC646315B1CD09F934186CF
+49D1D8239E363A435307030BD79536B50B723A39DD763DB539F24A10DDA12BD4
+E467339D2D6DB177D6FC539FA77D2DE4118EBAC161E928749F7C753ADEF86117
+58619F1155C563DF2E11ACA8347908B98113AED58FCD0394150EEC94B7F986EE
+88BF7171D208D8F1774B1DD478F0C2958AE372D257E7EDF0F6B5D6059CC4D5D3
+B00FCBD2E9CBE79235B9A5A3E943CC27AABB58728C95C7DBD4F4A1F8A4DA99AE
+7377B0CC0BFBD454794398AE0D5F7281771FFE87B25A819F36E692286A42D776
+01794A43CA9BB30FB8FFDAAF014F909A369E34C2F6C75B7D4EB9DB0580E33F46
+19654443AFF8384B95600B86FF8E41FEFD032355626D60C7507C058EF832DF41
+194B48A36F11082D1DCF4723E21401E0C7447AABFAB4639B26E3D2730E348F55
+53EBFF39CDD03E06E2FA5FB379603C879EDB7E1A10F89695C9C47DEEE52BE0A3
+F446F187AB9D7E93E6F9387F21129034F36DF40605D28FD526AF82CA9D232BE4
+412567F06B38ECCD496EF40A7B243E46C9FEBA4F1BF4B1ECA029C5EC239353D6
+C0B100BF7E7DB33BD1277DE104F15AA19F37340A777741AD1AD693BC76DA48CC
+C6F83CD84591ECFEE375979972B0FAC4C10B625E4BFB261B9FFFA83C31DA0108
+4FFB6377466E9739E0EB64424BD9FC7239C7DD834EC6788A0F97FE714AF92831
+E1BA36A8A9E24739F1DC82DC26CC3CE28C210AA7C569B19E1784D663A0CA4E81
+AFF43E86D6F5F63778847700072CEB77A4EB946DC1F23DBC00BCE773203F76DF
+00F0B085F31420672974DDC642D885E95BA6BBE43E1CA8ABF464D9881CDECC7A
+E98E31B9754C9B72A8BD5CF6D4D214DBC3BA7A0CDF6635953F5AC1E7639C4A91
+C7AECE4C75CA3389C348F656FC2CC96C84C85A926237B6504DB51937C9CFCDAC
+B75C31ED570D180757884E27757783DB2D5F35ECC48C496CDA342D49AA947BF8
+2FDAD2F19DFE8CD1C76A8FA08F33681F3E12E229D7DAB45BE3A3F258B5ED4980
+F15340CF20D965252843E026803E8AEE736EC41CCA82167401977AB719AA2F50
+0B791EEAA82027B3C712D2EB9D14BF8F94FBDE2227609BCAC41EC08DE2BAC023
+28352F913F7DF08D4E1C66E83F764578B22B4EB7191E852B91ADCCB1BCFDB1F4
+E63DFD152E86FA9DE9BC8908130EFDE29CC4401339C05B5B9764CF8EFF14951A
+C6C13AF979546996BF22F2B96D3D585B90CD27DADEC78914DA48432C6ACBDD42
+20EF583FD41F2F6D6D10C3DF7DD077304B5940BB0462656E306CBD91EB9B756B
+7014B1884A36201EC582FC9345C386043DD2818FC301EF78791C1D7854F8FACE
+5DE9801DE9F59D5B4271E003AB897B2EF49501589D681D59CFFD9B03F722EEF4
+74ABD29997515DA3591496B62666744EA76DCA45504F8075C0652D6779DBEAE4
+90430C2945FBD60AD53B51DDBEFC7ED703C418B4B244C8FFA5A3C1B7600C5A55
+3EBDB93C16AC191C3A28EB2279BD3F0D67C826BC6A73D3C0AD02262368AB4621
+98A1605F2887BC5880E1AF2780330E0FD01D7CAACBB0F008A42C427F38236066
+54799594E515B289044BAC4DADF8B3686B4372C5110201221FDA923F131E07E7
+93C44BAD406838BA4D1C277EF74098B8C0EDC41EEDD58C195D7DFF5FEDBF96FC
+19CEBC6C3006DD2CBF76916B4298BB915663C2F61AFD7747E03A03BD7280197A
+9DA590E3D081C6F53DBF94E8D6FDDDD910A70AB18A0F6D48A590FFAB314D6CFD
+E3FB20C1F3C91063F00726A2C13A3D48323F9854839405E5A29D66A43E6E2B84
+A8B3765F1D817071D4D6FF42BC785C2D11AB2B9452F141696CE19C6AFB9777DB
+107D6E22D8CC6C26440BC48248AD8805C4329D46BF433741CB519B21663392DA
+5DC7FC9BF37E5BC396BFADD7263D09F6B4D69594AB386B7BDFCF3BACB97A0E08
+22013E716E642592A20136CF9CFD61D4E515D80E06A4CB4FC9D9B916C93CEA95
+B83B98C48CF36C1D02291D4F5C0419338D64E33C90C90EDD2BA3B96D70FAFE0D
+403A060CFF448D3E28A9B1E3916018465E86095BAAB4706CF7ED350D7C554789
+D7F4FE5F180767DE8739259E68CF142040BE1E2E8C6152DE3417C1FAEA7584B6
+20781DC4A9796431EE713DAC4E713C839D7A4FDC8AB6BFEFFE767AFD8B67FDA6
+943AD387E5D3BCB09039ADB64ECC2BE2620C6EC269E708DD06C311F450099E33
+AF46AEC644222E7DC4DBB9371EE12CFBC4F9B27AB46AD1DA96CE006E1DF8291F
+A550A93026CBFFC1087B134EC6EA76F5E109CDA58FF47338A0039A786A575F70
+B8A03A4F9C8D07A4C856C77D9BCC8E3EAA740172D0C2D0A15BA35C9E5717D7FA
+2691774DDE730BB9D7C70D7AE103DB8D35F3728470C76EBA0E670634E1A0BA84
+2FA102BAD7271DF2680D86A4CA6FC353869987700E5E3FD778165456033D624F
+E9B3E80EBF431ACC934AA0357E824B8AD73E222B510DE8445C55C07C8E5DE46D
+E478F832BDDECAF2EBB11941DCF84CCD887043FAED9AA90D12BC8CA9A0C8D94F
+8D3BF1F80B14B6CAE6BB1C6AA405AA64BB94D5A82CFEA548BA070796A02F9642
+87326D066101435AB9EB40BA9EA9E61B363F5F5E3B924369796E8B78DE3414A4
+2B79C6A13ECB2F34E6299658D07D2B3DEF3D4383CE009A927F0EF5C196652842
+D96B857AB5E905201E7E8BA21A5EBED1FC6863BA9A1A6E5390407F75055E2EEC
+512FBDB3E82CEA13663F1A1944DA072C765D8CED06AB461470C5723BDC1271D4
+4D1D049D3EB131743F1EC9A6ADDAA038ACA2C41D139DC6A84EC3C61AC7F1E559
+6155CC2F49171F6E07CF56D721D9728E87FC7DCBCAC46455A3694C765FE807E9
+9CBC2D304AF37E0F28CCB22F239541B53A4D24D09C662559267467EA487BD33A
+0BEFD4899B581D20582930703A868655C31BE935364CA6A95FBCB22CB714C040
+9718824DFE97929D0482430726CCB5A5307957DD2432A9B6271E849148DEB76B
+FAA290FF6D0B18DC5B76407852E81C105EC6CFAB0F620C6DC9DA555A33C167B1
+430A8BC338BFC7D75B7099CC906AD923FA107C74D3FBB719D77A4E5A685FF9D8
+56424EE4AA074434B809D894ED50F6A60A035C5223EA25DD8983B9B34210DABE
+718D7B2BEB293FF1B63CFB1CBDAFC69552963D90F5E3FF533A3FDBB626E9FAA3
+F3C119E5E01C7BFF832A033C3515BF049E29558B1DAD652F2888E339E67D15AE
+95F9BD14E3253DFE9072B24C0E7E85025B71096AF51C86AECB2921126A43156B
+EC812B32B1164BD9B2B947D503C015616DBF2024F5C8CB3236C1DCA653D661FE
+6B1C19A22D272A176B7F1B7F9E67AF40DB0EFD4940E58B2A050249CA4E55CAF7
+6ACFD84FB46FEF952D18552B3972D79D808B4C263B8C7E1BB647A2D03E102867
+630D5C3F2C917F765A4F6FB8106BA6A9D0093E27A4CB6049C2371287D94B5111
+6E7020776EBD744C6C920464BBBC0AC206033E8240017F8CCB112596ECD7CAFA
+89950CF43FD87ACA750C03A778A37FBCE9C82C2F5ABB135BB02DA8E8C0D24475
+3BEA9D79372D0022FF1ABD378C151417DBC69FE5C9CA38D23A3900E34BF924A2
+90777ACDC37930B67DD44A2E76DDBD9B89598D5F626BFD325A978D277265DA47
+38CFAF16E7FF1946E15F41CA73F7B4B02E5AE8FC4C37B115BC567E4EEEFEFC34
+EC8974B1465AE57759EDDA28DD38A9210871D35D331AE1BE6097C3EC21C770C9
+B25D040B2ECCC3AEB1EA1BF99E0C2C0F192C13BB9152CFCF75332E03F9CEC376
+9B8C285A35F53655BE38713E09AE34BA2DA9C06FA42A6FD2D00CBF2AFD2BADB9
+1571629C65DA38A431710CF5B01FCA68E8B8569922FBC3F9B64A5509B6F677AF
+1B97E91FFFEB6308AB68AC58F9BA43DB5E764021E75B56170EB44C2C0A7DB86C
+62B8982256D3621EBE3DB3994DBF5C5A14CF34B4AF3BD5697F8E3203085DE9D5
+84B0598169760B925463E93DC87CE70AF4C2DF0F4287D2F2069847BCCF7A37A2
+AD451D5ACE4DBCCB2E14D5DF38B226952E7446BF87BEC736EF3D5AE793304618
+D66D3299AB9F9CA1D13F134FAEDF36750046E27706C7CBD8E0877BB6276E5196
+BC2A355D109C0253644918E1CC11B717DE6FBDA201E769812752888CD66268F6
+4ACF4A9449378F9F9923D584BA1B51F33663BE7A306887BC14A37E3C5A4654E6
+531D6EB63DE3946BD8BA95CFB037991174F36D61D842071E6625605CAA350A24
+FE551025D10871FE0E2599A63900C8520EF4911C53A03897C8BEE152451708E2
+43FCF4E700C583A5E8DBCC03BF9CAB864DBD19E1760945DEA0EC0BA38BEA8256
+D3A8D4F70F6685A99C6BD2BA8B412A26C002D76138CFCC7DF6802931E5D97BA6
+0151F6A4C572235B4196B22B7B2D14B32886DF0D2CA8A277ABAAC53B63F64CE4
+E4C088192AAB674497E8AF81961359C389B51F4A257373D907C615030BFBEF53
+DBD99058FD06E352450B658478C10454AC8FC0232B70D5CB916981978053E358
+99D322A07294748BA427FFD1E45C909171017B52B7C742FD77A8560852D819DD
+8DD53211A14D7B2FD11E42941722FD3985D627FDAF87EB57326A0D290B5077D1
+8A4230BEB40523A8565F95E0D44F036A571DB698EDD9D94FEC9512369E5E5E73
+A3CA5C142617944F4F99C0697ED088ACAC007FCE06E5A6EDE7D0E03A3399DCE5
+362271BC31533866BA79FD1FB3F608B22CCD4111FFB1BA35D920A23AD157C6B3
+C3DAE11069D5E46DEDA7158C6478D8B8C0D9DC237CDF0CC6633911673C43FB79
+E4F9B7F27495201E5ADE66255BC2CBE9D9F237DECB62A19D62CB41A1C92432D2
+07F0629E913A71B3F1AAF8B8C5AC66D3C8605A48F8913E39C859E163DB1DBC8F
+0ACFEE80A40B6172032E95A76B752B873FB4DF23CF3A655AF1A1B88C8DC156C6
+190DE72973950565454C0A188A33395FD3D529A88F2B578356DE8EBBC12F04C4
+5B899F667D9E6F3A4EC6DD8DE71FD4C2E2B6D56823EE4E0526679D71FF1B868D
+F261489F06F97B010CCBE640E2F57BA3DC3332B329F7958394BA9777D833AB50
+005E8E9232547104065ACE33396772B0E0BD66D2C6CC54DEDD071E444D8C95F8
+6F88B31E20FDB80F77C83151B7E25BD3736B4F9BDC52EE78C41E9475E5A6D94C
+D348AB42F5E36B4F167D29EBDFBD43B03F77EB296B06A36880FF17D412E77EA9
+F2E7C25FD05E16BEC6732681EA21AC3FF6893B93FC09316A370CDDB86D9E6087
+F6042C3F9ECD742778389170F5F041329782FB9F9702F7533E51F355F71825AE
+2BF4F8FE50D413AC9A20C41B42537FDBE8DDC5A5C793D3760C1EE13716068752
+F0AF10812250BEDFB4D7133FD58F4587BACD572505C84A7D3802D27443175FE0
+0D89C3398B55176D8642AFBAB5CBCDFD6220C8488564B4306D74A58CD2921AAD
+73CF803C754DAC2F30A5324886E273064FA51781D5BC596BFEDDCE3982EA1AA2
+62CA7BAA1B16C6EBB99B2AAC4E6C9CEFB3D10F19987045C4918DB239E6E63D79
+5F44B9D097118D081153AFF96E5EB39CBFBB99A3BE30909F614869031358EB98
+F07A97EA78AE50375941B2474DB46AF3305F2B208D45921F93743A6CB8AC584F
+6BEBE25ECAADD5A789EF60C9F54446687E7B030DA3E5243189F02BA46BFD28B7
+DC14822E136AC7E40CE20458DDBF356488045C95907363864CD6943643BF0109
+EE027A3091C11EA392EA91320EBFEA3B857370AD8EB86D73F035A476F7058222
+E8CDE78CA1AA9EA69A8AA6EBFF3E67324C567B914134DE042D6F8F18A9373107
+536E8D90189917D343F5299024239E2EC1D2D177D82DC8E344A7CF2AC71AEC18
+36F139E7A4EB59A67192BCA9ED0EB25DE13032F6FEAFC3B1F4FC81BB0EDC41DF
+B9EB92618667C59EA499B788CD26C2137D70F1B0AF793AF5AD0D0941F2E746E3
+F5A7F0288BC1EE11E982EAAE763CA422D72FBBC0D754AD58FBF92629DC8866A0
+431213513744DB48E52EFC89C83FEB082588E4F30D7DA77BB598E51CAE7E4900
+5CD570C914EFBA426BAFF7A56FC775ECF5BE13F2C42E51EF96784E5201C0B64C
+074AC229FF0BFDF71E6D5E08D8755D2C12B770B6466A9C9C61C15582DCD2FF78
+E9E74DC2B1CAA344EC0339EBFF92CD2CC1D62E2FA8FF15E7459A83C6CFA58A77
+2F1A40BD276E76B675FD6834052B33BF9190F04DF6AA5FA3BB7D77A88DD5B600
+324C5E28216F47682EC29EABF35BA842BA2294A3D72B126EBB852AB741186C9F
+FC84B12DC4A6CEC08F2D03EE61B65C845841EE17F1B765649A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -633,29 +1357,44 @@ A8B907A5EF011B4622C5093A7B107DD1EED6FEE9536DECF1CC96E65373D0F433
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMSLTT10
-%!PS-AdobeFont-1.1: CMSLTT10 1.0
-%%CreationDate: 1991 Aug 20 16:41:43
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMSLTT10 003.002
+%%Title: CMSLTT10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSLTT10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup
+/UniqueID get 5000800 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSLTT10 def
+/FontBBox {-20 -233 617 696 }readonly def
+/UniqueID 5000800 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSLTT10.) readonly def
/FullName (CMSLTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMSLTT10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 39 /quoteright put
-dup 42 /asterisk put
dup 45 /hyphen put
dup 48 /zero put
dup 49 /one put
@@ -705,271 +1444,423 @@ dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
-/FontBBox{-20 -233 617 696}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0528A405DF15F03DB1C3DA8B850431F8
-0E5F73DAC973450D1ED0530313057E971FC7E7CA88E61DA6DB9A5CD61F0F76CB
-4DE9105D0627B8DDF51A655098229920CF429CDAFC3F7788C95E7AB30E84F840
-8CED52E98DB4CFF161D2E62B0D28CB8B0AC82E7A8D2C007953BAFB3056D66079
-8064956E257D31C13509FB81A250D9E875C77A4E91CC49E9FB3C0718B2F691D4
-B4A64F351F4DD68133DED7629B0D96E5124584A16FD2AC7A3EB244A934FF059F
-ED7297B0505F3C2994AD66A3CA5D2728B034DE94B64A8AFAF341601BD4DB5858
-C9950A8BB9C598B8960609F48116ABA8C007190AF0ED335EB5BF61BA6871FA5F
-EAB5A26AEB5C7C352EB80799CEB983F19EEFA801093F62086AADD0B80BB6580F
-2CF61B1390FA56DFA1A0B61C58DEF96BA767A8A37EA44730783C600706606C60
-4EE74EA99B7C0F8E2525C8847F3D31907C3C483EFA98F6C416B6B2C343DE6370
-52FAE423008D086A76A1FFB327CC7FD84B1C66B203A4F41582F4599A82F8362D
-38108452EACCC937FFC4F3ABBFE3628DF51367DA6BA3F6826FC6522D6AC5E8EA
-00BAD300FFB6DEDAB93237704202BACD030AA824B1E97C0AFE17FCE8C75F4FA0
-B8A74329A6CF1788C7EB34DA7307411E9AD7ED8D6582884456E06E033B4FFE7D
-CD4DD8B06AD01340CCCFBC382C18CA451E4C886B01D082FF8CC5793F4727C3DF
-B52B4F1A242F31D1EB79D1E39A1D4FD13D6C5E2A42AD4B4D1CC4EE7BA0E5F80F
-802E5AB57EA15F4DE44D82AC408AA86D4BF58EF967FBC6497BBC7F017C0598AE
-32CF865DFFF0FC7FF9E6DCE9B5F2F4C7491AC674F46E8E7660452CE0A77C1EE8
-00DE382ABED85350033EC00053134DBABB69DD3098576DACC5D1E325C4B372B3
-943F8E90BE7B97B996D39337ED6D90F8041298B7A27B223358A5161FE98FA4E0
-6879524934E026863F790FE3B5A8A41AD2E91866F81B195E0A02D9BDF971633F
-0FE9A9BEA04CBEA9E46AA44C31D694A0AF3D7CBC1FC4988F6A81130613047150
-12203A85849EF4D9238604ED8040DC85FB0CDE867F50EE685C8B2BB0574FE22E
-B02F2595A161E810E2C9FB46B3E15BF0B3E7591FE9CCF7689B1988B354D81E42
-145BDD9A5C21B3E52BA1F1CB76BCEAD38C97D40F1FB50C505B0FC423A1F495BF
-62332481948BC331BE6395DB78C35E5DD1B55E92FD14F1943E73B157F5E5C24C
-AB2D70824FC69C818980EF3954F79FAA4E946064F55D8A62723694E4C489A1FB
-6A082DE0BE740A145A71F1F9FD011E558E3F27DFCCDDD49DC348707DAB524EA6
-88370F288567B17F313D9EF6300E8D910F49A4E9E581BC95D89B84E2591EE3FA
-41FFED57028D28600F1AEDFCB752BEE359856AB8F776A166C83929C17BA13600
-0A5D2447AD901988E5F5B6B9D710080392FEA79CD595FCAB7B9B52C94E0733A2
-BC63FBE36CECAE723EBAC3BDF4AAD1494B9F3D146F7E3DE66F77F6C3636C6BF9
-EE6C73AB8F1E98E043710DABDD1E9CE6E3F5FA8F44670AE15BF8FFEF72E849CC
-A9E20CBFB577BB42C9D842A3812FD73D0E26D592ECB2A920986F623184ACDCE0
-90610840699BF7302E534D6F9EC4B007E6CE4D8D07BF9D4F486C503A3EEF3999
-50E3A7402046E7C08AD26751A910154284312117F6C6AD506038B4A5A4E1097F
-26241689BA60A4B2E58103089301AEE41DDEEC60CA3ED74B2E838AC0A86E355E
-EFB46562208EC834133CACC4A6516B4378B8C3F86083B18AD53C3C1E13200B8C
-6F4ED7346CE480809EA316BC70C5AAD4FAFBAF995C7ED82624552BF2F0017E07
-51AEEB8E2529CE5E24087FF3F0921DD9963AF7BCA9582565573CB5A463C4A5DA
-0F1C8A82D76213DF461AD578C25340C4178CA8A7E99D85CEAF6605FB5AC336AC
-22CE77D930F859E0089A09D80C694C573BED5448F793FA7A3A977AC2EED1BD47
-7DDE4D72B9DB3828175AC20BBA66EB0C3D1CE9931AF3B5FDA9D9CF3C67E65CB7
-439F5FA380AFEC7DDB17FF8468D03ED4E99C507C3312E7926A5650346C44560B
-F729A594E0651F7BC3A0EAF5C66BBF27070CB1E691D584D48998189152D78F5A
-E2FFD2C517BA7127DF128CA5DEF2576FE2BF61733D5F3C0972BC423E34C102FC
-F84E33813FFB62ECDBDB494AD6A3AD2C9D1EF30D11031EE57D8F7775A6A0400F
-3EEE57D877FB8E007E4B309412660197770EF9792605C08668F694608E37BD9F
-264A298AB09C2A6E605C6A6BC523197E1F87DCA1150DE1A535C327CF09C86A3E
-2FF9FFA2C5A12E2C4F1DFB00BE313BA13F80379EB70873D89667D0E274EB43EC
-69E1D140DA4D02C8D2F8D088B2BF240EB96641836FA71EB749829ACFBAFB152A
-E67B9428C24006EC9AE92BBD00614E4FEF490944C906EC75508730FBD7F8E439
-1FC995C07CC43B83E2F4063A30BAA9E1E7398C250368C6E13BEDF0F14E6EF31B
-823FAF0EEC9A2F745125AA099110843D606073A374E97AA91139C190B0992CC7
-07926D8F9F04132B6C629B6149B07229E3774AB12FD9CD2917E8162D6F4D26AE
-99AB9F015A6C629B094E6C98767B8903678EFAEE09BF1C7B6F299A0821877171
-FD01FC4AB79872088C954ED616FC17DA91B76F33BC8AF20EB81BDD3CC686C5D1
-E28ADBE191E355419683D64E7A3C9F78C380052F9329EA6E7102ACD7D5588DDA
-B1EFEE6F0E6B4378D5E7DD88163141E47FF011C056319F8F8ACCFDCC2F352696
-3C04052BBEB16682801F73BE5B988BBED6D4C31B5D188E2C1D42C368BCF81B7F
-363189B07A5056FEB84F7DFA5186E9DB319854FCCF6AB41FD87EA5C65C66201E
-00D743116D2F0B799DCD60FF0F534FFA92A4B8073E12245F194D9DA9D76993F6
-A17AEDEF24027EBB10EC75130081B6843C302BB5EB62CA40186F2E9E4ED17296
-632B085C31B432E748433B4FF2F1CD7BDD4E6B1E6C0C369DBCB7D5AB64D2D275
-D93A35F54339DE4EB8DE77418B977E50D459732048AB32EA4CF69DD7DEF04CAA
-C22F16BCB3BE34512364791EE63E29B5733401C8F5A847764525E1B14CD6CCE1
-81A16F9FFC6D5B37B293938F0555AF9592537F4A9B2AEBE9EF766921DB1D2B43
-7AF063B20D66F4079ED13B0FA60EB782DBE17C5539A1A5CCD335F90B489E8C68
-95C28F9EE0E36BF385C0D554C681E5D927017B7DAC58A4C3442BD015892BB7CF
-51CB250208CF5661918B5098017CEA30B5C0402C155D4A8D4935B92670B333E9
-BE3154BAE9CF9BD47D79FA369216E2F3F0AA37DF598036400107B60E25FAA284
-87BDD4BA6459617AC77787137BA30F0CD07576E66527BF4D39E39E4AE54508DF
-351035A3A1BFFDFE5BC76222C8797D78723A2F3A69042BD31ED69F88E8F6C68C
-F0D8EA3F36AFA8ED13EBB95ADD129E21932EFCE965F89A399970F30011AF367B
-3AD8089D6B51E0DDC6B95F56435610DEE2AD9D8A2FCCD9699663523754C23A6F
-774F44816FECAC1EF43BA3F9A1D69CC5457482E07B1976EFE7A7FAA60579B95F
-8DDABBEAEE10353D72759E316932D064EF132FD0517BE7009431A5C185CF7A1B
-13EA10A69449674E950ACFD367713348FDBAEBD12AECBFE70C4B7FEF702BAD2B
-19DB97450F38E73B2784E98FBDAE84D2C3B1167E8B85A1ECAC09E62D187A3043
-ACB93A5701AB9E66F25BC7D103DEB8161FF7DE5CC957218F0D279723DA4377CF
-A08BB2B08218D5F62D4FE80B8EBC3B8B2D0847C561A2A8A1F09EA64AEC9281D0
-7BEA4DF7C7ADA40809268E1DDA46FB41216DEBE3C971CE51C367773F7492208E
-E7EB797235FD349F6BAD6D6E4F99C29F5A6C3C87D6662210AEB92C0FD64B3CF6
-AE2DF93D6A6EFA27B976E3A91BE80CCC2E7A1F2B90E1058F8AB9FAA0CF87C15D
-AF37C5EEF32ADACB6FDE08EB99F62F9194328C09BE10B390C349606AC58C167A
-15728318A475D8F402E294B0E07FBE936574A0FA09EC4F829794285AE3150269
-91D07377024ED8EF474898744B82C693B8D9C91E1A9011D60B34391564A747E8
-57EFD30427B4001470009229591EA924C547FD154E16646DAE7BD115B0C8E3E8
-BA8FDCDADFF9A09639A4B9FEB1B9F5C00CA5C87C7C04AC37BB7692689C832071
-5FC338C4E5B448BEB3B9F60394B6C8362D523E10B2DCDEEB70ECA04CC1C7CCDF
-2827E3A40F34B70247CF6C5D3A638896366D4A28FAA2B1B98F865626C69039FF
-3D54638C23EA32624CF10216A10D83BCB734A09575AF1B41A26B18FE5AC7C89F
-64B70002CBD12AA01EB9BB97EA993BEA9FA225552AD79B23ADE62D47C48BE023
-AB1ECD12E6D825A62962C41BC108E8E7FB37B976A4F826C12A59E7CE61C6CF71
-41F24BEF3E29709C371211809636651F02BC08EACA9B0AB2632DBD5D6E756953
-5C4145A7A3A81133D237335D202DF3673BDD07F679F650C67066ED300205584A
-26E444A3731355C11FE972E181D9C93C6C29CB8CF542CAC213D9040EAA05889C
-8C6EEF27DE0846314699DF54E99FAE310F11E3AB9005C432E5208D8BCE1A37AD
-F2D7F3289C7C564A24B951E0AA63BC60D75AF80428FA27EF965A1600D1A7D357
-935589477B0B5E12EA0512C7D219561F91A9BC95580D4CAEA7218F8B1045D6E3
-FABEA4A25ED4453A7773D2C314B8F156249CA4AA102AD02343E5BFD0396C07B3
-14DF0108D25FFE8ECFA22D7C5DD91D422A399821E7D910FC87B00544E53AF711
-E98F45C4329FBDACD3C332454809DEAB801F6DCB9511E92F235E1A17EF8DC8CA
-1C1B6217082CB95C1A605D7835741D3DECDE9202DE38392B18AC147608CFEE8A
-BF21E6DE2429846EDE6CA2D573C1506039E9AECF0A52318E992EE6A2F23469AE
-C0CA4F3F90A79E610E4928D95D0210A30E9DBE65B841D16CEEDB1D98FC42CD3E
-34426D5FEDC316E922F98EDE044DD192037787704B1206A21F759DE304972B60
-36115A6DA1512B38FECB759432F3A3BCF3DF0376B5F8D478DFF2BCEF69A3BF3C
-7A65C734EB54BA16D2DF4B7D12F646DCE4FDEC0BBBCE02A623EEEEB4C6E81593
-C0A3731B901C2D65F353937FB0CE821490398DD73B24EEF7943CDB0A1FA1EA6E
-6CDB64DDE68377298A655116C02BC58E7A1401024394FCB4A4781BB0ECCA339E
-7E8890D1C5E5B6549B5C7B42E3C1FE35703B21906A0B9AD51EE5117FAE9515E0
-3C1B82C57BDA12592692CB93370742E5AE20601AF5B4EF353CFA3EF5C92FEC69
-49EEBA22B9129068DEB74C4D04756695745C02DF963F12D7A256680DD052B070
-CD7B9EBB05015170EFA40BE9E5C6A3B6CFC2C2F2A2CADA796B837E0E9E308551
-E95A5D6598D332806D7E1423B0D572961949E322CA226726FB20DB1F25DB537D
-3579D615A955EA323132CF0DCA83AEA15A738111BC420C200067379B0E90584B
-7D142B52915DD2507477E6B6026CE3F55B42B6CD45263637D232FF9106934947
-0F31918EB3FE1AA0C56A67102D3341551365F0D02CFD324627C4C1BA77E9302F
-673FE00CAECDD5CDBDC142E7074631C26258B1BC4DC5301FBD06C5CC46ECC9EE
-8A3FC96AF26D9FAD776F4CB4BEA8A76362BA77AA07F4AF80BA17D6AFC668FAFD
-4444E78E82FE7D70226125C15388F46D723804D215BF2A16F7C21AD0A632998D
-E9023CC75FC816112850565757C5E537BE8AF1EE069C3817CC8C4FD85BA8791F
-6CFCD13667DC618DEF2B7F6CB788D8A039BEED888E4D0D8C41E36012774A92C1
-1B9D1A7343CC7513730619F110C055D61A4FEA3666097E27626F7AF00D63C49E
-C7B65540B1315CF48871455762EAA5EEB3714564E27C3C3F06AB0D5F08152B1C
-3FE59C125EC1EC478957F9C41523DB63EA844B6BCC3F37A7AB39780DA0886F21
-F3DF1BA3D37580DCE6D4E9A512669B1864EEAB35DEF3FD4A9279394E1E581020
-6FC27F2DB0AD5BCF04DD864B8070AF99E37440F80A80E13037CA7C146BE7943D
-B9BC86AD2B250657F97C7A96A551326980E14D16B5470CB75801581F8179BD05
-5A87E566BF2E2BD81C3CE1156E54636F0C0AE68AEF10BC74CD0A3B6DFAEC2970
-2C23166B8BC41F06EE48DE5D6B187F25C74A5A8C6A464CB9E3735320114E9A39
-00923504771DACDE90073F2DA7BA91E9D86B0660897BB72BE5D851F5AB62C6D4
-5709A2DBB85801A8D7FF60B14540305280E53C605121A863665E0A2D47D8A31D
-173372FF7C179A1D1A8E4F6F9B34D274A94B25BBE087C657E09EFC6BA43445C1
-70FAB6A3EF0814094FBF5370382DBC64C4F03CD96364E047CFFFFA66C2D4F478
-9280BE9F6538BE45898F52E2F05D58DAD8DE61D096B08D5A80A65FC46F8FEBFF
-C7506D9EE411E3D68BA61C3B768D563FB9942E0DC5DF82A6AD090D514D682ECA
-C1F50E14EBF58D3E1513909F4C7CEBACFD88102670F5EB176D5F53C9C92C6BC4
-B62C55E5555548B1D649D9A23EFAEAEF97EC0C3C627DFE4C8FD0E1065ADE5A74
-856863FEA0A73BBE28B5EC450596006508EF8FD468C1E2700D9B328684ECB780
-3167104317B143F059A53FBF64E4B7F7DC60B7701AA8CE4B5ED2A6AC991A1E99
-BAFA89A16DE0E3A0AA33022B87D694B3CC40A9D0B346B1080C840182A0917431
-CC2250854A407D83239A811130EF7EA6841A215B02248258FF3BA66DAEF6E137
-088980B04FC658DA0DF60DE24077F71318AE06B30627C3A638D6C0B2076D7A04
-5988936B9CC5ADAA2169F739B8F54AA91B85EB119E5E6894BF4A76E74F96F3FB
-CD6A3E96E85567581B91BE4A78FE90CBB1AD177F3A08B96BEABEEA5BA017B545
-69643B523626A76B823F8A010398229379FC051B846597EC174F3BDBE86AED57
-D29BEF440D0A458A51658A8F11A84D553ED15BE9437F4F0C8D3EC3084F0868F1
-C8E36F3E97E657F815560E470E8BAC98AE4E40DF2CEB35A76859083046CE172E
-C2F0DE76BDADE3E6C9FEC16F42605A41DFA748987D9196C3A8895535B756A37E
-D9E8056F6AE08DAB8BC625D127BD2B1633FEDB2DE282A2F22C0CC0CD45D7DF8F
-6735C77DCFC66730A8D0D5C802E3D3E8A2F7C95BDBC769E9C8975116F3B97C59
-4F57E6CB135B014E34E1B2914AD2C4DB41E573730783F6531347F27077A1DBBA
-FE6DC259D3CD70C36CAD4529DFFD07305D786AEACC8BF3C4D3B7A1ECDCD3C4C4
-0607418948E6C8510C9CFD3E2B93675C81C33D1ADEE32892A47D92A29BB8F04C
-278350E660667BE6139C0C8E1794FC9AD2099F3647BE96B1CBC8BA2F77A0AEFE
-97EDE59D9F9550FD3952449BEFEC5CD25632998EA8E32DB16E6C93A83687C853
-FEF32A49FF372CF8E580CFCDA6BD6E3BD60BE8E652FCE38D54FCB4F00055EC0D
-A41C9085CA039DC00843F9EFC88D12AF8C8826822464926023EB66AF8ECF3F86
-2F0488DAEA9F996FA25E8C8258FCE63B3A6C661BE677D165F65EA67B152ECA14
-0D2E61BEE481BEB1F45F2A83A96E95CFA2E2D076706320682B19F1547E68413C
-581183B679DE75B7CFA694BB4E9D032D43AC0F08AE04416A60DD62682D30838C
-DD4E0897E2D8A178F4A829DE0783312970A8431705CD2FC6DBFBF57FEF332AB0
-5473B356B7E2AE91BF8D1CD9D780FAADF246AC930C0347713F96D82F1EE3BC2E
-F84A6CB140CF7AC313F34B3C1E073501607447C8B8324BA5728A28669B5D44B3
-7F9B38562E61D74CACC250BF9EBC2097167A013338D44F51D036257398267560
-5B4BDF8089C59CC50704DB35FB7EFE08E51F6A7CAD8EEA51C4909F8B22313881
-D90C6CA7CFF8A4135330BF780BE40249052A29934D57F83F6667EEC4A7733447
-B84CBB016D021625AB1B40F9AFC0405DBE0D7394D46595613CF234CD7BA6979E
-4AFFE8FFFB005B3D18A93A2DBC465E0ED90B113DE484084914B9DF7EBF44A678
-AD814A4EA2815C3BB1811109F500738F860EF4079AB3E826C2F92980CDC7F942
-0679A6EE279291C5ED84D53EA15B59EE47646DD51155020EA7DA8D4A475F1266
-18A8C879F4CF3D0562E61122B59A087BBE110188E634685D9E87DC0E5A8D06BE
-98AADB84E98A4428B25E66DD2AE23AB185D95D62ECE4085BE1D4967E9CADD5E5
-EC92BB488AAE7814EDBFCE5BB7F866668CBD8AF904FE4C7699DE9764C96CE74C
-17AA20AC60CD480F562778A95E025A3B98233F6F7EBF2F0359498A389D0F5B55
-8CF1686AB3F1752B18B4A4B1D873DD8A35E73B3A7F08BD152DB528C52ABD9D29
-9BD2DB7F07658D1F7E51D9038CFE60DC9D03FB2B6634074B6DEA51B63A358B58
-1F7096676997D5B9DC7F1C68008B0BBBE13D2FE4CF2BEC425CFC8230D895E97A
-C2C664A99AAAF37B627B33A57B4131959FF07E80E7D35DC9F6C0C216781F0F63
-AD3396D9D197EB54E70288A6EB1C63DC0CB185F08C1262EE0E63ECE4DDE17EFF
-4C074B28BE3419A6A6FB04E0ADE4E61F54FDDD69AC02DE30B9B419975870BA13
-0ADF9F2658D799E9DA2E4AE93C75E0EEDBAC66D77F14097370BD22D009BCF6D0
-838A4434CE9E65A045538BE825C804732D0C98615B724F8B1B6F052AA52851CF
-7ABC84AD999A9EA32304582C04B91B501B9B3CD2A685B9361F21BB52AFBE0496
-2C9DD63C1664BF0693DFDFC3724DEAF49F6B9025672BFC12BA194CC5DF0EF962
-18AC0130436D9D27F66B1089C0B59264FD1A388B545A469D57D20BC3864534AD
-73C748659935976CB0BA8AF81A159B4BF95EDA9C8130984631F1F4912412F02F
-BABFE838EE13FE744CED03E6914BF43FA6DFF3F9314F42BEE02C6663037A3DDC
-6BBE88130E6525D2191EEB828FF6D7208FFECB77554DC41596FC1EE24FAA32A6
-01D701BBC23147AC135A7AF22F8E82C5FFC20478C097EF9DAD8D0465D271DE62
-012B1026F6970C05071ACC483D1B8A0E759152D94E9470EC560315AAD8666A16
-7E422D75CA857276B0679AEC89E78EB6E5603B2C6588A27EC513F6BD48F839C1
-3BD38C5B094110AE4DBFBE728CA8DD44249512B9AC86254D618F9CEBA7C6C544
-967DA6AA44DC0654E581B4CB0F8F739AF8EF2A92B2A359FA4B3A0EA3FF4A8736
-853D6CDA7034C13AD2DB0ED59AA9E6515227ED65E82B0A149F68AE248FE21B0D
-50CADB74A015BA18F6C1E534A626C4F50A379E53B18CB8BEC38298B6FCD95A69
-601D2508FE90F45AF92D2AEFABBB0D0AE51BCBE5AAA96393328FEC03597B4415
-941F0F2DAC79DAB1BBD04F1B9B8CA189F72D15D29C3F7C491FFBE9C991CAFB48
-55E2F73EFB9C3CCFB791863AEC846799202754ABF7E01158F6DB791B8338264F
-0853D06D1230D8B025DAA6095C9DFFF2E08829C7BCA90F6D986ECFDDF424F532
-29033647C954BA1F9C77E9955905867B31E45751F240261A3DF10F3F175DE485
-D08E903475856918194BD011FA5BCAB3C9923CC8D8F78B688E7892107A3A27AF
-BDE5CBFDBB4E29B28208F66AB1456452EA0E36F75D6938312C7D160957E3D555
-E2DEC5B209D8FF62449CBF1DD1B5D7A799167AEE4DECD8E4FF761766AA094FB3
-7FB7E86CFD76979667AE69886C797BFBC2E5AB647EFDE080AAB5B1AF6A20C0A9
-BD705D2B6AE86218C50829CA99D4EB234CBB0476F32A186B45EE45D41785AB77
-434538B55F485CA58FFC35EF51C7C830EAC2EC176F816A2B3F271FCB610BBB24
-76C36D8EA7D5F12845DCC200227D86A640CC0D70F59791F6408702AC7D1DF14B
-F4CAAAB32F181BAC49255BB853F6B082EBFD1CA577F6B6253616DF067F003C65
-88AF610C5F58E8D91660F51E586229ED325C5AE4C82E3187B70E0E59AD7B20E7
-375327EACC433FE34B699AFC471832AECBF19488FE673BAFF48409D24B4AB58B
-1C8E8A561E3C8B28A078FC161655D90609B014012CFAB0F5EB875E9A83D2B88A
-87E11FB574749EC6763D722D8CBEB5F98143DF01AC4FAA1A3B70844E24C92A82
-C864731DDBB846D8BF01C0805A24EA471C6E18C34C756C0EAE281A9F00AC4948
-3D2CC2F22C0637FC8DA5F4A9BBE085757EFB9CBD9E54F895D433E69E579D8ED5
-D8BA8C864142129E0AD170A7D4544ABD8A802191EAF6CF6F5E285404B7D19B38
-093B52AB8112001A8546DE62C64F2605011DF6E02C967E02E340F1E9383043F5
-4EF3E7E6DBAEE40AD431464011B25C8078DE28346216FFD394087F322007F911
-1EE21C688102610F6394E3BEB9BDDBF8A36A1273D6316A53B9EBFA037D6AC637
-BA0B36AAD961061CBD3C31463380D6D13003C5FA5F68F276468AF2CED48A6CB9
-387AE5741C7C79252928D88B51A853B00BE8C029E8B8C58F8C92ED4C74CC8943
-B4D89282E7160D532F9F22007312EA18C33A848E4248204F776F00D46D483259
-CA0104174D2F5DCDB64CCBFF60977D35A6CFC2CB3441EF966D15C7AA462B1737
-0079B920361AE754EFF71DBEC68B21A885AB9A61C653841B9A9DAED199F33089
-C560C28FA29073899466B9BA55EA63439B4D675811D5CED006FB6FEA2674CBB8
-ED75493173B82B70ACA4C66AF3BABDEB0B43F1E43583D64EEB11CC16B1F481A5
-68B11795DDB67CB33A03025AC2B215D5379835A32CE1D4E327EDE5B53FA360C0
-399A30E2DE611B64862138476D68C9CCF899FD89B5EB8E155733364FCF981F0A
-4E14E79325210F6C3B9C594C1B8DD2725DD694F7AA30A48735D69434C650AA7F
-563DAB6D793E70767DDF0EB615F44E56002946E3506686BB09A365C31A2C38C1
-E95E601A0987902A54BB1743D9EC5A5C496FBC987D796B9C75DAF3513D0C2685
-F315A7E3C61D75C661CD4A5B49297B16C1FB62104F0AB175DA178EAF5B63C026
-E99E23AEFDC25D1C93BFB7C9182B58D4A599B484616286CFC0C93425DE11417F
-7F7BC7B05E6F8B2E3E37383BE6DEC107EB08971A6ACCC66AE172EFC6F529DCB2
-4D478FA20742410A8804624DB03A90C6BDE00B38F92100E065BBB2755618A570
-BC84C28EB5DFEC2A4BA7EF6F4A6B6DBE18069229D912A310DF592878ADE6D3B8
-4684C42D5DB517E86265F689D54E870E0EF9D64EEDD723BB9F99B820EC790FEA
-7BFD5EAA848D6EE17519EC82A9070B500BB5DB318509F72B316ACF162A1FAF75
-E5C7AD5A8F7A2CA610C1A78DAC995C378C38D73CADB167EFD61F1410BC166FAB
-BFBF9C311FBA0040D77848DCB1B093D7AFA67C9CC400B1CC2790682D6077A400
-091915F6F609C581705F095BA8CD132E31341168597CBFB9CEB29287176EB484
-689573754C275F67B2802E9614B665C945B8A18B7E3355A922BB45011DA7251B
-90812D8C817AB81D65E3D69B00F9236D5CF95CEB734ABF83478BFEEDDA250CE5
-859AFE01BD9375719F1DE48B9700AF63892C3D5CC9ACB84F07D77B68025D44EC
-F6E08A113DFE85D935832BFF21A193F96A57594B79A69C3278794F3B96943F07
-9A6C629AC9BD16924E2C18268F6482A73AA98B0FF28E9B8E1E2932683C155B14
-491257A7FB094FEDD7501AB7C24CD11F3B45593702E4D462BB73AAC8C6D85A17
-94AC384C6B1AED89EA4DA938A789C3E19C19447DB3219EDA58ECDC1602A8CD86
-7416B777C32251EBC0B1135AF96111918ABDCDECADD7BA4FCFC07EBEC5F29863
-458D30E5707343040174C85044FDE203878346FB14007EBFA2D7548E7ED1790F
-E5CAB33BE24FEA0DC7B8091FA1DD58B303A449015E089FD7D0C3A102114FA2BB
-72213BA3EF3D1981F4DFCF0B7C3EAAB740AB77FC4401899DB5CF7D4AB0D50B3E
-D1D050B48D4DD999594B576A72C6FADBBE7B08AEE834858101054CF8EF86ABA2
-F82F97CD18CA9E5D5BDD5C9FE6079531EA709F6E12E8633C8335E1A68C1E639A
-7D8F2916118506FB51D79B02614CFBA56C44F6CE83FDCE29A606FAB6E06D4AF3
-D9819629213892707B1B48CC0FBE495FE8AEE915CD7E4F3E107D8427C710E6EB
-5FD126FA9ED1C43F6EBEB2771D9179CFDAF9532176AD8BF820351A6B614D2B9B
-DC0391C729A2F535326FFBBD9C5859B3D29F494FCE6D6C49E9D1AA97FAA8FC4A
-618E25F00BCBC742F3C9
+D9D66F633B846AB284BCF8B0411B772DE5CE33C33655F6FF751F340A8D6C01E3
+2E02C24E186BA91B34A1F538959D4450CB683EAE5B034D030186901B458D3777
+6B3942BD2E07121385120248891AEC2EB33C4E3A0CF00828D0F130C31A918C18
+979FE94379C648EF21ABF659253E43CD1253866F157F1DF85AE7E8714F061B1E
+ABA3AD094FE8D6293916FA82EE4F486C7E513A06D4C9BE44306A8287970B4ABF
+B6D1F9274A5A0BB6ECF713ADBD1260D5D6C4420D357FD486470A74B2F0621B59
+A9373ABECDBF32FA68AABB66FAB0C970A3354A335FEDDA1C288245E6C890B8DA
+3D0EB953283ABFE372221EEB1586B0167F634E3F29CADCAB484B81A243CE1E3F
+D5106AD6BDB1AEC91123377F816711CB9D5140120FEA84B8205B79D1569509FC
+6B671211985CEF51691C45A168740BD826464B2CB0ABC575E7D453161328F80F
+3AF1C99EC219010EC6C95E0A8D1909719CF18BE424967E90DF67537220E60C3C
+4345B154D08F9EA684710E659DFFB0BA1B7FDDCD519305900A5E1CDA219A6C90
+DF8BD712A3686DAB90344E8784C7A9AF3318550285039B701B9FA1D3A3C3B6C2
+753F1E794A3463A173C99A9EC0E2AB5737134CEC2C97CD6A37E38692ADB4B131
+54697B7BBBB23680C72CE96066D8007B90AF0FC5958232AB4F21826691E9874D
+107F47DAC1026298D787989BD77CB43A09FC95F6997DB00D8483AE9C2716CBD3
+7CDF02DA34FDA2F0754ED0968270E118DDD8BAAAA65C41D699E2BCC2556AA231
+328187D2F50FD518CF458B0BA1F7DBAF4B231CFD61D5DC56335B53C3013BCCC9
+85690E19E992ACE55EEF2BA7A75DEE6DC33933C226FC1494269B7CA4CBAE987C
+2C787386400172AE3F44AE47115F4117EED866713BDDCA4A7AF658C49F913CB7
+308635000043F63BA210410A66E192289592882C477B2EEA0B2A339F0E7CF450
+CA0EF79D3A6C28598825CA03FD688DA60C95EF707C6E67CB7E57DE7A80545195
+739ACBDF27069F34C9E0216C3D17CFE7A652B910FCC9B9AECC2E646809C22D93
+FAFAD465DE794755AFF5BEC17160C9563B5C51D07022E2D3A256FB5CACE131D6
+F4B30F591A0419D957D8F0DCAA0A8D65A8D83422AD7C2613FF13A302E152B312
+3F1ABB45E42084EAC894FE335C07324849C9736D00C872C4551997DB889AF17A
+A52C5AA77DEB548B0103B77F65717F70B90C1BBAEA7BCB4959F32851A9882A3F
+55673F24103D6BF7FB3AD3EC3CC50FD8FBB4A6B13C3D278174320713A7B327CC
+A71F01E50840B33D0FC3F5F6A6F2B0F2D0E38494B1C73096A430510F927235FB
+69E931DA8CE5415EE88D0248565E3347353621A48F7948AC9EAB5F5057541B50
+82BA955D90BBC82E582FD71904445A59186022FB928015235B60830DA59813D0
+8DA3FC306C43FF8BB2CB6772B1F7BA3C1AA4B2343E7DA7E065EA53A4E5E28DC8
+0790F2D5CFB203CB135A08DCC9702B59A63290444F202756E55B9FB053F773D6
+0F69C63E74DE593E49186FF4304E8FA76C3E3006358DE549E946DB69431981E8
+1261C9C9A884E4EC708F69E6AF5D22C5BAC49F2AE85903E3D48D03B7B97054F1
+D2937A0C685D912D6D20A75A77712164DCBF8FE4D5460DACE139C5A934EEA09F
+B94DBF168A4BC03A9D689936D833018FF43837DF9519AD10F357F00BC068E737
+170FC9FC6715165F733A0B6FADB9ABB48B845167DBE6D771C916577FC2132863
+767DC6E3D460E779254194AA690983184D934F5E858C1176B3862B69B42EBE7D
+EC9AC4E020085D474093F7694C8A8C2025D4B0163E29320C384D62A9F3FBCB1F
+AB5A374EF3DBA48AC2147A207AEFE8B78BECEBC55C97B538F3A0FF4589D171E3
+826342C8A5186224FEE54E4C6AD5EB02BCB4088B132FA1A48362824BEF161235
+8E661DCFDFD8429C65CCEF63902D0E07C2FEC1DC2756D942F13FECCB7E8A8048
+345338F24B7808E46A04A915C111F939E2669A12FAC0BA4F74B832EAC83EABEE
+67E2817C058E69C2010F2572FDD15194CD8DF0FE9F827D349C0444A18D1A86FD
+802BC120A5114FA3523C221242C7E767B0AAF6AD15DA1561CE8EB18A2401D71E
+20481FA5F1E247CB5288F47795A6A3A3BB186E89EAAC4A54AC91405427136127
+5B151203426830F7CADABDB3FF63B40CA29CF8E667E71615869978E99E6F3F07
+0170EACDE3DC62DC05681D7680E2E96C30002AE34A4E5EAEDF88577601A82C36
+22D625A03B0451D7BBAAAE0C396711500E94A482EA787495073F16A76D1657DC
+4EA7C7B83BC30CE7F145B65B6E2ADC207D192CE3B5FEF7031F4BD64F57E1BEFF
+CCFFE06F1E4ECA48B442DF413766A70DA626359183A9B24C70419487423C816B
+4BCB067E661E47E172563090D6328BD738D2B0FE41A0C1D7A47576A79BAFC880
+0473229D134F998909898301CEF50A82B627A9A06DF59D0B9C530EC5D877F1E5
+220D3A1ABD2ACBFDF1933F92B3137B22B9F95A961D93B729307749A50D8A6403
+7AD0F9C40743E39B8D198CFCF7C033D99440D46D821D97545B930EF92E7AE005
+27F2FC766FDD4790FD1913C7A13328E73E587618ABD9008022C5C6C23935CEFE
+B5ECA2CEBA1D25DD846B48423F7186E03B1F61C8F1D5AC95CE03C83B2F221300
+7A761D6CB5F7F9251D3F9A7F4B25B99EE7A1347ED3059A811A82A35A033E9B07
+A4FB2A95009576F48665605C478E5F6C1B135016FEB4AE6A6BE4B4359836E04D
+45AA11366992162973FB6266547C2E570B8F56F6D992D2C0F63950A16839FE10
+F56E59D93A37573E3268C5892C9F3358753D1FAD6379E82BE740FA17236E96F7
+C53A2FF785FAB86AD17EB1DE8A6AA9C69B91C9D9B43B5188E51F6939FEC21B65
+AF17DCE95DD3BA4F1DD51F0BD5E5869A1ECA7398B6E664EB0D189181E9C23012
+DC1E54C146842A90909DBEC03B79B58909205F2CB2A7F83C66B437D7F7DB9781
+FF0C67F004E979C95B706D8D85255CCD827CF6196D847DB380B56980109E96CA
+997157BE78A4F758CE59D78158A854EF2C20099438F74777D3B0298D45BA86D4
+3C0AC30C984718FD62ABA0567AF0A70C1DD41953E3E7212D5C562085177E650A
+2ACD49940551E3F7619B4CC31DBF67AC15D938619B95DBF66E6D1300B1BB8605
+31C4011379FB5388CA49E4A9BD6C921560CB8D513F8716A0733D2A7D77E62D22
+A69B54E9048CA168D210816E613CF6357706EF6B118A1263B858B7E19AA98891
+43BD675B06C893579957BAB97199ACB82C080593ECB8B66A7334779CC16E4D0D
+4AF365CA6AF9727AE29417B61A5FD52452873B1D666044F8E7C1F6C6AA3397B5
+94A5780F4005FB5E41698FADD1594B505A58253D68D2AE3320E22165D198050E
+425820CC0A43FF1D61F168D87CDD30C14D387610B6CDB63BAA39B3EC9B3CA616
+FF1CC679227749DED3DDEA26B4D97C633090DCB8D8A6E5E07E3579E4A99BF1D5
+51E43D1D7F139C9CB1D76D8F693A3F23A74EFBE79F01E0B850BC6B6C7F62C2E9
+859469A144853434895D73DA6BD2B348A48BA80E79327ABD96539F2EA2209852
+E1BF6B0B819D7C68A9A1D0F6F39416E3EC4AC21DCD3C51D3B5B8D417EFAE165F
+2A7E0B76E558AC9F685A76FEC7E3C73CD607D9025DE6113BE5D0401887A53910
+82A813B026A502B51D484797D9D7E79A25B6624940AEDB4A15F2C73CA1AF60FA
+22D15BFBF268EB044FAE17822511AC6580D1D74DBA3C3335217780B29FEE792D
+200B00B8CD888A8BFF15D938FC758BB5CD9B3E08E1AC6CD1669E663BE86711A5
+892684DFCAF70C11E803164994BDAD89128AAD6461D4558AC2ECA3E05EB56D32
+0290AB16A6DF7133DDCBDEAE89C6CD83552792E23CBF567D57E46548EEB0A140
+437492B53C14419B6FE7E64AC23923A9E85F56A9DF209DC4E6BCAF1E045F9CA3
+BB904BFA150F4083C18B0CB5580450CDB657EA768E71222C71DA911A722AB9D9
+E18B6847F417125C40EA8A0CA1F551A4548712D098209C78DF9C3F78605E5402
+DA2DBE2218E49B819296D5AC88D17DDBA982E171733D1E9E295B3157C9B90BF1
+CE68CB185947D1E3D7544155B741296D14B064BEFD3E6AF25C74006CF6800551
+80FCAAEE6FC9105E1674EDFE68C45617D8D3E2264CD395EE94EDD017EB85884F
+FDF530EDF4F3F14750CA066F149E688FAF8EF4B5FE6AB515CD298E8D170346CA
+9B32BAD1D86DC147BD12EBEDF6CE1E749C5B48314F512470A568C172C35CFA41
+031E34586A89404CB5372D7B2C7A6D96F420D4D7C2D4C08184F4AF86B4536A90
+9367598424112A7B05D7107B23695CBCD569002290599E0FF4EC5C852C31F5F3
+9BD56BB840DC17DEEA579E7A7A9F764788D4E3774BD523D21267869224D68891
+4523070E80A123B58F7B579866332FC38A41A5915EC06F2D14FBE4A6CAF59AEB
+57E98D661637EBB885AA5D74AD429CCFF64E5149815E7350118E6385F4C74E0B
+2EB474A6DED021D429F01C9B0634A09250C40E22B3BFE1B7246D18116D585F39
+0E06E9B5F27A6CB77C8E9462189CB900CFEF08F798CAE15FBD94587F33816EE9
+03FB2DA6826EB69D8C284AB9F7B00630D0420EB6E35E0E288BA25F5C2345C067
+22412633898AF99C2FB232D1469025BF262B567F29A05F4816FE8EEF5F02BD79
+06202F6A1E3E5D4B3C91BA8D5FF53D5136BF70E5FAEF441A7310CA83721711FC
+39EE48BFB2FF287234B1A6102AF146B10A632A53AF97E11FFAC3A2A86BBAE3BD
+E0459ECF0305366078066F2CC628A3918E775E4236651B3D817AF1684B07A163
+A0142D16F55D2FB5F2255A8813B8E54EF3E801E95A4A226AB8C0476AC5EDCAD6
+9258ACB6F7C0CBDD298A0B816560622A1871FBE2FAEBFE697A8216A0D8FE30C6
+B1BA6C3E975F78182743842E7F851064037394142AC91B2530FB1D511EB20F3F
+79EDD8B7E1579D35F6E7B2883C47A46B6C1A458BECD6BE58AAFD834A7D82A553
+2FE4E66878E4699856DEDE964F454638F768AEDB595A883E380408F558015FB5
+8720954ECE2704AFAD4D62E8BB2657C4FA920D72248B3F762B2F12D125B796AA
+1C4BD6B42D766EC1C9B2C7AA4B6A3474BF753742DE8AB76D0AB0DD9A20EE2DCA
+0F34CB25995ED3183759CA83ABC32B8BDF0B06EF169252587971F7D37463BFA2
+BE36B2E45559DD73DE7CBE29DE92B9BE6B9F8093F934BA311D81E18A8DA92FC3
+312E3FAB43C53E803975981F0076EBB8F257C123908450661B6FA79E7ECE98F3
+B0A94E0DE3A4DCC8E0FEC106CDEDAA297A75BF1E40F3C2419BF72A644F452E2F
+9A8793810319885EB3AB23B1E80E8B62A889311355C73722C18E62711A7E6A16
+A5B923408444B13F6522FECA9A60B067EE332B83E1A69CD835C9D69B5D8859D6
+91F9276863D2E2E8193641E4239F4ED15E2C482C735BF5434BAA454EC2830C1F
+7CF766DAC9E924F17F03093132627673BA3D99DC2DBFC89E5BA032C16D3C1C8D
+78B3C464081044DB53C7A29E925F4157EEEE928C8E28EDA5F0A4BB6E0042D8AC
+7595C350645118172D04FBF06B2C9A9F3603A54B57999E2960C993724CCD6A09
+766BDF73F66E07FCA9BD09079CE8010E6CFECBE2E5DE1EA4E280AB78D5184C11
+016385007CB5AC0BC95955A1E88EA1A1D8EFEA886007708BA063F556D9284D4D
+C764E75CECA51BEE3D35DFCEBF6175953D30FDAC00F23B1721A1DD577945B5E3
+8176A21A649D907B5F63C71718ECF32ECCF1B26BF15AF694F1045CF98FC75278
+E9782ACD3D83CBDBEE690D29B3176E745AAE436382D258CB22F3DEDD02E441FC
+6A9931AC2F61156DE258DAAD5EDAD41E6C0DFC902173168BB4F51DFA7EA615C8
+B0F92FDB118378CBAC3D56B6B9BB0883C0C14EAA67396AAA7987222A132B7959
+44FC1E9D6DB6D549DFBEF8D2DD8C53DD3B66935FC239E74E2C440CCA13C068EB
+C4A3B69F499F573D076E2C92E24F2C69B806591B0807CD903E078683854963EE
+5125C3640860CEF37BE186DB781475554BFE6C528A9633AD5772BD53244E24AB
+42CA2D1123AF45FA257940CE611D83014DF04E60220E9AF27CB2A2247BBB004A
+F5722A5EF058FDC7DC2B6ED1406649DBAA58DF2ED3A91483D60F11C4A39BAF57
+CB1E320A987B790672CDD3E3BEF4A67032244DED2FF4588B2072CDABFEB36009
+9F4BCBEE16F811A44CEC77F8AE873C90C0F4C975E51014ECBD45A56A63F034C2
+82212977023A132E5C88AAA826D841FDE9CBCE7A01E4B6F0EBDDB9A69EFEBD72
+0B41EDA807CEDB791084047624BC11CE10B7A0A311272EFC9E013FA374D97EA5
+F7998FD908748CA72D8CABFD0F01220C2114D3B462B22FB71A23B284B1CBC7D9
+EA20BE71F8ACCED21F096009A14A7C7B51450BA51514707EB46B9FAAB31CFBEA
+E1DDA6F5D9AF0B6E7D05A1EEEEECD606427B0F2363D1B882B50140466B9D3CBD
+D00DB06DDD1BD4681E367DAA4B7C405C6281B67FFF794041738FC6A01D261CDD
+F6E0A330985F2CA782CBCC02B6F4EE5993434F656B91A51CC03B1D73FFA6629F
+14F6075EBFD83B702D8844A96CFB5C14051595BC7DB2218156A6DEDA5C98CAD8
+BEB5284D9D9F86406A8C1AE85857185991C360E5F44DEF352A1F301207BE94C2
+9A3A11BA468FACB3FA2D683419C44EFDD7C8F1079659F3ABD89D7F168B1591E5
+6105F9B3FA481BA953CD34CCFE73E427D3AFC46E5C58C2981198BA284DB8B37A
+6647BEAA561799877DD6858FCA71CA6003F2961FAA529906673EA94D82D78116
+4DAC81011FD175DA707C1E15D4B6FF19F8720A4E05E6E103E2DE880FA9C192BE
+C5ABE7C311C2ECCBCE8F9713DBA74AEC37A61C8F21F271B35F0F7C88B182525B
+A4183377597ACDA9A6E2F181725D427795B975BC4168A408D292CAA484BD1B8C
+9DC62E737ABC805C8FCB7E96454DA032B601345570EAE0379BDA84BB6D15D780
+42FA1E068A7D62F152B43B788513E13724666FAB4E2B4F04B0448194E46582CE
+7389BAF0D1DD4435BAA6B82AC305C04686B89FD51197C721D941BD2893596024
+1598E6C2BD84527EDA6FAB782033E4BB4F964FBACD96CAEC3F3CF89CBABF6B4D
+4D3AD14A03D4BE931632BB03BC2B92842FAD51A19A756892D5B978DB695D0540
+CC9D030C612E2B201D60D09F56332DD0BA1351EE62816C21A35C33DC11B37BE4
+D2F164ACD836A5CA1553CBC733E3B159860454B17064B4E22D3764FF6293BC81
+CFA3B2325C8E072857F6FF4ADAA8818247D431A28D3C5FDFBFB24A6CAA327AC1
+0B3630C84ED9F0D33B8255A3CAA9C5A0C79F7BF6BA3B9801C3BD0B30AEF7CCA9
+92F25E332EA97A7CC653C93D1497992D6B76363885B92ADE34C2A33E30A3B1A0
+57E9C16D8CEC189565808D3FAC92973C71CDE74DE9D8781CCAF88747758014C4
+5B62667D4D2CC5EBEBE77C5AD00C6A69D1819F5A786964501E077EB3BBEA52A4
+57729AEDF35253F7E1D31F2DD1587BC15CCFC1B0CA930DA83E2031B099A38158
+8D1849E7145AC74777A3C7136DEABB0C787E5A218309A65EC7D128147EDE3AE0
+C0AC039B56F767A22555CFCC12DCBC7F5A5A3B4E86EF5A69EEA93DF0BAF2A3F3
+7504F5C6A7A67388D2F9045BD755BEB7DFBC2EED679497EBEC808BE20FDCB5C7
+B586463BBB898DECCCF7249E9047DA943FAF0718A2050FCFDF8A4C2029FBA674
+EA64003AC03A847185936FC375CC67B3006EA681F61F640C3640A78D0C7FF521
+D477981E23E5956BAF42252463FDBEC49BB560A9428D248B0C5250CFA2A49CD9
+DBCEF73123C13BA382D3CF6A7B8A8CA3191D379A659F0E2C6E9CAFE9DA2AC074
+F622E397A2F7C73347364AE249B11AE2C34AA7F0D27B5F35D548D5AD1228597D
+D16A478C901D3A34D870BA39F770885B7DE62298F0114752435050E99EA4E5E0
+56B965EA185E8DF96B9FE97EE23DD45AADBFE02B427222B9FC99DA94FB2648B8
+46BD30F881BAD3820DCA4D8093BA0FE70E03482CC063B751439125623FA7AE40
+52DB2A380D89D5E37BF264CC73DA9A1540031587F481A0F146C6ED6F3F2957FA
+19477F075ACF64D424279612DA5AE02B2A140048386D01B1F30EADF2050B71A7
+993773D5B68C6FE65EAC53411AC6E7E26E49BE5FE1079A8BC565D2CEB7E3B896
+593D720DBF66CDB26DA5D8E533A346845E31374A7C85FB6B06C3D54FE3408013
+864CB0954A2FFC00ED17CC167AF714716376B789A71059DF2032E0E907761E81
+F0C887810337F52662AF43FA1A7528923B0A30A217FA184ACB73207EB3018D5C
+09EA88CA0873AE690E94D43B360D9C1070D7CBAE9BBA72E82EF9914D3AED6D1A
+5539585EA969F0A1407C8FEDAB69BA3EEE3097D5B123C5770D5ACBCB0882F35A
+E8A3E3B1FE3903A941EA2090266B60D218407AB99EEF38F18C9FA307D73E2F5C
+42F8C37E2F668BA6B0779791D8404E2B2CA52E28F0B34C85250B0D6AAF9D2DCA
+A12133B5B601D971345EB6D892B85FB971DB8C4A4188ADA6575DC6DC42D2F0C8
+4EB946AB47F487B6B4C4C59B2FCEB1291C386805C5B62B61FD7310A13B4620BA
+650DDF28FC1AF21FA124C16EE8ABB98904F03E7F49E54348B1AF2211A1768768
+D62E35EA2EF7F2756B58168F9FFB5785DAEAB324C90FDF6207E670DF277D6AB5
+F0924B26BCF52CDA2980680320314F41244B73DA6367C434B5DCDB96B6F0F454
+89BE7553B58CB230BE71B2C7A7F1D63C3B1E80C159DD941027EA44D54767355C
+6EB30D38D407FA1189474C2F9D3FD92F5CC6CECC63CF6CA6B33D77F08D274A1B
+0AD7C2DCEE55F1B425BCB98F24D0BD431A5BAF6F42BF897BDE9198E6BB331C81
+6B5B63F3604235FB733A882BA5464A3E5415341C8E9A2E79A5896C8C334CCBB8
+A2047CB4E6BB167BD586FFC4A1409B4C13DA0B84608126D10754D562A9812A79
+F2B3078B7CD1D0A37A192E1D58623331B582E62291B6EF6FE3C92E8EC9A40C37
+B251270944393FCF133426FBCE86A318E16141654DD7BB12AD46B60A05E86D3F
+14BDDE12FE3B17F9E2443E057FD0A25677D1F17C2BD87F84BA7D6AE3E7EF3EF9
+3DEB268B580A7823253430FF8D80FEFA0F9E4F66D0733E251E7F680B8B23B7B5
+A614F4FAEFAB880843451E4D9840AF7B8BBB6333E010A169528748AFBAE9A6D9
+499E221149C0AA19D536F3F121DF1AE056D3D0FF5C6D837BD8061153501F0209
+79076B4E0C63738C54BB31156F2273A327D3B6D0DDB5039D27D1C4020E90C94E
+4A4B156B32F28DD132D2AB4D9CFE18B7851A65BA965382B23CCC0915EB6847A0
+B14492B0405395BDDAB36C2205F229891D989196608455629CB3CD67E07DEDB6
+A09E68BE431182D6CE52CE41B8531FF111ECECA60A68E7E7BDB6B91C7B694688
+47786E04588AE7D21DC6F2309D492FC9795DD054C150ED94110A7F89CF3E92F7
+4649D3F4C778FBF02ADA9E577C5EBA24A1F0278E9D9DC5556A60EADEC068AC57
+5359E9FD0D2E3E7B0006127F95F333D2BE77C70EBB163EA9679207C76C999903
+50D76BDAB2DF0D6A506EEA9C952A3D28D419FB78CC64078CD91C39A5D4FCD9B9
+D135A4E24E373E24047EF1180D3BF51DE4167F3945825B7124198FCDF7432E20
+C35BE9B0C7C0CC194867C4CE9BCD27860826C14749B811E8FEE29015CD65E7F5
+307300B316054B7914CB7464E6AA37DFF4BD0AFC04C0E8BFD1269E2D4CB5A201
+785C32B6B5656A7F6CA6AD8F7C77DF8F70B8F99C88BD8D548E78986096C917F1
+C0C195F4CE7972F1354B95D1BD84934D80CFD09FA14F3DF37300B5E8C208C66B
+C544BFBF9B18AA7E27AC4E8567CB7188C20B1807BE56BB2B348C551767F40A07
+022EBCBE0749DE0D8FF1E2792A0BF2B84C940A127203E2216EA4F8689C84C739
+58D5693082E057B67C9BD80FBCA6463D9EFBA2B9F4D3C8F239C1A70D8A4A824C
+B045489E1C6BCD28DA4F1BEA2BD80D424722479D0E8A1A99A8B2FE26822D3198
+722E2D276A123A95128EB6C5C6AF9AAD213D088EE92917E0870179888296F4D1
+0FFB87A340D7F052B07C6274027559A8B3843F2422C3640848CD8BF664645EA7
+20EBCB14E9B15F552E9E793B2F5D7BFE849817CCDD9BAF7DBA26BEED536DF80B
+E250F831A12EC703AEE5ED6F5C688849B00C85AF124451A29CB67398FD3D4015
+C5D8824B7EC81F85CE9170560BEACD43ABF5EB5329A4E38431F243099B8F88F6
+58E8F6A7DF8AED9153CA90F9C941320750E5C26262BD14CE3CDBA9AED2270546
+24917E378761B5A96F0689511C12A0E598E7BD54A6ABD40AA4FE651AAB9DE733
+88677F863423C714476E797F4A22B94AF646819D91F9612E6E5CCFD9F7D11AB2
+DBDD3C8ED9D257E5A8BE4B7DF9997EB2ED23EBF4BFCBA1993796E34AD93C8CAD
+DDEE75EC199BF642C34BA24E323A7099C4B7D232328ED3C7A3BD476FC0B3D921
+8E773970ED221BFD47FC656BD14FEE47F06834C55C0EF960DF0265E847EA4421
+CF81FDFB40A4C997B1EDA3556FCD8BB4EB141EAF4DF853FD353120BBD37D4B44
+2CA1C1D5D8A5626870AAFD925B461A65FA0E2924A197F27B224E53A7140A83C3
+10A7F3868E4801C216EBFC5F8391A1576C69537686DB1CF7F2AE299FB03CF222
+6A38A57466A9C0DC13E9A8200649DA837A6C40E002C25114F0CFB3D2C0A9AF20
+C7B387856AEEE008AD60FA1B26179D95B3486DD3E5BBD096D4B105117418F60B
+26AEFDF53A815F712956AFAE0585B243D5A2B4AF5B517023867F57ECE2D538D3
+89804EFA77C0D9CE905A3303F19A9AB3B228A03B88CB26631814A36C27D09E56
+E965514293048ACF6BBAC80329F0422591F06637A274F2582A6BC59ECE5DBB7B
+7CB5056822A2426E4359DE632F89734AEB6F783952B007EA1D2EBB7CFB1C1D78
+7EADDF28CA76CE34F78E568B11AA69FAB64D8B0FC933FAD372B9EF19D5F31A25
+35BAF075193980F69141538B7E7586E8DB534762CBD9E95442AD17C8C2F438D4
+DAC23C5F5D772D1809ECEB13809662C6C8B97DCFA5AFD46C6CF3FC6F07BDD604
+5A4C473C7FF3ED34462A79487EB47D5BD4580E98BD44CFF016DCC942E831F7BC
+759A345622F5C65C067C83F7474EBEEF62E63F5B49519E0E1A7BA279784977DB
+C646DFE8D0AC7D78CD27B8F9D8E18A3A1C1AD427A85401543B0CE4F4469FE14F
+BFD02FEBB2050BD06558FEBA3F61D35AE7A0E49639DF68910174F41A20F5C839
+79545CB64FA870FA9AAB20B80CE7D85DB8A0F64915E1742E5835B5152BCD4B89
+4E7BC34E8D8CC93F5DE675090B7BDAD2728022F29D6A7D0F5508A189B8E0CCBB
+87AB29B9680978381252A9A37AD5CEBA8E4F8CA2C06D7A2133FF94B3AF05EA7B
+0C1497955A4E04183092871E66A7386E063B58764B62C33B6997F2E0D7F4AB76
+6093F606DF3C4E5F8A06E9D602E36F2DF4CA2E8C59EA6F8537A8269EEE427271
+E1FFFFEC053811328AB1FC60821F4C13D277EC66F56F27E0208726C915CBF178
+D2DFBEB767FE08AF1DEF4219F6C97BA5505DA3CF06BCE02E8E5013872DDB0E9B
+01103E8F7213F1A00C473349820BA7F202C9F8632B9D7AC4FCC98287175CB2EC
+7800B05D4A7617335D1CCC2094F70BA6556A99F2B9365409971DA4BA1913B7E8
+D6D84BBF1CB40FFCBC9B1C6306E9A148F39874A1E2A8FC677EB621FB46304D59
+B982A381886E99BE387640FAEFCE8182A2CC9AC76C1078D9E03CEAFA0747AACE
+16F9A95F5A97265A208ABD10C3BF49C1856461B710A29887CB6D57B61D24DDC1
+5DBBFEE1DD43EA93F9B0B70276253A89546A4E3918B5C93A991AD372606F091F
+EC35362E95CAAC00280DB8BA15DFA28F9AF7A6F9EC51FB2ADE3D15599AF01627
+B4D96F3D35FC4995EB18DA916FB6D24B56D60084E0CD8A32AB934845FF24B689
+67883D3EAB40BAB8FEBC3C17F6145CE0B96BA50A9ABEC6F1FF955C9FF80DF500
+BEEC7AEEA8C2FAA50968A57FFA5E9AFBAFF08451A63625918621B8FE9A46255C
+86B9E145C2526E4D27F974D74221FC90BC691454D7CC6413AEE3321D64E57F58
+81DF5C5954C794492D4135F130855678C8BB7C4A3E3551D2E89F3DF6B049D857
+9115B3697E07024C34985FDAF5EF24210B2864F9471879835FBFED10D7535002
+E806CE05BEC90ACF31E49AA6C62D9E169196A7C358E1AA5C886C1E1544568C2B
+500F208319AFCB37CBE4A568136B1791844DB5B627F66C75DBB7FCAAC4EA4620
+323DD1FC501727D74CEEA2C3D1B4D63779120AE0B0843FC978E1EAA6FE4FC337
+46F12F90D6168313CA077B85990EF9C6EB27F71D3B8C262FDBB297B1B88625E4
+62143BD515F6FEFEBAAF35ADF8B57486A14DC57614488C332E2B81B946397168
+1069CE21C21E8F44B2DB9EFC2F4160F17ADC55DA7218DBE64FBD5BABCA4C5718
+9748B61B8F7F9573847E7BB62DCA710100AD39FA555C2C3B3800BCE7C78BA404
+3DBEE48BA6328F47B1E72A507432BE4A7EA3F0AF034B2E29A4CFFAE8B30AF806
+F71936B5FE86F73F9C4B81123E1AE017B60EB2EB108EAC9579F3EF142CEEC861
+EAECCABA38C637306D8379C02548B4B33FB5D8A6169B3899A2D0499899946371
+BCD7D8D37924B66E4DFDF25ECD17408AA78A9A1D1C8A3615E428EDAE3E56017A
+0C2CD79A0D92E6DDC54746E5095B4659D73A251F3B7FD7625CE7EAC3EFB61409
+C1463D4015619BA3746F278188E2F30F997D477491D39625C2B829845D4EA97E
+56D7F3883CDD5938BF1BDCA2DF5BBD0E3D495554A01840E7E7A081A736DF6D7E
+6BDD580F717261F6A3953157DA05AA3B57FBB1E977C6A43555F7BDFCB35C8B8E
+B6356A4F1B01317B029918AB1C0400CD32A41515CA55E59CDC9C4641A570DA65
+96FA304094735B8B070FCDBA01DABC55C493A390F3A0B60D31C6EE3176BD5257
+F6CFCD17682833155B9DE734CE94A232BF9FD8AA45C35DCC0B16FEE6EC241BC1
+E944B183ACFFCBA57219D6BD9132E9610780D4AB07FB2F77428114E800CB5855
+0C26502E4B09AD0EC8A4B342DA732E24CBCBC7BEB15322BC3A4B004CB9652D27
+B85525C0E59DF15D972EE00D5D6DCDDE1A141DEDF0BF9309463C7D5D0D95077C
+F41EACAFA40CBA65004AC680983DB2CC892C1089A58514051E2C0FC16D74056B
+34151DCA72FADD08765BF73139A2A15A46067064490DAC5AB5039C545DE452F7
+35416482DD79C77BD0256D6BE9005C80902D9BE36F06FA4431F1DFBA7C982C66
+E141DA88A07902D83D1A83C0538DF2F8F8719409259196EC46B9D7815E17F836
+4F06E024C1A05A594BCC8C7489B3DE9E9C3B9D2D15B8149F6D09A35A8444CE1C
+704E2B8F273FAD8128A6033E871F1A36B95969EF3EA5EE8DE9B2720FED92D43A
+B894DFB54E6F3E4D92E18AFD7B4D72FD675AB7447729F4F618FAC4938ABBE9BF
+29045FD578CFEDE3BAFA55419C564CE39F324592304FF7B339DC2D889C157BE3
+A182E42DBCB6BEA7773CE2A058EE2076C77CC98F0C37CE8128E1671D8BD8AEB3
+1E724BE5297AEF6F8F90719D75E2218470034C970C7C3BC4CE46234CF25F3092
+526AD39838F4DD2399A4DE9BE341EA932FC616B02FBFE7EC68AD6E98F5AB3040
+C00C615ED7C7D427387D5AA99594EAFD54D3CE88DEEAB0A408C14B48217D73B7
+AAFF60D219FC71262E05BF9D15DA7739FAB52683D27A3E094B40D84E3C272D26
+F9CC125000AADA491137363EEBDE57EF302943F26E7DE08EC71707B62E717F92
+BE14CB7F5D4FF8A802030B10FA8AB4D93286AC064E0547032E2AAFA3E353F4A2
+4B3EA80EF4221C81BA5698D58A460C0412B1C1BF143E547DCA6CCA584011B55F
+526742925DBE8300564D621015796CD280DE573A0A733C5F6B2D4AD811EE4778
+FE60F46ACF6B6943B07B0EB0E4636823430A301B06BE688CC24785A8896BCD42
+39B97D9963BB74BD8BF05217B615983E27994FBEDB0577010E46BCAA04DB1A72
+77F4ED8257D145EC44B2B65B408BC71239F1C2E8434C1C2FEE4642BEA1C60C7A
+F02BF44140D0DA3E94D7658312A212FABFC0AA74F3512D513E82248BACD86A15
+B5A2C71F3692C8D702FA11B262ECE33B382C681D54BC275FBAB326D928A6A327
+AB2ABFF6C4A65339D945A671AD839DEACA7412ACA3253B399BA17E363B213FCC
+962725E0BD8CCE55985438700204353C507E4DB96C1B57DD7A071124476A5095
+BDA4C678F514AA63CADCF7003C73F0C505590526C0D1BCD7DAC0236243AEE48A
+5F351E12194DE6754336416227A63FE6C37D472EA1688AFD88FC94922094E799
+930F9952B2B1B86D1436C843A90AA230139B82449E16EA8B29108AA624933D1F
+5BB7E1EC1E7F570BD1DC0D2A9C338F4590D590AFE417D289B103E11156D66DEF
+F9E1F1F3A68DF07D69FB9CF4D09F2E2D47C2168E0BCECB8BA1CF856826B51D23
+D440D7EE177DC922BA367BC69871D037A508B80E75F43C331F7BB5FC96493932
+0B3CA39DB05BB29C08348C3F0FAC71ADA5C07BCFD160FE677A8A030BDE2C4A6C
+A866D89CAFBFE647B36F7931664F82997CBFDECB6F88C795609D1C94DC80F09A
+87221FDA3A699D0748F97E682B5B8C7B1EBA75BD44070DDBECB03824F9EA4E1B
+BC66A08A1A0F8AA3DC482D408C83B469315A2ABA685726CEA99BC3D15799D28D
+F81E0BB958E34A1670C23FCEE68A0DADD2BE3CFCC1914A9FA1B1A661693ADFC6
+378969C2E400E5D4AB0CB7DC0FA364893D2484DA98264CB50205B7B9A2532492
+81A2697B7FA4FC77E71D3117608ED7C474AA2FFEE8B3F1DD942CB16A1FF06C6F
+3741AF6972D09A5EDA91B4EDE291A7B3E3D481005BB578DC5AF13C88EEE51380
+78E57D8E073FA46B89A1DD73D51AB11B44048CE2F031031018697B2DA15BB05E
+B69E9E54F85E09EE3EBCFF390A9CF28B6F0932A46C9306911F2F36B8CA3ABC14
+022697A6BC560C0A688BD1E49AA9F9CF4917130ECF08F8C500E0096A8BE65E01
+EE5A2618E3C9DDD1D227EB584EB0763C6294B91DADC65AA8F1DB42BA25E77B9B
+AAAABEC083135CC61C18987128961505D602E409C3DB90F301CE2C792AB7ABD8
+1B7442AB1C8D5B1FB5AB30444752254A530B227A1E7CBC615B045031FB07468D
+DADBE63C9D1AC6F9742738FCF2896ECE73C131063E6FB3B954A77D1CD1F5764E
+3D65A43B627E8E7E10C5966C93E9794A3211D8B349D7F82427A65DA39B4AD1AE
+A98733594453F400B9841AD3207DF9A908372B8B7F8EAC363D0DDFB90411A468
+1F3F0E7A8DE83F3CEC745BF43D341A20F53BD0667B70613FDB9B1379FA61BC9E
+516118F7B1DC7A7B049E116A7A254F0A363694920EA156DF045038B14C229E6D
+19417309B6DFF125580B5279D6CAE9AACA31A1D21AAEA8DE32180F3456AF61E8
+AE8011BFA62D7B5A8123A02131D2F622211D74F104CD729CBE44EBC70672C064
+6D8CE2956C78B8CAF172B77E78F715DDA875A492CDD8357CB3AA3ED817043631
+0D278C6AB079AEC3C765D5E0267BD01C1D3F7AAACD0CF34EF8DD2FC5FF8FE85D
+E410CBDCE53C792C0ED5092162DB85E6465C058D95816008077E22EB8A98B8D2
+5A4069933FD3F3DE33926152C7DC712807784C17863EC78F9FD11A335BF8C700
+F4963F7C1A72505DB453012507A3EE51F7F2E814CB77769356C7654B9569B68D
+36C1EBCFACDF5C8D91D664820758BA73A83EA9660E33D4589C6950CC5C612710
+E9E97BEB5CB43F4109FC0F9E5EA126C1A9F2C4617CA146013F01E810EED40041
+5D09159A5B53FAF73B151499CF4BA3B79A19034CE461298D1B805E161CE837C1
+AE9A7298DB9DD9E54C347E64772AF100A5C736173D5D9EF4C45B8FF6B0ECA17D
+C1ED7FA96FAC530778D72CAB4D9920BC6C137EB3187B1DEE669419753B6472C4
+D29CF8ECD1D43AC03DB1413FE6D4A883857E2574C68AEC9AC7F7D3173E9EA7AD
+1A8762EB2841D29BA98B8C59BF52ADB41A1C06A50FA66C169605BF950AFFFED3
+6CF7FEE0126C0AF7DD7A85796BE7D93A124581EF530AA62DF4CB06A15A17D5E3
+F6B6B72CD7481D238B2EF97123EE55872A43599ADCD48443DD9DFBFD469C71D2
+624FE39A15FB5CC331E29B20DD1994FDBADF7E2843ADFEFFB38AF6E727638848
+4BB02352C312A363C3920604853550205484499FE4B1D8A29A4913F440E37CBA
+9CFE762651749B33BA532DDFEBA257869BE4585699ED7E918FF72D25F3EC0C71
+FC49EF6C38DD1105AE50D5DC13F6F1AE2FC3264C549FB4D8D1A959F25DFE913C
+1ABC41ECBB5B538BA1C4870E73599BA518FF41B6445D40C9B9BDAC2D552E4533
+670DE0C40C155E46AEDF4B74BD44A521815B69981F4F33EBB774391320D8B6DB
+AD9C9545557E21A90EA55CFA69B967F3E136CCA7A1E4C9D312D9D08940DECDC9
+1CF646FB7704DFDF783BBB1739DA1D2EF502B7B3A1FBEAD958DC99F086E6B623
+F33ADC3A758138E47EA3DE1FEC42EBC6D675C658B9AAA4C4054B1F81CCC4D216
+9559BDFD542140F2A101095F2B3FFEA124F407A8B650032265A48F065C3C5BD9
+66D843E3A2BA4CD7BF56A6A10D90345B51969A03DF45C91EBC2F3023A3E71B4A
+B6A7DADD9E3EC5C70207F743157A9A0ECE23A7A95798C2174281A7900919878D
+955EBCA90D02F07876BC3F5EB1252A82D891FB3E0FB9FC032080E6F700981030
+0E81FC3E75AC8623405CCAFA66161D5D471EA952F0FD4021754CB61A7B1445AC
+0547EBD4D78F141651A5DEA6262F0A05559DEFD434C5485FFBEEE7DA647AFECD
+6468D4D3905576FC4F670BA39F9956149CC371A31ACA929CAF0668B667DC2CF1
+8810C6CF9EA23CD5576C110183155DBF15F24CF0973532800274127C6C5C9C79
+EB121C5F0B74D824DDFA3EC4BD7BBB8799875B8A4776B60F840AE96A8F65724F
+AAC3BB862EA6F8697D935C60C2DF962F042521BB1D3EB9C064F2CBFD84208D94
+0E9DD9242157F4D3DB05194E82FAD5EF8C09092055463620D1B4ACE3BF9CFDC4
+989840A2CE7BF62D69BBC387D0184EBD87755E4DCEB8296D1005E79779A19B14
+354345A8A0324F1E61D88A22BC423D3DB4686ACB6CCA3CC515B6A5CCA6C888FD
+EC2CCB767778AE3FFD7ECBD8BF1828E5BDDF119247F11B299D5272C475C67113
+8F124D25A87AD26E8B7713A5189FDD920EAFC2D9069664744B6E7DE1AB20E798
+8BF9B8885BED5CBAB904032F6245AC752F392524C2FE09F636B59B17ACCE1E56
+ECDE4533FEE75C6ACA81D3FD7F6032B865D8B6F34DF1A99E01FB6534659921FB
+81631346B4530CC2E6B15389D7D494A4851C5F7CB502B394E840ECB67D359B77
+E940F25E96B3AA4DBFB0689C0C8D41EBFB5A9ABF7B817AC487093BA1013E345F
+B42647E031C22B77A319062324A7BBFDC9DAB8D5B1E0FA4FBF8036AD46E554F9
+6B925144323B7A79B103E808A43954DB3A03120EE5BF48438C0ED2807DE82FF1
+6800AA8EEEA5C70DE747B76246A437B09F402C8E1B545636E0860F670D10E42D
+9A579DEFDAFC447917E0AE0AD49F49EFEEAD72A83149A22A82F909670FDF4A9A
+B106147A6CD6D9CA4FD64191B7883E89C30FFC30D3262B9B09CD7D2440D85F28
+983B191CEDBCDBC06375195625EB247DAF10FC3F01259E59184F462B79592181
+DF37D70E698785E55E0810FC9A5094CA115B2067FBEE8ECB004856C68A18AE7C
+9BB1186342D173068A4BD0020FC703BC1AE0D6C8EF419288D7D0F09042C5CAC3
+6DDFFAF9A79B811C55F41AC87F93DF99604165A6D6E5938016C155EC65393512
+EF633ED422AD5BF8C66AD82B3B2B0FC59F40ACA8B62B2195D84478F920C39EFC
+328C9EEAB999D28CB365ABA1A99475D57D5BE151E107BCA6C65D535D8E83EF91
+35EC4BBDC0C5A124CE24ED6438F2103FA03BC103F899CC0E12428A807763DDC6
+CD11E4E11749145810B387906A7B3065BCF1E29A1815ED266DB7A429C3FB2860
+AF3305E4FE74E02626385FAB8833954B803CFF6231810CA8CE55EDB2DC2B1548
+82CFD8F105CC916B0A55E3955BEF60680B544501937E9A6FBDFF46E12B114967
+2066512D019B1D727D3759A708E5D8D8FCD99AEB82B3F660602F8BAF091A7AE9
+ECBF15E7720F671E85C5FE0F2871CE1EC0A7B8E923EDD845F6C8F8CEACC70DDD
+B2F87D25890FF1DB39BFF89A3A35B8B14742B4571F412CDF868177E406C9D07D
+B759D6D32A7CE22D9E9FD13802A170F20E9FD757B9DA76B12712FF6DD0E8F4E7
+4A296ED2795FFA5A0C3CE468C7A9CCA440C599C207BB084B1DEE83817A7F23EA
+1A4ECF72B3786D72D12FE3123D33559793046B7773C9E93AC1172026014A1917
+4B66A90C5AF50072C231F0B633F00EFED86156FF0FBD451C161DD06EDF438A38
+91FA7FFBA022A4468296A7132A3D88AC243B69C70F21B7AEB32BB5AA21800620
+BE6C8116466BB843FEBE361D1DE93F7C38033C95EBFA922FCC45E812B48B1A23
+C33DE814EE885A2354B37C05E405D27A0D3870E19CC718284FDD45F7926758DC
+62D79AC3C0EAF56B6812049148970442ABD34E0C0F49A6711A134C5568004C24
+F92B455E8085D77F48ECE5FE9F27FA91379C939919E78B60A54E235B0936B3F0
+E1300BB4CBFD05A18DBBBD76524B4084D54D990F5EA51E5670906E358B4977C1
+83A7124F6BC09AEC282DB90C2FCCD9D909B57959E6E68D2E50344100EB1B6BD0
+1A1FF2C2F0B250AC9B1FFB4A4EF3F28C022F7F873C7B3AF76E1830C9B039154F
+B3C3BD97DB32958B718D53B552A7A0B033E84EE515B42184A22A10D77FFE32EC
+0E1CD1708021D7931DC73448FB098A61C93B7D03F98465BA42D4B927AB115C49
+C0CB10C0BD55B16E6BA017306506D3D610ABECFA480D8840DAAF23CA03AFD9CF
+1075C8E9B821499DE23D4882C081D51649E5C9BBFF1431057D95D61351287B03
+0C9A6BD89F33C02555E1D3DA7F03CC395C1E3633FC902F060DF903FC96C19719
+A5B6A39E
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -979,25 +1870,41 @@ DC0391C729A2F535326FFBBD9C5859B3D29F494FCE6D6C49E9D1AA97FAA8FC4A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMTT9
-%!PS-AdobeFont-1.1: CMTT9 1.0
-%%CreationDate: 1991 Aug 20 16:46:24
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMTT9 003.002
+%%Title: CMTT9
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT9.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup
+/UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT9 def
+/FontBBox {-6 -233 542 698 }readonly def
+/UniqueID 5000831 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT9.) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMTT9 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 33 /exclam put
@@ -1082,400 +1989,554 @@ dup 123 /braceleft put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
-/FontBBox{-6 -233 542 698}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E
-2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279
-650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35
-F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A
-D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E
-F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1
-4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A
-438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD
-BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B
-A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641
-AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74
-D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB
-CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A
-082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980
-9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0
-4BA1EBFAFDBEC531EA1210365091671CE3C86A6D4BC591C37DCC02570042575A
-9D24252D6E01A8603753934D7EA5CAC1BE4E5AD2BA047DE8F3983B23A8A1511F
-B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D
-42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED
-F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328
-A2C69F817061D6C60B121EEE844CA5008F23DF072D4D1C9EE000CBF2FC3FF4E2
-119740FB306D340D92D733000471A990E5227B06C53B3DA72141948D2FC17A77
-0AD21196F678B0A93DC026C410A781255D359F043B777B70E1331E88E68032E1
-AFD0CB35E99550E1C0FD2852A7D190E079C1B8EA1F8B005D66F8406E14DCCD92
-9B1F39E6A9CF2E33CBEEEAA09AE1930C846ACADD3B0F0F102B43AE6EEB3D9A24
-50C521F1B4D0541CF7B325D14EF0575ED2A7A659C828570DE5A4A773DC6493AC
-C95FDEE00FC1E9E332B536AE670CB145808E654923F757EDA89FF2BCA9E89FF1
-6D0D03C51443C52FD718CAE35DCE7CB7BC738614074131479E3B05F534F67874
-E2118A332C880EA45B91253E8101C38FDF36BC7766CB320D14F34722E2F40F8E
-A469DE22A904697BF8487AF1F26166730DEF2B9502847EA432FD862BA777B6E0
-C62A9622491A23CEF57E9713CD3D61A36E00C865E445BACF3536E9E33DF6DA81
-995CDC130C5AF0CDB265692F769BC0200B42BC73A117C0617C412ACA508F970C
-B20652DC14D4031E531BF59295938866FD3EC6F19B4DDA468C69B78E117DA535
-438B129CE6DEC5FC2EA667058B36799189DD9CCFC0D60F96A055280C298663DF
-B58FDA736DC747662D83914A9845669E87F78AD78F2E93466B14DE865CDABA3C
-444C8C17CF2C964CB42EEF8D7D72AA73B6E5A7DC48FDC0849A92A97253B05C76
-5E4D2A947538E7DD046A0107C5B473C460F9C0367646875035C53D4435A5DF36
-0D4C415B18D38411CCD3E29F3D63A14C9DE5B44CFA9DB7E3EDE6B5D881903618
-CFA9FC3BACEFE774B0052896286D9C8A5F302F1BAD47BC71064039020B164409
-7261EBC080F141CAD093315E0687776D604C8D74C77CCCAD5FA2A808BF9ED3FF
-FAADF730A8113AC0EEA8ECC761060D6A6D35DB4F902B6F63350EB5A819092DFD
-06559E737140E60F72543E3151039715DDE716517DA0A15BA43A7C0825997371
-B9B6CF9E3D3ACD82B053682EFA03ACC9055BB1C644F1BFEB1A543768237ADFF4
-91123E508671FAAE22B1118471A081520C6E138CCC5543F163BB6D28D09F6371
-78737184F1D3692BE655E3EEA04BB9B159B07EB70D22B4F27D218E8535282047
-8AED37D8470659F013D648B1FD43CAA99437827E88BEFD7B7B51D38B68FD18E5
-60B7C3BB9A1981D3CD0208FB94D29DC1BFD86AF42099D5AD7F0C49B05CB27291
-7DC54D7CB4465E78864D78236419EDD8C52CC26D7041C16EBD06FA6F6FCE91E7
-A86B11C0D436E13958C81814F59007DD17FC68AC26029BCB74C4C01B7BEF049A
-81F2D35F0AD2313B95A09A65D8A915185EC6BB038F15B29ECD29E6110DD53E0C
-B09883576A64A272D02A84AF63800E505D8B6B95CAC9E510EAED3888E193CD5E
-2348079F78FA6AEF1DB0A8A020A89315F26A4D3923DE9A6B6349AD75F1E08250
-95996A8C71DC6901E90845D6ED174CCE6A2F2D7E1864469CA04567BB3A0B749D
-D09F26846E95CD9B707331381AA1962CBE6092808DE03FD97022732E229F6107
-6933E9BF8F63A0C0F73AA73EE8F64BD049F12FEF37957FFCF9EE4DCD373E6991
-BAF5FE4415CB2784AE7EEA194BCA730D552E6B23DCAD2ACE75C9239EFDEDD3A1
-1A7E33C5D64F9664D26ED72EE280BB33C4DD08B76F787B2A8F5E484B6679B4C9
-70A123B9DCAC536130E9095BA6688551392AFEADC8169F67ECF580B9A0F10BD7
-4760E803C4B4624EF892A07F4A879436493D782F2BF34A0B560EEB21880246E9
-4C2126D731636A317090E91CC4CA05D99E18764DCE7B1ED9A78ADC5C3F51EBC0
-887F0E6409424D067AD199F238C059D05BEFA084ABD4A2CA7F5C16DBE97AE843
-B51BCB3B5CF71C9168040203083A3EE50E4D492BC21B7CA1648FB31645C74F32
-801B3743CE95D230920B59DCE8D587EC6917D31CE10D60AB047040A4194E3DC5
-347105F38770D26B9CFC472B3B88459DA521985B1F6005980A4D7C6A3B90901C
-0B79D23FD1BA58F75E0F9AAE0389FCA0D10C061A4469B4EF66523A2DA39B617D
-8E21BC50F7DE585F9DA3AF48A5E88237544D230562BC6E7B6B26CE43176EA3F9
-A8F1F13971F7C65C4C8FB391CFBE58CA3BAD327DAB59E6496869715FF5E8872A
-68409C73D11951511F5A8826BB47C051762D2E9E8495AFE328CCF14B4192724F
-4697500FA7007C9F662CCEE6EF492EC198515B9901E12D27991A029141D1826B
-D722D41DC8FC2F7E197DE911445AF33E4F58E7E1A2067AAF19B5D46173039D43
-4AAC3991E07AE3262F2AA3195F6F3B022FB40436111CC7BA6ECA51BE2C3867DE
-20D8AF638B6136320F9F214BE615954F01AE717CBBA102DC69B961ADCF6085D1
-EB59F2228F373E184EA3808359E2979DAD578C643F496645D97F41F46357FFC0
-1219A3CE14E1BAB3D0CA3F79BC299CC0A810B44872C3BD0D12D06BA4945A9E71
-E792DCE14E8DF47DDB17D01DDFDF110D7F4D928E187E25DABC3F34F5428147B9
-0F2F756B07763AD25685F99CAEAB3138A0809B272154A17EFE2E371CD9FBAA79
-B34F34A8466CA9B637C5FDE77A65A67FA68E4F1B6D1A2286A2F6F024A8ACD7A5
-9F187818C7666E5BFAEACAF13B6489C88731287D58EB413006653574126EAF5F
-6E78B13514FE40761B70ECE6B6C1D2422F9FA86AC4DD12A807445A750E6774CA
-90DA9FC8211134451FFCC547ABCFAA8F63E934DFEC3B4443ACF203EBBFD7AB93
-3EE98240E47B12A7423C2622E4D0DD6F5DF97421C29A644F2F37221C3F311FE1
-418FFF1B36F1057CE5EFCB2801777DB7E746EB933D892FB57E94E8A0C617A6BE
-1711CAF45373D573A7D6018673AD72BBC10A418C756E7FC82F9A2824F3B080AA
-175631DFFD9D2C78A92FCCCE9E864173F774BE42D6A0B4F95DFC23E9FF4FB0DA
-4E69424B496A08308BDD03BA40E1E29004033959ECC88898D0057AA9E62974CA
-4BE6651B893AEEC10F325264D0C14A8142C30A58B87583A5A5938E43A4E39B60
-C47A1A227144050933BBA8095CFB4FF475EE9BD0FF44CE610E1E50390F641D2E
-1B0DD50C2BD7033C286A666C4B07CF27789D68F987AEBA241EF087D9215F89D6
-0A89D4049EEACFF77A183ACFD83B60A492A0E847741E036353D0DEF1DBB01BC1
-3354F15232992FC283EC2D95E93A8537AA790F21F23F9DE5C168C90933C6F9A6
-3A4B773C1C1860A1E3B0C466B709D27C68FAB1B3617A73DF9E018C2E4B595330
-8A0E8D1BDA0967B1DC3A5DA5B96627CA556E23BA89C12A512026CF6D43702E67
-2EBA6786ABFEF3F10E204B9B5B72C738268BAB512ED9B8E1A5DBF95CB75738BE
-ABDE1AD1208DD41BA7B9F7081B01AA22CA257C602E0CB9769973B4FB46C1A4D0
-5EC5B567A9EC991DF2D7EFF791AB4A051220C2E3CB17D3A6FE6CE802A3BBE6E1
-656BA3F612E6479BA94CE2020C55345ACCAA514A55C72C940419CBF128643946
-E0721F8945CFA9A7664D3E274AC498ACEDF9C8A9D09E931533CBFB712057B3AC
-44CA4BC95BB96F9B3FD438AF46D0FD5CB66EF308278ADEB0FE31CEB9E93E2373
-0306CF0EDFAE6C73EFEB1540E342C89FC626966B7D01C2734795D3402A6BE710
-660B2822088D5A9879DE4C6A74CB5719F766866D797FB846F4AE181ECE9E447A
-6FDC5365A937F5D5CDEE1F961210917191CCE511F442B34E2399C42C5CFC8F5A
-7B9EB407F508B1B998B295E39C04DDED5571492932537FF6AF76526E739C99E9
-9B702414478863057F264B11BB195433D247AB684722B9EA66B02EE1BDC57422
-6498382B2AA196C1EE9E8ACEBD946E16E415B148F3BEDB889B95645499E61EC5
-DFC8169ABC03A1AE3E51E85028338FD7FD471CED1708BBE55577560EEF0B4263
-17C87251F434C0C40FDBA5E12F3720459421557A280233DCE87805BED9184318
-9C4A55B99560459F0932A5656389255C259ABC6F115B900B8D6A82853FBCD7AE
-01BDE047AD558106FB9A5310C42E9CF17A1DA691234BF71E47EEAB720FF71B67
-9723E6514600ED5733EC66969B367BD930D98B01F2DDB5B9A5C162EF2ED10E00
-9A58B69492A07ACA258EA7E7BC0E6AA07C4389BF545F3C54FE5AACAAAC1F90A0
-F165EE30AB18495387C1CA716EBCCD08325EB578BC59C991EE784DE7040624A1
-48183FC209D720FFF4CE907A4AE4D5057640F777A34B16B9E3096A83BB50D1F3
-953E82F3F1A4828BC561DE99582E0AA54B2A963BE17EC5023FEEEA505DF9DF15
-BB5C2D3F4B75625C3FF06C0D843C3947D8EA58AB2A6267BE6E2506E0D58A2DD8
-E05B61C4D2F4231A3D4032175BA3C536A0A50DF906B2FA23A8F54848E81A9FF3
-25354A7D5B17E9BC9CC2765865CE9F8BFF07BA9AD27E4ACB531D20A6EFF49B1A
-D479A82CE51E83AC378677E19CB593735EC2E7BB14540B5E120DBCFC4CCD6319
-16E6987A488031144E36DED23AB83ADE5DAD374A35620CE27AD89E54C176C0E5
-B0EE1A88D96A072A8950F425430624CDDB8ABD6F45D79004A72CAD5AA17F0714
-A3238C3E42814D7719A11017A656678DC89CD48D5B92FBDEC2A3506458B5050C
-87CD8B9CD0E7FC0CA26B822265E14E2B4812FF00C96FC342C4CE55B25E628CDE
-49099B12513DC1484CAE9462F09A946301E9597E11CDF3A31AC2420E4DFA47D4
-259AF53C3AF330DFE4734B72684E50BD5895A8F64FC814B561342CFEE20A56A9
-CD60C3E9FD187D6033B322075E715BD230C4DB95EE677EC9147C78DF1BD284D8
-8FF42450CDA9C4C556065898A93F2777B52203E2128713C1669484C10952C0A0
-C2306E036045E6370655A8D323BBFF8A6F2BE1F9B8446CB5955C9F3F1EF9F13F
-CE8903EE90D0F7A2BDA34B279C4BB3D8BEE6A8C256DCA01D7149308A33926437
-85E22529ECD1CC157AD27393B461A9F4685D0EEC63AC9EABA6309C0A36CE3198
-2B6FDFDB499E29B46C692609400C55E13C491CEDD0BA275D2D876E06E4B9D255
-5DBA5322454C6AF0602E0B01547145C502B0DFB31EFCD86743BDF087790B31A1
-25F14F796BCB613625E1D915E6CB8598F17B463209CD72B4558D398B6D5A8BCA
-9FE5BE145AAD891E064E1E6E96D32B248E30C550A7EE4E533531007C29D83E23
-CB6075CDA42913296BE65F9CD48A7384CF56B86913D4BC5B11054431C32CB43E
-757B7D1A23100CADF5391C44CC9A614B180657C956BD408F7C7F81D31FB8EA8C
-8D038351A8F6CC8C8E25671AC4B77CB608B3882B2EA0A9B081C9B2F81EFC6DA5
-CC858FAEED1AE829E6488337429FCC62C2BA5C355154E05B9A3BD5944511CE0E
-8BF787EEFB3F136FCABE6CBA3C609C248AD6640530EEC6AD8247E77A6AC12E80
-C82732137D8CF638CD0EC7D4CDE42F80C8C7149244D6FBF1701E1E3C5666D02C
-2F68126B54B2333661C32F70051FBB82C750FD1C60FD9F667DFCF8657154F409
-7E99629D2B7B926E8A1077CF78CA89AC5EDDBA3E04FB0A565AE2DF997E05AA09
-73A00018671B2AB71652FF9A059F1C361659523606B78E9B4B10F6D72847FA39
-953ECB88070296C1B09FE8D92A50EA8E98FD6FBACFD178EF5B2BF23150749F27
-2CA4491C4C6AF4D6237EE0E912773A04CA55814FD6EFA493D01D1D911A29BFDD
-D53F39E8CD7B7F964AA091DDE7CE9CD3EB8757DE545D074EAA584B8E24676364
-F666FE6F9B9EB570D154E7E2C05A8DB5A40AD741F0585641F4F32CA05A7F3016
-E116A22E4F85AD5E123F07FE0FE3AB55A7ECB31503202AEE7D66BB8E89421F08
-1ED8C1734A93FF047AE8D0F87F83474EEC20D55E9763A4CACEF15F12AE7E3A20
-667DC66A042FB67F3A140D1042E8175E47FD6140C05D89925DDF10BEA57A71CD
-C778A57564AA74D7AF7B2074A4580331240782D35E80B528B8950FBCB1A8E593
-F96EFFE0F1DD23F6377363D661E1C4F98104C31D7C0E7F9C6F219AD81617A512
-69B5322506690A672CB9E2877309F6DE2EAD18A4DC9102A1955E94E3081AB800
-9202CFE99B057B1F41EEB87543BFBF5EE1FF1C93DADD0ACE6A7C7E779E011A6F
-39C0CA50F406A7F107418B4ACA6A69E0CB46C43676B0843463D5C53AB375B595
-62E9F1FD5DF4E2D5BF34B7D111C8AD6CF2BFF59655C20D40B50EC525386887E1
-B6B11D62A02B7F81F65AB65472EDDB9A196D41D98FD5B1BC6D339964346CC55D
-A55B98C5FB4A4BA1ACF255B2380447DE3732AB82E3BD0433D642ADB7D67C2217
-884A6C99345D4638646CEF366A85F92860A0716F3DDE3E73CA907D4BE597AD07
-053CD914362D5C6AFFAC009D29B7D288499522B923394AC2F02191EC869C5A6B
-1CBE5EB7B47A790040D3270E5AD0396C05FCF895E2E0AAC4A94C2EEF4B7C19D0
-F799E1507C81E2129F4E287B7318E62ED92300F121F282AB65872102B94314A8
-1108E733828CF33ED983C7F72E3AB8CE5F6B61232965AD4D5259AFEA3FA8CC5C
-AE4E0D1BB9F3180312DAE392E28B22EECFAD24965EF9756A29858A9901018FC6
-ED605A1F43886FE9E5307CA56DABBC9D42B0A606307E81705565D9CB81814DC5
-78E5BB93DE5BEF316304E8D33D3AD847332A706853FADCDA40B7F04E11340EBD
-BBAE024BBCA535597FF8D3215869F2CD3AA0A2BEC830F379FD005D12AF2CD298
-53906D4DF912C3FF79C0A04020BDD46020CA80748920845D7C9AD60BFF780A45
-99114B8E401BD5F3CC489432880EC68186FC7661F93F636A0CA790FBDBDEE105
-BC0C11C03C246365BD4090923BBDECF9F7501A65E9D6EF06B752B0B6C92B0469
-C1DF26D6384103B405D948CF0C4310CE34B0CCC47C98A38E7A237BB737C7B6E6
-2298F143A5BB9769A5D7E4330F1C64C9EDA7EA34F85F31B19BD546516B3C97CE
-5B7906B0FA5D39FEA3C84C48C331A549DAD1A114A43AE7EE8ABFDE8FBC767F71
-E86450864BB71B9D11D9614EAFD6547E509081CC17C6261D3B81511EE43C33B2
-F63601B3519AB2F58A8A03A304DE0586517E0D9CD27E756AF6EC6FCEBD897FFC
-89CD5D760EEF2DC6C185126A7B85C0043B785A90901137FE197A57E9CC1116FB
-604E291B7846ACEB236E1C3BE9029B7B07D21900D8A2D6F19FDDC2EEAB076854
-6443D8C28B4BC46D7CDE0D841E7B0C43F86A30DA56F6BE0F6023E2AA8064EA2E
-DDC9D42906137635BC7D21312C23C19593756F4A344C72E7505C41A401B91887
-9512A20F1E1F5A1E065FC6DDDA3412C255C89B9A77CF05A0FEB510146A0EED02
-13633DE45D4626307B03A012A1C44AA0BC4039744D2EF60AA999C0D6F0C2A5EC
-065D730A2F43DA9396A58F41F57787BFE8FA71CCF395B9B68C221FA789279CCD
-EF29B6635F6028A95C124C6A3025F2B16550E9206CC3245FBCA796E91098F4B5
-C61BBD21365F39045FB67086B11C32515AD245CD0F50687387DE65DB08CF6D4C
-9899DF674E334FC25A3B16FD97B19228951D43EA09EF4D0FBAE1D7589B312AE7
-FEC3EA4A20C9D63B7D9DC1A1C35EF58808A988C20ECCD08A407E8F1028B204B4
-267453C5CDD206E47119ACAB15B690EF50B59224D863EE703C76F271E89A4827
-14E154FD7DDA5BAFCD97DC9FECC47F0F136243DC58963D492C3CA6C91E54577D
-669228FA800E18F6F60F47675814A7BD746A79AA1F727539F1A7039B65049D41
-2648B977A75178D2EA2806CCB41046C10BC62E2AF9F61A1EEBB7D762FC3F10C7
-30457B1AA72511F10AA111D6DC77EB18F93A6DDFE8B98625FF037B088556DBB1
-86FD399255368EA7161AD6E779502EEDA86F0D1EA4873C01E8A7BF9CE7CD3AB5
-50DD7234BEAB66700D8F028B2468C367841DD2BF035A151FB15EE213C0A5943C
-A0A5FD68B90C976EF9A008960CC12257203E95BBF7C82EFC853D41C9F983A6DF
-ED243C9C67CA1889719EBE9D5F684210FABC485C3CA8675F2AAE6360312C191A
-8B1A0F18AA901257157CD7840324B2B0D78B1D50EDF9B3A812A9321F3091D203
-2E113E616F09DFBC0FFCB15C54F8ABCADCED58DD3BB2526A81119F2B4FF93910
-26A70BC4AB00D54047D1E997C375BA799635AE4AE0E7DF9A4FF97EAA560C269F
-4380E3252E6ADEECBA2BAFC7AE56729474E05DEC8A40ED3E0518732FCD253CEB
-71F1A8B18EA41AF08D54880924F5B02D7B181BC76B29A4DF769EC1723DDE2519
-6B2170C3C5D4E70C50A21283ABEFE0064996392DFE93EEDBC854BDE2D4EA81BF
-AD04AAC565C48737838933C5257D3AC9BE85E4C22AC3AB4FCF28B7580079D8E9
-0F56C6ACABAB0D38C60FE08F5CEB05BA4DAD9B09B0F9E57C4AA524300E6B8AEF
-1250C6432E54D007AEA9B36E43890355C788E233454A7D59120E3277DA3EDB55
-6BD9EE10B356C16E67F93F9891EDCD06B16279125C22F2B0EF90315F574BD651
-B46AD78D7723FA0CA2B0A0AE9C102C4CDA3155E33CCCBE026C5E8B603A3210E1
-FE538DD514A4D1FF897BE4655B5D8D752439F135E6EA7869F315F3E9699B7B77
-810A6989623051130F6E4E1471656F6CCB10A13034FF085403221017732F2390
-259FE3B29F6331804C300132B9586D3C6B08318A71AC700FAA6E83CB3A86B1FD
-61C6DC7BAFABD3B49F8DA9E3A98BC94926E07DE98945A45061CD0FD002B90CF2
-B8D294606DA133D4CB0874FA3ECD4843828F6F384A595EC123817EEB3BC6140E
-6419208362639835765C432D7BE88C8BB85DB91051F2BB3C247E729F25EE441E
-BD3D4A44D90E9948BAD1D5C168D7FD14694599566116387F622B53F0E4096071
-0DD97D7A6E64F3A2B11BFD075C6F7DD953F57C1B1C3FC952200E8142AC1D561D
-963C5F5C67A05D8E6872B97C6C54AFB455DAC53C80660E6E4CC554E3B5F5C268
-E0E027D321DA10B59BDAECB378E304D11A1CCF3D72A029FC4BBC2CAC76D1D5F2
-84DF09B99A2249E6F1A0ABF58707BCC2C460DB4D4D9250B0FE4283BDE6CA55AE
-BCB1C85A373E382ADDB1AA92B2FAA83858FC6444942CB783D5B639D69344B8BB
-4A8C7DCBBA3FDCD2B455ED377C3022E2BA3D7D717468B42B731CBBE3FA439E97
-EADECB5AD8DC8ABEF73F510FC6039D001EE8DE53E239594E64428F2A460FC809
-3BB40C9C6A8358C7122B45483FAF3471F164D8BA84D4A844E09188B4C34FABEA
-79BEF8F884756AC909B70460BC22C6874F966699DFD1F3C54FA1D2AA72264E93
-75596BA06673B01D2A763CE177E248960BA0F7E3BADD59265C8876EFDC6FCFD1
-81469DBC59AFE8CD07EA8FC0BA3FEFE43DD7D527D84F685FD985B3A89BB5ACC1
-31BEBCE59665D9CCA179B774390A1CA5573A2AFC8BDD6D6901FEBC9CAEBCC5AD
-9CF26EF10987154F9CA620F426E3EDE082A2551C5E949984C30CCD98E2B1D0FC
-3CCAF3EEADF436ED12108134359B711772E6D3C921B02677BB15EE87DFA5A2FF
-A3F253528D2D0828BE0778AA599900DAF72AB2C17D1513BE9630761128C366EF
-B3330BCBC83A5F745D0F163CFA100DD8177309A5ECAA912C8FE8546140587FC7
-50B14AE5B8DAE05BD2399CD44B888A894F79550DAA5DBC84AAB94E62F0441A6D
-3E7D008F10EE46C58F1A92994269B52DA17A8266BEA8EB4BD99FD39D5361C028
-81FBD28300E40BE415F7306C8D6D94713869722A6A179F5FA66A332CE60A0C39
-97AAF72BED0B337795CEC21379D67FDF7D5011BFCC60CD433EDE8A3768455F68
-62A9CBCC695F9F8B4A265026B1678DCD7ABD8FD566792218BFD7FE5A61FED3DA
-9307CF0FA486FB636D09E95D640A95483A929639D14141679BCE01337A309ABE
-6CC846D012CAE3E838FCC4FCE3372D020343A155EE284BD858C33A245EFE1B79
-A9FBEFFFA2B402ED5E17A9CBCB2AB9B2B131CCA1484291ADBEAC711503405F17
-66570740C63CCA6E7AD5871AAB381ED4968806A911D6B6A2EF18CA9C6A4A800F
-95DB24AD68BDA434CA725D17F0AB0E99E339967FD4F0455D7301ADA41ACA31A9
-6A03698C9A012E022234DC03E2F3276D2DA1FB03955C191D2E8B4DDDD668CF04
-23F806E181DFB4CAC3E4B3C66E79AE87749C4083E84848BE641133EA61D06708
-B3F84508985C54352247D3B42857C49382FDC78F5F0D6101908673D90F4ED17E
-040F0B0F6EF8C1AE38B5BA866A45EB0DD3B3C9BB3F342B7F504A37605609E111
-1CFDDFC92101E71E3F6DCA38F0A833D0CDC52CF1A03EC5F49506618277D382EA
-94DAC5B910F48275CCFC2AA7181DE0675079286DD6A06FC691989197A40305BD
-246A28B5F578E458B39EACEB1361AA5DA481563592DB0C9F03DFBF4D6D84D72D
-C6FEBBB5DD1825735C97C51941B9CF05DB32D1C9A33A0676AF6A652077DA1FBC
-6E51CD90D46B767C729D54499D392EB6202DC498B57A50ED44FABCB78E8F7B23
-5337EB2DF8395002AC4E2AC04974C9AC46E01BB7DA9C55074EA3BE0FE9F6846F
-9C573876BDD9A1086838430B9E5C42246117D7F5B2A8EE45DD30A6DA2504E2A3
-2CAE453E9747615D9F0A0BA9F06B0026DF21FDEB50A4FFE7952FABFD6D17F098
-79237B36805490D764D1843DF4A0190F094778D114489F6D2B5FE89B614BC0F6
-23F5A366B2AC497155D729530FF1BF982C82D24204826C6AEDCB4F3B4AB88CE3
-FD55E650E8E67214253D189D67AC4CCD9090E0482CA19977166DE08230D434C6
-41405B7E4AE2D63BF49E78819CB661237A9E27B2C2091E6EBAC4AAB0C5021B26
-1D38AC2EE717F583B31AD83326080FE441FD2AF2637178F7C4EFDBED63A32C33
-19C315F16BF7D12E78C11D9D769C7B52A453016538A2F72F4FCAB0DEFC246AF4
-FB40A1B5D3520839FAEB7B5E9BBCE4F0EA3874C2426085620B7E62C4FBB47CA0
-7C32065EEE2B8A824999496999F06A6E34FF667808965E11605A19B744CB775D
-D0598DFCCD73A530DF88D72D2D467D9631A8D7E665EAED42B3F74586795F7B43
-51FBFA148672EEAA600B76FA43B0D14AFA5BC1BC57A8C13445FF035D5A754687
-986A1774822DD5CA273D64E2D2CC94AC913859D435DE7C8DE64C5F2150BB395F
-E55C60C898DA92625462846464F073F2699642F4D3CF0F849A7D9A2B2FDC80C1
-D26C06208191D63E97A2AAA73EC4B96373F23D4FC1FB91B93899E2A6DE369D90
-830C451C3462DA0137C812BF06E8D219B90DC6A551FEBB2A52565030772C8657
-DDDC5D3ED99982F6A3F9FA842C550FE8A5A7A2BA36862EF2C3A413EF94F437CC
-E3D51F5196918E4D9F1AF0CA1110AC00F963EE17AB1A2F1B7D6242C29D98747C
-E91E8A6F924E89B4C6794677EF604FA3235E8F44578A5A87CE1114631260751A
-909C7274E941FA9596669D9FF82C29EC8280B1B326EDBC8812D2EE2DF812C02D
-AAFFCEF6165985DDBA1D9537AA0948A4A797F01B316FFF6EEDBE874BD467A239
-E89435CB0AAD16CB06D3401F42EF7677C2D8EC60A395F716687958E5F9B6B887
-5F9C29BB8320634C9892C9E72369A9CC1447B51489743E755363E4624CB88265
-4315F7C6C62EFE3916F7580B3E226FE6C8B3429AF51F93DED861D22EFDB49B3C
-6C5FCB5893774E880566DBD66A408495FF65F8BB99D04E33F8830726B20C872C
-8F4A8537542E1956C1125311CBC0A014F0E8E90124AE145D2D8FB12D113D79B6
-6D5828941563B1C3F2EC506BD4807A969279AEE347AA6B552E328C9D11AE52C7
-61DAED073036C79B9DA40BACB90855AA3CA93020E2B553BD377C3504D7BE25CD
-5A43DD1C53FC73E3C2E1690FD80B93C4C6AA5C76324F32400C019D6360B2BCD0
-F33E15562763487060CD620C5F48C40000671A83C22E4F7E3F5F37C9F70BDD83
-07085085B3F881555E1B8D0C45F13C95916907CC0A8E85EB1BE75A3382D16224
-041858FB54EB7F0B8719AD892B123A2EA81EECF9CA572AF8509B94FF7DCD544A
-4CF9A7235FE70F97B9D817EB60E8A809BEB69DC4FFDA1653F588896C4C3E2378
-D1FE3F902ED27E3AD5BEEA4A54A88EFD453B380B06F222C088C5CA5536E1EC70
-3CBB82839056CDCA0E770634B7E8320D856487E9C4B02CAA605B5510D563C3DE
-A0709BEB02EDBB59432B65F5D27E38F5F91290B1C871E9FF9901BA8A3F938659
-C5A5D28E001A3F8DDEF24DFE7211081ED9749FF5A753F6FC8F3064ADA79EA8B5
-201161CCC9385FBEF61739C6F103EF29135978DC77B9C374695CE7209F3C2B64
-36CC939E58840C9FCF40888EA836B6EDD24B38A678EC8B988865D41E1389A32F
-4B6319BF59D48FF6349C98E611CFE1E7EB55EC557444F22EBF414E8EBE976472
-B2F7580731D42BEB735396F8F144587665BA950F43802B7FD8C4BBAA4D25345B
-736C90FE9838EFA1BB52B1973ED01D4DE7E7E1DBE08162C352B06918CF62523F
-A135923EC6D932F5DB3469AC188E1409A83839C3F5B9A4967B1E77889C2DD5CA
-98D3038CACE8D9623BE6425378CF5262961462D7FF5F2761C1BBEF2A032FA6B2
-7D67129F35D5FB609E5E60398CAEAD4079A9FB008F8EB9FFB26C04914ABAE0BD
-AB4875F982AA68C8DEA77CF1F0F7BC8236DFBAC37302BB695E7102373A9DDF67
-2163973FFD610BBB8E0D6E4DCBE688D092E6583EEC11CF6F42245871A3F86AA4
-4D59A9BB6D53E586A4D187930AEAADFA4A072CFD97E3973475A8DDAFD6639535
-44A41BBB8F81ADDBCE14CCBC9DB20268AFDD05E2B85779B0E0CC49E200CFCDE7
-B6B2B98034BB562A43B080360966D51E1DA0EEBA8803A9526F86A59B50861C2B
-CE3D72A03EEDABD9ED8935A1C8BAD1D924EE7A118225A576830D30FFA3B2AF1A
-8D6B4AB990D3DA5428F6CAD5788553BCC2448DA0896C6A481FB803E28D7D335B
-2D569A4D801D66F27175EA483381F5B6ABE1DFA739AEB016C4B95CF230146B59
-440F72EAF259ED4AA1798345DCC04786B8BDE68BE9D85F8AB4FCEF54D8E72DFF
-7D0BBBF7D4A79E71CE98EC0F130A2414B4F958DCF7E138C8A15984693FE1A092
-5204582EC8F65BC1E4AA0654D4392B78C29649431886B236C95C11A3ACE49002
-5D83E07965B396FDD136B49B203FC9E48A8BEA97CB77C6EE0F6A5AAFE249AB4A
-3194A802121CE314FB773F02A5A1D28C040CEDC32A1EE958018B48AB84E563B6
-DAE93C28036FACAFD6EC351D7960047B9AE8DE4845536EC7C02C4AADB202FAB8
-E32C9FB7056D17A5CF6817679E30A2E58BF2531F8F1521F5EB3F58EBE1EAD4C8
-1BF11243FEA3332BFC647ADC8B7929A78D105423C6E34E5194BD8C18BE0512AF
-5A989420376FCB97176DF17EC9922C42E00D1987680C7CD96C3C81BA0C490A4F
-A54F11154F3F105D05B465F6711DECDC06391325F04875805F0BE3294B4B412F
-425998A37BAB0DAFEBB09F5BB79C344E31FF93A81784CC3B334ADF4E515045A7
-22B5F88737620B4098A7B38842A888AE61DF3E1A5A40E41315886A24C71E744D
-05FDE20901F03C5D5747789A686303DAC5690FDCFC5E09F3A031121509455FA7
-8FE6B5C878495F39C40E6241E3A5AC629A1872E2332BEA5C0831D1106CA169A5
-3F596660252B63AED600B8388E89202F81241BF0AD676D1632DDF73C379E05C4
-315839EA8196F9FA4065294AA1770F75F6793D29E585737657A8FB0E3946A6D2
-304F2241C79CDDCACA3162B28EE02C9BA50E511DB84463EB2EEA28CF96D3BDDF
-486E44FB8C4EAF0A6C44B459DBDF135863FB8B31958D49BD0C097A4D15C76D00
-EE844D99EF977BC0E89287B0C2C67C06D2256E846F85DBBF41A7059B2BC15D9C
-66D5D7693642901D17FA0C68FE80F3D3F7234B6E8D7067658E23FD09CFDEBAD8
-6B35ED0A1EA4A69FD7E8E7EC16394C1E3CAAA9EFFAF95EF6C13230DEFF0302AA
-448B60136747CB51427943E0DB1C1DD087AD6B284DE4E354070CCABE9E1D5EEC
-B6975793FB09A9655D36BE2D4A3026DC4689294DAF0D7B6320C34B5AC6C32FEA
-7E0675B45D3967D1B476FEB52744FFAB4BB49970F13642C89FFF63FED0D6B350
-2B5C2972C747FA0B43C834363D848F99AF84FF0FE8A786D26C4D3167CC08CC67
-ED566087EDA4550120253ED1F19F1A4161E705A3D8DE6DF75C330D571FF2AB5F
-E022B58D2EA582091CA3282EED6F075FB96000B36EFA323EC9B893A2CEC57865
-09EEA572BB127A4DB00331BD574C258CBCABB02EC1E088F076EEE22362E93F49
-7B4E08CB19E55431C59CBE634FD12B28D56320FA1A753B528FAD98DE5513CE90
-CC1B0D722A4437FA1508F6FAB9BB8F3BF38F7EDEB6947D2C46580A7602FA90AB
-0062ECD827C062737A163E1797576D1C83A31E0F4F892F7D7F83F1F4563EDFB3
-219A03CF16638E6D5E7E961EF4341AB0D7AE9D80B38A0FA8AD4B7D24E4071F04
-8A2B4FEC937C73FDC45CD570DA8C96D56FC104E39EDBB672478D9C34171D93A1
-3A995D5F9306E3B39B35D04D76CAFCBFA1398465FCC9B544B2FCF97424120227
-A97CF3B254084F65516DF48F799D6D4F0E830314E1E7FDF23847B7B22CBB4739
-708B3C0FB3043096AAFD133A43930819F5D16C57BC9A5913B8A552A9CDF5BE41
-4B29F40F181A1089EAB1E1D4298EA03D94BB9D1365BCD0613CD5247A623E0603
-23ED64BDCE80A76F28AD9DBD65495C2E32F8BEB374F2BAC04DEA83299A9FDD4D
-5D13287A44190D8CBC8F275AA695D58E7DD99A958FB645929E1134B5A796AF5D
-B4DBF734E15633F17FBCEB18A41805E56D3B33C18E0D3DB638B5716FC11609BF
-42F01966B3D9E2D05DFC7E61326FF476C5973A6863E0318A95B0DA88F668A6CC
-6C657707388B0ECDAC67288015611D0AE7958F52D7F7C380FFD27AC1D3B83934
-C3F22276DC03EEB1DD096D86A24119D3FF9194ADF3FDBB09C42FFFA860550CFE
-290553C71DE6CFC37B9A11C22F859D956BC38CF9A4FCEF72B459F44ED1B31C66
-79D80C7C88A7DD4833EE90FC64B7D8CDA2D0C98235665F71B07A3570189C6C88
-FC4AD8D1B0EE5A3BC948004F39963DAC6EBA7240DD832D60472C4F088274CCD7
-A97A05F6AB7BEB8292E20DE373513632C9AF5B1449D1D03BC4EBFE36DC25F58B
-75C2461DFB41E1AE20901F01A15362434460A638D80E2F569DD4948C1674B8AE
-C5B1C3322B9DAD25A9A99D84932B2CEF8E074F2C031D9BE0CACD94CAC6ED149C
-86E787ACBD3CDDCB45057D149A2A155274C6FC165797F5A0973FE29FC9D3914D
-1F44B6CF95F23BB378C06447810BD91402DF356E30FB965A69676DD932659481
-A66CA8B8015B4112CC1EE2D90FF1BDDEDD4F80A232351389CABDD596766F19DE
-4D93DEF877106A54B0FECB005F41C9468CCF2C84DDB15732B015B2CD1A4155CE
-52D8AF86FBC1D97D8249A84C8CF54C271A206CBB0291C9A83F9D3F80A9A94052
-D090CDE951BCE2CC812F66A47202F44AC93FA73A7987D3286FE133103B364E5B
-04F3BF4907EFD49128AE6C07DDDA38A257ABD45F13872E0D70A19B82AEF69344
-01F869C42AFE47B8CB550B6EF46B853952EDC511A909B4C8904B4BD121249977
-5785489C28A02A3052D5A122132ED896BF20A5DD0ECFC08C933235FFABF515A5
-C7280AF5CFC4C13B6F153AA92EE18301448E410B882FC827343444B8AA88E281
-73C15C38EFAFA3E640DB986A69B0D2D882DD31B2BAFCF09F8AE98F86761557E7
-BD3ADDBF480C7571770CB086139CB970FBBB4578923726F492DF82FDE83E4F94
-171BFFB8B11C6B195CF22684A8D5F0D63C57E654F196DEFB51A5DC591FDBEB4E
-28310F8317514EB7770041BA2B6172B96E691D4F9F289B2E785058F99C288EA6
-9FAC0E3D8D71EC5F16F1FC1F48962488CDE53B1BA5E57FAF21610326F3CEF7A4
-24B314C4A55AD1C644604EA428830304AA36451AC1FD41F007E0AE84C4DF757A
-B85F4F91BC123DD926A47161FF996C1EC4A722B912188E626AD7D928526BD12E
-ED244BE4CFBBB20676C3BECDE1B734085F00B72C32267DCF002B47E6112BE3DB
-9A72953B4B34F98B4FC3E80ADD37A8E2D408007745F51F4BDDDA57038755F031
-D2B09BE5249A9A2C9BFF225C5C7AE43D97B761501B610891725CE320BF9C7C85
-93C9E9AC2BA6947535BC406ECD989D01728EA41D963A8753DA2A0C9B4D9238EF
-826DA874319F994FDE1859E4CC3B17601D1495D1B3500AE1B861C55901D9610A
-25078C498AFC38B6C64118EE9837E5C61E03B2E7CDEBFD8B37646D649B1A8E21
-B6BA6A8552FFA55102A7F6BF6F8C0A15C66548AB867957728C673DF3221EDE4B
-022428A6E829E6CABC7CCA6C1A60700FE68D11C122930FF0D75DF89D89252CCA
-692CC02DC52F158E3874A9D030C8EF5B0DCB633B2025C203AE79636E1B2497C1
-51208C4DDAF096885EEC50CDCA1133179227427AB85AF800122A7B7A506BACF1
-6AD4B3954794B5D37F42AD94A93B90846C55E12B8943172C8C4715685D0EB537
-75430F0A6EF94CCE0B6B9D71EA42571E9E26DA0840B0624E1F97FA1548F45FCB
-FAA189A40844D88D87AE8EA4DE29CD9E7DF322016AAB4A472DA4DE10956E3DBD
-5B8E20B8AE941CD8541419FC0E90813FEC3DF42FE4F8A7C67C661F1AC766A278
-EABCCEE8F45150E4EF2D6F967E98CC3E1578FC5235C9111AE4ABB028A4E8E683
-E39056B5F1CB6E8F5EEBF12BB7DABBA1626D691C4AF07767537462AB6472B6CB
-A9F4CC1DC29ABC46FBF92908E1C09D21DF40BA8E0D9376449FC64B1F91B13F10
-9A1A484C7361EDC66F7603CB5C00D988E3A34057E2AB21071AA4554D1234D6B3
-BF04C440FEE0ECDC5378E34ECFE504D9B917543DEE8D86A1A1AAE111F7870C4E
-D81D0B277CA333690FB282
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E6BABDA4215500A0
+42D1A3D0D02C0C98BB1D6ED0B7791274C38B038FC7921FF1FB8FAE7258C09259
+4B8E1BD9EDCEDE9ADAD9BD9598EEA9691589649A9A21539161E374075BEE3457
+689F308A4A7AC9F2FE4B301A6C36B0442FB92E3B002623493DC087800B5A0521
+0DB96A23175AC584DE166F59142779F26FEE9783E28DE49FC3A8D6583EE63FBA
+610DA773CA18ACE6F64A4867A1A7817120ABF9DE4D17782866E6CB6B65A9F6D8
+3667C8D3E61E5356E35343FDD4C6436DF73934470916CB5F0ECEA6BFF092E735
+C7C355B56189D1DD5715EC97E50145FFC17BB1497315A9585D713A7A6DFC7933
+995468EFD0F59E3C15865B87925A3F2930E20D5A35970E2C44F1629FA16E00EE
+EE21EFC50D49F5BC02300D0A7BB85E649CB4E2E828C8B1C5469463013E71D723
+2CB11BCBAC191AC751A2AF7FC228395CE9472DC1809052012AEC2CD66695DAF0
+4CA04234F0187F4116C93F59A7F1F8123DE87F111853B785A20CA8B49B3B0CEC
+B11AD345E1A11578D2EFEB0536D125237086CC8CD9F34A5137AC5DDFD8746014
+D74AAE8239B81ACF65F379CF2153B06A238A2D767F294CAE0D79228F0B7D45CE
+510AC9657A1776202FEF42F96D476E7DF407786AEA12DEA0013D3B4C5D0640F5
+BC5BB72C34066270399CE595827175B23B25072723BD24E07F6BCD9EF0175DEF
+93714BAA53960F81103CFB731CED4A267B53727BCA3C97B0BA5004055D4EF0EC
+F725658E53AC86E4061B489AD4154915C3981B3B703E1E2A8D390CCECCA99385
+45EBE35441B062D7D12DAB2B31569387187D74A4043FD71F1C6D352EAE0F6757
+4345FBFB6DB15CAE47CAC4BAE47AECAE5FF5EC19057DCEFA1B23F47364ABDF47
+088A7C6A2AE26B10459B6D41CB69182FD1472F326CE3A15B59255D1DE3B616D8
+9D1F12561038839781E657C896B8C58A32DF5AEA23732A0966D96C68C988ED7A
+09B7E2C8F9F3D0D56879764781566299A4EDD3588BDF70E3D924D25074F30988
+E35BDD827AE4D0B4A06F55A9976BF0DB3C0B1D09CD08E8CB168B50617691638C
+0EC1A791C228177D4FFB021EC3DF5082CA3487AD2EFC8DE9466A690ADDB4C52A
+FE2A6DB4CC275CD33D9136E735279FBB2008D59E667905EBB04326EC33C98B2C
+94744B7F540D86E90DED64572ECF1EAD3A58EC101642B245A9C7232DC8FB8741
+03F97883BB32FB955C22F878FA0FD114451A3B3859B0B5537AFAB73AEC7DB2BF
+409E1FB41D473714F6BEA73CB085139879FA31710E01915C2938C37BAD6D7D71
+45B897E00857D3931A489EAC7B42BCE4E65F73F67FE027CE482DC47598ABCB95
+39E98DA8ECA3E23F0799D5963ABA6E2984DEACBE7B46B40ADC6213E0F4D08971
+58F68C946C748E4B4217CBA2391BE2086C9758F4E32C9B6413E48D84D33A6E85
+84747029C0A9C9B92841D217A902BA8EB333999D62FDA9F82BFC8ED11F67988A
+0CAE42182E414A9766AFFF4B046A09D476F8E3F15A8C7829BEE982D8350BDF5F
+F215F2BBBF68D4B567BAB798B9604C79306C475926E9FEC0F07A99F43473C6FD
+B15AC29C3D07FEBAD1BAFF75AAF2FBE94F104F1DBF838044FAD94B661B06AECD
+D9AEBD02B60CA4546DD6B5B5C1A3833ED07845671CEFCA8955CE0DE5DB8FC93B
+3306683CBFB8E5B79A863DE78D455DE9D592043C2686F88A43140F8B9F3B553B
+7047420E93E753829F8D47AC7621CFE3626F271E31F0019CC02D0B57F67BB47D
+8CFB63E902EA3231C00EC66EEC0D30FE8394558BD3535C888C4CEFC6EB72E737
+712ADC6300162D5D79BEE0CA1F6E4127A0BC90656C01692F6D82C85550AFC97E
+C2693E379160FDB9636FA41AE9C75B7F6643B05971C6D67CE30971D590FC07B3
+E0B36B4D1C7F25110B5DA2130D574FA292B47322975A2BADBDB39AAE69BDDBDA
+A880F9AAB580117708C79204DFFDC08BF4A48919B5C22228845CE8C3109E93AC
+2479E523B8A1C12A6E541118F121DC6B4EAED83491A03192D5C3A2A45D1A2467
+757E7B377C635CF5CAE11A7CB49D49F3A1BB2286090B5F0E4F89869D1771D50C
+54B5C5E091E3048A2C194F0ED00DD64FB95BAC6FA9D61ECD093ED416DA3A4981
+DB07CFF17C4F55C62DF628EBFF06FAC3F3D3F91C30EBB34052BE1A08F5EDA4B9
+08977197950A282B84E21D43C64BE3AE4BCE22C70E7D392DE09D89B7F23351AD
+6AD37225C12BA79EC9951F5DA1E505DB26200190ADE0E549305B7530CB86EFD2
+A896F13A97E51754F70B609CB4511CEFC38BA579C071E9510A49982389980DC5
+336D6C4A2DB100DFEC4055C7AA9C55880F94FBEA9EB280BEF66CB8E1E38A359D
+E5AFB12B540CD599085ADDA7FC2C72E7C873015773FFEECA2C596B75BC39A3EB
+3C43FA2E53C0D7993042F3D652BCC483E48B7F6C94C3FF6D38E276086A6AE67A
+E5A571B9C72E0D7824E0BC2ADF51A393B9E334649F786EC1923C854382B89627
+1B9E701AE5A6C42E672B2C6A33C8BBCA8F69B9061E787D6B92183F20CF4C3903
+FF5417427B84798C82BE28D2C81624E3920CA61EC9EADB364B5A6E50E49A1A72
+A9A090A1FCD84814B8B2708AD787D2B5015DA1305874F58C5EB62F843685FCB6
+465FCA80176CAB2B2FE65E0A270BCE1E3DB97564BEDFAE5CA44395A8DF4505C0
+3E103CC3B914359B2870DA6CD30382EAE8949131CFE31E9E75C3E47A3834BB32
+CF183D4A8B9001710D0A11390C9DAD116196568591D38C2AF4ADD852F31494EF
+573462759A35415900360882739789D6B89ACEFA251C5ED90ED704DD7C3C80CA
+9F6CDED69537D201D520C99E69EEAD5D3C0EB84C166660B3C190166D93EDFE6D
+15BCB6DC5CDCA825E48D33845CC2FB15291AAB823F25CF8BB0A1EAED8BEC524D
+D9CA016027141FAC9D35B64FB9C224552F29EF6B32497254E319090E698FD8A5
+15491CDFE1B988C79A0E3B9D01E12FF084E9FA86CCAE02A3EE6F2917B61A2CC1
+64B8CAF309D1AB48A34227A7729DFF99CB6EC282E3FAEDD2673779AA7E4C1789
+D93FDC37FE95F087C5F88F53D30A2DA9C913BF205FC6BDD060A40184F4AAEB3C
+D080D63B89CA3DEFF310D09EF0A83F3914BD5B7932980ECE139EF0313C20B4C8
+576EE0FE3F28FAF4D3CE7CD0890BC824A85B8EF4636BDF1EF1BB519F93D36540
+ED09FAF93FD71992CA2CE2E83F5355162ECEB32AD218092F45D5A61A44E67135
+EF0453589CECDC6962D0E8DA7E7567603BAF50B2C8F1CA65EA5320984E7D69AC
+9A7D3D7F92565D79E8C9DD2D92CCA7DE9CD058545E9F98AA47904D70E1897099
+3C4C852B3BA131DDD348433C336BDF5FBDFB62120DDEAEB3255E3207B0C84A0A
+1ECF9EC869DB9BFA3693B03FCB27C5A5D3CDD62630DEDE91B4DD5B9784BF0BDD
+FC6EEC3FA7ACA9E15FAE47CDD9B7FCD2BF0EFA10716F08C0AF25FF67CB6F9598
+C607D2FCA452417D2C69DC808A9441A66492394C3450BD30632AE739EAD654BA
+4343459CA36B6D5B2C12C39495952F2EF93D82C73E33236785A79609E260C4E0
+CF3A3C950DE71DDC3939D42DB1CB1CA917CEAD56979A70F8F3B207C805319FA7
+3C000AE2B21D711A6D78C7BFB901334DC06F59EAB6D94B507734C27971F8458D
+D00193645AB92FB8FE163D5C51AE4F40BDB4F2C51691E76EE0636F071F37AAA9
+BA78BD12459CA499210EB0CE2F8BD317387797C33F5933AE7A6264DA06B4A6A6
+1188326147A16B205D1F965872DED7D8EDB3294FAD2FCDF0D423329E9CCF879D
+4E0B966D509F45527F7609DD09694D286F6FF7535EF8971B7DFBAF608A19D442
+C133207EB1152ABBD11C455D0977F66A9B73E51381D1CA4B66E87C0C7175A63D
+80C699A052F00C41DAEF42E7A40E07B1B14107AB0787E24E17C1462960E3C54C
+AE73BE4924464FB177EC62F116B2822842541543EFF7ABDDEE197D6BD8F8D4E6
+59175D8C5957550B70BE775AD52FFF6E7C00DA7CDC16E1DF7446BB5D8FD82647
+3E9F87D5EA365C82A2D991321ECB14A9E3AEADC5A56665DF7072D6DAE402BCB6
+14D92B17F9E063E4E9D8D239C91F5C7C0BCD2FBD936C9D4A0B57659420343B59
+B395BBD1AB5B6003F653699D57E7581F9813CC98D4F072FB78899D6DECC42D34
+F2787EDEA64058B46C4BFAA2BB96E9BE5CACE8D91E4C080ADFC0FA0D4A29C6B8
+54FEA9E11DBCF53D9CA40A21AE5076451EDAB3593E56B6D453DC8EAB8C78B588
+34D4C4F36861B5649BC1E9F3091E704BDA7613ED45C911DFECA74EEA05165191
+825F95A947CAF382FBAF01F3B8B041ACCDF39718D7DC5BA6CA12BB20EEE96439
+BF2E2628AA3BD2C91998E6247A690FCB0CC95F286F427345CC4F1115BA3A6E54
+4743355F2CC991CBDFF5725902C1F5A6DEFDC8638A26EA456C33C27773D6214F
+66536CD2E44FD253531732D5A8C44B336B1BB47B0477350EB8CF74889B93402E
+2356A9CAAFCA562315D8E0B3F42F08932CB87BA2499A875AFA08D11DA73B38AF
+F46D03B7F639A8D7BF88CF07FFF4E91716DCCE6E2CCAB60A64D5E40EFD8B336A
+1BFCC4CB04F49DE1FBDE7AA5B2092A6EDBD913D161A3271AB6411622D0E14416
+37F81E0102F5B0F2F9A2B27819E4BACD7C50E29D6291AE5B0973C657761545A6
+741729620EF2BF1046B3913399C10982EE5F4142CF461EA31042E432CC79A1A1
+39C607D22E45A6DEC008CB4BF6007CDE9DD5802B49A62C8E02A6D448B64177CC
+887AD71D171B99E7ABE2085B37D90B3BD8513995D9A57F53184DA474F6DB5E49
+B73E04CC214EA5398DF7D7541F94E623E8687B511640457A48A68E9D9D6584CD
+15B57CC044D8091C771D175F2EEDD411099BC8F7B4317DC503BB5E405AEEB526
+5E6E1B1F2705275D274E012A98F66075CEB90AFC648B964DDC0E9C4AE7B24CE1
+80B051022E5781A533A21DCFB97893847D685137EAD85BA708A7E118C72FA839
+A9E460B5D17365A0AF1F53A98319FB64A5819B087F554BC056C4BE44113A5404
+BEF759F890C1CA5E7AE156F4F8106FDB4F8DFCCC640976983EADB30976344048
+2A86D7B2AF4A01CA736B98D52ACE392AD4BECE7E61C710B08B66F01857CA460B
+B8376E257113E10F6DEDF14CE2A4E6A99ECBCD302C36CADB713D849EAE9EB598
+F29DC98531D793B79F83091F9B136809E006F34E423D528CC4309AFFB3EEB47B
+9A9DE4D5B25CE953345C326BCBE2B4912641780637783084D3D12693F8135483
+CBB0AC4EE0B5610D7CEB7DF205830BDB9BB404DC1B28FB0824CC187B26C19A91
+DA0025EC739BF3993700101D042DED86D67F5FB87912CFC51AA7DF53F2162D62
+6314A2CE13810D0B8D81F45771391A236422CFA0F35F7A0CDF14ACB2724AA57B
+7C2C28D53029B1146558610E0CFBBF72A85AB9BA308F846228F299F13F68E8F7
+D963B2EE9EF7D4C21690632B640BDDAD0556EFA4EFBF035F13377ABB5CBC280B
+9E0C12AACB153C93351E5BA95A7D149010E204950A59C7FC6581D9703468C1E9
+EFAE37E7E6ACB892B3F8D1248D9A4A72F642FECC5E0B25C15EEB921EDDE84D12
+0E524FE6133C4921FF4921242392C12FBE69744D53739F7E849C1B96C4020AB2
+1FF10DEA608F111749E2FBD8DBCB17F353DCB3075B4F4B8186963EFE95A76A10
+85AA5BB6DB4095291974221829A8E436680F4860E01C3843BE5BB3101D0869C0
+EFCE08D187BC04F58C7A450A59093680A0F09E8E3F12DF5223E7EAFEFA01978F
+D8354753A68022CC92C71F2CA732DADAA8A466D4AAE5999B0DC077715671F518
+E6277741F44AE798EE50DF44CCF71FCF8BC71F76374005FEBC4883C6EDA854B0
+88C0C2B476709AA809ECE41AE786DB1A32B3FBBCC14921673578D3514C8CA842
+E1FF90BE33F7B93ADF6BFB8B1AFBBD080783BEF056A6BFAEF676F7BF9F2DFCC8
+01D255A9F0391951210D60D4D4DCA93AA858B38C0D7B8FD740D5FC6F277C2A68
+54CC2DE1F40B6347201FCA2A0A91822708D820CE645C3E4E5A09FE25721AB33A
+97871ED448F38FC5A349D81F402B34461D840D5768BFC6849439AB6115104F78
+B87115B1DAE12542EA898F86ACE247709817850B067F537E6137196101D46DD2
+D842EA03EF4501E34074E8458E638ACC4EB349A7430AB035BEF2DD4CE00554F9
+18F9FE32A55AC1E7E50D64AAFDA278D77A7149C59DC5B1E3064A4B281A54C9CE
+A5EA94ABEAE4C6D5674C208ABC72563976487136AF2E21F835BEFD232D7F0D13
+1D19932367F51D5379934DA7F1635AC51EE5CEBFA63D4D32F018DEF13624EE62
+31DAE68A08DBE3B4FDAAFC75291C8C6CC7A657E3C7453C7D1461A36E88E633D5
+408253B673AD87A9FB2D0F56DF1305916D14D5DD62051E27BCE09CEE9A1F14AF
+1D7164BA5FB6E6EC8D38750F7E28BE330909F303ECDEE692E347DE13C8C2F82E
+29C8BE6EFD76546F362A12A1C2DC12389EA95ACB4DCBE95620F0C193EAD91B33
+BAAC5801AE827B9AB3FCE5D11D1D7854F8FA8A31670119CC0CA98628F801838B
+AAC7EF90AC5466BE69CE3E3CD9951A5EB9AC08014285422F6DA6F6E221BB30F8
+0042A11F2E4B765BB0D142AD52F4D85785EA71B2E1CE20728B9E9306CE93268D
+99B822A5AB5232EC7E26EE1160850AD3905864A01357F22722B6A54D4EBE58CE
+480EAD9FBF068EE965AC4B5FD2FA8CCB91ECFC6E90B9C49268CA0B0FDAD23ADC
+D5A74B41149BB08454054C451AD0DA4CCF8B60F2EBD061AA03A011D548B6B481
+FAB00AF9225BB5463F27FD67333FB51F8664536267E95CFAA0BE3BC1B8F889CB
+587A3A4FA2B45864F07E11372C9507A625C0030EF7030A0B4D931BCC48F6DD51
+A4D1F63FDC4B59C1CB18E6242E9F4B4B8AD9755B870FE60D640181FB7EB8120C
+C56F51DC8C47FCC6318C2145EDCBEFA7BC4253315BA67FD2B3D4AF6A9F3F229C
+AB75B592EADE15B1FB5FDBA1C0F786BD21A51506B7A2E42C2D086BA6F84D1B3D
+AC7531545F0B01346831FF36A52CAC1E390F99AEDC265B44B0FC9C581BBA6BE4
+48B723811EBCAEA5FEFAEA7E5B987F2C7B3E9A65D2D14A7B74F099401C57E367
+385352D0776D2A908F7A5A2E4D4160946C5591397877025C8C387CA413EFED56
+8B142E8341E349DB4DBA422A4FEE56A573972A0C66590175158E48850A9F7F38
+4B95726787B8F969FDBC97491CC81CABC976CD00A27D1DFCA7CF467A956C1C6C
+839817AEF8794B6151FAE9261119DD5DB787DC9D3B420FD325ED6599FACADE0C
+320D54C2E0D296537E22C1783670A9D9BECAEC63853EC2F05A990260DC189D63
+7CCC0BDDF2CF7585071ABAC14630666737041194D0777EA4292AE60BD7F7100E
+DB568C90F0D899EA006CA423CFFD6EC70A5D3D8AC43C747DBAD3B02219E47D8D
+DE030631F4678C357A58ECC52782B31B50CFD44EC33F41585E51B27E3997D33F
+461BEF897220AEC80007F13C5A1EE3A0430CA899047DF944831F8B010A7DE74A
+BFD26001472DC00CDC9F17CC435F61ADAD4E9AE062ED477FC621FDDF9242C449
+1BB3F77FDD1519A251B663A693D84B42BF0962F537757F38CE5C5D56B98AB10A
+3B70C8AE8D52DCAFCEC22E7B09D3C4EFDA1841C74CA975E4F8294F7BDC796500
+0ABE197ED3737A65F7BAE601C91DB3983EAE11DA3EA18ABBBA3650DC361C2E77
+EF9F97618B0C337A906FF39926D2B0B7883ABBA650816C4C6B34EEA836994EEA
+AFEDDE56E0099D0E09EB88EB093544B9BF4871200746A0409C475FC4232A38D8
+F3105B0FF44E4F132378DD12D9E796412FD0F9478322215E9F59E69396C35AC4
+097C4995B2C3BAB2DD04B1A7097DE16DFDD76465E79ADEEBA90489ADD0914EBA
+53E11A43ECB11D072C68D2131BE1C7C43CB9DD5FBA0A67BA43D6851AD4CD3BC7
+39AE2E22CCC183A56CEB71D4F9F578518E376426E42B6390426A8434B5A83E78
+77A5B9963BAECD5FA5521C2A29418764E4EC1A72462B04957F823E2817A7F8D0
+1512919889500024B1C42EC107E8B8533C0B314EE4E23313A4C1BDB009A2073F
+9BAB479A3F9DA76CCD65629CCEF78015ADBC2D0D124B3BB2D322FC4D209E417D
+84BC3C758B6AB64A01E25C9C7B71D741AF90A19A339F99A0BE9FC39622F04C6F
+737474CFEC19C890A657BCE192B9DCD8F273CDC5294875DD4507DC5723EBB357
+73DB0933927DC21081E67E5DCF4E41FAA6E00E8DF04128F86348FB0718068FA9
+918319C4EE9D090CDF348153B6CC48648C55E889B4FFD3D75466F1B50C437546
+7DD9CF20980B148F60BB146402DC0732A27F255DCB859CFB6F9D329C12FB14A6
+7824D6DE27B03FF85BC59703A5D6C5B7D1CEBCF3C3FCD71D6D6F0311E41BF8BF
+0609D23C84720FA9EAC961C9D49C2E962D9618C32BAFBAA8CAB0B2F616E57DA6
+8CB44C5595A22377B28599F7D34A3BEA4173E1D31A2A6C5670D1F026EE2092A1
+DD0D2BBACAB46E5B0A7113B1BC379709C5870981E482E01EE3D16AF9ACF1A5D8
+7ABDB4BA5C3B13AF047826F360C8892642B482C3C61FAC97F332888AE156B35C
+5C8415A75B4F0F25F8E95BC4102FEB4A8287C544C99778EB0C163C22481F615B
+0004F764FB7CCB01AE01A614AFC9650D3934F748E8785416BBC89F66C696AF5B
+B5F6F125F115241728D85E7159FCDBB10B64598249BB0E6FF1AF845B0A2370AE
+E6A973023FCAC4BB6158D48B0C928ABC4E29A0DD611D0F5266AAC8239064C266
+82D4D33B032418967406BC98156CFCE1F091F733D8BAB9523690B4D6765DBADC
+210E814DB8715A269474EC0501CF66FA0D8FD224EDDE93AF243032E73714F730
+FB382372C0F9B9372450FA6F13689C9429EDE1A105F234B216263A7D0A917A15
+D1FC128580A16B5572436E398C353A0EC62539CAA188901FC30DF7511C1BF6E3
+B462203AE937653C4562FFFF03078EE7A184F554E6F01932AFD07722A00E50BB
+2D2BB785961F76273A16CEEB0EE833DFE14BBA539CC7E48F67A9D20C94283137
+BE84025E86C714DC9C6FD7CE4D1D0C50B6EDC79E066521FDFAB6285C83A68B4E
+B1A119875B4E45BF5403950A25286214CB4183C345173F72E6ACFEA5C13B4D2D
+FD12BD235193EE6BB66519B553CD963EDD68E7EF9439DF0411C8193ACB183C09
+4143657304B1BE2AB8D2D0203E677FA1DD01152D2ECF9D987B16C3FE0B3F5F12
+5C920243E1CB5FDCBE97DF55102EDED12811F3F7165F4FE1F6FD5A6BA809824C
+041FF9441529509EF4442EA873E8E7FF507607D526DD27315859B31D0AC11475
+53C573EBF9DC37A4667133E99D8AA608ACB729F90B736395211043CCA3272AD1
+470F1EB485629AA8B9DCB56479F734703D859F1E4EE8789FD6F739D0122348F5
+1D487FAF1F24EF7A14CF69ADE7A87550F55F394506BC7627A5E319B30F362528
+8AB497EC03B69B58736A5EE0AD63743E7F22125536104674EA63F9AC5286A746
+47C73EE8E0320E7DC098CF43F23EDEF32D213523125110140F46202435EA8E79
+E285C7F3AA0C5877F75FE0F16BDF478A00A6F380C7B677BE479FE900ED3C4A0C
+832966F634C63211B58E9AAC3A3346ACACBD040164B491287B45E0131479046F
+B430EDCF59B0DB6B0594775AA57CE029EE8DC445463169EA976945A5765AC390
+CA615933FD05173C47D30DD5CCBD56D89B4557C7192C31D7B500B779D7DD3707
+BD4B64980767B6C9A1BC9A948DFB8518AEF581A1D888C6F767F3315EE99F57E8
+4EAA54D04A3A9E34B100024AA7C49DFE273231E3DF17073CCAF5B0EF20566755
+6831F85C57454D1B0A5A8438EFC7F4E396F09CC200643564BADECD2208915FEC
+78E94025CEC8ED965EEE5F6B8BA081478231547355F93491915CFC4DBD619862
+0F99133CE7F44756C593C8DF1874E973237ACB17F9614B79D45672CF62AFE009
+EC61B395BD96B0081DE750421A41E9D474F0E030C6B8591D364F29A6D7246EF1
+6B4CF9B931A9A474011C62D504F408651692921AE83116CA0E4E6F41AF877FC3
+CE77764197719291E68B01570AB7038D91B8B81EA501DCB5ECB6083B6764BE3D
+DF21B4B3A1E1A5C917F324A1CE5AF92BE3B2F8634A140637425F9BDFBD21FF33
+CBA42069981B230D211602FEF410EFDC199B6DF283343FA5E6B4FF2804DE56A1
+61DDC684579F82C65DAC3A4F92B34FFB6273EF4F4591317B8D2250850BBA236B
+C1E36185BC3C8C7A7654B24D7A10A489BDF675F6EFE7B4253F14CB3B5ECD1756
+1882F3D139EB5EC7860D70A176D1536F5119A6C23EE9AE9AB21B586DA19B483C
+6BEBA87C457B9DE3D7C71DD7F97E352B642D84455E44EFC54417ADBE7E190F7B
+7ABF6FA0EA84A394C8316BF420D6E2DE5B867E6D602365925C3ACFC69ED653A1
+DA30FF3B49D407237196B9401B1EDB7EF2260E582D02B18EDD38AC0016F28896
+0A61CA720216012D0FE2B58D5D675D25A679B1D70FAC10A4EB38060C0BB1AD1D
+D1C59BD5F44FDD8768EFBE75B6795543533C02198E21A4B8A5430C2C432E45AA
+0C0937D6CED532EE6714C58ADFE2B15B117E9AEDFFC1E172716C756260BA9931
+23AB837CCC7C36BD6B86B628BAA7D6002720AF00411E9D039E435EE479D5015E
+23DC9F3993546E50A442CD9D0429F7AF22D9F14064CADF2A3062F218582CA520
+3FD8E0F30B224408594EC426C8DEA57ED60FAB24461611E86302C421BA600CDF
+D4EDBF4044F0E2893143D4BABF0A6AA09F28FB4190B779B82A61C65264A199D7
+C2F50BD82837F08970F630E1CC74B4EF421B1032967FEF552DF3C1C83ED995BC
+CB9192ED8AAA906CD9708A4882150B27B1E75FFC0D1383C50BB3E6C36F5CBF28
+C0572BD2F01AFFEE5927EBE3B6CB8FE778ED2B524E252F59AF00A3F8F880116B
+8EA655D9C6A68CAA28DB7A75003D0C3B653C7587BD1A7D93BE73CA6219024EA1
+07C31E7F7BC9B874183C9337538C925226CDC48FA25D51A6A0677A2BFF699AE1
+E28D9E58369BD6AD73ABA706531DE565E1984A9C89D0C1EC6FC030A93D3D863F
+C45EA66F195CFEFF9A03A1673BC544FB4F491AE5E50ECFF7F34B095DA96288F4
+31C02347DCB6792ABE9DE684A1A92318A2BDA38C2D8DDEF29B8FED450DCDCC7A
+5C5D124FF0DA047D37E8874370D5537AEE869E771835EA607E1634BC0707C0FF
+75D5764B867BEDD8FA075F0CBBA7191B3CBAFC9EF8DFE79E9D7FD5A58916101A
+A920F37BC5EC845621EFE3A953C19853C2989FD31952FC4876A8F7C58C4F21C1
+31E6ECE0389BFDC8D6E391B04D443EDEFAEB77985808C398583BC4D8C9979A38
+9842C4FCB7A4E84BD67BE72551A43B2B330293D8655A3D6655A2358E014F5686
+613D19B474AE0A92A80E6E701F4B63EDAF59C3E12DD961A5B413FD1CB5400743
+91F673B3502C6FD90A1349D649EBA4F5D8A6E5AA41F1A4DE1C387E22C9CC2733
+D542291D5B2E5CCD0E1FC1835BD6A74F5DB97FC174730AF33CFE5E68349BEFB6
+F2C76171C578412F075F9730567BE7A2644B17012DDA04D681018CBE09BDFCA6
+1BB460699CBD6006C031A02634BE0B16375FDB9C582EBE6683B60768BC3901E7
+4388A7E058B61713E3046F28F5ABF58417DA878E1870787C472FA08C2FAC7517
+4CE71727BB69D19BB40AEB50F1BD66704EA37D2A0B82F60D72E15440BD27064C
+E67CA41D97349309151DA28E1A7850587569A794E9FE46848A4611066291973C
+A6CD19857B92F0E36B271F24D54ED663A7C64DE3534B0989D41E21E01469AD69
+916AE35C5177C6BA8CEDA45C92694077DF3EBB0377269619F9925876919A472D
+14751E6515118EF9B84A5DD8C92695818BA4C959485EE1EDB6C6D3553B6FBD27
+A0FC42DDF20BB335F7D46F0951C51E9BB69FA6E7C76A8C960FB6A4305FDD2A30
+234A5EFA64C34948422255C14C2A0D8A57174AFB7DF3DB2F520EBB401CA2DD79
+FDF6C624654DFFCEA8FCF5B34C34CAA7C6EAEBA6DC98E8557042126E49E51C3E
+BB7C91497A44A69E4EBCBDC0656AA5A7F419D0443576F530C8136AE8612589CE
+781205654730006F3A39B4F3E5301784F164A2C87C2F86C894EAFB5E79D7231B
+E410219BED0210BADEFCF27EEF683A01FE01DAB70AC8DC4E82ACCF6B5BFB4DAC
+A42AEF344755A06DE8A6BF6F2786435E2EB1D103C8FA4306573BE699571880DA
+53548A1FC1F24E50B3C2BACE9261C0245F671694A0FBFB4ADAD535AB9949C020
+DEFE36F7EA12B3F8D80E3E3D7B3CBBD8B6EB0AD2573DD5DD0B4FABBC790C9F28
+428B33CA533D5A6348D1A64D868863F4385A3F19D9F4766B6B81CF634981090D
+AF0D763F09A2919A9DABC0DC4602D72F8747176F947A92077956FF59FD0D88CF
+FE224B9B16C5DD710E6DE3B94D47DED695BCE5414A3794E4CEB7845915272ECF
+E4A657C7B53DE7DE96A8C901DA24D54A467EE083181CEE606E5917FED2C97728
+57887C7D19EEA950AADF6E8A99798789757BA126D925E330BB7D931FDF4EE14A
+04F58858CE09DCB1F57B8F780DABEDD1C26D72C9A5287C9DD30365693C5DD06D
+7365B309AF1C97BD3443B393309929F6D1AE27A1CB55C2F5085EE81928E138F4
+4FA21E90C89F0397C9CDB4D707780F2418B38D8A8D76793C868D4BBF10AFBCD2
+9BBB8202DCC02C37BE63D3CD22208A23743025921A54307A72037E6356EF807F
+B2E7DF2B94C51F19895C3C059DB4C42C2DBF4E08E27E31A294B580E2367D2F63
+0C074F03DB73EEC7293AB98DEF387B3C18761C716EE02C95315A36D42BC5334D
+984E6E35587BC0711D1B7F8EA8656C8059683C49CA41B0520D6FE1952A1991DC
+659D83269307EAAF5A9CA8000FA086B55587FCD0C798FD93905B1CD88A9AA33E
+9DBC2FE2A89CC800565567422052BCF5BAA443EB441E3B7B6AF0322014458764
+7AAEF162D0E03F28F1D0A0EEED8714442E9DC41FD4B90436DB8A7E3A9431E726
+FAC0CB7151B6236B2438DCE9EE814A358DC10699244FAFB932C928E0E878D91E
+36E840135A9F372A0DC2EECA730E8490F4D42DE218150497C5EE87A5FF5C2282
+3AA9D4B71996F86F8BDA700EBC01E3054459AA3F87CAB9C3A230551D4534C3AD
+18F6C76C41E10DB9DD67D19614A516BDD39C432005676C78B36C53BDB3646934
+3AE6BC84D339851BD4D07CEC26129467C7181760DE58D0A288FF1F0DEE52D68A
+8423FEA92D3D9331F75E3B062BDB37BEE45D5C338BFC462612D1CA5CFF432D7D
+89D34ABEB9F42CB40A63BBECECACC033538136B3F9B81F1230453A52549B648F
+E8AA9EE2B0AE82A1904FB78A6237247DD96B906B82945AAA772DA058B85494B5
+DBF53ADE76C1013C1DCC7A19AA3ADD198E3EEDE3269C4F3A6DFE54CBD17C7608
+3BF7513E37D9C8D688087E2A09B863882D46454A5B99CBFF538C008FA9BADC2C
+004ED4ECE65C4301862323B134BA11C6D4E691AA899C0E83CEA6A625AED13F65
+78D330A389A6D6EC23CD82D70D53D4F571C9D872E1A09679444FE686A12647B1
+6BB67C8AA4D500F6DACCB2E0C682C835D24C646A51259A72ED3E281C93743832
+A51B3B89D38E575B8521A39D87F8105F892AE9BE53FD758B8DBE2021716ACFB7
+350D5408C621CDEDC04E63DC4468C301435C2C2D61F3B2C24117F9ACBCD9E3A6
+BEA36A9A4227287DCACA0EBB1C6267F23BC0C3E0F28A89184FACFB919D49843B
+AEA30EDC40944FFE38FFBD7B33B6B05F5AE1D0E168E924AC698B7200D2E86C14
+E79E6768E27E848768A75DD694B48FE4839058824A9F5C472081962020B96FE8
+45DBD7153E2086C2DECB97B99850286211660573EB090E315BD727C989B8FE41
+D25635F195218A2F15FE8A5C5FAD2857F75969D1257158EE5C52055C1E11D18A
+8770E2DE895D7118B3886FD549441424F56DCB3820D5709B9D838435AAE4D64B
+6F49CB37B640BD905D6C3FC1E53C8304B0EB694269D6C48D81300DD537373040
+65B95EF64F81AEE581FFAFFF8B32DBFC16B4F1F7FF9DDCE9CF5D6A8A6D79E4C4
+209E47E16C32343B7D8B65D863F33717FC01CEF14A0F012805FAA46552535809
+14126B88CCC2F0E276F5EB42E0C7628CB2397645DD951E31566B9D80F4379A57
+8D10288DD980E93AD47F7F5EB41C4E0DE8AFC5118CFE87A804F309C6A9D1E126
+C0912E55D9B1FA95611FE7FD22C722610746316AA8703953AEE8D52F4B67F0E8
+1C12A3A1A38B3AFC87E78B29AB79174E1CB09880DED63F5EE28AE6916E9BDF2D
+3DBBF6F8A09A229BCFE45B37D0E28A3A519DD20CD8B7AFAABCF0EEE058EC5BEC
+98CA3FF46CDB8324A5CFD9985AFD545B1425BA1B1F8A3209D159925194C2C7B4
+F353F587F1CEC839996FB9761DA1343F24A17BBE4206324041E9DB6DC5CFB21E
+789DCC82093269E3D2894773C8BCD25DB0D6B3DBF7A799276936132C262C2F0C
+980D6689EBC8459C62E19C91EF5169439185F8DB0946D7156108A689F9B0A52D
+10E02422207CDF2CEF1C2B5D3D50E4D458B4A6C936CE9E6A6C4975AFD8790E5D
+057FACE7B96263BAE67A549B42F8CA016C5EF42B55C2FDF20D3A25A68B13FA44
+99D57478B9FFB6BACF69CABEA3C64B559A0D0897176CE2BE218396DD2CB25D70
+59BB599060F97D2CA6422F46D28D3FED8AA36FE161A91DADE4B621EC24BEB0DB
+31FAB9F4B67209C5DA12F4AC49B8BADD510C8226962D4657A80DD7DD49104E88
+A0287F75C8784516C98BD7BD15D91F4513384B46BB097291EF6D6229A529BF62
+0A5F4AF3C21150A058B08D0B47DAF540DB98EAAFC88E117BC9DBA9AC19DDD756
+9A90C45BA3E8C37368C7E44BD6BDFD96619ED819CB067ECBC13BE325409987C6
+CB804C705C040AE82EEA129A1A7AD4B7B362E799F2CE5C0390722A16FC60B1E8
+44B0B85D097AE0D5E08DEC18C3E576E22268D7F0CDA46D9469019C20EAE9BA74
+7B49EA6166F5AC94672063D25C4C0E8FCE359712939ACEDFFF9AB5E7442A2A00
+A7E7A05E9E10A209672155C03EB12CD5E80155A5DEE3D503BA08D71E423C472B
+A74CD26E15A200FBAB8E94086928E73860E50BB7389B3A8E0E833ABAC5FF8C62
+B894E007E5C220FAE6D53ADE85C747BD84D88BD0F40132A0D1FE51ECDCE1BE9B
+BD89734A56C3577515520025A7743F45B01D74588DAED6FCC209CC819CE0DC65
+B590337F93D92D71615422728C6A8AA4D357A4E350BF6CE2480D4E1A818EFD9C
+E6243B96F72EF5C5E88645A73189D9772E97911A0713A03201A69D78A98F743C
+C0C8562CD876F8DE0A488CCAA3EC11142190BC32B2D8FFBEE6E155EFD20BB003
+055C74D843F2AB34D9552E5620FACE9E40C04DD84E29A602151B7C3352798963
+94674A8246B77CECFCC9A896B64F296EBD891E669A538343C0394E6634D9BDB7
+AB6D9C584DC7DEDF6AEB695FF83953653CED9E2B7F6E5D2A965B60F1FD3DC752
+3FE4EBD010AD47E0A9FD989B15559783B429F50B3A70A1D8CFCBC150A492A8C6
+4F570111E78A66DB463BB2EA226890FC25BD5CCFAEDAB7DEB2D081480821426B
+45EDFD5C048A41F295415C43E86930C53961D954B54F6886044A1C5F6D2526EF
+F6521BFA9BCEA510AB3E1731719DA2E83729BD08AA2814663532756B1AC5E199
+329025C143B47106919977514AC51B681FBBF5B115AB82A15E24C7315091DFD4
+CD11E813DCFB89355F4CFAFBBD54822018E7EA7ACB3A06DE7B571267E0C66BD5
+6DEFA8A8AED615B9A7F40B138841D094D5BEB32197BF5213BA572AED3C87AC6F
+6ED6356BA2A2B9A3E26E43B3E6780BB66CC93A1A2CE94C90D48ADCA2BE608B64
+7C0C0410A9134B81EF24CCDC7426E5096CAE44EE96D666A4F3F72774105AB03E
+320FC752F294CA8A537BE8EB6FA85F069E6809553D3A9CB3384E132275D2028A
+DC6CE52E75DE9142E8D19C656F7A74D985BEC5367F151A151E5D41346AF70ED3
+14D68F0C83E4EC225E6F60A48200AAA0FAC3725551B8859AF513FFBE2AB3C205
+DCD56B1177021C5D819DC38BA8A042DB92A0A34224E37250AA0F65707C2786C6
+189F518C2E635D327D999949C4358402F4EFB6237C8A0A8BBC01E9B01F58A83E
+3BF161E39EF504F2E31BB62F27B4830EAE9B05977DA47EF338817109E0BA1059
+6DFFC6426DBBCE33297E6D36D3492B098C1691DEA31FDF967BE80808199760C8
+46E9D075B01F433DD5A43A2AD872061B3852B74BB421B3564E57C44ED0DE500B
+D976E02B51C656974673846B1B5E31F7F9EB5FAB81F92F62ED34EA0715950780
+6F5674E2D6120A4B9B89F749120921EE65043A66F0272B75C05BDDD09217A10F
+E9E93E647617CA513F52252556D23F34248D0EBDB3FFCA6BD7C31E3369CB1F0C
+20BF53BDF7C4F7A1C37BAD112254C227FACDFD40CA33EDF4688600E16586A5B1
+D53C2AFEEAA2416B29948B4FA677FC1EAC94B4A7A2AA4EFFA901F90B56BC2F04
+921AAC33FA46982497BD267EC185F64A2C6F51C48691908568A4F9814175AC6B
+E1B34565EF12D99AD27B74481FCBA29E4C58C8D031DAC1E58E24AE5E432C74E4
+CFDA7278C66FE60C11D9501EE25CFB8F816F06D1427D8A8A119F7E9A66471847
+90BEA16129627D6E12463C9DB6E4CBF9AC20F51EEFC808ED48D41F334115616C
+FC0F037AAEAB996F754FA6A8653B8912BA0A9BD0D0EA381B3A54A86155156D1E
+BF1BFF694F9EEA20EBE388D4F01CE5117C0EA6E061B807AD4B53270006E6CC45
+5016272BB7FE8540070D51A260A018E09D9A1C7CB3E3C6409BC1993E59667A42
+049F2393C872D0E8EC41FBC2671D0F5E4B99BDC5AD13F7B0930B881CC049FC39
+938DD4D270BA8FD68DFF2ADCC21C7C24ABD1391C947142F1C7CC6E7EE5D31252
+F84B92C304757C0B8394E9E2C2D4DCEBD7709FA645B883D8A5F9657FE6116F2C
+891F3DB3BD7DEA5922EE488678297C5A043720DDD777451AB916FA664519A6A8
+9BE9214DC67D68FAF516E19E1F65F162C246B6C010911220978C2FAEEA7023CD
+E2C2A175D2C79817AD4E4364090B9C6B95CE86840857599448EA77982CDEE30D
+F4E739DE78F7C1831B2FAD322EB48FCA0ED8FE56A0BE9E26E6921171C31F8E79
+D5A59BC6225A0AA217FEB684D1CCF1B12E21DBEF1F1315C920EB46163B5C2F46
+80669943D09CD519256D5A4DE9144FD5103B52774A530D2A4318E9ABFFEF15A0
+24F0590F23BA7612351FC0BD9E5F9A5A8D6ECB677978C4E2AFC4560986B7A8DD
+0CC30A82C2CBD2707A18D988C164F2B8CED74B1C12991E705F005E3A8D10BB25
+F5A45974096ED5C5F8A09ADA293175C763CDF9C3484C4B9ABA9839BB9028425F
+DD34E700820CA4B2BAF969C1DEEE659A6FF568EDE7B58400C07BDA06310B92EE
+17FEF247A7FAFBB56044FAD23EB2933D8F313A161767FE211FC103F392A9A1E8
+B633A259920A15D19A4F5780C09071ED04C83FBAB9ABF344A1B0F1FBD2A96A87
+E03F2785DD00CFD5B3B95736CFE6315E86E8A5E838F4C02B36859AB4CA203FED
+4AB0D43E2964FEF26993ACA619F1CF12D3DCFBD8E50AD02A72A6593EB876E244
+D5CDFEE1128408A5C10B5E70D680299E8A33489E1179FA0F753B7FABBB826BD1
+39D7F7A8E7C15C359E24B6569640123700FF628B2D76E2B7B2DE7C2F098A7A46
+8309CCDEA49CD277E96366EF221C4DBCCF17882C4565340EA41EBE83998AC89F
+D66825F75F751395FACA772DFCEDA5E3368094CF378C31DF2B405D92690F2546
+AA982FE7F32660E0FB33BF253F632FE978DDAFEECCF840997558C607ECF0CD57
+5CDB3EE71642ADAC37D462F7A23541F850382BC1140C8437FC62C34CD9BE7002
+0C136657F2ED4AF914AD3AEC860B2E873A77C818E491440EEE98075FBD7EE393
+B68FAB94C574EC914FAE259B065C8666CBB2D3604F9FFAA52DEB5F157079D53D
+3FBBCC93C598FD83769A8C039EFA0C7BDC027A34721E437E548F120137EC099B
+15D65CF68B5F2E5ACBD11A46A6E2168F6E38DACB52D0AF949B8BFC8AA92A6C1B
+E5A362B1B05A46F3E58921F6A1CD4C97730B14D31F0C1E2C132D25B2A63D631D
+C65813C00332FB695789D21D9903B3CD1425CC36C25C18C7D49014F85BB771C8
+D0D18204492ECCBF69D97B2342457C95A7CBD46C489690CE6B4A4363653B9D46
+A5A03BB8BC675B56A1CDFC8E0C3BC7DD7E4804E61DD27EB6D25119887EEF49DE
+905543AEA98A60471A3D512D63CFA12F8768CBDCF8F9EDD9AF084027DBF313DD
+059EC75136FC08C22D280B76F1A4AE628CF21DB9A6E567085DCEF55E68812A8D
+F72DFBF59786430216884E02416419FEC67428E36B62093250EE61EDA4E9FDC9
+08F01063F9841E1A5FC54F34A65F738A9E330E8074930BD9E85F05AB0E9DDCF1
+2CCC343C8BA7619FA512292B53F37BC95635A3EE07C3E4E91B123E2CC34EA9F9
+123C38F41B1DF9C2A7034BD05D83CFC2B86D69639B8C34940F53F44D5F549305
+F196464989975EF35F33B2B4B52CA9EDC6B32033B63BB03462CC58BBED662365
+2F36F7A46A371A60B245D53F9A7DAA64428EECD40A8F4C93D460490B092558CB
+647E53E34771DC04DEEB2C285965F4DCF2CCB8669ADB238CC12897F7DF46E6DB
+FD9D5BFBEA1DD262C4CC1B24E681643FAB80B34D057BC920ABAED5B39D2ACFE7
+4CA3A1999ACF8C9AD0F99B12922D37C03D06B77985EF38B3FBCBD6AFD21572BF
+84A7BB8C4ED5C3BE657673F8E9F3A1655C0179A4CA565D3B6F0949B2CBBEC189
+B0B46D5727EA5EDB274B66C9FD872C00969B9C6B7CDC3A8CEC053A443CB847F2
+540FAE81CBE3F6B306D1B8B913919D1B9FC029CD5D414DB2E16C7EC97F0BC73C
+1BDCD5F3FB0695EB84873FA73629005D7CE48A9A1374CD2A0DAC7F507D3F04EA
+A8F71F37B65C4D5F5928C7A59BDB73E1702D4E9508519508DF62DD29AE1209FA
+8766D6311A78B12C830AC0D870CB02DAC0D6434801CB48972C196E0CC92BDDEA
+398622BAA5B384FB8A0396777CF517A08F646774EFD5C6CAB81C37ED7AF68276
+C86AD81C3C41476A6398A6A22D65421526EEC405F6CC9F2520FAD97FFDDBA3EF
+9E8DD5295CE2390650C5B19930B45A410083442196A24413ED58BC3994D003EE
+F13DA0A43E7D99C70365FE768AADD61628BDF66FFC0D4195AE0CB7FF33EE475E
+2B0EB97F66B2FE63D3436568729519B2639BF5AD17F7061BF9F8A2EADDC7F806
+50C1EBC0AF0BAB233868B10EC7711A0C2FFAACDCE3C49D3A0301C49B82A2DD78
+92BD6740EC601CBD20D460B90EED562B2AE48E55A7C28C8643B4DACAE95AD33F
+27F2CB34AC65A0E62BE71CDC3D05361D1F07584945E4E89514C40D8A3132C707
+A4D56B054572CAF5F12E40406C26E5077C9E255516000F1733B136CA5C58961D
+A9B22F6FEE7B57DA278A3F8F2B8A2B52B5E2E1FED54F14AFC9F13B18734E42C5
+C04846F7CEE4700920DAC45D381100CF7D5DF4E601D3B933998D86D5FDFDF666
+CC4ECF675477D74327EAB256DC1727A44C3F7A6A970D9598EB46A5C38E81F3C5
+10D8307C19D849BBEB0C962BFBB37409195756E505278D619A73140B2C661235
+2091B4C6A3C81A3F532B8168E69EB1DA998C84834C2C87A910A2A65B264A20AD
+50F7B5B8DDA82DC3F45F394BAAE1BAAF5FE217BB95A30E2164C3193083013EDB
+950B9F2F8559B483BD35507E77A8C59CE5E6571EF07AA5ADFC51C4E54346AE1E
+6E22EE5A58C7B31687B936299B29547E214971677A0D5FDC566E61EA08E86BC6
+976077F73FBC8EA0CFCA796D37DDF0977130FF25C4791DC6CD5B7450A594BD1B
+291A8650DFFFAB3154F4129AEBE08C3A0F76A61F23A6662795F20B096772DA49
+FDC818E8F431C8D7488139A55443B81474F5D80D63E1CC6B1AA2241C0AEE0169
+9077ED92D2CB61C71F765AEB0A26665F2677D214B6C5EF0111171B165531D3E4
+7E9E43F1659A4F3E96BFE53F74D902BCCB2557013D900D19B86DBEE27F12CE31
+A94697D4DA12D98DF2F197BF7B7F6380E1CD7D1F9E13B65D5841A990642DE6F8
+0F86E9C087D82FD2A903B7C5191D7D87CB2797C3B24432F7D29BB50DE05D37A5
+B9090F2D26B1AF1EF3DF11645E317BBAD8136611F64885A3D635C3C1F1F42995
+83BB3D6719766FE2D016B42753A30887C1D57DF9CB860FAC2F95BF993EB7DC4B
+F61EA29CCCA247F2728D4504648A8EE0B7FA0A766282E63511F89CAD7B612348
+7E83A9D8F233757716321B251D122D9793FCC20090AB7BE19B1575A3AD6CB93B
+9FED5A9A6CDD855A1F09FCBE5C9DD97F93C49FAD92D3DAB4B32DFAE82E36165D
+5A6BFCE2AEA0F568A481C480D75C1F32ABA8FB904CCBF3FA6AAF58C02B501A62
+4D6C1F8F690BB4B7325A31B13A712549AFA18174BDFDA6010BBFECCCDFDB06B9
+406732F56AA41EFBC80266EBF0B9852EE08E76EEB14A276935114FAD24214CB5
+D177262C90AB93798A00D55A152D635C96846D70395C7EAC49F7A750027F9024
+3781BEE23D56131397B4B241BC6976A4F2B04C8C64EFD55E801D833664019765
+7A22B810889C096B55AD2B4D8963CE240D5DF0FDAB71E9091A167A80F5A3418F
+DF87AA78FFB1EFEBD8A2C97E8E7667B289BC23CFC16F0B138CE179402015CC4D
+F36912CAE318490F6A050B56B778DCEDA7AD335FBB6F3F05C526C8B5EF0B7BD2
+DFBCF5FD5C40F39B6A3455B86B34E89060AB0E6AB96C3914019CEE49EED033F2
+EE547725E1EDD60358DDF57F9EC734134515949C482D52079316D9A2481A1547
+94B4CA6724EFABBE3DE13F07951329A119D84A07CA8CDB199704694F4B3AF26B
+95DABE0B18F99025A88898EDE46BB3C314FDDA77018279B5DC8C854096F3C7F5
+4DE88F3BE84881A03C5E19A77B769EC57B4F6E5BB885485CF242A23C6E5FC322
+04511A00F27AB274232A97A2E5C45188538013667C552E804283C579F1700DD8
+B3C70F6D22FE133C15FA6D5095582333F9B4495282BAD0537B90BC6548427F7E
+12C9D744869A3F5F133CB2CA078C83B80F95AAEE5D64203110CA1AF12E5E0273
+298B2EB72DBB5FBC3F6A6D7004FAA17AEFB086870C83E8D742EE560DEAA5F727
+CD7BA16A4D6FAB7ED191AB92BA39300BFB73EE31B7820D85DAE74DE35B2E3FF5
+8879D9D02B251D7903CA30DA07E2B5694F23631CFB5EB08656AECE21A93DA6B9
+EB6CE1A290631B795A55CA75A5EFBC99BD1E21C40D7374181C96B43B696F9079
+E7BC8BCC96044E09E48EAA625B9D5C53CAF79C84E8032A0F976EC2FEEA9583AC
+25DCC02DEC8D4798E0C145CC523E5EEE82A1A73AE0EFBB08876278A7983FFF86
+527052AC0100CB273390888702DA5C62889808C3DC427BCC5B0A8D787102E641
+2ABFCA74C325F26A74AE2CC7637C9996547B34F33CE355165910F2C0E6445E7E
+70DE25D7D187EF97902D4D535956A4ADA1F1FA0CE9881399477A0B72CFB5F841
+1893157F662F071419B5AAB14EE66E1D478AA9DDA4E4DCDAFB7060EC629ADFAF
+5C779DE9AB8A65A65722109954599B931C42DE431F5A988459BE94F48F7D2539
+1A8D09133020EA37FA9C7CF8A32C9C1BAE51E112CFCF59CD7FA6E9676BAFD4D8
+093CBF4FCC3BB2E468ED55E28D75DF47CCF621662632E2087A8227945723823C
+02629CCDF94D5168A3810B815522588487CD8AD69EDE6D7FA593E638F603D808
+0E2DC9278B63534E63D22876BDEE3A7CAB88C637DC55C9D1C4F3309C01DF68F0
+3919523B2CE7CA52961AA3C2E618EFE1BBCD2C8DC65EC648CD380E3421F287C7
+6F7308C13F6D857C74522BE6A0B09E15420CFAAE8DE28CFE6350217DA9DB5083
+D15B0CA455D343119E3C1D25F1CA143D5568D63CE32856F21328D5AAD69236BD
+208BEC83099D6652E91253440A613155EBE7F2D902CAC765F5049FB5433AD361
+7C7EF2BF062877DB1981B9481F961A097D0402CD89E0BFA180027E29B990C2EF
+138AACF0D146CE117990CB9561FA6C0A8D1929D5B8BA4C4D9168D6A744ED4B4F
+457EFD4B36189371E60DCE4D2D97EDE139145241DFB26394A142D4457AFC0E04
+990DBBF7E40FF9CC5B0624E9B898CEED3A63865690D1CA256330F472EFA9059E
+81920A9D365AD4CF9618E64AF8FE19DEFEFAAABF8B878C42C07490AA600C0E56
+76E6C97F5B0038169395855E4338C84108D1ACB59E5482AF5FA034769A116EF2
+F408FDFAF2205DAD5AE5324EE9F1AC7192E070EA40EF350817F8A69D680DCEE2
+1B30277FDCE432D5541D27536E9086C2C74B2B0D5AB976C3E188EBED10777172
+76F7D7F73E38D15D03809B350C2F55E80AB7EB7D4C4C9B7DD97179F36DB5E4F0
+1140662023CA3C389A8B168A68303117179A4AF84A64B2C2A56ACCBECD6A98AA
+14CD43B8CD3FB79202D957E0D5BFFB49967E5421426205FE24C9608E5F591854
+DF895083505CD0A4F53DA06D931AFE3BB68F3FC3DCEC7059D3FF5218BF5F1082
+CDEA29587E7E9E357EC1329411FCCA0C3078E9787A12EA78D59B2E8CF2AF09C8
+DA12B2B0EA4A43283C8FC9AC945EB0E63CCFE272BE758B0F8B2C9BAC46F3BA97
+D05C0E720C584E805589D2804EFEFEDA9962B4CD5B145FF7305FA959B660FC9B
+37C79503EBC2D1639D2593B0A9F24EE3CC07352614C0B6C531585F27CFB6EFCF
+044F2F2A261B0C2D79FF78899DB6B1F2FB06BFAFEB488504D2FD579F55980DFE
+9D15DBCCC176E41EA7AD6364D40D931CE561E0AB57F5FEA21549290E539A3C7F
+DCE12F4ED93538385B2D30DFA578BAC6DC92A144A72D1C2CEA334ACA6F6C2133
+D1996B97AE8B102EC56426ED5D59DBBA11BA7D6FD39A8692F0931B64538975F5
+61B79F8640773407E873FB4714516037A5C6FFA8C796A9B01898CDFDC2A3F2A1
+5D3BD4C09165F6AFA9EEA3E0C84DB1D058A4C54EC0673860170038CC318DCCF7
+1F3960F12AA2C9447090D91B0EF8A320E933FC8E89FDA5D5897266A4D156BDB4
+077745CC076FB9A12F9D3BE989E2F8ABF44F4BF842DF548111DE129B36B535ED
+E5ECF8AB96D94EDB9E0484E00BF942491ED250EA8E062FC59F223A85F26649CC
+AB1AF18824045625756CE044529471B253B1F3B5FA2BBC3DCEDC457C0A42E29D
+7A152AE14C8D60122C5AEAF5D4360E51BE81A84F3A6CB164181DD1B62AB204E2
+3F078794D9FE570D6115B1C9DEA193996CEBDC5A32D8EF3EA3C309B9F87C726C
+5F2957494663A92639A418C450D42D027053DE7342921EEFD3CCF162DBD32E16
+9C8FF39084FE1117958230EF168E6FA9B48590EDC108D7FDCEBD76BAAAFFBD0A
+4EBBA485DEA8C89778456A1A36F420FE78B0A8F854CFDE7E26E76CDC2270C983
+1D5D914F3EEEC7E4105228ADD1646013CAE11C03108C6971EAD9C13524537A4C
+2CC3D193CE5CF0FED9939AF23E241FF6C82FCBE73CACA6B4B6F88C17A18CE4D3
+4F49BEFCF830777A1B26CF228DA61EA5177A826645B18F21C10E06C748E113C9
+03402DFE318270EAA54F518FF635C340FF581055C1529CD6976951F6819D5A45
+A4DD081C55E7597D257DB9E2E3DBD46B0878895155DB0C4D859B1E61291EAFFA
+7F2816E365A5D6AF6EACFD49362833DE3ECA447871D071BEACE9EB8591F31EC7
+CBCE3C2EA428301FCEB42ED2E082F89476F39F7EB993044B8DC23832B25DD3AB
+FD6E0A199A3CF03A79F323FF826682C8FEC47BB2B74C22A92D01F0E0CD8CEBB5
+C59ECEE83A7B02E949225EDEE26D5D11521DB381A26E30CEAC4D8E2FFB87E0F1
+44ED94C0E3C022D4B2DC2922321EEF1BB71DE6C221535B0EB6A9837C8A775440
+BDC58FAA05C859F05A654242BBB4620D92E5E8B3C5A937B98064BF97549E68B8
+8FD29B4E57EE27055217C910A199900E2A465051AE0573E3D46E5CD541BBBA59
+5062CF9444E95536CAB30FDCD35A56AF4F5038E65690633DA9890CE8229F6EB9
+E5BAA68E54F9AF6590B4FDAD42B7BC0A6708A1C2E809B743A5767ED46FCB9847
+8274E288E9B2A49803D238ED5FAEFBDE3863B29D55118E3ADC937E4B02287439
+B452DD41CE8298B10AE99AE275D45C5E0EB5680DDDE9F449855FF97B28AD1A9B
+BE728BC56C8B4632938A4337D794EFDB56050F5459C031DCCBB1CFAEBBA79348
+F5514685F1F16FADF390B55DB5B671D0E020C03C8D301683FDA4BE8CDB3C7948
+2F5648A2E049A495608CE414857236A70AAEF5EBAABAF1A0950A2B0B814AFD0D
+443CD6D2E0365332CEBFD557DD16FE1E3342A85057C5C8337ECEE5466406A324
+B7A5F881BBB2E442C9775A1C33B5321887E3A8E8001ABAA65B1B2BD1191D6659
+3BBD32F2B01A37BBFE2A3964BF37646262E4D667BEBCAF970226BE5AFFB86A1A
+21CC0D74E7376B9634EC8BCC46D551FAA67603D4B707DCBF6C65D932FC76C2B4
+8B2D03F5E29C4E2327F5791CCE1E42395319739422607AFC0B6962680A04A5CE
+B9FCA10C3EA7F9B1CFEA675F44029F68E3C9C0B90CD7751040239137508E1E3F
+1FFCA19DA7B0933ACEB8239703097AFA4DBEC0FD8F94AA7854F83DF191A44326
+EA23CB5F18E342A9110D30A1D9427492564E7CA82FA80CDE8B7ADD8787B3FCDF
+A5D52B14B6147262461F3563101CD20A457672F78F9BCB7F996D7699975C018C
+07ABAE4E0987AEB32A45577BA6157B51E9BBC37839FCBB886B8987389D8C82C2
+0281A89F98874003140328866916A547FF0B47F24982E346FEC11458EF35C95B
+033F35334E2956A631F7192A
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -1485,25 +2546,41 @@ D81D0B277CA333690FB282
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMR10
-%!PS-AdobeFont-1.1: CMR10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:52
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/UniqueID 5000793 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMR10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
@@ -1512,12 +2589,14 @@ dup 13 /fl put
dup 14 /ffi put
dup 33 /exclam put
dup 34 /quotedblright put
+dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
+dup 42 /asterisk put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
@@ -1536,6 +2615,7 @@ dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 63 /question put
+dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
@@ -1595,519 +2675,797 @@ dup 122 /z put
dup 123 /endash put
dup 124 /emdash put
readonly def
-/FontBBox{-251 -250 1009 969}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
-295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
-409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
-4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
-2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
-0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
-B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
-24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
-43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
-D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
-5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
-96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
-0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
-B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
-AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
-97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
-FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
-20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
-0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
-F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
-3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
-A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
-5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA
-2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9
-0E172209FBE3857AF495A7F2B34BC895A39A30F903DC6E3202D29AC110D868F4
-7184CB78407B8B9D42F6375F67FD4B828592E4A977B9E71854D143CD1A9EDCD1
-767CC2929E071FBA4C3D17500E28A23F697B5D5CC68D5F56EAD14BD504E07182
-3FDC12F5404E74EC1C02AF00C1A6A17F958770ED4A024F5B3644DEFB61F2578E
-56013D0B4E7CA3AD255E23DD63369A921D427EEE0E098E8148B16E8A5613A8F8
-A5F1099E15AD16EC554B644DF306F0CF3571055A81F1B464529DB49E919F88E7
-581066BEC4765E31BBE28C245BBF0B74610DBA30C63A71A4F3B60593A6B41C6C
-636C980828CFE9A3362FBC02F1967F0F770A4790F90DEF9D56E0A76B0703FC58
-2841E6E8D984FB476D4FEB960FFB6B386EC6CBB9EB83704B0AF63F38C77090A8
-DAA165E6C6BC86601B14F8E9F504A9D578AF05128D8C1BCEA9D21057958D5DCF
-63459352EAD6B4A2A666CC5D85855641CB31507F9E30405977B74356FE985A6D
-541884CB65A4F5A8D4C82CB9D82846CC510CBD243E98A0011AD37A81047021DF
-46F69D7C3DFAF2F10F1F0CCEFBE12EB70420BE90C450975434E223C67D24226E
-8B62BCA6BF93B0B1373AF55E4ADD92775B2DF199B6599CB02DB64B2D6160BEBE
-449C057B5B2D226E0F5D7CFB5C9A4A7184FB29A595E91252AE787861A6331FC2
-6605C995D55120121CB463473A7CBD22F270D56CA8E0DA99832A468D399CB9F5
-A1CBCF0031D99F3C4F4B78A0944BED5A7B1AE23E3A66EED453917F9296077306
-06CFA772BE60854A30885DC5FB8417E0D3F7AB45ABFE186D877A377F5D17DD35
-0FAB81745294E35A5DCAB20321C6ECAE276B63BB17366867F346CAD53E06AD96
-091CAC75465BCDDFDE9C4364B2A8EF496C4CDF76B058E4BC1F616F6CF62FB60A
-64F81BABA7A729B8CF679CEE01B1C985558E8D1493C03B834F3696E5511A1917
-2AE7E16AA8FC516CD2CEDE020BC5777598165B6EF2310F4DBD54FE14071101EB
-47F4B2B59778B1EA7DE13ADF46393E07DBE2082C2487944A71CEDD4ED7D3D877
-749D2500636C3996A34EE0CBA770F6B6A655DCB9840AA8236EF3F6182E1C8997
-395077D9DB15B9D0A2DF9A3F6042C94E6E492C965E4E8542AC4AF5B21906B6E8
-4AE2B01C0810E38BFAE99DD83EBFF8E145D09F763B6B134A25A1CC067C6DC1D0
-7286045CE90BA968598D83E5602ED96C72A424848E211C028CB344D95DA04ADE
-4C5DADCE9009A72B6EC01E7B5CF8C52BDFD2B416F5E1833F514659D94BB2F452
-EC4F2E65CE71AAF79106A0468D76D283ADD44D7DB5760AA429D61C1DC2E912C7
-9446C19557A1D12E7116B765BE522EA166E8F0B604807215323DC5C2DB1F2E05
-246873CE189E03FA291A961E4AD90563A8F7B0E08A67DE4CB3607C6ECA114DD0
-DCE97976E208615F3CA13FC44041360086A4A173D5441D9C33A38013099F73E9
-0FBC96808F7442FD4D56DF7C4F2D4C9B2301F7CE626B4C6C1617B8F1584DF195
-F92FC6385070EB02BF2541307E4EA34C131815FB9028C118F4B792C5E92BA39B
-732EC013E2B29FF8AB36FECD056B8A0123B2E0E756F6F36D1121446A90F6BFD7
-D076C80FCC1E88445AFF2C4D17D25BCC028840AAECD82282BD3720BDC1ADC56C
-9EA1525E6DDC2B3C5E66115838C0168070EF155FFA9EE2AF0B1F58736140541C
-42300199F8F7509DC6F8FCB3E3F76E429A92CE89A195FD2C39ECC95D90D8745E
-5667E1399D4D54788BA3A46906538E24B3846FF10246C3CC049846391B8728FD
-9EAD19AB90473454C26C6CCADD66E6C5DE8225A164730F6778DF10820C2BA54C
-D9E5823FB4FB192F7210200093A7FDEF6803F656D3201DD7B065E834205A528C
-BCDA52E22337E27447C2C750C3730E9BBDA96E944A74AD2B02E4CF6D3B5B7E03
-A9D0DFD550C7224EDDF2F7CFEB0818D15545A50333AE7A8D44F5183E572EF324
-FF51EA08E93305172AD6945C1F023676C538160448E1DF49DEC2BF386B4AF07F
-AEEC9D2E0A70CF68473886A398DC83F0CCBE0955E80E7CF44D03717875B89ABD
-780C448DFAE200862748F1AEC7F958C42344C93D6B6EF29DF4F563C4912EA159
-4E8C77EA5AC7CA4487E9D29D2D13EF45DABA13F0D1B922CDF7FB0F347C5857BF
-EF7ACC16EB538BC2217B0137BD575DAE18F3DA198CF90B0DCB373040C91F6F24
-486DBBA77F6032A17FF382FB14F4AAA3D3608ABA208E94B69A0A1E721B995E54
-F271E5CED22F28313D7FE5679610A946D3AA637765CD441270BAD7808844363B
-4251D831391E2C6E88F609BD4280D2B07663B482A2C018512C665BC7ACAA5A7B
-29187497986970C06AEEA1CACC1D9375576B85F2BC1CB9498A8F60C8466133AD
-8D01E2080BF508B1B4A372209F5CF528986EFF0FA4333BF92EB50154D1CFDC92
-57BC2210E3FF670DA4E64F98C6CB3F396AEB146E7F845F62AEA83388A2AB028E
-F12C1FC987897640ED50DD651EE9B0710138751C2E3C9FAA647A4A8D52B0E267
-11108B99F7E090DA4F777B73A33B006C209307F2170D75F5BEB1B576C1A3E2DB
-9207958A900BF90786908A9B9CE1DD9EAB4D6EF7FD724B2A22F944FEEE17355E
-D21493AA355501EBD985AEFB696ABBC75C40CD1A2FE0DE4BE42F16CF7B599957
-E8096363723E2BBED8B24551DE3FAB160985F36ACDAE7321D7B3A9AD0F164B08
-52074C54BE452F5445D375B85DC2F7F6AD2C0794C0830AC559209E68169DADEF
-F78B82317AB6ABDD8874FFD804F70730A9D084B4E9E143226EAC38E7B1F4E1C9
-0270BA81A8B43CCC2F8F3B5E01E90284BC56126233FD45044FD64E5B2D159EB2
-5579F9FD11E0C86CD4F3FF5D06B11BCB1A2BE95570307A372E5FCD0495611D17
-623804766C93D6AC547AEF388F2A3598E519E3D41353F3ABB6F2EAB767D740AF
-AA6ED9641EB3E75E36CB9E4779C5A443C4CF780F47CD103CA77C0C873E8AACEE
-A7BF44436605A1698CC66DC38DB95393CECED515664ECA7D744AA1FF262F3DC2
-DC7A6420735E7CCA979D78DC2A46C49D0AE793B6DBEBB2F598149827B6A53AE2
-2063E781A6C9A9DB2E3749E46F5E192954E51AC6A715954CA0AC851B2E87C33B
-9670D407D1768B181BAE10589F38DAA5C0DC4C33DB7D5BAAC1A23D10C311C09A
-35EDD551BD1534D3DBFE58D7A7AA79F93772EFC6052AD3E8F1D196073BB1885B
-FBF95F9BFE07E8E2AFC23358A1DF2079C7A6E8D221617A5A6FEF9FC048CA06CF
-F2353B9A16F17D6D408FEAD5DB180AAFCA1C17BFB5A7473076DD4EB598ED049C
-9469628318347508C2BC5CDF052D452FE48ED25D7F3FC062C8702BFEAE853F1B
-CE12F266E2B4CAFE23E2A6BDB3A50669CF1A4F4F1889A90B77A69F00597D5568
-BCB4D9F21BE26267E84AF5C401F96B3B23A80D7FC6956ACD1E0709D0D7222498
-6417B31705074D6728F508F21A3CEA89CCF53F3E0C4E03A2CBB1276A45F456A0
-128F0BD9E095457527D9B6A248DA7FA24ADD7F0B0A7B825FAF9AF69E210FF3C5
-73764761DD61D03DAA7AF4009002AF363A101FDF3BF338247B6B2215AAE38476
-AD6613B5C7D9D0BAA9556BE4C57CBD3C0A86F5446FEE7AB2B738E4043A7AB149
-DF8A86270E888605ABEA1962CABA87E1B6BE4F772D0278FA5286EDAFFE55ACD7
-97EBF448FAA44F33CCAD8A28E883F03EADB5AAE23F700571F6A1ADBB515216B9
-02B59E11FCD26B98FB61871DF998E725974B71BA9B8075C9ACA5BA5AACC43079
-28F62018463D91D404A1024655DAD4CA952E2939394CFFAABF278DF6AC311007
-F9D7FB5FD477B669C2A068BCFEA52F248FFD1D0ED2E47556DD686E5090F91265
-A9B7D19F400A6A056A56C0EA9E74CFD16484BD2767E6B51F5AF34FA6030BAD0B
-A791CB6307133C9C16E63547B41DE8A67E0E2A60DBD575D3945B8E29AB07A1DB
-E752B54F6B423C787DC3E2E48F3D546C2F6245C8B775684CF1106D621C64E111
-BCC2369ED42B5AC1A43A3F56902CDD3D1167EB6B08D14ABDC75B2E50175D730B
-D2AF00DA66A847A3C9A49D447E6071A7E977A58E300D96657AABDEFFEA489DC9
-75AE346C6B9BEF82AF077D6A90489FBF0101FE77BE5C3DC2670765688E014FD0
-5E0E8A2210CA3EB3AA78FF1781552D0DCC4A98A991D582F5D40A0174E33AE2DC
-715F5FCE505E8333530611DCDEF642E35839C33C9B94C40792D970EDCBC9CD16
-0EB0D3377020678B474DF8CB1EC018C586399ED22B01218B5C75CE40EBBDA0A9
-EDE1F4E03CEB5B3EECEB0694059162830F53EEBF77CDC7550C20DD9EADE2F052
-6CE34C8F67C21BF6005828D755E857C058E6C7060B610D801617A601DC3F8EAF
-618AD72C4828E33967AAB60B411DB233B7B29D62B017FC51467603FF003CD000
-607B8D8DFC04FC22A178E6A038ADF4E8EC72382906BEE75B24CA8F6BCAFDF77A
-2D0B5DD4FA43E1007B84948293F8C019DB9979523DA8CA732784082A6ADEF415
-5FF813D469C337441EAA8CF9F920BCA094744A306D4922CC420757D541BD2435
-FE2717A018C89A5490FAB88D6984C09E5C7F62BFF6DFCA24A69F8E29A9DF0D5E
-9FC0A12EA1940F72D90DD7CDDB82B2597DA1CBD8F4302F9598920A9B9AE67D0F
-E10B30B928B6B2669A08792235482A728E9549E76A15DA1029BE883FF2715020
-73337BEEEF7CAE168CEB6E2AC916D5A68BF4211DEC462703828F2E5CE112E398
-7B79DF6389E5CC1AEB74BB4E4C6793A2666BF9EAFA72BE966C9451104CE2CE24
-45894DF3304E620F484273163D9213853D242DC308055AEE087A588A6FC8CA96
-52D94D576539C3728853FB9658A0CED91EB96148B806644895A49328625499D6
-3186BF65D263D138AC4027A43FFF7024518037ECC474BC3D42307D474312D388
-A163D7DDD77003116C071FF5A84B61DA0E559E96B427ED0D346417236C1AD6E7
-B1CAD4C7AABE7A900D6E4B9C8D472C8909123F0203E285E5DBF7C111B18AEFBD
-624DD20CFCF974241215364B627B04FF18D0068835B21C07739A91DDE7B08FE3
-82D175CB6A9FE5DEC9DFC4066339988F06ED8F41E7700E2D0B23016DA5119F3F
-9BE6162549B3B4920B383980EFBD90C90AD4E935A9816ECB45ACB0D9F13A3F8C
-BB175A17070C5D6195F064CED7176E8484A88D3FFB76BD7700F1CC331CABBAE4
-C89BE8F6D93453E30D2BAABCBDD3551CF2A36BA79E99930F6DD82BE1B0546E9C
-7E0CDEB1C823D75FB0998300FDDBF750A43460D0415DE713B7C2A5E7316D020E
-B4A20F987C0A996DFA94D6833EC9539B0E75528F7E9FBBD4C4726F2783EB33EA
-D564885E0233331432CBF3424C130D3A96F79F4BB503A310D3030BE5AF110CE2
-7A463DC21A8692CEE0A80FCFF803E7202048A8F3ED58EECCC8CCD35B32D414ED
-2FE715B39DBD34CB9AD7FAFDB1A1993D3AD5264DE6A52B7D04FD681A28BCD3F6
-80DAB12C43362512F4CECBF5438B3A72317A1BB884DB9B519A8DA6CE1CAD2CC8
-81E283839366441718896F219440D63D2497971BC9E5AFF32A156BA3AD297EA0
-46DFF3B39E4EE1389FB041EB63A82529BBFD882BE02BDE0B25D15C5EE522663F
-5C7D054249460D66987AFE8C7FCA65A88003DC933240920463D50130F7A79F85
-17FB7EA80120C5E91411366F06953609323B21A4B5702447D1C54A08A4104EC0
-7C2F9B1C42EB601DB32FEBA0F5A03B7EDF4A3EE9B25A26E4D797BABD1D80E6F5
-1EE2347925BE9A99D7563053611095EF6E54675E146E3B04F3E0F3C051EF3175
-187665A2C7EAB425A8EF999692BE5C224A27B635E249618CCFBD80E7CCB959BC
-3DAB0121A2CA60F33E604591C285A31B4B289F44C9E452C7AC45994EA9AF436E
-D1282AFA204248362A2C93B4574663B15787575C116CFB343CF0AEC7D593669C
-A7D457AC8F865266593D38C52EF63F818835F45C957D2BB9A216EB42DF410DAD
-BB20BE33D50278FB254C3414619ADE4CAE4C296DCE73813C777186EB4E67E0C3
-958FCAACE325BB5BDE181053EA6A0C55972CA85A56EAA1C1E3DC9A6534602C39
-24645BF60AB0BB12873BDC5AFC9D2A857C6DA73DAB8B476F8B0D0275220E0A9F
-82EFA82C02AE2C375ED3AC6D372590DE40842638F674E7CF92A21551D15E8EF9
-86259CFCA8D82AC06B5B7BB79B9D7CB7C711D5947D01E8FCBEB3028BD300139C
-819123EDD7FED75EBA789815185FF47EF9BAC1F23433523A1F4A1FB01153ADEF
-8732F194895831C0A1C3D0A186F788BB5B4672A028752287F6570FEDCA05B4EA
-0F45CC407AC51FB6960CB331514FF07C7FB6AB575A9558D6C16DA3C4DA01F47B
-66617F310D5D3D3197A5E7400D72FD86FBA372454B9BF6F7E2D937EA3A57808F
-792E8E51CE5BE1EDA1AF93768B37370DB0075A4C564B128779152E8E363DCA39
-C4DF701E223ED5088F7B71FA76BCC01B3A983E855EF34E6E660FE58D4615CA18
-0868D0104890EA7B56DEB102CFE3A2E6EBD9BF225C51A9BEDAEBE67425A0C3EB
-4CDF81701BE383C279850DD8DF20956DFBDCC484D2331F9435CBBB81B57677B5
-4C08D89FD133EA65EB64D26AB8A3A5B69EB04B95DE0B06C3E28D2C6BDEF75325
-3A5CC081DDD1CFD2B505FBD4EEB20E4485F1059591DA43E4CD81C5D491ACE20F
-5F71533978C0AF5239EDC9F5BA1FFD5EF3F11F4924D5F27D3205391297F4F6F8
-1AB40A0DDE52ABF5C1A8934B4687604AFB30D2CFE4E0CD2B3E135A7CAE24E872
-E5C67FEA64A4F404354C6F8F284DB570123133B911624E23BC8DE3C6C88F49EA
-A78C39621372444C86BBBB534EC955D1116B95D50A7C15EA6CE8644AC2C43382
-196E3ECB853D09713D83F9AEB36CB66BF51204EB72B5F3D0D428BDF2DE64B856
-A0B35830D72ACCCA11A8E19071DC8A3DC7907276FE897AE4545BA75E4AC26078
-046644462A4A8470E593273DED74D8438A7D64625FD4F3E8FCF4062A754FEC62
-0B42D9D0B1EA160A11BCA8C16D33E840455047C747C0D6E7C94B7724E4142A5B
-A765C17BE7B49FBDC0CC5A91C837518E745A530327C229463BA7CF9543C5C54C
-7E6C2357F18CC07A6D33769343630BA8E4F5AF449465789E48041597A7E4EAF2
-C87CFD08ADEFDCC8691EA54E793C2B2F6C9798C1207AAA3DF7073C15F67F4325
-D881C081634073B98A5964E40744B976744954727CB6C93E89B8B7797D7AC5BF
-71F0FB317CE8DB3452FA7F0B6DB6EF9A51372E333982016D2B6F25B018C8ED5D
-CB31BD9001BA52D967639B6DF4432BAB04A0CF33BC4AC5216BEFC9B3E7ABAB2E
-88D5C93DDABF3ABA3D48781C168AF2D36B2CA24E3EAFFED679453913701E4796
-01091556E4AFD9BFD85BE266F63EE32CABADDB819911C2496A876DF4FE185EE5
-0CDC8CFBF824812402882061FDC2AAE8C85BF2454B513291F8D3C9C85B6DFD63
-628806A9B99D8D3FDC5B9809879C7BF34AE7D6E49736B8E7BC4E93845EF26FB6
-2D5DD1BCF13CB6A3D92924923C1608CAB3E63190854EEEAF7502D68A48194825
-43083BF0607815B532066C631C52C1B8BE3A1C9CF00FFC0C6E044EE75F097BB9
-7D75D7D04E9F412D0823ACA48BB0375270414AA399C72B51F36DBBA81130BD5D
-94C5963FE39F8FD28B1B9C93306424AA6F70795A49D5FB9A567D62E4C506967D
-6F61E3E15659D23A3B8A60CD0F90888C0B96488612E5253A7855BA567A7C6B3F
-1973A96975AE4674332854BB40C4051194A564EB78DFAFE80A8CAEE74C42CDA0
-9254462ED0E1CEE88E0346672815FC0559C8C524FF2E303015DC709A239A2C50
-E49EDB65EEC7EE3A937386DF93D1CCC27270E50312440E06C6BBBE4E8792A47C
-D063898C5F34D83BBFEF71DD8B2C081DC8D122A1B279EAAA44D69F5D95ED7DD3
-0820BAAD9C6E3AFF1E24AF5CED94E682FF612C44948E94B982C73A5371D97B90
-4BD25D3850B26F71F71EC4EE368C88582B1677A57403774BC15AD4A153B2C112
-537EF525582DAC217594D09373E745EFCF65911FC804E6CFB441F24416AF11BB
-CEFDCA172D7BD04B2E207517A4E578F622488E3D88EB4ABD24F67CB3CB21394E
-8B599E4F646A4B4AEE8424B2E322CBB4F98D00FDDB7B21FB72C9A2ED08984504
-42FA811EF7E8B99FC632BFA1044CDC831220988071A33FA5C4B4A0058384357B
-BD1B1A113C3C4E1FBE658FB25D111B15A4C253AD44C331233147F289552664A1
-F0C1F186810459C6A41EE0A53EE20149ADBB40EBE3775FE2577A52BAEE2DC9D7
-17D807C801572DD209956BD69D672A731CF9D8747231EDC0BBF0BA5946978A0C
-5AB3D4FD0333937C949AFE2E92617A4B46BA01537494101F96568D28993DB807
-3BCD5078A3D49E9950A6E373E7E3E08BED02CECEA8A739985F01E1C4293EEC78
-99D9A46E0936476C2A50CD25F3D8BFFBAB66B8EA5FEC0D0B6DEB314D2D06262E
-C6B39A36606F745819252FECD07F53AF0FE4792FD615E329A49994C63EF1AFE1
-B28429C1E8A94EC01D0FB2EC7C0F8DB9DEB0F32947528DE7BE3D008BABCB1C2B
-0442AB83B7945E4682BB77D4BF15855464CA59F6E2B67F7E97675F79A78CFE83
-C0313A826C35CD5B321A41EDB4B799B175CB0A27B60D71D24F4286635A354DF6
-84A777DF84AD8D3B4FCEFC6D96A8754C668770DB7A7B200B8E542B7490152BC2
-24B8CCA8E1D9A3BCA2325DAE70DD5109977D5F8C0568AC55F70812B1841F8017
-4CC2C36B4D8618D2B3DBF87F54C2141AA75ED0B5285D1EDA2435BAFC99F518D2
-F3F41B8F674095D15CDC366B8F344DD917EF647B9EAA1F499DDE25D39EA758B7
-D2EDD23E00B8182E9410C14BC31A75C2FE70869212B5F58915F5EF929C2333AB
-B9833686A29D7D43BF99D45BD60439CDD5FE3A50ABD328F6C87701C714359F45
-F8664941CACECAC72308503C9FDAB00EF7941AE1EA57A3C4DA8835207CF56F29
-0EDA202E8EC2164041701D2BB5C31F46F4A7AFBF71D8487750E76BDCEBEBBDE0
-B0096D143E923F7B5E6AE139CC44177E86FF3C1348B097004EA8D359D45B7713
-00892975F37C2A2141432DB9D43D84F650575ED5E05DEF92B391562B1EB58CD4
-7942D928E05578CE75CD38458DBB5A0D345A80193D36158A4BAF4E738AD1CA62
-81F8E071DFF98448ACC3D3700A79FD05B7ABA3C06D166EF11B2C622438A60B25
-2D913DD1C1D5B84DF40097E303DACD1E7B6C70C17BFA2851331B5452DD60DF6A
-D00501179E18756106D813BAFE909E32ACAAB36785409DBCFF0DC8EF504D94C6
-1353141DDEB71F73E33AE10D48B356797E2E8B5FDB99332F52728E4DD1B01ECD
-D43535A1A32D54EE60A6168EEC7156FE6B2AABFC9C6C502B8B19D69E56FA5BBB
-7B6ECFF2CD15C964183F3358D2C2D5736B11724E8B5B070C06A729A46606EF12
-2471EE0F28EB50B0B89334C903BEF66B9E6748EB62217C8C4869C2477E9D8D07
-08A53DAFA31818EAB2C9E7E3AADD92B6811B9E2EEC1861A56BDA86590BCB2ADF
-31E762D31064C82E4517640539A598E68203C6296ABE191BA759BF5F1A64D9D1
-45A10DDDE932C24F3FD7EBFAF21E43217781334472AF231E4D0E41C509B00B33
-4494FD54A54E3EE5A7A30C148BBF3A8141F825DA530769C32B52BF44E11C00C6
-7F3F71A041287DCCC2B9BC1CAC1F393F8227C256F139607829D18A1EA86BB97C
-AA02C568EE3074D8D72D32F53EC60598617DDA06352F83A66123D2183EB58246
-3078ED99ED3A3F326AA95D6E83C2CEFD6B78FE2F2E8BC6BBC96FBDD27E443221
-B2C9F258F0E41C0BAD87EEDA543A2240E4ECC1A0F27F8087310B21211D133DCD
-91B0F57E649B550193B0A80946B9A78DB36AB95611BDF60B7F4E009306D7F92A
-8E1092B2B87B57A1A72BD5F231F0DDB91B9527A1F128FEB68372CC0704900993
-7BA65818F86C935CE0007A6FF9DBA13B4D2684BC40AD7AA39F7AF164700E91F3
-82B2F393C4D071A58830C91287450D37091E2A750715BC7920137FF21EB45E14
-10C278990E7868671185959739C2373BD957140285B0B13D9BF99D0D895B0E64
-6B4D1B9BD58268B99C6AD6339AA9AF00621C5F19C604760794992EACD9AE35FB
-8055C9EC7B456824CCB1F832A9216D853A2E74F66BB9006DCC3D5E00331A9E4C
-17ADAF039C11DC0ABB78144D9347A2A2D5A1CA5686D602D9E05EA9F5258BC992
-2FF2D4B6F132DDB2B44CAC473EEF92509D609BD925BE5F1E0A4B17AFB88FA1DC
-077B1B4B47A0C2A6521D98EFC7FC0618C07813ABB0AAD9BB44361E6960DD86D4
-1AAAF213B0E459DB193E47382564C8B43D5E2BB1A76D9B00CEE59A0BA1EB70D2
-5FD3907964AF0FCE666350CB0E71A2DE9F2C38068ADF8A80CD08AB3664F0D8CE
-CBA06D3427E2D9CCCA8BBBBE30D76693A6E33F0FA093CF77E1D521E5CDC094E2
-C7C078E637FBFC23BB92C158411B65E3944EC1A307801D88DEA7D0ECBEFCD242
-6261F2C8F21353EF10EBECC427CD82D5A05297347024E4A4A1429C09A8675BBD
-8E9FE30DCF0C1743AF8E2FCD94C5FE0CD84148336D6DE4A2FE1B9470C998CDB1
-BF1331AE586CAE6EA795E063A7EFCD5C517BA446C798CAD723DD60712F59E12D
-9E48DEC3C28462EC24A720B8FF706560850F34D47AC35FDFD2321CF03E70CC01
-C17A5FFC311BC4F86FB8840984A7C6301DFE29DE27E61D4E2A21B45E93C67DF6
-6851DE050CE8EBDDC60D80B3EC6EC129A237F077F1CA031B64AEAC2511BF0CBE
-594139930826B9C08E2964A58F135EEE5C49194A77808944FFF53C33EDF831F0
-9C6F8FD4986BF5B22AAC4F363B48B60BFEE02F289286435CD0558847F9F7670E
-70784604B75C9B6EF327BE547B26634D77A65BDEB092418EC321481C0E54A8C1
-520294C14422C78CA00A56BB67E75B8A82F2D6F0B4536D8F986AD679C98C4E28
-1233ECE67645F2852D63608F0661F8E6F4B4AE19CA443D58BB0224C15C7250F8
-1EAB2E52C334811FD9EBE0CE83ECEC82FE75BAAE2970CFF8A48D96574A89E270
-EDF3172C1B1CE073005F3CD914283149A6ABFA26979FA942C02DD6D3B25DE635
-638EF495A73307E51FF0CDF0024E872B25A00D3BDB193E02547D5D22BF0DCCDB
-97C60D1FC7D7E7202F3F8AAEB43A9DD8CDFDE52819AD152C5DED4CCE57F17B73
-4B49D33E6A94995F9F1B65E86E8C601502416FD071E53FA1117014B9B6926183
-58A94512114E8E65A93FCCBAC3490506915A03209FEE47F9F375F74ED3BB6D17
-6169D49650112156515F95AEF30B40886F7E76977921A91A81CA0135C45D8FEC
-D1882CE1FE2FADDFE51FC81BA5CB3B25FCB1D66925A83F014915431A6FC8DE7B
-64BCDBCF86AC60B8DEB471513A77A7D706F95B7831F6CF572BF59D2FFC17487D
-4C7C1F072BFC246D205E5DE07CD2C847B5F952C9F4A56D5F995BF9C984059E6D
-BF7627540F1385DEFD1B10904F38E89B04A2A10AAAFFFCDF844B83C2F42A96A0
-A9A56CCE03ACAE766ACCDB94D5E8EB6F1C65AC89EEA87C8A10B2054C62C7910A
-AACFE3C4598A034FBE0EC9265FD121A036103FB5EEE6BC3A75F5DA03A4ECC38A
-47467415C26A30863CB6B554DAB4D31841E6EA7BF3E825213B1B8E937832D271
-CA30CB39D34949D88A6505FAD3767CC6301AFC64F3B7C7314955D4577D1091B6
-D17B5A86F6B03FE591ECE351CCA301AA3186E8CAF897DBFE62FF9FE2BEDE52BD
-8BF91A3332E70912B4F41EC27A5D843F40FE6F2E9D914B19C2B717CB3D758F9D
-B38436B22EBE94F93234F57A5C10FD16338DADFD5E2506F36CD2C597FA71FCE1
-6DAF07C543FF764C69FFDDACF6E4D36FBC43B1D12E3D794E7D8CEDE19EA5A840
-73D9C27C0802B264DBE0A88BCDAA28FAA21768FC9162FD523BB88B33D47B83D4
-CDE6EFA33F908DC4D08EF99A66D4BE4F3B0EDC0571DBE24AAB7BFE6EF61EA800
-63A28D318F872BE817BDE61FC18547BACD2E20826D31B887CBB032F603D1A8B4
-740C630684D7D5277C102622B021A94BC6778E95EF72EFA105629F941589936A
-8637EB305A4D2D34D4E91727487C4FD3AD1CD54835245511F92C7D5339706F82
-2166652497E715CF95C28550648799556B3C930853165BF7529BED689BBCB4BB
-7BF17F636C8550015E1F5D1E9B84E020FAE16188A0E5D35219887925FDB3451C
-6D748C7C01006F48D61743803C4AF43D599CCAB72B3BD3D54CA06CBEDEFE6580
-6CCC0AD4825D300AB511ADCB73D598D72A69BAE2AAC68E83F6158B90CEB61418
-931882921551622EAB521451A770B8CB37AF98066796923B2D2DB0360C8C50EF
-1C38F511663CC74139C3A736C8D9E32CEBCD6C76CE7BA90BF99F8438FCA9AADE
-9C2D3765A233F3407AA935C2B0E78D20F51F03D4AF95FD9265A5B4E81A70F365
-F7F41C1DE616150F7318725AD035FB85A1CE2BE0BC985AEC91BB729EA3C50696
-605A1D27690E1F9A044F0046E3C051454AF414D8499020ED8C125E50235B2CFC
-4E2D40371B113B3F6F5A5AB11D9585D451390AC886DC4A63F09C99EEF844862B
-394BDDFC170D5D2D52F334E260CE7F821A880C0FFD71762C70A0C182331D074D
-05679BC6B45D3AFE4102007FBB7E8EDEEDC678C35450E3B591D9DEC9E0ADACAD
-BA83A5AFDD1652D4FAC6879A8DA4D0C7F06F2C15D19DBC96EAFBEF722FC02F2C
-AB5CFB310E84FB104BDF6E2F09915EC3AB1E37F53FD59C4EE2B5662B1AAB849E
-554472C675AC8EF847039923AA1624C6C32286E9A458877C5FCECF7B6CA1568A
-C9D47FDC77151406D8F87D2A40179067FC738EC9CD16AFDE2554C8B036DE44E8
-E028D2748C70F456C5A72C694AB55C0C912BD509766484D026BC6C9E086CB98B
-FA3D2D198527644A5913F48ADEF18C34B02EC085131FFCB039DA40302BD725FB
-C1624B2625B7E33BA8DA5318C98BF031D08363172BBD64F7114737F415F3C0B9
-593A6607699B2795F3AF151F6474CB1065F655D4F61F435D6D737D89A48174E0
-48916AD8E74E9AF0864D378967B44384ECFC992D07F3525FED977E13C8E08BDE
-E6C73A9FCC110D592769F22FBE3AD16BFAC56612EEA2291132197132EFE4F8F8
-0153C23422BD913B9EAF0A4881BA22E6DB148C7120B3100321880B8938EC1327
-20B4D8DF046B0724C980569222BF08DED088D39E613A0CDBC6069B0D3D8782CF
-1383AC14455985A6D26E7686BF6CA39B87CD15405D783A95BC462FE21D14BD61
-4A7AAF05ACA0CDD079E4776D48B6A5FD0D6E6DB159F09358B93CD5E98286982C
-1DBA18A61D8BAFE933F94D8835E297B886585724F460A4724C706E90B6B4A938
-30A1554536A2A6FBCBE6145136A01EE051258B3D2CAA0BE9FA5D87617EAF5B81
-4989D0100D1DF1475D19591D4962F269788484833D4297B5B4AFB56E21AA7ECE
-68FCD137FB888FE908ECCBBA4218026C0EE52EE046CD113B5185F093BFAE7F11
-964068B1EC998136616C69FF172829A1B24571BB5B6C6C3A9C4683FC99900F69
-AD839F972E4318B5DD3F189F1F7A2173F8D4FF60C81847792ECD2D26222CB479
-15A6B0FB560684CF2129879002019A9122EDE9E4879194AE5A363D91E7AFA33D
-07ADF72E5C0B2B13496591662E1D14C0B1EB1628E59D7754E14CF28DC18D2269
-FC99697B1976ACCCC77A8E6FCE44CD91B4F11055FB4735D9A2449C3D29CFCB05
-95E9F08D0D359CF454C25C64248AB1AD08D71B452673448214A4AAA787623E6A
-FE57143A557FBFDCFBC6FF8D6939725B59031B1C120AA7EA05FEF8123E8CFC70
-6E4C6F20EB68014DDAC3DD5E8DF02C131C26139D1266EA5E5082C07E1883216D
-D23AD5C840F04465A12DE929BDE69193062E814D93D681AF67D50D2B7B1EC175
-27AF17F8F538D09AFEE2EE1A394A6A6E8DA057C74B842D9A75BAC2B642CD7B93
-83CEC2D79ED00016D48CDA845F1A800626239C919313906B5A7D1E016F26D1C3
-543A67AAB698E21CF45C65AABC2DEC61CB78EFC8FBBED7D1B7D1FF47FD5B5EF8
-1D45DF65C69ED1485859E029DBAB233A93E9CC86BD1509AFBD3F4D09655D07EE
-2FEB614C28A7FF72B4B18B38FAB217EF4F59627B7E2EEEC0AA2D9739DCDE5062
-66E4CD49456D111AEF35AC11AB1843A5A6E2343D111A2F039554C195FCA18B4D
-6EB5A869E06D046CAE3784DEBB455C07211257C174A28B9A01A8F0787A428BC3
-B1827F1CD86E9C9F2279B6EAC9BA07CFB55988F6622EE68B9E832C407FF6D3B5
-04973A4EF13E5431F06148CFEFF5B3A31D98A82D8972907C6557A33BDD20D053
-C967DC3399E4F5D61439869AFA1B293737F877FC4B544BF61AF482CB7FC1C1B0
-9780180EB8CAD7F07EF95919B4C44B43681FCA7E0818205450DBE4614CF0DC39
-28A303E4DB82C3C2289CD3323340FA5B2086E34DCB74C4F4DCF41AEA4943AA48
-8A64DD91FE7102BF4E40A43FCD360C3B0C5103BDC555193FC0AA209D9806955A
-5F89B92A8AC3AB9AB3F036378B26197C56223E6886D0F713AE5CC32C71E4B1A1
-D5BCF53A9213DF7B3C0198CE0DE819FFEEF250132150EB78D61CC1839F9E4660
-2BF7E88C072F6B9E2FECEF82A24F959B3D37A3E77FAF592E1008E8F5F19EB9A2
-4735E8F64343E2CD69C298A6A9318C09E8242340BBCBFA81A83958CDFFE39146
-39A143B1F5E3247D50EEEDB18AAB03A584EE00D470E59E432955EA484C76942B
-C4968C023A1143DC66D7FDDDCE31E99F41B969F6D4479B809D3C9464979275C8
-EEA46290956E7359F091BD876FB1EF5329048883A9F3C0FEF768F402173CA5A6
-30D7A5D57D05A4A8824702E76AA5F5D003A78E133CFFD42D99F6F02082E33D8A
-90C7437604DC3900056FBF8F5F1AAB3853C554B8736ABE01FFB1E5BD575F9D30
-C36F5E11DEFE09E0A561FFBFB3E9F0E635D75D545246DA7D8F50CCED8BAD92D7
-0FDF181FB3DA4FE539ABDD8FC3579490A87B674B88EDC86D2F6D39CAF33AA197
-1DB1E5221B056B5445C2FA6447243474B1EB79A4B03B136D485AB4A62974F0CE
-01C65B7CF210D1A9DE21849A9255960692068407635A23A7B0F0265ADDFDE177
-097C1F3BD1DD1D6FACB7CDF110BFDE0B2963269BD31E1A4358E4626A9D3C8563
-3D44F9196D567ED72539C0B750DDDCE780E14EA3B683CC098D464E4A757DCA91
-A7014851D8596285CDF52646146DD5DF679FF81359DE979D33DF491F3662C87C
-469CA72935A4C3EB71A299BCF6E1B3F173130F86859A6F6F469B0BF3AF7D2E73
-0630AA1973CC564FBFE0C752FED518163E5CBF7C9CDD22DEFED51619838136EC
-174D503ECAB2323971D68A3853818CE57A77EE2468FE5C7273C77B29315D98AD
-8E0742DC918898F2F551CF381F162186F87BCA3C6DDE7438E1B06A4609FD3BC9
-2DFA788022309AED10281D4CB3A71A1595BE7DC1386240D95D729E251020B356
-511D5CAFD847AFFEFBD79862BA19DC4C7951970C0C9ED44ABA02A68FF5CCC246
-13BD451E7C5913C5DE0C523612E27FC923C74BFD5677EEA6457B02E0444A04C8
-3FB26E224713F2AAA3EA3B5FC50A36EADBE3AB0777D88C151F8C7503D20ABC11
-0CBF03C39C97DF7E43DE551D9E041EEA9C86AFD3518F9E9A8C2AB570E531D75E
-AF59BDE9780919E64DF81AC24EDAF91DC47EBEAFBB5BBA57D5800D801C116437
-C63C7A8DE84782394B4CB699A3A0B0E3798324E1FCA522F5854ABC83B0D4B418
-4D408A0B1B900E8602A3EF6D9EE3BBA3DD876AFD25F69513FBE5BD51B401864A
-76255A5E64AF2B28B3B3D138069D5906FD33483AA62D3FA2A1747AD444C55A76
-93FD19854E684A584C822F4A9D2C9799E83230E8774C0A5942806F3738AD1425
-C055CBF364A6EB3D47012389FE430DCFA3440F84500E35843CCBFF860DE1DC66
-8F32943568A0767A3989ACDE3FCBE70B0A2F59012E677A5453ADB258EC8169AC
-BA489273284F03A6875CC457C5717A97D7B945CDA1670ADBBC5D3FD622EF483C
-99CB7717190B5190408DB73E488FCED65518E8CA3EBBAB43449DB5F57810B4FE
-6695F940926DE16480831E8E4DAD65074D989C772E1A143547200B733F3CA84E
-A9EDC51A074092AB4963466806EA91E34EE4439D2C8F1AC9DC3B31AC04F94641
-D053C4B265C3387BC718B363C2BBC6C6F284935FD9C7FD7BA14A32B2C2AF1E4B
-3739A2257C60B5DD3715E99B0EC878442EC6305224F09158B947670AFB74597A
-5224189B403BA81BE4404900BA522E4E78AFD79F96E5F6549711D417AE05342D
-6BE3A1FE0BA1F1633391DCB6E798D14A190C6588161AE82B101F77C973310252
-E90CBFA354C89B1D816BF1370F9345834A05EFB21E8C52DED86BB69EFD3C3764
-DBE34A571602F05538400E4BDA2AF7CA8B50C28AFC821B251B9EB5C3F4183836
-F27CBBC378621A244DD82BEC981A6D1A132EA870A09C3AE661B0EE145C2ACDCD
-317B8B0CCAAFEAE0ADA2A777359170183C9A69E0CD629C17A0F84B3C32B3862E
-2D4C313B9A61935F57F4F93D5292880079E6071682E80D9A87DAD6C609D9D141
-14879B8CA8A7449D04FCA686D44696FD8331B9E6EE6C2B59B950DE663964BCDA
-74BFADA585601819C06FE1FA3C098F92E96AEE4FA6F0600718B127D220319750
-EACE38DCAC4AA2CFA1E5BB904F4BE757C68583F875426434819631882F75FA35
-62A62AACBDBE7AB41261B68B1A553C93801723747A90D71764DAF8FB7FECDDCE
-7548D5167D3AD2CF89A4504EE7454F3BF2A8A6F8958AEDF25729C61A38870C7A
-098D0F41A77E4C5432C4FF56E6C96BB34BE9276727C63FE9B4246A41C614FB89
-223CA46A324DC52FDC7186B468771F4F7033B702260CFFACFFF59CA7F6253CC1
-7344A2A4A885C5A5090F14EE18EBBEC69EC24D809AAA923FD9C1B386F9A64530
-C6379E44AF4824D13D4F947094DD3BE24FBC7D790E6BD0F1A6B3AE63B352D83F
-CD789FFDE1965600535B61D91C4C2C44E5ED051715D3900929FA4C13C792761F
-448E9B00E59184182398DFC523E990A2432F6C77F05C7A1CF7F24E7E5EB1078A
-9769D53ED58F5523C6FC25441682DE3A91B0B14AC6CFFD2CF1ECC6264249B14F
-9F1B9682E2A21E2A6070FCA63AF62E2381AA5F4180AAADA3E775891680F3BBA9
-55CBB62C7E80108A348AB2F99B664A9667183159DCE3FC08DDBCFE625528AD54
-9E3CF770CB13D05E4F9424F38FE35074CE024B2AABA2963A5565C70E6579EDFA
-A9DA79C5E9C678CD9D988E0EE58DEFE3D6959675A004A236C4074B0452764632
-F6E5A18DDF3942BF038CF0A2AC9AEF98A6EE6CE5F2DEBE26218D2105A3807508
-5DB199DA8381E56E52FF8CF776A88DDEB9312BDD07B6AB03EC9E35876DB3AACA
-9CFFBA40CD426FEFB6992C89FE4BEBD80681A1E01701A3DDBCB85E30D7405F86
-21D1D5ED21CB1F559096E2874572221B95FE3528F6571E46D12A89DD347CA976
-F0E0BCD152AEB860F53707461A50A4A2F0D5BD384B44C4122FCF544C3763A8D5
-D978842034B5B083D2C02FBC4AA897BA90BC2DCD408B77B0D14E9BC4F52E1F01
-C5C8BE41EBBA87969DBD1C48E69C0715C65A954603BA69CD423B641FBE43E859
-2D8024429D19182CA87670B2BD8F0488FB68B453DF5B52DA10A2437528FD55F9
-94C868088C61586E09CCA9CC24B7269FD330B69112A16776A08491E653DE7A13
-50AB14E3E6ABE9ADAD7B7601676AB0AA88C0603C1CF6E07B1DE7ABB6ACFE948B
-E1B9DA9237F9C41B48F5F0708A0F3E85F0A12F1369AEDE38ED12F3FCB02238E9
-2B674E995A7DFB44459AE09702BA0EC70737213594F0DC1A5D4A9E841BE5D985
-5C42F5A9D5E25CBF85771D0C6D14F934AC5D3622EEA3419D362AC03FF973715D
-A82F54E81D9A2DEA6D5047DC4706B71F5B8929C7D11BFDF1EDB5B4574B8CFEFF
-A619B01E0B73830F3B241DA42B8EE022B639165C26445B1172D8F625E24CCBF2
-F86E2170EE96EB1B0CA10200E393DC402DA602415A150529C2022F9C4398AD58
-1BEC5AAB4A3D18C54E8DB9DE2AC089C066CAF988FB093EEE303FC99D12E355ED
-EAFFA90F0426CFE25A69070FBC7376214B3A8A3FC60E560009A2159B07CAA909
-8DF022C891F54C2DED1391AFFE894BC990B28EB94A7EAB870799E6D0980974C7
-99DAF9F1464B4F3603E3382F195DED9B78EB08700546509F730E2C016AF19088
-289998B271B69468F6319AC55D7BF218CA407BEF60366CE694A4DFC9E3CCC5BD
-9F30F14123B1E7CDB50344C45708E600A08B86A88AF3EA67D85C9C19D9AE3189
-2B3373E3AA286D8F4C481930920805802BFC8E51696CD82383653DACC794CB8B
-F115851597EDF37827EA38B94657E9C7030CA1C46D238A181B3EDE8A3217CCE8
-519C5D0F74CDBA7DE1C0F2D47AD98FF5B1ABF695CFD1CAD1902BD47F9DE9EB5A
-EB190C525E83020CC24830F52ED40DD3D5D9579E3CC02867918BC5B60C6CC68F
-BF2DDA27F17FBF84BF7C4DD978CABE2C3092F6C9E201B31578FAC3D9655D8081
-FD8BD9B977DFD95FD1887AE024E7FD9202D3662B5C75760A4E70B08DA6C95006
-E7F7689D66DC874568B0FBF98B6C4E5CBFA96C306B7EEEFEB0A0D5D96A8472E5
-0F649A6C61CAD0D90D46C847081E496F4D523D471AF73B82CC6D744C9A274328
-7969F66EE4002C3B82B5ACEBFAFCDCB77FA8062A742974C27D4A4AA37C3B89B0
-12E8B6814C41776A41652A65D6464C8ECAF0FA42A28ABB9E84841D5D9B334245
-22EB2B835A002038B512C633BC20D7BF59C4725094A38CD11EEC59A4605D1CFC
-E9DA9254910AA951D47A7108EDAAE8383B51059A0BF6357F698C21D9A473044B
-7828FB5BF05DB0435CB37840BBCAA368D07CF44ADD383E521731A300CEDE2F2C
-B108643D548331850F51464E8AE5D257EF53D51516FB4C4C4176A6D9A2F46DB0
-70B10360A8DD870C0B654D1002B8E25C9D39DB5AB34F4D0857D980999E5ED4D1
-5A33CB97414E39BA94A9799412CA6E08BADDD5F33C33A7BBF38B91F6E59B4C52
-25E8115A08ECCC5F54EE4BA92962A12402433EF12CF3FF90D50DA8939B50C1ED
-6CFD48FE86B06EC15443B257E5377BACF3BA79C1C90688B54AA9D4A56B0CAC8E
-DFFBA242084DD87534FA21E0174E4D342DBF3E4A44C18E6C976E5164DB749528
-14F598CFF640A4DE7D57163F18714D35CC9A10D727187097A0A6F42721D78213
-F1BFFE950D5505D9427C9D7E19D99D231001D2BA8569E8E49CDBD82FC0E358AF
-A4ADF0EF2728D289FE4A5F4F8D6B8AC38DC3FAE985005EC396444CAA7582843E
-B7EA619993758B7174F39155E4A0C36122729205C09474094F8E5E48341F8368
-702E7A85258052F0260B1A4F7E36D679E13E28FB0DE87275A92DF72585C1AAA0
-772ED992E6F49F3B392085586DDD87E6BE16656C673ED5E134E17501144D84C7
-B661005829B212EB53A07F7590196B217BD097914E955C5D81F9B6944AC83716
-E10A2868234A4DAE402054D384BC00ECC3C8DB95A443A4211A125751DB40A283
-CB3FE6125CC609A97C5FA631213AE1CAFEFAF41182459E13E97A4DA186D613C4
-08ECBBB9E6A40809883266EF6E68B07935245823F358C4235C446C750A80746E
-8B156B6D95B636700AE9FF44704AE2DEEF8463282B171423F24B921874C9FD81
-5E6905B6266EEE8EFCD5164D8985E2EA84DDB0637B09B95B61A94AFD5899B26B
-917F7984A7B6206D2859B4024E80C71B47FA862F6F648C444C8920FB8A6D6F68
-5F1DF4B28A8F7B3253C9FF97D7676FD694FB420454041D4249ABEE685276117E
-5F59C853078E6C1DF2C54B9DB5324281F41AC6106FA7246C2BF540DE25BE4E36
-E2572AEA0A993F57EC8A19E7E78A7B8FF6628FE898184763440C8B52F8A8214B
-C1F67D3DD2F63C60DB01110A998A99372F63DEB1002AA6F885F356B0CC8CF6D7
-208FE8B8586B03C760F26C300CCD82811D71C385FAE1FC4770027B2994BCDB4A
-88EDEAC938E4B3144DBBF9A921A429824AADC7D1D71ED3947763F97E5B227336
-E0D5C3108EA260DE5237B6324527373B0937873586BE1E408B2326981242EC82
-247ACBF8169B5FAC8D59CB8377858A44458280852FEA8420B3A7C6E975D5A0DE
-F871DBEEC19DF6560AD6760C0C69388C4910BF79F3CE9B8DBA56431EE3F60097
-BD782A01CF2DDE86662D878A5D5F332BAEB6C2866129120F08A7DFFBCB908475
-A6B827DB33150A8A2FA8C8C942C0E5F26A6CB80D1944C630C421644D6BEAE3A1
-DC78596083F8E0FD24EABD83E2EFA91A2FFC5A31F7756ADFEC46F6149F7843B8
-1CFFFEFC1A3624F416B0AE9E65496455825B53C2ABA1CBD2818C9F60EDF6AB64
-671A87B5B908260E44110C38841A3C2C47032CA91B904895063DB6F1EDFB0BA4
-5D28A4D3F8E1828BC4409BFF5ACD5E0D89CEE8A2418DE054498E8D1C82081E58
-E5365C9993E10EF250A644A4365E34C0E94BED8A638F3281404A8275AE7237F6
-14AEAEFD6AFA0660D1428FE7F6443F4686CA7CB0F48023D3D165158A2A3238CC
-0D318B2042209B6522A7F42BD4F67FBABE76D3409FAAE2B16C27C5FC4DC3D2B4
-DD15497659235D1A264F50B912A13F43637350FBCD3BEACA5D3CF62260F44733
-48A4C4FD285967AC60A49EA5FA8E253C009A1166C8E402F83F5E6A460018FBBE
-32CEA943B9871D9A4559A6EE776E46C6FDA4692169F5CDCD9458813C6C32689F
-AA853F11AC89828E0FFDAF7D8BF25D9FA9F900D554CA7B2095B5F89688A5A6BC
-B39508E0D96C8E33A3894A5E00E0A97007B08C64E1A14D080F3E2594A5A029E4
-305EC3790B1CACC592644035C2279226EC4227E8DCA3B15488173CE5231221E4
-A6DFA0FE8BF3912843432CC081AA1396874099332DE150402AA21D1DBA056548
-F6FB3E96488BD07DDB8813653B67C9D4CF67E5CD80C00EF70BA738460AAC255E
-A0AE846B04C59A56009EB9CC1A2F0040C20CDFEC2FF8AA1245DF14D74C71B769
-572A15F5A8E627EBE5C8081BF6B77E251340C30EDDF3207C7923B7C70FC00927
-AB4F26BABB73FDFB7BB8002F96F1B14C8259A1A5CF1DE0EFCCF711B93B1ABC51
-A92E11E3B43450B7252E3FEB3491B36C18C35F5D8FDDF35D0D29A6AAD844B4B0
-A94079C01DC7139C526DECDE8F307FB8687BFB484E21A9D97FBA35BFB5B85927
-BEA114B7CD39C8FA313AA8AB4995C496DC3909E45ABDA71126C5649C1D8ED49C
-C99A956859216BAB195F56412B73682520947030B9C8C3A760BDFE4F0457ECB2
-D9480917AFF2411FAA0AE36390D14FEBFA2E682C04AF7AAF447160EF4CC7EF70
-D50BC32731B9CC9A79D378BDD5E5B33319A2F93F500C8B88D54F6465A8E66A4B
-A5C81A6FF7BF8960C274288D3E3C3CA91765F3FEDA39EA1F5FD1357346BF30C2
-DA09C2A5B36BA44B73F2C1F2F29A08E86285D9A5B33C97F7FFC877DBCD2C5098
-B5C6768E13BBFFBBB9E385C5DE70564456F45E9C5E48C92A4E12F31206E52D72
-6F1BBDCE33FEA115502B2DE84F9B0DB87FD0A19ADFFD0D0AC5348E4DAEEB7BE6
-54A0E92CFB4BA347075ADA7B07FD44F436BC74DB1361F0195B9DC7CA76DC994F
-BD4AFAB58C4758331853F35B90D737CC6BB90F82946F1CEDDC36BCAFFBD91778
-2C45352271F00B553E70E1C7699353C21AC2FF5269D5C070A24642A20F959E4B
-EC352E7BFAB8C8CD0259A47222B98A223ADAE09309CE254008D0A8215890541A
-2B64D0AE4846D56B0E296C2BECB4E6E15FAE6189907A772DCBFE7D9A534DAF45
-E9806B580D6E7437D6EC6C212918E096FAAE8AAF2EE471A670487D9106C59C8D
-9E0E72CA5B325E976E534E0FC4402580D531D8873DCBEF1FA5AD86758E8E3000
-7CC778A190AA1F04591FEC4DC81DC3B4D9
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947
+5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F
+4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F
+E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF
+9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9
+89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87
+7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3
+AAAEC15ED0F362471AA58488620156F3474FA59CA080EA96FE995D2B3DEEADF3
+3141D157481C66507725ACA5953CBBE1ACEE7E3F02C72C6552D15EB3D612730E
+61A06A43575568DC3CF3844BABF04CA767E2995196097015E0C4F622C4356B6B
+F41DBAFD797A4B9D7AC22332C552043EF98913D0D9B50CA6B7CDAF903BC5C04F
+D20A952BA5CC35B646ACD0A287C956B98C450051AF6AAF79DF37F8954473F8F6
+652BF03AE2AE82B99D820CF93F5FC0BA17EBD7AF90313E70594EB5C354023BFA
+07912408F1757319C7288E99872B907D5AB583B082EEED8AB079C63E38B07D11
+6744856E689A479CB3A8BC081F33CB06755926204981DC0A45B3ACC18F6865BB
+EE2C50DB43B62E3630FC1D9B1FFB3BFFAA6D0A20C0381ADF48E4D916BEE85BA2
+BB40F538F55C11D50F882B73913840B45161262BC8B0012694C3EF26452F9B77
+2CD7C7AD6BFEEAFE31C8A721C2D46AA00C10681BA9970D09F1E10DDC250E2AC3
+9A160EC8C9654FCEB36AC2B586E978D54744FC8A0E963D8EF6E228ADD22D093B
+B889C940206F504F14DD921D909BE06EC9BACBC23EB9E9D137FBC983570FFD2E
+CC5D2EB5D2A4A8604A4AD418B800EDC6B89809E0009760E9470F037FDD15E649
+93E9C8FCD9436AF02447C7F5AC380FBE69D1405189E8DBFDACF0E7DAECFA095F
+E6AE1A2E9ACFC032BA9A5DEDE9DDEE22A88D9A1F1E0FD9BAE2D88FA168386D43
+4B93EFF3AD84A9C05A80462BB3A940B2F7311CF7054F501BDD4F1347213C9327
+5653B73E9D78866901235C66B0C49CBDE3A1BA3A11991E6B8443117745D96020
+38F4A74D9676E4E99291D4420C57ADE4A8D5214D07B14916D83DF15114393048
+FBE0DB83223F609ABE120AB877FEF549B6E2389487BB7ECF1979BCB0785DAD1A
+2916961A1DA60AB491FC90BCD6578571226B4DFD204E75FF18FB5E72DFE8A028
+C66F8576254930567A877DBD22F8372E7BA4F23F9497ED653906F5F67A66A1B2
+51957AEB8D443550161075E5523F3D2AFF386E2640B276C3EC5EDAB74AC0DC94
+7D975D7F5781A652BD13AA7F97ADDBE68847167997ACDD038E74E930D8248F0C
+2CCBC094031C7147BD8D4DD664184695CF8C474845692540FE2B8A72CDF9DB62
+BE05E15A05F59D56E5EDBE7C371BE5CB3B276FC7A03B5942057EC3136591A1B9
+15E504DC497B663A9DD1729EFD1478C233B9317351D000DC0982F061BFF25A3A
+8983E560AE31E321DFB137C77C0AEC704F8DA99024232F26AA6920D58CB17DE3
+C1BC8E20988FBC4705E594569BEFC3F6666785B2FFA49367E3CC695F2A1EB846
+DEB37E120B0F4C0783C0D54655C143C4F74DA0690C6D08D07ED225F361BC0F86
+572D79540730791DCAC15823991FD5DF1AB8F25F84EF40C085B17C9070C59EE6
+31DCE45AFA78440BDE4C69A4D954C2006070A2C310179851F2D39B1B5D3EDBAA
+289570BE80F25D75116BBDA61F002B832F9EF2C32B53258B15A1174225168B28
+EC3324C6EC61E5711811E658A1BA65C8D2D47CEC6071CD88DBCDE9CFD2BC34DF
+1ECD2226AD588B50AF2399D171E99D8086DDE33E24640A767F249797B1B742CC
+F4E95A64E1AF8D88FB128194673CDEFD6A1672DD1D03B6749E729587C0CB7C6D
+13BFC785759F35578D611E924CD89FF87DFBC5C93FA7BE150624825F7D137CBB
+FBFB1238C1A397826B8D1DF0A39EBDABA5F10B37FE8C27568E1C088F279A0E28
+020DFD377694024FA154AB5C06EDC3CAAC3CB5A69297E1079F5C2F351D81614C
+D73ED708907A96F6F8FB0994D3247045E8D41028432E91C7ADB2F22066D6F8D2
+701298CC9FDA7928F99CA135B69808AF6FA1E0A3CCE1BFDE234E9218A565FE28
+96541CB9381E887182873FD7866F5F8415EBE92E51E7FF064D6CEB7BDBEE4DF9
+97633E53488AB11EE93137AA185AA7E4AA043BC73DF1739C92B4D3A8C46BA689
+B9F8FA73BE010D7C4F9007937AD0EE3EE4E3041C72A2C4DB92C6C5433DF33A10
+700F9E891885DAFDA44A00781BD019A9FFFDB6FDF9361520D50AA5037E654C8A
+ACD179511AF61BA10DB29A0535972DDE8B838091B5EC3F6C3408E02B8CBB3FD1
+E213E2C53DB7AB14D465CB0E4FE2A2CAFA20E74BF4601CC23687FA7921CB1B86
+6DB57E04C99BF7F56FED75A052362016840676DE91888490B4A1DFE0C079C88D
+C8C3BD3527F7C006E1403DABB47C3F9174208A379C221931724F06270985BDE6
+A53263227EDB00124C5677613BEA94BA029F9D6F8BD1F7B87C4426210AE554C0
+7BC707199BF6DB673E40D55741CE1F0853504A414099BA8E0BC7F5EBA5392684
+79552A5D4F7C0CD3A6D80B18014008AB011C8C66C74D32AAD748EF30C1AD484D
+B56BFB090C5BB937E81189912665F332911E11E83CCE75A79DEC2838E811D5B7
+DA85AD6ACB7D8A98D15DEC66504CF2131FF06AC9A8A4FBC4CF34EFB8455C231D
+0F73A50052AC8FCFB2B2ACB95033AF04078E9CB99551FBB1C46EE6C413D86C90
+AE8BD7FBDB7BA6E9087658C79C4758E242256C0546DB76A3857BC89F26A4DD9A
+F4A848104BF1ADB2DCDA25C79BBBDB66CE1C1A45C7427FE7CE5BDDA7CB599B4D
+B5D346B15414DC9688A9D00F0372DB98FD33E6164E5D78D6CCEEF0FEA60A7F5A
+9873AA7E2A7F98893AC5A9598B71BD06D13D2766489248190A262E5EAA459888
+6D0A38261697EBFA55180F3D416C2190B36C309202D1619A405764612BAA3506
+7D157F49FA1E0A7F252FCB0B8459A30975E02748AE1A891FD6BB288E0D7C144A
+1D348F1DDD145912678DAE1906796591E35012373AE01E18515F5CC3BB29A629
+F8B28B54376A9E10D0CFB29B81981E66F27B6AF44DDE0A3621B9ADADA9588201
+11A0362FEF840B200C84480177C9E3F0777350BE92707BA916A90AA81160D498
+6417DB6C7E15766EC5C9058CD51879041BDF2D2514B0D6B968CA0A300EE2E30B
+6AE41238D76DF324B0502BF79D58C2DA1FF7E384891182AA59918DC8EDF92299
+BA162134FC3DADB6FA5CEABB94D1CA9BE1635F769EAA88377AD96510A4DA8F8C
+5319E0C06CDBDA1BA9845302F716DECFF7B965BE413A7BCFF3C4EADC91626070
+9A5776EC64C67DDBDBBC66F16962306631D70E62616DE4997ECFE39DC6BC9A75
+D2297C2159066195F43B7002138456AE7EF69220925877C87405D06144D250E3
+55EEF1575DE8564BF98E2ED403591F2EA4F6AD71A126A9B1F5D350819058FE4A
+949B8C3A7907A725B463B752EB3B44B090C731EBB86FAFE24340D1A89D3FC0A6
+B89E64C3FA480C91DFCCE4922C000B0533A052FB9305EA3B58A38A3AC2688715
+A7C7418637C393439725F0509B3B08E07DE5E0350A005E4C5DB815CD317EDACF
+6460DADCF9281BC6523DC8FFFFE18CFFB2EC61884E7B324806851A91F7E0336C
+F86AF2C88F1EA1EAF0F87013AFC7DAB6F6BE426D92A406437E38C75614AAC461
+4EDBD8F129D985A1385B0F9F1A4E6D9936FEC600F4E431C653DFD1D56F694471
+FABDCEC7BAAA0C266D35D7380AEE587F61DA5CD1229D99F82BFA7B1A45A165FB
+658A4E7A741E11931D6E5C1358CF76056CC0DCF4B623C2A8CCED91694E46661F
+BCBA0225541BA9A58EA1F2E2B2402299EF2B691C39A87AB3D5C722DB2738EDC6
+8ADEB09750D714286EB392D198A55784AD908470517724B92849D539ACAE89E7
+A8E37CF20CA87635FF92F1140DDBAA76CD52BFC0B40FBFCA768F837D0AFBC7E9
+BBC89422CBD6429B284F67AD2DF917AF69346A5BFE8DA3DA8F9597C2265F3BC5
+A90CCE79572DB45176AED6E1A5FBADC98816F0E29BF58DBCEF62EF76A8D8C845
+4C7E9AB94A0EA43D2FA271BEA800890613D8247171938596CE4948BCBC7960AD
+5B2BA3E0A4384749A7D88F3DD515CC1DA7292EE9775B67F621E156020419D0D2
+1A6AF5B51E64D3EA7D182AA65AD1F663FB28739B86F9EE5880A5A96C3AE1C563
+7A002FD0ECE3AEE80AF18A0FBCA3EDD496C18C8974E856BA39226C382CF8541F
+F7E2C35B3CEB1DEE3BA8F346199944BE2F350E4C3DC89D789250C3C5192236AC
+513D1A3058230470BBA11E0B39141F48065B808B6FC459A897C304B749B5A656
+38B55950D6F379A535CE2816498DE36D03747FD07514C2DA1764217BF2DE17BF
+C8FB2F06382136D301953DC42EA0B429489275571F6B86AAF496E6A2EB196547
+B76BD6DFF6054DAFC9CDC11FBC541426DF0351ED027FE76128411F6F62DAD159
+C116B43AC59C885B3308B158EB74405541F2BD247BEED5D3B35554EABCC133F1
+B71EA3C7C7876661EEDC141818A3E8A9C519E7054E26DC023320A0166FED1C19
+DB1C3044D23E5BA7F039D86ACFBCB5F881A6FF9135E1F5DCF910A873E6F7DF8F
+11372C039D09A875DDACA3FFADB73504C1749932C3792CA80D78979CE0269AD7
+47CBE7CA39E26FCE1E71DB711D176644423FB964CF8CCDF16FBB686877B1B99B
+FC570BBEE55DC7F2AED8E81FF38DFD61322F1FB69E5CD6EEB8135128A35FC23A
+5ADD95D4F873B2EFD14A1FF76CD20454BD3BD2752C9A5F0C21F1E5F39C5865C6
+D4874580E6224B22FAB9240E0346C843AF0C495E7FD5B3310D90A6308D47E882
+EAF80772C87D3F7FB9DDA52F253FE4E3D1E56EBFCBDB9BB9A977DC7E9772428C
+47EDCE4D4F793F4DB9C66E65827109E83723E50424A87B36D6E74DD05B327128
+E407252F937ABE315B18312C8BE965E84ED9C895D275A331EBA6E872DBCEE1BB
+C6254960940B95F46CAB4F8469E7412F546E62683AA356366F454308367A789E
+B1E6F3A07B87829111DD17856727E948E0FAECA4EB00192F125C2331011AABA8
+F4067FD01D56853FA445ADEAE5901242DF460ED8AEF939332F87D81DBE9A30A4
+18884AFF8A7F00530BC7DDD3A1E6C40549BE3E567B225E7C8844F0AF3E19A4A7
+E61F818A5F1BC836012FBB9AC4A5AE737FFA908EBFC88B2EAA62877B05B1B1BB
+65062420B89BC4C3C4B7CFAD1148C6A373F26ABA9A8DDC74DBFE47937035DB49
+20F0B8E788C0AD02381732BEB2B9587D6B50E6F7B4E9DAD171B8C64B60A04776
+F70BDD9C6C8831AE39561701FB54D68810E4C3249C32E4D39BB40C500C8A735D
+F316A68985E3A0338D8CF730881326E2B76D75BD2566D7387C0DD8C5724592D5
+1FEE9798B269DE09387D3A1EDAB20063BA852726BC7EF07CED98E2DD1957F94F
+7E336F6047A935E128444DA8F525FF1E458ADBCB1B6D910B68955DCC59512591
+2F1228007F9524A0AA6113FC6805AC4ED806D5CE6E03AC9EB6830EA9A7AE975D
+99A4FDA50B92FB6977BCE8BCBE2D8EA44BCE9B39718584A452205C4349561CBC
+7B1E281C058D0BE636CDDE883E1C1AE3802A35C5426443AEB6FF705EC26AF94A
+2A7BC536F373C0EBAB41C780E56F5BD1CA645DCED5090CF32D4F0E5A780651A0
+477CB27558B2D0E2AE3D0A02565EE38D5F437D01308A6BEF55E80422F5B5B56F
+6DD11ED717B034083F9BB1536D76E321255A137E618B398875B5BB8F5AF02B6E
+B4DFFB173C424B24BCAF3C9271A54166A65927519C9770B0DC44CE276ED0C20C
+8EF41AC3AEBEB0996DEE664E8F872023710D0BA81DD3A3EBF79BC24717BA1280
+9E9CEE362F5BBADAF6D8200835311B1063FAE4D6EC8325A694EC516AFD24FF99
+EEE758AC14E76FA1573462BCAA75D246AC363C412185D20CDF1539011C35D1C9
+B3B3717F6A37DE522943CF9B3D8CF284B4C0068A1ABD9B58FDFC20CFDC45BCA3
+DD054AF00C18CD7EAF8DFFD45C28A82C7B417AB7188BDB49A5871320B2EFE0B0
+25CE25F3BEFB53856689A44D365C55218190B407B7BF9855ADCBEC5C0094CA63
+11E014EAFA0D1BB324D3B1D94DA4A7AAE9D29C71E2D5F122F1C79726731FD066
+6545816A5E05DE1F8DEF865DDAE0D80E9AD0120A0C81384AFA5BCAED3F8FF80B
+B9F8C8A7517A3863034C312BE64AEABAD77A5269253883D460DCB2F0A3B28700
+255BB96397D1D613A14C3368C9F27F3E42B887108793F4B12E2233E5A3620BC4
+F886F124503FE64421C1A40C37B25127094476713D39EB73004CB56E877935BF
+BA0C7B095414A1FD59CA11573B86EA32E297BA38B907938B3A25992F0563022D
+CF54FD863B8792EFB58A27DC2CA6C4DF48B9388F5676CD462C1AC745488F6BA4
+2B923427A7D29935417E010099FEB69B16BE5A2AF7B4883BBA80815A09693AD3
+2B78D3A939FF18798043F7C88A76BDD527B554BEBAEF922FDC9B381D72C7CD3C
+49698A1444FC33E276D3B9263CAFA375F1E64C8B39C89D4A65FC42A7183E41F4
+1C3F0CF7EBBE5260F862EBBA059765497817B8597DECFCDDDA5C1D15AFD3C3D1
+6F1A8E43709540948B1E3B41E32AC13B469222867483B0E765FB427300AE9BB5
+4CED17DE5C45EC8391687036EF43D57835CFE689B99FA0B860E3FAA6471417AB
+BD505F23013DBD726BB5645F3006BDAFFD5ED0CAA7428EAFB448E0A30F8B7858
+311E3FC16FAF9FAC5E86998E4954AC4C9E32FBE6E9DF280B457BE80DDA2959A4
+0A874282A7F9AE5236843298C26D5D4160A4554ADBD3EF0254C4F2D108D49DAD
+E1D1B996D5147560D574FC238DD005D18CB32A6CD73C265F05E0AEA17C73E3F7
+2FAA00290D1A6361CF67EEAA68800D9212BB5B8F0259FC8D133A21E6BD375FF0
+4BB0FB1E78F065E51298E97164C1FF241336428932D1AB97E1D0ADEE93BA8903
+A8124A3169AE0B905465D7E8DF132D903C9B4C64074147F2BDB1F722BC261E10
+D366C246E8D664CB57A92883CD7174218655BA68D9919D0C8678DC4E7A7E66B5
+DD7DA4E011769991DA9D93311A06A623B680DDCA32B287104A1D7BBD05AA061E
+019BE06684F9BF987FA635B9764DCEC3A3286340A7D50355663D5556103267CF
+8CD9DDB4DAF109C47176A1E9443F3E2703788B85B6FDC8951783D08F02DF72AB
+DB5F8739B2B9B38CC813796F48FCC21B0CFEBC8F074E464989AE5EDDEE5CC3EA
+69C281CC4CC295360FC11F67AF3746CE3598A215FA109709A4B193BFEA270261
+8ACB9B7081A9D60CC49AB3F25B0B6F922672E58708BD707AF7DF35E32E7CB939
+CC25BE8392B3DF687FB67F25342671FA831264230CA39D189AB6267095B7CBE5
+09DDBFD5512A8831DFDCF53CDA45E3F0C097C0C4DA1F12589F7AB3D83178E9FB
+2E9B5236ABD35A872EB9A37ED9545C6ADAF8FF2000E67AA8C8A8E61C9829F29C
+5555FA19BF6949AE81487EBA68E8ACB6244ED2EE8CD537155B68BD1305FCE20D
+710147B9AB3CCF6BBC0F2C3D8D77D783ADFA68B208829F05522211E28432729E
+AE8A8C09C04174BAEF8D560D62733BBAF506D2EBA030AA77F18A38EA8E98B38B
+C03B5A3C33A7B36EBFD1D55D503FC06F19056EEF9D1D01CE279D2BF23B04E880
+D6873E16AAA583ABBEF1EA8E5D6C3D038738573081E264C01DFBEEEF02B8844B
+19BB8D27BAD7354AD310ED720DE2D4240F3106275AEF6F7ED61735D799306DB6
+4A3BECE20525769A0D99EB90D957297D5913CC48A98EEE84FEE5D02B30651CA3
+B7573DE50F1B9D8D50E5746394DA8C5BA5D71CF1647F80BC9337F00EC31476E3
+1019B41BD01DE7FD55886402565F688D1E09810DD8AF982032B048548D87AEBF
+B20C6B938C6D8F96C2D7B42A1E69DBFE6AC28D166804E03AC698B180A48503D0
+0549D2DD2EBA5C601841A711DBE9D7019E5DE56CF78457F412E42CEEC248DC5A
+C0F349903F745E40897D0331124749D0F9F9C71B704E4CB0898AC7120A880215
+236800020AC60B1E5682656534F3332C2DB06A7510AEA061D9206B4C033A80F8
+77DC8EAF7D32A7B791FA3930647CB1A29228DE62A9733C6AE072144BEFF15651
+791C8F99508DA1E3F8B451985DC68251044FEF9F91C7578A2F3956D97D544D3D
+0E6A3F7719F9561B47D76612D833BDB64780728A6456E8CF273BB708FFFEF743
+CF069E55B1A871718E02778CA80A5D21597D597246C260AD390E5F4A285A5CCD
+E55AE1C37589EE307C6D2E1DEFC605C9BC33511968CC8AA7E61F5390951087AC
+F4376C5BC48DCB22D8F0CA6CABF25383616DADD012FAD655FF4198245209E305
+274D18A98D760203C8AB09F7204A967D07B75E7650BE0A0595742F821F74193D
+CA0AF1A4875F50D1F3F2786C5532EA3913B3589215386E78157D6F38C4860698
+7DC51E51908A7AA304DF1233ABAE2B3C9B03F2496B320DCA5B7DE98FFBFD6FF6
+EFD2FFECDCEA32D0A7F799382366C6325B89C94B37CED9A1A1BC88602AC5D9BD
+1BEDB8D5CD2D38FD1FA33703C41F979BC24F1609B3B35295CF756551F9F2D770
+ADC3D23C5B7C6A777CB33A06791EE8481BF577A94016A061D8AF8882466F7499
+E66E7E93F104E599C79CB6F76D42608B9BC1171A9AFAAD93E846008330DC3C0B
+6E8BC7623E8693C1E7E8B5B8BC426B1EF8EE705D2E806486775BAC15660BDB75
+66BD708939D23762BFB8628A863C4F9978F83733049F63709066CD4203476CF4
+575DB5CA5B5F01D8E4DF345D78C2A938B5EEEE618507B2AC9EB9C4BC9B64CFBD
+AECF052FA5D93B306C075AA8A645E5B93D1005C252F0DAB540243C7E3C3EE52C
+0886A5D89A30DAAB4ED8F38ECE11217F0198347E62BDA7A1BEB6D46482BE3726
+33CFBB23A78756BA63741693D764467273078167DA48362985CCEA2889133C7F
+A5B0BA827E92333BB02221F6757E4ACB8C2198BD7A976A29387CFB9B7F51C65C
+2E151D1D1F73470B14587A6F11AAD77465975961CB77306E7793EDAC65EA7AD5
+E562F2673FBE78794C9D38659647EF5189F6ADD9B4250085A59F84C0448EE47A
+A073B712B6B1CE984DDE3125960C16AC77098424004666BA6116A042551B48E7
+507FA464B21209D31C506D1DAFB628FC2AB30279E6148F3A2DFDD183FD770551
+0CD3FE854FD619E7D2B62A8888C300838E41744BA759EA4E4F19AD5CD249E8DF
+74E81BFBFBEE42B2F67370B748B1B3FD5C6201866D8CFFF8D9ED127F43F4009A
+CB5D9651587B54ACB8C6D410128362A74EB358437D0CEBB9E0FEA7FFC27A5509
+E799762B27F30B5FAA4ED3B492752B04702E48B1D0C55155157FD7B4E578A560
+5C0343A472546826E9B9B80E91867D2D4C3EEC02133BC338954AC6B58499AA9D
+24CC3CBD2023E962D147618C08BBDDCDF36E91EC2D51D6DEB97A1477D8156707
+9C1B858385FBA45CF0FE74563A5D5A51ACCC3EFE991429A8CE57131AD56F352C
+E95401BEE11B310C96E9C3CFACACA00114625BA7B4400FFBC5947574317E8699
+90BD8678107AAFFE1516A59027E9907359B61C6B8A97B4F99A338BEFDA2C25DC
+D6413A0CAC46051E76BF732CFFCCD0FF1408DD26C76DFFB54F7745C79F3A7ED3
+1D9F8BED7C6977067E6C8E46EFEC63AE0D3953175A6E51DA38EFA2DEF475DD93
+1C34376F5C6C6218DF78EB84773361B9339FA58A88E96C646F291CEEF398D281
+E0DEB2EE21C3EDE0996427EDA0CA0A44247B1A0E03BD9366E75F763C9B1D2BD8
+00D2066BEF933DC6AB3586EEBD04E6D750A22978ABE902200200B468135B690F
+B840BEAD5EF80E068F6F87442D93848684A127EA79F4A8A24DE737A373ECCA3B
+B405847430C138E51DC18C367702E868CBAAEF6890FEE68A75C5781F32B96D86
+BF5A0C99F04DF2B7FE968B6566BD816C96D7EE35A863C0D4635047FF09F68302
+EF62B9293BBB8BADCFA64C6CD9024C4F739C8C730BD62F2B613C6E1923F04BD5
+62C556E3927411C2655045B9744C9DCB7F1DA9C1B5C70A145E9A35DACF1B68A8
+B5DAE1C62DF9220483F1DC721D559B87D7CD802AB539AF1BF3E434EBCB796A8E
+378B1139CB3DD3134DE8F40C716BA87185D3E406E3C941D336A1436D891803E3
+D2C8E627204A343811FA82FD1A232FFD6915501C1B158E890C534CB94FCD9ABA
+F64EAF649056C1198F0F58F56D3E1C91C167D4D9B4481D48A12CE297D5DCD0BB
+8BE16BF18DE1D58F7D2587B70FF5734EF8391DC5F709BC39E729713CDCFC2EC4
+5E7AA863CBEE1CE8185E657E7FA6565EBD6868F478554E96FA808A708B48E463
+AACC817DF43EB9A5233606A402F3A83FCE99F73B8DD819A4D014FB435BA7F23D
+F2AC40C473A34FEAF0A5DE457AB5A18A6CEEE95A55FF604AB5225C5C1DB6C6C7
+0C7647F075E5FD3CBA9F3B316887B4A01F1C2FE09719B4BD09A84C5A3DCB82BF
+F5EE9FD0133F987FCF77098E0CB919CA7FB8468059FD35088B97705F180D5A19
+CDEFA29A02C5D3EC4893985A2478B0BE83B18FABD32654040A2F2A9BF7BB4F7B
+5781D2A6B5E416BA14BDBB481B3D619B0C885CB392111E32B2AD6C8BA13E9F93
+49CC4B5A35B1F93B68A5ACCA4823DE44BA8979181E50A3804E43D6245488A15A
+BD51999A729A20B9DE927F728E59312ABCF89176C35BDED4BEBEC14636B19989
+CB8BF2927C1BDF5460BBB09BA81FB83020BE4D4B69179C8E3B838D6763946166
+B328ED82B448CAB5EC2331CE7601EE8B39B334BCE11038B0EBD8437E5463C640
+73C5FACEA06A219AE83515674CEF03AA2F5FEACF656ADBAB944CBB237813CDC5
+06C303EA518CC59486410D65F5E5395DE84D0EBF8EA37633BECF5A08851B4758
+1BAE6460B2B67D29A8F88FBE52A26DE7A6E6D859CA00BF437837DC123C459B9E
+43FB6DA6B79DC16C60F9035EE3B10E2CCEA9F7ED4FE29667E0559A3A34F6B550
+E4184ED8E953247B104DE7D912C5BF66F3259214FF091096DAD710C9F4EF531B
+B4C6B3BFBB4715F3654587A5EAC63C917E100F37862B03EC240E762F2DF72CCC
+9CBF233ED204EB966F6A34519C0A169EA6130D18CB8E53EE96B7A63C828CFB28
+45CDBBF7FD775137119B7C7BB2A665074691199B387ECF452A3DC5F859D4248F
+3A02D4D65167A9E6C92E0A16D293ACE234C049D98E961D14D070DF2A7F55C232
+B2CBF0378ED83686DF80E05DD417153A3FB34A7B2F0DEFA69A34E19CBFF56D1F
+14EB4CEFE99DE9CABC5F0FDDEDED79A50F29151294E2576CE97CA00F734702C7
+B94243299D8080957B7102AB370D5448226870CBB5DEA5A295D3D5C8F7D1B5C9
+44E6F16F703E4CD3F74B37AD19BB53635CC4801A317C953F2A131F82DBF39694
+FE552FC18B94EEFC490A579F263DCF470D2AF1336C166F0FC69D84800CB1765D
+85937598431461E7B5DB95839BFA81D51ADE49E4242E2DEA4560DF41D27C7733
+2D1F036614FA1AB505537197F419E6722D4EBAF5DB087FCFF838E782D239BE68
+43AB130B26003747C36CFFE7A96CF8522F3F369E1E6443C923C4EF6616241DC2
+5366259FA9FB2559B5B797ECFA474D491E96F2CF07DFCB0765A1A7B0FA8EB181
+0A82708A93C8C8C2EC711CEB46D4A4D51ED42E6D023932F6C29F7E4D9735A5D5
+269481F9A92673E88970CD15DD2F532A2D96C48150C10854F3A98B200612EED5
+C2074848780E53C5E086AB78EBD0444A064C5377945680900997D1739E93EABB
+520519269E2516C7757FFACF312E6725805BB2261552C760CB68A7BCDDA0438E
+0BD4E6DD87C204039396684FDFC4398421E1D94B110F2831AC0DA589822357AD
+A78CEF72FAB2EFCC848DE7C5486AC56D56DBD0BCB39D608F40E0981572B9FB0E
+51F11778CDE7A9DCE029ACD63D61C22135CA5AC9DA490C29FF12165AE20F3127
+9D57AF7441F31659BDA2872A720100F3F63D9CBEB596FCC23FE1BDC7DAB26FD8
+00182A4EB8C9ED92B3BB9971AD01063CA67ABE06F51F66232545EA42AC145113
+1BB165ED65DCC3A1C0E288FED14706BD7FA08D3D4F143B8B3BA68BEABE09225D
+2D0524B51E2D7ECDFAC0F8D66C7D96D885D0D87B7657F6134B3E7D0493E4BA5A
+6DD7591027A957EF7E04AD08B10D93205A5F268E65B30242AD7D07C2EF59238F
+F5B6FB46BAFB04D0E354072DD934FC5C63A4FD47541A4BA4B68E531E4614BEF5
+15AC43BEB87A1204B9BC873E9E79BAE958F4622077B7F7C2EBC0FFB7F7B6EA39
+C9D47152C26BC4A41188B367569A22762B8800E715416B7B396BB3B5ABC11A19
+C427DA9CC6EFAB2450C54030DC95A775422AF14156388FC0DB8901D3D13CB248
+B774DC8E8E36C7FEB216ECD93288F0520FDA6FCAC443C62347D680CFE38039F4
+1D15F56B06632BB1E91AA8E098EF73D8A054AF1A8E327BC6E7D37EF19166633D
+1714371B2E916869E420A69BFC9AF4CCD3F1DA4569D3542AA43722748E5079E6
+EBDAD7306314586BB17C9C7FF0825D865AF14F0FB03EA08F5E2D22A97B9702A4
+8A169602A94B3F08ED7A0CF6B9288E35FD989F2D0020411EE777702C408920E2
+7A7F37E36734BA4937FEC3B14FB1FCC92BE0944C9D893929A63DEA8030DFD9BF
+86C40A4E5421C663BEE7F2C29248B4839E441AD9D04F051AA0991A6D6EC47280
+10CEF96A41D329CB263A566A2D0C993FB918C6356C1249BC14BBE3B39596F7FE
+DF719A7A9175B271E37F0C3B46B6F1A53ED40E6C3EA4313A7C90B65997EBD308
+E2F08EA3B7038E0694294BE05E9583BC74306255DE19846A692C0D0D64506C30
+F1E7B83EE2090F0B0C9A1DE01474DF9DC7D618193149E95DB2F6BD8C0DDE48C9
+625313BC0C265A6A4BF5FC9598EF8E16477DD19068CD1AB4C52777E9CBD2EF5F
+99E28F5A2CE31E2924C196492A8E3319B1024C84CBD4FC175BE286F1F0829E3C
+7628AA9FFFB1810C93336E3749A818E46206A3E415139064C9C7D004D0CEC1F1
+FAB611B672C0EB951AB9CEFE67BEB2817BE9248F887836DB614BD26A59CCA79F
+04CA82700DDD8D792E89EA14D0B90FB3F8D6648090A39C99894C8CB638EADAEB
+D9BC62555D36EBED36A39AD7601BCE938D26C84EB1A6302CA1111B0C362C7718
+3791067E2B506460D1BE71A13D02451036C4FAD7B917CC9CB347E8FC30EDE59E
+8BF9874561A4B0E4235BBA799471EFBAAA64DC644958D1695526A86D56DAA3B6
+8AFA3A1AA7B66C840DDA7860072BF4C937B37FDA41922388FF8B4E3C305335BB
+ED114714115CFE1385261C6EF0EC27CE200A0B2434BE519CF064FD5860CB7395
+C934A9D7B06DAA01F039DCF3318F393E22AA8CCEA80F58094F5129B06A5856C6
+9DB2EEB9B377135ACDD04876012CFCE0CAEFA831CDDE6B3ABF574573EB6D72D6
+F03D294CE59A42D5348781C90D1F0D8BDCF770E6989A939E3FD42A68D34E6B0E
+A0AE88E2B52577B1BAA36EEA23071FCFB8FC4C41A8FCB9F8871F265D78B274B2
+D0D8F92D55011A124E037B5254162E7956465E96DC76D0CD96643AF172BD33A9
+DD48C30161EF717BA3AE6C7231F05DC4E330964C01F6BE6EE652AEE0AA41086A
+B2FB3DEE6697965BF24EFDEB87D49BB4D617A10480CC29C978C953A0B826E470
+BC73AB39F4A8A94306CAC840DE844C60F650537E695C6323991AB9038DB838DC
+0264EDB30E27E3F38B9073C8F7FAEEEF4B8285FDFEFF1C7CB16E43C712D78345
+813848FC335ACBA0768BCA0A9D57E99026CF04808F002FD842AF9DDD4E72BC61
+4997B2B39E28E971F60F8D96B66D8EB5911B8856287E3CC2D24D662312C238F3
+777745B73A30CF91BCAF4C6205808A2286285462580052DE31EC1EDB0BBDE46E
+5DBA461A815EEDCA60F8D64F7A2A84613DEB4C4745EBD6C04DAE969BF4681B5A
+F95ABFAFD2E9FB49A8504348551E67EB6EED4F87362FF9A5CC9BF06478E815E9
+EB946FBAC21430CF51569E331E0060BABFC7B21535D987B480FE1264A3738EB9
+F67197E54D9C2B032A06AAACD80FEEE298763DF5CFD00E2814F58A69A8643AB3
+3902057079A36C46D8ABE38C48ECCC6F7491D4D4A581A452C48CFC961DD8E85A
+5929131DD9543262E81C96631C7FD7B94C724102DE9C365AD97D6ABAF44AEFEC
+BFFCB5DB96D395117A665FD30A70E8090C3883FCF7ABE76954BFC07E4467E5D6
+262D9C949ADA532E94F9676D15DE90911D34BA384081A789D304584C688025BA
+4F6EABB4ABBD427CD00FF823773B11F283241BAA9B9719808D7FC5E77FCFFFA4
+F95DAA339D4843AD99133A1DE37103F386B4092343814923FCC22A87D8A91F98
+3E72139EA419D61789C36D99A207600C188477278887467F15D6A6635BC18D38
+53FC280A6AF75015E003E2C80F312FC1D967203234583FF829FF13890D62FDAD
+69DBF4D1AA69AB22A11A64662AFA11952042294C55F890EC1805936402B7C229
+F0A33C29453754544D92CB1E338AB7F3337BAFDC535CC93DCA0A049368B91FB7
+07670DEC8F84592CA1B4B8CF94E0D6A64A0DF9C0C239382D283AB166206B1893
+510E6320866A16450FBC2B0F82A38E460689EB07AD663A0785971D53E42EDD4A
+4BA81BAECF10B93B346B20FBAA70E4D15AFEFBE7CCA040D982A92E7853D055E2
+065A09DEBCFA1B2ECAE26C38F8DBD378E976FF597397C27828EE0E6791B8641A
+95CEAAEE1849027B06DA878994B70F94C835444F6B69A2DFBD6E4FECA5160C53
+7F12F395CBB410A6C92DFF74F8CDDAF64EFCF4F8ED9B832AD75E48B3F01DBFA8
+86D7ABCC22CA3C13603580C64B639948E2B74654FC8AF03B4F56BC8302645BB3
+B682950933DF6086F8641FEA62CC01F451312D22F4CC5804EDCDF981F6DEE997
+BB777110A8E8ACADFAF6428096108F535472D856AF4165C255A1B43342202F3B
+A72C931CD8A966D1898B78B12B14DBC0D3663983A9E2153CBC23184A4FDA6A0F
+779AF83DB6FA36FF6258473B17FB452EA4AB02F0D34C0B8C8E1FBBB35B680D94
+0201AB0D0F0637DDE7031FDD239BCD083FF5A28AC9AAB7271D9179A8AE589B26
+A897659AA8E9CA50ADCECF5D5F4D21C7142D4A85678466CBF033D883ADF819FD
+CD27E3A6046F3EAEF987DD9171440DE702ECFD3AA51C12AEAB971FB8E3128291
+592A3619A00A4DDE933F960CF460C31AB712D12AE4A37357E42CAA235672926B
+00FF510B7686F013ED7841FD01805D2496293CC262F80E730D2FB94EF320314B
+2E9BFC65A17A0BCC2233F53ACCC3ADFFAE00F19277AFABBBE4D2E377BE54EC2D
+82038A9D3A35D7B13744E468A1AB3D0231D394EBEFF06BC1D52F18430F7F77E8
+DB47FE2A958D86452CB7FB6FAB65198AC7507BAC92FF4F46B97A265BB80E99EE
+B2211B9989BBF73B1753B4BD6730271DB7679FAF4D3B223839094C1C980C15D3
+2C9E74DC9DCE7CE0D48B1E2A8E2E3DEBE2DCF6FF7B8407FA88F59A8D572E818F
+0C6AEF5B4A99F83398F97B162429D82A62E2377361853F630E7D0A7D728DFEC6
+EE39A9DAD89967BF1579C57AB99CD78DE820C407CAE52C2D7E65C97A594FCE3D
+378AC8FF6F8867E8953FBE91D2D8131AF97821F28D6EAA5A9F025DF790FA0967
+2C0A1339E953EEE5FC75F76FEEEE780F332A1C0C08DD80EEF52F1CB7E02DFE52
+86F148A998753B27CB823FA9B4907B37007A5FDB8395AB3FEE7CCD947D1F6CFE
+E81CD88BC9690E2F89F7CB130C9A2834F938B3D562A42CEFDC45A38E6BF62ADA
+1517974E61F6D35267795C7A9E945856824329B14E70EB350C997756A8FC0A8F
+7CBABC48C4AAF0A5D6A8F58AC190AC3F980C00D93FEFF1539D417AF2DFBE1021
+2882782C625D2BD323B9E0D53F1494F8CEF84ABEE30CA90C251887075A697386
+89F38001C3B2FDA9991D9A5EDA186C37DFBD0A77D47E24204981DC0A45B3AC66
+DD14D43A8A9826A0BBD96FE2279638F5AF12F010474075C381BE0243E3217199
+ABF00214D7D13F66411A6AB4FDBFDDF295163DEF72E788302F63FA8225F08ECE
+1F32D71BDBCC1ECBBC067187C9713C686E3EDF304BD3C58981C76B6943E66F34
+2BE57CB3145FE9A286F570074DC259CDAB2A415DCFDCAF46FA3E195FD43C38F5
+A612D653E3F178E16D9FCCB637CAC9AFEA648AF52B945B9BFE37F241DF9DDD61
+5425B37F903B079F337E8E15B70CCDB8920F15AF89538608A573E7C9008BE814
+FFAD305F0B94C7AE5F3DB35D34C04C1A250E89C252759581AD933896B468547F
+BF0AFC136FEC40C7436120A944979C9DB4D492A52B0FD658E8083E0EACBC60DE
+67DCC01E3F87F04754223A34732D211B43248A5A5BDB19992CAF481A564DC9DE
+B16CABD3BBF40BB4F84D67015773F7261FB175806DBA97597A0A8AF8920596A1
+3C77C728F23CDA310161CC8573ADE490419AE08CEB622DB6883CF0B75D43F0B8
+B37715EB9AFD9CBA33DEC10BD2D78E541499738D77A6450B93B795EBAD5F44C7
+311134D264B1881069ED3422281C15D1822DE565FF7768B80B58096D5B03D168
+0158B52A52B7B5B94609793DB02F8EA785A2E0A039FE4F8CBA3CD0C2A934F2D0
+A2F862F75093FFB2743748EAE9947B5D9F56CA0D67ABCC01E4432BE67E22DE05
+39664D8D7E9D732A897F03DF889A0D3C09E60C4F3A3996AED7293B8743353739
+DE1D41C5FEDC2BBF6662BFC35660CF8EA4F2C0DA06AE90AE91A9E0A8BC94D43A
+B79F3778BB68BB937032EE09062E1C4611EF8E86CB7007F2AA7DD3E46A31AC00
+8CC36771023DE9E9BB5483C051FFEF412A14A65F30DF95C91990408BBB8A1E6E
+FE801BA15666D3C270F045A8178BE9E424998653471706D0D86D49967771961C
+3F62F1B6F36652DE97526AD89E748221893C9B6E5915C1504FF46B6CD09D85F5
+57F881284D70C35BEA64731C99C0D865E2E9C9FFBD50806164157CE198DF009F
+B560FA76FD75CF742308B01F8ABF13E7F9DF82298FE454C1F709387B6F23C306
+61FD8651CA2F51C5F28786D6766B4339928115601BB265F6895712C39D4EB75E
+1E1EBE9BD2E808299CAD5092397B7AFC8B386E992AF8A47FB618101925514570
+2CF7F3D9418ECDF120DE0D9B14BA35A19312BB4C87C9A1862E7AC946AAF7E0DB
+9126282D6813095178325D6F7510550788D387CC3F7936E5BDFC55543FC2AD73
+0A47BF75CB6B625FE8F087C3E53330DA3EDA69BEB3601FE3223BF111C6235FC6
+8ACA71E69693779A68F93DB849000C3915225B007E9F1A64211A66634F67247D
+CB39A389107705AD40B0EE4D1E1AFB6B6F6E7F1D59D12847F748BAA026367172
+61FB9E0FF8EAD4609047340623E92C4954683F777B761B09A1B6E06E13977B66
+B7D5B557C9E0682A0E4EB4B04EC5191E68ED14DB179A9E167389023CEBD2F046
+05B7B10F352B91FBC1D499BC63A8B63A782692732DD2C49C0532E0D98BF9B5B9
+F1EDF5A5E00EA42DF50F9FF5700FA06DE26B5EFDBD15375BFB87068ABFD6101E
+4DCFB11A4F6CE0A126B1AF08A0DD21B487FCE447DB919FB215BF614D5027E67C
+CBDD8B631B0755EF9B2F6E261D4EE7D892285D1579F3027F9B04BCB1DB28A8E3
+BB0E83592AB3BF25CB92A3BA038A91C5854402DD5C47E1F535750D1090DEE1BB
+A5AB0785C67806FE7A4D1C7DA3A8D40E5F8EECD2DB7F5221ECC3AAE50BC607A5
+6B91C718E2092102B2958EEE11B3FAA96868D425513142D1C374886E63A705EE
+6D996AE31AC5F89456AD296DD490CA6E63BA98B78E4E9FC2AB540F27D47BAA6D
+C8BA9D2F10FB380F3C37575FDCAFC69F42E83301FCFA1DC31DEE29087614B306
+F158970D92374D7435EF08EFB3B32BECBC3C6C9FBD42951801B86C715A7FB306
+65B90CFF9FDE5AA20F20BC8DA696E5FE7214E98F39D2EE60185F926027A6CD5B
+960579744D143C1A7BC8BDF10C70003858B2A6EE72F854CD35ECCEC8E92BD664
+F9734FEBD981C41DAA2A42AE83697E3B030C9E2C6C3969293D324A7D68274044
+487004C3F6FAC5B64BA149DF711EDF2F17881864AEDE3E1E4C3147BB3DDB4ED0
+2F79305B402E76F974CD56CB04A4B562DFF36B40DBED2F35D38DBCA5CE8DDD12
+70C28A19C891D126927DAAECF16B2DF41802882956716BDBB442E9F062DAF65F
+6E3808CF58F9A4912209644195F04B4A5B209314017E96A700903AF6F4A8E8EA
+6CE36F67EA9139F816CC75A806C3585BBFD882F14028770670FEA22F34358E0D
+CD9626705BEDEB3A0965697647220C1962FCE67D0D3E2B9FC5DA3C3861F84209
+C56B90CC792B95076CD73D35974433DF6567FCE72A24162B434208A79117055E
+53BE3CDCA527E33638F940BED805EE57A3526186F80ADC5B6ACAEE25E2081A63
+3E6D985A8A6256F923B971E34BDA04D21EA99D34095AB201BF44B62258B19ECC
+45149754F896F64FBBBA939E41A11082C307165C5EA32F7C8CDEB80851B5219B
+7A680F7A8D02C9BAB72FE3B941E324F554E34F5DD5E4936250A82DB846F5966B
+779F29A9A4E53BCEA49CB4C6CC7D0034515E9F7B357B6AFC0FCC6FCDA1A34B5B
+103062647367EB77762F6B47773264536E40536C5DB2985C3048969F9D6C698A
+EEB959112EC964BDB8DC3C6F307477C2615BB536C03E9C9B346A7916D1C69C0E
+116DD955FEE0B8F6A0B476DDF245B7C901473A96C2C53DFB5BF4833F984F4D42
+C06B6751BFA6D96E9493139AEE7BE7839B8CB2290735C80542C40D266283CF68
+4DE60FABB54F29A930357CD2AAA60F5E85D1E674610F2E7C280401061AD47B55
+5A1EA0B0196423DD4DC994CD41094818332B99FC9218B2D628E86983DBC5B842
+AEDB7362D479C940452A947973C8BCCD46588808F0F9FFC55EF2D75C1C075BF7
+FE6C21DF51E5F6B00D807B033ACD1C7C6A8B3CCB7332E5ADC93433422095C0C3
+8CBDC619DC8EAC0382428C88443B16ED0DF49CD042D38082CDA4DFB035CE50C3
+9271344F46D3765ACA3E1B2942215F559EF1E308DBC2AF0659DC980F5DCEC6DA
+B33D596CB3F26EDD5A11D6647DB7AC5AC4FD41B62BC353356CD12DA5FC6EC2ED
+86DB312ED5C8323E1C766A0108ECE43C11D2BA0A63F1BE2B0A9D40EB995647C1
+82D5C9FC55169F50121ECA94D1953CFBF9F38B1FE0C7DD8B786902A841F24A23
+B8762B929FB5AF021414A5321C7288BCA19A240EE15D106043DA19354C4EE1B2
+434A967968C29B9125BE84A907D22B0BC2A2CD09AED00F3CC3C5C7C9AE7C906A
+7050756D4E67E11F2F2C14DE59A92C013849CAD0A1B6CD32C0CEAD2A4B20AD3E
+ACF8CE2AA125F1EE154B79690659E1B90563E3884B47699AE1F7A71579C3C4CD
+B66E6FA9BF98769452C5A2BD8B54112351F05BB77D3D3E3EE9250953BBA94EC9
+C0DAF20B0606C3CFCE4815A876F9CAB8A9A2E5662F7764050A0F5A7852B9AE4B
+5799C95B8718D481452AB4262A843E01CCE943DBB8377B7052FB397600962A01
+25E5FA112149DF197FD9C8F16BE5819096B87CB3555969026B8A5F4FCDBF3171
+BB1D5F36E7CF89D94457F4CFFFECFD8BB3E009655D799C4F262FBEF937E5107A
+511677585FE4D4560C34F03183E6293EC2BDECF5DB400CD1A29BA1678083CBDF
+EAFE8D078B72B42BC1CEF9FB5FAB5B2EAA044F5E98D99D9B907A3FE4E1BD4E0A
+2B845C58D7D0119C323AAC85463968D97A651A087DF3B6866EE0D09BA5583D8A
+8DB9837B487DF5FA27624BE3C7F17E6C734D294A1D200D971EAECF983A0A2378
+BC2FF6B206A5121EC01229C14E0C22CFE7371AE1007ED8F556B54347ED545D05
+EB488D7DBD5F668F45986703122FFF97A19523731B7D3CDFF8FE45ECCF2B91A2
+0907AB03E8698E0E3F6D846A4417B9F66703DEC16AB8DE158431D3424BF6462A
+70085CD88F8BD3DF2023F0738FA6E3F36E752DBE7590F6BBFE1BA8092CB69B54
+BA30D871F6200BB9CEAAD3D6A5AD721FD4A48D002BDFD8E339483D6E32ABE379
+914BE6B673F6FF3CC20BB2A971184433A714E802CBAFE2C85DD5F0E29B5F9459
+16AFA7D594B373139006786FB5B8594D50C91217D49ECE8E684C292946D79658
+A9BC010ACED5F757796BB9C32F98409ECA6511351E340C2C9E3CE2AC1007A52E
+95E6DA9F56E11D4B0586F88A149FA8A2BE78DD25F89BF504A99140A7453E4C3B
+EC9F94B300E4F6AB24C4528E029DBC0C61E116BDA8F0AE3108E3269A76927509
+95B41AAF17DB3759D04E9F0E7CA4863A9A771A49293B1EE6CB38E33A125342D0
+6C63AB27F308D08F60F4DEB8C0A335B115D25683F8AFF549598A3B1E88BBCBFB
+7C418723054B346E748DB987ADF0EB40FD0B8FAAFE5871EDDF9D68821C8C9643
+7A3EF4FD3BDE591022C83EECE829BE8189C6D819708103BB96A29CD107F416FE
+3230C3E7E358722AFD9469FFF2C7FD9DEC35BE527B99BAFF00C799B99080BE0E
+C88272197BFDEE472E29D1A197083F1BF10324E834C9D76190223E095487AB37
+50BB4FC92179754DD1138F9A55269137543FDE3173BB57BF3E5A2C42F5C58536
+BF4FE748D9033B0E319E3061A7044883A795BFF107E9C12F2449197FD29A2BD4
+C5B7DBC42C28596D43CA57E4184250213D3EE5D447A0D8023E2BDCA6B095DAB2
+3094B07797FA4AD49A4BC874F462D46F9DB4A21773BA0181B3482CF9235D9C78
+B967B280FF82EF3938F51211D5822F527127A5B4D7D643A443581EC8599C62A9
+A91D57B358D8787A39DFC4AD363869F6002E1EE878EC3573521ABBA11B6FAA80
+2F73E889DE675B42463A8488C72AF383482D6509F49786ADA521F76D93C4A91B
+7A5B23417305F5F89FB34261C2FF16B3BF983B19DBAB9BB6B1A2EBA3C2AF80C7
+450248EFADA22E1F8D18CBEE599C8D210498432C47CA067449143710A73DA7C1
+38C859665D0D88FF0E4ACB573E954655B5DD4B8C7DBE9B8A3B2C4526872CEB80
+45CB40C3D53F89ACEF33BF54BA05439AB4137D9F6A5F7CC983CC0344216AEE0E
+2BCED1790BF4506A8908E1D7AC441366E9938551A962C6AF4BF5E2E6B706CB0D
+8572EC4AC8CA0714A5EF6D4861932F42509F217477AC1547A3F96CCD15787A6B
+B7DFFA17B0F44E83A08486E779A1E36B7748B17F2D09FE6D7717E1CD3E306004
+F69F2EE47DD0A9FEDA1D43558C8217FC810C109B8E55446B6F151D44C08FC996
+63530C24C7F0B8A59AE9FB7ECD212902BD8E4115A6F6411266A57CA3F7532E2F
+C631F18FAAEE1F1B7224B598AC585A4279155501B1BE29E06893A8C56DE80D66
+4D5586C74C54B88D1B61602D44CAC618E21F447A3A17123F9032AE7B7854C08E
+E63B5335540A7F4B36DCD11A47FC8E672E8EDBD9BE813702927FA8B0E0715943
+E1AD81AFDA2350A8D9C05295A208EAB36592672ED05E16C4D9392B3CDC1EAC2C
+526F600BACC7C2F6E0AD1283259B1388E83880DF85DC9790DCED3EE2CB06245C
+3FA795567CF8F6E63059D974D5E2DA8B5262CBEAE15984ED2D6FBE0C5580CD20
+05640AC7C4D28C5692D3F814A1A90A7BA2633A68A7A9752AE74761AD428B19DB
+79133438C8E0CACA1624A5780A14DF07A74003E6EF75F75662EF6E817223BACB
+0B0B47C05B22016F6EC2E518EA8AF4DA0BDC4B02EBBA5D746CCD8F698E5F25CC
+47184CA13E1670BC214C44C27A70CE6DFBFA31B6C82B015C1A4F64F2C767960D
+E2E40BC61F84B19C6F874381488053602966F43AE5058C0FAD7FCD563D01DC11
+09C7252BD1FC94D7975F72047395F685A7FABA083130F64B8DEA9029F14C6AC6
+874B97B05248E3D6A435711263526F395BA49D30A21D4AE548141E399FBAB5B1
+6EE081015FE3C5663CCC484B8B4183EFB92E69EFFDD7F01F518569E03A72C4FB
+6772A0644FA922FC56B0B99B1F35832A11D929CAEC8280793D062109E3BC57B9
+43E01331FCA8548A573FEB914F916BE1D06D2561296972C28F6AB92BD7C739FB
+B1D5251FC46E2ACA742585DA6C13ABF373F66B51B45B44DB1471220A3C5AC33D
+B1CBEA5B541B8C1AAEE38ED30735CB1C12D02DF0F6770979AE08BA566887CFF7
+54C4AF9ACC382793D4BF251D09A088691EDF51E72BD9BF9F2455A8380D40723B
+1D90B78C210ED9972BA6BEAD25A7B240219C012E3757353802DA6183C365F51D
+D94C2C57373A44EC5C422D3959C140BD87F1271405B33BB9747A78E5460A96DE
+2C1E98D4B4FD3A15E10989FAFBBA5C57644D6206CDB81493667B3E4FD684F3F5
+8FAEC6F36B47625DAC46AF37D9A04536EB5D64B84D17FA194BA862BADF76E107
+548B078BD5DEAFEC764E789E6CC8E78039801CC4716FFF5E7857B0FA3BC31CA7
+E1AB37C519A9EFC58DD1D3926226A3AB147EEDF10D63CBCDAF2DE66E4356711D
+EFB9601764562A81D21D943A01AAA3D814DA167531C164BDE763F6E3D619FE40
+4705A2A03672929945500B4D11F01ECB2B09CED1927029D49A9ABC19B23463EB
+0FAB85297CE11F97C1D560C5CFD27691E39FAAA95B468A502988BA484664EF88
+2630187E829EAFC67146942DAFE5DD566A72FD6BF32B33F27B383ABF99F9E438
+C30F7CF8513F209A6B4E76F16BEA603005E8F71C817BA98D25B415B930988A1D
+4EFC4CC7BA7801869D53863261CCAF234BBC398FFC8D7F736F231E77DC9C0EA3
+1AA359D0A1962649825F59DBBA3B5975D70B2D6FBEE024FEBB2908E47858568D
+4BF000D59D21F549FBC46726878B0123BC5F2450F60B092AB46065DDC9BB7D41
+8E3CDB9982369E2CED9B88B58D47A94A108324E6BC009395CB656230FD9C5EC3
+8631D1F70F5B29CBABA91706687A4EC238AADFD7BC3B43166134AC044E72007B
+8BB28A578560F256B2C9F818D948CD3CB57E351BA8F34834C164F3AF6F544B64
+0DA5FF8D23E70669BE37DDD66EDD81132EE4AC92607D6309C5CDFC6D800FA012
+BEDEF9E53F5F3DE3B0955FF6D7F6AFAF7C5026F2B989F8103E4FD2E39176E5C7
+A50333B89EC266B1C39E2534EA4AB75B62B90962065D26D8958DE43A879FB0A6
+316D86559080C6048BF798AAB878E578673FF67A92741F60CADD40265C658184
+A42E9B85997CC8BB4696F50CB08AA5F0F1A658041F6C32A0859B99E9B41A0141
+E9EC90FDA5A358995A7FE0F8E7D5B74F1CEE7C6EE8272B35BD242B5219AC103B
+CDD20FB4F83F7BC30E2D0DC150B036CEB93C92908D53C6FD6D2D5BE1A1EB1596
+CD9374A4F388507EB1624048C79366F13C1319E410B9EEF4F33C5BC5BA7392CE
+852B8F2F649AF0781AD969BA91CE623BAAE3A45626D4A6D98F210C30C60DFB30
+72C19559C54ECD9FBE406551B0B3C8B1833A8834E1BFECD87A20D90B25F4859A
+3A7A21054BD82BD20A3E2112F447ADAD7BDE83EE87ED04683DAB283627AEC13E
+450DA15C25855BC4ADA345C1D92CB5880AD4466DDA84568FF703A824A8EE8E29
+F0E221661D6BCF20BF046F80C044A860A2925E96063CCE02D044DAA35923E5FF
+6DAEFA7845ECDA7EB4D3145F0436EB4850AB3A65120C32BD2AFAFF65518A7529
+AF8B2E8F5DB78B7F789ED6144D3EE5588A64DC1709E64C69B3907A8B4872AAC2
+896172C0119889060CFC265751C8A781208282157BA8F925BFDFE72E4AE0BB4C
+D472F838F9FD40E229A3B36F18D96C99FE8D88CA44BD2702C5723D7BD75CA5E7
+E606909DC6EF9550DC7866C54E6F08F6993E6AC0E78CA0FDB60DB16AFE9149D9
+CE9E29E6461C1FDCAC59B0CA7814F7CB663BD335998F2B946407D92791AB32CA
+BC3FAF02A19178205981B654FBC761D3316337936BB9C02F4435E9FF33A93228
+CDCB3DBD347E15779CEB58473E78A5AF2F234F2FF350FF5F2589FD2A3F38EA2A
+0411507AE1ED51B550AD45D561344D3A6470C9449E25522F261E9F861A87F272
+250144D4A7FF42EFE2F53F262B4D50A9296958A5FCCAB2A72192C87AA4D7163E
+F5C23005FB2BFDDBB7696A39A987822C4D71A1BCFFF58FCE32435CE6580DC9FF
+F02B40A04772837D1C090B31D98E73E79D6E63D973AF32C762643D50575E99B2
+D2944583F89A5C23DB7BC78F34E2A23079DFE9CE9E9AD70C5EA9AC910B721861
+9CD2CF56C2E9F92311D2F4319C4E55411BCE3D593188E4324A653B730C2435DA
+3D2839B68C3919AF4DFE343C1F1BE951985F50F264253552CC514B6962EA363D
+CA92F7AFF2A2F64B14194F69137D3EE3E4854B0BE9E9D9400EF10A9F1B40A01F
+0AB88A7542A3F40A29B012ACD52C644EBE181CD24FBAA9A2687A182BDC142695
+6013E51C2A8E561A067760B4696EC55E2DF1D6A04CEE65E74A11F712BCB2F8A6
+9994358EC86660EC04F7DA6C7A133CAB415B034B567F36DC71EDD3DEF8F0802D
+437DC1488532EDEC290E147FC9279F4821F0EA2F5BA6E2A43B64CAF0B1942F33
+215C18ED620C928F1EA7D0452613927FE3A78377C01542FBA8A397D0C6D6D26B
+AEE8F0A3C15AE5CC927CA38E4C0CD2AB9C71B6780E5EE878523177130C291C70
+75D865FD73B3A875F450331C332ED0205F74355A07C528AA047568789CE16005
+A3CDB32578707DFABCA888B476BDB2FBC69425F9157AE29C0E807B4D996DA7E0
+75C8F714F2EF2803C456E2EE318F6111C286CC7305D2C1E270643BAD7587DC7D
+4030E32069D4CB84C8F07D0DF1E492E4F4C9AC6C71ADC174925CECA25FE6878C
+4C2BD2D4E3A3CFF16E0FCD8C308B759C2A4FEEDF484BEB0F5BB9B7895DC641D2
+922631FD2E23257128523B31B369AEC4D3A63E3AB3DBE2F649BA1C2E4BB4F8FA
+7CC579D3C6FBF2B045EAEC3E5522802DF1E107179B98CDB9F0A9D400CC5DC89C
+561A93455644ECF841E34C28FD690062504AEF2D5E09E9E84230E93B56B741D1
+1AC88BDB4E77B90D49DAFF1333758F9E72CC153F4F1823407E9EA929067E180B
+989D5B459D867D3B242CECABDA3439BA08BE3F96155B62E3323FFD874DB7897B
+CC139739546D83739C5C1665F6CCD89F74CB7C07138891E23DACABD4B67AD04A
+1DA2D547378B8E77D1D6CF3A89295BC499F383FEE55EA8359544EF60ACF1F750
+1C607FFAA1AA10A361DDDE23B2858E77C71F0FD2D47ECDE5E77CEE1DA878A8B1
+40211679D7691011B81246ACFF2B487F106FEFF52E79B7B7B05442D846FA7381
+98E1EE04940FD3446A516B47C815943870C9CA9C1B1BDA2894AD89DEA6E1B96E
+60C94BE49C89A0FC4B009AEAA8B9E658798B79AB404EB06515D23D0C83465473
+4833AFB6B56761858EDBC5E125891D58DE477CD512943AEFCFCCA741D39CFA02
+E0CBD9045ED5FAF2580C39A1102196A85E1CBC67A1C56A7CDFA12BE2AD351D9F
+37D4783CD6A8B0EA717B5FE28D7B39000712E37E622A821D040AC927726402E3
+63345131FE928E3147B83D619DA8F212E144B19EDA829C7F6CBDE636F76ABEB7
+82658AE7276C2F8BEFD02188598DC592E05666984DA2BC8C9F3549E96DF45D44
+9FC713AF972127020E99F95AF3904EAA898F4B67D19BA296AA36FBC14C4DC5AB
+C88DCCE567002214C7518098D015FA37AF02BEA5D9F5845FE3FF9037C15EBC79
+4CDCB7D79129ACBFD2573A884EDEAF3939E2D3D6967F1A0117A0DC6C8597FD47
+01813A0B01D60D7709BC55D5DDFCB08F53B441D7EEC6544FF96638CF1ED431EC
+794A0E716F63233C0D80E8B4123F30E632AD427857EF57A6CF6A106F5382EF74
+F9088615AF05E3362609E86DC9CB58CD2F709F8196FB61FB4F82F9B1F0792B09
+D6AD2F194A9353F60EDE331B84B7704F0C797415FAC6F5DBD56D39B44A45D1DE
+B6A2319784AF1B2A9573DB75B573926AFC074627FAA9E8B4BF773A802896CC96
+65B535DDA172851A2F052934E7D7D593D3E2644444F7C635179D00536099420E
+CC56526A9FBCA1B2DDFC48D479DD9A928197AE138735926D72737FE8EF7D1B21
+6425B94AF20B5EE8BC00FD87705DB8DF11ADF16715177FE917C2AAE6DC1CE5EC
+EBFA2BBC044398B8F85DF05D50BA8A53E97F44D6CCE9690F901A50B844416408
+91F0DA30C55BC25008122D9A08EE92A8C84F6CEACF40591E4320A114E2B62F15
+92971E5DD0613D6D323245F1DE0C5397802E88C79D9C8C7719F4A13902828BDB
+34D6E8D8B68BEEF5A4AB6A4DFCD93AF6ACE8C60A16A593474CB17982F611D6B1
+3294A28699B8E8E73C27C68910AB90B2CC147944323A5F339A5844B674AD75EE
+7BA8094D3BFA4FBE6D1EFBBF7603607E38B920BF9CE43E418452E4D61A6D28C1
+F91CC04699210332A1555931106ECB43AC1FE2D08882F0E9180E5924C0335693
+AA13697E9F7F1091D71360D373661CBAA631992B3B2627DA5340DC655F712572
+FD675340127A1CBEFE3656AB4009BCD1BAE64048275146C32E79F031EEC428A2
+0B786601B1B44D5BF9E464CAF224E5636B0D2D83EF07E81A545EE9A5F9A531D2
+064EC94A90714E13760440450A6ACF3DD244C32A9ED0A65C546BA46C27FD7801
+C94F5C0735A1E9E6934D30AD680799FB3A761896C9E1F1BC0422CEEDDE021770
+1837B9A79B0F8775340CE0C2A18E260F6C471E98A3C6E4AC73A148CAB6EFAB3C
+E50F14240785645FEE335349C9B8D59B99FD884EA4A1C878A5AB6934511DA544
+7D009675FD5B62F999ED528C3B70D337A7D93D4D14522D1270B5C345B5ADE5ED
+518AB80590221630B0E66A85B1DC67A6CDC6B3694F8EE53BF90223FD68ACF7D9
+A4106D543E16EA756EC3CF9C96FAD7E45A8966B8BBBD5B1E5E9509F2DDA57EC1
+AB2B457D495F9C8452376C11C649FE4015844D876967666AF9824AE5E3ED033C
+D3DE8808897B223FB36CC42BF7867775B8B97610CAD61760B48C7F3F2DE23908
+035EA9A89551B4AC734DEFF55D121AA9D365BFE4C621AC78344A11360E042213
+EE8F7EB0EEC8BEC6C9294D22467B5D6DB1A0B0E03F371E1AE162C5DD46DD127F
+F8F75142EA07F5F5E3B4848E9F4B884F0257D4FCBA87797839A716CAAF03EE52
+FF4479EB9FA912146C609AD0784C7EBC41CD480FB7B3CBA7D5BB91BEBA43B5BC
+AA5E4A9CEDB68B34B4EF7A15AE58EEBD677D7D2ACB6570A569F79AA9F8C08334
+2575F0AD37AD980DECA14BD61D6D0F38DA4C8F5E4350778BE866AB63AA8260F0
+3D9105FD3738B1C5417EBC9BE27027718016DAB611E3D06529A5F9C2C0A05371
+3A7B87144805AE4E317F26B518FAC096F5A9BAA8EA45D77BE19CDD1E352FC955
+1ADDD93B080C6E95DE94CE3CC6AE60E797B09EB9FF1EA0B5C60822953F8612A5
+93923E7D7FA07A86AD52B23D3D0B88630B88D6E8C62D009DEF41CC7D95EAC8EB
+B26AC8E3DCF0929016378EC4841E1C4F951059105BB7F4D9D827ABA155102A09
+0242EDC57D050CBB9A0B6C5302B1534EC041093CF0C05C0E30F0B3513F3F5356
+75E913640AE066B795197E009D880CF19ED6C92FBE4D9CD3C96C88A59F2097E3
+D9F0F923CF7537FC69D5C714DA5E53CBEF307D8BA7FEB8CAF2DC63B9B07D4556
+CF751C7AA7CB1268BEE3591838C5DA625BDD22B4748A2118B7073C7AC7A885A1
+4996A7900CE4F42B19383E12F0BFBF0862E3A539F952038E1149B57D3B92DD18
+FC33B2AEFF202D53D5212300869B57A104AD5640DDE1A5E3F1240482EA9CC7DD
+A63BE8B6DB82A2FBB5DFD31E72A6CED413ABA65C6DD3674A76E547A4CC9C1C5A
+504992A649C7F2AC469A9BCA5E9C84333AA74C686A863A05FB73110E466A34C1
+3E3AE5E21B912282BEDAE14864E420B05F9E2EE8B1C523B362A4237929BF2D06
+A0D398D91ADCFD021113D4489736B4D8E703D77F2BB92973874EE461E76ECFE3
+D114EEB3F611531FF20CE6310C338C6C426F2CDE535C69E3F14CBFE16F48C7E7
+7420777D9A175710174DD5E23B2BA6FFEC521907939AD66488857BE8021B385B
+D6E1162BFD8BB36174E0D5C238BFD778BA5817BF31B2624429080A5B93AC98E3
+B6C5E9C792F9B1CBA7BBDF63277A28B6891DDCD36D0CF656C4F510C77AA08991
+0545717C76D2289D77C79DB34F2FF22E29AFB3F5E9B6313A2F582E4DDD2373CE
+6064843D24FBC35B1A08AAD4A9B408541301166DBE585317FF2A8E15C25DA94F
+5A5B9D11F5F0B1A658648C529717151A96623F590FD41908A5CA20CDC0D75D84
+6DBFD25E5D4739177AF9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -2117,25 +3475,42 @@ E9806B580D6E7437D6EC6C212918E096FAAE8AAF2EE471A670487D9106C59C8D
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMCSC10
-%!PS-AdobeFont-1.1: CMCSC10 1.0
-%%CreationDate: 1991 Aug 18 17:46:49
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMCSC10 003.002
+%%Title: CMCSC10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMCSC10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMCSC10 known{/CMCSC10 findfont dup/UniqueID known{dup
+/UniqueID get 5087402 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMCSC10 def
+/FontBBox {14 -250 1077 750 }readonly def
+/UniqueID 5087402 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMCSC10.) readonly def
/FullName (CMCSC10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
end readonly def
-/FontName /CMCSC10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 45 /hyphen put
@@ -2159,134 +3534,572 @@ dup 115 /s put
dup 117 /u put
dup 120 /x put
readonly def
-/FontBBox{14 -250 1077 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337
-900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA
-87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98
-076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518
-9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A
-FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD
-B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9
-CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30
-40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D
-C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B
-7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5
-FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC
-81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D
-5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90
-CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A
-0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB
-E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091
-22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060
-1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98
-6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C
-146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5A6812F33CB8
-554D92C7AB2C51C09C7EE0E5344CE62BEEB49D5F09AAE8AE94984EAD1847C5C7
-72B2A06D1906BE1B19B8672AF6C90238BB7A697EDF6C299BB33275CACDECCCB5
-5A2AC6B60E598D35B682B3445B029767AAED04633BD8C7F65DF5B19E68BAB10A
-1941EF5974412C72A167C7899691A81DFB0F11107009CBDBE91BA59603A49A10
-7D1F25271F3978093DF92B9899EA3F62A16C032F432ADF2D882FBBE99164176F
-026A97BF90473AD4F4DAB59E8D19A3F95A29E4D872FFA35AA6821F8BB8912534
-AF87564ABC178962288EB3EF0996127FDEEB56DA2A67399B52A50869E6F81207
-423B5181D9707C9C5A8E4EEAD48B967A5CE54ADA3A4C923E6B9E5D893E9FC93A
-D8D2FE2ACD2CCFD644D020FBD6E57B8CE610A777C9C0C13F99B949105004821C
-A093A86B100DB0FF4B1151E0E3CE04C45A6A3EEE664243CC1A58DBA98FA7E455
-460C26843DC93DF1F9D1E076FD2EFEB77EE7BD7ED299E991DFE2F98089CCE967
-40FF20C8751D5266C7C44BBB5B357C808EC9019446E96D1520C3C707A0C5AF9A
-A0AC16D7DCCE3E622B1AFE418CF0FDF81220202C6A6413F071E4781425C6BCC0
-6443F29F7C38C6086F644100AD8DDF3D78D120CE99F422C9A277589362076868
-AB8B5C5A7B99E79266915C95BE2D712322C85FDF0A2118452E1321AD76C7FCC9
-F4F067BF3A9B7F06ED98C9534528A3EDAEE3354BC95C03E21441B199CA288E58
-7AECE47656B66475AC53D9B7FC4613260628895CA1BFB21E25B1098EE7779DA6
-D46C18933860924530644D877A5A1755A6EADF2EC377A40AB8A87FE650B774C2
-AD0FB796AFF2DC6DEE921DFCB4406440F493777AB4AB145CF5DABC0A803E36BC
-63ADB4E3A8E4060CDA2767C70793726A3E093235BFE0EE4498B7D8A01762734B
-303E9D24E5354AF9B2519CFB708661C630664F9EDE2CDCA80777FECA16627495
-04E32CD2A9B68E29577B27C65B0AA3AD89C23BA2B79F0EFB08C08BA8DFC1D5B9
-FA53DB87349E7CC25082FB7395CEB69C8A185A6C6BA5686E476FC86D6A22E306
-AB5E1C1D2809485E299312C66BC6C9BC0D95552539D22DA59B874A318C03D9E0
-0A60B47AB88C68AFC89B5EEA0521C4528283FC44BBB90861F9C1D428C81E69DC
-D2476FAA9113341BE5324695E96BB0E9E83455BD2F020B19C7D47DDD66932C57
-B92E7A6EC1EFE1B38F145E4A09C4F86E2DE2251078F33399B6DBF6B093B596C3
-8553B2C2B14CFF58CCBD97C117616E5A0FA91F740F1F113CA22C8872082750CB
-AB56FB6298AA24A6FC17CB63FD919D83FFD8E21D7CF08278AD5B774B18E2845E
-B8A690ADB9EEF48C65B7A1FE2767E923A4ED2FC14831F76D07B5449057CD6ADA
-8A6017783DB40B74467260E2E710DAD3B54A3750B2EDD2A5D9D86F33B2692F42
-DB513C6CE754145E880CD636BD81FB09DDD312285B37EAEB06771AF9C4A94FB2
-B5118E00399D78094375E381860F28AF216546AE14336AA8021AAEBEC7B18D4B
-4D951ADFFF236BE54405680A893DA6963810697D154E599CE6488C6E0651942B
-A046A769CFB69F0D6ED0CCEB32DFF9BA1F42DC407AD6168D1E8F9F543462CA0B
-D2D4F6A743241A0AE8209D24C3CFD15FCE0BFC5B12A38D79D7B6B542358E5D38
-1E2FB10DF79DB1EBEDA7B62B4ED1908B6958367320BC5540F29720015BF69836
-A816CEA95F20AB0C4AFBAEE96E148642AFC20ACED0614386B26FD5A17A661987
-6BD1EA156E836689A39200851A1ABFC51691BAE4706F60F255443A6A5D1770B6
-97F11FAC489336A2EE528D25FB23C8EFAD6DBA039A189885A350C82880DC5223
-1B30F1EC85EB3CCDCD88DD1C030F9B346A46C4EA46FEDC6E13AB155AAADB4CCB
-1E2B585A9C1C6CEA143E43DE0A0E344AF525368138B475C665572B46BCB211F5
-9B14464D112DA0BC53710A573B9D061399DD6D4C7E7DFAEE23F06DA8AC4FEC16
-6493ABC66E6C64D115992E8C11307589809ED7DBF05F079003517753256BBC3F
-129CC928B009A30709FA4A8527686342C3EF7F7352D7C070838D6586B1E5728A
-2AB44B2DD2B158CD4D4214A01D25384ACE75298AC298E6D47FD1F4936A52855A
-C99070A834C957F9B09BEA059841DA63CA94CD5BC7B01A7156BBBE71254A1F4A
-EE8E7A82EC8A64B4CF55F0FA6ED8A60B7DA91518AE7FBE43E93025E2BCEE5B92
-3A622D725BEA3D14E14735BCE2FC04BF11120B761E3DCEF94D582020BBD67C32
-3B1AEAA0A82FAEAA69B8A2C74F6D82436ABBAEB48F2DCD8F4C9A99012E73F8EB
-E34E43E27AE6B7228EC48B226DE50FD58AEEF7A28CE336F4A113D679024A053B
-AFE36FEE965917F5A1910443C11147836AF4430C3D4A7D4F4CF759E9E1EF1268
-163F077B862B77ABD0F7DB83EC447F872BC219AFA9B3EBC8FF0A9CB558A35F5A
-FA49258CB038E7D3F0EE530972D4C245EEBEA89BE3DC179B567487EB44FA6CF9
-088A5ABBF8DF8EA830FF67A9409BC8258285F7650F924E167F405EADEAE15921
-9A72E2C9DF52FD66C9762EF5CDC5146932D2F322871922577C04CD90865E1BA6
-1E792CB2EE30BE10721C014DF1C53D8F2F07B27E970D9AA1D70DDB06D09BBAED
-CBFC0855651175B85C86119EC3316F7A8A9F237C63AEFEBCEA7DB430B8A9A0F9
-87C7DF4A86ED545DA1CF238A61B9E6F6E827BED954282F163F01E911B17C4000
-E8BEDE28EF8AE821F1A319EF110C75A15FF0D55FEF8D9961D4FBFE1087C5888D
-CED4ADB1EA201C1D91FD6DF71D121B5F05F98041AF17514496D5B3CA7BB09E0E
-19FA8C9FF2196DE23663684794C65C684B7AF97BE6754AA108C2C7015A14D975
-1B8D3D39F376E3F693E12DB603A39BD41670CA0F997BAA41E30817B4CD2DAB98
-1EAC8E82E058A71C1729EF32B9DB11A9F2546E43618ACB1D0CC698219C6FDE29
-E4D783343E8A3DAF9DB2EC3FF1E95EBC4D9B0E482FCDCBF5D14FE05E4D3F87F2
-07659A072D9465DA3D5D684481AEFD853D83ADAF5B61BA84F09346FB68379836
-00652CCDB39DC8CA06A668EFA3A570B6F22F5BA266F6A6C8BAE414ABE7278973
-CBCF137158CD9DBC409F2B510E86879EFAFBD5D810717BCBEF5E45E74193A352
-E6F1BAC1433CEB19BE0FDEB6EF159FEE2CCBF08FF84C788AB5B898F460C756F0
-1DE3CF57C53E48C2A61EEB5A83875C156F000909E643F202148DA4D634BCF8BB
-212AE802172D1B73DBCA14040817537FEBBD6DFF70C55A53C03DC314394EC407
-0BA251E7DBFD890416B42630CAC6B927D1324F9FA3BA236C5A7CF47C1C97FC62
-2C80366A3FF8A31E07754E01DF6293487C8F05E2C7E07DF4EE1B103C4AC1A979
-4FDBE6F0E997E72B321CEC0D5AC53D13D13749700199D7E4A728A8DC2E4566C3
-6EC71AC96F2EA85ED2EC9DD95B69A8368521FE1860BADDB68AD640AE3D651D58
-47F72E37D21B707D9C68F9485D2229233B284EEBA81FE8FDE475E62729054F11
-B2ABF54A241DE72B75B06A594016362AADCD8E06E7BECD43A9DD3167831FE455
-4AF2706AF62475223AC236B1218CF8E167B7C2704B185F9AD9FF978E1341692E
-6716EDBE7925E39DF0315408E92E2274829945A54CE69EC9A6A3F7A5A382366D
-72770D713BABC37C30686CCE65AA741A93561F9B9D938A4A63D791DE94B6455F
-5E5FED608643CE8C429E4A3E845E79965AA5CC327524626D833A44E0BA98C915
-41F440B593B406CDDB69A369606C034E065EAB6FE42B6F0E9852878B934A03CB
-037F5AAD74C1C5E846AB464C0566F36B921144C6E44824D78D81FEBCF8F58D25
-04161A00B077979A9A4A7E8E1CEA8EB6220F8BBA12756F4BE9D7026244970E41
-B982BA34C9DC3A0BCF765A77B314903338F301DD71FDD813ED616A88DD4DF27D
-5F3B4261450145A2A7F5EDE3616B026F5FA3B67B4C83139DD628127D4C46652B
-0187BA8DB624E4444555B851C759F6EA0BEE67AA734ED11E6BFAC849711AFCF9
-1DF03E08886702F00E1889DD54D65DA5D377FCFBF958250B926A0DD7B1AFCB63
-ACE9ED6756F871F7FD49583B2DCAE606E015D5C9DA104C844E393DCD49033471
-1248AAAA3812AD25210516018A15CE1C14CAFB533D4FD3A2A4ACA4230FEAB582
-C2BDC65CED03492CADAE4B1686CCAA16CD8C7581672590727933FE63030DF2AF
-FEE52DF524AE193D19B2821DCF83EF667CFA3770A3214FBDFFE854ADFC42BFD4
-8E461C73E94DAA9693AE3F632EC8BC5BA18CF4A5C49716C6D7840CE439A508DA
-32650240CFE8A11D2EA8E44DDDC4C3F86FFF13F10BFF03A9BADE6B614D23F05D
-AC5400CCE1ACDA00A76443871FCECF4F7F68FC04C71A56DC94290DDCAFC88B27
-141DA29CC8500D776DBF086280D30B6F498E83FFB6C1CFCBF64046C819B8DD7E
-1622CF99F02DB2EAB639A148FDA44139203C21B179BFD9F2600F1D6EFE2F2F49
-6F0CE21F7FB711E494F65ACCC420850E77939D8F179D861190BA922E5AE6A1BE
-E5981475AB279740A40CBCA4B1C955C888F97C1FAAA6F1AF6F2CFFC5F2458F
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BB89566A9BDEC70EB4F2
+048A6EB631F05C014D372103E37FC3FA317EBC9973565A638403DA02E48B7D31
+CFF6C241DC5CDB470561002FF46437C06EF93BC99352DF04393C661FFFBF4BA2
+0723ABD9B3E9CA9E63BA57EFDBAE684655CBBDBA15ADAE43E1A2C98A3CF060A3
+D16AF8FE3A49B50A24C20EEED716E49AF6013D4D38CD9CC41A91C17E4D04D79D
+567E1EF49110AA9C34464E95D81A730ECEB2C9AF38FBA6B45E253288438B4CB3
+DC75B3A906D4357293BA41E59C35223A6C9CBD6FF5FC90C2D07CBB376C7320FF
+435A6251822BFCBB612CE630EDF826C37E95F541C21B93FCE127591D5E38165E
+2B58A34AAE37712BC58B63FFD70AB80F4F24612CFD2F1466BAAF3CA2BCB45148
+D0DEA0E9B8FBA4C4FF5B8B3CB02E461355051842BD1C94F41066B9B909DB83B1
+DCDCBEF7CD00A43E4C0B8191A29600CA197F0BA227FB8309BB539D2A620BAC70
+8A1AB2DFA51ADC9873B8E5582DCD3ED154E5D727D1665F99BD89883D69E6CC2F
+DB3A57AEB612171A88E22F038461DE03FC357F771675E34E90D4D19B4B36891C
+9D2333960400E97494F4FC4DBCE6A73C34A0409E433BBDC0AAAEBA7D3555066E
+1CFBB4515C8B573C9B9DD12ED5B6ECEBE35AD0DDEA9DB004FC6CB540B5117B49
+59CABE5FD74C6F5B6482B42C20B5FF0467D1DBD7CED2CC651CA57852B6FBB402
+A6764DB342889132C911CAA713A7F2FDD8A5E849345D6C81025E02F5B8B682BA
+90CC9B467FBC37362436EA6BF8EB62D784B01D5430147945BC09D1F49EE89F2E
+3E2B8E6D439248A56F82F2E03EA5C7A922F2813BE6538A3A423BEBC55B345AFB
+3B3C125306749E137C647D78028AE1FBF3E1A82C260132832A9668F454D39C41
+736717DED0A99F6B11F005F0E1D07FE84713AAB4C042FDC166AA146D7B5E9198
+E4F485BE5B135EA281FF1C1E616B5AAF02771F58C5840CB5A427FF9794F93E94
+17FD799C78AED1DC4810BCEF4C6C51D3C1504EA2C6F2B29805B7ECF97B5F637D
+FE92E168CB9029E90404CB54FB312FC7AA8A9F2F524C03E61F03B1E31D4F061E
+1677B39D5D30C9FD4673E1723F4AE3CCF38593AD6D7F61E9DF3C010E51F25085
+35D51105E1464BA146A78D7297D4D310AD91342A0BB942034A3EC0696B467367
+3E39D202D637E6B14D0EBCA6AD3CF22B07D4CA69C0FCBB6C93782B2F0DFC5AC1
+5D8A16CB5EDB671A0C1BA9D10F63CEAFCD0E06E42C730C8EF769CCFD57937245
+658F486036D37E8BDDE5670A212FB488A8753322A5B170C9662750AA958C0BBD
+8E97D8239D2A08B30416504DEEC4E506013E037C91785C674F8A6A44E23FEE6F
+CCC00CC5E4D355B0871FDB8ECD64F70EE32449BB5D6F84F8C8AA2D5B1A489BA9
+D7FF2DBAA8D0B84054E93D64D3E77850A3724824914A0F821EEC3D605DD851A7
+606936B8B9E24D6E932E16C448140FE94DD96C75AECB73850035ED9C04A1D93C
+64B21E7D4657E030483EC5C3554AEF8BE4D0FE5B9743B875340B09E01273DAE8
+F256C50A1A8F2E0417440A8BB0173F59E11523E1CEF2593A4AC5AF2167627B00
+C5EA97D125EB8A4BD4C372877ABF10F5B7B149D73787E0834BFB3084E9508DF7
+072DD71637019599252059738D4D6BC57A9358E4B14F6AF9C4B31DB8E25C29B3
+7A15F9953BD73ACDE5F0445A5DC406BB4635FAE51C1D8202AE31730E6F355317
+1DC197DB0B6177307C60E5D38F4487363EE051B2E609A52BC4D45B14B6558B6B
+5E1618748794B8340752CDBE7756C068975B559615D4CD5A97CE30BAA7B2B1A3
+2FEF2E055232B24FD8A21BECDE1B6A479A28EC80AE2CD16DB50B30B4A6CFCF06
+491C7CD5AC29FB964D4846415233947522676DEABDA0D9535F8507D33693930C
+B4E4240A02B0CE7EA288516B8A6EF908D7F8BAF9012D052C6AC96D9F8F6ADB07
+8984F3559C5E7E3022A957982155FC9CD599C74E18328D3AB46F9DD15D1C4C3F
+9B93ADB4489BA02CFCF57DE6270F3AD2F8597BE71786510EF08142F430EE5568
+4F9DDB792B7C46B6135E341DBBF062FBC50FABA80CD4A384157BAE57CBEA9781
+AA4416323265168AC097DE7E30A0D4750143A4FCE70A863A31876A8FA5327C3E
+36E89589E363AA2B1A6E8B09F5AEB8FFFD0396067173465B6503383DE517A6EA
+88C0FC08578398C2A721E5AEB29F4AC9BC990A50CD87BD35A11F9E81F68E7B85
+5E5B95A4F9A5D30379EF90D78E1E466DEF867BAEFC4F5ED2C762BFF099C1C2B3
+5E0DA1C2FB33BE1379413CDDB1EE6BB3A495331F72F2FAEB8152E8AD5FD334A8
+AAB0082A71D5574B618EA8D487B8FAF1B445F3395B1E21224F5492A0E06F5152
+7726835C900E2E52BE3B7B654183AEDEC68053DD0AF19EF6DBC10B6FC08EC7D0
+CC0E2C8FAF8C9A4C21FB7C34E074BBA4EE64226BEC8C928A784C1BEE35B72EC8
+E9295240B29DDC2539CD118BAC38DB3917D14CD33AB45FE47E827F2A2B193AFF
+53C5396C52CEA4F43F06AC2D08C74CC85D608CBA267175EC31311EE25AB48DD9
+FE811B411AE426C9FC0B6044D1EBF130231623F1566CEA4D1C06D8032FD9808A
+94479C842BC41B675CF6B90113BD681F8D43F51D5016D80EDC11D7640FB950D4
+E709A46184406ED90D0892A4CD9062938A8205697A200DBE1F38EB166EFEA0EC
+4FCB45CDAF82EA103DD6FDD03D146F3E42EDA6496064DB3F4FC1C5280C9E604B
+D5EBCA08BF2AAC90156C11EF68137DC76502EBF216F3AF3EE30DD2676D218428
+F41C655093F8B530FCA378B5769F262A6FDB4B66B83F18F050E77227E28D71F4
+5F4425CB8D51B3DAE872CD86D7804F870BC564A6DA1CA13EDB00D131CE4F6460
+7021661B99612629DCC20C85CF155EDC5111E015A77B0B82A8FC1EBB374B7EF2
+361419BA93B857D5C9944BB5B4AEDD86ABCC261542077FE09701C96370168579
+5F89D5AAA08D700E2643E88C2FB8D1D56D37AAA9744872E7C050B4CE046B47A7
+83F224FA9FD311C955EFBF173042C8FC66524135F579B1397828870D5C9DC71F
+8615FADE2A1CFAEA90F732B6C266E2F3048FC43EDA7A6B6D98E9DB793CF457B3
+F5877E7A055C92B0246FEA8C72B3B3456F93BF36E2651D32CD614C3AECC0B4BC
+F824C8363E593A6458D37408FC5B09883B280005DD24123E2D4B1B85F4113327
+EEDD9186A4AF2CD6439B46C5C168C125CA80F9EE9E68906620EE126CFBF26E15
+B269838A54224EDCFE2A373EB750D4829BFA410DE5F1541E428BB1E024AF496D
+F5F1C151F5A645C8622F2EF9088D57A2811868A8A8BFCDBFCE3ACB8463AC35B4
+8B6F44E1C1232805842F56FA468F81FF37D5D55B81CA56058558544C142EB3BE
+07CFB1F75DECB1E48C14D6AFDD455989AA6FFE8B8DC54F462B3C20E31D270BCE
+8E68E2B43A6625AC7E9792704FAAD6CE8BBE0B341DA7189EBB3E9D5375B27FD4
+12506D5BCA50AEDC6955E6C3C7BAA84BACAF7ABDF3A270C7734EC3C6EC22793B
+E67B0E288F99699D38DA8B79F2D21DD97945FBDDD132A8F0BF947950D3C0B4AA
+EB7B2C435AFE54489E1930610311D718AC610C21A644F34CB2D1959B3066F39B
+EADEAB5CFC6AF4D191D86B02402B00D1C5262707861C5308730579795EB53207
+A291A27A8B5C4DAE0A87A0C6A260026CA3CB620E1002E066A515D7990F3DEA29
+0FAC962E0B82B7A6C86B1EDC54007822BAECED673FAAEF88C8109777EB79A53F
+AF3C58546974F2F56E70E9B5CB59ACB5C27CB01895557B2D82134D7F02029B24
+3331621F38E68717F5CB68A8892D0B9C0A8ED4F8BB56E80505170D44C6856128
+2DED0254ADA4875CF56B4D97372AAE730D4C77A2940DC8C178274DF88A9EE037
+215C6FE7B9D481EE4DE809B124C0270782411ACCCF89906A8B143D0BA8B2CEDE
+E9B90465C3E57A4FD9AD2702323450256ABD09A1F8C26F08480317C08B75B720
+70A161C99715A35A94DD5C9647ED0F8A5337B774C8E54F9653AC859485A1FED5
+37B725A7E4BA58711CBCDA6054E34CBD8E9F9460179DA7DBD243D81A1531FDDE
+BF2BD425BD9DBE75EAA333B1F5793669A215549A774597E6ADA16D323FE5601A
+EDA41092730009A99BF5B5AAE281844A6BF3292D4D4EDE36B4FD8BCAEB6EB72F
+AC5D3CD53D0D621CA9EA8D254FDCB2B5161EE9E80B266563F669805A3A15271A
+0753983004A1ECC7FBADF62AFEA4DAB49A178C231759857DB910668BDB07CB3F
+7E8EC24901863088B3231EE3FA563924032C91CA9D68DB398F9BD9AC0C651EC8
+9051C9F709CD784F3FF5951DECD7E869ACC34B83AECDB011E6594347855EE7F5
+28811F744A4BD70D4E9077EA7EC19FFCF612689F12B34332857AE41F13E6D16A
+962DB9B6AAAC167B9FBDF0068EA13412F318384134B29F3F0C399F1973A3564E
+F9C3C39B5BDD4C98D81A6CB476E565860B50704BD65ABD630A5F1372F2D826F3
+3AD47C08B8AD3176A170C369EF3CEEB190134006D6135C5B8CCDBE1C11FFF1EC
+3F6D8C46E15C4F5EB9ED9F31A129594D542D40DC3815CD075A0DBB648D868AF5
+15A05C4BDB28BF23653A3AD96CF6AFC065DCCCB23D5D9A945F8CBB539DD3BFA8
+DB8F1FBF9B6F25B41EB4309995CA3D5D6ABD70CBB4A2F0C6364E5439AD1045FF
+72F6B45A30BD3A548CFAADDCC6C15D46F6D783D3E520215751DC98335A4ED512
+D7D19235CDF911CC69F3CF4365B678EBF3E87C456A4E77339C74930083445588
+462529C22A96A28C5CE87AFA0C981F26CAED5A1C8DBCDDA612624DBE0373F026
+465185A4D8C73CCD8D71EE97116F8F7D341B87FD78F9CCB9FBDA2A7799711607
+6BBA855AE9D5C505870DC85FDFAAA130A351D56AADBFBD6A7D52055E3200F8B7
+8AE9A00092B55DEA8BDE224B4BA7FD4A191CB1FFC4CB995FEE1AC2883AB69E1A
+AFFC09AB5B9AE311A030A5BA05E2213F9BBF016C8FA80689C069314D91274B20
+53FCC65C7D7B3A7504887525BFFA060304931672A078BCD7F269595686310E34
+E1ECA868899BC402D17EC36CE40D5041D7CEDA77F7764C9D98793F5334F574DF
+E93CB10A5E8ADAE95CE63D2339557091B4B4911A4987CF21B7F1DBADBC2DD605
+8EB72473C1F2EABCC44E0D0339EECB55DA74085606C3F89D57ACFBF5755A5395
+CA8D4BD47E4EE8D8B882D3AB31A1F0C62E74654C7E041E4FF2693A38A9796064
+46526B0A37E6B5BF8E48E80EDEF81E34DA8F6CC9025936A4D0E6D709D61B7B5C
+AB550397117F3F9D2F5A542A64DEA8E1178F7337124D6B56BA92F659AAD694D7
+391028731E01284BFEA635314A8DA8DF7A34EA3B6B2F8803BE6DCB423A9E8015
+55EBD90EBAE8A00298B3B6B1C02BA516AF528122C1F2B07EF69F5466C2C36643
+0D665D6561705509B7582D8301AF3C32E2F3B9433E3E04D62117C7E8A368BDE1
+0D4DAA1C415B2A6573116D2A169AFEF700A83F55D88813585E89C94C07802BA8
+3AE8F9BC3CDBFD9C2E35D062B1FD6E79E1EF104FC70B0AB09D12CA027F33F85A
+22F0ECBB4AD55FE8C616B82C46CE69A600E4F767BD7A9C5F9B37A3196B038384
+5DEF76A8884425FE598A63AEB19FA698C2AF7CAA4983CEC789268E22BA051EE0
+20A40633D22D8F707626ED30E8273EAAD1C065F0B2E1718B5AC853ABE09330C3
+B0082A71D557169BC1559B6D285A3499D41C4CCF1F74884EC3917EB9C574371E
+AFE8578DDCA459B8D22C0188A8D150437B05FB92022C95EB6FBCC954216B5FED
+CBC7C90B9A1F061376A9840FB64390A6BA99CFC8279A86A730C6DBFD14C53C4B
+7277D676BD42203677E9ABEEC8C97E13DAA626474513B06F8734DD784F2FBBB9
+B3B448B8E8221E380AB4A86D3A683B86A54129519D50DD4FE63B30954D805CED
+A9A5D9A39C58B65B08E1C19555E927C6DBF7FD07252B2B57F62B905D6B488201
+213D106A41033B26FFBAC2E616DA6ADA6D560BADF10E68872806CFD6F6E19D7B
+57CF1F7A030A7BAD374F16A977E0ECB8742D034ADAF9C247DA19C8AEA74EF6CE
+DAFD6B1DC562FD3B77E4D008BDE4D8C7FCA9895DA1AC9EAA01C32A0DA712B082
+9438E77230D38FC4153E1711417B918BA6CC03203A5FF082AF880F48518D8271
+C1121E4F1386B30A7F1BC6F10EA98443F8A65C867A109336B808BC9A8E2A75AC
+F950835AA84B56F59DA4C8A18859C3B68F6B6DE09A6675F639EA9107BDB67B0F
+54EBC564BC2D781B61C14363A54956BA78A2BB89C9F966C94EEFC29EE9F4E23E
+C0BF750144DC289F0DEE1F8A25BB52E54F656FAFEE4BD2DA57E1306BBE648051
+1D0CFD6A23A3DF082E3CF13197BF1B7FB22B2CD427BB78F455C9634DF989DC90
+7BB2AE247B1C99AB2062855B2948341B0F857ACD750B59E370A6698C6A1F5287
+72A4A9628A592E313956C242DF8277EDD2F1FDFB07CDC104275FFBF796D7518A
+DF49FF3CDEC3BDFF1D290C382F244DF18005ECDABF0C5C2C64EEC4383E2E07DC
+5C82587C071E59B46B7BEF31D268F39D9B12D534344FBA515E9DE8F166FAD1E2
+7D1558967AAAD3829D3F7EC6938D20E5379F414532976ABA844D97A5E9078901
+EAE4D0ED1F4C7EE7A2D80D891A5013D6409A38ACFA497F5A169EB7F9F4890DC4
+62FA6A89EA48267331F086992B9CA9305E16611E6AEE67DCDD588A25D37F45B1
+0DE75C802EE021E574B64B3969DE2E5061ED9364B646C38D4BBA86802CA6338A
+94E135D2256920EBFB1AA22D9E90C7D16853F0DF9F2D942748EE540E4FCE63C6
+5380D7AB4ADD6CB00FE8F7867E4862D8DB432F28331428CC350CDF7F447A65ED
+D7683ECA35A22ADD06E9FE6BAF060913AEEE7B2B8EE4798E437698CC9EB2428E
+74CE73F84D0D2292DE709D71FFF8901C3505370E6F1D4E28E6B7372492C65A88
+159371B1D60D77CEC93B272B6C5394EE1D2EF9969DB2838B8E128553879A1BA5
+2884B0A596E8FC3D1E648B7E26A4AC57DF09B9CE09B2F91D8CA618CA52AB3DBD
+D005A56A420366069B73146A6F58E88BA49671A1AB7C2070C3D42AA770285143
+40AE7D7868C0E1993506B07C086AD7D4F28CE2D15853FC5FBCBF9425D8012B9E
+DB6E1E5002517659C8DA69DCEACA94F368537668843D281FC11782F1C5F71977
+CA215349EE6F20565DE3D8D8212A40E1227A4B22965FA64A0B02C62BFDE97E6F
+C3C54FED4057EF9D258C42D7440C78C5E0CC58A40DD74ECED4152F70A93CE71A
+1B3A57C46F74A6D27BF98C97CCD31A8EA487260F224A3E40F52C65490AB4098A
+7B9EEB54A5A415C8C88568F7D9EFE74BBB785FA18AA27D9201F28BBC477A20A5
+D1307AA78EB8C7CAD409AB64B29E4115E45F5FADDCC80CA74B296C4265A40614
+37F2ACD8386AC0202D6FDB6711E8CB06442F209D781E940ADDD6D881D4F8E874
+357C533115923B90138FFE31D3577C6AAE60D768970FAAB682CD0DCA3E9A9A68
+6393E4B772691C1013ADFFC90C508D51B02D2518ADCC7E79F7DE5DF9D18B8435
+6129064DD1A3995E5A6F45D78287CC10A0EAFBF47223494C5EA934B1BC2F7C53
+686C5880303F9E3ADC8B100D441D944686E1FD811C646C6DD0224F6CF55FA87F
+D132EF50450879A25242A18683BD6D0266F8F333F3768D1952B0F32AA75106D8
+EC0AB703F287E847CB91FFB88CD9DA174B49171822BDE34621CF41EA772230A6
+3088F8D19CF2364A329162D39E166AC728B15800222E54C40FDA8B73C48CE82B
+B2B3E7EF15157FB4510BCDD7EEBBE3FDDF708EA08540D94827AF3EA1B210446C
+DEA9EE0EE9B4758863AA33FC296740F0DD9B42A45861516AAE6208F189D8CB8E
+BBBDDBCC34B65A7D17B8BE932148C39084A9C71516582BCE25EBF7C1E0D84314
+45B273AF903055D53313DBD159BB698038A397AEF418B4446739318E8D273642
+095B1E04CC60718A2DC2BCD99B34202878786A58AE7C2F43D985874AB8A3F204
+4DBD4B9240EE96F0487CB687830972BF302F262C6381B2C79773EEB152B712E9
+34E8229E0B59788EB9B9FC1AC1E123751D1FF032610410F0847E6B9B9A575306
+53FC00ED82D0BDA8EB008F2380FDBA06D2F8C0210A261508BA95DD600436E0BF
+5E8A00CE3C92859961557763D413E79CDD37FDB07131FDC420EF525CC0B5377F
+9772D3876DBFDB57FE6275D187832F2B7A635967B201E70B532E85838ED3874B
+82B36AB9EAB7DD4D2B5C4140419CA04E87316E802CC93DE6336C22FEBE80C3A5
+D43A0F808E5E6A17F7BCF812FF5EE5AC1959E07F36B24C9192E375FCA3C0A84C
+1D1DD2093D4F151B9FEFBA90DB4E94A1D68E49DF5A715A5BE04E7B7D8C384D61
+5DDD71F057FEF51DE7D002AB3BFE0096C47EB3AAC7B89EEEB9E2F9CFC6BCDFD9
+A438C1097D5253E49DC0DE5B6E8F976AE8894914BF8CAB5236C8A3BB2A437CE6
+374D96AFC592F1238357817E1F2836EA763A3C0DEA2DD3F7D758BA61307C21F4
+796A18638504797DD9A5131EC48DB0D23FC9A3E069B2FECA5B36A2260C6FED2E
+6EBDE3AED119EDFA96B837C56202ADF7F7747291A43CDDED6EB7DB5B9373CB78
+F6FA0B92BB2C17AD8DA549E878D8DEA681028539E5E2A223E2F9BA4CA09A6FF4
+EA195F1EAE62CC33F2282888962B9032D1C83EC4EDD832866A472426EBA6080A
+75E02F39CE0421C5C06B9D593022C23D675D7BE879FCE0B20A9CBB394F9D3815
+9C847518BB8DDBF3A89D699C1FA84E704B02BC85D61ADA5E548CD8DBE269A3E7
+03626A0FEE75E116F95B5D31C73BC852C5FDCF524542BFD9D05D8EB4B2A114E0
+C2FFCE282CBD87D82C1D4E64772B0492068B139B1795E287899CED7791EF5C8F
+E77391C51552FF08DAA85BC8B9896CB5C792C3E1C4D44E3CAC1EAEC02E4B986F
+E5059463613DD3643F8DCE2264FA66D712A0DACCF86DDAB315393219F5EBD18E
+E220AD61CE3C67664615A5F9734421152382E8EA9CBED8269ACFFC37873BA329
+20649A6F684D31BF37194952496E8B962B75B83CEDE72F0DAAB761120B710677
+F3AECF2A67F512F7C423B1DA012D0D0D44F009346C4953447950F514731830D1
+59D01BFF4511CD0257D5ECC2CC4A859E0ED92627F659547C8F137DC0F49F06D6
+02F624EEBDBC779FBECB1816A88F02B3565A9C3D42E919F755F3D80F6FAB681B
+585B5A49F62581EDE1D1DF1906007A8926932FE74FA2A94B92026DE9D678EA3B
+ABC3C2EE5A3757317AD5F5CD361A511F4019CAF77C46C8FFE4615CD6CFDF7F8C
+8CD06F1A2DDBD3BBA03FBBF8DCC898EE71E7D19CDE66971150359310D0BB68B8
+65F3E41D34C8D063A71C27B6C0F27753A9E35D291477858E5B734D72C40C4573
+203C5529340CB56BC00EA0E02B3DB54173E6480D29D957E6735146163980F0A8
+CA4086192E6095F411939DD3FF19854F8F58B39A23D3ABA22BEAE05C4B6B6845
+98968C08559A037DE955F77359FC39249C1149BC4634D10DAABB086A23D9A37A
+73A61EAB63BE3B1A8D8E76ED94E731169E892B469056757EC885D8AC4FF50E5C
+1D80EFE20E40E26006953C53D765B3BCB4C5396646DB3AEF01F939BD163ADD87
+FEB1E55A73722A0866DEC922EFF8B06AFDF2FC742EB1CA422822BB378310A994
+794062BE62D5BC4D44C25655C902F4FB4FA63CE21E095E4DF3723CFE7D2D961F
+10A715B194ED855942588BDA460A28F1B5D849A34D85756CC8CE874E2384AD9F
+3A1C348996EA94927BCE9715A8B229C0D7FCC2C07592052796D7BAE23DF895DA
+1CF991E912EAC97601FD79F35616A1F23D82647BCB49C360740CF010CA4E8ADF
+97A9CAC032D12919CC167CA4C2E6C60EBB4AB87C8F2BDF71E28E91A9BC96056F
+5D905902AE964E5336CFDACC8C5CFC5607D75CA5F364AB8E9A65FD372BF15FA9
+0CE1519CD7DBF31F92D2A078754E4BF90F3121F6F698DEC238404EDDD4EEA153
+0335941E4EB8F08DE0104FD8633BE277E9ED26FC65D28FC1D604D8504B2F788A
+11E2206ACE8AB33D14CE9D4CFC917008D44AFA2B1877C3D42455593889867784
+7CE696EABDEF95872F065DAFEFAC253F367D47127CE76FCB85BBF0684DD1663C
+876E68EC35B21593A10EA5553311880B8EF744014CD1ACFC067FDFD46978BA23
+C86FBA05CEB66E67621680BEE0ABF82364D4E3235A20033437C6B84A71FB34E6
+F8A160AC477A1302B4F98D00FDDB2A35ED9B315700669D9D8A3D254F786316AF
+882CAC6555A766281A0836CD45D8CD8245CA69729260D54C11DB43032A0FAC0B
+05869ED0A432CEF854FE665BACB0F780C9123B4DA1E1895F8717DDE4A58BD3FD
+D214195066D4587463E839EDF667E475BC04EEDAEC41422AC9BC27C238E88318
+7DFFED5D04AAFB1F63AC651B1A4113B7CE9838ABAF75632EDA8B5EE0C8474678
+58898AD595ACD99029DC34EB4BADE834C04444941C3D8280B93951A9E8554EF9
+5F0FAA218DD8224B94807CE2D8DF7E4A5E2B28C44A551DB0708B5D6D5F000B96
+0422A8E953233296B6E5EA698921F1EEEBDF0C5CC72263663895940B4C1EA28E
+E0E3AF21698D5430D6495E32E0D5F5E538EF835FBCF4A96DAD8F011B145584EF
+1C33809372DF602D1FB3D80A4EAB65897F672642E4317926DF178BAB6F9851C7
+63613B3DB11FF07F9C7582592B620C7767D005D7B0C28AF2D309E6CAC222055F
+2C20A58AC1B407641B483D571B9E959A3AE0DEF316EFF7A4514D5313C47AAFBE
+82CC583BEB32F20E4C3A5650B58812EF357B68F26882D30A6BBEBDE64E2FD910
+AB8D974CE5C968C7D34390529F4714A9F1D2373DB1D912D418225932541FB250
+9C74346749DE9C5662B1C40437E783A78A283AD6EF43B2C111DEFBEECEB17ED7
+3630AE404B310F1148C82F4969A794D945CA5E1C18F39BB6F9C46EDC8BC3C88B
+FAC2116B2338E1AF9C975ECC8474BCA351E3FDF89ED4352FF6A3D6C7EF7A7BDC
+DD4B2DA9E7C77F8A6623B670963D2B9B9A80F8445E17B85194AD45E02FF10484
+85E0A700BDE9F574487F9494B424646D48999EA67D469A22B9CB72123F31EA5E
+51C07370BFB1C5EDB4ADE75E7111A0116C212920F1362353BF58F33D7E8EE680
+DBF8085B46AFC40ED9FFD7AE756CB267D0F321FDB71F2DD35FBD3003E91E2758
+3DED65748BE5CD0D2D244E8FA187749FED44ED0C71056AD954FCF656DE28E70B
+93A79EB4D7BD59E92911EC64EA794732A79B9908B7C6DD42C99BDF07AAA06E07
+5CD6497C489BC56B09E44D22D0FE69521A9BA20ACBFDAB8EE718625711BF479E
+512FEC4A8F9EC7CF66D4CC44E2D0EA1235BF17C3D0AD6859385CECA3D4A640B0
+762D325D3A449BF7115CE8469A493C494721D6636BCB9C55ACF1D0F3489E5534
+4A76A8F3E3AD6252D8CBD3EDFDAC890A7B497286241AFE35B2261B66018A1523
+4B9FD31AE07A6CCA6B91A176BC38BC03F97D71F80270E14B83B012FA5270B7B4
+73F889DED2D4BFB24536E495F96BDF408E3840AF1567E9960A4F22F0B749749B
+C156336BD7F349F2F82CE54B459462CB7C9846CC090E752DCDC871FF0873076E
+8885B0AEF490DB0C9FA98A8FDF84EDFD52AB0F992EEB236A79FB8FB52718EBA6
+E0D586512F81079D468A75336540163B966670B437304F3272CF6E49252662C6
+419E8B2B14D240A1DB0CF6EF14E024F9D8C6882F865D7E007B46DB65E2E6AB1A
+22C5F096B255E91CABA7C441A3149FFB4E19BA97E5D43779C2A80208E279A91E
+8B8A281C079B819BBB6A5B1A62F34D59B7223D9FBB5F5E96F0D9AFEBD3CE3D57
+A4C4D2345776FCA140EA95242C8AF1EE7B93D2676209B750ABFCFC8CAF50F578
+4C364CF8BC46839A4379624D56B7B917743E9D6A284E7B315D461ED66B262413
+A9AE1741C633A92061DF92AAF78A18586CDCA41248C586F7D272378F9CA76980
+202A391CC9FD46794140F06CC75AF2F4986D690939E083CDF9B96D066B1EC8F3
+DE3B68AC8FAB84970B1A199B3F3AA5BE27ED8119F306CC5F26230C16E9D9FB31
+1EE9D3F5175E4D4D7A8A2945000C37BC73816AEDE6F2AC0F09B788C9988BA69B
+82CF336482F490F05725696EB080E460FC03B3E28C1B3613C8E5FE3DEA048D97
+4AC72C9955FDE282FA8C8385B30E3A7EFE247B48B370DCB439FA721BED19AF4C
+FDC3D3543A25A4E0273419B6CDD7209FB336C1542BA56257E5D31B70529C12D7
+524617868F4F3B49799322EDF504750D1BAAE307ABC4843704B64ED8AD4996B7
+5193CEA660390527734BF1448AC09998E70FF15BD70F8B6388B0A987CBC783FC
+990F7A5EA016EBC024F12BC9812C7C4DD6E991DB89415A49D0B265E453732F4D
+2B6BB50E995E719B00DEBE74E7D1E291A739C4EAB39B5A61763DDB65BDA6E1C9
+17C49BF1A76546BE0EDAAA17310AB2D01BDF059B066263C8FFBDA53281C882DA
+E2DA35ECE5B4454C8031DBECD8675B60E54261A7D1F70560C6D8CBAB436EF058
+5A0189426AF00AD7EB43FBD13976D8D769ED2639ACBF613A308C941CDB5A632F
+F76E14224909A8E7E45B9B5A47BDC9B7B3E3616AEC4DEEAF2899A59B6E144802
+534109EB0E3ECD270E417B2E9CD8D27DE637AC798ED5CCF791061297A0B218A6
+1188C03BAC8DD8DD783BBBF8C4C9AE98E8F1EFC4684CA4BEE6D533458BB229ED
+4E31392DC4591DF2D2D07632EBEC0A5FA2C4508C1FD48D56EE871EAF4A84AC07
+A1E34CA2CD81ED369043998A23DD01301D41C582963F07EC3417F09ABF45844E
+A74F386BA813F0AC462FE268407B9D2A8813FFCA604C342CE82493DAF631B2B3
+B6D3E9F3398761C4B958569F0D833D27973B07F9DA9D84AC512C284844C04866
+74A325E4ED894F640B8F802097B7C6C4F04BBBC8A7BC6EAECC60EBBF4E676A30
+4A5D0DE4AB45D0C913CCEEB8032D1946A35928BFB0FD76AE324E7E3CEB5B99C9
+0A0A6EBAA6F6D8E4292F9C5408D3859CFDEBFC9413032FA1A6E194C5F616A3D6
+FB0FEB8966534CCC9E6D67DFCA105E8994810D8EE414DAFC80B8A95CAFA254CA
+CCAA72B84130B5E485529013A35040074072A8A63B2F4384D976BBFA0A743C5A
+0A079A2CD15E598801AD121303CC37A2FD3942776FD1AA0805BED2B646D4D1CD
+9DE65CB859735EDC177C5A4D1A54C3E8BE7A91BCA91AB93A9DACAC90204CC207
+8432E95B2C47654DA02EC1664566E2137860F16F798E0A1EFFC819F4304B0FE2
+AA54AFE0AF6CC26D417B0CC9E3F5F6B9BD6DDDE6A2D7FC4C840E4AEF73452D16
+241FF01413DF2125BA3563B3A49EECC8EC4D0BF06283B3C8242F362A546E71B6
+21F3C6DA63882992A14E295926387D66EA6D9F296455276D4FEF0CDC706FBC25
+57169AAF546A1BC72114A3A6DC3A1A76CE001962D771C267864A987188BF6087
+183573E3E9DED10D7023965D29F19C8950B6B9B83E680010995360E54911AAAB
+44D07524518EE59F58E49485E885F56FF2CF8D30FC5779770685C305AEC4262C
+B8C0C194C26F5E122DF5E4153316C971460C3B3B336C1B72
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: SFRM1095
+%!FontType1-1.0: SFRM1095 0.3
+%%CreationDate: Wed Sep 12 2001
+% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>.
+% See the file COPYING (GNU General Public License) for license conditions.
+% Converted from METAFONT EC/TC and LH fonts:
+% ecrm1095, tcrm1095, larm1095, lbrm1095, lcrm1095, rxrm1095.
+11 dict begin
+/FontInfo 6 dict dup begin
+/version (0.3) def
+/FullName (Computer Modern Roman) def
+/FamilyName (Computer Modern) def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/Weight (Medium) def
+end readonly def
+/FontName /SFRM1095 def
+/Encoding StandardEncoding def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] def
+/FontBBox{-188 -320 1445 942}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052BD0CE60552BD63101D7CDBEEF5B11
+69C468645FE4ED1AF2541AA0770C1DCF81623DE0ECDF49F2B522618F650CE6CB
+CC8C21885DD61AF8A523AA677EAEDDFA51A1F9B1885EEE0456196D634E04EF89
+F17499DAD982502ACC349B9EEAAE4A71A73D1147318C60A8BAC10510DE90D8D3
+F46E47295D27129A5AFE0C65E22BAD10D06885A2EE623FF8E1D90287A083E00C
+EF25195F68A2A98170E48759F33528B839DFD4B92DF0482493852D12053A7904
+BF6E144B9488970F220C299E80886366662C1276120E72472BF84082B9EEC729
+F7007ECDC5A850C88810EA679DABE81714004E65D938DA9ABDF29C949A52EF02
+EDA8451563235D51286E9133FFC7A27067DF0332ED614AC2D4FAB88EC84E6CB9
+FAB41C933E84B88097BA8742BC30A81416D1CAA3545F08E2554B28362B99B79E
+FC42281922B94604AABAF5F7A9B8E2D9A4358F38F2382EF9544B859D098DF243
+034CC475CEDEBF0EDD0A60C907127BB32F7D85A62A44E90B4056D9B4B2FF3A49
+786032C6B25794E2C0003C7852C6B0688351FBFC43300FB0B72880BB7B58BB61
+3D1064E7D4DDB128A9B38EF7510B7E5F82BDE39489E2D1DF08816781B13836E4
+89390F84577F31776FE43A5F94F817A4AA4A698AA4AE84B178FCB65F1B5A5CE1
+334417595F6E40849041565BAA497F6E4B8F4305D849128C9A26A98B909EABE9
+8F2659189ED27C588ADC7C744712B4D9AD0C5DD25D1233E979DE7F53C5F1C47C
+E9DF254086E5EC70EBC6B7E080060BA72F15E6BB75C75011B15B7ABB6BF761DD
+428FF1BD688938C75BEABA7DEE2AF49364D2E198FDC7F8FA2313BBE598ED3703
+7ECAAA4670BE3A85C693ACA829A5936778BCDCDB38A5981D4CAC8994E2B2F086
+26D8793AC1393D49A8F2FE391F0EF8899F63CFA5A77BC739C867C6CFB9A226B4
+620AED34573F068052604331B7E8E1F0C3BC0BD7DF733F056DB8C3F57E3035BB
+EC82DF5B511453A952D429AC721A4F94D5C9BA5B83545948643D0596F4C6C9C5
+796BEC7B26EB9D729F337E0FDFA91E5955585C330D0C4F193FAC870A28CE054C
+8942BDA170717B7AE9927C936DF0076507F55CA2979BADD3EFACC0A599933EB6
+F148BB7C3D61066CCC93A5856D253D759F30E37534743210743F0D53F58D0B45
+463F053E19A16E5A1B111915D1E664802F8C6C3ACA0F1BFCF3E209D1FD6C79D1
+5D867E142AD6E69933768274F4E2AB57CC518AD5A1C120887EEDDDF18C291BE7
+B3DB17E8FDB124B11B6142DC60F560DDD668D700614732F3FBAC4637B9F41361
+54CD2D8757A9D9BEDD1EC72FDAAED3CE4A1144F1E919FDB952BA7CA1E3D31C3E
+9E434E2E44E7A83AE3480EBE89E0881584045E4AA5814897382EEE5FB5C9410C
+2DC7A2136551DE2AA713487A77B911A7E7AEE41F0BEA1FDAC1950473B1394479
+513741DE60091BFB9751C780D99F2DADD5AD8283DC9CD1C81B902C9F3C9C3EB9
+55608E09D6DD423540BCF72394A24F81135C9D9063C0F4441BFE0120E03558D3
+4A16744457EC281AB2A60432C97DEDD16B2F1FF4C1A90D72D46C9F9BE984C6E3
+E239F98B59A938C2A6490889B437CFC21D923572530E41B7567A9C7E2464DB2B
+18FAF3EB7CBFE7BED6E77219C0366A7D54D469CE3FF62E75FCA2ED6A46F3E5C4
+489992EE1A42C19DA52F0CB2B1A6956BB3F1767B97FDF225685FF7C9E9243497
+144D31ECF634CABABB79E323CFD483BD7A7B0C2679A9C3DFF0D44F09F084CF3E
+886CBC91C5386A266730CE2AF3863534E2450583F6ABB520C27C4EFEA01EBC8A
+F019D25B7BDB40CD6712D7DF2DEBF0BC70A92D3B64D1FDF723DBF3D4AE939E96
+D93646BAAE0BC57BB244AAF47ADE59A5228F057192D917E2BBBF588335E09095
+1CD4AA406C1D10C8EE6812DA676A8FD166461064BE4150CB95C41FC055FF8FA1
+89A4BAACB0B978A58EDDDB0CBEBF6566D47CC0AFC93110751B59EA33AB5D6EAB
+0DB9A65CB16A053495F06B0D49A70BA8A7826EB571B8428AFE5EBB99AB9B56C6
+F69DCC77C25BBBB53FF25C5DB5CB8E742E3C0BFC25098B4CAEF12D299C886881
+0D4EB71D637BC0CD4D63BD6B4F5FEF9B083D95C34FB9E7BC9FCCAC0B9C7D8AB1
+1816B17AFBFE1DA146662723887E435E17AD2E2315AD800EBEE700B3C12B50EF
+4A48C2839AB4BB367E908F59BB5AB88635C3E1B89948BE9F32EFEDC2E439CC79
+BD9754280477F7C982850438092D309C213D70F8D476728119E8FA03762C22B8
+89AC2A2A7C0BEBB0C91CAA95BCCDF91AA918766C82A978B7313870327F89107E
+11A44FF02F597C8D4B085F6D7A098233ADADA521CDF34A78081F8965DCA615FB
+55DB12C1E3459E49C273ABD2663B13447365C9C1C52E192282E96049FD58506F
+FBC9507DDD77014C29275D1352CD5FC765853E858A5781F2DA41360D32FB5A54
+D04E088FD99F8C01DF740E587AACB0E431E03E170CBDA9FF1FCDE8D9FF5E43A5
+73166AF5990B238122AB322F709FEF2F0E2FA7C04FBB62C5383997BC9CFAC8EE
+3FAD26E788DB37ECB388CD80A7D861AA9E9199E7BD065BD7A4D21A0D56DA9323
+2AFAE158CBB662283EA7310D32FB5A54D04E088FD99F8C01DF7535A5156B8344
+F1CCDE84A46AB2CC7F0CFD113074A1C4D90758EE58F61589051A0150121A7BAB
+A636171E6814A1398DCB9F13FE9B11ED5A5F2EEAC14E0C831B2540D10BC0EDAE
+833A83965A33180B0AEA361848DF8FE8E50DF6856F1D10C8EE6BB5198CFB7607
+B6B044160CBE8D4CFF067DF3579918B19B9128C2A83512FC0567CF47B38961BD
+CC60FB8C6330A30AFEA9B276DA89313D6A83343298F34461B13C382575BE392E
+F94E3EA3004D6D37C025DA3F1846E41606DD510D2C7D0BE9DD194E46BE7CAAF7
+A60D496CE85D2393457C50B2D586E010C7C4C7272F496F0CED0084EA956455F6
+2EE57D13B6485B968190360A3E30210D2664BF91C73AD1A811651CAC09A9DC0E
+3A328E1DCA16082699B41A3D533703E58E366E871C982F262478E41DA3483028
+6BDBF03E444C6F0F4DA2CE9AB049F324F887732D21C4BF9C5365C603C9971CFA
+7E45249203329FB9B4054B163C166E1322DED12CAAE39E289C126301D25076D0
+2FD409FABA5247D7A25945AD5881E18C2DAEC09606228CF925557DDFA155400F
+8D446CFB8AD19704B6C544CFCE47ACCB854A74DEB5C646318679DD738987F800
+96844722729076811B5054DA998F9AEBE37DE5068418F41A007E645599C0BC21
+8363573C695B3F68111CE4A6199C8BD40D61E46A153C3C25D0C7DC125415D125
+D0C6130BB6B603ED78153E0CFE7384F7481FD4EDA141C27898B3636398EFBBC1
+9E81060816655B2F7052016A4C72A6A1CDB83BCCB2EB475A9BE17EB08A5ADA04
+CA8AACF6FE68BBDE580243B111BE76EC06E70CB7751A8B206143D0134BF52670
+BB3F44DD8AA7D26283A483CB46286EE0A9BB4FDB0337342BBF362C236C30A120
+D85812760265E3B283F48C05E78F47CF5C678F54658A30EBD7AAD5840F3C7B9E
+21D8CA390CFD164792FF2040E07FA087FDA110A93430C7FAD65C951AEEF79D91
+FC25EC950E250511BB22156C2886A249CD442575934D385554B2B4534AC28C31
+43A657DC937CFAF3F6C87EF4F2826BB02C41DB634D91B70BCCC4F83F4C32796F
+C5664490597DA5F2CAC7C0013B18373EF51520DFE081F95E0C1693D02E39AA2B
+E356FD312C233285B2A8C8C337504C1EA7E9E1F6BD250B5874842F68C92DA11D
+F74E6068495709EDCC6E4BB3A96AA3A4C89411FF06B66DA03FCBB052CF5DE837
+4834FDB84E2248DBC10CD7454636E97E399A7AC5A16A2191D763AFC09588F5EE
+57E80130CBDAF18FE2F530BDBD2CFC21D684AF84A8CA37BF2258C80CA61485BB
+27EFEBB52E5FDDA77E57AC8EEB3811BE2BC948A926FBBBAE974D9CE89333C945
+A9DFE37E5F34BA68EE97019BDBDAC7482826B8F71EC51A777B64C52B1C37326D
+1172F83F6E4DF93B37E66CDD6344810758B10B2EA8C68918DBDBC72F8821F1E1
+96AB78288A2E00C2E03FA05640009DD0EB0D0D318C6A726DE5D8F2B1B035C658
+D09053A4B27B18F18BE4396C900A730908D832F3E8A21C36E32F2D603D0263C0
+8EADB43290CC59C43AD57D357057B13C9ABE55F11DAAA8D78574C430939CEF9E
+FB36B462DA71CFB6E86C72ACAA04D5FE4732AC386F52D4AC92C47F9B11FC32E5
+B188AF2890EE3786AE2772D2FBC5D75A7FC59B0519F32D930B71AAEC8B88F1F5
+DCBACC2CBB9951DCC8F21A26F197A309C26ABBC4C25E3FF22B2A511A96F0BFF1
+2BD9AA37DA5DDDF261EAB0E48C62DE0885B8D074A7642D59C8E216B5F0A8B327
+1794E0BA5B672E41832562DE119AC5DA1AFB74AA66885ADB605AF60B44C1D904
+EF85F00E1F143A19DAC00F751E77EE62D394ACD26B463F7C7EBE4EFD40DD93F8
+81C2956C4250F5F28207671D7AFB3AC09FDD0126533384CF1B2004F31E053135
+44EDCAD0114140E52B7E153C354CF3F2BF37A15E2D19A2ED688710B6F9F83C5B
+BA14795934112F7963FFD217F016DE82353B915549CECBDF7BDFC6FA4F7B74BE
+E202170C9F25C7448970684BC555C8390E34A5098F55E0B003B841CAE775D48C
+1603730AF8C091C0622640AC5A0B46757165B44F0AE1EC1072DA26A8EE0DA335
+A6BC8AF994F5508921F3D9E4E09B375A58ACBB9E6B0448903E19A5CF2A51F619
+81D2A539A4556B9C25722D4DFAAB480586C90874DCDFC2D70716B18572557BE9
+E9CAB7F5A3959D5419DD9FEC22D015EBB5D4BB5CABE110D76E8A76D6EF3513DB
+5C23D3AE05BEFA77BF6B4ED5C413E8DB87B5ABD1B2FA9B3BF37A81C784ABC42B
+1FEFDE6DF012974241B33B67AA67FA38798336F7354F0984D612DBB455D0662B
+C8F15F12DA07E391480C1A150213ABBBB0F2927D223D5752B69C930053655C34
+FC487DD271A8AF594F457F6A083C4150686FBCBD60832E4E7D0D4987CAE5484B
+CA81A230A21F9C49DFBEB24C94C93ADC954B9B3B3EC484C502BD0DFD605F6D5E
+13158237535FA2EADA044ADCC1E1AD42918C8C67320F6621369C250D5335FC05
+AFEA1B294EA5D2A6F335FADB80CB26FCE9EBC0A4EBF72DD47806EBA23C3BCD77
+7F175E2041EA03E2F0B2BD2B81E9A6DD43BA3486375883C30B8606D917C678B6
+6E567A92A0E0DE89BEE5E5AC45C9202D46EED5E045302B71EABAC5FD997A9A7D
+8F522B2CA316B7FDF16CE4981DBC25E4E2FCE3981324B16A18236476FE242584
+AE70C683199B7647325D295528EB7CB15A7E3940FE2D248945015E9DEEB9EB26
+7012041740F5A2A6C7DB7B2358EBC0358E9385E734D208957ADFC7DEF83F5E5F
+4EDE55E2F078E994312214EEAF63F8D0B481C3D523E712901AD838AF2D840055
+E57D34F8FDD4C842D64D3D94B1CA46CEADF497A2FC75A45AC59F8696DE49672E
+E33773AEB31A204F01793262E820E813949115DB90A7C798BDDEA0D5D1E699ED
+753593F2B6373BD24D4647CF35A448037ED5E72DF3175DD6744ABAA0E2E0864A
+2F4EFF3B07B035520A598CDF1AA97D7DC3057414513DDDDE40C2A9DEFB23631C
+B2291ECEEF4D18652CEA451BB1559C0743FE3205BFB6711F1026A613D244BB07
+DB3830F07F32EA637775BCC1B2CEF0C6B0D119AF6CCA17DB1B03AB1E9281C568
+33502239B067013D261BBF33358AAB8803C451B2F570EC34BBA052170AB42F95
+F9386DA11A2C7BB9C05E8C9FDC96111549EAC90DFD8DC906C03F0281C40EC1BF
+EB6B15455CF32FCE5C7DF6F55C91132223FD13FBD62A787EB15CF3E4E6E59AB7
+A529DA186B178CC6E8A4D876794527F3AD72FA86B7C2BAE14D3E5A41D8F90754
+AA28185D92C9ECBBDE4EE53E2BBDF05AB4C9700C1367B3D81FFC1AA34A79CEC1
+1CA7D422CB58C8E21870F680E48EB1B2D5A30D974A7E9B24DE13958976C76225
+45415635E32FF316DC4A69B3CD5EFC6EF5F845C8E24C92166C9076691817FA6E
+AA5D1F1CE12235DEA3902F3C355CBDA5CC344376A5394AAA7C2CB50BCF32DB50
+4B6D9BED63F0A8928C0C06829558B714FD54F355501EEBE29882185A6CA1703F
+6AE65F03CB07406324CCDF00093EBC76627A11A84B5EDB688D20DF49616D8D3F
+7491719761E7627CF8FDCFC0DD2265160BEB33ADBE3AD01E7464370E3E0F9D45
+51FC9A87C678EAE5B16A564333DB11687FCB4D1D82C75A2F551FB4F940E0C71D
+74CFDDA0974D787BE959B2B87FE13DC290C53819DBDC2081CCD16F34F0A61AF4
+3CF53914B713820BF8F2243C0679345EFD56307165AEDF16E3BC771EFBFF595E
+C6B1DB8B028342D5DA1E8CF3FF4269126B48BDDE9BEEF7896CBA70EC77063CFB
+0EB3C6FF697509736BCACAA7F03C4C326875396F0499B198DAF7842384C36C2F
+36B17A65A1D9FB77649DD78499592C817679F344E0B88D80B8D78EEF9EC6A9FF
+41F4D635520B2269035CEDDCB3B5518D63DEBAD4F365A70533AE119F11323AB2
+EF07047536DA6370C07B2215C3A82BFDB44DA593C6B3A33BACC38A105BEA2109
+06DC63737E3EB362A122FE90CE8EF37B9C73FA6933BF27C39EBDE137F15AC495
+7F58F6549759FFD86C2BD3A09490AB47B60E204B16910AFB0C18E4F2361AA033
+9BE5EF972F4B52F18548E3CB947F083768C7254FC019CBD8C4DE7E01DFA456A1
+065EF834C7B146FD395ADBB9FB72B8EABF58EE9E2B2276C87FB83CEAD49BBA55
+7DA56ECA50BE1AE4819EA3C72DBE30F363D43C75287945B0DE47D1FF0283C494
+EA65527E8708279B3B2437BF1CA2456E260020E4FC0A85BA18562CDB8261FDBE
+0B928EF40F0DD40E215B8BBD40BB5B5DCF2FD9AB4D5AF64F82EC77BFF8C37BE3
+74BB9B2E44C819E84CE2C634D55A9EEB4F6DA28025C3831B601AD254108178F3
+3EC068E78ED8C72AFC5C3BE0BFE17F31A23B55E7158FFC40381F36DFEB6612EF
+33A54D2004D92F0A44B3468DBAC0ED5E34F70561F5E77DA369754685B7F6B04F
+233454A59AFDF45F28383B05B6120717744B58D2A96BA706CC9317B5E7FD0848
+56665EB38E31C7F8C87B0C65041A5D2E349CB4264523AABF9C10CA95CDD3BE1D
+9923C1A11D046FFC2E82A09E36ED0146978DC383AC6D70EABB20327360CF7EE1
+DC4DE736760F5CF3B47F7BA082DCBF881ED8DEBC1A4580C287418295CFEBFB01
+51B09DFC98C8A8C9C5F9AAA6971CA95D96A23166E5931F7E464B288F4E357112
+4111BB33FB7F0E042448478D3ED7AAEA57D1B0B4E237F919152F8D9E86229BFC
+B8D59BF9FB9E0062A3ED67A367669D0F2F8EFEB2219E5FFE7400A9DC725ADA62
+706D4D1860BC04D4432F49D7F4271376678D381B148D72DAD9012173FF3779A1
+7C4D92B28D3117888C864440902499FF0F9BEAB0C83FBD788E26B0BA47484188
+FC01B0349E045421E7D912E1BD329A536F61169344F16D65F6B90DB87E22F72D
+8E6F486F8D21E6DAE282C35A2723464F560CAD8B31A931CCA7A2FDB9530769FC
+BE0A5F66F1D4DBC0EAF834D078CFAFA415F43DC87AC62A1D8913334016B3FF37
+20902A7E5644848A57346228A13D7B1C757DFA9B5FC4E9E1DCB2C2AA2FD37386
+87E6B350662256D158D8C7DCD2F7AB1E02D6C5C8E3ECB1C6055A6C0B807B8FF7
+997E562EDBEDF7646B64165A55DED91178BF13FD30ADC1A6B6D621B1A7AEE1F4
+2E30D49CF3BD0656F584CECE76A17151913D7ADB223727B47EB3D7F491385112
+D36848973526DDAD7C1C1C0FB672EC627172D10DD33ADF2445483470F28AF65F
+29CB086189B3FFA31E0CDA710B6DE2B0EE515A46A3FCFC354AF01AF5C5D0B301
+C8FDEADC6DB9D492554777965E2751A715F8FFB6E0248AC51928DD65CA4F6574
+BB1E01B3ED95D736691EBEA8ADFCD8265F128A67C372720840A206056F66A7A4
+10E1722E4C1BDEA8C980250F9E034C29FE0F7D2F5DAACAE3173C865CA9C4C240
+49B6D4D0CD90B75D3BC68B8C84605923075A9A2D5D6F7008365E52796975CCA5
+02770D168EAF28C337D45762A08817666907C68142CFAB9D75C4F6D6A73FB4C0
+748F038F140CB009A24A80270037C9B5E514E04AEAD7CA8468C4D22E1059F2D2
+EA0E7CA2979C7066F1629B49FDB893DBECF6620FF9C48132297E81F717820A90
+BDB45E16CA1D0D9C152B12D50AF4E1B2519FBB2B779218C5E42E31FDF82448E3
+5AFC5F90AA018902EFFC4D5A14D4326911F7055F9B7AC5B592E2E2D3A198E2C7
+F476CB49DBA0FFB2CAAF494DAD087639203084CEA25DED422E0F8A30634FF1DF
+EE5C61FEEC33D547A17961534B3535AA673AE15F560DDFF08EA7AC126882B57F
+A1AE8A5313E6D21F67FB6D16AD32690FCE021616D0DB89C51001090A4A7FB515
+139B751F6137DFEA833004F4689474DE3A8FF64D98EF09D25802C3B35DD2DED9
+FB5300E4F50E5CC70FAD3A21917D15D5DAAFE30DC1CCF79A359B81AA3F21359D
+297B9795636C03E483A80D47A4826930854329FAC093193AEE3A19BA91063421
+988EA0ACD987862A716C42F071140254B72AC91B91911CD6A9D275FD7F6636B7
+4B1B0A47FD39120411E1D5442E711A6C1EB0741C67B0A44C1A2F98C9FF245A9D
+5AE4A04B529CC5FDBABB1C6E8C1590B3CE658EB77B58F4D04803DC351C5645D0
+4DB49D76906E068C3FB553AE91FDFF5F22F734DC4BF8E9D019B06D3A1BB7CDCE
+9101E9D2276CCACFB36B9EC74AD213BCE896FAC45D08EBE43E676816DDA135EA
+8B78003042DA8581975D4C14CBDECE0B027AE87DF28611F387E64B951812C848
+B661FCC0DF91B39DEF14976D7D00609DE2DB8195C186E376F4029CBACE3AF24D
+AABB788FB1AC87D58BF341F95EC2DBD14BFF27D3DAD9A06569FD4EEE40C516AC
+D809E761BFCA049DCD6F8E43E60A0BFE64BCB922D1989CC14EAC1987147A5559
+4F1CA14635DF029AC387BE36036BAEA8AE7DD09D090EBE271FE59FD806894A72
+61C714D6D08322726CAAF168C08CE31F26CDF6613C06CC50DBD59B70DA211B44
+1BFA22AD62D56AD098FFB998E25FABBD89A2C17EB7A3AE81F79C05AA4677D744
+7F412484C16CFB322FABEACF98AF9F152E3217D0F2593D6863E7872C5B6F82BB
+FDFD09B13FA639680E972DC7B086D7DAAB076CF346814556119BDFBDC3A16374
+E7B92CE50B3BEE8B7C26856BDD3C2ED98337C2B877ED5EE4878C50F06A64F750
+E9C8CA83B7FE6C91E10FA717CCEC0D2F8E21CB5A2367B5C90A81897B6973FAD7
+D4D95F6BEDE4E1EBE6D852A937D5D814AA6BA62324C08AC12FC09C5037588F7B
+1B043BC503D725EC657F47DE02CBA939ECD8418F4B7C705EDA3E9AF1E623A989
+074165DB0DDD59B7ECF513C714B7D0A1013E4E3F2B071F6A6DB89B7BBC2774B8
+87ADA7C572B0AA702156B715159829BA38A9EC28E1CF3494B0CEC876A97B4617
+2CC9162F204C36850CA9188B0B97300CDB1AB4F57B55D39BC539BFA5047B032F
+02A88CDF11D098FD30F6A6B82B98AB9D288570FE18E4E6A707179D96287D438F
+2D5D3C2305C5FAF075E0979EAB1DB645AD9DC87A621219C260FF67C2DB8D541F
+8BE9E20ACDCF64C4C721AEF5B2B65761D0310CEF36B1A3E57092DEFB978A43F8
+B553169F523517518CA0618E31F9A5940EDA42D8B9D851AD1E77BC1C0C8EED23
+F469B0568B5A556A5FD5A20F5F4E00FA6F030ECC5E711865F1549E409792F7DA
+D1FFD1BE1E6DD22619163B98EB0425319E738254ADA0AE57FE29E121B0D8F172
+DD717E0B59842BE9F6B37FEC3F1BBECE15664851EDA3DA3A1848191C38F2CF60
+7A262D4440322C26150C605AADAD4EC3EF0CA22D6A2F63BE63C9C08EA643B68B
+9C88ED95D2F2F0868CC40278DC2752A1E61C793FB87EE69A6D348F98A0174B09
+5AE09E214EDA066174A6823347B831ADF2619281E43A71D549FE194D5AD4ED5B
+1DE112CA90BB9D92C57FC3D89F1A57F7CEF2ACE8E944B8B725557F567D9DFC72
+3D28B0E11DA3F81633C042B5FD05513542A2B431B3744E2E9581ED828F5F8A8A
+C600F526EA874274FEB94E64F0AD787F47C98899DAA4552E447D4B97B3774334
+8DF26A38D7CD36EA79B64CB31DB0302BFD0DD2280E10FFDEF59E2D1F6452FB09
+E2A7015523BC1A46AC2F816135FD4EC198D30E95203ECD2623E83FFC1436FF74
+068CFF87C1ABDE2D31AD1FEEE6031D889A25B9F2C05036F16BBDC143705545D8
+4D14A2467639644AFF1D239BB08AA769BB5476DD4FE9974DC01E85C02F82958C
+12C3AAE071BF1E57C358F72290F15A2655C1C79DB5E5264133AD0139F9F9B540
+972A3FD82BF0377FDB8711A746B9F4C6016172C30CB33CEC0B327DA0DE2668BB
+CD41
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -2298,23 +4111,38 @@ E5981475AB279740A40CBCA4B1C955C888F97C1FAAA6F1AF6F2CFFC5F2458F
cleartomark
%%EndFont
%%BeginFont: CMBX12
-%!PS-AdobeFont-1.1: CMBX12 1.0
-%%CreationDate: 1991 Aug 20 16:34:54
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/UniqueID 5000769 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
/FullName (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMBX12 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
@@ -2322,7 +4150,6 @@ dup 12 /fi put
dup 33 /exclam put
dup 35 /numbersign put
dup 36 /dollar put
-dup 39 /quoteright put
dup 42 /asterisk put
dup 44 /comma put
dup 45 /hyphen put
@@ -2367,7 +4194,6 @@ dup 88 /X put
dup 89 /Y put
dup 91 /bracketleft put
dup 93 /bracketright put
-dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
@@ -2394,404 +4220,612 @@ dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
-/FontBBox{-53 -251 1139 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
-B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
-AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
-7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
-20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
-B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
-68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
-D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
-26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
-F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
-77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
-BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
-C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
-30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
-148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
-E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
-E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
-337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
-0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
-472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
-A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
-31B84248049A4C7D49ACFC81E3E4FEF5F69FA691073C34351C95E8BACB6C51F1
-F0A239823BF97F518E4B04A7F85F0AC7C6BE40E6FBCA328F96D0F9D9AC3C2A53
-F5781366C50469C5386935E833FC248D8260AD6F72D2F2D3688E9A94F87E5F62
-5DD3358365F85FBE367FA2769C7EAD5EC9BEF5292B14ADDC9683E8CFD76FDECB
-CB72CC020BF223B29FF3A9538B04C9B9403B01CE4DE99EF7B0CCDDCDAA7AC5AA
-8D7BFA69A836CFE988DDEF001303F7D58DD7E193171F7E9A23ADCB244AEDA2F9
-642CBF8FDD62F6E91B80825292EDDDCD7496624B6C1D381A61E8C1AA0A00DC0F
-2280242088F24D4129B4CF1320A2989A08765AC390CA76720FA030743CAD6846
-F6E8789A5E3E96940C65CF0C9677DA1EA3162B71E99B770228070BB9A660909C
-47F380B10F7DD5AB2BC23044B4175164A88BA16451EF494E5A1902F43E9FAFFC
-3A60286E5561E16780F2115B85685E797E63731011E10EE1D64C148F65873F06
-5DB9C32ADFCA9342F4A18E85BB905DD4AC45AA56B38EAFE3F1C9D17D689D8B0E
-C6E91A7D42EE6BF82651E7BDB46BD65BFA57BE8E0A797E97BC1DECF2EA2DDAC3
-CA6164F5AE380D6B2A23B5DE1B97C91D29E535A2274BBFCACFC10C12E554D0C4
-EB97C43A3C752B5393154E9865685D33439FDDDC258860296047026EBF689762
-A1067296C711A03086D178FEC65A2FB0BE917ACA96321BBBFA8458EFA0E14A4C
-85AEB8EF6597D75D5BCCD1B0935DC1AFFB755BE6106162EFB60676735BE64564
-B5DDDAA7C26ECE1690A043F2754103FA3F81E29DA762BFB50D4A3F3C8BB419FF
-E9317E01EF54AF28B4F875896C7B8196A95707DC79F1C3538D4F162260AFCD90
-61A3967C99F6F780646B5B2A97DD6649CACB141F76E10EFD1A7A9DE0D76705A5
-AB7155D73ADEE46D19B6A7CFC58F614678D999A23C31E1C86CDBF7017DB90531
-C14ACA1F11A9FEDD6C0AE413C7DD478AD99E7CEFF7785DD631552FACE5B0B428
-5781E221364CCDEAA1AB3486990515939A9EDB065282DA4C5A837C81CDE67A52
-97FA3936E332AD57319A0DCF95DD083934855AB5CC535EA4E9D9DAE662F7BB0A
-6D45FBE3072DB42C1D27BC8DB5257FEB94D5CC9E7B944C1AE3F4B7322182690C
-9541CA08810032516B71FA614EC6823210DF837B551624862C9D4A1A863500A2
-A913E18C4298DB9EA02BDC2BACA79F0B57897AF2E486CDBEBE200FA42B0C2213
-E577843CC8090A89B416F8D09827C62EA1756C82BCFDB38A7888DD1866DF0EB8
-E45701027A28440A6DBADD0D1158BFB645F23DCF66205A14175E31281B1E5CE6
-7BDAD0C786B0782E76044594F693B3546D0D807168833ACAFD06DC4B8CB05496
-D8041FD42795FE58DC25E5C14E78FFFEDE3B48BA53C008C1FC1723551B65BAC9
-155B82AA53A9475D2B62954504DFEDB3DB0A8912313978CDAA587619F64BB9BE
-C99872DA229A8D5A282A92148A68DBEA0DA4B2F0A08D2A00F6BC04F793968D0B
-7CB56E8AD3ABB9AB57A514A170F16EDA92F8176DE7CB42C4F23E504DFCAD2B20
-2ED5863AAF337A28DAF9FFDAF578C029EE69B0A030CD6134DAEC4C0E71BB0851
-E7753AE655AEA168919C087038417510DAF6C48C31886A2674E2487C2E226B99
-585FB5225A704EAF95B54E688080E863FB94407DDBBDF259620A9BD9073640C5
-ADBF23A33F705B852365912A262A40CB57FF109A87AF25466AE93C957DA63E5E
-6DC474A4DAABBD9337A852206C50B645D28AC81A9F1848425DFCF6A10702F23A
-1CDA1F43EFF11578D55C1380AA9DE2B0CB7BDCE13C78966FC614FBA1BF4F64F5
-4B38ABC7919DA46D084DE5A435F006F127F3D1B232089ADA7B1705E03D727BA0
-0F8BCB53E985AEF73B9D68B3DE0B1CD36E566072AF21BDE7D991E090D02E3239
-E1E389F9F799BD17C453F0885D74FB9CA04E6DB6BE1EC840F8C1E7C117199177
-A8BD4361E733E53210D3FD7B71825563EDA0D99153F1A81174D5850704559972
-60D67F2A11FF9403C64D9F58F30C2A0E89C96281F8395E26B12C6EA61FEBFE63
-737F0A33D7E37E3DCD245043BA1522729C6DBD5D78B2C8C58FA5BA77BFABCAE1
-AAE7C36E70FFA3E83A906E8E63CF6F331499964299443B9C5F0EFB91DC4E675C
-5784DBA5413F3DE861903D970018AC64CCB010133F2EFA4821ACD4474715F057
-6FA8565AAD50B9F19F8DBB6E3AC72E1906423AB35A93D56E34CFD5F3B5863571
-F654EA6D67B299A48185EE5DA4F873932B39C23F57764ED19EBBA923A51A2C6C
-5CD7A59477341ABB5B5F21115D1774500B930AD6CD07638047F45A2AD8FFBA36
-05C5CB6B7B97F88404462CC50EC5A75676E8F91E7D42C4DB59AA74E24848DFFE
-B556A249D8E3D23137B60D9E8FE2A9641AF959A216C57A825B811C6E7522C443
-69B8FA6395F7F3C628A3CA99FC5D8689C95E35EDD6B271F3FEED9D184F0B3AFA
-8A7B6100E336589BDD6FBD03B782E36D809A64E9A94F5E9B3C9E7822D24D46D8
-515CBAFB830CE3F1923F6156E29AD479301470DB9A9180FA7381C4A09E9D1ADB
-51DA817559A37DE2615DF1AA2DD6B8C4BB1C9B27723DDE22C116B4E43ACE5463
-71C4B79C1729EBF6F1ACABB12A3F596817827589E67879ED40DF7DDD403D45AA
-021B11B11859CD7ED42A6C6F15021E04508C2CBF94CDA637A75ACB47D3A249B3
-31DC550B331B22CE2191850799B2E0AF443ABB788CC6297929AF3D3BC9405C8F
-2433C4BF18C250C2C15C442C10C119F543C101F60FEF1EE0F9558A8E2F6035B0
-C5789E9248D846D2ECD3EC4E790A79D2817F5E612833FCDC360C6902F176E130
-E70FC6E15E07ABF4FD6BE5F3EE3BD4A48DD38256706C25BF0E6D9A7C51DC80BA
-72BC5F5243C1B49E3D75455BEA13195C093C47AAC6ED3EABFFA674F9E66207EB
-98571BAA8C06389AD5402730DA846CDD6040CA84E0F27A65D1194D916A835275
-4E99D6F6084F8EB0E34940F47C4D8700E1B46AAD46EE464D4E10C4E1259D2208
-70D0EB1661EE28B7FBA067BAF8067480793B37D4C881678B2612531E87BC7243
-0AC0B8A4B816F1670443C0A3E4FD631EB8B48DF3D4A03D9690408986E98F227E
-05253E9BCCB8C61AA0B4E352B6B76FD9D785AC8823A4FBCEBD4574182D86382F
-6CF90EE394506B1043FC4137E9FBE5D471F605E34B59AB3822ACF3B71730A79D
-802486209B66D4AF6BCB7821CE4BBC447F66B35ED8BC949A935C335B9F61646B
-AED373E141AEFCC868D068C2D133AC284885829718513ED5328EDF5230C38399
-F97CE6F55004A89D21937914FC9CDEABC3837A63B658C1F96E1F6474420916CB
-3197C6F107159EC20D34E13A8698BB04E9E8BBB59993776DA701148447D07F19
-2E8FFF1160E89A82D07D58C7DFC3B71EEBF7A9E958572BAAC093568F5BA7C0BD
-B118994D1A3A9F60CC96A1A996D369E7FC684244C07C3461C932ABF4C266B7A3
-239D80C79F603449A0145D88AB24A4DD8B2D82F315AF8F05904EF22F09331D9E
-D6340306D266B4283E919117D283918BF0B4D944BD0B7990DEA8859A690F011C
-7C6843BFEFC9329CAE786F102EF0CF8A2D70050B264BF0D824E1647191D1AC13
-C23E7F53BA73E1B3636C50BC33E2F8D0631C3A76789304A52DC48AB4BD9D6C9C
-51D64DCF77AD95EFA09415A64B346B32D4189A9922B9514A26AD918667CE94DB
-A631AAA4EABD64C71E9E954A40A16A66CC50F444350FBB77C1BF49868E2DF59F
-5EEBB30170DD95B0D8D7530E3B613B70337239A47C582AB7E3E0EA6C6C908B16
-5E89F0969A57D2AB5429DE5CABF2158AD4DDEBA86000C37DA9D859BA60A6A4B0
-EC7C29E0B6E01D174EC741BD5989B5BE020C843A86ADCD2D6BA02CB524140D80
-97FFC7AA43CD5ED3B6A4E7D4D90F3244A71598955428E310D2263394B807FF04
-E102DD0203FC79B002D2458B4E29AEEB42CB757197316ECA9A21D5E8D0F1CA74
-1B52DFB5FDC9EE0764E5A2F2CA7307050D13DFAA548514374CE8BFFFE8109F57
-638DD8BFCA8F51079D9ED3621A6AE9CAF4BC163F79E283BC7D52E215E73B896E
-7A208969AE5E6D2660B73891FE0C38D3F65A65117EFEA6C9008F006811ECABB3
-ACED727AB8D25D9D6F7B12A630090675131BD7657017E0D1BEBA6C721D97E496
-3113B14D6D8C6ECCE0C82CD092480BE17F5031FE21FA67AEBAFE90E2DE02F273
-8B82E66CA84CE6210D492175BD6A0EB412240AA3799637142CB8F8E07033FC81
-CAC9CC379FE10A0E444A373605647996A2AFF259B0A2332DC2C4C6AB519A102B
-5A0EF3331915EF092F5ACF3CAB65F21DBD04986BE3DF862411E7EDFF32867B63
-9891E06A0BDCDABCD7EFB0F8080CA30C79FEA9ED999B9B2D94CB3CD3ABC6C94B
-1460CDB5C58247EE64C7B0A3896E86DFF036B3BACB489FCDE3C6B4926F7D6EF7
-0166D4B404F3EEC540EB39B801F22B57F59F7E987F76E6BC8A61DC216557FF8F
-98901298DD5571653CC29C5B7F2DA9FBB4D93B62CE43C06AEC1B942BA6A3E86D
-7C1F83AC372F681EFCC95CC23149881FD1BF6951C669977722357026C481BD85
-C8B79C02D35D6EDF2DA523EF97B32CA023C21B7C0E746DC61A4E062AFA6033E2
-D1221BBB36256B230363B9B4E40E34272AB93C63D962D5BCFF652259E9EED617
-38DB29D6521453834C876865FBA9AED8D6F740EFD3A0AC9DDDF999DEBFCE49B0
-848E6B535C89DC288C1BC750B9FD923A74853E2EC884AF81499539BA9DA06041
-89BFC782FB656E28F911EFFC5CD1AB78AD270D02AB7D129F1512EDAFF40E1895
-4B9B7FD4D3F0669B1692B22690B08623D21318669D032E899617279149C08A48
-E71DB761E6E25DAFA8B51755120DAB6C7D9AA16EE353A5A619EB659C974FC026
-9558753A717D6F3928835038F32C0FDD63D4664BC97FFC8FD5378CDDC66A3CFA
-093EE8063A0B09B9DF05F7564D65940FE9E6F1E9461355ACCA406A4B6E16FBCB
-5A2C9BA2EF4FFE362FA6CA020F5DB489755D27557242393E50377C6945B64996
-868A29A500C5D5772BDBED54B25DCD6C229F6D43290FDD5D410576511D907D3A
-5BAFC90F329A4C861883FE8185ED5ABA95A7DF29623704DD4EF379ECDE1CEC4F
-AC06577755135A1B5427D5DAD85485AF0741FF7F16884AD6509854D7944CC513
-6EF45A4A3E3F1F4C2DC86682B7A62811F784C3B7A735BE518196E8E2CAD81E6B
-2B8734FF26C91E988AA5B9E1E7FB42DE6B82FF6479AFBB7368A4260F67BDAB69
-3E689082825E4FE7469CBA1B9B7177119C0825B100BE8E6F1A910DE8F92CB3A6
-661B19BE5EC3B6DF6B04781432F40EDB678878FA51FB4F3DDE2076921CF3EEB8
-AB9885EDE74E091F0A6C1583515C7C46828AB1487B18B84F8B85A439A6C8EE1E
-3822776A0A1E25216B7BA38AE77EBC4FB706257290FCBDECBDC13BEB402F2C25
-610AF618A12E7D229F6A83B8CA7D8A117E1EBAFE6C044F13D583223F4DC56E79
-4C297063953E49AEC2428F1E96B1EAFAE79099FCA69EAC63E970F10512AE8B91
-5BD5E11C20C0D65F637642E85058D8B2ECB4A5E6C6EBF6C7DEA6EADA0F978CB5
-EDFE9D9A7E608088F791EC9A12612DD9C997C71BD0465B2D06AEF2DA48BD4C2C
-ABA638772D5E614C726AC75F61823707B4F72F2D42146089FEFC3998D9C15521
-27863929D103F46673B563712BF63819930CD03242F480A026F77B3FB17C8819
-4F9FC69F0EE56E975EF3C545AB514B0E6DCB8E575388E0961CCE8D200F445B2A
-4EC2A853EE7B2192526999A1C0AAE2A90A58DB58EC82A10661DC30134286FFEE
-3EA512A024143D07A6C671AFEC84858B4828B2B772AAE09E9CA9F7882A4220C8
-D618C9C5892FA5A36059B978EF8B26D6839EA8D9C679452810CC9E132C8E0274
-117339DCEED2A92632DA2BA784AB19E90A938C9ABCEAE9296E0935F5F6309B16
-1EC413004EC7E3CD2CEB4452AA657183E4733200C62A02914ECAC30FE556AF4A
-1AF2B26101CFDA61F122B1F4353F9551E38FEA412DE7D0A8445B9D039A417861
-5C373641A4B6532370C2E8C5257583484A065421EDB4E50EE8AEEDE46F557A6C
-6CD994D162A969698AE100116344007A7B7F747391DA9796409D301E59C94148
-F285929AF6B8C6A31D65594F63BFA0D352BCEC60D50E9232C8F28E73B2DDE881
-DBC5F5DD8E88E8EF97828453D5095311B92409C532A1A549EFE3CAC1F3D91E5D
-2EEC82CA6129FE9DB8CC6FBD6F4BC204CA9454C475BD8877597D75ECBCEACC97
-9DC698CC7A064227CBA45EAD0AD850C45D059E2A4ABB0C830EBF95E61F8AC3B3
-8A9389EE9E05EA091E64DB71863480D9E4312772FD9B4D6757556CC7C43FB03E
-04EEA1C9A048ECEC4B7C465CDFCEAB707F67FFDC903F784CDB60CCA60CB3DA37
-09CDEC7264AE28487F0042ED019070BA501C22685AD2EA7BB03EFD5D8728F672
-E8FAEC9A5885461CE9F2FE3BEB7F64DDBDE5B0F2A6CF1FF0CB2BA0DFA2CBFA20
-C539DBA84F0DDFD3E62AFA11CADD416CA921C2965093177B34DAC627D18442AD
-3167DFA2688C2364C0AB3F2DC94D0867CCF22998ECFC568EC07F28161F401789
-4F3A13987DCA67E0012D41C712F4515135DAB1405B77BC1C2C3B7CFB52BDE5B1
-7E2EFF5C3F19195B778B0016ADF3FF0B11DBF0D674A412AA946167CE88D6B10C
-3D77EC4BAE76A665329C977409D2AA8A8CB07325501FCCA2A295F83C21AD5582
-09406FD233B02E25A465739986A6962ACC3FECCEA316A8C747B6CBA3B1C4C7F8
-5A01B5BB008651EDAFC2A0AAB839EBDD14025BC19B9233D54CB5D400345106AB
-E2D1617BC855A3AA6E2B60C50AFBC7FEA9DBA3D30EF2905D96A5F928011CAE86
-B1C6FB92AC8BA20D7B15B40113BDCFD9A05B0F9293477C4695E6FF84AA54E779
-AF7E19AFE02FE9A3DE310E6CDD4A2C612C227FBEA17CC5014AD9853A74BB6D05
-5A64F1C4366DD4D807809FD02B29B8E455293104ED7187A3D4943C2643ADE321
-3299D423DA71D017DEF79F33E499D5DEDC97120E91D0408ABA55CD77190E0964
-F7B7FCD76DC3213CC9D6F5EF9A7456A181433712F1ED8FCC46BA54793C33F10B
-F8BF3C7E8B59C058AA0A9C18CFCF23CCE06D71A146A34B5362CA8EE5DBA42690
-1EE541CD07C043C565F803F5EB1E459807DE1380398989EE397D73EA7D142AED
-B255F05A5BBFF1F73C05FFDD277EF060CA9E3C7318A58AC3BA0A335442BAB763
-E725EDFAB0C984B14893F0050D0773F5037D763074D3CD9EDCFC92F17C3FB699
-F7AF92090BAB4B356C4837B9ECB1D71BCC98ACE7F88448A2E2FFE1B96767F9C9
-45FE6C13E93E0638B370D660FE15D1AD1B6BEEC26C04EC188641560733EB5C39
-D19FE0D6CCADA8D7004F8132E7F535BCEC3C5D45321E59EEAB9576F7B4B39ADE
-59A85AA8EA28B2C737F4368720E2AF82A7BC1B364FCB39588256017A745059BD
-7C31D183495F63A7B4A76BC50C4A00EB2FE4EE0C512C3BD2573D2E6E415CC58D
-E2933DB1BB194B005651138415593EB9EB4B9BD91D37A0CD576B218B6827EFC4
-1D3F1D036C6DA66217EF92B6F349B918AA5E20B9D4BB950823BF7EB9FC07F78C
-8574224AA93ED2064D7A00C98C41F732215ECC9DE1017CFA379A5B8569C3A496
-C0CD61A6201D53177F2736DDF182379C671B38B16AF092D63450CA96C8E8084F
-2DB8C8EBA732B5A84F540CC34A4AD3E9908B3DD149A10767999850D353EB7149
-E2BD0102585AE07505B83FAE856F467310372205F79199BAE473893B723F7E21
-88EE6659BE3088859D2FCEC1604FD568DDA45559DDF64EB10FDB19FE8C9D7C59
-F0E7B781DB5FD80A3C7A73420D470F1256D683F92EE6A7A9DD241B66CE4FC35E
-C6D69D2B66834D848437D45374829F5F1624722806B9E126B43A51B4FB9C27E9
-D5EC07C90DFB7CDA30B53C0DDA3D1F93B7EE82DB6EBC14466F0FCA5149F13B4A
-BD949717FB44FF8BFAFDAA7914240E43B0253E4F8ED5C481376C3B609A191670
-1F2BDA2F6F6A466FD42FE9BE9EF7C3A5B20DCB2A7C18DACD0A75038DC30E3FD3
-64F8389204FEEC67029A64FCC3E5FCF97AF24D98A455997D5667270A95BE2D13
-ED87F410B35B52A2D3D89BF180B3EF83CF39B634A0C1CAFB62D76F373D675E86
-856E7D0ECFD67A5C48A7FF4653B7A607622DBDE7CB434E145F9A4B0501456B86
-3E99DF2570B034243861E4BB80E0F9CE2649329960A792F30913C967F9538E76
-75B1591E075C10BB59139E2D1933F6BED658D704F623F8507B0E2A03C582B75D
-657B577A72585B6926D51882ABE25C752824092C6A1F5A006512FFAB96700DCA
-E2AD0C7D7A3AFFC4F823A02FAB788C32ABDFCDD56DDE65FBA63BF95E890573CB
-EA28F7BB049BD3133DE22E8F4F05AD04133FE48785524A14041C73EAD6F60D7A
-2CF1F8F3C7258172EAC2A9820F4C04DC34DECF2912182EDC86D7412A25A6FB25
-F46341AC7889B645C36A85C8F10D22E41D4143D10EDFF014C00A7B1E4EFAAD1A
-7E42EBC657CBA442E9B2DA0BF049E86D680C5E1C4B2588E99F24844E8EA639D3
-A4CED6A0A7BE055856FD998BECB9DAADEFACA913A60AE501FDB6F035A2D300FB
-FF13B510595A64A900DA5496B7CF1085676680008CE70D114082EBDB5B384058
-06A99A26CBB247CFE8EDB6EA428D261602319D5EF03C9B6BB657E6D8A7632970
-491BA80744BB5DF021382808F3F99ACDC4EBF26887523FA5EA81321D6EF2AA9A
-55939200A4D011602FFF717AD90EB5E47807CB58370C40461591217C2A714DCD
-2BE918A0177D068A21B5927C254643AE0B36EA772A3D2EFC25083B8291BF311D
-74B95C21696904773C60760CBEE6F94638855697A1948221438456099589576A
-AE5438C70C082D177905FB82FFDBD4BD94ECAC1B6FAF0D4D7578A1B6576B4F13
-E3A6F814B4AB580ED09C916E20820DF0626FC1D9A925E8BB6A368E630AC6EBEB
-933991990F4E49075B318B62CA8296CA43B77FBB16578839419929DC8A2AD819
-F3C404FBAC9CE3CAE8AA904E39924C4B704272257DD3D0C8421A90D426376F9E
-E2A4B6C868BA2884D7BAF0BADA6299E307ACA1A74B1D73D73F0150A6C560E65E
-6C0D247AD55969C1FC5DD81C764338799892D391A254B3613F89D1A348A9BDAF
-CCA171CC6E51DEF7A91C7929D6FA2BBC243DA7B1BEF9652F1D8FBCEB2D367187
-9FD4B2C681820B2189A213866CE3456E2007FB3DFE2E362149177CD104444D0B
-C026EAD4390AF141B33868DC5A49E0E1108DF1A6DBC81E2015969F66773BFF69
-707FCD43DD72B483EA751FB1C840C917EAAE7447AEC688EB9922FAAACE7BC094
-F617EFFA3199DD06552C72E53E67B0053A3BE5C5750EA0581B1A7692AEF0921A
-859C7F04DB8AAB312D2480ABE8AAFF257469A555B5F983D277ECE041588E8F94
-07ACAC0E3DDFF44817A21B86939E7787FA7772113699B0A4D9E5462D3E59CEFC
-2798A0D70911F57BB068F9D11393D3F2A4161C26DC2F3C92A7D1F5FC32C6295D
-9C6DFD5E9561DD4443F5CB7A356A9BDCBB61706ACF0C51670668C67DC0FFF754
-286CF2BEF36A02F637DA2DAB10F4897FAB65E78A408C405B52C4F88C4F70CE20
-9A27803EAE707C5E9BBEAEF09A2ACEE9986A64BC671BA9D638375ADEC6E83038
-303B41BD653612FBE967C4B5A121032C73C085A237A561B860660D52FC408F3F
-CCC694CED076A3F42CA1CA6C12A222BEF6850199F45E2354CC7E308D277CE2FF
-F85076C0FF875911B86306112881047E688C5EA9CB6497EF84A659A54ACE4AE9
-774EB2A9ECD4ABA95831E2B6DCF60E8CCD197670E2CA7B79FBBF3C9D9990E737
-D8372E43DB9D4A1B488C630E86BB9B9E91012DAD1D7FD603D2DBBC732690B2A0
-8295EB964EDC0197D6CE17CC3C71559962405AA1E21BB1A8C17EA1DB8911C970
-4EFC85F0DB429C54FC4BDAE64F5BF4B5DD90236269894A180920BF30FED59182
-6781F1602EFE3DFB2467EAB8B00CB5FC30B9669AADD4DAB5795E69F4B8703815
-95F15C33DDF808D242BC2169FF88EB6D74E9E10B638658330EBC284C89442949
-8F4658A6B3B0E70D1431E969676900E56D0773D36A7CD91CBA93C35EE3E07BB8
-2124EA7CDAFD27C4EAB0C53754CD38D4A08C362E0479422E9042C8586BE74C21
-FE71358084B5395DED53C62FEE8ED78460D8A9E8C39E49355E9F712142D3CC38
-A62E9B7BA97061D2C70579E40A54C0962BFD0C5DC6B3338FE09770DE0910F9FC
-4B35C0A307412BF77CB83E62BE74B4EDD3A6BBF2E2294477209F823F57B87452
-778759BA065047FA61F3CF1853F60BF4600245237CAA359DBD88619EE2E948A7
-FD380EE535751CEC58BEA1C0E48E098CAA97C0AB72A2BAD0B538D8D48A44CAC1
-AEA3848BE1B68AA401F37A1E2C4361FE68EF65617237AEC00A37FDA5E826ABD3
-291EEA47E3D9800F98665C75184247D4CEE91401411E53B8B48FD8CFA7147E05
-3603F82AA77C3FB65E787AF953D88B897ABF206480083C171AD32AF26F927E7F
-58F29406D9A4C64522378E3009AB2DDFA65F62ACBB25888F7244002324FCDD2C
-D01D4E83F7D222DED9242922F1187FCFEDD0DC300E05C4508256AF9D8DF2141A
-84265C77AE2034B7848A2078933229C180BB2176481EA46056610BC76B21B33E
-B5792BB9A3C4AFDA74A7316CFDBC0F9C63625CAC268AD7A3B82A9E693F4A2CC1
-6CD9E3499B943C6B6522F4DFF471B012E8BBC82E941CB87F1672669A7297DA94
-1D05CBE1D1BA7E3749E59275B55C1893F0EACF28EA06567D4702EFA6328B4E06
-A179896B168BEA4B248FF64884DA6B42EC4E49116F1BD06104C77E80DEE2B5B3
-96476851455CBC7BA1F8D37E927F2B8AA5F6860070940F182B1643929C4A02C8
-0D0CF40CBD295C8B5965CAF002D464D032209B83A69CDAC059D2C949A1CA48DC
-93C3F287AB2FAAA8010D2B982AD7663E331752B23C82FC07E7F3EB7D72FCE84F
-02EF6982C96FA3FCFCEA45BC433C3A1EAF91DA6BB03B8E6C22EB79958025C3D9
-6BF93DD6421909607AC24B682E90C3E6F1559C58ADFC90350EB44CC159A69475
-BD46BB4123F4AA935D836E5BE5AD399F13D35136933D47F980D19CCA98DC441A
-351E2843395245E1A3412ABEAADCC1D314E61FD3F7C227804175717E50D4A553
-F329D7D5B1D3ECA7C063471ECB6F72B2FCF5B31C18FCB1C92B013C502C36E795
-4BEBEA3247CCA9989B9AFB2E0144C8FDB21E6611242D26DDEF38024E971E3BB8
-2ED74172E32515C57A002275759AE8C59CC17AA0EB4A849BB434F1CFE128CF02
-E5EF9D2A02279E03CFACBE546FEA176A9864EA3E2748CE7D6480C7BB1E8A469D
-85DF3BBB2D98337E82B68BE7A8C2DFE8D6D86FF6BD205D332030679599B70AFD
-8A002326707FB485B995826FC0D2F8C3588D1201446162A1F8FC7E75F9208B05
-EFF017F40F429CBF0CDE769D14016514543752438D907B32F0C40398C0E0B246
-B06E5C2740E7E5A6AF3182E0E0860A0B5158241D79F7F5FF174764D8351A89FD
-0A7D99E40F317AEFAE208F3C463DB86593B91892F11C9BFDCC8D741ACA2A0BEE
-B2C1A836EC39A8894B9097B194F980E7501608B1403CAC065E92B41AE18664ED
-8D9A889C1653217FFDF6006CDAF20073DB4300CFA63025D381E4AE4FE969FBF4
-1C66D6FBAA6C0BA67B91CE299044261708D93B15F30F685589FEF331733633D7
-F90D071B2CAF4106C22DC5C7361AE88FC817DB8BF37FCF2E409D882F1FEAEF11
-41DC3702D9B44DAD630071210E34D2E644101C7CB2AAF0892C497BB391146614
-50AD23021FE8FDFF23A505B207A89803DADB5E0E16886FC382809EB0854346C3
-5D4D7084F688EBC02DF2673AFF763801F90DBCF5B43FB0E8D57B3079A2C6B07A
-69A462168B9FC750AD55E11A10724943B61F425344C8FAA924C87F31E07C3467
-1002FDC8CCF3153405FD66EF0EB2FA0FF5E5E0A35FCF5052133B5550152BD88C
-2700F1A7D05EAF25B6857615918BA5654925448B950BEFB9EA36073AA00E7B40
-0D7E839AC159B8856EDC45FEE444945EA9C4DE984C68C9C1EE918A8CD45BEB50
-58C8DA3508F5353B1EB83FD38BAB985608E08A0412A5C83C2CBFE295057EC58C
-1C6B537EC6CBE44342700E114DF42ADD55E2FE7FDD9056908AF166ADDDDD93F7
-DD5865C03E8FAAADEA4173E3213392D37A545B409211E2D30F2118B5183DBEBD
-E7CAB3C1E3C17CDDC47BA80B2EEC36E47E9CF81A30780B0B50B231A7A4C5E3D8
-4151DE0CF686095E2706850C90761CCF524D1B61B3E76F6E8611F0E4D993D87C
-8A08A4809656DC07FDDFFCD8F5E60782F3160171BB025A6B736D4F4093BBB062
-B2F3704B7A438495FD39CE9270411A5111B499A5B97AE75D94A56EBCBD013406
-BD215B1A3526C8ECD4C745FA6384931D197EDF17C37BA19DCC3B0E0FB79C1946
-53145487B08EF827AB1E4AE0BD7A0106CC4C1A61F2529CFEA254FA028D0D3DF8
-48D762C42E711FDB0EDCC0D3D1DD6B4ABF4650856B8F275DF1C8179A8B4D3A28
-94EC6376424A8F2462A99D1989AAAB1163A67D05D4EF46D07EADBF747BD56E9A
-DC48E7E1B40A2FBDAF5D8CE2EB3AC9CDE96A6044160DA3D5B96B52ED82EE892D
-CF600C28E53B9AAE89AA2FFD100EC94BEAE73FCFAB2F4FBC2CE26570C17AFC32
-5B343E71769C190E8BB3CC4FAA48991930F7A5995F998D382A90C2A0C98AD6B1
-57782EB0D16F191AAA1F04D2BAF1DB754D8543FBCD2B5D3E76591E5E6F1A2F80
-6705E607D921873420D7A347215D7A522BAD6CAA9A2285D0353820C27D0834C2
-B3BF27AA4704E1E8ADF303E3855D4447BA084098B6E37F578DE9D6C739D44353
-10957E129D642D099B137C406524161A5CBF6619FAB7BDB4A1FEB5F69EC2D8C0
-803685291E483C2A9DDB83D8F7D751AE6C69DB8297702D20BDD7E293F7DACFA7
-E56F7B77F915221981C363DC170F6E04267CE593751908CAB3D95018E8CA038C
-8BA4EA16A91A227F04552857B947B693B0DAA420C7D99B5BFD058677FEB15E61
-EF1888A69C9E33CFB2E0010E1BA49CA8198242B9E025B988A9E6AB0A7D434C80
-50CD2307B194DFB07FC8A827BF6239B3226935A32CCD429348E1789C8B3DFAF3
-03B59B0905DF2EBE6C807F52A4811D10B8B10E967FED1853A6D4DB02A46DA4D5
-05150D24118FFB7445C8CA17168BD332F32A78DD5211A37FCE92F8BC2142BAE5
-FED439839A5F7D1FA4364A2F5F8B1BB4F4BFD27F0078EF167F247DDE2210128F
-B927D08CB682DE3C8F954E064349C585376E84DD8D0A15FACFFBC5F54CDB2EA7
-34728FE9B4A4D2B07FBF7C6598EE6A5CE1CBB7C0A176D890AD82F3E2F19D686D
-75A6B5816D89FAEA212AA077AFEB0055AC44B4E9E639B7D7C8A2FD4C476F4A61
-AFE52462E4B8352D98B3412DD494642AD5BF0D59050DE29A72F90838941C4BB7
-8A826E48A9AA4AFFC93DBB77A7C8BF4787C47E54F24BD702A3459CD060E70429
-5EE5A72C97BCC54F001241C7E0B1D5E0DF76DA82FBDDD294ED30876554BE1E88
-DFAAD6D8DA75ECEC61588EDCB48E39A654CC3A8C5641A385B3E0590DE54E9EE2
-65A85A1DAC0AAE90E1B131E7064006D5933D96A18235EA1CDE5662B14C393359
-6F7995B833A671DC33B8ECCBEAE657004483AEDCB128D2D89DBBE7D87F56FBA8
-091300D55B04A20C4ECED98B229A61D4A0ADFA6E7CB8EF07D92F69BA316F6690
-02BAC63DF03E07BF5DDDF5C26EF67375032DD9E1CD0A4F9DEAE0AEB79D3BC2B2
-A084661D6DA1DBF6B5AB2047BDF4C1A52856524E17ABE66E38A37711FFE2C3AB
-0FAE88F096CECB55695970A1EB99491DADB601E0872543310D4335E11FC92DA0
-EC1E364D1A81CB3CDCDA4ACD219104C828108D8F75EA0990D6F39F879A58A757
-56709186B52D8BDD9205E22DCE70F81FF0DB0F73D7BF22906A9DC9A95AF8452B
-40F60A11EDB522C9C8B1473C1B7409E95C520E660EF08F99BA405F44CBEF56B4
-388ED1E816AAD6C5DFBA690C207D08DAE204826183FE0C18261EB2E51B594561
-D88BCFB02E70054F35E0DE0F31B15191867079301EAA85D5FE398D83F08F9FF9
-054E00968650A1546AAF86268CD31B5769B6CAB63D5539D67B426847A822468E
-472A5BCFEA9DC15DDD0ECCBEFF03BEB6FA5ACBABEE7CF2A4CB7D85388BD84649
-4ABAE15C9B52FED3B8C9AAAB550719309764625EBBD5434F4049309FCAF7571B
-377C4DFD355A890803929CBC4596FCDC5875E36668E891E1FFD980B8FA734931
-632D59F23D6A80FFDAB866B595A86E6EF798FBDF73C1B0F7073F1C671D641F55
-9757E3459CEFF505F1F35CA640B572F985717C6E5CA9E6C006DD797B3F47E0E4
-03AA2294E550C63651FA76B2C32ADBB897A3F6099D211A31081AC349B67C89FA
-9D2BCDAE1BA92DF9F7B8AA9035783EAFA722A038AA94EBE8453B4A7C1C875090
-3D13D7D2843E9E92FD2D55C5A31D7A0FB86A63E6F39D8A2E285AA7767EEBF42A
-ADA62726BE511F7283FB148079086AE4A4148CD3B0BA71D2366D02DCEBC34EBB
-278D4869B09CC8E191C28D212615125A7BF3C7ABD0ED0173EB04751EB4AEC783
-3E781DE01956244B1502D5CCB14EC3C1558F44BD8A7B4C5235EE01EB9787E3F4
-7633CF9ACF9D1B95CCD78FCBE8B015FADFF6961D960DFF37AC63E5FCB3BDB0FA
-455935C1DD9D3D0D6B998E83E562A0CCECED8BCADB546D4298854C3E760A34E6
-63AB4419351F5567DFA518340EA5E8DFF2C63E8A8862B992C3BF020A514EBA10
-718183819DA30F6DCF7C47D94845835495E3B69FEF796728DDFE4C9E2E32D163
-E02393F60133F2316BB88A3FDF7BCE977CD1F23B4735DA3DC10631D5716CDD84
-A9E67B3A60493AB9589026321993D57CAA1E68A8E15BF7CAA67AC1C33A5458B5
-4D6FDD851667B28F5E50EDFF7051F2A934BE94F86D5088412F5720D25A480D21
-CBD723974537BD0D8EC45B84FE50B15548CC910BD0E91BEEAA1966F3CD79EB7F
-5111A9E7597217524A812DD4C2FF71CD57EC7E368A13B56EF52BDE19E34561E6
-58AC76FC258B6CAC1AB4A5564F90761D0A9EF18FFB33D27AFAA073B3228C22C9
-E2D0106451552CDB212B28F3597D8B652F03B94DF3A980C6888D69BD8597C73C
-5F9C6FD102453E2DE1DA43F0531BCD09873867BCCB7D2A78E8205BDDDF4F1602
-6A9B9C370F9EB49AB46C6686BB5B74A65F0F7BC4A6028BCD93CA252785E8E27E
-F0ED475B95D2819629AF5C08BCE99EE7F5AD89152FA4B6C5A06A15FF077911D0
-F3D99CCAB72B83A877508AD5AA2D8551623E22B1CB39753D61099184D035B063
-69B7D8FDD9AF3515AB4EB6D423E302EE2D0D6E402632D9FD28BDC27B40157940
-809A7F580610903D5BB8D3AA9B2D7F7B6512C106267D41B3644A21F2D8770E4E
-4A69BAC7DF73C94BDDCA5A54810FD0F4CB27E4583D1AF77A631DBD0F260296F4
-E61B4CBD7641D80CB0FCBBCBB03229D6386111E927B91B128E601ADF44B8F481
-99E9941A3E9E5C4E791D822C4DA3B6DDF7D8E01FF3F4264C61E8A779BEC51DA8
-FAF47F90BFEF18B8A02E27C4F98A2413C659002232AD2FF6F556F90B634A4F3A
-220E89D77C19E9D9AADABF338EDB3C0A0FBF2995C8BD1FF35826988935FEA5EC
-C36D3994011F3FDC88581F9431335719FBEA6CA09E232F3D3723937C4EF79E04
-C1026CF28D01A630044065B894C833F83254155E92B0B2EA97F1F262FAF419F6
-7C665F1675CBE362A3848613677132FD9F8674B23937243BDA27D8C17521FE63
-7950087A0D9E678AF1814B234127353D9C9BBDC7A156F8A67B45B3D7708B9AFD
-4647790FF9E9AC3CD84D67CE96E98FE1FC45526F0B1CED5A8E6E1117342DE6B5
-966B2B006F3475210B2293769BD5119042D8D610BF2A98A8A749F99F54537A76
-BAE6FF65A536DF5C93F04CBBFE4736375CF9FE05CD4444D0DC75D5A19351AF7B
-E3708E72FDB3246E2ED29E8E2D1DE84A547C72450185FA82E066369D37467725
-6ECA1771A162DBE738F68EBE829C6F4297DCA6AC1C58072015551631C88DBFDF
-1887D5CE0726800230AE561F8B37880C536F39C70FE9A3FECDAFC92DBF5726EC
-8B4D486AFED75AB1FBE9468E449CAA33D450D68936A5DC20F9E179438318F5A8
-CE9D51AFB937162E7DDD1AA3292C17BA791657A7EE7DC44E80D363B0A0A26E03
-F6DD84E89D28D7C1C3ED347AF7FD4816B66FBF56A4A551776FD3DBBBAFBFAAA5
-A99CBA77634AC5FBA9A02B8289E14FD064591A9C1DAFBBA02F44125B931ACC5F
-B94304B22DF6D09845415B0FBAD0F206E809EB721B7D57B4538A364EC470CFBC
-3D9D30311A4C98976498DE7B6FAF7EA6385B2F6BC3F913517083EA1A03BF3A37
-28B17D9D90DDEEFFB6FED93911508F48424A2C7EF96FF5F7C2BE572C6BECEDAE
-9895E3364C10ECF70C24CF1F16C4265E4AE26E8118AD1CA54D17E0E5E1DC3E54
-25A65F2180CADDBD660CC16034A000CB321E3F55C07039A5DAE31B9AFFB2A33F
-E85C43EBFF2216229FAFF16DA8B2E91272C20A3D44BD9D1613347B80FC96D23A
-E84FB08E2C4AF42E48C6DBE656C1593E1DEC2E3C5C5719AE12B5507840D27383
-5D8B266561EEEC730072BB24DC7E734DDF6B8E725E9205AD2DA26A517478AA2A
-531AD334BC428F48586FC2DAEA9D262B673F5F3FCC1EE33C0FCA58955E739C58
-75306B3CE28A091645670B38846F56D438561B84D7DDD7FCD31A7023916E0079
-FF95D359F472198BAE4628F8097C984B094C5601B8BF3AE95BD8F7ABE1BAA6A6
-A4E073756A2140A266B01B1D31253FA57BE714282F88960BAF37AA5DFE4FBBAE
-9DC32332D7C578C5
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AFFEF215D00BFCAD02E45496D7C8F5E99EB9096FC4300D038C1AFD31EC4C
+5ACA6B72C1BE7204E37A4CBBCB1EC26AB87F2FF82DE20601025169A5FBD2D060
+62B5B2DBC288C79C33B596832AA18D730AD572C6EDFABCBD36DEA87C0F323C3D
+6E537AD3B43C6F3A905597570A8C6B0B4A5E08C08EAFF9731E745F2BA8ED0C0E
+1ADF7821CFCD4E38F3F4C243CAD31D9F8FC68B9043740852B4CCBDD37BF728E5
+648215961FA82A0C847ADCC5187331D0863A4573BE520C02CAE14AED4F06B3F1
+FB4A318AB54CD86DEC824707B29F858FD726A167F2333855C0575EAF4EBEA0B6
+754B1775F967140641FC06F82B191244186FF347A351FBD8FA62E8C978B21F6A
+E124929876488AFA97FAD262BE3D172E2F03F564F1325C9F1E050C83C12E0CE3
+C7F58270B5C40B46B3F592FB41FFB7F59EBD69B2F489441E398FEF7F84C85055
+531D95FD21629B0E509C2FCEE995D025BAD5D3F28CDBA5CD414405ACBD936C3F
+AA4CB2620D7426002161F983AE95E542EB8553AFF7E57B82E05FDD5FC433E1DB
+BBCFFB1ED92299DB0291CAB10A84529B7FE279C62628A24A2FC36B01976E13A9
+C528A198B8EC8654AD69CCB5C209964A2B25D6DA9BA0FFB366D19D8C69701D7E
+8ECBEA88569601C80ACCC2D5487DDBDC27DC463A53A8E59F9EC17D0ECB7D2188
+B6CEC6BBCEE631DBB9959A9855B997481B5D88B8BA29995053CF42C5518A3E8C
+AD21553A0F6BC3483624B013D3537F7C85D7C558A9C772554CFC1C3FE7A70633
+318A99533A1AD864430BEAB8A5D4290194F13FC1EEB80C2005998C0126EA9C07
+9DF7B66876309A37685C8555A6CE41C0EE4BF759159FB90FD85AB248BDAA0417
+4245331D416A4ECD2C10905CDCD95169CBBCEAA3E45A70778A746B11D7974C6C
+616C217475E1632707B465B622DC2BE08B366A43F3B1F55E1384532F37F5CBC1
+8B2840EB834739DC02C8A477A0E0B5B1DE8F7944DDFFE6B4BA18D9DFFC2A9A7A
+78E3BC3A0CBA942C110DD323775ACBAB430724E21575298C6D19663A9F4DFAE8
+AB299158B24294CACB53584FA5931C45205AF58AC7D6075890B8377997E18CC0
+C65436BB7790279B58D2E3C7BCF91EE077B0EEFFB07A403D702B9DA567AC51CE
+FE7054FCC281CC34CD04E539FB17299816486830EBBB9DB3AA76247D50FAE981
+65CF044E39923C4E2173A9FE6E38A21CA36F70FB9FA6D2E2246B402D4BB5F150
+48434F9B4F2C2FC1E7C19C30374AC31C2EA87732DA14B6E925DD0F34E48941DE
+796C44890144DD9691AE6F0381F174714B9E17A44CED61B9FFE40DA5986D29A6
+587781B9D3AC5CB19BC448E3CE9661EDA021755BC8DF86B3F766B0FFCC6504ED
+82B4B8B53B62B399406D1658A37579EE7CAD4ED2554EA16F53122BDB72C89E96
+390332C0EDAE62DC139A6091E640D555E6D7C5AD81CEA20CB8B1272ADA2105FF
+FD816EA361C24DCF0BB660E2228DAD143C5E0C101D34F9E1FD23466F672DBBA2
+586DC5BEDEBB112CC621B8778580EEF6B8EFF9BD99F335F43523E09E2062AD1F
+DCEA3169348EB141776FA49800CF1173899E5D331768C864E998CE2078C1868B
+5F3D166C13AD2C17639BE80856AFBD3B2C8EB89FD41E998A0AEB832AD421FB40
+1AE013CBB43D3D13647A2E27C41470ECC344534289FFF79162D7322C3EF5AD08
+345ECB050186836AA02A47D934D3FEF1BCBA503B9214949974A9C206055BE582
+42632173653D9A62EF76D442ECF4DEBE87030B9C366C7280BE342FF8D0A2DCC8
+A5C6993F0338A71D54F3AAB1CDFFB6AE9ACA6DB5E29024CD357054EC0A149893
+31AF86ABF24E2F7492E461DC9E399E815264D4A06F6DA4364432A12A8492A88F
+DC7C433D4D884FF56DC2FC982F8FA87D69D59C4281C8B9529B3D41B854B00032
+8258AFF0063BB4DE1F824D6A526F7F196F21A01E503DB7FB20614F6AD61C84AF
+13C23624346FF7A14EE8C073F7FDC888D43F917B353E56BD9C6E69D82ADCDBA6
+AC5EC3523627CF71FD5302B0BEA306EAA6FDBFB2168252D4C4D345775F5AB141
+9233B18ED9373D56FA74DA7A39CB7A90FC6DF98AC03BECD64FCDC2A85041C4B3
+48E999BCE6425C6A0B26574D99AFB5F61B500F600C0E9D5835B0296420FB81DE
+14310596E2C64313849B8CE782437D712F8987B3033FD2FEF0A7AA0E26D33D28
+AC6E45A65F03530ACD022F2496B9F500FB274669061791AD5862D1AC84ED0012
+FCBBEC5BDE13D2907F1593011E0F92E558DA86BCE9C464C3037E3B63A3A67B54
+A3CA185B9E87AF9D76D67D100C59BBA1B530CF0E191D013D0DE94B0F9C50ED21
+D7930F0EE3A56EBAC215B0E1C9F85BE211E9164C990E7D4B1072DF49AA02D927
+53A129CD1144A6E4F8C1D23CB2D6FC87A2240B16C9E54BA04E33201A8BEE54C2
+F8798C93FA35EB287004DF64FA5C6AC4F7274F312F6264E94F2215A39CB8F6C3
+563AF9DE8F41D67AE31B326AB9C6607FCB47652F642118977AF4BE0A5E48ED98
+68F717085F0602B309777AD2E4044E1FCAF55EDF8327AE7FBB78AA15A4AF7C51
+5D521D1C6155DF31E7C7CDEC35B5AB7956F7FD06A8FC259A4845C5BA0A293028
+BF5FEC5984BB3702AAD0096C832BB1812A49FDB0D8B4ED1A02D24E82FFD80696
+79B1D2EDEA6D1F10CBF1649320FC04CDA340CB047A276DC388BCA1E39FD11980
+B0676294E4B690D371E3B8DE6F2A6C65861A161BAFBF18900D50D8F5B802D241
+F119E63504AACF61722EC2A9199A7F3C4DB29593C4C3321C1AADB9CF077B7BDB
+17E5C1842B9D58DCF916C7DD7B848CDAED357E874D9788C648775A9725973A8B
+046CE0FC513437C9436D5278915F74956D7C9B33DFFFEFEEA13176D5E9C7EED8
+E9350EEE1451FFB840E5B8B23A0B065CC861A91ACC2268D2CEDE02799D369AD5
+B9BF63A092F045D25B39FE41758D342B87EFB59F6EFF26F009A5D5411424E027
+EEC7FB8DCB92B707FD2DC7A41FE17E6722BE107873749FBC39B1B02E0E926FC9
+9ABF2343B114AE78DC9987FF435B351002570D9D5A831B96A6FDECAD60B523CB
+7BCC09642E31877EF538B6DA969BC71A152139CFF5C656197B0051485A3E621C
+B1E9357CD5D9D067C2B0F6E1DE201534EBA84182840CBCA07564BE64BDB09A88
+5C7B39B6FC6E32A2B4F5F22A250609FD5AB034E79FB9B8CDFCF306D878975696
+79D0403D07D02D94C7836B542AA0A163406A81B4B2286A7A3342787C56A13AA5
+B9376622404830BC533CAFC715EFB19518B239ACB7E94637829E3BC6EE7B455F
+16DAD8DC390637F1781CA7A11A3FDD7BD3FC9F66656E90596401B633612BEC56
+F5C727D7BD9A3C6303F409C302EFF0280DC344D432C96548A7165F3463D9EB42
+F0BBA79E2AD7C748571732FB1437454179A5F62A790FA31B49492AD4D3A30EE8
+CC221C9F501A58E97E028A15B2598D0CDDB2BBD43D80C69B69637B0CBF24A2F2
+E5841B0FAF27D855A4C22D8FD6F07821B3DD76DBCBC76CB0647E862497F022A0
+367CD77D2BDC6DC109BA966540D94F15F55BAD3C0C2D3114748540E6BE9CF5F1
+31591307B1FA1BC1608635A76845967C4AB1F3190F07C5CC085EB16291C6B8C5
+0046511F7B428757B62FA04C038DF7F2AB09173ECE9BB93293A8BA18B25087CF
+20600A85099BF39E6D4E2ED40350BCC6743036D7E5AD9AC8C81C53AD3C5F9D94
+2EACAF71E3256BB90BD1D956BFEE1F7655EEE5728A90BD5C90CEF59FA7CE811A
+A708FBD232A38267A6D8A3166CC04E073414B729A70BA253BEA7BC97D77B40FF
+4FB239DDB790DF1CC9658004202391FC6E394875C577C1FDC0CFA3E305E5C003
+36D0DC031675AA408BF3FAB297485F413002A79249F6D5DA9825879F2467933C
+91B127E329E8E6A02993E92B9DDB3BB4F93E4DB927449A29DE84474086C994E5
+4D15E4A486197F4394920F810396C9F906E8FC0AFFB54B032F3D047156B49030
+3119CC2D5504B057D86D957BA326E961501846829EEA8B847F1FFE4DB8C547D6
+396A1516CF68E589861B56C3F5B6377E22195E3FA866ECE9AA8373A84BFA3554
+553446468572F84A6C7D35059DA21546EA5D0A60A747CC0C2E6E29F1DD7ADD2C
+6F756959A5DB3CA09F4134FEF64C2DE432AEBAD846EF2E84920FB3D085BAF23A
+7E91F3C016F560EFA44FC34D79B0FAAE2658626F830A59DD723A391329B0134F
+F6DC21AAB7FD9CBBA5BC1C625AA6C2BC7D9C12894874A24EC5A90111EEE65E02
+3892B8B22BCF79D983CC56FBF48B7D8DBB0EA0471461A14541F2830160E96B29
+6545EBB30DD19646AB2898FBE1D5962735A99046BED138D650620A35F39FDC72
+42EC7A5CCFE733DA53A6E23373FB2B49D52EC20277393128BE44EBCBB4D7C37D
+E924B1F166A0C7ED01E33994FBD2004928082EF54BE02A8357C218637CBC59B3
+476265DFEA687DEFBD0E4BE9264F25F7EE02347A164E9A36B62D5E1EDCEE907F
+392A1F2969F52446DA4CCEE43FA9E9BF4310B7A764B90B6FE1350D60F6F21D0D
+185DCAC079FF7A45C2A60E65561514CF4928B8523C8368BB4E368AC2F7203A1C
+49150748497BBA696E9DFB2FD0617EADFEC5706B4FBAB17E13CCBC9CC1FD283F
+F99734D174E503AC25247D76FC76B1AD3A78DAA8AD3A0CE6A3ED326C96043B17
+BAADF2985D521A26ED378841F41FAE21C29339143F904EDC5CA27CA82B0BBC8C
+647D31968E47A57322926336F7D5F69CF8CE237FA1E69108E29123A80E65C769
+90156286FE39B33353E85F540649DF392A458ECED452A6973C6D994CD728522A
+FE47E7C1617B4F3233150E265FBDF30DBD9DE574D7B938BE61CCA3D275C5D76B
+89B3CEFCCD927F9781320882BD26627CA7BFB69B3B76ABD9533F085254F21637
+FBAAE05DB5A50BAA63395D70821126327011E2DFD713323378F55A24DFCB2C2E
+129BA5CFAB9315ED4DCE755F1A79013FE4D490F955609FBFB7DB8EC0AC6EBEF5
+DB76FC9DF8F4957F275621DEEDE9125C5B3FBD32174F4FE78C2563C0E00209CB
+393B3ACEB8DE30AA20DD26B6894E316872689D5954CF95FD0E5D292F29DF1ED4
+0B0746E862F7F4D9916D82E82CFF6BFC8E2277A2E43F57D152D54C56123EC368
+B9BE0CC8BEA71A1AB5CF35C2CF7AA39AA539B56781DEAF53E245415454B530A3
+08B5C59950A279AE37A48C95EA86FF8339ABF4720AA68FD68B078B246373AF6F
+E409295C5E1B6E7B733B1C1FADD4863FCE5E373B3E8439FBBF3AA45F30FBC656
+15BFFE5748E6C3B5FA9F3FAEE38263E5A5504D88A31CFA5B00E253062B681D0D
+7CEFAD5B0FF85B58BD4A0509CA4B342DE63D25B935F9AB6DE5A30463DC59EFA0
+DABFCAD726EE8342A3FD62997C3A7ABC8AEBCF22DE843BB456E3987904A421DF
+76D9D3337F9396D94A6A9496A4B5011C97F6D7262927238A579B29B08CEF0E72
+09C760D2B8D26D32CD36409C8866DCE819E59989530A3BCF2E374D7D0DABF73C
+D365C0EB1EB94F356F72CA27BBFBB45FE5FCD2DE0B79D4E17398593B4515FF21
+618FAEBF277D59E5C5B72D6A1F6739AF3E223BA4CCB15D619C322E36AB334DFE
+50F72B9217965D2DF82C4274E98CDC2753F48D1901765709ACD6E270E3F78956
+1528FD58DFDDD0D859F9DCA28306B67014263719016BC9298C4EFDBB7F4CCEC4
+E56C2D9B407F0AEA035DEDC80B4EB576AD60C5368295F6D249E74F686B8D0281
+32B91C1BD7DB446408EDAA43DA867703C9956056C700347557BF693335289143
+F70FBBBEE55DDC1571435DBE799B45B689FEDFADB3C756D67FC290A71AE1BD0F
+44D918CAA1B3622247E4798F4A6D6F89F6A36B467322CA2D3B9BD3483DF80A0F
+7E09D321708BAF010640A28F916E44396C0140FB96E6121FCE625F81566B06B2
+8F9516262397C4C0DD8FD22D072C28D257AE2132B7658EDC786857B9057E3759
+A27EE1E770BC0745D9BF5F0F9A2C2F457BCD31036EFAF67219B9C79981A68074
+D3EB41251AA58ADB9392B56DBF091AD17A51A291ED8FFFAB28BA0627D4A0E90B
+B489573EDB53E6F150348285460928A848DB92143FCCC84F525D51F2A36D4274
+F9A543E5FA4CF3EA68A49FDC679F5961212FAEAD82BEBD924A926E9DC6BB450A
+09E969D4C2DFC5723473B70C023613DA4CEA344B7233CEB3D00C6F0945EE11D7
+E0F701E2C8427FCBB0D57C4ED46424E4CFAB43A4E5AA36D1A38D3B045DD1DF64
+8B9BC4A96333CD95206F436486180F113767AE8ABBFC3D400C80ED653D7BC095
+CCE6DD2ECC53106F65E7736335AB2685D6A51A94061C4CDF3DFF06E6D879A91C
+949D2C2CA8666151836E124F686FAEF0FB42859A172E2D0F8D081E1A73A5F6C6
+E61C586B43B28EB7D08ECD915CDBB1CE735C0FC08A850176DF9704DB9BF71AC6
+29D21D3374BEAE9D51C81DEB509918A6637E0E00794B05540EDA577F379B09B4
+19E10C6629A33E029ADB3A4934F05454745C6A17CC6F1359FABFB5AB53B2F910
+B5F397291E6A463A5AC971965FDA9FC053EAA894E1FE04A24F47EB19FFE67A3B
+2A5DFE539C57004C2B1AC8C0A59764F91CC6E9FAD6158427F82B9E1C77F715ED
+B7EC1202D698A6913D3EBCD6CEFD098076A6827DCBED5812B5F969AE9D4BA95A
+F12C40519E33EF065C9C69496C2042267E20ADC4BF0C8DCCF5FFF524E5ECDF22
+B31A066015FD4A5E8DCF4C484A11E39A53C813C87CCBC147912B9EA28C535602
+B7C5D5882F4FB764EE060C3D363D5563865F67CC8EC87165A37D00DB05287364
+84EFE9A54C36D8EF6F4B86A79D79903B77469F48288261F83970F7B56CC0E6AC
+60B1F2AD9BDFEE0372C4E5DA1EC2DED6D8FC0230D2875A58D127D2599954ECF6
+962CFEE9C966FD747F60F3A9E02D219BD3031B041669CED09F9DECB766806A69
+19EAD473044DD90156E552925DE0844F7B8913F83CEED2B03E27DBD811B6497F
+CEFF454F02330D3F0DBB6F742FD650D8FC64BB8ECD63421002E486CCE5AD262C
+E26BCA5323B70AAD8699467A1A720F87F86BA0E289E463F772CDB7894E6D7808
+BEAFE9E0A69CA4A4BCA8DF61C7260BA3658C8678CA2A3CEEDAB05599E1BEDBDE
+B213CC753C946A22BD0A545590F53642F89299BACFC5F1936F9EE63388670F8D
+7AFF3E514BC93BC357F1A037D0DF7A511AF561366C1BD53C203606F06ACC61A7
+9565308A39A1EAE5E9809EE7D948795EAA763B05B6027D2F597607DB8EB5B545
+EA8F935A00086D86EF34DD686E7FA152FF18766F9F680070A0FD20995B09753B
+3EE773684F79D01C7F40DC742FAB74716753DE9848C0AE8E96203692C2137D2F
+6889EB67827ED0FA63709951A68D9C426D3598EB0CF3F8B8AADE80C2EE0FC92F
+96005CEF73FAD0BD11F23B003E7094C72C702727C315BBACA116E29F61C37B32
+D39A19D53DEAE15279C9A2FB1DF92E989B4EE2974D78738B0E39C57E44131EB7
+42F7C271EEA410273698F4C02FA17EF7A33C216FE37849737D62A9A339595F5A
+1A330346B6500F33C4C37A9E1CD824B3D34947BC5FD36DBDA232559005C2B14F
+C4D9B2CA6467E4BF0E835D9A29053127EC8F19B0935DC4AF2F3997C59B1BE5AD
+6B4E8F50B75A501F60715783CD39DDA3616165AAF4F904680E2C01B66AE2EEDD
+6DC49B5D4378F381A086E3DBDB8E6790FE69AAA2385E653928DDF995656AEC06
+61E73AE147CA437524B559D6EE05D68C1F8ECE741DD6E99C1C3F8946F9B9A002
+C534775EEA9D77A594326AA4B50C234C965BD32EC7F7E9CE813E24EA47C452D2
+E8A6F2A20B0ECFCA3209011E3328B5E458056782BB79EF56485D7E6F796E50B5
+B0E5375F09C46590A9912913F9C702E294633F5AEF12AE2AE0E279794ABE5F23
+25F777B4DAD76416CBA671CF7C295E1B539FA057681F86E6882BFCFAAE205BC5
+7C0A6D0DA33A4EDE00EB08BB3B863664BCE2E70BE0AECC9E9F7B9CD9C921324D
+C88D67922DEB40A3DDC0096CE0261C3366BF374717D6761942460D115C9C3F31
+053A1D5105D6D1F8938222720E8FECCD989F95A33290CF0B48A41FE6AA8A135A
+F52E439552DF6334711E9E47603D471F6F6E13C1B16BBDFF6BE2BF2EDAAB15A4
+CDE92BE381E945F8C9D3454D4B5789D1C70851934961FC16682021BB8711F61C
+0A5C1E236D891EC50BC4B2BA6D8A2C6983057A10F36E52AB407E852822EE91CA
+5F54DB15A878DCB322ADE1142636D912678D42A68C07719CE59360BC08ACE64D
+31196B5CBA3C03F62930F8E23FCAFE7CB64E8451CAE1F29C093CC4249699654E
+B64649C3AB8ECA5ECDF9B2206AE64953F20ADE3D43EDAEA9A4D041A05C5FF7D6
+C02A8BB1FB32280BFDC1794647F11C7CF83FB1E9D7C3283AB3DB8A2B8E50FA58
+59AF00AE5134AE93BB3689A9446E55D42DAF400AA41C5532BB9490C00720D309
+E279614BABCCD807F0649982B356228F2B5A7FCA0CAB90969C23B71DD27A9796
+D096B860743AF9F9734233180983C4218D5234AD1E28BB2489DE60D8CBD23D2D
+A2990C3A2310091FA37B80BD6C5B963DC989042D254953EB7AE64D1C965F1ADE
+3EEC885838F428458EEE082EED5DA4F267792F890BC757447327BFE0A7BD11A8
+CA512B4A118E191E4F0E9AF7CF3B2184D49A3CC5751E59CFADC9A955DAC0C0EB
+2C6F9CD152E90D780EF52B1D7DE430C66CE9DD188EFEB2EB3249B6B59467AF14
+6809310C1157E226FD7C94BCF528F741F745E3940C1F1B9CEB731DE7C5BEE08E
+83A157EDD5380C618336CED69A064B2B8091B5F76CF63536F17CF81AFB04A225
+DA54D3EE177EBA1B804B7949BC4B8758C584D67C821633B563D72BD9F834017A
+26E32DFC18BBDB6FD96DE9BE41254E676EA376EEBA85C15AB5AB88B773978F79
+BD31844F188F4D372B1810F9DD89961A2EDB3E129C80121FD1035E619F36081E
+CC276BDE9146156681A7482B0CD3A7E963BCCE935C3E69F77035C2320736930D
+C935A27D293348A28937BFD30395075BE40F1C5474CBC7D65BEE830271FBCCD9
+DFAAB5567DC25D131547E4ECBE55B03EFED0E44277559DB19FAA37C164B85DE9
+432D7364145D7E5DC443E920AACB0CF6931719E08EE784B25D848AA9CFBE5539
+761F88B94C9886394A7C1D9B0AAEB8612E11FC84CD3EDC25E8485BA5690086D3
+E39C038A53184DF677721C03276C629D414067B4AB0F6E5B1AE6FBC292FF71B0
+BCAA67C86E452CED1749AC2AA1D02CBC7B5BB9C564EE1FB3B45B2DCF9E1F9B2C
+D5DF634277817342C527618AC1B86BF15D4E248CE50D5EA773A118EA6A37D658
+57954885B158B4A434CAC9457756BAC356EFBA3B00E9268CBADB61DD1AF33CDF
+A1DCA6B8D96757925E509DD7B0D33BE0C21045CDE0DEA92FD943B1D0E2811F62
+3F061B367DE01BDFABDF2EF3FCF0491819D25619AABADEC9965FBFAD1D58A802
+F8F253F46AB4756ADFC1B3DD64326FBE340A71021DCADEFC44743C99A9CC8575
+3B0C7F25CA9FEA918F82AA648FEC525EBB75B1AA47216050C74088FA42091BAF
+3D95286800E400535A83D504A353CC016A269D13E4C74E79FDCEDC4B56905217
+9018D85ACE1B989D55731515706CF39AFF2ABBFA8489F42447E7560C3294FF60
+F58785664096508D35EB80F81A39493426F3C1C070D946C77362C925897E5D05
+21EE4B210B79B3431300CCE5EA39355FEA878857CB789D16B957E39F995CF488
+892FF7FD7CFF4AE95B5B32583AD35710EFCF4C5CAE1F96AE7BA8DEC42CD57C31
+BCD3318F0F7117FCEC41E4BFE543CCFC69D57C0149EFE6075EBC81592E534564
+C7480C20EFFCB57D3F7EFBD3952F5599A8AC376CD2BBD4EBB12B44D9D9863569
+560D2D59520DBB6A2613D3174BC810C89514E0828323A9164D20832D2C75153B
+BF388B98239B4AC9751AD57C2A25C5631EE7BCE893995F10306766D483FD867B
+C29386B3BFAB3C5F9A07E56C8D6D45336265078428FFEF66E957602C0A4040FC
+291B8648491AF5CAEDC6D40758E436432C0BF40A93F96CF1B4E9492DE1D142C7
+47C422EAFB4AD732A345B3BFC2C615A10B59F29FD8C58B6A0CBAFE329D9178C1
+744D14FAE70E94754EC67E41B837C14AC865630F8C9CD1E9BB8E97EC953BACC5
+0B4B5B4F04C75635E2830876E2AE7D0EB0B2CFBADF5B6E41231960F37553C42F
+5F5E83B41AD4A75C8296C3ED321333ACADA874EA607FC84615E06EDDBB31B456
+8593F57DBC39EB41A1C0DD4539B7933829AC1B116B8661DFE674EBE05B068D1D
+C4209B86051F6B585D66AFE23A5501DEFF3EA0C229F218D861FAAE80403606ED
+1310B5F1EEBA5B1B83A6A959ACDBFE22D46BE01B07B8B7FB5B0CDF1E66E2FD90
+118A192A9B1E97B5D1D9165A948744A1B960DA72AF308E496E9D5FB2EECA8119
+808ADF470941702DB7235CE46FD7CF378A3CAA8D6970B15578A12F894297E27B
+7E203AF7F93D6D2B194523B2D51064A3272582712ED56A12987BE676E20BCF79
+D9A507162F330F648A4236A1283DFA6C602F87A4C1A1AF205DC57128FF70BEF2
+50039CACA401D3A9002EDAA9DC6F72CEA7B30E032AD42EAE66789C13680682DD
+C3CE5D10483745E6B12E963683CD1C5B2F86884A0E59F2D04AF9DED9E822DB1F
+E5F14CD13AD39ECC1E8745B05B879834A8BBAF4578686557958B2257D0B34356
+D89D751E2BBA14F3755273479DC653ED01F6052639DDA9F6CBD9A4A319357F91
+B2D2BF5292B32BE971F2EAB21C651CA38FB9BF1B7C3F3BB46536F63F61BE88B9
+F8E20A197C1B94FF572D53B4BA8EBC6898AEE82464570EEEAC49D2ED9C653877
+773B3ED7E9C597952A6379F83F4177C133A6E770435FA67EC39AF6F9BDBC5849
+A1D27E68F5540EF421A081BE87F4C3C0178A3BA6BE166BB18B669E2FBE8AD2F2
+80A1979B7356E82388B51A98243BB9D6C29B2653E104B916E6B1A90F96885ABC
+5A48B448448946E274150F1AD1816CE4D56D59CF148AF178947E52FA1EBFC874
+0931E0315C5037F24F139CC9E039A184EBB036ECA2033A70D9D14DEC4EEA2B9F
+A0F132F6E63CBAEB544683469D3A5866F65E13CDD80623E5499584CCE7DE8AED
+A85B1F7F53567BF58497ECE9A32E7B1EFBD9FDC256D724CBB7EBFDE3924EF67B
+E944CB5396696625CE74F971CA520204D8D9EDE5A440CAE121A208DD3BBB0AAC
+EF332B272870F26C605DD0974DA9BA728BB155303F5C5751B9B7B1FBE515EF05
+D481B9FCD96E6F3DFBFAFE846828ACB2AE66C90C6689E66790F1D142B3D4331F
+59896FA02F4588D2C4A1666D6B3E6330059159C133B5F80C1FEA6983B3A7D65E
+ECB180A121C6117D53C1DAEA9E4FAD13B0B3804208F11F175593673477427338
+FE402CC01CD6D8B46908E190BF08A477D7C65B58241EA83F584490FE1D18CC18
+18503402228FF42B65ED61368C7CC198CA98A3E269EDCF1742F59528EB81FB5B
+017D5F3158B2224EEC7A2C21CD2A701D834F602760229B9CF2FFC290405D7D21
+394F7CFD9D7B5413DC52B36E2AA18BC769B4DA6912B2452CDE7CF15746864CE1
+A45E9E9268822265D1380A3CA82F651F9F8584F3C75D366C6BB96A732E23E0A2
+E1E1F0E4FA87B119E547047F4341638B7D9386C0F8F2810E03A461512EDD9C61
+2EA6E18D0BB04A3CEBB75498A4D826043CA86CB57FE14A00A4FA5517850E1511
+6D7E0664F97CA7C495D01D02908BAAE8160B0B0325E73B3C85A34838979B1F42
+70EB7B0FBAA076DCCE4D1ADDDCD332F42E4FD943515FFCDF34735034F13B5803
+42F0605590B3A8A23C0D6308A621EE8837C79290F3341ED3958355F0B4927AF6
+85BCA5A62FAD45E72442F541EC9A89A9937ACD7904C9D3066E059CA6E20CCFC5
+7983FAFC88F6844C274A8F42D34F052CF6C4930E6871A4F76B573CDC48B10DD2
+5980DF5663CDD00B7701C7DC0D72A535713E6CF18EF5BE8F7D315F7393890BC2
+5A641672A904E7CB8B407E0766E104E5C4DC3DD88F6A8EB255423F0F0E73247F
+C4AAA97C03F2FE4AD4D10EFF0721308C6EE85F53E0EAD35F0F64567C84D5D202
+872A60C87EEBB3B6E85AC3D20E9DB260F37BD182AB50DA996406BE0B0F579EFA
+7D81AB4B77CE39120C3573941386275027D72288CC873817D6E94C7BC657EAD4
+D76DA726352C2BC7B20E357DD64B3443BC80D978B2630A2AFB2293801662BE9D
+D8DF886C0A4567F351400785B66D70412EDE4B53696F345F7E62738762121BD5
+0121BF06267D8534D9D02261944143F7470A2D7D70B6C30B55A9A103406D8CCC
+5813E8C3CE294AFAA420C35935BEC915ECF17C495D79A9CB8DDB75E8A1C6A525
+1B1B420AE8E0159DF7AF26D635C93953ADA11C2228E0443907EB72B805644363
+65EF866ABAFD03CFDC540D3B00CC0AF1AC1BAD7D6B16E99216B3F20A4F09C559
+055D34CC6E88532735409162A53B077C37B06CA194AFE26656F180118B1A48AD
+737B56AAA87A494E9B2F34D3ACBFC61C0C9620A76C0A0AA8CDB2B2B0E28D4739
+7432829128E83DEA68D6D4DBCA1648897882C8EF4C2FC6895FBBB6A230563CB7
+AC766E4C7BCEFEB342F9A5FDE6B6846FB50DBB5EEF8C6AB4F839618106250CB8
+C0EDAF9BCEEF07FC68D3E13135DDCF20EC52D6A25E533FB9E29F84CFDE8A78D0
+B5C63AFDBA8B1C4F74FF7127C7B49241B69EB9B7B126F5C575ADFFA29B27B4E1
+716BE3FA246B6500F278919D571C81EE27AC3CF8696871796A560761D477BF2E
+71690CBEF553D4AF7AF6CBA53635C89A0BA6844C308478A476A42B13DCD01DD7
+73C4B2D0DFF0C0E1FE6B36B7F091307DDE52E330DC8BFEADFAA60B9193CFD6D8
+C3C1172922D6E46FC2CDE41CD0FCD1B88D485E0FE87B9458B9247C82060D33C9
+B19A7DAE9AD65579A99EFCAD02BE6390860FFC7C4E3F96235327397361B0BE9D
+7B2F2EE5D47731E86DB99ACFE39AC140AEA0EB6FED70362FAE64391914233E8B
+19E23092C71ED360FBF6E445E34D8972352E5D34E11B00F027B068E431C2E8EA
+68A511EDCD103577D38CD594BC86789644F3DBAF2FA1FE1E4073C29BF4E39E62
+0020FD146794CB5B6090E5BF13B02355A7689A824B564B95845E51C03048B476
+32CFFB922E878699CE93E25394EB242BD21D77CA71D28EA7B6939A37DE1DD8D6
+C1BFA07F113631DFEF0CD8ADF418EDDF1D1BC0718F554CA3351AC97DF5F6C40A
+B4073F62C3E604F76770D9563F149B50DE4819D8C03077FA1E2DE8AFC505EF4B
+591B5A8D761B3018D5C5DD3D26329C3AEB150A34AAF84E5E1D0590BA2A17BF5B
+E36A4193D13FD446339D3C9A1D4C336846C1CA17337F014BC0F52747878BDFBE
+4DC8D2B871BAA9DA59718E9FABDE91AF2467BF2A322C5D9FDCD4D90AEAF2DF56
+A4446FD1C71E9FEFDDDB6940C33EFF3D60177C9681A94EFB154B1AE000292D6D
+3B6B9CDDC1982FBEFF024B195AB1066645F80DD1418A70F8CA518A219EE35AE4
+D046C9560B162713FF31F2A5619E834957CB1CE9B561215711FE48927A370F53
+06FF00FA14506E42912FCE82DF59B8E1697014E9708A2EEFD0ADA95ABC545596
+FF2DA33F77D87E10B990872423FED32E3B5623166DD0A579664A46CFD8F95E20
+E35B03760E964331ED2F7FA937F9BB078F71F31ACDE4EB5050C9F8EFF4223FE2
+5E9670292E319C371791B51C7CB90681D8302BAFB9A1DA864C0C87F694ED93CD
+D46A5BAFCC9579A5019A9249CF72771FD412E735D8199A48E04103CF78468E5A
+AA222D2F1C9280EF55DFA685959400282E286BB56538807F5C87B193224A889C
+680E05F93BB9210653613BCE43CB292AA4BEAC36C5591B5026EDE95BA780BCD4
+62422499D61B7F2A888712264BCC0B4B8B4DD28036F4950FC9DBC7FC525F5B89
+3924EFA75F7F50423B506A5F8D46E8BD5D0C5147F2AD7C9BCF57A93F8B188D6E
+0BC266CDF09C0B78D7DD79B659B4F9336B98D2CFE2A0DD15CB79D87FA528EE52
+7C5CF1E83FD5403E42DA8E753051CF34C72CF5901CFA96E2F4021EF63622CA73
+F416404FEDD730D7DD28075299514670AB74CDF77609B432E3A8ABF6CDF34BE8
+82C866F9EEA56C7D36758D27E7DA6D26A37041D7DC19A8D6FE1CDCDE1A2FE3DE
+51D29AC8CE19F6885A6A8906C9F3D54224028FCBD2D34C225D7165ACE46B797C
+3C8B6840895554D460F6C7CB4A4AC0B0B1A8CE7016E2CFDF56072C7CC6E0913E
+E924D4CF20226948F2BB641023E9C77824CC393163794A7C34E9925AF03F9E5F
+E0AE47FBBF6086BEE6ABFBB0702788A63F8C5174ABDDAE23C0FB989D53EB4AE3
+9699A447724DFE258636E6DCA1B6D7A2D434C0415967C672B1F843856F87BBB9
+666328FC7FBCD4F6D120565BBE9F15203DBDA16D0B9F44E4DC1E1FB4BE45BA00
+63891961DB1EA0E711B6A13AF3BDCE301BDD9CA172E2CAF4F5BB67A1E28BA76E
+8F574B86B036D79F24CDDC1FED51604C497C55479B16319471606F74CA153356
+09060F16951F28921F61C65097DC59A8A3BEB9E47C036FEB2ADB906C4339D227
+28463D527C20044AA1251DE1563CD4C897A62693E4F1FB78888C7159A8EAD8D1
+B06779571B340F6A131E1D4911BED7BC25D6DAE32928119C9C76664E53413BFE
+62711326E3A3EF13E1B62F8E84E5744807BEF8F5C7035CCC2D693585ADC56A78
+D4FE6B027F4ACB9E098B0E6418045226B5F6F2349BD0450CD1A567C7E8ABC433
+8C4C850D60FC770C33910356567198F239CEC1D061A5C0D31980C379C93768F0
+728E92AD4DFE86E9F23EF4B7435939734EC22F02B029C1D4330DB135E3B8B092
+D2616EB4AB01BB854A5281F9F2CD67F6FBA75C3E5E7F70999DDE833979C7B3B4
+BF16433EFF4E9B234A85EFAA4BAEC9C47CA9C7BEAAA6D87458CCF2E12A38CDE5
+4D4CB4F60F851689C0DED75CC8701881BE66ECE19CA9791E9959215631B19C75
+5A35F948833D1228FF297D7800FEBD3F7A2B5F039D9CC39092101603F0CE8B76
+F1EF3FB06907054ED6A67D1C9E34769D36B19A12320B1C16B30DF6CF1B17CEDF
+834FD6902344BA4145D7120C94882C75E30F02D96D8D7313BAB167A8A1CD4E70
+D022F26AC307F1FF2D098C1E6D89B9228B960054248374A313AD567C902B6814
+263B20792737EA1B42A228795AEFE63EC95BD7F06EE15AC1D0355D57AAE276B5
+FF364A28929E7621BC14719A265064CF6625976210806979280850CE81F1D1B0
+363B275C7A6D6BD8D56A5DF05A4CA41184BEE1D18496C3BB96DC3386FDB41E06
+F8409B79B1971B6FD73977C36A8C0A7742E7429E389CD6EF5FE87CBC16549B93
+5D31B5DE762D3BA5DDB12664314E094CD3D1E3B854B223038B3AB373C41EFA8C
+3BF4D37160927CFF10954D279B2C5AD85E6E6DD56BABB683FC01D824C546E2E7
+A7FF73A1CC6330E05D3465A34440FF5581CF574F9F335CBB0F836628117819D9
+A8E4A579141A7E47EA1001A63FCA77DA6E55219BD89C64A75BE45FACB2F2E48C
+A7375404E79BC059AE2839C0FFBCC8F945678D95055046696F3F2B6D8B2D7539
+BBF07A064EFA2B75EBF04A6D780A6A496A6F25593220D413AE1E37D0A08A8713
+19D6A2500B3C6467FEE0940586E4B2C524F7C8C92924EEF47EC0ABC373DC1F43
+D3AE4879D6D4495DFEDCA0EAA8134F41D5329EAA414956F1398615D779F13AF6
+338D3255646B5BA8D9C75D24A5FA1F9B0B91EFD97236F9EA50286D83C6F1EE43
+B040FD84E62469D9CA5A946A9567D2706D33CB19BCCBFB19A9CE3CCBEFC058FD
+CFE63199D28E2841B458BA5E2CC0330094594FD4BAAA432B62E6F03C114E9D89
+7929597C7A8B16EE964614972FD47CD357E32D9E7581D407EB5FA16CB0D06517
+A3C9C88B756AF52975D8F419E5FFCF778499597748EA8EB85234BCAEB1AE8D2B
+BB70E887569E9FC08D981B3C76E5CEF81B0B32953B92AA61DE5EFAA5310C2F20
+5E2ABE8D48AE0230986FDBA94C8D0006C0DCA86B3CD91B979B5D68277FFB26A6
+046D331FEADDD50592D143CE3628AD080B314ABC5EFA22B58B65B629E173AEE0
+55890CEC63AE5C4ACA0594F055ED0F8400A367212541A3E6164B00AE6070499F
+1538603A87CBF4606E305005EE95335C411F2B396231F1B3756CE8B6EC95595F
+8C66A933F2EB729A381FD502B02470741F5F7D2909C6881697772023480FE87A
+E06E7FF3C7B165B53DE3531A35AC1C8C3EEAE32F44471249DA431B381F3042C1
+3D2E9750A33CB1416738B014EEFE93664B6856ABDD56FA5757EDD96949DC870A
+FDA5561452DA2B61C0126916D5B8DC5D776B6495920F8A56F9754A74A47F171A
+3697C75E6DE088AC7B7D7B3E8823DBBE4B66FBC2ECD8B907B428C0A5ADD93930
+45B92D9EEF1F64D9B364B4CDAF486C96B38304CAB171686B3F07019B87120B19
+64ADBC525F2261601C7BC5B17E0A1ABD4066EE6705697AE8C0992807CA3C8489
+70A76918BBBDFC662726E201C3EFF3A4626CDA05745446493CDFDC5D6C812DD5
+8CB7D705649C363FC0B111F3A6C7C0F233F79BBAEE2793C1A55561CA16B85B93
+69F84D39B401F72A8E4FE159DA89A217CA0B413F44B7592F16EBD523353E45D9
+F6DD625A39848DC224CB982A6B9F535D4A27E0BC3B2BF8EF45657E1EFBD0EBB8
+9BFBCD6E0FF339913592F43F0841F7FF864C296DD12580F0803FEDB1DA850D00
+9A8B3868F409581D04D73D356561D2E2E8020B5F62872C45381AE760D00DE6AC
+C62396DAE0585B6F0ECF75A1012A63A4D54073E2D80D3CC5743B3BD03D2B1D52
+933CD3E003F28333A88AB2F091D16424C4C9EE3BCCB901E40349C6E33858B246
+BC8788B03E7B983374A37E8618B8377E0556FC76C6C87B6B8F4763D21E00F892
+4B37190E27C266CF556A12338EE1335BC5890E9D86D1B248FB67A10C358D2DB9
+AB3FCD5288973C84880DE54D5512CE587A61933AFAB1669A0D2BDBBA85E0F8C5
+2C6D6E58871999D177C9B30AAB9CEC401EFC7BC457B8A00196D228CA0E12C709
+228419492684F9CFA0B7F764D2675B672E83A7E0F39AFC997B56C6E70A447795
+ACE4D67B2832C0689189CB6A9FDE481CD3A2CAB2BFE336B929AB0954251583C1
+72402167F089E58610DF14536C155092B6998BE9CD99736E122FD3A3FBCE1953
+EBA1ABE66038DFE8C440C98B77CF80E9CB60E3144C0D80AC23DBF8537D690162
+576A2120C201D3F2E4C38D466F7A9FF33C7A8DD9E39AB1E2DD0C044897655FC7
+6B996EEFB09D6E0536C59320F8971BB5E500970356A296220233B11E19BAB3A8
+03F82CE41B3751753C320025C53F1E6304EE6D9727FB9E61AE7D125D4F656F90
+35F8AB032DD3FDB56B3F99F7828E95DF01C1F094DECCDD3AC4CE2FECF037B4A8
+6DF94FD6738E8D487A4C76A82C223ECE7A50519E6C9CF02CB92EBE0FA1BF6BDF
+8CC79E6197F8E5EDC387660068C235010232B0ABEA843D722E265DA77D67FDAF
+2C0277C9BF9914C322A06EB63CF8D33CBC17C7C619A16D2A0553A2DE83192009
+E9228B7A1D17837E5F99772D0A684E50896859C1DD87B51D090AD6FC0D661F14
+9EA1EDCD97EB9200E4DDC04356EC05453DA0DB84C558C55C3B7CD0C8DE5F511F
+733E0AD84D1FD19474D58338D2FC530F11FB36FC72D529B4992606CE8D623850
+20B07D3B2AC91C7538A52BBE3DF079B0AB4DCC1EA2D51E3CB6321D2F92769893
+3A7D0AAAFD015AB189C1BDC9F8AF96185865E66F633A6BD74DD553B1D1B0FB66
+89CAAE8C7D0DD7A7EDC1F49E143B5AC0851330E64239DB148910C96834F9570A
+65736B1E973E0DC7B65531B9A36DC5725058C466CAA1A4EF667FC9AA5A3707C8
+4D5543F8933E3DD5E0B1B8C242CA7E8892BBF6CCD481AAA99B96522FA77C1227
+A7534D02E08FCE557A93BE74E8084CFDC916566C47CDE46989517FCCA718AF98
+7FF243F5D75FAFA39D49DD87150D8F62F91A869F12F53790D0F5818DC6842E51
+26D98AD2B3A25B04D7E19D4198B02E57444DCC86D3C62FE9E0D7129DAD344D1B
+F4C1EC4C8B096311109F5EB48A5EC3F4931EA134388F2B46B99F58410BACB788
+F4470FB91C8118C2A0212D5F8A4024B3B6DCB37BD1D216056B1E8763A0669EE9
+76835BB2234E86EFE2D6E4D7D882BFCFFCF29D4C553195A130C956CBA0B0ECFD
+699D14A277369E5A7A5F4C482681A23FC8C7523E4BA4BA8383994007125A06B7
+C21068BB8946DC829473503EC92C873E63B9CB8631D76365C619F110AD5EBB28
+1D690D791B69BF643559E753FEE9A611815846A2F45699BA4F1768F162ABE615
+AD05C737E64E3E0E5E2A92A030D29051F74C8D6B2BC5308820EFA5FE40279C41
+1D21332BDFEA24AF7143192D6146D9AF64BF827FB2A23F7FC66D0656A986D477
+D98F41AFDB453C3C762E1D729DB377A01E9D22EFFE6E5F39ECF66FBAE371392D
+D04C813F16764D194F60629538745909675CC6B087275FEC0C6DA3970135F43B
+54B3DEAACE34F3F5DE1813D6E445D15E230277B91F47DA19539DD198A9349340
+5888F8D44F26AC106E9D7D7BDD133DD32CDD56736126A4CF401252BDA1C2240A
+AD1653664A317A99B117BE4840A7F8A03A329846A0B927ABD28ACBAFBAACC426
+6E78328BFC11F47BE45195B5692A4EDE6FFB01FE2AB1B2678C39EEA39C74C576
+BE5D26667013087FECF4D6E397B54EFD44FEFFCA1ED10D1CEB2093C8FF01718F
+6E420C769B60BC91D4A28EAA6DF03C61869E96146CA42FEF5EC2ECAC9C2B3DE2
+E43F86CEDFB029B5455503B63766C4EF624D9A04508DDBB5C38C0DE662AB1FD3
+31EF92E1C39C8B1DF11D00A4A0908A3F6000A3A7FCF6F73C5738AB3271A5B75E
+CE01D536CAE4D86FEA334727961F1AF27A454947C737B44A3F528520B60B6200
+E81554075F94FD00C4A0852F44068CD096BCA5D6D3703BB886B8B5EC9B9E3B0C
+D5CEB91337B3B3A9E5173C2ACD3A3E3AB4A1B9BFAE1054640DFABD1F6B0C22BF
+363CB43B26262AF3BF8DE092B180FDC6C9BF4ACDED6C3BD0F7BA3D3684EACD5B
+235E557FF4CF03FB3335E7EAD0846C5753C68E510670D6DAE77E0BA5101E5C89
+A68847444E4B6CBD8A1ED036AABD5C76D7902F1CC3AAB4B7F65AF3097F9BBFCC
+3D79313CDF148613C31E5DD7B1DD974EF7EA50EA012F77DC1067323AA92553C5
+DDD670D1C5CA695290DF0579EA6335F7E34EE8EEBB219B75706106A0F2554F5A
+7D26D6E4A642CD3CE3580C69784E95235F5356C99909494ADF969A3DB253DE9D
+EA60768AE4AEDA02B9AEC2033D7784083105148ABD3CFBC816EB988B01F652C5
+A8C74C5FDDBFA5A13FFAEC90C77D932A9C41578D7DC49B11AD98DF75E7B7304E
+30BC2E8E0281B6D2FD57D00DB836384BEFBA8F517F6DDD7F9E030019F27F237D
+E5DBD0DB7D3A0A8DD34842FCF33770454A12DF553220F15F8916F064CDFBF9EB
+67FC0BF6BEA776851431277A23D6228F6D4A51857B72E165FAEDA87B1631CE28
+E6B0827F64FDB35CF48AEE923C80B53AFB84169EF6F1574A5643BB76B7331024
+55A7F52F64A41052134BC5AD2DC092B21B033C1C4024B03B360799368594AECD
+C42D45591F9875D46D5EE20EE703F1AD1C205E45D9845AD224C7D3F0EBB66F78
+ED96C162CD2CE58B5C18BB5D7938E06A860F7211B8B38FE9B849F58F8E809489
+7C6579EFB9632A0911E28DBFA491BB655A7C2AA6A833CBE87E740D3D2C
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -2801,25 +4835,41 @@ A4E073756A2140A266B01B1D31253FA57BE714282F88960BAF37AA5DFE4FBBAE
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMTI10
-%!PS-AdobeFont-1.1: CMTI10 1.00B
-%%CreationDate: 1992 Feb 19 19:56:16
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMTI10 003.002
+%%Title: CMTI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTI10 known{/CMTI10 findfont dup/UniqueID known{dup
+/UniqueID get 5000828 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTI10 def
+/FontBBox {-35 -250 1124 750 }readonly def
+/UniqueID 5000828 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTI10.) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMTI10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
@@ -2841,154 +4891,330 @@ dup 116 /t put
dup 118 /v put
dup 120 /x put
readonly def
-/FontBBox{-163 -250 1146 969}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
-21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
-06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
-55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
-B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
-0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
-1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
-7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
-7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
-356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
-19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
-C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
-244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
-AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
-5C43C8942435D0AAA3D9055FF808F2C3C887A3C469BBD98F026D0A59E26BA9F9
-C2144CFE49A9AD892D4D31764F0AE3A10644AE3966B0A790684B14D11FA49785
-EC5565D2B2E584CBFD85125F3FAC133338DE35361943DCE9AF05FCF2840CE512
-998D42CBEC52B57B79DD63F00985881E8463396ADA47189A94DDF951A78866F0
-B8A3D9197E39335277EF2294308DA70065D910943A34F7D5F2090FB4AA42ED70
-CBA469A9F64B95A6FBA4BC89DBC93765E3AE4723162DF3F9D6BDE77DD5870ADE
-C8900D6346957B84C3CE88A8F9A12D46B8FCA50DF4433B0B8AED6A63B3DA102B
-6DF94E62408E24154BAAC66B2B249C695BC0FA37A28699D9C0F3EE94AA32E3C5
-8F8D7F803B5D25014D43A353D719B14B247A87898A960DF68C0C0BAF70C83917
-6E9F7B3ACC64DBAEF3FDCD3A80C0AB907EE342E543D607556CBE5A9089B86D1D
-E768F27D74A613F3ABF883222A8596B542EBF54E9DCE327B5682AEE5F6BCC38A
-2A052EC4018AE3189DC1963BA39ACDED8F0C60C83F8873FBBF0302010956C520
-A7F3F8ECD0F177EDF5F4D5522C5984A3678FF32EEEB570B69C142AB89467641F
-917155D646DAF3352E27BF2AA0746E062E48532256AF364EFC0F0AAE3766F68E
-89DF9AEAE43DE6B2E2EBCB666FB344286445FFA4714A341419C7FE51D43CF1B8
-01FC0B0071F73EA4FEB08FEAB64FC98F56EDA5E27B7A71F1F8E350BD94C093D5
-9A86175C46B78C65BD85BA347656778AEEBC81467970F644D32D6F2BF2A3F14A
-6B05DAE8858A02D212177F15DABAFB2961F2746D4C3176FDDB5AB9821C57C417
-0C8E0DC8B069090D8C95DCC3340643C68E5CFA60C3F41326579B869EA5D832D9
-85119A957DE314546187E8C4AD9841F42DCAE231C5FDDB483481FF29FDE695C8
-45FEC01A911F1390E3E3B80D59A30805601366FC0535E62E0CD9EAEBDE4DDEE0
-260B40C3F20D80944ADEBD496A4C82985FA55362CEF5AA91377F3E5E2C3300AA
-C24A28B5DE446EA56CE7173EA3A3983F8A39C1C04DC1117A9AD9EE90A6B0A6B8
-340651456ECDE53615252416539F5CDCC809BBEB1FD5312D83E683356670AACC
-97E95202657848F59D564FC6F4DD08792FCA977F09DBB0ECF3A57BAAC110DF24
-29AA33642650834A240116F984213A043B38FDC4922254789F951FE907B95881
-28B3CB8D33416E23168989E283ED3D01C5C17E9003676FE45C35E14DD10042EA
-F0BF9262955F512C16D95B55C2D976B6C7DCE0665C82C1DD66752A74B8FD4EB9
-4DD212B7A7A82D1BF4ECC2FDB00680D107B3074A5A0638699B86EDC52AB0875E
-CFECE6276446186B226D8ABEAA30EC5524F6A293EC01DF5EB1B8BD65A0318419
-F56652CDF1C7BA2189FA55A8BB75630F58A2270D573A2924C1A2EAF4DD3ED46D
-293711EDC9F95497CBC2BDB73C35A6D614CD8B871A29AB724F4C35CBB3E5E36F
-F2CA1079FCE485B94B0582B17E08B21165B8B0B367AD4468229996DFD88A3558
-F61AEB65C3D7B646F126C2C929ECF6BD3AC4156FFCA2D175D3DB61910F22E2DC
-D493751023913190A945A274AD2744258A3AA21C284F7EAAE53CA112EEE32E8D
-D70D543688BFEB944C697DF184161DAFA6198317774DF841E5378B44865A34F3
-C7870FC43F21B52364A0059F8660D55AA1D418CE4376F8EED12C015AD054E3DE
-623A8C6CC5278069D34FF8E0D5133B950CC5912E4EC8C3120F40D530110834CA
-E0A0C90F4432836A3C01B3D7021AE52E7F2E9796AE380979C80AC2210FDCAD6D
-65A099C762B1EA11F4FE055684CF3C449B2CD9ABCDC0FB3317BDB45EAF9707A8
-39DC9289C9F89EC6E79974B9A3FE62C3C0BA62D0EA6DEB3FCE1FF38170205011
-E76AEA346EAB416F39BF6AABED2DBEBD993520282AAA34077E2B21D5833D737F
-F92E8883D351BCE621BCF65DE21FE99467B4E3CBF022B6AE9886000212C69EB0
-8270823D46B390AAF582747D1E57BBB27F2B4461513125AC826B0181690AA46B
-0690E903DBD3FF7D23CBE2FA6FC2504342DB6797658DCEDBFD8C61D034694881
-71D7DECC437496E7E7408F465E945E28C544942CC0BCBC250D4E0AF14D9F81E7
-8D8521A893AB2DD7B456FF8F0DE426AF5F94CD626CE320AC8D2C0FB2DCBE346C
-E864950CE39F58A8EEEC66FB491B3BEF7A5ECC9F652C4560D46775E553FA3B14
-E8D88EE59D2C6C8940B4942478E6652113A7104EF9A7B7BF39BB1C85055C8647
-EA3F3EACEDC13EA0020326E111EE6CCE763B761A82853D626036DC1FC293B118
-F3054946D2123D595F452AA40E8DC325669DCBFDC3DC330932A4C4086A9D9FC0
-6A03D3B807D7FEB165869EA049BC841CB94F34FD3C00B7A355399ACDE83C51A8
-4C4506E7D670F49A5B21E249AB3E5347C17FB9AFFBD4D5423F62751DDE8BFBB0
-21967DE512591E181108649B113CC3E7319D61CF208F4E0011E79A8585532C37
-19CB1DE645A5B07C8AC0C5C55BCAC7E01F13F6544B428B6F3A7FE67509A14A35
-430CB295ECF49CB5D00DB6C14E60A164C8D8D83341AF9DD6250CCDA3845A29EE
-0BFA6D3B0820A5BDDAC9680EABF26A5EBDCE9CD54ECB820F2590BDEA36BBEB23
-F12CD662ABAC43B4096ADDFDB6E0BDD31E07D3DF37A72F0BD72DA2BDDBD756FD
-A52D351EDA9FC8B39BA1CFDABFF5B7B061E8435486ECA0ACACBC4917CDB9D4C7
-6D81CC1A9FEE75EA765B4F20F511F271B5B4E054E02CA7FF5990BAE4D271C5DA
-ED2E796B32B7015493512F81B910B5795D38DAFF64928CABBBE031E92B1C08A2
-86F2C1F68FDE286FAF7CA74C9913385D739262D5C06EF73A1C3976698F51D2D0
-F858984D2BCA7941D2181C99A7C33B65A17B6A1C02CCFDB9A23D0E3E729B85AB
-405830E2D06B2B35EB265900DDBDBE125C0F82613FF98CF49E7294F3ECF414DF
-EA84248C22A561477861EA75492743C4FB8935D446A121FD8F60AC14C61DB254
-07FBDDA07CDD853AFE99EB5B54C3F89503040DB85714CD95725D3344C5131B3A
-5330021B809B995E123E060CCDAB57183CA09E554E8145887E80EF7AF58835C7
-D6F5A4E695551D4CABDDF5E90DB51A41110BAB360EFED144A6699F00FE3023A7
-CF7AA2055BC8D55C67DE8128527AE31D9130E5EA7A07BF2067CB108127BD8C5A
-B6D325A6415EA9C20C5702A1A58725A385F69BFDAD14B6C21D2CF73A77E68713
-45DB838A412DEA0D0575D6DD2B7A1650BCAB58E5BEEAAEADA39023C2CB326512
-E8D89107960E19213BA4C18929C09C2EF5E216F2DF15FEE3D68E2D3253FF0FBD
-0B1E09E63EE47A6EEE92F79FB4D3382AE21F7C7FE24C1C5E28B6BABB761FB9D6
-6BFBB74E0A29FBF106DC542DA56E84B1DA7EF89DC9EE90B6421CD0C69FBD7850
-5C5D461310A26AD4E91563CEBD727B0E327E5DE3DCF1DC53974B5D47D21B8B6B
-A91C05685BC0AA35709BD3DBE8AA91F9ACA6A1091EF4CD5336C76543A1EBDE83
-ADA5206DA79094F67BA57B508073ED36029A5472EABADE8DD76CDC578827DE8F
-A92896430254C0A2DB513EF6A5B619880926C0039ECBED0ED9CB4EE2DDAE7B38
-39633206926DB7589EDA69A409B9F6A0E691DEB2B7EA4069C5689F1FF2B73AFD
-1EB302099183F5611D5AB1027B7D970DB28B621E67936ED0EB201A048BA1310F
-7F4401234B19FD34674B851E635A1621C15A1F4D1232ABFF7B1E145F6DD8E603
-38F1A2487B742AE67F4773B3C595A7602247DA7CB4C6F8A9963F63DC09E6A532
-BFE5F5AEC47992B8813ADD822CB3E731940A8BA3B39C01EA2A935A6BD453D655
-B1A11B3107D196A5760ED2E4E1B4C61D3EB276FFF61DB628695CC6902CC3C708
-8196E3165A0CCEAF5352D3B7555D83E6D0377C325B1224E86930040F3FF47DE6
-F5EDB77FE09A3F8D39A0783B2E8739D9D8EC76F0C846C32259C8691118E67475
-10470154D3B6B35E4C6EAE6A5898313E55DB0625A3F92E755393AD5D51E40955
-BB5373BB842E80B0EFC3C4B3783B980952E871730DFC94056E093072869C14EE
-3E722BB2801C8BDF3C0EA18C7DB3AF8EFFA64FFC28094D2EFE57DD02F4C7D576
-977D9AF960A3C79C3B3C95AA5F3FF4D9E1DD7C1E2470351296F1D2D0C68911FF
-26B3C4F5CA46BB694244554CAC720E1D1CF66F68E9E1E0502773AE3D5C317A98
-4B08881BF4D931E1D2C6FB39D8C04F4149F003C846D7EAF1474FB8CBE9E3A93A
-AF8A65A5B4ED2D2011B60C4F48FC91A030D6C6977159AA76838B6CE596A6DA92
-BE1B1D3A9C2BAB9EEC1E32D810DAED8AB3AC500BADBC03B357DF6AB8DD95FF22
-499BA619627A9BE8F803F331C95AA64A1FEF457C96012068637F7DB1AA4A2B43
-17285FE41B2109E3CB752413933E04292449CAA9DF8502E55C808BC2DF3F2B1E
-0F0167D66371E6FDE932B77C478BE64124158C7D3EB2AEB7C1138C51F9BBE4BC
-27DFC04D1C87B422709024AE639FFE87EBC03AF0AABDEA9A836EF77CFA0F60E3
-EF2FD1967D178827C85ED92D08F44642EE15D547DE067DF3F432FB557BA6D162
-3F3575BB854DA9FE02C7C4E06A75AF13A4924D144C3A91FFCE9BC2FC878259F1
-7C4051FAC31F1FF13A2D088C72F3B1EB03618B2D0E620759C1DD37D171EAE046
-5A51AFAD8ED2A7A18FEF4B4A16AC12CD92233007E2C48FAEEB1501A3F82AAC62
-FA3A83A70653EB36D237C23B37B1E2A549C50C9D51DF8A737E422ABA9C1CE63F
-862BB06BC0134FC43658008E3F5D40C55FE92AABDE7B3AE6546AC1C37D2BE0AE
-6C870FB22D5A744126A34AA7F426CF2E74F3F7443373615FA9A530BE5B4A57C3
-8E650A8B155FF8620F458F0CD87841A4F41587578F5A420D7CE90C6449BBD6D8
-0BCBD039A4A03E6CE6E02B2D31F544DED20D9BB03A1E50D6CA679011844C452B
-96CDD80B67CC95C6B760A2A59A74FE37695ACD1673AC17ACA5F27AECAF921931
-47C905266992CE1E53677854D6111E787550717D74C93AC6C9DCD8F559AAA559
-1ABD98B9B1956E4CBEB9CEC3A1BC1AE6C45106A6BC2D86216DBBD7F953E5B271
-465D5DB891CF5571745CF32CFE0A52526B8215DD9F165D7A53820F1E089DF84B
-2EACF3C25DD708843DB319888186D4279DAF34DBC50FA97E4EA0D3F297578140
-5267C8EE6AFBA8C1598B4263100DF52D3897010A429BC15498C9F9C181542201
-488922DA2077CD26BBC5477430B2F06C629A2E720632D6812E3A606A650CD38E
-BC8828E1E37395FE0283B71451A0E94E16D8CC642AE498A191E7135C383F7742
-57200F56FCA40362072E3DE4957842C710AEFCB4F8830C4912EA5032E8EECDB2
-4C1CA969FFBDF37966A782DC92A0C8D1D9024A7F6131C1CEB3B458A8EB69C008
-9319C05A1AEFDE3BB663FB9174B94FEED60F6D914DAB5029DAF2F3A8131CD499
-5A74469662E126B9B000D5EC348452DE795677ABAB9089FDEB1B27B2E2E5E4F1
-B31E25B11D4B4C4E73499070249B16C0344FFBA87CD10A44A1E9E9F2962CC186
-78739D31823C2DE468D1FBB9849CC92F18B5FBE9DD385576A54215DF9339D5B8
-3AB66E902E43732750DA2F57F9F6C928C84E1B6ED12FBEADAFCC659E571F7D8D
-2B9121C134EB9FEE6FAF9C46D29AC24EB5592C9EEC5BF4140E8BBAF20422E47F
-A16A7BD43A6DA305A9FEC0A4BF7237AE50572766B27A0A2A4AAD47465B50D487
-BF9FC09B1680AAF48203C0C0
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57C5FD29DA32D34C95E
+2AB2ADB3F60EEB0600C8ADE15A2380DE10AC5AAD585FBD13097B1A7E8E210D4A
+EE96785449E07F0C8EBC2EC5EFBFD0897DFDC15E5BFAC9584D8DE95C5AB288CD
+8AD8B9BEF0B8E5F887B3B0B331542FC8184DCCB753DB6ACEEF98B85756B988DF
+CAF1AE0DBE7D37D5F44A2E760AAE3A5197C27B15E32275A64946C3E4D0476FD2
+7FDE148C788DD2106F7C825E270588AC05B57E625AB17BDD02306F9E5FC851DC
+32A5A6EDC43C770A71419B2C0C8074EF3F222C8A2097CD81A91F333A521B3A09
+482A4FE1CB231CE344AD126AA284C3280AAC3AD162CF0EE241BFB4C8F20502FF
+118507F5D1B5FD898571015E73E5CF2281085072E00D401F6F59761EEC3E8381
+1F26F75DB66C504AB6BABA87D121B1E7040A07AA2FE01F80DBC246CC03C4B2DC
+C2A715980C52B7F96BC1A78FCC7F4F52EEED5F705E08FC1E5BBFCAD121FA88AA
+8EBE58172C162AF409DBB0728F14923ED02A65EA24E5D52B6AD07777455A70A4
+61833D3789C719BA92E901232599767E423D5AD9C807670BE0E7B5CFF8256A20
+C7BF7214FFE0342809570F5966A2C43E784F35015D9040BA34FEAB6A6F089504
+3A40A9E9D711A2721D3F4998371430FB3C94BFC619559B97D49627BB630F4B70
+9D0A8FE4E916235335C3962F3CFDB04C4A3CF714DB5E260F4E66FFF2F27CEF2A
+D4AA26BBCAED23B8BDC98F8F453BA27AD7758537561E766B82DC3032E92A9EB0
+125D98A22C5466AF069BF72A9BFA052A8628FEC6A6AD0B711DFFEDE3AA2D7CE8
+34EA487038EF50F953B8B4471CBA6FC3C53877EC1BC94582B1123EDF44B4056A
+30F49394BDE22CDAD7F01951C7013D26979277D18EFA594E8F4F2B5E615187D9
+39E842EC28461B9ABA52020A127D2CB9002A673A435B13C10602EEFDBBA6BD49
+9DDEAB9E68D655443A5C2492BA061C1391A51592BA8C353A6F6A0708E8860184
+2B5D031D2CAB87D618E9F6F7A0BF3F66B3FD5A25BB91F7F1F5F99CFF56EFF4FF
+0A35C55658001ED2E97B26C869292F6274D433A5443179DBB8EE987196306348
+3F9E87C6422AFFDD30080C9AC4EE7FE5E2DCBFEE4974331F4AAE479FD8806D4D
+9C2B85FC69EB0453AD827A1E767E5C484BDFBF5C8D6E2B3C96298B390F22D757
+802643A79D5E29CF3AEDF0E12CFBECA4663444FC87F2027571DBA9ECF688BF28
+FF0DDB3AEDBA0FB28447CB4B5D5205F40C1E7A525FD7373392EEFFD910AC82D0
+98E71660A1B3227C4A2592F3E853CA4CDF64DF19A52582E167234F4036FAAAB9
+5446BE102DE2BF43E82F0112C2A20F15A3F92C6571AC761665A905362C4F8BDF
+AC8705519C99862CD9C0D75113C4AB5FBB83C880E46B82715B5628890D9103AD
+A2329638B95D93C4DECDC5E6C588C9D5183EE6FC28FAF9825F02DCA567306D93
+5440987A81B51EE7291107A08F201C609FEF91A8F0587E8B13D4BAF74A5A6815
+DE9E4441F46AF8E1DDDFA2D611C889614040B144A5EC064DEE4638C04EAB2E37
+4CA8F50FB8C4D65BB296DCCCD39F1F554CFBED96670A91F515CA10EF896874BC
+8EF48C6447752C70FF5A06F928DB55586354076773BFF7E94C4C3A7A1C1F421B
+A9B4E3936EC26E0C19BBBFC90F021E877F54B62108F6DD1C7F6D5B8E64FC9362
+E173F01BF2904B7E5A08B3543611562C2714099DE7D4FA330DB148B560A9601F
+42A84452811CE213DCE782A0D7809CFD954D6BC1EBF2BA4D1B18F50FA8174C96
+3E0120E266AD5DDB40B3F6798AC28CDC5C3C4BC34583528F5B5DC8A222B80B59
+A3A93DC715D061EC6915E6E6E21A25425C25E8747C60F170D61047108826F96F
+7830E220C108B441B6EA3198E33C49BAD8D43086E49F5A2BC7958A1A8CD011C4
+49045193394696EC3DDD0BE084E8F2E9F0B9496F035C0DEC1CE11409DF566428
+D50043CFF5CDD1092F6E0807E660B68163BCA738E8D98FC6EE3F713164CD204C
+0BA84FFF4F33F47BC31750B448603D7ADB9AE92FA91AEBBBEC0DCD66980E6955
+CEB425ED07115B24E40F53B29B9D840842EAC691B4F591F866DF27556474B485
+1C6F53DD72499847109B16C7093984A6B8487D4F3870DD517945CD90E648C1BB
+8A6861E540FCF9D75B984B5009B5CC760CBE297042C240DD624111670B703388
+6FE6FC0E89C6B4C88F51DFF3913D0CC1FB4770C8CBEADD4B86393605C0B6C468
+83CA5594754411B6FC331EF56D7CD6D247FAE42E966583C29239A8F862348D29
+60B177984B6B957E733DB4D275015691D91443BBB13C2DA96097A29733CDB284
+42F89C85A7A743338C9DD3BBC4EE53F695E5163E6E1ABE5791ABF100B198B9B2
+1C21E2FA2FB4AFE7F9BB2D381260CDD3A2CC05BF513AA1E80ED69FA27BC5ED5A
+21445BF00BC2F997B356D94AF13736C6D3B0613EB6F4CD96A685FEB672661DCA
+206105EDC3CA07900676EB2FAB37F48D2E8207BDE1463894DA3C5B1488AC1EE9
+D39DAF691648048F5D7A384B8927F8DA2BE3602669F71D80686E427F395134E7
+7ADCC611BA91AD4B7A0237213C60CF2C905359C90795230344FC3C50A22BD44B
+55B2044792509F50F5C21F53D9F9E9F063ADBED3AB99E2613B23334FE8DF70B4
+6120F2EDF69F50BE793EE145B9FF9C73179DE640FC2ACEB5C6617F918CEEB762
+4CD81E665B2E544864D13230B058717B207D3CC5D6647D5343DB4D0356082392
+871EFFA896631A7E0D6477942B632074A9A4EF7B09D4701B1639BAAB4E03A40E
+9B54A7A4F845CD63F88831EBFA4FB847847CB98F3455CB5957F2E0A0F5623645
+DBB5C5564C7F8B117D6E27E65C0F3EA81AE67B4AE4B201E7C4FB0A8364FE53F5
+41A7CE8F834C2C4B322809B353A5E63BBA7BF3B7DC1A85EA700BD287C2BD3FC8
+2832B0BB4695FC937FF5EF06FCD87DCE6DE793C2B1EE10E6450352C17726155F
+220D550B1759E15AB2C1D5968E52C8080CD280E99D3CCC0E80C2EF8BBFD96001
+A226FEED7311EFB4B67F424B557A877379A15BCA54780F0CD2CCA00400B9B39D
+981C6B552AFD2506D1B23618FA9AE6D8143CD7198A8482CB416CCE62B992347F
+337D505A4078713BBD91E5535BD58EF0351EBDCD749CC24D4AD39F8CECD7D6C8
+139756680A4C03A58B3374CEC658D30160AE4863A3938A891BB59CBE02BB451B
+1BA4B2B6E68AB61DEB85F95E3C909B8B66E220B9F18280161C279F10F7093CDC
+100A53D542F071CC0A5AF834DC1D18738F5DD62A5573E884E1FFD22BD810828A
+1EA47F8218C15A2E97CBC609927DA3CC2B802EA4A0D7EB57627C135E3B065905
+F97597D818A2C5CC6F328AD25AD11FA50F1E4FE637980B7474D6F85A521892FB
+72989AABEBE02A2D0EFE88A6F67AC29F5D8DDFEDAAF465C439983C6B84389FF7
+A6434462BEB7B07DBE4BBA61ACD4A60C55B5C0AAE527DE381DFECA2E6BAFDC8D
+310364ECB42CAFF72BA93C067B2F02D1CA7C34AE7CDC46787A0E234C8BE8A928
+7A6F3DDE0338FAD532A9886E8E3525B85DD39364AB03EC4C0DD25DC179CC1989
+1BE232E387E857C78332D834679195E10F1E7B87B7966DA3B2238F53D1E13FE2
+8F55ED6A92A750C7250C9B91E29796621E7E9520373214D7DA81B2875A986D33
+80382AFF6DE1F829F048E57664D9C4ACE91E4684A51023943A4964AB5657D610
+3A5405EFD4CFD1EBA684243E15093C9667797BB47617B66054EE02C41FFEC45C
+C1BAE8AD56B00D323FCB1D2744F061FA16E161988741A319B1564E04BA210996
+4F9F02A3268CABE450D166A763F5284954564A1C86B76544C5F5ACDFE0D758DB
+865A1CFCF9FE8CD5F9C3B2998C56468FD52DF8EE60C6935A3D221EAEC7714E3B
+301371C7DDA0B03A2416238F2B47BAD3A2C5021C886DF51C695AF9C87A864B48
+3BB3FE0B355EED5454B59B25A0D8A1B8CBD356C24F64D9B55E16C30C011365C9
+1E0380753BA3EDC0868788D5F50B9353D0227BCEE1BE36998B2622C0759BD66B
+E4444250589F9CEDE766D8B940770CB6B89503E925B35C00CBEC2873D2DC4A29
+0823FB7A3717B69A7DEDBAAECC067949932728E89BEECAA91DE3AF9BF070B9C0
+30EEFA8C0A55C8388CAA2F0515915C98E67FA095BB98967D14B0DCAFA9622E4E
+2E0EBFC768D80585ACDF28D8A5C2B6EE2FE7AAF62FFB90F569F84A0903996DF0
+C1D5723366C436E4088F3E2BB9B47F9789052A71CF5C49908CDC1DDA194BFB89
+14D7E3D7D4D72A150FD6FFD8303E9DE5A97A71B808B8BDF2AE466F31BF5D7A4A
+44F81230BBE2B456A221E2F72A8B59F8FEA8D31F8A005A5BD93B9F49CFDC3DCC
+CE2B67090460F632271C7157BDC2F05BC2749FD562FC28682A616A52D1B67654
+DF78B7843A9EC26A7DE2EB168F874904C2915B97534B2D4D9F74A9573A771D34
+9F7BC855E8F794621BF6AD471BCC347E2DF5F620F5C209E33A4CBF1EA85AEA87
+4492A77342DD33EF615FF34037D660B713C908786D9022051B825226545827A3
+2AD1B05D654DB6E6D261B4E8AF0933AD1F0FCFC7201E1A7C1B4199F160C38676
+21ABA2DDF1CEB655B3EC3226E0B122976EEA998F7A5241F062E54AD1DFD6ED26
+47C99A439E0AE95415059179867CDD3F0FF751F3141309F40E00A6C7C28433E4
+F649BCD5DAA64177580E05C495EE7BCBCC5FBF104DAF360CC2711386655B26F9
+D349D887EEB32ADE595241560FD5924A1745A22E6A01DB9C285EF14596EBFF0F
+03F36EB2E0A7C3864F819EF7B0855121292D49482F046A55CD7271FE03F02EA5
+886864D9D8EC22A68C23089EAEFFF03DED6484D8C341861EF8B6FD3C5BDF5AC8
+352DA4E13A1E30D0CB71E090E9CFB9AB2CAFD0CA7C34AE7D8E3B2EB4666834BD
+9CCD1AC2108348AFEF6071796F4BB2FFA4A67ED917E76A109FA2DC2A30D744A0
+9AE653A748C1D18FB52595D84E87F1C1FB6B2F32667FE203262C66627AEFFED3
+92B23861E5EB238BB4EDCE09DAE1C65BAFC198CDD1B45D42CDF93E16BB82D35F
+821E9E49067E966AFAB2AB52928F8DD6359984071FC37AA652FB834A09E5BD93
+3AFAE161140E74C6531E413E8FBBFC42BFE8A464B71EB1D8CAA93B33D7BCC3B0
+47C7EEFCD3E9FCF26FF9441DD9BDE68D77AD7251C06BBB9A2103049E8827CAF0
+F26BEF33F656A690235DEEC623CC519AFA82DE2AE16FB99F780FD7D8290DA40B
+9B604AEF36B529FD184239E7D50561A07428D28E51B55546590A1AEAD4B7F2B1
+AB8C5B9022C1FA03E33F8F409B24911AB8BFCF6EF4A8E415263C789F89063E71
+C0910DC20347469380B7FC1EEB87D4CED7F4A361E58B61C91AFCABA35C03F978
+B9FB5257C31657EE48504C355CE893FE3C553274C641DBC4004F5D5B879CC5ED
+D3F21F867F6DF054127067DE86189F0B59A1B90FDABCDFEE61423609D888EEFD
+F4A1367129962110C651D9481CEDDB8C5C2576A59AED64E95F7ED042AEAE2F7E
+81AC0C408E593DC30DCAC334EDE9EE27D932B98F040DDCD195D6155607DD2038
+970EB78221A94C52BD4F0EAC65F1FC10E5DAA93C17266F351669CAE56F42B68C
+6D01E1EA03AE554D63CE76D800FDD9CFD89F80A241EAEFF7EDFA41794EA25CE7
+97BD5028464D2CD45B53834B4AEF8BF0B9E7C6ECDEACEC887E8790A47A93F668
+A9095E5FA1116A122C0E5B74E2226C654D3187C6CFD8807917820423DA3EC1DE
+AA020EEEF2280C44A15209EE2F3FC1776875308CEAD38571E7BF889F287E4594
+971A83605E0B4169D4A23EE790515223DF8724054EDAD905F57918FC0BC64F96
+514B4BF7DC9BA79E763C22C977FB6146B10D26FEA1BAA7BAF21312F78D1625A7
+8E242D743471DB5821408AB786E4A7EA9D35E30E85533C617689F95758FB2C7C
+392E759C299DCCE36689686DE0C4DCE32649493650BA194A6208C5EAB670B170
+3F2C70BF0EF0E3BE2FB0A79224FF4ECECD6BB3388C6D06867A0E5E3DB93C1B2F
+464C23E44D3132E7D4086E3B59B1D13F49EB4772DEDF8EDC4F603217233FB7BE
+C13C28648E9AA51D53F11FB896839F97AEDD8834BCA53CB0021AE91FD8E95E2E
+F8A094093AF556B9639F508A401542B06821FF9DE1A745FE9AC5CACD5E8E1053
+911442FC15CA5333751ABFE2C617D38FA1DC332BFEF44AE569DC631C93EC54D6
+261583A695F5A392867A57F59B741EFCD2DCFECBC55D1EA5F2317601C9DFE9ED
+D1EA466210FFA905A8F85BD58B98991BEA58DFD1CDED5C9B086D42CCE632DADA
+147941917B879139E016B0DDEB8446BA017FC8EE5A354533D667B0835F5D027D
+C2D580C16B80B3D05CC92C0465CAE077729F0A15B2DAFC89DCD349B3F81D0516
+C65526EB5C10E45A8A85D716EE35FB9AB201FD7C89ADE5AD925A174169DA20FB
+61E96C73A143DF964C20589EF24A0FCFE6195317F2FA0D2249C0D8E649C3D9AD
+FF13332EA2E4C9CD36D8443EC8F027B61CEF92C6A6B72DD4ACBACC16E429A9A3
+F5F29C1631360E32F8C1C93ACB22F810B86D2969A7480F486F62F8488BEEC74C
+2C1AF13BB92BC578E8CD30BEA6BC8CB68ED730F54CED0167605FA76AD7B7E88C
+7AE7688E598F91C471BD65A542E96D64B1EAF19FB4F1234308C48C2DC86E2193
+11ABDB4C6189C6F201627C693691A86DD07FF55C30FDB3F72381E09C6080FD7C
+9182762E5001E30F52A216E0B71E4D2D4E2F3B20F95DF3A11FDB2D2B5B5FAA66
+C46226D5E0C77066349770514E5675550FAC9394FB27CD2C2F974F1FD58C04A3
+1EF53A8AB3B2202CCA1CEFA66228E1480A0709436C44BD3319C40CF888AE4692
+5DBBB52B15CF3A518F627F672135A24D5DB9B2EBEF04C860AECF231EBB5A3BF5
+6DCCD5E72FE4B6DD29E896691868A7DE4120AD06AC573F5608B8449B38E71CA0
+EB5CDA3F942482EA7973661170F81DC88D54DD5B92323F46F833DFA757107E9E
+F62A47CC50FAA1B68ED535C3E0E1073532A05ED339C8D70B3B9864808ABACD23
+AA95E9FDA43D54C66A675FA074E0A5B8777D3C07850A09087F36852B5351F35D
+8BC4DDFCA35CF29CD5E3DE118A741FAC4DED36847F2E2C6CFE08669301722D94
+376F540982958074E7F1383C409652F6C99DA39FE90B38221E75BC1ECB93ABF6
+B00F410A0C5651DB418566AB350FDA1789AFD88286AF3BCB42B98386F7BC144B
+02DEB8940D20A6B3062F0C4244EABC50923390064F1D027A8BACC3DE45156E56
+4A942D1B87F1C4A76B0D4D6801AE792CCAE3009BF25368B31B6AD5476FBD3BFF
+9759EF463EF5E78E10B7BF64005B2ABE0E8813950A08A1808587A98E0021D0DD
+751AD515E8278F1A0759E85D8A084490BBB0F8206484AA36388B1013643D3198
+3509078847BDAE08E76FA5BF3E3A73C323CE093DCC148E3C02C2DE1E26C94D5A
+40EC8308ECB02FF7DD04EC1005A2A0DC74D4E587F10A3EF349E828F69FD38962
+2F0C74D5DAB3ED6CC9F97008ACCE74C086A503948DEF1AAF58FC8BEC703CD360
+D32098A56AC776B1BD08442052A2A4EF6C8798F7CDC102AF1A2009657254762A
+0793F79A39DCD6ADBAA5EC84A7ED6018BBE727E5D477893D84F157074B24C13E
+8D4881C7DF8ADC13EBA0D89745EF93B7616EC5355600BB0D2B630AABA3CF2946
+AFFD0B2B724EF0F28393F2034B2E69DA5061426805353EB4D80E20739BC4C510
+6C45275B8261DCBA10DE1D104B12F46ACD230977EE7D7D1D35D2814139E38C4B
+CA6937CCFA653349B1EF64A98457F7B4B5D8F2978F16ECCEF7054905863AA46E
+DD524CB33459220C71E9EFA7845A3A760A507B3D3ABC525B35930B613710A13D
+098832C58EBBC8B0CA6AD516E6385792C59220331D0922A1F6F838A8DE13C337
+900462F952EABBDC2EB1FBF94A66186C177501453CD3FE3582073DD86F04406B
+41B6AEB440DA475E13240445D46726A6D45185D56BAB8807CEC8A8F7CE1AD149
+7CE2E1BB5DE4E5B9592241DD136479A65905FD0062C91DFF7349874BFEA5D9EA
+2F610ADB9AE7757B2307A1BB9D6797D9F9C4844A59841C7C7682105E23A374BC
+A91885E7410F56F60C29AB8B417E2D6092F8BB70A2DD5DEDD4BA1077D7CC62FD
+EA43428C6F79C332342E15F75B08A1ED360B3511F823E75AD49BA7AE63B19238
+2AFE8FAC2715E2FDC895E95036D23127557837506A3B542B0E4651CE2B89C252
+31EE8ADC26E2C04E8E30A9CA12F066CE01953BE7867171FF6C7E834742C36C3B
+58E74E4B482CB85FD4D24DB03D753F260A585D552CDC9E1941446F2F5B45FF24
+2DA4932B973139F328E7E92828B900BFD398B6F41DAA0D6861C66AA7F5E3299C
+87A5925CE0E0F9E09AAE0792954A1F2C0AAA8288DEEFFE579E38A3CE8A943EB4
+55322A87C1634074EBEC25F724DC1BCC1BC10458CA6C4395659B0DB6B612C151
+557CC669D8DC37769E59A5AC6BF061C79FEE265DBB59520EB8FFEA273601D1E8
+2984B8AE31AE343F37D03E2BF97DC48AFE50BB6138C7B9F9B5E28672A37BD8F5
+8F8C98DC43DB22C6537028798198E2D3B0453ED72487267D653DD50F1BBBDA92
+833A987A95FC1F275B90B581B4BB62B6863A4CFAE37F715EDF3EA5A33679FEB6
+4847ABB4B3D170C275B9F1AC3156D731198DACE0B051674E85B758500AC9FBEE
+ECC75EBBD85F8D62AAA328FB09C6526F853077AEF7EFBFC2B6A29D6D508B1E19
+EAFA4C67EEE44045B9F15B9762B3DDF5CE5C18B23A5C2F73A1F6DF7F8679AB78
+843AA41FD2A7DC02B45B729EB76C66A89F5F76E5C4A0C0563B1EC5E75D72EE35
+A7F1FC89216B60D82F6F2B8DBE85E4FF4D63712C689E696F60B52AB622C2A4F9
+37C380775EDB72638D3F81F61D8D74C76D813DDFFF35ABD9A502F2BC7FF65754
+2A8660A5A53E0CDC2E8A95B6E33CA153EB711DC796D313C8183D707D3F0E3EE8
+BA65E0FCE3F1C07F3D93F77056688B5496AE35A6BA0B59619DE78640A8C3F7D9
+7DC5E94894E1E63A7D80600B945B1CCA50F1B85F57673C6CE09EFC4E229D4635
+48AB466118D273BAF7C1B52A067A88C00EBFA7FCB378F1575BC0145F294E6F7F
+8007602C6560476FA20BDB91831B22404DB1C4C167594B1216C25226D262FEC6
+F5D0DBAC4B8D743C669CFF2068CB9BCD2DAE8CD6EE1B33BBF7514C4E5EA79D46
+11AAEEA72B791C22A1822E686F3858E95A37D9CEF904EDEC7EBFB0E60995CF64
+57CF0EAAE6D4925126349DE06E101868BED82BB51E911852E6780772912570AF
+CD5690C6DA70110DD9903BAA3BAD581D206571D1E57712C75D112254C7A3DC8C
+892B66CA346EE682E7D910343C1CCD07465D9E49489839BEDA6174FB2E0DB935
+2D2CBA6B67ADDA1BAA6A51690A10C819692C9BD35BDC689F9DEFEA78BFE79C47
+C9CCFB3D04D20F1D3E0B73498FC0BDC50A3BA6DDB3FAB9458803BB26487C1397
+511717CA3493A7590E27B34C2E2E1BE2ED884CAFD5F7C185CD6EDA68951673D6
+384E6CD12944F86D178E73C8D78D9048A5B1E2FCB489E723F8178F842B362BC9
+F3E4D511B369670908B2C8087AA29F8B592B8AF7018311C0F12A8D45A3625096
+D4C88B19890571C60821F38310685F8DEE7A7A5D209265986F92AAF11143DC85
+F435BC210621851001B6A402E3A07D0F204A3B0D75DA3CD7FF6637D1F434B962
+F404DB3C6BC318EF517AA0836A975C5196976250B5D6B21DF528FB47181F5279
+E1EEBBA0F344D7EABE71904B5C1DB0FD07694C469085D50DF4990E294334E785
+5E5BCC4ADCD38685147CE535B23F3027AAC01A0D65AC751D9CA289B4A8906A64
+165427976FE6FD699442196B0C247C960C9086AB2E440885D2C32FFC5FC7105F
+6C40A76A1968AADBBAD6F3C21FBC076F4F67DE62E1CECD38BE03720FFA886743
+846FFD2005F85371FFB9C962AE2D88586DC9DA2F98996DF8572551C3D49E1ED4
+41248FA76E07B2A5CB9C3451247F60C7AA164ED895CD6290427E828A7FB72F71
+7CC249C92A012C0FE99FC07EE7E084E190CCCB95E66A39EAFA7934598C69F04C
+68B2C68DF99ADB347AB05F1905B8704A51FBF9471FB20CCD3CC87EF9FD75DDDE
+125EA68997DDE4174DFA0ADA2664E7209E4EA1B460CBDFA79D033D33FA9C5075
+DB424689F927F06ADB87DF0C3F4600ADC9CDB197E41430047247E7645A0AAFFE
+750AA1A154498C0B5371ADB099C1E273DE2E367DDE7ADEC2CAF9406A67585AB0
+D39F051BC556A8E569AB9EA4E69557A1DFCB8CD459403A616821AC61E35DE1E9
+2673435E5969EE48F3B9F9777E5F70C682FB7C10E6E7FAC5F5732C9EC2DEFD5F
+9A28572ACC62C108861AB22894979195B88E6A08A533629295A58643F854BC9E
+082F9073AC94EE08DC1CFC626DE4D341D7994178E708D4D8226897B54CC2B4DE
+B37D5BEDC430404177977EEEFD7201713AC45FE927D4FBA0F2613A2FBCF890C1
+908E1DBCCD277E78E42363374E103BBD6C3DAD925A9422469648B9D8BE7391F6
+B448994EA40AF3A3EA7E6E938D0F93B9EBB4E09B5D2E8D9ABF1F4AAEE8A0A304
+EDBA6DF569ECD449FF362660B11DE8A13A71C6C8186273C7417C4572DDD8B993
+C96289B16223B271D026929B2CB9D3AB7A3511F09C6F303A7006705482E9AEF4
+FC76BC1B1FD42095857751315F5B06701E774FF08920342667E99EBBF5A19210
+9AAEDC8033E06007AA89BEFA5A1616095A8E90C999BC3EB266879EDE7D1218F1
+3CB238D180C463AAF853E315CA564247B6E029D8200B9DB7B13EAE09264A5DD1
+4A080EAEDA74C7FD21BB208FD8EBEC1D650C0AE392C67D65C1773A68F2CA313C
+15FE2E4A0B6E7DA9CE391BF6D854431F0EEB550A818B6B95EFE6F72504AF5CE9
+73DC8E3326E2E57F4031688F10D1C272D41AB40B7EBA371ED357E67C31DBFDA0
+B8412EDBFBC2B6F26FD7331BC965DDFB1A4A17B72BB94338283A8D9139B9816F
+D13C12E07B69E9FBD0C5FA9B1DAC2E51324695102DAAFA746D969E5F64980707
+228DA50443B2917FF685F5872D782CA265734036B7A7D75588C638AB9687D34D
+D0221C0B3EB0A8DFE91598F07CE2C35E1C4E01E26D0358841EDADA02D3844B26
+C39D492C480244124F422EFE57D38DD912EC98582F05C74B4ED83BE81C363376
+B816F23D10C5C8CA831E1351F3BF914B07F638FA5712A1E05E3B751E756296C9
+2FF074FFC22CFC383804A92057155C4E43FA4990734C83257E810F3C2A62F42C
+B5328A41BE80C23F49479EF84BA8D13BF3A45EC435781B9480659A4D58041190
+3DA62807723CDF1EE71EFA22BB67887DA88EB20DDC0D1A36A75C06BBA651DE67
+651BB57824E4F5264DEAA04927D2A29730B7293E08FE3FAE5FF493EDDC0F2232
+9476F3CA26707E823808329390EC9D8913AAC2D8DF2A6B5673E1A0F4E7E67C9A
+D006E7DD429BCC550DF7323DAB781F82A837C83C80DDB8970CE699153576ABD7
+4BA82C753C82F19E30B853DD086DB119C48ADA56C39352E3C6B1FA232390BA3D
+02482A6B845C324593FF845A572E1F026941AE3DDBFF83E8230FD5214B631EDC
+69E178C52B5FB4BFF0C89B756E759147596D038850F0A468B20163093F8BADE8
+FB0F718C66D82C41A29EBEC417DE0B72C4F8E746EEEA33F2BFC0063E2514456D
+6EC34CA68E1C667D47FB582C3A259AF4D0859C68AAC0E5F89CC91A1F508CE835
+E29B7860E6484F8B0D75C1635A32FDE55F119C8222A5D00D9C45930C9F5C97BE
+A28EFB48BEF95ABD910E66CBC4C34AF6299A84CA55F780A013E8B3DBC4E57F2A
+1EEE358D24775DEC537CEE09212EB3208E497330427706696335F03BA50BD193
+E022E668C6602731D51102FB7BBBF43A630BC428FCE711882EFE6E7739DC10BB
+63B60272DE6FE4841F7728EA80F871F1648E3478DA71BF29F66FC3565AC3C632
+AEDBCCDDA048A807FCB6CC497A1CA11C6E802C1ABEC3BD80E116A648531484F1
+722E3EDA1EAF6DFF1D3CBB1759C4AEF33A300E7770B8A24F7EAD130B31A0AEF6
+26C369A8DDD409A1343BB66DB2B2F7882FD168C008D5721B3EF2DE8B56EA35D9
+2E456FCEF55927D78D20A99B96EE83A25BAD4DB679511BF4E27E552F871612C9
+6B8C2D5BAF77B648C654AE0D9E6402998E07906B58984B94987216AB9EDB2699
+E0EDFB6AD08E25F2575E1B93157F2F6A0D215ADCE1D21AFB6E4DCA3635E2D4B7
+825A4EAF8568D1A2ED4D6E8C9C6DBFC08D259001EEA83D3ED9A416435A79B56B
+3F7B0AE9A5781694E22FC68152BB68409B61B9A59CC8D58CE1EA9C0DBB329554
+44E4D85F3A4BFCF8AD90771A203FEBD6EE00D118EA5833C96F1BC0CAABFE69FB
+0BCC46E7A3280E16976D86722168F695FB6422734512954A97AA0BA8AF8155ED
+2434100023E1FFCC504AFFEF6C2F70B1F2506E53648271DDCB82754F9775C323
+B77590E86374A9B01FD57FBDD3F3BF8D61CACB66909E6C95C81BA7B083913635
+30C7C0BB9EB7310F23D2991BC6D5CFA9A35AAD04B14CC5540A16C9BE0094A8DB
+058B1DC4D5744C8F89257A04B1D8544C1405D8FA71A780E92D767A170C269668
+202ABE3126680D93532C2EB8EC3A140D604C79906C626AB0185669AF9A425CAA
+465C3DD47810CBA44AD7E2BFCA99FCDA98EB641608032051AC5CC30329C28536
+F5637FC7E371BEFE11320FDB5B6530E513CB14122289CEFA88A97733E4F888D1
+23030714F61091B5ADFFE84E3505E32C347EE1D624AE666E8BC6F416F78CF6F5
+96FE5D12F574F8114C71A10596847A8BA0B03DEDB6AC72F218129B223F422908
+138A916F2605142D5EFF5F4BDA5627E59DAAE09A674B7D5BCECDD63BF5E7C119
+410A36161335A18A93891CABC830833D1FAC47B7A85BC9EA27BCE6F727E7D35B
+348918F512C3BF7769C185A277BA930170AAAC6708F04F00C47251D2679DB455
+F9BB928838F148C1AFEA1C56AA779C54948B9DC0E827706834D9469825FEB644
+6AF843E71E44D0380311A3A6D9B7543A6A24B475BEB483D63BAC1B9421211570
+FF9BEA65E81FDAAF0E00A1555B0A69C8355143DA9B547BD1AED32120C58AFA09
+AC34163ACFBFE0E00D57A5ECC73E522AF84A2EE0C9655C6AE6E67BF4473CD8A7
+E7F95AB4EEB4AF83ADF597547CDE2426F200FB8824E2A826356096B962F31B98
+AB1B27FD681C1F67EC07FFEE7240F704E925E62749E2D2C7CD85C61F14B8A03A
+666339793934155EB270C0C7B58AB8DF6C52B72038257BE0CDDD9B2A484DC97E
+862C67F7AEE273480192980A5BCD8CCDDB87CBED18899B09B0A485FB4A1FB061
+79A918589500995F12211C3E636FD1A7F6F746A231E42C80152EE4E2C1E65FC4
+4075CD6B10A7183C711573498FC034C82A5B66EED4F921646F8A9AC989F7C655
+BC0C74049D81A3AA11FFC20CD823BBBEB6E58FED16B9AC143EF2E2981BCB5605
+71C71C8BE4112AF04B3D2D9C46F948C8E3862AAF882871C3A05CF720DB14ABBD
+B0B2A5C41E35DA879B3109E31226C317CE405C2186F54D710AA503B8EC76BE1D
+BABDC05B316D5382568D4938C7D462B3009A648BDC22C640CE6E891375DC26F2
+A7B36C4F4DBF909B2858AD23DB71783204AFA075488322462A92F0E6739E0A28
+486BD3BC19B3665275ABE63BA5B31936B0097A08717141505568962BBD257511
+B714C52EE8CA7A37B3C0322B7F5A5690BE2FB23AA9FB322107CA58B4CA4032BD
+2026815102CD4688655FACF599739F8C10EE5890AB65B167C5FC0C8F855EF2E5
+0B3F95EDE6BED4CC277CBFD004B7D13734F605E1B929204850434638F7244B70
+176FDEDEEED09D16703108DF3041687BE3EF06ECC78CA7BD028A24676753F889
+32E2B027250023B80E514BCE566E9CAB8F8B516544EED082741972528E2D9D94
+29D8F03449066FA4412350A5549767945AF5E678BCBE884532DA8C66A612465F
+4E2D1CA7353C2F7E0418E1C989026583844702D344900E05FB45FED3401FBED1
+F63830D700F1EC2F4AED4EF8D077EB9903AE3E1AEC126EF9A03AC25D5FB37CD1
+8CAD9A29B803EE39CD78AEA670E2304EFDF0B9E52537DF6BDDD44022F0C00895
+6EDCCFCCD3430853617597EFDC25E915E4F977F9910D640FB088085A96E7FB59
+3570E01A50A7D4903E01C398B5F461BF23638812C245AAE2F5DE500FD2D44E57
+336BDD4B538C081BBFDEE78D8FC75A19F204A15C2E18BBE879BEC3F675663D3B
+73124D4FE6BB1AA1E6E5D6FAB878B479523CC51E4E734AA090DC70DF610CE359
+8357A2C4842AEC553871063A9127C952AC9A64FE3891CD4D0879B41CAAA2FF8B
+0F4336BE27DC0C179FF91D867FAB89D05E382EC85C2DD1E1BFB4B66C6EF9AB3A
+7A7FA0285EF3B67A1249BBB1493AAA17E355690753D2978D937FA5373D195D9C
+9F2A3F7F6F71BB04BC47EFC7D24F11DAAFA20FEBBE5098976E8C002629C7A5D0
+4BC339B70105CEF46994F8780AB84FD47367F996418E00BE7002
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -2998,63 +5224,233 @@ BF9FC09B1680AAF48203C0C0
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMMI10
-%!PS-AdobeFont-1.1: CMMI10 1.100
-%%CreationDate: 1996 Jul 23 07:53:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/UniqueID 5087385 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
end readonly def
-/FontName /CMMI10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 58 /period put
readonly def
-/FontBBox{-32 -250 1048 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
-990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
-6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
-DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
-59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
-D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
-8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
-6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
-1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
-03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
-95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
-74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
-3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
-47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
-AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
-42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
-40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
-B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
-9560176676ABB71BBD0EE56B4CC492C0652750227CEC6CBEEE374709231B00CD
-0DE83AFDE295B314F6C8B1FFD32251C1925D96A64D739FF1DA4926460B28B3DE
-E949AA0BA3DDB16534FBA30C32092D5F712B5E8C8D5142F35AF2906E6C219D2C
-7FD9A368C193E0EB9C7E25FF03C546B6ED993F964CEDB1B8537C617170787F37
-88D6F2AD02384B01067FE3F98257BAB958BB3BCD1001090A4502DA0638080EC6
-DB784CC8AC37CDC01B29BC481D6A05ADC6188785262358C1BF1D694BBF31C1F1
-AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2
+1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C
+7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B
+0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085
+EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37
+404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133
+78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF
+A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE
+88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4
+C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC
+BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88
+98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760
+E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44
+143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3
+981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490
+88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285
+4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683
+FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F
+347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F
+FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB
+C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04
+B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733
+F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA
+29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66
+36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12
+048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0
+80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C
+9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B
+75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E
+4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC
+74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B
+D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355
+E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097
+EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D
+543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883
+710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6
+EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F
+7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93
+03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2
+01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89
+500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F
+F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208
+AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE
+1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915
+85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C
+4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1
+6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F
+55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18
+085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02
+BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951
+2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D
+CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E
+BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E
+D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1
+991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125
+6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754
+E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80
+E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1
+B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3
+4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65
+1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB
+B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7
+8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA
+FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6
+AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E
+BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051
+E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD
+38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3
+7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751
+2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27
+DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D
+22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6
+8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB
+44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90
+D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A
+42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF
+C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E
+0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE
+66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6
+E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1
+6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E
+1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10
+B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B
+897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E
+EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40
+A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3
+F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA
+A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126
+2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6
+51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3
+598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F
+87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE
+178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6
+4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78
+7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6
+AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6
+3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379
+337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547
+C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5
+DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA
+7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD
+6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC
+98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355
+821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4
+C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886
+7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6
+B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16
+A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325
+23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF
+C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3
+969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10
+3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B
+9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725
+1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239
+B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966
+95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7
+FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE
+44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986
+FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4
+E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA
+633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D
+6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F
+FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD
+375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2
+6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7
+EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C
+E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D
+F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156
+DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891
+D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538
+D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4
+9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B
+9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6
+B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0
+D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF
+8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93
+FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26
+B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F
+00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50
+909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49
+5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF
+7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA
+BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0
+C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1
+BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37
+BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D
+4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075
+94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1
+F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9
+E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA
+92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0
+63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A
+CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271
+B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9
+5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E
+86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0
+AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180
+3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC
+35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD
+155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580
+AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255
+E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F
+226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496
+9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B
+8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B
+919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE
+A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7
+9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0
+523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7
+88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D
+2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF
+AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66
+B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D916672480464F7E22
+CA6E431FE38D3FC019BDD229E064B72C545C61C6EA55984565CCA88ACB01F744
+3B4593CC8944C70F30925FB48A16342CC26D444F54CA15E5A624C4A2DAA2AEF8
+404145BBA339F2A2D6FC2F3ECE54387761CA1213C8D56FF96E37C6147CA44B84
+262EA87E7CC10D931E6B5B80D7F09813498497AA84ACB4AC69BC6C8481ED2953
+084F560D7B1CF90555E69BD2AF7C5D944E8E3506165014652462BE1BC81CA341
+E1B0725159D36DA0FFF3577D1DEBC5D91AE683FB0384
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3064,63 +5460,233 @@ AF117C1ACED44AAC6EB4B9A2511A6762DDE8FCCBA5
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMMI12
-%!PS-AdobeFont-1.1: CMMI12 1.100
-%%CreationDate: 1996 Jul 27 08:57:55
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMMI12 003.002
+%%Title: CMMI12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup
+/UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI12 def
+/FontBBox {-31 -250 1026 750 }readonly def
+/UniqueID 5087386 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI12.) readonly def
/FullName (CMMI12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
end readonly def
-/FontName /CMMI12 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 58 /period put
readonly def
-/FontBBox{-30 -250 1026 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5
-5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC
-4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67
-3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993
-EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F
-4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59
-2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A
-323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C
-2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1
-D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA
-5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F
-0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D
-A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77
-2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60
-00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8
-CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757
-99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA
-C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D
-5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295
-55B50047CC8911C98FE1A7BA6CDEA82D34476286E710776823690AD333DD3A49
-335002F4680DBE1C21174BF016B0DF799B01EB9D6988479A8334BBA2F8DC7146
-BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888
-15EE6D514D3457F7F3C6A3D17EE1DA076F73ECC392D349174DA9E4680F29CE10
-0157E42CA35F5DBFF56BFC3AA07E61A78DBE882C5AB388220C19750D3643E7C8
-23D6673027CE568A4ACCE1D12B1D9E5A43507F4AF9BC873237F65A6B95078DD2
-378007CF0F0DE7CCEF760E19D6D1D7B412EC5D4972
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE
+882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3
+2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A
+7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541
+0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69
+987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7
+609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC
+182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A
+CA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A
+1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE
+C31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D
+3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6
+D04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E
+E129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200
+761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24
+8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F
+68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D
+10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4
+262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6
+922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16
+56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26
+32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA
+7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460
+7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A
+46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD
+754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF
+88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F
+CB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A
+7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760
+8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0
+BE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B
+CA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25
+8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B
+D5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300
+135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A
+C5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812
+1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86
+07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39
+14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D
+7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D
+2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D
+639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3
+D08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F
+90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948
+10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E
+1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E
+8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC
+D837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9
+1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33
+9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875
+EE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE
+DBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3
+60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8
+FFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D
+203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608
+FB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09
+DA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F
+2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D
+244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077
+31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B
+724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8
+F6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7
+D657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA
+AFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907
+CD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF
+01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D
+CFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA
+287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605
+8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9
+9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1
+6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5
+7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C
+192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA
+AB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4
+A49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9
+50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67
+A606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912
+3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF
+CA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6
+5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96
+8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE
+084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7
+92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2
+AE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27
+97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF
+92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5
+7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824
+5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199
+13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76
+6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1
+5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5
+6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83
+F21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E
+A64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4
+7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A
+9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817
+E68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962
+AE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD
+F55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8
+0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003
+1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31
+7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E
+38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8
+5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F
+3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B
+B405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85
+15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B
+AAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674
+6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6
+CC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322
+EEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82
+A08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D
+806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4
+461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1
+4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361
+9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C
+172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6
+69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E
+ED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690
+356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0
+E5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78
+7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C
+B52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A
+31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF
+EC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7
+98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30
+C6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61
+AED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208
+E0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900
+76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40
+8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573
+CAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7
+761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A
+2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138
+89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60
+D39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF
+C6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485
+D25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8
+B424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39
+AF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F
+D5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3
+866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD
+207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73
+756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7
+60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD
+A3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A
+1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4
+A56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048
+C6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3
+03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321
+1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B
+97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE
+D9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8
+4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF
+94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97
+201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7
+9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000
+CC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7
+29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939
+4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED
+66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31
+14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53
+84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74
+6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12
+49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C
+224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5
+5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4
+A6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498
+1F6CF8470DCC892AD0CFE11578718948BABF9C1427084643B66BB9181094E29D
+5FBE37708E1D8A6B7518A96876844CB66954227A7A6AF28DD075A462526DD5D6
+40EECC56FA366106E55C7068997B54B7F0D03AC1AD45D28C67C7ECA99DBEDB1C
+E18A79C353113E2E05B837E703278B202112B1C69E42A69D64B62F0E7D8F7E5B
+C1F93F0F99EC20EF312046F4B0CD7DAB31E422070B629A7FA96583CF3F1519CD
+CF08806F40ACD7BB5C960F21E9DA7FB3C72CBA0801ADE83DF738A4EC94F2977D
+2B95A166BA4AE28CAD1E37FBBF49D342CDB4DF615E2C5F3076313AC517C350DE
+710F5D52DE31DF69864D29DABF14234DF13904BA4333B0D714EEA55CDD79DE45
+FF5D64259C877191547076B1C7684CD252C0337BD9DF66CDC5DBAA4F3102F2E8
+FE48385C55727B80D11F3BE0B7568AA9356FB2B180A6B1392D620DED02F0B736
+5F4399FB9D32DFBC8ED942AD311C82250DA8BFE98D65
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3130,25 +5696,41 @@ BC0DAE9DE3A6453B181808E68A89E0C02DAC6264D002B422EBC1CF14F65D9888
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMSY10
-%!PS-AdobeFont-1.1: CMSY10 1.0
-%%CreationDate: 1991 Aug 15 07:20:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMSY10 003.002
+%%Title: CMSY10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSY10 def
+/FontBBox {-29 -960 1116 775 }readonly def
+/UniqueID 5096651 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
-/ItalicAngle -14.035 def
+/ItalicAngle -14.04 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMSY10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /minus put
@@ -3157,40 +5739,210 @@ dup 15 /bullet put
dup 33 /arrowright put
dup 55 /mapsto put
readonly def
-/FontBBox{-29 -960 1116 775}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
-7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
-A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
-E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
-221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
-27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
-5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
-0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
-DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
-71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
-4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
-515DB70A8D4F6146FE068DC1E5DE8BC57033D79919697C81395D5B94C3AAAB11
-52D73937B8F82D3E2E764DA1B3BE273CBB84E4B1919CC1D5586C21F6FC23BF1D
-82DE5A8DFA3E8F5C25622AAB9F7A588532D13C663079C8FB84DA6BD4D2DEDB2F
-84CE30D0F188EEA26BAA650B1AA18C7D241CC179AE82933C45A82BD57808E2D8
-032E1ABA37E4FD8E27AF35326011B8BD7FCA4EA71B5FDB60F7D63D0874B77656
-F289B324BE95E33A9B732669966C96E64C4840A8EDE39410E6F6F0F027063530
-B760AECC1594FED97FDAF84016D6D7CD8358E062040143593FD734B7EBEF810C
-6B1B941E0676910D0A04466C27EB62523967DA65748264D137D8ED841E3D36A8
-06761884C9AC0DE7C88FBA06B933E311EC28B17428C69C796E3F14C6E7CF97E7
-9FF2559E5D1F9EA00554A5995096075ED8901E2F45E76B2C5566E947E41294B5
-9BC17D2F1AB2C577F2710540F7235BB4569D2FEE06C8E45C8A1C0BDCA78A43D5
-7A687297D36E269B9EC59754EDB5DE481018BA228AEC200DD877D3E5DA7159C6
-50F4D7348BA64508F84DAF7FCF01B8C5ABFBE5861D4B32F9E32C7C4B2B6EA064
-F179E8F62E3A59DC65FB475A3DB61C36E43AB3EEF286A50FD5F57277747CB7B7
-78284143B3F0196437A1DEC9E61454F80C6720D8008EB945799236677E7FA331
-E091CD5D924C48EF02DEB2B54D8EE02897C481C815C24F15A7548E2ED908E3DE
-3763983CE2ED0A86B6BB97B4626F1AAFFAFF27CEF18947AF2EB40D7124A122C7
-6A6ED9E0528A29F7A238DB73B95869018D40674CEDB9A993B6C117FADE48A8C5
-C6ADAE4960C0D56F3E30ACB38CA8AA8443166BCFF6A5FC2177C6836859CDE55B
-E0F1E80605C8670AC34DC8E8586ACA6E1CECE99C53A42C5730
+D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0
+7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81
+DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91
+511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6
+1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD
+028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86
+1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4
+3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021
+91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2
+E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A
+11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97
+C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857
+D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20
+B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3
+93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F
+10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D
+7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF
+B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B
+491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB
+F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6
+019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6
+915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36
+356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0
+5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D
+9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64
+3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1
+FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252
+720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5
+D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726
+BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5
+7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377
+DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56
+AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7
+A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E
+0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743
+AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18
+CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023
+0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD
+5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B
+5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F
+E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB
+54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809
+E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F
+A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906
+4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378
+4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4
+038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4
+B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308
+5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC
+B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837
+A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD
+2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D
+CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246
+455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE
+FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03
+16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C
+16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F
+483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352
+67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2
+3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472
+1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770
+93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA
+051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B
+8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4
+8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436
+6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0
+06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7
+84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0
+D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6
+DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB
+0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD
+8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC
+C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34
+754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406
+1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05
+CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523
+1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F
+153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02
+905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718
+617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2
+8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A
+98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278
+53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B
+888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D
+052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A
+CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501
+A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F
+07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56
+B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672
+10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2
+CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D
+3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12
+D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F
+849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16
+648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE
+84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA
+2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD
+2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204
+9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0
+B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B
+D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7
+135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE
+EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939
+C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782
+7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0
+4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2
+9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171
+050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486
+3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271
+C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8
+843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342
+CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B
+B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50
+3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175
+19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946
+FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0
+17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6
+8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B
+CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003
+F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194
+1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E
+4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194
+2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929
+9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593
+E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB
+8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB
+BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027
+04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5
+C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404
+ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C
+4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909
+84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6
+C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6
+09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777
+D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503
+56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF
+035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB
+FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333
+CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663
+B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A
+F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD
+CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B
+0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C
+B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9
+33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6
+4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D
+F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E
+2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A
+CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5
+88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37
+17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0
+55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A
+A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50
+2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3
+406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8
+AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B
+60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388
+C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6
+5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50
+822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E
+94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02
+D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA
+343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE
+894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5
+DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327
+DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F
+8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324
+A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA
+DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270
+E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947
+DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC
+4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653
+5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1
+02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8
+88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70B15A0
+657F5ED27D204449A841ED19E01432CFFE928E921321113780D036D34F2797DE
+D4459CFD15BB117B5C9745EF3CD2B296D91FAD48C80B136D94476967E255F808
+AD2B5D522ADEC64176833756510391815A1D4A8DA1D0AEE7CAD36A1D161889F2
+3347D5B6BC503300FDDD48F594F391D5FB42C42113C538E707C16EE24A3F375E
+7C506E8F49CE50FF9DEF3B4A4C1BEB3848EAA3477349833BA22D2A9012287D8B
+A8C4CB4307A1188ACC0E6E9338E1559BE5FAFF381BD82A6C71C267409468B3C0
+2C1A29F4281D565836EAE57F680490FEA4A952FF64C8CD11C377C294DCD1EC25
+CEFB2B6DCE959D0208F85B6E32E9B44FD455F9B134A5306D95EA29F37BB8B86D
+9E592159338E1293F449380E13C21AE42E6D6952083BFD432F72DFB7B6F9257F
+5784C683A6E9ACD72334E0EA8060A81E14EE32300055040E24B49810DFA1468D
+A962DE1D1AEE09B49109257898F155A63A83D514996DCD2F96BC0F52796267DD
+DA6229F5E9024F78B02154C27EFDB9B6E09B131C9E9E4DB41A0FAEDD93A05512
+A919AC8869C09FC929682B51174D816B85DADE28C00F6391429BA98327848AA8
+C52FEFEBB2296BB78F06BC1950A8E0405EDBA2D8C51F1F607E73F5A2173E5469
+BEB7918844D450B652DCFBC4C0D0C4AC2AD678B7165AA8F053B717C1D417ECF2
+3A2909E864E503059135C05EA8F7CF185DA45CE17FA40B4076ABDD8B167B6F02
+3C8962F09CE07257495ECE5357F755C48E49F4385DB5CE4FBACA3AD4D18E39B8
+F7057F4BF581ED26ADAEE218CE130B0CCCA0C7B273E51D7F314F53EC8EC84100
+8292750A37A4D4551A5C2A65D2382DB0941409D83FE1005752BAD1980307F153
+BD7C92FC12AEBC7C04839FD7F01BC85F0880DB22FE524204FB924445B6B3DF6E
+1B657353086539BF4E60909524FFC4CCFBC8E0139F65F53ACF3EEC572C673CD0
+64AB1C29253049B26888A322E0FFCF7DF8871F701CAF5BE7B509E090C43B4755
+B100C929D5A8A4B9646E8EB39F2E705006AD23EEC58E0E1CD0C18A346D8ED66B
+D0D2E215F637D25EC4F05C449FF8E25250211635C9D5121EE0D51E712B7A8699
+19E96ED8451ECBE97A7197337C65CCB44FA2522EF6735BFB60CD053EFAC10381
+C70053C2DB3B6DB8DAD720DA6DA25069131FD9759EC2182D1B649AE67FE4181D
+B223BA15F5FEB0BBA498F9993F6A9C8DB9088DFACF064ECCB56FC4951EC8F9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3200,34 +5952,52 @@ E0F1E80605C8670AC34DC8E8586ACA6E1CECE99C53A42C5730
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMSL10
-%!PS-AdobeFont-1.1: CMSL10 1.0
-%%CreationDate: 1991 Aug 20 16:40:20
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMSL10 003.002
+%%Title: CMSL10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSL10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup
+/UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.0) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMSL10 def
+/FontBBox {-62 -250 1123 750 }readonly def
+/UniqueID 5000798 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSL10.) readonly def
/FullName (CMSL10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMSL10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 14 /ffi put
+dup 36 /dollar put
dup 45 /hyphen put
dup 49 /one put
dup 50 /two put
dup 51 /three put
+dup 52 /four put
dup 65 /A put
dup 66 /B put
dup 67 /C put
@@ -3249,6 +6019,7 @@ dup 84 /T put
dup 85 /U put
dup 87 /W put
dup 88 /X put
+dup 89 /Y put
dup 97 /a put
dup 98 /b put
dup 99 /c put
@@ -3275,367 +6046,598 @@ dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
-/FontBBox{-62 -250 1123 750}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
-08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
-30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
-C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
-BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
-5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
-43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
-374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
-DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
-B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
-63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
-89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
-5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
-C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
-7A5FD1B49560969BF5C44F3749370663A04776F749DDD7B50674D93254426C4B
-EFE264BEE7810EC93784B7C01A7F29EFD92547E13A2C7851A2E709FBD5B87850
-4A44F08F56A542DBE072D2FBC58D9E6468E1AB858DC35240E30D31C7AC13D6C5
-7D2BB634BEE96FA0E10F842B11A789F72A333DD6DDCB1BC23227EBC406E50B40
-30AF0C48E6359AB0C46898CDAF1118E46BFF8B00F54EACBC2AC262AB898C42B9
-2E080C10DE923C195F9FB3A03CAAEEA6A78E5994B2DC3A318F06679925ABB1AB
-5BEEBB2591961C13F25248DF7E43D2F7D8EF2DFE0C9F6332503E58DFFC63582F
-A120BF80E4342491BFE3833012907CFD93A90AA3E216D6D4DC0EB815173DDE5C
-1B9B2AB54706738CD00FEE5539B6BAFA1957F5A9BF70EEBCCE9CC306B11E36D8
-D00BF55A9FA5CFB32E7CDCA2DD37A5BB2D1F9A8EC0B5C1FB6EB83ACA9BD33028
-7F991C4E7C1BA5427C9D4463C864B44A0A8ABE45F89E3AC2EF454AF0ADD564EB
-8A3B841717842866E2EA6A60AD1926E861C6311C58B110EFA8911575FFEC54CB
-14C69B630B15EB96B1310195FB1274EAA3F3C603FBA6DE75B66E47556197AD6B
-FD13D8BAA3135913B0A7C692238A0450F7734D408552ABC33EF3AA89B7D1C8AC
-1D74CF4703117DD038CC44E24325F00B3A67598BE2A6A218553A744BC88AC513
-AF9FB3489FBF50078B4948BF637F7D458D558E8DA8DDF2F2A5498E52A3AFBE84
-50F28EA42228C1CB07B5DA81C34D733F6DA3BD02224AA73F1AA7FDF92ED9FF0D
-AD7277231AF2BBD9575C73DADAA9A9113DF3899C43C972750B18809815979408
-B477D75F9BAD6DE0339A2DFD07B42A84FDA822D31AB47096B8505F9FA2079B80
-10DD05033A17149C3B7A34BEE8E0962214393A269DF2F2CA131F367DED66320D
-79A03AE8239B8E5A095BB7FC90C1DA766880D29AFD86B9E7F61A3F7A406DD78C
-02CCF7AB8521C47FA61BCC7CFFC45CEDA072972A3F5F5C9FF09C5AF9F00F9DD3
-D77EA32D12371C2377FD2249C74E8FCDC1E389322E7A0616A99C14A352ECDA21
-E6CE1BFA9098C23A7BE5063C4654AB93338B46015B05C850EA549BAC9FF23959
-91966A4F50C5FE67C4D5657632BCEA14D9E226A78F13705282ABFEF36D4327CD
-811B421B12E319356136394B13B1D1C2A0AE9C62D37FA9DE80A00AC25CDEB3BD
-BF74FC8D4AC35C5EF6876D5C0E267847106FE804A1909728A6D75542ECA271A7
-3B4F5C761D3E195E5DE6BB53598EC77322A22AAFF7C39649DE9133EEFA9B3654
-5D0951EC63A5CFAF33DAF36D7778DFC3AC9914919288E3C470FE6D43917D0731
-2BAA724A14C2DE535ABA30380CAE8B192D0AC98FEC1F93A497754B2D3AF768EB
-A990CD19A702C770B7B6DB0615AC790F28CD55B3EB1C810ABB629EAB912AF685
-03D98799716FC3E69B3A6FE4640FE4D2169249A5989C068AAD5A6C185C70E3B6
-4845B07E3CD5C3C340C29F3FBB3FBBA8C4F408089F54FE801A67D0D320946DE0
-CF81EC5D4FFE38CF5C2F8DD4D505F668F45561DF35B6117A7AEAABD46CD3CB83
-26F2A8E51AC3A5F9BA131810FE9D548F0AB54D20FB4FE8B184864720D26F4D44
-43BFCC6070FB83466F17247665E982315994821DE0E6924D4F2DE3621FE25EA2
-D1FE7C26315203C2919AEADF40CC210ECEA00E2AEA76FCA5F38BE974B163D109
-48BA098253209538DC5B4BC02EEE99E68E234C2300E7EA7277524C6D8A92B6B8
-7169F198C9CE8FC862467B5283EE850FEC268A39656C395B34ECD2A990022935
-5673077EC8AD9833E6874C8C992149A836D32729A16984B5D8A18A3DD7A7A04C
-F657CB45A5C00B967B26864BC028D6E84DEAE880C6C5212D5F4FC2929C4BC816
-607556E9618828F6B462CD5D487F281B44A711A37B52685F0EB881742E9C9483
-CBDA125B50585CC0A4FCF825D738CC46B5F1D693ECFD11638D697FC16E2D2C52
-7B99F63D4456A9BA07FFD4F5D49B2862567EFB7BC7C33A3835E7252075245CFA
-4BCD96142A2185E73B1649A348DD67440444D2ABC80573D476624221862F4F1D
-4C8AFC555B65708F031581438B9B658A0269310ED50820E38B3B8725A6A97B29
-98B04F1247FEC25DCBF3C97DA581C98C45185C5343A357952B16ADE3893437E1
-FDEBF35BF4F7A2D5AF54492A9FA18A7F7A97F8BE69DEA33D57752946D89FBEAE
-0BAD1D1C4B0FAAD7CEAECB26F232DA0314C01DE27B0E5DA9565775DED6FC769D
-A6CFFF4E9DAF2F4C6FE1D4FFE3EEF0A1AD8B9A7962A56652361B0DB3B27C4E52
-437E044630C93B67BF1D60CF28886BAF465AA6F44E4B5BE901D83C7FBCC8BF47
-9C5DFD55E6B9BF3520E8598D588B1992ABDDAF159BF48DEFB2C393A6144CFB59
-15DCE0EF0EC32BD5E1B1A0C7C2DF6B28F14D9FF169474F7551E9759012C80C71
-45838DAEE81AEB19C0DCDFF69DBAF8B277A414E34069EDB972D462662A05D562
-C52F89CD26B4F7ABA626E3594428C7CD338715681868D211C58C8AB4A8A1D3AF
-D97A8E0CC1F06443A0244F605408283A34E01BD7898F7DB44E550896B3C20E29
-C0EC3C0666BA33CB37FC2AB60CBDACFBC7F031E04FE1E2BDD8B66AAE5CFAC42F
-59AF8143DEFFD1A0AF78BD4B0F308C2B3678939C1101D6C9CFDAC360D9990043
-3E89501BBD512C9CD8321FB4A61AB75ACD70B5060498E0243199AB40035E46EC
-BF87BE3FB31DDB23C348B7208715DC69DB525C4A85F65F579D3DB1DC207574EC
-EC90C6B0D5837C6384AF77127529778C0579C0379E24194BC97BEAF77A08A5E8
-D70A830D279733FF0F7FDCF0137A40FE0555DB9F7177F84120805F60D120D08F
-720445A8BE8CB8F54AA91BA20DAA3BAEFAD8BBD5B5A6086BB3B52379477466F8
-957F0F061F919355CBD428C5D5027780EC29962567BC8F5E8CC16DA90D8A02F7
-4D7A02FEB05F30838FF1358C9245130DEF0F9D6786ED2CC21394DC92D782F260
-1E755FDF36380FF3FAFF86B0AFE6EC3C6F7F0646B1E967688A2F9088AF47A34E
-C55CF8B4C448E1E3A34987FAB1A7D18AC65B2D18B672D88D9C82D38D73D3B76D
-BAD7C8431F0F3A7D24A3D118D14AA60345C87AF92D7BF9C1BFE9BAC5B8EBA3BF
-E62C289C768895CA437C4F1FE179C12EC83221DBEDF80F46763A0B891E0917B5
-0B214D274B6681AE254721172BA7AECBF10CEFD6CF71F97F43310AE31A411303
-18DBBC4DD143326A22B0D5DA01FD32627383C958BF352C77854BCD6B5AE52D4A
-36D850C91CAC38632EB80396E677513731164ACC3A7198056B46B02A8171EFC0
-E19C4E05A9214566DD5C358A2EE6F22DD401B33D99BF5F8B8BD0DEAB0C6C544A
-D2CAD78521B69F58B7321C18C4E0E97FE1684716D485B12C980C4A263466B42C
-2A01BDDF7A5D0FC8DD75A83959DAFB9B7BC87D1B5F6171B5914878B34CDFD463
-3FBAF3758FD63E5ECE0E86EF5F3AE1A465947ABF33421E111C5C76E28D94A4DA
-B255FC172AC45D34E52AD3F719591A2BD58AED84C1A906F80211D4AAB8189838
-313B39AA70C044C01CB09DF64CCB426480FC60050C965FD05184C0923BD8387C
-93976A1BB5E3049CBDA89307EB9487BEC4C946F537FD278D5CC0764B927AD35C
-249B3D925C0434F55D799D2F42FD6A8379DCAB9350025F6138ED5BC4AB033DC0
-02445CEF7DF52B42B3D841E32A957104B3CDA0A86348886701A39763C5B9B745
-6C24642787F4CCB9593D181D40721161778D65EB8895184EB658CC267824978D
-28EECBDAC4BFD429B2FA117B9FD2AA37BBA522D1CD3C0D027D0FE11D2DA19FA8
-BBEAF201A8DB15CD18B88DBFCCAE92051B80F905B6257C39395D6B792DC549E5
-7CAD489D79059242D71F57CA1C13ADF5A2BC8EE437EAEA7889B1583FB6DB65D4
-0B4B8B27F71F4221DC637479B69BCB071C8619A071D8A19EA1F86408104800A8
-3C08A2E55BC78A48F416CED858B29EE15569EE23824F7474B2154C022B4A029C
-A6B398D15EC7A352C90EEF8F2C946293AAE238113A242A378EB407EFB3C91930
-5F96B9A93C320648C8EA0ABFD072F92B954B64E84EE8B5822A8B8E9C2E672D03
-9CA1CA795CE1F2B6F345926E475BD47C48E4ED0ED7010DFA44C14D8BCDEC0C7F
-BFA4732A73975F1C9C4838EA438149CE62DB2DD99935283572372039E094E691
-74F8801AA0E414783E957B5DE99E55DE8B99A0D53D1C725D7B469587C7A27250
-71708ABA923B08B37F0147364D9C8EEF74FE7EBC06C647E2CEEE77EEEAE97C13
-AA0B25568EF8FCF971CB5AA2DF05D2CD2B03C79350C3ED3EBEA8408253A1E76D
-9B646DB119AA2BC1FFDD56CDA020BB3E08AE16AB0AB41932538CE4F38C69455F
-FA9CFD80CDF8F178C402A6B328F182AF842D7C489191B1C55DC833C414D2641C
-3E0770D4F3C41383F2689DC49E9F560BFEED8E9388CB8C042BF52A9121F4578D
-F2B957786C1252422BC65EB930E13BE614416344C817FD40E9DB6B539279B90D
-0D865F83C0CB1AD567B1B6339C0C5F47C6DBD456CB45B4D27768E71BA3BE6212
-46D0239D970B4D6EBEE52C4A0DDB9F07D69CDF193569688754834BE42624416C
-27135FE152A2FEAC9CB98F3041675B4A4C321E3B2A8681E76A0160644D5B2FF9
-970D2035C3C2AE3E0C6176C7DF7B46BC8286F2959D5DD190061395B58FCA8A0C
-35E3CE3E56B5E7504EBCC9F64221CC07056D3B7BA81E93365A20EA592A853A82
-E261A4CC7F2A6BBD366BA051837BD3ABB5DA5D7B700BECE6E9CB296DFE877E0A
-2EAE61B3898ED4BCA46A06D6E30670E6BD4B8749D993419688C430BADC1963A8
-1F10B657CDBD25653A9F33401688478E9FB00309B756AF05C6F3D0E9E2F3726C
-12DF044561F0878C812A9B55830BEB0CED4858618FCC235FD6C7D1F6198E278B
-0D4A12C2B6994EB41D688BD7D06CFCEED043D0544A8295F811B89E006E470440
-4C8BC39A21A5E00C26D07C37DA951EA36F9CF2BF4473F4449BE816EB733DCF25
-99220E9B3F8E083FE2A7A7F28D5FA867B8562991A543F64D323ECAD370DCF8FB
-94E3A1221C12C84D6ECAF55AE55B5920F60F2051DE3C3179DB49C3E44A6D4687
-FBFECC7A026F590806041DB8B5E2699A2768A8E4B39B4CC3C8A28937C7D264F0
-0A155696106FF74E604B262147CDF20AC9C310644F46544D983501838A56A5B2
-AC1AB33F40572F1DD11775C2F056F19CCCD2CBC45234742DB65D1DF2D3CE370E
-4F3B64283BFDDBCFA51331415CB78E03A73B3E592764F9CACE7BCD69C4B47714
-FDF3E3AE384DA9051DF522A59E3D9499C5DE0C352A880650348D18EAE23A737B
-39840E5B56127C297CDEF537241FC1A53AFF283F6393E74E1F02BEDFCDFD0667
-0BA98DEEE0CFDB5E0C03CA1CF5D2720283EB01CEFB1B79976D6F406FA389B59C
-789559CE3BF2ECB4A5CCFF2CFA855EA2FE6917ECCAC25438DADEC709706E0726
-772AB15D6DCAE1F36AB91EB583D1CFCBE8E007C04366CEFA905E9783C00D4B99
-CA4DE0AC8792A6585B8D471240B51F5BB638B2D63CD5AD9C13ECBDE314F28EF6
-4A4B32D3679BC0009B7845194BD0905712923F88555B9BB80E1957D9CF6378F3
-31AB292B0920D7A7F4D519F8C9A7CBE4988D1C26F9DA61BFD392CB474B4BB668
-FE77DCF953DE8B9DD1608CEC4A26F1AC5DF2C09873CC61B68850D29761D727E9
-912B5EBF7E6E57C503C22F18AB4FC094E3CA7DB7B0345276166EC5CF38C27DC1
-1F337229BA53EB197028FE6829933278953ADCD6FE73AA13204EC1795F25F477
-75A23ECC18D554268467EDF71A3E4642564F3FDC622B23D590994A4DACE02B6D
-0591E13AF6FA382313601A6FD7B6CFEF0179270D75C40635A064B255C14C8B85
-8DB554B30A064B7B7FAE922523E519AC871629C2A73F98EE0184306CE9609C7B
-FF06283A051E48D6E8EFC6B62FC1012264CBFC274C9BC28B12CAD77B43391514
-E3FC9EBA95ADD2481B8949EF4DCE0585BE0E8DCC3F564E4A2B5A00DCE2329377
-149933D27D2AC192CA70F4C78D759854BAADF229D20264E725D886263375CDE1
-7FC3C2FA2AEF0583BE68AC6C694E9C1D5D76273C9ED4786A6F0B0F4CB670F2E1
-05EB78958B038CBBE0BF6926DA3412FAA53269FA60C45E352E2F66000F9CF179
-570D01B796CAF9B2DEBCF35A759E102F589038EB06BC5D7047B9234FFC84C57D
-4710DC3148954E27A3EC7BB7D306943B0DEA92A21B52D33937ACAE51A7DA1C79
-9FED622157B532784C158D9B137741D3B32C70028FE99E54CAA98602E603692D
-E3FFDD148431BDFF8AFFC5FBB10F7F304A42410FB54868B41B2104A8500FFD64
-3437AFF9717E4814F90F742833EE0E9601ED93EFEA6CC174A07F57B7727D6AEF
-6C94EF4905258729023703188A6B69004D25EEA6F2FDA6357A0A83DD49FA3B1D
-6529FDDD8576C8D249B87A00994F315B2ADE21214AA9642A58D2331ED4B2A633
-4325503E9E4D98934EFB374CB5A1D9C76D03AFDE9829F5EA3B21CD685044AE1D
-26FBFAC83068B2AF4BB93841F1CE89A92BA7DCD5C58A020C003D01B389B302F3
-CE95588EDDBD8E6F2AD1FE66B1A27C9ECBBF0AB4A4E470CE288B7599DAD31E08
-C752251C2102B9B78DE589E2E0914A4DC2DF0BAD66A79B444DFA4624C9FED940
-9C49AF5127B6A534928ADA9E971B07245E3E7A5C4B34A30CA7A703BEE659CBA0
-E7ADB8EEC843BAAD46B8681AF4098DEADBE7B56ACC2C5187A961F105AFF18251
-5CB8C886FAEA453F6B9DAFF8AE2CF0FB6ACFDFC8726B657BC13C93F4F4AF0E5F
-1FD259DD724D7A4A9DEBE844A3E8AADCAB1A437DEC6A42BC0FA6CF19C0DA7777
-9393FE650CFEA5761EF824E946BCDE69B6B9DC72F228C34BF2D3A275FE1AB3C4
-B76649FE1791E3124858F8B634D0CC4C68E50CEFAF96C936F16270891BEACD72
-1A804EECD7AA06D8CF90D1FDDDB412B980CA2B8268EFA49328BC7E7C7AE016C4
-4E1DC48118D635CFE7FDBFE223B4A631A94645CE522988621B26858ECA7DC122
-3A1FC1B14750990FF721F1EB7ED1D8B447A51A0DB2C721409707245BC1BB6ADA
-9303713CBA7FA185052BBF254F5613EEFB5A8279212ABC39E340CDB7844459D2
-5DFB805531A4E1BFE7A377A0395FAFEB8CEBFFF8809EC547404986B6D7876752
-C9181E07C84E0114588452844020CF1028E5B782F7D3F2B716836B66C8E68A22
-F55EE41606E0A035FC109AB7A294EA3D504285F28D2B9054B9ADAE04093CCA6E
-3F768CE4E587F85E29496708CADA5BD7719D4650C67FB1458353687DFCFE3B6A
-7868B4BC7B9825A6372B13F455C454DC37B6807A9069D17E7E336360B10CCE14
-83861D6131993FE148A9BB9F7681DCFA477D5E3A3E82CE00650FCE40639992A6
-4D1206C42BB1A87BB3ABE72966C48F85F5237A7A1ACF7E4FD71105A65F0D1F01
-E01C7B7DEDC88198C7CCE8617E109080BFE1F2AAE6AFD476A71F4EE67EFB5692
-8F35045C3DFA8B18957D87923C66951080414A229F8C83B72A85CD060C6971B8
-1EB996B4E8F13536E3903BC49EEB3E736D5DC41C63356F0FE468CC0B872E44E5
-E7B78DAEF8C0F79D26F3EA6F08C80258429F21394937B03421F39035666B2A9F
-4EB75DFC2909F60D19669AEAF8933E1D5A7E9CC45ECC34D68854124B62D0FCC1
-05946FE9C0E872380756DFE431EE8B5941F03C7832C1BD08E8174216E4018821
-3EEC3E49097E8421D92785868785C6D883EA8181E820BEC8C39E30386B59F099
-B8BC4FBC1D22608FFA88C4DB42D79290FDCE5A68AE57F751CD8CC5AE6CD9181D
-C11FC078DF2933CE800AF554C9D857A58E29B60E01E77AB1703188488E4CBB01
-BC821D7254B0AE1B3DE113CD6584C18D89472BE9EBD1DFCCA15CE83F7C8D195E
-EA75DCA5316CE3CE6087F85B895F7DF73D15ABAB6DB710B478C17F1C17F7C770
-32A1E39FF1EAB4734D2BA37AED9A296BB5FE06E220871FEE08CB67E5F429930C
-84F23DCE0F3F0415775CA86C871CEB7BEBE68DA4D39780B12D11E2A8A49F2724
-95FCFB836C880BB3BD3EEAD4A4BD4416CE9EDBEAB4AFF4E0494EC8A4228A4BDA
-7B2DED10F7B1C46D13C121CC6ACB12664E492E8025C344A5F71A7B8B3BF099E3
-5BD0A9C72BCD1297C634CE18E5B7B857902EE403CB275AF0A6F0B986ED8B01ED
-3A9418AB0EC6386EBD13A3608BC0FD8DC7D55F7134CCE3C62BD499655DD03FBC
-FE82A10C9D4B9FADF7FF06A62A1C5FD3C6F4AD8195551F82D960062FF58B29E5
-ADE3A77BD9AD07A277DE8333DC431C18FB39FC035ACEA068170181DC571C374A
-69D5F07D0B64BFF4C3B79DE152A055A0EE5A18522D74E59FBF796017E9B4EC86
-6B108A9CA1386458B2B6AAB7909794942E70AE15D9543A87F2A8715A639BD2F8
-3EC20F8DCDD32D2228DB053BA5B1F54A733965332DF51F44C6B6291609E2CC46
-D80C8759EB5E1CE7FE3E945C2892FC1396AEA8BE5501AF3DEE22DAD887E7BB49
-2AC303D5A1009869E4ECC7F2C9B759BB1C2B441C866473C67B6F246E5E81EC55
-6C0E1E117440A4C71ED8F77FF9FE77601C8B1BD1331EC06157FBDC52DBC85A9A
-8B6F0A7D578DBA4923CABB923D6E87A6AFEEAD714AEB730930B1A08C3368CEC0
-6811253A57630C1B25C4148FDBEF94F6B5DF38EBB862651780AF468127EB084A
-914BE8CBD4E96557B2718F1F2623DA3DCC3391CC68D71CC1545F8D3082736969
-D8501656BA4A689D41D2310F4B7B36F271EF16927CC828C1A8B5467D26250BED
-A1C8A8BAE59B5C657BCDB7350D728B21DDF1E848D9482228CD120C85FC9ACDDB
-978AC509F933470EDB1A31CDA4850C368D8FF7C1669CC62C286979AE74F07FFB
-E2FDA0869C0D5884B9E48457EC19EE3E95B4DA9605D611DB1A5CDC2487A7CD0A
-7A0CCDB7BDF4B032B62E8551C4B948025F22404CCB18801CF9FDAE0C9C777B73
-A25008CF809712EBCBB770B250EA9347C864064AA88F942286FE1BD04E99A385
-B2DE0EFA3DC20FA84E15AF6B4CD6ACDAF67717827CAFB6BEC5C23552566C4B3E
-2DF783F09EE7E9872D1892ADC49BF9103E1B705EBCE07F7041BB29C0950CE6C1
-BC719ADAFAB7BA379DC44BF0EB42A306384BEE1C2266F509063A91F989AFF994
-DC94290DDCE511D731F2D1016D2076377CD41A44EBB569AE1E01D5B8253F58B6
-1D834CF2437B10CF22F9EE9BAC3C942D5565E8807C5C0005E9C764531DA374A0
-D3D6343FCAAC903C5F6845ABF15651D91EAF66463ED51E098BF31C911050A7EA
-826B8FCCA42C2664FD31F2D37A930F6BCCA2BBAEE925B232C005107628BCCC2F
-D8EC132E205A888D79ACC0BF5651EF2BC73003144DCA4D30F2E3FCD80B1A93F1
-D177C1F556BFB1A925F52E82B9E3CFFCA4C6683F5EA237AB81DF8C533DEB2EA6
-6263DF951938A62AF2B05BF8D1A5644DAE0125899B6438D5223944C9FCC8076A
-5CAB809BEC2EA32016FFF0A2D69EAA2F0E85ABA5116D3A18E6A2D01A1F525144
-94502CFF746D8CC1201EEEAEE04885C15D66F62E54ADEAA008C53F5550F76C94
-62BE7AC0BFD4DA723E8A6291B14E2CFF4F59965A39EA256726D296F1DA987995
-2E1BF72D17924B88BC285F1799C930FDE1C701ACF32E3EFAB5CBF14084DBEDBD
-FDE3711FF58C0B7DBDAAEACAE9869559767C4AD35820D2B2569E8A7E1884E363
-E597F6956A036C65BD1F36085743AAF8400F3028CE806F4BA722300DA8C16ED0
-2561339100E28E07F7F372FA9676047B471777292045AECB35471BFB02EE0754
-FD2B321388A7D1EBE5DBCF70E9A1F144C80BEC5FA78277C16A9073C6D83B19FC
-1B2817027169660B8BA2EB08445BE1C66EF2135E453F41FA094E6AB4D505187E
-C67821FA59C9322253100E4422D593627BEFC4C30296ABEACC704FCFEB7EA562
-12C4D93839F26DD0133DF5E839C8D32AC273B2923B29EDED7436FA9DE8F907FF
-B6C1A15248DA6548C53C2506CD9E99B627BED7C518988ADAEB7BDF5233DD9DC0
-F68608079220AC2BF3AC730605E782132640BF4C869A9983AA3861C474DF9F46
-5A0644313917D426B1408AB392199A758DB4A15FC2AA965BFB0854F4698E3347
-368E40396715620B5D7A21FFE9C7636DAAC7E4B0DD44D9D6EE6FFAE47B99661F
-7CD3601FCCCB4F0489996F6E1F510F79192F50CABB38C51A6A3F954C2748A0AD
-A69221E7ACAB681AC81AB52EC969D5B8DA96BD6B34145E52DFE419BA5A825561
-4D2B2D8B32376D17DE4AAFD72BB54955F68BA791E01957FFD02BEE0F4BEB00E9
-C829B6682E6B6F4454FD3B79C102C2CC60BB384878DA057CDD1493E0F8A5A15F
-8000295338DDCFFFBCFC44F27C2DFB07FD0ECB0018C192EFC34A6DC1F9176851
-3E0328B62E589154241721E0541962765F0190A9D17CF219F663125288AE196E
-CF6F784A7A635D8CFF6A76D0E11465EB8A63C2A4D4E9A5C283EDDAA489C7FBD2
-73CF2C91A0A1C33110F88D5B6D27A0B352A6B9E10EBEBDB3B826EEB50841554C
-8B69094C65555429252AF4D3B924CF411BEB9AEB235429DE4936E7798A8D610C
-377E294A19B1DBD9CDF8A63F6D7CDCE28B72DB4C7F0F6EA1F6DC8F4686B3F1E3
-B8C67AA7370D607DB6DD0263393E6486AC09CF6B489C45C9B2E8B2C72891D307
-488A58E440B956317C1D5FB8F98930AF076818780D25EA2C0D0819CD7E5CEB7C
-497981D54B1D8F8E62BB07B2F5242883CF314331A81BE11DB375B895212B5A83
-4E68377DC532DE6C9F639474F518B60CDB5CFB9CD3DD963BD720CDAABC82E7FD
-0D540442FA9763488B77A0592FEF7AFFBB40B80CD0F42CE73615D7190219ACB5
-1BDABAFD4E51DEB4AB0C296738AFCAD36E57ACA30CCDA22B79E67C3CD89AF603
-5EDAC77A324B6A0BB4C89B7BB17EF43A1BAACDCC8A3E626B8B11E8DE73BFFE07
-45210F8BE4E530623890F4039B65117F0523D9261988F1EDA864AEB2B37528C4
-D5C6A0BE0BBD170E505451C53B381FBD3ECB7A329F7E6501BEBDA228440CFE12
-768F5FC9DD948C6E92060B64465DF451ABA0BBEFA8D8C1CEC434AB82FA978967
-3A01813BBC9147105F2C49504CF9AA9CFCEE4A976DA3ADA0D6207DF43501E06F
-5226B6B90433790AB24009ED005F5CC228F05E221485E475389A253124A49074
-2C3983517CB731B50F2E4003B1E25F648794A9AD8E64BFEE2DA083B32EE2D0F9
-2CE8820EEBA9B91E7D1561D8B4FC45ED66C95D364524FE7CBCF7B16EE97DB739
-B9B45DDB8C45918B0664F6BE537AE14671D8AEC2F4807341ABBFEA7A1CD63CDC
-CFDCEED3DE1035AC803AF46305983BD156B089ADD0A81CD9988280A9E16BD900
-A65A332DE5F3A2E2433DB662255FD31580C88854E754817125B059F10000A1CE
-441E40ED502BA7F620E21F6FA85F011F281DB3CB63723A8A66C4F1288170351A
-042CEDD611AF550E235E9ED1BB2E878655D68BA7F7602E84237C52F99D95DBF9
-FF8F68E98C081209390368B65E4F94587F9E0DD527146A592D807DA4D377C0C9
-F2DBA29080842E6D3F7F34E11454BF54BD9F312308A73CBF464C0758E517DB00
-73F494D29CF03D40FB6842E2CA8C8E7309500F35F47DF50847CF47AE5FA60225
-F468DB13E79532AAA4272A45F1A55CBF7E0C01B7A54D5AD1186BD1D73E602162
-01E24798F5BFA86787A5DA2695E3354EB25B7DB726FAB3A17FA09A6B212F051F
-F6FB3215A24A05B3D3F4F93634B4FFF4960BE17644A981B9FE17B586F952E4C8
-7506F4F0590EC85128AFF5C7CEFFD6BCA39261E0C5275D8C8B03A5CB52C7D5CF
-B9183782E12AA1184373C41EF0E5E759EFF61EB627ABFCA8C90D2A1DAEDD7422
-1CFFDAE95479ED216468ADB29ECD32654FF799C1EB92C64A844A55BC52D513C4
-DB2794F2D436D4F9A224CB760781143C61A92161D563F0AFA6842D61E96D8FC4
-8353102B2520DD96B25E41F968CDE061E80BD0FA0820D7B98471FAB1889293E8
-5A0D903B6572B1163998B02432AE8D020304F200FE743B5AA6E0C0B7730CB260
-06B5EE9FCDF4A4BFF2C8E523703565EC7DD6CF077A0CF27A80C6ADF54148F28F
-2B774E35E1FEF541418F38DD2556FA01BC257076AA9872B6456C6F5C959BE404
-CB6673B29D63868CDBD199D643EEF0D59DB858FBFD759C812C7EEC46720217EC
-295543072288962D4063A1F08030BCC6EA1EFA3DA5FF240F216C90322D34FCBA
-9522FF5623A082B828AC9C2EA9666A1C0C33725502F86AEF34E884E17160291C
-8659DF678716331930EFAA7096AA26E6285BD4CA81B8890D48378B62867F7928
-3D78C20B5655BC15C81961A0238043EE85E09247E1847E4534F0ADAB4B51D39A
-99944191109D0FFD4809343E39FBE36B05B947C4EFF2CB26CAB8C540C7D215D4
-D3E4B0C116851A9B4858DBE7BF9E19975757A59AFD6DDE4285B546020123D0AA
-C03A073004396E54571D0DBB593DCE2E4C29A375B8001970CB88E500E6AC8628
-B0D0E414CDCD7F5AC164D1B03795442B7DEC0FEFE0318C327E766DB06B112BDB
-18B06908B760B4804A5F55881AEEBA79704454852D7EF4C75A58BE0F02CA46B2
-E4183D4326AE732D5105DBD50E55DE2BC2406B66589F711A7CCF4CBC3C95AE62
-BCBCA54F63440A6A2EF1F7897FFFA4D1D479769137E06EDA52707ED2536359DC
-D7A54EF6E1BF5FF917AC2E499AD9C4EA1B7D81D03C9F14AAA9D85E6951712E3D
-8E9CB2370FF6D068A9D80203247AE015E4E1C9A8C252DF6F287A1B2AE74607DC
-96A63A846C24F3465CDE3D7C54A11D35A15EB5BA9943AFDBF9414CF00CC1C3AC
-512787218DE526D4549F4506279CD297DBC84A5CCF67BC922C4F158810558805
-344A7F209E977E13E700387ABDEBD9C26155747A9679E5D0B15A8820FD1E97F4
-478DCEA900DAC3751439EB73DE0D0AF49F1AF0606511E3812D81AD585AA7EEAA
-13CD7EC33D9F6A90370D5198184F47B75E6F0DFE40F0AFD2BFDBE46B2F4AA233
-47622B9B863E728096BDC9559CF0FF5F1796C50258E75D90A4AFBAC4A17EB9C4
-466C58C9618BDA37967F172EF7DFA4614B41F05838AFC2E31DB21A8ABBB903E8
-7F5BCF4E4A1E0BB48BA96C999483054FAA7086EED4F329B15C73AF7A48B4E046
-54DBE0B7BDBB377D74CF97B8184B10D3EAE35665140702D3FDC76F25DDABA545
-54B2A10C965315DDC1F4BAF074984881FBF5EAA91355FAAB57CD2B35A009FAAF
-B509C32E0DE465688F55A4BD86295B4CF8DE632D1CF1ED8FC9A3B443BB11B2C4
-26D566465ADD22C061EABD8C48430BA23290DC8A22FE12A49EF82C560EC2790A
-9C87CA983B173A5CAF4B89EA9700A751546CEFAEA91F7FDD678CB77929DDD5B9
-4A405EC6BC3A4823915A3CC58400966A64B92D23DDF891EC8D0AAAF2A4AA6CC0
-0AC53F6FD876A44CC621307CB9F34F0380B991A55FFE1C9FA8775BB842B0C89F
-DAF0D32FE956947EBE97D5703582AAEF3D4DFA918F028636F80920DDE2D3FEBF
-ED998E530D59CC919A2DBF6DF91192097B160C6168310BCD1F8600C18B3DC46E
-A899979F762C1426ED046D94486A149B08B476A2A67DAFFE87C812CC84A5A7F2
-FFA96E4712592AE0F3AEF41983B19FEDAC029EB6E99D130856B2E7516F192783
-9A57B32A047C95CFDEEF612FB006C07E49AA0A9052232BE5CB243C8D9078B077
-0BD19CDB8AF2C7F56FDF7BD826E1D8ED52D7D994EAAE31661302651651EAAAED
-DB4C8E62F9793539BC54E33E682268A10190A1AD8C30359821A26C178E3EFE20
-8BB0F168DFBAADFD297737640B7CEE6BD6AD96AF38570490AD7C7479D2A42296
-9BE596CB48A0DDE1EDF46FCBEE7C62C3F2B3FC989371D057EFE951AFCCC84CD6
-BA834EEFD27B14F9BE22BE047892D9DB051A11756ECEBB27CB8F1A1C516F0B27
-EDE6A8FFC9645B383C6B9F2C5D1EF5C6B9D21450BB199F99B611A6124E1868CE
-7CAFA0A287ADFFD2C8F28A8E68DE6F77FAA0256F6D3432FC886BD17658F0C0C7
-26879EBDD3D021D6FD5C20DB7DE49CB11E85F727C6CFFD188563874473D3E90B
-6171BE1A410B74BEA342360C0C95D8963E03C1F1816CE5E75531FFD42D9EB334
-CC2118C94269E229AA825E1750DFC6CA12F62875E3CFA4883B28E307EDC2DE52
-10EC5F0C2CD03A0B796E34D71CE901438D59288ED1A4BF063B2BB042DD9A0863
-F356D1AE896CA6C9DE32D0717E880AAD1440E8E1C34E7BA81DD4C65290638369
-6E37E74BDA09AE2AB1FA8DE2CB27A88D43DCEF77DABE29526C006541EB2843BB
-E83ECED0E872136662D81295D55F860A6C2183DCEA90D9FE702F510C5B62BAD3
-8834110293318956D1724C07794A6F8D6A312118333B5DA3AE05DB7C773EE7AD
-EA36A38FC4EBB21CF46E16A33B76D50CA6789AC16117CB1254C1FDFE5F51662F
-E442D9C52AA971C031FE337741E63DA8C1D544E68F0F80CC6D2CF141EA89638F
-9D14F1A63DA1503AB23BF1D7B19E5E0E543660F3ABACBCF3D0FD3F288A8EB696
-B1EF39C30042BFC4A899E4B528B38E8EEF04DBDBF072C31FF0D7A4F8A406F6F9
-6D40D86C613305B82BC1BCE1D29152D63FF0277248E618C42AE5F35B02293F3A
-981ABB4CF0D5349944F5EA5AC9BE4D7F86E18AED6548B98AB6F63E046ED4D1A4
-98BD87B5CFC7C541E3DC974554EF88290E00FF088A42363A74B6B2B5CD073C72
-917AB7C15AC443337F5552C183AC8271D7584E952E3C83A2205AB00E16A974B7
-0D4B908402BC16FDE747592952B5D2105E223428F1DAF74C85879CF74CA6D181
-7722E820B30CE7FC492E67C3D29B22D998AEEADDD054674D71C98E720CFEDCFE
-165BD34889992AF05778FE73C99087C7CC6288847D879EC77C21C73E5AEC1D05
-08BCEB3689CC9D7E197F95087AF8B16DBFD1BDC1CD450948237C54C409A9FE85
-BF0385545954105364DF6AFE293C36E236616A981C2B1A2311F9338426256A69
-F7A896D9BA6530622D1191E82317DCAAD8622B51DA357014203665315E09406A
-691EE4D94B6D84589DD8D3A8B594455F66A74824F4739C5F5D8E956525CF9273
-05E3094E4CC0FE16FC5F0D68556CB0120AA431737837CF774B06BD17D6287781
-350DB06055A3BFA5E7A0253136CFC871A26F1477B3C6AC4D0C54DBB2D5BEFDE6
-A7E4914ED195CEBBFF8E1445C7EA36875770631D5E417E7CD6EAE8C1B13441EC
-F62CE056CFB2DC8368F4C0B2D65AFACD82E07324C3F8904CB71AF2E85CC98116
-9A7F9394ADAD6B8107D6358E7B465E454D058B78BE2A55D0B937561535265BB1
-4184F8D7723BC0F7CA7B5334009C7624D30E846B3DA4CC77CF54364B34B2F25E
-77664C76F12462C5B2D2EC2178BDAA2C35011DCA5E094DBEA5BFB8342BBD9677
-FF493BA9B30F2F8D1250D4B1D5B51BB6219C673FD0145DD86900398F796B8AE8
-5868D33B8E71ADB374DA3D312FAABE8B32276D537966758C57A18AD3A8890806
-1FAB4F9F6A5FC613EF38CE39A1567E520F779E98
+D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7
+5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99
+8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716
+EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C
+02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D
+46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A
+4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D
+DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384
+7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0
+C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814
+25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5
+7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581
+299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8
+80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB
+5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584
+8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894
+5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F
+F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B
+966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E
+A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5
+9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4
+A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD
+94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A
+DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669
+E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929
+5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23
+8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5
+155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E
+4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038
+44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D
+8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0
+04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC
+A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F
+F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07
+111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344
+8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C
+567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728
+C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214
+C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094
+51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01
+66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58
+9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6
+2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4
+4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7
+5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256
+0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9
+233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D
+BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF
+62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086
+B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88
+DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0
+C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA
+CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC
+38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D
+FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24
+303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2
+8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1
+8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2
+C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53
+9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363
+4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29
+03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212
+93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8
+91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0
+FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27
+06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179
+95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954
+9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2
+7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972
+6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31
+5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262
+3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91
+CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1
+797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0
+DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112
+CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19
+8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51
+04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757
+78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE
+730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F
+021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79
+CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57
+90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD
+97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0
+F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9
+4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394
+40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7
+3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B
+362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7
+DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136
+7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233
+04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8
+DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B
+C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049
+B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F
+9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229
+3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE
+D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2
+B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571
+74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A
+44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5
+A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8
+3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1
+BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64
+01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4
+6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD
+DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A
+CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C
+683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D
+87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF
+550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6
+2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB
+17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB
+3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E
+F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F
+B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B
+1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514
+61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7
+124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2
+ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746
+0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246
+D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933
+F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2
+BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003
+75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A
+8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3
+B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E
+7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD
+F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F
+F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7
+322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E
+523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017
+6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77
+66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633
+B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182
+5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1
+093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838
+B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72
+6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394
+EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF
+A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966
+8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE
+144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0
+7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F
+172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9
+254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6
+5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71
+011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460
+B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC
+0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E
+3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB
+E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E
+993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E
+0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9
+18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0
+ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F
+CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228
+1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3
+A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A
+6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B
+BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20
+DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323
+1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761
+93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082
+E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62
+4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB
+F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526
+4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1
+361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36
+95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C
+AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0
+50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81
+88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932
+AB7916D44EC2210CB941B1455867E510E9D8A0B83CB645BCABDCDBFCD51A4E12
+60CFFEF0CCA548F654037D01CD631FC4E1F97B4F65DA9AE79D99F13A726E93DC
+BBB027B7D175FD17A704C4668F6F8428262959DACA9F8C687C923CFA053804C9
+9B2005FA7E0F07D81E52A9A37AD5CEBA8EA63929093ED0DAB9F7C99C82A50E6C
+6440387049A0C359218F5268C9A28F581783BB9D29E08772D7252FAFA6739687
+22570150178893C418531769CB3D96F799BF1C6415820F96B6EFAB5344E82796
+38A0DF66609F5EA332C1065274EC93027D264B84B52AA8AD82E13E2A41AED340
+B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC
+0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A
+6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9
+A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D
+84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61B0A2266A5D10C0D1B53
+45C41DCC3245CB3488020BF6049ED80E9A761F13650E3438D14F0EC89C11D18D
+E44B6E47887F7BC25AFDE2D512647277B9CE23AAB30B7F1ED5DF84921B567F16
+CE118D5A71B65A72FE62F278D04B1311E20739AFA6D0C911CB0F041C38FC5E0F
+E4CAC661E2D9102EEFB4CFE26354CA4BB30A07F2B686F1A4FD8EEB048BEB735B
+A14E7905A8A538B98AC7B6C8E329B6DB2DB726C5B2B07E26F9C90A4E76C69EA1
+D928BBD0E1CA65D7402C3925A88BB09C7AA025E178D6579DA73010BF80A1332E
+63C347B2A1911FF3BB0D28FCB85ED78684BDCC488A7D4D2BB91BB593ED517EFF
+F0F618EF3CA13C5D281820ECE618DF32302A0EA74D7A956A0304BEC2B6CC41B1
+60A2BEE2BE369B2D9BF516E1379DF717F0D6DCDDD7855BA1475AC908334E992E
+C84426AECF7209756184AE6CBDEE2005AFF66C89C743CB682403750794A927D9
+A00127CF00165DE8D171DDE90F403CD145C0B7AFA9BD46C33968D50D294148F2
+99D4B9424546FC2F0722BC22FCC5C91FA5384C95669931A721F15F0FF5752BED
+6477E8A28931AC48A54699C21DA1B305EA37C12B24B00E7A0A2C9AAEC359FCF0
+18AA95A4E5701E7CFAA3D40F82C4CC20E27E9E47ED47767FEAC71CA0C22724DF
+4A60B70242C35BF769D1612031ADE0B3441925EB80EFF02BD1198FABD652D0C5
+CB11A54728D9093958A5F5B9F27174BA5FF4E59A1432B21DB95C262D3999AE8D
+3B41E4E5091B55780DC9F4303532CB055E7B24768E70A06F19F0F794D7F62239
+6ACB7AB588C7DBDC9B71B38A92947AB68AA4D62EF3A3A88B4D94A6B7EDE12B69
+49EABD0595AB29374374CC92553993F18AF65CAF555ADFFF11171FF7B18ACFAC
+E87DBA35D6FE93754F475043791F00B1C1AC0796791775B22DE7AE5C04828EDD
+DC30A00A6171300C6D65292A3FBC28EFCC8019CDFDAD405F8E29C43CCCEA3B0E
+7A7E8526F631C35857CB9B29CC29A6809637444D659BE385375395A6CFD5C44E
+5461CE4F66B114DEB16F2D38968512BB9F3D19D08C7E703F1FD705CCB1AB804E
+107B97B09D1036A7DB5381E9B138C9233C265AD6276F5C1F9067F58B82BED76E
+53B450BC3C015769AA7114DDA03FA38DBEF4A395796C7DD303CC708B118B4D63
+7A702B99D29BE641BFA37F6FA8BA2EACACFA57A1982974F77DF26A9FC28BD110
+2DFB33ABBE73E70CC60C8467CA62A943187046A0AED988A3AF7651A69DE5FA65
+F2EB7948AC50F8321CA69E02EC5DCDEF33B591CDB6B66B6B1ACC58EF567B92D9
+1A27162F811E0A5D55CD6731CD237C1F912BE6382943C1F4524D606187819BFC
+A850FEB374775960D66693F2B403903FE44163FF4A0D45E21898716AAA47B981
+25274AA20F0BFDBCEB529C417FBD16B9F31AE20DEF23166A1E8D32150ECB2728
+EEAC9565BAC22C00CA9D4F47286C7034E96EADF138F320D1C18AA199446A277E
+FF8FC90E337B6E04FF4C46434A8ECF1E411E2BB12175CF3997C62E1220CA6B42
+64D03960C7C5CCF873D12B4834B73A32FC8471F14EF941071B971F1BAF36B49F
+8CE1310F09D42A217861210066766BE13E7103BD2D8F0486EC592B99F38B9B89
+AA15010CBD1D19BB4E4E2C321FD88C2AC255427AB2B4C77572577D4EBBF493BF
+FE24B8739F771185D80120ADDAE236FACE47778E1E04A0359D60068BD20422B0
+F3467AE613FCBED36B4C9D131E854A80B01DEC5C4FE955AB5CED1021DAEDA722
+DD1254F51EBD07AAB22DC0765F57191ED0A75FDE50BB145536AF35C3017C6067
+CFF6410970179923D3B9765F633D991BB8F8BB72566E748D76A2649E21D98590
+EB4070C5777B195B8EA22F9EDC711AAAECAC4C3CDCD19181E63ECE52A9FA3B85
+08D8376FE890668FFCF11FFAB44EFBF2720375B524057D350EBD718D094D919C
+F97CFA593D48847FBD6170595943405A019CAB17B75CD4DABA1610F3515CC01B
+84222867AFBFD9700AFCA5E57BBDBDCC8567235F3704949CAC1B405E7EC3ADFE
+6B3463E0D6B5706557B83172CF604B8B2A58538430CC7DE33A5A6E169D18506F
+3FD7F0EEFB083D6300B16150FC27801760DB690FCE4418F0B410ABF1573D3F5E
+603D73D40679B0F1B842F708115C547C3B3DF1E846D52AAF8615FD8A7DE426A5
+3CE27D064FE50903140620137DC9651E646A0526BCDE4BB3F1B64483C24B98EA
+7361FADE8BDCC23DD19CFCED7EA733FF262A7FD65CDCA423A14B27EB321D34D5
+0F5F90FFCAA3DAC323CBE5BD09BF91E906A5EBBEB55A0190099766F2DB280096
+335E5E5E3F14181FB0699B6C267478D7CB48FB6362FF72A453A124CBBE0FA8ED
+E42133899E820915B6E3A8B0EC82E76FDD1D4F4B27044C27538717ED0BE41B9E
+89126E513104BDE9A5453B1A73CAD8976D13C67C785C4028860D02CDC2DC0645
+AAE179BE17C49DA8A6268AF82A8A9FB8A4F26D3E4C0B5DC7AEE18D2BC95E7B8C
+F13FF31F40AC72047FE48817E2A2F71D77C81469101F19CCB7B86CCBF0364FEF
+2CC8A915B20F9A949DEF1A45A1DDFFC88AEADE0FB3D638931A84CAA7FC10AE33
+02E538AA472D951F2B97B21A506D1677C5FCC30BA7B5443FBC642179D253689F
+2980471A237F622A14A570F232DD885BD8F66C2449A8A434E8132F8D58A86BEC
+48D627687108798FB4C8A84F5CE88721898C687E6DC0ACEB47261F89AD9A3A1F
+44B63C73002F6F338BA880CA3DE4900C378542737263264B7C2EC21953744548
+DDFF14BF008F8429A12484304DDA3C4F769221081D1C75F39CF785B11DB4B6FC
+BE27B473FFB49160DA29BC5C205D21CD2030BE08E406747673A0DB0720A82363
+950F059413D4994ED0A9975D4AE94D6580B1A42773F07753090A9BEFD093722A
+0043130256D4A7A2ABFDEFDDEC878D8098F373E325B16EF7B3773EC72A011B76
+4357BAA1A4B56A8D8C8BE988E6F815FE40CBCD3BABEA9A1590B60D891B613C27
+7825F6058B0497C7C4393467ED8DDB8F88C15087E623AEB6D05568E4838E388C
+EBB708FD7386DF5E020B27F5307EF401DA3C4397B8A475B40CBFA4E518628F5E
+5A1ADD4E79E14E72DE0D3DC7C1B6EE2785D4221ED22F8A2DBA5628C897A35A5B
+54A1767DF59FB0569CB787AD82CBA050B2D51275176EDCABEDFBEDF7DDFF9AB9
+8DFB0582386A7D078845811041D05C82FADD2DE71AA5004FA463B04DBD60CC44
+D0057C4C30E6095D23B6A247BA70CACAF81A4BC0373816188395888887CB6784
+E24B5A65FF3ED9DD681FEB4533B837D4C2DEB1B9AA5DD0A3118F88278A383B94
+422438257AA993C9EEB0F45C12DC1C93B5CD628B2010628422C5A66A1B7F4418
+6F7411CC00A36AB05E3C4A51124677CBD417F3E72ACD5C705F01E89CE0D1E726
+70FB8CEF1879D2152B177B3792CDE557C67C93D220457A098272879E864E020A
+3878BBD1620F05303400F0B537D222E742A9371F37B781BB0A720EC93DB5C099
+AE0A2F6E55D3C694EEE143E3133B10E3B4502B8041FAB5CAF6418743A1CA7D7C
+AE0A8F29973ED9B4EA82D0544DFA406C011E42865C0836191FE2392EDF93E89D
+99D59DE2B4C09074DA7C8661AF0A9E37E27D6F07252B30B2CD24D2636E5256E0
+3E61FEFB743E6E87267C163D43673411F3A14F891DF034AAA2F2D2AB133793F1
+8CCC454976229F2E57874BD92979A4B94110D630E4BB02BACE6249BB738FE96E
+24087A965AA5D0684A252F1C732F1C56AB9F5BD0164237A5BE15130187518A21
+FB9457DC12600A4236272499986F57240ACA7268D9990F1375877C70B742AEFF
+F20557F43846233F6114F8C174FED6DBC3BF7852FE5628BD5CFA250E463E67C4
+753C56B9A10AC2A4EE4EC9440447F2E7371550BF91511C8F336EF9352BC3427C
+FC17B8B8626066B1B5BABDF1D45F33C7BA4D4F0C43F5BB9FA2C36583A7FAB9A1
+EF21DF17575CD5DCBF606E564EC87C63D57B7CFC72460846448D01E007093DD9
+9BF57E18910E472790D29EB88DD1CDBA87910C6C4998308210823F992B29C38F
+0C420623347BCDC52751A14B8ECC58F27B6311C31A59F7661A21D1B2B5BC11ED
+68C807A086E05786B5E6091DBA26B2C4C2B4531C1A0F9AC0976F9D50A1AFF8AC
+DCDAC4568B88EAFECAF7BD1566C4B0B91385CDC9BDF264E28EEA33CEF4EC51F0
+3EB360571E8CFAAABCEDCBE7A7D93E4582176E2868D2281EF5FC7F75CD7A9017
+E592C375B2512D2A3D6CB8973A6300B64738A8E4C1FA9E278A4BFAB2550A2309
+770577D0C5ADAEF4A028FF5D551952B86521144FAC12ECE5E5CFB45A80EF9D62
+731FE38839CBBC64B916BABCEB5A09DDE1135705D6AC4D611B760152CC64B7C4
+ABF78206B1992A27122D238D24BD4AFB8379EBB5B5210B2E932E983B77AE1802
+9C892AE8DF3B36DB44DA461C9030A3565557E6B15F161386A8D0A1D04C572DCE
+7C23E8790A297B4D866017346EDCD257B4F0DA96FC30A4F529BC931941479BBB
+261E17511C9A779AC39B22F0343153E7D835CC5932091EEAD47CF63D1E730A0E
+1157D3D259EA39E202C783941A73CB7C5603A673C03742838CC7BDDE32E1350A
+4A86F40FF34961241E890DC311FBE8A36E4744A1646EEE7A207DC316F5E25CC7
+E3CC4F1BBBA3E36D6705F45A4C379EF000D59DA15767720D75611496A9D632CF
+5621F0969611234AB48FF342A04C6293D5472E457BF81D6064EDFC0F44A9E5AA
+1B772D08F49162E5FFA2BC610C0AF91921B51EEC5D6B7D2576033356F7F33FEA
+DDAC2B393312FAFBB7D17E952BB152C38A8384C3FF701CB671347EEA29D4E73B
+E71D670FA1BA055DBFB487220F6BEA357AD8ECB3BCC7F77DDC236BAC7CF5FEBA
+7628F5EA10233713B3891C6B67AAB0D3C6AA594D80713C1B96927AF89129B69A
+6C043FCDA2F352A800802330A8238D638F798F4BBB7C54E9685C3CCEA32751B5
+717703FC2B0D796DBF4766A7083433B6D629F245E0DE0F601FD74158EBB0F134
+B72B5D7129246E2E2FC5673C1CEFDDD822C4806C9910A5326FAFFAF34215F3AD
+99C3113E50EBBAEA9853BC56602BB053793DCF12E4B873D3467342E27312BBBC
+D02752C3B6A47CF84A297D28BD3FD25870114A55A323551D028669C37FFAD6B3
+99D786057CA02624513B073C9C29744954FD5AF9AFFA26AE9C15959EA884E16E
+620A7A138CCD2181945BF7E101D4F06E6F5DF7E9D73BE317B3661B35C1F62214
+E129ADCA71344C781E6E9E1ECC9A064386E7DCC3F768E4F5295F6E9387FFB146
+C10166BF0638FBB7662EE484158957AACFD2E82BA237DF4185924977538BB8E3
+CE992843305EAB5FD94CAA9E0574EBBC8C5AD0C608E021BF091E8B6B04A68ABC
+EE8F2DF7CF10638294335F0A60E765DA7085007640C93FBE28D36C25714F79C2
+36E58ED9D7C7C2153D2F3C826332F9CCB5F8B885DA1BB7B4D50216799E96F40C
+71C3D18FEBDFA61DF3ED1CE1FA509E8CA9489679253753EC72F75056B312737C
+5538EC44A03324D1E1673B30BFBDC3F7F1E39F7E89A1A892F400A067C626CDA3
+4707C44558CF0EDFCDFF49AE1688FDC33C0B57B8121A747468D353DDCA12DBD2
+BC67559A8DDC13ADA201E39F2F9E9EF489DAE46F67A4D7F0FCFE5903A3414CC1
+8AB5B2D964B5B61EF371F898F904D7E0C2D61029AA0AD17A67E47729FADF757A
+A480EF93A14679F98A95578342341844D7269E0E0097C5806F57423842E77D7C
+A61CD293CFABEDC397979618F5FE2316FAB4176CE3F61A950A54B2F9A3DCABF8
+33947FB1B3E95324A3E647349DE49F4FF49F22E9063BB476E0AC14610EBEF55F
+925B1A75F831C3C723DD24FE40D8AFA87D9469FF04CBCC871291BD6A3713B5C6
+D7EA7B5D5DDFA9CA257554746D78B2B36F4516D9CE6FF8CEDBCB31D030195FEE
+9BE3D95139B498DFEC44E26CAC2A77B010FFC5A1FC4195BD901BDDA758EDF749
+5D4FEC73A568063D39ACA617DA80F65633D42B0CF1148FB1E7C5CA25B50EA90C
+54441DD7FDD559ACDCDEA3B571FFE904FB56A0B771425D74B952B7EC2D068A0D
+C12EECD513F6AD5F301F2DD46687EBD7244D719D77AC5D4FC76CDF4716A477FE
+6D5266B9B0B13191B2435B550D1A38B17A750B64931EDA6FD26D8F90222CB8CD
+BE68C829333DE429EB35BBB9F360B2FFB7780BF956B672D1E16730DC876DA3FA
+8DDEB7F18E82E51FC575B1ECD64BD0CB3BA3E76145CAB6C3576FA8BFEF56BCE1
+E24E14FE2CBF26417F9C4CDC4C965D056D51307E9B2FFF45179F188B8D2D0C10
+513CC21A84D27B36FA0A14B70DEC21D427BD874B773C2EAF74CF2DCD04C0BAD8
+DA72D4BEE652348C712A391BEED641D1DB07D07AE62FEFCF89C21B427190FA84
+0269E59BD51BC2774D51CF53B7FAB70546D5F58DFCBD710A56BB6F8DEF87F1B2
+9AA5B8DBCC8E61307B42ED560CB4AA68C9DA56B9A2C2E84A57899339FF1E896D
+2E78151F38F22ACC9C6CD2F0BA1DE426E42F6F8B4210AD772E9F6ADADC8D79B5
+EA761976EFE602590AF7A976D1223F68F86C2E36ECAE00825D964237E832DDBE
+E4FFA28E876C61749F1C1BEA793295A5DC6E29A729FCAAFD6254E9EB5D292743
+2707953576A180A0253B6EB06C815EA1F9DA7887BB4EC2ACA690F21F1DE1B060
+001D1E80FEAFF9505F1087B35F32201F1E0E891AB42790CABFDD8BA21A80DD9E
+4BB15CA6A92C2379BDE2340B54075E1E4277C27FD25331736C1594A0A1F54051
+957FC4AE2E467E386F9BB644FC26D47177AD50F20141469E0771F07407828A98
+CA3F10F1EF3431B65E9A1407E54BE5139ACF2EC930AD3478E54459C5E48E6F9D
+C6EEED387822A391C1AA8793577D8CD3BFA9DE45112128A93DE58C49524A76A6
+0D86BBF7261CE424330B4DF642037C4CBD30A2B0A000B4D970CAC33F828A09A1
+605AD7F89B617C770DB19BBBDC5A4A8F52B1CF312D300D0C0575AA93E9F26418
+3C82C196AD529AA52D0EF942C8731984A668A5C89686E24F113CB5638DFA762A
+90DBF8A8BDF46B1118591C7A841D8D56BF5744DB63AE3FB3538F815097193B6D
+59033FF0418DDEB7C0CFF6D4517A35A7B4633A4350A9F9AA7CD5CA8E8E0AC353
+B16AB3B903579ACBA88AAC575F298B5BE14995A76E3084E578FE5230F45FB1E7
+B7B9D21BED39F5B2C117A6AA21FCC00AC8D1E2C56AB24AA15E97EC484AB788E7
+C640F05DAA0460A0B4E9C8503C20BE5D42029A3A1FB3FB29B0E4B2BBE59505A6
+F808449902CADC5620489BA1ED619B4CE1B83E516231F07472B3905CA8CAD8C9
+3AAE780F0FC1FB4F9771F9E27E3DAE55F75660904057C015CFD3C2C21394AA60
+6F67B304AD1BCF0DED6D671BB89AA2AA50BAAEDD0B1C04773886A04ADAF60C5B
+CECC90C741804AB20233ACDC0EA1CEB4D3C6B0DE10AAC05FCCEA939B19B012DE
+2420BB17D8A1989B12530C1A0C196207F0A653615CE0BBEA3436562DB70FA750
+5EB5C7449E0E797AD2B4D226FFE75A459867ED16D62808ECCF4F42E558D32039
+18CEBDFE50DCAB0A807C02B8914A482166D3EF5DFD7825A70A163B232BFC6D35
+44419E988103F5233D64583F54206F81D17B5C2C103CCD09552DC1DD3C7B014C
+A602DEF221A959CD5BB9ADE1B392D9FECE841BF9393EBA6096E34B0E0F071A56
+3007E9BE2309AA3938CD811C204FCCEB780D718DEE7FC4B54864D6A8EC6E5A6D
+CC5973F89180D77D546C98CC3F0B1BFF6CAE192F7BB56CBBD572C60EB3E32CF4
+351D25A91AAB05E506BB34103633F12F96DBD4A48F7860A5A4AEB2F5AF3C26E3
+FDCF7D711DAC9DA853C4680D3438242AA4B4F31CD30730D2BAD60D53EC855904
+52E504154986FB18D70B388BA034D613EEA3139C9D345A9C32645464DEDA4080
+5AEC9C95622FB25BB84AEFA350ED064F9F6D36D065AB5C3623BB8C530F450383
+27693BCDBEA43016499089AE96EFC1674E0C781C3D57035C9EF683EE7AA9B0D9
+129EEA4005CC5013C0125340CEB995974A3C5115A337857D9A64432C8E1DB730
+34A45C5444799FDEB48876A9FE5967E2DC5CEE966FCC7B6D44AA6646A6866705
+B03AAF1680FFD7AC4532DD9236FB93E06707CD473A784F2A0CCA080614532841
+FC6E17A3EC2071ED95630A0BFFA5E193755FBE6F5E47BB01F2D001112DC9BE21
+321BB52EAD97981DA21ED58C7EE9F1222CDDCBACBECA9EE6514F44EE67F9147F
+4EE0AB51013B5347406C9E68E1B02ADB349F1683D97B11BF372E40BEB0933E53
+47B85006E4D890D1FDEBB3DF28F979B38F35D2CE40C2CF5150C2A3E89878B423
+9F276BD4DBE2D360BCD56EA90D2D2E4081FB2250041D7F91FED785256EF63DA1
+2A5E309CF063606B4D459BFF752C1FD839ED7B34CA9E35C640C74CAEC1B4E4F5
+A4E248CA558D5DD00A353E7DA3AF7F103937A1929A08501B9EBAE0C5E9370473
+D129C4D85F926E8E9EE2F66F24EA474ADAAD82BB8E7776ECB6B04D46EDCBD2C2
+3FEC310DB22C105A3781ACFDC48F4CD510E78DEC88D45551AB54D3E7A592BABA
+2DB6F3D69FA6C76F824FBF91E601E53E9E1789ED7D99E1EA1C2291C2B8BDA2B5
+FC8EF6490DD3689B718A60BEA5DBC7315E90C475DC3A8777F0507D26A89FBF32
+3D65AAB9E6BA8827A40FBE05E8101D678606425930695B7212A53B06B723E99C
+E8F4E1C25B6C605996E3325B03F06F8EF607C53BAD9D0457F3FD3839A5A776E0
+8009C33DA9593A898BE25FD4F9410FB0EF1D2451AC04210CFD2350D093EB0E63
+DCCFD3D9B0BD93201E22FA29EF190423156398838045FFA8A0C2D82FBDDC031D
+AB5F28D4C4F599240AB650E4E464630776A69E189DB265F5CC821BF1FA583F62
+B0F3C95717D0588E37E6ABD75997E4AA9C207B2A0D72A7F210F90B9FE4ECECA0
+30C4C79401EBE7DAB29B8F8CFE9DFD8E2BEE13F60727427BC341C1C458C87C5E
+2BEDCCA1C57859C5E6344E73A8EBF5C69B8696AC909FFBD1827D8627D19C6A65
+6E0B30B4A3798597BBBE6920CDC6FA7641323F9BBD55ED9594D3E7FFB8AC2A33
+103B2AC07CB3F3F13BECF1A1004CD335B66EE50070B73A1995D92D37B70A6D6A
+F15C733F684ADD14D0A0FC72C4C85409EE499DE4880D0D43D254FE64BE0E0521
+299ECC1A0006A81FBB29436C1667DF12806067DA65B1065F5D13693EB6E7BFE8
+73C96D74DF79B229A14AEEFCB3BFA49AF4335E39C4F01EAADC45B8CA1985ED4D
+204FA17FD2292159486E9E16036BC2DB6DFDEA0513B5EAC2E330230B3E480618
+F10FDD28EF6540BEA5176780DF7F6E1F9266C16D6B3DD4F5913F377DFFAEC6BA
+5F46E222AA879FDE24C7EB91DBBFF972AC2E046580E9A08E7743652909CD36EE
+C19EC34657B85CD9972F117AACA53A5CE725A4034B7C5E924E3605475A38D237
+DA7D847534A82D4C6FF313300BA22715F3D860A69218B81A428D991B9E4CE68C
+E7BC3702AE8460E9E987C34B2B99447153F5A3B258946D6D89F165BADA389A2C
+19AC4AE8EC3B6D3DB19A153C9418628784B0451DCA07E395DCC7703016257C84
+B9B982EAB6B28DC56EAFCC747DFF63E58017BF02BDF382C42855D313DB09C185
+115747F9037DA3A1EFCCA66A1273B89D52BB24A71B15D09CB7F064D6B8FF87D5
+2548C8C2F6263B7C1B725DAF2259092618C0626D8FE56BC5503A727A0641EFE3
+52A757AE040862B287369103FCE96987DCA9541E7572169E7685E46CD859EFD3
+ECBA9E2AAD5C0C6DBDC10691C0A33D3F2828EB8750B38A023D10F03545947991
+AE73901A3AF5D159D08FB7B0C14C318B05F606469E014C24373B22D3FB5F613C
+54338D3C963D5A4BA0DB432D1C8D825C86478A9D3010CC2F61B0A78CC9421E8E
+B3061AF22FB8AD68CFB67DC52256D2903FFD2C2E2625AB396F2AD254C62CD95A
+3E1A80C0A683B7D46CCF682C8FF288F48940116EE40DBA2E3F2ECDC5E899613B
+587C1CCDEA37B26DD65B20D1C5410B91064EAA71CC11EE1512C308DC0F531D6D
+321FD8C67E1B01E2B624459F31F4935F0BA76F0156008EF59B60D1C31539151A
+B99E94CF328C6D024D304FD8152DB5BDCAABE4BC885FF9C18D01727D1B07B891
+A61BDBB3AC8F10DE2974A803FEC0CBDBFD92D04A4E14AED1F275B46E485E6B1D
+7C905051A643BC92E50FCC4229E08ECCD400032B99D37D34102A25E12F040027
+F6587991C200A76E654665F8B6A76B315C13F5C3A0231FA0EEF44212A07E878C
+45C71818EBC120E6503681985B6E2F823767E2840575BD1F0FECDDBDB49B93DC
+07952607A2FD0A5B0E70FD2D884DF7EA37D724442F9D012374D35BCF322A8C21
+CFFE14A146B5C64BD584CDC9979F02AEACDC60EBE65EE184621ADFA04D9BBD9B
+C2E56BA990CC24FAF5D65EA80578A2ABEBD053780F2B9BCE917A1CCF34C8AC43
+596A571C7832DA1024A8B274A7E8628CBE9488E6B1D42E2368893EC54E7FAD55
+A207A74ADBAA302A10286906503432A3A61BE8C2A28B2B8C5A9BAFDD1DA5D618
+AB8A6567BD140318C85662F46A19169F13E07DCADE1182575D212FF6576F017B
+F8C0945BC7CC00842B2D74985789C360C3AB4D76DBF4391FA9C1F47891F67F19
+2CE34FFB9ED7B6EE772B510D3390A1FED7A893865BAF4132F91A676FE24680C2
+1505FCED53401B381F3D1F0A7D475CEF103E43FBF7FC1BB18DD57C99B756FDEC
+7E31B3DDC977CD34D7B577051BFDF956AA6F7C61575503474670BA367115D60B
+87CD2CA6233E932EFC1F3E46E408394008815BF09908A5A62B5B314B8DCCB3A7
+9703351F62FF48B58D64792337FCDE59F66B21E948D19BE95392C79EECDD0647
+173DA0A65F174D9359A0E09FFAA5CD2A40D397DCEEF56C5F94C0EB856C40A70A
+E46E0FC2364BED779584F269C4301CA425F05CBF99EC441DB67E15F6F66339E5
+D58D35085D0D659510EF769570C239A67562E92362CF1AEADED5C70C686CD434
+2D6D5087C5254AE1BAC0F58BED650E22E5EC6115B1F05185C01287E8F696F05F
+34CEBF284A65342BE596CFE2C41DD8691C0CD346FEC556C2A752335E159876B0
+8E45B31F439CA3E244274F82E945EFD6F2D814E5237C51196D6B143228FCA788
+AA63CBD035E5989543F1EDB2CBD17B09283DE5380630A194F8189ECF1379EB96
+3977E67F934BF98508D20CC63AE03772C9783D7BCC4997CB8B237F7B9D7479AC
+D7DA60947549215209F86833430E1977C1396CD7F60569847349FA3A89ED12AE
+51D230288DC4D775332BBECD96FC4C63CDFC5C580F45BACEF0517DF7EA5E52C5
+63024775DE8D4EFF10EFE88DA538770EF6A3B11CFFC872CA021275F3311F7B08
+C0991FBCD679ECDEC5F89C1D6FFC4D328A0632CA07808DA38967E2AB1E83AE19
+990360D6E53DEC1D1B15C069C93B58E77785BD24931EC5099E97E151E663CCBB
+618CB4FBB0C51183C367F44E7C9C6760E054ED47DA817941F84564C8764240D3
+6C3060868793279335D044233223157FDC3ED0C07017628F4E2FACFEFC508C98
+B8BE1F55FB67597E7742EE0135635401C0BBC1153DC40FA79A94115DAA111365
+05DED7204200D3D1324AE3C645BDA3B9D710CC10E9080C619FD3D06FE90FE2CD
+15C6512FCF776DEA7DF9157728AC1FEC5CD467762B7FA1CFCA54102EB8E4AB1F
+7476010D348697D06001DC098A7326E85B6AB1B07AC7AA178178E306D2A87DA9
+85FC9AB8117FD688F47BD22209B3A1D0C93083093F236C8E1B02ED15D83C33DE
+11A1FB6FE719BC830824BC3328A7E49F5A873DAD276C56BD1D1AF38CAFEA899A
+389C8A9DB9077118A0424DC44E7DE3DD7655FB8F6992451BDD52BE843AA1E1B8
+2BF771CB438A29F8E4DBFFC4E19C98B084E0E03A2ECFCF20A2AA0779D388A02F
+72FFCA20A11F708D4D7178CB9A0EAC0D1704E183F632076BB91FB29089F2C415
+87225E605C21E978727923B2C197E8078B95397BD9C65197ABB48926A2405C10
+958A0B8BED8642D5C03C13208ECE983CCF85BF8B3E9B4245C591962E858C7E69
+6582EE85C87100C78F71B007C314CB802CFE6B7D0EB9647972E9087A58BC7F78
+B8286D4F4FEA114CD39446F7B78D3C62F09DB1788A6C222622145DB84C966ACD
+9CF1CFEB0970CBA95C434F3BADD9C94FB920B61758EF7868DB006CB9573FFB63
+090FE21FB752779109B0883B8FB18E0AE30B06C311CD740349919AFF8F7CE341
+FE8AA12A4AD3C6E4C5193965012CD3B2AF97F61407D971FF1CBC88FEFB0798C5
+0AC8867C5943F906463B37AC97CC5EE1BAE2A2D5140373E47550EC7C6F8FCE28
+AA925D32635187588D606F97152A350F4F947AF926111ED0156516B8993DF0E5
+8924CF692123ABA594B0456E7B9BA4B02333D93C41A38717E37E7A712A3F890A
+4A5A2D8B1533A30B3B71810A219D2208CC930C220809BCB5F36DB30A6BCCAA38
+56DE7D23ED9C96E2A8C72953B16E260D6E09EAB74156950B04C3257D9AFFE231
+0B62951CBCB49A09030B2D78A891FB32B699742D2C50DC7458946313AE2AC0D7
+EB73B761E55B2A04589FB00339405FC3159032AFEF73AF70809B709AB6B0E4CB
+28623E96601DABB5F1B3AAF774D33CDC08718C0105E23858530FB96FA7C31904
+3CBEE89CDB5C2A793A0069AE0C871193A41F572B66B602B58C0296436D068802
+EA8B67BE1023512A35978D3CAAC054AD7AA7F0DA016F41637F193FC89B795FE5
+E41481E11F63E857A1C6B63D07219791842DD5B6312347D20258392D09D95A55
+3EAD367242BDBD530E3E3E2A7120702CFC9963125FBC187A232A03062ED3F96F
+04B54D0F8A3F5A546DE9E7681A9B7BD3E3C8F705922DDD6CB26F695EC527CCED
+DDE297B16CC18582D68002F76F0D33396783F8942837CA994BA252513C41F2BC
+412B6622652B3059E9255462EE4A1CBCF81140FF1B52EB35F908E6546740F993
+E3C5E73EF0D9FFBAEF5C87F8229FC0CC6B20D23BD9AB242CA2DB98EF7728CFCE
+D04763F6ADD6E73D22A432C21A4F0C7D3F1180CF70C58FA9A058588357C0A5A8
+EC78207946D27D9A92FA75F14B9E4CF297D88906C99FEAA72FB1712B096A26E0
+8516B7EE29A7FB4E371ABC9204087C14535DB58EF419C5F6FB17C19DC140F091
+D622144EB55301F2D6DA0D0DEA492C4A262DD4F154683446B5495F368A1D64FC
+A002B8876566C9877B297CE3BC277846CFF0D172B8639F44DECC452B853D4D6A
+5D542D09467C72F1828D28F4CDBB9F88F49B62291E893D0A34C4210EEE8C496F
+373B478DEEC3CDD54E79437076FAF11AFDCA710FAD6E764A9A509876BF9B02E1
+06A72423B570EB0FEF20F16E6E00A9A0A42D360C6FDB1347610D835EFECA024F
+1AC9202696B454E17857A7A7AB3A256187E056ADD478CB53EB4E59CAF829432C
+75A2F22D94F64705B88AD444343D4F57C131E8E63D1C596C4862901488B32B2F
+8DFE99DC26808BAE9407213AAC51F539525D37717D2A7B5010E4EC5530B5DEA2
+5FD1BDCB4801566841050E88FA011D4697D72578B7996406B8CE183F036D9335
+88DEACE05D25498E2CD79CF1A747487C3DDC42130FFD11286CF1875B4333CCFA
+8442436B13CB80D5A89F3303870870E9548CB2A9E570659F0B73CCDB5F1009E9
+118CF5B44247762DEDAA6FBE729A3214B5766147988437E72B0E8B32CA1DF1DA
+AC8D77B8F8BACE1D8500B6D58BC6A8288C126461AAB0EBE1E2EE7622FADB4D3E
+F160AED1B52BCA0A704BECDED7CA2012D6FCB2E98CEE74A2D7C467785D5210C6
+05575C75DB41191ED6B2BACF1EB0F6A17D1CCDE10EFB0D1623C49F3A52C44A8C
+9EB2AB272EE869841F39E1E72D750D1AD5CE2327A098F9D13C897BDF0EBDCEB8
+F15444E8AA1209EBBDF904850DE4571DDB125D34F143755CB048F5C5AF3B3ABE
+EF05F5034BF348296F09738C06FDC144B7713132C5757D9A8DE365EB21C9AB5C
+424B4930AFFD7EA03928BC200ACA870D65A6A87A9F6A885C1188387F3BD8BCF9
+AEEDDDFE6254D6AD640A25BF742A745F33F4722C5EAFCD3E67CD098491971121
+02DC643FF4DB71A9458919C8C8A266FE20D3637F0188D2ED49481CF0C0EB0BDD
+F7460E837FAE3289CDF78B7CAA67F52B98E04E5ED744CA9A8D72BCA22B78F19F
+14EF24C72B7D483D2F03815AAD8236E06FF5D1C4908F8EC89300E21D2336E022
+E7C02FA6266255229CA7AD057A86AE5CEE956743CCF3763B95251D4F10013790
+BBDB6F6EE8114613DA0E265DF13B74ABA350F5BCBBE53EFCC074F6F19611D88E
+9F276F52BB62CA550F62B16A695C932E3515B942D2686ED2215CF411285AD334
+A63CF8D4DC2CF5A824C80DBCF7708808415CA8803707FBCE59B59523CB6AE8F9
+08E3D11996D3D7808D3AE1302149BE86E3F70946930A5EF776A234FD37D5584A
+495912798C385486722D32A6D01341AA02787B42D289F23DCCEDF67F38E5CE75
+1D768A05209E55AC5AF03CA58720EB0B8F3266AE349BE0886AFC8115AEB45FB9
+F8547736A1E068674FAA085A41178D3C2A5030A622C75629F6E224BCA766E086
+114EE50337CC45D5F8F39D8F782BF4341DBC17811ABBDB6FFE8D8B8EC0813436
+A0D092C1AA0C92F0092D1B4A6D7FBBDE61D570D5B74480344C9666FC01CC07E0
+8C9202E88EF265ABDCAD12045ADE417D3C29D837A4DD066FE141697611098E81
+8100EF53433477802DF070E88B76A3BED85ABF5B93058011C8B16CAA0387A1A5
+730FFCBC09DE20A017C911BFF4A5B4DADDEDEC2365FD178D3A288194FE5AD32C
+A9D6AFBEEBB05A365462F9645E03F37ADC4B46C80A2305C3D959D842C7DF5CAA
+F65A4A8FE43F42B342C3B3D97FBCB31C7FC441B6E8E01DA716EB38C736B3E968
+D0EED472103E33F1624207C63E02C30032D9BD4620224073CE14F2F5F7F3ADF5
+7E835B168AB8C24DDB7C66523DE038CE91EAA70B60FCBB45979440A641F3B9CE
+C032F560E902653714B803245C0B8BC46A254AA867DA7083EB2273DE81FA0F0C
+13AB83BCCAE9ABC8A33475464CAB21974B4F6B9FB439DF8C1683E91C70F7A22A
+D8ECE10D54D664A2684E8753448F49342505C15328708BAF94A2089CF44FC0D8
+0FE83E1860E95BD2CC330047CA486A4C1DBA61548617B0711CE9F2FFC986E9DD
+69621D48462A8EF21A5C730A9AFAF9FC340D06DE2E1AD10BFC30FEF90604D72E
+C151649F765A1A65B09405EB10149B2F9C3B6CB8C2498A7FD69C371850A28E15
+D001888E8821DD7A3845F2C70EFBBB08300D7CBCB976831BC2145CB8C856207B
+1ECA9D27614F6B1534AD17EEFD6DF88411826A2ADC20A9E060E79DD9B3FC9425
+A19CF213F2B89D6B71409C781DAC8DBA00314319417652099BD7F637D65A9CFE
+D3ED843628C740B0C7059338B2940EF373E851F722C2B475BFC1C18699148E2C
+E0FDC3C012829FA69B8F42C08F36767154AFA79131D4BD6E68AEF4221B83A925
+D384E5CC415DFAB15458B1E867A4D2BDB558C21C8461677EE36503FCC9C4495E
+EEAFBD937BA690826FFBB0D5C6F855BE42C907DF11C8AC7AAAAA98031533316D
+D6739FB3887E2460F93991A0A7DAC9F41396638680899DB6D934E5655F9F4C27
+492AE20B322D912174F1F0BFCC88C24BC9BFDC1777FAC99238B2EB55A115C886
+CB30CB984680E6C9DC554954F5FB25362838A3F20CD715EB23E44077AFF2D5F3
+EE0407E067C202133BDF89600E40B5B50CC2D5AAB17464FA917D30FA36FAEE98
+5AE929D6624016536A3ABEE523CF597AE6DD93F51F67CF0F70356089B8398D21
+643DC8C267263301219D43345E0F60D08F9C85F542CADEFBB77A8C82CBF9BDFE
+094BB5B53A91CE560D6DFF007A94A2329D072C415344A6DCAC2C3246A0A9B0B0
+AED75AB44BA60A30E06B375690DB237B340D358392F0D36CE3802638C638ED07
+334102999B4DE2F010BBFED3E2D07124E37F44C7D2BB1CDF608D76B30CB4A038
+5C483979E2A89FFDFED4ED4C56C301137205D3257005BE8A59A2A18E0FD97413
+5F9F91940128A6D0857510F3DD5EBC028F38F9951EC6159B2E7965782C284570
+8BFFFA180ADB09FEC193B7DB8E447DC2DFB0EDDD9FB0430D9FBE5141F714E2DC
+AC2E2689F2A24C8FAFFB6ABB59F4E8874C588D2BAEBDB1F6DE0781C66C053B7B
+BFEF8E986199F33D52FE9448B67BA40B7C970CBC92B8C06030A9A15C63233C19
+5B444218C571B9BCC07EDD39417F43B458F53B5EC2DAEC99BC9D4F83C4FCA1C6
+B86EEB2B0D9698C9DB52F50F06CB27B149D3CCDD21174B17955A68D9F8195F46
+46EBDEF81EFCC5A9259072DE9F0082CB8191D8F536A729D544C7683B7056EE10
+8FB8FC70052D988D75ED34A7FE10C4FEEB105A0EF3C2B96C20A72A77A1BF5DBD
+DCEADDF4D308744F7A7397ABF6292CB1516EDF945D7CB90147E5213FED1E0B0A
+5261A049778983C13D1C6A916A61773874024FC2CA69CB563708A77DAC475396
+31ADAD54ABFCFBB918C9CACD6A281139311947DAFAC6CFD0D4CABC9954EC3176
+CE6D4FF9E182039BEC3E19D08C6B70D4E93193E4CD6E01B95D9A00E693E8462D
+4F49F92307515B0C76AC4FC4D864BE0A47FBAC55FBCDC8C7F299955B7D0A7BF0
+768B24879D38CFE5ADB9BF450E2A5F6A4992F792FAE4669D81778EBCA2DDEAAD
+5D6FF3FED569633C82E64BDB2F49AE6C4F78E88DF6FB64856F81184DEB825149
+1D1752D36B6DE94BAE058D301A6AEF8D6447B690AA740A18F069AE107A6CF257
+0A9F8543E94DD9718EF1FD7ACEEF0706A7D5672C60261C90BCA5A5F88F111054
+1724ADC2E19E1114FFADCE989F02C2473194A361C4A1C190D82EEF2B4261E7A2
+B794A03F65130DB01BE22AC9F007DE1CF647330A5F3064EB1F4BF688B6A7C64E
+801824FADBD122B593B281881C014CD1896E76CCFAEF10B2D9FAC5104A86B93B
+261EA4B7A9FC1A46BB1E58D1BE20C07B5487282F2F6DCE16A27A5BCD82777DD4
+B96FFC1A83E4E0AFA129514FBF8270153A755F289AE491B9106E9F388D9C8188
+F8C4AB953C6DA15B352C9DE6F0909AFB893021980AA28FF3B9B20C3858FE2B75
+67D8986326BD73917DDB4BA8A38EC38515582A0930688E8E0608E28D504BDE86
+1AF67BC7F5D148AAC191E517E9FF35E03D160B089CC1D547E84FDC8D5FA17CE8
+5490870B089D4EA945AA47FC2B22ECE37CBBE766C0B38746601588CB91E14178
+9C6FDBD71BEDF78711AEEDE67015D056543AA7A7AA491A4FB7F3CDA7400D4F02
+21B8D1822FB22AD9CDEC77D790F693712507FAFCF7C7B688D61D791C5AEF938E
+67BB2263889F70775DFE31DEA89362B2A354A66341EA25CA2B7D0B9751B063C1
+43311686A0262E6516BA3073B97B551F62B171D92A093BEEAD77F518AA47D27E
+EA28F94A52B4F062EAF22A3BB55231C02ACA8F4D24575D1B20871DADAA50A45D
+9DBBE67E40A4E7C73707AA92542D259D86CC2812C03D45F55F1F106389207307
+E6F819F6E72D4A3D7C7C35D501B8B4DD87B3C5245C239D50515A9DB6E6F63554
+3D539FD90D037719E641B091F043FF90DB4BE267967368ED11C7C5A978955AF2
+7E3D3FEB5DB2F73C9F17E77B29E2518C042231C0A6149CAFB0A772F2A2DD22D6
+0950A033E805DBD139D32729595752AD697749DD3AAC4E80B8EF7192A02C7E60
+C222C4BF0B4846AC80D8A503A13FE09D1E8680E701308148D04684D72F5D3924
+80D0DD922ADDC93E6C9A92746DF9F342AF9584492AEA82A3EC637875420B7784
+14B139E1540C94B5FA115AA2A414021CD04598898FF8B8634AF360B9223E968E
+AEF3F4522034DF40A8D445DA9BC639EC4A33315DB7AD426B1ADB9F75BCA977CD
+3FD7E509C26F319B5C4A33C82FE0C6DF3BDD7DF26A21F3B39BEFDE002A1FCFB0
+817CFCEE79B333044FCC04B0B4A9A95C35600BD6265DB61B5F6B2A679A7AA0B9
+FB0D6E5DACA9307FF3B847DFB6EB2AFE9674FF68D5528C7F5E5FC724F704C0A9
+F061FA3B46A4C382842554BA19DC3A9D452AF54B47E5C3B24D62FCD2F195AAD3
+504443027AD89DC28CC0751F1FD6BC6F730CCDCB1FCCD3A8F9984B7887A7FA1D
+017F337337FD07DB4DF862A8FE056259BFC7B3A8451BD1A55DFE8B72FC716CAD
+82748E02BDEDB0FD7965C2781CE769F26480D82DE5A496FD5DC8C262F2C9EA41
+691B450115B1540A0032E7CD4A1F77C1B2F9F47D60F30E4A9EC3F9B56E6038CD
+00660BB8A136DA68D522DA12EC4CA4487D3563E42A0652451F406BDDD67A6733
+7516148E0DD09086F08C1D40E7EF70D176E974431DA1F2ECC17CB312C85170F8
+5AE1A8D6C0EE3C6835D853F64511A6F0B66F6CDD08DFF911A9363D16F4BAD56E
+0BF03DEF1B878D1939AC19A126C5CA54FD0FD875540DFE10B2CF97BD0A11A681
+7961AFD1FB1962BD7CF163B3B9CC8FB4701D40DD739AE4280D1BFFF8922E9C6D
+A4A4EBE6503CBDFEAA86A0DD12A3B524D8FEA8827E715DC3B7CA378466BCE60B
+7FFA482662E85514643C5ABD7210F836F591662F331E51C7943165F8609E8A73
+E49AC4769EAED66D075AE1BB0D259FA08122D8BCFCABA7F160
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -3645,25 +6647,41 @@ FF493BA9B30F2F8D1250D4B1D5B51BB6219C673FD0145DD86900398F796B8AE8
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
%%BeginFont: CMTT10
-%!PS-AdobeFont-1.1: CMTT10 1.00B
-%%CreationDate: 1992 Apr 26 10:42:42
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+%!PS-AdobeFont-1.0: CMTT10 003.002
+%%Title: CMTT10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup
+/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMTT10 def
+/FontBBox {-4 -233 537 696 }readonly def
+/UniqueID 5000832 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
end readonly def
-/FontName /CMTT10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 33 /exclam put
@@ -3760,482 +6778,668 @@ dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
readonly def
-/FontBBox{-4 -235 731 800}readonly def
currentdict end
currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
-38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
-D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
-EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
-A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
-F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
-4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
-6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
-A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
-E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
-1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
-452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
-8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
-5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
-DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
-BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
-741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
-E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
-E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
-D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
-C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
-726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
-CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
-7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
-7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
-EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
-DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
-ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
-B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A087FD1752DF68F55B52B4DA7
-48030F2AA7E570B3D56C4EAD367B9B73FBC0A7356253233006178B9A6BC19081
-B815B5988AE76FE6FAFD7AC239072B1106A3F509381AAEE79B2F2154CAC4727B
-D199CDC8B4D05DF4BA006982512ABD7539E28D937B0F87FF79A3F84C29ECF943
-A8DCB8BDF8EA9E7A0E7CD60BC2308C96B3E889C797D0FF28FF4847016B3DA141
-E76FC6BE78A6EE9CE07E651FF86E720A1A1F075972D36E5C55162E3FE26BCE3A
-814BFEB12D4C5FD24340CFFED499C7CA183E57EC4F12CFFBE3291D43F7270575
-C6C3306F832EF182ADD0AA14C4D8669A17C09F632406AFA195F90C4DDC39779E
-EC0A77E590211592D6EE19563963225C06C2F13265EBB5A6CFB7C17D9E77650D
-11958305727AF662AE73AD0E3ED5F7E7086C5A0C3548A8129575980B06C715AF
-DD55C8DF869BED0A7883491030B1A7E82C5EB04E5A7D952E716DD8F2EF6275EE
-087614CFAB55FCE2BBECD7E8D9C90FD8359E929D5E0A416A23BD58158318B4FF
-87B095EB63F7F052B3A77F136FD66EB2C52BD46CD7DB3091A4B78A607112B12C
-4D171B2A00B78B0E1C44B0D90C20D9244281F5123DC1F6063F91E9E3E48DE78B
-C862D848BAD073A4FCB5EEC9FF54B5AB8E234CCC3C7439C62ABC4A13EF1B8897
-ABBF21F900C564C9A305FC36FC7224932F766E6E72C2EBB55953DFE2AFC2E3FD
-33A0C6F0FDFF086E9FD796E7242596AE85B877223532667625E371D2156E4C04
-0D7FFCD3337B93DF066CB6FE1E13960719EB7CB409EE805C08ACD2C06303ED9C
-E34C898787A43C1B428B896551C6FEB50A831C6F8CE2073EFC662EC286CB7555
-A3B42E58772E82FEE206948B8C439FEC5E4ECB9E11DC3A4CBC7611E30890E408
-637A01A2118441B4F9467A98BB2A1B03BB2F5D8E3DB7D1D15C188D9E856088EC
-B762F07B1C06024F7EF53A2FBD60C0A1F4C0275D07164545250ECEEF8CB15B04
-A2D8AC44DDE818C4E3CBD2A5FA0FE49750886CD7CFAAF8B780255F89DF7F4F5C
-BB594FE7C1597DA71813C2952AD3E811524459EB71D29696B450C924B6A5C843
-8F36A0F1D7DFE796FB9564333666D74AE614D0D698FAFF20F83C86524C894BB0
-272221C060544F3B653CB0E4E4F82B20D7530B3806E6A5830852C58070177815
-E287C847F19F64E854F1463C23DDD80093D6FEB8BAA22C5F05C21F99FBA7193A
-EB7CD49CFDF4308C6C68CC955A45FCFB54FCADA9A3BFBDE086B057DE88BE335D
-280F5338D7E66AD39FD08F9B55884F1F377FB6869FBABE3EAA4B7ACCD85BE672
-724B4B8F236B0889B6E7049CBA558A89F17863E82DF145DB8C7ED1F36332DE23
-3C0053B74E850FA14F9EC9EFC23AF18E153CC96FB0FFD910347370E57F0D81E9
-4A83E2D189EE5635E85A2BEAB5B1CB974546BFB2FC2ABA1E15DC0EC1BB3AF1DB
-B2F93538B92F504CBD7AAFE36F5F3AD45EB16378F169B17869FE81464CB826CB
-400D2F5441A496B6C60A4F15FD20ECCAC1F8F91015E7E1C1A10B7992A1554E52
-9FBEE905A3005336E49CB04BA7223F1674C0BBDFA06ACA34F7BFDA56906E04A7
-4DD79EC7E79B021A5008F3B1E04712D689366F520B0FA66A558F957011992728
-561BF4B75C2BE07C4024C172085E51CCC5CFA439F570297154CDDBB3AA25CD6A
-3004B936488851BA1E814260C06CD5479DCAB1A6AE21A5F4563024F973D738B4
-0DDB6C6DD2E3AC21B4F6D95CF9AACA782919F5D3E613D61F3224A982AF485C8D
-EA0037410EB70AB7D3EC174C6D5DE5C9C5A1220EF7C2B74499ADCEEFF077D1D3
-50C1124535F88C3C3F66477E42F1932665AD323E06B398D2805B9CEA632F5B1E
-50FA587B102A35E2F15EC22DD66E4DF06A3F4BB717A3ED7FBBE2458EB4D896DD
-AF00D1BC71FE1CCA27890ECBF9F0AF01D3E65CAA29427FAF06B3BE1E640522E0
-73B213D04491B93DB29113EF72211E31F4C5A7FD58451946CFC15FD805112FE2
-547D1131A46710DFB75659A33695FFAF3CDD40AE5260AD6766DA81DAB0A6E96B
-E89D57AAEF32B5EDBBE9F7CC033BB2595CA3FEDA2ABAC8E5395EBC35BC112FE9
-67EAF1F123228538091483050847F8FB5194203609502D3A09CDE811EADC18B9
-F039593782C27EFA7697182D6367E88E326AD5622C5A457FE2644FEADA88615D
-9DE3E483BFD9329667953CDB86F9D2F0D4F02DAB8A98FDEB1D17CAAED9B6E2E6
-0C55C1FEE25AB98FF59FC235876029CE03E4A713B75B3163BE3B2DC0D4472DBC
-473E10400C0F57E627AE97FD0C1CB0F78FD8E2FA831A3D2B1C2BB3F2D4E812A4
-194C8732B0C525361DC8480CB27C30CD4DCFF01318D2EB4F5234B4A42EA8C23E
-7B3EECA41B8E4F54D5458B37EF0FB2F49EB19F4EA8AD2B53820FA36E93DD309E
-48847F5C01B1118ECE7D0186E6B8953344EB775D655AAAD7BCDA642EA2E39A15
-855C027CBC0E3FA752900EEB464E2D39404D1B85072B40834748C6F9C74C5B6C
-3CEDE988343FD984CFE4B856A481E60E2E65D3BB41BAF2FA80AC0BFE381071C4
-573C6ED65C524FF777F34D82E9661E4A75E3878CC77BC59218244612219C5A92
-E95B90EC2C38614665550026F1730D11162F19D841681C04C401E102C047541B
-97B9264D86F47E25A347696AE5EF0FF3ECD9BA32C92901DEDD816F7D73ED1216
-0A98771892472CD625A8F7F19DEFCF5CA2AE57F8AD3898F2C1005B187DEC6F2A
-A31C32720EBC934178E0E9979013B3C9AEDA4051DF63D8C903A399DC88F83DCB
-A73F1B2083819D1BBEA5235F8FE1D098F32A2BA6274424A99A4975FE4BFD59AD
-79B40A8003CC0AA728EA79D6BDCBBD73DF45B7918BC099C5BE4A068BF64A30B1
-C39442CED98AAE1BD495F6CA32D564A72E3BF753B49E4178927E4BBC0F06048F
-96DE7C30AF580B0BFFDB330B3B87D7F6532A24F403680BD9F15E758CDF04EB94
-E83C7E644FDE5BEE7CE73EFAC75669E41BDFB20A5B8ADE1137378DD8102A0DBE
-19499A623770417CBF5211395A6BA9F4490F4707A46F1F9B3FBE642DEA0CA053
-9ABC307B1E71DC2B069DDDBB4EAE378BCC75AD61DA900AF8BA6DF0E27A8D2258
-DC80205305AB6ABFE3726703E60869BFAFF1874F3C0E05FAD9C05D7D89ECECA9
-DD2AF5F777D7514208697E712B52448B364D3ECEFD8127043DDC9D0757B7CC37
-5CDE8001D007A6E961EA24D7FFC92410F3B13A32946F12A50DFFA256249BC8D7
-C1842FB84AD51B41008EC4604F6B70990510EE13E6DA34F864A572D99A13FFC7
-3609EF2BB1FCDEDF37A6018248C545E086EAD1BA1143E74AC60B684E755E59E7
-36557B915F92EF78FC177621D49F777A2AF39F3C2AA6EC74750AAAE08BCC21CA
-A71CCDC91DD45E6050D83ABA49ECE425B55EEE137C55619037F1C30530BD0A6E
-CD2004B6A040405064D7E87C55536680364E09248BFAA3FDF95CDA0708E55F4C
-F7D0A92A93DEE0C7B69638F171B28B7F854CCC6EBC6AEE14864BF5144EA36D46
-A9C297225AB0325E28EF6BD06D7E40E3A724EA1E50C4C6163B195CFFD5DD291D
-D7BBE9AF4324A69394117EFD62F08D6BA6A8F0AC3E2353492999AF28FBA758C3
-A50B6840CC72054355E6CBDBD86F683537A4115049BC1616BA35C2B0B6F5CC32
-3F6831DE4E6029310738DE23D36D2C6E82F04EB675FB89789F74AFE3B8854250
-51812FBEFBCF162947554324FADAB765C74B6DA89F60A734076D44BBE45263B1
-3FEFEEA90EC7948F23F34D4049087AF6563692417DDBCDD5A9552A373C2528F8
-0318D3C0669279F292127CBA40B0ABE08A1476BC9EBFA8BD5D622BC5CE7DBA20
-C689BDAF50D5B1EAA89E296787CC53845DB2BA54FDE363DCC98A7BA256663869
-E9E02E09077884DF1A2A41AA698B7EDE8DAFA621B552DDA91AD1E671D636FB36
-91C62B4D2D4112F2C169E0023EB7521F570CECC54ECA5EBA462049AABBE2ADEF
-E3234BFD71B26DFDD9D34DFA69E5E80FD90406E6505A6798F030A4B5172A7BC2
-C9B765A86ED55C0590E0432719BCD7BDE7CCC7F6B33BD467063D886276C8879D
-E04897A4623111C14A1EDBBF69E2FEDDFEAEB2A785C6D2F0711DF4B93AAA291E
-7F4E0CF9CC3FF0D31953C594DAD014097DA02CBD5AE8828C7E7B5BDA09188B05
-0D7263F164E1E78CC430ACAD1E8FA71001E9BCEFAE47C79846916A5F819CA366
-5734089BCDD458CA1A9E8E17BFF357A91F9A7A8A6E1DEFB121353AA80F1906A5
-AF7CD2E59EE6776FC0DA6574DA0DE522918CAC4E566F13FB9B64EFE79F3A3BC0
-689E3B0676741C90FF3BF85C7A0FA9716F4ED0E329512B66BFB8AEB56C3DD6B2
-24F8D6E23751A8485F7EB46719E9D22618FEE86D5E01ECCF4C6E74368A8E9B49
-245D80E7484DFBC916FB2447852B36EF3F99A82B6C106F786707D7689DCD7AEC
-A0C51AC1A3F67034C16B74994403FAE7743BF02149BEBEF554814BEF31B79184
-3FAB4D2C887E1BEE81B465D12DCDDAD03DE5ABE9E763C440B2CFD42FD16D96EB
-C21FE788C8C2688F79F148AA7090BE64B0EA710D376222FD1590301BA9A2E715
-D33B8C1D95F2589AB0EE476F7046537E27DBBCDADEA1E7357C9D7FA92C2F93A6
-7BDDF58A44966590821023380C97CDE37EF6D449E35EF32BCA6E69DC8458511E
-8DC8AB63171A6018AC9A334829E5978484C4C6E917A5F1C254E6669F4037C691
-36980250A80673E0F18C9E0FBA1E5CCA3BE30B8E7B7188062B25F8E1E16528A2
-F217C18D6A1955482E5463FBF097ABAF7314E449C6FEE56E2695407A8AA9648C
-61AC2BF3B2D9CB6317A9B16CE931D318C8BC9676CD908505568C197D90C2BB46
-06431C999EB68C8216409E4CABACB2BB34A05B697B9DD1E91471A404B4969519
-E25209EF4EDD420944BED17B18DB3566FCB8059699FE416789191EC2B35086AA
-2E10C139E3C9FA0A535DEE9255A867A26656213E85851DE5F51F9780D3A6E572
-F1F5CE64DA176CA810799DC1C60A8FD2A5ED42E613021A19928EC4572059B2C1
-EE441E79CDF7DD4AF7B6E3D3230419ACAED329388044B107DCB4DE91B71EB838
-904B1F969738BBDA064FFE75C6623639BE9924602DDF0C166B433B9D54ACDA5E
-018680477FB8F10621FF32319E58DB672D744959A33E7314A1B3CDE0C038F7D6
-0C8A195AF191E36B0325334A711CD8E25D9C1D257E46A734779E486567481108
-E0281DE96907D460546578DE83A0A01A9ABF64402B48DEF739F4308E14145753
-719CEF720FE5CF8DAD7845E74D502B69DC18D172C3A27411259B8042F3FF82C3
-B157BE242C351830255CF0EDA96577375A70657BD9A2E9FFC54AF0AE563D73F2
-E510279FEF48D79F5F7745DBB492F1D74DA738E6A4FE4364799B5BEC93B4CAF6
-B06B9B8C8D164F8FA1FBBA693204064F2C1806C39910910E02ECA8D092558CB8
-33338B359D56483B7B99A1D8137204EC1AE70ED3D75881FC3B00BB9349AD934C
-81A9F285312FDDC77FA923B18B1873D288C2AAF2E6D0AF90BF25A982B843789D
-5662D6A2DD58E065026885601ABED4B09CAAA3116DEE6B430B15BE0A121FC1BB
-FDEA5A501F0798CFFFFEAB5101E707F1A00C8E014A3561FD39972EA9AB108EBB
-960AEA7FF60C301AD6CBFCAA7D35CBF6F8462A4D76C4FBA6F3DF6BB762DF7900
-9F69529AB4EAF96C2866444B257160E8822533A7A1240C83EC18C364F577407B
-4CB314678D2511735308A1660AD94B8B818CEA4A3DC00C5A1C978F8BB4E0491C
-49328F6CDF95BF620AE53056364423841D84418B23C2A447B0CCF8D8633FE2E8
-4A4AC1C6C74627EECDC994059F1BAE9E6B10FA80D767B3FE97BFFAD413DCB0A8
-495039744B48266278194D60422D6E7C74D0DB45ACF217797D0C0678EEB60759
-6231438CFEFB346553A7A447B50807EBB6E885B5A49CA9A350EC4A8C76EDFBB3
-A4DA1C9E3EFA193CDF08553302998F20055C84420A4C5252F764CC4B7A4BEF6A
-A09170EC417B296DD9E2301CD8EABE4A087E648E0525A9FFAF26374C47FDC123
-82F18C9884843864F418ACB08041E7896FDD395225532460A8194A8DB4DBD824
-1C68C6665F85059E365EC0972EC6465E2D8867449907DA6692A021F026F437BD
-D02654BC11381BB6557663E0B0B8C4F2FF69E4776F4EABA69311BC1AF8155F7D
-6D3A418BDC912CC7CF1A4BBC8A1376D8B4DEEB6585416959BCA4AA08D4520C33
-EB054DE53140992D0707210593BE62B3659E3E493C4562C2E99CECA143791DAC
-679896BCDA0699E405957E17DDBD243E65CDD7C9C8629F29A2078658746A7779
-0F75BE24E2DDBB672B95F26366BAF036B3C23BE4132D7362E76D4183A469E0F7
-29174711ECAF4FD9A923E72FE58DF2854C5537E3626317D471D1E8A922C9BBA4
-CE9163A4086AC4A231C2BF35FBC39A5BBCFE41843CAC7D81A054509D31572BE1
-596E0B0B563DF2BF0E57DB4943DAEE35CA26C8433FEE4FC61145C77F65DADE75
-62DA18DFABC7F4194906F53884E62E77D8AB3E099776AB93B2B4D0C98FA44C71
-597202A2643942795EE8CE098FE26F1AF8134F1E75FAE18D563B1FF43A511C9E
-EAFB9EFCF61490A1A4FD2CF354927B72C5EDD5D62B2F3F5006D6130562A13BCB
-1B988A994A8D68B051A5A821CCD5D0F8D9D49FE7CD04EECCFD7A554CCDFFD77E
-27AC4AB5BF9FE40F90EBD066C483796CE1A364E95C5E0CF2154834760522F128
-B2DBD1F4F73347D42635B2875A23597C35A0823CC6F71E49598125411BC9B2C2
-72470D36DD967C947AFB031BFCF770FE50551A134DF8C5D1AB1F09819569A57E
-E23D4E87C0B52CD02B0A2E3FAA7D27A94359E82AF047756BB769BC5950A75207
-78ABD49D174F2F69810AFFA9336A52D6B93B004DCA5CDE58475C0210E0BA1D20
-FD4FFD6838EC56A0922472D4C4EE0CC481574BC30618179E733EA40A48847E14
-A75BE7717CC5DDCB5B0718074EAB6FF07CFFE794D335B3A13EB968EA8FC5B08A
-13B38AD1C2C964E4B07E90B9732C458216B028E07DD593A5B767A2B415EFE7DA
-951FC07800F11C7E2EF9BDD152BC6815B7F32117F49FE08BD79BEB949003512A
-327F3F8FAE1767E7842348BA4373649F1A21DB2C56C081BCF9FA4EA86C8DFF00
-FF45C4F1386CF8C2C4120F3F6019CEBB639F2D272D08C1763A470D4BF6330DC8
-43C069A6333113C3A0C93471486EFE9BFC02B760C7CBB2E9156087D09EE8A178
-5EF50B34994094C3F0015EA2ADB6C920F4302FDEF128711994875551C4E883E2
-DDEFFAAE11F2234AFDD96400BB69C1B4E6EFD75734C586A10A54A98E7D790F28
-DEF7C7DF61FB23BF91AA700AE585EBDE74E215DA49F4ED466F46129022722086
-8884D8E026F35C4BEE7E866DF8E0846D5EC3534069B713FAB02D4B4EE3B44E1B
-656F30D629D40AA1337786C1FDA08EA1217AFA4A6E2498B334DAB5461A70DFBB
-5AA5686C89FFA4EE82D81CE2B28334DC5C032487CCE998616F48150BA1281911
-076E626E5BFCC56A0A4CDC559F878F14C2BD7A5148C1D8CC303FF9EC473354D2
-D4FB0F0F2AD0CF182A28074ED6552E179222570DE0E0D44E8FF4DB36C3AD6487
-C4BA53C8548714A69FCF8E3E5202F09469D7447C6519AE902C1D611A720BAFB5
-59E27A6DBA73624F44B4ABE0988BA3450F82E03521CCE8EDE8BE7EE1223B575A
-DF9A52650E85545525E6F121FF2D1531F156EA9D5594239AEA2CD09EE28ACB15
-A445E11FD1C031188DB61881F474D49425C084489A88A47D681EA68E7FC4B1F9
-DBB552063A02A0EB51125E9B2CC646B940D46FF457415F9565892DEAC030F08B
-E4C10DC38D825C7597394C844CB863CE6C843F67F2E1C42C4EF86AC7FB727BF0
-224B5E91BAD99CC6638AB2C64469A81D8B1789981872ED037B3A34BDF3130137
-80FE80FDA65EFBC11A08B98A1AE595F980B577E22D3CB7FED1D4016F5290ADF5
-47D7D9BAFE39F294582F2C084003E9C83FDB9EBC87C8B477CB8BB359EDD9BBC9
-9368D6605E1468A20909831BF602EFCEC0D5EBA99A2223E5A269275C8B221B3A
-F9226654185929F794E1979ED18B4CD36152F973433AC67BE24B9D953254FBBD
-B644CDF3BF0E29A2C72113DC486E46DED2CE8F8DFA8B0F8478D1F18C9AA8E054
-A31C3DBE84ECEDD85DF6AF9467AC2990ECAA3384FBCA1BBE598AA0D6813C859E
-1520B88BF30ADA910A6AC3068A5B8CFD76B7F0F6F4AF4C32450D628B5320C384
-F23A2B5E8756895584155226A30F8B0437E028978491DCD00E79C0ED58DF261E
-79B9DA17E57AEE03EE92102EAB2D63E69A88EE0B1E2087ED0C0CF6475EBDC3BE
-0324D1FC8F7B90D8D807533E5436F2C2583B9629EC390403437FDAC908557894
-03054A6DD6A3586043A9C8BFD0C7EDE1229DBB9F69F7A5D20F55664D061F6517
-0051C6B3CD7338241FB403F2AF77DAB1A8EBE1650156D40863EC1957372BFDEA
-BA8D0BB1193CC5BEB5A68C8274802E14FFA3ADCEBE19070325B1BDB960CF2988
-C0F5A9BFD843C515ADEC8B8AB02B2891EDD7502D9F28F4E58D8F67D1ACAFD0C3
-3531E0C7D1554344CCF90AC8696E83A3F968252981CAC09653956F4343B99D3D
-4F17CB8BBE4506B354439B70F2024871D16668F9DECD8EDB872BE5E6ACC406F1
-1DF4E3ADF60EFED57D1C426292970199BB663405236C6A907B6891C6190E87F2
-78D9142220FF295C7BF44AF61470798FB8CFBEE6973C69DA1CC24ECB058AA753
-DDBFD92FBB15560EA19D5D92F0005B74F06F0EA5901D231996E0866389DCA433
-E62BE48479687084C1D67BC592E592939F806FA8BF5F0D3F644B1FA6F056DE0D
-51D3F212C6818CB6166317058C2A0C07AE2E324CD90D4EC83CF4819B10CC348C
-6DBABA024A5FCDAE6E288F82DA060BCD16437F07DCA43BF1E5A1B402F16C78FC
-075BEE900B4021A1019C4A5ADC33230047FF11FDE8FB775DDA267040A22B4E5D
-6012F7E72B8BC8DD3A81369A08FB81C6C4873C2147D03D4181D6D8032DD2B610
-9C44CAB50C5BD8F489EBF01C72D4198B66EEA4E976462F8874143640B82AE57C
-A51EDEDE75A9A55D31587C14F8DEFFE69F75EA7B95BF725CE9991FB2F07AF568
-5AFEB39447B728B99BE0502BF28DE1D92B15926BE4E3DA2E7BB44A24836A97C6
-EE3A2080E01DC6514180DAF9C055F4C94929D34F193920020505E62804461630
-9F42C652F9D5681C91BE23DCB0C634247E739135F925EF3D5424767D5F5C5879
-C46F2E3395E2B49D282622FA4C18475FC52BA7AC4DB7C1AAD65352E66DB9D962
-AB975C01CC6490490F35CB358D77DF26703B356F5C5D80E25091CDE93B39BC22
-AC7F7CC6FBCBD39C39F7F8B41B3286CD39D6DE2E6B2A9AC1D2EE8AD1FF53AA85
-C34B2BB3A2E385B980FB5F35A1BECB5596FC2FB2209828F3C54D01B3D867B391
-033A752F4AA80C91775F9CB9BE939C850B2B322FA948907302D670F2302DAE93
-B5F8D2B835DDE001ECEA3B67BD3D620BC6D1E325C4B355985A129CBD6AFFD2D3
-5147E4CEC0209A8DF23ED77AE818B88A3696257268536CEF2DA90202ADF21C34
-07A0383E17206532F5F71061E625F3199D72E461D04F4AF18AD91B8A09E37E5A
-46D2E5D3634C508197C6CBD81F3E2BB8C759E331AD1CD54FCA815B92207579D5
-B248F2A1BD2B725117C76FE754F5D3CAA9F642D29AFE61DD78ACEB9F1DD67764
-0AE3E795C8016E150C92CC4D2EA682D6808DCCB4F24724541F856C29B3ED24D6
-64F1BFA439DD155E53F06FEBD8DD73C7C2D933CF70D9001707870C2D06EAB2F1
-649B32FFF09C7A1FA4C2E7EC2B3CEAEF12515CD401C582A315906EAE1A0D51B8
-1BF625E07761AC2BF59A28B7840E8833410C7A3CCFA16E32A0E90E0FDFDC46B6
-7E073A5957E59E58B33CDC146394FB7C860EF5CB1CC9871D3783D189B1A5EDB4
-1BD462A5AF1CE8BA67D096CCBA709C49A6EA7C1233C125155D8FC7E9482C8EED
-E15A207196E74C9D2C19CA96CB1B4852C3DB5ACFE88246F0325169DCCC88F4B8
-8BC213413EC95D2E3F39329B2165A0D1E3B4643C8AC58C126AD9E71B02B8A04E
-D5ED3F93B60A7D1D142A4CAEFDE0FD1C0778B3F9E2CEB4E0058D714FED13EFC0
-F4BC2FA09A125652BD936BDFB3B9C83C182DF3C329E060E983D054410928E4E2
-DA66453101A4D23BB5FDF7D67051BC92152A687620C9B653CBE6160929FBC393
-BCDD07F0010CB35BD030CB5E13A4AFEB7DC0DD5D89F9A638509AA2A4DCB83CF5
-DFC0873FCAA432F351D88B35DBC6129A44A35CB2CE4308979F474921590FE9B5
-45A4F50C799BFB555A1674D1E49CD81DD2EFF2A409626569C64B9C80B5341EAE
-50A011D7BC615F2BD6270981E2D66BEBB017EA4B5E9DC2EF8A7D059C94CDD2D1
-2C2C80FE9E086DFF9682C1BBD31EFC52E60625FD854280CB6717225D2FF35582
-CC3B9924635593248420EE48AC47332745597A5E542C2C375E947BB80F463C8D
-54FADB19A7B5993F39D9E07875785DF6342617F718A660F6A27C9642717CEC01
-D9DECD957E3C8CE1C0CFA3F2F02796EDC1CBE35E7F12C3CAF968D8EFB5F09588
-4277CDD2FB8DB2CF43C82980C9CD75599416218D7F88077B6B7CB579B7331D1E
-2ADCFF01EBB0A43FF5C78B5F4CE0F183FA66DD45BD9E950738FC3E78AB286B70
-FC45C628DD2DD70F8C33E99AD2F3A82389FAE546138FD8609EE51BF337C50EDF
-A4666AE87E764F38A99EA91F0CE63D72CBCB7B8EDDFB72AB57270F33599BE69B
-8C7A9F15B6704240A719A1B2B8E662B5F479ED331FDCD7EA86179971E0F193DA
-27DB7DDD61EEB68D5F5ADDF0827E7A961D0F35D943C89E46909EC09B3D02FA88
-10E8D8B85474248CBEE142D33C5CC24CA4923CDED8A4A5028D585392DD1BC8AD
-61CCE83D7D2371A5AA76F87642C10253D00EF336FF8C5B14BCBEA473577333D5
-5A858CCDC4D51A715859FE3DC0B79BEDD3187ED7C579615394354C46AB860C4E
-13D26ADD1D09B3B86FDDEF1D5232B618B6A8636BDBE04E7187F4CC624CF2BC9E
-38D39A393A0A6E42654329BB2F5735AEA951A1642CF093B06BB7656A23B9A9C5
-487947A4419B1AC4EDD7FDAF7FD0DB8FBA10E65AAFCECEEDA53D3CA4C5F381CF
-8A15DE4D52EA901171C5AC8D8D402F6EC75E898E0756BAD7F206311E74101055
-730DA667F74E9AD40BBDA833EA7439EC939381EFE8DE64917CBFC4E4C0A96A2A
-069053049D14A8CA33ACC6900C37CE589DEEC5CDCBC4153C0DEDE51266091DE5
-E417ACF812AC380EFB7523EAECEDC133D2368C3916A92B85EAAE86CE9CE912AC
-94749AF7E040CDFFA2EA2B78875EC3BF0E72C228B2C68ABA783E9EA17663CD76
-70CAD683E416E6863D21FC2A42F1BD447CAA62A66CAB6DE56B193B3D83FB521A
-82A7C3F08190BC10217F7EAB6876354320F1A63885479B1EC91750A247CB51B9
-1D22EF0D19D48C9893E0716A64ABF1A54700DD9BF0BB498EC874B2266B6E86C3
-2D273A2969F184B9023E83CB245FF9F484C9C37E70BFF61AD20EDB3C2DCCBD3C
-38716C5AEA8465E87C3E9F4B9884AC9E213817E102B30691D25D808388A3C4DC
-8894BA463F8E0F5E3406BAEA54BECA95E934C8E019AB014B13A618D68A89CBC8
-3F76AD4C46060C0FF3D0BEE87082294BCEC05BED477BF02BD9F8D62ACF3AB816
-30A0846A3FDCD885E4F310D56C332CED12A279154275A682438ADA6970E18CFF
-F66012252726FC421A3D772DDF7867ACA38E70DDC25255283E72918772DED8AB
-AB05ACA6477F6FB6D2C2A4C35D7CB877C2F07B6A3E113468B53356947B0EC500
-FF3ABA15ADC0466BB9333C6A1E73EBDDE53986FFC8F44ED9A1136BF27A599F28
-414C8A71B2893F248284DD7E0D887A1102357CD8EC4E034C7736469DAD3BBBF3
-45F0231D7C29DC8D0A62CF4ABA718BBD7D985513986B93B599C912408BBB2BA7
-DB96EEAFE84D1C6AD71FC59216FCE27E179BE74FD7007FBAB1AE2A9ECD11F1FF
-4396A13B7EE4FE5727E2142AEEE4E39941F02E54BA6730086B9FCFA6A6D00B7D
-BC6AA1432E129289B05C34A0B68494019D387AC6161B6585B2266DCF37DC63AE
-1CAFE2F3EC9E584981468CB2B1FF77C7FAF3342B72E260E15B558974BCCA35E1
-4D9040394866724F140857AAAB68BB9EE785787A857D17CBDB0F4CB00844FFB4
-2244AAD459ECCA522F5C590976EDDA6900919CDA0FE66DC39DBCF1434FD7EFF9
-194BEDAB53F7580D169909C31D6FD38EB7A79DD4426186235098A9F574E08DF1
-A03F709A1FA398A545331FF9454622B4CF225E95753037BF7620FAB86E06A1CB
-0B5FD5C82C3C2A9E2BDD2AEE6F3547033D5512045506D6DC0946AF56E87DD984
-2BC92D8C6F1494E6A19CEC6E3CC20CC46465AA61DF9A9CB7D9B4ED157E3DC4BF
-FF6B752AFD16943A4CA7B6954AD3C8E115055F0FCCED4A7A9AC3DF6888724A0C
-1AC640EF479E7D502B2F030F2B43D51996429B40841CA139E8EAA87B6AE277AE
-F8A4C55D4555BDBEE4232DFD1A468548DD2BE1193B3E0C7DE64A944973BA61A7
-4EB28DB3AA37C5FA901A9E7DB175DAED17DB95E22EFAC77CF7D4B0885824825C
-9B6C7B83BD0ECEB934797B49BC0F530F7E114C2B46D63DD7C56B89FE4A67EB3B
-6730F3281453F8B12A13967F1FC1428ED836B7B74C88C893407F13CD9FEB37A2
-E63D62D24F0097F41F756E706C376E1F85EA99FD6FA72611A9A92D3E49711516
-42FCDD0AB37B61DC086B7CE1D4FC559E2436D1334B3FC6A45F2FBFAEA7274455
-AC6715983EF884243D21C1FB3B433634A1B100DE7EFEDC96A2375C370F5F6AF7
-88FF97C7F49A8716AC5BE715578FA60394A5AA3ABD91750D3D92EB2C20697852
-A7701DE59D37A8FBE71FB85C8BB31BE3FB05443E7ACBED3CEB33379E088BA46C
-9F00659840057537B0CBBB92106343FE7B22E1EBDF988D2EDDE8454DE5042227
-B71CD978B414CEFD6CD9C3F17F11D325DFB90DACC1EA8D539B258B36A67AC1F4
-A3151BF7CC34F987932C469ADDE1FF880C6AA1638D11D339181C3AB485D9531C
-ECB30F18504BCBD1432123AAF1A20B45DD783C4BDE3D9222B7090F20D3DD0CC4
-46EDBECB37892190C4E3099B2A5599C2969A2772D7BCEAEF5E68C7BF2FA00DE2
-B955FB052E6C030D9077456494ED80A3E06937E0C47B28B92E3EE4E4D287C687
-E65221A1F3D8D61780C7A9199B373087770136C43A8B2A15A288CC4E89B3D298
-6F368BCC97D573BC587A0638FBD3618AB7AE3385BB12277EF891C06F6F618BC1
-5376A53CDDAC8067BE854DE1C5E554DAD1D067B6236E24C71E05DD580AF904BA
-B6085CC5FD0EF91C7A9D99E765C1A0C042508EE88E882121735E5A8FD6AB154F
-9993E0FB801632B535E6855A2E957D1DC342AECCF2E3BB566CD687271DC01C73
-C04F207F8C6294E0EC5C4644C8FC359A7DE5656D49965F7A4AF7D4AAB46BDE80
-7AAE6A0B0A1F737E075FD15984BDE06E06670A676EDDB0FD7BEFACBDD16EFB6D
-78AC731178AF94A77470EFD8F327A15F1A03300CFC19C9A9C90EF1388E9FF702
-5526B6990D2F8AA2DB72A1B19043045121F02D0212F3E892D1B13601E8324493
-BC4FB860EABE27DB73E5828FDE47C2D83E5505DB2C8491612605DC988F84574A
-5152E8F40CF20B26BE241B1036C9BF67942A8664398F43C4A5F1ADE0EB752D34
-1201D0DEC34EA95609A2DD65A7F761A0BE2FAB352F7AB8BFA31D559D39BC356B
-E796188AC31E0C512B37AA9637604C6656B10F0BF5C8F083496E3FBA6F449420
-C05C5371B16BA0B047F450104834C2FF96ED9E66F146D19E807B4C1C78746CF2
-C918DEBFA52C49A4645CCB2F3C5FF2E4588DDD1CC6832A7991CBCF3D3387992E
-4DBE05C65455EFC9D3F88248B27C5B83DBCFB13E72B24B9A13DF66E68CBACA95
-BEC7C0A6E2CBEE404259455688DA4F512A2AEACA619C2CB1FF20546200F164C9
-DAAD09F2CAAD9A9B05FD59790FB8B892B9A72B3A04F9443EB216E762AD9C0695
-B966BC2510652F31A1DD10AECE493329982E3583A7C106E8E4EDF7186574ADC4
-CF2227B520ED9DCEA96D8FDBA7E227219DC13DEEEF8958EA602FCB52DEF6F9A1
-589C659AAA7A4CA5D78176CD27F7328BB71FADE61224866B756C78329BB6557A
-3B003E15B66A6C307023282FFC3EA63467683B1428DCE51B2D5BA418661A4DA4
-BE4E35945C93F22D9B4467B2A20D1B282724A02D9032F48F2829868163989995
-1B866536E43B6AFD8090ECD4AE576A28CE2DC7BAF04111701A71EF4C3B8E8BA8
-8AFF6E096BCFEF20DF3BF29ABFDC2507896D53E3AA48DDCC77BB58D85A3515FF
-BA5BBB0A44D4FE8580838AB91BA337CE461B537EFCB0D4BD968D0CA8F4B808FC
-3ACB08AF1C580C634AE27123E50E7E42A8C861667238A52856A66E9BBBECB160
-DBDB1DD426A2F76CB8C7890320F7DF50C9FE89ED1405A59721D11FDF2FA2B048
-83B77C164248F7BF436E2007AC9BB4F27BD8FF62C4ED9D377F2044D2F5F63420
-1D9935BEC227187942805B7A66342044F54692D71C820729691709CFE6720A1C
-6DCE3E05095351635827C6C03B1E67C9CE546E5D464B6E2F608CFBDF7EBD0280
-04D2C1DD0AB53E75E0C4D2864D793E617477F3A308E95D68E717790B3BA4B4B6
-9CDC5B978CCA0A52FBF14D7FDB5AAEA8AF591CCEF944D9757163370A95394324
-8AE2885C1F9FDC8D5365811D20355BAFCCDA0722057A229D9609D5DBCAB0C3B7
-354B8A0432FF196F4B5DE84BF7B7C799C5772D9B1FE97ABBA646916F7081B98C
-5EE2019F992CD1611956B9C500F89DD6610224371833D0B85319EA50CA5B6797
-DFF2EAAD1A190F32CCC801C06D40DB4978646590FF40A943C419BEF1C1E7C642
-1CC1F33899247BF8B830FE58A2F0B93E5F011BF23A54782CA0EA09A0BDCC10DF
-7B688287D2D0DA736A9194F070DDA4D39248DEC41CB441A4225602C87AC3F7CC
-780120F4F92E65ADD62FEBA9F5D8AD1029AFC86EB4D8AB729B17E1AB21E5A07A
-DA4AF13BB3C02B9CDD7C063741D0E79310D48D7A435D8904F87BAD143BE8E521
-A51D6E7F3D348A3512C2D315BDF1A68D87FE3DE03F5D95E440B691AEE8C7DED7
-92189FC58C20E36FD72932BF07A921DFCB5C444F180D78F7CC5B83848DE155A2
-F3E47F45F576CF59C5D46ADD277B0DE74778F11F999F3C2B6436CDA253033328
-65D0BDBE877B644A4A6685C239921821357CFD228E9BE92C21B3428D693F48EC
-058CD8C02C5EEBE3957A671555703F01E430A5CDAFA3A95155E6750A4CE39D1E
-A89F19195788625B26FE693F312CBA53F08DE5E3A2A8C29FD7312A92DBF79C73
-0BC7A31C9D1945CF8578672F586493132463032964C629E0CCE49647DB95EF33
-CB434C8816E0E3427A0114F795F8A0C51CB2AEAEAA62C98CED7B87024BC16B30
-40D997940650EAE72BE6323F1697205F608091BE8AF08A9C91089C120420B3A6
-68FD09615D986FFD06EEDD39BBAC9C4C166FCB9E3657D88FADEFB2EAD4941591
-4420282BE836A4CCB74476114E2979CA9CDA9845668DC89B04BA0AD91CA46BF5
-F91F8E677815B3D2CACA13A3C7E62BA3FF44B35E957A0BE4A1EDB4DE5EC2B42B
-CC427D4E8B8907C7F0E3B82E960663456C1AEC4C2B275A1EAE6126BB5A802238
-1830D00CCF43963C8CA537D24D7B8A8A767E978DA955613A819AE1F5A0D12BFD
-378B8118EA7ED73D6914DA71C0FD41620151A7CAE1AA36625E98A25F72D0CEAD
-F48F4A822862095EEFA5FEA97A7A72047985E455F326F94F65F9B8ECAC0B2A42
-58396F7F3C4211EE320CBBE9280B08ED54171E44D8973256A286AF41730A9A7E
-A88FC1F92509135434BABCA88CEAAA2ED499E2F3C316529DEE9D024FC1F92FFA
-69D8BF95AE1A5ABAD706442CCA15D352D10A03384B06DB6C31AAE831013B32F7
-53C0D21ECB615D0F08BE01C0E7FB1F23715A10CE32F1E33CB40292CEDF59A4A3
-4BF715EDABE23B4D1FCFF71C40550249A03235D307F948D462944BF685530035
-1269AA516F99D95618B24B07A8D2E56F1DE82C5A2336263C46F329A5AFF5AB23
-FED8E1B05B07935581816B5A3F3412C403DCD207A1F332C79F17B711442DF1CD
-7A54B90653F78C0180FAF33C82BF371D56CCB71CC73B9EB2BB10E3617FB7E0D8
-C8AD510865216E44B6D2D3B2A02178A42766BBE1F738402C6DCE694307C8EA63
-25CCB6D7298A2200C63CEE67739D14270D1898C495361504B38A15F81057B129
-89835CA35A523E2B848DE47F50EEE2062050522B8C6E4EE0C3CDF8EA7E878C1C
-387B5BA7EAED5E890CA1508413CEAE9370286690BDE5A96E89E916A8A81A90CF
-223797B54F0C408044F035D1BCADFE1850DA6EEC5D61211A543741C36CA5A14B
-D5402FE65382DF64CE4072E5A532F009D156287866C0035953B5AC4CBFD33EB6
-AC1123A0D0B8AED978F2D9B7EA1923C104237A97AEE2263163727E98D22CC5FF
-BDC0352C9BC16ADFD1D4DC968882D53DCC5E7ADA2CA2FD67DA972CFF17735833
-D4E0DF395B0F5F8038E4B70D6CBB8DA85AAC12D8C9B63EDA42066977FAA79121
-43AE6F4692A9F7F88DC200D049FBAF35D776BDBB0B89811F2FADB8224690902B
-2A6E146A133A517CA12386AC920A4543A0F6CF05A9071074CD157C133EA7A7BC
-4E6A2874A6699DD65DC25C5859580308316E743B8938ED9DFAEA61E1F836D2D5
-F13DF35A82339269D80A1041651CB4A28B4608D0E2C326F01B698816DD20541A
-5D01822C865109022872230FC18DA7A7B3BD858712AF458F4D17F3286303F837
-954F784FF3CAC74E28C5C633A4581AB32C11B9974BDC0FC47F546A9F81FDC281
-6495A1229CA0B91B63E491842BCBFF262DE9556EFCBAE22881466AA874904438
-A57EE59D023A2D3C6EF7D5478323812CD8719A14AC99D480ACFD5CC9DC5C13B4
-28E43CC9784386169BA06D306E25C8D1BB6C0C325885423DAE98B7B74F477768
-6AC27A297360C8530142BC1E7DEFA726C2A6B191442BD7CA8936EF73087D8ADF
-6C9A1557BCA49C69E33081FD3F4766092F00DB3C7DC71CC151DEF1EBA8D9001C
-4F11AB87091DB2646CCF6D480B6E71E7106581A0509FA55E8326A428F3A2865C
-94B3A88660C35B24559ACC697DE7DB5729F33D1E72719D38CA6BBE24D3E6A0CC
-D291719268709C7AA1B4F00D42A973164E573827773F5D476D5FC2C915937065
-66C6F51D1E9293BE96E0E16AF71E5A26A64FB07D29D5548FEE89DC3A6CB98388
-5505C882BBFE323D4E7483BB1F5F75D9332C8FA1C75628FACC6F6C9CA2065DA3
-A69E213ECFE3B1EC646DAF1422AA8E8734B028314EC6318ADB331E25223E4C1A
-1312A03BC70E0A390F9F07A15E46AF1F39F561BF65790669866A9444D72C4D57
-181AD91B1350573D35122EDC10EF57CB6505EE89148D8750704A036F9B80078A
-D6DE659C19193236E531DEF598D972D826379B9C675A8CF10B3977E7088C717D
-A211BFCADDE1B91C9F79B3DB488C5EEF262F0524E6F82BE7E5D94B58953E72C9
-63F6778919F1F2126404A2E1EF9397773BB32C0C4EAA1B8E02BBE3E9FC75546A
-072611BF1D5DA8360AE0E2B199288F690859D9BA2720878301E6A358D26F04F0
-D93B36441077B89CD9ECC805B87BDD1FF13E6E4426C1CCA3E9F4141B4D268A07
-02ED31E3EE96C6E62DA983E9DDC28796995F452F5F1B9635DF1914140006FA69
-AE2D0C04D504E4B735B8BF7A5CA4ED496D56EF87389EDCD78B6870951F963F17
-A4A9E2378830CFD1B0AFAC64C93203C083D580D0DC575A69E5F2A318C35C4052
-FFFC7F4EC5DD7556DF2CE165A362FD3BD3BEB568C247569F18FD85B5CEBAB263
-9B7F1E9B5886F07E9E3BF192E462659944241030D9375DCC40E1D744CCCD18CB
-5A6595A1976E3767C0F1829F76F220A335A5EC49A6E099F7288FB1A415DE05CE
-F41FE8AF2DB82BE6B53EC82A0AB3FF14ADD98F5AFD9B68B76F5199BABA5436DC
-921C36A6AC8B245BE2702A7C036216C82E81A775D1AD068FF106789CED865D64
-A4FAA7861BF49C52065A1C9E52AFE9A0CC9BBC8863B902FA5DC046A645C3D72E
-E28FA624B18103C9782123D6AEB075E22B0707348C15159D1A3002B2822F3269
-129457B3FBDE1DD4E148B77D75A50A0A063D541DC4D00E1500E5A19BEF09BFCD
-C36D7E0B60BC2A745B50BD7B650536C563AC305C0AB63389BA4E9AB11A171D6E
-36EBB5CCA1A06960173A865B7BE57336C18BA87710092A12C88A4BB739A070B1
-92D1D52A22EA87E84B9D70A0C8764F48076F7C381E2FEA4DD8F9A86FAB2FF56A
-9FCE5A47BCFEBB78F4248513E9F117A50DF41F14379F9D61EE774F109162B87E
-A3F45F36EEAFFBC1EB63D796FE6D4FAF2D16B3807E4BE4E54F9779FA01EB853C
-B6DDCD9773EEDAD35F4795D90D17BE66400B31A2E4C3ECA5B5282E22CD2846AD
-C1D46908A493998F17D13A2416D4671F956398EBFD075FFC676F4BA9B8CD5BCE
-391B45AD842C43F98FF8FA42F6ADAF4C429DAF025AA7383F4CB0195CC514E804
-C47FC3217159F58E174481B4037112F219F4E7CD8816DD332F2596109AC3E46D
-C38E214ACBA5A55ABF5177D53782E2CE38763618ACA0E461B0B735AB5A9DC1AB
-B92F8588E3362F24202F163DB7CBB3D24A06620F0D75F621869A97DFB8678ABC
-EB57767E94672F51154F22FFF68EDC69279603BF5499F58B3BCF5ED32848F42A
-78A029DD1F5950DA3C6C4E7CB911C69A88075E14970EF23ACAB307D52A627EC4
-4359B28C00D05ADB4EB726FC31B0335E7C2942A851870D3520C5C96A4F1F834D
-584D92A454BAE25D79F2984A708C864B853B24A303F4EB132BD9DEAB438BCA65
-78864ECC83C746D63B7CF7B5CF1B9734E102007F9A0954EFB8550C43A9410168
-2D21E28DE211D231EE4A165EE129F47D07186048A152496E4FC9CE844FE45903
-076F6D4FEF780A52BCC56D8435A3949DB75C12F1F62CDFDC521CBCEC2554C460
-F700716A202A10153C800797C00F0162A14B8CB0E9B355938039773407738B57
-6380CAEAC0AA2AD724739796A9485D12ECCC0F3546F46D6040372B6E811212D0
-88758DF06DE11650C52F3C178CBE912B749351F065468DFFDCA9A01E14348D98
-EBBB9A7A168D1C4EEF97AA0C20FE37C3B3CE1CFD53AB00F5C7FA394F2123CFEB
-7A1DC68E7BA6467B2578EA2B00847F6BE6E11F77AD6EDAB10AF837551B81D429
-AB185372A6E567B73C56378A023AC24D83BDEC508CEA954A2609F0BF06389A22
-8F8D4ED71E2C0B202B68C0597DCB2421AA163E77CEEEA6908CD7F08B5DBFDD28
-DA55017714ABD1C98B5D5C8E01EAC1FFB4D4D00D7879B6EA44DFCF7C73EB1AD7
-0F8ACCC9A404496F769F5DC79FA1C28FB86F3C863D3B5961406B630D87270C63
-84FB51C5A8060B7E59211E3953A3FA571008D3677E8CED908A8BA2C7A0FBE6FF
-ADAC7053ECF03073C33A681065B5013F1F39E4D63CB657FC9DF6763440272B45
-0E908CBA727375DCE5D479B7604510D081F452E30AEE9335635BAC3FC4B4516F
-714A5D709BDB673A0E4C4A7CF7833F8011B1632F03B3C5815E4C2BC44502ECFE
-5791A5A92A8EA997530DB13A5BB2C9B8DC2E60D18FF029A88F63103AB54E9B52
-D08F82AFA775AEA9E0354C77F3442019698A08D366E88435A5FE1C388CCBDE65
-94A41A384AA4B4E47CA54D2F37B8B80FC3485EA95B33DF87A4A5CF313325C08A
-76C669C86AE536AE345D7E5A3052BAA92DBB827FB877A1EE8AB6914F672C37A2
-9469AFD84800A913AB4A1F681E7DF81E93B9C34076B32D03BDD8FFB2036A6035
-86E4CBDC20263AC0A990AFAC2EBD451CAB04EB66542AE984D0E610CA79FC3268
-CABBD8F91E8DB1AD7E81C13B5E9C682C679D48E9DC94DEDDC52A68F76DB57242
-1628F8941AF3B433B8A780C209DFA18AF329E93769DDDAABB87EB1FF71CF2401
-F3162EAB20883AE2423E84E05BD0A4D3A4BD1A3627FEBACF14E1245ABC8B378F
-406C6FD1C60F2B02B72DB5449582C0348B4DB66CD1B1800A27FC41DCC0F1B9C4
-E6ED1E83A78C452A4B55AA0A93EBEA6CC4618FEEA937695E6513B7875E4EFCDC
-643A87DE5F11B40ADA5D5A3D0F4245D5F8C8CB8D6E22
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3
+7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260
+6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89
+14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0
+0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397
+3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4
+BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F
+D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0
+FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB
+556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F
+8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E
+F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB
+B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673
+125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787
+A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77
+4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC
+56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178
+E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F
+15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385
+2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9
+05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390
+6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD
+04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728
+C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4
+70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA
+4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A
+A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473
+62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364
+240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D
+69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2
+ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84
+121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4
+0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB
+D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A
+0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157
+D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C
+550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844
+CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A
+9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4
+FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F
+7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06
+E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6
+50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A
+2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05
+9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2
+44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE
+49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9
+385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091
+8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011
+6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C
+EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0
+E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB
+C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE
+484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29
+4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0
+0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C
+6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F
+5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C
+1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3
+909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8
+BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506
+CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0
+2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0
+CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08
+EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811
+0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6
+9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A
+D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4
+21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0
+7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F
+52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A
+FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD
+AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7
+F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429
+067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E
+E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431
+C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937
+5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B
+0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD
+CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC
+2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD
+E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714
+56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957
+F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F
+E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F
+0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D
+67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046
+EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7
+CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8
+9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5
+9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0
+C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861
+327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203
+F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC
+60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD
+A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4
+B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5
+0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F
+1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1
+DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D
+55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C
+7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E
+75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5
+E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149
+8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E
+F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB
+8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F
+D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914
+54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0
+49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9
+CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0
+34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276
+1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA
+6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A
+DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4
+E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD
+4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD
+2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC
+ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934
+3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE
+97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C
+FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570
+A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF
+639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4
+D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615
+E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2
+1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E
+A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3
+F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780
+5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5
+4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50
+664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844
+4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8
+35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04
+1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6
+01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A
+5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82
+2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0
+DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C
+BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507
+39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1
+C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665
+99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481
+7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE
+D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8
+6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184
+5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38
+6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B
+F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81
+E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9
+39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81
+7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5
+ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77
+6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882
+2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230
+1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41
+06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE
+5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A
+288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E
+7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F
+759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF
+E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E
+03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A
+6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859
+314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266
+74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D
+906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36
+673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E
+A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901
+931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B
+CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390
+E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1
+4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136
+2CB594A3D6D3F8576B90A6C4DAD6D6C8EE07AF682F925F01D0B26CBA347C03BE
+F3B0585CF4539FDC66915E22117078CC94D621F31DCB3E021998A5D6EE94CA4B
+E214D07517283D56973D8E4367392BF6C1150DEBF459D141AE0941C1C8C5CFBE
+E735D796E365A1B0F60BB4CF2801EAFE4889EE5F338D3C4885368281B3C95CCE
+251C28A90D318A8A0384439B38D63B94757252062EA44E88509FDD2E75FAAB71
+7329622828B2785C1A8B26351BC74237A6BF99216652ACBD4CCF54CFC8AC72A6
+46342F1E32D4318E7E27C7B2DAC943B3E72C472FC6F1DDA8684AA922516A672C
+E969C047E318B5E3B1270C1BEB1C4071A15BC81B29B268C679B41FC5E381BE33
+DD95F0D68118CBB60C521E5CB2BA46A10E50E9238163713290DF6DD8A27D3813
+F871C07E725D4518013D9A84CEC96782541E5580E33C2EBCDB18F08EB4655A46
+507A8526DB26C854928B81FD502B0CCE4A68943C12078F57C10F4E85FBEE1025
+46D925B8B3B447D4920410FEEB9844FABE985F9228FDD9F58392F2F3BD650E49
+2E3AD5A14984874DF4572816931885CE8A448EC95BBF40DDF4F85653AD90A88C
+C4A879C0C7596E61997B972E8A55E57B17F802C738E5C7A8FBF6424F8B131B23
+CEE3EA3747DB066246C250EAD335A76FA166ABF75120CECB59076AB31A51F176
+57176CBE8C802A97B0542A5CFD6D5E6D7EC848B923012E45D9F065BFFA0D03E6
+788B68BA4DE51DA37994948F859D41C28BA939C3A82BFDB44DA585AE80B8CD7B
+A6EEA79B70BFB4864E06F06A9751BD2D2A209D150D7135E0A25D67263EDD2A7C
+C63B5B76ADB05D44BD5BC0BB3EBCE2E74E1AE5F7DE07A59D90C932DAA2553505
+27F2AFC05F7CEB39E1C7E54F69FB0BBB069959F2FBD11709F8E81F6E7CA06DBA
+1CBDD8E7A78487462596DA288B50B295E46F4C3D9BA862688C68859734B232A7
+4B371D2BD786924F186524765E789EEAA30B20C069322D42C893A30BF1BD2C46
+F8F3732DDFE80B8FC1789239345944D8B457824FD80D11184E73FBA30EB80A9F
+2FD466826D4E666E3A835B98A1D4AE5D17053A6A648E26E77BD08F9A3E02956A
+AE82C4929E9666F539079846527D0E326FE7CBBF86E3722BA3E53F8A5121080B
+ACF8D3C67A2A1DF624B9DB92105D3C833F5A6ECEC108E026E1D3D968967A1447
+15CEFDD09123D56606134BC3449404ADAB1330C9238DE48F3CDFBC91EB86D7B3
+8B85B5BA97376A0673E434DBFF19798EA90BFBD94493E2D21976F8106FC0C276
+C81C9B9F7D4A68120DDA56FC6EC65FFA40DB78A60A05EC270A106DEEBD2CB92B
+F0622BD2B1D43771DF39AAD3ECB655F317AB483F7290C148690903AAA636583C
+99DE3DBA99EFE20773D3D8DDD816A28D7BD8881DE570BAF5C7A30679179E1214
+FCFED81605FE56AEA21C1894167F93D648B474352A65C0756F812F97AB435ADD
+22C031A21714A626DE35308AC51CD676DB1748DD2773532294FA77CFB2AAFD32
+A72BB7A045F12B4934A768F89217233DBBD69B900B28492A26713CA5D61A9042
+A982CB071F1F875718FAC168E4E275860DB6369B8114E1BDD4801110B62C3E3E
+CF140554C826967A99F4E9726526E87D57BF845CE38E33893E5F9788769B6A4B
+A4577C38C8D45AF2EDC9F4FA7DD9979AB8E14FF5D8956233AB4C02982BE8E561
+C63B7BC314793F634DB6F086E1A60D9FC3B69D3A7C20A99FBF3CB028CDBCEB60
+E803C8DC3C5F0CCAC030905E72BBAC052520CB0E40E23B46B2150DE67F61E4B1
+8C4D55904B7F90DDE4A4A78B11AE1009DE46DA396791B1C0EA63FB6897FDFA0F
+42474042E7E9B06A703A7C6E672AC6705506F3C0B6861BC85CEBB9DC9BCFDE0D
+43F5248CD7CAD4B89835BACABBCE6C791BC35FE7211E775C009844FC75CBF6CA
+DA6A6B7B488270BFAFFA3E9950914CB0F88C8AB7CDEFD2FDE11ADA7073037EF3
+1A5CEEE37090F3A56D06FBC70597907A26498593783878C02722ECFD5D65903C
+7D421CAFA78924DD27756853568535B02533C3393183D6E30DA6ED4BD6582E09
+A5A4B4404EC452E91CB44515AC6124EBADAAE8A98D8A95E7D14DA39951EBC461
+D426490071462F246794023DE1BDC04AB0F1834D50F748C3C60A07E1FB8EF400
+78DBAB90B59500BD1232A872ED51928329CC8F06E83164FBB2D0B24222223EE5
+992241E8E00D5DCCD6DB9A8E2325ADBE12FC8512AC127BBEABDA739672C1644B
+554850CD75724E6779A7E76424CAF89E9455860E0AE2679231F4A535C0ED4336
+313717D6F7A4A4DA833847A1BCFC7BF99234FA645F2B85C9A9AAF7108931E3CB
+077A9C571E57B0D7EFD92B56C3AA4FCEC0BCAA96005E649AE8012366BE6E62CD
+9E742F8F45AE4C96BCD73AD80AFB6F061D629ABEAEC3018CFF45E41F46751953
+44E490B1355DC49C1E10BF343307263584091D122ABB1E3892E532B6DBAA105F
+CD48375C112331EC5DB49E4D4CE2D126C9274B21E678E5E3EAAD4EA0CAAA29A7
+86FD8819217B195EC6E40AF23ABCD71156656DAD38C931C8730715A2773DC44C
+4DEF14D92C2A054739F27D7EF349A0EB76D952BD9BA169B4F85C09D80984D232
+2CB4A3812BDE539DC79E2EDC7C221739D16B10246A5F57151C210878556D4176
+31EFF3AB6C4D78C4F0DF81692B3C9BDE4F85242BF0E84BACBFA39688BB222A81
+E85E9CB332868ED5B64E140C66E242B97A90C13B6DFBC3D285A49BA9D4BA1A47
+64D83577FFB50BF974D953F42A249ADF9AC228CC4D8E82213FD463BC757AFF26
+DF4D1678FBCD55AFD5FB3014C0380B2F8CA9D6400DF2AA041580A6FA5694ADBA
+674286F00E531693DB28F7C996D5A66F80AAAF53001EDFBC065C72FA5BE3F114
+1FA3354376AEF7374AE1D0A8E9B06C58FD029922164DC9FA09343FB6652232E2
+2EE34C662F0092BE479D739ACE775C6F589775DD768B736F7391B9AEBDE7F760
+727702E145CF749DC457B2E98A36C52416107B1E59084B5F777B61511B8D17AC
+88386A7933CAF852CA23FE179B67DF8DCF15800755605847ECC0FD77873727FC
+1AF2BA8BC75D30E26C40913771E528724FD7C5DE284A8B58AE55A5C48AF26AC8
+02E155B8FCD6755D8F7F5A6F1AE66E4D24A13567B6463B18E65972BD75ABF732
+FB41F87A62FECE9A50C697BCEA1E3B3DF1E3DC961DCA598220CC746326F85F83
+72E803A4E69106EC5BCA01139F92171DBF9964BBEC8D3370039623CA1F927CBF
+FE7DA71B04B4321EB4D3FCB27F8404994CC7DE5F26AB8FC019A203D6DF2F449D
+85A4F103F7604986A1AC1F7D05D239E728FD6AD1DB5024B0A0542130D2B0E7EA
+4432F910F9FD75568F5732EAC95F7A87CEBC359949C26595741533E952327791
+87E42DF84E1064E1BDD3F5A6455087B8E9C783AB9ABBCAF032E9FA32C27ED7E6
+CA7E3D1D76CD1905166090BD81A85485B9B4E976DB2E19A8E62EFB795FD6298C
+9ADA57D5BDA2FEBB227F0EFEC59E4B51E06B8358006F9D79C1EFE92510D6046B
+6AFEEDC793137DE622A8B3F5C9E3B21F29A98A589D9CEE75E348FD4D206415CE
+508AB95A7496236AF1F6F5ED6B3ADFBAF1E35B51484F9B1E0C11C5AEAB9336F5
+A8861ACE1EC74C4A145A64E4FC8F6BEB3A16B021AFF4AEDA59B06326A8D7FCB3
+3B75F9729BFB7EEEDA8A1774728C80AED40BC35D42045E5CEEBBBEFAD2566CB1
+AD69A9A972826DF0F2303BB232367E611C115E8955DC97779B1AF269B84574C0
+9D816C88BAE3AACA6428CFC648FCF0869AD9236591E3B8FA326BD2EDE7F97286
+511C75F4EE4F7B4DA33BA2CE7F778D92AE7C1B4844CAB3ED8FCA285454D78469
+1639D24729E8002E4507A114407DF51543CF7DFFDB7E05ADB2D36E139F2DBACF
+D90AF274AFB3E5AB5B38918A28EDFCF6EACA78248BEFDC2FAC0E041AD35B130F
+8A91E20251CE976680FCE3F8B65B33118EF7C138CA1260D3CA855C94FCC02CC2
+B29C94A3FFD38056ACE512DE680DA29D97BCFC35FB2A85057E484FC9F72C9A7D
+08AFAFCA705335C6E9AEDAFA97D884E0E463E79D8AB45DDF86C56EC922283C4B
+777EAABC0D57BEE30D4D47FFA16FEAE2FA972E36516480E1FCAFFA5CE692B7E8
+8F887C5AE573B96643F10BC62FAFA4BC6CD04F5353C0D40CBCEFBBA4DE7B8960
+352E7F6497C9C4489779028934084522336B5E5DF6FF84A78158ED5035FFFC9F
+F199AFD543D5D81C0155F3EE0E7F6FAF7898F7F26941D417F7AB37703FE67D37
+C263078FDC85C5430CF379E657FF9ADA0C00DBD605386F5494459C63D4AC057B
+2E061B06E17B54AEF38A9EB401FD4C76C6755F2AB651473DA2F19E28C89229E3
+FD385D8559EFFEEE5D0CEF127A8A6CF9017459466E0FAC341DE1994C03A0CA5A
+799CCD03DD2B41A05F7B36493638AAF8D7CD380E03726B0A18B02A46A0BCA027
+9BF16ED75AE0494C36161ED2C22DD7036FBBA2E319106B9A56FECC732B87E2F2
+596167125221D42DE9D4435DAD321F878FDA68B9E72DBC2E31178621327BAC50
+72148C123D4C8568DE822169839906B9F0ACAF3B4DCEB9352C8A9E246A9A5EA7
+31E04981D0A53F44B6905704CFFB9F0463518C02538DEF2DBDABE936D1213FBB
+FCD28F833C5872057CAA92536B8E8EBA129745E2E2B5A9F07086A1212D466785
+EE640432A0E47C91CCFF3FED5669C8ABC2B43551AD04E7A2FEE2F3C16511F7D4
+048A8207351E83AD32A72360A2DB1AA8F78C5D2630D770F5E13D5C49BE166475
+79483B2F7FEBC1D73B04E0E5D9B8243DBEF7E5D201D9F644B150A230B5CF9B90
+CA34BB8474BCF408E37757B8CE5B33FE7400A68C70F542C7E2A22B8C0AB1EF9F
+2BBA7A646A4C872C43C0A748F078AA98A13E882085B460050CB3F5B09B62EC01
+AB87AF8DFCA6823ED6CF8426EC115C5E4DA335FE416E1D37311B7FD56793CCA0
+BF90B579B0FD4E4E1D0A26FB0C1D490D99CF4994693630FA343960E15AFFC596
+49BB7297BFB82FD56BBCB36DC1597F94A157AEDFC53419BA867CC02C26464BC0
+2875127C688DA6902567716A908153DB4CBF710CDBCE50AB98E0CCF1DF5CC571
+00027F6582CF6AB4E584436471D3C8DA2D780E5B02A9B1717364899D51EC679D
+CF5F4A4981EDC24F710E892772E4F891AD02B7B98A113FB1AD2B5A51046693A4
+19D03A75A3140C19791C85A0DDD173BB3618E9498CDDC8696CCA6EF81729AD1E
+EFE4F3D6242E1766A3079371D1D1833841F46F04F2F8029D8C1943F6986A95E4
+9E77806F221CECAFB3EAE0F979DADC5D2E4715BFB5C64245CBD2300E59030B99
+0885F08417E1A0C57C3746230F9EF4E968C0F41F67706BDA2E983012BF317612
+38E9C0178F027EDA0E679F306AF71F0D8985C712C4B4BBBFC57A86AE052CC2FE
+5C1BDFD948801509ADFD4FF9FA7A25E30D6CCC7C7E418EEAB34C4ECC6AC8FADA
+637B5CC70136EA5A57B727EB11075755A7840215CE2B9939BBB6C3A7E22DE42E
+B3725C1AD0BEE0A54C0B57CB93E6A20E319E2FE4515D80D09972E0A742D20DE0
+55117C1B9F3C181456406FCA70A7E3B757A813F7CF9E3562EB8CAE1CFB65DAA2
+B384C17AE103C20851906846AA4AA5EEE5EE989F292D42B11EB4C4FC057EE4BB
+B09A4D81E8AF0CE1C851B2E328E977207A6989F13F7FF039A4E295507CF0A53F
+10A345A516EDB7C5FD5763CC27543452249D229BC22099C6FC1DFCC07A35144C
+6267BE8D5BDCE57F9C7C65F6A64A74DC2207C8601231477DD57BC8259B26C683
+22FD4DBF0E3BD814E31C9E194CE2EB212268A249216DB084226802B79DC72AAB
+FAC4ED3AF6BC51E2D9A1D5A37F5124BEBB1E0B010C34A1B7FBCED45414AD2285
+43BE684BC7BB56C5036D182AFECC061F749522456B4DCD80E3315F48E7E8AB98
+40C4FBDE71DA957C8FD860C4AB02C97578BC8299EF448A526CFC585F27EA14E8
+88F9928CBF87C8E46F69100F0CB43E2720B0BC8DCA50D59FEFBB84383B4036A3
+0ED89F67B433AB4BF686487194107C63BF989A80D761EF3FB20146A0A496E5E9
+26375866581146F3537156051C61F82AA5C68B6E8418297DDA7704EA50262775
+B96E1E1D7643370288780188ABCF25B9B23BBE408EC5DE254F51469D5FB06FF6
+2EA926F94CF1730E014F34822ED267643B773B7CADF967D431B6F3DDC998E56A
+243880E9F772F3BAB3702C19C5DC92ACF864D6A771783E178F4A7BFBAD36008A
+F0A61C5B437A69E31235DDA9898B4B081F1176C197C0834CAA25FDC9BEB696AA
+8ABD1FDBE17E30070690EDA533E2EBC19180DCE4CA8146D6657BDDB765DDFB21
+D0CDB86912E49DB109F66DBB9226E297945BCE9073E724EBABB58E42AD94CDA4
+C9DAEC40F79F3A3D36777B18C61DC9D22EC351324FAC3426917C893E36C8D953
+4ACFACA05F8764BC61A17F6B40D3A97177B97CF88C2B0023ECB3F29F9CB347DC
+E686012FB31904DCA042679776108D9D611EEE971D341ABCEACBD0866DA21DCC
+270D3DBBBC9CD438F4F651B58D1405A82960CA991CF690B8B564033154645D8D
+ED5E4E059D9DFAF3A5C2BA1C1AFE1B865901C8D117262CAB210A3C7A03443544
+E22EA5577AEF1378A9A4528592F32A8AEBCB1CB6A7E4948FF78C6FD230A5892B
+D8953ED89392929FB91C042D31E7E8A4912FC701E722D7FAF0308625B3B748F2
+26DE427383236E131022A95395C72B3DEBB139C81811582FA4E9C7F970FA605D
+C8DBB3ED8B141428ACE6DF426B2567B10C5D68A4060F25D5D64BA262101CF5C3
+4B7948CDEB6CAC66FFFA0F1795C5F3174F7D319D252DC2D22BD08FAB54CEA742
+64C0C6B94BDF182DC0942C0C82E82A0B04654A7C2E6BE685EC3DAF1D5FE48790
+DA815DBBD0A176BB4D4424ED7F893B4CED54C2EF94D73CBB154E547CD33D874A
+E754A17AD1F10C23BC5FA4E709330A10A73C93B843D8CD8A65D5A4241B35CD19
+938F2BA2FA95551F0C2FEF1CB8B056D9A9120F7607BD4C497762C577B66B2DF6
+8F3F661EBD7F3E73E3A0032790ED80F774423A026F8ADE2FA82129E1FF27DB3A
+1B6E603479668FD783735606F7AC6BE9D65C17F7ECCA3B622C13F0FC95F8259D
+DA4801A7EE18656AAC3D730CF2E17FCE8657AD6289850DC06E897A759F7B53CA
+502E764B07FDDBE6E99D25ECF1600D6646622334871C57133A8AFD03FBBC2368
+1BCDABFA9FF4C4A9EF150045F694A3AA487BE461BDD2BF1BBB38BBC365837063
+70963C7C1E7E4809797F4E497DBF6D5A90A71D6E89BEEDD5D16B31ADCAD67A81
+A9A3085B4CA7BD93E1A9591BD4A7C88FF930EE7A131C5F3338817D88AE31813A
+C09D5E7120AFA6565B0A647A40CA94B78F20905B7110FE44A90794F7F0CD63DB
+E99675C781255B7BA257CEB14DFDF9C13A02701B0FE41C6A6F50CC62C028A3BA
+E9A918549B7F9F206DA0909F2009CC87BBB565F281F24D0ACBCB71F12709DB31
+5D355415D97F66DB25CAC37E90BEDB51F2FA97E0A61EF85E845F702D0B3AF935
+14F3EB201323209D76C7C5970AEFCE4225FFB4A1477B177BB52332AA0539291B
+9B8004F23CE4E055F7AB6D6F2A8E74C2994306A407A4FC831D1C887C42FFD0DF
+EF07891681C7F4AA914AECC427057A8D73261E25F82DC3EEE7295C0870E91523
+E15187584B32B8F8B0F2E9BF4E67E5A2858F00B0C59DA1B1B59B00374C6C6AD9
+741E0998EE0DCC6F5ACD1925CC40807D5B66E971CDCFA4651BBF2490FADD15EF
+C8A7EA3ECD078D34D875C3EC5EDAB74AC0DCA00F2329184455C24C97EB0AD4C5
+40B8E4AA2CE6E7816580F9DBCDAE7F01AF0533397CD37C401D4841B60CB976EB
+E3093FC863F368C85AECE6E6CF7D9ADABDF628D9806C1269A0EE06FEC90948E5
+CBE40C0A2C72E08D9AD94F07470692D571F595E465CB32BF486AE9C3971B6F7B
+FBBDE2699E1FC9DACB156D880DA379262A98C6708A9850FF8EE36C35FF636E46
+D8D00FB3550786C1D73E6B91F9B35D6998F33BC953E0C8AFF996F4C707F8DBAA
+AFD76432E45605D5E703C2569856A0BD8C8ACB29BCAC87F1A72F859D20205328
+6272929343C1CBCB053D7E19AEC4B2EFAA765B2002F43E7F62ED5281C94ABDAE
+750B2C88B3801559FC6DF0D66E55952FD67AD41718D49D35DBF2B7CCBC1E755E
+800ABB45EA4D7547756CE9E6D3AE0B80D8D97D681DFFCF4D5D5330F0FD6AA729
+5BCB1475F18E9612197D6F5F7C7AE8FB931C242993D385AAE7829391D370819A
+496B9518C6F913E666C27F0896C7684AA1DB1A335C7B50762B4F8445D45C907B
+9E30F7FD84E403DACCB0A8DFF2940312386C315FFA700B0E42242EEE04042E2A
+3F4840E719A42FAC426870CC20DF083537010550A6B43A02A330D92CE15222FB
+BE6A9F6EFA44F7987224533983D96BD2E1E536437F89E2E43884AE09FF5C7902
+A284704F78AC067C332EA207F53CAB61ED51EF3FE79A9B7A373C3DF72A4F3A5D
+67B4F60BB470E5D093FD880AD32809160E550CC1EE67E01CFA80318C03E6FDAD
+A8E744FEA593E2761C60D2CE83F3F6D3A2B203739C62A69D4E271FA12372C45F
+6C378E4CC21B9B0CBFCF43233562E4BD4D52F7A634D1F0493F8DE445D140EA4A
+D3956E9971263B7C3CAEC8AC83E541D58F52E00C1C80EBD9A31F0A9D17FA2D63
+E5E0D22CA28D51E39A055C40AB769EF224AEFE2AF714E322FDCB9770EB00686B
+208AAEE2160D059DEED823FF4F9769359C183A6A6398F9E4ED55397F02C68FB1
+016CB495A0599DED25BF1006343DF9AB7C3BAEBD1EB2F99F4FCB07E84AD2D959
+D1D573B89C220DAD815D9EBA41CEF4D664630082DB97645AEA6779A8F0D7765E
+B76A4B8B429CF95F22474EEF2FF1C792DD525E50E1EE0A1ECD78570970B62293
+43DBE6E9B97585B754AEFE28E960B5F8B3F549EC7F168FFFC5EBB52C7CDDACCB
+DF9E1FD89F2F8CEE44285E79724FDDFED021AAD2025006239EE5CA8543B86200
+C7E8522668B07608615F6F102E295003B1B89264810A2BFC3DAFECFF126B1807
+2388839274203BEEC2B319C7F263ABBE6B181FECB5FDB9516E8F0456B6A1BEAD
+7F45DB0F95F4943B2ACF52CB30DFDC6EC936A6292DC2AD0BD67164900CECF3DC
+097528073246A88607DDEE1DE4BCFC298892F3B73E897734D7001A466170F60E
+5F2948ED36A6AC13975086A2D68B6CD8B033CD14C1B85EEE4AD3679D74DEB998
+AF62D045BF1102FB3927E5B9078F8AF93A0ADDF1937276C423CD346F30D17D3C
+C57CE052053EC21A2991D063B157FD535850DD63E55890427BC2C883785DFBA2
+436BDED247251001AB1AE56EA19880B88B3F1BFA6C232876E6C002E9EA850700
+517C80537C27033737A162B10B179624F869FEC056F339D5A292E6E945E7BB31
+A271CA30990B4AA5874CAD851C1154275BBA868EDA5D156F4663E2D436DE6DD2
+74E6579AB19EC803927046D9130BD9E735D64248A6FA78F1DD6B51DF0B1DD553
+316D96795355878C426BDA09F052D54880E5F3E5C1F29786DA0A8084D81A5849
+B2A301BFF171446EEB4DAECAF40D8C4F6C489BEA6C592F8257E68C514180756D
+A13569A03827561348B73584D69626B3175247018DB9DFAA9E989E55C97F9A32
+B02423EA16FADA78FE1E3C56EF4122C640EB8D77C5E957B5E425A2FBFD173423
+E8AA1758A91E1B5B85D174D7DA1F11B3AA76761346D2464BDBA290435A6DA50C
+1F14E14FE29396C918E3E4C388E93D1C3F7A7161FC61DFA1543D4CA86B6A3A5D
+B64FC69BADC3F3E0F7DA2AA5FD6C39700C2CB8A6C823D2620D39FBB0B507003B
+6D28C8D67F57C019DE3D8A4B6BD01CF0B305163BB1229F470AAD7436D13C326C
+5D205B4C818D0F765E2B9FDDE26B033D1060EBEEAD6E5C49EC8C6F395B54C259
+4E24E89DB787773423E358A1C64C3FDEE4CCBAAC4AC652012A0CD7269A062643
+0F52A1BD1DEE9401B5835752C48CD0B705476B00458D31E70599761C793987D1
+1A14288D5EB2C9452C2C4524202A40A8C773AA8A3B9D10ABFF457478532B2C58
+0DA8776E116853B77D1A8EE320C87B23A693BB5D3E77A9C419772675690DD75C
+7AC5BC3ACF97BB11C70C0261EB5DECD96577D755B03EECBC66B3B8FAFAD87950
+94AA617A40E4CFE88939F28D0D36C5C6FB5B4F6E4321BDBF12DCD428BDEC76DC
+192AD968A9699084DBFFA3FE06D5F79D336DD6CFCA4C9E1F427A29DB1F4F0492
+A29F5F052310D455E8AE1847083B70EE57C4799FF4B470655D855B8298FD3694
+66E00CF5D04415601598C0ABD6802FA0DC4C12965546076E46C2DE87467CCC8D
+F9ED9FE429CDE1DB2AFE61363327B4D11F46C678B59E74F8F09D8B9C14C48004
+CEC93F33A4A6906CD71B2414C05B3599E4D1FC1EB839D4B5E5968711359D3BB2
+8E6E262896409C7EE86DF7A8CF1DCA1EDCB2BE723CAAF5B1D7DC94F093864855
+7FB08EF776FDCF9DD8342ECB7F7B307542880A7C04D3BD09D65BE13F80E36120
+24BBE4C422F1CC0DC956CE53261B903ABA0E0CF1CB0AA8895C0DA8127DE3DC9D
+4B491926B5408AC8D29D2FE62CC3CEF548C0A57A1DA202EAEA8F4584D8B64E49
+A3D11A48600CC0913B744180AFB6873BE72DCDFF8EA2203E34082E011C87C3F8
+EE91457705ED0BD4E2C193B7E818B50DDDD734F2BA1B876D262C39D94B0FC27F
+0B5A87423EAE91BDAB38BE457EB0309D05FA5E458109305C03295FC39B0D06BD
+BFA2B4520DD610E12C3AF842A94296108FB67495B300991C3491F0983B5A0403
+68A8D19218D9429EE400C3B91DDE2A9F163684D9F28120B584FEC88628EAA60F
+79F5988BE7BE31153A675BC7B344E7F62CE85E8850361D1996D57E71690472BB
+8055755DE965D795E6D2424F7D76AE7F249AEF4BFD75103B2CE4D62FECCD2FAE
+3702A57A3320C54D19D5015ABA5AF39B237C53D38DBD80773C0B9D6406574BFA
+48BA4EE71769AD140E202D24D9F1691BA072E1AF182FD6DC06C2FD25E3437E38
+ED1D0033E77D2B188F3A84EAE17787110EC5462EF5CD0FEBBE5CE39976B5CDA4
+8206BE5EB8A06C7698C5E6A45EC7F59CAD3D6ED3AC19FABF3D29C9AEBEFDD74A
+6B7261D349FE509BD769D9A24B16C276C917F0CBE8B25FFE19BF8528E1C46D38
+3738E3CEE8170E3EE323A464A3C8FF30B3DAD0BE87518E008E37F60DB471E3EC
+110E9B8AAA5C875AF759126B39B90A8E7BCB25FA3EFA783AF7B069AED1887A19
+6A75C799940E5352C34A93F125DE82A7387CFDD7073A28C1026C9E06A1D8163B
+E66DC3BAAEBBDF96B7B3143B9414AB45643D022294C2AF8C87EBFF1276EF991B
+7A1C720C1A7CFD392F211A190A530A19012EB117670AFAE4CF700048D901A5BE
+074F9B05AA555FA4ED6D0A92C08E4B795279F9BE48887886B5121DDD857E8A86
+A2885B9A672C72BAB990E0AF6DCCC769A7E18E65A86B3E1482D8297FD98E0510
+30B27AFCB9B261771A1AFC298F96E272E779A8B6AB6B03410ECE32B7B69369C7
+5597FDD08BF2E6CA29E093428DBB0BC53C64E5ECBF216111AC90E82822E7604B
+A9AF479BE9FD2FB2ED27EBF4027C22357DB27A5A6FBC6B14607DC26F95A81BA5
+1737D6C406B19857FFF2903F966DCD56BB73B06F5F74C917517DF95D8D5E5108
+350AB839CBDFD7D1F3C687D0B6B576FFE108AE8708B967C29F9840A0D6784789
+DDD7A0D76E92082162603CC916ADAD75BB205E7C9B7A72D286C5411F3771EB6B
+9F9022BB24AC9EE7700907280F52862F1D542605F3D3AB06679252DB9A8A4E41
+FD9740AE35473A9FD025F364B863DDD063AF91A114EB529A38F28C4B4551E276
+F76C254669B81BD3CA8479F0C7208AFE5A1927F2AB12FBEC47FE0BF9AC3DBF3C
+340DC67125FA0D65B245260B32FB74F90CCA6D327874BDB6C252614C75425F20
+2AD8C9ADD15733715B9281DB9D73C66B9664491416643C04165C64F5939CA73F
+F8D7652592F391E59B82EF0BEDA9DC7F42713005E4AEAA1111EAB4E74BD99119
+D86490DEE3DA6C021B36D7AFDF9EEDBB1E3253176EF0607469E0982034AF57A8
+83F024DD4B42B99BBA110514E52498F6BE463B3053DF5114F2D6644FA27702D3
+15DB327F632E3750171BDAD75F0B7D2A84267C712132373A2FE740BB086D53B5
+C3E9A68583159E46FE46ED3B645B0FD505D206E09D438052E27B75EFE7F5D83F
+BC153E4BAD47FF241AD46BE13605E1840C5C2CE3492C29EA5FFF5550AA3986E4
+FF28A404908C88269D821EB2FBB193DC311750F6163D75872603A254B949C756
+CB97829F0BE3AD796D52969E483A0A53CA650CFB9AD57E0F4DED89C7746341EB
+3D3333F06556BC61BABC3553C7B0D83DDC5B3BFDC77DBD9B6DE41680DD6439E9
+4C9FA49DF62830C86E7A4B1CBD37F2794EB6DAFC3F1676697392A6A635E626DD
+3A3BC9E2378C152F9895178C694596191B37BE3DD8C0FF34C82C386289EBD7CC
+B63139A3243F193EA10211A8E390B4C4046663CEC373928556F5CC99FE094ED2
+841DDF013CAA6CA5C48CD9382CB776964B38BC24BB009DF203DB81D4EE3A4463
+C5F2BD876E0C9B9B226FF39C0CE6E67589A38388A02A81D3DEA72CC031BB8B2F
+66C481F00167DC0BEEE6740A78D736F429B44B82A3B01ED2127052646DB442FC
+C1EC78B100F11D42512810F26EEABFFDEE3E46DD584FCC2194896F7BB5670634
+480771223C1E2641A253CE2490AD75591FD94F19B2DBA95F0CD64EE4BA03D3B2
+BB0C7A6437B610004CA4F1B914D9075051F7CBB6CDA305F6337307F317CC05C7
+8BA5A409ED6D915263680852670F8A474AB0646ACF77FA3AC35332DFE2B00CEA
+FA99D25DAC950B173DB84ACD9DD99AB23973390FE32E384C6003FEB9A4D3FB1A
+CA17FE87AD558921F203432EC00D0BD9E0294A0364048A9743516F46EAC01B7A
+AF23DACE21FC2D26692D8F1A85F1B0AA8156D6360B322724C4804FAE55DFA814
+ACCE2F8508335CD775539E7931007A73DFDEEF7695487B10BB0D95FCA66D0F53
+6E86DD15234A025709C4F7DD08761711D05655EAD8122D8BA2F7177E820B48C2
+5EC82CD16644832ADF374ACF193975B4635FB374451D0AED47030807CFDCF240
+783160D79230AAC1F2E5066F09C327ACE24CA2D712D08749FC63C3D8EDADCE22
+B81A7E03350AE88F30BE8222B6954ED0D2910AECBA460EC21BB032C4D5DC1B12
+39F1EB91215B384CDE3F1FBDABA298E37D4460D0B07B0493053444AC73654815
+376ADD2F64BDE78BF59CD75D93A3A3BC730562E9A1F2A730A2F766AA19DE458F
+06DD501B215E0C2070CD64DDE13E99719671FA4809FBCB6623E206253081A50F
+5329F16F1B0F0F69276852A7A0AC023A821B8E7880F9D7AE5DA74D0483AACB4F
+FF09D975ABF439500ADEADA4990CA29A50D82C0A7704F11DDE0C9C8E4DA21382
+C4F7289719D9A4A44BF2735CCAA2BCA698A5FAEC9A3BCCDDA1C88CCE18510733
+5A88B88A193C9DF15ACD00F20A965C11DD8A35CE316EF3E4716AB3FB4EC6288A
+91C0F824FC9933315C9A71CA786C9305A9A30F407777F0AEA7D341D1D9605378
+72CF445A4A2E3666C0075E2F9AAC3F452811EF7E60E6C04F37F3808FE8BD39F2
+346F5E25757E3ED2232F1B9B4DADF83DA45F7F302809251973F705CF71E34C18
+7C452C4B5D29E0CB74CD6EA67637FFF0E9D9B211FF96E04FFFE9A27BE5E13BF6
+B51EF214FF4F0A58C5D5734E6BCB0ECD419AE3CF79AB67D1B3EAE70FC1E83691
+095D0C370C9CF847C2A914F0B810124D763A972464C5F2C1F69914A8672D46EE
+30F9EFFA7E9628D667E5DB582C123160BF28E77DBBD77598F14A32DD74F67032
+B4A0537D0FF938CC61BB0F9798B600FFB1AD7AE6AEE67E0FC6557FC3FBAA1E4E
+C793B0D207EE0395913818CB2446E9B82B880537C1625C70ACBC87F97CEA8C77
+82E6229E1734F80FBF8477F062F3836FA9DCF83A4BA49703FE3DCB5F2CF6266F
+4480EDFA91B1D98FAB8BE14DA6E84B9D58B46DE5D034734496474241F59317F4
+4AE4AFFABA7CA3FA149A26CF5050B83BDCB1C56B529900AA20EE6098D135E65E
+61026EF0852D497B3799DA044CB378332924CA360A1C62E24B5A0628813829AF
+A1236DD728559DAA01188D6EBBF3CEF983C5201904D03A46B62A41E9C5F494DB
+135F6B62BD5F3745625E96E1B401848BFD935AD1FE128507866FB807693E8376
+634F1B39763087EE7E454069D5CED93DAE8BE9D1366669A152968E2DF13EFA54
+D1A631CCCA33D914CC1DA8C0DF8ECE2FABD18641FFB43BB5E82DD0A56CC20DCC
+64EC0A7A04709085C80C2A1477CF85A29D0C11F204CEA455072DFBA6F5F5C693
+CB2B56EA189926EB51E92D2B5D89F25AB94E1F7FA208916FFE89601B616B41EB
+EFA70F4C8CFC3FAD1D056E4076E8CDC2C3058A2B35B34FA0A29A2ED3746060AD
+1A6B6988B1B0986DE495FDE9A8C45119DA7EC756E1C83C89842C8744AC4B80DC
+264792E2E8D5AE4120BC57C170C742EEB0EAE8C9C4537AE432654DA4DF89FD45
+AE0DBDD92D0DDFA0C90C4FB90FD5A7ABB522A193117153CF578A584447FCD674
+548ECB9250DA4669DDC8CDBEBBA49999F2519DE29B0CE693DEB2F420D4B0CE02
+D9AA3C2C15A6DC98495E1EA54C7670482E2B1034B91692285AC47EFD6271659E
+400D6D7DC137A904647FD092B1B4D59170F1EED8E29FCD584FEA2C77642AB839
+0A44403D75504E8DDF1BDBBA6B51B7F9F64B63676B6FBDE514701B9333312126
+4D8AC19B638254A4BFDEACA80AB2CBC4DD12AB48BC34771E210FB576FA0DE013
+5C49E765028D57C056BD7C14E6941B0A92A2073CA3CCA67E9A18F18BE4934550
+EFB984B486B9036B8E3221F63D8642E2C71E6547A8E4B25FC3EC3C42D27DFD85
+E85F2D08C69CDCF3174A09E363E92A8B3D75BFD57CA37144D5267BA4D1750988
+8FA3A9B9100838AA7DFFA97C5E4D2516F5649CA756C97C5A3D500A60D2AC5039
+812B603639C2E3CE36F26CC0AFCB385A5BBD582E7BD1B5920F67DBAF9ABF9EE5
+FCF66EECB566DD87F0618AB73199C230034DE379CAC1F6BD17526305D6B6ECD5
+8C5C57FA76FA775B2A25C7F5C83C27A1F4C71DCA93487469004EDFF855A156C0
+8C8EE1972CEB91B9292F5619118F7DA38B1FCDD069D71D0DAE61BE55AF0E255B
+3B8D2DE974592BCA7D92F0DE92538C74A801CF16A424621627BEE5BEC2CC5E68
+9B88BE0ADDB7C8125F7C35D74A52779C6D5D87143506EAB799765589617D08F3
+1305B15752D134A97F7D872CF330F4B3BB62946570C5EA7DB77612DF9B7F91E9
+22321623627FEC40FA04FDC1AA21DECC7AE531510375D6F68A68C6B8BD649A67
+A3E24B30E04ACC2171A510DCD77F7688E2ABD7D3346BD84E8363BCDB2EABBE0E
+5BC87A595CE80F977190EF06D3D0BE12DA50EA0C33D25617A9DA8940967906B5
+F5317F4CDCE1DCC7ED48B4AC4DA131EBCCD11F7D241551AF8A2A723A5C634EAC
+575113186D3B83F8B6E2E50796481B6CA50D440D5B20C5206A85F539FB7D52B8
+B831EF10B784D195BF7EFF05A9125A3B90CE131D84ADBBE6E47AAC2FBE51DDDF
+1286C0DCCA8343F7803FCB25CD690EF9FB49C1C3B91BB7FCE5D330C781744502
+AE46FEC050B4C695101F3B86ACE09D502572DFF5F8534DBE6DEAE838B4000712
+4B21697BA3FCDCCB3B858251438F05B3EA1F8CABC08A502C5324D1315214E7DA
+6B62576C10E6EE9A69FDB9D424FE1C7BC32CF37EE9EFC42B9F6726C486762574
+03913F9B3F5A20B1EFA8D4E072EA2F641D7AF64403C4EC76E3A81185B976499D
+C78FAD546598AB094B628942EBA51C11FD572264BFC7B0E97A1715D7443F29EB
+7BB4E6848383836F99850E22316C73B76B0E6848008B832E49B7373A94DADEE4
+E7EB32C428F531FFA2067E3316A47C08068D93E27525A9A2A915CD9F204AB4DE
+01EF65ECE8167C184DFA747930AA322FC136DE0D412E99E6F37ACF87A788141B
+3043A3B0D20DDE8C2137EF0DA77A899A581A51AC4CD5A1031F84BD428D0A17A9
+989877277917D07CB806DF051C23F1AB0049FBDE843B34CFC9DEC4147D97759E
+983C395F0C9DC2832139DFDE0455002BEBC392E7617156400301F76441347A3E
+E94D2FB65A31DA189BCC3CE94AFC1613B546D424A36EB2F83F3444DDAB0F03A0
+F3C270A9B8BC62465F46D83929DB7F0240E52CAC458194BFD50645F825D0C41C
+773B1D6757625906C7643BDCE990E24467C011ACDAF6D4A26A62D71FAF1F475C
+F14CA4D545E9E4F80BB01F3AC573D046DA7356FB9884CAE3A29DC357BC8CB255
+E5108AB355F0E087902C9BB458DCE8F341F1AEB79E468EE9A45855FE037780E7
+9EA9ADC1CFA141A3F976DFEF51A428D237F234BF5C694DAD4CCF2AE84FFAB574
+A25C1FBA2F38110C305D962420A310FE93301B8677478BDBBBDC518B8C94E819
+26BD2529D0EBF0E770CB3A1E107440D135848D2F90CE8F37693EDAF6071B79F4
+FEA5ABF4D9F2DC67F2468F2BDA3FA968EED4CAF8D7A22CB28AA43804F72F56B9
+545DBD0E3F27DD5617329305CD8577AF38CD4C472CB181CF3DBEA07CD42C6C1C
+51E819286FFFC75E38F5EFF96C763F51A31A78B0848CF56DE1A2CBE2F39B0C41
+FC7C0D42D48D6C75516316B27F6C34AE6D5F5873233914790ECE044C014E9796
+20E200F53FC51ABFEC15C1E08D36E9A4DA7E58DAC014E2C0627EE8ACC6AD021A
+D2E2C431ACE954602EB99D4584250637F807507A17DA18521B6820E066058B09
+8C2B4609FDEA9E02007A097F833C7A9854D74B38DC81016759DD8FC6F98071FE
+620AFA1A8DE5AA974C281A1DEC9C8B866E7E350BE5EF3C7C53F82280790CF239
+C847E4C7F74BCEBED8BCC57D4C01BC4394F0E9EC5AD01852B3B06B93A477A1AB
+AA97B588415A03C1984B0C9619C899DFD4766A2CE91CD6A65120E07756100696
+297345CACCE1551A2CB549077A292B73ECD47C3A098049BC49F2125BBF004DAA
+8827C407B06A07E5F39CC17843FE876FB2DC6CA2ADC0A4D8812901FC82913ECF
+BD04C66B3647B7A698B4BC6C2F136C04AF4792F10C31231F2A04E4B55538CC17
+AFE4B47BA2F575BB4E7E222E9F6A4F904F11CBBC6DF6C2F3C15DCF268A39D6AB
+DEB9D091EFE6ECD5DF61ED23E570D484A6AFD5F8D34B7D484F76F150D3D97EBE
+5E91D7A458FAB380BE167E7F2FAAC82BC2C7F3C14BDFD06D9665F5AB2CE34800
+E779AC43B70E22199D3BC4A2A14EFD5D20AF12D8CC26BCE54762ECCA9D9F5FDE
+84B43104575B2D6533FD3BD245AAAA4B82314EAEC2E6E566EB32AE367D2F2BBE
+8F6DF9D63F56693D701E259ED828A3E27561A5901B87F606AADBEDDD7E846AC1
+F07D1ACCEC90CF6AB18114A140FE4BC918EDC9B06284B40E2C82D4BE3C1EAB92
+E2E2F0DE115737561F7ACA173B81C9AF7EFCD6797BC1AE6366646C8F1ADC38A9
+F1928933BFB6AB474FA81D8C006AA11B76461ED98DB4DCB95D7772E3D15C2A29
+F116DF0437225E8EA1FC5C3997633CD63539069F7788AAB84BC9FA8A1A61316D
+2C0F07D2914A61B0418912B276561540BE5DBC1F7A20241E85ED95BB775E16D4
+1F22262C8128967F53031EBA86D0A2184DEB01D51D4F7E15BADE50B7DE246C05
+38B9B49D264A4B29A372FCBF57323308C71A0E14748850B56D51BB932B1DCAA3
+A1469E84536A42B0D8B55A0292C8050D6CD1BFDCC4D287B15082801EA40AB8DE
+CD8628D0E1252DBC57333D74841246D7A6392F158EAA9FD5BC6CB2E535DDBEAB
+F16FF32617952596187203D41342DF7FC1E0CAEA2EE8F012236DAB0208A626E4
+5FC5EC819580727F7890BF2B114523A3006CFE3B67F19419A009826C635C4B2C
+10CED88293D753A6FC63C5C17A424E911169E316DAC022EE37A5F93A6D7BB446
+5402EDB1F758FFCCBE83F7842CF09E84DAC17CC8A5D0521CDBCA8B320D90F24F
+32AA9B86DAFD068FB0D234C94EC0889134DCCF83F8B0C89F67D660EC4D6E2B34
+D4CC5E094049ACFA09767E7C0AFD789767D0660825FC94878BFCA40105597194
+BDF88A8636D180BAFEF635601218B47E1242497D1E90E7A0F1098FE4161E6C7D
+D1E920DBECEDE54FD9D8EA40E25881F0E31C3FECCA22ED507DF496122D25AF56
+E6E690952EC746BE46F4D228D54C634B04D036DD33252E5A5B6309E559EB9CF9
+DD17101EF262D5FEBE9C207007A2E7F3BCCCE3243333F0A79C1779E727414D60
+B451BDC14BA3FFCBB9D49641DE51BE92C7D136C2C910559A6EE106DC05CB4890
+322BC12FD592C4789FD8368DFB7827A67FF8FADE351646D0B4B35F74A924E229
+DDCBE1B5D24D049CBD4424B123B6AAE7F5AF8AEEC7F862431541F6B755A272CE
+177CAB058D297A35041646435664056644B2422B2CB890080C3BEC3C52C6363C
+B843F24977C482C7A37CF18DEDE4E8FECB280E86263BBB5BD413A9BE19329817
+EC424B1AEEEF713A52D68143AF0DC2B02F293425F041A616D148ABED9E7FA7A0
+AE99B5762A52E38BE8E7148EF22808632CBDEA8613948D8E3D576580FA3F4B3E
+0B5F9E1B240BC7D0744FB1D121E3231994DEDE24B919A72869C15B839DDD9917
+D3BF2466E673B142E4B527B17893D3405603E1271E2D005A6318DC98CFA3D25C
+3A7B59A16B1D6C5C31F267B964E951DFDB1143F8D9005E378A3D4F5B072911CC
+814C191A806A989BC176544E45BA9A5CB16281394572CC6275A96865BEAB6F9D
+06DD94701FB30DEAC86652473C182379F43877528F28AB0B5FD9669347003055
+2E6169601690053E00E18BE7FA7143DA61EA74326BE8122E56485E65B0572821
+BBE05576C1D9706EE219A8377338E93DFFFEE5E37E6054412A9B875A092C948C
+C4663F161AEBAFBB964859E9056D42B76A806A2B1C435318459E272DD51339B6
+B16BC73787ADF1D7A2CD630CA98F8B6C479693BA427D7096E83AAC35B6D1CCAE
+B5879B03B706C6AA3FC1A1D180315A2252DE59C45E9429E107D7A73A645AB182
+6FCD53B44907874A1B286BC50D9051160CBFB374856E59C961C376C3B553454B
+108BC5FFAC60EB8C7426A70A1FFC2CE80D8989A3EEC43A9AD51771D48884BB32
+1749E328FDCCD4FDD104E80EB6813FB98D83139791DD2A2C9ED7A70BC458DB09
+5D73B21DAF0FFC110324B8F2BC145FA61962C5D78B4D6C8D014D6938AF09F36A
+2A3E5634A140A1A525BFCAA00616AA1D8195A8A68E4260B8ADDDF789B131C074
+01EF325E06AEA94A459CE1F51F312C3C19142528AC941551F324BE2653BBCF38
+46DDC6BDF7EF77D68C32F4DE7D8604E63A632AB2108086C77B94DC31D926D1E7
+1D3653D8B35CC5AC431368B7B2D7C3A565FEE9D9B2E366F265A627FE7B4378C4
+81A0C4DBDDE6F7DD940F08764D307A5B09097320431AA76A41C4ADE92C260588
+522B197B802DC488FA2169BC2E13AE36A98591E1673C1CAC29B4E0E15D2227E7
+80928CA4C060FECE89B014C3FB6A42313FC438E448DDD73CB66ADEF1FACF2E2A
+4601F76ECFF658D97BC22C765C0B1B04B03EE08A41E2C778A8E5954CABE7B386
+BFC2DC7C60E720BAB2B1A726D8AF4933355F21731FD7C930F31720C1E16F6C01
+C0C8B6747961B605CDFFB02FD6D6A7758B1097AA1D47C6DA9DBF0F87E55672AD
+FE93D17DA6FE7B2E3A5360C5BF0C3F4715165CC6748BC95CFA74D4AD57B481B9
+3784040A6B1BB028CA9F69B6AE52CFF8FF3FD169FDE1A85B52651D99B4042E72
+D5E952BD9F976EFA21C935F2ECBF5C8D4D8BA0AA97DD1458650F6DB9C80B3B21
+F60761C150944567DE98E9DED3BB831A57DE2A5C8CC4417D0D02BF24EB09C2A7
+B8262EFB223FDEDB45E75E2559190060C676B43721B5894EA52440AAAF72B77D
+42138ABF062B92255DCE006EC18492D4CC0CA6FE753E8851305B967B4B01D481
+85D8A1B78CAEBEB99ED44E5BD7B0CD242B46F8C3C4B1DCE6B103497A89D0C48A
+FCA2DDB3CBEF2CC076673FE28DD397F4975BF03EABF542C8ECAE8311822A6564
+14C20DE022F9AFBF672B31D124F96E2475073E6B53F8032685A45AC7181B0158
+A6FDBF2DFCC9D842D42E098BC02AEFABA6D571821604BBDC389E80931BC8A767
+A92DC7CE49EDDC3C89521CD3AF5AEFF121EAA27B74A37BF043B1AC045A0D9A38
+8767D85D15DBF0F5ABC495207AA3AD05BE201642206044F470EFDF4A8D52C050
+D600F04B97ACED3F7FC8A56E7640A6A4AAAE1816F3A77D887A378AA0B130B509
+72A8ADBD5808E9BBB7F83216D995EC74FD168D5A3D171AB9C52A0E21169172A2
+9C680D926D2327A314835700D399CE25A8311D22D1127B43CB8A9D900133C4D1
+CA1F71C4331F37DBE7F26650B4D512C5E192635CD8CF4C560AB5BFFE0671424D
+456BA00271A643AA2477DAB650F682D89B932BEBB5A66EBC9072A469EE78E0B3
+86F58B1BA76F31B978C167A0E5CE18889C4DA968CEF94EFA70060960E1D53535
+17230FC0C8AA0E878AD3D6E306533800DB46BF785219872DBCAAEC33A236A8AA
+E86D9C9316CEE8D75888217824D56420EF7AFE70E18C6AC6E7E71161373D574A
+D399548B201868F2D1B2DEC136ECFEFE25C307630331F2F893FE36E0CCC8113F
+9D7A6DE87881BC713E6B438F1E804B2C6F00DAA4FF0A33F2B051EE2655BD8583
+9AA5BB2F7A4AD400F34963FA1BD28D5AB933EAE84C047D636122BE431DB097BC
+85D7CB6C30B09333A567F7DFC0A0482E4373512294562297BACC2F53E2BF1718
+4E23AA470CB1879235832D66846522B8EC1536E17172B8DA9DEB14877C9405D4
+531E548E8ACEBE66D41992C0D0A25CE7FE2641DC2F06A1399C864A7C1155DDD4
+20A2D292688E6426B147572C2CD3706C96C22C977A4A6C4A30A54C7DDD50DCB9
+7BBC5C0B744CD85DF88166B916C0F1909A38742C6BCB58045C4223B70F4B3BAD
+74EBBE8395A3F64A14D6838554EB6AB7CE417DD7448EBB4F3EE10B13B454C4EA
+949AF16A87E72ED21159408171A4847199C5E403FADCC67D0FFA5A58452ADC67
+FC3C597826B20BD85A1AC7BFA715531D99DDA5155185E3FBF29DDF559A103F75
+538AC8CC0B4C4041288E89B387F6ABE04F90E8CEB2099293D1DC4FE00647C80C
+5DBE532282708D050BC6A226F45DBC314D109554BB25CF04770ED4874EED1B1F
+E18E006F254BB4297C435B416A9AFC6FC51568D89317BCDD9885E2D1ED15F4F7
+AF253B5FAEE5CC44BF9D860982B7F4706C8B8018E6488E337B773A4A7AAF9998
+6796B30721736F7AB66CE22EBEF616FE5847929A2E08D64DA7E912F4CA899F73
+6A0A1F1F2163886A7C5E6999D98AB9708EADE2030050B2D05AEF0AA9447F8698
+7C191DD81DB9131D0DC19BB7CD0CD9A60AEBBA3FAD203CA51B6FECB75EC91C14
+EE75CBB49420594C7B9A56EDE29343B5D1817AFF27B71F0BF2B8D59D8198C2B7
+A9F4091A085C973412051D6ACCD3F0B37D502D8FE193CD5E42769D1F497847CF
+B986233F0DE24FE2F4ED03BFA105DD04182887D3C6CB827A1D5B00170B8DFA5E
+EB1BE4FEEACCC82A5BB4BCE2C8320CBCF6EEBFC955025F3980763F51170EA440
+C2144AD36893326E5A3DC214AF59FF505E8168593AB9543FC6690F0D63262FBB
+978B833906430E5D2DC99D729D1CCE7A0A91725537BCF91DFBF8073EEE494A2B
+E38F1AA3D81C602D05FAD3CA3A8A5A7E1F0A7F7CA736B561F3C29275E68D01E1
+FA253D089243988C475ABF8077C71DD93F1414E69FAEE565F42C863C61BE554B
+44C92919D78D898E70510D9EA1FCAB702FD53337263606A777A001224390AA6C
+D8CA04FE8F34D61F03E083D0A050EA3985ED026479142A7184494C615A7AC675
+97B6196C56F2034850A77938B7585B18AEEA2D249E41D25302DFF2416FCADC13
+E69030FD907778821C66F93220A31991386640AC2315A5B7DB80B4AE91A6A4D7
+8BC19E632295CFECA8D65B4045C5A7614852CD48686A27D61F6DC6ED6120D30D
+92C97F4D0B5135823FA4A59DFB7633
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -4245,15 +7449,16 @@ E6ED1E83A78C452A4B55AA0A93EBEA6CC4618FEEA937695E6513B7875E4EFCDC
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
+{restore}if
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi)
-@start /Fa 130[62 1[62 123[{}2 119.552 /CMTT12 rf /Fb
-133[34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23
-21 43 38 23 34 43 34 43 38 8[58 4[43 57 1[52 60 58 70
-3[28 58 3[59 1[54 58 7[38 38 38 38 38 38 38 38 38 38
-3[21 31[43 12[{}50 74.7198 /CMR9 rf /Fc 197[21 58[{}1
-74.7198 /CMMI9 rf /Fd 134[39 39 2[39 39 39 39 2[39 39
-39 39 2[39 39 2[39 3[39 19[39 27[39 39 2[39 45[{}18 74.7198
+@start /Fa 131[62 124[{}1 119.552 /CMTT12 rf /Fb 133[34
+41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23 21 43
+38 23 34 43 34 43 38 8[58 4[43 57 1[52 60 58 70 3[28
+58 3[59 1[54 58 7[38 38 38 38 38 38 38 38 38 38 3[21
+31[43 12[{}50 74.7198 /CMR9 rf /Fc 197[21 58[{}1 74.7198
+/CMMI9 rf /Fd 134[39 39 2[39 39 39 39 2[39 39 39 39 2[39
+39 1[39 39 39 2[39 19[39 27[39 39 2[39 45[{}20 74.7198
/CMSLTT10 rf /Fe 129[39 39 1[39 39 39 39 39 39 39 39
39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39
39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 1[39 39
@@ -4263,606 +7468,596 @@ TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi)
2[57 1[62 76 52 1[43 1[62 65 54 1[63 60 67[{}13 83.022
/CMR10 rf /Fg 135[67 2[67 1[50 2[61 69 5[33 1[70 2[68
52[60 47[{}9 109.174 /CMCSC10 rf /Fh 140[56 3[56 56 1[56
-2[56 56 56 57[56 45[{}8 109.091 /CMTT12 rf /Fi 134[48
-48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 48 48 48 48 1[48 2[48 3[48 3[48 1[48 1[48 1[48
-48 48 1[48 48 48 1[48 48 48 48 1[48 6[48 6[48 48 48 48
-2[48 2[48 2[48 39[{}50 90.9091 /CMSLTT10 rf /Fj 134[65
-65 89 65 68 48 48 50 65 68 61 68 102 34 65 1[34 68 61
-37 56 68 55 68 60 34 6[93 1[127 1[94 85 68 92 92 84 92
-96 116 74 96 1[46 96 96 77 81 94 89 87 93 1[58 5[61 61
-61 61 61 61 61 61 61 61 1[34 41 34 4[34 26[68 72 11[{}64
-109.091 /CMBX12 rf /Fk 135[42 1[42 1[30 37 38 1[46 46
+2[56 56 56 57[56 45[{}8 109.091 /CMTT12 rf /Fi 130[45
+1[45 123[{ T1Encoding ReEncodeFont }2 91.3242 /SFRM1095
+rf /Fj 134[48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 48 48 48 48 1[48 2[48 3[48 3[48
+1[48 1[48 1[48 48 48 1[48 48 48 1[48 48 48 48 1[48 6[48
+6[48 48 48 48 2[48 5[48 39[{}49 90.9091 /CMSLTT10 rf
+/Fk 134[65 65 89 65 68 48 48 50 65 68 61 68 102 34 65
+1[34 68 61 37 56 68 55 68 60 7[93 1[127 1[94 85 68 92
+92 84 92 96 116 74 96 1[46 96 96 77 81 94 89 87 93 1[58
+5[61 61 61 61 61 61 61 61 61 61 1[34 41 34 31[68 72 11[{}62
+109.091 /CMBX12 rf /Fl 135[42 1[42 1[30 37 38 1[46 46
51 74 23 2[28 1[42 1[42 46 42 1[46 51[33 32[51 12[{}18
-90.9091 /CMTI10 rf /Fl 135[56 2[56 1[42 55 1[51 58 56
+90.9091 /CMTI10 rf /Fm 135[56 2[56 1[42 55 1[51 58 56
68 47 2[27 1[58 49 51 57 54 53 56 46[50 2[50 1[34 45[{}20
-90.9091 /CMCSC10 rf /Fm 197[25 58[{}1 90.9091 /CMMI10
-rf /Fn 197[33 58[{}1 119.552 /CMMI12 rf /Fo 134[85 85
+90.9091 /CMCSC10 rf /Fn 197[25 58[{}1 90.9091 /CMMI10
+rf /Fo 197[33 58[{}1 119.552 /CMMI12 rf /Fp 134[85 85
1[85 90 63 64 66 1[90 81 90 134 45 1[49 45 90 81 49 74
90 72 90 78 10[122 124 112 90 120 3[126 153 97 1[83 60
126 127 101 106 124 117 115 122 7[81 81 81 81 81 81 81
-81 81 81 35[90 94 11[{}52 143.462 /CMBX12 rf /Fp 200[0
-21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10 rf /Fq 134[48
+81 81 81 35[90 94 11[{}52 143.462 /CMBX12 rf /Fq 200[0
+21[91 17[45 1[91 12[71{}5 90.9091 /CMSY10 rf /Fr 134[48
48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45
-28 40 51 40 51 45 8[68 93 1[68 66 51 67 1[62 71 68 83
-57 71 1[33 68 71 59 62 69 66 64 68 13[45 45 45 3[30 30[76
-1[51 53 11[{}53 90.9091 /CMSL10 rf /Fr 134[71 71 97 71
-75 52 53 55 1[75 67 75 112 37 71 41 37 75 67 41 61 75
-60 75 65 3[37 1[37 1[102 102 139 102 103 94 75 100 101
-92 101 105 128 81 105 69 50 105 106 85 88 103 97 96 102
-105 64 4[37 67 67 67 67 67 67 67 67 67 67 1[37 45 37
-1[67 5[67 112 1[41 20[75 78 11[{}73 119.552 /CMBX12 rf
-/Fs 129[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+28 40 51 40 51 45 7[68 68 93 1[68 66 51 67 1[62 71 68
+83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45 45
+3[30 8[45 21[76 1[51 53 11[{}56 90.9091 /CMSL10 rf /Fs
+134[71 71 97 71 75 52 53 55 1[75 67 75 112 37 71 41 37
+75 67 41 61 75 60 75 65 3[37 1[37 1[102 102 139 102 103
+94 75 100 101 92 101 105 128 81 105 69 50 105 106 85
+88 103 97 96 102 105 64 4[37 67 67 67 67 67 67 67 67
+67 67 1[37 45 37 1[67 5[67 112 1[41 20[75 78 11[{}73
+119.552 /CMBX12 rf /Ft 129[48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
+48 48 48 48 48 48 48 1[48 48 48 48 48 48 48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
-48 48 48 48 48 48 48 33[{}93 90.9091 /CMTT10 rf /Ft 131[91
-45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28
-25 51 45 28 40 51 40 51 45 25 2[25 45 25 56 68 68 93
-68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62
-69 66 64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 45 45
-45 45 45 25 30 25 2[35 35 25 71 76 45 1[45 25 18[76 51
-51 53 11[{}88 90.9091 /CMR10 rf /Fu 138[108 1[76 79 3[108
-1[54 3[108 1[59 88 1[86 1[94 14[144 4[184 10[138 66[{}13
-172.154 /CMBX12 rf end
+48 48 48 48 48 48 48 48 48 48 48 48 48 33[{}93 90.9091
+/CMTT10 rf /Fu 131[91 45 40 48 48 66 48 51 35 36 36 48
+51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25
+45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71
+47 33 68 71 59 62 69 66 64 68 71 43 1[71 1[25 25 45 45
+45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25 71
+76 45 76 45 25 18[76 51 51 53 11[{}91 90.9091 /CMR10
+rf /Fv 138[108 1[76 79 3[108 1[54 3[108 1[59 88 1[86
+1[94 14[144 4[184 10[138 66[{}13 172.154 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: Letter
-letter
+/setpagedevice where
+{ pop << /PageSize [612 792] >> setpagedevice }
+{ /letter where { pop letter } if }
+ifelse
%%EndPaperSize
end
%%EndSetup
%%Page: 1 1
-TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
-b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
-b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.2,)g(for)f
-Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.2.)3145 1697 y(Decem)m(b)s(er)g(2010)
-150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
-b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
-y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
-b(oundation)p 150 5141 3600 17 v eop end
+TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
+b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
+b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.3,)g(for)f
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(4.3.)3180 1697 y(F)-8
+b(ebruary)30 b(2014)150 4935 y Fs(Chet)45 b(Ramey)-11
+b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150
+5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)
+-11 b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
-TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
+TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.2,)c(28)f(Decem)m(b)s
-(er)g(2010\).)150 3133 y(This)f(is)g(Edition)h(4.2,)h(last)g(up)s
-(dated)d(28)i(Decem)m(b)s(er)h(2010,)h(of)d Fq(The)g(GNU)i(Bash)e
-(Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)e Fs(Bash)p
-Ft(,)g(V)-8 b(ersion)31 b(4.2.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fp(\015)f Ft(1988{2010)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
-3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
-(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
-(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
-(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)390
-3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
-b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
-(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
-b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
-b(1.3)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
-b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
-b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
-b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
-b(texts)e(b)s(eing)g(\\A)g(GNU)g(Man)m(ual",)h(and)e(with)g(the)h(Bac)m
-(k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)f(\(a\))h(b)s(elo)m
-(w.)47 b(A)33 b(cop)m(y)g(of)f(the)h(license)g(is)g(included)e(in)h
-(the)h(section)g(en)m(titled)390 4304 y(\\GNU)e(F)-8
-b(ree)32 b(Do)s(cumen)m(tation)g(License".)390 4438 y(\(a\))f(The)f
-(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)31 b(is:)41
-b(Y)-8 b(ou)31 b(are)f(free)h(to)f(cop)m(y)h(and)f(mo)s(dify)f(this)h
-(GNU)390 4548 y(man)m(ual.)41 b(Buying)30 b(copies)h(from)e(GNU)i
-(Press)f(supp)s(orts)e(the)i(FSF)g(in)g(dev)m(eloping)h(GNU)390
-4658 y(and)f(promoting)g(soft)m(w)m(are)i(freedom.")150
-4902 y(Published)d(b)m(y)h(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
-b(oundation)150 5011 y(59)31 b(T)-8 b(emple)31 b(Place,)h(Suite)e(330,)
-150 5121 y(Boston,)i(MA)e(02111-1307)150 5230 y(USA)p
-eop end
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(4.3,)c(2)e(F)-8
+b(ebruary)31 b(2014\).)150 4523 y(This)26 b(is)g(Edition)h(4.3,)i(last)
+e(up)s(dated)e(2)i(F)-8 b(ebruary)26 b(2014,)k(of)d Fr(The)f(GNU)h
+(Bash)f(Reference)i(Man)m(ual)p Fu(,)g(for)150 4633 y
+Ft(Bash)p Fu(,)h(V)-8 b(ersion)31 b(4.3.)150 4767 y(Cop)m(yrigh)m(t)602
+4764 y(c)577 4767 y Fq(\015)f Fu(1988{2014)35 b(F)-8
+b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
+4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
+b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
+(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
+b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
+b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
+b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46
+b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31
+b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8
+b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390
+5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8
+b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end
%%Page: -1 3
-TeXDict begin -1 2 bop 3725 -116 a Ft(i)150 299 y Fo(T)-13
-b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fr(1)135 b(In)l(tro)t
-(duction)13 b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+TeXDict begin -1 2 bop 3725 -116 a Fu(i)150 299 y Fp(T)-13
+b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fs(1)135 b(In)l(tro)t
+(duction)13 b Fo(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)57 b Fr(1)275 778 y Ft(1.1)92
-b(What)31 b(is)f(Bash?)22 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+g(:)h(:)f(:)h(:)f(:)h(:)57 b Fs(1)275 778 y Fu(1.1)92
+b(What)31 b(is)f(Bash?)22 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)52 b Ft(1)275 888 y(1.2)92 b(What)31
-b(is)f(a)h(shell?)13 b Fm(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)g(:)h(:)f(:)52 b Fu(1)275 888 y(1.2)92 b(What)31
+b(is)f(a)h(shell?)13 b Fn(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)44 b Ft(1)150 1130 y Fr(2)135 b(De\014nitions)13
-b Fn(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)44 b Fu(1)150 1130 y Fs(2)135 b(De\014nitions)13
+b Fo(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)h(:)f(:)57 b Fr(3)150 1400 y(3)135 b(Basic)45
-b(Shell)g(F)-11 b(eatures)27 b Fn(:)21 b(:)e(:)g(:)h(:)f(:)h(:)f(:)h(:)
+f(:)h(:)f(:)h(:)f(:)57 b Fs(3)150 1400 y(3)135 b(Basic)45
+b(Shell)g(F)-11 b(eatures)27 b Fo(:)21 b(:)e(:)g(:)h(:)f(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
-(:)f(:)72 b Fr(5)275 1537 y Ft(3.1)92 b(Shell)30 b(Syn)m(tax)25
-b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)72 b Fs(5)275 1537 y Fu(3.1)92 b(Shell)30 b(Syn)m(tax)25
+b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55
-b Ft(5)399 1646 y(3.1.1)93 b(Shell)30 b(Op)s(eration)c
-Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+b Fu(5)399 1646 y(3.1.1)93 b(Shell)30 b(Op)s(eration)c
+Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(5)399 1756
-y(3.1.2)93 b(Quoting)15 b Fm(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Fu(5)399 1756
+y(3.1.2)93 b(Quoting)15 b Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)45 b Ft(6)524 1866 y(3.1.2.1)93 b(Escap)s(e)30
-b(Character)11 b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+g(:)h(:)f(:)h(:)f(:)45 b Fu(6)524 1866 y(3.1.2.1)93 b(Escap)s(e)30
+b(Character)11 b Fn(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Ft(6)524 1975 y(3.1.2.2)93
-b(Single)31 b(Quotes)d Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Fu(6)524 1975 y(3.1.2.2)93
+b(Single)31 b(Quotes)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)58 b Ft(6)524
-2085 y(3.1.2.3)93 b(Double)31 b(Quotes)26 b Fm(:)16 b(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)58 b Fu(6)524
+2085 y(3.1.2.3)93 b(Double)31 b(Quotes)26 b Fn(:)16 b(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)56
-b Ft(6)524 2194 y(3.1.2.4)93 b(ANSI-C)30 b(Quoting)d
-Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+b Fu(6)524 2194 y(3.1.2.4)93 b(ANSI-C)30 b(Quoting)d
+Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)57 b Ft(6)524 2304 y(3.1.2.5)93 b(Lo)s(cale-Sp)s(eci\014c)
-32 b(T)-8 b(ranslation)8 b Fm(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+f(:)g(:)h(:)57 b Fu(6)524 2304 y(3.1.2.5)93 b(Lo)s(cale-Sp)s(eci\014c)
+32 b(T)-8 b(ranslation)8 b Fn(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
-(:)38 b Ft(7)399 2413 y(3.1.3)93 b(Commen)m(ts)26 b Fm(:)15
+(:)38 b Fu(7)399 2413 y(3.1.3)93 b(Commen)m(ts)26 b Fn(:)15
b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b
-Ft(7)275 2523 y(3.2)92 b(Shell)30 b(Commands)21 b Fm(:)14
+Fu(7)275 2523 y(3.2)92 b(Shell)30 b(Commands)21 b Fn(:)14
b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)51 b Ft(8)399
-2633 y(3.2.1)93 b(Simple)30 b(Commands)c Fm(:)15 b(:)h(:)f(:)h(:)f(:)g
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)51 b Fu(8)399
+2633 y(3.2.1)93 b(Simple)30 b(Commands)c Fn(:)15 b(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57
-b Ft(8)399 2742 y(3.2.2)93 b(Pip)s(elines)18 b Fm(:)d(:)g(:)h(:)f(:)g
+b Fu(8)399 2742 y(3.2.2)93 b(Pip)s(elines)18 b Fn(:)d(:)g(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Ft(8)399
-2852 y(3.2.3)93 b(Lists)30 b(of)h(Commands)15 b Fm(:)f(:)h(:)h(:)f(:)g
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Fu(8)399
+2852 y(3.2.3)93 b(Lists)30 b(of)h(Commands)15 b Fn(:)f(:)h(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)45
-b Ft(9)399 2961 y(3.2.4)93 b(Comp)s(ound)28 b(Commands)22
-b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+b Fu(9)399 2961 y(3.2.4)93 b(Comp)s(ound)28 b(Commands)22
+b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)54 b Ft(9)524 3071 y(3.2.4.1)93 b(Lo)s(oping)30
-b(Constructs)8 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+f(:)g(:)54 b Fu(9)524 3071 y(3.2.4.1)93 b(Lo)s(oping)30
+b(Constructs)8 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)g(:)38 b Ft(10)524 3181 y(3.2.4.2)93 b(Conditional)31
-b(Constructs)18 b Fm(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+f(:)h(:)f(:)g(:)38 b Fu(10)524 3181 y(3.2.4.2)93 b(Conditional)31
+b(Constructs)18 b Fn(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47
-b Ft(10)524 3290 y(3.2.4.3)93 b(Grouping)30 b(Commands)15
-b Fm(:)f(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+b Fu(10)524 3290 y(3.2.4.3)93 b(Grouping)30 b(Commands)15
+b Fn(:)f(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)45
-b Ft(13)399 3400 y(3.2.5)93 b(Copro)s(cesses)18 b Fm(:)d(:)g(:)h(:)f(:)
+b Fu(14)399 3400 y(3.2.5)93 b(Copro)s(cesses)18 b Fn(:)d(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)47 b Ft(14)399 3509 y(3.2.6)93
-b(GNU)31 b(P)m(arallel)c Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)g(:)h(:)f(:)h(:)47 b Fu(15)399 3509 y(3.2.6)93
+b(GNU)31 b(P)m(arallel)c Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)55
-b Ft(14)275 3619 y(3.3)92 b(Shell)30 b(F)-8 b(unctions)29
-b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+b Fu(15)275 3619 y(3.3)92 b(Shell)30 b(F)-8 b(unctions)29
+b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58
-b Ft(15)275 3729 y(3.4)92 b(Shell)30 b(P)m(arameters)17
-b Fm(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+b Fu(17)275 3729 y(3.4)92 b(Shell)30 b(P)m(arameters)17
+b Fn(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(17)399
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Fu(18)399
3838 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)20
-b Fm(:)d(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+b Fn(:)d(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)50 b Ft(17)399 3948 y(3.4.2)93 b(Sp)s(ecial)30
-b(P)m(arameters)16 b Fm(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)50 b Fu(19)399 3948 y(3.4.2)93 b(Sp)s(ecial)30
+b(P)m(arameters)16 b Fn(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)46 b Ft(18)275 4057
-y(3.5)92 b(Shell)30 b(Expansions)17 b Fm(:)d(:)h(:)h(:)f(:)h(:)f(:)g(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)46 b Fu(20)275 4057
+y(3.5)92 b(Shell)30 b(Expansions)17 b Fn(:)d(:)h(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)46 b Ft(19)399 4167 y(3.5.1)93 b(Brace)31
-b(Expansion)21 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+f(:)g(:)h(:)46 b Fu(21)399 4167 y(3.5.1)93 b(Brace)31
+b(Expansion)21 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(19)399
-4276 y(3.5.2)93 b(Tilde)30 b(Expansion)10 b Fm(:)15 b(:)h(:)f(:)g(:)h
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Fu(21)399
+4276 y(3.5.2)93 b(Tilde)30 b(Expansion)10 b Fn(:)15 b(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)40 b Ft(20)399 4386 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i
-(Expansion)18 b Fm(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)f(:)40 b Fu(22)399 4386 y(3.5.3)93 b(Shell)30 b(P)m(arameter)i
+(Expansion)18 b Fn(:)d(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
-48 b Ft(21)399 4496 y(3.5.4)93 b(Command)29 b(Substitution)12
-b Fm(:)j(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+48 b Fu(23)399 4496 y(3.5.4)93 b(Command)29 b(Substitution)12
+b Fn(:)j(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)42 b Ft(24)399 4605 y(3.5.5)93 b(Arithmetic)31 b(Expansion)19
-b Fm(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+(:)42 b Fu(28)399 4605 y(3.5.5)93 b(Arithmetic)31 b(Expansion)19
+b Fn(:)c(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)48 b Ft(24)399 4715 y(3.5.6)93 b(Pro)s(cess)30
-b(Substitution)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)h(:)48 b Fu(29)399 4715 y(3.5.6)93 b(Pro)s(cess)30
+b(Substitution)d Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)57 b Ft(24)399 4824 y(3.5.7)93
-b(W)-8 b(ord)31 b(Splitting)20 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)57 b Fu(29)399 4824 y(3.5.7)93
+b(W)-8 b(ord)31 b(Splitting)20 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49
-b Ft(25)399 4934 y(3.5.8)93 b(Filename)32 b(Expansion)13
-b Fm(:)i(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+b Fu(29)399 4934 y(3.5.8)93 b(Filename)32 b(Expansion)13
+b Fn(:)i(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)43 b Ft(25)524 5044 y(3.5.8.1)93 b(P)m(attern)31
-b(Matc)m(hing)d Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)f(:)h(:)f(:)43 b Fu(30)524 5044 y(3.5.8.1)93 b(P)m(attern)31
+b(Matc)m(hing)d Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)56 b Ft(26)399 5153 y(3.5.9)93 b(Quote)31
-b(Remo)m(v)-5 b(al)9 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)g(:)h(:)f(:)56 b Fu(30)399 5153 y(3.5.9)93 b(Quote)31
+b(Remo)m(v)-5 b(al)9 b Fn(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39
-b Ft(27)275 5263 y(3.6)92 b(Redirections)26 b Fm(:)15
+b Fu(31)275 5263 y(3.6)92 b(Redirections)26 b Fn(:)15
b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55
-b Ft(27)p eop end
+b Fu(31)p eop end
%%Page: -2 4
-TeXDict begin -2 3 bop 150 -116 a Ft(ii)2612 b(Bash)31
-b(Reference)g(Man)m(ual)399 83 y(3.6.1)93 b(Redirecting)31
-b(Input)23 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+TeXDict begin -2 3 bop 3699 -116 a Fu(ii)399 83 y(3.6.1)93
+b(Redirecting)31 b(Input)23 b Fn(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)52
+b Fu(33)399 193 y(3.6.2)93 b(Redirecting)31 b(Output)26
+b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)g(:)h(:)56 b Fu(33)399 302 y(3.6.3)93 b(App)s(ending)28
+b(Redirected)k(Output)12 b Fn(:)h(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)52 b Ft(28)399 193
-y(3.6.2)93 b(Redirecting)31 b(Output)26 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56
-b Ft(28)399 302 y(3.6.3)93 b(App)s(ending)28 b(Redirected)k(Output)12
-b Fm(:)h(:)j(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(29)399
-412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h(and)f(Standard)h
-(Error)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)58 b Ft(29)399
-521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)h(Standard)f
-(Error)19 b Fm(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)48
-b Ft(29)399 631 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)c
-Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+41 b Fu(33)399 412 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h
+(and)f(Standard)h(Error)d Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)58
+b Fu(33)399 521 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)
+h(Standard)f(Error)19 b Fn(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)48
+b Fu(34)399 631 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)c
+Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Ft(29)399 741 y(3.6.7)93
-b(Here)31 b(Strings)c Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Fu(34)399 741 y(3.6.7)93
+b(Here)31 b(Strings)c Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58
-b Ft(30)399 850 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)16
-b Fm(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+b Fu(34)399 850 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)16
+b Fn(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
-b Ft(30)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)19
-b Fm(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+b Fu(34)399 960 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)19
+b Fn(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)49
-b Ft(30)399 1069 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
-(for)f(Reading)h(and)f(W)-8 b(riting)19 b Fm(:)e(:)e(:)h(:)f(:)h(:)f(:)
-49 b Ft(30)275 1179 y(3.7)92 b(Executing)31 b(Commands)17
-b Fm(:)d(:)h(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+b Fu(35)399 1069 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
+(for)f(Reading)h(and)f(W)-8 b(riting)19 b Fn(:)e(:)e(:)h(:)f(:)h(:)f(:)
+49 b Fu(35)275 1179 y(3.7)92 b(Executing)31 b(Commands)17
+b Fn(:)d(:)h(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Ft(30)399 1289 y(3.7.1)93
-b(Simple)30 b(Command)f(Expansion)23 b Fm(:)15 b(:)g(:)h(:)f(:)g(:)h(:)
+(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fu(35)399 1289 y(3.7.1)93
+b(Simple)30 b(Command)f(Expansion)23 b Fn(:)15 b(:)g(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)52 b Ft(31)399 1398 y(3.7.2)93 b(Command)29
-b(Searc)m(h)i(and)f(Execution)d Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)g(:)h(:)f(:)h(:)52 b Fu(35)399 1398 y(3.7.2)93 b(Command)29
+b(Searc)m(h)i(and)f(Execution)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56
-b Ft(31)399 1508 y(3.7.3)93 b(Command)29 b(Execution)i(En)m(vironmen)m
-(t)8 b Fm(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38 b Ft(32)399 1617
-y(3.7.4)93 b(En)m(vironmen)m(t)18 b Fm(:)d(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+b Fu(36)399 1508 y(3.7.3)93 b(Command)29 b(Execution)i(En)m(vironmen)m
+(t)8 b Fn(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38 b Fu(36)399 1617
+y(3.7.4)93 b(En)m(vironmen)m(t)18 b Fn(:)d(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)47 b Ft(33)399 1727 y(3.7.5)93 b(Exit)31 b(Status)c
-Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)h(:)47 b Fu(37)399 1727 y(3.7.5)93 b(Exit)31 b(Status)c
+Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 b
-Ft(33)399 1836 y(3.7.6)93 b(Signals)15 b Fm(:)g(:)g(:)h(:)f(:)h(:)f(:)g
+Fu(38)399 1836 y(3.7.6)93 b(Signals)15 b Fn(:)g(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)44 b Ft(34)275 1946
-y(3.8)92 b(Shell)30 b(Scripts)23 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)44 b Fu(38)275 1946
+y(3.8)92 b(Shell)30 b(Scripts)23 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)53 b Ft(34)150 2188 y Fr(4)135
-b(Shell)45 b(Builtin)g(Commands)22 b Fn(:)e(:)g(:)f(:)h(:)f(:)h(:)f(:)g
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)53 b Fu(39)150 2188 y Fs(4)135
+b(Shell)45 b(Builtin)g(Commands)22 b Fo(:)e(:)g(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)67
-b Fr(37)275 2325 y Ft(4.1)92 b(Bourne)30 b(Shell)g(Builtins)e
-Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+b Fs(41)275 2325 y Fu(4.1)92 b(Bourne)30 b(Shell)g(Builtins)e
+Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)57 b Ft(37)275 2435 y(4.2)92
-b(Bash)30 b(Builtin)h(Commands)24 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)57 b Fu(41)275 2435 y(4.2)92
+b(Bash)30 b(Builtin)h(Commands)24 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)54
-b Ft(43)275 2545 y(4.3)92 b(Mo)s(difying)30 b(Shell)g(Beha)m(vior)9
-b Fm(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+b Fu(48)275 2545 y(4.3)92 b(Mo)s(difying)30 b(Shell)g(Beha)m(vior)9
+b Fn(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)39 b Ft(53)399 2654 y(4.3.1)93 b(The)30
-b(Set)g(Builtin)c Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+h(:)f(:)h(:)f(:)39 b Fu(58)399 2654 y(4.3.1)93 b(The)30
+b(Set)g(Builtin)c Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)55 b
-Ft(54)399 2764 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)13
-b Fm(:)j(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+Fu(58)399 2764 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)13
+b Fn(:)j(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)43 b Ft(57)275 2873 y(4.4)92 b(Sp)s(ecial)30
-b(Builtins)21 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)h(:)f(:)h(:)f(:)g(:)43 b Fu(62)275 2873 y(4.4)92 b(Sp)s(ecial)30
+b(Builtins)21 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50
-b Ft(62)150 3116 y Fr(5)135 b(Shell)45 b(V)-11 b(ariables)19
-b Fn(:)h(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
+b Fu(68)150 3116 y Fs(5)135 b(Shell)45 b(V)-11 b(ariables)19
+b Fo(:)h(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)64
-b Fr(63)275 3253 y Ft(5.1)92 b(Bourne)30 b(Shell)g(V)-8
-b(ariables)22 b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+b Fs(69)275 3253 y Fu(5.1)92 b(Bourne)30 b(Shell)g(V)-8
+b(ariables)22 b Fn(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(63)275
-3362 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)16 b Fm(:)h(:)f(:)f(:)h(:)f
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Fu(69)275
+3362 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)16 b Fn(:)h(:)f(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Ft(63)150 3605 y
-Fr(6)135 b(Bash)44 b(F)-11 b(eatures)13 b Fn(:)20 b(:)g(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Fu(69)150 3605 y
+Fs(6)135 b(Bash)44 b(F)-11 b(eatures)13 b Fo(:)20 b(:)g(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fr(73)275
-3742 y Ft(6.1)92 b(In)m(v)m(oking)31 b(Bash)d Fm(:)16
+f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fs(80)275
+3742 y Fu(6.1)92 b(In)m(v)m(oking)31 b(Bash)d Fn(:)16
b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b
-Ft(73)275 3851 y(6.2)92 b(Bash)30 b(Startup)g(Files)20
-b Fm(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+Fu(80)275 3851 y(6.2)92 b(Bash)30 b(Startup)g(Files)20
+b Fn(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Ft(75)275
-3961 y(6.3)92 b(In)m(teractiv)m(e)32 b(Shells)11 b Fm(:)16
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Fu(82)275
+3961 y(6.3)92 b(In)m(teractiv)m(e)32 b(Shells)11 b Fn(:)16
b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Ft(76)399
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)41 b Fu(83)399
4071 y(6.3.1)93 b(What)31 b(is)f(an)h(In)m(teractiv)m(e)h(Shell?)17
-b Fm(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+b Fn(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47 b
-Ft(77)399 4180 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m(e?)
-14 b Fm(:)k(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+Fu(83)399 4180 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m(e?)
+14 b Fn(:)k(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-44 b Ft(77)399 4290 y(6.3.3)93 b(In)m(teractiv)m(e)33
-b(Shell)d(Beha)m(vior)23 b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+44 b Fu(84)399 4290 y(6.3.3)93 b(In)m(teractiv)m(e)33
+b(Shell)d(Beha)m(vior)23 b Fn(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)52 b Ft(77)275 4399 y(6.4)92 b(Bash)30
-b(Conditional)h(Expressions)22 b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)52 b Fu(84)275 4399 y(6.4)92 b(Bash)30
+b(Conditional)h(Expressions)22 b Fn(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Ft(78)275 4509 y(6.5)92
-b(Shell)30 b(Arithmetic)c Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)51 b Fu(85)275 4509 y(6.5)92
+b(Shell)30 b(Arithmetic)c Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)55 b Ft(80)275 4619 y(6.6)92 b(Aliases)12 b Fm(:)k(:)g(:)f(:)h(:)f
+(:)55 b Fu(87)275 4619 y(6.6)92 b(Aliases)12 b Fn(:)k(:)g(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)42
-b Ft(81)275 4728 y(6.7)92 b(Arra)m(ys)17 b Fm(:)e(:)h(:)f(:)h(:)f(:)g
+b Fu(88)275 4728 y(6.7)92 b(Arra)m(ys)17 b Fn(:)e(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)47
-b Ft(82)275 4838 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)e
-Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+b Fu(89)275 4838 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)e
+Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(83)399 4947 y(6.8.1)93
-b(Directory)32 b(Stac)m(k)f(Builtins)14 b Fm(:)i(:)g(:)f(:)g(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fu(90)399 4947 y(6.8.1)93
+b(Directory)32 b(Stac)m(k)f(Builtins)14 b Fn(:)i(:)g(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Ft(83)275
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Fu(90)275
5057 y(6.9)92 b(Con)m(trolling)31 b(the)g(Prompt)24 b
-Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)54 b Ft(84)275 5166 y(6.10)92 b(The)30
-b(Restricted)h(Shell)23 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+g(:)h(:)f(:)h(:)f(:)54 b Fu(92)275 5166 y(6.10)92 b(The)30
+b(Restricted)h(Shell)23 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53
-b Ft(86)275 5276 y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)9
-b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+b Fu(93)275 5276 y(6.11)92 b(Bash)31 b(POSIX)e(Mo)s(de)9
+b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Ft(86)p eop
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(94)p eop
end
%%Page: -3 5
-TeXDict begin -3 4 bop 3674 -116 a Ft(iii)150 83 y Fr(7)135
-b(Job)45 b(Con)l(trol)24 b Fn(:)c(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+TeXDict begin -3 4 bop 3674 -116 a Fu(iii)150 83 y Fs(7)135
+b(Job)45 b(Con)l(trol)24 b Fo(:)c(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)69 b Fr(91)275 220 y
-Ft(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)17 b Fm(:)f(:)g(:)f(:)h(:)f(:)
+f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)69 b Fs(97)275 220 y
+Fu(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)17 b Fn(:)f(:)g(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)47 b Ft(91)275 330 y(7.2)92 b(Job)30 b(Con)m(trol)h
-(Builtins)25 b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+g(:)h(:)f(:)47 b Fu(97)275 330 y(7.2)92 b(Job)30 b(Con)m(trol)h
+(Builtins)25 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)55 b Ft(92)275
-439 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8 b(ariables)19
-b Fm(:)e(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)49 b Ft(94)150 682 y Fr(8)135
-b(Command)45 b(Line)g(Editing)27 b Fn(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)72
-b Fr(95)275 819 y Ft(8.1)92 b(In)m(tro)s(duction)30 b(to)h(Line)f
-(Editing)d Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)56 b Ft(95)275 928 y(8.2)92 b(Readline)31
-b(In)m(teraction)8 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38
-b Ft(95)399 1038 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)d
-Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)57
-b Ft(96)399 1147 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
-(Commands)27 b Fm(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57
-b Ft(96)399 1257 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)19
-b Fm(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)49
-b Ft(97)399 1367 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)11
-b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)41 b Ft(97)399 1476 y(8.2.5)93 b(Searc)m(hing)31
-b(for)f(Commands)f(in)h(the)h(History)9 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38
-b Ft(97)275 1586 y(8.3)92 b(Readline)31 b(Init)f(File)23
-b Fm(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)55 b Fu(98)275
+439 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8 b(ariables)17
+b Fn(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)47 b Fu(100)150 657 y Fs(8)135
+b(Command)45 b(Line)g(Editing)19 b Fo(:)i(:)e(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)63
+b Fs(101)275 794 y Fu(8.1)92 b(In)m(tro)s(duction)30
+b(to)h(Line)f(Editing)24 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)54 b Fu(101)275 904 y(8.2)92 b(Readline)31
+b(In)m(teraction)c Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)56 b Fu(101)399
+1013 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)26
+b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)55
+b Fu(102)399 1123 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
+(Commands)24 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55 b
+Fu(102)399 1233 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)16
+b Fn(:)f(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)46 b
+Fu(103)399 1342 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)9
+b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)39 b Fu(103)399 1452 y(8.2.5)93 b(Searc)m(hing)31
+b(for)f(Commands)f(in)h(the)h(History)c Fn(:)15 b(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)57 b Fu(103)275
+1561 y(8.3)92 b(Readline)31 b(Init)f(File)20 b Fn(:)d(:)e(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Ft(98)399
-1695 y(8.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)15
-b Fm(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)44
-b Ft(98)399 1805 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)25
-b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)56
-b Ft(104)399 1914 y(8.3.3)93 b(Sample)30 b(Init)g(File)12
-b Fm(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)50 b Fu(104)399 1671 y(8.3.1)93 b(Readline)31
+b(Init)f(File)i(Syn)m(tax)12 b Fn(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)42 b Fu(104)399 1781 y(8.3.2)93 b(Conditional)31
+b(Init)f(Constructs)25 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)56 b Fu(111)399 1890 y(8.3.3)93 b(Sample)30 b(Init)g(File)12
+b Fn(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 b Ft(105)275 2024 y(8.4)92
-b(Bindable)30 b(Readline)h(Commands)11 b Fm(:)k(:)g(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)42 b Fu(112)275 2000 y(8.4)92
+b(Bindable)30 b(Readline)h(Commands)11 b Fn(:)k(:)g(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Ft(108)399 2134 y(8.4.1)93
-b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)e Fm(:)16 b(:)f(:)h(:)f(:)g(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)41 b Fu(115)399 2109 y(8.4.1)93
+b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)e Fn(:)16 b(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Ft(108)399
-2243 y(8.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f
-(History)17 b Fm(:)g(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)47 b Ft(109)399 2353 y(8.4.3)93 b(Commands)29 b(F)-8
-b(or)31 b(Changing)f(T)-8 b(ext)21 b Fm(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)58 b Fu(115)399
+2219 y(8.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f
+(History)17 b Fn(:)g(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)47 b Fu(116)399 2328 y(8.4.3)93 b(Commands)29 b(F)-8
+b(or)31 b(Changing)f(T)-8 b(ext)21 b Fn(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-51 b Ft(110)399 2462 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
-b(anking)22 b Fm(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+51 b Fu(117)399 2438 y(8.4.4)93 b(Killing)31 b(And)e(Y)-8
+b(anking)22 b Fn(:)17 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)52 b Ft(111)399 2572 y(8.4.5)93 b(Sp)s(ecifying)30
-b(Numeric)g(Argumen)m(ts)17 b Fm(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)52 b Fu(118)399 2548 y(8.4.5)93 b(Sp)s(ecifying)30
+b(Numeric)g(Argumen)m(ts)17 b Fn(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)47
-b Ft(112)399 2682 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)
--8 b(or)31 b(Y)-8 b(ou)12 b Fm(:)k(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+b Fu(119)399 2657 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)
+-8 b(or)31 b(Y)-8 b(ou)12 b Fn(:)k(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)42
-b Ft(112)399 2791 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)21
-b Fm(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+b Fu(120)399 2767 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)21
+b Fn(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)51 b Ft(114)399 2901 y(8.4.8)93 b(Some)30
-b(Miscellaneous)j(Commands)24 b Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+h(:)f(:)h(:)f(:)g(:)51 b Fu(121)399 2876 y(8.4.8)93 b(Some)30
+b(Miscellaneous)j(Commands)24 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)55
-b Ft(114)275 3010 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)20
-b Fm(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+b Fu(122)275 2986 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)20
+b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)50 b Ft(117)275
-3120 y(8.6)92 b(Programmable)30 b(Completion)16 b Fm(:)g(:)f(:)h(:)f(:)
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)50 b Fu(124)275
+3096 y(8.6)92 b(Programmable)30 b(Completion)16 b Fn(:)g(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)46
-b Ft(117)275 3230 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)c
-Fm(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Ft(119)150
-3472 y Fr(9)135 b(Using)45 b(History)h(In)l(teractiv)l(ely)39
-b Fn(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h
-(:)80 b Fr(125)275 3609 y Ft(9.1)92 b(Bash)30 b(History)h(F)-8
-b(acilities)21 b Fm(:)d(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+b Fu(124)275 3205 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)c
+Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)56 b Fu(126)275
+3315 y(8.8)92 b(A)30 b(Programmable)h(Completion)g(Example)20
+b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)50 b Fu(130)150 3533 y Fs(9)135
+b(Using)45 b(History)h(In)l(teractiv)l(ely)39 b Fo(:)19
+b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)80
+b Fs(133)275 3670 y Fu(9.1)92 b(Bash)30 b(History)h(F)-8
+b(acilities)21 b Fn(:)d(:)e(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)51 b Ft(125)275 3719
-y(9.2)92 b(Bash)30 b(History)h(Builtins)19 b Fm(:)d(:)g(:)f(:)g(:)h(:)f
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)51 b Fu(133)275 3779
+y(9.2)92 b(Bash)30 b(History)h(Builtins)19 b Fn(:)d(:)g(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)49
-b Ft(125)275 3828 y(9.3)92 b(History)31 b(Expansion)21
-b Fm(:)15 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+b Fu(133)275 3889 y(9.3)92 b(History)31 b(Expansion)21
+b Fn(:)15 b(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)52 b Ft(127)399 3938
-y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)10 b Fm(:)18
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)52 b Fu(135)399 3999
+y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)10 b Fn(:)18
b(:)d(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)40 b Ft(127)399 4047 y(9.3.2)93 b(W)-8 b(ord)31
-b(Designators)17 b Fm(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+h(:)f(:)h(:)40 b Fu(135)399 4108 y(9.3.2)93 b(W)-8 b(ord)31
+b(Designators)17 b Fn(:)g(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 b Ft(128)399 4157
-y(9.3.3)93 b(Mo)s(di\014ers)26 b Fm(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)47 b Fu(136)399 4218
+y(9.3.3)93 b(Mo)s(di\014ers)26 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)57 b Ft(129)150 4399 y Fr(10)135 b(Installing)46
-b(Bash)24 b Fn(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)f(:)g(:)h(:)57 b Fu(137)150 4436 y Fs(10)135 b(Installing)46
+b(Bash)24 b Fo(:)c(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)68
-b Fr(131)275 4536 y Ft(10.1)92 b(Basic)32 b(Installation)20
-b Fm(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+b Fs(138)275 4573 y Fu(10.1)92 b(Basic)32 b(Installation)20
+b Fn(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Ft(131)275 4646
-y(10.2)92 b(Compilers)30 b(and)g(Options)8 b Fm(:)15
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)50 b Fu(138)275 4682
+y(10.2)92 b(Compilers)30 b(and)g(Options)8 b Fn(:)15
b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)38 b Ft(132)275 4755 y(10.3)92 b(Compiling)30
-b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)21 b Fm(:)c(:)e(:)h(:)f(:)
+f(:)h(:)38 b Fu(139)275 4792 y(10.3)92 b(Compiling)30
+b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)21 b Fn(:)c(:)e(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)52 b Ft(132)275 4865 y(10.4)92 b(Installation)32 b(Names)13
-b Fm(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+(:)52 b Fu(139)275 4902 y(10.4)92 b(Installation)32 b(Names)13
+b Fn(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Ft(132)275 4975 y(10.5)92
-b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s(e)12 b Fm(:)j(:)g(:)h(:)f
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)43 b Fu(139)275 5011 y(10.5)92
+b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s(e)12 b Fn(:)j(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Ft(132)275
-5084 y(10.6)92 b(Sharing)30 b(Defaults)15 b Fm(:)i(:)e(:)g(:)h(:)f(:)h
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)42 b Fu(139)275
+5121 y(10.6)92 b(Sharing)30 b(Defaults)15 b Fn(:)i(:)e(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)46 b Ft(133)275 5194 y(10.7)92 b(Op)s(eration)30
-b(Con)m(trols)24 b Fm(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+(:)f(:)g(:)46 b Fu(140)275 5230 y(10.7)92 b(Op)s(eration)30
+b(Con)m(trols)24 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Ft(133)275
-5303 y(10.8)92 b(Optional)31 b(F)-8 b(eatures)10 b Fm(:)17
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Fu(140)275
+5340 y(10.8)92 b(Optional)31 b(F)-8 b(eatures)10 b Fn(:)17
b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Ft(133)p eop end
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)40 b Fu(140)p eop end
%%Page: -4 6
-TeXDict begin -4 5 bop 150 -116 a Ft(iv)2589 b(Bash)31
-b(Reference)g(Man)m(ual)150 83 y Fr(App)t(endix)44 b(A)160
-b(Rep)t(orting)46 b(Bugs)35 b Fn(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fr(139)150 353 y(App)t(endix)44
-b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11 b(rom)44
-b(The)419 486 y(Bourne)g(Shell)35 b Fn(:)19 b(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)78 b Fr(141)275 623 y Ft(B.1)92
-b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31
-b(The)e(SVR4.2)j(Shell)13 b Fm(:)i(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)43
-b Ft(145)150 865 y Fr(App)t(endix)h(C)165 b(GNU)45 b(F)-11
-b(ree)45 b(Do)t(cumen)l(tation)h(License)439 998 y Fn(:)19
-b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64 b Fr(147)150
-1268 y(App)t(endix)44 b(D)159 b(Indexes)15 b Fn(:)20
-b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fr(155)275 1405
-y Ft(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16
-b Fm(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Ft(155)275
+TeXDict begin -4 5 bop 3677 -116 a Fu(iv)150 83 y Fs(App)t(endix)44
+b(A)160 b(Rep)t(orting)46 b(Bugs)35 b Fo(:)20 b(:)f(:)g(:)h(:)f(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)80 b Fs(145)150
+353 y(App)t(endix)44 b(B)166 b(Ma)7 b(jor)45 b(Di\013erences)i(F)-11
+b(rom)44 b(The)419 486 y(Bourne)g(Shell)35 b Fo(:)19
+b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)78
+b Fs(146)275 623 y Fu(B.1)92 b(Implemen)m(tation)31 b(Di\013erences)h
+(F)-8 b(rom)31 b(The)e(SVR4.2)j(Shell)13 b Fn(:)i(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)43 b Fu(150)150 865 y Fs(App)t(endix)h(C)165
+b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)439
+998 y Fo(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)64
+b Fs(152)150 1268 y(App)t(endix)44 b(D)159 b(Indexes)15
+b Fo(:)20 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Fs(160)275
+1405 y Fu(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h(Commands)16
+b Fn(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Fu(160)275
1514 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
-b(ords)12 b Fm(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+b(ords)12 b Fn(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)42
-b Ft(156)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
-b(ariable)32 b(Index)20 b Fm(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+b Fu(161)275 1624 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
+b(ariable)32 b(Index)20 b Fn(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)50 b Ft(156)275 1733 y(D.4)92 b(F)-8 b(unction)31
-b(Index)16 b Fm(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+f(:)h(:)f(:)50 b Fu(161)275 1733 y(D.4)92 b(F)-8 b(unction)31
+b(Index)16 b Fn(:)f(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)47
-b Ft(158)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fm(:)15
+b Fu(163)275 1843 y(D.5)92 b(Concept)30 b(Index)d Fn(:)15
b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Ft(160)p
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)57 b Fu(165)p
eop end
%%Page: 1 7
-TeXDict begin 1 6 bop 150 -116 a Ft(Chapter)30 b(1:)41
-b(In)m(tro)s(duction)2592 b(1)150 299 y Fo(1)80 b(In)l(tro)t(duction)
-150 602 y Fr(1.1)68 b(What)45 b(is)g(Bash?)150 762 y
-Ft(Bash)38 b(is)g(the)g(shell,)i(or)d(command)h(language)h(in)m
-(terpreter,)h(for)e(the)g Fl(gnu)f Ft(op)s(erating)h(system.)63
+TeXDict begin 1 6 bop 150 -116 a Fu(Chapter)30 b(1:)41
+b(In)m(tro)s(duction)2592 b(1)150 299 y Fp(1)80 b(In)l(tro)t(duction)
+150 602 y Fs(1.1)68 b(What)45 b(is)g(Bash?)150 762 y
+Fu(Bash)38 b(is)g(the)g(shell,)i(or)d(command)h(language)h(in)m
+(terpreter,)h(for)e(the)g Fm(gnu)f Fu(op)s(erating)h(system.)63
b(The)150 871 y(name)33 b(is)g(an)g(acron)m(ym)g(for)g(the)g(`)p
-Fs(Bourne-Again)27 b(SHell)p Ft(',)32 b(a)i(pun)d(on)i(Stephen)f
+Ft(Bourne-Again)27 b(SHell)p Fu(',)32 b(a)i(pun)d(on)i(Stephen)f
(Bourne,)h(the)g(author)150 981 y(of)f(the)f(direct)h(ancestor)h(of)e
-(the)h(curren)m(t)f(Unix)g(shell)h Fs(sh)p Ft(,)f(whic)m(h)g(app)s
+(the)h(curren)m(t)f(Unix)g(shell)h Ft(sh)p Fu(,)f(whic)m(h)g(app)s
(eared)g(in)g(the)h(Sev)m(en)m(th)g(Edition)150 1091
y(Bell)g(Labs)e(Researc)m(h)h(v)m(ersion)g(of)f(Unix.)275
-1220 y(Bash)f(is)g(largely)i(compatible)f(with)f Fs(sh)g
-Ft(and)g(incorp)s(orates)g(useful)g(features)g(from)g(the)g(Korn)g
-(shell)150 1330 y Fs(ksh)37 b Ft(and)h(the)g(C)g(shell)g
-Fs(csh)p Ft(.)64 b(It)38 b(is)g(in)m(tended)g(to)h(b)s(e)f(a)g
-(conforman)m(t)h(implemen)m(tation)h(of)e(the)g Fl(ieee)150
-1439 y(posix)c Ft(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g
-(the)h Fl(ieee)f(posix)f Ft(sp)s(eci\014cation)j(\()p
-Fl(ieee)e Ft(Standard)f(1003.1\).)56 b(It)150 1549 y(o\013ers)31
-b(functional)f(impro)m(v)m(emen)m(ts)i(o)m(v)m(er)g Fs(sh)d
-Ft(for)i(b)s(oth)e(in)m(teractiv)m(e)k(and)d(programming)g(use.)275
-1679 y(While)h(the)g Fl(gnu)f Ft(op)s(erating)h(system)g(pro)m(vides)f
+1220 y(Bash)f(is)g(largely)i(compatible)f(with)f Ft(sh)g
+Fu(and)g(incorp)s(orates)g(useful)g(features)g(from)g(the)g(Korn)g
+(shell)150 1330 y Ft(ksh)37 b Fu(and)h(the)g(C)g(shell)g
+Ft(csh)p Fu(.)64 b(It)38 b(is)g(in)m(tended)g(to)h(b)s(e)f(a)g
+(conforman)m(t)h(implemen)m(tation)h(of)e(the)g Fm(ieee)150
+1439 y(posix)c Fu(Shell)g(and)g(T)-8 b(o)s(ols)35 b(p)s(ortion)f(of)g
+(the)h Fm(ieee)f(posix)f Fu(sp)s(eci\014cation)j(\()p
+Fm(ieee)e Fu(Standard)f(1003.1\).)56 b(It)150 1549 y(o\013ers)31
+b(functional)f(impro)m(v)m(emen)m(ts)i(o)m(v)m(er)g Ft(sh)d
+Fu(for)i(b)s(oth)e(in)m(teractiv)m(e)k(and)d(programming)g(use.)275
+1679 y(While)h(the)g Fm(gnu)f Fu(op)s(erating)h(system)g(pro)m(vides)f
(other)h(shells,)g(including)f(a)h(v)m(ersion)g(of)g
-Fs(csh)p Ft(,)f(Bash)150 1788 y(is)j(the)h(default)f(shell.)49
-b(Lik)m(e)34 b(other)g Fl(gnu)f Ft(soft)m(w)m(are,)i(Bash)f(is)f(quite)
+Ft(csh)p Fu(,)f(Bash)150 1788 y(is)j(the)h(default)f(shell.)49
+b(Lik)m(e)34 b(other)g Fm(gnu)f Fu(soft)m(w)m(are,)i(Bash)f(is)f(quite)
h(p)s(ortable.)49 b(It)33 b(curren)m(tly)g(runs)f(on)150
1898 y(nearly)c(ev)m(ery)g(v)m(ersion)g(of)f(Unix)h(and)e(a)i(few)f
-(other)h(op)s(erating)g(systems)f Fp(\000)g Ft(indep)s(enden)m
+(other)h(op)s(erating)g(systems)f Fq(\000)g Fu(indep)s(enden)m
(tly-supp)s(orted)150 2008 y(p)s(orts)j(exist)h(for)f
-Fl(ms-dos)p Ft(,)f Fl(os/2)p Ft(,)i(and)f(Windo)m(ws)g(platforms.)150
-2231 y Fr(1.2)68 b(What)45 b(is)g(a)h(shell?)150 2390
-y Ft(A)m(t)32 b(its)f(base,)h(a)f(shell)g(is)h(simply)e(a)h(macro)h
+Fm(ms-dos)p Fu(,)f Fm(os/2)p Fu(,)i(and)f(Windo)m(ws)g(platforms.)150
+2231 y Fs(1.2)68 b(What)45 b(is)g(a)h(shell?)150 2390
+y Fu(A)m(t)32 b(its)f(base,)h(a)f(shell)g(is)h(simply)e(a)h(macro)h
(pro)s(cessor)f(that)g(executes)i(commands.)42 b(The)30
b(term)h(macro)150 2500 y(pro)s(cessor)25 b(means)g(functionalit)m(y)i
(where)d(text)j(and)d(sym)m(b)s(ols)h(are)h(expanded)e(to)i(create)h
@@ -4870,15 +8065,15 @@ b(term)h(macro)150 2500 y(pro)s(cessor)25 b(means)g(functionalit)m(y)i
(is)f(b)s(oth)g(a)h(command)g(in)m(terpreter)g(and)f(a)h(programming)f
(language.)55 b(As)35 b(a)g(com-)150 2848 y(mand)30 b(in)m(terpreter,)i
(the)g(shell)f(pro)m(vides)g(the)h(user)e(in)m(terface)j(to)f(the)f
-(ric)m(h)h(set)g(of)f Fl(gnu)g Ft(utilities.)44 b(The)150
+(ric)m(h)h(set)g(of)f Fm(gnu)g Fu(utilities.)44 b(The)150
2958 y(programming)30 b(language)h(features)f(allo)m(w)h(these)g
(utilities)g(to)g(b)s(e)e(com)m(bined.)41 b(Files)31
b(con)m(taining)g(com-)150 3068 y(mands)e(can)i(b)s(e)e(created,)j(and)
d(b)s(ecome)i(commands)f(themselv)m(es.)42 b(These)30
-b(new)f(commands)h(ha)m(v)m(e)i(the)150 3177 y(same)f(status)h(as)f
-(system)g(commands)g(in)g(directories)h(suc)m(h)f(as)g(`)p
-Fs(/bin)p Ft(',)g(allo)m(wing)i(users)d(or)h(groups)f(to)150
-3287 y(establish)h(custom)f(en)m(vironmen)m(ts)h(to)g(automate)h(their)
+b(new)f(commands)h(ha)m(v)m(e)i(the)150 3177 y(same)j(status)g(as)g
+(system)g(commands)f(in)g(directories)i(suc)m(h)e(as)h
+Ft(/bin)p Fu(,)g(allo)m(wing)h(users)e(or)g(groups)g(to)150
+3287 y(establish)d(custom)f(en)m(vironmen)m(ts)h(to)g(automate)h(their)
f(common)f(tasks.)275 3417 y(Shells)j(ma)m(y)h(b)s(e)f(used)g(in)m
(teractiv)m(ely)k(or)d(non-in)m(teractiv)m(ely)-8 b(.)54
b(In)33 b(in)m(teractiv)m(e)j(mo)s(de,)f(they)e(accept)150
@@ -4886,32 +8081,32 @@ b(In)33 b(in)m(teractiv)m(e)j(mo)s(de,)f(they)e(accept)150
b(When)22 b(executing)i(non-in)m(teractiv)m(ely)-8 b(,)27
b(shells)c(execute)g(commands)150 3636 y(read)30 b(from)g(a)h(\014le.)
275 3765 y(A)41 b(shell)g(allo)m(ws)h(execution)h(of)e
-Fl(gnu)g Ft(commands,)i(b)s(oth)e(sync)m(hronously)f(and)h(async)m
+Fm(gnu)g Fu(commands,)i(b)s(oth)e(sync)m(hronously)f(and)h(async)m
(hronously)-8 b(.)150 3875 y(The)29 b(shell)g(w)m(aits)i(for)e(sync)m
(hronous)f(commands)h(to)h(complete)h(b)s(efore)e(accepting)i(more)e
(input;)g(asyn-)150 3985 y(c)m(hronous)22 b(commands)h(con)m(tin)m(ue)h
(to)f(execute)h(in)e(parallel)i(with)f(the)f(shell)h(while)g(it)g
(reads)g(and)f(executes)150 4094 y(additional)35 b(commands.)50
-b(The)33 b Fq(redirection)h Ft(constructs)g(p)s(ermit)f(\014ne-grained)
+b(The)33 b Fr(redirection)h Fu(constructs)g(p)s(ermit)f(\014ne-grained)
g(con)m(trol)i(of)f(the)g(input)150 4204 y(and)40 b(output)f(of)i
(those)f(commands.)70 b(Moreo)m(v)m(er,)45 b(the)c(shell)f(allo)m(ws)h
(con)m(trol)h(o)m(v)m(er)g(the)e(con)m(ten)m(ts)i(of)150
4313 y(commands')30 b(en)m(vironmen)m(ts.)275 4443 y(Shells)k(also)i
(pro)m(vide)g(a)f(small)h(set)f(of)g(built-in)g(commands)g(\()p
-Fq(builtins)t Ft(\))g(implemen)m(ting)h(function-)150
+Fr(builtins)t Fu(\))g(implemen)m(ting)h(function-)150
4553 y(alit)m(y)i(imp)s(ossible)e(or)g(incon)m(v)m(enien)m(t)j(to)e
(obtain)g(via)g(separate)g(utilities.)61 b(F)-8 b(or)37
-b(example,)i Fs(cd)p Ft(,)e Fs(break)p Ft(,)150 4662
-y Fs(continue)p Ft(,)43 b(and)f Fs(exec)p Ft(\))g(cannot)h(b)s(e)e
-(implemen)m(ted)i(outside)g(of)f(the)h(shell)f(b)s(ecause)h(they)f
-(directly)150 4772 y(manipulate)37 b(the)g(shell)f(itself.)61
-b(The)36 b Fs(history)p Ft(,)g Fs(getopts)p Ft(,)g Fs(kill)p
-Ft(,)h(or)g Fs(pwd)f Ft(builtins,)h(among)h(others,)150
-4881 y(could)33 b(b)s(e)f(implemen)m(ted)h(in)g(separate)g(utilities,)i
-(but)d(they)h(are)h(more)f(con)m(v)m(enien)m(t)h(to)g(use)e(as)h
-(builtin)150 4991 y(commands.)40 b(All)31 b(of)g(the)f(shell)h
-(builtins)f(are)h(describ)s(ed)e(in)h(subsequen)m(t)g(sections.)275
-5121 y(While)39 b(executing)h(commands)e(is)g(essen)m(tial,)43
+b(example,)i Ft(cd)p Fu(,)e Ft(break)p Fu(,)150 4662
+y Ft(continue)p Fu(,)28 b(and)i Ft(exec)f Fu(cannot)i(b)s(e)f(implemen)
+m(ted)h(outside)g(of)f(the)h(shell)f(b)s(ecause)h(they)f(directly)h
+(ma-)150 4772 y(nipulate)d(the)g(shell)g(itself.)41 b(The)27
+b Ft(history)p Fu(,)g Ft(getopts)p Fu(,)f Ft(kill)p Fu(,)i(or)g
+Ft(pwd)f Fu(builtins,)h(among)g(others,)h(could)150 4881
+y(b)s(e)34 b(implemen)m(ted)g(in)g(separate)h(utilities,)i(but)d(they)g
+(are)g(more)h(con)m(v)m(enien)m(t)h(to)f(use)f(as)g(builtin)g(com-)150
+4991 y(mands.)40 b(All)31 b(of)f(the)h(shell)f(builtins)g(are)h
+(describ)s(ed)e(in)h(subsequen)m(t)g(sections.)275 5121
+y(While)39 b(executing)h(commands)e(is)g(essen)m(tial,)43
b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g(complexit)m(y\))j(of)e
(shells)150 5230 y(is)34 b(due)f(to)i(their)f(em)m(b)s(edded)f
(programming)h(languages.)52 b(Lik)m(e)35 b(an)m(y)f(high-lev)m(el)i
@@ -4919,9 +8114,9 @@ b(most)c(of)g(the)g(p)s(o)m(w)m(er)f(\(and)g(complexit)m(y\))j(of)e
b(ariables,)32 b(\015o)m(w)e(con)m(trol)i(constructs,)f(quoting,)g(and)
f(functions.)p eop end
%%Page: 2 8
-TeXDict begin 2 7 bop 150 -116 a Ft(2)2617 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(Shells)21 b(o\013er)i(features)f
-(geared)h(sp)s(eci\014cally)g(for)f(in)m(teractiv)m(e)j(use)d(rather)g
+TeXDict begin 2 7 bop 150 -116 a Fu(Chapter)30 b(1:)41
+b(In)m(tro)s(duction)2592 b(2)275 299 y(Shells)21 b(o\013er)i(features)
+f(geared)h(sp)s(eci\014cally)g(for)f(in)m(teractiv)m(e)j(use)d(rather)g
(than)g(to)h(augmen)m(t)g(the)f(pro-)150 408 y(gramming)32
b(language.)48 b(These)32 b(in)m(teractiv)m(e)j(features)d(include)g
(job)g(con)m(trol,)j(command)c(line)i(editing,)150 518
@@ -4929,111 +8124,111 @@ y(command)d(history)g(and)g(aliases.)42 b(Eac)m(h)31
b(of)g(these)g(features)f(is)h(describ)s(ed)e(in)h(this)g(man)m(ual.)p
eop end
%%Page: 3 9
-TeXDict begin 3 8 bop 150 -116 a Ft(Chapter)30 b(2:)41
-b(De\014nitions)2662 b(3)150 299 y Fo(2)80 b(De\014nitions)150
-552 y Ft(These)30 b(de\014nitions)g(are)h(used)e(throughout)h(the)h
-(remainder)f(of)g(this)h(man)m(ual.)150 720 y Fs(POSIX)240
-b Ft(A)27 b(family)g(of)g(op)s(en)f(system)g(standards)g(based)g(on)h
+TeXDict begin 3 8 bop 150 -116 a Fu(Chapter)30 b(2:)41
+b(De\014nitions)2662 b(3)150 299 y Fp(2)80 b(De\014nitions)150
+552 y Fu(These)30 b(de\014nitions)g(are)h(used)e(throughout)h(the)h
+(remainder)f(of)g(this)h(man)m(ual.)150 720 y Ft(POSIX)240
+b Fu(A)27 b(family)g(of)g(op)s(en)f(system)g(standards)g(based)g(on)h
(Unix.)39 b(Bash)27 b(is)g(primarily)f(concerned)630
830 y(with)k(the)h(Shell)f(and)g(Utilities)i(p)s(ortion)e(of)h(the)f
-Fl(posix)g Ft(1003.1)j(standard.)150 995 y Fs(blank)240
-b Ft(A)30 b(space)h(or)g(tab)f(c)m(haracter.)150 1161
-y Fs(builtin)144 b Ft(A)35 b(command)g(that)g(is)g(implemen)m(ted)g(in)
+Fm(posix)g Fu(1003.1)j(standard.)150 995 y Ft(blank)240
+b Fu(A)30 b(space)h(or)g(tab)f(c)m(haracter.)150 1161
+y Ft(builtin)144 b Fu(A)35 b(command)g(that)g(is)g(implemen)m(ted)g(in)
m(ternally)h(b)m(y)f(the)g(shell)g(itself,)i(rather)d(than)h(b)m(y)630
1271 y(an)30 b(executable)i(program)e(somewhere)h(in)f(the)g(\014le)h
-(system.)150 1436 y Fs(control)d(operator)630 1546 y
-Ft(A)20 b Fs(token)f Ft(that)i(p)s(erforms)e(a)i(con)m(trol)g
-(function.)37 b(It)21 b(is)f(a)h Fs(newline)d Ft(or)j(one)f(of)h(the)f
-(follo)m(wing:)630 1655 y(`)p Fs(||)p Ft(',)31 b(`)p
-Fs(&&)p Ft(',)f(`)p Fs(&)p Ft(',)h(`)p Fs(;)p Ft(',)g(`)p
-Fs(;;)p Ft(',)f(`)p Fs(|)p Ft(',)h(`)p Fs(|&)p Ft(',)f(`)p
-Fs(\()p Ft(',)h(or)g(`)p Fs(\))p Ft('.)150 1821 y Fs(exit)e(status)630
-1931 y Ft(The)f(v)-5 b(alue)29 b(returned)e(b)m(y)h(a)h(command)f(to)h
+(system.)150 1436 y Ft(control)d(operator)630 1546 y
+Fu(A)20 b Ft(token)f Fu(that)i(p)s(erforms)e(a)i(con)m(trol)g
+(function.)37 b(It)21 b(is)f(a)h Ft(newline)d Fu(or)j(one)f(of)h(the)f
+(follo)m(wing:)630 1655 y(`)p Ft(||)p Fu(',)31 b(`)p
+Ft(&&)p Fu(',)f(`)p Ft(&)p Fu(',)h(`)p Ft(;)p Fu(',)g(`)p
+Ft(;;)p Fu(',)f(`)p Ft(|)p Fu(',)h(`)p Ft(|&)p Fu(',)f(`)p
+Ft(\()p Fu(',)h(or)g(`)p Ft(\))p Fu('.)150 1821 y Ft(exit)e(status)630
+1931 y Fu(The)f(v)-5 b(alue)29 b(returned)e(b)m(y)h(a)h(command)f(to)h
(its)g(caller.)41 b(The)28 b(v)-5 b(alue)29 b(is)f(restricted)h(to)h
(eigh)m(t)630 2040 y(bits,)h(so)f(the)h(maxim)m(um)f(v)-5
-b(alue)31 b(is)f(255.)150 2206 y Fs(field)240 b Ft(A)27
+b(alue)31 b(is)f(255.)150 2206 y Ft(field)240 b Fu(A)27
b(unit)g(of)g(text)h(that)g(is)f(the)g(result)g(of)g(one)h(of)f(the)g
(shell)g(expansions.)40 b(After)27 b(expansion,)630 2315
y(when)e(executing)h(a)g(command,)h(the)f(resulting)f(\014elds)g(are)h
(used)f(as)h(the)g(command)f(name)630 2425 y(and)30 b(argumen)m(ts.)150
-2591 y Fs(filename)96 b Ft(A)30 b(string)h(of)f(c)m(haracters)i(used)e
-(to)h(iden)m(tify)g(a)f(\014le.)150 2756 y Fs(job)336
-b Ft(A)31 b(set)h(of)f(pro)s(cesses)g(comprising)g(a)g(pip)s(eline,)g
+2591 y Ft(filename)96 b Fu(A)30 b(string)h(of)f(c)m(haracters)i(used)e
+(to)h(iden)m(tify)g(a)f(\014le.)150 2756 y Ft(job)336
+b Fu(A)31 b(set)h(of)f(pro)s(cesses)g(comprising)g(a)g(pip)s(eline,)g
(and)g(an)m(y)g(pro)s(cesses)g(descended)g(from)f(it,)630
2866 y(that)h(are)g(all)g(in)f(the)h(same)f(pro)s(cess)g(group.)150
-3031 y Fs(job)f(control)630 3141 y Ft(A)22 b(mec)m(hanism)g(b)m(y)f
+3031 y Ft(job)f(control)630 3141 y Fu(A)22 b(mec)m(hanism)g(b)m(y)f
(whic)m(h)h(users)f(can)h(selectiv)m(ely)i(stop)e(\(susp)s(end\))e(and)
h(restart)i(\(resume\))630 3251 y(execution)32 b(of)e(pro)s(cesses.)150
-3416 y Fs(metacharacter)630 3526 y Ft(A)25 b(c)m(haracter)i(that,)g
+3416 y Ft(metacharacter)630 3526 y Fu(A)25 b(c)m(haracter)i(that,)g
(when)d(unquoted,)i(separates)g(w)m(ords.)38 b(A)26 b(metac)m(haracter)
-i(is)d(a)g Fs(blank)630 3635 y Ft(or)30 b(one)h(of)g(the)f(follo)m
-(wing)i(c)m(haracters:)42 b(`)p Fs(|)p Ft(',)31 b(`)p
-Fs(&)p Ft(',)g(`)p Fs(;)p Ft(',)g(`)p Fs(\()p Ft(',)f(`)p
-Fs(\))p Ft(',)h(`)p Fs(<)p Ft(',)g(or)f(`)p Fs(>)p Ft('.)150
-3801 y Fs(name)288 b Ft(A)37 b Fs(word)f Ft(consisting)i(solely)h(of)e
+i(is)d(a)g Ft(blank)630 3635 y Fu(or)30 b(one)h(of)g(the)f(follo)m
+(wing)i(c)m(haracters:)42 b(`)p Ft(|)p Fu(',)31 b(`)p
+Ft(&)p Fu(',)g(`)p Ft(;)p Fu(',)g(`)p Ft(\()p Fu(',)f(`)p
+Ft(\))p Fu(',)h(`)p Ft(<)p Fu(',)g(or)f(`)p Ft(>)p Fu('.)150
+3801 y Ft(name)288 b Fu(A)37 b Ft(word)f Fu(consisting)i(solely)h(of)e
(letters,)j(n)m(um)m(b)s(ers,)e(and)f(underscores,)h(and)f(b)s
(eginning)630 3910 y(with)23 b(a)g(letter)h(or)f(underscore.)38
-b Fs(Name)p Ft(s)22 b(are)h(used)f(as)i(shell)f(v)-5
+b Ft(Name)p Fu(s)22 b(are)h(used)f(as)i(shell)f(v)-5
b(ariable)24 b(and)e(function)h(names.)630 4020 y(Also)31
-b(referred)f(to)h(as)f(an)h Fs(identifier)p Ft(.)150
-4186 y Fs(operator)96 b Ft(A)38 b Fs(control)28 b(operator)36
-b Ft(or)h(a)i Fs(redirection)27 b(operator)p Ft(.)61
-b(See)38 b(Section)g(3.6)h([Redirec-)630 4295 y(tions],)f(page)f(27,)i
+b(referred)f(to)h(as)f(an)h Ft(identifier)p Fu(.)150
+4186 y Ft(operator)96 b Fu(A)38 b Ft(control)28 b(operator)36
+b Fu(or)h(a)i Ft(redirection)27 b(operator)p Fu(.)61
+b(See)38 b(Section)g(3.6)h([Redirec-)630 4295 y(tions],)f(page)f(31,)i
(for)d(a)g(list)h(of)f(redirection)h(op)s(erators.)58
b(Op)s(erators)35 b(con)m(tain)j(at)f(least)630 4405
-y(one)31 b(unquoted)e Fs(metacharacter)p Ft(.)150 4570
-y Fs(process)f(group)630 4680 y Ft(A)i(collection)k(of)c(related)h(pro)
+y(one)31 b(unquoted)e Ft(metacharacter)p Fu(.)150 4570
+y Ft(process)f(group)630 4680 y Fu(A)i(collection)k(of)c(related)h(pro)
s(cesses)g(eac)m(h)g(ha)m(ving)g(the)g(same)f(pro)s(cess)g(group)g
-Fl(id)p Ft(.)150 4846 y Fs(process)e(group)h(ID)630 4955
-y Ft(A)h(unique)g(iden)m(ti\014er)h(that)f(represen)m(ts)h(a)g
-Fs(process)d(group)h Ft(during)g(its)i(lifetime.)150
-5121 y Fs(reserved)d(word)630 5230 y Ft(A)h Fs(word)e
-Ft(that)i(has)f(a)h(sp)s(ecial)g(meaning)f(to)h(the)g(shell.)40
+Fm(id)p Fu(.)150 4846 y Ft(process)e(group)h(ID)630 4955
+y Fu(A)h(unique)g(iden)m(ti\014er)h(that)f(represen)m(ts)h(a)g
+Ft(process)d(group)h Fu(during)g(its)i(lifetime.)150
+5121 y Ft(reserved)d(word)630 5230 y Fu(A)h Ft(word)e
+Fu(that)i(has)f(a)h(sp)s(ecial)g(meaning)f(to)h(the)g(shell.)40
b(Most)30 b(reserv)m(ed)e(w)m(ords)g(in)m(tro)s(duce)630
5340 y(shell)j(\015o)m(w)f(con)m(trol)i(constructs,)f(suc)m(h)f(as)g
-Fs(for)g Ft(and)g Fs(while)p Ft(.)p eop end
+Ft(for)g Fu(and)g Ft(while)p Fu(.)p eop end
%%Page: 4 10
-TeXDict begin 4 9 bop 150 -116 a Ft(4)2617 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(return)e(status)630
-408 y Ft(A)h(synon)m(ym)g(for)g Fs(exit)g(status)p Ft(.)150
-568 y Fs(signal)192 b Ft(A)40 b(mec)m(hanism)h(b)m(y)e(whic)m(h)h(a)h
+TeXDict begin 4 9 bop 150 -116 a Fu(Chapter)30 b(2:)41
+b(De\014nitions)2662 b(4)150 299 y Ft(return)29 b(status)630
+408 y Fu(A)h(synon)m(ym)g(for)g Ft(exit)g(status)p Fu(.)150
+568 y Ft(signal)192 b Fu(A)40 b(mec)m(hanism)h(b)m(y)e(whic)m(h)h(a)h
(pro)s(cess)e(ma)m(y)i(b)s(e)e(noti\014ed)h(b)m(y)g(the)h(k)m(ernel)f
(of)g(an)g(ev)m(en)m(t)630 677 y(o)s(ccurring)30 b(in)g(the)h(system.)
-150 837 y Fs(special)d(builtin)630 946 y Ft(A)j(shell)f(builtin)g
+150 837 y Ft(special)d(builtin)630 946 y Fu(A)j(shell)f(builtin)g
(command)h(that)g(has)f(b)s(een)g(classi\014ed)h(as)g(sp)s(ecial)g(b)m
-(y)f(the)h Fl(posix)f Ft(stan-)630 1056 y(dard.)150 1215
-y Fs(token)240 b Ft(A)38 b(sequence)h(of)f(c)m(haracters)h(considered)f
+(y)f(the)h Fm(posix)f Fu(stan-)630 1056 y(dard.)150 1215
+y Ft(token)240 b Fu(A)38 b(sequence)h(of)f(c)m(haracters)h(considered)f
(a)h(single)g(unit)e(b)m(y)h(the)h(shell.)64 b(It)38
-b(is)g(either)h(a)630 1325 y Fs(word)29 b Ft(or)i(an)f
-Fs(operator)p Ft(.)150 1484 y Fs(word)288 b Ft(A)28 b(sequence)g(of)g
+b(is)g(either)h(a)630 1325 y Ft(word)29 b Fu(or)i(an)f
+Ft(operator)p Fu(.)150 1484 y Ft(word)288 b Fu(A)28 b(sequence)g(of)g
(c)m(haracters)h(treated)g(as)f(a)g(unit)f(b)m(y)h(the)g(shell.)40
b(W)-8 b(ords)28 b(ma)m(y)g(not)g(include)630 1594 y(unquoted)i
-Fs(metacharacters)p Ft(.)p eop end
+Ft(metacharacters)p Fu(.)p eop end
%%Page: 5 11
-TeXDict begin 5 10 bop 150 -116 a Ft(Chapter)30 b(3:)41
+TeXDict begin 5 10 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(5)150 299
-y Fo(3)80 b(Basic)54 b(Shell)e(F)-13 b(eatures)150 603
-y Ft(Bash)21 b(is)g(an)f(acron)m(ym)i(for)e(`)p Fs(Bourne-Again)27
-b(SHell)p Ft('.)37 b(The)20 b(Bourne)g(shell)h(is)g(the)g(traditional)h
+y Fp(3)80 b(Basic)54 b(Shell)e(F)-13 b(eatures)150 603
+y Fu(Bash)21 b(is)g(an)f(acron)m(ym)i(for)e(`)p Ft(Bourne-Again)27
+b(SHell)p Fu('.)37 b(The)20 b(Bourne)g(shell)h(is)g(the)g(traditional)h
(Unix)f(shell)150 712 y(originally)h(written)f(b)m(y)f(Stephen)g
(Bourne.)38 b(All)21 b(of)g(the)g(Bourne)f(shell)h(builtin)f(commands)g
(are)i(a)m(v)-5 b(ailable)150 822 y(in)26 b(Bash,)h(The)f(rules)f(for)h
(ev)-5 b(aluation)28 b(and)d(quoting)h(are)h(tak)m(en)g(from)f(the)g
-Fl(posix)f Ft(sp)s(eci\014cation)i(for)f(the)150 931
+Fm(posix)f Fu(sp)s(eci\014cation)i(for)f(the)150 931
y(`standard')k(Unix)g(shell.)275 1089 y(This)h(c)m(hapter)i(brie\015y)e
(summarizes)h(the)h(shell's)f(`building)g(blo)s(c)m(ks':)45
b(commands,)32 b(con)m(trol)i(struc-)150 1199 y(tures,)k(shell)e
-(functions,)h(shell)g Fk(p)-5 b(ar)g(ameters)p Ft(,)41
-b(shell)36 b(expansions,)i Fk(r)-5 b(e)g(dir)g(e)g(ctions)p
-Ft(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m(y)h(to)150 1308
+(functions,)h(shell)g Fl(p)-5 b(ar)g(ameters)p Fu(,)41
+b(shell)36 b(expansions,)i Fl(r)-5 b(e)g(dir)g(e)g(ctions)p
+Fu(,)40 b(whic)m(h)c(are)h(a)f(w)m(a)m(y)h(to)150 1308
y(direct)31 b(input)e(and)h(output)g(from)g(and)g(to)h(named)f
(\014les,)g(and)g(ho)m(w)g(the)h(shell)g(executes)g(commands.)150
-1576 y Fr(3.1)68 b(Shell)45 b(Syn)l(tax)150 1735 y Ft(When)40
+1576 y Fs(3.1)68 b(Shell)45 b(Syn)l(tax)150 1735 y Fu(When)40
b(the)h(shell)g(reads)f(input,)i(it)f(pro)s(ceeds)f(through)g(a)h
(sequence)g(of)g(op)s(erations.)71 b(If)40 b(the)h(input)150
1845 y(indicates)31 b(the)f(b)s(eginning)f(of)h(a)g(commen)m(t,)h(the)f
(shell)g(ignores)g(the)g(commen)m(t)h(sym)m(b)s(ol)f(\(`)p
-Fs(#)p Ft('\),)h(and)e(the)150 1954 y(rest)i(of)f(that)h(line.)275
+Ft(#)p Fu('\),)h(and)e(the)150 1954 y(rest)i(of)f(that)h(line.)275
2112 y(Otherwise,)h(roughly)f(sp)s(eaking,)i(the)f(shell)g(reads)g(its)
g(input)f(and)h(divides)f(the)i(input)e(in)m(to)h(w)m(ords)150
2222 y(and)23 b(op)s(erators,)j(emplo)m(ying)e(the)g(quoting)h(rules)e
@@ -5047,95 +8242,96 @@ b(arious)23 b(w)m(ords)150 2331 y(and)30 b(c)m(haracters.)275
(aits)f(for)f(the)g(command's)g(exit)i(status,)f(and)f(mak)m(es)150
2818 y(that)31 b(exit)g(status)g(a)m(v)-5 b(ailable)33
b(for)d(further)f(insp)s(ection)h(or)h(pro)s(cessing.)150
-3040 y Fj(3.1.1)63 b(Shell)41 b(Op)s(eration)150 3187
-y Ft(The)c(follo)m(wing)h(is)f(a)h(brief)e(description)i(of)f(the)g
+3040 y Fk(3.1.1)63 b(Shell)41 b(Op)s(eration)150 3187
+y Fu(The)c(follo)m(wing)h(is)f(a)h(brief)e(description)i(of)f(the)g
(shell's)h(op)s(eration)f(when)f(it)i(reads)f(and)f(executes)j(a)150
3297 y(command.)h(Basically)-8 b(,)34 b(the)c(shell)h(do)s(es)f(the)h
(follo)m(wing:)199 3454 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g
-(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(34\),)k
-(from)41 b(a)i(string)330 3564 y(supplied)26 b(as)i(an)f(argumen)m(t)g
-(to)h(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option)f(\(see)g
-(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)330 3673 y(page)j(73\),)h(or)
-e(from)g(the)h(user's)f(terminal.)199 3820 y(2.)61 b(Breaks)43
+(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(39\),)k
+(from)41 b(a)i(string)330 3564 y(supplied)30 b(as)h(an)g(argumen)m(t)h
+(to)g(the)f Ft(-c)g Fu(in)m(v)m(o)s(cation)i(option)f(\(see)g(Section)g
+(6.1)g([In)m(v)m(oking)g(Bash],)330 3673 y(page)f(80\),)h(or)e(from)g
+(the)h(user's)f(terminal.)199 3820 y(2.)61 b(Breaks)43
b(the)g(input)f(in)m(to)h(w)m(ords)f(and)g(op)s(erators,)k(ob)s(eying)d
(the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3929 y(Section)27
b(3.1.2)i([Quoting],)f(page)f(6.)40 b(These)26 b(tok)m(ens)i(are)f
-(separated)g(b)m(y)f Fs(metacharacters)p Ft(.)36 b(Alias)330
+(separated)g(b)m(y)f Ft(metacharacters)p Fu(.)36 b(Alias)330
4039 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i
-(Section)f(6.6)g([Aliases],)i(page)e(81\).)199 4185 y(3.)61
+(Section)f(6.6)g([Aliases],)i(page)e(88\).)199 4185 y(3.)61
b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g(comp)s
(ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330
4294 y(mands],)30 b(page)h(8\).)199 4441 y(4.)61 b(P)m(erforms)40
b(the)h(v)-5 b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g
-([Shell)g(Expansions],)h(page)f(19\),)330 4550 y(breaking)35
+([Shell)g(Expansions],)h(page)f(21\),)330 4550 y(breaking)35
b(the)g(expanded)g(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h
(\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4660 y(pansion],)30
-b(page)h(25\))h(and)e(commands)g(and)g(argumen)m(ts.)199
+b(page)h(30\))h(and)e(commands)g(and)g(argumen)m(ts.)199
4806 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g
-(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(27\))g(and)e(re-)330
+(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(31\))g(and)e(re-)330
4915 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g
(op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5062
y(6.)61 b(Executes)31 b(the)g(command)f(\(see)h(Section)g(3.7)h
-([Executing)f(Commands],)f(page)h(30\).)199 5208 y(7.)61
+([Executing)f(Commands],)f(page)h(35\).)199 5208 y(7.)61
b(Optionally)40 b(w)m(aits)g(for)f(the)g(command)g(to)h(complete)g(and)
f(collects)i(its)f(exit)g(status)f(\(see)h(Sec-)330 5317
-y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(33\).)p
+y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(38\).)p
eop end
%%Page: 6 12
-TeXDict begin 6 11 bop 150 -116 a Ft(6)2617 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fj(3.1.2)63 b(Quoting)150
-446 y Ft(Quoting)32 b(is)h(used)e(to)i(remo)m(v)m(e)h(the)e(sp)s(ecial)
-h(meaning)f(of)h(certain)g(c)m(haracters)g(or)f(w)m(ords)g(to)h(the)f
-(shell.)150 555 y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s
-(ecial)h(treatmen)m(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m
-(en)m(t)g(reserv)m(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g
-(recognized)h(as)g(suc)m(h,)f(and)g(to)h(prev)m(en)m(t)g(parameter)g
-(expansion.)275 793 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m
-(haracters)i(\(see)f(Chapter)e(2)i([De\014nitions],)h(page)f(3\))g(has)
-e(sp)s(ecial)i(meaning)150 902 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g
-(b)s(e)g(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
+TeXDict begin 6 11 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(6)150 299
+y Fk(3.1.2)63 b(Quoting)150 446 y Fu(Quoting)32 b(is)h(used)e(to)i
+(remo)m(v)m(e)h(the)e(sp)s(ecial)h(meaning)f(of)h(certain)g(c)m
+(haracters)g(or)f(w)m(ords)g(to)h(the)f(shell.)150 555
+y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s(ecial)h(treatmen)m
+(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m(en)m(t)g(reserv)m
+(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g(recognized)h(as)g(suc)m(h,)f
+(and)g(to)h(prev)m(en)m(t)g(parameter)g(expansion.)275
+793 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m(haracters)i(\(see)f
+(Chapter)e(2)i([De\014nitions],)h(page)f(3\))g(has)e(sp)s(ecial)i
+(meaning)150 902 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g(b)s(e)g
+(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
b(When)39 b(the)h(command)f(history)150 1012 y(expansion)i(facilities)j
(are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m
-(teraction],)j(page)c(127\),)47 b(the)150 1122 y Fq(history)30
-b(expansion)h Ft(c)m(haracter,)h(usually)f(`)p Fs(!)p
-Ft(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
+(teraction],)j(page)c(135\),)47 b(the)150 1122 y Fr(history)30
+b(expansion)h Fu(c)m(haracter,)h(usually)f(`)p Ft(!)p
+Fu(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
(expansion.)41 b(See)150 1231 y(Section)22 b(9.1)g([Bash)f(History)h(F)
--8 b(acilities],)26 b(page)c(125,)j(for)20 b(more)h(details)h
-(concerning)g(history)f(expansion.)275 1359 y(There)36
-b(are)i(three)f(quoting)g(mec)m(hanisms:)55 b(the)37
-b Fq(escap)s(e)h(c)m(haracter)7 b Ft(,)40 b(single)d(quotes,)j(and)c
-(double)150 1469 y(quotes.)150 1655 y Fj(3.1.2.1)63 b(Escap)s(e)41
-b(Character)150 1802 y Ft(A)36 b(non-quoted)f(bac)m(kslash)h(`)p
-Fs(\\)p Ft(')g(is)f(the)h(Bash)g(escap)s(e)f(c)m(haracter.)58
+-8 b(acilities],)26 b(page)c(133,)j(for)20 b(more)h(details)h
+(concerning)g(history)f(expansion.)275 1359 y(There)37
+b(are)h(three)f(quoting)h(mec)m(hanisms:)56 b(the)38
+b Fr(escap)s(e)g(c)m(haracter)p Fu(,)j(single)d(quotes,)i(and)d(double)
+150 1469 y(quotes.)150 1655 y Fk(3.1.2.1)63 b(Escap)s(e)41
+b(Character)150 1802 y Fu(A)36 b(non-quoted)f(bac)m(kslash)h(`)p
+Ft(\\)p Fu(')g(is)f(the)h(Bash)g(escap)s(e)f(c)m(haracter.)58
b(It)36 b(preserv)m(es)f(the)h(literal)h(v)-5 b(alue)36
b(of)150 1911 y(the)27 b(next)g(c)m(haracter)h(that)f(follo)m(ws,)i
-(with)d(the)h(exception)g(of)g Fs(newline)p Ft(.)38 b(If)26
-b(a)h Fs(\\newline)d Ft(pair)i(app)s(ears,)150 2021 y(and)k(the)h(bac)m
-(kslash)g(itself)g(is)g(not)g(quoted,)g(the)f Fs(\\newline)f
-Ft(is)h(treated)i(as)f(a)g(line)g(con)m(tin)m(uation)h(\(that)150
+(with)d(the)h(exception)g(of)g Ft(newline)p Fu(.)38 b(If)26
+b(a)h Ft(\\newline)d Fu(pair)i(app)s(ears,)150 2021 y(and)k(the)h(bac)m
+(kslash)g(itself)g(is)g(not)g(quoted,)g(the)f Ft(\\newline)f
+Fu(is)h(treated)i(as)f(a)g(line)g(con)m(tin)m(uation)h(\(that)150
2131 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i
-(and)f(e\013ectiv)m(ely)j(ignored\).)150 2317 y Fj(3.1.2.2)63
-b(Single)42 b(Quotes)150 2464 y Ft(Enclosing)24 b(c)m(haracters)h(in)e
-(single)h(quotes)g(\(`)p Fs(')p Ft('\))g(preserv)m(es)g(the)f(literal)i
+(and)f(e\013ectiv)m(ely)j(ignored\).)150 2317 y Fk(3.1.2.2)63
+b(Single)42 b(Quotes)150 2464 y Fu(Enclosing)24 b(c)m(haracters)h(in)e
+(single)h(quotes)g(\(`)p Ft(')p Fu('\))g(preserv)m(es)g(the)f(literal)i
(v)-5 b(alue)24 b(of)g(eac)m(h)g(c)m(haracter)h(within)150
2573 y(the)31 b(quotes.)42 b(A)31 b(single)h(quote)f(ma)m(y)g(not)g(o)s
(ccur)g(b)s(et)m(w)m(een)g(single)h(quotes,)f(ev)m(en)h(when)d
(preceded)i(b)m(y)g(a)150 2683 y(bac)m(kslash.)150 2869
-y Fj(3.1.2.3)63 b(Double)42 b(Quotes)150 3016 y Ft(Enclosing)24
-b(c)m(haracters)h(in)f(double)f(quotes)h(\(`)p Fs(")p
-Ft('\))g(preserv)m(es)g(the)g(literal)h(v)-5 b(alue)24
+y Fk(3.1.2.3)63 b(Double)42 b(Quotes)150 3016 y Fu(Enclosing)24
+b(c)m(haracters)h(in)f(double)f(quotes)h(\(`)p Ft(")p
+Fu('\))g(preserv)m(es)g(the)g(literal)h(v)-5 b(alue)24
b(of)g(all)g(c)m(haracters)h(within)150 3125 y(the)34
-b(quotes,)h(with)f(the)g(exception)h(of)f(`)p Fs($)p
-Ft(',)h(`)p Fs(`)p Ft(',)g(`)p Fs(\\)p Ft(',)g(and,)f(when)f(history)g
-(expansion)h(is)g(enabled,)h(`)p Fs(!)p Ft('.)150 3235
-y(The)25 b(c)m(haracters)h(`)p Fs($)p Ft(')g(and)f(`)p
-Fs(`)p Ft(')g(retain)h(their)f(sp)s(ecial)h(meaning)f(within)g(double)g
+b(quotes,)h(with)f(the)g(exception)h(of)f(`)p Ft($)p
+Fu(',)h(`)p Ft(`)p Fu(',)g(`)p Ft(\\)p Fu(',)g(and,)f(when)f(history)g
+(expansion)h(is)g(enabled,)h(`)p Ft(!)p Fu('.)150 3235
+y(The)25 b(c)m(haracters)h(`)p Ft($)p Fu(')g(and)f(`)p
+Ft(`)p Fu(')g(retain)h(their)f(sp)s(ecial)h(meaning)f(within)g(double)g
(quotes)h(\(see)g(Section)g(3.5)150 3345 y([Shell)j(Expansions],)g
-(page)h(19\).)41 b(The)28 b(bac)m(kslash)i(retains)f(its)h(sp)s(ecial)f
+(page)h(21\).)41 b(The)28 b(bac)m(kslash)i(retains)f(its)h(sp)s(ecial)f
(meaning)g(only)g(when)f(follo)m(w)m(ed)150 3454 y(b)m(y)41
b(one)f(of)h(the)g(follo)m(wing)h(c)m(haracters:)63 b(`)p
-Fs($)p Ft(',)43 b(`)p Fs(`)p Ft(',)h(`)p Fs(")p Ft(',)g(`)p
-Fs(\\)p Ft(',)f(or)e Fs(newline)p Ft(.)69 b(Within)41
+Ft($)p Fu(',)43 b(`)p Ft(`)p Fu(',)h(`)p Ft(")p Fu(',)g(`)p
+Ft(\\)p Fu(',)f(or)e Ft(newline)p Fu(.)69 b(Within)41
b(double)f(quotes,)150 3564 y(bac)m(kslashes)25 b(that)h(are)f(follo)m
(w)m(ed)h(b)m(y)e(one)h(of)g(these)g(c)m(haracters)h(are)f(remo)m(v)m
(ed.)40 b(Bac)m(kslashes)26 b(preceding)150 3673 y(c)m(haracters)35
@@ -5143,2313 +8339,2610 @@ b(without)e(a)h(sp)s(ecial)f(meaning)h(are)f(left)h(unmo)s(di\014ed.)47
b(A)34 b(double)f(quote)g(ma)m(y)h(b)s(e)f(quoted)150
3783 y(within)h(double)h(quotes)g(b)m(y)g(preceding)g(it)g(with)g(a)g
(bac)m(kslash.)55 b(If)35 b(enabled,)h(history)f(expansion)g(will)150
-3892 y(b)s(e)f(p)s(erformed)g(unless)g(an)h(`)p Fs(!)p
-Ft(')g(app)s(earing)f(in)h(double)f(quotes)i(is)f(escap)s(ed)g(using)f
+3892 y(b)s(e)f(p)s(erformed)g(unless)g(an)h(`)p Ft(!)p
+Fu(')g(app)s(earing)f(in)h(double)f(quotes)i(is)f(escap)s(ed)g(using)f
(a)h(bac)m(kslash.)55 b(The)150 4002 y(bac)m(kslash)31
-b(preceding)f(the)h(`)p Fs(!)p Ft(')f(is)h(not)g(remo)m(v)m(ed.)275
-4130 y(The)41 b(sp)s(ecial)h(parameters)f(`)p Fs(*)p
-Ft(')h(and)f(`)p Fs(@)p Ft(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g
+b(preceding)f(the)h(`)p Ft(!)p Fu(')f(is)h(not)g(remo)m(v)m(ed.)275
+4130 y(The)41 b(sp)s(ecial)h(parameters)f(`)p Ft(*)p
+Fu(')h(and)f(`)p Ft(@)p Fu(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g
(when)f(in)g(double)g(quotes)h(\(see)150 4240 y(Section)31
-b(3.5.3)h([Shell)f(P)m(arameter)h(Expansion],)e(page)h(21\).)150
-4426 y Fj(3.1.2.4)63 b(ANSI-C)40 b(Quoting)150 4573 y
-Ft(W)-8 b(ords)41 b(of)h(the)f(form)g Fs($')p Fi(string)11
-b Fs(')38 b Ft(are)k(treated)g(sp)s(ecially)-8 b(.)75
-b(The)41 b(w)m(ord)g(expands)f(to)i Fq(string)8 b Ft(,)44
-b(with)150 4682 y(bac)m(kslash-escap)s(ed)g(c)m(haracters)h(replaced)f
-(as)g(sp)s(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79
-b(Bac)m(kslash)150 4792 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,)
-h(are)g(deco)s(ded)f(as)g(follo)m(ws:)150 4938 y Fs(\\a)384
-b Ft(alert)31 b(\(b)s(ell\))150 5084 y Fs(\\b)384 b Ft(bac)m(kspace)150
-5230 y Fs(\\e)150 5340 y(\\E)g Ft(an)30 b(escap)s(e)h(c)m(haracter)h
+b(3.5.3)h([Shell)f(P)m(arameter)h(Expansion],)e(page)h(23\).)150
+4426 y Fk(3.1.2.4)63 b(ANSI-C)40 b(Quoting)150 4573 y
+Fu(W)-8 b(ords)43 b(of)f(the)h(form)f Ft($')p Fj(string)p
+Ft(')e Fu(are)j(treated)g(sp)s(ecially)-8 b(.)79 b(The)42
+b(w)m(ord)g(expands)f(to)j Fr(string)p Fu(,)h(with)150
+4682 y(bac)m(kslash-escap)s(ed)f(c)m(haracters)h(replaced)f(as)g(sp)s
+(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79 b(Bac)m(kslash)150
+4792 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,)h(are)g(deco)s(ded)
+f(as)g(follo)m(ws:)150 4938 y Ft(\\a)384 b Fu(alert)31
+b(\(b)s(ell\))150 5084 y Ft(\\b)384 b Fu(bac)m(kspace)150
+5230 y Ft(\\e)150 5340 y(\\E)g Fu(an)30 b(escap)s(e)h(c)m(haracter)h
(\(not)f(ANSI)f(C\))p eop end
%%Page: 7 13
-TeXDict begin 7 12 bop 150 -116 a Ft(Chapter)30 b(3:)41
+TeXDict begin 7 12 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(7)150 299
-y Fs(\\f)384 b Ft(form)30 b(feed)150 488 y Fs(\\n)384
-b Ft(newline)150 678 y Fs(\\r)g Ft(carriage)32 b(return)150
-868 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)150 1057
-y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)150 1247 y Fs(\\\\)384
-b Ft(bac)m(kslash)150 1436 y Fs(\\')g Ft(single)31 b(quote)150
-1626 y Fs(\\")384 b Ft(double)30 b(quote)150 1816 y Fs(\\)p
-Fi(nnn)288 b Ft(the)31 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)31 b(is)f(the)h(o)s(ctal)g(v)-5 b(alue)31 b Fq(nnn)e
-Ft(\(one)i(to)g(three)g(digits\))150 2005 y Fs(\\x)p
-Fi(HH)288 b Ft(the)36 b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5
+y Ft(\\f)384 b Fu(form)30 b(feed)150 488 y Ft(\\n)384
+b Fu(newline)150 678 y Ft(\\r)g Fu(carriage)32 b(return)150
+868 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)150 1057
+y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)150 1247 y Ft(\\\\)384
+b Fu(bac)m(kslash)150 1436 y Ft(\\')g Fu(single)31 b(quote)150
+1626 y Ft(\\")384 b Fu(double)30 b(quote)150 1816 y Ft(\\)p
+Fj(nnn)288 b Fu(the)31 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
+b(alue)31 b(is)f(the)h(o)s(ctal)g(v)-5 b(alue)31 b Fr(nnn)e
+Fu(\(one)i(to)g(three)g(digits\))150 2005 y Ft(\\x)p
+Fj(HH)288 b Fu(the)36 b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5
b(alue)36 b(is)g(the)g(hexadecimal)h(v)-5 b(alue)36 b
-Fq(HH)46 b Ft(\(one)37 b(or)f(t)m(w)m(o)630 2115 y(hex)30
-b(digits\))150 2304 y Fs(\\u)p Fi(HHHH)192 b Ft(the)33
+Fr(HH)46 b Fu(\(one)37 b(or)f(t)m(w)m(o)630 2115 y(hex)30
+b(digits\))150 2304 y Ft(\\u)p Fj(HHHH)192 b Fu(the)33
b(Unico)s(de)f(\(ISO/IEC)g(10646\))j(c)m(haracter)f(whose)e(v)-5
b(alue)33 b(is)g(the)g(hexadecimal)g(v)-5 b(alue)630
-2414 y Fq(HHHH)41 b Ft(\(one)31 b(to)g(four)f(hex)g(digits\))150
-2604 y Fs(\\U)p Fi(HHHHHHHH)630 2713 y Ft(the)j(Unico)s(de)f(\(ISO/IEC)
+2414 y Fr(HHHH)41 b Fu(\(one)31 b(to)g(four)f(hex)g(digits\))150
+2604 y Ft(\\U)p Fj(HHHHHHHH)630 2713 y Fu(the)j(Unico)s(de)f(\(ISO/IEC)
g(10646\))j(c)m(haracter)f(whose)e(v)-5 b(alue)33 b(is)g(the)g
-(hexadecimal)g(v)-5 b(alue)630 2823 y Fq(HHHHHHHH)42
-b Ft(\(one)31 b(to)g(eigh)m(t)g(hex)g(digits\))150 3012
-y Fs(\\c)p Fi(x)336 b Ft(a)31 b(con)m(trol-)p Fq(x)38
-b Ft(c)m(haracter)150 3217 y(The)30 b(expanded)f(result)i(is)f
+(hexadecimal)g(v)-5 b(alue)630 2823 y Fr(HHHHHHHH)42
+b Fu(\(one)31 b(to)g(eigh)m(t)g(hex)g(digits\))150 3012
+y Ft(\\c)p Fj(x)336 b Fu(a)31 b(con)m(trol-)p Fr(x)38
+b Fu(c)m(haracter)150 3217 y(The)30 b(expanded)f(result)i(is)f
(single-quoted,)i(as)f(if)f(the)g(dollar)h(sign)g(had)e(not)i(b)s(een)f
-(presen)m(t.)150 3446 y Fj(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41
-b(T)-10 b(ranslation)150 3593 y Ft(A)28 b(double-quoted)g(string)f
-(preceded)h(b)m(y)f(a)h(dollar)h(sign)e(\(`)p Fs($)p
-Ft('\))i(will)f(cause)g(the)g(string)g(to)g(b)s(e)f(translated)150
+(presen)m(t.)150 3446 y Fk(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41
+b(T)-10 b(ranslation)150 3593 y Fu(A)28 b(double-quoted)g(string)f
+(preceded)h(b)m(y)f(a)h(dollar)h(sign)e(\(`)p Ft($)p
+Fu('\))i(will)f(cause)g(the)g(string)g(to)g(b)s(e)f(translated)150
3703 y(according)f(to)f(the)g(curren)m(t)g(lo)s(cale.)41
-b(If)24 b(the)h(curren)m(t)g(lo)s(cale)h(is)f Fs(C)g
-Ft(or)g Fs(POSIX)p Ft(,)f(the)h(dollar)h(sign)f(is)g(ignored.)150
+b(If)24 b(the)h(curren)m(t)g(lo)s(cale)h(is)f Ft(C)g
+Fu(or)g Ft(POSIX)p Fu(,)f(the)h(dollar)h(sign)f(is)g(ignored.)150
3813 y(If)30 b(the)g(string)h(is)f(translated)h(and)f(replaced,)h(the)g
(replacemen)m(t)h(is)e(double-quoted.)275 3977 y(Some)20
b(systems)h(use)f(the)h(message)h(catalog)h(selected)f(b)m(y)f(the)g
-Fs(LC_MESSAGES)c Ft(shell)k(v)-5 b(ariable.)39 b(Others)150
+Ft(LC_MESSAGES)c Fu(shell)k(v)-5 b(ariable.)39 b(Others)150
4087 y(create)g(the)e(name)g(of)g(the)g(message)h(catalog)i(from)d(the)
-g(v)-5 b(alue)37 b(of)g(the)h Fs(TEXTDOMAIN)c Ft(shell)j(v)-5
+g(v)-5 b(alue)37 b(of)g(the)h Ft(TEXTDOMAIN)c Fu(shell)j(v)-5
b(ariable,)150 4196 y(p)s(ossibly)31 b(adding)g(a)g(su\016x)g(of)h(`)p
-Fs(.mo)p Ft('.)43 b(If)31 b(y)m(ou)h(use)f(the)h Fs(TEXTDOMAIN)c
-Ft(v)-5 b(ariable,)33 b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150
-4306 y(the)22 b Fs(TEXTDOMAINDIR)d Ft(v)-5 b(ariable)23
+Ft(.mo)p Fu('.)43 b(If)31 b(y)m(ou)h(use)f(the)h Ft(TEXTDOMAIN)c
+Fu(v)-5 b(ariable,)33 b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150
+4306 y(the)22 b Ft(TEXTDOMAINDIR)d Fu(v)-5 b(ariable)23
b(to)g(the)f(lo)s(cation)i(of)e(the)h(message)g(catalog)i(\014les.)38
b(Still)23 b(others)f(use)g(b)s(oth)150 4416 y(v)-5 b(ariables)31
-b(in)f(this)g(fashion:)41 b Fs(TEXTDOMAINDIR)p Ft(/)p
-Fs(LC_MESSAGES)p Ft(/LC)p 2528 4416 28 4 v 34 w(MESSA)m(GES/)p
-Fs(TEXTDOMAIN)p Ft(.mo.)150 4645 y Fj(3.1.3)63 b(Commen)m(ts)150
-4792 y Ft(In)21 b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m
-(teractiv)m(e)j(shell)d(in)g(whic)m(h)g(the)g Fs(interactive_comments)
-16 b Ft(option)150 4902 y(to)40 b(the)f Fs(shopt)e Ft(builtin)h(is)h
+b(in)f(this)g(fashion:)41 b Ft(TEXTDOMAINDIR)p Fu(/)p
+Ft(LC_MESSAGES)p Fu(/LC)p 2528 4416 28 4 v 34 w(MESSA)m(GES/)p
+Ft(TEXTDOMAIN)p Fu(.mo.)150 4645 y Fk(3.1.3)63 b(Commen)m(ts)150
+4792 y Fu(In)21 b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m
+(teractiv)m(e)j(shell)d(in)g(whic)m(h)g(the)g Ft(interactive_comments)
+16 b Fu(option)150 4902 y(to)40 b(the)f Ft(shopt)e Fu(builtin)h(is)h
(enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e
-(57\),)i(a)d(w)m(ord)150 5011 y(b)s(eginning)26 b(with)g(`)p
-Fs(#)p Ft(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m
+(62\),)i(a)d(w)m(ord)150 5011 y(b)s(eginning)26 b(with)g(`)p
+Ft(#)p Fu(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m
(haracters)g(on)f(that)h(line)g(to)g(b)s(e)f(ignored.)150
5121 y(An)43 b(in)m(teractiv)m(e)j(shell)e(without)f(the)g
-Fs(interactive_comments)38 b Ft(option)44 b(enabled)f(do)s(es)g(not)g
-(allo)m(w)150 5230 y(commen)m(ts.)56 b(The)34 b Fs
-(interactive_comments)c Ft(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g
+Ft(interactive_comments)38 b Fu(option)44 b(enabled)f(do)s(es)g(not)g
+(allo)m(w)150 5230 y(commen)m(ts.)56 b(The)34 b Ft
+(interactive_comments)c Fu(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g
(in)m(teractiv)m(e)j(shells.)55 b(See)150 5340 y(Section)30
-b(6.3)f([In)m(teractiv)m(e)j(Shells],)d(page)h(76,)g(for)e(a)i
+b(6.3)f([In)m(teractiv)m(e)j(Shells],)d(page)h(83,)g(for)e(a)i
(description)e(of)h(what)g(mak)m(es)h(a)f(shell)g(in)m(teractiv)m(e.)p
eop end
%%Page: 8 14
-TeXDict begin 8 13 bop 150 -116 a Ft(8)2617 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fr(3.2)68 b(Shell)45
-b(Commands)150 458 y Ft(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g
-Fs(echo)29 b(a)h(b)g(c)41 b Ft(consists)i(of)f(the)f(command)h(itself)h
-(follo)m(w)m(ed)g(b)m(y)150 568 y(argumen)m(ts,)31 b(separated)g(b)m(y)
-f(spaces.)275 714 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s
-(osed)g(of)g(simple)g(commands)g(arranged)g(together)h(in)150
-824 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31
+TeXDict begin 8 13 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(8)150 299
+y Fs(3.2)68 b(Shell)45 b(Commands)150 458 y Fu(A)d(simple)g(shell)g
+(command)f(suc)m(h)h(as)g Ft(echo)29 b(a)h(b)g(c)41 b
+Fu(consists)i(of)f(the)f(command)h(itself)h(follo)m(w)m(ed)g(b)m(y)150
+568 y(argumen)m(ts,)31 b(separated)g(b)m(y)f(spaces.)275
+704 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s(osed)g(of)g
+(simple)g(commands)g(arranged)g(together)h(in)150 814
+y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31
b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f(command)h
-(b)s(ecomes)f(the)h(input)f(of)150 933 y(a)h(second,)f(in)h(a)f(lo)s
+(b)s(ecomes)f(the)h(input)f(of)150 923 y(a)h(second,)f(in)h(a)f(lo)s
(op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g
-(grouping.)150 1144 y Fj(3.2.1)63 b(Simple)41 b(Commands)150
-1291 y Ft(A)29 b(simple)f(command)g(is)h(the)g(kind)e(of)i(command)f
+(grouping.)150 1124 y Fk(3.2.1)63 b(Simple)41 b(Commands)150
+1271 y Fu(A)29 b(simple)f(command)g(is)h(the)g(kind)e(of)i(command)f
(encoun)m(tered)h(most)g(often.)40 b(It's)29 b(just)f(a)h(sequence)g
-(of)150 1401 y(w)m(ords)22 b(separated)i(b)m(y)e Fs(blank)p
-Ft(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g(shell's)g(con)m(trol)h
-(op)s(erators)f(\(see)h(Chapter)f(2)150 1510 y([De\014nitions],)37
+(of)150 1381 y(w)m(ords)22 b(separated)i(b)m(y)e Ft(blank)p
+Fu(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g(shell's)g(con)m(trol)h
+(op)s(erators)f(\(see)h(Chapter)f(2)150 1491 y([De\014nitions],)37
b(page)e(3\).)54 b(The)35 b(\014rst)e(w)m(ord)i(generally)g(sp)s
(eci\014es)g(a)g(command)f(to)h(b)s(e)f(executed,)j(with)150
-1620 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h
-(command's)f(argumen)m(ts.)275 1766 y(The)h(return)h(status)g(\(see)i
-(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(33\))g(of)g(a)g(simple)f
-(command)g(is)h(its)150 1876 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)
-m(y)h(the)g Fl(posix)f Ft(1003.1)j Fs(waitpid)c Ft(function,)j(or)f
-(128)p Fs(+)p Fq(n)g Ft(if)g(the)g(command)150 1986 y(w)m(as)31
-b(terminated)g(b)m(y)f(signal)h Fq(n)p Ft(.)150 2197
-y Fj(3.2.2)63 b(Pip)s(elines)150 2343 y Ft(A)35 b Fs(pipeline)e
-Ft(is)j(a)f(sequence)h(of)f(simple)g(commands)g(separated)h(b)m(y)f
-(one)g(of)h(the)f(con)m(trol)i(op)s(erators)150 2453
-y(`)p Fs(|)p Ft(')31 b(or)f(`)p Fs(|&)p Ft('.)275 2599
-y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 2746
-y Fs([time)46 b([-p]])h([!])g Fi(command1)56 b Fs([)47
-b([|)g(or)h(|&])e Fi(command2)56 b Fs(...])150 2892 y
-Ft(The)25 b(output)f(of)i(eac)m(h)g(command)f(in)f(the)i(pip)s(eline)e
-(is)i(connected)g(via)f(a)h(pip)s(e)e(to)i(the)f(input)f(of)h(the)h
-(next)150 3001 y(command.)40 b(That)29 b(is,)h(eac)m(h)h(command)e
-(reads)g(the)h(previous)f(command's)g(output.)40 b(This)29
-b(connection)150 3111 y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h
-(redirections)g(sp)s(eci\014ed)f(b)m(y)g(the)g(command.)275
-3257 y(If)j(`)p Fs(|&)p Ft(')h(is)h(used,)f(the)h(standard)e(error)h
-(of)g Fq(command1)42 b Ft(is)34 b(connected)h(to)g Fq(command2)7
-b Ft('s)35 b(standard)150 3367 y(input)25 b(through)g(the)h(pip)s(e;)h
-(it)f(is)g(shorthand)f(for)g Fs(2>&1)k(|)p Ft(.)39 b(This)25
-b(implicit)i(redirection)g(of)f(the)g(standard)150 3477
-y(error)k(is)g(p)s(erformed)f(after)i(an)m(y)g(redirections)g(sp)s
-(eci\014ed)e(b)m(y)i(the)f(command.)275 3623 y(The)36
-b(reserv)m(ed)g(w)m(ord)g Fs(time)g Ft(causes)h(timing)g(statistics)h
-(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once)h(it)150
-3732 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e(consist)h
-(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f(and)h
-(system)150 3842 y(time)28 b(consumed)e(b)m(y)h(the)h(command's)f
-(execution.)40 b(The)27 b(`)p Fs(-p)p Ft(')g(option)h(c)m(hanges)g(the)
-f(output)g(format)g(to)150 3952 y(that)34 b(sp)s(eci\014ed)e(b)m(y)h
-Fl(posix)p Ft(.)49 b(When)33 b(the)g(shell)g(is)h(in)e
-Fl(posix)h Ft(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150
-4061 y(Mo)s(de],)40 b(page)f(86\),)i(it)d(do)s(es)f(not)h(recognize)i
-Fs(time)c Ft(as)i(a)g(reserv)m(ed)g(w)m(ord)f(if)h(the)g(next)g(tok)m
-(en)g(b)s(egins)150 4171 y(with)33 b(a)g(`)p Fs(-)p Ft('.)49
-b(The)33 b Fs(TIMEFORMAT)d Ft(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(set)
+1600 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)h
+(command's)f(argumen)m(ts.)275 1736 y(The)h(return)h(status)g(\(see)i
+(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(38\))g(of)g(a)g(simple)f
+(command)g(is)h(its)150 1846 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)
+m(y)h(the)g Fm(posix)f Fu(1003.1)j Ft(waitpid)c Fu(function,)j(or)f
+(128)p Ft(+)p Fr(n)g Fu(if)g(the)g(command)150 1956 y(w)m(as)31
+b(terminated)g(b)m(y)f(signal)h Fr(n)p Fu(.)150 2157
+y Fk(3.2.2)63 b(Pip)s(elines)150 2304 y Fu(A)35 b Ft(pipeline)e
+Fu(is)j(a)f(sequence)h(of)f(simple)g(commands)g(separated)h(b)m(y)f
+(one)g(of)h(the)f(con)m(trol)i(op)s(erators)150 2413
+y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275 2550
+y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 2686
+y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
+Fj(command2)f Ft(])h(...)150 2822 y Fu(The)25 b(output)f(of)i(eac)m(h)g
+(command)f(in)f(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)
+e(to)i(the)f(input)f(of)h(the)h(next)150 2932 y(command.)40
+b(That)29 b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f
+(command's)g(output.)40 b(This)29 b(connection)150 3041
+y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h(redirections)g(sp)s
+(eci\014ed)f(b)m(y)g(the)g(command.)275 3178 y(If)k(`)p
+Ft(|&)p Fu(')h(is)f(used,)i Fr(command1)7 b Fu('s)35
+b(standard)f(error,)i(in)e(addition)h(to)h(its)f(standard)f(output,)i
+(is)e(con-)150 3287 y(nected)h(to)g Fr(command2)7 b Fu('s)35
+b(standard)f(input)f(through)h(the)g(pip)s(e;)i(it)f(is)g(shorthand)e
+(for)h Ft(2>&1)29 b(|)p Fu(.)53 b(This)150 3397 y(implicit)41
+b(redirection)f(of)g(the)g(standard)f(error)g(to)h(the)g(standard)f
+(output)g(is)h(p)s(erformed)e(after)j(an)m(y)150 3506
+y(redirections)31 b(sp)s(eci\014ed)f(b)m(y)g(the)g(command.)275
+3643 y(The)36 b(reserv)m(ed)g(w)m(ord)g Ft(time)g Fu(causes)h(timing)g
+(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once)
+h(it)150 3752 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e
+(consist)h(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f
+(and)h(system)150 3862 y(time)e(consumed)e(b)m(y)h(the)g(command's)g
+(execution.)44 b(The)31 b Ft(-p)f Fu(option)i(c)m(hanges)g(the)f
+(output)g(format)g(to)150 3971 y(that)j(sp)s(eci\014ed)e(b)m(y)h
+Fm(posix)p Fu(.)49 b(When)33 b(the)g(shell)g(is)h(in)e
+Fm(posix)h Fu(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150
+4081 y(Mo)s(de],)40 b(page)f(94\),)i(it)d(do)s(es)f(not)h(recognize)i
+Ft(time)c Fu(as)i(a)g(reserv)m(ed)g(w)m(ord)f(if)h(the)g(next)g(tok)m
+(en)g(b)s(egins)150 4191 y(with)33 b(a)g(`)p Ft(-)p Fu('.)49
+b(The)33 b Ft(TIMEFORMAT)d Fu(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(set)
g(to)h(a)g(format)f(string)g(that)h(sp)s(eci\014es)f(ho)m(w)g(the)150
-4280 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
+4300 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
b(See)38 b(Section)g(5.2)g([Bash)g(V)-8 b(ariables],)41
-b(page)d(63,)i(for)e(a)150 4390 y(description)27 b(of)g(the)h(a)m(v)-5
-b(ailable)29 b(formats.)40 b(The)26 b(use)h(of)g Fs(time)f
-Ft(as)i(a)f(reserv)m(ed)g(w)m(ord)g(p)s(ermits)f(the)h(timing)150
-4499 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
-(elines.)63 b(An)38 b(external)h Fs(time)e Ft(command)h(cannot)g(time)
-150 4609 y(these)31 b(easily)-8 b(.)275 4755 y(When)29
-b(the)h(shell)h(is)f(in)f Fl(posix)g Ft(mo)s(de)h(\(see)h(Section)f
-(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(86\),)g Fs(time)150
-4865 y Ft(ma)m(y)26 b(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
+b(page)d(69,)i(for)e(a)150 4410 y(description)27 b(of)g(the)h(a)m(v)-5
+b(ailable)29 b(formats.)40 b(The)26 b(use)h(of)g Ft(time)f
+Fu(as)i(a)f(reserv)m(ed)g(w)m(ord)g(p)s(ermits)f(the)h(timing)150
+4519 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
+(elines.)63 b(An)38 b(external)h Ft(time)e Fu(command)h(cannot)g(time)
+150 4629 y(these)31 b(easily)-8 b(.)275 4765 y(When)29
+b(the)h(shell)h(is)f(in)f Fm(posix)g Fu(mo)s(de)h(\(see)h(Section)f
+(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(94\),)g Ft(time)150
+4875 y Fu(ma)m(y)26 b(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
b(In)25 b(this)h(case,)i(the)d(shell)h(displa)m(ys)g(the)g(total)h
-(user)e(and)g(system)h(time)150 4975 y(consumed)33 b(b)m(y)h(the)h
-(shell)f(and)f(its)i(c)m(hildren.)51 b(The)34 b Fs(TIMEFORMAT)d
-Ft(v)-5 b(ariable)35 b(ma)m(y)g(b)s(e)e(used)g(to)i(sp)s(ecify)150
-5084 y(the)c(format)f(of)h(the)f(time)h(information.)275
+(user)e(and)g(system)h(time)150 4984 y(consumed)33 b(b)m(y)h(the)h
+(shell)f(and)f(its)i(c)m(hildren.)51 b(The)34 b Ft(TIMEFORMAT)d
+Fu(v)-5 b(ariable)35 b(ma)m(y)g(b)s(e)e(used)g(to)i(sp)s(ecify)150
+5094 y(the)c(format)f(of)h(the)f(time)h(information.)275
5230 y(If)24 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)m
(hronously)f(\(see)h(Section)g(3.2.3)h([Lists],)g(page)e(9\),)i(the)f
(shell)150 5340 y(w)m(aits)31 b(for)f(all)i(commands)e(in)g(the)g(pip)s
(eline)g(to)h(complete.)p eop end
%%Page: 9 15
-TeXDict begin 9 14 bop 150 -116 a Ft(Chapter)30 b(3:)41
+TeXDict begin 9 14 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)275 299
y(Eac)m(h)25 b(command)g(in)g(a)g(pip)s(eline)g(is)g(executed)h(in)f
(its)g(o)m(wn)h(subshell)e(\(see)i(Section)g(3.7.3)h([Command)150
-408 y(Execution)36 b(En)m(vironmen)m(t],)i(page)e(32\).)58
+408 y(Execution)36 b(En)m(vironmen)m(t],)i(page)e(36\).)58
b(The)36 b(exit)g(status)g(of)g(a)g(pip)s(eline)g(is)f(the)h(exit)h
(status)f(of)g(the)150 518 y(last)27 b(command)f(in)f(the)i(pip)s
-(eline,)f(unless)g(the)g Fs(pipefail)e Ft(option)i(is)g(enabled)g
+(eline,)f(unless)g(the)g Ft(pipefail)e Fu(option)i(is)g(enabled)g
(\(see)h(Section)g(4.3.1)h([The)150 628 y(Set)34 b(Builtin],)j(page)e
-(54\).)53 b(If)34 b Fs(pipefail)e Ft(is)i(enabled,)h(the)g(pip)s
+(58\).)53 b(If)34 b Ft(pipefail)e Fu(is)i(enabled,)h(the)g(pip)s
(eline's)f(return)f(status)h(is)h(the)f(v)-5 b(alue)35
b(of)150 737 y(the)d(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g
(with)e(a)i(non-zero)f(status,)h(or)f(zero)h(if)f(all)h(commands)f
(exit)150 847 y(successfully)-8 b(.)67 b(If)38 b(the)h(reserv)m(ed)g(w)
-m(ord)g(`)p Fs(!)p Ft(')g(precedes)g(the)g(pip)s(eline,)h(the)g(exit)f
+m(ord)g(`)p Ft(!)p Fu(')g(precedes)g(the)g(pip)s(eline,)h(the)g(exit)f
(status)g(is)g(the)g(logical)150 956 y(negation)h(of)f(the)f(exit)i
(status)f(as)f(describ)s(ed)g(ab)s(o)m(v)m(e.)66 b(The)38
b(shell)h(w)m(aits)h(for)e(all)h(commands)g(in)f(the)150
1066 y(pip)s(eline)30 b(to)h(terminate)g(b)s(efore)f(returning)g(a)h(v)
--5 b(alue.)150 1271 y Fj(3.2.3)63 b(Lists)41 b(of)h(Commands)150
-1418 y Ft(A)37 b Fs(list)e Ft(is)i(a)g(sequence)g(of)g(one)g(or)f(more)
+-5 b(alue.)150 1262 y Fk(3.2.3)63 b(Lists)41 b(of)h(Commands)150
+1409 y Fu(A)37 b Ft(list)e Fu(is)i(a)g(sequence)g(of)g(one)g(or)f(more)
h(pip)s(elines)f(separated)h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)
-p Fs(;)p Ft(',)i(`)p Fs(&)p Ft(',)150 1527 y(`)p Fs(&&)p
-Ft(',)31 b(or)f(`)p Fs(||)p Ft(',)g(and)g(optionally)i(terminated)f(b)m
-(y)f(one)h(of)f(`)p Fs(;)p Ft(',)h(`)p Fs(&)p Ft(',)g(or)f(a)h
-Fs(newline)p Ft(.)275 1667 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
-Fs(&&)p Ft(')d(and)g(`)p Fs(||)p Ft(')h(ha)m(v)m(e)h(equal)f
-(precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Fs(;)p Ft(')g(and)f(`)p
-Fs(&)p Ft(',)i(whic)m(h)150 1777 y(ha)m(v)m(e)32 b(equal)e(precedence.)
-275 1916 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
-(app)s(ear)f(in)h(a)g Fs(list)e Ft(to)j(delimit)f(commands,)g(equiv-)
-150 2026 y(alen)m(t)i(to)f(a)g(semicolon.)275 2166 y(If)c(a)h(command)f
+p Ft(;)p Fu(',)i(`)p Ft(&)p Fu(',)150 1518 y(`)p Ft(&&)p
+Fu(',)31 b(or)f(`)p Ft(||)p Fu(',)g(and)g(optionally)i(terminated)f(b)m
+(y)f(one)h(of)f(`)p Ft(;)p Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h
+Ft(newline)p Fu(.)275 1651 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
+Ft(&&)p Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f
+(precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
+Ft(&)p Fu(',)i(whic)m(h)150 1761 y(ha)m(v)m(e)32 b(equal)e(precedence.)
+275 1893 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
+(app)s(ear)f(in)h(a)g Ft(list)e Fu(to)j(delimit)f(commands,)g(equiv-)
+150 2003 y(alen)m(t)i(to)f(a)g(semicolon.)275 2136 y(If)c(a)h(command)f
(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
-Fs(&)p Ft(',)h(the)e(shell)h(executes)h(the)f(command)150
-2275 y(async)m(hronously)g(in)g(a)h(subshell.)39 b(This)28
-b(is)g(kno)m(wn)g(as)h(executing)h(the)e(command)h(in)f(the)g
-Fq(bac)m(kground)t Ft(.)150 2385 y(The)g(shell)h(do)s(es)f(not)h(w)m
+Ft(&)p Fu(',)h(the)e(shell)h(executes)h(the)f(command)150
+2245 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
+b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
+Fr(bac)m(kground)p Fu(.)150 2355 y(The)f(shell)h(do)s(es)f(not)h(w)m
(ait)g(for)f(the)h(command)f(to)i(\014nish,)d(and)h(the)h(return)e
-(status)i(is)g(0)g(\(true\).)40 b(When)150 2494 y(job)g(con)m(trol)h
+(status)i(is)g(0)g(\(true\).)40 b(When)150 2464 y(job)g(con)m(trol)h
(is)g(not)f(activ)m(e)i(\(see)f(Chapter)f(7)h([Job)f(Con)m(trol],)j
-(page)e(91\),)j(the)d(standard)e(input)g(for)150 2604
+(page)e(97\),)j(the)d(standard)e(input)g(for)150 2574
y(async)m(hronous)k(commands,)k(in)d(the)f(absence)i(of)f(an)m(y)g
(explicit)h(redirections,)j(is)43 b(redirected)h(from)150
-2714 y Fs(/dev/null)p Ft(.)275 2853 y(Commands)19 b(separated)j(b)m(y)f
-(a)g(`)p Fs(;)p Ft(')g(are)h(executed)g(sequen)m(tially;)k(the)21
-b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2963
+2684 y Ft(/dev/null)p Fu(.)275 2816 y(Commands)19 b(separated)j(b)m(y)f
+(a)g(`)p Ft(;)p Fu(')g(are)h(executed)g(sequen)m(tially;)k(the)21
+b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150 2926
y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i(is)f
(the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
-3103 y Fl(and)g Ft(and)h Fl(or)g Ft(lists)h(are)g(sequences)f(of)h(one)
+3059 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
-s(er-)150 3212 y(ators)e(`)p Fs(&&)p Ft(')f(and)g(`)p
-Fs(||)p Ft(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fl(and)30
-b Ft(and)f Fl(or)h Ft(lists)h(are)g(executed)g(with)f(left)h(asso)s
-(ciativit)m(y)-8 b(.)275 3352 y(An)30 b Fl(and)f Ft(list)i(has)f(the)h
-(form)390 3492 y Fi(command1)56 b Fs(&&)47 b Fi(command2)150
-3632 y Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
-Fq(command1)38 b Ft(returns)29 b(an)h(exit)h(status)g(of)g(zero.)275
-3772 y(An)f Fl(or)f Ft(list)i(has)f(the)h(form)390 3911
-y Fi(command1)56 b Fs(||)47 b Fi(command2)150 4051 y
-Fq(command2)38 b Ft(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
-Fq(command1)38 b Ft(returns)29 b(a)i(non-zero)g(exit)g(status.)275
-4191 y(The)h(return)g(status)i(of)f Fl(and)f Ft(and)h
-Fl(or)f Ft(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)150 4301 y(in)d(the)h(list.)150 4505
-y Fj(3.2.4)63 b(Comp)s(ound)42 b(Commands)150 4652 y
-Ft(Comp)s(ound)32 b(commands)j(are)g(the)g(shell)g(programming)f
-(constructs.)54 b(Eac)m(h)35 b(construct)g(b)s(egins)f(with)150
-4762 y(a)k(reserv)m(ed)f(w)m(ord)h(or)f(con)m(trol)i(op)s(erator)f(and)
-f(is)g(terminated)h(b)m(y)f(a)h(corresp)s(onding)f(reserv)m(ed)g(w)m
-(ord)150 4871 y(or)44 b(op)s(erator.)81 b(An)m(y)44 b(redirections)g
-(\(see)h(Section)g(3.6)g([Redirections],)j(page)d(27\))g(asso)s(ciated)
-g(with)150 4981 y(a)g(comp)s(ound)e(command)i(apply)f(to)h(all)h
-(commands)e(within)g(that)h(comp)s(ound)e(command)i(unless)150
-5091 y(explicitly)32 b(o)m(v)m(erridden.)275 5230 y(Bash)45
-b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e(commands,)j
-(and)44 b(mec)m(hanisms)i(to)g(group)150 5340 y(commands)30
-b(and)g(execute)i(them)e(as)g(a)h(unit.)p eop end
+s(er-)150 3168 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
+Ft(||)p Fu(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fm(and)30
+b Fu(and)f Fm(or)h Fu(lists)h(are)g(executed)g(with)f(left)h(asso)s
+(ciativit)m(y)-8 b(.)275 3301 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
+(form)390 3434 y Fj(command1)46 b Ft(&&)h Fj(command2)150
+3566 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fr(command1)38 b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero.)275
+3699 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390 3832
+y Fj(command1)46 b Ft(||)h Fj(command2)150 3965 y Fr(command2)38
+b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h Fr(command1)38
+b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275 4097
+y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h Fm(or)f
+Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f
+(executed)150 4207 y(in)d(the)h(list.)150 4403 y Fk(3.2.4)63
+b(Comp)s(ound)42 b(Commands)150 4550 y Fu(Comp)s(ound)32
+b(commands)j(are)g(the)g(shell)g(programming)f(constructs.)54
+b(Eac)m(h)35 b(construct)g(b)s(egins)f(with)150 4659
+y(a)k(reserv)m(ed)f(w)m(ord)h(or)f(con)m(trol)i(op)s(erator)f(and)f(is)
+g(terminated)h(b)m(y)f(a)h(corresp)s(onding)f(reserv)m(ed)g(w)m(ord)150
+4769 y(or)44 b(op)s(erator.)81 b(An)m(y)44 b(redirections)g(\(see)h
+(Section)g(3.6)g([Redirections],)j(page)d(31\))g(asso)s(ciated)g(with)
+150 4878 y(a)g(comp)s(ound)e(command)i(apply)f(to)h(all)h(commands)e
+(within)g(that)h(comp)s(ound)e(command)i(unless)150 4988
+y(explicitly)32 b(o)m(v)m(erridden.)275 5121 y(In)20
+b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)s(ound)f
+(command's)g(description)h(ma)m(y)g(b)s(e)f(separated)150
+5230 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
+(more)g(newlines,)g(and)f(ma)m(y)i(b)s(e)e(follo)m(w)m(ed)i(b)m(y)f(a)g
+(newline)150 5340 y(in)f(place)h(of)g(a)g(semicolon.)p
+eop end
%%Page: 10 16
-TeXDict begin 10 15 bop 150 -116 a Ft(10)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fj(3.2.4.1)63 b(Lo)s(oping)43
-b(Constructs)150 446 y Ft(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g
-(lo)s(oping)g(constructs.)275 580 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
-Fs(;)p Ft(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
-g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 690 y(replaced)c(with)f(one)h
-(or)f(more)g(newlines.)150 849 y Fs(until)240 b Ft(The)30
-b(syn)m(tax)h(of)f(the)h Fs(until)e Ft(command)h(is:)870
-983 y Fs(until)46 b Fi(test-commands)11 b Fs(;)44 b(do)j
-Fi(consequent-commands)11 b Fs(;)42 b(done)630 1117 y
-Ft(Execute)g Fq(consequen)m(t-commands)k Ft(as)41 b(long)h(as)f
-Fq(test-commands)46 b Ft(has)41 b(an)g(exit)h(status)630
-1227 y(whic)m(h)c(is)h(not)g(zero.)67 b(The)38 b(return)g(status)h(is)f
-(the)h(exit)h(status)f(of)g(the)g(last)g(command)630
-1336 y(executed)31 b(in)f Fq(consequen)m(t-commands)t
-Ft(,)h(or)g(zero)g(if)f(none)h(w)m(as)f(executed.)150
-1495 y Fs(while)240 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
-Fs(while)e Ft(command)h(is:)870 1630 y Fs(while)46 b
-Fi(test-commands)11 b Fs(;)44 b(do)j Fi(consequent-commands)11
-b Fs(;)42 b(done)630 1764 y Ft(Execute)g Fq(consequen)m(t-commands)k
-Ft(as)41 b(long)h(as)f Fq(test-commands)46 b Ft(has)41
-b(an)g(exit)h(status)630 1873 y(of)34 b(zero.)53 b(The)34
+TeXDict begin 10 15 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(10)275 299
+y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
+(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
+408 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
+609 y Fk(3.2.4.1)63 b(Lo)s(oping)43 b(Constructs)150
+756 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
+(constructs.)275 891 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
+Ft(;)p Fu(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
+g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 1001 y(replaced)c(with)f(one)h
+(or)f(more)g(newlines.)150 1162 y Ft(until)240 b Fu(The)30
+b(syn)m(tax)h(of)f(the)h Ft(until)e Fu(command)h(is:)870
+1297 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
+(consequent-commands)p Ft(;)c(done)630 1432 y Fu(Execute)f
+Fr(consequen)m(t-commands)k Fu(as)41 b(long)h(as)f Fr(test-commands)46
+b Fu(has)41 b(an)g(exit)h(status)630 1542 y(whic)m(h)c(is)h(not)g
+(zero.)67 b(The)38 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)g
+(the)g(last)g(command)630 1651 y(executed)31 b(in)f Fr(consequen)m
+(t-commands)p Fu(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)150
+1812 y Ft(while)240 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(while)e Fu(command)h(is:)870 1947 y Ft(while)46 b
+Fj(test-commands)p Ft(;)e(do)j Fj(consequent-commands)p
+Ft(;)c(done)630 2082 y Fu(Execute)f Fr(consequen)m(t-commands)k
+Fu(as)41 b(long)h(as)f Fr(test-commands)46 b Fu(has)41
+b(an)g(exit)h(status)630 2192 y(of)34 b(zero.)53 b(The)34
b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)h(in)630 1983 y Fq(consequen)m(t-commands)t
-Ft(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150
-2142 y Fs(for)336 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
-Fs(for)e Ft(command)i(is:)870 2276 y Fs(for)47 b Fi(name)57
-b Fs([)48 b([in)e([)p Fi(words)57 b Fs(...)o(])48 b(])f(;)h(])f(do)g
-Fi(commands)11 b Fs(;)45 b(done)630 2411 y Ft(Expand)31
-b Fq(w)m(ords)t Ft(,)i(and)e(execute)j Fq(commands)i
-Ft(once)d(for)f(eac)m(h)i(mem)m(b)s(er)e(in)g(the)g(resultan)m(t)630
-2520 y(list,)d(with)f Fq(name)33 b Ft(b)s(ound)26 b(to)j(the)f(curren)m
-(t)g(mem)m(b)s(er.)40 b(If)27 b(`)p Fs(in)j Fi(words)11
-b Ft(')27 b(is)h(not)g(presen)m(t,)h(the)630 2630 y Fs(for)g
-Ft(command)g(executes)i(the)e Fq(commands)k Ft(once)d(for)f(eac)m(h)i
-(p)s(ositional)f(parameter)g(that)630 2739 y(is)d(set,)h(as)f(if)g(`)p
-Fs(in)j("$@")p Ft(')c(had)g(b)s(een)g(sp)s(eci\014ed)g(\(see)i(Section)
-f(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)630 2849 y(page)c(18\).)39
-b(The)21 b(return)g(status)h(is)g(the)g(exit)h(status)f(of)g(the)g
-(last)g(command)g(that)g(executes.)630 2958 y(If)37 b(there)h(are)g(no)
-g(items)g(in)g(the)g(expansion)g(of)f Fq(w)m(ords)t Ft(,)j(no)d
-(commands)h(are)g(executed,)630 3068 y(and)30 b(the)g(return)g(status)g
-(is)h(zero.)630 3202 y(An)f(alternate)i(form)e(of)h(the)f
-Fs(for)g Ft(command)g(is)g(also)h(supp)s(orted:)870 3337
-y Fs(for)47 b(\(\()g Fi(expr1)57 b Fs(;)47 b Fi(expr2)57
-b Fs(;)48 b Fi(expr3)57 b Fs(\)\))47 b(;)g(do)g Fi(commands)57
-b Fs(;)47 b(done)630 3471 y Ft(First,)38 b(the)f(arithmetic)h
-(expression)e Fq(expr1)43 b Ft(is)36 b(ev)-5 b(aluated)38
-b(according)f(to)g(the)g(rules)f(de-)630 3580 y(scrib)s(ed)41
+(command)f(executed)h(in)630 2301 y Fr(consequen)m(t-commands)p
+Fu(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150
+2462 y Ft(for)336 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(for)e Fu(command)i(is:)870 2597 y Ft(for)47 b Fj(name)g
+Ft([)g([in)g([)p Fj(words)f Ft(...)o(])i(])f(;)h(])f(do)g
+Fj(commands)p Ft(;)e(done)630 2732 y Fu(Expand)31 b Fr(w)m(ords)p
+Fu(,)j(and)e(execute)i Fr(commands)i Fu(once)d(for)g(eac)m(h)h(mem)m(b)
+s(er)e(in)g(the)h(resultan)m(t)630 2841 y(list,)d(with)f
+Fr(name)34 b Fu(b)s(ound)27 b(to)i(the)h(curren)m(t)e(mem)m(b)s(er.)40
+b(If)28 b(`)p Ft(in)i Fj(words)p Fu(')e(is)h(not)g(presen)m(t,)h(the)
+630 2951 y Ft(for)f Fu(command)g(executes)i(the)e Fr(commands)k
+Fu(once)d(for)f(eac)m(h)i(p)s(ositional)f(parameter)g(that)630
+3060 y(is)d(set,)h(as)f(if)g(`)p Ft(in)j("$@")p Fu(')c(had)g(b)s(een)g
+(sp)s(eci\014ed)g(\(see)i(Section)f(3.4.2)i([Sp)s(ecial)e(P)m
+(arameters],)630 3170 y(page)c(20\).)39 b(The)21 b(return)g(status)h
+(is)g(the)g(exit)h(status)f(of)g(the)g(last)g(command)g(that)g
+(executes.)630 3280 y(If)i(there)h(are)h(no)e(items)i(in)e(the)h
+(expansion)g(of)g Fr(w)m(ords)p Fu(,)h(no)f(commands)f(are)h(executed,)
+j(and)630 3389 y(the)j(return)e(status)i(is)f(zero.)630
+3524 y(An)g(alternate)i(form)e(of)h(the)f Ft(for)g Fu(command)g(is)g
+(also)h(supp)s(orted:)870 3659 y Ft(for)47 b(\(\()g Fj(expr1)f
+Ft(;)i Fj(expr2)e Ft(;)i Fj(expr3)e Ft(\)\))h(;)h(do)f
+Fj(commands)e Ft(;)j(done)630 3794 y Fu(First,)38 b(the)f(arithmetic)h
+(expression)e Fr(expr1)43 b Fu(is)36 b(ev)-5 b(aluated)38
+b(according)f(to)g(the)g(rules)f(de-)630 3904 y(scrib)s(ed)41
b(b)s(elo)m(w)h(\(see)h(Section)g(6.5)g([Shell)g(Arithmetic],)j(page)d
-(80\).)77 b(The)42 b(arithmetic)630 3690 y(expression)33
-b Fq(expr2)41 b Ft(is)34 b(then)f(ev)-5 b(aluated)35
+(87\).)77 b(The)42 b(arithmetic)630 4014 y(expression)33
+b Fr(expr2)41 b Fu(is)34 b(then)f(ev)-5 b(aluated)35
b(rep)s(eatedly)f(un)m(til)g(it)g(ev)-5 b(aluates)35
-b(to)g(zero.)51 b(Eac)m(h)630 3800 y(time)23 b Fq(expr2)30
-b Ft(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h(v)-5 b(alue,)25
-b Fq(commands)h Ft(are)d(executed)g(and)g(the)g(arith-)630
-3909 y(metic)29 b(expression)f Fq(expr3)36 b Ft(is)28
+b(to)g(zero.)51 b(Eac)m(h)630 4123 y(time)23 b Fr(expr2)30
+b Fu(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h(v)-5 b(alue,)25
+b Fr(commands)h Fu(are)d(executed)g(and)g(the)g(arith-)630
+4233 y(metic)29 b(expression)f Fr(expr3)36 b Fu(is)28
b(ev)-5 b(aluated.)41 b(If)28 b(an)m(y)h(expression)f(is)g(omitted,)i
-(it)f(b)s(eha)m(v)m(es)g(as)630 4019 y(if)i(it)h(ev)-5
+(it)f(b)s(eha)m(v)m(es)g(as)630 4342 y(if)i(it)h(ev)-5
b(aluates)32 b(to)g(1.)44 b(The)30 b(return)g(v)-5 b(alue)32
b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630
-4128 y Fq(commands)j Ft(that)d(is)f(executed,)i(or)e(false)h(if)f(an)m
+4452 y Fr(commands)j Fu(that)d(is)f(executed,)i(or)e(false)h(if)f(an)m
(y)h(of)g(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275
-4287 y(The)26 b Fs(break)g Ft(and)h Fs(continue)e Ft(builtins)i(\(see)h
-(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(37\))g(ma)m(y)
-150 4397 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
-4596 y Fj(3.2.4.2)63 b(Conditional)42 b(Constructs)150
-4767 y Fs(if)384 b Ft(The)30 b(syn)m(tax)h(of)f(the)h
-Fs(if)f Ft(command)g(is:)870 4902 y Fs(if)47 b Fi(test-commands)11
-b Fs(;)44 b(then)965 5011 y Fi(consequent-commands)11
-b Fs(;)870 5121 y([elif)46 b Fi(more-test-commands)11
-b Fs(;)42 b(then)965 5230 y Fi(more-consequents)11 b
-Fs(;])870 5340 y([else)46 b Fi(alternate-consequents)11
-b Fs(;])p eop end
+4613 y(The)26 b Ft(break)g Fu(and)h Ft(continue)e Fu(builtins)i(\(see)h
+(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(41\))g(ma)m(y)
+150 4723 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
+4923 y Fk(3.2.4.2)63 b(Conditional)42 b(Constructs)150
+5095 y Ft(if)384 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(if)f Fu(command)g(is:)870 5230 y Ft(if)47 b Fj(test-commands)p
+Ft(;)d(then)965 5340 y Fj(consequent-commands)p Ft(;)p
+eop end
%%Page: 11 17
-TeXDict begin 11 16 bop 150 -116 a Ft(Chapter)30 b(3:)41
+TeXDict begin 11 16 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)870 299
-y Fs(fi)630 432 y Ft(The)53 b Fq(test-commands)58 b Ft(list)c(is)g
-(executed,)60 b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61
-b(the)630 542 y Fq(consequen)m(t-commands)44 b Ft(list)d(is)f
-(executed.)70 b(If)40 b Fq(test-commands)k Ft(returns)39
-b(a)h(non-zero)630 651 y(status,)45 b(eac)m(h)e Fs(elif)d
-Ft(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f
-(is)f(zero,)46 b(the)630 761 y(corresp)s(onding)37 b
-Fq(more-consequen)m(ts)42 b Ft(is)c(executed)g(and)f(the)h(command)g
-(completes.)63 b(If)630 870 y(`)p Fs(else)29 b Fi
-(alternate-consequents)11 b Ft(')23 b(is)30 b(presen)m(t,)f(and)g(the)g
-(\014nal)g(command)f(in)h(the)g(\014nal)630 980 y Fs(if)44
-b Ft(or)g Fs(elif)f Ft(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j
-(then)c Fq(alternate-consequen)m(ts)51 b Ft(is)630 1089
+y Ft([elif)46 b Fj(more-test-commands)p Ft(;)d(then)965
+408 y Fj(more-consequents)p Ft(;])870 518 y([else)j Fj
+(alternate-consequents)p Ft(;])870 628 y(fi)630 757 y
+Fu(The)53 b Fr(test-commands)58 b Fu(list)c(is)g(executed,)60
+b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61
+b(the)630 867 y Fr(consequen)m(t-commands)44 b Fu(list)d(is)f
+(executed.)70 b(If)40 b Fr(test-commands)k Fu(returns)39
+b(a)h(non-zero)630 976 y(status,)45 b(eac)m(h)e Ft(elif)d
+Fu(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f
+(is)f(zero,)46 b(the)630 1086 y(corresp)s(onding)37 b
+Fr(more-consequen)m(ts)42 b Fu(is)c(executed)g(and)f(the)h(command)g
+(completes.)63 b(If)630 1196 y(`)p Ft(else)29 b Fj
+(alternate-consequents)p Fu(')c(is)30 b(presen)m(t,)h(and)f(the)g
+(\014nal)g(command)g(in)g(the)g(\014nal)630 1305 y Ft(if)44
+b Fu(or)g Ft(elif)f Fu(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j
+(then)c Fr(alternate-consequen)m(ts)51 b Fu(is)630 1415
y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)
-g(the)g(last)g(command)g(executed,)630 1199 y(or)30 b(zero)i(if)e(no)g
-(condition)h(tested)g(true.)150 1356 y Fs(case)288 b
-Ft(The)30 b(syn)m(tax)h(of)f(the)h Fs(case)e Ft(command)h(is:)870
-1489 y Fs(case)47 b Fi(word)57 b Fs(in)47 b([)g([\(])g
-Fi(pattern)57 b Fs([|)47 b Fi(pattern)11 b Fs(]...)l(\))48
-b Fi(command-list)55 b Fs(;;]...)46 b(esac)630 1622 y(case)20
-b Ft(will)i(selectiv)m(ely)j(execute)e(the)e Fq(command-list)k
-Ft(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fq(pattern)630
-1731 y Ft(that)42 b(matc)m(hes)g Fq(w)m(ord)t Ft(.)71
-b(If)41 b(the)g(shell)g(option)g Fs(nocasematch)d Ft(\(see)k(the)f
-(description)g(of)630 1841 y Fs(shopt)34 b Ft(in)h(Section)h(4.3.2)h
-([The)e(Shopt)f(Builtin],)k(page)e(57\))g(is)g(enabled,)g(the)g(matc)m
-(h)g(is)630 1951 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g
-(case)h(of)f(alphab)s(etic)g(c)m(haracters.)44 b(The)30
-b(`)p Fs(|)p Ft(')h(is)g(used)630 2060 y(to)e(separate)g(m)m(ultiple)g
-(patterns,)g(and)e(the)i(`)p Fs(\))p Ft(')f(op)s(erator)g(terminates)h
-(a)g(pattern)f(list.)41 b(A)630 2170 y(list)31 b(of)g(patterns)f(and)g
-(an)g(asso)s(ciated)i(command-list)f(is)f(kno)m(wn)g(as)h(a)g
-Fq(clause)5 b Ft(.)630 2303 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g
-(terminated)h(with)e(`)p Fs(;;)p Ft(',)45 b(`)p Fs(;&)p
-Ft(',)f(or)d(`)p Fs(;;&)p Ft('.)73 b(The)41 b Fq(w)m(ord)j
-Ft(under-)630 2412 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g
-(expansion,)g(command)f(substitution,)h(arithmetic)630
-2522 y(expansion,)47 b(and)d(quote)g(remo)m(v)-5 b(al)45
-b(b)s(efore)f(matc)m(hing)h(is)f(attempted.)82 b(Eac)m(h)45
-b Fq(pattern)630 2632 y Ft(undergo)s(es)38 b(tilde)h(expansion,)i
-(parameter)e(expansion,)i(command)d(substitution,)j(and)630
-2741 y(arithmetic)32 b(expansion.)630 2874 y(There)e(ma)m(y)g(b)s(e)f
-(an)h(arbitrary)g(n)m(um)m(b)s(er)f(of)h Fs(case)f Ft(clauses,)i(eac)m
-(h)g(terminated)g(b)m(y)e(a)i(`)p Fs(;;)p Ft(',)630 2984
-y(`)p Fs(;&)p Ft(',)c(or)e(`)p Fs(;;&)p Ft('.)39 b(The)25
-b(\014rst)g(pattern)h(that)g(matc)m(hes)h(determines)e(the)h
-(command-list)g(that)630 3093 y(is)k(executed.)630 3226
-y(Here)35 b(is)g(an)g(example)h(using)e Fs(case)g Ft(in)g(a)h(script)g
-(that)h(could)f(b)s(e)f(used)g(to)h(describ)s(e)g(one)630
-3336 y(in)m(teresting)d(feature)f(of)f(an)g(animal:)870
-3469 y Fs(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f(animal:)f(")
-870 3579 y(read)h(ANIMAL)870 3688 y(echo)g(-n)g("The)f($ANIMAL)g(has)h
-(")870 3798 y(case)g($ANIMAL)e(in)965 3907 y(horse)i(|)g(dog)g(|)h
-(cat\))e(echo)h(-n)g("four";;)965 4017 y(man)g(|)h(kangaroo)d(\))j
-(echo)e(-n)i("two";;)965 4127 y(*\))g(echo)e(-n)h("an)g(unknown)f
-(number)g(of";;)870 4236 y(esac)870 4346 y(echo)h(")g(legs.")630
-4502 y Ft(If)25 b(the)h(`)p Fs(;;)p Ft(')g(op)s(erator)g(is)g(used,)g
-(no)g(subsequen)m(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)f
-(\014rst)630 4612 y(pattern)g(matc)m(h.)40 b(Using)26
-b(`)p Fs(;&)p Ft(')f(in)h(place)g(of)g(`)p Fs(;;)p Ft(')g(causes)g
-(execution)h(to)f(con)m(tin)m(ue)h(with)f(the)630 4722
-y Fq(command-list)39 b Ft(asso)s(ciated)f(with)e(the)g(next)g(clause,)j
-(if)d(an)m(y)-8 b(.)59 b(Using)37 b(`)p Fs(;;&)p Ft(')f(in)g(place)h
-(of)630 4831 y(`)p Fs(;;)p Ft(')30 b(causes)g(the)g(shell)g(to)g(test)h
-(the)f(patterns)g(in)f(the)h(next)g(clause,)h(if)e(an)m(y)-8
-b(,)31 b(and)f(execute)630 4941 y(an)m(y)h(asso)s(ciated)h
-Fq(command-list)h Ft(on)d(a)h(successful)f(matc)m(h.)630
-5074 y(The)c(return)f(status)h(is)g(zero)h(if)f(no)g
-Fq(pattern)g Ft(is)g(matc)m(hed.)40 b(Otherwise,)27 b(the)g(return)e
-(status)630 5183 y(is)30 b(the)h(exit)g(status)g(of)f(the)h
-Fq(command-list)i Ft(executed.)150 5340 y Fs(select)p
+g(the)g(last)g(command)g(executed,)630 1524 y(or)30 b(zero)i(if)e(no)g
+(condition)h(tested)g(true.)150 1674 y Ft(case)288 b
+Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(case)e Fu(command)h(is:)870
+1803 y Ft(case)47 b Fj(word)f Ft(in)h([)h([\(])f Fj(pattern)f
+Ft([|)h Fj(pattern)p Ft(]...)m(\))g Fj(command-list)e
+Ft(;;]...)h(esac)630 1933 y(case)20 b Fu(will)i(selectiv)m(ely)j
+(execute)e(the)e Fr(command-list)k Fu(corresp)s(onding)20
+b(to)i(the)g(\014rst)f Fr(pattern)630 2042 y Fu(that)42
+b(matc)m(hes)g Fr(w)m(ord)p Fu(.)73 b(If)41 b(the)g(shell)g(option)h
+Ft(nocasematch)c Fu(\(see)k(the)g(description)f(of)630
+2152 y Ft(shopt)34 b Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)f
+(Builtin],)k(page)e(62\))g(is)g(enabled,)g(the)g(matc)m(h)g(is)630
+2262 y(p)s(erformed)29 b(without)i(regard)g(to)g(the)g(case)h(of)f
+(alphab)s(etic)g(c)m(haracters.)44 b(The)30 b(`)p Ft(|)p
+Fu(')h(is)g(used)630 2371 y(to)e(separate)g(m)m(ultiple)g(patterns,)g
+(and)e(the)i(`)p Ft(\))p Fu(')f(op)s(erator)g(terminates)h(a)g(pattern)
+f(list.)41 b(A)630 2481 y(list)31 b(of)g(patterns)f(and)g(an)g(asso)s
+(ciated)i(command-list)f(is)f(kno)m(wn)g(as)h(a)g Fr(clause)p
+Fu(.)630 2610 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h
+(with)e(`)p Ft(;;)p Fu(',)45 b(`)p Ft(;&)p Fu(',)f(or)d(`)p
+Ft(;;&)p Fu('.)73 b(The)41 b Fr(w)m(ord)j Fu(under-)630
+2720 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g
+(command)f(substitution,)h(arithmetic)630 2829 y(expansion,)47
+b(and)d(quote)g(remo)m(v)-5 b(al)45 b(b)s(efore)f(matc)m(hing)h(is)f
+(attempted.)82 b(Eac)m(h)45 b Fr(pattern)630 2939 y Fu(undergo)s(es)38
+b(tilde)h(expansion,)i(parameter)e(expansion,)i(command)d
+(substitution,)j(and)630 3049 y(arithmetic)32 b(expansion.)630
+3178 y(There)e(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m(b)s(er)f(of)h
+Ft(case)f Fu(clauses,)i(eac)m(h)g(terminated)g(b)m(y)e(a)i(`)p
+Ft(;;)p Fu(',)630 3288 y(`)p Ft(;&)p Fu(',)c(or)e(`)p
+Ft(;;&)p Fu('.)39 b(The)25 b(\014rst)g(pattern)h(that)g(matc)m(hes)h
+(determines)e(the)h(command-list)g(that)630 3397 y(is)35
+b(executed.)55 b(It's)35 b(a)g(common)g(idiom)g(to)g(use)g(`)p
+Ft(*)p Fu(')g(as)g(the)g(\014nal)f(pattern)h(to)h(de\014ne)e(the)630
+3507 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m(a)m(ys)h
+(matc)m(h.)630 3636 y(Here)j(is)g(an)g(example)h(using)e
+Ft(case)g Fu(in)g(a)h(script)g(that)h(could)f(b)s(e)f(used)g(to)h
+(describ)s(e)g(one)630 3746 y(in)m(teresting)d(feature)f(of)f(an)g
+(animal:)870 3875 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
+(animal:)f(")870 3985 y(read)h(ANIMAL)870 4095 y(echo)g(-n)g("The)f
+($ANIMAL)g(has)h(")870 4204 y(case)g($ANIMAL)e(in)965
+4314 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)965
+4423 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
+4533 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
+4643 y(esac)870 4752 y(echo)h(")g(legs.")630 4902 y Fu(If)25
+b(the)h(`)p Ft(;;)p Fu(')g(op)s(erator)g(is)g(used,)g(no)g(subsequen)m
+(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)f(\014rst)630
+5011 y(pattern)g(matc)m(h.)40 b(Using)26 b(`)p Ft(;&)p
+Fu(')f(in)h(place)g(of)g(`)p Ft(;;)p Fu(')g(causes)g(execution)h(to)f
+(con)m(tin)m(ue)h(with)f(the)630 5121 y Fr(command-list)39
+b Fu(asso)s(ciated)f(with)e(the)g(next)g(clause,)j(if)d(an)m(y)-8
+b(.)59 b(Using)37 b(`)p Ft(;;&)p Fu(')f(in)g(place)h(of)630
+5230 y(`)p Ft(;;)p Fu(')30 b(causes)g(the)g(shell)g(to)g(test)h(the)f
+(patterns)g(in)f(the)h(next)g(clause,)h(if)e(an)m(y)-8
+b(,)31 b(and)f(execute)630 5340 y(an)m(y)h(asso)s(ciated)h
+Fr(command-list)h Fu(on)d(a)h(successful)f(matc)m(h.)p
eop end
%%Page: 12 18
-TeXDict begin 12 17 bop 150 -116 a Ft(12)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(The)i Fs(select)f Ft(construct)i
-(allo)m(ws)h(the)f(easy)g(generation)h(of)e(men)m(us.)50
-b(It)34 b(has)f(almost)i(the)630 408 y(same)c(syn)m(tax)g(as)f(the)h
-Fs(for)e Ft(command:)870 544 y Fs(select)46 b Fi(name)57
-b Fs([in)47 b Fi(words)57 b Fs(...)o(];)47 b(do)h Fi(commands)11
-b Fs(;)44 b(done)630 679 y Ft(The)d(list)i(of)e(w)m(ords)h(follo)m
-(wing)h Fs(in)e Ft(is)h(expanded,)i(generating)f(a)f(list)g(of)g
-(items.)75 b(The)630 789 y(set)41 b(of)f(expanded)f(w)m(ords)g(is)i
-(prin)m(ted)e(on)h(the)g(standard)f(error)h(output)g(stream,)j(eac)m(h)
-630 898 y(preceded)30 b(b)m(y)g(a)h(n)m(um)m(b)s(er.)40
-b(If)29 b(the)i(`)p Fs(in)f Fi(words)11 b Ft(')29 b(is)h(omitted,)i
-(the)e(p)s(ositional)i(parameters)630 1008 y(are)22 b(prin)m(ted,)h(as)
-f(if)f(`)p Fs(in)30 b("$@")p Ft(')21 b(had)g(b)s(een)f(sp)s(eci\014ed.)
-37 b(The)21 b Fs(PS3)g Ft(prompt)g(is)g(then)g(displa)m(y)m(ed)630
-1118 y(and)38 b(a)h(line)g(is)f(read)h(from)f(the)h(standard)e(input.)
-65 b(If)38 b(the)h(line)g(consists)g(of)f(a)h(n)m(um)m(b)s(er)630
-1227 y(corresp)s(onding)33 b(to)i(one)f(of)g(the)g(displa)m(y)m(ed)h(w)
-m(ords,)f(then)g(the)g(v)-5 b(alue)34 b(of)h Fq(name)k
-Ft(is)34 b(set)g(to)630 1337 y(that)g(w)m(ord.)49 b(If)32
-b(the)i(line)f(is)h(empt)m(y)-8 b(,)35 b(the)e(w)m(ords)g(and)f(prompt)
-h(are)g(displa)m(y)m(ed)h(again.)50 b(If)630 1446 y Fs(EOF)23
-b Ft(is)g(read,)j(the)d Fs(select)f Ft(command)i(completes.)40
-b(An)m(y)23 b(other)h(v)-5 b(alue)24 b(read)g(causes)g
-Fq(name)630 1556 y Ft(to)31 b(b)s(e)f(set)h(to)g(n)m(ull.)41
-b(The)29 b(line)i(read)f(is)h(sa)m(v)m(ed)g(in)f(the)h(v)-5
-b(ariable)31 b Fs(REPLY)p Ft(.)630 1691 y(The)42 b Fq(commands)j
-Ft(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h
-Fs(break)d Ft(command)i(is)630 1801 y(executed,)32 b(at)f(whic)m(h)f(p)
-s(oin)m(t)g(the)h Fs(select)d Ft(command)i(completes.)630
-1936 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
+TeXDict begin 12 17 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)630 299
+y(The)26 b(return)f(status)h(is)g(zero)h(if)f(no)g Fr(pattern)g
+Fu(is)g(matc)m(hed.)40 b(Otherwise,)27 b(the)g(return)e(status)630
+408 y(is)30 b(the)h(exit)g(status)g(of)f(the)h Fr(command-list)i
+Fu(executed.)150 564 y Ft(select)630 697 y Fu(The)g Ft(select)f
+Fu(construct)i(allo)m(ws)h(the)f(easy)g(generation)h(of)e(men)m(us.)50
+b(It)34 b(has)f(almost)i(the)630 806 y(same)c(syn)m(tax)g(as)f(the)h
+Ft(for)e Fu(command:)870 939 y Ft(select)46 b Fj(name)h
+Ft([in)g Fj(words)f Ft(...)o(];)h(do)h Fj(commands)p
+Ft(;)d(done)630 1072 y Fu(The)25 b(list)h(of)f(w)m(ords)g(follo)m(wing)
+i Ft(in)d Fu(is)h(expanded,)h(generating)h(a)e(list)h(of)g(items.)39
+b(The)25 b(set)h(of)630 1181 y(expanded)i(w)m(ords)h(is)g(prin)m(ted)f
+(on)h(the)g(standard)f(error)h(output)f(stream,)i(eac)m(h)g(preceded)
+630 1291 y(b)m(y)21 b(a)g(n)m(um)m(b)s(er.)37 b(If)20
+b(the)i(`)p Ft(in)30 b Fj(words)p Fu(')20 b(is)h(omitted,)j(the)d(p)s
+(ositional)h(parameters)g(are)f(prin)m(ted,)630 1401
+y(as)28 b(if)f(`)p Ft(in)j("$@")p Fu(')d(had)f(b)s(een)h(sp)s
+(eci\014ed.)39 b(The)27 b Ft(PS3)g Fu(prompt)f(is)i(then)f(displa)m(y)m
+(ed)h(and)f(a)h(line)630 1510 y(is)h(read)f(from)h(the)f(standard)g
+(input.)39 b(If)29 b(the)g(line)g(consists)g(of)g(a)g(n)m(um)m(b)s(er)e
+(corresp)s(onding)630 1620 y(to)36 b(one)f(of)h(the)f(displa)m(y)m(ed)h
+(w)m(ords,)g(then)f(the)g(v)-5 b(alue)36 b(of)f Fr(name)40
+b Fu(is)35 b(set)h(to)g(that)g(w)m(ord.)54 b(If)630 1729
+y(the)37 b(line)h(is)f(empt)m(y)-8 b(,)39 b(the)e(w)m(ords)g(and)f
+(prompt)g(are)i(displa)m(y)m(ed)f(again.)62 b(If)37 b
+Ft(EOF)f Fu(is)h(read,)630 1839 y(the)c Ft(select)e Fu(command)i
+(completes.)50 b(An)m(y)33 b(other)g(v)-5 b(alue)33 b(read)g(causes)g
+Fr(name)38 b Fu(to)c(b)s(e)e(set)630 1948 y(to)f(n)m(ull.)41
+b(The)30 b(line)g(read)h(is)f(sa)m(v)m(ed)h(in)g(the)f(v)-5
+b(ariable)31 b Ft(REPLY)p Fu(.)630 2081 y(The)42 b Fr(commands)j
+Fu(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h
+Ft(break)d Fu(command)i(is)630 2191 y(executed,)32 b(at)f(whic)m(h)f(p)
+s(oin)m(t)g(the)h Ft(select)d Fu(command)i(completes.)630
+2323 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h(curren)m(t)630
-2046 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
-(index)f(of)i(the)g(\014le)f(selected.)870 2181 y Fs(select)46
-b(fname)g(in)i(*;)870 2291 y(do)870 2400 y(echo)f(you)g(picked)f
-($fname)g(\\\($REPLY\\\))870 2510 y(break;)870 2620 y(done)150
-2781 y(\(\(...)o(\)\))870 2916 y(\(\()h Fi(expression)56
-b Fs(\)\))630 3051 y Ft(The)33 b(arithmetic)i Fq(expression)f
-Ft(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s
-(ed)g(b)s(elo)m(w)630 3161 y(\(see)j(Section)f(6.5)h([Shell)f
-(Arithmetic],)i(page)f(80\).)55 b(If)34 b(the)h(v)-5
-b(alue)35 b(of)g(the)g(expression)g(is)630 3271 y(non-zero,)27
+2433 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
+(index)f(of)i(the)g(\014le)f(selected.)870 2566 y Ft(select)46
+b(fname)g(in)i(*;)870 2675 y(do)870 2785 y(echo)f(you)g(picked)f
+($fname)g(\\\($REPLY\\\))870 2894 y(break;)870 3004 y(done)150
+3160 y(\(\(...)o(\)\))870 3292 y(\(\()h Fj(expression)e
+Ft(\)\))630 3425 y Fu(The)33 b(arithmetic)i Fr(expression)f
+Fu(is)f(ev)-5 b(aluated)35 b(according)g(to)f(the)g(rules)f(describ)s
+(ed)g(b)s(elo)m(w)630 3535 y(\(see)j(Section)f(6.5)h([Shell)f
+(Arithmetic],)i(page)f(87\).)55 b(If)34 b(the)h(v)-5
+b(alue)35 b(of)g(the)g(expression)g(is)630 3644 y(non-zero,)27
b(the)f(return)e(status)i(is)g(0;)h(otherwise)f(the)g(return)e(status)i
-(is)g(1.)39 b(This)25 b(is)g(exactly)630 3380 y(equiv)-5
-b(alen)m(t)32 b(to)870 3516 y Fs(let)47 b(")p Fi(expression)11
-b Fs(")630 3651 y Ft(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i
-(page)f(43,)i(for)c(a)i(full)f(description)g(of)g(the)h
-Fs(let)e Ft(builtin.)150 3812 y Fs([[...)o(]])870 3948
-y([[)47 b Fi(expression)56 b Fs(]])630 4083 y Ft(Return)25
-b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5
-b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
-4193 y(sion)j Fq(expression)p Ft(.)41 b(Expressions)29
-b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
-(w)h(in)630 4302 y(Section)36 b(6.4)h([Bash)f(Conditional)g
-(Expressions],)h(page)f(78.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
-(\014le-)630 4412 y(name)24 b(expansion)h(are)g(not)f(p)s(erformed)f
-(on)h(the)h(w)m(ords)f(b)s(et)m(w)m(een)h(the)g(`)p Fs([[)p
-Ft(')f(and)g(`)p Fs(]])p Ft(';)i(tilde)630 4521 y(expansion,)31
-b(parameter)g(and)f(v)-5 b(ariable)31 b(expansion,)g(arithmetic)g
-(expansion,)g(command)630 4631 y(substitution,)40 b(pro)s(cess)f
-(substitution,)h(and)e(quote)h(remo)m(v)-5 b(al)40 b(are)f(p)s
-(erformed.)63 b(Condi-)630 4740 y(tional)32 b(op)s(erators)e(suc)m(h)g
-(as)h(`)p Fs(-f)p Ft(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e
-(recognized)j(as)f(primaries.)630 4876 y(When)g(used)f(with)g(`)p
-Fs([[)p Ft(',)i(the)f(`)p Fs(<)p Ft(')g(and)f(`)p Fs(>)p
-Ft(')h(op)s(erators)g(sort)h(lexicographically)h(using)e(the)630
-4985 y(curren)m(t)f(lo)s(cale.)630 5121 y(When)22 b(the)h(`)p
-Fs(==)p Ft(')f(and)g(`)p Fs(!=)p Ft(')g(op)s(erators)h(are)g(used,)g
-(the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)630
-5230 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h(according)
-g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
-5340 y(Section)37 b(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)j(page)c(26.)
-59 b(If)36 b(the)g(shell)g(option)h Fs(nocasematch)p
-eop end
+(is)g(1.)39 b(This)25 b(is)g(exactly)630 3754 y(equiv)-5
+b(alen)m(t)32 b(to)870 3886 y Ft(let)47 b(")p Fj(expression)p
+Ft(")630 4019 y Fu(See)25 b(Section)h(4.2)h([Bash)e(Builtins],)i(page)f
+(48,)i(for)c(a)i(full)f(description)g(of)g(the)h Ft(let)e
+Fu(builtin.)150 4175 y Ft([[...)o(]])870 4308 y([[)47
+b Fj(expression)e Ft(]])630 4440 y Fu(Return)25 b(a)h(status)f(of)h(0)g
+(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5 b(aluation)27
+b(of)e(the)h(conditional)h(expres-)630 4550 y(sion)j
+Fr(expression)p Fu(.)41 b(Expressions)29 b(are)i(comp)s(osed)f(of)g
+(the)h(primaries)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
+4659 y(Section)36 b(6.4)h([Bash)f(Conditional)g(Expressions],)h(page)f
+(85.)57 b(W)-8 b(ord)36 b(splitting)h(and)e(\014le-)630
+4769 y(name)d(expansion)g(are)h(not)g(p)s(erformed)d(on)j(the)f(w)m
+(ords)g(b)s(et)m(w)m(een)h(the)f Ft([[)g Fu(and)f Ft(]])p
+Fu(;)i(tilde)630 4879 y(expansion,)e(parameter)g(and)f(v)-5
+b(ariable)31 b(expansion,)g(arithmetic)g(expansion,)g(command)630
+4988 y(substitution,)40 b(pro)s(cess)f(substitution,)h(and)e(quote)h
+(remo)m(v)-5 b(al)40 b(are)f(p)s(erformed.)63 b(Condi-)630
+5098 y(tional)32 b(op)s(erators)e(suc)m(h)g(as)h(`)p
+Ft(-f)p Fu(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e(recognized)j
+(as)f(primaries.)630 5230 y(When)k(used)f(with)h Ft([[)p
+Fu(,)h(the)f(`)p Ft(<)p Fu(')g(and)g(`)p Ft(>)p Fu(')g(op)s(erators)g
+(sort)g(lexicographically)j(using)d(the)630 5340 y(curren)m(t)30
+b(lo)s(cale.)p eop end
%%Page: 13 19
-TeXDict begin 13 18 bop 150 -116 a Ft(Chapter)30 b(3:)41
+TeXDict begin 13 18 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)630 299
-y(\(see)42 b(the)f(description)g(of)h Fs(shopt)d Ft(in)i(Section)h
-(4.3.2)h([The)e(Shopt)f(Builtin],)45 b(page)d(57\))630
-408 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)g(without)g
-(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 518
-y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28 b(is)g(0)g(if)g
-(the)g(string)g(matc)m(hes)h(\(`)p Fs(==)p Ft('\))f(or)g(do)s(es)f(not)
-h(matc)m(h)630 628 y(\(`)p Fs(!=)p Ft('\)the)33 b(pattern,)g(and)f(1)g
-(otherwise.)47 b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s
-(e)f(quoted)g(to)630 737 y(force)f(it)g(to)g(b)s(e)f(matc)m(hed)h(as)f
-(a)h(string.)630 867 y(An)i(additional)i(binary)e(op)s(erator,)i(`)p
-Fs(=~)p Ft(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
-(precedence)h(as)630 976 y(`)p Fs(==)p Ft(')29 b(and)f(`)p
-Fs(!=)p Ft('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
+y(When)22 b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p Ft(!=)p
+Fu(')g(op)s(erators)h(are)g(used,)g(the)g(string)f(to)i(the)e(righ)m(t)
+h(of)g(the)g(op)s(erator)630 408 y(is)31 b(considered)g(a)h(pattern)f
+(and)g(matc)m(hed)h(according)g(to)g(the)g(rules)f(describ)s(ed)f(b)s
+(elo)m(w)h(in)630 518 y(Section)d(3.5.8.1)h([P)m(attern)f(Matc)m
+(hing],)h(page)f(30,)g(as)f(if)g(the)g Ft(extglob)d Fu(shell)j(option)g
+(w)m(ere)630 628 y(enabled.)46 b(The)31 b(`)p Ft(=)p
+Fu(')h(op)s(erator)h(is)f(iden)m(tical)h(to)g(`)p Ft(==)p
+Fu('.)46 b(If)31 b(the)h(shell)h(option)f Ft(nocasematch)630
+737 y Fu(\(see)42 b(the)f(description)g(of)h Ft(shopt)d
+Fu(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
+b(page)d(62\))630 847 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
+(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
+956 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
+b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(\(`)p Ft(==)p
+Fu('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 1066 y(\(`)p
+Ft(!=)p Fu('\)the)33 b(pattern,)g(and)f(1)g(otherwise.)47
+b(An)m(y)32 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to)
+630 1176 y(force)f(the)g(quoted)f(p)s(ortion)g(to)h(b)s(e)f(matc)m(hed)
+h(as)g(a)f(string.)630 1316 y(An)j(additional)i(binary)e(op)s(erator,)i
+(`)p Ft(=~)p Fu(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
+(precedence)h(as)630 1426 y(`)p Ft(==)p Fu(')29 b(and)f(`)p
+Ft(!=)p Fu('.)40 b(When)29 b(it)g(is)g(used,)f(the)h(string)g(to)h(the)
e(righ)m(t)i(of)f(the)g(op)s(erator)g(is)g(consid-)630
-1086 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
-(hed)i(accordingly)g(\(as)f(in)g Fk(r)-5 b(e)g(gex)11
-b Ft(3\)\).)630 1196 y(The)29 b(return)f(v)-5 b(alue)30
+1536 y(ered)34 b(an)g(extended)g(regular)g(expression)g(and)f(matc)m
+(hed)i(accordingly)g(\(as)f(in)g Fl(r)-5 b(e)g(gex)11
+b Fu(3\)\).)630 1645 y(The)29 b(return)f(v)-5 b(alue)30
b(is)g(0)g(if)f(the)h(string)g(matc)m(hes)g(the)g(pattern,)g(and)f(1)h
-(otherwise.)41 b(If)29 b(the)630 1305 y(regular)e(expression)g(is)h
+(otherwise.)41 b(If)29 b(the)630 1755 y(regular)e(expression)g(is)h
(syn)m(tactically)i(incorrect,)f(the)e(conditional)i(expression's)e
-(return)630 1415 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
-b(the)h(shell)f(option)h Fs(nocasematch)d Ft(\(see)j(the)g(description)
-g(of)f Fs(shopt)f Ft(in)630 1524 y(Section)32 b(4.3.2)g([The)f(Shopt)f
-(Builtin],)i(page)g(57\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
-(erformed)630 1634 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
+(return)630 1864 y(v)-5 b(alue)40 b(is)g(2.)68 b(If)39
+b(the)h(shell)f(option)h Ft(nocasematch)d Fu(\(see)j(the)g(description)
+g(of)f Ft(shopt)f Fu(in)630 1974 y(Section)32 b(4.3.2)g([The)f(Shopt)f
+(Builtin],)i(page)g(62\))g(is)f(enabled,)g(the)g(matc)m(h)h(is)e(p)s
+(erformed)630 2084 y(without)36 b(regard)g(to)h(the)f(case)h(of)f
(alphab)s(etic)h(c)m(haracters.)59 b(An)m(y)36 b(part)g(of)h(the)f
-(pattern)630 1744 y(ma)m(y)g(b)s(e)g(quoted)g(to)g(force)g(it)h(to)f(b)
-s(e)f(matc)m(hed)i(as)f(a)g(string.)57 b(Substrings)34
-b(matc)m(hed)j(b)m(y)630 1853 y(paren)m(thesized)44 b(sub)s
-(expressions)e(within)i(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed)
-h(in)f(the)630 1963 y(arra)m(y)38 b(v)-5 b(ariable)38
-b Fs(BASH_REMATCH)p Ft(.)59 b(The)36 b(elemen)m(t)j(of)f
-Fs(BASH_REMATCH)c Ft(with)j(index)g(0)h(is)630 2072 y(the)c(p)s(ortion)
-f(of)h(the)f(string)h(matc)m(hing)g(the)g(en)m(tire)h(regular)e
-(expression.)50 b(The)33 b(elemen)m(t)630 2182 y(of)39
-b Fs(BASH_REMATCH)c Ft(with)j(index)g Fq(n)f Ft(is)i(the)f(p)s(ortion)g
-(of)h(the)f(string)h(matc)m(hing)g(the)g Fq(n)p Ft(th)630
-2292 y(paren)m(thesized)31 b(sub)s(expression.)630 2421
-y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
-(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-2531 y(order)30 b(of)g(precedence:)630 2681 y Fs(\()g
-Fi(expression)38 b Fs(\))1110 2790 y Ft(Returns)30 b(the)h(v)-5
-b(alue)31 b(of)g Fq(expression)p Ft(.)42 b(This)30 b(ma)m(y)i(b)s(e)e
-(used)g(to)i(o)m(v)m(erride)g(the)1110 2900 y(normal)e(precedence)h(of)
-g(op)s(erators.)630 3049 y Fs(!)f Fi(expression)1110
-3159 y Ft(T)-8 b(rue)30 b(if)g Fq(expression)g Ft(is)h(false.)630
-3309 y Fi(expression1)38 b Fs(&&)30 b Fi(expression2)1110
-3418 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g Fq(expression1)38
-b Ft(and)29 b Fq(expression2)38 b Ft(are)31 b(true.)630
-3568 y Fi(expression1)38 b Fs(||)30 b Fi(expression2)1110
-3678 y Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expression1)38
-b Ft(or)30 b Fq(expression2)38 b Ft(is)30 b(true.)630
-3827 y(The)25 b Fs(&&)g Ft(and)g Fs(||)f Ft(op)s(erators)i(do)f(not)h
-(ev)-5 b(aluate)27 b Fq(expression2)33 b Ft(if)26 b(the)f(v)-5
-b(alue)26 b(of)g Fq(expression1)630 3937 y Ft(is)k(su\016cien)m(t)h(to)
-g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)g
-(conditional)h(expression.)150 4126 y Fj(3.2.4.3)63 b(Grouping)43
-b(Commands)150 4273 y Ft(Bash)30 b(pro)m(vides)g(t)m(w)m(o)h(w)m(a)m
-(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e(executed)h
-(as)g(a)h(unit.)40 b(When)29 b(com-)150 4383 y(mands)h(are)i(group)s
-(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i(to)g(the)f(en)m(tire)h
-(command)g(list.)44 b(F)-8 b(or)32 b(example,)150 4493
-y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g(the)h(list)g(ma)m(y)g
-(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)150 4642
-y Fs(\(\))870 4772 y(\()47 b Fi(list)58 b Fs(\))630 4902
-y Ft(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i(paren)m
-(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
-5011 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En)m(vironmen)m(t],)g(page)f(32\),)630 5121
-y(and)d(eac)m(h)i(of)e(the)h(commands)f(in)g Fq(list)j
-Ft(to)f(b)s(e)e(executed)h(in)f(that)h(subshell.)39 b(Since)28
-b(the)f Fq(list)630 5230 y Ft(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
-b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
-(after)e(the)630 5340 y(subshell)g(completes.)p eop end
+(pattern)630 2193 y(ma)m(y)31 b(b)s(e)f(quoted)h(to)g(force)g(the)g
+(quoted)g(p)s(ortion)f(to)h(b)s(e)f(matc)m(hed)h(as)g(a)g(string.)41
+b(Brac)m(k)m(et)630 2303 y(expressions)27 b(in)f(regular)i(expressions)
+e(m)m(ust)h(b)s(e)g(treated)h(carefully)-8 b(,)29 b(since)e(normal)g
+(quot-)630 2412 y(ing)38 b(c)m(haracters)h(lose)f(their)g(meanings)f(b)
+s(et)m(w)m(een)h(brac)m(k)m(ets.)64 b(If)37 b(the)h(pattern)f(is)h
+(stored)630 2522 y(in)33 b(a)i(shell)f(v)-5 b(ariable,)35
+b(quoting)f(the)g(v)-5 b(ariable)35 b(expansion)e(forces)i(the)f(en)m
+(tire)g(pattern)g(to)630 2632 y(b)s(e)h(matc)m(hed)i(as)f(a)g(string.)
+56 b(Substrings)34 b(matc)m(hed)j(b)m(y)f(paren)m(thesized)g(sub)s
+(expressions)630 2741 y(within)k(the)g(regular)g(expression)g(are)g(sa)
+m(v)m(ed)i(in)d(the)i(arra)m(y)f(v)-5 b(ariable)41 b
+Ft(BASH_REMATCH)p Fu(.)630 2851 y(The)30 b(elemen)m(t)i(of)e
+Ft(BASH_REMATCH)d Fu(with)j(index)g(0)h(is)g(the)f(p)s(ortion)g(of)h
+(the)f(string)h(matc)m(h-)630 2960 y(ing)j(the)g(en)m(tire)g(regular)g
+(expression.)50 b(The)34 b(elemen)m(t)h(of)f Ft(BASH_REMATCH)c
+Fu(with)j(index)g Fr(n)630 3070 y Fu(is)d(the)h(p)s(ortion)f(of)g(the)h
+(string)f(matc)m(hing)i(the)e Fr(n)p Fu(th)g(paren)m(thesized)h(sub)s
+(expression.)630 3211 y(F)-8 b(or)28 b(example,)h(the)e(follo)m(wing)i
+(will)e(matc)m(h)h(a)g(line)f(\(stored)h(in)e(the)i(shell)f(v)-5
+b(ariable)28 b Fr(line)5 b Fu(\))28 b(if)630 3320 y(there)22
+b(is)g(a)h(sequence)f(of)h(c)m(haracters)g(in)f(the)g(v)-5
+b(alue)23 b(consisting)g(of)f(an)m(y)h(n)m(um)m(b)s(er,)f(including)630
+3430 y(zero,)31 b(of)g(space)g(c)m(haracters,)h(zero)f(or)g(one)f
+(instances)h(of)g(`)p Ft(a)p Fu(',)f(then)g(a)h(`)p Ft(b)p
+Fu(':)870 3571 y Ft([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c(]])630
+3712 y Fu(That)24 b(means)g(v)-5 b(alues)24 b(lik)m(e)h(`)p
+Ft(aab)p Fu(')e(and)h(`)30 b Ft(aaaaaab)p Fu(')22 b(will)i(matc)m(h,)j
+(as)d(will)g(a)g(line)g(con)m(taining)630 3821 y(a)31
+b(`)p Ft(b)p Fu(')f(an)m(ywhere)h(in)f(its)g(v)-5 b(alue.)630
+3962 y(Storing)31 b(the)g(regular)g(expression)f(in)h(a)g(shell)g(v)-5
+b(ariable)31 b(is)g(often)g(a)g(useful)f(w)m(a)m(y)i(to)f(a)m(v)m(oid)
+630 4072 y(problems)f(with)g(quoting)h(c)m(haracters)i(that)e(are)g(sp)
+s(ecial)g(to)h(the)f(shell.)41 b(It)31 b(is)g(sometimes)630
+4181 y(di\016cult)24 b(to)h(sp)s(ecify)f(a)h(regular)g(expression)f
+(literally)i(without)f(using)e(quotes,)k(or)d(to)h(k)m(eep)630
+4291 y(trac)m(k)33 b(of)g(the)f(quoting)g(used)g(b)m(y)g(regular)g
+(expressions)g(while)g(pa)m(ying)h(atten)m(tion)h(to)f(the)630
+4401 y(shell's)25 b(quote)g(remo)m(v)-5 b(al.)40 b(Using)25
+b(a)g(shell)g(v)-5 b(ariable)26 b(to)f(store)g(the)g(pattern)g
+(decreases)g(these)630 4510 y(problems.)40 b(F)-8 b(or)31
+b(example,)g(the)g(follo)m(wing)h(is)e(equiv)-5 b(alen)m(t)32
+b(to)f(the)g(ab)s(o)m(v)m(e:)870 4651 y Ft(pattern='[[:space:]]*\(a\))o
+(?b')870 4761 y([[)47 b($line)g(=~)g($pattern)e(]])630
+4902 y Fu(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)m
+(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
+(gram-)630 5011 y(mar,)g(it)g(has)g(to)g(b)s(e)f(quoted)h(to)g(remo)m
+(v)m(e)h(its)f(sp)s(ecial)g(meaning.)40 b(This)27 b(means)g(that)h(in)g
+(the)630 5121 y(pattern)e(`)p Ft(xxx.txt)p Fu(',)g(the)h(`)p
+Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)e(c)m(haracter)i(in)e(the)h(string)f
+(\(its)h(usual)f(regular)630 5230 y(expression)g(meaning\),)i(but)e(in)
+g(the)h(pattern)f(`)p Ft("xxx.txt")p Fu(')f(it)i(can)g(only)f(matc)m(h)
+i(a)e(literal)630 5340 y(`)p Ft(.)p Fu('.)56 b(Shell)35
+b(programmers)f(should)h(tak)m(e)i(sp)s(ecial)e(care)i(with)e(bac)m
+(kslashes,)i(since)f(bac)m(k-)p eop end
%%Page: 14 20
-TeXDict begin 14 19 bop 150 -116 a Ft(14)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs({})870 436 y({)47
-b Fi(list)11 b Fs(;)46 b(})630 574 y Ft(Placing)30 b(a)g(list)g(of)g
-(commands)f(b)s(et)m(w)m(een)h(curly)f(braces)g(causes)h(the)f(list)h
-(to)g(b)s(e)f(executed)630 683 y(in)d(the)h(curren)m(t)g(shell)f(con)m
-(text.)42 b(No)27 b(subshell)f(is)g(created.)41 b(The)26
-b(semicolon)i(\(or)f(newline\))630 793 y(follo)m(wing)32
-b Fq(list)h Ft(is)d(required.)275 961 y(In)44 b(addition)h(to)h(the)f
-(creation)i(of)e(a)g(subshell,)j(there)e(is)f(a)g(subtle)g
-(di\013erence)h(b)s(et)m(w)m(een)f(these)150 1071 y(t)m(w)m(o)c
-(constructs)e(due)g(to)g(historical)i(reasons.)67 b(The)39
-b(braces)g(are)h Fs(reserved)28 b(words)p Ft(,)40 b(so)g(they)f(m)m
-(ust)150 1180 y(b)s(e)d(separated)h(from)f(the)g Fq(list)j
-Ft(b)m(y)e Fs(blank)p Ft(s)e(or)h(other)h(shell)f(metac)m(haracters.)62
-b(The)36 b(paren)m(theses)h(are)150 1290 y Fs(operators)p
-Ft(,)23 b(and)h(are)g(recognized)i(as)e(separate)i(tok)m(ens)f(b)m(y)f
-(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f(separated)150
-1400 y(from)30 b(the)g Fq(list)j Ft(b)m(y)e(whitespace.)275
-1540 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g
-(is)f(the)h(exit)g(status)f(of)h Fq(list)r Ft(.)150 1745
-y Fj(3.2.5)63 b(Copro)s(cesses)150 1892 y Ft(A)37 b Fs(coprocess)c
-Ft(is)k(a)g(shell)f(command)h(preceded)f(b)m(y)g(the)h
-Fs(coproc)d Ft(reserv)m(ed)j(w)m(ord.)59 b(A)36 b(copro)s(cess)h(is)150
-2002 y(executed)g(async)m(hronously)g(in)f(a)h(subshell,)g(as)g(if)g
-(the)f(command)h(had)f(b)s(een)f(terminated)i(with)g(the)150
-2111 y(`)p Fs(&)p Ft(')d(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
-(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m(een)h(the)f
-(executing)h(shell)f(and)f(the)150 2221 y(copro)s(cess.)275
-2361 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
-2502 y Fs(coproc)46 b([)p Fi(NAME)11 b Fs(])46 b Fi(command)56
-b Fs([)p Fi(redirections)11 b Fs(])150 2642 y Ft(This)41
-b(creates)i(a)g(copro)s(cess)f(named)f Fq(NAME)5 b Ft(.)43
-b(If)f Fq(NAME)47 b Ft(is)42 b(not)g(supplied,)i(the)e(default)g(name)g
-(is)150 2752 y Fq(COPR)m(OC)8 b Ft(.)22 b Fq(NAME)29
-b Ft(m)m(ust)23 b(not)g(b)s(e)g(supplied)e(if)i Fq(command)k
-Ft(is)c(a)g(simple)g(command)g(\(see)h(Section)g(3.2.1)150
-2861 y([Simple)39 b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g
-(in)m(terpreted)h(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
-2971 y(command.)275 3111 y(When)23 b(the)h(copro)s(c)g(is)g(executed,)i
-(the)e(shell)g(creates)h(an)e(arra)m(y)i(v)-5 b(ariable)24
-b(\(see)h(Section)f(6.7)h([Arra)m(ys],)150 3221 y(page)43
-b(82\))g(named)f Fq(NAME)48 b Ft(in)42 b(the)g(con)m(text)i(of)e(the)h
-(executing)g(shell.)76 b(The)42 b(standard)f(output)h(of)150
-3330 y Fq(command)d Ft(is)d(connected)h(via)g(a)f(pip)s(e)g(to)g(a)h
-(\014le)f(descriptor)g(in)f(the)i(executing)g(shell,)h(and)d(that)i
-(\014le)150 3440 y(descriptor)25 b(is)f(assigned)h(to)h
-Fq(NAME)5 b Ft([0].)40 b(The)25 b(standard)e(input)h(of)h
-Fq(command)j Ft(is)d(connected)g(via)h(a)f(pip)s(e)150
-3550 y(to)33 b(a)f(\014le)g(descriptor)g(in)f(the)i(executing)g(shell,)
-f(and)g(that)g(\014le)g(descriptor)g(is)g(assigned)g(to)h
-Fq(NAME)5 b Ft([1].)150 3659 y(This)31 b(pip)s(e)g(is)h(established)g
-(b)s(efore)g(an)m(y)g(redirections)g(sp)s(eci\014ed)g(b)m(y)f(the)i
-(command)e(\(see)i(Section)g(3.6)150 3769 y([Redirections],)25
-b(page)e(27\).)39 b(The)21 b(\014le)h(descriptors)g(can)g(b)s(e)f
+TeXDict begin 14 19 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)630 299
+y(slashes)27 b(are)g(used)f(b)s(oth)g(b)m(y)h(the)f(shell)h(and)f
+(regular)h(expressions)g(to)g(remo)m(v)m(e)h(the)f(sp)s(ecial)630
+408 y(meaning)h(from)f(the)h(follo)m(wing)i(c)m(haracter.)41
+b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f(of)g(commands)g(are)630
+518 y Fl(not)40 b Fu(equiv)-5 b(alen)m(t:)870 655 y Ft(pattern='\\.')
+870 874 y([[)47 b(.)h(=~)f($pattern)e(]])870 984 y([[)i(.)h(=~)f(\\.)g
+(]])870 1203 y([[)g(.)h(=~)f("$pattern")e(]])870 1313
+y([[)i(.)h(=~)f('\\.')f(]])630 1450 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h
+(matc)m(hes)g(will)f(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f
+(not,)h(b)s(ecause)f(in)g(the)630 1559 y(second)39 b(t)m(w)m(o)i(the)e
+(bac)m(kslash)h(will)f(b)s(e)g(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e
+(matc)m(hed.)68 b(In)39 b(the)630 1669 y(\014rst)31 b(t)m(w)m(o)h
+(examples,)h(the)e(bac)m(kslash)h(remo)m(v)m(es)h(the)f(sp)s(ecial)g
+(meaning)f(from)g(`)p Ft(.)p Fu(',)h(so)g(the)630 1779
+y(literal)f(`)p Ft(.)p Fu(')e(matc)m(hes.)42 b(If)28
+b(the)i(string)f(in)g(the)g(\014rst)g(examples)g(w)m(ere)h(an)m(ything)
+g(other)f(than)630 1888 y(`)p Ft(.)p Fu(',)g(sa)m(y)g(`)p
+Ft(a)p Fu(',)g(the)f(pattern)g(w)m(ould)g(not)h(matc)m(h,)h(b)s(ecause)
+e(the)g(quoted)g(`)p Ft(.)p Fu(')h(in)e(the)i(pattern)630
+1998 y(loses)i(its)g(sp)s(ecial)g(meaning)f(of)h(matc)m(hing)g(an)m(y)g
+(single)g(c)m(haracter.)630 2135 y(Expressions)23 b(ma)m(y)h(b)s(e)e
+(com)m(bined)i(using)f(the)h(follo)m(wing)h(op)s(erators,)g(listed)f
+(in)f(decreasing)630 2244 y(order)30 b(of)g(precedence:)630
+2409 y Ft(\()g Fj(expression)e Ft(\))1110 2519 y Fu(Returns)i(the)h(v)
+-5 b(alue)31 b(of)g Fr(expression)p Fu(.)42 b(This)30
+b(ma)m(y)i(b)s(e)e(used)g(to)i(o)m(v)m(erride)g(the)1110
+2628 y(normal)e(precedence)h(of)g(op)s(erators.)630 2793
+y Ft(!)f Fj(expression)1110 2902 y Fu(T)-8 b(rue)30 b(if)g
+Fr(expression)g Fu(is)h(false.)630 3067 y Fj(expression1)c
+Ft(&&)j Fj(expression2)1110 3177 y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g
+Fr(expression1)38 b Fu(and)29 b Fr(expression2)38 b Fu(are)31
+b(true.)630 3341 y Fj(expression1)c Ft(||)j Fj(expression2)1110
+3451 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expression1)38
+b Fu(or)30 b Fr(expression2)38 b Fu(is)30 b(true.)630
+3615 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
+(ev)-5 b(aluate)27 b Fr(expression2)32 b Fu(if)25 b(the)g(v)-5
+b(alue)25 b(of)g Fr(expression1)630 3725 y Fu(is)30 b(su\016cien)m(t)h
+(to)g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)
+g(conditional)h(expression.)150 3929 y Fk(3.2.4.3)63
+b(Grouping)43 b(Commands)150 4076 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m
+(o)h(w)m(a)m(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e
+(executed)h(as)g(a)h(unit.)40 b(When)29 b(com-)150 4186
+y(mands)h(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i
+(to)g(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32
+b(example,)150 4296 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
+(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)
+150 4463 y Ft(\(\))870 4600 y(\()47 b Fj(list)g Ft(\))630
+4737 y Fu(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i
+(paren)m(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
+4847 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
+(Execution)i(En)m(vironmen)m(t],)g(page)f(36\),)630 4956
+y(and)d(eac)m(h)h(of)g(the)f(commands)g(in)g Fr(list)j
+Fu(to)f(b)s(e)d(executed)j(in)e(that)h(subshell.)38 b(Since)28
+b(the)f Fr(list)630 5066 y Fu(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
+b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
+(after)e(the)630 5175 y(subshell)g(completes.)150 5340
+y Ft({})p eop end
+%%Page: 15 21
+TeXDict begin 15 20 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)870 299
+y Ft({)47 b Fj(list)p Ft(;)g(})630 434 y Fu(Placing)30
+b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f(braces)g
+(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630 544
+y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42 b(No)27
+b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f(newline\))
+630 653 y(follo)m(wing)32 b Fr(list)h Fu(is)d(required.)275
+815 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
+(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
+925 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
+b(The)39 b(braces)g(are)h Ft(reserved)28 b(words)p Fu(,)40
+b(so)g(they)f(m)m(ust)150 1034 y(b)s(e)d(separated)h(from)f(the)g
+Fr(list)j Fu(b)m(y)e Ft(blank)p Fu(s)e(or)h(other)h(shell)f(metac)m
+(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 1144
+y Ft(operators)p Fu(,)23 b(and)h(are)g(recognized)i(as)e(separate)i
+(tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f
+(separated)150 1254 y(from)30 b(the)g Fr(list)j Fu(b)m(y)e(whitespace.)
+275 1390 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
+(constructs)g(is)f(the)h(exit)g(status)f(of)h Fr(list)p
+Fu(.)150 1591 y Fk(3.2.5)63 b(Copro)s(cesses)150 1738
+y Fu(A)37 b Ft(coprocess)c Fu(is)k(a)g(shell)f(command)h(preceded)f(b)m
+(y)g(the)h Ft(coproc)d Fu(reserv)m(ed)j(w)m(ord.)59 b(A)36
+b(copro)s(cess)h(is)150 1847 y(executed)g(async)m(hronously)g(in)f(a)h
+(subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)i
+(with)g(the)150 1957 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g
+(with)f(a)g(t)m(w)m(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m
+(een)h(the)f(executing)h(shell)f(and)f(the)150 2066 y(copro)s(cess.)275
+2203 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
+2339 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
+Ft([)p Fj(redirections)p Ft(])150 2475 y Fu(This)39 b(creates)j(a)e
+(copro)s(cess)h(named)f Fr(NAME)p Fu(.)70 b(If)40 b Fr(NAME)46
+b Fu(is)40 b(not)g(supplied,)i(the)e(default)h(name)f(is)150
+2584 y Fr(COPR)m(OC)p Fu(.)d Fr(NAME)28 b Fu(m)m(ust)23
+b(not)g(b)s(e)e(supplied)h(if)g Fr(command)k Fu(is)d(a)g(simple)f
+(command)g(\(see)i(Section)f(3.2.1)150 2694 y([Simple)39
+b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g(in)m(terpreted)h
+(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
+2804 y(command.)275 2940 y(When)j(the)i(copro)s(cess)f(is)g(executed,)
+48 b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5
+b(ariable)44 b(\(see)g(Section)g(6.7)150 3049 y([Arra)m(ys],)32
+b(page)g(89\))h(named)e Ft(NAME)f Fu(in)h(the)h(con)m(text)h(of)e(the)h
+(executing)g(shell.)44 b(The)31 b(standard)f(output)150
+3159 y(of)g Fr(command)j Fu(is)d(connected)g(via)g(a)g(pip)s(e)f(to)i
+(a)f(\014le)g(descriptor)f(in)g(the)h(executing)h(shell,)f(and)g(that)g
+(\014le)150 3269 y(descriptor)i(is)f(assigned)h(to)g
+Ft(NAME)p Fu([0].)45 b(The)31 b(standard)g(input)f(of)i
+Fr(command)j Fu(is)d(connected)h(via)f(a)g(pip)s(e)150
+3378 y(to)39 b(a)g(\014le)f(descriptor)g(in)g(the)g(executing)i(shell,)
+g(and)e(that)h(\014le)f(descriptor)g(is)g(assigned)h(to)g
+Ft(NAME)p Fu([1].)150 3488 y(This)31 b(pip)s(e)g(is)h(established)g(b)s
+(efore)g(an)m(y)g(redirections)g(sp)s(eci\014ed)g(b)m(y)f(the)i
+(command)e(\(see)i(Section)g(3.6)150 3597 y([Redirections],)25
+b(page)e(31\).)39 b(The)21 b(\014le)h(descriptors)g(can)g(b)s(e)f
(utilized)i(as)f(argumen)m(ts)h(to)f(shell)g(commands)150
-3878 y(and)30 b(redirections)h(using)f(standard)f(w)m(ord)h
-(expansions.)275 4019 y(The)d(pro)s(cess)h(ID)h(of)f(the)h(shell)f(spa)
-m(wned)g(to)h(execute)h(the)e(copro)s(cess)h(is)f(a)m(v)-5
-b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 4128
-y(the)d(v)-5 b(ariable)26 b Fq(NAME)p 931 4128 28 4 v
-46 w Ft(PID.)g(The)f Fs(wait)g Ft(builtin)g(command)g(ma)m(y)h(b)s(e)f
-(used)g(to)i(w)m(ait)f(for)g(the)g(copro)s(cess)150 4238
-y(to)31 b(terminate.)275 4378 y(The)e(return)h(status)g(of)h(a)g(copro)
-s(cess)f(is)h(the)f(exit)i(status)e(of)h Fq(command)t
-Ft(.)150 4583 y Fj(3.2.6)63 b(GNU)41 b(P)m(arallel)150
-4730 y Ft(GNU)36 b(P)m(arallel,)k(as)c(its)g(name)g(suggests,)i(can)e
-(b)s(e)f(used)g(to)h(build)f(and)g(run)g(commands)g(in)h(parallel.)150
-4840 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g
+3707 y(and)33 b(redirections)g(using)g(standard)f(w)m(ord)h
+(expansions.)49 b(The)33 b(\014le)g(descriptors)g(are)g(not)h(a)m(v)-5
+b(ailable)35 b(in)150 3817 y(subshells.)275 3953 y(The)27
+b(pro)s(cess)h(ID)h(of)f(the)h(shell)f(spa)m(wned)g(to)h(execute)h(the)
+e(copro)s(cess)h(is)f(a)m(v)-5 b(ailable)31 b(as)d(the)h(v)-5
+b(alue)29 b(of)150 4062 y(the)k(v)-5 b(ariable)33 b Ft(NAME)p
+850 4062 28 4 v 39 w Fu(PID.)g(The)f Ft(wait)f Fu(builtin)h(command)g
+(ma)m(y)h(b)s(e)f(used)g(to)h(w)m(ait)h(for)e(the)h(copro)s(cess)150
+4172 y(to)e(terminate.)275 4308 y(Since)20 b(the)g(copro)s(cess)h(is)g
+(created)g(as)g(an)f(async)m(hronous)g(command,)i(the)f
+Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150 4418 y(returns)29
+b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h(copro)s(cess)g(is)f
+(the)h(exit)g(status)g(of)f Fr(command)p Fu(.)150 4619
+y Fk(3.2.6)63 b(GNU)41 b(P)m(arallel)150 4765 y Fu(There)30
+b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g(parallel)h(that)h(are)e
+(not)h(built)g(in)m(to)g(Bash.)41 b(GNU)31 b(P)m(arallel)i(is)150
+4875 y(a)e(to)s(ol)g(to)g(do)f(just)g(that.)275 5011
+y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j(can)d(b)s(e)g
+(used)g(to)h(build)f(and)g(run)f(commands)h(in)h(parallel.)150
+5121 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g
(di\013eren)m(t)h(argumen)m(ts,)j(whether)39 b(they)i(are)g
-(\014lenames,)150 4950 y(usernames,)30 b(hostnames,)h(or)f(lines)h
-(read)f(from)g(\014les.)275 5090 y(F)-8 b(or)33 b(a)g(complete)h
-(description,)g(refer)e(to)i(the)f(GNU)g(P)m(arallel)i(do)s(cumen)m
-(tation.)48 b(A)33 b(few)f(examples)150 5200 y(should)d(pro)m(vide)i(a)
-g(brief)e(in)m(tro)s(duction)i(to)g(its)g(use.)275 5340
-y(F)-8 b(or)31 b(example,)g(it)g(is)f(easy)h(to)g(pre\014x)f(eac)m(h)h
-(line)g(in)f(a)h(text)g(\014le)g(with)f(a)g(sp)s(eci\014ed)g(string:)p
-eop end
-%%Page: 15 21
-TeXDict begin 15 20 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)390 299
-y Fs(cat)47 b(file)g(|)g(parallel)f(-k)h(echo)f(prefix_string)150
-432 y Ft(The)30 b(`)p Fs(-k)p Ft(')g(option)h(is)f(required)g(to)h
-(preserv)m(e)g(the)f(lines')h(order.)275 565 y(Similarly)-8
-b(,)31 b(y)m(ou)g(can)f(app)s(end)f(a)i(sp)s(eci\014ed)e(string)i(to)g
-(eac)m(h)g(line)g(in)f(a)h(text)g(\014le:)390 697 y Fs(cat)47
-b(file)g(|)g(parallel)f(-k)h(echo)f({})i(append_string)275
-830 y Ft(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h
-(\014les)f(from)f(the)h(curren)m(t)f(directory)h(when)f(the)h(n)m(um)m
-(b)s(er)e(of)i(\014les)150 940 y(is)c(to)s(o)i(large)f(to)g(pro)s(cess)
-f(with)g(one)h Fs(mv)f Ft(in)m(v)m(o)s(cation:)390 1073
-y Fs(ls)47 b(|)h(parallel)d(mv)i({})h(destdir)275 1205
-y Ft(As)35 b(y)m(ou)h(can)f(see,)j(the)d Fs({})g Ft(is)g(replaced)h
-(with)f(eac)m(h)i(line)f(read)f(from)g(standard)f(input.)55
-b(This)35 b(will)150 1315 y(run)f(as)h(man)m(y)g Fs(mv)g
-Ft(commands)g(as)g(there)h(are)f(\014les)g(in)g(the)h(curren)m(t)f
-(directory)-8 b(.)56 b(Y)-8 b(ou)35 b(can)h(em)m(ulate)h(a)150
-1425 y(parallel)31 b Fs(xargs)e Ft(b)m(y)i(adding)f(the)g(`)p
-Fs(-X)p Ft(')g(option:)390 1557 y Fs(ls)47 b(|)h(parallel)d(-X)i(mv)h
-({})f(destdir)275 1690 y Ft(GNU)31 b(P)m(arallel)i(can)e(replace)h
-(certain)g(common)g(idioms)f(that)g(op)s(erate)h(on)f(lines)g(read)g
-(from)f(a)i(\014le)150 1800 y(\(in)e(this)h(case,)g(\014lenames\):)390
-1933 y Fs(for)47 b(x)g(in)h($\(cat)e(list\);)g(do)390
-2042 y(do-something1)e($x)j(config-$x)390 2152 y(do-something2)d(<)k
-($x)390 2262 y(done)f(|)g(process-output)150 2394 y Ft(with)30
-b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g(of)g(lam)m(b)s
-(das:)390 2527 y Fs(cat)47 b(list)g(|)g(parallel)f("do-something1)d({})
-48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)g(process-output)275
-2660 y Ft(P)m(arallel)31 b(pro)m(vides)e(a)h(built-in)g(mec)m(hanism)g
-(to)g(remo)m(v)m(e)h(\014lename)e(extensions,)i(whic)m(h)e(lends)g
-(itself)150 2770 y(to)i(batc)m(h)g(\014le)g(transformations)f(or)g
-(renaming:)390 2902 y Fs(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h
-({})g(|)g(bzip2)g(>{.}.bz2)e(&&)j(rm)f({}")150 3035 y
-Ft(This)28 b(will)i(recompress)e(all)i(\014les)f(in)g(the)g(curren)m(t)
-g(directory)g(with)g(names)g(ending)f(in)h(.gz)h(using)f(bzip2,)150
-3145 y(running)g(one)h(job)g(p)s(er)g(CPU)g(\(-j)p Fs(+)p
-Ft(0\))h(in)f(parallel.)275 3278 y(If)24 b(a)i(command)f(generates)h
-(output,)g(y)m(ou)g(ma)m(y)f(w)m(an)m(t)h(to)g(preserv)m(e)g(the)f
-(input)f(order)h(in)g(the)g(output.)150 3387 y(F)-8 b(or)31
-b(instance,)g(the)g(follo)m(wing)h(command)390 3520 y
-Fs({)47 b(echo)g(foss.org.my)e(;)i(echo)g(debian.org;)e(echo)h
-(freenetproject.org;)d(})k(|)h(parallel)d(traceroute)150
-3653 y Ft(will)28 b(displa)m(y)g(as)f(output)g(the)h(traceroute)h(in)m
-(v)m(o)s(cation)h(that)e(\014nishes)e(\014rst.)39 b(Using)28
-b(the)g(`)p Fs(-k)p Ft(')f(option,)i(as)150 3763 y(w)m(e)i(sa)m(w)g(ab)
-s(o)m(v)m(e)390 3895 y Fs({)47 b(echo)g(foss.org.my)e(;)i(echo)g
-(debian.org;)e(echo)h(freenetproject.org;)d(})k(|)h(parallel)d(-k)i
-(traceroute)150 4028 y Ft(will)31 b(ensure)e(that)i(the)g(output)f(of)g
-Fs(traceroute)e(foss.org.my)f Ft(is)k(displa)m(y)m(ed)g(\014rst.)150
-4257 y Fr(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 4417
-y Ft(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e
-(commands)g(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for)
-150 4526 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e)
-h(a)g Fs(")p Ft(regular)p Fs(")f Ft(command.)54 b(When)35
-b(the)h(name)f(of)g(a)h(shell)150 4636 y(function)j(is)g(used)f(as)h(a)
-h(simple)f(command)g(name,)i(the)e(list)h(of)f(commands)g(asso)s
-(ciated)i(with)d(that)150 4746 y(function)25 b(name)h(is)g(executed.)40
-b(Shell)25 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g
-(shell)g(con)m(text;)j(no)c(new)150 4855 y(pro)s(cess)30
-b(is)g(created)i(to)f(in)m(terpret)g(them.)275 4988 y(F)-8
-b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390
-5121 y Fi(name)57 b Fs(\(\))47 b Fi(compound-command)54
-b Fs([)48 b Fi(redirections)55 b Fs(])390 5230 y(or)p
-eop end
+(\014lenames,)150 5230 y(usernames,)27 b(hostnames,)h(or)e(lines)h
+(read)f(from)h(\014les.)39 b(GNU)27 b(P)m(arallel)i(pro)m(vides)d
+(shorthand)g(references)150 5340 y(to)38 b(man)m(y)g(of)g(the)g(most)g
+(common)g(op)s(erations)g(\(input)f(lines,)j(v)-5 b(arious)38
+b(p)s(ortions)f(of)h(the)g(input)e(line,)p eop end
%%Page: 16 22
-TeXDict begin 16 21 bop 150 -116 a Ft(16)2572 b(Bash)31
-b(Reference)g(Man)m(ual)390 299 y Fs(function)46 b Fi(name)57
-b Fs([\(\)])46 b Fi(compound-command)54 b Fs([)48 b Fi(redirections)55
-b Fs(])275 430 y Ft(This)31 b(de\014nes)h(a)g(shell)h(function)f(named)
-g Fq(name)5 b Ft(.)47 b(The)32 b(reserv)m(ed)h(w)m(ord)f
-Fs(function)e Ft(is)i(optional.)48 b(If)150 540 y(the)39
-b Fs(function)f Ft(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e
-(paren)m(theses)h(are)f(optional.)69 b(The)39 b Fq(b)s(o)s(dy)45
-b Ft(of)40 b(the)150 650 y(function)h(is)h(the)g(comp)s(ound)e(command)
-h Fq(comp)s(ound-command)j Ft(\(see)e(Section)h(3.2.4)g([Comp)s(ound)
-150 759 y(Commands],)33 b(page)g(9\).)48 b(That)33 b(command)g(is)f
-(usually)h(a)g Fq(list)i Ft(enclosed)e(b)s(et)m(w)m(een)h
-Fs({)e Ft(and)g Fs(})p Ft(,)h(but)f(ma)m(y)150 869 y(b)s(e)27
-b(an)m(y)h(comp)s(ound)e(command)h(listed)h(ab)s(o)m(v)m(e.)41
-b Fq(comp)s(ound-command)30 b Ft(is)e(executed)g(whenev)m(er)g
-Fq(name)150 978 y Ft(is)37 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)g(a)
-h(command.)61 b(An)m(y)37 b(redirections)h(\(see)g(Section)g(3.6)g
-([Redirections],)150 1088 y(page)31 b(27\))h(asso)s(ciated)g(with)e
-(the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i(the)g(function)g
-(is)h(executed.)275 1219 y(A)41 b(function)f(de\014nition)h(ma)m(y)g(b)
-s(e)g(deleted)g(using)g(the)g(`)p Fs(-f)p Ft(')g(option)g(to)h(the)f
-Fs(unset)e Ft(builtin)i(\(see)150 1329 y(Section)31 b(4.1)h([Bourne)e
-(Shell)g(Builtins],)h(page)h(37\).)275 1461 y(The)26
-b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
-(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
-1570 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
-b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
-1680 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
-i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 1811 y(Note)22 b(that)f(for)f
-(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
-(curly)f(braces)h(that)g(surround)150 1921 y(the)38 b(b)s(o)s(dy)d(of)j
-(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
-(dy)f(b)m(y)h Fs(blank)p Ft(s)f(or)h(newlines.)62 b(This)150
-2030 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
-(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
-(are)150 2140 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e
-(whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41
-b(Also,)28 b(when)150 2250 y(using)i(the)g(braces,)h(the)g
-Fq(list)i Ft(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)
-e(`)p Fs(&)p Ft(',)h(or)g(a)f(newline.)275 2381 y(When)i(a)i(function)f
-(is)g(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)
-g(the)h(p)s(ositional)g(pa-)150 2491 y(rameters)42 b(during)e(its)i
+TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)150 299
+y(di\013eren)m(t)35 b(w)m(a)m(ys)h(to)f(sp)s(ecify)f(the)h(input)f
+(source,)i(and)e(so)h(on\).)54 b(P)m(arallel)36 b(can)f(replace)h
+Ft(xargs)d Fu(or)i(feed)150 408 y(commands)30 b(from)g(its)h(input)e
+(sources)h(to)i(sev)m(eral)f(di\013eren)m(t)g(instances)g(of)g(Bash.)
+275 553 y(F)-8 b(or)33 b(a)g(complete)h(description,)g(refer)e(to)i
+(the)f(GNU)g(P)m(arallel)i(do)s(cumen)m(tation.)48 b(A)33
+b(few)f(examples)150 663 y(should)d(pro)m(vide)i(a)g(brief)e(in)m(tro)s
+(duction)i(to)g(its)g(use.)275 807 y(F)-8 b(or)37 b(example,)i(it)e(is)
+f(easy)h(to)g(replace)h Ft(xargs)d Fu(to)i(gzip)g(all)g(h)m(tml)g
+(\014les)f(in)h(the)f(curren)m(t)g(directory)150 917
+y(and)30 b(its)h(sub)s(directories:)390 1061 y Ft(find)47
+b(.)g(-type)f(f)i(-name)e('*.html')g(-print)g(|)h(parallel)f(gzip)150
+1205 y Fu(If)30 b(y)m(ou)h(need)f(to)h(protect)h(sp)s(ecial)f(c)m
+(haracters)g(suc)m(h)g(as)f(newlines)h(in)f(\014le)g(names,)h(use)f
+(\014nd's)f Ft(-print0)150 1315 y Fu(option)i(and)f(parallel's)h
+Ft(-0)f Fu(option.)275 1460 y(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j
+(to)e(mo)m(v)m(e)h(\014les)f(from)f(the)h(curren)m(t)f(directory)h
+(when)f(the)h(n)m(um)m(b)s(er)e(of)i(\014les)150 1569
+y(is)c(to)s(o)i(large)f(to)g(pro)s(cess)f(with)g(one)h
+Ft(mv)f Fu(in)m(v)m(o)s(cation:)390 1714 y Ft(ls)47 b(|)h(parallel)d
+(mv)i({})h(destdir)275 1858 y Fu(As)28 b(y)m(ou)h(can)g(see,)g(the)g
+Fi({})g Fu(is)g(replaced)g(with)f(eac)m(h)i(line)f(read)f(from)g
+(standard)g(input.)39 b(While)29 b(using)150 1968 y Ft(ls)g
+Fu(will)h(w)m(ork)g(in)f(most)h(instances,)h(it)f(is)g(not)g
+(su\016cien)m(t)g(to)h(deal)f(with)f(all)i(\014lenames.)40
+b(If)30 b(y)m(ou)g(need)f(to)150 2077 y(accommo)s(date)j(sp)s(ecial)f
+(c)m(haracters)h(in)e(\014lenames,)h(y)m(ou)f(can)h(use)390
+2222 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f(-name)f('.*')h(-print0)f(|)h
+(parallel)f(-0)h(mv)g({})g(destdir)150 2366 y Fu(as)31
+b(alluded)f(to)h(ab)s(o)m(v)m(e.)275 2511 y(This)e(will)i(run)e(as)h
+(man)m(y)h Ft(mv)e Fu(commands)h(as)h(there)f(are)h(\014les)f(in)h(the)
+f(curren)m(t)g(directory)-8 b(.)42 b(Y)-8 b(ou)31 b(can)150
+2620 y(em)m(ulate)h(a)f(parallel)g Ft(xargs)e Fu(b)m(y)h(adding)g(the)h
+Ft(-X)f Fu(option:)390 2765 y Ft(find)47 b(.)g(-depth)f(1)i(\\!)f
+(-name)f('.*')h(-print0)f(|)h(parallel)f(-0)h(-X)g(mv)g({})g(destdir)
+275 2909 y Fu(GNU)31 b(P)m(arallel)i(can)e(replace)h(certain)g(common)g
+(idioms)f(that)g(op)s(erate)h(on)f(lines)g(read)g(from)f(a)i(\014le)150
+3019 y(\(in)e(this)h(case,)g(\014lenames)g(listed)g(one)f(p)s(er)g
+(line\):)390 3163 y Ft(while)46 b(IFS=)h(read)g(-r)g(x;)g(do)390
+3273 y(do-something1)d("$x")j("config-$x")390 3382 y(do-something2)d(<)
+k("$x")390 3492 y(done)f(<)g(file)g(|)g(process-output)150
+3636 y Fu(with)30 b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g
+(of)g(lam)m(b)s(das:)390 3781 y Ft(cat)47 b(list)g(|)g(parallel)f
+("do-something1)d({})48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)g
+(process-output)275 3925 y Fu(P)m(arallel)31 b(pro)m(vides)e(a)h
+(built-in)g(mec)m(hanism)g(to)g(remo)m(v)m(e)h(\014lename)e
+(extensions,)i(whic)m(h)e(lends)g(itself)150 4035 y(to)i(batc)m(h)g
+(\014le)g(transformations)f(or)g(renaming:)390 4179 y
+Ft(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h({})g(|)g(bzip2)g
+(>{.}.bz2)e(&&)j(rm)f({}")150 4324 y Fu(This)28 b(will)i(recompress)e
+(all)i(\014les)f(in)g(the)g(curren)m(t)g(directory)g(with)g(names)g
+(ending)f(in)h(.gz)h(using)f(bzip2,)150 4433 y(running)37
+b(one)i(job)f(p)s(er)f(CPU)h(\(-j)p Ft(+)p Fu(0\))i(in)e(parallel.)66
+b(\(W)-8 b(e)40 b(use)e Ft(ls)g Fu(for)h(brevit)m(y)g(here;)j(using)c
+Ft(find)g Fu(as)150 4543 y(ab)s(o)m(v)m(e)e(is)g(more)f(robust)f(in)h
+(the)h(face)g(of)f(\014lenames)h(con)m(taining)g(unexp)s(ected)f(c)m
+(haracters.\))57 b(P)m(arallel)150 4653 y(can)31 b(tak)m(e)h(argumen)m
+(ts)e(from)g(the)h(command)f(line;)h(the)f(ab)s(o)m(v)m(e)i(can)f(also)
+g(b)s(e)f(written)g(as)390 4797 y Ft(parallel)46 b("zcat)g({})h(|)h
+(bzip2)e(>{.}.bz2)f(&&)j(rm)f({}")g(:::)g(*.gz)275 4941
+y Fu(If)24 b(a)i(command)f(generates)h(output,)g(y)m(ou)g(ma)m(y)f(w)m
+(an)m(t)h(to)g(preserv)m(e)g(the)f(input)f(order)h(in)g(the)g(output.)
+150 5051 y(F)-8 b(or)31 b(instance,)g(the)g(follo)m(wing)h(command)390
+5196 y Ft({)47 b(echo)g(foss.org.my)e(;)i(echo)g(debian.org;)e(echo)h
+(freenetproject.org;)d(})k(|)h(parallel)d(traceroute)150
+5340 y Fu(will)31 b(displa)m(y)f(as)h(output)f(the)g(traceroute)i(in)m
+(v)m(o)s(cation)h(that)e(\014nishes)e(\014rst.)40 b(Adding)30
+b(the)g Ft(-k)g Fu(option)p eop end
+%%Page: 17 23
+TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)390 299
+y Ft({)47 b(echo)g(foss.org.my)e(;)i(echo)g(debian.org;)e(echo)h
+(freenetproject.org;)d(})k(|)h(parallel)d(-k)i(traceroute)150
+430 y Fu(will)31 b(ensure)e(that)i(the)g(output)f(of)g
+Ft(traceroute)e(foss.org.my)f Fu(is)k(displa)m(y)m(ed)g(\014rst.)275
+560 y(Finally)-8 b(,)31 b(P)m(arallel)h(can)e(b)s(e)f(used)g(to)i(run)d
+(a)i(sequence)h(of)f(shell)g(commands)f(in)h(parallel,)h(similar)f(to)
+150 670 y(`)p Ft(cat)g(file)f(|)h(bash)p Fu('.)53 b(It)35
+b(is)g(not)g(uncommon)f(to)i(tak)m(e)g(a)f(list)h(of)f(\014lenames,)h
+(create)g(a)g(series)f(of)g(shell)150 779 y(commands)27
+b(to)h(op)s(erate)h(on)e(them,)h(and)f(feed)h(that)g(list)g(of)g
+(commnds)e(to)j(a)f(shell.)40 b(P)m(arallel)29 b(can)f(sp)s(eed)150
+889 y(this)i(up.)40 b(Assuming)30 b(that)h Ft(file)e
+Fu(con)m(tains)i(a)g(list)g(of)g(shell)f(commands,)h(one)f(p)s(er)g
+(line,)390 1020 y Ft(parallel)46 b(-j)h(10)g(<)g(file)150
+1150 y Fu(will)37 b(ev)-5 b(aluate)38 b(the)f(commands)f(using)g(the)h
+(shell)g(\(since)g(no)f(explicit)i(command)e(is)h(supplied)e(as)i(an)
+150 1260 y(argumen)m(t\),)31 b(in)f(blo)s(c)m(ks)h(of)g(ten)f(shell)h
+(jobs)f(at)h(a)g(time.)150 1484 y Fs(3.3)68 b(Shell)45
+b(F)-11 b(unctions)150 1644 y Fu(Shell)35 b(functions)h(are)g(a)g(w)m
+(a)m(y)g(to)h(group)e(commands)g(for)h(later)g(execution)h(using)e(a)h
+(single)g(name)g(for)150 1753 y(the)f(group.)55 b(They)35
+b(are)g(executed)h(just)f(lik)m(e)h(a)g Ft(")p Fu(regular)p
+Ft(")f Fu(command.)54 b(When)35 b(the)h(name)f(of)g(a)h(shell)150
+1863 y(function)j(is)g(used)f(as)h(a)h(simple)f(command)g(name,)i(the)e
+(list)h(of)f(commands)g(asso)s(ciated)i(with)d(that)150
+1973 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25
+b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g(shell)g(con)m
+(text;)j(no)c(new)150 2082 y(pro)s(cess)30 b(is)g(created)i(to)f(in)m
+(terpret)g(them.)275 2213 y(F)-8 b(unctions)30 b(are)h(declared)g
+(using)f(this)g(syn)m(tax:)390 2343 y Fj(name)47 b Ft(\(\))g
+Fj(compound-command)c Ft([)48 b Fj(redirections)c Ft(])275
+2474 y Fu(or)390 2605 y Ft(function)i Fj(name)g Ft([\(\)])h
+Fj(compound-command)c Ft([)48 b Fj(redirections)c Ft(])275
+2735 y Fu(This)31 b(de\014nes)h(a)h(shell)g(function)g(named)f
+Fr(name)p Fu(.)48 b(The)32 b(reserv)m(ed)h(w)m(ord)f
+Ft(function)f Fu(is)h(optional.)49 b(If)150 2845 y(the)39
+b Ft(function)f Fu(reserv)m(ed)h(w)m(ord)g(is)g(supplied,)i(the)e
+(paren)m(theses)h(are)f(optional.)69 b(The)39 b Fr(b)s(o)s(dy)45
+b Fu(of)40 b(the)150 2954 y(function)h(is)h(the)g(comp)s(ound)e
+(command)h Fr(comp)s(ound-command)j Fu(\(see)e(Section)h(3.2.4)g([Comp)
+s(ound)150 3064 y(Commands],)33 b(page)h(9\).)49 b(That)33
+b(command)f(is)h(usually)g(a)g Fr(list)j Fu(enclosed)e(b)s(et)m(w)m
+(een)f Fi({)h Fu(and)e Fi(})p Fu(,)i(but)e(ma)m(y)150
+3174 y(b)s(e)26 b(an)m(y)i(comp)s(ound)d(command)i(listed)h(ab)s(o)m(v)
+m(e.)41 b Fr(comp)s(ound-command)29 b Fu(is)e(executed)h(whenev)m(er)f
+Fr(name)150 3283 y Fu(is)k(sp)s(eci\014ed)f(as)g(the)h(name)g(of)g(a)g
+(command.)41 b(When)31 b(the)f(shell)h(is)g(in)f Fm(posix)g
+Fu(mo)s(de)g(\(see)i(Section)f(6.11)150 3393 y([Bash)36
+b(POSIX)f(Mo)s(de],)j(page)e(94\),)j Fr(name)i Fu(ma)m(y)36
+b(not)h(b)s(e)e(the)h(same)g(as)g(one)g(of)g(the)g(sp)s(ecial)h
+(builtins)150 3502 y(\(see)24 b(Section)g(4.4)g([Sp)s(ecial)g
+(Builtins],)h(page)f(68\).)40 b(An)m(y)23 b(redirections)h(\(see)g
+(Section)g(3.6)g([Redirections],)150 3612 y(page)31 b(31\))h(asso)s
+(ciated)g(with)e(the)g(shell)h(function)f(are)h(p)s(erformed)d(when)i
+(the)g(function)g(is)h(executed.)275 3743 y(A)44 b(function)g
+(de\014nition)h(ma)m(y)g(b)s(e)f(deleted)h(using)f(the)h
+Ft(-f)f Fu(option)h(to)g(the)g Ft(unset)e Fu(builtin)h(\(see)150
+3852 y(Section)31 b(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(41\).)
+275 3983 y(The)26 b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g
+(is)g(zero)h(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h
+(readonly)150 4092 y(function)k(with)f(the)i(same)f(name)g(already)h
+(exists.)46 b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g
+(function)150 4202 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g
+(command)f(executed)i(in)e(the)g(b)s(o)s(dy)-8 b(.)275
+4333 y(Note)22 b(that)f(for)f(historical)i(reasons,)h(in)e(the)g(most)g
+(common)g(usage)g(the)g(curly)f(braces)h(that)g(surround)150
+4442 y(the)38 b(b)s(o)s(dy)d(of)j(the)f(function)g(m)m(ust)g(b)s(e)g
+(separated)h(from)f(the)g(b)s(o)s(dy)f(b)m(y)h Ft(blank)p
+Fu(s)f(or)h(newlines.)62 b(This)150 4552 y(is)38 b(b)s(ecause)g(the)h
+(braces)f(are)h(reserv)m(ed)f(w)m(ords)g(and)f(are)i(only)f(recognized)
+i(as)e(suc)m(h)g(when)f(they)i(are)150 4661 y(separated)26
+b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h(or)g(another)g
+(shell)g(metac)m(haracter.)41 b(Also,)28 b(when)150 4771
+y(using)i(the)g(braces,)h(the)g Fr(list)i Fu(m)m(ust)d(b)s(e)g
+(terminated)h(b)m(y)f(a)h(semicolon,)h(a)e(`)p Ft(&)p
+Fu(',)h(or)g(a)f(newline.)275 4902 y(When)i(a)i(function)f(is)g
+(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
+(the)h(p)s(ositional)g(pa-)150 5011 y(rameters)42 b(during)e(its)i
(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
-(arameters],)i(page)c(17\).)75 b(The)150 2600 y(sp)s(ecial)37
-b(parameter)f(`)p Fs(#)p Ft(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
+(arameters],)i(page)c(19\).)75 b(The)150 5121 y(sp)s(ecial)37
+b(parameter)f(`)p Ft(#)p Fu(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
-2710 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
-b(parameter)h Fs(0)f Ft(is)g(unc)m(hanged.)54 b(The)35
-b(\014rst)f(elemen)m(t)j(of)e(the)g Fs(FUNCNAME)150 2819
-y Ft(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h
-(function)f(while)g(the)h(function)f(is)g(executing.)275
-2951 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
-m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
-(and)150 3061 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
-b(the)36 b Fs(DEBUG)d Ft(and)h Fs(RETURN)g Ft(traps)g(are)i(not)f
-(inherited)f(unless)h(the)150 3170 y(function)26 b(has)g(b)s(een)f(giv)
-m(en)i(the)g Fs(trace)d Ft(attribute)j(using)f(the)g
-Fs(declare)e Ft(builtin)i(or)g(the)h Fs(-o)i(functrace)150
-3280 y Ft(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
-Fs(set)f Ft(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e
-(inherit)h(the)g Fs(DEBUG)150 3389 y Ft(and)33 b Fs(RETURN)f
-Ft(traps\),)j(and)e(the)h Fs(ERR)f Ft(trap)h(is)g(not)g(inherited)f
-(unless)g(the)h Fs(-o)c(errtrace)h Ft(shell)j(option)150
-3499 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
-(Shell)g(Builtins],)i(page)f(37,)i(for)c(the)i(description)f(of)150
-3608 y(the)c Fs(trap)e Ft(builtin.)275 3740 y(The)38
-b Fs(FUNCNEST)f Ft(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)
-f(v)-5 b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
-3850 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
+5230 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+b(parameter)h Ft(0)f Fu(is)g(unc)m(hanged.)54 b(The)35
+b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 5340
+y Fu(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h
+(function)f(while)g(the)h(function)f(is)g(executing.)p
+eop end
+%%Page: 18 24
+TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)275 299
+y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)m
+(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
+(and)150 408 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
+b(the)36 b Ft(DEBUG)d Fu(and)h Ft(RETURN)g Fu(traps)g(are)i(not)f
+(inherited)f(unless)h(the)150 518 y(function)26 b(has)g(b)s(een)f(giv)m
+(en)i(the)g Ft(trace)d Fu(attribute)j(using)f(the)g Ft(declare)e
+Fu(builtin)i(or)g(the)h Ft(-o)i(functrace)150 628 y Fu(option)f(has)e
+(b)s(een)h(enabled)g(with)g(the)g Ft(set)f Fu(builtin,)i(\(in)f(whic)m
+(h)f(case)j(all)f(functions)e(inherit)h(the)g Ft(DEBUG)150
+737 y Fu(and)33 b Ft(RETURN)f Fu(traps\),)j(and)e(the)h
+Ft(ERR)f Fu(trap)h(is)g(not)g(inherited)f(unless)g(the)h
+Ft(-o)c(errtrace)h Fu(shell)j(option)150 847 y(has)h(b)s(een)f
+(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f(Shell)g(Builtins],)i
+(page)f(41,)i(for)c(the)i(description)f(of)150 956 y(the)c
+Ft(trap)e Fu(builtin.)275 1095 y(The)38 b Ft(FUNCNEST)f
+Fu(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)f(v)-5
+b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
+1204 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
b(in)m(v)m(o)s(cations)i(that)e(exceed)g(the)g(limit)g(cause)g(the)g
-(en)m(tire)g(command)150 3959 y(to)31 b(ab)s(ort.)275
-4091 y(If)37 b(the)g(builtin)g(command)h Fs(return)d
-Ft(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h(completes)h
-(and)150 4200 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
+(en)m(tire)g(command)150 1314 y(to)31 b(ab)s(ort.)275
+1452 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
+Fu(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h(completes)h
+(and)150 1562 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
(after)i(the)f(function)f(call.)40 b(An)m(y)24 b(command)f(asso)s
-(ciated)150 4310 y(with)36 b(the)h Fs(RETURN)d Ft(trap)i(is)h(executed)
+(ciated)150 1672 y(with)36 b(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)
g(b)s(efore)f(execution)i(resumes.)57 b(When)37 b(a)f(function)g
-(completes,)150 4419 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
+(completes,)150 1781 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
(ositional)h(parameters)f(and)g(the)g(sp)s(ecial)h(parameter)f(`)p
-Fs(#)p Ft(')g(are)h(restored)f(to)h(the)150 4529 y(v)-5
+Ft(#)p Fu(')g(are)h(restored)f(to)h(the)150 1891 y(v)-5
b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f(execution.)40
b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h(to)g
-Fs(return)p Ft(,)150 4639 y(that)j(is)g(the)f(function's)h(return)e
+Ft(return)p Fu(,)150 2000 y(that)j(is)g(the)f(function's)h(return)e
(status;)j(otherwise)f(the)f(function's)h(return)e(status)i(is)f(the)h
-(exit)h(status)150 4748 y(of)h(the)f(last)h(command)f(executed)i(b)s
-(efore)e(the)g Fs(return)p Ft(.)275 4880 y(V)-8 b(ariables)31
+(exit)h(status)150 2110 y(of)h(the)f(last)h(command)f(executed)i(b)s
+(efore)e(the)g Ft(return)p Fu(.)275 2248 y(V)-8 b(ariables)31
b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e)e(declared)h(with)f
-(the)h Fs(local)f Ft(builtin.)40 b(These)29 b(v)-5 b(ariables)150
-4989 y(are)31 b(visible)g(only)f(to)h(the)g(function)f(and)g(the)g
-(commands)g(it)h(in)m(v)m(ok)m(es.)275 5121 y(F)-8 b(unction)38
+(the)h Ft(local)f Fu(builtin.)40 b(These)29 b(v)-5 b(ariables)150
+2358 y(are)31 b(visible)g(only)f(to)h(the)g(function)f(and)g(the)g
+(commands)g(it)h(in)m(v)m(ok)m(es.)275 2497 y(F)-8 b(unction)51
b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s(e)e(listed)h(with)f(the)h
-(`)p Fs(-f)p Ft(')f(option)h(to)h(the)e Fs(declare)f
-Ft(or)150 5230 y Fs(typeset)d Ft(builtin)h(commands)h(\(see)h(Section)g
-(4.2)g([Bash)f(Builtins],)i(page)f(43\).)55 b(The)35
-b(`)p Fs(-F)p Ft(')g(option)g(to)150 5340 y Fs(declare)f
-Ft(or)i Fs(typeset)e Ft(will)i(list)h(the)f(function)g(names)g(only)g
-(\(and)g(optionally)h(the)f(source)g(\014le)h(and)p eop
-end
-%%Page: 17 23
-TeXDict begin 17 22 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)150 299
-y(line)33 b(n)m(um)m(b)s(er,)g(if)f(the)h Fs(extdebug)e
-Ft(shell)i(option)g(is)g(enabled\).)49 b(F)-8 b(unctions)33
-b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150 408 y(subshells)f
-(automatically)37 b(ha)m(v)m(e)d(them)g(de\014ned)e(with)h(the)g(`)p
-Fs(-f)p Ft(')h(option)g(to)g(the)f Fs(export)f Ft(builtin)h(\(see)150
-518 y(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(37\).)47
-b(Note)33 b(that)g(shell)f(functions)g(and)f(v)-5 b(ariables)33
-b(with)150 628 y(the)d(same)g(name)g(ma)m(y)g(result)g(in)g(m)m
-(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e(the)h(en)m
-(vironmen)m(t)g(passed)150 737 y(to)h(the)g(shell's)f(c)m(hildren.)41
-b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h(where)f(this)g(ma)
-m(y)h(cause)g(a)g(problem.)275 883 y(F)-8 b(unctions)33
-b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48 b(The)32 b Fs(FUNCNEST)f
-Ft(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g(to)i(limit)g(the)f
-(depth)f(of)150 993 y(the)27 b(function)f(call)i(stac)m(k)h(and)d
-(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f(in)m(v)m(o)s
-(cations.)42 b(By)27 b(default,)g(no)g(limit)150 1103
-y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
-(calls.)150 1352 y Fr(3.4)68 b(Shell)45 b(P)l(arameters)150
-1512 y Ft(A)23 b Fq(parameter)31 b Ft(is)23 b(an)g(en)m(tit)m(y)i(that)
+Ft(-f)f Fu(option)h(to)g(the)g Ft(declare)150 2606 y
+Fu(\()p Ft(typeset)p Fu(\))35 b(builtin)g(command)h(\(see)h(Section)g
+(4.2)g([Bash)f(Builtins],)i(page)f(48\).)59 b(The)35
+b Ft(-F)h Fu(option)g(to)150 2716 y Ft(declare)e Fu(or)i
+Ft(typeset)e Fu(will)i(list)h(the)f(function)g(names)g(only)g(\(and)g
+(optionally)h(the)f(source)g(\014le)h(and)150 2825 y(line)c(n)m(um)m(b)
+s(er,)g(if)f(the)h Ft(extdebug)e Fu(shell)i(option)g(is)g(enabled\).)49
+b(F)-8 b(unctions)33 b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150
+2935 y(subshells)j(automatically)k(ha)m(v)m(e)f(them)e(de\014ned)f
+(with)h(the)h Ft(-f)e Fu(option)i(to)g(the)g Ft(export)d
+Fu(builtin)i(\(see)150 3044 y(Section)c(4.1)g([Bourne)f(Shell)g
+(Builtins],)i(page)f(41\).)47 b(Note)33 b(that)g(shell)f(functions)g
+(and)f(v)-5 b(ariables)33 b(with)150 3154 y(the)d(same)g(name)g(ma)m(y)
+g(result)g(in)g(m)m(ultiple)g(iden)m(tically-named)i(en)m(tries)f(in)e
+(the)h(en)m(vironmen)m(t)g(passed)150 3264 y(to)h(the)g(shell's)f(c)m
+(hildren.)41 b(Care)30 b(should)g(b)s(e)f(tak)m(en)j(in)e(cases)h
+(where)f(this)g(ma)m(y)h(cause)g(a)g(problem.)275 3402
+y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48
+b(The)32 b Ft(FUNCNEST)f Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g
+(to)i(limit)g(the)f(depth)f(of)150 3512 y(the)27 b(function)f(call)i
+(stac)m(k)h(and)d(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f
+(in)m(v)m(o)s(cations.)42 b(By)27 b(default,)g(no)g(limit)150
+3621 y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
+(calls.)150 3860 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150
+4019 y Fu(A)23 b Fr(parameter)31 b Fu(is)23 b(an)g(en)m(tit)m(y)i(that)
f(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g
-Fs(name)p Ft(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s
-(ecial)150 1621 y(c)m(haracters)i(listed)f(b)s(elo)m(w.)39
-b(A)24 b Fq(v)-5 b(ariable)29 b Ft(is)24 b(a)g(parameter)g(denoted)f(b)
-m(y)h(a)g Fs(name)p Ft(.)37 b(A)24 b(v)-5 b(ariable)24
-b(has)f(a)h Fq(v)-5 b(alue)150 1731 y Ft(and)33 b(zero)i(or)e(more)h
-Fq(attributes)t Ft(.)51 b(A)m(ttributes)34 b(are)g(assigned)g(using)f
-(the)h Fs(declare)e Ft(builtin)h(command)150 1841 y(\(see)e(the)g
-(description)f(of)h(the)f Fs(declare)f Ft(builtin)h(in)g(Section)h(4.2)
-g([Bash)g(Builtins],)g(page)g(43\).)275 1987 y(A)d(parameter)h(is)g
+Ft(name)p Fu(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s
+(ecial)150 4129 y(c)m(haracters)i(listed)e(b)s(elo)m(w.)39
+b(A)23 b Fr(v)-5 b(ariable)30 b Fu(is)23 b(a)g(parameter)h(denoted)f(b)
+m(y)h(a)f Ft(name)p Fu(.)37 b(A)24 b(v)-5 b(ariable)24
+b(has)f(a)g Fr(v)-5 b(alue)150 4238 y Fu(and)33 b(zero)i(or)f(more)g
+Fr(attributes)p Fu(.)52 b(A)m(ttributes)35 b(are)f(assigned)g(using)g
+(the)g Ft(declare)e Fu(builtin)h(command)150 4348 y(\(see)e(the)g
+(description)f(of)h(the)f Ft(declare)f Fu(builtin)h(in)g(Section)h(4.2)
+g([Bash)g(Builtins],)g(page)g(48\).)275 4486 y(A)d(parameter)h(is)g
(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5
b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5
-b(alid)28 b(v)-5 b(alue.)41 b(Once)150 2096 y(a)31 b(v)-5
+b(alid)28 b(v)-5 b(alue.)41 b(Once)150 4596 y(a)31 b(v)-5
b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f
-(using)g(the)g Fs(unset)f Ft(builtin)h(command.)275 2242
+(using)g(the)g Ft(unset)f Fu(builtin)h(command.)275 4734
y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e(a)h
-(statemen)m(t)h(of)e(the)h(form)390 2389 y Fi(name)11
-b Fs(=[)p Fi(value)g Fs(])150 2535 y Ft(If)34 b Fq(v)-5
-b(alue)40 b Ft(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
+(statemen)m(t)h(of)e(the)h(form)390 4873 y Fj(name)p
+Ft(=[)p Fj(value)p Ft(])150 5011 y Fu(If)j Fr(v)-5 b(alue)40
+b Fu(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
-b Fq(v)-5 b(alue)5 b Ft(s)35 b(undergo)f(tilde)h(ex-)150
-2644 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
+b Fr(v)-5 b(alue)5 b Fu(s)35 b(undergo)f(tilde)h(ex-)150
+5121 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
-2754 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
-72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Fs(integer)e
-Ft(attribute)i(set,)j(then)150 2863 y Fq(v)-5 b(alue)38
-b Ft(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
-(ev)m(en)h(if)e(the)h Fs($\(\(...)o(\)\))f Ft(expansion)h(is)g(not)g
-(used)150 2973 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
-(page)h(24\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
-(erformed,)f(with)150 3083 y(the)35 b(exception)h(of)f
-Fs("$@")f Ft(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
-b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
-3192 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
-(argumen)m(ts)h(to)g(the)g Fs(alias)p Ft(,)e Fs(declare)p
-Ft(,)g Fs(typeset)p Ft(,)g Fs(export)p Ft(,)150 3302
-y Fs(readonly)p Ft(,)d(and)i Fs(local)f Ft(builtin)h(commands.)275
-3448 y(In)f(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
+5230 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
+72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Ft(integer)e
+Fu(attribute)i(set,)j(then)150 5340 y Fr(v)-5 b(alue)38
+b Fu(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
+(ev)m(en)h(if)e(the)h Ft($\(\(...)o(\)\))f Fu(expansion)h(is)g(not)g
+(used)p eop end
+%%Page: 19 25
+TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
+y(\(see)31 b(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f(page)h
+(29\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s(erformed,)f
+(with)150 408 y(the)35 b(exception)h(of)f Ft("$@")f Fu(as)h(explained)g
+(b)s(elo)m(w.)54 b(Filename)36 b(expansion)f(is)g(not)g(p)s(erformed.)
+53 b(Assign-)150 518 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g
+(app)s(ear)f(as)g(argumen)m(ts)h(to)g(the)g Ft(alias)p
+Fu(,)e Ft(declare)p Fu(,)g Ft(typeset)p Fu(,)g Ft(export)p
+Fu(,)150 628 y Ft(readonly)p Fu(,)41 b(and)f Ft(local)f
+Fu(builtin)h(commands.)71 b(When)40 b(in)h Fm(posix)e
+Fu(mo)s(de)i(\(see)g(Section)g(6.11)i([Bash)150 737 y(POSIX)36
+b(Mo)s(de],)k(page)e(94\),)i(these)e(builtins)f(ma)m(y)h(app)s(ear)e
+(in)h(a)h(command)f(after)h(one)f(or)h(more)f(in-)150
+847 y(stances)31 b(of)g(the)f Ft(command)f Fu(builtin)h(and)f(retain)i
+(these)g(assignmen)m(t)g(statemen)m(t)h(prop)s(erties.)275
+994 y(In)d(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m
(t)h(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
-b(ariable)31 b(or)150 3557 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
-([Arra)m(ys],)g(page)g(82\),)g(the)f(`)p Fs(+=)p Ft(')g(op)s(erator)g
-(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 3667 y(or)36
+b(ariable)31 b(or)150 1104 y(arra)m(y)f(index)g(\(see)h(Section)g(6.7)g
+([Arra)m(ys],)g(page)g(89\),)g(the)f(`)p Ft(+=)p Fu(')g(op)s(erator)g
+(can)h(b)s(e)e(used)g(to)i(app)s(end)d(to)150 1213 y(or)36
b(add)g(to)h(the)f(v)-5 b(ariable's)37 b(previous)f(v)-5
-b(alue.)59 b(When)36 b(`)p Fs(+=)p Ft(')g(is)g(applied)g(to)h(a)g(v)-5
-b(ariable)37 b(for)f(whic)m(h)g(the)150 3777 y Fq(in)m(teger)46
-b Ft(attribute)38 b(has)f(b)s(een)g(set,)k Fq(v)-5 b(alue)43
-b Ft(is)38 b(ev)-5 b(aluated)39 b(as)f(an)f(arithmetic)i(expression)f
-(and)f(added)150 3886 y(to)f(the)f(v)-5 b(ariable's)36
+b(alue.)59 b(When)36 b(`)p Ft(+=)p Fu(')g(is)g(applied)g(to)h(a)g(v)-5
+b(ariable)37 b(for)f(whic)m(h)g(the)150 1323 y Fr(in)m(teger)46
+b Fu(attribute)38 b(has)f(b)s(een)g(set,)k Fr(v)-5 b(alue)43
+b Fu(is)38 b(ev)-5 b(aluated)39 b(as)f(an)f(arithmetic)i(expression)f
+(and)f(added)150 1433 y(to)f(the)f(v)-5 b(ariable's)36
b(curren)m(t)f(v)-5 b(alue,)37 b(whic)m(h)e(is)g(also)h(ev)-5
-b(aluated.)56 b(When)35 b(`)p Fs(+=)p Ft(')g(is)h(applied)f(to)g(an)g
-(arra)m(y)150 3996 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f
-(assignmen)m(t)j(\(see)f(Section)h(6.7)f([Arra)m(ys],)i(page)f(82\),)h
-(the)e(v)-5 b(ariable's)25 b(v)-5 b(alue)150 4105 y(is)32
-b(not)f(unset)h(\(as)g(it)g(is)f(when)g(using)g(`)p Fs(=)p
-Ft('\),)i(and)e(new)g(v)-5 b(alues)32 b(are)g(app)s(ended)d(to)k(the)f
-(arra)m(y)g(b)s(eginning)150 4215 y(at)27 b(one)f(greater)i(than)e(the)
+b(aluated.)56 b(When)35 b(`)p Ft(+=)p Fu(')g(is)h(applied)f(to)g(an)g
+(arra)m(y)150 1542 y(v)-5 b(ariable)26 b(using)e(comp)s(ound)f
+(assignmen)m(t)j(\(see)f(Section)h(6.7)f([Arra)m(ys],)i(page)f(89\),)h
+(the)e(v)-5 b(ariable's)25 b(v)-5 b(alue)150 1652 y(is)32
+b(not)f(unset)h(\(as)g(it)g(is)f(when)g(using)g(`)p Ft(=)p
+Fu('\),)i(and)e(new)g(v)-5 b(alues)32 b(are)g(app)s(ended)d(to)k(the)f
+(arra)m(y)g(b)s(eginning)150 1761 y(at)27 b(one)f(greater)i(than)e(the)
g(arra)m(y's)h(maxim)m(um)f(index)g(\(for)g(indexed)g(arra)m(ys\),)i
-(or)e(added)g(as)g(additional)150 4325 y(k)m(ey-v)-5
+(or)e(added)g(as)g(additional)150 1871 y(k)m(ey-v)-5
b(alue)35 b(pairs)e(in)g(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8
b(.)51 b(When)33 b(applied)g(to)h(a)g(string-v)-5 b(alued)34
-b(v)-5 b(ariable,)35 b Fq(v)-5 b(alue)39 b Ft(is)150
-4434 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5
-b(ariable's)31 b(v)-5 b(alue.)150 4645 y Fj(3.4.1)63
-b(P)m(ositional)41 b(P)m(arameters)150 4792 y Ft(A)28
-b Fq(p)s(ositional)h(parameter)35 b Ft(is)28 b(a)g(parameter)g(denoted)
+b(v)-5 b(ariable,)35 b Fr(v)-5 b(alue)39 b Fu(is)150
+1980 y(expanded)30 b(and)f(app)s(ended)g(to)i(the)g(v)-5
+b(ariable's)31 b(v)-5 b(alue.)275 2128 y(A)41 b(v)-5
+b(ariable)42 b(can)f(b)s(e)f(assigned)i(the)f Fr(nameref)58
+b Fu(attribute)42 b(using)f(the)g Ft(-n)f Fu(option)i(to)g(the)f
+Ft(\\)p Fu(fBde-)150 2237 y(clare)p Ft(\\)p Fu(fP)j(or)f
+Ft(\\)p Fu(fBlo)s(cal)p Ft(\\)p Fu(fP)h(builtin)e(commands)h(\(see)h
+(Section)h(4.2)f([Bash)g(Builtins],)j(page)d(48\))g(to)150
+2347 y(create)37 b(a)e Fr(nameref)p Fu(,)h(or)f(a)h(reference)f(to)h
+(another)g(v)-5 b(ariable.)55 b(This)34 b(allo)m(ws)j(v)-5
+b(ariables)35 b(to)h(b)s(e)f(manipu-)150 2457 y(lated)c(indirectly)-8
+b(.)43 b(Whenev)m(er)31 b(the)g(nameref)f(v)-5 b(ariable)32
+b(is)e(referenced)h(or)f(assigned)h(to,)h(the)e(op)s(eration)150
+2566 y(is)i(actually)h(p)s(erformed)d(on)i(the)g(v)-5
+b(ariable)33 b(sp)s(eci\014ed)e(b)m(y)g(the)h(nameref)g(v)-5
+b(ariable's)33 b(v)-5 b(alue.)45 b(A)32 b(nameref)150
+2676 y(is)h(commonly)g(used)e(within)h(shell)h(functions)f(to)h(refer)f
+(to)i(a)f(v)-5 b(ariable)33 b(whose)f(name)h(is)f(passed)g(as)h(an)150
+2785 y(argumen)m(t)g(to)g(the)g(function.)46 b(F)-8 b(or)33
+b(instance,)h(if)e(a)h(v)-5 b(ariable)33 b(name)g(is)f(passed)g(to)h(a)
+g(shell)g(function)f(as)150 2895 y(its)f(\014rst)e(argumen)m(t,)i
+(running)390 3042 y Ft(declare)46 b(-n)h(ref=$1)150 3190
+y Fu(inside)31 b(the)h(function)f(creates)i(a)g(nameref)e(v)-5
+b(ariable)32 b Fr(ref)49 b Fu(whose)32 b(v)-5 b(alue)32
+b(is)g(the)f(v)-5 b(ariable)33 b(name)e(passed)150 3299
+y(as)42 b(the)g(\014rst)f(argumen)m(t.)74 b(References)43
+b(and)e(assignmen)m(ts)h(to)g Fr(ref)59 b Fu(are)42 b(treated)h(as)f
+(references)g(and)150 3409 y(assignmen)m(ts)31 b(to)g(the)g(v)-5
+b(ariable)31 b(whose)f(name)g(w)m(as)h(passed)f(as)h
+Ft($1)p Fu(.)275 3556 y(If)38 b(the)i(con)m(trol)g(v)-5
+b(ariable)40 b(in)f(a)g Ft(for)g Fu(lo)s(op)g(has)g(the)g(nameref)g
+(attribute,)k(the)c(list)h(of)f(w)m(ords)g(can)150 3666
+y(b)s(e)c(a)i(list)f(of)g(shell)h(v)-5 b(ariables,)38
+b(and)d(a)h(name)g(reference)h(will)f(b)s(e)f(established)i(for)e(eac)m
+(h)j(w)m(ord)d(in)h(the)150 3775 y(list,)e(in)e(turn,)g(when)f(the)i
+(lo)s(op)f(is)h(executed.)47 b(Arra)m(y)33 b(v)-5 b(ariables)33
+b(cannot)g(b)s(e)e(giv)m(en)j(the)e Ft(-n)g Fu(attribute.)150
+3885 y(Ho)m(w)m(ev)m(er,)39 b(nameref)d(v)-5 b(ariables)36
+b(can)g(reference)g(arra)m(y)g(v)-5 b(ariables)37 b(and)e(subscripted)f
+(arra)m(y)i(v)-5 b(ariables.)150 3995 y(Namerefs)36 b(can)f(b)s(e)g
+(unset)g(using)g(the)h Ft(-n)e Fu(option)i(to)g(the)g
+Ft(unset)e Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)150
+4104 y(Shell)43 b(Builtins],)j(page)e(41\).)79 b(Otherwise,)45
+b(if)e Ft(unset)e Fu(is)i(executed)h(with)e(the)h(name)g(of)g(a)g
+(nameref)150 4214 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m(t,)h(the)g
+(v)-5 b(ariable)31 b(referenced)f(b)m(y)g(the)h(nameref)f(v)-5
+b(ariable)31 b(will)g(b)s(e)f(unset.)150 4426 y Fk(3.4.1)63
+b(P)m(ositional)41 b(P)m(arameters)150 4573 y Fu(A)28
+b Fr(p)s(ositional)h(parameter)35 b Fu(is)28 b(a)g(parameter)g(denoted)
g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150
-4902 y(digit)34 b Fs(0)p Ft(.)48 b(P)m(ositional)36 b(parameters)d(are)
+4682 y(digit)34 b Ft(0)p Fu(.)48 b(P)m(ositional)36 b(parameters)d(are)
g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)
-m(v)m(ok)m(ed,)150 5011 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
-e(the)h Fs(set)g Ft(builtin)f(command.)67 b(P)m(ositional)41
-b(parameter)e Fs(N)g Ft(ma)m(y)h(b)s(e)150 5121 y(referenced)34
-b(as)h Fs(${N})p Ft(,)g(or)f(as)h Fs($N)e Ft(when)h Fs(N)g
-Ft(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
-b(parameters)d(ma)m(y)150 5230 y(not)j(b)s(e)f(assigned)h(to)g(with)f
-(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Fs(set)g
-Ft(and)g Fs(shift)f Ft(builtins)h(are)h(used)f(to)150
-5340 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
-(Builtin)g(Commands],)h(page)f(37\).)68 b(The)39 b(p)s(ositional)p
+m(v)m(ok)m(ed,)150 4792 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
+e(the)h Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
+b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 4902 y(referenced)34
+b(as)h Ft(${N})p Fu(,)g(or)f(as)h Ft($N)e Fu(when)h Ft(N)g
+Fu(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
+b(parameters)d(ma)m(y)150 5011 y(not)j(b)s(e)f(assigned)h(to)g(with)f
+(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Ft(set)g
+Fu(and)g Ft(shift)f Fu(builtins)h(are)h(used)f(to)150
+5121 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
+(Builtin)g(Commands],)h(page)f(41\).)68 b(The)39 b(p)s(ositional)150
+5230 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
+(shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150
+5340 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(17\).)p
eop end
-%%Page: 18 24
-TeXDict begin 18 23 bop 150 -116 a Ft(18)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(parameters)44 b(are)g(temp)s(orarily)
-g(replaced)h(when)e(a)h(shell)g(function)g(is)g(executed)g(\(see)h
-(Section)g(3.3)150 408 y([Shell)30 b(F)-8 b(unctions],)32
-b(page)f(15\).)275 546 y(When)c(a)i(p)s(ositional)g(parameter)g
-(consisting)f(of)h(more)f(than)g(a)g(single)h(digit)g(is)f(expanded,)g
-(it)h(m)m(ust)150 656 y(b)s(e)h(enclosed)h(in)f(braces.)150
-859 y Fj(3.4.2)63 b(Sp)s(ecial)41 b(P)m(arameters)150
-1006 y Ft(The)d(shell)g(treats)h(sev)m(eral)g(parameters)f(sp)s
-(ecially)-8 b(.)65 b(These)38 b(parameters)h(ma)m(y)f(only)g(b)s(e)g
-(referenced;)150 1115 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)
-m(w)m(ed.)150 1280 y Fs(*)432 b Ft(Expands)29 b(to)h(the)h(p)s
-(ositional)f(parameters,)h(starting)g(from)e(one.)41
-b(When)30 b(the)g(expansion)630 1389 y(o)s(ccurs)e(within)f(double)h
-(quotes,)h(it)g(expands)e(to)i(a)f(single)h(w)m(ord)f(with)g(the)g(v)-5
-b(alue)29 b(of)f(eac)m(h)630 1499 y(parameter)i(separated)g(b)m(y)f
-(the)g(\014rst)g(c)m(haracter)i(of)e(the)h Fs(IFS)e Ft(sp)s(ecial)i(v)
--5 b(ariable.)41 b(That)30 b(is,)630 1609 y Fs("$*")h
-Ft(is)i(equiv)-5 b(alen)m(t)33 b(to)h Fs("$1)p Fi(c)11
-b Fs($2)p Fi(c)g Fs(...)l(")p Ft(,)33 b(where)f Fq(c)38
-b Ft(is)32 b(the)h(\014rst)e(c)m(haracter)j(of)f(the)f(v)-5
-b(alue)630 1718 y(of)30 b(the)g Fs(IFS)g Ft(v)-5 b(ariable.)41
-b(If)30 b Fs(IFS)f Ft(is)h(unset,)g(the)g(parameters)g(are)h(separated)
-f(b)m(y)g(spaces.)41 b(If)630 1828 y Fs(IFS)29 b Ft(is)i(n)m(ull,)f
-(the)h(parameters)g(are)f(joined)h(without)f(in)m(terv)m(ening)i
-(separators.)150 1991 y Fs(@)432 b Ft(Expands)29 b(to)h(the)h(p)s
-(ositional)f(parameters,)h(starting)g(from)e(one.)41
-b(When)30 b(the)g(expansion)630 2100 y(o)s(ccurs)c(within)g(double)f
-(quotes,)j(eac)m(h)f(parameter)g(expands)e(to)i(a)g(separate)g(w)m
-(ord.)39 b(That)630 2210 y(is,)29 b Fs("$@")e Ft(is)i(equiv)-5
-b(alen)m(t)30 b(to)f Fs("$1")g("$2")h(...)o Ft(.)40 b(If)28
-b(the)g(double-quoted)h(expansion)f(o)s(ccurs)630 2319
-y(within)d(a)h(w)m(ord,)g(the)g(expansion)f(of)h(the)g(\014rst)f
-(parameter)h(is)f(joined)h(with)f(the)h(b)s(eginning)630
-2429 y(part)f(of)g(the)g(original)g(w)m(ord,)h(and)e(the)h(expansion)g
-(of)g(the)g(last)h(parameter)f(is)g(joined)f(with)630
-2539 y(the)37 b(last)g(part)g(of)f(the)h(original)h(w)m(ord.)59
-b(When)36 b(there)h(are)g(no)f(p)s(ositional)h(parameters,)630
-2648 y Fs("$@")29 b Ft(and)h Fs($@)g Ft(expand)f(to)j(nothing)e
-(\(i.e.,)i(they)e(are)h(remo)m(v)m(ed\).)150 2811 y Fs(#)432
-b Ft(Expands)29 b(to)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)h
-(parameters)g(in)f(decimal.)150 2974 y Fs(?)432 b Ft(Expands)29
-b(to)i(the)g(exit)g(status)g(of)f(the)h(most)f(recen)m(tly)i(executed)f
-(foreground)f(pip)s(eline.)150 3137 y Fs(-)432 b Ft(\(A)31
-b(h)m(yphen.\))42 b(Expands)30 b(to)h(the)g(curren)m(t)g(option)h
-(\015ags)f(as)g(sp)s(eci\014ed)f(up)s(on)g(in)m(v)m(o)s(cation,)630
-3246 y(b)m(y)35 b(the)h Fs(set)e Ft(builtin)h(command,)h(or)g(those)g
-(set)f(b)m(y)h(the)f(shell)h(itself)g(\(suc)m(h)f(as)h(the)f(`)p
-Fs(-i)p Ft(')630 3356 y(option\).)150 3519 y Fs($)432
-b Ft(Expands)39 b(to)j(the)f(pro)s(cess)f Fl(id)h Ft(of)g(the)g(shell.)
-73 b(In)40 b(a)h Fs(\(\))f Ft(subshell,)j(it)e(expands)f(to)i(the)630
-3628 y(pro)s(cess)30 b Fl(id)g Ft(of)h(the)g(in)m(v)m(oking)g(shell,)g
-(not)g(the)f(subshell.)150 3791 y Fs(!)432 b Ft(Expands)39
-b(to)i(the)g(pro)s(cess)e Fl(id)i Ft(of)f(the)h(most)g(recen)m(tly)g
-(executed)g(bac)m(kground)g(\(asyn-)630 3901 y(c)m(hronous\))30
-b(command.)150 4064 y Fs(0)432 b Ft(Expands)20 b(to)j(the)f(name)g(of)g
-(the)g(shell)g(or)f(shell)h(script.)38 b(This)21 b(is)h(set)g(at)h
-(shell)f(initialization.)630 4173 y(If)44 b(Bash)g(is)g(in)m(v)m(ok)m
-(ed)i(with)e(a)g(\014le)g(of)h(commands)e(\(see)j(Section)f(3.8)g
-([Shell)f(Scripts],)630 4283 y(page)39 b(34\),)i Fs($0)d
-Ft(is)g(set)g(to)h(the)f(name)g(of)g(that)h(\014le.)64
-b(If)37 b(Bash)i(is)f(started)g(with)g(the)g(`)p Fs(-c)p
-Ft(')630 4392 y(option)i(\(see)g(Section)h(6.1)f([In)m(v)m(oking)h
-(Bash],)h(page)e(73\),)j(then)d Fs($0)e Ft(is)i(set)g(to)g(the)g
-(\014rst)630 4502 y(argumen)m(t)31 b(after)g(the)g(string)g(to)g(b)s(e)
-f(executed,)i(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31
-b(it)g(is)f(set)630 4612 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m
-(ok)m(e)h(Bash,)f(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150
-4774 y Fs(_)432 b Ft(\(An)27 b(underscore.\))39 b(A)m(t)29
-b(shell)e(startup,)h(set)f(to)h(the)g(absolute)g(pathname)f(used)f(to)i
-(in)m(v)m(ok)m(e)630 4884 y(the)22 b(shell)g(or)g(shell)g(script)f(b)s
-(eing)h(executed)h(as)f(passed)f(in)g(the)h(en)m(vironmen)m(t)h(or)e
-(argumen)m(t)630 4994 y(list.)72 b(Subsequen)m(tly)-8
-b(,)43 b(expands)c(to)j(the)e(last)i(argumen)m(t)f(to)g(the)g(previous)
-f(command,)630 5103 y(after)35 b(expansion.)54 b(Also)36
-b(set)f(to)h(the)f(full)f(pathname)h(used)f(to)h(in)m(v)m(ok)m(e)i(eac)
-m(h)f(command)630 5213 y(executed)42 b(and)e(placed)i(in)e(the)h(en)m
-(vironmen)m(t)h(exp)s(orted)f(to)g(that)h(command.)72
-b(When)630 5322 y(c)m(hec)m(king)32 b(mail,)f(this)g(parameter)g(holds)
-e(the)i(name)f(of)h(the)g(mail)g(\014le.)p eop end
-%%Page: 19 25
-TeXDict begin 19 24 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
-y Fr(3.5)68 b(Shell)45 b(Expansions)150 458 y Ft(Expansion)27
-b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)
-s(een)f(split)h(in)m(to)i Fs(token)p Ft(s.)38 b(There)28
-b(are)150 568 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225
-711 y Fp(\017)60 b Ft(brace)31 b(expansion)225 850 y
-Fp(\017)60 b Ft(tilde)31 b(expansion)225 988 y Fp(\017)60
-b Ft(parameter)31 b(and)f(v)-5 b(ariable)31 b(expansion)225
-1127 y Fp(\017)60 b Ft(command)30 b(substitution)225
-1266 y Fp(\017)60 b Ft(arithmetic)32 b(expansion)225
-1405 y Fp(\017)60 b Ft(w)m(ord)30 b(splitting)225 1544
-y Fp(\017)60 b Ft(\014lename)31 b(expansion)275 1716
-y(The)i(order)g(of)h(expansions)g(is:)47 b(brace)34 b(expansion,)h
-(tilde)g(expansion,)f(parameter,)i(v)-5 b(ariable,)36
-b(and)150 1825 y(arithmetic)46 b(expansion)f(and)g(command)f
-(substitution)h(\(done)g(in)g(a)g(left-to-righ)m(t)j(fashion\),)h(w)m
-(ord)150 1935 y(splitting,)31 b(and)f(\014lename)h(expansion.)275
-2078 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)47
-b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5
-b(ailable:)69 b Fq(pro)s(cess)150 2188 y(substitution)p
-Ft(.)61 b(This)36 b(is)h(p)s(erformed)f(at)i(the)f(same)h(time)f(as)h
-(parameter,)h(v)-5 b(ariable,)40 b(and)d(arithmetic)150
-2297 y(expansion)30 b(and)g(command)g(substitution.)275
-2440 y(Only)35 b(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
+%%Page: 20 26
+TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)275 299
+y(When)27 b(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
+(than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150
+408 y(b)s(e)h(enclosed)h(in)f(braces.)150 605 y Fk(3.4.2)63
+b(Sp)s(ecial)41 b(P)m(arameters)150 752 y Fu(The)d(shell)g(treats)h
+(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38
+b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150
+862 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
+1018 y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
+(parameters,)h(starting)f(from)f(one.)59 b(When)36 b(the)g(ex-)630
+1128 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
+(ositional)f(parameter)g(expands)f(to)i(a)630 1237 y(separate)e(w)m
+(ord.)56 b(In)35 b(con)m(texts)i(where)e(it)h(is)g(p)s(erformed,)g
+(those)g(w)m(ords)f(are)h(sub)5 b(ject)35 b(to)630 1347
+y(further)h(w)m(ord)h(splitting)h(and)f(pathname)g(expansion.)61
+b(When)38 b(the)f(expansion)g(o)s(ccurs)630 1457 y(within)25
+b(double)h(quotes,)h(it)f(expands)f(to)i(a)f(single)g(w)m(ord)f(with)h
+(the)g(v)-5 b(alue)26 b(of)g(eac)m(h)h(param-)630 1566
+y(eter)32 b(separated)h(b)m(y)e(the)h(\014rst)f(c)m(haracter)i(of)f
+(the)g Ft(IFS)f Fu(sp)s(ecial)h(v)-5 b(ariable.)45 b(That)32
+b(is,)g Ft("$*")630 1676 y Fu(is)f(equiv)-5 b(alen)m(t)32
+b(to)g Ft("$1)p Fj(c)p Ft($2)p Fj(c)p Ft(...)m(")p Fu(,)f(where)g
+Fr(c)37 b Fu(is)31 b(the)g(\014rst)f(c)m(haracter)j(of)e(the)g(v)-5
+b(alue)32 b(of)f(the)630 1785 y Ft(IFS)e Fu(v)-5 b(ariable.)41
+b(If)29 b Ft(IFS)g Fu(is)h(unset,)f(the)h(parameters)g(are)g(separated)
+g(b)m(y)g(spaces.)41 b(If)29 b Ft(IFS)g Fu(is)630 1895
+y(n)m(ull,)i(the)f(parameters)h(are)g(joined)f(without)g(in)m(terv)m
+(ening)i(separators.)150 2052 y Ft(@)432 b Fu(\($@\))35
+b(Expands)e(to)i(the)g(p)s(ositional)g(parameters,)h(starting)f(from)f
+(one.)53 b(When)34 b(the)g(ex-)630 2161 y(pansion)41
+b(o)s(ccurs)g(within)f(double)h(quotes,)k(eac)m(h)d(parameter)g
+(expands)e(to)i(a)g(separate)630 2271 y(w)m(ord.)50 b(That)34
+b(is,)g Ft("$@")f Fu(is)g(equiv)-5 b(alen)m(t)35 b(to)g
+Ft("$1")29 b("$2")g(...)o Fu(.)51 b(If)33 b(the)h(double-quoted)f(ex-)
+630 2380 y(pansion)38 b(o)s(ccurs)h(within)f(a)h(w)m(ord,)i(the)e
+(expansion)g(of)g(the)g(\014rst)f(parameter)h(is)g(joined)630
+2490 y(with)i(the)h(b)s(eginning)e(part)i(of)f(the)h(original)g(w)m
+(ord,)i(and)d(the)h(expansion)f(of)g(the)h(last)630 2600
+y(parameter)31 b(is)f(joined)g(with)f(the)i(last)g(part)e(of)i(the)f
+(original)h(w)m(ord.)40 b(When)30 b(there)h(are)f(no)630
+2709 y(p)s(ositional)e(parameters,)h Ft("$@")d Fu(and)h
+Ft($@)f Fu(expand)h(to)h(nothing)f(\(i.e.,)j(they)e(are)f(remo)m(v)m
+(ed\).)150 2866 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
+(um)m(b)s(er)e(of)h(p)s(ositional)i(parameters)e(in)g(decimal.)150
+3022 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)
+f(of)g(the)g(most)h(recen)m(tly)g(executed)g(foreground)630
+3132 y(pip)s(eline.)150 3289 y Ft(-)432 b Fu(\($-,)24
+b(a)e(h)m(yphen.\))37 b(Expands)20 b(to)i(the)f(curren)m(t)h(option)f
+(\015ags)h(as)f(sp)s(eci\014ed)g(up)s(on)f(in)m(v)m(o)s(cation,)630
+3398 y(b)m(y)38 b(the)h Ft(set)f Fu(builtin)g(command,)j(or)d(those)i
+(set)f(b)m(y)f(the)h(shell)g(itself)g(\(suc)m(h)g(as)g(the)g
+Ft(-i)630 3508 y Fu(option\).)150 3665 y Ft($)432 b Fu(\($$\))31
+b(Expands)d(to)j(the)e(pro)s(cess)h Fm(id)f Fu(of)h(the)g(shell.)41
+b(In)28 b(a)i Ft(\(\))f Fu(subshell,)h(it)g(expands)e(to)j(the)630
+3774 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g
+(not)g(the)f(subshell.)150 3931 y Ft(!)432 b Fu(\($!\))51
+b(Expands)32 b(to)i(the)g(pro)s(cess)f Fm(id)h Fu(of)f(the)h(job)f
+(most)h(recen)m(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630
+4040 y(ground,)26 b(whether)g(executed)g(as)h(an)f(async)m(hronous)f
+(command)h(or)g(using)g(the)g Ft(bg)f Fu(builtin)630
+4150 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g
+(page)h(98\).)150 4307 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)g
+(name)g(of)f(the)h(shell)g(or)f(shell)h(script.)83 b(This)44
+b(is)g(set)h(at)h(shell)630 4416 y(initialization.)d(If)27
+b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e(a)i(\014le)e(of)h(commands)g
+(\(see)g(Section)h(3.8)g([Shell)630 4526 y(Scripts],)g(page)g(39\),)h
+Ft($0)e Fu(is)h(set)g(to)g(the)f(name)h(of)f(that)h(\014le.)41
+b(If)28 b(Bash)g(is)h(started)g(with)f(the)630 4635 y
+Ft(-c)i Fu(option)h(\(see)h(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)g
+(page)f(80\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)f(\014rst)630
+4745 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f(executed,)i
+(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31 b(it)g(is)f(set)630
+4855 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m(ok)m(e)h(Bash,)f
+(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150 5011
+y Ft(_)432 b Fu(\($)p 716 5011 28 4 v 41 w(,)41 b(an)e(underscore.\))67
+b(A)m(t)40 b(shell)f(startup,)i(set)f(to)g(the)f(absolute)h(pathname)f
+(used)f(to)630 5121 y(in)m(v)m(ok)m(e)43 b(the)e(shell)g(or)g(shell)g
+(script)g(b)s(eing)f(executed)i(as)f(passed)g(in)f(the)h(en)m(vironmen)
+m(t)630 5230 y(or)34 b(argumen)m(t)g(list.)52 b(Subsequen)m(tly)-8
+b(,)34 b(expands)f(to)i(the)f(last)h(argumen)m(t)f(to)g(the)g(previous)
+630 5340 y(command,)g(after)f(expansion.)48 b(Also)34
+b(set)g(to)f(the)g(full)g(pathname)g(used)f(to)i(in)m(v)m(ok)m(e)h(eac)
+m(h)p eop end
+%%Page: 21 27
+TeXDict begin 21 26 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)630 299
+y(command)29 b(executed)h(and)f(placed)g(in)g(the)h(en)m(vironmen)m(t)f
+(exp)s(orted)g(to)h(that)g(command.)630 408 y(When)g(c)m(hec)m(king)i
+(mail,)g(this)e(parameter)h(holds)f(the)g(name)h(of)f(the)h(mail)g
+(\014le.)150 639 y Fs(3.5)68 b(Shell)45 b(Expansions)150
+799 y Fu(Expansion)27 b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h
+(after)f(it)h(has)f(b)s(een)f(split)h(in)m(to)i Ft(token)p
+Fu(s.)38 b(There)28 b(are)150 908 y(sev)m(en)j(kinds)e(of)i(expansion)f
+(p)s(erformed:)225 1042 y Fq(\017)60 b Fu(brace)31 b(expansion)225
+1176 y Fq(\017)60 b Fu(tilde)31 b(expansion)225 1309
+y Fq(\017)60 b Fu(parameter)31 b(and)f(v)-5 b(ariable)31
+b(expansion)225 1443 y Fq(\017)60 b Fu(command)30 b(substitution)225
+1577 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225
+1710 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 1844
+y Fq(\017)60 b Fu(\014lename)31 b(expansion)275 2002
+y(The)24 b(order)h(of)h(expansions)f(is:)39 b(brace)25
+b(expansion;)j(tilde)e(expansion,)g(parameter)g(and)f(v)-5
+b(ariable)26 b(ex-)150 2111 y(pansion,)j(arithmetic)i(expansion,)f(and)
+f(command)g(substitution)g(\(done)g(in)h(a)f(left-to-righ)m(t)k
+(fashion\);)150 2221 y(w)m(ord)d(splitting;)h(and)f(\014lename)h
+(expansion.)275 2355 y(On)42 b(systems)h(that)h(can)g(supp)s(ort)e(it,)
+47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m(v)-5
+b(ailable:)69 b Fr(pro)s(cess)150 2464 y(substitution)p
+Fu(.)50 b(This)33 b(is)h(p)s(erformed)e(at)j(the)f(same)g(time)g(as)g
+(tilde,)i(parameter,)f(v)-5 b(ariable,)35 b(and)f(arith-)150
+2574 y(metic)d(expansion)g(and)e(command)i(substitution.)275
+2707 y(Only)k(brace)i(expansion,)h(w)m(ord)e(splitting,)j(and)d
(\014lename)g(expansion)g(can)h(c)m(hange)h(the)e(n)m(um)m(b)s(er)150
-2550 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
+2817 y(of)h(w)m(ords)f(of)g(the)h(expansion;)i(other)e(expansions)f
(expand)g(a)h(single)g(w)m(ord)f(to)h(a)g(single)g(w)m(ord.)58
-b(The)150 2660 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
-(expansions)g(of)h Fs("$@")e Ft(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
-(P)m(arameters],)150 2769 y(page)e(18\))h(and)d Fs("${)p
-Fi(name)11 b Fs([@]}")27 b Ft(\(see)k(Section)h(6.7)f([Arra)m(ys],)g
-(page)g(82\).)275 2912 y(After)41 b(all)i(expansions,)h
-Fs(quote)29 b(removal)40 b Ft(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
-(v)-5 b(al],)47 b(page)42 b(27\))h(is)150 3022 y(p)s(erformed.)150
-3230 y Fj(3.5.1)63 b(Brace)40 b(Expansion)150 3377 y
-Ft(Brace)28 b(expansion)f(is)h(a)f(mec)m(hanism)h(b)m(y)f(whic)m(h)f
-(arbitrary)h(strings)g(ma)m(y)h(b)s(e)f(generated.)40
-b(This)27 b(mec)m(ha-)150 3486 y(nism)e(is)h(similar)g(to)g
-Fq(\014lename)g(expansion)f Ft(\(see)i(Section)f(3.5.8)i([Filename)f
-(Expansion],)f(page)h(25\),)h(but)150 3596 y(the)36 b(\014le)f(names)h
-(generated)g(need)f(not)h(exist.)57 b(P)m(atterns)36
-b(to)g(b)s(e)f(brace)h(expanded)e(tak)m(e)j(the)f(form)f(of)150
-3705 y(an)29 b(optional)i Fq(pream)m(ble)5 b Ft(,)30
-b(follo)m(w)m(ed)i(b)m(y)d(either)h(a)g(series)g(of)g(comma-separated)h
-(strings)e(or)h(a)g(seqeunce)150 3815 y(expression)36
-b(b)s(et)m(w)m(een)g(a)g(pair)g(of)g(braces,)i(follo)m(w)m(ed)f(b)m(y)f
-(an)g(optional)h Fq(p)s(ostscript)r Ft(.)56 b(The)36
-b(pream)m(ble)g(is)150 3924 y(pre\014xed)28 b(to)h(eac)m(h)h(string)f
-(con)m(tained)h(within)e(the)h(braces,)g(and)g(the)g(p)s(ostscript)f
-(is)h(then)f(app)s(ended)f(to)150 4034 y(eac)m(h)32 b(resulting)e
-(string,)h(expanding)e(left)j(to)f(righ)m(t.)275 4177
-y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+b(The)150 2927 y(only)32 b(exceptions)i(to)f(this)f(are)h(the)f
+(expansions)g(of)h Ft("$@")e Fu(\(see)i(Section)g(3.4.2)h([Sp)s(ecial)f
+(P)m(arameters],)150 3036 y(page)e(20\))h(and)d Ft("${)p
+Fj(name)p Ft([@]}")e Fu(\(see)32 b(Section)f(6.7)g([Arra)m(ys],)h(page)
+f(89\).)275 3170 y(After)41 b(all)i(expansions,)h Ft(quote)29
+b(removal)40 b Fu(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m(v)-5
+b(al],)47 b(page)42 b(31\))h(is)150 3279 y(p)s(erformed.)150
+3477 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 3624 y
+Fu(Brace)32 b(expansion)f(is)f(a)i(mec)m(hanism)f(b)m(y)f(whic)m(h)h
+(arbitrary)f(strings)h(ma)m(y)g(b)s(e)f(generated.)43
+b(This)30 b(mec)m(h-)150 3733 y(anism)35 b(is)h(similar)f(to)h
+Fr(\014lename)g(expansion)f Fu(\(see)i(Section)f(3.5.8)h([Filename)g
+(Expansion],)f(page)g(30\),)150 3843 y(but)26 b(the)h(\014lenames)g
+(generated)h(need)f(not)g(exist.)40 b(P)m(atterns)28
+b(to)f(b)s(e)g(brace)g(expanded)f(tak)m(e)i(the)f(form)g(of)150
+3953 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f
+(either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h
+(sequence)150 4062 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
+(braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fr(p)s(ostscript)p
+Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 4172 y(pre\014xed)28
+b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
+(the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
+4281 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
+m(t.)275 4415 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
-(sorted;)150 4287 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
-(ed.)41 b(F)-8 b(or)31 b(example,)390 4430 y Fs(bash$)46
-b(echo)h(a{d,c,b}e)390 4539 y(ade)g(ace)g(abe)275 4682
-y Ft(A)20 b(sequence)h(expression)g(tak)m(es)h(the)f(form)f
-Fs({)p Fi(x)11 b Fs(..)p Fi(y)g Fs([..)p Fi(incr)g Fs(]})p
-Ft(,)18 b(where)i Fq(x)27 b Ft(and)20 b Fq(y)28 b Ft(are)22
-b(either)f(in)m(tegers)150 4792 y(or)42 b(single)h(c)m(haracters,)j
-(and)c Fq(incr)7 b Ft(,)44 b(an)e(optional)h(incremen)m(t,)j(is)c(an)g
-(in)m(teger.)77 b(When)41 b(in)m(tegers)j(are)150 4902
-y(supplied,)e(the)f(expression)g(expands)f(to)h(eac)m(h)h(n)m(um)m(b)s
-(er)e(b)s(et)m(w)m(een)h Fq(x)47 b Ft(and)40 b Fq(y)8
-b Ft(,)44 b(inclusiv)m(e.)73 b(Supplied)150 5011 y(in)m(tegers)33
-b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Fs(0)p Ft(')h(to)g(force)g
+(sorted;)150 4525 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 4658 y Ft(bash$)46
+b(echo)h(a{d,c,b}e)390 4768 y(ade)g(ace)g(abe)275 4902
+y Fu(A)23 b(sequence)g(expression)g(tak)m(es)i(the)e(form)g
+Ft({)p Fj(x)p Ft(..)p Fj(y)p Ft([..)p Fj(incr)p Ft(]})p
+Fu(,)e(where)i Fr(x)29 b Fu(and)23 b Fr(y)30 b Fu(are)24
+b(either)g(in)m(tegers)150 5011 y(or)42 b(single)h(c)m(haracters,)48
+b(and)41 b Fr(incr)p Fu(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an)
+h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 5121
+y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s
+(er)d(b)s(et)m(w)m(een)i Fr(x)47 b Fu(and)41 b Fr(y)p
+Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 5230 y(in)m(tegers)33
+b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Ft(0)p Fu(')h(to)g(force)g
(eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42
-b(When)31 b(either)150 5121 y Fq(x)43 b Ft(or)36 b Fq(y)44
-b Ft(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
-(force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150
-5230 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
-(necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
-150 5340 y(expression)h(expands)f(to)i(eac)m(h)g(c)m(haracter)g
-(lexicographically)i(b)s(et)m(w)m(een)e Fq(x)43 b Ft(and)37
-b Fq(y)8 b Ft(,)38 b(inclusiv)m(e.)62 b(Note)p eop end
-%%Page: 20 26
-TeXDict begin 20 25 bop 150 -116 a Ft(20)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(that)f(b)s(oth)e Fq(x)35
-b Ft(and)28 b Fq(y)37 b Ft(m)m(ust)29 b(b)s(e)f(of)h(the)g(same)g(t)m
-(yp)s(e.)41 b(When)28 b(the)i(incremen)m(t)f(is)g(supplied,)f(it)i(is)f
-(used)f(as)150 408 y(the)j(di\013erence)f(b)s(et)m(w)m(een)h(eac)m(h)h
-(term.)41 b(The)30 b(default)g(incremen)m(t)h(is)g(1)f(or)h(-1)g(as)f
-(appropriate.)275 544 y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s
-(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i
-(sp)s(ecial)150 654 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f
-(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g(textual.)46
-b(Bash)32 b(do)s(es)f(not)h(apply)150 764 y(an)m(y)27
-b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g
-(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)150
-873 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f(parameter)h
-(expansion,)g(the)g(string)f(`)p Fs(${)p Ft(')g(is)g(not)g(considered)g
-(eligible)i(for)150 983 y(brace)31 b(expansion.)275 1119
-y(A)e(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)h
-(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-1228 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
-b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 1338 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-1474 y(A)25 b Fs({)g Ft(or)g(`)p Fs(,)p Ft(')g(ma)m(y)h(b)s(e)f(quoted)
-g(with)g(a)h(bac)m(kslash)f(to)h(prev)m(en)m(t)g(its)g(b)s(eing)f
-(considered)g(part)g(of)g(a)h(brace)150 1583 y(expression.)51
-b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
-(expansion,)h(the)f(string)g(`)p Fs(${)p Ft(')g(is)g(not)g(considered)
-150 1693 y(eligible)e(for)e(brace)h(expansion.)275 1829
-y(This)f(construct)h(is)g(t)m(ypically)i(used)d(as)h(shorthand)f(when)g
-(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)150
-1939 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m(v)m
-(e)i(example:)390 2074 y Fs(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 2210 y Ft(or)390 2346 y Fs(chown)g(root)h
-(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150
-2547 y Fj(3.5.2)63 b(Tilde)41 b(Expansion)150 2694 y
-Ft(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m
-(haracter)h(\(`)p Fs(~)p Ft('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)
-d(to)j(the)f(\014rst)150 2804 y(unquoted)23 b(slash)h(\(or)h(all)g(c)m
-(haracters,)i(if)d(there)g(is)h(no)f(unquoted)f(slash\))h(are)h
-(considered)f(a)g Fq(tilde-pre\014x)6 b Ft(.)150 2913
-y(If)38 b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f
-(are)h(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150
-3023 y(follo)m(wing)28 b(the)f(tilde)g(are)g(treated)h(as)f(a)g(p)s
-(ossible)f Fq(login)i(name)5 b Ft(.)40 b(If)26 b(this)g(login)i(name)f
-(is)f(the)h(n)m(ull)g(string,)150 3132 y(the)35 b(tilde)g(is)g
-(replaced)g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g
-Fs(HOME)e Ft(shell)i(v)-5 b(ariable.)54 b(If)34 b Fs(HOME)g
-Ft(is)h(unset,)g(the)g(home)150 3242 y(directory)e(of)g(the)f(user)g
-(executing)i(the)e(shell)h(is)f(substituted)g(instead.)47
-b(Otherwise,)33 b(the)g(tilde-pre\014x)150 3352 y(is)d(replaced)h(with)
-f(the)h(home)f(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)
-e(login)j(name.)275 3487 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
-Fs(~+)p Ft(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
-b(ariable)34 b Fs(PWD)d Ft(replaces)j(the)f(tilde-pre\014x.)47
-b(If)150 3597 y(the)31 b(tilde-pre\014x)f(is)g(`)p Fs(~-)p
-Ft(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
-b(ariable)31 b Fs(OLDPWD)p Ft(,)e(if)h(it)h(is)g(set,)g(is)f
-(substituted.)275 3733 y(If)e(the)i(c)m(haracters)g(follo)m(wing)h(the)
-e(tilde)h(in)f(the)g(tilde-pre\014x)h(consist)f(of)h(a)f(n)m(um)m(b)s
-(er)f Fq(N)10 b Ft(,)30 b(optionally)150 3843 y(pre\014xed)22
-b(b)m(y)h(a)h(`)p Fs(+)p Ft(')f(or)h(a)f(`)p Fs(-)p Ft(',)j(the)d
-(tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 3952 y(directory)36 b(stac)m(k,)i(as)e(it)
-g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
-Fs(dirs)g Ft(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 4062 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
-(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 4171 y(page)c(83\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
-e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
-(leading)h(`)p Fs(+)p Ft(')g(or)150 4281 y(`)p Fs(-)p
-Ft(',)31 b(`)p Fs(+)p Ft(')f(is)h(assumed.)275 4417 y(If)e(the)i(login)
-g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
-(fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
-4553 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
-(k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
-(wing)150 4662 y(a)d(`)p Fs(:)p Ft(')g(or)g(the)g(\014rst)f(`)p
-Fs(=)p Ft('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
-(also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
-b(one)150 4772 y(ma)m(y)27 b(use)e(\014le)h(names)g(with)g(tildes)g(in)
-g(assignmen)m(ts)h(to)g Fs(PATH)p Ft(,)f Fs(MAILPATH)p
-Ft(,)e(and)i Fs(CDPATH)p Ft(,)f(and)h(the)g(shell)150
-4882 y(assigns)31 b(the)f(expanded)g(v)-5 b(alue.)275
-5018 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h
-(treats)g(unquoted)e(tilde-pre\014xes:)150 5179 y Fs(~)432
-b Ft(The)30 b(v)-5 b(alue)31 b(of)f Fs($HOME)150 5340
-y(~/foo)240 b Ft(`)p Fs($HOME/foo)p Ft(')p eop end
-%%Page: 21 27
-TeXDict begin 21 26 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
-y Fs(~fred/foo)630 408 y Ft(The)30 b(sub)s(directory)f
-Fs(foo)h Ft(of)g(the)h(home)f(directory)h(of)g(the)f(user)g
-Fs(fred)150 580 y(~+/foo)192 b Ft(`)p Fs($PWD/foo)p Ft(')150
-752 y Fs(~-/foo)g Ft(`)p Fs(${OLDPWD-'~-'}/foo)p Ft(')150
-924 y Fs(~)p Fi(N)384 b Ft(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
-(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p Fi(N)11
-b Ft(')150 1096 y Fs(~+)p Fi(N)336 b Ft(The)30 b(string)g(that)h(w)m
-(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Fs(dirs)g(+)p
-Fi(N)11 b Ft(')150 1267 y Fs(~-)p Fi(N)336 b Ft(The)30
-b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p
-Fs(dirs)g(-)p Fi(N)11 b Ft(')150 1479 y Fj(3.5.3)63 b(Shell)41
-b(P)m(arameter)f(Expansion)150 1626 y Ft(The)g(`)p Fs($)p
-Ft(')h(c)m(haracter)i(in)m(tro)s(duces)d(parameter)h(expansion,)j
-(command)d(substitution,)i(or)e(arithmetic)150 1735 y(expansion.)d(The)
-22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)g(b)s(e)e(expanded)h(ma)
-m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m(h)150
-1845 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g(v)-5
-b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
-(immediately)150 1955 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
-(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 2101
-y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g
-(is)g(the)g(\014rst)g(`)p Fs(})p Ft(')g(not)g(escap)s(ed)h(b)m(y)f(a)
-150 2211 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
-(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150
-2321 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
-2468 y(The)40 b(basic)h(form)g(of)g(parameter)h(expansion)e(is)h($)p
-Fs({)p Fq(parameter)7 b Fs(})p Ft(.)73 b(The)40 b(v)-5
-b(alue)42 b(of)f Fq(parameter)48 b Ft(is)150 2577 y(substituted.)43
-b(The)31 b(braces)g(are)h(required)e(when)h Fq(parameter)38
-b Ft(is)31 b(a)h(p)s(ositional)g(parameter)g(with)f(more)150
-2687 y(than)h(one)g(digit,)i(or)e(when)g Fq(parameter)39
-b Ft(is)32 b(follo)m(w)m(ed)i(b)m(y)e(a)h(c)m(haracter)h(that)e(is)h
-(not)f(to)h(b)s(e)f(in)m(terpreted)150 2796 y(as)f(part)f(of)g(its)h
-(name.)275 2943 y(If)c(the)g(\014rst)g(c)m(haracter)i(of)f
-Fq(parameter)35 b Ft(is)27 b(an)h(exclamation)i(p)s(oin)m(t)d(\(!\),)i
-(a)f(lev)m(el)i(of)d(v)-5 b(ariable)29 b(indirec-)150
-3053 y(tion)e(is)f(in)m(tro)s(duced.)39 b(Bash)27 b(uses)e(the)i(v)-5
-b(alue)27 b(of)f(the)h(v)-5 b(ariable)27 b(formed)f(from)g(the)g(rest)h
-(of)f Fq(parameter)34 b Ft(as)150 3162 y(the)e(name)h(of)f(the)h(v)-5
-b(ariable;)34 b(this)e(v)-5 b(ariable)33 b(is)g(then)f(expanded)f(and)h
-(that)h(v)-5 b(alue)32 b(is)h(used)e(in)h(the)h(rest)150
-3272 y(of)h(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
-b(alue)34 b(of)g Fq(parameter)40 b Ft(itself.)51 b(This)33
-b(is)g(kno)m(wn)g(as)h Fs(indirect)150 3381 y(expansion)p
-Ft(.)k(The)30 b(exceptions)h(to)h(this)e(are)h(the)f(expansions)g(of)h
-($)p Fs({)p Ft(!)p Fq(pre\014x)150 3491 y Fs(})36 b Ft(and)f($)p
-Fs({)p Ft(!)p Fq(name)5 b Ft([)p Fs(@)p Ft(])p Fs(})37
-b Ft(describ)s(ed)e(b)s(elo)m(w.)58 b(The)36 b(exclamation)i(p)s(oin)m
-(t)e(m)m(ust)g(immediately)h(follo)m(w)h(the)150 3601
-y(left)31 b(brace)g(in)f(order)g(to)h(in)m(tro)s(duce)f(indirection.)
-275 3748 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
-Fq(w)m(ord)h Ft(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 3857 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 4004 y(When)h(not)h(p)s(erforming)e
-(substring)h(expansion,)h(using)f(the)h(form)f(describ)s(ed)g(b)s(elo)m
-(w,)h(Bash)g(tests)150 4114 y(for)44 b(a)i(parameter)f(that)g(is)g
-(unset)f(or)h(n)m(ull.)84 b(Omitting)45 b(the)g(colon)h(results)e(in)g
-(a)i(test)f(only)g(for)g(a)150 4223 y(parameter)36 b(that)f(is)g
-(unset.)55 b(Put)34 b(another)i(w)m(a)m(y)-8 b(,)38 b(if)d(the)g(colon)
-h(is)f(included,)h(the)f(op)s(erator)g(tests)h(for)150
-4333 y(b)s(oth)22 b Fq(parameter)7 b Ft('s)22 b(existence)i(and)e(that)
-h(its)g(v)-5 b(alue)23 b(is)g(not)f(n)m(ull;)k(if)c(the)h(colon)g(is)g
-(omitted,)i(the)e(op)s(erator)150 4442 y(tests)31 b(only)g(for)f
-(existence.)150 4620 y Fs(${)p Fi(parameter)11 b Fs(:)p
-Fp(\000)p Fi(word)g Fs(})630 4730 y Ft(If)30 b Fq(parameter)37
-b Ft(is)30 b(unset)g(or)h(n)m(ull,)f(the)h(expansion)f(of)g
-Fq(w)m(ord)k Ft(is)c(substituted.)40 b(Otherwise,)630
-4839 y(the)31 b(v)-5 b(alue)30 b(of)h Fq(parameter)37
-b Ft(is)31 b(substituted.)150 5011 y Fs(${)p Fi(parameter)11
-b Fs(:=)p Fi(word)g Fs(})630 5121 y Ft(If)32 b Fq(parameter)40
-b Ft(is)32 b(unset)g(or)h(n)m(ull,)g(the)f(expansion)h(of)f
-Fq(w)m(ord)k Ft(is)d(assigned)f(to)i Fq(parameter)7 b
-Ft(.)630 5230 y(The)30 b(v)-5 b(alue)32 b(of)f Fq(parameter)38
-b Ft(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
-b(parameters)e(and)f(sp)s(ecial)630 5340 y(parameters)h(ma)m(y)g(not)f
-(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)p
+b(When)31 b(either)150 5340 y Fr(x)43 b Fu(or)36 b Fr(y)44
+b Fu(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
+(force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)p
eop end
%%Page: 22 28
-TeXDict begin 22 27 bop 150 -116 a Ft(22)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(${)p Fi(parameter)11
-b Fs(:?)p Fi(word)g Fs(})630 408 y Ft(If)26 b Fq(parameter)33
-b Ft(is)26 b(n)m(ull)g(or)g(unset,)h(the)f(expansion)g(of)g
-Fq(w)m(ord)k Ft(\(or)c(a)h(message)g(to)g(that)f(e\013ect)630
-518 y(if)i Fq(w)m(ord)j Ft(is)d(not)g(presen)m(t\))h(is)f(written)g(to)
-h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f(it)h(is)f(not)630
-628 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30
-b(the)h(v)-5 b(alue)31 b(of)f Fq(parameter)38 b Ft(is)30
-b(substituted.)150 774 y Fs(${)p Fi(parameter)11 b Fs(:+)p
-Fi(word)g Fs(})630 883 y Ft(If)35 b Fq(parameter)42 b
-Ft(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 993 y(of)31 b Fq(w)m(ord)i
-Ft(is)e(substituted.)150 1139 y Fs(${)p Fi(parameter)11
-b Fs(:)p Fi(offset)g Fs(})150 1249 y(${)p Fi(parameter)g
-Fs(:)p Fi(offset)g Fs(:)p Fi(le)o(ngt)o(h)g Fs(})630
-1358 y Ft(Expands)44 b(to)i(up)e(to)i Fq(length)g Ft(c)m(haracters)h
-(of)e Fq(parameter)53 b Ft(starting)46 b(at)g(the)f(c)m(haracter)630
-1468 y(sp)s(eci\014ed)30 b(b)m(y)g Fq(o\013set)r Ft(.)43
-b(If)30 b Fq(length)h Ft(is)g(omitted,)g(expands)f(to)h(the)g
-(substring)f(of)g Fq(parameter)630 1577 y Ft(starting)38
-b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h
-Fq(o\013set)r Ft(.)62 b Fq(length)38 b Ft(and)e Fq(o\013set)k
-Ft(are)e(arithmetic)630 1687 y(expressions)30 b(\(see)i(Section)g(6.5)g
-([Shell)f(Arithmetic],)h(page)g(80\).)43 b(This)30 b(is)h(referred)f
-(to)i(as)630 1797 y(Substring)d(Expansion.)630 1924 y(If)c
-Fq(o\013set)k Ft(ev)-5 b(aluates)27 b(to)g(a)f(n)m(um)m(b)s(er)e(less)i
-(than)g(zero,)h(the)f(v)-5 b(alue)26 b(is)g(used)f(as)h(an)g(o\013set)g
-(from)630 2034 y(the)c(end)e(of)i(the)f(v)-5 b(alue)22
-b(of)g Fq(parameter)7 b Ft(.)38 b(If)20 b Fq(length)i
-Ft(ev)-5 b(aluates)23 b(to)f(a)g(n)m(um)m(b)s(er)e(less)i(than)f(zero,)
-630 2144 y(and)g Fq(parameter)29 b Ft(is)21 b(not)h(`)p
-Fs(@)p Ft(')g(and)f(not)h(an)g(indexed)f(or)h(asso)s(ciativ)m(e)i(arra)
-m(y)-8 b(,)25 b(it)d(is)g(in)m(terpreted)630 2253 y(as)37
-b(an)f(o\013set)i(from)e(the)h(end)f(of)h(the)f(v)-5
-b(alue)37 b(of)g Fq(parameter)44 b Ft(rather)36 b(than)h(a)f(n)m(um)m
-(b)s(er)g(of)630 2363 y(c)m(haracters,)49 b(and)42 b(the)i(expansion)f
-(is)h(the)g(c)m(haracters)h(b)s(et)m(w)m(een)f(the)g(t)m(w)m(o)g
-(o\013sets.)81 b(If)630 2472 y Fq(parameter)37 b Ft(is)31
-b(`)p Fs(@)p Ft(',)g(the)g(result)f(is)h Fq(length)g
-Ft(p)s(ositional)g(parameters)g(b)s(eginning)e(at)j Fq(o\013set)r
-Ft(.)630 2582 y(If)k Fq(parameter)43 b Ft(is)36 b(an)g(indexed)g(arra)m
-(y)g(name)g(subscripted)f(b)m(y)h(`)p Fs(@)p Ft(')g(or)h(`)p
-Fs(*)p Ft(',)h(the)e(result)g(is)630 2692 y(the)h Fq(length)g
-Ft(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)g(b)s(eginning)f(with)h
-Fs(${)p Fi(parameter)11 b Fs([)p Fi(offset)g Fs(])o(})p
-Ft(.)54 b(A)630 2801 y(negativ)m(e)33 b Fq(o\013set)g
-Ft(is)e(tak)m(en)h(relativ)m(e)g(to)g(one)f(greater)g(than)g(the)f
-(maxim)m(um)h(index)f(of)h(the)630 2911 y(sp)s(eci\014ed)k(arra)m(y)-8
-b(.)57 b(Substring)34 b(expansion)i(applied)f(to)h(an)g(asso)s(ciativ)m
-(e)i(arra)m(y)e(pro)s(duces)630 3020 y(unde\014ned)28
-b(results.)630 3148 y(Note)37 b(that)f(a)g(negativ)m(e)i(o\013set)f(m)m
-(ust)f(b)s(e)f(separated)h(from)f(the)h(colon)h(b)m(y)e(at)i(least)g
-(one)630 3258 y(space)g(to)g(a)m(v)m(oid)g(b)s(eing)f(confused)f(with)h
-(the)h(`)p Fs(:-)p Ft(')f(expansion.)57 b(Substring)35
-b(indexing)h(is)630 3367 y(zero-based)24 b(unless)f(the)h(p)s
-(ositional)g(parameters)g(are)g(used,)g(in)g(whic)m(h)f(case)h(the)g
-(indexing)630 3477 y(starts)30 b(at)g(1)f(b)m(y)h(default.)40
-b(If)29 b Fq(o\013set)j Ft(is)e(0,)g(and)f(the)g(p)s(ositional)h
-(parameters)g(are)g(used,)f Fs($@)630 3587 y Ft(is)h(pre\014xed)g(to)h
-(the)f(list.)150 3733 y Fs(${!)p Fi(prefix)11 b Fs(*})150
-3842 y(${!)p Fi(prefix)g Fs(@})630 3952 y Ft(Expands)23
-b(to)i(the)g(names)f(of)h(v)-5 b(ariables)25 b(whose)f(names)g(b)s
-(egin)g(with)g Fq(pre\014x)6 b Ft(,)25 b(separated)g(b)m(y)630
-4061 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Fs(IFS)f
-Ft(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Fs(@)p
-Ft(')g(is)g(used)f(and)h(the)g(expan-)630 4171 y(sion)35
+TeXDict begin 22 27 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)150 299
+y(same)36 b(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
+(necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
+150 408 y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g
+(lexicographically)h(b)s(et)m(w)m(een)e Fr(x)30 b Fu(and)24
+b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 518 y(default)32
+b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e Fr(x)39
+b Fu(and)31 b Fr(y)40 b Fu(m)m(ust)32 b(b)s(e)g(of)g(the)h(same)f(t)m
+(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150 628 y(is)d(supplied,)g
+(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s(et)m(w)m(een)g(eac)m(h)
+g(term.)41 b(The)29 b(default)g(incremen)m(t)h(is)f(1)h(or)f(-1)150
+737 y(as)i(appropriate.)275 873 y(Brace)36 b(expansion)g(is)f(p)s
+(erformed)f(b)s(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g
+(c)m(haracters)i(sp)s(ecial)150 982 y(to)32 b(other)g(expansions)g(are)
+g(preserv)m(ed)f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g
+(textual.)46 b(Bash)32 b(do)s(es)f(not)h(apply)150 1092
+y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)
+i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h
+(braces.)150 1201 y(T)-8 b(o)37 b(a)m(v)m(oid)g(con\015icts)g(with)f
+(parameter)h(expansion,)g(the)g(string)f(`)p Ft(${)p
+Fu(')g(is)g(not)g(considered)g(eligible)i(for)150 1311
+y(brace)31 b(expansion.)275 1446 y(A)e(correctly-formed)i(brace)f
+(expansion)f(m)m(ust)h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g
+(closing)i(braces,)150 1556 y(and)h(at)i(least)g(one)f(unquoted)g
+(comma)g(or)g(a)h(v)-5 b(alid)33 b(sequence)g(expression.)48
+b(An)m(y)33 b(incorrectly)h(formed)150 1666 y(brace)d(expansion)f(is)g
+(left)h(unc)m(hanged.)275 1801 y(A)25 b Fi({)h Fu(or)f(`)p
+Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)h(with)f(a)g(bac)m(kslash)h(to)g
+(prev)m(en)m(t)g(its)g(b)s(eing)f(considered)g(part)g(of)h(a)g(brace)
+150 1911 y(expression.)51 b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e
+(with)g(parameter)g(expansion,)h(the)f(string)g(`)p Ft(${)p
+Fu(')g(is)g(not)g(considered)150 2020 y(eligible)e(for)e(brace)h
+(expansion.)275 2156 y(This)f(construct)h(is)g(t)m(ypically)i(used)d
+(as)h(shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g
+(to)150 2265 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s
+(o)m(v)m(e)i(example:)390 2401 y Ft(mkdir)46 b
+(/usr/local/src/bash/{old,n)o(ew,)o(dist)o(,bug)o(s})275
+2536 y Fu(or)390 2672 y Ft(chown)g(root)h(/usr/{ucb/{ex,edit},lib/)o
+({ex?)o(.?*,)o(how)o(_ex})o(})150 2872 y Fk(3.5.2)63
+b(Tilde)41 b(Expansion)150 3019 y Fu(If)29 b(a)h(w)m(ord)g(b)s(egins)f
+(with)g(an)h(unquoted)f(tilde)h(c)m(haracter)h(\(`)p
+Ft(~)p Fu('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)d(to)j(the)f
+(\014rst)150 3128 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m(haracters,)h
+(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g(considered)g(a)g
+Fr(tilde-pre\014x)p Fu(.)150 3238 y(If)38 b(none)g(of)g(the)h(c)m
+(haracters)g(in)f(the)h(tilde-pre\014x)f(are)h(quoted,)h(the)f(c)m
+(haracters)h(in)d(the)i(tilde-pre\014x)150 3348 y(follo)m(wing)28
+b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s(ossible)g
+Fr(login)h(name)p Fu(.)39 b(If)27 b(this)g(login)h(name)f(is)g(the)g(n)
+m(ull)g(string,)150 3457 y(the)35 b(tilde)g(is)g(replaced)g(with)f(the)
+h(v)-5 b(alue)35 b(of)g(the)g Ft(HOME)e Fu(shell)i(v)-5
+b(ariable.)54 b(If)34 b Ft(HOME)g Fu(is)h(unset,)g(the)g(home)150
+3567 y(directory)e(of)g(the)f(user)g(executing)i(the)e(shell)h(is)f
+(substituted)g(instead.)47 b(Otherwise,)33 b(the)g(tilde-pre\014x)150
+3676 y(is)d(replaced)h(with)f(the)h(home)f(directory)h(asso)s(ciated)h
+(with)e(the)h(sp)s(eci\014ed)e(login)j(name.)275 3812
+y(If)g(the)h(tilde-pre\014x)f(is)h(`)p Ft(~+)p Fu(',)g(the)g(v)-5
+b(alue)33 b(of)g(the)g(shell)g(v)-5 b(ariable)34 b Ft(PWD)d
+Fu(replaces)j(the)f(tilde-pre\014x.)47 b(If)150 3921
+y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p Fu(',)h(the)f(v)-5
+b(alue)31 b(of)g(the)f(shell)h(v)-5 b(ariable)31 b Ft(OLDPWD)p
+Fu(,)e(if)h(it)h(is)g(set,)g(is)f(substituted.)275 4057
+y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)e(tilde)g(in)g(the)g
+(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s(er)d
+Fr(N)p Fu(,)j(optionally)150 4166 y(pre\014xed)22 b(b)m(y)h(a)h(`)p
+Ft(+)p Fu(')f(or)h(a)f(`)p Ft(-)p Fu(',)j(the)d(tilde-pre\014x)g(is)h
+(replaced)f(with)g(the)h(corresp)s(onding)e(elemen)m(t)j(from)e(the)150
+4276 y(directory)36 b(stac)m(k,)i(as)e(it)g(w)m(ould)f(b)s(e)g(displa)m
+(y)m(ed)h(b)m(y)g(the)f Ft(dirs)g Fu(builtin)g(in)m(v)m(ok)m(ed)i(with)
+e(the)g(c)m(haracters)150 4386 y(follo)m(wing)40 b(tilde)f(in)g(the)f
+(tilde-pre\014x)h(as)g(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)
+e(Directory)i(Stac)m(k],)150 4495 y(page)c(90\).)57 b(If)35
+b(the)g(tilde-pre\014x,)i(sans)e(the)h(tilde,)h(consists)f(of)g(a)f(n)m
+(um)m(b)s(er)f(without)i(a)f(leading)h(`)p Ft(+)p Fu(')g(or)150
+4605 y(`)p Ft(-)p Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275
+4740 y(If)e(the)i(login)g(name)g(is)f(in)m(v)-5 b(alid,)31
+b(or)g(the)f(tilde)h(expansion)f(fails,)i(the)e(w)m(ord)g(is)h(left)g
+(unc)m(hanged.)275 4876 y(Eac)m(h)38 b(v)-5 b(ariable)38
+b(assignmen)m(t)h(is)e(c)m(hec)m(k)m(ed)j(for)d(unquoted)g
+(tilde-pre\014xes)h(immediately)g(follo)m(wing)150 4985
+y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p Ft(=)p
+Fu('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g(also)h(p)s
+(erformed.)52 b(Consequen)m(tly)-8 b(,)37 b(one)150 5095
+y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g(assignmen)m(ts)g
+(to)h Ft(PATH)p Fu(,)f Ft(MAILPATH)p Fu(,)e(and)h Ft(CDPATH)p
+Fu(,)g(and)h(the)g(shell)150 5205 y(assigns)j(the)f(expanded)g(v)-5
+b(alue.)275 5340 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g
+(Bash)h(treats)g(unquoted)e(tilde-pre\014xes:)p eop end
+%%Page: 23 29
+TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
+y Ft(~)432 b Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft($HOME)150
+474 y(~/foo)240 b($HOME/foo)150 649 y(~fred/foo)630 759
+y Fu(The)30 b(sub)s(directory)f Ft(foo)h Fu(of)g(the)h(home)f
+(directory)h(of)g(the)f(user)g Ft(fred)150 934 y(~+/foo)192
+b($PWD/foo)150 1109 y(~-/foo)g(${OLDPWD-'~-'}/foo)150
+1284 y(~)p Fj(N)384 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
+(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150
+1459 y Ft(~+)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)
+g(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p
+Fu(')150 1634 y Ft(~-)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m
+(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p
+Fj(N)p Fu(')150 1849 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f
+(Expansion)150 1996 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m
+(tro)s(duces)d(parameter)h(expansion,)j(command)d(substitution,)i(or)e
+(arithmetic)150 2105 y(expansion.)d(The)22 b(parameter)h(name)f(or)g
+(sym)m(b)s(ol)h(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)
+f(braces,)i(whic)m(h)150 2215 y(are)31 b(optional)g(but)f(serv)m(e)h
+(to)h(protect)f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)
+g(c)m(haracters)i(immediately)150 2324 y(follo)m(wing)g(it)f(whic)m(h)f
+(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275
+2474 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f
+(brace)g(is)g(the)g(\014rst)g(`)p Ft(})p Fu(')g(not)g(escap)s(ed)h(b)m
+(y)f(a)150 2584 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)
+j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)
+150 2694 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
+2844 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p
+Fi({)p Fr(parameter)7 b Fi(})p Fu(.)74 b(The)41 b(v)-5
+b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 2953 y(substituted.)43
+b(The)31 b Fr(parameter)39 b Fu(is)31 b(a)h(shell)f(parameter)h(as)g
+(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)h([Shell)150
+3063 y(P)m(arameters],)e(page)f(18\))h(or)e(an)g(arra)m(y)h(reference)f
+(\(see)i(Section)f(6.7)g([Arra)m(ys],)g(page)g(89\).)42
+b(The)29 b(braces)150 3172 y(are)j(required)g(when)f
+Fr(parameter)39 b Fu(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f
+(more)g(than)g(one)g(digit,)i(or)e(when)150 3282 y Fr(parameter)37
+b Fu(is)31 b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f
+(not)h(to)g(b)s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275
+3432 y(If)36 b(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)44
+b Fu(is)37 b(an)f(exclamation)j(p)s(oin)m(t)e(\(!\),)i(it)f(in)m(tro)s
+(duces)e(a)h(lev)m(el)i(of)150 3542 y(v)-5 b(ariable)30
+b(indirection.)41 b(Bash)30 b(uses)f(the)g(v)-5 b(alue)30
+b(of)g(the)f(v)-5 b(ariable)30 b(formed)f(from)g(the)h(rest)f(of)h
+Fr(parameter)150 3651 y Fu(as)c(the)g(name)g(of)g(the)h(v)-5
+b(ariable;)28 b(this)e(v)-5 b(ariable)27 b(is)f(then)f(expanded)g(and)h
+(that)g(v)-5 b(alue)27 b(is)f(used)f(in)h(the)g(rest)150
+3761 y(of)34 b(the)f(substitution,)i(rather)e(than)g(the)h(v)-5
+b(alue)34 b(of)g Fr(parameter)40 b Fu(itself.)51 b(This)33
+b(is)g(kno)m(wn)g(as)h Ft(indirect)150 3871 y(expansion)p
+Fu(.)78 b(The)43 b(exceptions)i(to)f(this)f(are)h(the)g(expansions)g
+(of)f($)p Fi({)p Fu(!)p Fr(pre\014x)6 b Fu(*)p Fi(})45
+b Fu(and)e($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p Fi(})150
+3980 y Fu(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28
+b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g
+(left)f(brace)h(in)f(order)f(to)150 4090 y(in)m(tro)s(duce)i
+(indirection.)275 4240 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
+(w,)i Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
+(parameter)e(expansion,)150 4349 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 4500 y(When)h(not)h(p)s(erforming)e
+(substring)h(expansion,)h(using)g(the)f(form)h(describ)s(ed)e(b)s(elo)m
+(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 4609 y(Bash)d(tests)h(for)e(a)i
+(parameter)f(that)h(is)e(unset)h(or)g(n)m(ull.)48 b(Omitting)33
+b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 4719
+y(for)c(a)i(parameter)f(that)g(is)g(unset.)41 b(Put)31
+b(another)f(w)m(a)m(y)-8 b(,)33 b(if)e(the)f(colon)i(is)f(included,)f
+(the)h(op)s(erator)g(tests)150 4828 y(for)36 b(b)s(oth)g
+Fr(parameter)7 b Fu('s)37 b(existence)h(and)e(that)i(its)f(v)-5
+b(alue)37 b(is)g(not)f(n)m(ull;)k(if)d(the)g(colon)h(is)e(omitted,)k
+(the)150 4938 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
+5121 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
+Ft(})630 5230 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
+(ull,)f(the)h(expansion)f(of)g Fr(w)m(ord)k Fu(is)c(substituted.)40
+b(Otherwise,)630 5340 y(the)31 b(v)-5 b(alue)30 b(of)h
+Fr(parameter)37 b Fu(is)31 b(substituted.)p eop end
+%%Page: 24 30
+TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299
+y Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 408
+y Fu(If)33 b Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h(the)f
+(expansion)g(of)g Fr(w)m(ord)j Fu(is)d(assigned)g(to)h
+Fr(parameter)p Fu(.)630 518 y(The)c(v)-5 b(alue)32 b(of)f
+Fr(parameter)38 b Fu(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
+b(parameters)e(and)f(sp)s(ecial)630 628 y(parameters)h(ma)m(y)g(not)f
+(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150
+786 y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630
+896 y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h
+(the)f(expansion)g(of)g Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that)
+f(e\013ect)630 1005 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h
+(is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f
+(it)h(is)f(not)630 1115 y(in)m(teractiv)m(e,)33 b(exits.)42
+b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fr(parameter)38
+b Fu(is)30 b(substituted.)150 1273 y Ft(${)p Fj(parameter)p
+Ft(:+)p Fj(word)p Ft(})630 1383 y Fu(If)35 b Fr(parameter)42
+b Fu(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
+(otherwise)e(the)h(expansion)630 1492 y(of)31 b Fr(w)m(ord)i
+Fu(is)e(substituted.)150 1650 y Ft(${)p Fj(parameter)p
+Ft(:)p Fj(offset)p Ft(})150 1760 y(${)p Fj(parameter)p
+Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 1870
+y Fu(This)f(is)h(referred)f(to)h(as)g(Substring)f(Expansion.)41
+b(It)31 b(expands)f(to)h(up)f(to)h Fr(length)g Fu(c)m(harac-)630
+1979 y(ters)k(of)g(the)h(v)-5 b(alue)35 b(of)g Fr(parameter)42
+b Fu(starting)36 b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h
+Fr(o\013set)p Fu(.)55 b(If)630 2089 y Fr(parameter)32
+b Fu(is)26 b(`)p Ft(@)p Fu(',)g(an)f(indexed)g(arra)m(y)h(subscripted)e
+(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(or)g(an)f(asso)s
+(ciativ)m(e)j(ar-)630 2198 y(ra)m(y)g(name,)h(the)f(results)g(di\013er)
+g(as)g(describ)s(ed)f(b)s(elo)m(w.)40 b(If)28 b Fr(length)g
+Fu(is)g(omitted,)i(it)f(expands)630 2308 y(to)e(the)g(substring)f(of)g
+(the)h(v)-5 b(alue)27 b(of)g Fr(parameter)33 b Fu(starting)28
+b(at)f(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)630
+2418 y Fr(o\013set)37 b Fu(and)d(extending)g(to)h(the)f(end)g(of)g(the)
+g(v)-5 b(alue.)53 b Fr(length)34 b Fu(and)g Fr(o\013set)j
+Fu(are)e(arithmetic)630 2527 y(expressions)30 b(\(see)h(Section)g(6.5)h
+([Shell)e(Arithmetic],)i(page)f(87\).)630 2661 y(If)39
+b Fr(o\013set)k Fu(ev)-5 b(aluates)41 b(to)f(a)g(n)m(um)m(b)s(er)f
+(less)h(than)f(zero,)k(the)d(v)-5 b(alue)40 b(is)g(used)e(as)i(an)g
+(o\013set)630 2771 y(in)33 b(c)m(haracters)i(from)f(the)f(end)g(of)h
+(the)g(v)-5 b(alue)34 b(of)g Fr(parameter)p Fu(.)51 b(If)33
+b Fr(length)h Fu(ev)-5 b(aluates)35 b(to)g(a)630 2880
+y(n)m(um)m(b)s(er)23 b(less)h(than)g(zero,)j(it)d(is)h(in)m(terpreted)f
+(as)g(an)h(o\013set)g(in)f(c)m(haracters)h(from)f(the)g(end)g(of)630
+2990 y(the)31 b(v)-5 b(alue)31 b(of)g Fr(parameter)38
+b Fu(rather)30 b(than)h(a)g(n)m(um)m(b)s(er)f(of)g(c)m(haracters,)j
+(and)d(the)h(expansion)630 3099 y(is)39 b(the)g(c)m(haracters)i(b)s(et)
+m(w)m(een)f Fr(o\013set)i Fu(and)c(that)i(result.)67
+b(Note)40 b(that)g(a)g(negativ)m(e)h(o\013set)630 3209
+y(m)m(ust)27 b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h
+(least)g(one)f(space)h(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)630
+3319 y(with)j(the)h(`)p Ft(:-)p Fu(')f(expansion.)630
+3453 y(Here)43 b(are)g(some)f(examples)h(illustrating)g(substring)f
+(expansion)g(on)g(parameters)h(and)630 3562 y(subscripted)29
+b(arra)m(ys:)630 3696 y Ft($)47 b(string=01234567890abcdefgh)630
+3806 y($)g(echo)g(${string:7})630 3915 y(7890abcdefgh)630
+4025 y($)g(echo)g(${string:7:0})630 4244 y($)g(echo)g(${string:7:2})630
+4354 y(78)630 4463 y($)g(echo)g(${string:7:-2})630 4573
+y(7890abcdef)630 4682 y($)g(echo)g(${string:)e(-7})630
+4792 y(bcdefgh)630 4902 y($)i(echo)g(${string:)e(-7:0})630
+5121 y($)i(echo)g(${string:)e(-7:2})630 5230 y(bc)630
+5340 y($)i(echo)g(${string:)e(-7:-2})p eop end
+%%Page: 25 31
+TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)630 299
+y Ft(bcdef)630 408 y($)47 b(set)g(--)h(01234567890abcdefgh)630
+518 y($)f(echo)g(${1:7})630 628 y(7890abcdefgh)630 737
+y($)g(echo)g(${1:7:0})630 956 y($)g(echo)g(${1:7:2})630
+1066 y(78)630 1176 y($)g(echo)g(${1:7:-2})630 1285 y(7890abcdef)630
+1395 y($)g(echo)g(${1:)g(-7})630 1504 y(bcdefgh)630 1614
+y($)g(echo)g(${1:)g(-7:0})630 1833 y($)g(echo)g(${1:)g(-7:2})630
+1943 y(bc)630 2052 y($)g(echo)g(${1:)g(-7:-2})630 2162
+y(bcdef)630 2271 y($)g(array[0]=01234567890abcdef)o(gh)630
+2381 y($)g(echo)g(${array[0]:7})630 2491 y(7890abcdefgh)630
+2600 y($)g(echo)g(${array[0]:7:0})630 2819 y($)g(echo)g
+(${array[0]:7:2})630 2929 y(78)630 3039 y($)g(echo)g(${array[0]:7:-2})
+630 3148 y(7890abcdef)630 3258 y($)g(echo)g(${array[0]:)e(-7})630
+3367 y(bcdefgh)630 3477 y($)i(echo)g(${array[0]:)e(-7:0})630
+3696 y($)i(echo)g(${array[0]:)e(-7:2})630 3806 y(bc)630
+3915 y($)i(echo)g(${array[0]:)e(-7:-2})630 4025 y(bcdef)630
+4171 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 b(`)p Ft(@)p
+Fu(',)i(the)e(result)g(is)g Fr(length)h Fu(p)s(ositional)f(parameters)h
+(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 4281 y(A)36
+b(negativ)m(e)j Fr(o\013set)g Fu(is)e(tak)m(en)g(relativ)m(e)i(to)e
+(one)g(greater)g(than)f(the)h(greatest)h(p)s(ositional)630
+4390 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5
+b(aluates)30 b(to)e(the)g(last)h(p)s(ositional)g(parameter.)40
+b(It)28 b(is)g(an)630 4500 y(expansion)i(error)g(if)h
+Fr(length)f Fu(ev)-5 b(aluates)32 b(to)f(a)g(n)m(um)m(b)s(er)e(less)i
+(than)f(zero.)630 4646 y(The)i(follo)m(wing)i(examples)f(illustrate)h
+(substring)d(expansion)i(using)f(p)s(ositional)h(param-)630
+4755 y(eters:)630 4902 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f
+(7)h(8)f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 5011
+y($)g(echo)g(${@:7})630 5121 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h
+(g)f(h)630 5230 y($)g(echo)g(${@:7:0})p eop end
+%%Page: 26 32
+TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)630 299
+y Ft($)47 b(echo)g(${@:7:2})630 408 y(7)g(8)630 518 y($)g(echo)g
+(${@:7:-2})630 628 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630
+737 y($)g(echo)g(${@:)g(-7:2})630 847 y(b)g(c)630 956
+y($)g(echo)g(${@:0})630 1066 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h
+(9)f(0)h(a)f(b)h(c)f(d)g(e)h(f)f(g)h(h)630 1176 y($)f(echo)g(${@:0:2})
+630 1285 y(./bash)f(1)630 1395 y($)h(echo)g(${@:)g(-7:0})630
+1677 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
+g(name)g(subscripted)f(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p
+Ft(*)p Fu(',)h(the)e(result)g(is)630 1786 y(the)j Fr(length)g
+Fu(mem)m(b)s(ers)f(of)h(the)f(arra)m(y)i(b)s(eginning)d(with)i
+Ft(${)p Fj(parameter)p Ft([)p Fj(offset)p Ft(]})p Fu(.)60
+b(A)630 1896 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
+(relativ)m(e)g(to)g(one)f(greater)g(than)g(the)f(maxim)m(um)h(index)f
+(of)h(the)630 2005 y(sp)s(eci\014ed)38 b(arra)m(y)-8
+b(.)65 b(It)38 b(is)g(an)h(expansion)f(error)f(if)i Fr(length)f
+Fu(ev)-5 b(aluates)40 b(to)f(a)g(n)m(um)m(b)s(er)e(less)630
+2115 y(than)30 b(zero.)630 2287 y(These)23 b(examples)i(sho)m(w)e(ho)m
+(w)h(y)m(ou)g(can)g(use)f(substring)f(expansion)i(with)f(indexed)g
+(arra)m(ys:)630 2459 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)
+f(8)h(9)f(0)h(a)f(b)g(c)h(d)f(e)h(f)f(g)h(h\))630 2569
+y($)f(echo)g(${array[@]:7})630 2679 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h
+(e)f(f)h(g)f(h)630 2788 y($)g(echo)g(${array[@]:7:2})630
+2898 y(7)g(8)630 3007 y($)g(echo)g(${array[@]:)e(-7:2})630
+3117 y(b)i(c)630 3226 y($)g(echo)g(${array[@]:)e(-7:-2})630
+3336 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630
+3446 y($)g(echo)g(${array[@]:0})630 3555 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f
+(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 3665
+y($)g(echo)g(${array[@]:0:2})630 3774 y(0)g(1)630 3884
+y($)g(echo)g(${array[@]:)e(-7:0})630 4166 y Fu(Substring)25
+b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)m(e)j(arra)m(y)d(pro)s
+(duces)f(unde\014ned)f(results.)630 4338 y(Substring)32
+b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s(ositional)g
+(parameters)g(are)g(used,)g(in)630 4448 y(whic)m(h)29
+b(case)i(the)f(indexing)g(starts)g(at)g(1)g(b)m(y)g(default.)41
+b(If)29 b Fr(o\013set)k Fu(is)d(0,)g(and)f(the)h(p)s(ositional)630
+4557 y(parameters)h(are)f(used,)g Ft($@)g Fu(is)g(pre\014xed)g(to)h
+(the)f(list.)150 4792 y Ft(${!)p Fj(prefix)p Ft(*})150
+4902 y(${!)p Fj(prefix)p Ft(@})630 5011 y Fu(Expands)24
+b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s
+(egin)h(with)f Fr(pre\014x)p Fu(,)i(separated)f(b)m(y)630
+5121 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
+Fu(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Ft(@)p
+Fu(')g(is)g(used)f(and)h(the)g(expan-)630 5230 y(sion)35
b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
-4281 y(w)m(ord.)150 4427 y Fs(${!)p Fi(name)11 b Fs([@]})150
-4536 y(${!)p Fi(name)g Fs([*]})630 4646 y Ft(If)26 b
-Fq(name)32 b Ft(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
-b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
-(assigned)630 4756 y(in)c Fq(name)5 b Ft(.)39 b(If)23
-b Fq(name)30 b Ft(is)24 b(not)g(an)g(arra)m(y)-8 b(,)27
-b(expands)c(to)i(0)f(if)h Fq(name)k Ft(is)24 b(set)h(and)e(n)m(ull)h
-(otherwise.)630 4865 y(When)39 b(`)p Fs(@)p Ft(')h(is)f(used)g(and)f
-(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
-(k)m(ey)630 4975 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
-5121 y Fs(${#)p Fi(parameter)11 b Fs(})630 5230 y Ft(The)40
-b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
-b(alue)41 b(of)f Fq(parameter)47 b Ft(is)40 b(substituted.)630
-5340 y(If)i Fq(parameter)50 b Ft(is)43 b(`)p Fs(*)p Ft(')g(or)g(`)p
-Fs(@)p Ft(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
-(b)s(er)f(of)h(p)s(ositional)p eop end
-%%Page: 23 29
-TeXDict begin 23 28 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)630 299
-y(parameters.)45 b(If)32 b Fq(parameter)38 b Ft(is)32
-b(an)g(arra)m(y)g(name)g(subscripted)f(b)m(y)g(`)p Fs(*)p
-Ft(')h(or)g(`)p Fs(@)p Ft(',)g(the)g(v)-5 b(alue)630
-408 y(substituted)30 b(is)g(the)h(n)m(um)m(b)s(er)e(of)h(elemen)m(ts)i
-(in)e(the)h(arra)m(y)-8 b(.)150 573 y Fs(${)p Fi(parameter)11
-b Fs(#)p Fi(word)g Fs(})150 682 y(${)p Fi(parameter)g
-Fs(##)p Fi(word)g Fs(})630 792 y Ft(The)31 b Fq(w)m(ord)k
-Ft(is)d(expanded)f(to)i(pro)s(duce)e(a)h(pattern)g(just)f(as)i(in)e
-(\014lename)h(expansion)g(\(see)630 902 y(Section)k(3.5.8)h([Filename)g
-(Expansion],)g(page)f(25\).)56 b(If)35 b(the)h(pattern)f(matc)m(hes)i
-(the)e(b)s(e-)630 1011 y(ginning)g(of)g(the)g(expanded)f(v)-5
-b(alue)36 b(of)f Fq(parameter)7 b Ft(,)36 b(then)f(the)g(result)g(of)g
-(the)g(expansion)630 1121 y(is)28 b(the)g(expanded)e(v)-5
-b(alue)28 b(of)g Fq(parameter)35 b Ft(with)27 b(the)h(shortest)g(matc)m
-(hing)h(pattern)f(\(the)g(`)p Fs(#)p Ft(')630 1230 y(case\))e(or)f(the)
-g(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p Fs(##)p
-Ft(')g(case\))h(deleted.)39 b(If)24 b Fq(parameter)32
-b Ft(is)25 b(`)p Fs(@)p Ft(')630 1340 y(or)j(`)p Fs(*)p
-Ft(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f
+5340 y(w)m(ord.)p eop end
+%%Page: 27 33
+TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)150 299
+y Ft(${!)p Fj(name)p Ft([@]})150 408 y(${!)p Fj(name)p
+Ft([*]})630 518 y Fu(If)26 b Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)
+-5 b(ariable,)29 b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)
+g(\(k)m(eys\))h(assigned)630 628 y(in)c Fr(name)p Fu(.)39
+b(If)24 b Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8
+b(,)27 b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24
+b(set)h(and)f(n)m(ull)g(otherwise.)630 737 y(When)39
+b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f(the)i(expansion)f(app)s(ears)g
+(within)f(double)h(quotes,)k(eac)m(h)d(k)m(ey)630 847
+y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 1011
+y Ft(${#)p Fj(parameter)p Ft(})630 1121 y Fu(The)40 b(length)g(in)g(c)m
+(haracters)i(of)e(the)h(expanded)e(v)-5 b(alue)41 b(of)f
+Fr(parameter)47 b Fu(is)40 b(substituted.)630 1230 y(If)i
+Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p
+Ft(@)p Fu(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
+(b)s(er)f(of)h(p)s(ositional)630 1340 y(parameters.)i(If)32
+b Fr(parameter)38 b Fu(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
+(y)g(`)p Ft(*)p Fu(')h(or)g(`)p Ft(@)p Fu(',)g(the)g(v)-5
+b(alue)630 1450 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i
+(elemen)m(ts)i(in)d(the)h(arra)m(y)-8 b(.)43 b(If)30
+b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 1559
+y(arra)m(y)37 b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m
+(b)s(er,)f(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630
+1669 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f
+(index)g(of)g Fr(parameter)p Fu(,)50 b(so)c(negativ)m(e)630
+1778 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f
+(arra)m(y)-8 b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)630
+1888 y(last)g(elemen)m(t.)150 2052 y Ft(${)p Fj(parameter)p
+Ft(#)p Fj(word)p Ft(})150 2162 y(${)p Fj(parameter)p
+Ft(##)p Fj(word)p Ft(})630 2271 y Fu(The)g Fr(w)m(ord)k
+Fu(is)d(expanded)f(to)i(pro)s(duce)e(a)h(pattern)g(just)f(as)i(in)e
+(\014lename)h(expansion)g(\(see)630 2381 y(Section)k(3.5.8)h([Filename)
+g(Expansion],)g(page)f(30\).)56 b(If)35 b(the)h(pattern)f(matc)m(hes)i
+(the)e(b)s(e-)630 2491 y(ginning)28 b(of)g(the)h(expanded)e(v)-5
+b(alue)29 b(of)f Fr(parameter)p Fu(,)h(then)f(the)g(result)g(of)h(the)f
+(expansion)g(is)630 2600 y(the)36 b(expanded)f(v)-5 b(alue)36
+b(of)g Fr(parameter)43 b Fu(with)35 b(the)h(shortest)g(matc)m(hing)h
+(pattern)f(\(the)g(`)p Ft(#)p Fu(')630 2710 y(case\))26
+b(or)f(the)g(longest)g(matc)m(hing)h(pattern)f(\(the)g(`)p
+Ft(##)p Fu(')g(case\))h(deleted.)39 b(If)24 b Fr(parameter)32
+b Fu(is)25 b(`)p Ft(@)p Fu(')630 2819 y(or)j(`)p Ft(*)p
+Fu(',)i(the)e(pattern)h(remo)m(v)-5 b(al)29 b(op)s(eration)g(is)f
(applied)h(to)g(eac)m(h)g(p)s(ositional)g(parameter)g(in)630
-1450 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
-45 b(If)32 b Fq(parameter)38 b Ft(is)32 b(an)g(arra)m(y)g(v)-5
-b(ariable)630 1559 y(subscripted)39 b(with)g(`)p Fs(@)p
-Ft(')h(or)g(`)p Fs(*)p Ft(',)j(the)d(pattern)h(remo)m(v)-5
+2929 y(turn,)i(and)g(the)h(expansion)g(is)g(the)g(resultan)m(t)g(list.)
+45 b(If)32 b Fr(parameter)38 b Fu(is)32 b(an)g(arra)m(y)g(v)-5
+b(ariable)630 3039 y(subscripted)39 b(with)g(`)p Ft(@)p
+Fu(')h(or)g(`)p Ft(*)p Fu(',)j(the)d(pattern)h(remo)m(v)-5
b(al)41 b(op)s(eration)f(is)g(applied)g(to)h(eac)m(h)630
-1669 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
-(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 1833
-y Fs(${)p Fi(parameter)11 b Fs(\045)p Fi(word)g Fs(})150
-1943 y(${)p Fi(parameter)g Fs(\045\045)p Fi(word)g Fs(})630
-2052 y Ft(The)35 b Fq(w)m(ord)k Ft(is)c(expanded)g(to)h(pro)s(duce)e(a)
-i(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55
-b(If)630 2162 y(the)43 b(pattern)f(matc)m(hes)i(a)e(trailing)i(p)s
-(ortion)e(of)g(the)h(expanded)e(v)-5 b(alue)43 b(of)g
-Fq(parameter)7 b Ft(,)630 2271 y(then)39 b(the)g(result)g(of)h(the)f
-(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fq(parameter)46
-b Ft(with)39 b(the)h(shortest)630 2381 y(matc)m(hing)31
-b(pattern)e(\(the)h(`)p Fs(\045)p Ft(')g(case\))h(or)e(the)h(longest)h
-(matc)m(hing)f(pattern)g(\(the)g(`)p Fs(\045\045)p Ft(')g(case\))630
-2491 y(deleted.)49 b(If)32 b Fq(parameter)40 b Ft(is)33
-b(`)p Fs(@)p Ft(')g(or)g(`)p Fs(*)p Ft(',)h(the)f(pattern)g(remo)m(v)-5
-b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 2600 y(eac)m(h)38
+3148 y(mem)m(b)s(er)30 b(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)h
+(expansion)f(is)g(the)h(resultan)m(t)g(list.)150 3313
+y Ft(${)p Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150
+3422 y(${)p Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630
+3532 y Fu(The)k Fr(w)m(ord)k Fu(is)c(expanded)g(to)h(pro)s(duce)e(a)i
+(pattern)f(just)g(as)h(in)f(\014lename)h(expansion.)55
+b(If)630 3641 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s
+(ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g
+Fr(parameter)p Fu(,)630 3751 y(then)c(the)g(result)g(of)h(the)f
+(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fr(parameter)46
+b Fu(with)39 b(the)h(shortest)630 3861 y(matc)m(hing)31
+b(pattern)e(\(the)h(`)p Ft(\045)p Fu(')g(case\))h(or)e(the)h(longest)h
+(matc)m(hing)f(pattern)g(\(the)g(`)p Ft(\045\045)p Fu(')g(case\))630
+3970 y(deleted.)49 b(If)32 b Fr(parameter)40 b Fu(is)33
+b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5
+b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 4080 y(eac)m(h)38
b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h
-(the)f(resultan)m(t)h(list.)61 b(If)630 2710 y Fq(parameter)38
-b Ft(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
-(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)g(the)f(pattern)h(remo)m(v)-5
-b(al)630 2819 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
+(the)f(resultan)m(t)h(list.)61 b(If)630 4189 y Fr(parameter)38
+b Fu(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
+(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5
+b(al)630 4299 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g
-(is)630 2929 y(the)h(resultan)m(t)g(list.)150 3093 y
-Fs(${)p Fi(parameter)11 b Fs(/)p Fi(pattern)g Fs(/)p
-Fi(s)o(tri)o(ng)f Fs(})630 3203 y Ft(The)37 b Fq(pattern)g
-Ft(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
-(\014lename)i(expansion.)630 3313 y Fq(P)m(arameter)46
-b Ft(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
-Fq(pattern)g Ft(against)h(its)f(v)-5 b(alue)39 b(is)630
-3422 y(replaced)33 b(with)f Fq(string)8 b Ft(.)47 b(If)33
-b Fq(pattern)f Ft(b)s(egins)g(with)h(`)p Fs(/)p Ft(',)g(all)h(matc)m
-(hes)f(of)g Fq(pattern)g Ft(are)g(re-)630 3532 y(placed)27
-b(with)f Fq(string)8 b Ft(.)40 b(Normally)27 b(only)g(the)g(\014rst)f
-(matc)m(h)h(is)g(replaced.)40 b(If)26 b Fq(pattern)g
-Ft(b)s(egins)630 3641 y(with)33 b(`)p Fs(#)p Ft(',)i(it)f(m)m(ust)f
-(matc)m(h)i(at)f(the)g(b)s(eginning)f(of)g(the)h(expanded)f(v)-5
-b(alue)34 b(of)g Fq(parameter)7 b Ft(.)630 3751 y(If)34
-b Fq(pattern)g Ft(b)s(egins)g(with)g(`)p Fs(\045)p Ft(',)h(it)g(m)m
-(ust)f(matc)m(h)h(at)g(the)f(end)g(of)g(the)h(expanded)e(v)-5
-b(alue)35 b(of)630 3861 y Fq(parameter)7 b Ft(.)40 b(If)29
-b Fq(string)36 b Ft(is)29 b(n)m(ull,)h(matc)m(hes)g(of)f
-Fq(pattern)g Ft(are)g(deleted)h(and)e(the)h Fs(/)f Ft(follo)m(wing)630
-3970 y Fq(pattern)34 b Ft(ma)m(y)g(b)s(e)f(omitted.)51
-b(If)33 b Fq(parameter)41 b Ft(is)33 b(`)p Fs(@)p Ft(')h(or)g(`)p
-Fs(*)p Ft(',)g(the)g(substitution)f(op)s(eration)630
-4080 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in)
-g(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630
-4189 y(sultan)m(t)f(list.)59 b(If)36 b Fq(parameter)43
-b Ft(is)36 b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h
-(`)p Fs(@)p Ft(')g(or)h(`)p Fs(*)p Ft(',)h(the)630 4299
-y(substitution)30 b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m
-(b)s(er)f(of)g(the)h(arra)m(y)g(in)f(turn,)f(and)h(the)630
-4408 y(expansion)g(is)h(the)f(resultan)m(t)h(list.)150
-4573 y Fs(${)p Fi(parameter)11 b Fs(^)p Fi(pattern)g
-Fs(})150 4682 y(${)p Fi(parameter)g Fs(^^)p Fi(pattern)g
-Fs(})150 4792 y(${)p Fi(parameter)g Fs(,)p Fi(pattern)g
-Fs(})150 4902 y(${)p Fi(parameter)g Fs(,,)p Fi(pattern)g
-Fs(})630 5011 y Ft(This)35 b(expansion)h(mo)s(di\014es)f(the)h(case)h
-(of)f(alphab)s(etic)h(c)m(haracters)g(in)f Fq(parameter)7
-b Ft(.)57 b(The)630 5121 y Fq(pattern)36 b Ft(is)f(expanded)g(to)h(pro)
-s(duce)e(a)i(pattern)g(just)f(as)h(in)f(\014lename)g(expansion.)56
-b(The)630 5230 y(`)p Fs(^)p Ft(')36 b(op)s(erator)g(con)m(v)m(erts)h
-(lo)m(w)m(ercase)h(letters)f(matc)m(hing)g Fq(pattern)f
-Ft(to)g(upp)s(ercase;)i(the)e(`)p Fs(,)p Ft(')630 5340
-y(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s(ercase)e(letters)i
-(to)g(lo)m(w)m(ercase.)59 b(The)36 b(`)p Fs(^^)p Ft(')g(and)f(`)p
-Fs(,,)p Ft(')p eop end
-%%Page: 24 30
-TeXDict begin 24 29 bop 150 -116 a Ft(24)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(expansions)g(con)m(v)m(ert)i(eac)m(h)
-g(matc)m(hed)f(c)m(haracter)h(in)e(the)h(expanded)f(v)-5
-b(alue;)32 b(the)g(`)p Fs(^)p Ft(')g(and)630 408 y(`)p
-Fs(,)p Ft(')24 b(expansions)f(matc)m(h)i(and)e(con)m(v)m(ert)j(only)d
-(the)h(\014rst)f(c)m(haracter)j(in)d(the)h(expanded)f(v)-5
-b(alue.)630 518 y(If)31 b Fq(pattern)g Ft(is)g(omitted,)i(it)f(is)f
-(treated)h(lik)m(e)h(a)e(`)p Fs(?)p Ft(',)h(whic)m(h)f(matc)m(hes)i(ev)
-m(ery)f(c)m(haracter.)44 b(If)630 628 y Fq(parameter)37
-b Ft(is)31 b(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)f(the)h(case)g(mo)
-s(di\014cation)g(op)s(eration)g(is)f(applied)g(to)i(eac)m(h)f(p)s(osi-)
-630 737 y(tional)26 b(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
-(is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fq(parameter)32
-b Ft(is)630 847 y(an)e(arra)m(y)g(v)-5 b(ariable)31 b(subscripted)d
-(with)i(`)p Fs(@)p Ft(')g(or)f(`)p Fs(*)p Ft(',)i(the)f(case)g(mo)s
-(di\014cation)h(op)s(eration)f(is)630 956 y(applied)d(to)g(eac)m(h)h
-(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g(in)g(turn,)g(and)f(the)h
-(expansion)f(is)h(the)g(resultan)m(t)630 1066 y(list.)150
-1263 y Fj(3.5.4)63 b(Command)41 b(Substitution)150 1410
-y Ft(Command)f(substitution)h(allo)m(ws)i(the)e(output)g(of)h(a)f
-(command)g(to)h(replace)g(the)g(command)f(itself.)150
-1519 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)
-g(enclosed)h(as)g(follo)m(ws:)390 1653 y Fs($\()p Fi(command)11
-b Fs(\))150 1786 y Ft(or)390 1919 y Fs(`)p Fi(command)g
-Fs(`)150 2052 y Ft(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
-(executing)i Fq(command)h Ft(and)c(replacing)i(the)f(command)g(sub-)150
-2162 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
+(is)630 4408 y(the)h(resultan)m(t)g(list.)150 4573 y
+Ft(${)p Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p
+Ft(})630 4682 y Fu(The)37 b Fr(pattern)g Fu(is)g(expanded)g(to)h(pro)s
+(duce)e(a)h(pattern)g(just)g(as)h(in)e(\014lename)i(expansion.)630
+4792 y Fr(P)m(arameter)46 b Fu(is)38 b(expanded)f(and)g(the)i(longest)g
+(matc)m(h)g(of)f Fr(pattern)g Fu(against)h(its)f(v)-5
+b(alue)39 b(is)630 4902 y(replaced)34 b(with)e Fr(string)p
+Fu(.)49 b(If)33 b Fr(pattern)g Fu(b)s(egins)g(with)f(`)p
+Ft(/)p Fu(',)j(all)f(matc)m(hes)g(of)f Fr(pattern)g Fu(are)h(re-)630
+5011 y(placed)28 b(with)f Fr(string)p Fu(.)40 b(Normally)28
+b(only)f(the)h(\014rst)e(matc)m(h)j(is)e(replaced.)40
+b(If)27 b Fr(pattern)g Fu(b)s(egins)630 5121 y(with)34
+b(`)p Ft(#)p Fu(',)h(it)g(m)m(ust)f(matc)m(h)h(at)f(the)h(b)s(eginning)
+e(of)h(the)g(expanded)f(v)-5 b(alue)35 b(of)f Fr(parameter)p
+Fu(.)630 5230 y(If)g Fr(pattern)g Fu(b)s(egins)g(with)g(`)p
+Ft(\045)p Fu(',)h(it)g(m)m(ust)f(matc)m(h)h(at)g(the)f(end)g(of)g(the)h
+(expanded)e(v)-5 b(alue)35 b(of)630 5340 y Fr(parameter)p
+Fu(.)41 b(If)29 b Fr(string)37 b Fu(is)29 b(n)m(ull,)h(matc)m(hes)h(of)
+e Fr(pattern)h Fu(are)g(deleted)g(and)f(the)g Ft(/)g
+Fu(follo)m(wing)p eop end
+%%Page: 28 34
+TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)630 299
+y Fr(pattern)34 b Fu(ma)m(y)g(b)s(e)f(omitted.)51 b(If)33
+b Fr(parameter)41 b Fu(is)33 b(`)p Ft(@)p Fu(')h(or)g(`)p
+Ft(*)p Fu(',)g(the)g(substitution)f(op)s(eration)630
+408 y(is)38 b(applied)g(to)g(eac)m(h)h(p)s(ositional)g(parameter)f(in)g
+(turn,)h(and)e(the)h(expansion)g(is)g(the)g(re-)630 518
+y(sultan)m(t)f(list.)59 b(If)36 b Fr(parameter)43 b Fu(is)36
+b(an)g(arra)m(y)h(v)-5 b(ariable)37 b(subscripted)e(with)h(`)p
+Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)h(the)630 628 y(substitution)30
+b(op)s(eration)h(is)f(applied)g(to)h(eac)m(h)g(mem)m(b)s(er)f(of)g(the)
+h(arra)m(y)g(in)f(turn,)f(and)h(the)630 737 y(expansion)g(is)h(the)f
+(resultan)m(t)h(list.)150 931 y Ft(${)p Fj(parameter)p
+Ft(^)p Fj(pattern)p Ft(})150 1040 y(${)p Fj(parameter)p
+Ft(^^)p Fj(pattern)p Ft(})150 1150 y(${)p Fj(parameter)p
+Ft(,)p Fj(pattern)p Ft(})150 1259 y(${)p Fj(parameter)p
+Ft(,,)p Fj(pattern)p Ft(})630 1369 y Fu(This)36 b(expansion)g(mo)s
+(di\014es)g(the)g(case)i(of)f(alphab)s(etic)g(c)m(haracters)h(in)e
+Fr(parameter)p Fu(.)59 b(The)630 1479 y Fr(pattern)33
+b Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)j(pattern)e(just)g(as)h(in)g
+(\014lename)g(expansion.)47 b(Eac)m(h)630 1588 y(c)m(haracter)32
+b(in)e(the)g(expanded)f(v)-5 b(alue)31 b(of)f Fr(parameter)37
+b Fu(is)30 b(tested)h(against)h Fr(pattern)p Fu(,)e(and,)g(if)630
+1698 y(it)j(matc)m(hes)h(the)g(pattern,)f(its)h(case)g(is)f(con)m(v)m
+(erted.)49 b(The)33 b(pattern)g(should)f(not)h(attempt)630
+1807 y(to)f(matc)m(h)g(more)f(than)g(one)g(c)m(haracter.)44
+b(The)30 b(`)p Ft(^)p Fu(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m
+(ercase)i(letters)630 1917 y(matc)m(hing)i Fr(pattern)f
+Fu(to)h(upp)s(ercase;)h(the)e(`)p Ft(,)p Fu(')g(op)s(erator)g(con)m(v)m
+(erts)i(matc)m(hing)f(upp)s(ercase)630 2027 y(letters)e(to)f(lo)m(w)m
+(ercase.)50 b(The)32 b(`)p Ft(^^)p Fu(')h(and)f(`)p Ft(,,)p
+Fu(')g(expansions)h(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630
+2136 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30
+b(the)e(`)p Ft(^)p Fu(')g(and)g(`)p Ft(,)p Fu(')g(expansions)g(matc)m
+(h)h(and)f(con)m(v)m(ert)i(only)630 2246 y(the)37 b(\014rst)g(c)m
+(haracter)i(in)e(the)g(expanded)g(v)-5 b(alue.)61 b(If)37
+b Fr(pattern)g Fu(is)h(omitted,)i(it)e(is)f(treated)630
+2355 y(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m
+(ery)f(c)m(haracter.)61 b(If)37 b Fr(parameter)43 b Fu(is)37
+b(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)e(case)630
+2465 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m
+(h)h(p)s(ositional)f(parameter)f(in)g(turn,)g(and)g(the)630
+2575 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65
+b(If)37 b Fr(parameter)46 b Fu(is)38 b(an)g(arra)m(y)g(v)-5
+b(ariable)39 b(subscripted)630 2684 y(with)26 b(`)p Ft(@)p
+Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)s(di\014cation)f(op)s
+(eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m(b)s(er)e(of)h(the)630
+2794 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h
+(resultan)m(t)g(list.)150 3027 y Fk(3.5.4)63 b(Command)41
+b(Substitution)150 3174 y Fu(Command)f(substitution)h(allo)m(ws)i(the)e
+(output)g(of)h(a)f(command)g(to)h(replace)g(the)g(command)f(itself.)150
+3284 y(Command)29 b(substitution)h(o)s(ccurs)h(when)e(a)i(command)f(is)
+g(enclosed)h(as)g(follo)m(ws:)390 3452 y Ft($\()p Fj(command)p
+Ft(\))150 3621 y Fu(or)390 3789 y Ft(`)p Fj(command)p
+Ft(`)150 3958 y Fu(Bash)45 b(p)s(erforms)f(the)h(expansion)f(b)m(y)h
+(executing)i Fr(command)h Fu(and)c(replacing)i(the)f(command)g(sub-)150
+4067 y(stitution)c(with)f(the)g(standard)g(output)g(of)g(the)g
(command,)j(with)d(an)m(y)h(trailing)g(newlines)f(deleted.)150
-2271 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
+4177 y(Em)m(b)s(edded)30 b(newlines)h(are)h(not)f(deleted,)i(but)e
(they)g(ma)m(y)h(b)s(e)f(remo)m(v)m(ed)i(during)d(w)m(ord)h(splitting.)
-44 b(The)150 2381 y(command)21 b(substitution)g Fs($\(cat)29
-b Fi(file)11 b Fs(\))20 b Ft(can)i(b)s(e)f(replaced)g(b)m(y)h(the)g
-(equiv)-5 b(alen)m(t)22 b(but)f(faster)h Fs($\(<)30 b
-Fi(file)11 b Fs(\))p Ft(.)275 2514 y(When)33 b(the)i(old-st)m(yle)h
-(bac)m(kquote)f(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f
-(retains)h(its)f(literal)150 2624 y(meaning)k(except)h(when)e(follo)m
-(w)m(ed)j(b)m(y)e(`)p Fs($)p Ft(',)j(`)p Fs(`)p Ft(',)f(or)e(`)p
-Fs(\\)p Ft('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g
-(b)m(y)g(a)150 2733 y(bac)m(kslash)j(terminates)g(the)f(command)g
-(substitution.)69 b(When)40 b(using)g(the)g Fs($\()p
-Fi(command)11 b Fs(\))37 b Ft(form,)42 b(all)150 2843
-y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)
-g(up)f(the)g(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8
-b(.)275 2976 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
+44 b(The)150 4286 y(command)23 b(substitution)g Ft($\(cat)29
+b Fj(file)p Ft(\))22 b Fu(can)i(b)s(e)f(replaced)g(b)m(y)h(the)f(equiv)
+-5 b(alen)m(t)25 b(but)e(faster)h Ft($\(<)29 b Fj(file)p
+Ft(\))p Fu(.)275 4455 y(When)k(the)i(old-st)m(yle)h(bac)m(kquote)f
+(form)f(of)g(substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f
+(literal)150 4565 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e
+(`)p Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)e(`)p Ft(\\)p
+Fu('.)64 b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g
+(a)150 4674 y(bac)m(kslash)k(terminates)f(the)h(command)e
+(substitution.)72 b(When)41 b(using)f(the)i Ft($\()p
+Fj(command)p Ft(\))c Fu(form,)43 b(all)150 4784 y(c)m(haracters)32
+b(b)s(et)m(w)m(een)f(the)f(paren)m(theses)h(mak)m(e)g(up)f(the)g
+(command;)h(none)f(are)h(treated)g(sp)s(ecially)-8 b(.)275
+4952 y(Command)22 b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39
b(T)-8 b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g
-(escap)s(e)150 3086 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
-(kslashes.)275 3219 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
+(escap)s(e)150 5062 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m
+(kslashes.)275 5230 y(If)e(the)i(substitution)e(app)s(ears)h(within)g
(double)f(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)
-150 3329 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
-3526 y Fj(3.5.5)63 b(Arithmetic)40 b(Expansion)150 3672
-y Ft(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5
-b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
-(substitution)150 3782 y(of)31 b(the)f(result.)41 b(The)30
-b(format)g(for)g(arithmetic)i(expansion)e(is:)390 3915
-y Fs($\(\()47 b Fi(expression)55 b Fs(\)\))275 4049 y
-Ft(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g
-(within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150
-4158 y(the)27 b(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
-b(.)41 b(All)27 b(tok)m(ens)h(in)e(the)h(expression)g(undergo)f
-(parameter)h(ex-)150 4268 y(pansion,)h(command)f(substitution,)h(and)f
-(quote)i(remo)m(v)-5 b(al.)41 b(Arithmetic)28 b(expansions)g(ma)m(y)g
-(b)s(e)f(nested.)275 4401 y(The)34 b(ev)-5 b(aluation)37
-b(is)f(p)s(erformed)e(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m
-(w)g(\(see)g(Section)g(6.5)h([Shell)150 4511 y(Arithmetic],)32
-b(page)f(80\).)42 b(If)30 b(the)h(expression)f(is)g(in)m(v)-5
-b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
-4620 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
-(ccurs.)150 4817 y Fj(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
-4964 y Ft(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems)
-g(that)h(supp)s(ort)d(named)i(pip)s(es)f(\()p Fl(fif)n(o)p
-Ft(s\))i(or)f(the)150 5073 y(`)p Fs(/dev/fd)p Ft(')29
-b(metho)s(d)h(of)g(naming)g(op)s(en)g(\014les.)41 b(It)30
-b(tak)m(es)i(the)f(form)f(of)390 5207 y Fs(<\()p Fi(list)11
-b Fs(\))150 5340 y Ft(or)p eop end
-%%Page: 25 31
-TeXDict begin 25 30 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)390 299
-y Fs(>\()p Fi(list)11 b Fs(\))150 434 y Ft(The)23 b(pro)s(cess)g
-Fq(list)j Ft(is)d(run)f(with)h(its)h(input)f(or)g(output)g(connected)h
-(to)h(a)e Fl(fif)n(o)g Ft(or)h(some)g(\014le)f(in)g(`)p
-Fs(/dev/fd)p Ft('.)150 544 y(The)28 b(name)h(of)g(this)f(\014le)h(is)g
-(passed)f(as)h(an)f(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)
-f(the)h(result)g(of)g(the)150 654 y(expansion.)40 b(If)28
-b(the)h Fs(>\()p Fi(list)11 b Fs(\))26 b Ft(form)h(is)i(used,)f
-(writing)h(to)g(the)f(\014le)h(will)g(pro)m(vide)f(input)g(for)g
-Fq(list)r Ft(.)41 b(If)28 b(the)150 763 y Fs(<\()p Fi(list)11
-b Fs(\))23 b Ft(form)h(is)i(used,)f(the)h(\014le)f(passed)g(as)g(an)g
-(argumen)m(t)h(should)e(b)s(e)h(read)g(to)h(obtain)g(the)f(output)g(of)
-150 873 y Fq(list)r Ft(.)41 b(Note)31 b(that)f(no)f(space)h(ma)m(y)g
-(app)s(ear)f(b)s(et)m(w)m(een)h(the)g Fs(<)f Ft(or)h
-Fs(>)f Ft(and)g(the)g(left)h(paren)m(thesis,)h(otherwise)150
-982 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
-(redirection.)275 1118 y(When)36 b(a)m(v)-5 b(ailable,)40
+150 5340 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)p
+eop end
+%%Page: 29 35
+TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)150 299
+y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 446 y Fu(Arithmetic)25
+b(expansion)g(allo)m(ws)g(the)g(ev)-5 b(aluation)26 b(of)f(an)f
+(arithmetic)i(expression)e(and)g(the)g(substitution)150
+555 y(of)31 b(the)f(result.)41 b(The)30 b(format)g(for)g(arithmetic)i
+(expansion)e(is:)390 691 y Ft($\(\()47 b Fj(expression)e
+Ft(\)\))275 826 y Fu(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)
+g(w)m(ere)g(within)f(double)h(quotes,)h(but)e(a)h(double)f(quote)h
+(inside)150 935 y(the)k(paren)m(theses)g(is)g(not)g(treated)h(sp)s
+(ecially)-8 b(.)65 b(All)38 b(tok)m(ens)h(in)f(the)g(expression)f
+(undergo)g(parameter)150 1045 y(and)26 b(v)-5 b(ariable)28
+b(expansion,)g(command)e(substitution,)i(and)e(quote)i(remo)m(v)-5
+b(al.)41 b(The)26 b(result)h(is)g(treated)h(as)150 1154
+y(the)j(arithmetic)g(expression)f(to)h(b)s(e)f(ev)-5
+b(aluated.)42 b(Arithmetic)31 b(expansions)g(ma)m(y)g(b)s(e)e(nested.)
+275 1290 y(The)34 b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e
+(according)i(to)g(the)g(rules)f(listed)h(b)s(elo)m(w)g(\(see)g(Section)
+g(6.5)h([Shell)150 1399 y(Arithmetic],)32 b(page)f(87\).)42
+b(If)30 b(the)h(expression)f(is)g(in)m(v)-5 b(alid,)32
+b(Bash)e(prin)m(ts)g(a)h(message)g(indicating)h(failure)150
+1509 y(to)f(the)g(standard)e(error)h(and)g(no)g(substitution)g(o)s
+(ccurs.)150 1709 y Fk(3.5.6)63 b(Pro)s(cess)42 b(Substitution)150
+1856 y Fu(Pro)s(cess)i(substitution)g(is)g(supp)s(orted)f(on)h(systems)
+g(that)h(supp)s(ort)d(named)i(pip)s(es)f(\()p Fm(fif)n(o)p
+Fu(s\))i(or)f(the)150 1965 y Ft(/dev/fd)28 b Fu(metho)s(d)i(of)h
+(naming)f(op)s(en)g(\014les.)40 b(It)31 b(tak)m(es)h(the)e(form)g(of)
+390 2100 y Ft(<\()p Fj(list)p Ft(\))150 2235 y Fu(or)390
+2370 y Ft(>\()p Fj(list)p Ft(\))150 2506 y Fu(The)c(pro)s(cess)f
+Fr(list)k Fu(is)e(run)d(with)i(its)h(input)e(or)h(output)g(connected)h
+(to)g(a)g Fm(fif)n(o)f Fu(or)g(some)g(\014le)h(in)f Ft(/dev/fd)p
+Fu(.)150 2615 y(The)i(name)h(of)g(this)f(\014le)h(is)g(passed)f(as)h
+(an)f(argumen)m(t)h(to)h(the)f(curren)m(t)f(command)h(as)f(the)h
+(result)g(of)g(the)150 2725 y(expansion.)40 b(If)29 b(the)g
+Ft(>\()p Fj(list)p Ft(\))f Fu(form)g(is)i(used,)f(writing)g(to)h(the)f
+(\014le)h(will)f(pro)m(vide)h(input)e(for)h Fr(list)p
+Fu(.)41 b(If)29 b(the)150 2834 y Ft(<\()p Fj(list)p Ft(\))24
+b Fu(form)h(is)h(used,)g(the)g(\014le)g(passed)g(as)g(an)f(argumen)m(t)
+i(should)e(b)s(e)g(read)g(to)i(obtain)f(the)g(output)g(of)150
+2944 y Fr(list)p Fu(.)41 b(Note)31 b(that)f(no)g(space)g(ma)m(y)g(app)s
+(ear)f(b)s(et)m(w)m(een)h(the)g Ft(<)f Fu(or)h Ft(>)f
+Fu(and)g(the)h(left)g(paren)m(thesis,)h(otherwise)150
+3054 y(the)g(construct)f(w)m(ould)g(b)s(e)g(in)m(terpreted)h(as)f(a)h
+(redirection.)275 3189 y(When)36 b(a)m(v)-5 b(ailable,)40
b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i
-(with)g(parameter)g(and)150 1228 y(v)-5 b(ariable)31
+(with)g(parameter)g(and)150 3298 y(v)-5 b(ariable)31
b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.)
-150 1428 y Fj(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
-1575 y Ft(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
+150 3498 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
+3645 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
(expansion,)g(command)g(substitution,)g(and)f(arithmetic)150
-1685 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
-(quotes)h(for)f(w)m(ord)g(splitting.)275 1820 y(The)43
-b(shell)h(treats)h(eac)m(h)h(c)m(haracter)f(of)g Fs($IFS)e
-Ft(as)h(a)g(delimiter,)49 b(and)43 b(splits)h(the)h(results)e(of)i(the)
-150 1930 y(other)40 b(expansions)f(in)m(to)i(w)m(ords)e(on)h(these)g(c)
-m(haracters.)70 b(If)39 b Fs(IFS)g Ft(is)h(unset,)i(or)d(its)h(v)-5
-b(alue)40 b(is)g(exactly)150 2039 y Fs(<space><tab><newline>)p
-Ft(,)26 b(the)32 b(default,)g(then)f(sequences)h(of)62
-b Fs(<space>)p Ft(,)30 b Fs(<tab>)p Ft(,)h(and)f Fs(<newline>)150
-2149 y Ft(at)39 b(the)f(b)s(eginning)g(and)f(end)h(of)g(the)h(results)f
-(of)g(the)g(previous)g(expansions)g(are)g(ignored,)j(and)d(an)m(y)150
-2258 y(sequence)31 b(of)g Fs(IFS)f Ft(c)m(haracters)j(not)e(at)g(the)g
-(b)s(eginning)g(or)f(end)h(serv)m(es)g(to)h(delimit)f(w)m(ords.)42
-b(If)30 b Fs(IFS)g Ft(has)150 2368 y(a)g(v)-5 b(alue)30
-b(other)g(than)g(the)g(default,)g(then)f(sequences)h(of)g(the)g
-(whitespace)g(c)m(haracters)h Fs(space)e Ft(and)g Fs(tab)150
-2478 y Ft(are)36 b(ignored)g(at)g(the)g(b)s(eginning)f(and)g(end)g(of)h
-(the)g(w)m(ord,)h(as)f(long)g(as)g(the)g(whitespace)h(c)m(haracter)g
-(is)150 2587 y(in)f(the)g(v)-5 b(alue)36 b(of)g Fs(IFS)f
-Ft(\(an)h Fs(IFS)f Ft(whitespace)h(c)m(haracter\).)60
-b(An)m(y)35 b(c)m(haracter)j(in)d Fs(IFS)g Ft(that)i(is)f(not)g
-Fs(IFS)150 2697 y Ft(whitespace,)27 b(along)f(with)f(an)m(y)g(adjacen)m
-(t)h Fs(IFS)e Ft(whitespace)i(c)m(haracters,)i(delimits)e(a)f(\014eld.)
-38 b(A)26 b(sequence)150 2806 y(of)35 b Fs(IFS)f Ft(whitespace)h(c)m
-(haracters)i(is)d(also)i(treated)g(as)f(a)g(delimiter.)55
-b(If)34 b(the)h(v)-5 b(alue)35 b(of)g Fs(IFS)f Ft(is)h(n)m(ull,)h(no)
-150 2916 y(w)m(ord)30 b(splitting)h(o)s(ccurs.)275 3052
-y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p Fs("")g
-Ft(or)h Fs('')p Ft(\))f(are)g(retained.)80 b(Unquoted)43
-b(implicit)h(n)m(ull)f(argumen)m(ts,)150 3161 y(resulting)24
+3755 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
+(quotes)h(for)f(w)m(ord)g(splitting.)275 3890 y(The)e(shell)g(treats)i
+(eac)m(h)g(c)m(haracter)g(of)f Ft($IFS)e Fu(as)i(a)g(delimiter,)h(and)e
+(splits)g(the)h(results)f(of)h(the)g(other)150 3999 y(expansions)22
+b(in)m(to)i(w)m(ords)e(using)h(these)g(c)m(haracters)h(as)f(\014eld)f
+(terminators.)39 b(If)22 b Ft(IFS)g Fu(is)h(unset,)h(or)e(its)h(v)-5
+b(alue)150 4109 y(is)36 b(exactly)j Ft(<space><tab><newline>)p
+Fu(,)32 b(the)37 b(default,)h(then)e(sequences)h(of)67
+b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 4219
+y Ft(<newline>)28 b Fu(at)k(the)f(b)s(eginning)f(and)h(end)f(of)h(the)g
+(results)g(of)g(the)g(previous)g(expansions)f(are)i(ignored,)150
+4328 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f
+(at)h(the)f(b)s(eginning)f(or)h(end)f(serv)m(es)h(to)h(delimit)f(w)m
+(ords.)150 4438 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5
+b(alue)43 b(other)h(than)f(the)g(default,)k(then)c(sequences)h(of)f
+(the)h(whitespace)f(c)m(haracters)150 4547 y Ft(space)26
+b Fu(and)h Ft(tab)g Fu(are)h(ignored)g(at)h(the)f(b)s(eginning)f(and)g
+(end)g(of)h(the)g(w)m(ord,)g(as)g(long)g(as)g(the)g(whitespace)150
+4657 y(c)m(haracter)34 b(is)f(in)f(the)h(v)-5 b(alue)33
+b(of)f Ft(IFS)g Fu(\(an)h Ft(IFS)e Fu(whitespace)j(c)m(haracter\).)49
+b(An)m(y)32 b(c)m(haracter)i(in)f Ft(IFS)e Fu(that)150
+4767 y(is)f(not)h Ft(IFS)f Fu(whitespace,)h(along)g(with)f(an)m(y)h
+(adjacen)m(t)h Ft(IFS)d Fu(whitespace)i(c)m(haracters,)h(delimits)f(a)g
+(\014eld.)150 4876 y(A)h(sequence)h(of)f Ft(IFS)f Fu(whitespace)i(c)m
+(haracters)h(is)e(also)h(treated)g(as)g(a)f(delimiter.)47
+b(If)32 b(the)g(v)-5 b(alue)33 b(of)f Ft(IFS)150 4986
+y Fu(is)e(n)m(ull,)h(no)f(w)m(ord)g(splitting)h(o)s(ccurs.)275
+5121 y(Explicit)44 b(n)m(ull)f(argumen)m(ts)g(\()p Ft("")g
+Fu(or)h Ft('')p Fu(\))f(are)g(retained.)80 b(Unquoted)43
+b(implicit)h(n)m(ull)f(argumen)m(ts,)150 5230 y(resulting)24
b(from)f(the)g(expansion)g(of)h(parameters)g(that)g(ha)m(v)m(e)h(no)e
(v)-5 b(alues,)25 b(are)f(remo)m(v)m(ed.)40 b(If)23 b(a)g(parameter)150
-3271 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)
+5340 y(with)30 b(no)g(v)-5 b(alue)31 b(is)g(expanded)e(within)h(double)
g(quotes,)h(a)g(n)m(ull)f(argumen)m(t)h(results)f(and)g(is)g(retained.)
-275 3406 y(Note)h(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h
-(splitting)g(is)f(p)s(erformed.)150 3607 y Fj(3.5.8)63
-b(Filename)41 b(Expansion)150 3754 y Ft(After)26 b(w)m(ord)g
-(splitting,)i(unless)d(the)i(`)p Fs(-f)p Ft(')f(option)g(has)g(b)s(een)
-f(set)i(\(see)g(Section)g(4.3.1)h([The)e(Set)g(Builtin],)150
-3863 y(page)h(54\),)i(Bash)d(scans)h(eac)m(h)h(w)m(ord)e(for)g(the)h(c)
-m(haracters)g(`)p Fs(*)p Ft(',)h(`)p Fs(?)p Ft(',)g(and)e(`)p
-Fs([)p Ft('.)39 b(If)26 b(one)h(of)g(these)f(c)m(haracters)150
-3973 y(app)s(ears,)h(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g
-Fq(pattern)p Ft(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h
-(sorted)150 4082 y(list)k(of)g(\014le)g(names)g(matc)m(hing)h(the)f
-(pattern.)45 b(If)32 b(no)f(matc)m(hing)i(\014le)f(names)g(are)g
-(found,)f(and)h(the)g(shell)150 4192 y(option)c Fs(nullglob)e
-Ft(is)i(disabled,)h(the)f(w)m(ord)g(is)g(left)g(unc)m(hanged.)40
-b(If)28 b(the)g Fs(nullglob)e Ft(option)i(is)g(set,)i(and)150
-4302 y(no)38 b(matc)m(hes)h(are)f(found,)h(the)f(w)m(ord)f(is)h(remo)m
-(v)m(ed.)65 b(If)37 b(the)h Fs(failglob)e Ft(shell)i(option)g(is)g
-(set,)j(and)c(no)150 4411 y(matc)m(hes)f(are)g(found,)f(an)g(error)f
-(message)j(is)e(prin)m(ted)f(and)h(the)g(command)g(is)g(not)g
-(executed.)56 b(If)35 b(the)150 4521 y(shell)e(option)h
-Fs(nocaseglob)c Ft(is)j(enabled,)h(the)g(matc)m(h)g(is)f(p)s(erformed)e
-(without)i(regard)g(to)h(the)g(case)g(of)150 4630 y(alphab)s(etic)d(c)m
-(haracters.)275 4766 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g
-(\014lename)h(expansion,)h(the)e(c)m(haracter)i(`)p Fs(.)p
-Ft(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150 4876
-y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f(matc)
-m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
-Fs(dotglob)150 4985 y Ft(is)31 b(set.)45 b(When)31 b(matc)m(hing)h(a)g
-(\014le)f(name,)h(the)g(slash)f(c)m(haracter)i(m)m(ust)e(alw)m(a)m(ys)i
-(b)s(e)e(matc)m(hed)h(explicitly)-8 b(.)150 5095 y(In)30
-b(other)g(cases,)i(the)e(`)p Fs(.)p Ft(')h(c)m(haracter)h(is)e(not)h
-(treated)g(sp)s(ecially)-8 b(.)275 5230 y(See)28 b(the)g(description)g
-(of)g Fs(shopt)e Ft(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i
-(page)g(57,)g(for)f(a)g(descrip-)150 5340 y(tion)j(of)f(the)h
-Fs(nocaseglob)p Ft(,)d Fs(nullglob)p Ft(,)g Fs(failglob)p
-Ft(,)h(and)g Fs(dotglob)g Ft(options.)p eop end
-%%Page: 26 32
-TeXDict begin 26 31 bop 150 -116 a Ft(26)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(The)h Fs(GLOBIGNORE)f
-Ft(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f(to)i(restrict)g
-(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 408
-y(pattern.)k(If)25 b Fs(GLOBIGNORE)e Ft(is)j(set,)h(eac)m(h)g(matc)m
+p eop end
+%%Page: 30 36
+TeXDict begin 30 35 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)275 299
+y(Note)31 b(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g
+(is)f(p)s(erformed.)150 503 y Fk(3.5.8)63 b(Filename)41
+b(Expansion)150 650 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d
+(the)i Ft(-f)f Fu(option)h(has)f(b)s(een)g(set)h(\(see)g(Section)h
+(4.3.1)g([The)e(Set)h(Builtin],)150 759 y(page)d(58\),)i(Bash)d(scans)h
+(eac)m(h)h(w)m(ord)e(for)g(the)h(c)m(haracters)g(`)p
+Ft(*)p Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p Ft([)p Fu('.)39
+b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 869 y(app)s(ears,)h
+(then)f(the)h(w)m(ord)f(is)h(regarded)g(as)g(a)g Fr(pattern)p
+Fu(,)g(and)g(replaced)g(with)f(an)h(alphab)s(etically)h(sorted)150
+979 y(list)k(of)f(\014lenames)g(matc)m(hing)h(the)f(pattern)g(\(see)h
+(Section)f(3.5.8.1)j([P)m(attern)e(Matc)m(hing],)h(page)f(30\).)43
+b(If)150 1088 y(no)26 b(matc)m(hing)i(\014lenames)e(are)h(found,)f(and)
+g(the)h(shell)f(option)h Ft(nullglob)d Fu(is)j(disabled,)g(the)g(w)m
+(ord)f(is)g(left)150 1198 y(unc)m(hanged.)40 b(If)30
+b(the)g Ft(nullglob)e Fu(option)i(is)h(set,)f(and)g(no)g(matc)m(hes)h
+(are)g(found,)e(the)h(w)m(ord)g(is)g(remo)m(v)m(ed.)150
+1307 y(If)i(the)g Ft(failglob)e Fu(shell)i(option)h(is)f(set,)h(and)f
+(no)g(matc)m(hes)h(are)g(found,)e(an)h(error)g(message)h(is)f(prin)m
+(ted)150 1417 y(and)e(the)g(command)g(is)h(not)f(executed.)42
+b(If)30 b(the)g(shell)h(option)g Ft(nocaseglob)c Fu(is)k(enabled,)f
+(the)h(matc)m(h)g(is)150 1527 y(p)s(erformed)e(without)h(regard)h(to)g
+(the)f(case)i(of)e(alphab)s(etic)h(c)m(haracters.)275
+1666 y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h
+(expansion,)h(the)e(c)m(haracter)i(`)p Ft(.)p Fu(')f(at)g(the)g(start)g
+(of)g(a)g(\014lename)150 1775 y(or)f(immediately)i(follo)m(wing)g(a)f
+(slash)f(m)m(ust)h(b)s(e)f(matc)m(hed)h(explicitly)-8
+b(,)27 b(unless)c(the)g(shell)h(option)g Ft(dotglob)150
+1885 y Fu(is)33 b(set.)51 b(When)33 b(matc)m(hing)h(a)g(\014lename,)h
+(the)e(slash)h(c)m(haracter)h(m)m(ust)e(alw)m(a)m(ys)i(b)s(e)e(matc)m
+(hed)h(explicitly)-8 b(.)150 1994 y(In)30 b(other)g(cases,)i(the)e(`)p
+Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h(treated)g(sp)s(ecially)-8
+b(.)275 2134 y(See)28 b(the)g(description)g(of)g Ft(shopt)e
+Fu(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i(page)g(62,)g(for)f
+(a)g(descrip-)150 2243 y(tion)j(of)f(the)h Ft(nocaseglob)p
+Fu(,)d Ft(nullglob)p Fu(,)g Ft(failglob)p Fu(,)h(and)g
+Ft(dotglob)g Fu(options.)275 2383 y(The)j Ft(GLOBIGNORE)f
+Fu(shell)i(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(used)f(to)i(restrict)g
+(the)g(set)f(of)h(\014lenames)f(matc)m(hing)i(a)150 2492
+y(pattern.)k(If)25 b Ft(GLOBIGNORE)e Fu(is)j(set,)h(eac)m(h)g(matc)m
(hing)g(\014lename)f(that)g(also)h(matc)m(hes)f(one)g(of)g(the)g
-(patterns)150 518 y(in)33 b Fs(GLOBIGNORE)d Ft(is)j(remo)m(v)m(ed)h
-(from)e(the)i(list)f(of)g(matc)m(hes.)50 b(The)33 b(\014lenames)g(`)p
-Fs(.)p Ft(')g(and)f(`)p Fs(..)p Ft(')h(are)g(alw)m(a)m(ys)150
-628 y(ignored)g(when)e Fs(GLOBIGNORE)f Ft(is)j(set)g(and)f(not)h(n)m
-(ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Fs(GLOBIGNORE)c
-Ft(to)j(a)g(non-n)m(ull)150 737 y(v)-5 b(alue)34 b(has)f(the)h
-(e\013ect)h(of)f(enabling)g(the)g Fs(dotglob)e Ft(shell)h(option,)j(so)
-e(all)g(other)g(\014lenames)g(b)s(eginning)150 847 y(with)43
-b(a)h(`)p Fs(.)p Ft(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44
+(patterns)150 2602 y(in)39 b Ft(GLOBIGNORE)d Fu(is)j(remo)m(v)m(ed)h
+(from)e(the)h(list)h(of)f(matc)m(hes.)67 b(The)39 b(\014lenames)g
+Ft(.)f Fu(and)h Ft(..)f Fu(are)h(alw)m(a)m(ys)150 2711
+y(ignored)33 b(when)e Ft(GLOBIGNORE)f Fu(is)j(set)g(and)f(not)h(n)m
+(ull.)48 b(Ho)m(w)m(ev)m(er,)35 b(setting)f Ft(GLOBIGNORE)c
+Fu(to)j(a)g(non-n)m(ull)150 2821 y(v)-5 b(alue)34 b(has)f(the)h
+(e\013ect)h(of)f(enabling)g(the)g Ft(dotglob)e Fu(shell)h(option,)j(so)
+e(all)g(other)g(\014lenames)g(b)s(eginning)150 2930 y(with)43
+b(a)h(`)p Ft(.)p Fu(')f(will)h(matc)m(h.)80 b(T)-8 b(o)44
b(get)h(the)e(old)h(b)s(eha)m(vior)f(of)h(ignoring)f(\014lenames)h(b)s
-(eginning)f(with)g(a)150 956 y(`)p Fs(.)p Ft(',)c(mak)m(e)g(`)p
-Fs(.*)p Ft(')e(one)g(of)g(the)h(patterns)f(in)g Fs(GLOBIGNORE)p
-Ft(.)58 b(The)37 b Fs(dotglob)e Ft(option)j(is)f(disabled)g(when)150
-1066 y Fs(GLOBIGNORE)28 b Ft(is)i(unset.)150 1251 y Fj(3.5.8.1)63
-b(P)m(attern)40 b(Matc)m(hing)150 1398 y Ft(An)m(y)24
+(eginning)f(with)g(a)150 3040 y(`)p Ft(.)p Fu(',)c(mak)m(e)g(`)p
+Ft(.*)p Fu(')e(one)g(of)g(the)h(patterns)f(in)g Ft(GLOBIGNORE)p
+Fu(.)58 b(The)37 b Ft(dotglob)e Fu(option)j(is)f(disabled)g(when)150
+3150 y Ft(GLOBIGNORE)28 b Fu(is)i(unset.)150 3354 y Fk(3.5.8.1)63
+b(P)m(attern)40 b(Matc)m(hing)150 3501 y Fu(An)m(y)24
b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i(other)e(than)f
(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s(ed)150
-1508 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29
-b Fl(nul)h Ft(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h
-(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 1618
+3610 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29
+b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h
+(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 3720
y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m
(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36
-b(sp)s(ecial)150 1727 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
+b(sp)s(ecial)150 3829 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
-b(.)275 1855 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
-(e)f(the)g(follo)m(wing)h(meanings:)150 2000 y Fs(*)432
-b Ft(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
-(string.)41 b(When)29 b(the)g Fs(globstar)e Ft(shell)i(option)630
-2110 y(is)37 b(enabled,)h(and)e(`)p Fs(*)p Ft(')h(is)g(used)f(in)g(a)h
+b(.)275 3969 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
+(e)f(the)g(follo)m(wing)h(meanings:)150 4135 y Ft(*)432
+b Fu(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
+(string.)41 b(When)29 b(the)g Ft(globstar)e Fu(shell)i(option)630
+4245 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h
(\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p
-Fs(*)p Ft('s)630 2219 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
+Ft(*)p Fu('s)630 4354 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
-2329 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
-Fs(/)p Ft(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Fs(*)p Ft('s)e(will)g
-(matc)m(h)h(only)f(directories)630 2439 y(and)k(sub)s(directories.)150
-2584 y Fs(?)432 b Ft(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
-150 2730 y Fs([...)o(])241 b Ft(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
+4464 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
+Ft(/)p Fu(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Ft(*)p Fu('s)e(will)g
+(matc)m(h)h(only)f(directories)630 4573 y(and)k(sub)s(directories.)150
+4737 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
+150 4902 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
(the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)
-i(separated)e(b)m(y)g(a)630 2839 y(h)m(yphen)i(denotes)h(a)g
-Fq(range)g(expression)p Ft(;)g(an)m(y)h(c)m(haracter)g(that)f(sorts)g
-(b)s(et)m(w)m(een)g(those)h(t)m(w)m(o)630 2949 y(c)m(haracters,)f
+i(separated)e(b)m(y)g(a)630 5011 y(h)m(yphen)k(denotes)i(a)g
+Fr(range)g(expression)p Fu(;)f(an)m(y)h(c)m(haracter)h(that)f(falls)g
+(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 5121 y(c)m(haracters,)d
(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g
-(sequence)e(and)f(c)m(haracter)630 3058 y(set,)31 b(is)f(matc)m(hed.)42
+(sequence)e(and)f(c)m(haracter)630 5230 y(set,)31 b(is)f(matc)m(hed.)42
b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p
-Fs([)p Ft(')h(is)f(a)h(`)p Fs(!)p Ft(')f(or)g(a)h(`)p
-Fs(^)p Ft(')g(then)f(an)m(y)630 3168 y(c)m(haracter)c(not)f(enclosed)g
-(is)g(matc)m(hed.)40 b(A)25 b(`)p Fp(\000)p Ft(')f(ma)m(y)i(b)s(e)e
-(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 3278
+Ft([)p Fu(')h(is)f(a)h(`)p Ft(!)p Fu(')f(or)g(a)h(`)p
+Ft(^)p Fu(')g(then)f(an)m(y)630 5340 y(c)m(haracter)c(not)f(enclosed)g
+(is)g(matc)m(hed.)40 b(A)25 b(`)p Fq(\000)p Fu(')f(ma)m(y)i(b)s(e)e
+(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)p eop
+end
+%%Page: 31 37
+TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)630 299
y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
-b(A)33 b(`)p Fs(])p Ft(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
-(including)g(it)g(as)h(the)630 3387 y(\014rst)25 b(c)m(haracter)i(in)e
+b(A)33 b(`)p Ft(])p Fu(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
+(including)g(it)g(as)h(the)630 408 y(\014rst)25 b(c)m(haracter)i(in)e
(the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
-(range)g(expressions)f(is)630 3497 y(determined)e(b)m(y)g(the)g(curren)
-m(t)f(lo)s(cale)j(and)e(the)g(v)-5 b(alue)23 b(of)g(the)h
-Fs(LC_COLLATE)c Ft(shell)j(v)-5 b(ariable,)630 3606 y(if)30
-b(set.)630 3734 y(F)-8 b(or)34 b(example,)g(in)f(the)g(default)g(C)f
-(lo)s(cale,)k(`)p Fs([a-dx-z])p Ft(')31 b(is)i(equiv)-5
-b(alen)m(t)34 b(to)g(`)p Fs([abcdxyz])p Ft('.)630 3843
-y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e(dictionary)i
-(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)630 3953
-y(`)p Fs([a-dx-z])p Ft(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
-b(alen)m(t)39 b(to)g(`)p Fs([abcdxyz])p Ft(';)g(it)g(migh)m(t)f(b)s(e)f
-(equiv)-5 b(alen)m(t)630 4063 y(to)34 b(`)p Fs([aBbCcDdxXyYz])p
-Ft(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
-(in)m(terpretation)h(of)630 4172 y(ranges)e(in)f(brac)m(k)m(et)i
-(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
-(cale)i(b)m(y)f(setting)630 4282 y(the)e Fs(LC_COLLATE)c
-Ft(or)k Fs(LC_ALL)d Ft(en)m(vironmen)m(t)j(v)-5 b(ariable)31
-b(to)g(the)g(v)-5 b(alue)31 b(`)p Fs(C)p Ft('.)630 4409
-y(Within)23 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j
-Fq(c)m(haracter)g(classes)j Ft(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f
-(the)i(syn)m(tax)f Fs([:)p Fq(class)t Fs(:])p Ft(,)630
-4519 y(where)30 b Fq(class)35 b Ft(is)30 b(one)h(of)f(the)h(follo)m
-(wing)h(classes)f(de\014ned)e(in)h(the)h Fl(posix)f Ft(standard:)870
-4647 y Fs(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g
-(lower)870 4756 y(print)g(punct)g(space)f(upper)h(word)190
-b(xdigit)630 4884 y Ft(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m
-(y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
-b(The)41 b Fs(word)630 4993 y Ft(c)m(haracter)32 b(class)f(matc)m(hes)h
+(range)g(expressions)f(is)630 518 y(determined)h(b)m(y)h(the)g(curren)m
+(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g
+Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 628 y Fu(shell)31
+b(v)-5 b(ariables,)31 b(if)f(set.)630 758 y(F)-8 b(or)34
+b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k(`)p
+Ft([a-dx-z])p Fu(')31 b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p
+Ft([abcdxyz])p Fu('.)630 868 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m
+(haracters)h(in)e(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s
+(cales)630 977 y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e
+(equiv)-5 b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m
+(t)f(b)s(e)f(equiv)-5 b(alen)m(t)630 1087 y(to)34 b(`)p
+Ft([aBbCcDdxXyYz])p Fu(',)c(for)j(example.)49 b(T)-8
+b(o)33 b(obtain)h(the)f(traditional)h(in)m(terpretation)h(of)630
+1196 y(ranges)e(in)f(brac)m(k)m(et)i(expressions,)g(y)m(ou)f(can)g
+(force)g(the)g(use)f(of)h(the)g(C)f(lo)s(cale)i(b)m(y)f(setting)630
+1306 y(the)c Ft(LC_COLLATE)e Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i
+(v)-5 b(ariable)30 b(to)g(the)f(v)-5 b(alue)30 b(`)p
+Ft(C)p Fu(',)g(or)f(enable)h(the)630 1416 y Ft(globasciiranges)c
+Fu(shell)31 b(option.)630 1546 y(Within)23 b(`)p Ft([)p
+Fu(')h(and)e(`)p Ft(])p Fu(',)j Fr(c)m(haracter)g(classes)j
+Fu(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f(the)i(syn)m(tax)f
+Ft([:)p Fr(class)t Ft(:])p Fu(,)630 1656 y(where)30 b
+Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h(follo)m(wing)h(classes)f
+(de\014ned)e(in)h(the)h Fm(posix)f Fu(standard:)870 1786
+y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower)
+870 1896 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630
+2026 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m
+(haracter)h(b)s(elonging)f(to)g(that)g(class.)75 b(The)41
+b Ft(word)630 2135 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
(letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Fs(_)p Ft('.)630 5121 y(Within)25 b(`)p Fs([)p Ft(')f(and)g(`)p
-Fs(])p Ft(',)i(an)e Fq(equiv)-5 b(alence)26 b(class)j
-Ft(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
-Fs([=)p Fq(c)6 b Fs(=])p Ft(,)630 5230 y(whic)m(h)29
+Ft(_)p Fu('.)630 2266 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p
+Ft(])p Fu(',)i(an)e Fr(equiv)-5 b(alence)26 b(class)j
+Fu(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
+Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 2375 y(whic)m(h)29
b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
-m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 5340
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 2485
y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
-Fq(c)6 b Ft(.)p eop end
-%%Page: 27 33
-TeXDict begin 27 32 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)630 299
-y(Within)21 b(`)p Fs([)p Ft(')h(and)e(`)p Fs(])p Ft(',)j(the)f(syn)m
-(tax)f Fs([.)p Fq(sym)m(b)s(ol)t Fs(.])f Ft(matc)m(hes)i(the)f
-(collating)j(sym)m(b)s(ol)c Fq(sym)m(b)s(ol)t Ft(.)275
-450 y(If)29 b(the)g Fs(extglob)f Ft(shell)h(option)h(is)g(enabled)f
-(using)g(the)h Fs(shopt)e Ft(builtin,)h(sev)m(eral)i(extended)f
-(pattern)150 560 y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
-b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fq(pattern-list)j
-Ft(is)d(a)g(list)g(of)150 669 y(one)d(or)f(more)h(patterns)f(separated)
-h(b)m(y)f(a)h(`)p Fs(|)p Ft('.)47 b(Comp)s(osite)33 b(patterns)f(ma)m
-(y)i(b)s(e)d(formed)h(using)g(one)h(or)150 779 y(more)e(of)f(the)h
-(follo)m(wing)g(sub-patterns:)150 930 y Fs(?\()p Fi(pattern-list)11
-b Fs(\))630 1040 y Ft(Matc)m(hes)32 b(zero)f(or)g(one)f(o)s(ccurrence)h
-(of)f(the)h(giv)m(en)g(patterns.)150 1191 y Fs(*\()p
-Fi(pattern-list)11 b Fs(\))630 1300 y Ft(Matc)m(hes)32
-b(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
-150 1452 y Fs(+\()p Fi(pattern-list)11 b Fs(\))630 1561
-y Ft(Matc)m(hes)32 b(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)
-m(en)i(patterns.)150 1712 y Fs(@\()p Fi(pattern-list)11
-b Fs(\))630 1822 y Ft(Matc)m(hes)32 b(one)f(of)f(the)h(giv)m(en)g
-(patterns.)150 1973 y Fs(!\()p Fi(pattern-list)11 b Fs(\))630
-2083 y Ft(Matc)m(hes)32 b(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m
-(en)g(patterns.)150 2274 y Fj(3.5.9)63 b(Quote)41 b(Remo)m(v)-7
-b(al)150 2421 y Ft(After)32 b(the)g(preceding)g(expansions,)h(all)f
+Fr(c)p Fu(.)630 2615 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p
+Ft(])p Fu(',)j(the)d(syn)m(tax)h Ft([.)p Fr(sym)m(b)s(ol)t
+Ft(.])e Fu(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d
+Fr(sym)m(b)s(ol)p Fu(.)275 2767 y(If)29 b(the)g Ft(extglob)f
+Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h Ft(shopt)e
+Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 2876
+y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
+b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fr(pattern-list)j
+Fu(is)d(a)g(list)g(of)150 2986 y(one)d(or)f(more)h(patterns)f
+(separated)h(b)m(y)f(a)h(`)p Ft(|)p Fu('.)47 b(Comp)s(osite)33
+b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150
+3095 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
+3247 y Ft(?\()p Fj(pattern-list)p Ft(\))630 3356 y Fu(Matc)m(hes)h
+(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150
+3507 y Ft(*\()p Fj(pattern-list)p Ft(\))630 3617 y Fu(Matc)m(hes)h
+(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
+150 3768 y Ft(+\()p Fj(pattern-list)p Ft(\))630 3878
+y Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m
+(en)i(patterns.)150 4029 y Ft(@\()p Fj(pattern-list)p
+Ft(\))630 4138 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)
+150 4290 y Ft(!\()p Fj(pattern-list)p Ft(\))630 4399
+y Fu(Matc)m(hes)h(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
+(patterns.)150 4590 y Fk(3.5.9)63 b(Quote)41 b(Remo)m(v)-7
+b(al)150 4737 y Fu(After)32 b(the)g(preceding)g(expansions,)h(all)f
(unquoted)f(o)s(ccurrences)h(of)g(the)h(c)m(haracters)g(`)p
-Fs(\\)p Ft(',)g(`)p Fs(')p Ft(',)f(and)g(`)p Fs(")p Ft(')150
-2530 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
-(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 2754 y Fr(3.6)68
-b(Redirections)150 2914 y Ft(Before)43 b(a)f(command)f(is)h(executed,)j
-(its)d(input)f(and)g(output)g(ma)m(y)i(b)s(e)e Fq(redirected)k
-Ft(using)c(a)h(sp)s(ecial)150 3023 y(notation)33 b(in)m(terpreted)g(b)m
-(y)f(the)g(shell.)46 b(Redirection)33 b(ma)m(y)g(also)g(b)s(e)f(used)f
-(to)i(op)s(en)e(and)h(close)h(\014les)f(for)150 3133
-y(the)h(curren)m(t)g(shell)g(execution)h(en)m(vironmen)m(t.)49
-b(The)33 b(follo)m(wing)h(redirection)g(op)s(erators)f(ma)m(y)h
-(precede)150 3243 y(or)29 b(app)s(ear)g(an)m(ywhere)g(within)g(a)h
-(simple)f(command)g(or)h(ma)m(y)g(follo)m(w)g(a)g(command.)40
-b(Redirections)31 b(are)150 3352 y(pro)s(cessed)f(in)g(the)g(order)g
-(they)h(app)s(ear,)f(from)g(left)h(to)g(righ)m(t.)275
-3483 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)
-m(y)h(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)
-s(e)150 3592 y(preceded)41 b(b)m(y)g(a)g(w)m(ord)g(of)g(the)g(form)g
-Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(.)72 b(In)40 b(this)h(case,)k
-(for)c(eac)m(h)h(redirection)g(op)s(erator)150 3702 y(except)30
-b Fs(>)p Ft(&-)f(and)f Fs(<)p Ft(&-,)h(the)g(shell)g(will)h(allo)s
+Ft(\\)p Fu(',)g(`)p Ft(')p Fu(',)f(and)g(`)p Ft(")p Fu(')150
+4847 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g(the)f(ab)s(o)m(v)m
+(e)i(expansions)e(are)h(remo)m(v)m(ed.)150 5071 y Fs(3.6)68
+b(Redirections)150 5230 y Fu(Before)32 b(a)f(command)f(is)h(executed,)h
+(its)f(input)e(and)h(output)h(ma)m(y)g(b)s(e)f Fr(redirected)k
+Fu(using)c(a)i(sp)s(ecial)f(no-)150 5340 y(tation)d(in)m(terpreted)f(b)
+m(y)f(the)h(shell.)40 b(Redirection)27 b(allo)m(ws)h(commands')f
+(\014le)f(handles)g(to)i(b)s(e)e(duplicated,)p eop end
+%%Page: 32 38
+TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)150 299
+y(op)s(ened,)28 b(closed,)i(made)e(to)h(refer)f(to)h(di\013eren)m(t)f
+(\014les,)h(and)f(can)g(c)m(hange)h(the)g(\014les)f(the)g(command)g
+(reads)150 408 y(from)39 b(and)g(writes)h(to.)69 b(Redirection)40
+b(ma)m(y)g(also)h(b)s(e)e(used)g(to)h(mo)s(dify)f(\014le)g(handles)g
+(in)g(the)h(curren)m(t)150 518 y(shell)e(execution)h(en)m(vironmen)m
+(t.)65 b(The)37 b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g
+(precede)h(or)f(app)s(ear)150 628 y(an)m(ywhere)30 b(within)f(a)h
+(simple)f(command)h(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40
+b(Redirections)30 b(are)g(pro)s(cessed)150 737 y(in)g(the)h(order)f
+(they)g(app)s(ear,)g(from)g(left)h(to)g(righ)m(t.)275
+880 y(Eac)m(h)45 b(redirection)h(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)m
+(y)h(a)h(\014le)f(descriptor)f(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s
+(e)150 990 y(preceded)41 b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f
+Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)74 b(In)41 b(this)g(case,)k
+(for)c(eac)m(h)i(redirection)f(op)s(erator)150 1100 y(except)30
+b Ft(>)p Fu(&-)f(and)f Ft(<)p Fu(&-,)h(the)g(shell)g(will)h(allo)s
(cate)h(a)e(\014le)h(descriptor)e(greater)j(than)d(10)i(and)e(assign)i
-(it)f(to)150 3811 y Fs({)p Fq(v)-5 b(arname)5 b Fs(})p
-Ft(.)42 b(If)31 b Fs(>)p Ft(&-)f(or)h Fs(<)p Ft(&-)g(is)g(preceded)g(b)
-m(y)g Fs({)p Fq(v)-5 b(arname)5 b Fs(})p Ft(,)31 b(the)g(v)-5
-b(alue)31 b(of)g Fq(v)-5 b(arname)37 b Ft(de\014nes)30
-b(the)h(\014le)150 3921 y(descriptor)f(to)h(close.)275
-4051 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
+(it)f(to)150 1209 y Fi({)p Fr(v)-5 b(arname)5 b Fi(})p
+Fu(.)45 b(If)31 b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)h(preceded)f(b)
+m(y)g Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)33 b(the)f(v)-5
+b(alue)32 b(of)g Fr(v)-5 b(arname)36 b Fu(de\014nes)31
+b(the)h(\014le)150 1319 y(descriptor)e(to)h(close.)275
+1462 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
-(c)m(har-)150 4161 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
-(is)g(`)p Fs(<)p Ft(',)i(the)e(redirection)g(refers)g(to)g(the)g
-(standard)f(input)f(\(\014le)150 4271 y(descriptor)33
+(c)m(har-)150 1572 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
+(is)g(`)p Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g
+(standard)f(input)f(\(\014le)150 1681 y(descriptor)33
b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
-(redirection)g(op)s(erator)h(is)f(`)p Fs(>)p Ft(',)h(the)f(redirection)
-g(refers)150 4380 y(to)e(the)g(standard)e(output)h(\(\014le)h
-(descriptor)f(1\).)275 4510 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
+(redirection)g(op)s(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)
+g(refers)150 1791 y(to)e(the)g(standard)e(output)h(\(\014le)h
+(descriptor)f(1\).)275 1934 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
(redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f
-(unless)e(other-)150 4620 y(wise)21 b(noted,)i(is)e(sub)5
+(unless)e(other-)150 2043 y(wise)21 b(noted,)i(is)e(sub)5
b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter)
-e(expansion,)i(command)150 4730 y(substitution,)31 b(arithmetic)h
+e(expansion,)i(command)150 2153 y(substitution,)31 b(arithmetic)h
(expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g
-(and)f(w)m(ord)h(splitting.)150 4839 y(If)f(it)h(expands)e(to)i(more)g
+(and)f(w)m(ord)h(splitting.)150 2263 y(If)f(it)h(expands)e(to)i(more)g
(than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275
-4970 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
+2406 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
(signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390
-5100 y Fs(ls)47 b(>)h Fi(dirlist)56 b Fs(2>&1)150 5230
-y Ft(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
+2549 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 2692 y
+Fu(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
(1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
-150 5340 y(\014le)h Fq(dirlist)r Ft(,)h(while)f(the)h(command)p
-eop end
-%%Page: 28 34
-TeXDict begin 28 33 bop 150 -116 a Ft(28)2572 b(Bash)31
-b(Reference)g(Man)m(ual)390 299 y Fs(ls)47 b(2>&1)g(>)g
-Fi(dirlist)150 428 y Ft(directs)28 b(only)f(the)g(standard)g(output)g
-(to)h(\014le)f Fq(dirlist)r Ft(,)h(b)s(ecause)g(the)f(standard)g(error)
-g(w)m(as)g(made)h(a)f(cop)m(y)150 537 y(of)k(the)f(standard)g(output)g
-(b)s(efore)g(the)g(standard)g(output)g(w)m(as)g(redirected)h(to)g
-Fq(dirlist)r Ft(.)275 666 y(Bash)26 b(handles)f(sev)m(eral)j
-(\014lenames)e(sp)s(ecially)h(when)f(they)g(are)g(used)g(in)g
-(redirections,)i(as)e(describ)s(ed)150 776 y(in)k(the)h(follo)m(wing)g
-(table:)150 924 y Fs(/dev/fd/)p Fi(fd)630 1034 y Ft(If)f
-Fq(fd)j Ft(is)d(a)h(v)-5 b(alid)31 b(in)m(teger,)h(\014le)e(descriptor)
-h Fq(fd)i Ft(is)d(duplicated.)150 1182 y Fs(/dev/stdin)630
-1292 y Ft(File)i(descriptor)e(0)h(is)f(duplicated.)150
-1440 y Fs(/dev/stdout)630 1550 y Ft(File)i(descriptor)e(1)h(is)f
-(duplicated.)150 1698 y Fs(/dev/stderr)630 1807 y Ft(File)i(descriptor)
-e(2)h(is)f(duplicated.)150 1956 y Fs(/dev/tcp/)p Fi(host)11
-b Fs(/)p Fi(port)630 2065 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5
-b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
-Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 2175
-y(n)m(um)m(b)s(er)h(or)h(service)h(name,)j(Bash)c(attempts)h(to)g(op)s
-(en)f(a)g(TCP)g(connection)h(to)g(the)630 2285 y(corresp)s(onding)29
-b(so)s(c)m(k)m(et.)150 2433 y Fs(/dev/udp/)p Fi(host)11
-b Fs(/)p Fi(port)630 2542 y Ft(If)41 b Fq(host)i Ft(is)f(a)g(v)-5
+150 2802 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390
+2945 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 3088 y Fu(directs)28
+b(only)f(the)h(standard)e(output)i(to)g(\014le)f Fr(dirlist)p
+Fu(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h(made)f(a)h(cop)m
+(y)150 3198 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
+(standard)g(output)g(w)m(as)g(redirected)h(to)g Fr(dirlist)p
+Fu(.)275 3341 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
+(ecially)h(when)f(they)g(are)g(used)g(in)g(redirections,)i(as)e
+(describ)s(ed)150 3450 y(in)k(the)h(follo)m(wing)g(table:)150
+3623 y Ft(/dev/fd/)p Fj(fd)630 3732 y Fu(If)f Fr(fd)j
+Fu(is)d(a)h(v)-5 b(alid)31 b(in)m(teger,)h(\014le)e(descriptor)h
+Fr(fd)i Fu(is)d(duplicated.)150 3901 y Ft(/dev/stdin)630
+4010 y Fu(File)i(descriptor)e(0)h(is)f(duplicated.)150
+4178 y Ft(/dev/stdout)630 4288 y Fu(File)i(descriptor)e(1)h(is)f
+(duplicated.)150 4456 y Ft(/dev/stderr)630 4565 y Fu(File)i(descriptor)
+e(2)h(is)f(duplicated.)150 4734 y Ft(/dev/tcp/)p Fj(host)p
+Ft(/)p Fj(port)630 4843 y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5
b(alid)41 b(hostname)h(or)f(In)m(ternet)h(address,)i(and)c
-Fq(p)s(ort)j Ft(is)f(an)f(in)m(teger)i(p)s(ort)630 2652
-y(n)m(um)m(b)s(er)g(or)i(service)g(name,)k(Bash)c(attempts)g(to)h(op)s
-(en)e(a)h(UDP)g(connection)g(to)h(the)630 2762 y(corresp)s(onding)29
-b(so)s(c)m(k)m(et.)275 2910 y(A)h(failure)h(to)g(op)s(en)e(or)i(create)
-h(a)e(\014le)h(causes)g(the)f(redirection)h(to)g(fail.)275
-3039 y(Redirections)f(using)e(\014le)i(descriptors)f(greater)h(than)f
-(9)h(should)e(b)s(e)h(used)f(with)h(care,)h(as)g(they)f(ma)m(y)150
-3148 y(con\015ict)i(with)f(\014le)h(descriptors)f(the)g(shell)h(uses)f
-(in)m(ternally)-8 b(.)150 3337 y Fj(3.6.1)63 b(Redirecting)40
-b(Input)150 3483 y Ft(Redirection)35 b(of)f(input)f(causes)i(the)f
-(\014le)g(whose)g(name)g(results)g(from)g(the)g(expansion)g(of)g
-Fq(w)m(ord)k Ft(to)d(b)s(e)150 3593 y(op)s(ened)d(for)g(reading)g(on)g
-(\014le)h(descriptor)f Fs(n)p Ft(,)h(or)f(the)g(standard)g(input)f
-(\(\014le)i(descriptor)f(0\))h(if)f Fs(n)g Ft(is)h(not)150
-3703 y(sp)s(eci\014ed.)275 3832 y(The)c(general)j(format)e(for)h
-(redirecting)g(input)e(is:)390 3961 y Fs([)p Fi(n)11
-b Fs(]<)p Fi(word)150 4149 y Fj(3.6.2)63 b(Redirecting)40
-b(Output)150 4296 y Ft(Redirection)31 b(of)g(output)f(causes)h(the)f
-(\014le)h(whose)f(name)g(results)h(from)e(the)i(expansion)f(of)h
-Fq(w)m(ord)i Ft(to)f(b)s(e)150 4405 y(op)s(ened)d(for)g(writing)g(on)g
-(\014le)h(descriptor)f Fq(n)p Ft(,)g(or)g(the)h(standard)e(output)h
-(\(\014le)h(descriptor)f(1\))h(if)g Fq(n)e Ft(is)i(not)150
-4515 y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h
-(exist)g(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g
-(truncated)f(to)h(zero)g(size.)275 4644 y(The)e(general)j(format)e(for)
-h(redirecting)g(output)f(is:)390 4773 y Fs([)p Fi(n)11
-b Fs(]>[|])p Fi(word)275 4902 y Ft(If)30 b(the)h(redirection)g(op)s
-(erator)g(is)g(`)p Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d
-Ft(option)j(to)g(the)g Fs(set)f Ft(builtin)g(has)h(b)s(een)150
-5011 y(enabled,)i(the)f(redirection)h(will)f(fail)h(if)f(the)g(\014le)g
-(whose)g(name)g(results)g(from)g(the)g(expansion)g(of)g
-Fq(w)m(ord)150 5121 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
+Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s(ort)630 4953
+y(n)m(um)m(b)s(er)23 b(or)i(service)h(name,)g(Bash)f(attempts)h(to)f
+(op)s(en)f(the)h(corresp)s(onding)f(TCP)g(so)s(c)m(k)m(et.)150
+5121 y Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)630 5230
+y Fu(If)41 b Fr(host)i Fu(is)f(a)g(v)-5 b(alid)41 b(hostname)h(or)f(In)
+m(ternet)h(address,)i(and)c Fr(p)s(ort)j Fu(is)f(an)f(in)m(teger)i(p)s
+(ort)630 5340 y(n)m(um)m(b)s(er)23 b(or)h(service)h(name,)h(Bash)e
+(attempts)h(to)g(op)s(en)f(the)g(corresp)s(onding)f(UDP)i(so)s(c)m(k)m
+(et.)p eop end
+%%Page: 33 39
+TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)275 299
+y(A)30 b(failure)h(to)g(op)s(en)e(or)i(create)h(a)e(\014le)h(causes)g
+(the)f(redirection)h(to)g(fail.)275 439 y(Redirections)f(using)e
+(\014le)i(descriptors)f(greater)h(than)f(9)h(should)e(b)s(e)h(used)f
+(with)h(care,)h(as)g(they)f(ma)m(y)150 548 y(con\015ict)i(with)f
+(\014le)h(descriptors)f(the)g(shell)h(uses)f(in)m(ternally)-8
+b(.)150 753 y Fk(3.6.1)63 b(Redirecting)40 b(Input)150
+900 y Fu(Redirection)35 b(of)f(input)f(causes)i(the)f(\014le)g(whose)g
+(name)g(results)g(from)g(the)g(expansion)g(of)g Fr(w)m(ord)k
+Fu(to)d(b)s(e)150 1010 y(op)s(ened)d(for)g(reading)g(on)g(\014le)h
+(descriptor)f Ft(n)p Fu(,)h(or)f(the)g(standard)g(input)f(\(\014le)i
+(descriptor)f(0\))h(if)f Ft(n)g Fu(is)h(not)150 1119
+y(sp)s(eci\014ed.)275 1259 y(The)c(general)j(format)e(for)h
+(redirecting)g(input)e(is:)390 1399 y Ft([)p Fj(n)p Ft(]<)p
+Fj(word)150 1604 y Fk(3.6.2)63 b(Redirecting)40 b(Output)150
+1751 y Fu(Redirection)31 b(of)g(output)f(causes)h(the)f(\014le)h(whose)
+f(name)g(results)h(from)e(the)i(expansion)f(of)h Fr(w)m(ord)i
+Fu(to)f(b)s(e)150 1861 y(op)s(ened)d(for)g(writing)g(on)g(\014le)h
+(descriptor)f Fr(n)p Fu(,)g(or)g(the)h(standard)e(output)h(\(\014le)h
+(descriptor)f(1\))h(if)g Fr(n)e Fu(is)i(not)150 1970
+y(sp)s(eci\014ed.)40 b(If)30 b(the)g(\014le)h(do)s(es)f(not)h(exist)g
+(it)g(is)f(created;)i(if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)f
+(to)h(zero)g(size.)275 2110 y(The)e(general)j(format)e(for)h
+(redirecting)g(output)f(is:)390 2250 y Ft([)p Fj(n)p
+Ft(]>[|])p Fj(word)275 2390 y Fu(If)g(the)h(redirection)g(op)s(erator)g
+(is)g(`)p Ft(>)p Fu(',)g(and)f(the)h Ft(noclobber)d Fu(option)j(to)g
+(the)g Ft(set)f Fu(builtin)g(has)h(b)s(een)150 2500 y(enabled,)h(the)g
+(redirection)h(will)f(fail)h(if)e(the)i(\014le)e(whose)h(name)g
+(results)g(from)f(the)h(expansion)g(of)g Fr(w)m(ord)150
+2609 y Fu(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
-Fs(>|)p Ft(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
-5230 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
-Ft(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
-(ev)m(en)h(if)e(the)h(\014le)150 5340 y(named)30 b(b)m(y)g
-Fq(w)m(ord)k Ft(exists.)p eop end
-%%Page: 29 35
-TeXDict begin 29 34 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)150 299
-y Fj(3.6.3)63 b(App)s(ending)42 b(Redirected)e(Output)150
-446 y Ft(Redirection)23 b(of)e(output)h(in)f(this)h(fashion)f(causes)h
-(the)g(\014le)g(whose)f(name)h(results)f(from)g(the)h(expansion)g(of)
-150 555 y Fq(w)m(ord)28 b Ft(to)e(b)s(e)e(op)s(ened)g(for)h(app)s
-(ending)e(on)i(\014le)g(descriptor)g Fq(n)p Ft(,)g(or)g(the)g(standard)
-f(output)h(\(\014le)g(descriptor)150 665 y(1\))31 b(if)f
-Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s
-(es)g(not)h(exist)g(it)g(is)f(created.)275 803 y(The)f(general)j
-(format)e(for)h(app)s(ending)e(output)h(is:)390 940 y
-Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150 1143 y Fj(3.6.4)63
-b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g(Error)150
-1290 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g(standard)g
-(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g(standard)f(error)
-150 1399 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g(b)s(e)f
-(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)f(the)g(expansion)h
-(of)f Fq(w)m(ord)t Ft(.)275 1537 y(There)f(are)i(t)m(w)m(o)h(formats)e
-(for)h(redirecting)g(standard)e(output)h(and)g(standard)f(error:)390
-1675 y Fs(&>)p Fi(word)150 1812 y Ft(and)390 1950 y Fs(>&)p
-Fi(word)150 2087 y Ft(Of)h(the)g(t)m(w)m(o)i(forms,)e(the)h(\014rst)e
-(is)i(preferred.)39 b(This)30 b(is)g(seman)m(tically)j(equiv)-5
-b(alen)m(t)32 b(to)390 2225 y Fs(>)p Fi(word)57 b Fs(2>&1)150
-2427 y Fj(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g
-(Standard)g(Error)150 2574 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s
+Ft(>|)p Fu(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
+2719 y(`)p Ft(>)p Fu(')36 b(and)f(the)g Ft(noclobber)e
+Fu(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
+(ev)m(en)h(if)e(the)h(\014le)150 2829 y(named)30 b(b)m(y)g
+Fr(w)m(ord)k Fu(exists.)150 3033 y Fk(3.6.3)63 b(App)s(ending)42
+b(Redirected)e(Output)150 3180 y Fu(Redirection)23 b(of)e(output)h(in)f
+(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f
+(from)g(the)h(expansion)g(of)150 3290 y Fr(w)m(ord)28
+b Fu(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g
+(descriptor)g Fr(n)p Fu(,)g(or)g(the)g(standard)f(output)h(\(\014le)g
+(descriptor)150 3399 y(1\))31 b(if)f Fr(n)g Fu(is)h(not)f(sp)s
+(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g
+(is)f(created.)275 3539 y(The)f(general)j(format)e(for)h(app)s(ending)e
+(output)h(is:)390 3679 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)150
+3884 y Fk(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g
+(Standard)g(Error)150 4031 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s
(oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f
-(the)g(standard)f(error)150 2684 y(output)d(\(\014le)h(descriptor)f
-(2\))h(to)g(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g
-(is)h(the)f(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 2822
-y(The)f(format)i(for)f(app)s(ending)f(standard)h(output)g(and)f
-(standard)h(error)g(is:)390 2959 y Fs(&>>)p Fi(word)150
-3097 y Ft(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32
-b(to)390 3235 y Fs(>>)p Fi(word)57 b Fs(2>&1)150 3437
-y Fj(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150 3584 y
-Ft(This)c(t)m(yp)s(e)h(of)f(redirection)i(instructs)e(the)h(shell)f(to)
-i(read)e(input)g(from)g(the)h(curren)m(t)f(source)h(un)m(til)g(a)150
-3694 y(line)31 b(con)m(taining)g(only)g Fq(w)m(ord)i
-Ft(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41
+(the)g(standard)f(error)150 4141 y(output)d(\(\014le)h(descriptor)f
+(2\))h(to)g(b)s(e)f(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)
+f(the)g(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 4281 y(There)f(are)i(t)m
+(w)m(o)h(formats)e(for)h(redirecting)g(standard)e(output)h(and)g
+(standard)f(error:)390 4421 y Ft(&>)p Fj(word)150 4561
+y Fu(and)390 4701 y Ft(>&)p Fj(word)150 4841 y Fu(Of)h(the)g(t)m(w)m(o)
+i(forms,)e(the)h(\014rst)e(is)i(preferred.)39 b(This)30
+b(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 b(to)390
+4981 y Ft(>)p Fj(word)46 b Ft(2>&1)275 5121 y Fu(When)41
+b(using)g(the)h(second)f(form,)k Fr(w)m(ord)f Fu(ma)m(y)e(not)g(expand)
+f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p Ft(-)p Fu('.)75
+b(If)41 b(it)h(do)s(es,)150 5230 y(other)27 b(redirection)g(op)s
+(erators)f(apply)h(\(see)g(Duplicating)h(File)f(Descriptors)h(b)s(elo)m
+(w\))f(for)f(compatibilit)m(y)150 5340 y(reasons.)p eop
+end
+%%Page: 34 40
+TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)150 299
+y Fk(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g(Standard)g
+(Error)150 446 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g
+(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g
+(standard)f(error)150 555 y(output)d(\(\014le)h(descriptor)f(2\))h(to)g
+(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g(is)h(the)f
+(expansion)h(of)f Fr(w)m(ord)p Fu(.)275 684 y(The)f(format)i(for)f(app)
+s(ending)f(standard)h(output)g(and)f(standard)h(error)g(is:)390
+813 y Ft(&>>)p Fj(word)150 942 y Fu(This)g(is)g(seman)m(tically)j
+(equiv)-5 b(alen)m(t)32 b(to)390 1071 y Ft(>>)p Fj(word)46
+b Ft(2>&1)275 1200 y Fu(\(see)31 b(Duplicating)h(File)f(Descriptors)g
+(b)s(elo)m(w\).)150 1389 y Fk(3.6.6)63 b(Here)41 b(Do)s(cumen)m(ts)150
+1536 y Fu(This)c(t)m(yp)s(e)h(of)f(redirection)i(instructs)e(the)h
+(shell)f(to)i(read)e(input)g(from)g(the)h(curren)m(t)f(source)h(un)m
+(til)g(a)150 1645 y(line)31 b(con)m(taining)g(only)g
+Fr(w)m(ord)i Fu(\(with)d(no)h(trailing)g(blanks\))f(is)g(seen.)41
b(All)31 b(of)f(the)h(lines)f(read)g(up)f(to)i(that)150
-3803 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f
-(for)h(a)h(command.)275 3941 y(The)e(format)i(of)g(here-do)s(cumen)m
-(ts)f(is:)390 4078 y Fs(<<[)p Fp(\000)p Fs(])p Fi(word)772
-4188 y(here-document)390 4298 y(delimiter)275 4435 y
-Ft(No)j(parameter)h(expansion,)g(command)f(substitution,)h(arithmetic)h
-(expansion,)f(or)f(\014lename)g(ex-)150 4545 y(pansion)h(is)h(p)s
-(erformed)f(on)g Fq(w)m(ord)t Ft(.)54 b(If)34 b(an)m(y)h(c)m(haracters)
-i(in)d Fq(w)m(ord)k Ft(are)d(quoted,)i(the)e Fq(delimiter)42
-b Ft(is)35 b(the)150 4654 y(result)40 b(of)g(quote)h(remo)m(v)-5
-b(al)42 b(on)e Fq(w)m(ord)t Ft(,)i(and)d(the)i(lines)f(in)g(the)g
-(here-do)s(cumen)m(t)h(are)f(not)g(expanded.)150 4764
-y(If)32 b Fq(w)m(ord)k Ft(is)d(unquoted,)f(all)i(lines)f(of)f(the)h
-(here-do)s(cumen)m(t)g(are)g(sub)5 b(jected)32 b(to)i(parameter)f
-(expansion,)150 4874 y(command)25 b(substitution,)g(and)g(arithmetic)h
-(expansion.)39 b(In)24 b(the)h(latter)h(case,)h(the)e(c)m(haracter)i
-(sequence)150 4983 y Fs(\\newline)h Ft(is)j(ignored,)f(and)g(`)p
-Fs(\\)p Ft(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m
-(haracters)h(`)p Fs(\\)p Ft(',)e(`)p Fs($)p Ft(',)h(and)f(`)p
-Fs(`)p Ft('.)275 5121 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f
-(`)p Fs(<<-)p Ft(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)
-e(stripp)s(ed)f(from)h(input)150 5230 y(lines)33 b(and)e(the)i(line)g
-(con)m(taining)h Fq(delimiter)7 b Ft(.)47 b(This)31 b(allo)m(ws)j
-(here-do)s(cumen)m(ts)f(within)e(shell)i(scripts)f(to)150
-5340 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)p
-eop end
-%%Page: 30 36
-TeXDict begin 30 35 bop 150 -116 a Ft(30)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fj(3.6.7)63 b(Here)41
-b(Strings)150 446 y Ft(A)30 b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s
-(cumen)m(ts,)f(the)g(format)h(is:)390 602 y Fs(<<<)47
-b Fi(word)275 758 y Ft(The)29 b Fq(w)m(ord)34 b Ft(is)c(expanded)g(and)
-g(supplied)f(to)i(the)f(command)h(on)f(its)h(standard)e(input.)150
-979 y Fj(3.6.8)63 b(Duplicating)41 b(File)g(Descriptors)150
-1126 y Ft(The)30 b(redirection)h(op)s(erator)390 1282
-y Fs([)p Fi(n)11 b Fs(]<&)p Fi(word)150 1438 y Ft(is)35
-b(used)e(to)j(duplicate)f(input)f(\014le)g(descriptors.)53
-b(If)34 b Fq(w)m(ord)k Ft(expands)c(to)h(one)g(or)g(more)g(digits,)h
-(the)f(\014le)150 1547 y(descriptor)e(denoted)h(b)m(y)g
-Fq(n)f Ft(is)g(made)h(to)g(b)s(e)f(a)h(cop)m(y)g(of)g(that)g(\014le)g
-(descriptor.)50 b(If)33 b(the)h(digits)g(in)f Fq(w)m(ord)150
-1657 y Ft(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g
+1755 y(p)s(oin)m(t)f(are)h(then)f(used)g(as)g(the)h(standard)f(input)f
+(for)h(a)h(command.)275 1884 y(The)e(format)i(of)g(here-do)s(cumen)m
+(ts)f(is:)390 2013 y Ft(<<[)p Fq(\000)p Ft(])p Fj(word)772
+2123 y(here-document)390 2232 y(delimiter)275 2361 y
+Fu(No)i(parameter)h(and)f(v)-5 b(ariable)32 b(expansion,)h(command)f
+(substitution,)h(arithmetic)g(expansion,)g(or)150 2471
+y(\014lename)38 b(expansion)g(is)g(p)s(erformed)e(on)i
+Fr(w)m(ord)p Fu(.)62 b(If)38 b(an)m(y)g(c)m(haracters)h(in)e
+Fr(w)m(ord)42 b Fu(are)c(quoted,)i(the)e Fr(de-)150 2580
+y(limiter)h Fu(is)32 b(the)h(result)f(of)g(quote)h(remo)m(v)-5
+b(al)33 b(on)f Fr(w)m(ord)p Fu(,)g(and)g(the)g(lines)g(in)g(the)g
+(here-do)s(cumen)m(t)g(are)h(not)150 2690 y(expanded.)71
+b(If)40 b Fr(w)m(ord)k Fu(is)d(unquoted,)h(all)g(lines)f(of)g(the)f
+(here-do)s(cumen)m(t)h(are)g(sub)5 b(jected)41 b(to)g(param-)150
+2800 y(eter)c(expansion,)i(command)d(substitution,)i(and)e(arithmetic)i
+(expansion,)g(the)f(c)m(haracter)i(sequence)150 2909
+y Ft(\\newline)28 b Fu(is)j(ignored,)f(and)g(`)p Ft(\\)p
+Fu(')h(m)m(ust)f(b)s(e)g(used)f(to)i(quote)g(the)g(c)m(haracters)h(`)p
+Ft(\\)p Fu(',)e(`)p Ft($)p Fu(',)h(and)f(`)p Ft(`)p Fu('.)275
+3038 y(If)21 b(the)i(redirection)g(op)s(erator)g(is)f(`)p
+Ft(<<-)p Fu(',)i(then)e(all)h(leading)g(tab)g(c)m(haracters)h(are)e
+(stripp)s(ed)f(from)h(input)150 3148 y(lines)33 b(and)f(the)h(line)h
+(con)m(taining)g Fr(delimiter)p Fu(.)49 b(This)32 b(allo)m(ws)i
+(here-do)s(cumen)m(ts)f(within)f(shell)i(scripts)e(to)150
+3257 y(b)s(e)e(inden)m(ted)g(in)g(a)h(natural)f(fashion.)150
+3446 y Fk(3.6.7)63 b(Here)41 b(Strings)150 3593 y Fu(A)30
+b(v)-5 b(arian)m(t)32 b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h
+(is:)390 3722 y Ft(<<<)47 b Fj(word)275 3851 y Fu(The)21
+b Fr(w)m(ord)k Fu(undergo)s(es)c(brace)h(expansion,)i(tilde)e
+(expansion,)i(parameter)e(and)f(v)-5 b(ariable)23 b(expansion,)150
+3960 y(command)j(substitution,)g(arithmetic)i(expansion,)f(and)e(quote)
+i(remo)m(v)-5 b(al.)40 b(P)m(athname)27 b(expansion)f(and)150
+4070 y(w)m(ord)j(splitting)i(are)f(not)g(p)s(erformed.)39
+b(The)29 b(result)h(is)g(supplied)e(as)i(a)h(single)f(string)g(to)g
+(the)g(command)150 4179 y(on)g(its)h(standard)f(input.)150
+4368 y Fk(3.6.8)63 b(Duplicating)41 b(File)g(Descriptors)150
+4515 y Fu(The)30 b(redirection)h(op)s(erator)390 4644
+y Ft([)p Fj(n)p Ft(]<&)p Fj(word)150 4773 y Fu(is)k(used)e(to)j
+(duplicate)f(input)f(\014le)g(descriptors.)53 b(If)34
+b Fr(w)m(ord)k Fu(expands)c(to)h(one)g(or)g(more)g(digits,)h(the)f
+(\014le)150 4882 y(descriptor)e(denoted)h(b)m(y)f Fr(n)g
+Fu(is)g(made)h(to)g(b)s(e)f(a)g(cop)m(y)h(of)g(that)g(\014le)f
+(descriptor.)50 b(If)33 b(the)h(digits)g(in)f Fr(w)m(ord)150
+4992 y Fu(do)c(not)h(sp)s(ecify)f(a)h(\014le)f(descriptor)g(op)s(en)g
(for)g(input,)g(a)h(redirection)g(error)f(o)s(ccurs.)40
-b(If)29 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)150 1766 y(to)31
-b(`)p Fs(-)p Ft(',)g(\014le)g(descriptor)g Fq(n)f Ft(is)g(closed.)43
-b(If)30 b Fq(n)g Ft(is)g(not)h(sp)s(eci\014ed,)f(the)h(standard)f
-(input)g(\(\014le)h(descriptor)f(0\))150 1876 y(is)g(used.)275
-2032 y(The)f(op)s(erator)390 2188 y Fs([)p Fi(n)11 b
-Fs(]>&)p Fi(word)150 2344 y Ft(is)40 b(used)g(similarly)h(to)g
-(duplicate)f(output)g(\014le)h(descriptors.)70 b(If)40
-b Fq(n)f Ft(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150
-2454 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
-b(If)30 b(the)g(digits)h(in)e Fq(w)m(ord)34 b Ft(do)29
+b(If)29 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)150 5101 y(to)31
+b(`)p Ft(-)p Fu(',)g(\014le)g(descriptor)g Fr(n)f Fu(is)g(closed.)43
+b(If)30 b Fr(n)g Fu(is)g(not)h(sp)s(eci\014ed,)f(the)h(standard)f
+(input)g(\(\014le)h(descriptor)f(0\))150 5211 y(is)g(used.)275
+5340 y(The)f(op)s(erator)p eop end
+%%Page: 35 41
+TeXDict begin 35 40 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)390 299
+y Ft([)p Fj(n)p Ft(]>&)p Fj(word)150 440 y Fu(is)40 b(used)g(similarly)
+h(to)g(duplicate)f(output)g(\014le)h(descriptors.)70
+b(If)40 b Fr(n)f Fu(is)i(not)f(sp)s(eci\014ed,)i(the)f(standard)150
+550 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
+b(If)30 b(the)g(digits)h(in)e Fr(w)m(ord)34 b Fu(do)29
b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150
-2563 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63
-b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f Ft(is)h(omitted,)k(and)
-37 b Fq(w)m(ord)k Ft(do)s(es)150 2673 y(not)28 b(expand)f(to)i(one)f
-(or)f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g
-(error)g(are)i(redirected)f(as)150 2783 y(describ)s(ed)h(previously)-8
-b(.)150 3003 y Fj(3.6.9)63 b(Mo)m(ving)41 b(File)h(Descriptors)150
-3150 y Ft(The)30 b(redirection)h(op)s(erator)390 3306
-y Fs([)p Fi(n)11 b Fs(]<&)p Fi(digit)g Fs(-)150 3462
-y Ft(mo)m(v)m(es)33 b(the)f(\014le)g(descriptor)f Fq(digit)k
-Ft(to)d(\014le)g(descriptor)g Fq(n)p Ft(,)f(or)h(the)g(standard)f
-(input)f(\(\014le)j(descriptor)e(0\))150 3572 y(if)f
-Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)40 b Fq(digit)33
-b Ft(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
-Fq(n)p Ft(.)275 3728 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
-(erator)390 3884 y Fs([)p Fi(n)11 b Fs(]>&)p Fi(digit)g
-Fs(-)150 4040 y Ft(mo)m(v)m(es)29 b(the)g(\014le)f(descriptor)f
-Fq(digit)k Ft(to)e(\014le)f(descriptor)g Fq(n)p Ft(,)g(or)g(the)g
+660 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55
+b(If)35 b Fr(w)m(ord)j Fu(ev)-5 b(aluates)37 b(to)f(`)p
+Ft(-)p Fu(',)h(\014le)e(descriptor)g Fr(n)g Fu(is)g(closed.)150
+769 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e Fr(n)f Fu(is)h(omitted,)i(and)
+e Fr(w)m(ord)j Fu(do)s(es)d(not)g(expand)f(to)i(one)f(or)g(more)g
+(digits)h(or)f(`)p Ft(-)p Fu(',)150 879 y(the)d(standard)e(output)h
+(and)g(standard)f(error)h(are)h(redirected)g(as)g(describ)s(ed)e
+(previously)-8 b(.)150 1085 y Fk(3.6.9)63 b(Mo)m(ving)41
+b(File)h(Descriptors)150 1232 y Fu(The)30 b(redirection)h(op)s(erator)
+390 1373 y Ft([)p Fj(n)p Ft(]<&)p Fj(digit)p Ft(-)150
+1515 y Fu(mo)m(v)m(es)i(the)f(\014le)g(descriptor)f Fr(digit)k
+Fu(to)d(\014le)g(descriptor)g Fr(n)p Fu(,)f(or)h(the)g(standard)f
+(input)f(\(\014le)j(descriptor)e(0\))150 1625 y(if)f
+Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)40 b Fr(digit)33
+b Fu(is)e(closed)g(after)g(b)s(eing)f(duplicated)g(to)h
+Fr(n)p Fu(.)275 1766 y(Similarly)-8 b(,)31 b(the)f(redirection)h(op)s
+(erator)390 1908 y Ft([)p Fj(n)p Ft(]>&)p Fj(digit)p
+Ft(-)150 2049 y Fu(mo)m(v)m(es)e(the)g(\014le)f(descriptor)f
+Fr(digit)k Fu(to)e(\014le)f(descriptor)g Fr(n)p Fu(,)g(or)g(the)g
(standard)f(output)h(\(\014le)g(descriptor)g(1\))150
-4150 y(if)i Fq(n)g Ft(is)h(not)f(sp)s(eci\014ed.)150
-4370 y Fj(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
-(Reading)e(and)h(W)-10 b(riting)150 4517 y Ft(The)30
-b(redirection)h(op)s(erator)390 4673 y Fs([)p Fi(n)11
-b Fs(]<>)p Fi(word)150 4829 y Ft(causes)39 b(the)g(\014le)g(whose)g
-(name)g(is)g(the)g(expansion)g(of)g Fq(w)m(ord)j Ft(to)d(b)s(e)g(op)s
-(ened)f(for)g(b)s(oth)h(reading)g(and)150 4939 y(writing)33
-b(on)f(\014le)h(descriptor)f Fq(n)p Ft(,)h(or)g(on)f(\014le)h
-(descriptor)g(0)g(if)f Fq(n)g Ft(is)h(not)g(sp)s(eci\014ed.)47
-b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 5049 y(exist,)e(it)g(is)g
-(created.)150 5313 y Fr(3.7)68 b(Executing)46 b(Commands)p
-eop end
-%%Page: 31 37
-TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)150 299
-y Fj(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150 446
-y Ft(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g(shell)f(p)
-s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150
-555 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.)
-199 702 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h(mark)
-m(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g(preceding)f
-(the)330 812 y(command)30 b(name\))h(and)f(redirections)h(are)f(sa)m(v)
-m(ed)i(for)e(later)h(pro)s(cessing.)199 952 y(2.)61 b(The)39
-b(w)m(ords)g(that)i(are)f(not)g(v)-5 b(ariable)40 b(assignmen)m(ts)h
-(or)e(redirections)i(are)f(expanded)f(\(see)h(Sec-)330
-1062 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g(19\).)61
-b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h(the)e
-(\014rst)330 1171 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f(the)g
-(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g(are)g
-(the)h(argu-)330 1281 y(men)m(ts.)199 1422 y(3.)61 b(Redirections)25
-b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g
-(Section)g(3.6)g([Redirections],)i(page)d(27\).)199 1562
-y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Fs(=)p Ft(')h(in)e(eac)m(h)
-j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)e(tilde)i
-(expansion,)g(parameter)330 1672 y(expansion,)49 b(command)d
-(substitution,)j(arithmetic)d(expansion,)k(and)45 b(quote)h(remo)m(v)-5
-b(al)46 b(b)s(efore)330 1781 y(b)s(eing)30 b(assigned)h(to)g(the)f(v)-5
-b(ariable.)275 1959 y(If)32 b(no)i(command)f(name)g(results,)h(the)g(v)
--5 b(ariable)34 b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)
-h(en)m(viron-)150 2069 y(men)m(t.)39 b(Otherwise,)27
-b(the)e(v)-5 b(ariables)26 b(are)g(added)f(to)h(the)f(en)m(vironmen)m
-(t)h(of)g(the)f(executed)h(command)g(and)150 2178 y(do)35
-b(not)f(a\013ect)j(the)d(curren)m(t)h(shell)g(en)m(vironmen)m(t.)54
-b(If)34 b(an)m(y)h(of)g(the)f(assignmen)m(ts)i(attempts)f(to)h(assign)
-150 2288 y(a)j(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5
-b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h
-(with)g(a)f(non-zero)150 2397 y(status.)275 2544 y(If)33
-b(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s(erformed,)f
-(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150 2654
-y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f(causes)h
-(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275
-2800 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
-(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m
-(w.)150 2910 y(Otherwise,)39 b(the)e(command)g(exits.)62
-b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f
-(substitu-)150 3020 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)
-f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
-150 3129 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f
-(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150
-3239 y(zero.)150 3450 y Fj(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h
-(Execution)150 3597 y Ft(After)i(a)h(command)f(has)g(b)s(een)f(split)h
-(in)m(to)h(w)m(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g
-(and)f(an)150 3707 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g
-(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 3853 y(1.)61
-b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i(the)e
-(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24 b(there)g(exists)
-330 3963 y(a)h(shell)g(function)f(b)m(y)g(that)h(name,)h(that)f
-(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g(in)g(Section)h
-(3.3)h([Shell)330 4073 y(F)-8 b(unctions],)31 b(page)h(15.)199
-4213 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e
-(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h
-(of)g(shell)330 4323 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g
-(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 4463 y(3.)61
-b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f(nor)g(a)g
-(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330
-4573 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Fs($PATH)d
-Ft(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m
-(y)g(that)330 4682 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)
-f(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e
-(to)330 4792 y(a)m(v)m(oid)e(m)m(ultiple)f Fs(PATH)f
-Ft(searc)m(hes)i(\(see)f(the)g(description)g(of)f Fs(hash)g
-Ft(in)g(Section)i(4.1)f([Bourne)g(Shell)330 4902 y(Builtins],)37
-b(page)f(37\).)55 b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h
-(in)f Fs($PATH)e Ft(is)i(p)s(erformed)f(only)h(if)g(the)330
-5011 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
-b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m
-(hes)330 5121 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
-Fs(command_not_found_handle)p Ft(.)32 b(If)23 b(that)h(function)f
-(exists,)330 5230 y(it)32 b(is)f(in)m(v)m(ok)m(ed)i(with)e(the)h
-(original)g(command)f(and)g(the)h(original)g(command's)f(argumen)m(ts)h
-(as)g(its)330 5340 y(argumen)m(ts,)h(and)e(the)i(function's)e(exit)i
-(status)g(b)s(ecomes)f(the)g(exit)h(status)f(of)h(the)f(shell.)46
-b(If)31 b(that)p eop end
-%%Page: 32 38
-TeXDict begin 32 37 bop 150 -116 a Ft(32)2572 b(Bash)31
-b(Reference)g(Man)m(ual)330 299 y(function)g(is)g(not)g(de\014ned,)f
-(the)i(shell)f(prin)m(ts)f(an)h(error)g(message)h(and)f(returns)e(an)i
-(exit)h(status)g(of)330 408 y(127.)199 549 y(4.)61 b(If)33
-b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g(the)h(command)f(name)g
-(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)330 658
-y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g(separate)h
-(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35 b(0)330
-768 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
+2159 y(if)i Fr(n)g Fu(is)h(not)f(sp)s(eci\014ed.)150
+2365 y Fk(3.6.10)63 b(Op)s(ening)42 b(File)g(Descriptors)g(for)g
+(Reading)e(and)h(W)-10 b(riting)150 2512 y Fu(The)30
+b(redirection)h(op)s(erator)390 2653 y Ft([)p Fj(n)p
+Ft(]<>)p Fj(word)150 2795 y Fu(causes)39 b(the)g(\014le)g(whose)g(name)
+g(is)g(the)g(expansion)g(of)g Fr(w)m(ord)j Fu(to)d(b)s(e)g(op)s(ened)f
+(for)g(b)s(oth)h(reading)g(and)150 2905 y(writing)33
+b(on)f(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)g(on)f(\014le)h
+(descriptor)g(0)g(if)f Fr(n)g Fu(is)h(not)g(sp)s(eci\014ed.)47
+b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 3014 y(exist,)e(it)g(is)g
+(created.)150 3257 y Fs(3.7)68 b(Executing)46 b(Commands)150
+3481 y Fk(3.7.1)63 b(Simple)41 b(Command)h(Expansion)150
+3628 y Fu(When)33 b(a)g(simple)g(command)g(is)g(executed,)h(the)g
+(shell)f(p)s(erforms)e(the)i(follo)m(wing)i(expansions,)e(assign-)150
+3738 y(men)m(ts,)e(and)f(redirections,)h(from)f(left)h(to)g(righ)m(t.)
+199 3879 y(1.)61 b(The)38 b(w)m(ords)f(that)i(the)g(parser)e(has)h
+(mark)m(ed)g(as)h(v)-5 b(ariable)39 b(assignmen)m(ts)g(\(those)g
+(preceding)f(the)330 3989 y(command)30 b(name\))h(and)f(redirections)h
+(are)f(sa)m(v)m(ed)i(for)e(later)h(pro)s(cessing.)199
+4127 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5
+b(ariable)40 b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f
+(\(see)h(Sec-)330 4237 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g
+(21\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h
+(the)e(\014rst)330 4346 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f
+(the)g(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g
+(are)g(the)h(argu-)330 4456 y(men)m(ts.)199 4594 y(3.)61
+b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m
+(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(31\).)199
+4732 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Ft(=)p
+Fu(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)
+e(tilde)i(expansion,)g(parameter)330 4841 y(expansion,)49
+b(command)d(substitution,)j(arithmetic)d(expansion,)k(and)45
+b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 4951 y(b)s(eing)30
+b(assigned)h(to)g(the)f(v)-5 b(ariable.)275 5121 y(If)32
+b(no)i(command)f(name)g(results,)h(the)g(v)-5 b(ariable)34
+b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h(en)m(viron-)
+150 5230 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26
+b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f(executed)h
+(command)g(and)150 5340 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h
+(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen)
+m(ts)i(attempts)f(to)h(assign)p eop end
+%%Page: 36 42
+TeXDict begin 36 41 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)150 299
+y(a)39 b(v)-5 b(alue)39 b(to)g(a)g(readonly)f(v)-5 b(ariable,)42
+b(an)c(error)g(o)s(ccurs,)j(and)c(the)i(command)f(exits)h(with)g(a)f
+(non-zero)150 408 y(status.)275 538 y(If)33 b(no)g(command)g(name)h
+(results,)g(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f
+(a\013ect)i(the)f(curren)m(t)150 648 y(shell)d(en)m(vironmen)m(t.)41
+b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g
+(with)f(a)h(non-zero)g(status.)275 778 y(If)26 b(there)i(is)f(a)h
+(command)f(name)h(left)g(after)g(expansion,)g(execution)h(pro)s(ceeds)e
+(as)g(describ)s(ed)f(b)s(elo)m(w.)150 887 y(Otherwise,)39
+b(the)e(command)g(exits.)62 b(If)37 b(one)g(of)g(the)h(expansions)f
+(con)m(tained)h(a)g(command)f(substitu-)150 997 y(tion,)i(the)d(exit)h
+(status)g(of)f(the)h(command)f(is)h(the)f(exit)h(status)g(of)f(the)h
+(last)g(command)f(substitution)150 1107 y(p)s(erformed.)55
+b(If)35 b(there)g(w)m(ere)h(no)g(command)f(substitutions,)i(the)e
+(command)h(exits)g(with)f(a)h(status)g(of)150 1216 y(zero.)150
+1406 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150
+1553 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m
+(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150
+1663 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g
+(actions)h(are)f(tak)m(en.)199 1793 y(1.)61 b(If)24 b(the)g(command)g
+(name)g(con)m(tains)i(no)e(slashes,)i(the)e(shell)h(attempts)g(to)g(lo)
+s(cate)h(it.)39 b(If)24 b(there)g(exists)330 1902 y(a)h(shell)g
+(function)f(b)m(y)g(that)h(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m
+(ed)h(as)e(describ)s(ed)g(in)g(Section)h(3.3)h([Shell)330
+2012 y(F)-8 b(unctions],)31 b(page)h(17.)199 2142 y(2.)61
+b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e(function,)j(the)e
+(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h(of)g(shell)330
+2251 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)
+f(is)g(in)m(v)m(ok)m(ed.)199 2381 y(3.)61 b(If)40 b(the)g(name)h(is)f
+(neither)h(a)f(shell)h(function)f(nor)g(a)g(builtin,)j(and)d(con)m
+(tains)h(no)g(slashes,)i(Bash)330 2491 y(searc)m(hes)c(eac)m(h)g
+(elemen)m(t)g(of)g Ft($PATH)d Fu(for)i(a)g(directory)h(con)m(taining)g
+(an)f(executable)h(\014le)f(b)m(y)g(that)330 2600 y(name.)56
+b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full)
+f(pathnames)g(of)h(executable)h(\014les)e(to)330 2710
+y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f Fu(searc)m(hes)i(\(see)f(the)g
+(description)g(of)f Ft(hash)g Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)
+330 2819 y(Builtins],)37 b(page)f(41\).)55 b(A)35 b(full)g(searc)m(h)g
+(of)g(the)g(directories)h(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h
+(if)g(the)330 2929 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f
+(table.)39 b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g
+(shell)g(searc)m(hes)330 3039 y(for)e(a)h(de\014ned)e(shell)h(function)
+h(named)e Ft(command_not_found_handle)p Fu(.)32 b(If)23
+b(that)h(function)f(exists,)330 3148 y(it)32 b(is)f(in)m(v)m(ok)m(ed)i
+(with)e(the)h(original)g(command)f(and)g(the)h(original)g(command's)f
+(argumen)m(ts)h(as)g(its)330 3258 y(argumen)m(ts,)h(and)e(the)i
+(function's)e(exit)i(status)g(b)s(ecomes)f(the)g(exit)h(status)f(of)h
+(the)f(shell.)46 b(If)31 b(that)330 3367 y(function)g(is)g(not)g
+(de\014ned,)f(the)i(shell)f(prin)m(ts)f(an)h(error)g(message)h(and)f
+(returns)e(an)i(exit)h(status)g(of)330 3477 y(127.)199
+3607 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g(successful,)g(or)f(if)g
+(the)h(command)f(name)g(con)m(tains)i(one)f(or)f(more)g(slashes,)i(the)
+330 3716 y(shell)g(executes)h(the)f(named)f(program)g(in)h(a)g
+(separate)h(execution)f(en)m(vironmen)m(t.)55 b(Argumen)m(t)35
+b(0)330 3826 y(is)30 b(set)h(to)h(the)e(name)h(giv)m(en,)g(and)f(the)h
(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)h(set)g(to)g(the)
-330 877 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8 b(.)199
-1018 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g(the)f
-(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h(\014le)g
-(is)g(not)330 1127 y(a)d(directory)-8 b(,)34 b(it)f(is)g(assumed)e(to)j
-(b)s(e)d(a)i Fq(shell)g(script)h Ft(and)e(the)h(shell)f(executes)i(it)f
-(as)g(describ)s(ed)e(in)330 1237 y(Section)g(3.8)h([Shell)e(Scripts],)g
-(page)i(34.)199 1377 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g
-(b)s(egun)e(async)m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)
-e(the)h(command)f(to)330 1487 y(complete)32 b(and)e(collects)i(its)f
-(exit)g(status.)150 1697 y Fj(3.7.3)63 b(Command)41 b(Execution)f(En)m
-(vironmen)m(t)150 1844 y Ft(The)30 b(shell)g(has)h(an)f
-Fq(execution)h(en)m(vironmen)m(t)r Ft(,)h(whic)m(h)e(consists)h(of)f
-(the)h(follo)m(wing:)225 1990 y Fp(\017)60 b Ft(op)s(en)32
-b(\014les)g(inherited)g(b)m(y)h(the)f(shell)h(at)g(in)m(v)m(o)s
-(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g(redirections)h(supplied)e(to)
-330 2100 y(the)g Fs(exec)e Ft(builtin)225 2240 y Fp(\017)60
-b Ft(the)28 b(curren)m(t)g(w)m(orking)h(directory)g(as)f(set)h(b)m(y)f
-Fs(cd)p Ft(,)g Fs(pushd)p Ft(,)g(or)g Fs(popd)p Ft(,)g(or)g(inherited)g
-(b)m(y)g(the)h(shell)f(at)330 2349 y(in)m(v)m(o)s(cation)225
-2489 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g
-(as)h(set)g(b)m(y)f Fs(umask)f Ft(or)h(inherited)g(from)g(the)h
-(shell's)f(paren)m(t)225 2630 y Fp(\017)60 b Ft(curren)m(t)30
-b(traps)g(set)h(b)m(y)f Fs(trap)225 2770 y Fp(\017)60
-b Ft(shell)30 b(parameters)f(that)h(are)g(set)g(b)m(y)g(v)-5
-b(ariable)30 b(assignmen)m(t)g(or)g(with)f Fs(set)f Ft(or)i(inherited)f
-(from)g(the)330 2879 y(shell's)i(paren)m(t)f(in)g(the)h(en)m(vironmen)m
-(t)225 3020 y Fp(\017)60 b Ft(shell)44 b(functions)f(de\014ned)f
-(during)h(execution)i(or)e(inherited)h(from)f(the)h(shell's)g(paren)m
-(t)f(in)h(the)330 3129 y(en)m(vironmen)m(t)225 3269 y
-Fp(\017)60 b Ft(options)33 b(enabled)g(at)h(in)m(v)m(o)s(cation)h
-(\(either)f(b)m(y)f(default)g(or)g(with)g(command-line)g(argumen)m
-(ts\))h(or)330 3379 y(b)m(y)c Fs(set)225 3519 y Fp(\017)60
-b Ft(options)31 b(enabled)f(b)m(y)g Fs(shopt)f Ft(\(see)j(Section)f
-(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(57\))225 3659
-y Fp(\017)60 b Ft(shell)31 b(aliases)g(de\014ned)f(with)g
-Fs(alias)f Ft(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(81\))225
-3799 y Fp(\017)60 b Ft(v)-5 b(arious)50 b(pro)s(cess)f
-Fl(id)p Ft(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
-(\(see)i(Section)g(3.2.3)g([Lists],)330 3909 y(page)31
-b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Fs($$)p Ft(,)g(and)g(the)h(v)-5
-b(alue)31 b(of)f Fs($PPID)275 4085 y Ft(When)k(a)g(simple)h(command)f
+330 3936 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 4065 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
+(the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h
+(\014le)g(is)g(not)330 4175 y(a)d(directory)-8 b(,)34
+b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fr(shell)g(script)h
+Fu(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330
+4285 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(39.)199
+4415 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
+m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f
+(to)330 4524 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
+4714 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
+4861 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
+p Fu(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225
+4991 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
+(shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g
+(redirections)h(supplied)e(to)330 5101 y(the)g Ft(exec)e
+Fu(builtin)225 5230 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking)
+h(directory)g(as)f(set)h(b)m(y)f Ft(cd)p Fu(,)g Ft(pushd)p
+Fu(,)g(or)g Ft(popd)p Fu(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at)
+330 5340 y(in)m(v)m(o)s(cation)p eop end
+%%Page: 37 43
+TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)225 299
+y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h
+(set)g(b)m(y)f Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f
+(paren)m(t)225 434 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m
+(y)f Ft(trap)225 570 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h
+(are)g(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
+Ft(set)f Fu(or)i(inherited)f(from)g(the)330 680 y(shell's)i(paren)m(t)f
+(in)g(the)h(en)m(vironmen)m(t)225 815 y Fq(\017)60 b
+Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
+(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330
+925 y(en)m(vironmen)m(t)225 1061 y Fq(\017)60 b Fu(options)33
+b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or)
+g(with)g(command-line)g(argumen)m(ts\))h(or)330 1170
+y(b)m(y)c Ft(set)225 1306 y Fq(\017)60 b Fu(options)31
+b(enabled)f(b)m(y)g Ft(shopt)f Fu(\(see)j(Section)f(4.3.2)h([The)e
+(Shopt)g(Builtin],)h(page)g(62\))225 1441 y Fq(\017)60
+b Fu(shell)31 b(aliases)g(de\014ned)f(with)g Ft(alias)f
+Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(88\))225
+1577 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f
+Fm(id)p Fu(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
+(\(see)i(Section)g(3.2.3)g([Lists],)330 1687 y(page)31
+b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Ft($$)p Fu(,)g(and)g(the)h(v)-5
+b(alue)31 b(of)f Ft($PPID)275 1849 y Fu(When)k(a)g(simple)h(command)f
(other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f
-(executed,)i(it)f(is)150 4195 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
+(executed,)i(it)f(is)150 1959 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
(separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the)
-f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 4305 y(noted,)31
+f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 2068 y(noted,)31
b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225
-4451 y Fp(\017)60 b Ft(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
+2205 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
(an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m
-(y)g(redirections)g(to)330 4560 y(the)g(command)225 4700
-y Fp(\017)60 b Ft(the)31 b(curren)m(t)f(w)m(orking)g(directory)225
-4840 y Fp(\017)60 b Ft(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
-4981 y Fp(\017)60 b Ft(shell)32 b(v)-5 b(ariables)33
+(y)g(redirections)g(to)330 2315 y(the)g(command)225 2450
+y Fq(\017)60 b Fu(the)31 b(curren)m(t)f(w)m(orking)g(directory)225
+2586 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
+2722 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33
b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5
-b(ariables)32 b(exp)s(orted)g(for)g(the)330 5090 y(command,)e(passed)g
+b(ariables)32 b(exp)s(orted)g(for)g(the)330 2831 y(command,)e(passed)g
(in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m
-(vironmen)m(t],)e(page)g(33\))225 5230 y Fp(\017)60 b
-Ft(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the)
+(vironmen)m(t],)e(page)g(37\))225 2967 y Fq(\017)60 b
+Fu(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the)
f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g
-(and)330 5340 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)p
-eop end
-%%Page: 33 39
-TeXDict begin 33 38 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)275 299
-y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g(en)m
-(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
-408 y(en)m(vironmen)m(t.)275 552 y(Command)35 b(substitution,)j
+(and)330 3076 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)
+275 3239 y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g
+(en)m(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
+3349 y(en)m(vironmen)m(t.)275 3485 y(Command)35 b(substitution,)j
(commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m
-(hronous)g(com-)150 662 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
+(hronous)g(com-)150 3595 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
(subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g
-(shell)g(en)m(vironmen)m(t,)150 772 y(except)i(that)g(traps)f(caugh)m
+(shell)g(en)m(vironmen)m(t,)150 3705 y(except)i(that)g(traps)f(caugh)m
(t)h(b)m(y)f(the)h(shell)f(are)g(reset)h(to)g(the)f(v)-5
b(alues)35 b(that)g(the)f(shell)h(inherited)e(from)150
-881 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
+3814 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g
-(of)h(a)f(pip)s(eline)g(are)h(also)150 991 y(executed)41
+(of)h(a)f(pip)s(eline)g(are)h(also)150 3924 y(executed)41
b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40
b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150
-1100 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
-1244 y(Subshells)24 b(spa)m(wned)h(to)i(execute)g(command)f
-(substitutions)g(inherit)g(the)g(v)-5 b(alue)26 b(of)g(the)h(`)p
-Fs(-e)p Ft(')e(option)150 1354 y(from)20 b(the)h(paren)m(t)g(shell.)37
-b(When)21 b(not)f(in)h Fl(posix)f Ft(mo)s(de,)i(Bash)f(clears)g(the)g
-(`)p Fs(-e)p Ft(')f(option)h(in)g(suc)m(h)f(subshells.)275
-1498 y(If)38 b(a)h(command)f(is)g(follo)m(w)m(ed)j(b)m(y)d(a)h(`)p
-Fs(&)p Ft(')g(and)f(job)g(con)m(trol)i(is)e(not)h(activ)m(e,)k(the)c
-(default)g(standard)150 1607 y(input)e(for)g(the)h(command)f(is)h(the)g
-(empt)m(y)g(\014le)f(`)p Fs(/dev/null)p Ft('.)61 b(Otherwise,)39
-b(the)f(in)m(v)m(ok)m(ed)h(command)150 1717 y(inherits)30
-b(the)h(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
-(di\014ed)g(b)m(y)g(redirections.)150 1926 y Fj(3.7.4)63
-b(En)m(vironmen)m(t)150 2073 y Ft(When)28 b(a)i(program)e(is)h(in)m(v)m
-(ok)m(ed)h(it)f(is)g(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)f(called)i
-(the)f Fq(en)m(vironmen)m(t)r Ft(.)41 b(This)28 b(is)h(a)150
-2182 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
-Fs(name=value)p Ft(.)275 2326 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
+4033 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
+4170 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions)
+g(inherit)g(the)g(v)-5 b(alue)31 b(of)f(the)h Ft(-e)e
+Fu(option)150 4280 y(from)23 b(the)i(paren)m(t)f(shell.)38
+b(When)24 b(not)g(in)g Fm(posix)f Fu(mo)s(de,)i(Bash)f(clears)h(the)f
+Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 4416
+y(If)f(a)h(command)g(is)g(follo)m(w)m(ed)h(b)m(y)f(a)g(`)p
+Ft(&)p Fu(')g(and)f(job)h(con)m(trol)h(is)f(not)g(activ)m(e,)k(the)c
+(default)g(standard)f(input)150 4526 y(for)35 b(the)g(command)g(is)g
+(the)g(empt)m(y)h(\014le)f Ft(/dev/null)p Fu(.)52 b(Otherwise,)37
+b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 4636
+y(the)c(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
+(di\014ed)g(b)m(y)g(redirections.)150 4837 y Fk(3.7.4)63
+b(En)m(vironmen)m(t)150 4984 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
+(ok)m(ed)h(it)g(is)f(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)g(called)h
+(the)f Fr(en)m(vironmen)m(t)p Fu(.)41 b(This)28 b(is)h(a)150
+5094 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
+Ft(name=value)p Fu(.)275 5230 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
-b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 2436
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 5340
y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
-(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
-2545 y(marking)26 b(it)g(for)g Fq(exp)s(ort)h Ft(to)g(c)m(hild)f(pro)s
+(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)p
+eop end
+%%Page: 38 44
+TeXDict begin 38 43 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)150 299
+y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s
(cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
-(t.)39 b(The)150 2655 y Fs(export)c Ft(and)i(`)p Fs(declare)29
-b(-x)p Ft(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
-(to)h(b)s(e)e(added)h(to)h(and)150 2765 y(deleted)21
-b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5
-b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e
-(mo)s(di\014ed,)i(the)150 2874 y(new)31 b(v)-5 b(alue)32
-b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e
-(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150
-2984 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
-(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5
-b(alues)31 b(ma)m(y)h(b)s(e)150 3093 y(mo)s(di\014ed)26
+(t.)39 b(The)150 408 y Ft(export)c Fu(and)i(`)p Ft(declare)29
+b(-x)p Fu(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
+(to)h(b)s(e)e(added)h(to)h(and)150 518 y(deleted)21 b(from)f(the)h(en)m
+(vironmen)m(t.)38 b(If)20 b(the)h(v)-5 b(alue)21 b(of)g(a)g(parameter)g
+(in)f(the)g(en)m(vironmen)m(t)i(is)e(mo)s(di\014ed,)i(the)150
+628 y(new)31 b(v)-5 b(alue)32 b(b)s(ecomes)f(part)h(of)f(the)h(en)m
+(vironmen)m(t,)g(replacing)h(the)e(old.)44 b(The)31 b(en)m(vironmen)m
+(t)h(inherited)150 737 y(b)m(y)f(an)m(y)g(executed)h(command)f
+(consists)g(of)g(the)g(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f
+(v)-5 b(alues)31 b(ma)m(y)h(b)s(e)150 847 y(mo)s(di\014ed)26
b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f
-(the)g Fs(unset)e Ft(and)h(`)p Fs(export)j(-n)p Ft(')e(commands,)g
-(plus)150 3203 y(an)m(y)k(additions)f(via)h(the)g Fs(export)d
-Ft(and)i(`)p Fs(declare)f(-x)p Ft(')h(commands.)275 3347
+(the)g Ft(unset)e Fu(and)h(`)p Ft(export)j(-n)p Fu(')e(commands,)g
+(plus)150 956 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d
+Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 1100
y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
(function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150
-3457 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
+1210 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
(as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150
-3566 y(page)g(17.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
+1320 y(page)g(18.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
(a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h
-(command.)275 3710 y(If)d(the)h(`)p Fs(-k)p Ft(')g(option)g(is)g(set)g
-(\(see)h(Section)f(4.3.1)i([The)e(Set)g(Builtin],)h(page)f(54\),)i
-(then)e(all)g(parameter)150 3820 y(assignmen)m(ts)i(are)g(placed)h(in)e
-(the)h(en)m(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i
-(that)f(precede)g(the)150 3929 y(command)g(name.)275
-4073 y(When)f(Bash)h(in)m(v)m(ok)m(es)i(an)e(external)g(command,)g(the)
-g(v)-5 b(ariable)31 b(`)p Fs($_)p Ft(')f(is)g(set)g(to)h(the)f(full)f
-(path)h(name)150 4183 y(of)h(the)f(command)g(and)g(passed)g(to)h(that)g
-(command)f(in)g(its)h(en)m(vironmen)m(t.)150 4392 y Fj(3.7.5)63
-b(Exit)40 b(Status)150 4538 y Ft(The)26 b(exit)h(status)f(of)g(an)g
+(command.)275 1464 y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g
+(Section)g(4.3.1)g([The)f(Set)g(Builtin],)h(page)g(58\),)h(then)e(all)g
+(parameter)150 1573 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m
+(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i(that)f
+(precede)g(the)150 1683 y(command)g(name.)275 1827 y(When)h(Bash)h(in)m
+(v)m(ok)m(es)i(an)e(external)h(command,)f(the)g(v)-5
+b(ariable)33 b(`)p Ft($_)p Fu(')f(is)g(set)h(to)f(the)g(full)g
+(pathname)150 1936 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g
+(command)f(in)g(its)h(en)m(vironmen)m(t.)150 2145 y Fk(3.7.5)63
+b(Exit)40 b(Status)150 2292 y Fu(The)26 b(exit)h(status)f(of)g(an)g
(executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h
-(the)g Fq(w)m(aitpid)k Ft(system)d(call)g(or)150 4648
+(the)g Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 2401
y(equiv)-5 b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g
(b)s(et)m(w)m(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s
-(elo)m(w,)h(the)150 4758 y(shell)i(ma)m(y)g(use)f(v)-5
+(elo)m(w,)h(the)150 2511 y(shell)i(ma)m(y)g(use)f(v)-5
b(alues)35 b(ab)s(o)m(v)m(e)g(125)h(sp)s(ecially)-8 b(.)54
b(Exit)35 b(statuses)g(from)f(shell)h(builtins)f(and)f(comp)s(ound)150
-4867 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58
+2621 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58
b(Under)36 b(certain)h(circumstances,)h(the)e(shell)h(will)f(use)150
-4977 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)
-f(failure)h(mo)s(des.)275 5121 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s
+2730 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)
+f(failure)h(mo)s(des.)275 2874 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s
(oses,)e(a)j(command)e(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h
-(status)f(has)f(succeeded.)150 5230 y(A)e(non-zero)h(exit)g(status)g
+(status)f(has)f(succeeded.)150 2984 y(A)e(non-zero)h(exit)g(status)g
(indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m
-(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 5340 y(there)34
+(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 3093 y(there)34
b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f
(and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5
-b(arious)p eop end
-%%Page: 34 40
-TeXDict begin 34 39 bop 150 -116 a Ft(34)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(failure)37 b(mo)s(des.)61
-b(When)37 b(a)g(command)g(terminates)h(on)f(a)g(fatal)i(signal)f(whose)
-f(n)m(um)m(b)s(er)e(is)i Fq(N)10 b Ft(,)38 b(Bash)150
-408 y(uses)30 b(the)g(v)-5 b(alue)31 b(128)p Fs(+)p Fq(N)42
-b Ft(as)30 b(the)h(exit)g(status.)275 548 y(If)k(a)h(command)g(is)g
-(not)g(found,)g(the)g(c)m(hild)h(pro)s(cess)e(created)i(to)g(execute)g
-(it)g(returns)d(a)j(status)f(of)150 657 y(127.)42 b(If)30
-b(a)h(command)f(is)g(found)f(but)h(is)g(not)h(executable,)h(the)f
-(return)e(status)i(is)f(126.)275 796 y(If)i(a)i(command)f(fails)g(b)s
-(ecause)g(of)h(an)f(error)f(during)g(expansion)h(or)g(redirection,)i
-(the)f(exit)g(status)150 906 y(is)c(greater)i(than)e(zero.)275
-1045 y(The)38 b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g
-(conditional)h(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150
-1155 y(ditional)i(Constructs],)h(page)f(10\))g(and)e(some)i(of)f(the)g
-(list)g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150
-1264 y(page)31 b(9\).)275 1403 y(All)40 b(of)g(the)h(Bash)f(builtins)f
+b(arious)150 3203 y(failure)38 b(mo)s(des.)62 b(When)37
+b(a)h(command)f(terminates)i(on)e(a)h(fatal)h(signal)g(whose)e(n)m(um)m
+(b)s(er)f(is)i Fr(N)p Fu(,)i(Bash)150 3313 y(uses)30
+b(the)g(v)-5 b(alue)31 b(128)p Ft(+)p Fr(N)42 b Fu(as)30
+b(the)h(exit)g(status.)275 3457 y(If)k(a)h(command)g(is)g(not)g(found,)
+g(the)g(c)m(hild)h(pro)s(cess)e(created)i(to)g(execute)g(it)g(returns)d
+(a)j(status)f(of)150 3566 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)
+f(but)h(is)g(not)h(executable,)h(the)f(return)e(status)i(is)f(126.)275
+3710 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f
+(during)g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
+3820 y(is)c(greater)i(than)e(zero.)275 3964 y(The)38
+b(exit)h(status)g(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h
+(commands)e(\(see)h(Section)h(3.2.4.2)h([Con-)150 4073
+y(ditional)i(Constructs],)h(page)f(10\))g(and)e(some)i(of)f(the)g(list)
+g(constructs)g(\(see)h(Section)f(3.2.3)i([Lists],)150
+4183 y(page)31 b(9\).)275 4327 y(All)40 b(of)g(the)h(Bash)f(builtins)f
(return)g(an)h(exit)h(status)g(of)f(zero)h(if)f(they)g(succeed)g(and)g
-(a)g(non-zero)150 1513 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
+(a)g(non-zero)150 4436 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m
(y)g(b)s(e)f(used)g(b)m(y)g(the)h(conditional)h(and)e(list)h
-(constructs.)50 b(All)35 b(builtins)150 1623 y(return)29
+(constructs.)50 b(All)35 b(builtins)150 4546 y(return)29
b(an)i(exit)g(status)g(of)f(2)h(to)g(indicate)g(incorrect)h(usage.)150
-1827 y Fj(3.7.6)63 b(Signals)150 1974 y Ft(When)36 b(Bash)g(is)h(in)m
+4755 y Fk(3.7.6)63 b(Signals)150 4902 y Fu(When)36 b(Bash)g(is)h(in)m
(teractiv)m(e,)j(in)c(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e
-(ignores)h Fs(SIGTERM)d Ft(\(so)j(that)g(`)p Fs(kill)150
-2083 y(0)p Ft(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
-(shell\),)f(and)d Fs(SIGINT)f Ft(is)i(caugh)m(t)h(and)f(handled)f(\(so)
-h(that)h(the)f Fs(wait)150 2193 y Ft(builtin)24 b(is)h(in)m
+(ignores)h Ft(SIGTERM)d Fu(\(so)j(that)g(`)p Ft(kill)150
+5011 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
+(shell\),)f(and)d Ft(SIGINT)f Fu(is)i(caugh)m(t)h(and)f(handled)f(\(so)
+h(that)h(the)f Ft(wait)150 5121 y Fu(builtin)24 b(is)h(in)m
(terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d
-Fs(SIGINT)p Ft(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
-(ops.)150 2302 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
-Fs(SIGQUIT)p Ft(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
-(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 2412 y(page)f(91\),)h
-(Bash)e(ignores)h Fs(SIGTTIN)p Ft(,)e Fs(SIGTTOU)p Ft(,)g(and)g
-Fs(SIGTSTP)p Ft(.)275 2551 y(Non-builtin)i(commands)g(started)g(b)m(y)g
-(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
-b(alues)31 b(inherited)150 2661 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
-(paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f
-(e\013ect,)k(async)m(hronous)c(commands)150 2770 y(ignore)f
-Fs(SIGINT)e Ft(and)h Fs(SIGQUIT)e Ft(in)j(addition)f(to)i(these)f
-(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150
-2880 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m
-(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f
-Fs(SIGTTIN)p Ft(,)150 2989 y Fs(SIGTTOU)p Ft(,)h(and)g
-Fs(SIGTSTP)p Ft(.)275 3129 y(The)h(shell)i(exits)g(b)m(y)f(default)g
-(up)s(on)f(receipt)i(of)f(a)h Fs(SIGHUP)p Ft(.)42 b(Before)32
-b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 3238
-y(resends)41 b(the)i Fs(SIGHUP)e Ft(to)i(all)g(jobs,)i(running)c(or)h
-(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
-Fs(SIGCONT)d Ft(to)150 3348 y(ensure)32 b(that)h(they)g(receiv)m(e)i
-(the)e Fs(SIGHUP)p Ft(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
-g(from)g(sending)f(the)h Fs(SIGHUP)e Ft(signal)150 3457
+Ft(SIGINT)p Fu(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
+(ops.)150 5230 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
+Ft(SIGQUIT)p Fu(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
+(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 5340 y(page)f(97\),)h
+(Bash)e(ignores)h Ft(SIGTTIN)p Fu(,)e Ft(SIGTTOU)p Fu(,)g(and)g
+Ft(SIGTSTP)p Fu(.)p eop end
+%%Page: 39 45
+TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)275 299
+y(Non-builtin)31 b(commands)g(started)g(b)m(y)g(Bash)h(ha)m(v)m(e)g
+(signal)g(handlers)e(set)i(to)g(the)g(v)-5 b(alues)31
+b(inherited)150 408 y(b)m(y)37 b(the)h(shell)g(from)f(its)h(paren)m(t.)
+62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f(e\013ect,)k(async)m
+(hronous)c(commands)150 518 y(ignore)f Ft(SIGINT)e Fu(and)h
+Ft(SIGQUIT)e Fu(in)j(addition)f(to)i(these)f(inherited)f(handlers.)55
+b(Commands)35 b(run)f(as)i(a)150 628 y(result)27 b(of)h(command)f
+(substitution)h(ignore)g(the)g(k)m(eyb)s(oard-generated)g(job)g(con)m
+(trol)h(signals)f Ft(SIGTTIN)p Fu(,)150 737 y Ft(SIGTTOU)p
+Fu(,)h(and)g Ft(SIGTSTP)p Fu(.)275 883 y(The)h(shell)i(exits)g(b)m(y)f
+(default)g(up)s(on)f(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42
+b(Before)32 b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150
+992 y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c
+(or)h(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
+Ft(SIGCONT)d Fu(to)150 1102 y(ensure)32 b(that)h(they)g(receiv)m(e)i
+(the)e Ft(SIGHUP)p Fu(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
+g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 1211
y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h
-(from)g(the)f(jobs)g(table)i(with)e(the)h Fs(disown)e
-Ft(builtin)h(\(see)150 3567 y(Section)f(7.2)g([Job)f(Con)m(trol)h
-(Builtins],)g(page)g(92\))h(or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i
-Fs(SIGHUP)d Ft(using)h Fs(disown)150 3676 y(-h)p Ft(.)275
-3816 y(If)38 b(the)h Fs(huponexit)e Ft(shell)i(option)g(has)g(b)s(een)f
-(set)i(with)f Fs(shopt)e Ft(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
-3925 y(Builtin],)31 b(page)g(57\),)h(Bash)f(sends)e(a)i
-Fs(SIGHUP)e Ft(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
-e(shell)g(exits.)275 4064 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
+(from)g(the)f(jobs)g(table)i(with)e(the)h Ft(disown)e
+Fu(builtin)h(\(see)150 1321 y(Section)f(7.2)g([Job)f(Con)m(trol)h
+(Builtins],)g(page)g(98\))h(or)e(mark)m(ed)g(to)h(not)f(receiv)m(e)i
+Ft(SIGHUP)d Fu(using)h Ft(disown)150 1431 y(-h)p Fu(.)275
+1576 y(If)38 b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f
+(set)i(with)f Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
+1686 y(Builtin],)31 b(page)g(62\),)h(Bash)f(sends)e(a)i
+Ft(SIGHUP)e Fu(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
+e(shell)g(exits.)275 1831 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
(command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic)
-m(h)h(a)g(trap)150 4174 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
+m(h)h(a)g(trap)150 1941 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
-b(When)35 b(Bash)g(is)150 4284 y(w)m(aiting)j(for)f(an)g(async)m
-(hronous)g(command)g(via)h(the)f Fs(wait)f Ft(builtin,)i(the)g
-(reception)g(of)f(a)g(signal)h(for)150 4393 y(whic)m(h)d(a)g(trap)g
-(has)g(b)s(een)f(set)h(will)h(cause)f(the)g Fs(wait)f
-Ft(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150
-4503 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
-f(the)h(trap)f(is)g(executed.)150 4742 y Fr(3.8)68 b(Shell)45
-b(Scripts)150 4902 y Ft(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
+b(When)35 b(Bash)g(is)150 2050 y(w)m(aiting)j(for)f(an)g(async)m
+(hronous)g(command)g(via)h(the)f Ft(wait)f Fu(builtin,)i(the)g
+(reception)g(of)f(a)g(signal)h(for)150 2160 y(whic)m(h)d(a)g(trap)g
+(has)g(b)s(een)f(set)h(will)h(cause)f(the)g Ft(wait)f
+Fu(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150
+2270 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
+f(the)h(trap)f(is)g(executed.)150 2518 y Fs(3.8)68 b(Shell)45
+b(Scripts)150 2678 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h
-(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 5011 y(non-option)i
-(argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)e(neither)h(the)g(`)
-p Fs(-c)p Ft(')g(nor)g(`)p Fs(-s)p Ft(')g(option)g(is)g(supplied)150
-5121 y(\(see)25 b(Section)h(6.1)f([In)m(v)m(oking)h(Bash],)g(page)f
-(73\),)i(Bash)e(reads)f(and)g(executes)i(commands)e(from)g(the)h
-(\014le,)150 5230 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s
-(eration)f(creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46
-b(The)31 b(shell)i(\014rst)e(searc)m(hes)150 5340 y(for)d(the)g(\014le)
-g(in)g(the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e
-(the)i(directories)g(in)e Fs($PATH)g Ft(if)h(not)g(found)e(there.)p
-eop end
-%%Page: 35 41
-TeXDict begin 35 40 bop 150 -116 a Ft(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)275 299
-y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f(sp)s
-(ecial)i(parameter)f Fs(0)f Ft(to)h(the)g(name)g(of)g(the)g(\014le,)150
-408 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j(and)d(the)h(p)s
-(ositional)g(parameters)f(are)h(set)g(to)g(the)g(remain-)150
-518 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m(en.)67
-b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h(the)f(p)s
-(ositional)150 628 y(parameters)31 b(are)f(unset.)275
-762 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
-(y)e(using)g(the)h Fs(chmod)e Ft(command)h(to)h(turn)e(on)i(the)150
-872 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
-(\014le)f(while)g(searc)m(hing)h(the)f Fs($PATH)f Ft(for)h(a)h
-(command,)h(it)150 981 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
-(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 1116
-y Fs(filename)46 b Fi(arguments)150 1250 y Ft(is)30 b(equiv)-5
-b(alen)m(t)32 b(to)f(executing)390 1385 y Fs(bash)47
-b(filename)e Fi(arguments)150 1519 y Ft(if)30 b Fs(filename)d
-Ft(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
+(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 2787 y(non-option)c
+(argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)f(neither)g(the)g
+Ft(-c)g Fu(nor)f Ft(-s)h Fu(option)g(is)g(supplied)f(\(see)150
+2897 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(80\),)i
+(Bash)d(reads)g(and)f(executes)i(commands)f(from)f(the)i(\014le,)150
+3007 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f
+(creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 b(The)31
+b(shell)i(\014rst)e(searc)m(hes)150 3116 y(for)d(the)g(\014le)g(in)g
+(the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e(the)i
+(directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)275
+3262 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
+(sp)s(ecial)i(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g
+(\014le,)150 3371 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
+(and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g
+(remain-)150 3481 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
+(en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h
+(the)f(p)s(ositional)150 3590 y(parameters)31 b(are)f(unset.)275
+3736 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
+(y)e(using)g(the)h Ft(chmod)e Fu(command)h(to)h(turn)e(on)i(the)150
+3846 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+(\014le)f(while)g(searc)m(hing)h(the)f Ft($PATH)f Fu(for)h(a)h
+(command,)h(it)150 3955 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
+(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 4101
+y Ft(filename)46 b Fj(arguments)150 4246 y Fu(is)30 b(equiv)-5
+b(alen)m(t)32 b(to)f(executing)390 4392 y Ft(bash)47
+b(filename)e Fj(arguments)150 4537 y Fu(if)30 b Ft(filename)d
+Fu(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
-1629 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
+4647 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
-(that)f(the)150 1738 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
+(that)f(the)150 4756 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
-Fs(hash)f Ft(in)h(Section)h(4.1)150 1848 y([Bourne)30
-b(Shell)h(Builtins],)g(page)g(37\))h(are)e(retained)h(b)m(y)f(the)h(c)m
-(hild.)275 1983 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
+Ft(hash)f Fu(in)h(Section)h(4.1)150 4866 y([Bourne)30
+b(Shell)h(Builtins],)g(page)g(41\))h(are)e(retained)h(b)m(y)f(the)h(c)m
+(hild.)275 5011 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
(a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution)
-150 2092 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
+150 5121 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
(script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p
-Fs(#!)p Ft(',)f(the)g(remainder)150 2202 y(of)d(the)g(line)h(sp)s
+Ft(#!)p Fu(',)f(the)g(remainder)150 5230 y(of)d(the)g(line)h(sp)s
(eci\014es)e(an)h(in)m(terpreter)g(for)g(the)g(program.)43
-b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Fs(awk)p
-Ft(,)e(P)m(erl,)150 2311 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
+b(Th)m(us,)30 b(y)m(ou)h(can)h(sp)s(ecify)e(Bash,)i Ft(awk)p
+Fu(,)e(P)m(erl,)150 5340 y(or)g(some)h(other)g(in)m(terpreter)g(and)e
(write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h
-(language.)275 2446 y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m
-(terpreter)g(consist)g(of)g(a)g(single)h(optional)f(argumen)m(t)h
-(follo)m(wing)g(the)150 2555 y(in)m(terpreter)33 b(name)h(on)f(the)g
-(\014rst)f(line)i(of)f(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)
-e(the)g(name)g(of)g(the)h(script)f(\014le,)150 2665 y(follo)m(w)m(ed)g
-(b)m(y)f(the)f(rest)h(of)g(the)f(argumen)m(ts.)45 b(Bash)31
-b(will)h(p)s(erform)e(this)i(action)h(on)e(op)s(erating)h(systems)150
-2775 y(that)24 b(do)g(not)f(handle)g(it)h(themselv)m(es.)40
-b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f(of)h(Unix)f(limit)i
-(the)f(in)m(terpreter)150 2884 y(name)30 b(and)g(argumen)m(t)h(to)g(a)g
-(maxim)m(um)f(of)h(32)g(c)m(haracters.)275 3019 y(Bash)h(scripts)g
-(often)g(b)s(egin)g(with)g Fs(#!)e(/bin/bash)g Ft(\(assuming)i(that)h
-(Bash)f(has)g(b)s(een)f(installed)i(in)150 3128 y(`)p
-Fs(/bin)p Ft('\),)25 b(since)e(this)g(ensures)f(that)i(Bash)f(will)h(b)
-s(e)e(used)h(to)h(in)m(terpret)f(the)g(script,)i(ev)m(en)f(if)f(it)h
-(is)f(executed)150 3238 y(under)29 b(another)h(shell.)p
-eop end
-%%Page: 36 42
-TeXDict begin 36 41 bop eop end
-%%Page: 37 43
-TeXDict begin 37 42 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(37)150 299 y Fo(4)80
-b(Shell)53 b(Builtin)f(Commands)150 541 y Ft(Builtin)34
+(language.)p eop end
+%%Page: 40 46
+TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)275 299
+y(The)40 b(argumen)m(ts)h(to)g(the)g(in)m(terpreter)g(consist)g(of)g(a)
+g(single)h(optional)f(argumen)m(t)h(follo)m(wing)g(the)150
+408 y(in)m(terpreter)33 b(name)h(on)f(the)g(\014rst)f(line)i(of)f(the)g
+(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)e(the)g(name)g(of)g(the)h
+(script)f(\014le,)150 518 y(follo)m(w)m(ed)g(b)m(y)f(the)f(rest)h(of)g
+(the)f(argumen)m(ts.)45 b(Bash)31 b(will)h(p)s(erform)e(this)i(action)h
+(on)e(op)s(erating)h(systems)150 628 y(that)24 b(do)g(not)f(handle)g
+(it)h(themselv)m(es.)40 b(Note)25 b(that)f(some)g(older)g(v)m(ersions)f
+(of)h(Unix)f(limit)i(the)f(in)m(terpreter)150 737 y(name)30
+b(and)g(argumen)m(t)h(to)g(a)g(maxim)m(um)f(of)h(32)g(c)m(haracters.)
+275 872 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g
+Ft(#!)e(/bin/bash)g Fu(\(assuming)i(that)h(Bash)f(has)g(b)s(een)f
+(installed)i(in)150 981 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)
+f(that)i(Bash)f(will)h(b)s(e)f(used)f(to)i(in)m(terpret)f(the)h
+(script,)g(ev)m(en)g(if)f(it)h(is)f(executed)150 1091
+y(under)j(another)h(shell.)p eop end
+%%Page: 41 47
+TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(41)150 299 y Fp(4)80
+b(Shell)53 b(Builtin)f(Commands)150 541 y Fu(Builtin)34
b(commands)f(are)h(con)m(tained)g(within)f(the)h(shell)g(itself.)50
b(When)34 b(the)f(name)h(of)f(a)h(builtin)f(com-)150
651 y(mand)26 b(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
@@ -7467,3786 +10960,4023 @@ b(Builtin)150 870 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
(other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
1473 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
(con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
-(Builtins],)150 1583 y(page)40 b(92\),)j(the)c(directory)h(stac)m(k)g
+(Builtins],)150 1583 y(page)40 b(98\),)j(the)c(directory)h(stac)m(k)g
(\(see)g(Section)g(6.8.1)h([Directory)g(Stac)m(k)f(Builtins],)i(page)e
-(83\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
-([Bash)f(History)g(Builtins],)h(page)g(125\),)h(and)d(the)h
+(90\),)j(the)150 1692 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+([Bash)f(History)g(Builtins],)h(page)g(133\),)h(and)d(the)h
(programmable)150 1802 y(completion)32 b(facilities)g(\(see)g(Section)f
-(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(119\).)275
+(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(126\).)275
1939 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
-g(b)m(y)g Fl(posix)g Ft(or)g(Bash.)275 2076 y(Unless)39
+g(b)m(y)g Fm(posix)g Fu(or)g(Bash.)275 2076 y(Unless)39
b(otherwise)h(noted,)i(eac)m(h)f(builtin)e(command)g(do)s(cumen)m(ted)g
(as)h(accepting)h(options)f(pre-)150 2186 y(ceded)33
-b(b)m(y)h(`)p Fs(-)p Ft(')f(accepts)i(`)p Fs(--)p Ft(')e(to)h(signify)f
-(the)h(end)e(of)i(the)f(options.)50 b(The)33 b Fs(:)p
-Ft(,)h Fs(true)p Ft(,)f Fs(false)p Ft(,)f(and)h Fs(test)150
-2295 y Ft(builtins)i(do)g(not)h(accept)g(options)g(and)f(do)g(not)h
-(treat)g(`)p Fs(--)p Ft(')f(sp)s(ecially)-8 b(.)57 b(The)35
-b Fs(exit)p Ft(,)h Fs(logout)p Ft(,)f Fs(break)p Ft(,)150
-2405 y Fs(continue)p Ft(,)29 b Fs(let)p Ft(,)i(and)g
-Fs(shift)f Ft(builtins)g(accept)j(and)e(pro)s(cess)g(argumen)m(ts)g(b)s
-(eginning)g(with)g(`)p Fs(-)p Ft(')g(with-)150 2515 y(out)f(requiring)f
-(`)p Fs(--)p Ft('.)41 b(Other)29 b(builtins)h(that)g(accept)h(argumen)m
+b(b)m(y)h(`)p Ft(-)p Fu(')f(accepts)i(`)p Ft(--)p Fu(')e(to)h(signify)f
+(the)h(end)e(of)i(the)f(options.)50 b(The)33 b Ft(:)p
+Fu(,)h Ft(true)p Fu(,)f Ft(false)p Fu(,)f(and)h Ft(test)150
+2295 y Fu(builtins)i(do)g(not)h(accept)g(options)g(and)f(do)g(not)h
+(treat)g(`)p Ft(--)p Fu(')f(sp)s(ecially)-8 b(.)57 b(The)35
+b Ft(exit)p Fu(,)h Ft(logout)p Fu(,)f Ft(break)p Fu(,)150
+2405 y Ft(continue)p Fu(,)29 b Ft(let)p Fu(,)i(and)g
+Ft(shift)f Fu(builtins)g(accept)j(and)e(pro)s(cess)g(argumen)m(ts)g(b)s
+(eginning)g(with)g(`)p Ft(-)p Fu(')g(with-)150 2515 y(out)f(requiring)f
+(`)p Ft(--)p Fu('.)41 b(Other)29 b(builtins)h(that)g(accept)h(argumen)m
(ts)f(but)g(are)g(not)g(sp)s(eci\014ed)f(as)h(accepting)150
2624 y(options)25 b(in)m(terpret)f(argumen)m(ts)h(b)s(eginning)e(with)h
-(`)p Fs(-)p Ft(')h(as)f(in)m(v)-5 b(alid)25 b(options)g(and)e(require)h
-(`)p Fs(--)p Ft(')g(to)h(prev)m(en)m(t)150 2734 y(this)30
-b(in)m(terpretation.)150 2970 y Fr(4.1)68 b(Bourne)45
-b(Shell)g(Builtins)150 3130 y Ft(The)22 b(follo)m(wing)j(shell)d
+(`)p Ft(-)p Fu(')h(as)f(in)m(v)-5 b(alid)25 b(options)g(and)e(require)h
+(`)p Ft(--)p Fu(')g(to)h(prev)m(en)m(t)150 2734 y(this)30
+b(in)m(terpretation.)150 2970 y Fs(4.1)68 b(Bourne)45
+b(Shell)g(Builtins)150 3130 y Fu(The)22 b(follo)m(wing)j(shell)d
(builtin)h(commands)f(are)h(inherited)g(from)f(the)h(Bourne)g(Shell.)38
b(These)22 b(commands)150 3239 y(are)31 b(implemen)m(ted)g(as)f(sp)s
-(eci\014ed)g(b)m(y)g(the)h Fl(posix)e Ft(standard.)150
-3403 y Fs(:)h Ft(\(a)h(colon\))870 3512 y Fs(:)47 b([)p
-Fi(arguments)11 b Fs(])630 3648 y Ft(Do)43 b(nothing)f(b)s(ey)m(ond)g
-(expanding)f Fq(argumen)m(ts)46 b Ft(and)c(p)s(erforming)f
+(eci\014ed)g(b)m(y)g(the)h Fm(posix)e Fu(standard.)150
+3403 y Ft(:)h Fu(\(a)h(colon\))870 3512 y Ft(:)47 b([)p
+Fj(arguments)p Ft(])630 3648 y Fu(Do)c(nothing)f(b)s(ey)m(ond)g
+(expanding)f Fr(argumen)m(ts)46 b Fu(and)c(p)s(erforming)f
(redirections.)76 b(The)630 3758 y(return)29 b(status)i(is)f(zero.)150
-3920 y Fs(.)g Ft(\(a)h(p)s(erio)s(d\))870 4029 y Fs(.)47
-b Fi(filename)57 b Fs([)p Fi(arguments)11 b Fs(])630
-4165 y Ft(Read)34 b(and)f(execute)i(commands)e(from)g(the)h
-Fq(\014lename)39 b Ft(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell)
-630 4275 y(con)m(text.)45 b(If)31 b Fq(\014lename)37
-b Ft(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g
-Fs(PATH)e Ft(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630
-4384 y Fq(\014lename)5 b Ft(.)51 b(When)34 b(Bash)g(is)g(not)g(in)f
-Fl(posix)g Ft(mo)s(de,)i(the)f(curren)m(t)f(directory)i(is)e(searc)m
-(hed)630 4494 y(if)e Fq(\014lename)36 b Ft(is)31 b(not)h(found)d(in)i
-Fs($PATH)p Ft(.)41 b(If)31 b(an)m(y)g Fq(argumen)m(ts)k
-Ft(are)c(supplied,)f(they)i(b)s(ecome)630 4604 y(the)e(p)s(ositional)h
-(parameters)g(when)e Fq(\014lename)35 b Ft(is)30 b(executed.)42
+3920 y Ft(.)g Fu(\(a)h(p)s(erio)s(d\))870 4029 y Ft(.)47
+b Fj(filename)f Ft([)p Fj(arguments)p Ft(])630 4165 y
+Fu(Read)34 b(and)f(execute)i(commands)e(from)g(the)h
+Fr(\014lename)39 b Fu(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell)
+630 4275 y(con)m(text.)45 b(If)31 b Fr(\014lename)37
+b Fu(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g
+Ft(PATH)e Fu(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630
+4384 y Fr(\014lename)p Fu(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g
+Fm(posix)f Fu(mo)s(de,)i(the)g(curren)m(t)f(directory)g(is)g(searc)m
+(hed)630 4494 y(if)d Fr(\014lename)36 b Fu(is)31 b(not)h(found)d(in)i
+Ft($PATH)p Fu(.)41 b(If)31 b(an)m(y)g Fr(argumen)m(ts)k
+Fu(are)c(supplied,)f(they)i(b)s(ecome)630 4604 y(the)e(p)s(ositional)h
+(parameters)g(when)e Fr(\014lename)35 b Fu(is)30 b(executed.)42
b(Otherwise)30 b(the)g(p)s(ositional)630 4713 y(parameters)43
b(are)h(unc)m(hanged.)79 b(The)42 b(return)g(status)i(is)f(the)g(exit)h
(status)g(of)f(the)g(last)630 4823 y(command)37 b(executed,)k(or)c
(zero)h(if)g(no)f(commands)g(are)h(executed.)63 b(If)36
-b Fq(\014lename)43 b Ft(is)38 b(not)630 4932 y(found,)22
+b Fr(\014lename)43 b Fu(is)38 b(not)630 4932 y(found,)22
b(or)f(cannot)g(b)s(e)f(read,)j(the)e(return)f(status)h(is)g(non-zero.)
38 b(This)20 b(builtin)h(is)f(equiv)-5 b(alen)m(t)630
-5042 y(to)31 b Fs(source)p Ft(.)150 5204 y Fs(break)870
-5340 y(break)46 b([)p Fi(n)11 b Fs(])p eop end
-%%Page: 38 44
-TeXDict begin 38 43 bop 150 -116 a Ft(38)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(Exit)45 b(from)f(a)g
-Fs(for)p Ft(,)k Fs(while)p Ft(,)e Fs(until)p Ft(,)h(or)d
-Fs(select)f Ft(lo)s(op.)83 b(If)44 b Fq(n)g Ft(is)g(supplied,)j(the)e
-Fq(n)p Ft(th)630 408 y(enclosing)c(lo)s(op)f(is)h(exited.)70
-b Fq(n)40 b Ft(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i(equal)f(to)h(1.)
-70 b(The)40 b(return)630 518 y(status)31 b(is)f(zero)h(unless)f
-Fq(n)g Ft(is)g(not)h(greater)g(than)g(or)f(equal)h(to)g(1.)150
-687 y Fs(cd)870 827 y(cd)47 b([-L|[-P)f([-e]]])g([)p
-Fi(directory)11 b Fs(])630 966 y Ft(Change)36 b(the)h(curren)m(t)f(w)m
-(orking)g(directory)h(to)g Fq(directory)8 b Ft(.)59 b(If)35
-b Fq(directory)45 b Ft(is)36 b(not)h(giv)m(en,)630 1076
-y(the)31 b(v)-5 b(alue)31 b(of)g(the)g Fs(HOME)e Ft(shell)i(v)-5
-b(ariable)32 b(is)f(used.)40 b(If)31 b(the)g(shell)g(v)-5
-b(ariable)31 b Fs(CDPATH)e Ft(exists,)630 1186 y(it)f(is)f(used)f(as)h
-(a)h(searc)m(h)f(path.)40 b(If)26 b Fq(directory)35 b
-Ft(b)s(egins)27 b(with)g(a)g(slash,)h Fs(CDPATH)d Ft(is)i(not)g(used.)
-630 1325 y(The)h(`)p Fs(-P)p Ft(')h(option)g(means)f(to)h(not)g(follo)m
-(w)h(sym)m(b)s(olic)f(links;)g(sym)m(b)s(olic)g(links)f(are)h(follo)m
-(w)m(ed)630 1435 y(b)m(y)22 b(default)h(or)f(with)g(the)g(`)p
-Fs(-L)p Ft(')g(option.)39 b(If)22 b(the)g(`)p Fs(-e)p
-Ft(')g(option)h(is)f(supplied)f(with)h(`)p Fs(-P)p Ft(')g(and)g(the)630
-1544 y(curren)m(t)32 b(w)m(orking)h(directory)f(cannot)h(b)s(e)f
-(successfully)g(determined)g(after)h(a)f(successful)630
-1654 y(directory)f(c)m(hange,)h Fs(cd)e Ft(will)h(return)f(an)g
-(unsuccessful)g(status.)42 b(If)30 b Fq(directory)39
-b Ft(is)31 b(`)p Fs(-)p Ft(',)g(it)g(is)630 1763 y(equiv)-5
-b(alen)m(t)32 b(to)f Fs($OLDPWD)p Ft(.)630 1903 y(If)i(a)h(non-empt)m
-(y)g(directory)g(name)f(from)g Fs(CDPATH)f Ft(is)h(used,)h(or)g(if)f(`)
-p Fs(-)p Ft(')h(is)f(the)h(\014rst)f(argu-)630 2012 y(men)m(t,)28
+5042 y(to)31 b Ft(source)p Fu(.)150 5204 y Ft(break)870
+5340 y(break)46 b([)p Fj(n)p Ft(])p eop end
+%%Page: 42 48
+TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(42)630 299 y(Exit)45
+b(from)f(a)g Ft(for)p Fu(,)k Ft(while)p Fu(,)e Ft(until)p
+Fu(,)h(or)d Ft(select)f Fu(lo)s(op.)83 b(If)44 b Fr(n)g
+Fu(is)g(supplied,)j(the)e Fr(n)p Fu(th)630 408 y(enclosing)c(lo)s(op)f
+(is)h(exited.)70 b Fr(n)40 b Fu(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i
+(equal)f(to)h(1.)70 b(The)40 b(return)630 518 y(status)31
+b(is)f(zero)h(unless)f Fr(n)g Fu(is)g(not)h(greater)g(than)g(or)f
+(equal)h(to)g(1.)150 677 y Ft(cd)870 812 y(cd)47 b([-L|[-P)f([-e]])g
+([-@])h([)p Fj(directory)p Ft(])630 946 y Fu(Change)27
+b(the)g(curren)m(t)f(w)m(orking)h(directory)g(to)h Fr(directory)p
+Fu(.)40 b(If)26 b Fr(directory)35 b Fu(is)27 b(not)g(supplied,)630
+1056 y(the)f(v)-5 b(alue)26 b(of)f(the)h Ft(HOME)e Fu(shell)i(v)-5
+b(ariable)26 b(is)g(used.)38 b(An)m(y)25 b(additional)i(argumen)m(ts)e
+(follo)m(wing)630 1166 y Fr(directory)39 b Fu(are)31
+b(ignored.)41 b(If)30 b(the)h(shell)g(v)-5 b(ariable)31
+b Ft(CDPATH)e Fu(exists,)i(it)g(is)g(used)f(as)g(a)h(searc)m(h)630
+1275 y(path:)39 b(eac)m(h)29 b(directory)g(name)f(in)f
+Ft(CDPATH)g Fu(is)h(searc)m(hed)g(for)g Fr(directory)p
+Fu(,)h(with)f(alternativ)m(e)630 1385 y(directory)j(names)g(in)f
+Ft(CDPATH)f Fu(separated)j(b)m(y)e(a)h(colon)h(\(`)p
+Ft(:)p Fu('\).)43 b(If)30 b Fr(directory)39 b Fu(b)s(egins)30
+b(with)630 1494 y(a)h(slash,)f Ft(CDPATH)f Fu(is)h(not)h(used.)630
+1629 y(The)g Ft(-P)h Fu(option)g(means)g(to)h(not)f(follo)m(w)h(sym)m
+(b)s(olic)g(links:)44 b(sym)m(b)s(olic)32 b(links)g(are)g(resolv)m(ed)
+630 1738 y(while)41 b Ft(cd)f Fu(is)h(tra)m(v)m(ersing)h
+Fr(directory)49 b Fu(and)40 b(b)s(efore)g(pro)s(cessing)h(an)f
+(instance)i(of)f(`)p Ft(..)p Fu(')f(in)630 1848 y Fr(directory)p
+Fu(.)630 1983 y(By)34 b(default,)h(or)e(when)g(the)g
+Ft(-L)g Fu(option)h(is)g(supplied,)f(sym)m(b)s(olic)h(links)f(in)h
+Fr(directory)42 b Fu(are)630 2092 y(resolv)m(ed)31 b(after)g
+Ft(cd)f Fu(pro)s(cesses)g(an)g(instance)h(of)g(`)p Ft(..)p
+Fu(')f(in)g Fr(directory)p Fu(.)630 2227 y(If)35 b(`)p
+Ft(..)p Fu(')f(app)s(ears)h(in)f Fr(directory)p Fu(,)j(it)f(is)f(pro)s
+(cessed)f(b)m(y)h(remo)m(ving)h(the)f(immediately)h(pre-)630
+2336 y(ceding)31 b(pathname)f(comp)s(onen)m(t,)h(bac)m(k)g(to)g(a)g
+(slash)f(or)h(the)f(b)s(eginning)g(of)g Fr(directory)p
+Fu(.)630 2471 y(If)i(the)i Ft(-e)e Fu(option)h(is)g(supplied)f(with)g
+Ft(-P)h Fu(and)f(the)h(curren)m(t)g(w)m(orking)g(directory)g(cannot)630
+2580 y(b)s(e)k(successfully)g(determined)g(after)i(a)e(successful)h
+(directory)g(c)m(hange,)i Ft(cd)d Fu(will)h(return)630
+2690 y(an)30 b(unsuccessful)f(status.)630 2824 y(On)41
+b(systems)h(that)h(supp)s(ort)d(it,)46 b(the)c Ft(-@)g
+Fu(option)g(presen)m(ts)g(the)g(extended)g(attributes)630
+2934 y(asso)s(ciated)32 b(with)e(a)h(\014le)f(as)h(a)f(directory)-8
+b(.)630 3068 y(If)41 b Fr(directory)49 b Fu(is)41 b(`)p
+Ft(-)p Fu(',)j(it)e(is)f(con)m(v)m(erted)h(to)g Ft($OLDPWD)d
+Fu(b)s(efore)i(the)g(directory)h(c)m(hange)g(is)630 3178
+y(attempted.)630 3313 y(If)33 b(a)h(non-empt)m(y)g(directory)g(name)f
+(from)g Ft(CDPATH)f Fu(is)h(used,)h(or)g(if)f(`)p Ft(-)p
+Fu(')h(is)f(the)h(\014rst)f(argu-)630 3422 y(men)m(t,)28
b(and)e(the)h(directory)g(c)m(hange)h(is)f(successful,)h(the)f
-(absolute)g(pathname)g(of)f(the)h(new)630 2122 y(w)m(orking)k
+(absolute)g(pathname)g(of)f(the)h(new)630 3532 y(w)m(orking)k
(directory)g(is)f(written)g(to)i(the)e(standard)g(output.)630
-2262 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
-(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 2371
-y(erwise.)150 2540 y Fs(continue)870 2680 y(continue)46
-b([)p Fi(n)11 b Fs(])630 2819 y Ft(Resume)32 b(the)g(next)g(iteration)i
-(of)e(an)g(enclosing)h Fs(for)p Ft(,)f Fs(while)p Ft(,)f
-Fs(until)p Ft(,)g(or)h Fs(select)f Ft(lo)s(op.)630 2929
-y(If)f Fq(n)h Ft(is)g(supplied,)e(the)j(execution)g(of)f(the)g
-Fq(n)p Ft(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42
-b Fq(n)30 b Ft(m)m(ust)h(b)s(e)630 3039 y(greater)39
+3666 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
+(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 3776
+y(erwise.)150 3935 y Ft(continue)870 4070 y(continue)46
+b([)p Fj(n)p Ft(])630 4204 y Fu(Resume)32 b(the)g(next)g(iteration)i
+(of)e(an)g(enclosing)h Ft(for)p Fu(,)f Ft(while)p Fu(,)f
+Ft(until)p Fu(,)g(or)h Ft(select)f Fu(lo)s(op.)630 4314
+y(If)f Fr(n)h Fu(is)g(supplied,)e(the)j(execution)g(of)f(the)g
+Fr(n)p Fu(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42
+b Fr(n)30 b Fu(m)m(ust)h(b)s(e)630 4423 y(greater)39
b(than)f(or)g(equal)g(to)h(1.)63 b(The)38 b(return)e(status)j(is)e
-(zero)i(unless)e Fq(n)h Ft(is)g(not)g(greater)630 3148
-y(than)30 b(or)g(equal)h(to)g(1.)150 3318 y Fs(eval)870
-3457 y(eval)47 b([)p Fi(arguments)11 b Fs(])630 3597
-y Ft(The)25 b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f
-(a)g(single)h(command,)f(whic)m(h)g(is)f(then)630 3706
-y(read)35 b(and)g(executed,)j(and)d(its)h(exit)g(status)g(returned)e
-(as)h(the)h(exit)g(status)g(of)g Fs(eval)p Ft(.)54 b(If)630
-3816 y(there)31 b(are)f(no)h(argumen)m(ts)f(or)h(only)f(empt)m(y)h
-(argumen)m(ts,)g(the)f(return)g(status)g(is)h(zero.)150
-3985 y Fs(exec)870 4125 y(exec)47 b([-cl])f([-a)h Fi(name)11
-b Fs(])46 b([)p Fi(command)56 b Fs([)p Fi(arguments)11
-b Fs(]])630 4264 y Ft(If)36 b Fq(command)k Ft(is)c(supplied,)h(it)g
+(zero)i(unless)e Fr(n)h Fu(is)g(not)g(greater)630 4533
+y(than)30 b(or)g(equal)h(to)g(1.)150 4692 y Ft(eval)870
+4827 y(eval)47 b([)p Fj(arguments)p Ft(])630 4961 y Fu(The)25
+b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f(a)g(single)h
+(command,)f(whic)m(h)g(is)f(then)630 5071 y(read)35 b(and)g(executed,)j
+(and)d(its)h(exit)g(status)g(returned)e(as)h(the)h(exit)g(status)g(of)g
+Ft(eval)p Fu(.)54 b(If)630 5181 y(there)31 b(are)f(no)h(argumen)m(ts)f
+(or)h(only)f(empt)m(y)h(argumen)m(ts,)g(the)f(return)g(status)g(is)h
+(zero.)150 5340 y Ft(exec)p eop end
+%%Page: 43 49
+TeXDict begin 43 48 bop 150 -116 a Fu(Chapter)30 b(4:)h(Shell)f
+(Builtin)h(Commands)2079 b(43)870 299 y Ft(exec)47 b([-cl])f([-a)h
+Fj(name)p Ft(])f([)p Fj(command)g Ft([)p Fj(arguments)p
+Ft(]])630 440 y Fu(If)36 b Fr(command)k Fu(is)c(supplied,)h(it)g
(replaces)h(the)e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.)
-630 4374 y(If)h(the)g(`)p Fs(-l)p Ft(')g(option)h(is)f(supplied,)g(the)
-h(shell)f(places)h(a)g(dash)e(at)i(the)f(b)s(eginning)f(of)i(the)630
-4483 y(zeroth)e(argumen)m(t)g(passed)f(to)h Fq(command)t
-Ft(.)56 b(This)34 b(is)i(what)f(the)h Fs(login)e Ft(program)h(do)s(es.)
-630 4593 y(The)e(`)p Fs(-c)p Ft(')h(option)g(causes)g
-Fq(command)j Ft(to)e(b)s(e)e(executed)i(with)e(an)h(empt)m(y)g(en)m
-(vironmen)m(t.)630 4702 y(If)d(`)p Fs(-a)p Ft(')g(is)h(supplied,)f(the)
-g(shell)h(passes)f Fq(name)37 b Ft(as)31 b(the)h(zeroth)g(argumen)m(t)g
-(to)g Fq(command)t Ft(.)630 4812 y(If)45 b(no)g Fq(command)k
-Ft(is)c(sp)s(eci\014ed,)k(redirections)d(ma)m(y)g(b)s(e)f(used)f(to)j
-(a\013ect)g(the)e(curren)m(t)630 4922 y(shell)33 b(en)m(vironmen)m(t.)
-48 b(If)32 b(there)h(are)g(no)f(redirection)h(errors,)g(the)g(return)e
-(status)i(is)g(zero;)630 5031 y(otherwise)e(the)f(return)g(status)g(is)
-h(non-zero.)150 5200 y Fs(exit)870 5340 y(exit)47 b([)p
-Fi(n)11 b Fs(])p eop end
-%%Page: 39 45
-TeXDict begin 39 44 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(39)630 299 y(Exit)30
-b(the)g(shell,)h(returning)d(a)j(status)f(of)g Fq(n)f
-Ft(to)h(the)g(shell's)g(paren)m(t.)41 b(If)30 b Fq(n)f
-Ft(is)h(omitted,)h(the)630 408 y(exit)c(status)g(is)g(that)g(of)g(the)g
-(last)g(command)f(executed.)41 b(An)m(y)26 b(trap)h(on)f
-Fs(EXIT)f Ft(is)i(executed)630 518 y(b)s(efore)j(the)h(shell)f
-(terminates.)150 675 y Fs(export)870 808 y(export)46
-b([-fn])g([-p])h([)p Fi(name)11 b Fs([=)p Fi(value)g
-Fs(]])630 941 y Ft(Mark)40 b(eac)m(h)h Fq(name)k Ft(to)40
-b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m
-(vironmen)m(t.)70 b(If)39 b(the)630 1050 y(`)p Fs(-f)p
-Ft(')29 b(option)h(is)g(supplied,)f(the)g Fq(name)5 b
-Ft(s)30 b(refer)f(to)h(shell)g(functions;)f(otherwise)h(the)g(names)630
-1160 y(refer)36 b(to)i(shell)e(v)-5 b(ariables.)60 b(The)36
-b(`)p Fs(-n)p Ft(')h(option)g(means)f(to)h(no)g(longer)g(mark)f(eac)m
-(h)i Fq(name)630 1270 y Ft(for)h(exp)s(ort.)65 b(If)39
-b(no)g Fq(names)j Ft(are)d(supplied,)h(or)f(if)g(the)g(`)p
-Fs(-p)p Ft(')g(option)g(is)g(giv)m(en,)j(a)d(list)h(of)630
-1379 y(exp)s(orted)c(names)h(is)f(displa)m(y)m(ed.)60
-b(The)37 b(`)p Fs(-p)p Ft(')f(option)h(displa)m(ys)g(output)f(in)g(a)h
-(form)f(that)630 1489 y(ma)m(y)31 b(b)s(e)f(reused)g(as)h(input.)41
-b(If)31 b(a)g(v)-5 b(ariable)31 b(name)g(is)g(follo)m(w)m(ed)i(b)m(y)d
-(=)p Fq(v)-5 b(alue)5 b Ft(,)32 b(the)f(v)-5 b(alue)31
-b(of)630 1598 y(the)g(v)-5 b(ariable)31 b(is)f(set)h(to)g
-Fq(v)-5 b(alue)5 b Ft(.)630 1731 y(The)29 b(return)e(status)j(is)f
-(zero)h(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f
-(one)i(of)f(the)g(names)630 1841 y(is)h(not)h(a)f(v)-5
-b(alid)31 b(shell)f(v)-5 b(ariable)31 b(name,)f(or)h(`)p
-Fs(-f)p Ft(')f(is)g(supplied)f(with)g(a)i(name)f(that)h(is)f(not)h(a)
-630 1951 y(shell)g(function.)150 2107 y Fs(getopts)870
-2240 y(getopts)46 b Fi(optstring)56 b(name)h Fs([)p Fi(args)11
-b Fs(])630 2373 y(getopts)28 b Ft(is)i(used)g(b)m(y)g(shell)g(scripts)g
-(to)g(parse)g(p)s(ositional)h(parameters.)41 b Fq(optstring)d
-Ft(con-)630 2483 y(tains)k(the)g(option)f(c)m(haracters)i(to)g(b)s(e)d
-(recognized;)49 b(if)42 b(a)f(c)m(haracter)j(is)d(follo)m(w)m(ed)i(b)m
-(y)f(a)630 2592 y(colon,)33 b(the)f(option)g(is)g(exp)s(ected)g(to)h
-(ha)m(v)m(e)g(an)e(argumen)m(t,)i(whic)m(h)f(should)e(b)s(e)h
-(separated)630 2702 y(from)37 b(it)h(b)m(y)f(white)h(space.)63
-b(The)37 b(colon)h(\(`)p Fs(:)p Ft('\))h(and)d(question)i(mark)f(\(`)p
-Fs(?)p Ft('\))i(ma)m(y)f(not)g(b)s(e)630 2812 y(used)g(as)g(option)h(c)
-m(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k
-Fs(getopts)37 b Ft(places)i(the)g(next)630 2921 y(option)29
-b(in)f(the)g(shell)h(v)-5 b(ariable)29 b Fq(name)5 b
-Ft(,)29 b(initializing)h Fq(name)k Ft(if)28 b(it)h(do)s(es)f(not)g
-(exist,)i(and)e(the)630 3031 y(index)33 b(of)g(the)h(next)f(argumen)m
-(t)h(to)g(b)s(e)e(pro)s(cessed)h(in)m(to)h(the)g(v)-5
-b(ariable)34 b Fs(OPTIND)p Ft(.)48 b Fs(OPTIND)630 3140
-y Ft(is)41 b(initialized)i(to)f(1)f(eac)m(h)h(time)g(the)f(shell)g(or)g
-(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m(ed.)74 b(When)41
-b(an)630 3250 y(option)36 b(requires)e(an)h(argumen)m(t,)i
-Fs(getopts)c Ft(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)-5
-b(ariable)630 3360 y Fs(OPTARG)p Ft(.)55 b(The)35 b(shell)g(do)s(es)h
-(not)g(reset)g Fs(OPTIND)e Ft(automatically;)41 b(it)36
-b(m)m(ust)f(b)s(e)g(man)m(ually)630 3469 y(reset)i(b)s(et)m(w)m(een)g
-(m)m(ultiple)h(calls)f(to)g Fs(getopts)e Ft(within)h(the)h(same)g
-(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 3579 y(new)30
-b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)630
-3712 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k
-Fs(getopts)39 b Ft(exits)j(with)f(a)h(return)e(v)-5 b(alue)630
-3821 y(greater)32 b(than)e(zero.)41 b Fs(OPTIND)29 b
-Ft(is)h(set)h(to)g(the)g(index)f(of)g(the)h(\014rst)f(non-option)g
-(argumen)m(t,)630 3931 y(and)g Fq(name)35 b Ft(is)c(set)g(to)g(`)p
-Fs(?)p Ft('.)630 4064 y Fs(getopts)c Ft(normally)j(parses)e(the)i(p)s
+630 549 y(If)k(the)h Ft(-l)e Fu(option)i(is)g(supplied,)h(the)e(shell)h
+(places)g(a)g(dash)f(at)h(the)f(b)s(eginning)g(of)h(the)630
+659 y(zeroth)36 b(argumen)m(t)h(passed)e(to)h Fr(command)p
+Fu(.)57 b(This)35 b(is)h(what)f(the)h Ft(login)e Fu(program)i(do)s(es.)
+630 769 y(The)i Ft(-c)g Fu(option)g(causes)h Fr(command)j
+Fu(to)d(b)s(e)f(executed)h(with)f(an)g(empt)m(y)h(en)m(vironmen)m(t.)
+630 878 y(If)c Ft(-a)g Fu(is)h(supplied,)f(the)h(shell)g(passes)f
+Fr(name)41 b Fu(as)36 b(the)f(zeroth)i(argumen)m(t)f(to)g
+Fr(command)p Fu(.)630 988 y(If)c Fr(command)j Fu(cannot)e(b)s(e)f
+(executed)h(for)f(some)g(reason,)h(a)g(non-in)m(teractiv)m(e)i(shell)d
+(exits,)630 1097 y(unless)27 b(the)g Ft(execfail)e Fu(shell)i(option)h
+(is)f(enabled.)40 b(In)27 b(that)g(case,)j(it)d(returns)f(failure.)40
+b(An)630 1207 y(in)m(teractiv)m(e)d(shell)c(returns)g(failure)h(if)f
+(the)h(\014le)g(cannot)g(b)s(e)f(executed.)52 b(If)33
+b(no)h Fr(command)630 1316 y Fu(is)27 b(sp)s(eci\014ed,)g(redirections)
+h(ma)m(y)f(b)s(e)g(used)f(to)i(a\013ect)g(the)f(curren)m(t)g(shell)g
+(en)m(vironmen)m(t.)40 b(If)630 1426 y(there)34 b(are)h(no)f
+(redirection)h(errors,)g(the)f(return)f(status)i(is)f(zero;)j
+(otherwise)e(the)f(return)630 1536 y(status)d(is)f(non-zero.)150
+1708 y Ft(exit)870 1849 y(exit)47 b([)p Fj(n)p Ft(])630
+1990 y Fu(Exit)30 b(the)g(shell,)h(returning)d(a)j(status)f(of)g
+Fr(n)f Fu(to)h(the)g(shell's)g(paren)m(t.)41 b(If)30
+b Fr(n)f Fu(is)h(omitted,)h(the)630 2099 y(exit)c(status)g(is)g(that)g
+(of)g(the)g(last)g(command)f(executed.)41 b(An)m(y)26
+b(trap)h(on)f Ft(EXIT)f Fu(is)i(executed)630 2209 y(b)s(efore)j(the)h
+(shell)f(terminates.)150 2381 y Ft(export)870 2522 y(export)46
+b([-fn])g([-p])h([)p Fj(name)p Ft([=)p Fj(value)p Ft(]])630
+2663 y Fu(Mark)40 b(eac)m(h)h Fr(name)k Fu(to)40 b(b)s(e)f(passed)g(to)
+i(c)m(hild)f(pro)s(cesses)f(in)g(the)h(en)m(vironmen)m(t.)70
+b(If)39 b(the)630 2772 y Ft(-f)33 b Fu(option)h(is)g(supplied,)f(the)h
+Fr(name)5 b Fu(s)33 b(refer)g(to)i(shell)e(functions;)i(otherwise)f
+(the)g(names)630 2882 y(refer)c(to)h(shell)g(v)-5 b(ariables.)41
+b(The)30 b Ft(-n)f Fu(option)i(means)f(to)h(no)f(longer)h(mark)f(eac)m
+(h)i Fr(name)j Fu(for)630 2992 y(exp)s(ort.)52 b(If)33
+b(no)h Fr(names)k Fu(are)c(supplied,)g(or)g(if)g(the)g
+Ft(-p)g Fu(option)g(is)g(giv)m(en,)j(a)d(list)h(of)f(names)630
+3101 y(of)d(all)h(exp)s(orted)e(v)-5 b(ariables)31 b(is)g(displa)m(y)m
+(ed.)43 b(The)30 b Ft(-p)g Fu(option)i(displa)m(ys)e(output)h(in)f(a)h
+(form)630 3211 y(that)25 b(ma)m(y)g(b)s(e)f(reused)g(as)h(input.)38
+b(If)24 b(a)h(v)-5 b(ariable)25 b(name)g(is)g(follo)m(w)m(ed)h(b)m(y)e
+(=)p Fr(v)-5 b(alue)p Fu(,)27 b(the)d(v)-5 b(alue)630
+3320 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
+Fr(v)-5 b(alue)p Fu(.)630 3461 y(The)29 b(return)e(status)j(is)f(zero)h
+(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i
+(of)f(the)g(names)630 3571 y(is)k(not)g(a)h(v)-5 b(alid)33
+b(shell)h(v)-5 b(ariable)33 b(name,)i(or)e Ft(-f)f Fu(is)h(supplied)f
+(with)h(a)g(name)g(that)h(is)f(not)h(a)630 3680 y(shell)d(function.)150
+3853 y Ft(getopts)870 3994 y(getopts)46 b Fj(optstring)f(name)i
+Ft([)p Fj(args)p Ft(])630 4134 y(getopts)28 b Fu(is)i(used)g(b)m(y)g
+(shell)g(scripts)g(to)g(parse)g(p)s(ositional)h(parameters.)41
+b Fr(optstring)d Fu(con-)630 4244 y(tains)k(the)g(option)f(c)m
+(haracters)i(to)g(b)s(e)d(recognized;)49 b(if)42 b(a)f(c)m(haracter)j
+(is)d(follo)m(w)m(ed)i(b)m(y)f(a)630 4354 y(colon,)33
+b(the)f(option)g(is)g(exp)s(ected)g(to)h(ha)m(v)m(e)g(an)e(argumen)m
+(t,)i(whic)m(h)f(should)e(b)s(e)h(separated)630 4463
+y(from)40 b(it)g(b)m(y)g(whitespace.)70 b(The)40 b(colon)h(\(`)p
+Ft(:)p Fu('\))g(and)e(question)h(mark)g(\(`)p Ft(?)p
+Fu('\))h(ma)m(y)f(not)h(b)s(e)630 4573 y(used)d(as)g(option)h(c)m
+(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k
+Ft(getopts)37 b Fu(places)i(the)g(next)630 4682 y(option)29
+b(in)f(the)h(shell)g(v)-5 b(ariable)30 b Fr(name)p Fu(,)f(initializing)
+i Fr(name)j Fu(if)28 b(it)h(do)s(es)g(not)g(exist,)h(and)e(the)630
+4792 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
+(cessed)h(in)m(to)h(the)g(v)-5 b(ariable)34 b Ft(OPTIND)p
+Fu(.)48 b Ft(OPTIND)630 4902 y Fu(is)41 b(initialized)i(to)f(1)f(eac)m
+(h)h(time)g(the)f(shell)g(or)g(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m
+(ed.)74 b(When)41 b(an)630 5011 y(option)36 b(requires)e(an)h(argumen)m
+(t,)i Ft(getopts)c Fu(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)
+-5 b(ariable)630 5121 y Ft(OPTARG)p Fu(.)55 b(The)35
+b(shell)g(do)s(es)h(not)g(reset)g Ft(OPTIND)e Fu(automatically;)41
+b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 5230 y(reset)i(b)s(et)m(w)m
+(een)g(m)m(ultiple)h(calls)f(to)g Ft(getopts)e Fu(within)h(the)h(same)g
+(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 5340 y(new)30
+b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)p eop
+end
+%%Page: 44 50
+TeXDict begin 44 49 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(44)630 299 y(When)41
+b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k Ft(getopts)39
+b Fu(exits)j(with)f(a)h(return)e(v)-5 b(alue)630 408
+y(greater)32 b(than)e(zero.)41 b Ft(OPTIND)29 b Fu(is)h(set)h(to)g(the)
+g(index)f(of)g(the)h(\014rst)f(non-option)g(argumen)m(t,)630
+518 y(and)g Fr(name)35 b Fu(is)c(set)g(to)g(`)p Ft(?)p
+Fu('.)630 655 y Ft(getopts)c Fu(normally)j(parses)e(the)i(p)s
(ositional)g(parameters,)g(but)e(if)i(more)f(argumen)m(ts)h(are)630
-4174 y(giv)m(en)h(in)f Fq(args)t Ft(,)h Fs(getopts)e
-Ft(parses)g(those)i(instead.)630 4307 y Fs(getopts)h
-Ft(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m(ys.)51
-b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d Fq(optstring)42
-b Ft(is)34 b(a)630 4416 y(colon,)i Fq(silen)m(t)i Ft(error)33
-b(rep)s(orting)h(is)h(used.)51 b(In)33 b(normal)i(op)s(eration)f
-(diagnostic)i(messages)630 4526 y(are)30 b(prin)m(ted)e(when)g(in)m(v)
--5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h(are)f
-(encoun)m(tered.)630 4635 y(If)34 b(the)g(v)-5 b(ariable)35
-b Fs(OPTERR)d Ft(is)i(set)h(to)f(0,)i(no)e(error)g(messages)h(will)f(b)
-s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630 4745 y(the)c(\014rst)e(c)m
-(haracter)j(of)f Fs(optstring)d Ft(is)i(not)h(a)f(colon.)630
-4878 y(If)39 b(an)h(in)m(v)-5 b(alid)41 b(option)f(is)g(seen,)i
-Fs(getopts)c Ft(places)j(`)p Fs(?)p Ft(')f(in)m(to)h
-Fq(name)k Ft(and,)d(if)e(not)g(silen)m(t,)630 4988 y(prin)m(ts)f(an)h
-(error)f(message)h(and)f(unsets)g Fs(OPTARG)p Ft(.)67
-b(If)39 b Fs(getopts)f Ft(is)i(silen)m(t,)j(the)c(option)630
-5097 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f Fs(OPTARG)f
-Ft(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630
-5230 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
-Fs(getopts)f Ft(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630
-5340 y(\(`)p Fs(?)p Ft('\))35 b(is)g(placed)g(in)g Fq(name)5
-b Ft(,)36 b Fs(OPTARG)d Ft(is)h(unset,)i(and)e(a)h(diagnostic)h
-(message)f(is)g(prin)m(ted.)p eop end
-%%Page: 40 46
-TeXDict begin 40 45 bop 150 -116 a Ft(40)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(If)i Fs(getopts)f Ft(is)h(silen)m(t,)
-j(then)d(a)i(colon)f(\(`)p Fs(:)p Ft('\))h(is)e(placed)h(in)g
-Fq(name)k Ft(and)33 b Fs(OPTARG)f Ft(is)i(set)g(to)630
-408 y(the)d(option)f(c)m(haracter)i(found.)150 573 y
-Fs(hash)870 710 y(hash)47 b([-r])f([-p)h Fi(filename)11
-b Fs(])45 b([-dt])h([)p Fi(name)11 b Fs(])630 847 y Ft(Eac)m(h)32
-b(time)g Fs(hash)e Ft(is)h(in)m(v)m(ok)m(ed,)j(it)d(remem)m(b)s(ers)g
-(the)g(full)g(pathnames)g(of)h(the)f(commands)630 956
-y(sp)s(eci\014ed)i(as)i Fq(name)k Ft(argumen)m(ts,)c(so)g(they)f(need)g
-(not)g(b)s(e)f(searc)m(hed)i(for)f(on)g(subsequen)m(t)630
-1066 y(in)m(v)m(o)s(cations.)79 b(The)41 b(commands)h(are)h(found)e(b)m
-(y)h(searc)m(hing)i(through)d(the)i(directories)630 1176
-y(listed)33 b(in)g Fs($PATH)p Ft(.)47 b(An)m(y)33 b(previously-remem)m
-(b)s(ered)f(pathname)h(is)g(discarded.)48 b(The)32 b(`)p
-Fs(-p)p Ft(')630 1285 y(option)i(inhibits)e(the)i(path)f(searc)m(h,)i
-(and)e Fq(\014lename)38 b Ft(is)c(used)e(as)i(the)f(lo)s(cation)i(of)f
-Fq(name)5 b Ft(.)630 1395 y(The)35 b(`)p Fs(-r)p Ft(')g(option)g
-(causes)h(the)g(shell)f(to)h(forget)g(all)g(remem)m(b)s(ered)f(lo)s
-(cations.)56 b(The)35 b(`)p Fs(-d)p Ft(')630 1504 y(option)c(causes)f
-(the)g(shell)h(to)f(forget)i(the)e(remem)m(b)s(ered)f(lo)s(cation)j(of)
-e(eac)m(h)h Fq(name)5 b Ft(.)41 b(If)30 b(the)630 1614
-y(`)p Fs(-t)p Ft(')35 b(option)h(is)g(supplied,)f(the)h(full)f
-(pathname)g(to)i(whic)m(h)e(eac)m(h)h Fq(name)41 b Ft(corresp)s(onds)34
-b(is)630 1724 y(prin)m(ted.)39 b(If)26 b(m)m(ultiple)h
-Fq(name)32 b Ft(argumen)m(ts)27 b(are)g(supplied)e(with)h(`)p
-Fs(-t)p Ft(')g(the)h Fq(name)32 b Ft(is)26 b(prin)m(ted)630
-1833 y(b)s(efore)f(the)h(hashed)e(full)h(pathname.)39
-b(The)25 b(`)p Fs(-l)p Ft(')h(option)f(causes)h(output)f(to)i(b)s(e)d
-(displa)m(y)m(ed)630 1943 y(in)31 b(a)g(format)h(that)f(ma)m(y)h(b)s(e)
-f(reused)f(as)h(input.)42 b(If)31 b(no)g(argumen)m(ts)h(are)f(giv)m
-(en,)i(or)e(if)g(only)630 2052 y(`)p Fs(-l)p Ft(')44
-b(is)f(supplied,)j(information)e(ab)s(out)g(remem)m(b)s(ered)f
-(commands)g(is)h(prin)m(ted.)80 b(The)630 2162 y(return)25
-b(status)h(is)f(zero)i(unless)e(a)h Fq(name)31 b Ft(is)26
-b(not)g(found)e(or)i(an)g(in)m(v)-5 b(alid)26 b(option)g(is)g
-(supplied.)150 2326 y Fs(pwd)870 2463 y(pwd)47 b([-LP])630
-2600 y Ft(Prin)m(t)24 b(the)h(absolute)g(pathname)g(of)f(the)h(curren)m
-(t)f(w)m(orking)h(directory)-8 b(.)40 b(If)23 b(the)i(`)p
-Fs(-P)p Ft(')f(option)630 2710 y(is)36 b(supplied,)f(the)h(pathname)f
-(prin)m(ted)g(will)h(not)g(con)m(tain)h(sym)m(b)s(olic)f(links.)55
-b(If)35 b(the)h(`)p Fs(-L)p Ft(')630 2819 y(option)44
-b(is)g(supplied,)i(the)e(pathname)f(prin)m(ted)h(ma)m(y)g(con)m(tain)h
-(sym)m(b)s(olic)f(links.)80 b(The)630 2929 y(return)26
-b(status)h(is)h(zero)g(unless)e(an)h(error)g(is)g(encoun)m(tered)g
-(while)h(determining)f(the)g(name)630 3039 y(of)k(the)f(curren)m(t)g
-(directory)h(or)f(an)h(in)m(v)-5 b(alid)31 b(option)g(is)f(supplied.)
-150 3203 y Fs(readonly)870 3340 y(readonly)46 b([-aApf])f([)p
-Fi(name)11 b Fs([=)p Fi(value)g Fs(]])43 b(...)630 3477
-y Ft(Mark)24 b(eac)m(h)h Fq(name)k Ft(as)24 b(readonly)-8
-b(.)39 b(The)24 b(v)-5 b(alues)24 b(of)g(these)g(names)g(ma)m(y)g(not)g
-(b)s(e)g(c)m(hanged)g(b)m(y)630 3587 y(subsequen)m(t)e(assignmen)m(t.)
-39 b(If)22 b(the)h(`)p Fs(-f)p Ft(')f(option)i(is)e(supplied,)h(eac)m
-(h)h Fq(name)k Ft(refers)22 b(to)i(a)f(shell)630 3696
-y(function.)39 b(The)26 b(`)p Fs(-a)p Ft(')h(option)g(means)g(eac)m(h)h
-Fq(name)k Ft(refers)26 b(to)i(an)e(indexed)h(arra)m(y)g(v)-5
-b(ariable;)630 3806 y(the)33 b(`)p Fs(-A)p Ft(')g(option)g(means)g(eac)
-m(h)h Fq(name)k Ft(refers)32 b(to)h(an)g(asso)s(ciativ)m(e)j(arra)m(y)d
-(v)-5 b(ariable.)49 b(If)32 b(no)630 3915 y Fq(name)f
-Ft(argumen)m(ts)26 b(are)g(giv)m(en,)i(or)d(if)h(the)g(`)p
-Fs(-p)p Ft(')f(option)h(is)g(supplied,)f(a)h(list)h(of)e(all)i
-(readonly)630 4025 y(names)37 b(is)g(prin)m(ted.)59 b(The)37
-b(`)p Fs(-p)p Ft(')f(option)i(causes)f(output)g(to)g(b)s(e)f(displa)m
-(y)m(ed)i(in)e(a)i(format)630 4134 y(that)25 b(ma)m(y)g(b)s(e)e(reused)
-h(as)g(input.)38 b(If)24 b(a)g(v)-5 b(ariable)25 b(name)g(is)f(follo)m
-(w)m(ed)i(b)m(y)e(=)p Fq(v)-5 b(alue)5 b Ft(,)26 b(the)e(v)-5
-b(alue)630 4244 y(of)26 b(the)h(v)-5 b(ariable)27 b(is)f(set)h(to)g
-Fq(v)-5 b(alue)5 b Ft(.)40 b(The)26 b(return)f(status)i(is)f(zero)h
-(unless)e(an)i(in)m(v)-5 b(alid)26 b(option)630 4354
-y(is)k(supplied,)f(one)h(of)g(the)g Fq(name)35 b Ft(argumen)m(ts)30
+765 y(giv)m(en)h(in)f Fr(args)p Fu(,)h Ft(getopts)e Fu(parses)h(those)h
+(instead.)630 902 y Ft(getopts)h Fu(can)h(rep)s(ort)g(errors)g(in)h(t)m
+(w)m(o)h(w)m(a)m(ys.)51 b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d
+Fr(optstring)42 b Fu(is)34 b(a)630 1011 y(colon,)g Fr(silen)m(t)h
+Fu(error)d(rep)s(orting)f(is)i(used.)45 b(In)31 b(normal)h(op)s
+(eration,)h(diagnostic)h(messages)630 1121 y(are)c(prin)m(ted)e(when)g
+(in)m(v)-5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h
+(are)f(encoun)m(tered.)630 1230 y(If)34 b(the)g(v)-5
+b(ariable)35 b Ft(OPTERR)d Fu(is)i(set)h(to)f(0,)i(no)e(error)g
+(messages)h(will)f(b)s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630
+1340 y(the)c(\014rst)e(c)m(haracter)j(of)f Ft(optstring)d
+Fu(is)i(not)h(a)f(colon.)630 1477 y(If)39 b(an)h(in)m(v)-5
+b(alid)41 b(option)f(is)g(seen,)i Ft(getopts)c Fu(places)j(`)p
+Ft(?)p Fu(')f(in)m(to)h Fr(name)k Fu(and,)d(if)e(not)g(silen)m(t,)630
+1587 y(prin)m(ts)f(an)h(error)f(message)h(and)f(unsets)g
+Ft(OPTARG)p Fu(.)67 b(If)39 b Ft(getopts)f Fu(is)i(silen)m(t,)j(the)c
+(option)630 1696 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f
+Ft(OPTARG)f Fu(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630
+1833 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
+Ft(getopts)f Fu(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630
+1943 y(\(`)p Ft(?)p Fu('\))h(is)g(placed)g(in)f Fr(name)p
+Fu(,)h Ft(OPTARG)e Fu(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g
+(is)e(prin)m(ted.)39 b(If)630 2052 y Ft(getopts)28 b
+Fu(is)h(silen)m(t,)i(then)e(a)h(colon)h(\(`)p Ft(:)p
+Fu('\))f(is)g(placed)g(in)f Fr(name)35 b Fu(and)29 b
+Ft(OPTARG)f Fu(is)h(set)h(to)h(the)630 2162 y(option)g(c)m(haracter)h
+(found.)150 2326 y Ft(hash)870 2463 y(hash)47 b([-r])f([-p)h
+Fj(filename)p Ft(])e([-dt])i([)p Fj(name)p Ft(])630 2600
+y Fu(Eac)m(h)32 b(time)g Ft(hash)e Fu(is)h(in)m(v)m(ok)m(ed,)j(it)d
+(remem)m(b)s(ers)g(the)g(full)g(pathnames)g(of)h(the)f(commands)630
+2710 y(sp)s(eci\014ed)i(as)i Fr(name)k Fu(argumen)m(ts,)c(so)g(they)f
+(need)g(not)g(b)s(e)f(searc)m(hed)i(for)f(on)g(subsequen)m(t)630
+2819 y(in)m(v)m(o)s(cations.)79 b(The)41 b(commands)h(are)h(found)e(b)m
+(y)h(searc)m(hing)i(through)d(the)i(directories)630 2929
+y(listed)37 b(in)g Ft($PATH)p Fu(.)58 b(An)m(y)37 b(previously-remem)m
+(b)s(ered)f(pathname)h(is)g(discarded.)59 b(The)37 b
+Ft(-p)630 3039 y Fu(option)d(inhibits)f(the)h(path)g(searc)m(h,)h(and)e
+Fr(\014lename)39 b Fu(is)34 b(used)f(as)h(the)f(lo)s(cation)j(of)e
+Fr(name)p Fu(.)630 3148 y(The)42 b Ft(-r)g Fu(option)h(causes)f(the)h
+(shell)g(to)g(forget)g(all)h(remem)m(b)s(ered)d(lo)s(cations.)79
+b(The)42 b Ft(-d)630 3258 y Fu(option)31 b(causes)g(the)f(shell)h(to)g
+(forget)h(the)f(remem)m(b)s(ered)e(lo)s(cation)j(of)f(eac)m(h)h
+Fr(name)p Fu(.)41 b(If)30 b(the)630 3367 y Ft(-t)39 b
+Fu(option)h(is)g(supplied,)g(the)g(full)f(pathname)h(to)g(whic)m(h)f
+(eac)m(h)i Fr(name)k Fu(corresp)s(onds)38 b(is)630 3477
+y(prin)m(ted.)k(If)30 b(m)m(ultiple)i Fr(name)k Fu(argumen)m(ts)31
+b(are)g(supplied)f(with)g Ft(-t)g Fu(the)h Fr(name)36
+b Fu(is)31 b(prin)m(ted)630 3587 y(b)s(efore)e(the)i(hashed)e(full)g
+(pathname.)41 b(The)29 b Ft(-l)g Fu(option)i(causes)f(output)f(to)i(b)s
+(e)e(displa)m(y)m(ed)630 3696 y(in)23 b(a)h(format)g(that)g(ma)m(y)g(b)
+s(e)f(reused)f(as)i(input.)37 b(If)23 b(no)h(argumen)m(ts)f(are)h(giv)m
+(en,)i(or)e(if)f(only)h Ft(-l)630 3806 y Fu(is)35 b(supplied,)f
+(information)h(ab)s(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m
+(ted.)53 b(The)34 b(return)630 3915 y(status)d(is)f(zero)h(unless)f(a)h
+Fr(name)k Fu(is)c(not)f(found)f(or)i(an)f(in)m(v)-5 b(alid)31
+b(option)g(is)f(supplied.)150 4080 y Ft(pwd)870 4217
+y(pwd)47 b([-LP])630 4354 y Fu(Prin)m(t)29 b(the)g(absolute)h(pathname)
+e(of)h(the)h(curren)m(t)e(w)m(orking)h(directory)-8 b(.)42
+b(If)28 b(the)h Ft(-P)f Fu(option)630 4463 y(is)39 b(supplied,)h(the)f
+(pathname)g(prin)m(ted)g(will)g(not)h(con)m(tain)g(sym)m(b)s(olic)f
+(links.)67 b(If)38 b(the)i Ft(-L)630 4573 y Fu(option)k(is)g(supplied,)
+i(the)e(pathname)f(prin)m(ted)h(ma)m(y)g(con)m(tain)h(sym)m(b)s(olic)f
+(links.)80 b(The)630 4682 y(return)26 b(status)h(is)h(zero)g(unless)e
+(an)h(error)g(is)g(encoun)m(tered)g(while)h(determining)f(the)g(name)
+630 4792 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
+b(alid)31 b(option)g(is)f(supplied.)150 4956 y Ft(readonly)870
+5093 y(readonly)46 b([-aAf])g([-p])g([)p Fj(name)p Ft([=)p
+Fj(value)p Ft(]])e(...)630 5230 y Fu(Mark)33 b(eac)m(h)h
+Fr(name)39 b Fu(as)33 b(readonly)-8 b(.)49 b(The)32 b(v)-5
+b(alues)34 b(of)f(these)g(names)g(ma)m(y)h(not)f(b)s(e)f(c)m(hanged)630
+5340 y(b)m(y)38 b(subsequen)m(t)g(assignmen)m(t.)65 b(If)38
+b(the)h Ft(-f)f Fu(option)g(is)h(supplied,)g(eac)m(h)h
+Fr(name)j Fu(refers)38 b(to)p eop end
+%%Page: 45 51
+TeXDict begin 45 50 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y(a)37
+b(shell)g(function.)59 b(The)36 b Ft(-a)g Fu(option)h(means)f(eac)m(h)i
+Fr(name)k Fu(refers)36 b(to)h(an)f(indexed)g(arra)m(y)630
+408 y(v)-5 b(ariable;)28 b(the)f Ft(-A)e Fu(option)h(means)g(eac)m(h)h
+Fr(name)k Fu(refers)26 b(to)g(an)g(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5
+b(ariable.)630 518 y(If)35 b(b)s(oth)g(options)h(are)h(supplied,)f
+Ft(-A)f Fu(tak)m(es)i(precedence.)58 b(If)35 b(no)h Fr(name)k
+Fu(argumen)m(ts)d(are)630 628 y(giv)m(en,)k(or)c(if)h(the)g
+Ft(-p)f Fu(option)h(is)f(supplied,)i(a)f(list)g(of)g(all)g(readonly)g
+(names)f(is)h(prin)m(ted.)630 737 y(The)32 b(other)g(options)g(ma)m(y)h
+(b)s(e)f(used)f(to)i(restrict)g(the)f(output)g(to)h(a)f(subset)g(of)g
+(the)g(set)h(of)630 847 y(readonly)c(names.)41 b(The)28
+b Ft(-p)h Fu(option)h(causes)g(output)e(to)j(b)s(e)d(displa)m(y)m(ed)i
+(in)f(a)h(format)f(that)630 956 y(ma)m(y)j(b)s(e)e(reused)g(as)i
+(input.)42 b(If)30 b(a)i(v)-5 b(ariable)31 b(name)h(is)f(follo)m(w)m
+(ed)h(b)m(y)f(=)p Fr(v)-5 b(alue)p Fu(,)32 b(the)f(v)-5
+b(alue)32 b(of)630 1066 y(the)i(v)-5 b(ariable)34 b(is)f(set)i(to)f
+Fr(v)-5 b(alue)p Fu(.)50 b(The)33 b(return)g(status)g(is)h(zero)g
+(unless)f(an)g(in)m(v)-5 b(alid)34 b(option)630 1176
+y(is)c(supplied,)f(one)h(of)g(the)g Fr(name)35 b Fu(argumen)m(ts)30
b(is)g(not)g(a)g(v)-5 b(alid)31 b(shell)f(v)-5 b(ariable)30
-b(or)g(function)630 4463 y(name,)h(or)f(the)h(`)p Fs(-f)p
-Ft(')f(option)h(is)f(supplied)f(with)h(a)h(name)f(that)h(is)g(not)f(a)h
-(shell)g(function.)150 4628 y Fs(return)870 4765 y(return)46
-b([)p Fi(n)11 b Fs(])630 4902 y Ft(Cause)30 b(a)g(shell)g(function)g
-(to)h(exit)f(with)g(the)g(return)f(v)-5 b(alue)31 b Fq(n)p
-Ft(.)40 b(If)29 b Fq(n)h Ft(is)g(not)g(supplied,)f(the)630
-5011 y(return)35 b(v)-5 b(alue)37 b(is)f(the)g(exit)h(status)f(of)h
-(the)f(last)h(command)f(executed)h(in)f(the)g(function.)630
-5121 y(This)21 b(ma)m(y)i(also)g(b)s(e)e(used)g(to)i(terminate)g
-(execution)g(of)f(a)h(script)f(b)s(eing)f(executed)i(with)f(the)630
-5230 y Fs(.)27 b Ft(\(or)g Fs(source)p Ft(\))f(builtin,)i(returning)e
-(either)h Fq(n)g Ft(or)g(the)g(exit)h(status)g(of)f(the)g(last)h
-(command)630 5340 y(executed)46 b(within)f(the)g(script)g(as)h(the)f
-(exit)h(status)g(of)f(the)h(script.)85 b(An)m(y)45 b(command)p
-eop end
-%%Page: 41 47
-TeXDict begin 41 46 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(41)630 299 y(asso)s(ciated)30
-b(with)e(the)g Fs(RETURN)f Ft(trap)h(is)g(executed)h(b)s(efore)f
-(execution)h(resumes)f(after)h(the)630 408 y(function)38
-b(or)f(script.)63 b(The)38 b(return)e(status)i(is)g(non-zero)h(if)e
-Fs(return)g Ft(is)g(used)g(outside)i(a)630 518 y(function)30
-b(and)g(not)g(during)g(the)g(execution)i(of)e(a)h(script)f(b)m(y)h
-Fs(.)f Ft(or)g Fs(source)p Ft(.)150 682 y Fs(shift)870
-819 y(shift)46 b([)p Fi(n)11 b Fs(])630 956 y Ft(Shift)41
-b(the)g(p)s(ositional)h(parameters)g(to)g(the)f(left)h(b)m(y)g
-Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters)630
-1066 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45
-b Fs($#)34 b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22
-b(.)g(.)46 b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36
-b(represen)m(ted)e(b)m(y)g(the)630 1176 y(n)m(um)m(b)s(ers)25
-b Fs($#)i Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39
-b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
-c(less)i(than)g(or)630 1285 y(equal)33 b(to)h Fs($#)p
-Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h(than)f
-Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
-1395 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
+b(or)g(function)630 1285 y(name,)h(or)f(the)h Ft(-f)e
+Fu(option)i(is)g(supplied)e(with)h(a)h(name)f(that)h(is)f(not)h(a)g
+(shell)f(function.)150 1450 y Ft(return)870 1587 y(return)46
+b([)p Fj(n)p Ft(])630 1724 y Fu(Cause)37 b(a)g(shell)h(function)f(to)g
+(stop)h(executing)g(and)e(return)h(the)g(v)-5 b(alue)37
+b Fr(n)g Fu(to)h(its)f(caller.)630 1833 y(If)h Fr(n)h
+Fu(is)g(not)g(supplied,)h(the)f(return)e(v)-5 b(alue)40
+b(is)f(the)g(exit)g(status)g(of)g(the)g(last)h(command)630
+1943 y(executed)35 b(in)f(the)h(function.)53 b Ft(return)33
+b Fu(ma)m(y)i(also)g(b)s(e)f(used)f(to)j(terminate)f(execution)h(of)630
+2052 y(a)e(script)g(b)s(eing)g(executed)g(with)g(the)g
+Ft(.)g Fu(\()p Ft(source)p Fu(\))f(builtin,)h(returning)f(either)i
+Fr(n)e Fu(or)h(the)630 2162 y(exit)j(status)f(of)g(the)g(last)h
+(command)e(executed)i(within)e(the)h(script)g(as)g(the)g(exit)h(status)
+630 2271 y(of)i(the)g(script.)65 b(If)38 b Fr(n)g Fu(is)h(supplied,)h
+(the)f(return)e(v)-5 b(alue)39 b(is)g(its)g(least)h(signi\014can)m(t)g
+(8)f(bits.)630 2381 y(An)m(y)g(command)f(asso)s(ciated)j(with)d(the)h
+Ft(RETURN)e Fu(trap)i(is)g(executed)g(b)s(efore)g(execution)630
+2491 y(resumes)29 b(after)h(the)g(function)g(or)g(script.)40
+b(The)29 b(return)g(status)h(is)g(non-zero)g(if)g Ft(return)e
+Fu(is)630 2600 y(supplied)h(a)i(non-n)m(umeric)g(argumen)m(t)g(or)f(is)
+h(used)f(outside)h(a)g(function)f(and)g(not)h(during)630
+2710 y(the)g(execution)g(of)g(a)f(script)h(b)m(y)f Ft(.)g
+Fu(or)g Ft(source)p Fu(.)150 2874 y Ft(shift)870 3011
+y(shift)46 b([)p Fj(n)p Ft(])630 3148 y Fu(Shift)41 b(the)g(p)s
+(ositional)h(parameters)g(to)g(the)f(left)h(b)m(y)g Fr(n)p
+Fu(.)73 b(The)40 b(p)s(ositional)j(parameters)630 3258
+y(from)34 b Fr(n)p Ft(+)p Fu(1)39 b(.)22 b(.)h(.)45 b
+Ft($#)34 b Fu(are)g(renamed)g(to)h Ft($1)k Fu(.)22 b(.)g(.)46
+b Ft($#)p Fu(-)p Fr(n)p Fu(.)51 b(P)m(arameters)36 b(represen)m(ted)e
+(b)m(y)g(the)630 3367 y(n)m(um)m(b)s(ers)25 b Ft($#)i
+Fu(to)g Ft($#)p Fu(-)p Fr(n)p Ft(+)p Fu(1)g(are)g(unset.)39
+b Fr(n)26 b Fu(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
+c(less)i(than)g(or)630 3477 y(equal)33 b(to)h Ft($#)p
+Fu(.)47 b(If)33 b Fr(n)f Fu(is)h(zero)g(or)g(greater)h(than)f
+Ft($#)p Fu(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
+3587 y(c)m(hanged.)48 b(If)32 b Fr(n)g Fu(is)h(not)f(supplied,)h(it)g
(is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f
-(zero)630 1504 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
-Fs($#)e Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
-1669 y Fs(test)150 1778 y([)432 b Ft(Ev)-5 b(aluate)31
-b(a)g(conditional)g(expression)f Fq(expr)7 b Ft(.)40
-b(Eac)m(h)30 b(op)s(erator)h(and)e(op)s(erand)g(m)m(ust)h(b)s(e)g(a)630
-1888 y(separate)d(argumen)m(t.)40 b(Expressions)25 b(are)i(comp)s(osed)
-e(of)i(the)f(primaries)g(describ)s(ed)f(b)s(elo)m(w)630
-1998 y(in)34 b(Section)g(6.4)h([Bash)g(Conditional)f(Expressions],)h
-(page)g(78.)52 b Fs(test)33 b Ft(do)s(es)g(not)h(accept)630
-2107 y(an)m(y)27 b(options,)i(nor)d(do)s(es)h(it)g(accept)i(and)d
-(ignore)i(an)f(argumen)m(t)g(of)g(`)p Fs(--)p Ft(')g(as)h(signifying)f
-(the)630 2217 y(end)j(of)g(options.)630 2354 y(When)g(the)h
-Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e
-(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p Ft(.)630 2491
-y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m
-(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-2600 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
+(zero)630 3696 y(unless)e Fr(n)f Fu(is)i(greater)g(than)g
+Ft($#)e Fu(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
+3861 y Ft(test)150 3970 y([)870 4107 y(test)47 b Fj(expr)630
+4244 y Fu(Ev)-5 b(aluate)40 b(a)f(conditional)h(express)f(ion)g
+Fr(expr)45 b Fu(and)38 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f
+(1)630 4354 y(\(false\).)j(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
+g(m)m(ust)h(b)s(e)f(a)i(separate)g(argumen)m(t.)41 b(Expressions)630
+4463 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
+(elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)630
+4573 y(Expressions],)39 b(page)g(85.)64 b Ft(test)37
+b Fu(do)s(es)g(not)h(accept)i(an)m(y)e(options,)i(nor)e(do)s(es)f(it)h
+(accept)630 4682 y(and)30 b(ignore)h(an)f(argumen)m(t)h(of)f
+Ft(--)g Fu(as)h(signifying)f(the)h(end)f(of)g(options.)630
+4819 y(When)g(the)h Ft([)f Fu(form)g(is)g(used,)g(the)g(last)i(argumen)
+m(t)e(to)i(the)e(command)g(m)m(ust)h(b)s(e)e(a)i Ft(])p
+Fu(.)630 4956 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f
+(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
+5066 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
-(argumen)m(ts;)g(see)630 2710 y(b)s(elo)m(w.)41 b(Op)s(erator)30
+(argumen)m(ts;)g(see)630 5176 y(b)s(elo)m(w.)41 b(Op)s(erator)30
b(precedence)h(is)f(used)g(when)f(there)i(are)f(\014v)m(e)h(or)f(more)h
-(argumen)m(ts.)630 2874 y Fs(!)f Fi(expr)210 b Ft(T)-8
-b(rue)30 b(if)g Fq(expr)37 b Ft(is)30 b(false.)630 3039
-y Fs(\()g Fi(expr)40 b Fs(\))122 b Ft(Returns)23 b(the)h(v)-5
-b(alue)24 b(of)g Fq(expr)7 b Ft(.)37 b(This)23 b(ma)m(y)i(b)s(e)e(used)
-g(to)h(o)m(v)m(erride)h(the)f(normal)1110 3148 y(precedence)31
-b(of)f(op)s(erators.)630 3313 y Fi(expr1)39 b Fs(-a)30
-b Fi(expr2)1110 3422 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g
-Fq(expr1)37 b Ft(and)30 b Fq(expr2)38 b Ft(are)30 b(true.)630
-3587 y Fi(expr1)39 b Fs(-o)30 b Fi(expr2)1110 3696 y
-Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expr1)38 b Ft(or)30
-b Fq(expr2)37 b Ft(is)31 b(true.)630 3861 y(The)37 b
-Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5 b(aluate)39
-b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)630
-3970 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
-4134 y(0)h(argumen)m(ts)1110 4244 y(The)f(expression)g(is)g(false.)630
-4408 y(1)h(argumen)m(t)1110 4518 y(The)f(expression)g(is)g(true)h(if)f
-(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)630
-4682 y(2)g(argumen)m(ts)1110 4792 y(If)f(the)h(\014rst)f(argumen)m(t)h
-(is)g(`)p Fs(!)p Ft(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
-(only)h(if)g(the)1110 4902 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
-b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
-1110 5011 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
-([Bash)g(Conditional)g(Expres-)1110 5121 y(sions],)34
-b(page)f(78\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
-(test)j(is)f(true.)47 b(If)1110 5230 y(the)33 b(\014rst)g(argumen)m(t)h
-(is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
-(expression)f(is)1110 5340 y(false.)p eop end
-%%Page: 42 48
-TeXDict begin 42 47 bop 150 -116 a Ft(42)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(3)g(argumen)m(ts)1110
-408 y(The)44 b(follo)m(wing)i(conditions)f(are)g(applied)f(in)g(the)g
-(order)g(listed.)84 b(If)44 b(the)1110 518 y(second)f(argumen)m(t)g(is)
-g(one)g(of)g(the)g(binary)f(conditional)i(op)s(erators)f(\(see)1110
-628 y(Section)h(6.4)g([Bash)g(Conditional)g(Expressions],)i(page)e
-(78\),)k(the)43 b(result)1110 737 y(of)h(the)h(expression)f(is)g(the)g
+(argumen)m(ts.)630 5340 y Ft(!)f Fj(expr)210 b Fu(T)-8
+b(rue)30 b(if)g Fr(expr)37 b Fu(is)30 b(false.)p eop
+end
+%%Page: 46 52
+TeXDict begin 46 51 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(46)630 299 y Ft(\()30
+b Fj(expr)f Ft(\))133 b Fu(Returns)23 b(the)i(v)-5 b(alue)25
+b(of)f Fr(expr)p Fu(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m
+(v)m(erride)g(the)g(normal)1110 408 y(precedence)31 b(of)f(op)s
+(erators.)630 568 y Fj(expr1)f Ft(-a)h Fj(expr2)1110
+677 y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g Fr(expr1)37 b
+Fu(and)30 b Fr(expr2)38 b Fu(are)30 b(true.)630 837 y
+Fj(expr1)f Ft(-o)h Fj(expr2)1110 946 y Fu(T)-8 b(rue)30
+b(if)g(either)h Fr(expr1)38 b Fu(or)30 b Fr(expr2)37
+b Fu(is)31 b(true.)630 1106 y(The)37 b Ft(test)f Fu(and)g
+Ft([)h Fu(builtins)g(ev)-5 b(aluate)39 b(conditional)f(expressions)f
+(using)g(a)g(set)h(of)f(rules)630 1215 y(based)30 b(on)g(the)h(n)m(um)m
+(b)s(er)e(of)h(argumen)m(ts.)630 1375 y(0)h(argumen)m(ts)1110
+1484 y(The)f(expression)g(is)g(false.)630 1644 y(1)h(argumen)m(t)1110
+1753 y(The)f(expression)g(is)g(true)h(if)f(and)g(only)g(if)h(the)f
+(argumen)m(t)h(is)f(not)h(n)m(ull.)630 1913 y(2)g(argumen)m(ts)1110
+2022 y(If)f(the)h(\014rst)f(argumen)m(t)h(is)g(`)p Ft(!)p
+Fu(',)g(the)g(expression)g(is)g(true)f(if)h(and)f(only)h(if)g(the)1110
+2132 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50 b(If)33
+b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)1110
+2242 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f([Bash)g
+(Conditional)g(Expres-)1110 2351 y(sions],)34 b(page)f(85\),)i(the)e
+(expression)f(is)h(true)g(if)g(the)g(unary)e(test)j(is)f(true.)47
+b(If)1110 2461 y(the)33 b(\014rst)g(argumen)m(t)h(is)f(not)g(a)h(v)-5
+b(alid)34 b(unary)e(op)s(erator,)i(the)g(expression)f(is)1110
+2570 y(false.)630 2730 y(3)e(argumen)m(ts)1110 2839 y(The)44
+b(follo)m(wing)i(conditions)f(are)g(applied)f(in)g(the)g(order)g
+(listed.)84 b(If)44 b(the)1110 2949 y(second)f(argumen)m(t)g(is)g(one)g
+(of)g(the)g(binary)f(conditional)i(op)s(erators)f(\(see)1110
+3059 y(Section)h(6.4)g([Bash)g(Conditional)g(Expressions],)i(page)e
+(85\),)k(the)43 b(result)1110 3168 y(of)h(the)h(expression)f(is)g(the)g
(result)g(of)h(the)f(binary)g(test)h(using)e(the)i(\014rst)1110
-847 y(and)31 b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44
-b(The)31 b(`)p Fs(-a)p Ft(')h(and)g(`)p Fs(-o)p Ft(')f(op)s(erators)i
-(are)1110 956 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i
-(are)f(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 1066
-y(\014rst)j(argumen)m(t)h(is)g(`)p Fs(!)p Ft(',)h(the)f(v)-5
+3278 y(and)31 b(third)g(argumen)m(ts)i(as)f(op)s(erands.)44
+b(The)31 b(`)p Ft(-a)p Fu(')h(and)g(`)p Ft(-o)p Fu(')f(op)s(erators)i
+(are)1110 3387 y(considered)25 b(binary)g(op)s(erators)g(when)f(there)i
+(are)f(three)h(argumen)m(ts.)39 b(If)25 b(the)1110 3497
+y(\014rst)j(argumen)m(t)h(is)g(`)p Ft(!)p Fu(',)h(the)f(v)-5
b(alue)29 b(is)g(the)g(negation)i(of)e(the)g(t)m(w)m(o-argumen)m(t)1110
-1176 y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61
-b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 1285 y(is)j(exactly)i(`)p
-Fs(\()p Ft(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p
-Fs(\))p Ft(',)h(the)e(result)f(is)1110 1395 y(the)46
+3606 y(test)38 b(using)f(the)g(second)g(and)g(third)f(argumen)m(ts.)61
+b(If)37 b(the)g(\014rst)f(argumen)m(t)1110 3716 y(is)j(exactly)i(`)p
+Ft(\()p Fu(')f(and)f(the)g(third)g(argumen)m(t)h(is)f(exactly)i(`)p
+Ft(\))p Fu(',)h(the)e(result)f(is)1110 3826 y(the)46
b(one-argumen)m(t)g(test)h(of)f(the)f(second)h(argumen)m(t.)86
-b(Otherwise,)50 b(the)1110 1504 y(expression)30 b(is)h(false.)630
-1658 y(4)g(argumen)m(ts)1110 1767 y(If)h(the)i(\014rst)e(argumen)m(t)h
-(is)g(`)p Fs(!)p Ft(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)
-g(three-)1110 1877 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)
-h(remaining)g(argumen)m(ts.)50 b(Oth-)1110 1987 y(erwise,)34
+b(Otherwise,)50 b(the)1110 3935 y(expression)30 b(is)h(false.)630
+4095 y(4)g(argumen)m(ts)1110 4204 y(If)h(the)i(\014rst)e(argumen)m(t)h
+(is)g(`)p Ft(!)p Fu(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)
+g(three-)1110 4314 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)
+h(remaining)g(argumen)m(ts.)50 b(Oth-)1110 4423 y(erwise,)34
b(the)f(expression)g(is)g(parsed)g(and)f(ev)-5 b(aluated)34
-b(according)h(to)e(prece-)1110 2096 y(dence)e(using)e(the)i(rules)f
-(listed)h(ab)s(o)m(v)m(e.)630 2250 y(5)g(or)f(more)h(argumen)m(ts)1110
-2359 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
-b(aluated)45 b(according)f(to)f(precedence)1110 2469
+b(according)h(to)e(prece-)1110 4533 y(dence)e(using)e(the)i(rules)f
+(listed)h(ab)s(o)m(v)m(e.)630 4692 y(5)g(or)f(more)h(argumen)m(ts)1110
+4802 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
+b(aluated)45 b(according)f(to)f(precedence)1110 4912
y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)630
-2622 y(When)40 b(used)f(with)g Fs(test)g Ft(or)h(`)p
-Fs([)p Ft(',)j(the)d(`)p Fs(<)p Ft(')g(and)f(`)p Fs(>)p
-Ft(')h(op)s(erators)g(sort)g(lexicographically)630 2732
-y(using)30 b(ASCI)s(I)f(ordering.)150 2885 y Fs(times)870
-3017 y(times)630 3148 y Ft(Prin)m(t)37 b(out)h(the)g(user)e(and)h
-(system)g(times)h(used)f(b)m(y)g(the)h(shell)f(and)g(its)h(c)m
-(hildren.)61 b(The)630 3258 y(return)29 b(status)i(is)f(zero.)150
-3411 y Fs(trap)870 3543 y(trap)47 b([-lp])f([)p Fi(arg)11
-b Fs(])46 b([)p Fi(sigspec)56 b Fs(...)o(])630 3674 y
-Ft(The)43 b(commands)f(in)h Fq(arg)51 b Ft(are)44 b(to)g(b)s(e)e(read)h
-(and)g(executed)h(when)e(the)h(shell)g(receiv)m(es)630
-3784 y(signal)36 b Fq(sigsp)s(ec)6 b Ft(.)55 b(If)35
-b Fq(arg)44 b Ft(is)35 b(absen)m(t)h(\(and)f(there)g(is)g(a)h(single)g
-Fq(sigsp)s(ec)6 b Ft(\))35 b(or)h(equal)f(to)i(`)p Fs(-)p
-Ft(',)630 3893 y(eac)m(h)28 b(sp)s(eci\014ed)e(signal's)h(disp)s
-(osition)f(is)h(reset)g(to)g(the)g(v)-5 b(alue)27 b(it)g(had)f(when)f
-(the)i(shell)g(w)m(as)630 4003 y(started.)63 b(If)37
-b Fq(arg)46 b Ft(is)37 b(the)h(n)m(ull)g(string,)h(then)e(the)h(signal)
-h(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)h Fq(sigsp)s(ec)k
-Ft(is)630 4113 y(ignored)36 b(b)m(y)g(the)g(shell)g(and)g(commands)f
-(it)i(in)m(v)m(ok)m(es.)59 b(If)35 b Fq(arg)45 b Ft(is)36
-b(not)g(presen)m(t)g(and)f(`)p Fs(-p)p Ft(')630 4222
-y(has)e(b)s(een)g(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g
-(commands)g(asso)s(ciated)i(with)e(eac)m(h)630 4332 y
-Fq(sigsp)s(ec)6 b Ft(.)40 b(If)28 b(no)g(argumen)m(ts)h(are)g
-(supplied,)f(or)g(only)h(`)p Fs(-p)p Ft(')f(is)g(giv)m(en,)i
-Fs(trap)e Ft(prin)m(ts)g(the)g(list)630 4441 y(of)g(commands)f(asso)s
-(ciated)i(with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f
-(that)h(ma)m(y)h(b)s(e)e(reused)630 4551 y(as)34 b(shell)g(input.)51
-b(The)33 b(`)p Fs(-l)p Ft(')h(option)g(causes)h(the)f(shell)g(to)h
-(prin)m(t)e(a)i(list)f(of)g(signal)h(names)630 4661 y(and)j(their)h
-(corresp)s(onding)f(n)m(um)m(b)s(ers.)65 b(Eac)m(h)39
-b Fq(sigsp)s(ec)45 b Ft(is)39 b(either)g(a)g(signal)h(name)f(or)g(a)630
-4770 y(signal)27 b(n)m(um)m(b)s(er.)39 b(Signal)27 b(names)f(are)h
-(case)h(insensitiv)m(e)g(and)e(the)g Fs(SIG)g Ft(pre\014x)g(is)h
-(optional.)630 4902 y(If)35 b(a)g Fq(sigsp)s(ec)41 b
-Ft(is)35 b Fs(0)g Ft(or)g Fs(EXIT)p Ft(,)g Fq(arg)43
-b Ft(is)35 b(executed)h(when)e(the)h(shell)h(exits.)55
-b(If)35 b(a)g Fq(sigsp)s(ec)41 b Ft(is)630 5011 y Fs(DEBUG)p
-Ft(,)32 b(the)g(command)g Fq(arg)40 b Ft(is)33 b(executed)g(b)s(efore)f
-(ev)m(ery)h(simple)f(command,)h Fs(for)e Ft(com-)630
-5121 y(mand,)d Fs(case)g Ft(command,)h Fs(select)e Ft(command,)i(ev)m
-(ery)h(arithmetic)g Fs(for)d Ft(command,)j(and)630 5230
+5071 y(When)40 b(used)f(with)g Ft(test)g Fu(or)h(`)p
+Ft([)p Fu(',)j(the)d(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p
+Fu(')h(op)s(erators)g(sort)g(lexicographically)630 5181
+y(using)30 b(ASCI)s(I)f(ordering.)150 5340 y Ft(times)p
+eop end
+%%Page: 47 53
+TeXDict begin 47 52 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(47)870 299 y Ft(times)630
+434 y Fu(Prin)m(t)37 b(out)h(the)g(user)e(and)h(system)g(times)h(used)f
+(b)m(y)g(the)h(shell)f(and)g(its)h(c)m(hildren.)61 b(The)630
+543 y(return)29 b(status)i(is)f(zero.)150 704 y Ft(trap)870
+838 y(trap)47 b([-lp])f([)p Fj(arg)p Ft(])g([)p Fj(sigspec)g
+Ft(...)o(])630 973 y Fu(The)d(commands)f(in)h Fr(arg)51
+b Fu(are)44 b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e(the)h(shell)g
+(receiv)m(es)630 1083 y(signal)36 b Fr(sigsp)s(ec)p Fu(.)57
+b(If)35 b Fr(arg)44 b Fu(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f
+(single)i Fr(sigsp)s(ec)6 b Fu(\))35 b(or)h(equal)g(to)h(`)p
+Ft(-)p Fu(',)630 1192 y(eac)m(h)k(sp)s(eci\014ed)e(signal's)h(disp)s
+(osition)g(is)f(reset)i(to)f(the)g(v)-5 b(alue)40 b(it)g(had)f(when)g
+(the)h(shell)630 1302 y(w)m(as)33 b(started.)47 b(If)32
+b Fr(arg)41 b Fu(is)32 b(the)h(n)m(ull)f(string,)i(then)e(the)g(signal)
+i(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)g Fr(sigsp)s(ec)630
+1412 y Fu(is)g(ignored)h(b)m(y)f(the)g(shell)h(and)e(commands)h(it)h
+(in)m(v)m(ok)m(es.)51 b(If)33 b Fr(arg)41 b Fu(is)33
+b(not)h(presen)m(t)f(and)g Ft(-p)630 1521 y Fu(has)g(b)s(een)g
+(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g(commands)g(asso)s
+(ciated)i(with)e(eac)m(h)630 1631 y Fr(sigsp)s(ec)p Fu(.)47
+b(If)31 b(no)i(argumen)m(ts)f(are)h(supplied,)e(or)i(only)f
+Ft(-p)g Fu(is)g(giv)m(en,)i Ft(trap)d Fu(prin)m(ts)h(the)g(list)630
+1740 y(of)c(commands)f(asso)s(ciated)i(with)f(eac)m(h)h(signal)f(n)m
+(um)m(b)s(er)e(in)i(a)g(form)f(that)h(ma)m(y)h(b)s(e)e(reused)630
+1850 y(as)f(shell)h(input.)38 b(The)26 b Ft(-l)f Fu(option)i(causes)f
+(the)g(shell)h(to)g(prin)m(t)e(a)i(list)f(of)h(signal)g(names)f(and)630
+1960 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47
+b(Eac)m(h)34 b Fr(sigsp)s(ec)39 b Fu(is)33 b(either)g(a)h(signal)g
+(name)f(or)g(a)g(signal)630 2069 y(n)m(um)m(b)s(er.)39
+b(Signal)31 b(names)f(are)h(case)h(insensitiv)m(e)f(and)f(the)g
+Ft(SIG)g Fu(pre\014x)f(is)i(optional.)630 2204 y(If)k(a)g
+Fr(sigsp)s(ec)41 b Fu(is)35 b Ft(0)g Fu(or)g Ft(EXIT)p
+Fu(,)g Fr(arg)43 b Fu(is)35 b(executed)h(when)e(the)h(shell)h(exits.)55
+b(If)35 b(a)g Fr(sigsp)s(ec)41 b Fu(is)630 2314 y Ft(DEBUG)p
+Fu(,)32 b(the)g(command)g Fr(arg)40 b Fu(is)33 b(executed)g(b)s(efore)f
+(ev)m(ery)h(simple)f(command,)h Ft(for)e Fu(com-)630
+2423 y(mand,)d Ft(case)g Fu(command,)h Ft(select)e Fu(command,)i(ev)m
+(ery)h(arithmetic)g Ft(for)d Fu(command,)j(and)630 2533
y(b)s(efore)22 b(the)g(\014rst)f(command)h(executes)i(in)e(a)g(shell)h
(function.)37 b(Refer)22 b(to)h(the)g(description)f(of)630
-5340 y(the)i Fs(extdebug)d Ft(option)j(to)h(the)f Fs(shopt)e
-Ft(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)p
-eop end
-%%Page: 43 49
-TeXDict begin 43 48 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(43)630 299 y(page)33
-b(57\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the)g
-Fs(DEBUG)f Ft(trap.)46 b(If)31 b(a)i Fq(sigsp)s(ec)38
-b Ft(is)32 b Fs(RETURN)p Ft(,)f(the)630 408 y(command)h
-Fq(arg)41 b Ft(is)33 b(executed)g(eac)m(h)h(time)f(a)g(shell)g
-(function)g(or)f(a)h(script)g(executed)g(with)630 518
-y(the)e Fs(.)f Ft(or)g Fs(source)f Ft(builtins)g(\014nishes)h
-(executing.)630 651 y(If)g(a)i Fq(sigsp)s(ec)k Ft(is)31
-b Fs(ERR)p Ft(,)f(the)h(command)g Fq(arg)39 b Ft(is)31
-b(executed)g(whenev)m(er)g(a)g(simple)g(command)630 761
-y(has)k(a)h(non-zero)h(exit)f(status,)i(sub)5 b(ject)35
-b(to)h(the)g(follo)m(wing)h(conditions.)57 b(The)35 b
-Fs(ERR)g Ft(trap)630 870 y(is)30 b(not)f(executed)i(if)e(the)h(failed)g
-(command)g(is)f(part)h(of)f(the)h(command)f(list)i(immediately)630
-980 y(follo)m(wing)47 b(an)d Fs(until)g Ft(or)h Fs(while)f
-Ft(k)m(eyw)m(ord,)49 b(part)c(of)g(the)h(test)g(follo)m(wing)g(the)f
-Fs(if)g Ft(or)630 1090 y Fs(elif)d Ft(reserv)m(ed)i(w)m(ords,)j(part)c
-(of)h(a)g(command)f(executed)i(in)e(a)h Fs(&&)f Ft(or)h
-Fs(||)f Ft(list,)k(or)d(if)630 1199 y(the)c(command's)g(return)f
-(status)h(is)g(b)s(eing)f(in)m(v)m(erted)i(using)f Fs(!)p
-Ft(.)68 b(These)40 b(are)g(the)h(same)630 1309 y(conditions)31
-b(ob)s(ey)m(ed)f(b)m(y)h(the)f Fs(errexit)f Ft(option.)630
-1442 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i(to)g(the)f(shell)h
-(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59 b(T)-8
-b(rapp)s(ed)630 1552 y(signals)28 b(that)f(are)h(not)f(b)s(eing)g
-(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5
-b(alues)28 b(in)e(a)i(subshell)630 1661 y(or)i(subshell)g(en)m
-(vironmen)m(t)h(when)e(one)i(is)f(created.)630 1794 y(The)g(return)f
-(status)i(is)f(zero)h(unless)f(a)h Fq(sigsp)s(ec)36 b
-Ft(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31
-b(signal.)150 1951 y Fs(umask)870 2084 y(umask)46 b([-p])h([-S])g([)p
-Fi(mode)11 b Fs(])630 2218 y Ft(Set)29 b(the)h(shell)f(pro)s(cess's)g
-(\014le)g(creation)h(mask)f(to)h Fq(mo)s(de)5 b Ft(.)40
-b(If)28 b Fq(mo)s(de)34 b Ft(b)s(egins)29 b(with)f(a)i(digit,)630
-2327 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
+2642 y(the)i Ft(extdebug)d Fu(option)j(to)h(the)f Ft(shopt)e
+Fu(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630
+2752 y(page)33 b(62\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the)
+g Ft(DEBUG)f Fu(trap.)46 b(If)31 b(a)i Fr(sigsp)s(ec)38
+b Fu(is)32 b Ft(RETURN)p Fu(,)f(the)630 2862 y(command)h
+Fr(arg)41 b Fu(is)33 b(executed)g(eac)m(h)h(time)f(a)g(shell)g
+(function)g(or)f(a)h(script)g(executed)g(with)630 2971
+y(the)e Ft(.)f Fu(or)g Ft(source)f Fu(builtins)g(\014nishes)h
+(executing.)630 3106 y(If)20 b(a)i Fr(sigsp)s(ec)27 b
+Fu(is)21 b Ft(ERR)p Fu(,)h(the)f(command)g Fr(arg)29
+b Fu(is)21 b(executed)h(whenev)m(er)e(a)i(pip)s(eline)e(\(whic)m(h)h
+(ma)m(y)630 3216 y(consist)35 b(of)g(a)f(single)h(simple)g(command\),)h
+(a)e(list,)j(or)d(a)h(comp)s(ound)e(command)h(returns)630
+3325 y(a)41 b(non-zero)g(exit)h(status,)h(sub)5 b(ject)41
+b(to)g(the)g(follo)m(wing)h(conditions.)72 b(The)40 b
+Ft(ERR)f Fu(trap)i(is)630 3435 y(not)c(executed)h(if)f(the)h(failed)f
+(command)g(is)g(part)g(of)h(the)f(command)g(list)h(immediately)630
+3544 y(follo)m(wing)30 b(an)e Ft(until)f Fu(or)i Ft(while)e
+Fu(k)m(eyw)m(ord,)i(part)g(of)f(the)h(test)g(follo)m(wing)h(the)f
+Ft(if)f Fu(or)g Ft(elif)630 3654 y Fu(reserv)m(ed)45
+b(w)m(ords,)j(part)c(of)h(a)g(command)g(executed)g(in)g(a)g
+Ft(&&)f Fu(or)h Ft(||)f Fu(list)h(except)h(the)630 3764
+y(command)28 b(follo)m(wing)j(the)d(\014nal)h Ft(&&)f
+Fu(or)g Ft(||)p Fu(,)h(an)m(y)g(command)f(in)h(a)g(pip)s(eline)f(but)g
+(the)h(last,)630 3873 y(or)d(if)g(the)f(command's)h(return)f(status)h
+(is)g(b)s(eing)f(in)m(v)m(erted)i(using)e Ft(!)p Fu(.)39
+b(These)25 b(are)i(the)f(same)630 3983 y(conditions)31
+b(ob)s(ey)m(ed)f(b)m(y)h(the)f Ft(errexit)f Fu(\()p Ft(-e)p
+Fu(\))h(option.)630 4118 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i
+(to)g(the)f(shell)h(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59
+b(T)-8 b(rapp)s(ed)630 4227 y(signals)28 b(that)f(are)h(not)f(b)s(eing)
+g(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5
+b(alues)28 b(in)e(a)i(subshell)630 4337 y(or)i(subshell)g(en)m
+(vironmen)m(t)h(when)e(one)i(is)f(created.)630 4472 y(The)g(return)f
+(status)i(is)f(zero)h(unless)f(a)h Fr(sigsp)s(ec)36 b
+Fu(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31
+b(signal.)150 4632 y Ft(umask)870 4767 y(umask)46 b([-p])h([-S])g([)p
+Fj(mode)p Ft(])630 4902 y Fu(Set)30 b(the)f(shell)h(pro)s(cess's)f
+(\014le)h(creation)g(mask)g(to)g Fr(mo)s(de)p Fu(.)40
+b(If)29 b Fr(mo)s(de)34 b Fu(b)s(egins)29 b(with)g(a)h(digit,)630
+5011 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
(er;)e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f
-(mo)s(de)630 2437 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f
-(the)g Fs(chmod)e Ft(command.)40 b(If)28 b Fq(mo)s(de)34
-b Ft(is)28 b(omitted,)j(the)630 2546 y(curren)m(t)36
-b(v)-5 b(alue)36 b(of)g(the)h(mask)f(is)g(prin)m(ted.)57
-b(If)35 b(the)h(`)p Fs(-S)p Ft(')g(option)h(is)f(supplied)f(without)h
-(a)630 2656 y Fq(mo)s(de)k Ft(argumen)m(t,)d(the)e(mask)g(is)g(prin)m
-(ted)g(in)g(a)h(sym)m(b)s(olic)f(format.)55 b(If)35 b(the)g(`)p
-Fs(-p)p Ft(')g(option)630 2766 y(is)f(supplied,)f(and)g
-Fq(mo)s(de)38 b Ft(is)33 b(omitted,)j(the)e(output)f(is)g(in)h(a)g
-(form)f(that)h(ma)m(y)g(b)s(e)f(reused)630 2875 y(as)e(input.)41
-b(The)31 b(return)f(status)h(is)g(zero)h(if)e(the)h(mo)s(de)g(is)g
-(successfully)g(c)m(hanged)g(or)g(if)g(no)630 2985 y
-Fq(mo)s(de)k Ft(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i
-(otherwise.)630 3118 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)
-m(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um)
-m(b)s(er)d(of)630 3228 y(the)f(umask)g(is)h(subtracted)f(from)f
-Fs(7)p Ft(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Fs(022)e
-Ft(results)h(in)g(p)s(ermissions)630 3337 y(of)d Fs(755)p
-Ft(.)150 3494 y Fs(unset)870 3627 y(unset)46 b([-fv])h([)p
-Fi(name)11 b Fs(])630 3760 y Ft(Eac)m(h)34 b(v)-5 b(ariable)33
-b(or)g(function)g Fq(name)38 b Ft(is)33 b(remo)m(v)m(ed.)50
-b(If)32 b(no)h(options)h(are)f(supplied,)g(or)g(the)630
-3870 y(`)p Fs(-v)p Ft(')h(option)h(is)g(giv)m(en,)h(eac)m(h)g
-Fq(name)k Ft(refers)34 b(to)h(a)g(shell)f(v)-5 b(ariable.)54
-b(If)34 b(the)h(`)p Fs(-f)p Ft(')f(option)h(is)630 3980
-y(giv)m(en,)27 b(the)d Fq(name)5 b Ft(s)25 b(refer)f(to)h(shell)g
-(functions,)g(and)f(the)g(function)g(de\014nition)g(is)h(remo)m(v)m
-(ed.)630 4089 y(Readonly)32 b(v)-5 b(ariables)33 b(and)f(functions)f
-(ma)m(y)i(not)f(b)s(e)g(unset.)45 b(The)32 b(return)f(status)h(is)g
-(zero)630 4199 y(unless)e(a)g Fq(name)36 b Ft(is)30 b(readonly)-8
-b(.)150 4429 y Fr(4.2)68 b(Bash)45 b(Builtin)g(Commands)150
-4588 y Ft(This)c(section)h(describ)s(es)f(builtin)f(commands)h(whic)m
+(mo)s(de)630 5121 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f
+(the)g Ft(chmod)e Fu(command.)40 b(If)28 b Fr(mo)s(de)34
+b Fu(is)28 b(omitted,)j(the)630 5230 y(curren)m(t)39
+b(v)-5 b(alue)40 b(of)f(the)g(mask)g(is)h(prin)m(ted.)66
+b(If)39 b(the)g Ft(-S)g Fu(option)g(is)h(supplied)d(without)j(a)630
+5340 y Fr(mo)s(de)d Fu(argumen)m(t,)d(the)e(mask)g(is)h(prin)m(ted)f
+(in)g(a)g(sym)m(b)s(olic)h(format.)47 b(If)32 b(the)g
+Ft(-p)g Fu(option)h(is)p eop end
+%%Page: 48 54
+TeXDict begin 48 53 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(48)630 299 y(supplied,)32
+b(and)f Fr(mo)s(de)37 b Fu(is)32 b(omitted,)i(the)f(output)f(is)g(in)g
+(a)g(form)g(that)h(ma)m(y)g(b)s(e)e(reused)h(as)630 408
+y(input.)62 b(The)38 b(return)f(status)h(is)g(zero)g(if)g(the)g(mo)s
+(de)g(is)g(successfully)g(c)m(hanged)g(or)g(if)g(no)630
+518 y Fr(mo)s(de)d Fu(argumen)m(t)c(is)f(supplied,)g(and)f(non-zero)i
+(otherwise.)630 660 y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)m
+(terpreted)h(as)f(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um)m
+(b)s(er)d(of)630 770 y(the)f(umask)g(is)h(subtracted)f(from)f
+Ft(7)p Fu(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Ft(022)e
+Fu(results)h(in)g(p)s(ermissions)630 879 y(of)d Ft(755)p
+Fu(.)150 1054 y Ft(unset)870 1196 y(unset)46 b([-fnv])g([)p
+Fj(name)p Ft(])630 1338 y Fu(Remo)m(v)m(e)36 b(eac)m(h)f(v)-5
+b(ariable)35 b(or)f(function)f Fr(name)p Fu(.)52 b(If)33
+b(the)i Ft(-v)e Fu(option)h(is)g(giv)m(en,)j(eac)m(h)e
+Fr(name)630 1448 y Fu(refers)24 b(to)h(a)g(shell)f(v)-5
+b(ariable)25 b(and)f(that)h(v)-5 b(ariable)25 b(is)f(rem)m(v)m(o)m(v)m
+(ed.)41 b(If)23 b(the)i Ft(-f)f Fu(option)g(is)h(giv)m(en,)630
+1557 y(the)37 b Fr(name)5 b Fu(s)37 b(refer)f(to)i(shell)f(functions,)h
+(and)e(the)h(function)g(de\014nition)f(is)h(remo)m(v)m(ed.)61
+b(If)630 1667 y(the)34 b Ft(-n)e Fu(option)i(is)g(supplied,)f(and)g
+Fr(name)38 b Fu(is)c(a)f(v)-5 b(ariable)34 b(with)g(the)f
+Fr(nameref)51 b Fu(attribute,)630 1776 y Fr(name)42 b
+Fu(will)37 b(b)s(e)f(unset)g(rather)g(than)h(the)g(v)-5
+b(ariable)37 b(it)g(references.)60 b Ft(-n)36 b Fu(has)g(no)h(e\013ect)
+h(if)630 1886 y(the)h Ft(-f)g Fu(option)g(is)h(supplied.)65
+b(If)39 b(no)g(options)h(are)f(supplied,)h(eac)m(h)h
+Fr(name)j Fu(refers)39 b(to)h(a)630 1995 y(v)-5 b(ariable;)37
+b(if)d(there)g(is)g(no)g(v)-5 b(ariable)34 b(b)m(y)g(that)h(name,)g(an)
+m(y)f(function)g(with)f(that)i(name)f(is)630 2105 y(unset.)46
+b(Readonly)33 b(v)-5 b(ariables)33 b(and)e(functions)h(ma)m(y)h(not)g
+(b)s(e)e(unset.)47 b(The)31 b(return)h(status)630 2215
+y(is)e(zero)i(unless)d(a)i Fr(name)36 b Fu(is)30 b(readonly)-8
+b(.)150 2470 y Fs(4.2)68 b(Bash)45 b(Builtin)g(Commands)150
+2629 y Fu(This)c(section)h(describ)s(es)f(builtin)f(commands)h(whic)m
(h)g(are)h(unique)e(to)j(or)e(ha)m(v)m(e)h(b)s(een)f(extended)g(in)150
-4698 y(Bash.)g(Some)30 b(of)h(these)g(commands)f(are)g(sp)s(eci\014ed)g
-(in)g(the)h Fl(posix)e Ft(standard.)150 4854 y Fs(alias)870
-4988 y(alias)46 b([-p])h([)p Fi(name)11 b Fs([=)p Fi(value)g
-Fs(])43 b(...)o(])630 5121 y Ft(Without)h(argumen)m(ts)f(or)g(with)g
-(the)h(`)p Fs(-p)p Ft(')f(option,)k Fs(alias)41 b Ft(prin)m(ts)i(the)g
-(list)h(of)f(aliases)630 5230 y(on)36 b(the)g(standard)f(output)h(in)f
-(a)i(form)e(that)i(allo)m(ws)g(them)f(to)g(b)s(e)g(reused)f(as)h
-(input.)56 b(If)630 5340 y(argumen)m(ts)29 b(are)g(supplied,)f(an)h
-(alias)h(is)f(de\014ned)e(for)i(eac)m(h)h Fq(name)k Ft(whose)28
-b Fq(v)-5 b(alue)35 b Ft(is)29 b(giv)m(en.)p eop end
-%%Page: 44 50
-TeXDict begin 44 49 bop 150 -116 a Ft(44)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(If)39 b(no)h Fq(v)-5
-b(alue)45 b Ft(is)40 b(giv)m(en,)j(the)d(name)f(and)g(v)-5
-b(alue)40 b(of)g(the)g(alias)h(is)f(prin)m(ted.)68 b(Aliases)41
-b(are)630 408 y(describ)s(ed)29 b(in)h(Section)i(6.6)f([Aliases],)h
-(page)f(81.)150 575 y Fs(bind)870 713 y(bind)47 b([-m)g
-Fi(keymap)11 b Fs(])45 b([-lpsvPSV])870 822 y(bind)i([-m)g
-Fi(keymap)11 b Fs(])45 b([-q)i Fi(function)11 b Fs(])45
-b([-u)h Fi(function)11 b Fs(])45 b([-r)i Fi(keyseq)11
-b Fs(])870 932 y(bind)47 b([-m)g Fi(keymap)11 b Fs(])45
-b(-f)i Fi(filename)870 1042 y Fs(bind)g([-m)g Fi(keymap)11
-b Fs(])45 b(-x)i Fi(keyseq:shell-command)870 1151 y Fs(bind)g([-m)g
-Fi(keymap)11 b Fs(])45 b Fi(keyseq:function-name)870
-1261 y Fs(bind)i Fi(readline-command)630 1399 y Ft(Displa)m(y)26
-b(curren)m(t)f(Readline)h(\(see)g(Chapter)f(8)g([Command)g(Line)g
-(Editing],)i(page)f(95\))g(k)m(ey)630 1508 y(and)36 b(function)g
-(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f(Readline)g
-(function)f(or)h(macro,)630 1618 y(or)44 b(set)h(a)g(Readline)f(v)-5
-b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)f(is)g(a)h
-(command)f(as)g(it)630 1728 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)
-g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)
-630 1837 y(File],)g(page)c(98\),)k(but)38 b(eac)m(h)i(binding)e(or)h
-(command)g(m)m(ust)g(b)s(e)f(passed)g(as)i(a)f(separate)630
-1947 y(argumen)m(t;)31 b(e.g.,)h(`)p Fs("\\C-x\\C-r":re-read-init-f)o
-(ile)p Ft('.)630 2085 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g
-(follo)m(wing)h(meanings:)630 2251 y Fs(-m)e Fi(keymap)1110
-2361 y Ft(Use)54 b Fq(k)m(eymap)j Ft(as)d(the)g(k)m(eymap)g(to)h(b)s(e)
-e(a\013ected)i(b)m(y)f(the)g(subsequen)m(t)1110 2470
-y(bindings.)46 b(Acceptable)34 b Fq(k)m(eymap)i Ft(names)c(are)h
-Fs(emacs)p Ft(,)f Fs(emacs-standard)p Ft(,)1110 2580
-y Fs(emacs-meta)p Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p
-Ft(,)j Fs(vi-move)p Ft(,)f Fs(vi-command)p Ft(,)f(and)1110
-2690 y Fs(vi-insert)p Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5
-b(alen)m(t)41 b(to)e Fs(vi-command)p Ft(;)i Fs(emacs)c
-Ft(is)i(equiv)-5 b(alen)m(t)1110 2799 y(to)31 b Fs(emacs-standard)p
-Ft(.)630 2966 y Fs(-l)384 b Ft(List)31 b(the)f(names)g(of)h(all)g
-(Readline)g(functions.)630 3132 y Fs(-p)384 b Ft(Displa)m(y)34
+2739 y(Bash.)g(Some)30 b(of)h(these)g(commands)f(are)g(sp)s(eci\014ed)g
+(in)g(the)h Fm(posix)e Fu(standard.)150 2921 y Ft(alias)870
+3063 y(alias)46 b([-p])h([)p Fj(name)p Ft([=)p Fj(value)p
+Ft(])d(...)o(])630 3205 y Fu(Without)26 b(argumen)m(ts)f(or)g(with)f
+(the)h Ft(-p)g Fu(option,)h Ft(alias)e Fu(prin)m(ts)g(the)h(list)h(of)f
+(aliases)h(on)f(the)630 3315 y(standard)g(output)g(in)g(a)h(form)f
+(that)h(allo)m(ws)h(them)e(to)h(b)s(e)f(reused)g(as)g(input.)39
+b(If)25 b(argumen)m(ts)630 3424 y(are)j(supplied,)e(an)i(alias)g(is)f
+(de\014ned)f(for)h(eac)m(h)h Fr(name)33 b Fu(whose)27
+b Fr(v)-5 b(alue)33 b Fu(is)27 b(giv)m(en.)41 b(If)26
+b(no)h Fr(v)-5 b(alue)630 3534 y Fu(is)37 b(giv)m(en,)j(the)d(name)g
+(and)g(v)-5 b(alue)37 b(of)h(the)f(alias)h(is)f(prin)m(ted.)61
+b(Aliases)38 b(are)f(describ)s(ed)f(in)630 3643 y(Section)31
+b(6.6)h([Aliases],)g(page)f(88.)150 3818 y Ft(bind)870
+3960 y(bind)47 b([-m)g Fj(keymap)p Ft(])e([-lpsvPSVX])870
+4070 y(bind)i([-m)g Fj(keymap)p Ft(])e([-q)i Fj(function)p
+Ft(])f([-u)g Fj(function)p Ft(])g([-r)h Fj(keyseq)p Ft(])870
+4179 y(bind)g([-m)g Fj(keymap)p Ft(])e(-f)j Fj(filename)870
+4289 y Ft(bind)f([-m)g Fj(keymap)p Ft(])e(-x)j Fj(keyseq:shell-command)
+870 4398 y Ft(bind)f([-m)g Fj(keymap)p Ft(])e Fj(keyseq:function-name)
+870 4508 y Ft(bind)i Fj(readline-command)630 4650 y Fu(Displa)m(y)22
+b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g([Command)f(Line)h
+(Editing],)j(page)e(101\))g(k)m(ey)630 4760 y(and)36
+b(function)g(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g(to)h(a)f
+(Readline)g(function)f(or)h(macro,)630 4869 y(or)44 b(set)h(a)g
+(Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45 b(non-option)g(argumen)m(t)
+f(is)g(a)h(command)f(as)g(it)630 4979 y(w)m(ould)e(app)s(ear)f(in)h(a)h
+(Readline)g(initialization)i(\014le)d(\(see)h(Section)g(8.3)g
+([Readline)g(Init)630 5088 y(File],)c(page)d(104\),)j(but)c(eac)m(h)h
+(binding)f(or)g(command)h(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate)
+630 5198 y(argumen)m(t;)31 b(e.g.,)h(`)p Ft
+("\\C-x\\C-r":re-read-init-f)o(ile)p Fu('.)630 5340 y(Options,)e(if)h
+(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)p
+eop end
+%%Page: 49 55
+TeXDict begin 49 54 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(49)630 299 y Ft(-m)30
+b Fj(keymap)66 b Fu(Use)54 b Fr(k)m(eymap)j Fu(as)d(the)g(k)m(eymap)g
+(to)h(b)s(e)e(a\013ected)i(b)m(y)f(the)g(subsequen)m(t)1110
+408 y(bindings.)46 b(Acceptable)34 b Fr(k)m(eymap)i Fu(names)c(are)h
+Ft(emacs)p Fu(,)f Ft(emacs-standard)p Fu(,)1110 518 y
+Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p Fu(,)f Ft(vi)p
+Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)f(and)1110
+628 y Ft(vi-insert)p Fu(.)64 b Ft(vi)38 b Fu(is)h(equiv)-5
+b(alen)m(t)41 b(to)e Ft(vi-command)p Fu(;)i Ft(emacs)c
+Fu(is)i(equiv)-5 b(alen)m(t)1110 737 y(to)31 b Ft(emacs-standard)p
+Fu(.)630 888 y Ft(-l)384 b Fu(List)31 b(the)f(names)g(of)h(all)g
+(Readline)g(functions.)630 1039 y Ft(-p)384 b Fu(Displa)m(y)34
b(Readline)f(function)g(names)g(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m
-(a)m(y)f(that)1110 3242 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
-(in)g(a)h(Readline)g(initialization)i(\014le.)630 3408
-y Fs(-P)384 b Ft(List)31 b(curren)m(t)f(Readline)h(function)f(names)g
-(and)g(bindings.)630 3574 y Fs(-v)384 b Ft(Displa)m(y)25
+(a)m(y)f(that)1110 1148 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
+(in)g(a)h(Readline)g(initialization)i(\014le.)630 1299
+y Ft(-P)384 b Fu(List)31 b(curren)m(t)f(Readline)h(function)f(names)g
+(and)g(bindings.)630 1450 y Ft(-v)384 b Fu(Displa)m(y)25
b(Readline)f(v)-5 b(ariable)25 b(names)f(and)f(v)-5 b(alues)24
-b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 3684
+b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 1559
y(can)31 b(b)s(e)e(used)h(as)h(input)e(or)h(in)g(a)h(Readline)g
-(initialization)j(\014le.)630 3850 y Fs(-V)384 b Ft(List)31
+(initialization)j(\014le.)630 1710 y Ft(-V)384 b Fu(List)31
b(curren)m(t)f(Readline)h(v)-5 b(ariable)31 b(names)f(and)g(v)-5
-b(alues.)630 4017 y Fs(-s)384 b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g
+b(alues.)630 1861 y Ft(-s)384 b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g
(sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110
-4126 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
-(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 4236
-y(Readline)d(initialization)i(\014le.)630 4402 y Fs(-S)384
-b Ft(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i
-(macros)g(and)f(the)g(strings)1110 4512 y(they)31 b(output.)630
-4678 y Fs(-f)f Fi(filename)1110 4788 y Ft(Read)h(k)m(ey)g(bindings)e
-(from)h Fq(\014lename)5 b Ft(.)630 4954 y Fs(-q)30 b
-Fi(function)1110 5064 y Ft(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m
-(v)m(ok)m(e)h(the)f(named)f Fq(function)p Ft(.)630 5230
-y Fs(-u)g Fi(function)1110 5340 y Ft(Un)m(bind)f(all)i(k)m(eys)g(b)s
-(ound)e(to)i(the)f(named)g Fq(function)p Ft(.)p eop end
-%%Page: 45 51
-TeXDict begin 45 50 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(45)630 299 y Fs(-r)30
-b Fi(keyseq)1110 408 y Ft(Remo)m(v)m(e)i(an)m(y)f(curren)m(t)f(binding)
-f(for)h Fq(k)m(eyseq)r Ft(.)630 564 y Fs(-x)g Fi(keyseq:shell-command)
-1110 674 y Ft(Cause)35 b Fq(shell-command)k Ft(to)d(b)s(e)f(executed)h
-(whenev)m(er)f Fq(k)m(eyseq)j Ft(is)d(en)m(tered.)1110
-783 y(When)46 b Fq(shell-command)k Ft(is)c(executed,)51
-b(the)46 b(shell)g(sets)g(the)g Fs(READLINE_)1110 893
-y(LINE)37 b Ft(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
-(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 1003
-y Fs(READLINE_POINT)e Ft(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h
-(lo)s(cation)h(of)f(the)g(insertion)1110 1112 y(p)s(oin)m(t.)59
+1970 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
+(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 2080
+y(Readline)d(initialization)i(\014le.)630 2230 y Ft(-S)384
+b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i
+(macros)g(and)f(the)g(strings)1110 2340 y(they)31 b(output.)630
+2491 y Ft(-f)f Fj(filename)1110 2600 y Fu(Read)h(k)m(ey)g(bindings)e
+(from)h Fr(\014lename)p Fu(.)630 2751 y Ft(-q)g Fj(function)1110
+2861 y Fu(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
+(the)f(named)f Fr(function)p Fu(.)630 3011 y Ft(-u)g
+Fj(function)1110 3121 y Fu(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
+(the)f(named)g Fr(function)p Fu(.)630 3271 y Ft(-r)g
+Fj(keyseq)66 b Fu(Remo)m(v)m(e)32 b(an)m(y)f(curren)m(t)f(binding)f
+(for)h Fr(k)m(eyseq)p Fu(.)630 3422 y Ft(-x)g Fj(keyseq:shell-command)
+1110 3532 y Fu(Cause)35 b Fr(shell-command)k Fu(to)d(b)s(e)f(executed)h
+(whenev)m(er)f Fr(k)m(eyseq)j Fu(is)d(en)m(tered.)1110
+3641 y(When)46 b Fr(shell-command)k Fu(is)c(executed,)51
+b(the)46 b(shell)g(sets)g(the)g Ft(READLINE_)1110 3751
+y(LINE)37 b Fu(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
+(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 3861
+y Ft(READLINE_POINT)e Fu(v)-5 b(ariable)39 b(to)h(the)e(curren)m(t)h
+(lo)s(cation)h(of)f(the)g(insertion)1110 3970 y(p)s(oin)m(t.)59
b(If)37 b(the)f(executed)i(command)e(c)m(hanges)i(the)f(v)-5
-b(alue)37 b(of)f Fs(READLINE_)1110 1222 y(LINE)29 b Ft(or)h
-Fs(READLINE_POINT)p Ft(,)c(those)31 b(new)e(v)-5 b(alues)31
-b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 1331 y(editing)h(state.)
-630 1487 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)
--5 b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)
-150 1643 y Fs(builtin)870 1775 y(builtin)46 b([)p Fi(shell-builtin)54
-b Fs([)p Fi(args)11 b Fs(]])630 1908 y Ft(Run)35 b(a)h(shell)h
-(builtin,)g(passing)f(it)g Fq(args)t Ft(,)i(and)e(return)f(its)h(exit)h
-(status.)58 b(This)36 b(is)g(useful)630 2018 y(when)29
-b(de\014ning)h(a)g(shell)h(function)f(with)g(the)g(same)h(name)f(as)h
-(a)g(shell)f(builtin,)g(retaining)630 2127 y(the)k(functionalit)m(y)h
-(of)f(the)f(builtin)g(within)g(the)h(function.)50 b(The)33
-b(return)g(status)h(is)f(non-)630 2237 y(zero)e(if)g
-Fq(shell-builtin)f Ft(is)g(not)h(a)g(shell)f(builtin)g(command.)150
-2393 y Fs(caller)870 2525 y(caller)46 b([)p Fi(expr)11
-b Fs(])630 2658 y Ft(Returns)34 b(the)g(con)m(text)j(of)e(an)m(y)g
-(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h(a)g
-(script)630 2768 y(executed)c(with)f(the)h Fs(.)f Ft(or)g
-Fs(source)f Ft(builtins\).)630 2900 y(Without)45 b Fq(expr)7
-b Ft(,)46 b Fs(caller)d Ft(displa)m(ys)h(the)g(line)g(n)m(um)m(b)s(er)f
-(and)g(source)h(\014lename)h(of)f(the)630 3010 y(curren)m(t)35
-b(subroutine)f(call.)56 b(If)35 b(a)h(non-negativ)m(e)h(in)m(teger)g
-(is)e(supplied)f(as)h Fq(expr)7 b Ft(,)36 b Fs(caller)630
-3119 y Ft(displa)m(ys)41 b(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
+b(alue)37 b(of)f Ft(READLINE_)1110 4080 y(LINE)29 b Fu(or)h
+Ft(READLINE_POINT)p Fu(,)c(those)31 b(new)e(v)-5 b(alues)31
+b(will)f(b)s(e)f(re\015ected)i(in)f(the)1110 4189 y(editing)h(state.)
+630 4340 y Ft(-X)384 b Fu(List)27 b(all)i(k)m(ey)f(sequences)f(b)s
+(ound)e(to)j(shell)g(commands)e(and)h(the)g(asso)s(ciated)1110
+4450 y(commands)j(in)g(a)h(format)g(that)f(can)h(b)s(e)f(reused)f(as)i
+(input.)630 4600 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i
+(in)m(v)-5 b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s
+(ccurs.)150 4751 y Ft(builtin)870 4881 y(builtin)46 b([)p
+Fj(shell-builtin)e Ft([)p Fj(args)p Ft(]])630 5011 y
+Fu(Run)35 b(a)i(shell)f(builtin,)i(passing)e(it)h Fr(args)p
+Fu(,)h(and)e(return)f(its)i(exit)g(status.)59 b(This)35
+b(is)i(useful)630 5121 y(when)29 b(de\014ning)h(a)g(shell)h(function)f
+(with)g(the)g(same)h(name)f(as)h(a)g(shell)f(builtin,)g(retaining)630
+5230 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g(within)g(the)h
+(function.)50 b(The)33 b(return)g(status)h(is)f(non-)630
+5340 y(zero)e(if)g Fr(shell-builtin)f Fu(is)g(not)h(a)g(shell)f
+(builtin)g(command.)p eop end
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(50)150 299 y Ft(caller)870
+443 y(caller)46 b([)p Fj(expr)p Ft(])630 587 y Fu(Returns)34
+b(the)g(con)m(text)j(of)e(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)
+f(shell)g(function)f(or)h(a)g(script)630 696 y(executed)c(with)f(the)h
+Ft(.)f Fu(or)g Ft(source)f Fu(builtins\).)630 840 y(Without)45
+b Fr(expr)p Fu(,)j Ft(caller)43 b Fu(displa)m(ys)i(the)f(line)h(n)m(um)
+m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 950
+y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i
+(in)m(teger)f(is)f(supplied)e(as)i Fr(expr)p Fu(,)h Ft(caller)630
+1059 y Fu(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
(name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630
-3229 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
+1169 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
(stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630
-3339 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
+1278 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
(k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630
-3471 y(The)e(return)f(v)-5 b(alue)29 b(is)h(0)f(unless)g(the)g(shell)g
-(is)h(not)f(executing)h(a)g(subroutine)e(call)i(or)g
-Fq(expr)630 3581 y Ft(do)s(es)g(not)h(corresp)s(ond)e(to)i(a)g(v)-5
+1422 y(The)d(return)g(v)-5 b(alue)29 b(is)g(0)g(unless)f(the)h(shell)g
+(is)g(not)g(executing)h(a)f(subroutine)e(call)j(or)f
+Fr(expr)630 1532 y Fu(do)s(es)h(not)h(corresp)s(ond)e(to)i(a)g(v)-5
b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150
-3737 y Fs(command)870 3869 y(command)46 b([-pVv])g Fi(command)56
-b Fs([)p Fi(arguments)g Fs(...)o(])630 4002 y Ft(Runs)31
-b Fq(command)36 b Ft(with)d Fq(argumen)m(ts)j Ft(ignoring)d(an)m(y)g
-(shell)g(function)f(named)g Fq(command)t Ft(.)630 4111
+1710 y Ft(command)870 1854 y(command)46 b([-pVv])g Fj(command)g
+Ft([)p Fj(arguments)f Ft(...)o(])630 1998 y Fu(Runs)32
+b Fr(command)k Fu(with)d Fr(argumen)m(ts)k Fu(ignoring)c(an)m(y)g
+(shell)h(function)e(named)h Fr(command)p Fu(.)630 2107
y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y)
-h(searc)m(hing)h(the)f Fs(PATH)f Ft(are)630 4221 y(executed.)g(If)23
-b(there)h(is)f(a)h(shell)f(function)g(named)g Fs(ls)p
-Ft(,)i(running)c(`)p Fs(command)29 b(ls)p Ft(')23 b(within)g(the)630
-4331 y(function)33 b(will)g(execute)i(the)f(external)g(command)f
-Fs(ls)f Ft(instead)i(of)f(calling)i(the)e(function)630
-4440 y(recursiv)m(ely)-8 b(.)84 b(The)44 b(`)p Fs(-p)p
-Ft(')h(option)g(means)f(to)h(use)g(a)f(default)h(v)-5
-b(alue)45 b(for)f Fs(PATH)g Ft(that)h(is)630 4550 y(guaran)m(teed)35
-b(to)f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
-b(The)33 b(return)g(status)h(in)f(this)h(case)630 4659
-y(is)29 b(127)g(if)g Fq(command)j Ft(cannot)d(b)s(e)e(found)h(or)g(an)g
+h(searc)m(hing)h(the)f Ft(PATH)f Fu(are)630 2217 y(executed.)59
+b(If)36 b(there)h(is)f(a)h(shell)f(function)g(named)g
+Ft(ls)p Fu(,)h(running)e(`)p Ft(command)29 b(ls)p Fu(')35
+b(within)630 2326 y(the)c(function)f(will)h(execute)g(the)g(external)g
+(command)g Ft(ls)f Fu(instead)g(of)h(calling)h(the)f(func-)630
+2436 y(tion)36 b(recursiv)m(ely)-8 b(.)56 b(The)34 b
+Ft(-p)h Fu(option)g(means)g(to)h(use)f(a)g(default)h(v)-5
+b(alue)35 b(for)g Ft(PATH)f Fu(that)i(is)630 2545 y(guaran)m(teed)f(to)
+f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
+b(The)33 b(return)g(status)h(in)f(this)h(case)630 2655
+y(is)29 b(127)g(if)g Fr(command)j Fu(cannot)d(b)s(e)e(found)h(or)g(an)g
(error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630
-4769 y Fq(command)34 b Ft(otherwise.)630 4902 y(If)25
-b(either)g(the)h(`)p Fs(-V)p Ft(')f(or)g(`)p Fs(-v)p
-Ft(')g(option)g(is)g(supplied,)h(a)f(description)g(of)h
-Fq(command)i Ft(is)d(prin)m(ted.)630 5011 y(The)i(`)p
-Fs(-v)p Ft(')h(option)h(causes)f(a)h(single)f(w)m(ord)g(indicating)h
-(the)f(command)g(or)g(\014le)g(name)g(used)630 5121 y(to)36
-b(in)m(v)m(ok)m(e)g Fq(command)j Ft(to)c(b)s(e)g(displa)m(y)m(ed;)j
-(the)d(`)p Fs(-V)p Ft(')g(option)g(pro)s(duces)e(a)j(more)f(v)m(erb)s
-(ose)630 5230 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
-(status)h(is)g(zero)h(if)f Fq(command)k Ft(is)c(found,)h(and)630
-5340 y(non-zero)31 b(if)f(not.)p eop end
-%%Page: 46 52
-TeXDict begin 46 51 bop 150 -116 a Ft(46)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(declare)870 439
-y(declare)46 b([-aAfFilrtux])e([-p])j([)p Fi(name)11
-b Fs([=)p Fi(value)g Fs(])43 b(...)o(])630 579 y Ft(Declare)29
+2765 y Fr(command)34 b Fu(otherwise.)630 2908 y(If)e(either)h(the)f
+Ft(-V)g Fu(or)g Ft(-v)g Fu(option)h(is)f(supplied,)g(a)h(description)f
+(of)h Fr(command)j Fu(is)c(prin)m(ted.)630 3018 y(The)f
+Ft(-v)h Fu(option)g(causes)g(a)g(single)h(w)m(ord)f(indicating)g(the)g
+(command)g(or)g(\014le)g(name)g(used)630 3128 y(to)40
+b(in)m(v)m(ok)m(e)h Fr(command)h Fu(to)e(b)s(e)e(displa)m(y)m(ed;)44
+b(the)39 b Ft(-V)f Fu(option)i(pro)s(duces)d(a)j(more)f(v)m(erb)s(ose)
+630 3237 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
+(status)h(is)g(zero)h(if)f Fr(command)k Fu(is)c(found,)h(and)630
+3347 y(non-zero)31 b(if)f(not.)150 3525 y Ft(declare)870
+3669 y(declare)46 b([-aAfFgilnrtux])d([-p])k([)p Fj(name)p
+Ft([=)p Fj(value)p Ft(])d(...)o(])630 3813 y Fu(Declare)29
b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40
-b(If)27 b(no)g Fq(name)5 b Ft(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
-(y)630 689 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
-b(instead.)630 829 y(The)c(`)p Fs(-p)p Ft(')h(option)g(will)g(displa)m
-(y)g(the)g(attributes)g(and)g(v)-5 b(alues)28 b(of)g(eac)m(h)h
-Fq(name)5 b Ft(.)40 b(When)27 b(`)p Fs(-p)p Ft(')630
-939 y(is)j(used)g(with)g Fq(name)36 b Ft(argumen)m(ts,)31
-b(additional)g(options)f(are)h(ignored.)630 1079 y(When)36
-b(`)p Fs(-p)p Ft(')f(is)h(supplied)f(without)h Fq(name)41
-b Ft(argumen)m(ts,)d Fs(declare)c Ft(will)i(displa)m(y)g(the)g(at-)630
-1189 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
+b(If)27 b(no)g Fr(name)5 b Fu(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
+(y)630 3922 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
+b(instead.)630 4066 y(The)k Ft(-p)f Fu(option)i(will)g(displa)m(y)f
+(the)h(attributes)g(and)e(v)-5 b(alues)36 b(of)f(eac)m(h)i
+Fr(name)p Fu(.)55 b(When)36 b Ft(-p)630 4176 y Fu(is)i(used)g(with)g
+Fr(name)43 b Fu(argumen)m(ts,)e(additional)e(options,)i(other)d(than)g
+Ft(-f)g Fu(and)g Ft(-F)p Fu(,)i(are)630 4285 y(ignored.)630
+4429 y(When)g Ft(-p)g Fu(is)g(supplied)f(without)i Fr(name)k
+Fu(argumen)m(ts,)f Ft(declare)38 b Fu(will)j(displa)m(y)f(the)h(at-)630
+4539 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h
-(the)g(addi-)630 1298 y(tional)h(options.)41 b(If)30
-b(no)g(other)h(options)g(are)g(supplied)e(with)h(`)p
-Fs(-p)p Ft(',)g Fs(declare)f Ft(will)i(displa)m(y)630
-1408 y(the)f(attributes)g(and)e(v)-5 b(alues)30 b(of)g(all)g(shell)g(v)
--5 b(ariables.)41 b(The)29 b(`)p Fs(-f)p Ft(')g(option)h(will)g
-(restrict)g(the)630 1518 y(displa)m(y)h(to)g(shell)f(functions.)630
-1658 y(The)36 b(`)p Fs(-F)p Ft(')h(option)g(inhibits)f(the)h(displa)m
-(y)g(of)g(function)g(de\014nitions;)i(only)e(the)g(function)630
-1767 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40
-b(If)30 b(the)g Fs(extdebug)e Ft(shell)i(option)g(is)g(enabled)g(using)
-630 1877 y Fs(shopt)24 b Ft(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
-(Builtin],)k(page)e(57\),)i(the)d(source)h(\014le)f(name)h(and)630
-1987 y(line)38 b(n)m(um)m(b)s(er)e(where)i(the)g(function)f(is)h
-(de\014ned)e(are)i(displa)m(y)m(ed)h(as)e(w)m(ell.)64
-b(`)p Fs(-F)p Ft(')38 b(implies)630 2096 y(`)p Fs(-f)p
-Ft('.)630 2236 y(The)32 b(`)p Fs(-g)p Ft(')h(option)g(forces)g(v)-5
-b(ariables)33 b(to)h(b)s(e)e(created)h(or)g(mo)s(di\014ed)e(at)j(the)f
-(global)h(scop)s(e,)630 2346 y(ev)m(en)39 b(when)f Fs(\\)p
-Ft(fBdeclare)p Fs(\\)p Ft(fP)h(is)g(executed)h(in)e(a)h(shell)g
-(function.)66 b(It)39 b(is)g(ignored)g(in)f(all)630 2456
-y(other)31 b(cases.)630 2596 y(The)c(follo)m(wing)h(options)g(can)f(b)s
-(e)g(used)f(to)i(restrict)g(output)e(to)i(v)-5 b(ariables)28
-b(with)f(the)g(sp)s(ec-)630 2705 y(i\014ed)j(attributes)h(or)f(to)h
-(giv)m(e)h(v)-5 b(ariables)31 b(attributes:)630 2876
-y Fs(-a)384 b Ft(Eac)m(h)36 b Fq(name)k Ft(is)34 b(an)h(indexed)g(arra)
-m(y)g(v)-5 b(ariable)36 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)1110
-2986 y(page)31 b(82\).)630 3157 y Fs(-A)384 b Ft(Eac)m(h)24
-b Fq(name)k Ft(is)23 b(an)g(asso)s(ciativ)m(e)j(arra)m(y)e(v)-5
+(the)g(addi-)630 4648 y(tional)k(options.)52 b(If)34
+b(no)g(other)g(options)g(are)g(supplied)f(with)h Ft(-p)p
+Fu(,)g Ft(declare)e Fu(will)j(displa)m(y)630 4758 y(the)e(attributes)h
+(and)e(v)-5 b(alues)33 b(of)g(all)h(shell)f(v)-5 b(ariables.)50
+b(The)32 b Ft(-f)g Fu(option)i(will)f(restrict)h(the)630
+4867 y(displa)m(y)d(to)g(shell)f(functions.)630 5011
+y(The)41 b Ft(-F)f Fu(option)i(inhibits)e(the)i(displa)m(y)f(of)g
+(function)g(de\014nitions;)47 b(only)41 b(the)g(function)630
+5121 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40
+b(If)30 b(the)g Ft(extdebug)e Fu(shell)i(option)g(is)g(enabled)g(using)
+630 5230 y Ft(shopt)24 b Fu(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
+(Builtin],)k(page)e(62\),)i(the)d(source)h(\014le)f(name)h(and)630
+5340 y(line)31 b(n)m(um)m(b)s(er)e(where)h(the)g(function)g(is)h
+(de\014ned)e(are)i(displa)m(y)m(ed)g(as)f(w)m(ell.)42
+b Ft(-F)30 b Fu(implies)g Ft(-f)p Fu(.)p eop end
+%%Page: 51 57
+TeXDict begin 51 56 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(51)630 299 y(The)36
+b Ft(-g)g Fu(option)h(forces)g(v)-5 b(ariables)37 b(to)g(b)s(e)f
+(created)i(or)e(mo)s(di\014ed)g(at)h(the)g(global)h(scop)s(e,)630
+408 y(ev)m(en)g(when)e Ft(declare)f Fu(is)j(executed)g(in)f(a)g(shell)h
+(function.)61 b(It)37 b(is)g(ignored)h(in)f(all)h(other)630
+518 y(cases.)630 654 y(The)27 b(follo)m(wing)h(options)g(can)f(b)s(e)g
+(used)f(to)i(restrict)g(output)e(to)i(v)-5 b(ariables)28
+b(with)f(the)g(sp)s(ec-)630 764 y(i\014ed)j(attributes)h(or)f(to)h(giv)
+m(e)h(v)-5 b(ariables)31 b(attributes:)630 926 y Ft(-a)384
+b Fu(Eac)m(h)36 b Fr(name)k Fu(is)34 b(an)h(indexed)g(arra)m(y)g(v)-5
+b(ariable)36 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)1110
+1035 y(page)31 b(89\).)630 1198 y Ft(-A)384 b Fu(Eac)m(h)24
+b Fr(name)k Fu(is)23 b(an)g(asso)s(ciativ)m(e)j(arra)m(y)e(v)-5
b(ariable)24 b(\(see)g(Section)g(6.7)g([Arra)m(ys],)1110
-3267 y(page)31 b(82\).)630 3438 y Fs(-f)384 b Ft(Use)31
-b(function)f(names)g(only)-8 b(.)630 3608 y Fs(-i)384
-b Ft(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f(treated)h(as)g(an)f
+1307 y(page)31 b(89\).)630 1469 y Ft(-f)384 b Fu(Use)31
+b(function)f(names)g(only)-8 b(.)630 1631 y Ft(-i)384
+b Fu(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f(treated)h(as)g(an)f
(in)m(teger;)41 b(arithmetic)c(ev)-5 b(aluation)1110
-3718 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(80\))h
-(is)f(p)s(erformed)e(when)h(the)1110 3828 y(v)-5 b(ariable)31
-b(is)g(assigned)f(a)h(v)-5 b(alue.)630 3999 y Fs(-l)384
-b Ft(When)26 b(the)g(v)-5 b(ariable)27 b(is)f(assigned)g(a)g(v)-5
+1741 y(\(see)29 b(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)e(87\))h
+(is)f(p)s(erformed)e(when)h(the)1110 1851 y(v)-5 b(ariable)31
+b(is)g(assigned)f(a)h(v)-5 b(alue.)630 2013 y Ft(-l)384
+b Fu(When)26 b(the)g(v)-5 b(ariable)27 b(is)f(assigned)g(a)g(v)-5
b(alue,)28 b(all)f(upp)s(er-case)e(c)m(haracters)j(are)1110
-4108 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30
-b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 4279
-y Fs(-r)384 b Ft(Mak)m(e)25 b Fq(name)5 b Ft(s)23 b(readonly)-8
-b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s(e)g(assigned)h(v)-5
-b(alues)1110 4389 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h
-(statemen)m(ts)h(or)f(unset.)630 4560 y Fs(-t)384 b Ft(Giv)m(e)33
-b(eac)m(h)h Fq(name)j Ft(the)32 b Fs(trace)f Ft(attribute.)46
-b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 4669
-y Fs(DEBUG)26 b Ft(and)h Fs(RETURN)f Ft(traps)h(from)g(the)h(calling)h
-(shell.)40 b(The)27 b(trace)i(attribute)1110 4779 y(has)h(no)g(sp)s
-(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 4950 y
-Fs(-u)384 b Ft(When)28 b(the)h(v)-5 b(ariable)29 b(is)f(assigned)h(a)f
-(v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m(haracters)f(are)1110
-5059 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30
-b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630 5230
-y Fs(-x)384 b Ft(Mark)30 b(eac)m(h)h Fq(name)k Ft(for)29
+2122 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)43 b(The)30
+b(upp)s(er-case)g(attribute)h(is)g(disabled.)630 2285
+y Ft(-n)384 b Fu(Giv)m(e)28 b(eac)m(h)g Fr(name)k Fu(the)27
+b Fr(nameref)44 b Fu(attribute,)28 b(making)f(it)h(a)f(name)f
+(reference)1110 2394 y(to)32 b(another)g(v)-5 b(ariable.)46
+b(That)31 b(other)h(v)-5 b(ariable)33 b(is)f(de\014ned)e(b)m(y)i(the)g
+(v)-5 b(alue)32 b(of)1110 2504 y Fr(name)p Fu(.)39 b(All)26
+b(references)g(and)f(assignmen)m(ts)h(to)g Fr(name)p
+Fu(,)h(except)g(for)e(c)m(hanging)1110 2613 y(the)43
+b Ft(-n)f Fu(attribute)i(itself,)j(are)c(p)s(erformed)f(on)g(the)h(v)-5
+b(ariable)44 b(referenced)1110 2723 y(b)m(y)h Fr(name)5
+b Fu('s)46 b(v)-5 b(alue.)86 b(The)45 b Ft(-n)f Fu(attribute)j(cannot)e
+(b)s(e)g(applied)g(to)h(arra)m(y)1110 2833 y(v)-5 b(ariables.)630
+2995 y Ft(-r)384 b Fu(Mak)m(e)25 b Fr(name)5 b Fu(s)23
+b(readonly)-8 b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s(e)g
+(assigned)h(v)-5 b(alues)1110 3104 y(b)m(y)30 b(subsequen)m(t)g
+(assignmen)m(t)h(statemen)m(ts)h(or)f(unset.)630 3267
+y Ft(-t)384 b Fu(Giv)m(e)33 b(eac)m(h)h Fr(name)j Fu(the)32
+b Ft(trace)f Fu(attribute.)46 b(T)-8 b(raced)32 b(functions)g(inherit)g
+(the)1110 3376 y Ft(DEBUG)26 b Fu(and)h Ft(RETURN)f Fu(traps)h(from)g
+(the)h(calling)h(shell.)40 b(The)27 b(trace)i(attribute)1110
+3486 y(has)h(no)g(sp)s(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630
+3648 y Ft(-u)384 b Fu(When)28 b(the)h(v)-5 b(ariable)29
+b(is)f(assigned)h(a)f(v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m
+(haracters)f(are)1110 3758 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40
+b(The)30 b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630
+3920 y Ft(-x)384 b Fu(Mark)30 b(eac)m(h)h Fr(name)k Fu(for)29
b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
-5340 y(ronmen)m(t.)p eop end
-%%Page: 47 53
-TeXDict begin 47 52 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y(Using)28
-b(`)p Fs(+)p Ft(')h(instead)f(of)g(`)p Fs(-)p Ft(')g(turns)f(o\013)i
-(the)f(attribute)h(instead,)g(with)f(the)g(exceptions)h(that)630
-408 y(`)p Fs(+a)p Ft(')h(ma)m(y)h(not)f(b)s(e)f(used)g(to)i(destro)m(y)
-g(an)f(arra)m(y)g(v)-5 b(ariable)31 b(and)f(`)p Fs(+r)p
-Ft(')g(will)g(not)g(remo)m(v)m(e)i(the)630 518 y(readonly)e(attribute.)
-41 b(When)30 b(used)f(in)g(a)h(function,)g Fs(declare)e
-Ft(mak)m(es)j(eac)m(h)f Fq(name)35 b Ft(lo)s(cal,)630
-628 y(as)30 b(with)g(the)h Fs(local)e Ft(command,)h(unless)f(the)i(`)p
-Fs(-g)p Ft(')f(option)g(is)h(used.)40 b(If)29 b(a)i(v)-5
-b(ariable)31 b(name)630 737 y(is)f(follo)m(w)m(ed)i(b)m(y)f(=)p
-Fq(v)-5 b(alue)5 b Ft(,)31 b(the)f(v)-5 b(alue)31 b(of)g(the)f(v)-5
-b(ariable)31 b(is)g(set)g(to)g Fq(v)-5 b(alue)5 b Ft(.)630
-867 y(The)35 b(return)f(status)i(is)g(zero)g(unless)f(an)g(in)m(v)-5
-b(alid)36 b(option)g(is)g(encoun)m(tered,)h(an)f(attempt)630
-977 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g(using)f(`)p
-Fs(-f)f(foo=bar)p Ft(',)h(an)h(attempt)g(is)g(made)g(to)h(assign)630
-1087 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
+4029 y(ronmen)m(t.)630 4191 y(Using)e(`)p Ft(+)p Fu(')h(instead)f(of)g
+(`)p Ft(-)p Fu(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
+(the)g(exceptions)h(that)630 4301 y(`)p Ft(+a)p Fu(')h(ma)m(y)h(not)f
+(b)s(e)f(used)g(to)i(destro)m(y)g(an)f(arra)m(y)g(v)-5
+b(ariable)31 b(and)f(`)p Ft(+r)p Fu(')g(will)g(not)g(remo)m(v)m(e)i
+(the)630 4411 y(readonly)e(attribute.)41 b(When)30 b(used)f(in)g(a)h
+(function,)g Ft(declare)e Fu(mak)m(es)j(eac)m(h)f Fr(name)35
+b Fu(lo)s(cal,)630 4520 y(as)f(with)f(the)g Ft(local)f
+Fu(command,)i(unless)f(the)g Ft(-g)g Fu(option)h(is)f(used.)49
+b(If)33 b(a)h(v)-5 b(ariable)34 b(name)630 4630 y(is)c(follo)m(w)m(ed)i
+(b)m(y)f(=)p Fr(v)-5 b(alue)p Fu(,)30 b(the)h(v)-5 b(alue)31
+b(of)f(the)h(v)-5 b(ariable)31 b(is)g(set)g(to)g Fr(v)-5
+b(alue)p Fu(.)630 4766 y(When)41 b(using)g Ft(-a)g Fu(or)h
+Ft(-A)e Fu(and)h(the)h(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g(to)g
+(create)h(arra)m(y)630 4875 y(v)-5 b(ariables,)28 b(additional)f
+(attributes)g(do)f(not)h(tak)m(e)h(e\013ect)g(un)m(til)e(subsequen)m(t)
+g(assignmen)m(ts.)630 5011 y(The)35 b(return)f(status)i(is)g(zero)g
+(unless)f(an)g(in)m(v)-5 b(alid)36 b(option)g(is)g(encoun)m(tered,)h
+(an)f(attempt)630 5121 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g
+(using)f(`)p Ft(-f)f(foo=bar)p Fu(',)h(an)h(attempt)g(is)g(made)g(to)h
+(assign)630 5230 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5
-b(alue)42 b(to)h(an)630 1196 y(arra)m(y)30 b(v)-5 b(ariable)30
+b(alue)42 b(to)h(an)630 5340 y(arra)m(y)30 b(v)-5 b(ariable)30
b(without)g(using)e(the)i(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g
-(\(see)h(Section)f(6.7)630 1306 y([Arra)m(ys],)47 b(page)c(82\),)48
-b(one)43 b(of)g(the)g Fq(names)k Ft(is)c(not)g(a)g(v)-5
-b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630
-1415 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
+(\(see)h(Section)f(6.7)p eop end
+%%Page: 52 58
+TeXDict begin 52 57 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(52)630 299 y([Arra)m(ys],)47
+b(page)c(89\),)48 b(one)43 b(of)g(the)g Fr(names)k Fu(is)c(not)g(a)g(v)
+-5 b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630
+408 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
(for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630
-1525 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
+518 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
(arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630
-1634 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g(`)p
-Fs(-f)p Ft('.)150 1785 y Fs(echo)870 1915 y(echo)47 b([-neE])f([)p
-Fi(arg)57 b Fs(...)o(])630 2045 y Ft(Output)31 b(the)i
-Fq(arg)8 b Ft(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f
-(a)h(newline.)47 b(The)32 b(return)630 2155 y(status)40
-b(is)g(alw)m(a)m(ys)h(0.)69 b(If)39 b(`)p Fs(-n)p Ft(')h(is)f(sp)s
-(eci\014ed,)j(the)e(trailing)h(newline)e(is)h(suppressed.)66
-b(If)630 2265 y(the)29 b(`)p Fs(-e)p Ft(')g(option)g(is)h(giv)m(en,)g
-(in)m(terpretation)g(of)g(the)f(follo)m(wing)h(bac)m(kslash-escap)s(ed)
-g(c)m(har-)630 2374 y(acters)38 b(is)f(enabled.)60 b(The)36
-b(`)p Fs(-E)p Ft(')h(option)g(disables)g(the)g(in)m(terpretation)h(of)f
-(these)g(escap)s(e)630 2484 y(c)m(haracters,)h(ev)m(en)d(on)g(systems)g
-(where)f(they)h(are)g(in)m(terpreted)h(b)m(y)e(default.)55
-b(The)34 b Fs(xpg_)630 2593 y(echo)d Ft(shell)h(option)h(ma)m(y)g(b)s
-(e)e(used)h(to)h(dynamically)g(determine)f(whether)f(or)i(not)f
-Fs(echo)630 2703 y Ft(expands)39 b(these)i(escap)s(e)g(c)m(haracters)g
-(b)m(y)g(default.)70 b Fs(echo)39 b Ft(do)s(es)h(not)g(in)m(terpret)h
-(`)p Fs(--)p Ft(')f(to)630 2813 y(mean)30 b(the)h(end)f(of)g(options.)
-630 2943 y Fs(echo)f Ft(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)
-f(sequences:)630 3093 y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630
-3244 y Fs(\\b)384 b Ft(bac)m(kspace)630 3395 y Fs(\\c)g
-Ft(suppress)28 b(further)h(output)630 3545 y Fs(\\e)630
-3655 y(\\E)384 b Ft(escap)s(e)630 3806 y Fs(\\f)g Ft(form)30
-b(feed)630 3956 y Fs(\\n)384 b Ft(new)30 b(line)630 4107
-y Fs(\\r)384 b Ft(carriage)32 b(return)630 4258 y Fs(\\t)384
-b Ft(horizon)m(tal)32 b(tab)630 4408 y Fs(\\v)384 b Ft(v)m(ertical)32
-b(tab)630 4559 y Fs(\\\\)384 b Ft(bac)m(kslash)630 4710
-y Fs(\\0)p Fi(nnn)240 b Ft(the)32 b(eigh)m(t-bit)i(c)m(haracter)g
+628 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g
+Ft(-f)p Fu(.)150 785 y Ft(echo)870 918 y(echo)47 b([-neE])f([)p
+Fj(arg)g Ft(...])630 1051 y Fu(Output)31 b(the)i Fr(arg)8
+b Fu(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f(a)h
+(newline.)47 b(The)32 b(return)630 1161 y(status)f(is)f(0)h(unless)f(a)
+h(write)g(error)f(o)s(ccurs.)41 b(If)30 b Ft(-n)g Fu(is)h(sp)s
+(eci\014ed,)f(the)h(trailing)g(newline)g(is)630 1270
+y(suppressed.)38 b(If)29 b(the)h Ft(-e)f Fu(option)h(is)f(giv)m(en,)i
+(in)m(terpretation)g(of)e(the)h(follo)m(wing)h(bac)m(kslash-)630
+1380 y(escap)s(ed)43 b(c)m(haracters)h(is)e(enabled.)78
+b(The)42 b Ft(-E)g Fu(option)h(disables)g(the)g(in)m(terpretation)h(of)
+630 1490 y(these)27 b(escap)s(e)g(c)m(haracters,)i(ev)m(en)e(on)g
+(systems)f(where)g(they)h(are)g(in)m(terpreted)g(b)m(y)f(default.)630
+1599 y(The)32 b Ft(xpg_echo)f Fu(shell)i(option)g(ma)m(y)h(b)s(e)e
+(used)g(to)h(dynamically)h(determine)f(whether)f(or)630
+1709 y(not)h Ft(echo)f Fu(expands)g(these)h(escap)s(e)h(c)m(haracters)g
+(b)m(y)f(default.)48 b Ft(echo)32 b Fu(do)s(es)g(not)i(in)m(terpret)630
+1818 y Ft(--)c Fu(to)h(mean)f(the)h(end)f(of)g(options.)630
+1952 y Ft(echo)f Fu(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f
+(sequences:)630 2109 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630
+2266 y Ft(\\b)384 b Fu(bac)m(kspace)630 2423 y Ft(\\c)g
+Fu(suppress)28 b(further)h(output)630 2580 y Ft(\\e)630
+2689 y(\\E)384 b Fu(escap)s(e)630 2846 y Ft(\\f)g Fu(form)30
+b(feed)630 3003 y Ft(\\n)384 b Fu(new)30 b(line)630 3160
+y Ft(\\r)384 b Fu(carriage)32 b(return)630 3317 y Ft(\\t)384
+b Fu(horizon)m(tal)32 b(tab)630 3474 y Ft(\\v)384 b Fu(v)m(ertical)32
+b(tab)630 3631 y Ft(\\\\)384 b Fu(bac)m(kslash)630 3788
+y Ft(\\0)p Fj(nnn)240 b Fu(the)32 b(eigh)m(t-bit)i(c)m(haracter)g
(whose)e(v)-5 b(alue)33 b(is)f(the)g(o)s(ctal)i(v)-5
-b(alue)32 b Fq(nnn)f Ft(\(zero)i(to)1110 4819 y(three)e(o)s(ctal)g
-(digits\))630 4970 y Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)
-m(haracter)g(whose)e(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5
-b(alue)40 b Fq(HH)1110 5080 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
-(digits\))630 5230 y Fs(\\u)p Fi(HHHH)192 b Ft(the)41
+b(alue)32 b Fr(nnn)f Fu(\(zero)i(to)1110 3898 y(three)e(o)s(ctal)g
+(digits\))630 4055 y Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)
+m(haracter)g(whose)e(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5
+b(alue)39 b Fr(HH)1110 4164 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 4321 y Ft(\\u)p Fj(HHHH)192 b Fu(the)41
b(Unico)s(de)g(\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5
-b(alue)41 b(is)g(the)g(hex-)1110 5340 y(adecimal)32 b(v)-5
-b(alue)31 b Fq(HHHH)41 b Ft(\(one)31 b(to)g(four)e(hex)h(digits\))p
-eop end
-%%Page: 48 54
-TeXDict begin 48 53 bop 150 -116 a Ft(48)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(\\U)p Fi(HHHHHHHH)1110
-408 y Ft(the)41 b(Unico)s(de)g(\(ISO/IEC)f(10646\))j(c)m(haracter)g
-(whose)e(v)-5 b(alue)41 b(is)g(the)g(hex-)1110 518 y(adecimal)32
-b(v)-5 b(alue)31 b Fq(HHHHHHHH)41 b Ft(\(one)31 b(to)g(eigh)m(t)h(hex)e
-(digits\))150 684 y Fs(enable)870 822 y(enable)46 b([-a])h([-dnps])f
-([-f)g Fi(filename)11 b Fs(])45 b([)p Fi(name)57 b Fs(...)o(])630
-960 y Ft(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
+b(alue)41 b(is)g(the)g(hex-)1110 4431 y(adecimal)32 b(v)-5
+b(alue)31 b Fr(HHHH)41 b Fu(\(one)31 b(to)g(four)e(hex)h(digits\))630
+4588 y Ft(\\U)p Fj(HHHHHHHH)1110 4697 y Fu(the)41 b(Unico)s(de)g
+(\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5 b(alue)41
+b(is)g(the)g(hex-)1110 4807 y(adecimal)32 b(v)-5 b(alue)31
+b Fr(HHHHHHHH)41 b Fu(\(one)31 b(to)g(eigh)m(t)h(hex)e(digits\))150
+4964 y Ft(enable)870 5097 y(enable)46 b([-a])h([-dnps])f([-f)g
+Fj(filename)p Ft(])g([)p Fj(name)g Ft(...)o(])630 5230
+y Fu(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630
-1070 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
-(builtin)e(to)i(b)s(e)f(executed)h(without)630 1180 y(sp)s(ecifying)27
+5340 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
+(builtin)e(to)i(b)s(e)f(executed)h(without)p eop end
+%%Page: 53 59
+TeXDict begin 53 58 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y(sp)s(ecifying)27
b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g
-(searc)m(hes)h(for)f(builtins)630 1289 y(b)s(efore)32
-b(disk)f(commands.)46 b(If)31 b(`)p Fs(-n)p Ft(')h(is)g(used,)g(the)g
-Fq(name)5 b Ft(s)32 b(b)s(ecome)h(disabled.)45 b(Otherwise)630
-1399 y Fq(name)5 b Ft(s)44 b(are)h(enabled.)82 b(F)-8
-b(or)45 b(example,)k(to)c(use)f(the)g Fs(test)f Ft(binary)h(found)f
-(via)h Fs($PATH)630 1508 y Ft(instead)31 b(of)f(the)h(shell)f(builtin)g
-(v)m(ersion,)h(t)m(yp)s(e)g(`)p Fs(enable)e(-n)h(test)p
-Ft('.)630 1646 y(If)42 b(the)h(`)p Fs(-p)p Ft(')f(option)h(is)f
-(supplied,)j(or)d(no)h Fq(name)k Ft(argumen)m(ts)c(app)s(ear,)i(a)e
-(list)g(of)g(shell)630 1756 y(builtins)37 b(is)h(prin)m(ted.)63
-b(With)38 b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g
-(all)h(enabled)630 1866 y(shell)33 b(builtins.)46 b(The)32
-b(`)p Fs(-a)p Ft(')h(option)g(means)f(to)i(list)f(eac)m(h)h(builtin)e
-(with)g(an)g(indication)i(of)630 1975 y(whether)c(or)g(not)h(it)g(is)f
-(enabled.)630 2113 y(The)40 b(`)p Fs(-f)p Ft(')g(option)g(means)g(to)h
-(load)g(the)f(new)f(builtin)h(command)g Fq(name)45 b
-Ft(from)40 b(shared)630 2223 y(ob)5 b(ject)26 b Fq(\014lename)5
-b Ft(,)28 b(on)d(systems)h(that)g(supp)s(ort)e(dynamic)h(loading.)40
-b(The)25 b(`)p Fs(-d)p Ft(')h(option)g(will)630 2332
-y(delete)32 b(a)e(builtin)g(loaded)h(with)f(`)p Fs(-f)p
-Ft('.)630 2470 y(If)h(there)g(are)g(no)g(options,)h(a)f(list)h(of)f
-(the)g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)43 b(The)31
-b(`)p Fs(-s)p Ft(')f(option)630 2580 y(restricts)f Fs(enable)e
-Ft(to)i(the)f Fl(posix)g Ft(sp)s(ecial)h(builtins.)40
-b(If)27 b(`)p Fs(-s)p Ft(')i(is)f(used)g(with)g(`)p Fs(-f)p
-Ft(',)h(the)f(new)630 2690 y(builtin)i(b)s(ecomes)h(a)f(sp)s(ecial)h
-(builtin)f(\(see)i(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g
-(62\).)630 2828 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
-Fq(name)k Ft(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g
-(error)630 2937 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
-(ob)5 b(ject.)150 3104 y Fs(help)870 3242 y(help)47 b([-dms])f([)p
-Fi(pattern)11 b Fs(])630 3380 y Ft(Displa)m(y)40 b(helpful)e
-(information)h(ab)s(out)g(builtin)f(commands.)66 b(If)38
-b Fq(pattern)h Ft(is)g(sp)s(eci\014ed,)630 3489 y Fs(help)28
-b Ft(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)e(matc)m(hing)i
-Fq(pattern)p Ft(,)g(otherwise)f(a)g(list)h(of)630 3599
-y(the)h(builtins)e(is)i(prin)m(ted.)630 3737 y(Options,)f(if)h
-(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
-3903 y Fs(-d)384 b Ft(Displa)m(y)32 b(a)e(short)g(description)h(of)f
-(eac)m(h)i Fq(pattern)630 4070 y Fs(-m)384 b Ft(Displa)m(y)32
-b(the)e(description)g(of)h(eac)m(h)h Fq(pattern)e Ft(in)g(a)h
-(manpage-lik)m(e)h(format)630 4236 y Fs(-s)384 b Ft(Displa)m(y)32
-b(only)e(a)h(short)f(usage)h(synopsis)e(for)i(eac)m(h)g
-Fq(pattern)630 4402 y Ft(The)f(return)f(status)i(is)f(zero)h(unless)f
-(no)g(command)h(matc)m(hes)g Fq(pattern)p Ft(.)150 4569
-y Fs(let)870 4707 y(let)47 b Fi(expression)55 b Fs([)p
-Fi(expression)11 b Fs(])630 4845 y Ft(The)41 b Fs(let)g
-Ft(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i
-(shell)g(v)-5 b(ariables.)74 b(Eac)m(h)630 4954 y Fq(expression)31
-b Ft(is)g(ev)-5 b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)
-h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 5064
-y(Arithmetic],)51 b(page)46 b(80.)87 b(If)45 b(the)g(last)h
-Fq(expression)g Ft(ev)-5 b(aluates)47 b(to)f(0,)k Fs(let)44
-b Ft(returns)g(1;)630 5174 y(otherwise)31 b(0)g(is)f(returned.)150
-5340 y Fs(local)p eop end
-%%Page: 49 55
-TeXDict begin 49 54 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(49)870 299 y Fs(local)46
-b([)p Fi(option)11 b Fs(])45 b Fi(name)11 b Fs([=)p Fi(value)g
-Fs(])44 b(...)630 432 y Ft(F)-8 b(or)26 b(eac)m(h)h(argumen)m(t,)g(a)e
-(lo)s(cal)i(v)-5 b(ariable)26 b(named)f Fq(name)31 b
-Ft(is)25 b(created,)j(and)d(assigned)g Fq(v)-5 b(alue)5
-b Ft(.)630 542 y(The)37 b Fq(option)h Ft(can)f(b)s(e)g(an)m(y)h(of)f
-(the)h(options)g(accepted)g(b)m(y)g Fs(declare)p Ft(.)59
-b Fs(local)36 b Ft(can)i(only)630 652 y(b)s(e)j(used)h(within)f(a)i
+(searc)m(hes)h(for)f(builtins)630 408 y(b)s(efore)35
+b(disk)g(commands.)55 b(If)35 b Ft(-n)g Fu(is)g(used,)h(the)g
+Fr(name)5 b Fu(s)35 b(b)s(ecome)h(disabled.)55 b(Otherwise)630
+518 y Fr(name)5 b Fu(s)44 b(are)h(enabled.)82 b(F)-8
+b(or)45 b(example,)k(to)c(use)f(the)g Ft(test)f Fu(binary)h(found)f
+(via)h Ft($PATH)630 628 y Fu(instead)31 b(of)f(the)h(shell)f(builtin)g
+(v)m(ersion,)h(t)m(yp)s(e)g(`)p Ft(enable)e(-n)h(test)p
+Fu('.)630 762 y(If)45 b(the)i Ft(-p)e Fu(option)h(is)g(supplied,)j(or)d
+(no)g Fr(name)51 b Fu(argumen)m(ts)46 b(app)s(ear,)k(a)c(list)h(of)f
+(shell)630 871 y(builtins)37 b(is)h(prin)m(ted.)63 b(With)38
+b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g(all)h
+(enabled)630 981 y(shell)d(builtins.)57 b(The)35 b Ft(-a)h
+Fu(option)g(means)g(to)g(list)h(eac)m(h)g(builtin)f(with)f(an)h
+(indication)h(of)630 1090 y(whether)30 b(or)g(not)h(it)g(is)f(enabled.)
+630 1224 y(The)22 b Ft(-f)f Fu(option)h(means)g(to)h(load)g(the)f(new)g
+(builtin)f(command)h Fr(name)27 b Fu(from)22 b(shared)f(ob)5
+b(ject)630 1334 y Fr(\014lename)p Fu(,)33 b(on)e(systems)h(that)h(supp)
+s(ort)d(dynamic)i(loading.)46 b(The)31 b Ft(-d)g Fu(option)h(will)h
+(delete)630 1443 y(a)e(builtin)f(loaded)h(with)f Ft(-f)p
+Fu(.)630 1577 y(If)j(there)i(are)f(no)g(options,)h(a)f(list)h(of)f(the)
+g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)52 b(The)33
+b Ft(-s)g Fu(option)630 1687 y(restricts)j Ft(enable)d
+Fu(to)j(the)f Fm(posix)f Fu(sp)s(ecial)i(builtins.)54
+b(If)34 b Ft(-s)h Fu(is)g(used)f(with)g Ft(-f)p Fu(,)i(the)f(new)630
+1797 y(builtin)30 b(b)s(ecomes)h(a)f(sp)s(ecial)h(builtin)f(\(see)i
+(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g(68\).)630
+1931 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
+Fr(name)k Fu(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g
+(error)630 2040 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
+(ob)5 b(ject.)150 2198 y Ft(help)870 2332 y(help)47 b([-dms])f([)p
+Fj(pattern)p Ft(])630 2466 y Fu(Displa)m(y)40 b(helpful)e(information)h
+(ab)s(out)g(builtin)f(commands.)66 b(If)38 b Fr(pattern)h
+Fu(is)g(sp)s(eci\014ed,)630 2576 y Ft(help)28 b Fu(giv)m(es)i(detailed)
+g(help)e(on)h(all)h(commands)e(matc)m(hing)i Fr(pattern)p
+Fu(,)g(otherwise)f(a)g(list)h(of)630 2685 y(the)h(builtins)e(is)i(prin)
+m(ted.)630 2819 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)
+m(wing)h(meanings:)630 2978 y Ft(-d)384 b Fu(Displa)m(y)32
+b(a)e(short)g(description)h(of)f(eac)m(h)i Fr(pattern)630
+3136 y Ft(-m)384 b Fu(Displa)m(y)32 b(the)e(description)g(of)h(eac)m(h)
+h Fr(pattern)e Fu(in)g(a)h(manpage-lik)m(e)h(format)630
+3294 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(a)h(short)f(usage)h
+(synopsis)e(for)i(eac)m(h)g Fr(pattern)630 3453 y Fu(The)f(return)f
+(status)i(is)f(zero)h(unless)f(no)g(command)h(matc)m(hes)g
+Fr(pattern)p Fu(.)150 3611 y Ft(let)870 3745 y(let)47
+b Fj(expression)e Ft([)p Fj(expression)g Ft(...)o(])630
+3879 y Fu(The)c Ft(let)g Fu(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s
+(e)d(p)s(erformed)g(on)i(shell)g(v)-5 b(ariables.)74
+b(Eac)m(h)630 3988 y Fr(expression)31 b Fu(is)g(ev)-5
+b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)h(b)s(elo)m(w)f
+(in)f(Section)i(6.5)g([Shell)630 4098 y(Arithmetic],)51
+b(page)46 b(87.)87 b(If)45 b(the)g(last)h Fr(expression)g
+Fu(ev)-5 b(aluates)47 b(to)f(0,)k Ft(let)44 b Fu(returns)g(1;)630
+4208 y(otherwise)31 b(0)g(is)f(returned.)150 4366 y Ft(local)870
+4500 y(local)46 b([)p Fj(option)p Ft(])g Fj(name)p Ft([=)p
+Fj(value)p Ft(])e(...)630 4634 y Fu(F)-8 b(or)27 b(eac)m(h)g(argumen)m
+(t,)g(a)f(lo)s(cal)h(v)-5 b(ariable)27 b(named)e Fr(name)31
+b Fu(is)26 b(created,)i(and)d(assigned)h Fr(v)-5 b(alue)p
+Fu(.)630 4743 y(The)37 b Fr(option)h Fu(can)f(b)s(e)g(an)m(y)h(of)f
+(the)h(options)g(accepted)g(b)m(y)g Ft(declare)p Fu(.)59
+b Ft(local)36 b Fu(can)i(only)630 4853 y(b)s(e)j(used)h(within)f(a)i
(function;)48 b(it)42 b(mak)m(es)h(the)f(v)-5 b(ariable)43
-b Fq(name)48 b Ft(ha)m(v)m(e)43 b(a)f(visible)h(scop)s(e)630
-761 y(restricted)c(to)g(that)g(function)f(and)f(its)i(c)m(hildren.)64
-b(The)38 b(return)f(status)h(is)h(zero)g(unless)630 871
-y Fs(local)g Ft(is)h(used)g(outside)g(a)h(function,)h(an)e(in)m(v)-5
-b(alid)41 b Fq(name)46 b Ft(is)40 b(supplied,)i(or)e
-Fq(name)45 b Ft(is)c(a)630 980 y(readonly)30 b(v)-5 b(ariable.)150
-1138 y Fs(logout)870 1271 y(logout)46 b([)p Fi(n)11 b
-Fs(])630 1405 y Ft(Exit)31 b(a)g(login)g(shell,)g(returning)e(a)i
-(status)g(of)f Fq(n)g Ft(to)h(the)g(shell's)f(paren)m(t.)150
-1563 y Fs(mapfile)870 1696 y(mapfile)46 b([-n)h Fi(count)11
-b Fs(])45 b([-O)i Fi(origin)11 b Fs(])46 b([-s)g Fi(count)11
-b Fs(])46 b([-t])h([-u)g Fi(fd)11 b Fs(])46 b([)870 1806
-y(-C)h Fi(callback)11 b Fs(])45 b([-c)i Fi(quantum)11
-b Fs(])45 b([)p Fi(array)11 b Fs(])630 1939 y Ft(Read)37
-b(lines)g(from)f(the)h(standard)f(input)g(in)m(to)h(the)g(indexed)f
-(arra)m(y)i(v)-5 b(ariable)37 b Fq(arra)m(y)8 b Ft(,)39
-b(or)630 2049 y(from)c(\014le)h(descriptor)g Fq(fd)j
-Ft(if)d(the)g(`)p Fs(-u)p Ft(')g(option)g(is)g(supplied.)56
-b(The)35 b(v)-5 b(ariable)37 b Fs(MAPFILE)d Ft(is)630
-2158 y(the)d(default)f Fq(arra)m(y)8 b Ft(.)41 b(Options,)30
-b(if)h(supplied,)e(ha)m(v)m(e)j(the)e(follo)m(wing)i(meanings:)630
-2316 y Fs(-n)384 b Ft(Cop)m(y)30 b(at)h(most)g Fq(coun)m(t)i
-Ft(lines.)41 b(If)30 b Fq(coun)m(t)j Ft(is)d(0,)h(all)h(lines)e(are)h
-(copied.)630 2474 y Fs(-O)384 b Ft(Begin)31 b(assigning)g(to)g
-Fq(arra)m(y)39 b Ft(at)31 b(index)f Fq(origin)p Ft(.)41
-b(The)30 b(default)h(index)f(is)g(0.)630 2631 y Fs(-s)384
-b Ft(Discard)31 b(the)f(\014rst)g Fq(coun)m(t)j Ft(lines)e(read.)630
-2789 y Fs(-t)384 b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(newline)g(from)f
-(eac)m(h)h(line)g(read.)630 2946 y Fs(-u)384 b Ft(Read)31
-b(lines)f(from)g(\014le)h(descriptor)f Fq(fd)j Ft(instead)e(of)f(the)h
-(standard)e(input.)630 3104 y Fs(-C)384 b Ft(Ev)-5 b(aluate)43
-b Fq(callbac)m(k)49 b Ft(eac)m(h)42 b(time)g Fq(quan)m(tum)p
-Ft(P)f(lines)h(are)f(read.)74 b(The)41 b(`)p Fs(-c)p
-Ft(')1110 3213 y(option)31 b(sp)s(eci\014es)f Fq(quan)m(tum)p
-Ft(.)630 3371 y Fs(-c)384 b Ft(Sp)s(ecify)30 b(the)g(n)m(um)m(b)s(er)f
-(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m(h)g(call)h(to)f
-Fq(callbac)m(k)6 b Ft(.)630 3528 y(If)36 b(`)p Fs(-C)p
-Ft(')g(is)h(sp)s(eci\014ed)f(without)g(`)p Fs(-c)p Ft(',)i(the)f
-(default)f(quan)m(tum)g(is)h(5000.)61 b(When)36 b Fq(callbac)m(k)630
-3638 y Ft(is)e(ev)-5 b(aluated,)36 b(it)f(is)f(supplied)f(the)h(index)f
-(of)h(the)h(next)f(arra)m(y)g(elemen)m(t)i(to)e(b)s(e)g(assigned)630
-3748 y(and)f(the)g(line)h(to)f(b)s(e)g(assigned)g(to)h(that)g(elemen)m
-(t)h(as)e(additional)h(argumen)m(ts.)50 b Fq(callbac)m(k)630
-3857 y Ft(is)30 b(ev)-5 b(aluated)32 b(after)f(the)f(line)h(is)g(read)f
-(but)g(b)s(efore)f(the)i(arra)m(y)g(elemen)m(t)h(is)e(assigned.)630
-3991 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
-Fs(mapfile)c Ft(will)j(clear)g Fq(arra)m(y)34 b Ft(b)s(efore)24
-b(assigning)630 4100 y(to)31 b(it.)630 4234 y Fs(mapfile)41
-b Ft(returns)g(successfully)i(unless)e(an)i(in)m(v)-5
+b Fr(name)48 b Fu(ha)m(v)m(e)43 b(a)f(visible)h(scop)s(e)630
+4963 y(restricted)c(to)g(that)g(function)f(and)f(its)i(c)m(hildren.)64
+b(The)38 b(return)f(status)h(is)h(zero)g(unless)630 5072
+y Ft(local)g Fu(is)h(used)g(outside)g(a)h(function,)h(an)e(in)m(v)-5
+b(alid)41 b Fr(name)46 b Fu(is)40 b(supplied,)i(or)e
+Fr(name)45 b Fu(is)c(a)630 5182 y(readonly)30 b(v)-5
+b(ariable.)150 5340 y Ft(logout)p eop end
+%%Page: 54 60
+TeXDict begin 54 59 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(54)870 299 y Ft(logout)46
+b([)p Fj(n)p Ft(])630 429 y Fu(Exit)31 b(a)g(login)g(shell,)g
+(returning)e(a)i(status)g(of)f Fr(n)g Fu(to)h(the)g(shell's)f(paren)m
+(t.)150 580 y Ft(mapfile)870 710 y(mapfile)46 b([-n)h
+Fj(count)p Ft(])f([-O)h Fj(origin)p Ft(])f([-s)g Fj(count)p
+Ft(])h([-t])f([-u)h Fj(fd)p Ft(])1061 819 y([-C)g Fj(callback)p
+Ft(])e([-c)i Fj(quantum)p Ft(])f([)p Fj(array)p Ft(])630
+950 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
+(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p
+Fu(,)i(or)630 1059 y(from)28 b(\014le)h(descriptor)f
+Fr(fd)k Fu(if)c(the)h Ft(-u)f Fu(option)h(is)g(supplied.)39
+b(The)28 b(v)-5 b(ariable)29 b Ft(MAPFILE)e Fu(is)i(the)630
+1169 y(default)i Fr(arra)m(y)p Fu(.)41 b(Options,)30
+b(if)g(supplied,)g(ha)m(v)m(e)h(the)g(follo)m(wing)h(meanings:)630
+1319 y Ft(-n)384 b Fu(Cop)m(y)30 b(at)h(most)g Fr(coun)m(t)i
+Fu(lines.)41 b(If)30 b Fr(coun)m(t)j Fu(is)d(0,)h(all)h(lines)e(are)h
+(copied.)630 1470 y Ft(-O)384 b Fu(Begin)31 b(assigning)g(to)g
+Fr(arra)m(y)39 b Fu(at)31 b(index)f Fr(origin)p Fu(.)41
+b(The)30 b(default)h(index)f(is)g(0.)630 1621 y Ft(-s)384
+b Fu(Discard)31 b(the)f(\014rst)g Fr(coun)m(t)j Fu(lines)e(read.)630
+1771 y Ft(-t)384 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(newline)g(from)f
+(eac)m(h)h(line)g(read.)630 1922 y Ft(-u)384 b Fu(Read)31
+b(lines)f(from)g(\014le)h(descriptor)f Fr(fd)j Fu(instead)e(of)f(the)h
+(standard)e(input.)630 2073 y Ft(-C)384 b Fu(Ev)-5 b(aluate)33
+b Fr(callbac)m(k)39 b Fu(eac)m(h)33 b(time)f Fr(quan)m(tum)p
+Fu(P)f(lines)h(are)g(read.)45 b(The)31 b Ft(-c)g Fu(op-)1110
+2182 y(tion)g(sp)s(eci\014es)f Fr(quan)m(tum)p Fu(.)630
+2333 y Ft(-c)384 b Fu(Sp)s(ecify)30 b(the)g(n)m(um)m(b)s(er)f(of)i
+(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m(h)g(call)h(to)f
+Fr(callbac)m(k)p Fu(.)630 2484 y(If)36 b Ft(-C)g Fu(is)g(sp)s
+(eci\014ed)g(without)g Ft(-c)p Fu(,)h(the)g(default)f(quan)m(tum)g(is)h
+(5000.)60 b(When)36 b Fr(callbac)m(k)44 b Fu(is)630 2593
+y(ev)-5 b(aluated,)30 b(it)e(is)g(supplied)f(the)h(index)f(of)i(the)f
+(next)g(arra)m(y)g(elemen)m(t)h(to)g(b)s(e)e(assigned)i(and)630
+2703 y(the)39 b(line)g(to)h(b)s(e)e(assigned)h(to)h(that)f(elemen)m(t)i
+(as)e(additional)h(argumen)m(ts.)66 b Fr(callbac)m(k)47
+b Fu(is)630 2813 y(ev)-5 b(aluated)32 b(after)e(the)h(line)g(is)f(read)
+g(but)g(b)s(efore)g(the)h(arra)m(y)g(elemen)m(t)g(is)g(assigned.)630
+2943 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
+Ft(mapfile)c Fu(will)j(clear)g Fr(arra)m(y)34 b Fu(b)s(efore)24
+b(assigning)630 3052 y(to)31 b(it.)630 3182 y Ft(mapfile)41
+b Fu(returns)g(successfully)i(unless)e(an)i(in)m(v)-5
b(alid)43 b(option)g(or)g(option)g(argumen)m(t)g(is)630
-4343 y(supplied,)29 b Fq(arra)m(y)39 b Ft(is)30 b(in)m(v)-5
-b(alid)31 b(or)g(unassignable,)f(or)h Fq(arra)m(y)38
-b Ft(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 b(.)150
-4501 y Fs(printf)870 4634 y(printf)46 b([-v)h Fi(var)11
-b Fs(])46 b Fi(format)57 b Fs([)p Fi(arguments)11 b Fs(])630
-4768 y Ft(W)-8 b(rite)27 b(the)g(formatted)f Fq(argumen)m(ts)k
-Ft(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
-630 4878 y Fq(format)r Ft(.)57 b(The)35 b(`)p Fs(-v)p
-Ft(')h(option)g(causes)g(the)g(output)g(to)g(b)s(e)f(assigned)h(to)h
-(the)e(v)-5 b(ariable)37 b Fq(v)-5 b(ar)630 4987 y Ft(rather)30
-b(than)g(b)s(eing)g(prin)m(ted)g(to)h(the)g(standard)e(output.)630
-5121 y(The)36 b Fq(format)i Ft(is)f(a)f(c)m(haracter)i(string)e(whic)m
-(h)g(con)m(tains)i(three)e(t)m(yp)s(es)g(of)h(ob)5 b(jects:)53
-b(plain)630 5230 y(c)m(haracters,)41 b(whic)m(h)c(are)h(simply)e
+3292 y(supplied,)29 b Fr(arra)m(y)39 b Fu(is)30 b(in)m(v)-5
+b(alid)31 b(or)g(unassignable,)f(or)h Fr(arra)m(y)38
+b Fu(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 b(.)150
+3443 y Ft(printf)870 3573 y(printf)46 b([-v)h Fj(var)p
+Ft(])g Fj(format)f Ft([)p Fj(arguments)p Ft(])630 3703
+y Fu(W)-8 b(rite)27 b(the)g(formatted)f Fr(argumen)m(ts)k
+Fu(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
+630 3813 y Fr(format)p Fu(.)66 b(The)39 b Ft(-v)f Fu(option)h(causes)g
+(the)g(output)g(to)g(b)s(e)f(assigned)h(to)h(the)f(v)-5
+b(ariable)39 b Fr(v)-5 b(ar)630 3922 y Fu(rather)30 b(than)g(b)s(eing)g
+(prin)m(ted)g(to)h(the)g(standard)e(output.)630 4052
+y(The)36 b Fr(format)i Fu(is)f(a)f(c)m(haracter)i(string)e(whic)m(h)g
+(con)m(tains)i(three)e(t)m(yp)s(es)g(of)h(ob)5 b(jects:)53
+b(plain)630 4162 y(c)m(haracters,)41 b(whic)m(h)c(are)h(simply)e
(copied)i(to)g(standard)f(output,)i(c)m(haracter)g(escap)s(e)e(se-)630
-5340 y(quences,)g(whic)m(h)f(are)g(con)m(v)m(erted)h(and)f(copied)g(to)
-g(the)g(standard)f(output,)i(and)f(format)p eop end
-%%Page: 50 56
-TeXDict begin 50 55 bop 150 -116 a Ft(50)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(sp)s(eci\014cations,)38
-b(eac)m(h)g(of)e(whic)m(h)g(causes)g(prin)m(ting)g(of)g(the)h(next)f
-(successiv)m(e)h Fq(argumen)m(t)r Ft(.)630 408 y(In)24
-b(addition)h(to)g(the)g(standard)f Fs(printf\(1\))e Ft(formats,)27
-b Fs(printf)c Ft(in)m(terprets)i(the)f(follo)m(wing)630
-518 y(extensions:)630 676 y Fs(\045b)384 b Ft(causes)42
-b Fs(printf)e Ft(to)i(expand)f(bac)m(kslash)h(escap)s(e)g(sequences)f
-(in)h(the)f(cor-)1110 786 y(resp)s(onding)c Fq(argumen)m(t)r
-Ft(,)42 b(\(except)e(that)g(`)p Fs(\\c)p Ft(')e(terminates)i(output,)h
-(bac)m(k-)1110 896 y(slashes)d(in)f(`)p Fs(\\')p Ft(',)j(`)p
-Fs(\\")p Ft(',)f(and)e(`)p Fs(\\?)p Ft(')h(are)g(not)g(remo)m(v)m(ed,)j
-(and)c(o)s(ctal)i(escap)s(es)1110 1005 y(b)s(eginning)30
-b(with)g(`)p Fs(\\0)p Ft(')g(ma)m(y)h(con)m(tain)h(up)d(to)i(four)f
-(digits\).)630 1163 y Fs(\045q)384 b Ft(causes)35 b Fs(printf)e
-Ft(to)i(output)g(the)g(corresp)s(onding)e Fq(argumen)m(t)k
-Ft(in)e(a)g(format)1110 1273 y(that)c(can)g(b)s(e)e(reused)h(as)h
-(shell)f(input.)630 1431 y Fs(\045\()p Fi(datefmt)11
-b Fs(\)T)1110 1541 y Ft(causes)32 b Fs(printf)f Ft(to)h(output)g(the)g
-(date-time)i(string)e(resulting)g(from)f(using)1110 1650
-y Fq(datefm)m(t)45 b Ft(as)d(a)g(format)g(string)g(for)g
-Fs(strftime)p Ft(\(3\).)74 b(The)41 b(corresp)s(onding)1110
-1760 y Fq(argumen)m(t)h Ft(is)e(an)g(in)m(teger)i(represen)m(ting)e
-(the)g(n)m(um)m(b)s(er)f(of)h(seconds)g(since)1110 1870
-y(the)24 b(ep)s(o)s(c)m(h.)38 b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f
-(v)-5 b(alues)24 b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25
-b(represen)m(ts)1110 1979 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i
-(represen)m(ts)f(the)g(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.)
-630 2138 y(Argumen)m(ts)e(to)h(non-string)e(format)i(sp)s(eci\014ers)e
-(are)h(treated)h(as)g(C)e(language)j(constan)m(ts,)630
-2247 y(except)22 b(that)g(a)g(leading)g(plus)e(or)h(min)m(us)f(sign)i
-(is)f(allo)m(w)m(ed,)k(and)c(if)g(the)g(leading)h(c)m(haracter)h(is)630
-2357 y(a)i(single)g(or)f(double)h(quote,)h(the)f(v)-5
-b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5 b(alue)25 b(of)f(the)h(follo)m
-(wing)h(c)m(haracter.)630 2491 y(The)31 b Fq(format)i
-Ft(is)e(reused)f(as)i(necessary)f(to)h(consume)f(all)h(of)f(the)g
-Fq(argumen)m(ts)t Ft(.)43 b(If)31 b(the)g Fq(for-)630
-2600 y(mat)d Ft(requires)e(more)g Fq(argumen)m(ts)k Ft(than)25
-b(are)i(supplied,)e(the)h(extra)h(format)f(sp)s(eci\014cations)630
-2710 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g(v)-5 b(alue)29
-b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)s(een)g
-(supplied.)38 b(The)630 2819 y(return)29 b(v)-5 b(alue)31
-b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
-2978 y Fs(read)870 3112 y(read)47 b([-ers])f([-a)h Fi(aname)11
-b Fs(])45 b([-d)i Fi(delim)11 b Fs(])46 b([-i)h Fi(text)11
-b Fs(])46 b([-n)g Fi(nchars)11 b Fs(])46 b([-N)h Fi(nchars)11
-b Fs(])45 b([-p)i Fi(prompt)11 b Fs(])45 b([-t)i Fi(time-)870
-3221 y(out)11 b Fs(])46 b([-u)h Fi(fd)11 b Fs(])46 b([)p
-Fi(name)57 b Fs(...])630 3355 y Ft(One)26 b(line)h(is)g(read)f(from)h
-(the)f(standard)g(input,)h(or)g(from)f(the)h(\014le)f(descriptor)h
-Fq(fd)i Ft(supplied)630 3465 y(as)37 b(an)g(argumen)m(t)h(to)f(the)h(`)
-p Fs(-u)p Ft(')e(option,)k(and)c(the)i(\014rst)e(w)m(ord)g(is)h
-(assigned)h(to)f(the)h(\014rst)630 3574 y Fq(name)5 b
-Ft(,)28 b(the)g(second)g(w)m(ord)f(to)h(the)f(second)h
-Fq(name)5 b Ft(,)28 b(and)f(so)h(on,)g(with)f(lefto)m(v)m(er)j(w)m
-(ords)d(and)630 3684 y(their)h(in)m(terv)m(ening)g(separators)g
-(assigned)g(to)h(the)e(last)i Fq(name)5 b Ft(.)40 b(If)27
-b(there)h(are)g(few)m(er)f(w)m(ords)630 3794 y(read)44
-b(from)f(the)g(input)g(stream)h(than)g(names,)j(the)c(remaining)h
-(names)g(are)g(assigned)630 3903 y(empt)m(y)31 b(v)-5
-b(alues.)41 b(The)30 b(c)m(haracters)i(in)e(the)h(v)-5
-b(alue)31 b(of)g(the)f Fs(IFS)g Ft(v)-5 b(ariable)31
-b(are)g(used)f(to)h(split)630 4013 y(the)37 b(line)h(in)m(to)g(w)m
-(ords.)61 b(The)36 b(bac)m(kslash)i(c)m(haracter)h(`)p
-Fs(\\)p Ft(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
-4122 y(sp)s(ecial)h(meaning)g(for)f(the)g(next)h(c)m(haracter)h(read)e
-(and)g(for)g(line)h(con)m(tin)m(uation.)69 b(If)39 b(no)630
-4232 y(names)28 b(are)h(supplied,)f(the)g(line)h(read)g(is)f(assigned)h
-(to)g(the)f(v)-5 b(ariable)29 b Fs(REPLY)p Ft(.)39 b(The)28
-b(return)630 4341 y(co)s(de)e(is)g(zero,)h(unless)e(end-of-\014le)h(is)
-g(encoun)m(tered,)h Fs(read)e Ft(times)h(out)g(\(in)g(whic)m(h)f(case)i
-(the)630 4451 y(return)i(co)s(de)i(is)g(greater)g(than)g(128\),)h(or)f
-(an)f(in)m(v)-5 b(alid)31 b(\014le)g(descriptor)f(is)h(supplied)e(as)i
-(the)630 4561 y(argumen)m(t)g(to)g(`)p Fs(-u)p Ft('.)630
-4695 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
-(meanings:)630 4853 y Fs(-a)e Fi(aname)114 b Ft(The)34
-b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g
-(arra)m(y)h(v)-5 b(ariable)1110 4963 y Fq(aname)5 b Ft(,)29
-b(starting)g(at)f(0.)40 b(All)29 b(elemen)m(ts)g(are)f(remo)m(v)m(ed)h
-(from)e Fq(aname)33 b Ft(b)s(efore)1110 5072 y(the)e(assignmen)m(t.)41
-b(Other)30 b Fq(name)36 b Ft(argumen)m(ts)30 b(are)h(ignored.)630
-5230 y Fs(-d)f Fi(delim)114 b Ft(The)41 b(\014rst)h(c)m(haracter)h(of)f
-Fq(delim)g Ft(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
-5340 y(rather)30 b(than)g(newline.)p eop end
-%%Page: 51 57
-TeXDict begin 51 56 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(51)630 299 y Fs(-e)384
-b Ft(Readline)28 b(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)i
-(page)f(95\))h(is)f(used)1110 408 y(to)42 b(obtain)f(the)g(line.)73
-b(Readline)41 b(uses)g(the)g(curren)m(t)g(\(or)g(default,)j(if)d(line)
-1110 518 y(editing)31 b(w)m(as)g(not)f(previously)g(activ)m(e\))j
-(editing)f(settings.)630 687 y Fs(-i)e Fi(text)162 b
-Ft(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
-Fq(text)f Ft(is)e(placed)h(in)m(to)g(the)1110 797 y(editing)31
-b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630 966
-y Fs(-n)f Fi(nchars)1110 1076 y Fs(read)38 b Ft(returns)f(after)j
-(reading)f Fq(nc)m(hars)j Ft(c)m(haracters)e(rather)f(than)g(w)m
-(aiting)1110 1186 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e
-(honor)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 1295
-y Fq(nc)m(hars)34 b Ft(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g
-(delimiter.)630 1465 y Fs(-N)g Fi(nchars)1110 1574 y
-Fs(read)39 b Ft(returns)f(after)j(reading)e(exactly)j
-Fq(nc)m(hars)h Ft(c)m(haracters)f(rather)d(than)1110
-1684 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g
-(unless)f(EOF)h(is)g(encoun)m(tered)g(or)1110 1793 y
-Fs(read)f Ft(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f(encoun)m
-(tered)g(in)f(the)g(input)g(are)1110 1903 y(not)g(treated)h(sp)s
-(ecially)g(and)f(do)f(not)i(cause)f Fs(read)f Ft(to)i(return)e(un)m
-(til)h Fq(nc)m(hars)1110 2012 y Ft(c)m(haracters)h(are)f(read.)630
-2182 y Fs(-p)f Fi(prompt)1110 2291 y Ft(Displa)m(y)38
-b Fq(prompt)r Ft(,)f(without)g(a)f(trailing)i(newline,)g(b)s(efore)e
-(attempting)i(to)1110 2401 y(read)f(an)m(y)h(input.)60
-b(The)37 b(prompt)g(is)g(displa)m(y)m(ed)h(only)f(if)g(input)g(is)g
-(coming)1110 2511 y(from)30 b(a)h(terminal.)630 2680
-y Fs(-r)384 b Ft(If)21 b(this)h(option)g(is)f(giv)m(en,)k(bac)m(kslash)
-d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h(c)m(haracter.)1110
-2790 y(The)30 b(bac)m(kslash)i(is)f(considered)g(to)h(b)s(e)e(part)h
-(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110 2899
-y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i(a)g
-(line)f(con)m(tin)m(uation.)630 3068 y Fs(-s)384 b Ft(Silen)m(t)28
-b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f(a)h(terminal,)h(c)
-m(haracters)g(are)f(not)1110 3178 y(ec)m(ho)s(ed.)630
-3347 y Fs(-t)i Fi(timeout)1110 3457 y Ft(Cause)23 b Fs(read)f
-Ft(to)i(time)f(out)h(and)e(return)g(failure)h(if)g(a)h(complete)g(line)
-g(of)f(input)1110 3567 y(is)44 b(not)f(read)h(within)e
-Fq(timeout)47 b Ft(seconds.)80 b Fq(timeout)46 b Ft(ma)m(y)e(b)s(e)f(a)
-h(decimal)1110 3676 y(n)m(um)m(b)s(er)26 b(with)h(a)h(fractional)h(p)s
-(ortion)d(follo)m(wing)j(the)f(decimal)g(p)s(oin)m(t.)40
-b(This)1110 3786 y(option)g(is)g(only)g(e\013ectiv)m(e)j(if)c
-Fs(read)g Ft(is)h(reading)g(input)f(from)g(a)h(terminal,)1110
-3895 y(pip)s(e,)25 b(or)e(other)i(sp)s(ecial)f(\014le;)i(it)f(has)e(no)
-h(e\013ect)h(when)e(reading)h(from)g(regular)1110 4005
-y(\014les.)55 b(If)34 b Fq(timeout)k Ft(is)d(0,)i Fs(read)d
-Ft(returns)g(success)h(if)g(input)g(is)g(a)m(v)-5 b(ailable)37
-b(on)1110 4115 y(the)j(sp)s(eci\014ed)f(\014le)g(descriptor,)j(failure)
-e(otherwise.)69 b(The)39 b(exit)h(status)g(is)1110 4224
-y(greater)32 b(than)e(128)h(if)g(the)f(timeout)i(is)e(exceeded.)630
-4394 y Fs(-u)g Fi(fd)258 b Ft(Read)31 b(input)e(from)h(\014le)g
-(descriptor)h Fq(fd)t Ft(.)150 4563 y Fs(readarray)870
-4672 y(readarray)45 b([-n)i Fi(count)11 b Fs(])46 b([-O)h
-Fi(origin)11 b Fs(])45 b([-s)i Fi(count)11 b Fs(])46
-b([-t])g([-u)h Fi(fd)11 b Fs(])47 b([)870 4782 y(-C)g
-Fi(callback)11 b Fs(])45 b([-c)i Fi(quantum)11 b Fs(])45
-b([)p Fi(array)11 b Fs(])630 4922 y Ft(Read)37 b(lines)g(from)f(the)h
-(standard)f(input)g(in)m(to)h(the)g(indexed)f(arra)m(y)i(v)-5
-b(ariable)37 b Fq(arra)m(y)8 b Ft(,)39 b(or)630 5031
-y(from)30 b(\014le)g(descriptor)h Fq(fd)i Ft(if)d(the)h(`)p
-Fs(-u)p Ft(')f(option)h(is)f(supplied.)630 5171 y(A)g(synon)m(ym)g(for)
-g Fs(mapfile)p Ft(.)150 5340 y Fs(source)p eop end
-%%Page: 52 58
-TeXDict begin 52 57 bop 150 -116 a Ft(52)2572 b(Bash)31
-b(Reference)g(Man)m(ual)870 299 y Fs(source)46 b Fi(filename)630
-434 y Ft(A)30 b(synon)m(ym)g(for)g Fs(.)g Ft(\(see)i(Section)f(4.1)g
-([Bourne)g(Shell)f(Builtins],)h(page)g(37\).)150 595
-y Fs(type)870 731 y(type)47 b([-afptP])e([)p Fi(name)57
-b Fs(...)o(])630 866 y Ft(F)-8 b(or)41 b(eac)m(h)h Fq(name)5
-b Ft(,)44 b(indicate)e(ho)m(w)f(it)g(w)m(ould)f(b)s(e)g(in)m(terpreted)
-h(if)g(used)f(as)h(a)g(command)630 976 y(name.)630 1111
-y(If)d(the)g(`)p Fs(-t)p Ft(')g(option)g(is)g(used,)i
-Fs(type)d Ft(prin)m(ts)g(a)i(single)f(w)m(ord)g(whic)m(h)g(is)g(one)g
-(of)h(`)p Fs(alias)p Ft(',)630 1221 y(`)p Fs(function)p
-Ft(',)32 b(`)p Fs(builtin)p Ft(',)g(`)p Fs(file)p Ft(')g(or)h(`)p
-Fs(keyword)p Ft(',)f(if)h Fq(name)38 b Ft(is)33 b(an)f(alias,)j(shell)e
-(function,)630 1330 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
-(reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
-b(If)34 b(the)h Fq(name)40 b Ft(is)35 b(not)630 1440
-y(found,)29 b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g
-Fs(type)f Ft(returns)g(a)i(failure)g(status.)630 1575
-y(If)39 b(the)g(`)p Fs(-p)p Ft(')g(option)h(is)f(used,)i
-Fs(type)d Ft(either)h(returns)f(the)i(name)f(of)g(the)g(disk)g(\014le)g
-(that)630 1685 y(w)m(ould)30 b(b)s(e)g(executed,)h(or)g(nothing)f(if)g
-(`)p Fs(-t)p Ft(')h(w)m(ould)f(not)g(return)g(`)p Fs(file)p
-Ft('.)630 1820 y(The)23 b(`)p Fs(-P)p Ft(')g(option)h(forces)g(a)g
-(path)f(searc)m(h)h(for)f(eac)m(h)h Fq(name)5 b Ft(,)26
-b(ev)m(en)e(if)f(`)p Fs(-t)p Ft(')g(w)m(ould)g(not)h(return)630
-1930 y(`)p Fs(file)p Ft('.)630 2065 y(If)34 b(a)i(command)e(is)h
-(hashed,)g(`)p Fs(-p)p Ft(')g(and)f(`)p Fs(-P)p Ft(')h(prin)m(t)f(the)h
-(hashed)f(v)-5 b(alue,)37 b(not)e(necessarily)630 2175
-y(the)c(\014le)f(that)h(app)s(ears)f(\014rst)f(in)h Fs($PATH)p
-Ft(.)630 2310 y(If)36 b(the)h(`)p Fs(-a)p Ft(')g(option)g(is)g(used,)g
-Fs(type)f Ft(returns)f(all)j(of)f(the)g(places)g(that)g(con)m(tain)h
-(an)f(exe-)630 2420 y(cutable)d(named)f Fq(\014le)5 b
-Ft(.)49 b(This)32 b(includes)h(aliases)i(and)d(functions,)i(if)f(and)f
-(only)i(if)f(the)g(`)p Fs(-p)p Ft(')630 2529 y(option)e(is)f(not)h
-(also)g(used.)630 2665 y(If)26 b(the)h(`)p Fs(-f)p Ft(')g(option)g(is)g
-(used,)g Fs(type)e Ft(do)s(es)i(not)g(attempt)g(to)h(\014nd)d(shell)i
-(functions,)g(as)g(with)630 2774 y(the)k Fs(command)d
-Ft(builtin.)630 2910 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
-(of)f(the)h Fq(names)i Ft(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h
-(not)630 3019 y(found.)150 3180 y Fs(typeset)870 3316
-y(typeset)46 b([-afFrxi])f([-p])i([)p Fi(name)11 b Fs([=)p
-Fi(value)g Fs(])43 b(...)o(])630 3451 y Ft(The)29 b Fs(typeset)f
-Ft(command)h(is)g(supplied)g(for)g(compatibilit)m(y)j(with)d(the)h
-(Korn)e(shell;)j(ho)m(w-)630 3561 y(ev)m(er,)g(it)g(has)f(b)s(een)g
-(deprecated)h(in)f(fa)m(v)m(or)i(of)e(the)h Fs(declare)d
-Ft(builtin)i(command.)150 3722 y Fs(ulimit)870 3857 y(ulimit)46
-b([-abcdefilmnpqrstuvxHST])41 b([)p Fi(limit)11 b Fs(])630
-3993 y(ulimit)25 b Ft(pro)m(vides)h(con)m(trol)i(o)m(v)m(er)g(the)f
-(resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)f(started)h(b)m
-(y)g(the)630 4102 y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e
-(con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m
-(terpreted)630 4212 y(as)i(follo)m(ws:)630 4373 y Fs(-S)384
-b Ft(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h
-(with)e(a)h(resource.)630 4534 y Fs(-H)384 b Ft(Change)30
-b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h
-(resource.)630 4695 y Fs(-a)384 b Ft(All)31 b(curren)m(t)f(limits)h
-(are)g(rep)s(orted.)630 4856 y Fs(-b)384 b Ft(The)30
-b(maxim)m(um)g(so)s(c)m(k)m(et)i(bu\013er)e(size.)630
-5018 y Fs(-c)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g(core)g(\014les)
-f(created.)630 5179 y Fs(-d)384 b Ft(The)30 b(maxim)m(um)g(size)h(of)g
-(a)g(pro)s(cess's)f(data)h(segmen)m(t.)630 5340 y Fs(-e)384
-b Ft(The)30 b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p
-Fs(")p Ft(nice)p Fs(")p Ft(\).)p eop end
-%%Page: 53 59
-TeXDict begin 53 58 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y Fs(-f)384
-b Ft(The)30 b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)
-g(shell)h(and)f(its)h(c)m(hildren.)630 484 y Fs(-i)384
-b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e
-(signals.)630 668 y Fs(-l)384 b Ft(The)30 b(maxim)m(um)g(size)h(that)g
-(ma)m(y)g(b)s(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8
-b(.)630 853 y Fs(-m)384 b Ft(The)36 b(maxim)m(um)g(residen)m(t)h(set)g
-(size)g(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110
-963 y(limit\).)630 1148 y Fs(-n)384 b Ft(The)38 b(maxim)m(um)h(n)m(um)m
-(b)s(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)
-1110 1257 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31
-b(to)g(b)s(e)e(set\).)630 1442 y Fs(-p)384 b Ft(The)30
-b(pip)s(e)f(bu\013er)h(size.)630 1627 y Fs(-q)384 b Ft(The)30
-b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(in)f(POSIX)f(message)j
-(queues.)630 1812 y Fs(-r)384 b Ft(The)30 b(maxim)m(um)g(real-time)i
-(sc)m(heduling)f(priorit)m(y)-8 b(.)630 1996 y Fs(-s)384
-b Ft(The)30 b(maxim)m(um)g(stac)m(k)i(size.)630 2181
-y Fs(-t)384 b Ft(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h
-(in)f(seconds.)630 2366 y Fs(-u)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m
-(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i
-(user.)630 2551 y Fs(-v)384 b Ft(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h
-(virtual)f(memory)g(a)m(v)-5 b(ailable)44 b(to)e(the)g(shell,)1110
-2660 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
-2845 y Fs(-x)384 b Ft(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
-(\014le)f(lo)s(c)m(ks.)630 3030 y Fs(-T)384 b Ft(The)30
-b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 3215
-y(If)i Fq(limit)j Ft(is)e(giv)m(en,)h(it)f(is)g(the)g(new)f(v)-5
-b(alue)34 b(of)f(the)h(sp)s(eci\014ed)f(resource;)i(the)f(sp)s(ecial)g
-Fq(limit)630 3324 y Ft(v)-5 b(alues)27 b Fs(hard)p Ft(,)g
-Fs(soft)p Ft(,)g(and)g Fs(unlimited)d Ft(stand)j(for)g(the)g(curren)m
-(t)g(hard)f(limit,)j(the)e(curren)m(t)630 3434 y(soft)38
-b(limit,)j(and)d(no)f(limit,)k(resp)s(ectiv)m(ely)-8
-b(.)66 b(A)38 b(hard)f(limit)h(cannot)h(b)s(e)e(increased)i(b)m(y)f(a)
-630 3544 y(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)k(a)c(soft)g
-(limit)h(ma)m(y)g(b)s(e)e(increased)h(up)f(to)i(the)f(v)-5
-b(alue)38 b(of)630 3653 y(the)c(hard)f(limit.)51 b(Otherwise,)35
-b(the)f(curren)m(t)f(v)-5 b(alue)35 b(of)f(the)f(soft)i(limit)f(for)g
-(the)g(sp)s(eci\014ed)630 3763 y(resource)27 b(is)h(prin)m(ted,)f
-(unless)g(the)g(`)p Fs(-H)p Ft(')g(option)h(is)f(supplied.)38
-b(When)27 b(setting)h(new)f(limits,)630 3872 y(if)40
-b(neither)f(`)p Fs(-H)p Ft(')h(nor)f(`)p Fs(-S)p Ft(')h(is)f(supplied,)
-i(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)g(are)g(set.)69
-b(If)630 3982 y(no)35 b(option)h(is)f(giv)m(en,)j(then)d(`)p
-Fs(-f)p Ft(')g(is)g(assumed.)55 b(V)-8 b(alues)36 b(are)f(in)g(1024-b)m
-(yte)j(incremen)m(ts,)630 4092 y(except)d(for)f(`)p Fs(-t)p
-Ft(',)g(whic)m(h)g(is)g(in)g(seconds,)h(`)p Fs(-p)p Ft(',)g(whic)m(h)e
-(is)h(in)g(units)f(of)h(512-b)m(yte)i(blo)s(c)m(ks,)630
-4201 y(and)30 b(`)p Fs(-n)p Ft(')g(and)g(`)p Fs(-u)p
-Ft(',)g(whic)m(h)g(are)h(unscaled)f(v)-5 b(alues.)630
-4348 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5
-b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630
-4458 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
-150 4643 y Fs(unalias)870 4790 y(unalias)46 b([-a])g([)p
-Fi(name)57 b Fs(...)47 b(])630 4937 y Ft(Remo)m(v)m(e)39
-b(eac)m(h)f Fq(name)k Ft(from)36 b(the)h(list)h(of)f(aliases.)61
-b(If)36 b(`)p Fs(-a)p Ft(')h(is)g(supplied,)h(all)f(aliases)i(are)630
-5047 y(remo)m(v)m(ed.)j(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
-i(6.6)f([Aliases],)h(page)f(81.)150 5317 y Fr(4.3)68
-b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)p eop end
-%%Page: 54 60
-TeXDict begin 54 59 bop 150 -116 a Ft(54)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fj(4.3.1)63 b(The)41
-b(Set)g(Builtin)150 446 y Ft(This)35 b(builtin)h(is)g(so)g(complicated)
-i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59
-b Fs(set)35 b Ft(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150
-555 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
+4271 y(quences,)g(whic)m(h)f(are)g(con)m(v)m(erted)h(and)f(copied)g(to)
+g(the)g(standard)f(output,)i(and)f(format)630 4381 y(sp)s
+(eci\014cations,)j(eac)m(h)e(of)g(whic)m(h)f(causes)g(prin)m(ting)g(of)
+h(the)f(next)h(successiv)m(e)g Fr(argumen)m(t)p Fu(.)630
+4491 y(In)24 b(addition)h(to)g(the)g(standard)f Ft(printf\(1\))e
+Fu(formats,)27 b Ft(printf)c Fu(in)m(terprets)i(the)f(follo)m(wing)630
+4600 y(extensions:)630 4751 y Ft(\045b)384 b Fu(Causes)30
+b Ft(printf)e Fu(to)j(expand)f(bac)m(kslash)h(escap)s(e)f(sequences)h
+(in)f(the)g(corre-)1110 4861 y(sp)s(onding)19 b Fr(argumen)m(t)p
+Fu(,)24 b(except)e(that)g(`)p Ft(\\c)p Fu(')e(terminates)i(output,)h
+(bac)m(kslashes)1110 4970 y(in)k(`)p Ft(\\')p Fu(',)h(`)p
+Ft(\\")p Fu(',)g(and)f(`)p Ft(\\?)p Fu(')g(are)h(not)f(remo)m(v)m(ed,)j
+(and)c(o)s(ctal)j(escap)s(es)f(b)s(eginning)1110 5080
+y(with)i(`)p Ft(\\0)p Fu(')g(ma)m(y)h(con)m(tain)h(up)d(to)i(four)f
+(digits.)630 5230 y Ft(\045q)384 b Fu(Causes)32 b Ft(printf)e
+Fu(to)i(output)g(the)g(corresp)s(onding)f Fr(argumen)m(t)j
+Fu(in)d(a)i(format)1110 5340 y(that)e(can)g(b)s(e)e(reused)h(as)h
+(shell)f(input.)p eop end
+%%Page: 55 61
+TeXDict begin 55 60 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Ft(\045\()p
+Fj(datefmt)p Ft(\)T)1110 408 y Fu(Causes)29 b Ft(printf)e
+Fu(to)j(output)f(the)g(date-time)i(string)e(resulting)h(from)e(using)
+1110 518 y Fr(datefm)m(t)45 b Fu(as)d(a)g(format)g(string)g(for)g
+Ft(strftime)p Fu(\(3\).)74 b(The)41 b(corresp)s(onding)1110
+628 y Fr(argumen)m(t)h Fu(is)e(an)g(in)m(teger)i(represen)m(ting)e(the)
+g(n)m(um)m(b)s(er)f(of)h(seconds)g(since)1110 737 y(the)24
+b(ep)s(o)s(c)m(h.)38 b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f(v)-5
+b(alues)24 b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25 b(represen)m(ts)1110
+847 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i(represen)m(ts)f(the)g
+(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.)1110
+956 y(If)38 b(no)g(argumen)m(t)h(is)f(sp)s(eci\014ed,)i(con)m(v)m
+(ersion)f(b)s(eha)m(v)m(es)g(as)g(if)f(-1)h(had)f(b)s(een)1110
+1066 y(giv)m(en.)k(This)29 b(is)i(an)f(exception)i(to)f(the)f(usual)g
+Ft(printf)f Fu(b)s(eha)m(vior.)630 1230 y(Argumen)m(ts)f(to)h
+(non-string)e(format)i(sp)s(eci\014ers)e(are)h(treated)h(as)g(C)e
+(language)j(constan)m(ts,)630 1340 y(except)22 b(that)g(a)g(leading)g
+(plus)e(or)h(min)m(us)f(sign)i(is)f(allo)m(w)m(ed,)k(and)c(if)g(the)g
+(leading)h(c)m(haracter)h(is)630 1450 y(a)i(single)g(or)f(double)h
+(quote,)h(the)f(v)-5 b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5
+b(alue)25 b(of)f(the)h(follo)m(wing)h(c)m(haracter.)630
+1587 y(The)31 b Fr(format)i Fu(is)f(reused)e(as)i(necessary)f(to)i
+(consume)e(all)h(of)f(the)h Fr(argumen)m(ts)p Fu(.)44
+b(If)30 b(the)i Fr(for-)630 1696 y(mat)c Fu(requires)e(more)g
+Fr(argumen)m(ts)k Fu(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
+(sp)s(eci\014cations)630 1806 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
+(v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
+s(een)g(supplied.)38 b(The)630 1915 y(return)29 b(v)-5
+b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
+2080 y Ft(read)870 2217 y(read)47 b([-ers])f([-a)h Fj(aname)p
+Ft(])f([-d)h Fj(delim)p Ft(])f([-i)h Fj(text)p Ft(])f([-n)h
+Fj(nchars)p Ft(])1061 2326 y([-N)g Fj(nchars)p Ft(])f([-p)h
+Fj(prompt)p Ft(])e([-t)i Fj(timeout)p Ft(])f([-u)h Fj(fd)p
+Ft(])g([)p Fj(name)f Ft(...)o(])630 2463 y Fu(One)26
+b(line)h(is)g(read)f(from)h(the)f(standard)g(input,)h(or)g(from)f(the)h
+(\014le)f(descriptor)h Fr(fd)i Fu(supplied)630 2573 y(as)23
+b(an)g(argumen)m(t)h(to)f(the)h Ft(-u)e Fu(option,)j(and)e(the)g
+(\014rst)f(w)m(ord)h(is)g(assigned)g(to)h(the)f(\014rst)g
+Fr(name)p Fu(,)630 2682 y(the)32 b(second)g(w)m(ord)f(to)i(the)f
+(second)g Fr(name)p Fu(,)g(and)g(so)g(on,)g(with)f(lefto)m(v)m(er)j(w)m
+(ords)e(and)f(their)630 2792 y(in)m(terv)m(ening)f(separators)g
+(assigned)g(to)g(the)g(last)g Fr(name)p Fu(.)40 b(If)29
+b(there)h(are)g(few)m(er)f(w)m(ords)g(read)630 2902 y(from)36
+b(the)i(input)d(stream)j(than)e(names,)j(the)e(remaining)g(names)g(are)
+g(assigned)h(empt)m(y)630 3011 y(v)-5 b(alues.)40 b(The)26
+b(c)m(haracters)j(in)d(the)i(v)-5 b(alue)27 b(of)g(the)g
+Ft(IFS)f Fu(v)-5 b(ariable)28 b(are)f(used)g(to)g(split)g(the)h(line)
+630 3121 y(in)m(to)36 b(w)m(ords)e(using)g(the)h(same)g(rules)f(the)h
+(shell)g(uses)f(for)g(expansion)h(\(describ)s(ed)f(ab)s(o)m(v)m(e)630
+3230 y(in)j(Section)h(3.5.7)i([W)-8 b(ord)38 b(Splitting],)i(page)e
+(29\).)63 b(The)37 b(bac)m(kslash)h(c)m(haracter)h(`)p
+Ft(\\)p Fu(')e(ma)m(y)630 3340 y(b)s(e)28 b(used)g(to)i(remo)m(v)m(e)g
+(an)m(y)f(sp)s(ecial)h(meaning)f(for)g(the)g(next)g(c)m(haracter)h
+(read)f(and)f(for)h(line)630 3450 y(con)m(tin)m(uation.)42
+b(If)27 b(no)h(names)f(are)h(supplied,)g(the)f(line)h(read)g(is)g
+(assigned)g(to)g(the)g(v)-5 b(ariable)630 3559 y Ft(REPLY)p
+Fu(.)37 b(The)23 b(return)f(co)s(de)h(is)g(zero,)j(unless)d
+(end-of-\014le)g(is)h(encoun)m(tered,)h Ft(read)d Fu(times)i(out)630
+3669 y(\(in)k(whic)m(h)f(case)i(the)e(return)g(co)s(de)h(is)f(greater)i
+(than)f(128\),)i(a)e(v)-5 b(ariable)28 b(assignmen)m(t)g(error)630
+3778 y(\(suc)m(h)g(as)h(assigning)g(to)g(a)f(readonly)h(v)-5
+b(ariable\))29 b(o)s(ccurs,)g(or)f(an)g(in)m(v)-5 b(alid)29
+b(\014le)g(descriptor)f(is)630 3888 y(supplied)h(as)i(the)f(argumen)m
+(t)h(to)g Ft(-u)p Fu(.)630 4025 y(Options,)f(if)h(supplied,)e(ha)m(v)m
+(e)i(the)g(follo)m(wing)h(meanings:)630 4189 y Ft(-a)e
+Fj(aname)114 b Fu(The)34 b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m
+(tial)h(indices)e(of)g(the)g(arra)m(y)h(v)-5 b(ariable)1110
+4299 y Fr(aname)p Fu(,)29 b(starting)h(at)f(0.)40 b(All)29
+b(elemen)m(ts)h(are)e(remo)m(v)m(ed)i(from)d Fr(aname)34
+b Fu(b)s(efore)1110 4408 y(the)d(assignmen)m(t.)41 b(Other)30
+b Fr(name)36 b Fu(argumen)m(ts)30 b(are)h(ignored.)630
+4573 y Ft(-d)f Fj(delim)114 b Fu(The)41 b(\014rst)h(c)m(haracter)h(of)f
+Fr(delim)g Fu(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
+4682 y(rather)30 b(than)g(newline.)630 4847 y Ft(-e)384
+b Fu(Readline)46 b(\(see)g(Chapter)e(8)h([Command)f(Line)h(Editing],)50
+b(page)45 b(101\))i(is)1110 4956 y(used)37 b(to)i(obtain)g(the)f(line.)
+65 b(Readline)39 b(uses)e(the)i(curren)m(t)f(\(or)g(default,)j(if)1110
+5066 y(line)31 b(editing)g(w)m(as)f(not)h(previously)f(activ)m(e\))j
+(editing)e(settings.)630 5230 y Ft(-i)f Fj(text)162 b
+Fu(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g(the)g(line,)j
+Fr(text)f Fu(is)e(placed)h(in)m(to)g(the)1110 5340 y(editing)31
+b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)p eop end
+%%Page: 56 62
+TeXDict begin 56 61 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(56)630 299 y Ft(-n)30
+b Fj(nchars)66 b Ft(read)38 b Fu(returns)f(after)j(reading)f
+Fr(nc)m(hars)j Fu(c)m(haracters)e(rather)f(than)g(w)m(aiting)1110
+408 y(for)g(a)h(complete)h(line)f(of)f(input,)i(but)e(honor)g(a)h
+(delimiter)g(if)f(few)m(er)h(than)1110 518 y Fr(nc)m(hars)34
+b Fu(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g(delimiter.)630
+673 y Ft(-N)g Fj(nchars)66 b Ft(read)39 b Fu(returns)f(after)j(reading)
+e(exactly)j Fr(nc)m(hars)h Fu(c)m(haracters)f(rather)d(than)1110
+783 y(w)m(aiting)32 b(for)f(a)g(complete)i(line)e(of)g(input,)g(unless)
+f(EOF)h(is)g(encoun)m(tered)g(or)1110 892 y Ft(read)f
+Fu(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f(encoun)m(tered)g
+(in)f(the)g(input)g(are)1110 1002 y(not)g(treated)h(sp)s(ecially)f(and)
+f(do)h(not)g(cause)g Ft(read)e Fu(to)j(return)d(un)m(til)i
+Fr(nc)m(hars)1110 1112 y Fu(c)m(haracters)h(are)f(read.)630
+1267 y Ft(-p)f Fj(prompt)66 b Fu(Displa)m(y)38 b Fr(prompt)p
+Fu(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d(attempting)i(to)
+1110 1377 y(read)f(an)m(y)h(input.)60 b(The)37 b(prompt)g(is)g(displa)m
+(y)m(ed)h(only)f(if)g(input)g(is)g(coming)1110 1486 y(from)30
+b(a)h(terminal.)630 1641 y Ft(-r)384 b Fu(If)21 b(this)h(option)g(is)f
+(giv)m(en,)k(bac)m(kslash)d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h
+(c)m(haracter.)1110 1751 y(The)30 b(bac)m(kslash)i(is)f(considered)g
+(to)h(b)s(e)e(part)h(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110
+1861 y(bac)m(kslash-newline)f(pair)f(ma)m(y)h(not)g(b)s(e)f(used)f(as)i
+(a)g(line)f(con)m(tin)m(uation.)630 2016 y Ft(-s)384
+b Fu(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i(coming)g(from)f
+(a)h(terminal,)h(c)m(haracters)g(are)f(not)1110 2125
+y(ec)m(ho)s(ed.)630 2281 y Ft(-t)i Fj(timeout)1110 2390
+y Fu(Cause)42 b Ft(read)g Fu(to)h(time)h(out)f(and)f(return)f(failure)i
+(if)g(a)g(complete)h(line)f(of)1110 2500 y(input)26 b(\(or)h(a)g(sp)s
+(eci\014ed)f(n)m(um)m(b)s(er)g(of)h(c)m(haracters\))h(is)f(not)g(read)g
+(within)f Fr(time-)1110 2609 y(out)37 b Fu(seconds.)53
+b Fr(timeout)38 b Fu(ma)m(y)d(b)s(e)f(a)h(decimal)h(n)m(um)m(b)s(er)d
+(with)h(a)h(fractional)1110 2719 y(p)s(ortion)29 b(follo)m(wing)h(the)f
+(decimal)h(p)s(oin)m(t.)40 b(This)29 b(option)g(is)g(only)g(e\013ectiv)
+m(e)j(if)1110 2829 y Ft(read)j Fu(is)i(reading)g(input)e(from)h(a)h
+(terminal,)i(pip)s(e,)e(or)g(other)f(sp)s(ecial)i(\014le;)1110
+2938 y(it)31 b(has)g(no)g(e\013ect)h(when)e(reading)h(from)g(regular)g
+(\014les.)42 b(If)30 b Ft(read)g Fu(times)h(out,)1110
+3048 y Ft(read)d Fu(sa)m(v)m(es)j(an)m(y)f(partial)h(input)d(read)i(in)
+m(to)h(the)e(sp)s(eci\014ed)g(v)-5 b(ariable)31 b Fr(name)p
+Fu(.)1110 3157 y(If)k Fr(timeout)j Fu(is)e(0,)h Ft(read)e
+Fu(returns)f(immediately)-8 b(,)39 b(without)c(trying)h(to)g(read)1110
+3267 y(and)30 b(data.)44 b(The)30 b(exit)i(status)f(is)g(0)g(if)g
+(input)f(is)h(a)m(v)-5 b(ailable)34 b(on)c(the)i(sp)s(eci\014ed)1110
+3377 y(\014le)g(descriptor,)g(non-zero)h(otherwise.)46
+b(The)31 b(exit)i(status)f(is)g(greater)h(than)1110 3486
+y(128)f(if)e(the)h(timeout)g(is)f(exceeded.)630 3641
+y Ft(-u)g Fj(fd)258 b Fu(Read)31 b(input)e(from)h(\014le)g(descriptor)h
+Fr(fd)p Fu(.)150 3797 y Ft(readarray)870 3906 y(readarray)45
+b([-n)i Fj(count)p Ft(])f([-O)h Fj(origin)p Ft(])f([-s)h
+Fj(count)p Ft(])f([-t])h([-u)g Fj(fd)p Ft(])1061 4016
+y([-C)g Fj(callback)p Ft(])e([-c)i Fj(quantum)p Ft(])f([)p
+Fj(array)p Ft(])630 4148 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e
+(input)g(in)m(to)j(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38
+b Fr(arra)m(y)p Fu(,)i(or)630 4258 y(from)30 b(\014le)g(descriptor)h
+Fr(fd)i Fu(if)d(the)h Ft(-u)e Fu(option)i(is)g(supplied.)630
+4390 y(A)f(synon)m(ym)g(for)g Ft(mapfile)p Fu(.)150 4545
+y Ft(source)870 4678 y(source)46 b Fj(filename)630 4810
+y Fu(A)30 b(synon)m(ym)g(for)g Ft(.)g Fu(\(see)i(Section)f(4.1)g
+([Bourne)g(Shell)f(Builtins],)h(page)g(41\).)150 4966
+y Ft(type)870 5098 y(type)47 b([-afptP])e([)p Fj(name)i
+Ft(...)o(])630 5230 y Fu(F)-8 b(or)42 b(eac)m(h)g Fr(name)p
+Fu(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m(terpreted)g(if)
+g(used)f(as)i(a)f(command)630 5340 y(name.)p eop end
+%%Page: 57 63
+TeXDict begin 57 62 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y(If)41
+b(the)g Ft(-t)g Fu(option)h(is)f(used,)j Ft(type)c Fu(prin)m(ts)h(a)h
+(single)g(w)m(ord)f(whic)m(h)g(is)g(one)h(of)g(`)p Ft(alias)p
+Fu(',)630 408 y(`)p Ft(function)p Fu(',)32 b(`)p Ft(builtin)p
+Fu(',)g(`)p Ft(file)p Fu(')g(or)h(`)p Ft(keyword)p Fu(',)f(if)h
+Fr(name)38 b Fu(is)33 b(an)f(alias,)j(shell)e(function,)630
+518 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h(reserv)m(ed)g(w)
+m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55 b(If)34 b(the)h
+Fr(name)40 b Fu(is)35 b(not)630 628 y(found,)29 b(then)h(nothing)h(is)f
+(prin)m(ted,)g(and)g Ft(type)f Fu(returns)g(a)i(failure)g(status.)630
+765 y(If)25 b(the)g Ft(-p)g Fu(option)h(is)f(used,)h
+Ft(type)e Fu(either)h(returns)g(the)g(name)g(of)h(the)f(disk)g(\014le)g
+(that)h(w)m(ould)630 874 y(b)s(e)k(executed,)h(or)g(nothing)f(if)g
+Ft(-t)g Fu(w)m(ould)g(not)h(return)e(`)p Ft(file)p Fu('.)630
+1011 y(The)h Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m(h)h(for)g
+(eac)m(h)g Fr(name)p Fu(,)g(ev)m(en)g(if)g Ft(-t)f Fu(w)m(ould)g(not)h
+(return)630 1121 y(`)p Ft(file)p Fu('.)630 1258 y(If)f(a)g(command)g
+(is)g(hashed,)f Ft(-p)h Fu(and)f Ft(-P)g Fu(prin)m(t)h(the)g(hashed)f
+(v)-5 b(alue,)31 b(whic)m(h)f(is)g(not)g(neces-)630 1367
+y(sarily)h(the)f(\014le)h(that)g(app)s(ears)e(\014rst)h(in)g
+Ft($PATH)p Fu(.)630 1504 y(If)22 b(the)i Ft(-a)e Fu(option)h(is)g
+(used,)h Ft(type)e Fu(returns)f(all)j(of)f(the)g(places)h(that)f(con)m
+(tain)i(an)d(executable)630 1614 y(named)32 b Fr(\014le)p
+Fu(.)49 b(This)32 b(includes)h(aliases)h(and)e(functions,)i(if)f(and)f
+(only)h(if)g(the)g Ft(-p)f Fu(option)i(is)630 1724 y(not)d(also)g
+(used.)630 1861 y(If)f(the)g Ft(-f)g Fu(option)g(is)h(used,)e
+Ft(type)g Fu(do)s(es)h(not)h(attempt)g(to)g(\014nd)d(shell)j
+(functions,)f(as)g(with)630 1970 y(the)h Ft(command)d
+Fu(builtin.)630 2107 y(The)j(return)f(status)h(is)g(zero)h(if)f(all)h
+(of)f(the)h Fr(names)i Fu(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h
+(not)630 2217 y(found.)150 2381 y Ft(typeset)870 2518
+y(typeset)46 b([-afFgrxilnrtux])d([-p])k([)p Fj(name)p
+Ft([=)p Fj(value)p Ft(])d(...)o(])630 2655 y Fu(The)31
+b Ft(typeset)e Fu(command)i(is)g(supplied)f(for)h(compatibilit)m(y)i
+(with)e(the)g(Korn)f(shell.)44 b(It)31 b(is)630 2765
+y(a)g(synon)m(ym)f(for)g(the)g Ft(declare)f Fu(builtin)h(command.)150
+2929 y Ft(ulimit)870 3066 y(ulimit)46 b([-abcdefilmnpqrstuvxHST])41
+b([)p Fj(limit)p Ft(])630 3203 y(ulimit)25 b Fu(pro)m(vides)h(con)m
+(trol)i(o)m(v)m(er)g(the)f(resources)f(a)m(v)-5 b(ailable)29
+b(to)e(pro)s(cesses)f(started)h(b)m(y)g(the)630 3313
+y(shell,)i(on)f(systems)g(that)h(allo)m(w)h(suc)m(h)e(con)m(trol.)41
+b(If)28 b(an)g(option)h(is)f(giv)m(en,)i(it)e(is)h(in)m(terpreted)630
+3422 y(as)i(follo)m(ws:)630 3587 y Ft(-S)384 b Fu(Change)30
+b(and)g(rep)s(ort)g(the)g(soft)h(limit)g(asso)s(ciated)h(with)e(a)h
+(resource.)630 3751 y Ft(-H)384 b Fu(Change)30 b(and)g(rep)s(ort)g(the)
+g(hard)g(limit)h(asso)s(ciated)h(with)e(a)h(resource.)630
+3915 y Ft(-a)384 b Fu(All)31 b(curren)m(t)f(limits)h(are)g(rep)s
+(orted.)630 4080 y Ft(-b)384 b Fu(The)30 b(maxim)m(um)g(so)s(c)m(k)m
+(et)i(bu\013er)e(size.)630 4244 y Ft(-c)384 b Fu(The)30
+b(maxim)m(um)g(size)h(of)g(core)g(\014les)f(created.)630
+4408 y Ft(-d)384 b Fu(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s
+(cess's)f(data)h(segmen)m(t.)630 4573 y Ft(-e)384 b Fu(The)30
+b(maxim)m(um)g(sc)m(heduling)h(priorit)m(y)f(\()p Ft(")p
+Fu(nice)p Ft(")p Fu(\).)630 4737 y Ft(-f)384 b Fu(The)30
+b(maxim)m(um)g(size)h(of)g(\014les)f(written)h(b)m(y)f(the)g(shell)h
+(and)f(its)h(c)m(hildren.)630 4902 y Ft(-i)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s(ending)e(signals.)630
+5066 y Ft(-l)384 b Fu(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
+(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 5230
+y Ft(-m)384 b Fu(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
+(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 5340
+y(limit\).)p eop end
+%%Page: 58 64
+TeXDict begin 58 63 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y Ft(-n)384
+b Fu(The)38 b(maxim)m(um)h(n)m(um)m(b)s(er)e(of)i(op)s(en)f(\014le)h
+(descriptors)g(\(most)g(systems)g(do)1110 408 y(not)31
+b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)630
+567 y Ft(-p)384 b Fu(The)30 b(pip)s(e)f(bu\013er)h(size.)630
+726 y Ft(-q)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
+(ytes)g(in)f(POSIX)f(message)j(queues.)630 885 y Ft(-r)384
+b Fu(The)30 b(maxim)m(um)g(real-time)i(sc)m(heduling)f(priorit)m(y)-8
+b(.)630 1043 y Ft(-s)384 b Fu(The)30 b(maxim)m(um)g(stac)m(k)i(size.)
+630 1202 y Ft(-t)384 b Fu(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g
+(time)h(in)f(seconds.)630 1361 y Ft(-u)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pro)s(cesses)f(a)m(v)-5
+b(ailable)33 b(to)e(a)f(single)i(user.)630 1520 y Ft(-v)384
+b Fu(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f(memory)g(a)m(v)-5
+b(ailable)44 b(to)e(the)g(shell,)1110 1629 y(and,)30
+b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
+1788 y Ft(-x)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+(\014le)f(lo)s(c)m(ks.)630 1947 y Ft(-T)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 2105
+y(If)36 b Fr(limit)k Fu(is)c(giv)m(en,)k(and)c(the)h
+Ft(-a)f Fu(option)h(is)f(not)h(used,)h Fr(limit)h Fu(is)e(the)g(new)f
+(v)-5 b(alue)37 b(of)g(the)630 2215 y(sp)s(eci\014ed)c(resource.)51
+b(The)34 b(sp)s(ecial)g Fr(limit)j Fu(v)-5 b(alues)34
+b Ft(hard)p Fu(,)g Ft(soft)p Fu(,)g(and)f Ft(unlimited)e
+Fu(stand)630 2325 y(for)h(the)g(curren)m(t)g(hard)f(limit,)i(the)g
+(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,)h(resp)s(ectiv)m(ely)-8
+b(.)48 b(A)630 2434 y(hard)37 b(limit)h(cannot)h(b)s(e)e(increased)h(b)
+m(y)f(a)h(non-ro)s(ot)g(user)f(once)i(it)f(is)g(set;)k(a)c(soft)g
+(limit)630 2544 y(ma)m(y)j(b)s(e)e(increased)i(up)e(to)h(the)h(v)-5
+b(alue)40 b(of)g(the)h(hard)e(limit.)70 b(Otherwise,)43
+b(the)d(curren)m(t)630 2653 y(v)-5 b(alue)29 b(of)h(the)f(soft)g(limit)
+h(for)e(the)h(sp)s(eci\014ed)g(resource)g(is)g(prin)m(ted,)g(unless)f
+(the)h Ft(-H)f Fu(option)630 2763 y(is)h(supplied.)39
+b(When)29 b(setting)h(new)f(limits,)h(if)f(neither)g
+Ft(-H)g Fu(nor)f Ft(-S)h Fu(is)g(supplied,)f(b)s(oth)h(the)630
+2872 y(hard)i(and)h(soft)h(limits)g(are)f(set.)48 b(If)31
+b(no)i(option)f(is)h(giv)m(en,)h(then)e Ft(-f)g Fu(is)g(assumed.)46
+b(V)-8 b(alues)630 2982 y(are)31 b(in)f(1024-b)m(yte)j(incremen)m(ts,)e
+(except)g(for)f Ft(-t)p Fu(,)g(whic)m(h)g(is)g(in)g(seconds;)h
+Ft(-p)p Fu(,)f(whic)m(h)g(is)g(in)630 3092 y(units)g(of)g(512-b)m(yte)j
+(blo)s(c)m(ks;)e(and)f Ft(-T)p Fu(,)g Ft(-b)p Fu(,)g
+Ft(-n)g Fu(and)f Ft(-u)p Fu(,)h(whic)m(h)g(are)h(unscaled)f(v)-5
+b(alues.)630 3226 y(The)34 b(return)g(status)h(is)f(zero)i(unless)e(an)
+g(in)m(v)-5 b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h
+(or)630 3335 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f
+(limit.)150 3494 y Ft(unalias)870 3628 y(unalias)46 b([-a])g([)p
+Fj(name)h Ft(...)g(])630 3762 y Fu(Remo)m(v)m(e)42 b(eac)m(h)f
+Fr(name)k Fu(from)39 b(the)i(list)f(of)g(aliases.)71
+b(If)40 b Ft(-a)f Fu(is)h(supplied,)h(all)g(aliases)h(are)630
+3872 y(remo)m(v)m(ed.)g(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
+i(6.6)f([Aliases],)h(page)f(88.)150 4104 y Fs(4.3)68
+b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 4328 y Fk(4.3.1)63
+b(The)41 b(Set)g(Builtin)150 4475 y Fu(This)35 b(builtin)h(is)g(so)g
+(complicated)i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59
+b Ft(set)35 b Fu(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150
+4584 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
(p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
-(and)150 665 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
-834 y Fs(set)870 972 y(set)47 b([--abefhkmnptuvxBCEHPT])41
-b([-o)47 b Fi(option-name)11 b Fs(])44 b([)p Fi(argument)56
-b Fs(...)o(])870 1082 y(set)47 b([+abefhkmnptuvxBCEHPT])42
-b([+o)47 b Fi(option-name)11 b Fs(])43 b([)p Fi(argument)56
-b Fs(...)o(])630 1219 y Ft(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
-(are)g(supplied,)g Fs(set)f Ft(displa)m(ys)g(the)h(names)g(and)f(v)-5
-b(alues)23 b(of)g(all)630 1329 y(shell)j(v)-5 b(ariables)27
+(and)150 4694 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
+4852 y Ft(set)870 4987 y(set)47 b([--abefhkmnptuvxBCEHPT])41
+b([-o)47 b Fj(option-name)p Ft(])e([)p Fj(argument)g
+Ft(...)o(])870 5096 y(set)i([+abefhkmnptuvxBCEHPT])42
+b([+o)47 b Fj(option-name)p Ft(])d([)p Fj(argument)h
+Ft(...)o(])630 5230 y Fu(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+(are)g(supplied,)g Ft(set)f Fu(displa)m(ys)g(the)h(names)g(and)f(v)-5
+b(alues)23 b(of)g(all)630 5340 y(shell)j(v)-5 b(ariables)27
b(and)e(functions,)h(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s
-(cale,)k(in)c(a)i(format)630 1439 y(that)i(ma)m(y)h(b)s(e)e(reused)g
-(as)h(input)f(for)h(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h
-(v)-5 b(ariables.)630 1548 y(Read-only)37 b(v)-5 b(ariables)37
-b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fl(posix)g Ft(mo)s(de,)i(only)f
-(shell)f(v)-5 b(ariables)38 b(are)630 1658 y(listed.)630
-1796 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
-(shell)h(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630
-1905 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
-2071 y Fs(-a)384 b Ft(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
+(cale,)k(in)c(a)i(format)p eop end
+%%Page: 59 65
+TeXDict begin 59 64 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(59)630 299 y(that)29
+b(ma)m(y)h(b)s(e)e(reused)g(as)h(input)f(for)h(setting)h(or)e
+(resetting)i(the)f(curren)m(tly-set)h(v)-5 b(ariables.)630
+408 y(Read-only)37 b(v)-5 b(ariables)37 b(cannot)h(b)s(e)e(reset.)59
+b(In)36 b Fm(posix)g Fu(mo)s(de,)i(only)f(shell)f(v)-5
+b(ariables)38 b(are)630 518 y(listed.)630 647 y(When)29
+b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f(shell)h
+(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630 757
+y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+905 y Ft(-a)384 b Fu(Mark)32 b(v)-5 b(ariables)33 b(and)e(function)h
(whic)m(h)g(are)g(mo)s(di\014ed)f(or)h(created)h(for)f(ex-)1110
-2181 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
-(commands.)630 2347 y Fs(-b)384 b Ft(Cause)44 b(the)h(status)g(of)f
+1014 y(p)s(ort)e(to)h(the)f(en)m(vironmen)m(t)h(of)g(subsequen)m(t)f
+(commands.)630 1163 y Ft(-b)384 b Fu(Cause)44 b(the)h(status)g(of)f
(terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110
-2456 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)
-g(the)g(next)g(primary)g(prompt.)630 2622 y Fs(-e)384
-b Ft(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g
-(3.2.2)h([Pip)s(elines],)1110 2732 y(page)56 b(8\),)62
+1272 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)
+g(the)g(next)g(primary)g(prompt.)630 1421 y Ft(-e)384
+b Fu(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g
+(3.2.2)h([Pip)s(elines],)1110 1530 y(page)56 b(8\),)62
b(whic)m(h)55 b(ma)m(y)h(consist)f(of)h(a)f(single)h(simple)f(command)g
-(\(see)1110 2841 y(Section)43 b(3.2.1)i([Simple)d(Commands],)j(page)e
-(8\),)k(a)c(subshell)e(command)1110 2951 y(enclosed)32
-b(in)f(paren)m(theses)h(\(see)h(Section)f(3.2.4.3)i([Command)d
-(Grouping],)1110 3060 y(page)h(13\),)h(or)e(one)g(of)h(the)f(commands)g
-(executed)h(as)f(part)g(of)h(a)f(command)1110 3170 y(list)37
-b(enclosed)g(b)m(y)f(braces)g(\(see)h(Section)g(3.2.4.3)h([Command)e
-(Grouping],)1110 3280 y(page)48 b(13\))g(returns)d(a)j(non-zero)f
-(status.)91 b(The)46 b(shell)h(do)s(es)g(not)g(exit)h(if)1110
-3389 y(the)39 b(command)f(that)h(fails)g(is)f(part)g(of)h(the)f
-(command)h(list)g(immediately)1110 3499 y(follo)m(wing)47
-b(a)f Fs(while)e Ft(or)h Fs(until)f Ft(k)m(eyw)m(ord,)50
-b(part)45 b(of)h(the)g(test)g(in)f(an)h Fs(if)1110 3608
-y Ft(statemen)m(t,)31 b(part)d(of)h(an)m(y)g(command)f(executed)h(in)g
-(a)g Fs(&&)e Ft(or)i Fs(||)f Ft(list)h(except)1110 3718
-y(the)48 b(command)h(follo)m(wing)g(the)g(\014nal)f Fs(&&)f
-Ft(or)i Fs(||)p Ft(,)j(an)m(y)d(command)f(in)g(a)1110
-3828 y(pip)s(eline)39 b(but)f(the)i(last,)i(or)d(if)g(the)h(command's)f
-(return)f(status)h(is)g(b)s(eing)1110 3937 y(in)m(v)m(erted)33
-b(with)e Fs(!)p Ft(.)45 b(A)32 b(trap)g(on)f Fs(ERR)p
-Ft(,)h(if)g(set,)h(is)f(executed)g(b)s(efore)g(the)g(shell)1110
-4047 y(exits.)1110 4185 y(This)e(option)h(applies)f(to)h(the)g(shell)g
-(en)m(vironmen)m(t)g(and)f(eac)m(h)h(subshell)f(en-)1110
-4294 y(vironmen)m(t)j(separately)i(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En-)1110 4404 y(vironmen)m(t],)i(page)f(32\),)i(and)d(ma)m
-(y)h(cause)f(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110
-4513 y(cuting)d(all)g(the)g(commands)f(in)g(the)g(subshell.)630
-4679 y Fs(-f)384 b Ft(Disable)31 b(\014lename)g(expansion)f
-(\(globbing\).)630 4845 y Fs(-h)384 b Ft(Lo)s(cate)33
+(\(see)1110 1640 y(Section)30 b(3.2.1)i([Simple)d(Commands],)g(page)h
+(8\),)h(a)f(list)g(\(see)h(Section)f(3.2.3)1110 1749
+y([Lists],)66 b(page)59 b(9\),)67 b(or)58 b(a)h(comp)s(ound)e(command)h
+(\(see)h(Section)g(3.2.4)1110 1859 y([Comp)s(ound)67
+b(Commands],)77 b(page)69 b(9\))g(returns)e(a)i(non-zero)g(status.)1110
+1969 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f
+(that)h(fails)f(is)g(part)g(of)h(the)1110 2078 y(command)g(list)h
+(immediately)g(follo)m(wing)g(a)g Ft(while)e Fu(or)h
+Ft(until)e Fu(k)m(eyw)m(ord,)1110 2188 y(part)61 b(of)g(the)g(test)h
+(in)e(an)h Ft(if)f Fu(statemen)m(t,)71 b(part)61 b(of)g(an)m(y)g
+(command)1110 2297 y(executed)50 b(in)e(a)h Ft(&&)f Fu(or)h
+Ft(||)f Fu(list)h(except)g(the)g(command)g(follo)m(wing)h(the)1110
+2407 y(\014nal)37 b Ft(&&)g Fu(or)g Ft(||)p Fu(,)h(an)m(y)g(command)f
+(in)g(a)g(pip)s(eline)g(but)g(the)g(last,)j(or)e(if)f(the)1110
+2516 y(command's)c(return)f(status)h(is)g(b)s(eing)g(in)m(v)m(erted)h
+(with)e Ft(!)p Fu(.)48 b(If)33 b(a)g(comp)s(ound)1110
+2626 y(command)g(other)g(than)f(a)i(subshell)d(returns)h(a)h(non-zero)h
+(status)f(b)s(ecause)1110 2736 y(a)k(command)g(failed)g(while)g
+Ft(-e)f Fu(w)m(as)i(b)s(eing)e(ignored,)j(the)e(shell)g(do)s(es)g(not)
+1110 2845 y(exit.)42 b(A)30 b(trap)g(on)h Ft(ERR)p Fu(,)e(if)i(set,)g
+(is)f(executed)i(b)s(efore)e(the)g(shell)h(exits.)1110
+2974 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen)m(t)g
+(and)f(eac)m(h)h(subshell)f(en-)1110 3084 y(vironmen)m(t)j(separately)i
+(\(see)f(Section)g(3.7.3)h([Command)d(Execution)i(En-)1110
+3193 y(vironmen)m(t],)i(page)f(36\),)i(and)d(ma)m(y)h(cause)f
+(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 3303 y(cuting)d(all)g
+(the)g(commands)f(in)g(the)g(subshell.)1110 3432 y(If)41
+b(a)g(comp)s(ound)e(command)i(or)g(shell)g(function)g(executes)h(in)f
+(a)g(con)m(text)1110 3541 y(where)31 b Ft(-e)g Fu(is)g(b)s(eing)g
+(ignored,)h(none)f(of)h(the)f(commands)g(executed)h(within)1110
+3651 y(the)j(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g(will)
+h(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 3761 y Ft(-e)25
+b Fu(setting,)j(ev)m(en)e(if)g Ft(-e)f Fu(is)h(set)g(and)f(a)h(command)
+g(returns)e(a)i(failure)g(status.)1110 3870 y(If)32 b(a)i(comp)s(ound)d
+(command)i(or)g(shell)g(function)f(sets)i Ft(-e)e Fu(while)h(executing)
+1110 3980 y(in)40 b(a)h(con)m(text)i(where)d Ft(-e)g
+Fu(is)h(ignored,)j(that)d(setting)h(will)f(not)g(ha)m(v)m(e)h(an)m(y)
+1110 4089 y(e\013ect)g(un)m(til)e(the)h(comp)s(ound)e(command)h(or)g
+(the)g(command)g(con)m(taining)1110 4199 y(the)31 b(function)f(call)h
+(completes.)630 4347 y Ft(-f)384 b Fu(Disable)31 b(\014lename)g
+(expansion)f(\(globbing\).)630 4495 y Ft(-h)384 b Fu(Lo)s(cate)33
b(and)e(remem)m(b)s(er)h(\(hash\))g(commands)f(as)h(they)g(are)g(lo)s
-(ok)m(ed)h(up)e(for)1110 4955 y(execution.)42 b(This)29
-b(option)i(is)g(enabled)f(b)m(y)g(default.)630 5121 y
-Fs(-k)384 b Ft(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g
+(ok)m(ed)h(up)e(for)1110 4605 y(execution.)42 b(This)29
+b(option)i(is)g(enabled)f(b)m(y)g(default.)630 4753 y
+Ft(-k)384 b Fu(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g
(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
-5230 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
-(those)i(that)f(precede)g(the)1110 5340 y(command)30
-b(name.)p eop end
-%%Page: 55 61
-TeXDict begin 55 60 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Fs(-m)384
-b Ft(Job)30 b(con)m(trol)i(is)e(enabled)h(\(see)g(Chapter)f(7)g([Job)h
-(Con)m(trol],)g(page)g(91\).)630 463 y Fs(-n)384 b Ft(Read)21
-b(commands)f(but)g(do)h(not)g(execute)h(them;)i(this)d(ma)m(y)g(b)s(e)f
-(used)g(to)h(c)m(hec)m(k)1110 573 y(a)42 b(script)g(for)g(syn)m(tax)g
-(errors.)75 b(This)41 b(option)h(is)g(ignored)g(b)m(y)g(in)m(teractiv)m
-(e)1110 682 y(shells.)630 847 y Fs(-o)30 b Fi(option-name)1110
-956 y Ft(Set)h(the)f(option)h(corresp)s(onding)e(to)i
-Fq(option-name)5 b Ft(:)1110 1121 y Fs(allexport)1590
-1230 y Ft(Same)30 b(as)h Fs(-a)p Ft(.)1110 1395 y Fs(braceexpand)1590
-1504 y Ft(Same)f(as)h Fs(-B)p Ft(.)1110 1669 y Fs(emacs)240
-b Ft(Use)25 b(an)f Fs(emacs)p Ft(-st)m(yle)h(line)f(editing)h(in)m
-(terface)h(\(see)g(Chapter)e(8)1590 1778 y([Command)38
-b(Line)g(Editing],)i(page)f(95\).)66 b(This)37 b(also)i(a\013ects)1590
-1888 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
-Fs(read)f(-e)p Ft(.)1110 2052 y Fs(errexit)144 b Ft(Same)30
-b(as)h Fs(-e)p Ft(.)1110 2217 y Fs(errtrace)96 b Ft(Same)30
-b(as)h Fs(-E)p Ft(.)1110 2381 y Fs(functrace)1590 2491
-y Ft(Same)f(as)h Fs(-T)p Ft(.)1110 2655 y Fs(hashall)144
-b Ft(Same)30 b(as)h Fs(-h)p Ft(.)1110 2819 y Fs(histexpand)1590
-2929 y Ft(Same)f(as)h Fs(-H)p Ft(.)1110 3093 y Fs(history)144
-b Ft(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
-(Section)h(9.1)1590 3203 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(125.)60 b(This)36 b(option)h(is)f(on)1590 3313
-y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
-3477 y Fs(ignoreeof)1590 3587 y Ft(An)d(in)m(teractiv)m(e)j(shell)e
-(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 3751
-y Fs(keyword)144 b Ft(Same)30 b(as)h Fs(-k)p Ft(.)1110
-3915 y Fs(monitor)144 b Ft(Same)30 b(as)h Fs(-m)p Ft(.)1110
-4080 y Fs(noclobber)1590 4189 y Ft(Same)f(as)h Fs(-C)p
-Ft(.)1110 4354 y Fs(noexec)192 b Ft(Same)30 b(as)h Fs(-n)p
-Ft(.)1110 4518 y Fs(noglob)192 b Ft(Same)30 b(as)h Fs(-f)p
-Ft(.)1110 4682 y Fs(nolog)240 b Ft(Curren)m(tly)30 b(ignored.)1110
-4847 y Fs(notify)192 b Ft(Same)30 b(as)h Fs(-b)p Ft(.)1110
-5011 y Fs(nounset)144 b Ft(Same)30 b(as)h Fs(-u)p Ft(.)1110
-5176 y Fs(onecmd)192 b Ft(Same)30 b(as)h Fs(-t)p Ft(.)1110
-5340 y Fs(physical)96 b Ft(Same)30 b(as)h Fs(-P)p Ft(.)p
+4863 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
+(those)i(that)f(precede)g(the)1110 4973 y(command)30
+b(name.)630 5121 y Ft(-m)384 b Fu(Job)32 b(con)m(trol)h(is)f(enabled)g
+(\(see)h(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)e(97\).)47
+b(All)1110 5230 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s
+(cess)f(group.)40 b(When)27 b(a)h(bac)m(kground)f(job)1110
+5340 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m
+(taining)i(its)f(exit)g(status.)p eop end
+%%Page: 60 66
+TeXDict begin 60 65 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(60)630 299 y Ft(-n)384
+b Fu(Read)21 b(commands)f(but)g(do)h(not)g(execute)h(them;)i(this)d(ma)
+m(y)g(b)s(e)f(used)g(to)h(c)m(hec)m(k)1110 408 y(a)42
+b(script)g(for)g(syn)m(tax)g(errors.)75 b(This)41 b(option)h(is)g
+(ignored)g(b)m(y)g(in)m(teractiv)m(e)1110 518 y(shells.)630
+667 y Ft(-o)30 b Fj(option-name)1110 777 y Fu(Set)h(the)f(option)h
+(corresp)s(onding)e(to)i Fr(option-name)5 b Fu(:)1110
+927 y Ft(allexport)1590 1036 y Fu(Same)30 b(as)h Ft(-a)p
+Fu(.)1110 1186 y Ft(braceexpand)1590 1295 y Fu(Same)f(as)h
+Ft(-B)p Fu(.)1110 1445 y Ft(emacs)240 b Fu(Use)25 b(an)f
+Ft(emacs)p Fu(-st)m(yle)h(line)f(editing)h(in)m(terface)h(\(see)g
+(Chapter)e(8)1590 1554 y([Command)33 b(Line)g(Editing],)h(page)h
+(101\).)51 b(This)32 b(also)i(a\013ects)1590 1664 y(the)d(editing)g(in)
+m(terface)h(used)d(for)h Ft(read)f(-e)p Fu(.)1110 1813
+y Ft(errexit)144 b Fu(Same)30 b(as)h Ft(-e)p Fu(.)1110
+1963 y Ft(errtrace)96 b Fu(Same)30 b(as)h Ft(-E)p Fu(.)1110
+2112 y Ft(functrace)1590 2222 y Fu(Same)f(as)h Ft(-T)p
+Fu(.)1110 2371 y Ft(hashall)144 b Fu(Same)30 b(as)h Ft(-h)p
+Fu(.)1110 2521 y Ft(histexpand)1590 2630 y Fu(Same)f(as)h
+Ft(-H)p Fu(.)1110 2780 y Ft(history)144 b Fu(Enable)39
+b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h(Section)h(9.1)
+1590 2889 y([Bash)d(History)g(F)-8 b(acilities],)41 b(page)c(133.)60
+b(This)36 b(option)h(is)f(on)1590 2999 y(b)m(y)30 b(default)h(in)f(in)m
+(teractiv)m(e)j(shells.)1110 3148 y Ft(ignoreeof)1590
+3258 y Fu(An)d(in)m(teractiv)m(e)j(shell)e(will)g(not)f(exit)h(up)s(on)
+e(reading)i(EOF.)1110 3407 y Ft(keyword)144 b Fu(Same)30
+b(as)h Ft(-k)p Fu(.)1110 3557 y Ft(monitor)144 b Fu(Same)30
+b(as)h Ft(-m)p Fu(.)1110 3706 y Ft(noclobber)1590 3816
+y Fu(Same)f(as)h Ft(-C)p Fu(.)1110 3965 y Ft(noexec)192
+b Fu(Same)30 b(as)h Ft(-n)p Fu(.)1110 4115 y Ft(noglob)192
+b Fu(Same)30 b(as)h Ft(-f)p Fu(.)1110 4264 y Ft(nolog)240
+b Fu(Curren)m(tly)30 b(ignored.)1110 4413 y Ft(notify)192
+b Fu(Same)30 b(as)h Ft(-b)p Fu(.)1110 4563 y Ft(nounset)144
+b Fu(Same)30 b(as)h Ft(-u)p Fu(.)1110 4712 y Ft(onecmd)192
+b Fu(Same)30 b(as)h Ft(-t)p Fu(.)1110 4862 y Ft(physical)96
+b Fu(Same)30 b(as)h Ft(-P)p Fu(.)1110 5011 y Ft(pipefail)96
+b Fu(If)44 b(set,)k(the)d(return)e(v)-5 b(alue)45 b(of)f(a)h(pip)s
+(eline)e(is)i(the)f(v)-5 b(alue)45 b(of)1590 5121 y(the)33
+b(last)h(\(righ)m(tmost\))h(command)e(to)h(exit)g(with)f(a)g(non-zero)
+1590 5230 y(status,)28 b(or)f(zero)g(if)f(all)i(commands)e(in)g(the)h
+(pip)s(eline)f(exit)i(suc-)1590 5340 y(cessfully)-8 b(.)41
+b(This)30 b(option)h(is)f(disabled)g(b)m(y)h(default.)p
eop end
-%%Page: 56 62
-TeXDict begin 56 61 bop 150 -116 a Ft(56)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1110 299 y Fs(pipefail)96 b Ft(If)44
-b(set,)k(the)d(return)e(v)-5 b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i
-(the)f(v)-5 b(alue)45 b(of)1590 408 y(the)33 b(last)h(\(righ)m(tmost\))
-h(command)e(to)h(exit)g(with)f(a)g(non-zero)1590 518
-y(status,)28 b(or)f(zero)g(if)f(all)i(commands)e(in)g(the)h(pip)s
-(eline)f(exit)i(suc-)1590 628 y(cessfully)-8 b(.)41 b(This)30
-b(option)h(is)f(disabled)g(b)m(y)h(default.)1110 792
-y Fs(posix)240 b Ft(Change)30 b(the)g(b)s(eha)m(vior)h(of)f(Bash)g
-(where)g(the)g(default)h(op)s(era-)1590 902 y(tion)25
-b(di\013ers)f(from)g(the)h Fl(posix)f Ft(standard)f(to)i(matc)m(h)h
-(the)f(stan-)1590 1011 y(dard)32 b(\(see)i(Section)g(6.11)h([Bash)e
-(POSIX)f(Mo)s(de],)j(page)e(86\).)1590 1121 y(This)k(is)g(in)m(tended)g
-(to)h(mak)m(e)g(Bash)g(b)s(eha)m(v)m(e)g(as)g(a)f(strict)h(su-)1590
-1230 y(p)s(erset)30 b(of)h(that)f(standard.)1110 1395
-y Fs(privileged)1590 1504 y Ft(Same)g(as)h Fs(-p)p Ft(.)1110
-1669 y Fs(verbose)144 b Ft(Same)30 b(as)h Fs(-v)p Ft(.)1110
-1833 y Fs(vi)384 b Ft(Use)36 b(a)g Fs(vi)p Ft(-st)m(yle)g(line)g
-(editing)g(in)m(terface.)58 b(This)35 b(also)h(a\013ects)1590
-1943 y(the)31 b(editing)g(in)m(terface)h(used)d(for)h
-Fs(read)f(-e)p Ft(.)1110 2107 y Fs(xtrace)192 b Ft(Same)30
-b(as)h Fs(-x)p Ft(.)630 2271 y Fs(-p)384 b Ft(T)-8 b(urn)33
-b(on)h(privileged)h(mo)s(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f
-Fs($BASH_ENV)e Ft(and)h Fs($ENV)1110 2381 y Ft(\014les)23
-b(are)h(not)f(pro)s(cessed,)h(shell)g(functions)e(are)i(not)f
-(inherited)g(from)f(the)i(en-)1110 2491 y(vironmen)m(t,)h(and)e(the)g
-Fs(SHELLOPTS)p Ft(,)f Fs(BASHOPTS)p Ft(,)h Fs(CDPATH)e
-Ft(and)i Fs(GLOBIGNORE)1110 2600 y Ft(v)-5 b(ariables,)23
-b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m(vironmen)m(t,)i(are)e
-(ignored.)38 b(If)20 b(the)h(shell)1110 2710 y(is)37
-b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d(\(group\))g(id)g(not)g
-(equal)h(to)g(the)f(real)1110 2819 y(user)h(\(group\))h(id,)i(and)d
-(the)h Fs(-p)f Ft(option)i(is)e(not)i(supplied,)f(these)h(actions)1110
-2929 y(are)32 b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)
-g(set)h(to)f(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110
-3039 y Fs(-p)i Ft(option)h(is)g(supplied)f(at)h(startup,)h(the)f
-(e\013ectiv)m(e)i(user)d(id)g(is)h(not)g(reset.)1110
-3148 y(T)-8 b(urning)35 b(this)i(option)g(o\013)g(causes)g(the)g
-(e\013ectiv)m(e)i(user)d(and)g(group)g(ids)g(to)1110
-3258 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f(and)g(group)g(ids.)630
-3422 y Fs(-t)384 b Ft(Exit)31 b(after)g(reading)f(and)g(executing)h
-(one)g(command.)630 3587 y Fs(-u)384 b Ft(T)-8 b(reat)25
-b(unset)e(v)-5 b(ariables)25 b(and)e(parameters)h(other)h(than)e(the)h
-(sp)s(ecial)h(param-)1110 3696 y(eters)35 b(`)p Fs(@)p
-Ft(')f(or)g(`)p Fs(*)p Ft(')h(as)f(an)g(error)g(when)f(p)s(erforming)g
-(parameter)i(expansion.)1110 3806 y(An)28 b(error)h(message)g(will)g(b)
-s(e)f(written)h(to)h(the)e(standard)g(error,)h(and)f(a)h(non-)1110
-3915 y(in)m(teractiv)m(e)k(shell)e(will)g(exit.)630 4080
-y Fs(-v)384 b Ft(Prin)m(t)30 b(shell)h(input)e(lines)i(as)g(they)f(are)
-h(read.)630 4244 y Fs(-x)384 b Ft(Prin)m(t)21 b(a)h(trace)h(of)f
-(simple)f(commands,)i Fs(for)e Ft(commands,)i Fs(case)d
-Ft(commands,)1110 4354 y Fs(select)29 b Ft(commands,)j(and)e
-(arithmetic)j Fs(for)d Ft(commands)h(and)f(their)i(argu-)1110
-4463 y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f
-(are)h(expanded)f(and)f(b)s(efore)1110 4573 y(they)i(are)g(executed.)49
-b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Fs(PS4)f Ft(v)-5
-b(ariable)34 b(is)f(expanded)f(and)1110 4682 y(the)24
+%%Page: 61 67
+TeXDict begin 61 66 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(61)1110 299 y
+Ft(posix)240 b Fu(Change)30 b(the)g(b)s(eha)m(vior)h(of)f(Bash)g(where)
+g(the)g(default)h(op)s(era-)1590 408 y(tion)25 b(di\013ers)f(from)g
+(the)h Fm(posix)f Fu(standard)f(to)i(matc)m(h)h(the)f(stan-)1590
+518 y(dard)32 b(\(see)i(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s(de],)j
+(page)e(94\).)1590 628 y(This)k(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)
+g(b)s(eha)m(v)m(e)g(as)g(a)f(strict)h(su-)1590 737 y(p)s(erset)30
+b(of)h(that)f(standard.)1110 911 y Ft(privileged)1590
+1020 y Fu(Same)g(as)h Ft(-p)p Fu(.)1110 1194 y Ft(verbose)144
+b Fu(Same)30 b(as)h Ft(-v)p Fu(.)1110 1367 y Ft(vi)384
+b Fu(Use)36 b(a)g Ft(vi)p Fu(-st)m(yle)g(line)g(editing)g(in)m
+(terface.)58 b(This)35 b(also)h(a\013ects)1590 1477 y(the)31
+b(editing)g(in)m(terface)h(used)d(for)h Ft(read)f(-e)p
+Fu(.)1110 1650 y Ft(xtrace)192 b Fu(Same)30 b(as)h Ft(-x)p
+Fu(.)630 1824 y Ft(-p)384 b Fu(T)-8 b(urn)33 b(on)h(privileged)h(mo)s
+(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f Ft($BASH_ENV)e
+Fu(and)h Ft($ENV)1110 1934 y Fu(\014les)23 b(are)h(not)f(pro)s(cessed,)
+h(shell)g(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110
+2043 y(vironmen)m(t,)h(and)e(the)g Ft(SHELLOPTS)p Fu(,)f
+Ft(BASHOPTS)p Fu(,)h Ft(CDPATH)e Fu(and)i Ft(GLOBIGNORE)1110
+2153 y Fu(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m
+(vironmen)m(t,)i(are)e(ignored.)38 b(If)20 b(the)h(shell)1110
+2262 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d
+(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110
+2372 y(user)h(\(group\))h(id,)i(and)d(the)h Ft(-p)f Fu(option)i(is)e
+(not)i(supplied,)f(these)h(actions)1110 2482 y(are)32
+b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f
+(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 2591 y
+Ft(-p)i Fu(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m
+(e)i(user)d(id)g(is)h(not)g(reset.)1110 2701 y(T)-8 b(urning)35
+b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g
+(group)g(ids)g(to)1110 2810 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
+(and)g(group)g(ids.)630 2984 y Ft(-t)384 b Fu(Exit)31
+b(after)g(reading)f(and)g(executing)h(one)g(command.)630
+3157 y Ft(-u)384 b Fu(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25
+b(and)e(parameters)h(other)h(than)e(the)h(sp)s(ecial)h(param-)1110
+3267 y(eters)35 b(`)p Ft(@)p Fu(')f(or)g(`)p Ft(*)p Fu(')h(as)f(an)g
+(error)g(when)f(p)s(erforming)g(parameter)i(expansion.)1110
+3377 y(An)28 b(error)h(message)g(will)g(b)s(e)f(written)h(to)h(the)e
+(standard)g(error,)h(and)f(a)h(non-)1110 3486 y(in)m(teractiv)m(e)k
+(shell)e(will)g(exit.)630 3660 y Ft(-v)384 b Fu(Prin)m(t)30
+b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630
+3833 y Ft(-x)384 b Fu(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f
+(commands,)i Ft(for)e Fu(commands,)i Ft(case)d Fu(commands,)1110
+3943 y Ft(select)29 b Fu(commands,)j(and)e(arithmetic)j
+Ft(for)d Fu(commands)h(and)f(their)i(argu-)1110 4052
+y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f(are)
+h(expanded)f(and)f(b)s(efore)1110 4162 y(they)i(are)g(executed.)49
+b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Ft(PS4)f Fu(v)-5
+b(ariable)34 b(is)f(expanded)f(and)1110 4271 y(the)24
b(resultan)m(t)h(v)-5 b(alue)24 b(is)g(prin)m(ted)g(b)s(efore)f(the)h
-(command)g(and)f(its)i(expanded)1110 4792 y(argumen)m(ts.)630
-4956 y Fs(-B)384 b Ft(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
-(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 5066
-y(Expansion],)30 b(page)h(19\).)42 b(This)30 b(option)h(is)f(on)g(b)m
-(y)h(default.)630 5230 y Fs(-C)384 b Ft(Prev)m(en)m(t)25
-b(output)e(redirection)h(using)f(`)p Fs(>)p Ft(',)i(`)p
-Fs(>&)p Ft(',)g(and)e(`)p Fs(<>)p Ft(')g(from)h(o)m(v)m(erwriting)1110
-5340 y(existing)31 b(\014les.)p eop end
-%%Page: 57 63
-TeXDict begin 57 62 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y Fs(-E)384
-b Ft(If)39 b(set,)j(an)m(y)e(trap)f(on)g Fs(ERR)g Ft(is)g(inherited)g
-(b)m(y)g(shell)h(functions,)h(command)1110 408 y(substitutions,)35
+(command)g(and)f(its)i(expanded)1110 4381 y(argumen)m(ts.)630
+4555 y Ft(-B)384 b Fu(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
+(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 4664
+y(Expansion],)30 b(page)h(21\).)42 b(This)30 b(option)h(is)f(on)g(b)m
+(y)h(default.)630 4838 y Ft(-C)384 b Fu(Prev)m(en)m(t)25
+b(output)e(redirection)h(using)f(`)p Ft(>)p Fu(',)i(`)p
+Ft(>&)p Fu(',)g(and)e(`)p Ft(<>)p Fu(')g(from)h(o)m(v)m(erwriting)1110
+4947 y(existing)31 b(\014les.)630 5121 y Ft(-E)384 b
+Fu(If)39 b(set,)j(an)m(y)e(trap)f(on)g Ft(ERR)g Fu(is)g(inherited)g(b)m
+(y)g(shell)h(functions,)h(command)1110 5230 y(substitutions,)35
b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
-1110 518 y(The)d Fs(ERR)f Ft(trap)i(is)f(normally)h(not)f(inherited)g
-(in)g(suc)m(h)g(cases.)630 670 y Fs(-H)384 b Ft(Enable)38
-b(`)p Fs(!)p Ft(')h(st)m(yle)h(history)e(substitution)g(\(see)h
-(Section)h(9.3)f([History)g(In-)1110 780 y(teraction],)g(page)d(127\).)
-57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
-(teractiv)m(e)1110 890 y(shells.)630 1042 y Fs(-P)384
-b Ft(If)43 b(set,)k(do)c(not)g(follo)m(w)h(sym)m(b)s(olic)g(links)e
-(when)g(p)s(erforming)g(commands)1110 1152 y(suc)m(h)29
-b(as)h Fs(cd)f Ft(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory)
--8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 1261 y(tory)j(is)g(used)
-f(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
-(c)m(hain)f(of)1110 1371 y(directories)j(when)d(p)s(erforming)h
+1110 5340 y(The)d Ft(ERR)f Fu(trap)i(is)f(normally)h(not)f(inherited)g
+(in)g(suc)m(h)g(cases.)p eop end
+%%Page: 62 68
+TeXDict begin 62 67 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(62)630 299 y Ft(-H)384
+b Fu(Enable)38 b(`)p Ft(!)p Fu(')h(st)m(yle)h(history)e(substitution)g
+(\(see)h(Section)h(9.3)f([History)g(In-)1110 408 y(teraction],)g(page)d
+(135\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
+(teractiv)m(e)1110 518 y(shells.)630 670 y Ft(-P)384
+b Fu(If)39 b(set,)j(do)d(not)g(resolv)m(e)i(sym)m(b)s(olic)e(links)g
+(when)f(p)s(erforming)g(commands)1110 780 y(suc)m(h)29
+b(as)h Ft(cd)f Fu(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory)
+-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 890 y(tory)j(is)g(used)f
+(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
+(c)m(hain)f(of)1110 999 y(directories)j(when)d(p)s(erforming)h
(commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110
-1480 y(directory)-8 b(.)1110 1611 y(F)g(or)31 b(example,)g(if)f(`)p
-Fs(/usr/sys)p Ft(')e(is)i(a)g(sym)m(b)s(olic)h(link)f(to)g(`)p
-Fs(/usr/local/sys)p Ft(')1110 1721 y(then:)1350 1852
-y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1962 y(/usr/sys)1350
-2071 y($)g(cd)h(..;)f(pwd)1350 2181 y(/usr)1110 2312
-y Ft(If)30 b Fs(set)f(-P)h Ft(is)h(on,)f(then:)1350 2443
-y Fs($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2552 y(/usr/local/sys)
-1350 2662 y($)g(cd)h(..;)f(pwd)1350 2771 y(/usr/local)630
-2924 y(-T)384 b Ft(If)34 b(set,)j(an)m(y)e(trap)g(on)g
-Fs(DEBUG)e Ft(and)i Fs(RETURN)e Ft(are)i(inherited)g(b)m(y)f(shell)i
-(func-)1110 3033 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
-(executed)h(in)f(a)h(sub-)1110 3143 y(shell)33 b(en)m(vironmen)m(t.)49
-b(The)32 b Fs(DEBUG)g Ft(and)g Fs(RETURN)f Ft(traps)h(are)i(normally)f
-(not)1110 3253 y(inherited)d(in)g(suc)m(h)g(cases.)630
-3405 y Fs(--)384 b Ft(If)31 b(no)h(argumen)m(ts)f(follo)m(w)i(this)f
-(option,)g(then)f(the)h(p)s(ositional)h(parameters)1110
-3515 y(are)h(unset.)49 b(Otherwise,)34 b(the)g(p)s(ositional)g
-(parameters)g(are)g(set)g(to)g(the)g Fq(ar-)1110 3624
-y(gumen)m(ts)t Ft(,)d(ev)m(en)g(if)f(some)h(of)f(them)h(b)s(egin)f
-(with)g(a)g(`)p Fs(-)p Ft('.)630 3777 y Fs(-)432 b Ft(Signal)45
-b(the)g(end)f(of)h(options,)k(cause)c(all)h(remaining)e
-Fq(argumen)m(ts)49 b Ft(to)d(b)s(e)1110 3886 y(assigned)38
-b(to)h(the)f(p)s(ositional)h(parameters.)65 b(The)37
-b(`)p Fs(-x)p Ft(')h(and)g(`)p Fs(-v)p Ft(')g(options)1110
-3996 y(are)25 b(turned)e(o\013.)40 b(If)24 b(there)h(are)g(no)f
-(argumen)m(ts,)i(the)f(p)s(ositional)h(parameters)1110
-4105 y(remain)k(unc)m(hanged.)630 4258 y(Using)d(`)p
-Fs(+)p Ft(')h(rather)f(than)g(`)p Fs(-)p Ft(')g(causes)h(these)f
-(options)h(to)g(b)s(e)e(turned)g(o\013.)40 b(The)27 b(options)h(can)630
-4367 y(also)36 b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e
-(the)g(shell.)56 b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g
-(b)s(e)630 4477 y(found)29 b(in)h Fs($-)p Ft(.)630 4608
-y(The)43 b(remaining)h(N)f Fq(argumen)m(ts)48 b Ft(are)c(p)s(ositional)
-g(parameters)g(and)f(are)h(assigned,)j(in)630 4717 y(order,)30
-b(to)h Fs($1)p Ft(,)f Fs($2)p Ft(,)36 b(.)22 b(.)g(.)42
-b Fs($N)p Ft(.)e(The)30 b(sp)s(ecial)h(parameter)g Fs(#)f
-Ft(is)g(set)h(to)g(N.)630 4848 y(The)f(return)f(status)i(is)f(alw)m(a)m
+1109 y(directory)-8 b(.)1110 1240 y(F)g(or)42 b(example,)i(if)d
+Ft(/usr/sys)e Fu(is)i(a)g(sym)m(b)s(olic)g(link)g(to)h
+Ft(/usr/local/sys)1110 1349 y Fu(then:)1350 1480 y Ft($)47
+b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1590 y(/usr/sys)1350
+1700 y($)g(cd)h(..;)f(pwd)1350 1809 y(/usr)1110 1940
+y Fu(If)30 b Ft(set)f(-P)h Fu(is)h(on,)f(then:)1350 2071
+y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2181 y(/usr/local/sys)
+1350 2290 y($)g(cd)h(..;)f(pwd)1350 2400 y(/usr/local)630
+2552 y(-T)384 b Fu(If)34 b(set,)j(an)m(y)e(trap)g(on)g
+Ft(DEBUG)e Fu(and)i Ft(RETURN)e Fu(are)i(inherited)g(b)m(y)f(shell)i
+(func-)1110 2662 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
+(executed)h(in)f(a)h(sub-)1110 2771 y(shell)33 b(en)m(vironmen)m(t.)49
+b(The)32 b Ft(DEBUG)g Fu(and)g Ft(RETURN)f Fu(traps)h(are)i(normally)f
+(not)1110 2881 y(inherited)d(in)g(suc)m(h)g(cases.)630
+3033 y Ft(--)384 b Fu(If)44 b(no)g(argumen)m(ts)g(follo)m(w)i(this)e
+(option,)k(then)c(the)h(p)s(ositional)g(parame-)1110
+3143 y(ters)31 b(are)g(unset.)40 b(Otherwise,)31 b(the)f(p)s(ositional)
+i(parameters)f(are)f(set)h(to)h(the)1110 3253 y Fr(argumen)m(ts)p
+Fu(,)f(ev)m(en)g(if)f(some)h(of)g(them)f(b)s(egin)g(with)g(a)h(`)p
+Ft(-)p Fu('.)630 3405 y Ft(-)432 b Fu(Signal)45 b(the)g(end)f(of)h
+(options,)k(cause)c(all)h(remaining)e Fr(argumen)m(ts)49
+b Fu(to)d(b)s(e)1110 3515 y(assigned)33 b(to)h(the)g(p)s(ositional)g
+(parameters.)49 b(The)33 b Ft(-x)g Fu(and)f Ft(-v)h Fu(options)h(are)
+1110 3624 y(turned)k(o\013.)68 b(If)38 b(there)i(are)f(no)g(argumen)m
+(ts,)j(the)e(p)s(ositional)g(parameters)1110 3734 y(remain)30
+b(unc)m(hanged.)630 3886 y(Using)d(`)p Ft(+)p Fu(')h(rather)f(than)g(`)
+p Ft(-)p Fu(')g(causes)h(these)f(options)h(to)g(b)s(e)e(turned)g
+(o\013.)40 b(The)27 b(options)h(can)630 3996 y(also)36
+b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e(the)g(shell.)56
+b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g(b)s(e)630
+4105 y(found)29 b(in)h Ft($-)p Fu(.)630 4236 y(The)43
+b(remaining)h(N)f Fr(argumen)m(ts)48 b Fu(are)c(p)s(ositional)g
+(parameters)g(and)f(are)h(assigned,)j(in)630 4346 y(order,)30
+b(to)h Ft($1)p Fu(,)f Ft($2)p Fu(,)36 b(.)22 b(.)g(.)42
+b Ft($N)p Fu(.)e(The)30 b(sp)s(ecial)h(parameter)g Ft(#)f
+Fu(is)g(set)h(to)g(N.)630 4477 y(The)f(return)f(status)i(is)f(alw)m(a)m
(ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(supplied.)150 5041 y Fj(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
-5188 y Ft(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
+(supplied.)150 4669 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
+4816 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
(additional)f(shell)f(optional)i(b)s(eha)m(vior.)150
-5340 y Fs(shopt)p eop end
-%%Page: 58 64
-TeXDict begin 58 63 bop 150 -116 a Ft(58)2572 b(Bash)31
-b(Reference)g(Man)m(ual)870 299 y Fs(shopt)46 b([-pqsu])g([-o])h([)p
-Fi(optname)56 b Fs(...)o(])630 427 y Ft(T)-8 b(oggle)47
-b(the)d(v)-5 b(alues)45 b(of)g(v)-5 b(ariables)45 b(con)m(trolling)i
-(optional)f(shell)e(b)s(eha)m(vior.)84 b(With)45 b(no)630
-536 y(options,)32 b(or)f(with)g(the)g(`)p Fs(-p)p Ft(')g(option,)h(a)g
-(list)f(of)h(all)g(settable)g(options)g(is)f(displa)m(y)m(ed,)h(with)
-630 646 y(an)i(indication)i(of)f(whether)f(or)g(not)h(eac)m(h)h(is)e
-(set.)54 b(The)34 b(`)p Fs(-p)p Ft(')h(option)g(causes)g(output)f(to)
-630 756 y(b)s(e)i(displa)m(y)m(ed)h(in)e(a)i(form)f(that)h(ma)m(y)g(b)s
-(e)e(reused)h(as)g(input.)58 b(Other)36 b(options)g(ha)m(v)m(e)i(the)
-630 865 y(follo)m(wing)32 b(meanings:)630 1011 y Fs(-s)384
-b Ft(Enable)30 b(\(set\))i(eac)m(h)f Fq(optname)5 b Ft(.)630
-1157 y Fs(-u)384 b Ft(Disable)31 b(\(unset\))g(eac)m(h)h
-Fq(optname)5 b Ft(.)630 1303 y Fs(-q)384 b Ft(Suppresses)28
-b(normal)h(output;)h(the)g(return)e(status)i(indicates)h(whether)e(the)
-1110 1413 y Fq(optname)37 b Ft(is)31 b(set)h(or)f(unset.)43
-b(If)31 b(m)m(ultiple)h Fq(optname)37 b Ft(argumen)m(ts)31
-b(are)h(giv)m(en)1110 1523 y(with)43 b(`)p Fs(-q)p Ft(',)j(the)d
-(return)f(status)h(is)g(zero)h(if)f(all)g Fq(optnames)k
-Ft(are)d(enabled;)1110 1632 y(non-zero)31 b(otherwise.)630
-1778 y Fs(-o)384 b Ft(Restricts)28 b(the)g(v)-5 b(alues)28
-b(of)f Fq(optname)33 b Ft(to)c(b)s(e)d(those)i(de\014ned)f(for)g(the)g
-(`)p Fs(-o)p Ft(')h(op-)1110 1888 y(tion)23 b(to)h(the)f
-Fs(set)f Ft(builtin)h(\(see)g(Section)h(4.3.1)h([The)d(Set)i(Builtin],)
-h(page)e(54\).)630 2034 y(If)29 b(either)i(`)p Fs(-s)p
-Ft(')f(or)g(`)p Fs(-u)p Ft(')f(is)h(used)g(with)f(no)h
-Fq(optname)35 b Ft(argumen)m(ts,)c(the)f(displa)m(y)g(is)g(limited)630
-2144 y(to)h(those)g(options)g(whic)m(h)f(are)h(set)f(or)h(unset,)f
-(resp)s(ectiv)m(ely)-8 b(.)630 2271 y(Unless)30 b(otherwise)h(noted,)g
-(the)g Fs(shopt)d Ft(options)j(are)g(disabled)f(\(o\013)7
-b(\))32 b(b)m(y)e(default.)630 2399 y(The)d(return)f(status)i(when)f
-(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
-Ft(are)d(enabled,)g(non-)630 2509 y(zero)40 b(otherwise.)66
-b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
-(status)h(is)g(zero)630 2619 y(unless)30 b(an)g Fq(optname)36
-b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)630
-2746 y(The)f(list)h(of)f Fs(shopt)f Ft(options)i(is:)630
-2892 y Fs(autocd)192 b Ft(If)27 b(set,)h(a)g(command)f(name)g(that)h
-(is)f(the)g(name)g(of)h(a)f(directory)h(is)f(executed)1110
-3002 y(as)j(if)f(it)h(w)m(ere)f(the)h(argumen)m(t)g(to)g(the)f
-Fs(cd)g Ft(command.)40 b(This)29 b(option)g(is)h(only)1110
-3112 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630
-3258 y Fs(cdable_vars)1110 3367 y Ft(If)h(this)h(is)g(set,)i(an)e
-(argumen)m(t)g(to)h(the)f Fs(cd)f Ft(builtin)h(command)f(that)i(is)f
-(not)1110 3477 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
-(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31
-b(is)1110 3587 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
-3733 y Fs(cdspell)144 b Ft(If)27 b(set,)h(minor)f(errors)f(in)h(the)g
-(sp)s(elling)h(of)f(a)g(directory)h(comp)s(onen)m(t)f(in)g(a)h
-Fs(cd)1110 3842 y Ft(command)i(will)h(b)s(e)f(corrected.)43
-b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
-3952 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
+4968 y Ft(shopt)870 5099 y(shopt)46 b([-pqsu])g([-o])h([)p
+Fj(optname)e Ft(...])630 5230 y Fu(T)-8 b(oggle)37 b(the)e(v)-5
+b(alues)35 b(of)g(settings)h(con)m(trolling)g(optional)g(shell)f(b)s
+(eha)m(vior.)55 b(The)34 b(settings)630 5340 y(can)24
+b(b)s(e)g(either)h(those)f(listed)h(b)s(elo)m(w,)h(or,)f(if)g(the)f
+Ft(-o)f Fu(option)i(is)f(used,)h(those)g(a)m(v)-5 b(ailable)26
+b(with)p eop end
+%%Page: 63 69
+TeXDict begin 63 68 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(63)630 299 y(the)30
+b Ft(-o)f Fu(option)i(to)f(the)g Ft(set)f Fu(builtin)h(command)f(\(see)
+i(Section)g(4.3.1)g([The)f(Set)g(Builtin],)630 408 y(page)i(58\).)45
+b(With)32 b(no)f(options,)h(or)g(with)f(the)g Ft(-p)g
+Fu(option,)h(a)g(list)g(of)f(all)i(settable)g(options)630
+518 y(is)j(displa)m(y)m(ed,)h(with)f(an)f(indication)i(of)e(whether)g
+(or)h(not)g(eac)m(h)h(is)e(set.)57 b(The)35 b Ft(-p)g
+Fu(option)630 628 y(causes)i(output)e(to)i(b)s(e)e(displa)m(y)m(ed)i
+(in)f(a)g(form)g(that)h(ma)m(y)f(b)s(e)g(reused)f(as)h(input.)57
+b(Other)630 737 y(options)31 b(ha)m(v)m(e)g(the)g(follo)m(wing)h
+(meanings:)630 894 y Ft(-s)384 b Fu(Enable)30 b(\(set\))i(eac)m(h)f
+Fr(optname)p Fu(.)630 1052 y Ft(-u)384 b Fu(Disable)31
+b(\(unset\))g(eac)m(h)h Fr(optname)p Fu(.)630 1209 y
+Ft(-q)384 b Fu(Suppresses)28 b(normal)h(output;)h(the)g(return)e
+(status)i(indicates)h(whether)e(the)1110 1319 y Fr(optname)37
+b Fu(is)31 b(set)h(or)f(unset.)43 b(If)31 b(m)m(ultiple)h
+Fr(optname)37 b Fu(argumen)m(ts)31 b(are)h(giv)m(en)1110
+1428 y(with)d Ft(-q)p Fu(,)g(the)g(return)f(status)h(is)g(zero)h(if)f
+(all)h Fr(optnames)j Fu(are)d(enabled;)f(non-)1110 1538
+y(zero)i(otherwise.)630 1695 y Ft(-o)384 b Fu(Restricts)22
+b(the)f(v)-5 b(alues)22 b(of)f Fr(optname)27 b Fu(to)22
+b(b)s(e)e(those)i(de\014ned)e(for)h(the)g Ft(-o)f Fu(option)1110
+1805 y(to)31 b(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)h(4.3.1)g
+([The)e(Set)g(Builtin],)i(page)f(58\).)630 1962 y(If)e(either)i
+Ft(-s)e Fu(or)h Ft(-u)f Fu(is)h(used)f(with)g(no)h Fr(optname)35
+b Fu(argumen)m(ts,)c Ft(shopt)d Fu(sho)m(ws)h(only)h(those)630
+2071 y(options)h(whic)m(h)f(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m
+(ely)-8 b(.)630 2205 y(Unless)30 b(otherwise)h(noted,)g(the)g
+Ft(shopt)d Fu(options)j(are)g(disabled)f(\(o\013)7 b(\))32
+b(b)m(y)e(default.)630 2338 y(The)d(return)f(status)i(when)f(listing)h
+(options)g(is)f(zero)i(if)e(all)i Fr(optnames)i Fu(are)d(enabled,)g
+(non-)630 2448 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f
+(unsetting)g(options,)i(the)e(return)f(status)h(is)g(zero)630
+2557 y(unless)30 b(an)g Fr(optname)36 b Fu(is)30 b(not)h(a)g(v)-5
+b(alid)30 b(shell)h(option.)630 2691 y(The)f(list)h(of)f
+Ft(shopt)f Fu(options)i(is:)630 2848 y Ft(autocd)192
+b Fu(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
+(a)f(directory)h(is)f(executed)1110 2958 y(as)j(if)f(it)h(w)m(ere)f
+(the)h(argumen)m(t)g(to)g(the)f Ft(cd)g Fu(command.)40
+b(This)29 b(option)g(is)h(only)1110 3067 y(used)g(b)m(y)g(in)m
+(teractiv)m(e)j(shells.)630 3224 y Ft(cdable_vars)1110
+3334 y Fu(If)h(this)h(is)g(set,)i(an)e(argumen)m(t)g(to)h(the)f
+Ft(cd)f Fu(builtin)h(command)f(that)i(is)f(not)1110 3444
+y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h(name)f(of)h(a)g(v)
+-5 b(ariable)31 b(whose)g(v)-5 b(alue)31 b(is)1110 3553
+y(the)g(directory)f(to)i(c)m(hange)f(to.)630 3710 y Ft(cdspell)144
+b Fu(If)27 b(set,)h(minor)f(errors)f(in)h(the)g(sp)s(elling)h(of)f(a)g
+(directory)h(comp)s(onen)m(t)f(in)g(a)h Ft(cd)1110 3820
+y Fu(command)i(will)h(b)s(e)f(corrected.)43 b(The)30
+b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
+3930 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74
-b(If)42 b(a)1110 4061 y(correction)25 b(is)e(found,)g(the)h(corrected)g
-(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4171
+b(If)42 b(a)1110 4039 y(correction)25 b(is)e(found,)g(the)h(corrected)g
+(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4149
y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m
-(teractiv)m(e)k(shells.)630 4317 y Fs(checkhash)1110
-4427 y Ft(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
-(command)f(found)g(in)g(the)h(hash)f(table)1110 4536
+(teractiv)m(e)k(shells.)630 4306 y Ft(checkhash)1110
+4416 y Fu(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 4525
y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
-b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 4646
+b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 4635
y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630
-4792 y Fs(checkjobs)1110 4902 y Ft(If)d(set,)i(Bash)e(lists)h(the)g
+4792 y Ft(checkjobs)1110 4902 y Fu(If)d(set,)i(Bash)e(lists)h(the)g
(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
1110 5011 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72
b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
5121 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
(exit)g(is)g(attempted)h(without)e(an)1110 5230 y(in)m(terv)m(ening)j
-(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(91\).)42
+(command)e(\(see)h(Chapter)f(7)h([Job)f(Con)m(trol],)i(page)f(97\).)42
b(The)1110 5340 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)p eop end
-%%Page: 59 65
-TeXDict begin 59 64 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(59)630 299 y Fs(checkwinsize)
-1110 408 y Ft(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e
+%%Page: 64 70
+TeXDict begin 64 69 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(64)630 299 y Ft(checkwinsize)
+1110 408 y Fu(If)41 b(set,)k(Bash)c(c)m(hec)m(ks)i(the)f(windo)m(w)e
(size)j(after)f(eac)m(h)g(command)f(and,)j(if)1110 518
y(necessary)-8 b(,)31 b(up)s(dates)f(the)g(v)-5 b(alues)31
-b(of)g Fs(LINES)e Ft(and)g Fs(COLUMNS)p Ft(.)630 677
-y Fs(cmdhist)144 b Ft(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)
+b(of)g Ft(LINES)e Fu(and)g Ft(COLUMNS)p Fu(.)630 669
+y Ft(cmdhist)144 b Fu(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)
g(all)g(lines)f(of)g(a)h(m)m(ultiple-line)g(command)1110
-787 y(in)c(the)g(same)g(history)g(en)m(try)-8 b(.)42
+778 y(in)c(the)g(same)g(history)g(en)m(try)-8 b(.)42
b(This)30 b(allo)m(ws)i(easy)g(re-editing)g(of)f(m)m(ulti-line)1110
-897 y(commands.)630 1056 y Fs(compat31)96 b Ft(If)27
-b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s(eha)m(vior)f(to)i(that)f(of)f(v)
-m(ersion)h(3.1)h(with)e(resp)s(ect)1110 1166 y(to)k(quoted)g(argumen)m
-(ts)f(to)h(the)g(conditional)h(command's)e(`)p Fs(=~)p
-Ft(')g(op)s(erator.)630 1325 y Fs(compat32)96 b Ft(If)27
+888 y(commands.)630 1039 y Ft(compat31)96 b Fu(If)27
b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s(eha)m(vior)f(to)i(that)f(of)f(v)
-m(ersion)h(3.2)h(with)e(resp)s(ect)1110 1435 y(to)h(lo)s(cale-sp)s
-(eci\014c)g(string)f(comparison)g(when)f(using)g(the)h(`)p
-Fs([[)p Ft(')g(conditional)1110 1544 y(command's)36 b(`)p
-Fs(<)p Ft(')g(and)f(`)p Fs(>)p Ft(')h(op)s(erators.)57
-b(Bash)36 b(v)m(ersions)g(prior)f(to)h(bash-4.0)1110
-1654 y(use)29 b(ASCI)s(I)f(collation)k(and)d(strcmp\(3\);)h(bash-4.1)g
-(and)f(later)h(use)g(the)f(cur-)1110 1763 y(ren)m(t)i(lo)s(cale's)h
-(collation)g(sequence)f(and)f(strcoll\(3\).)630 1923
-y Fs(compat40)96 b Ft(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s(eha)
-m(vior)f(to)i(that)f(of)f(v)m(ersion)h(4.0)h(with)e(resp)s(ect)1110
-2032 y(to)h(lo)s(cale-sp)s(eci\014c)g(string)f(comparison)g(when)f
-(using)g(the)h(`)p Fs([[)p Ft(')g(conditional)1110 2142
-y(command's)j(`)p Fs(<)p Ft(')h(and)e(`)p Fs(>)p Ft(')i(op)s(erators)f
-(\(see)h(previous)f(item\))h(and)f(the)g(e\013ect)1110
-2252 y(of)h(in)m(terrupting)f(a)g(command)h(list.)630
-2411 y Fs(compat41)96 b Ft(If)27 b(set,)i(Bash,)g(when)e(in)g(p)s(osix)
-g(mo)s(de,)h(treats)h(a)f(single)g(quote)h(in)e(a)h(double-)1110
-2521 y(quoted)46 b(parameter)h(expansion)f(as)g(a)h(sp)s(ecial)f(c)m
-(haracter.)90 b(The)45 b(single)1110 2630 y(quotes)34
-b(m)m(ust)g(matc)m(h)h(\(an)f(ev)m(en)h(n)m(um)m(b)s(er\))e(and)g(the)h
-(c)m(haracters)h(b)s(et)m(w)m(een)1110 2740 y(the)40
-b(single)g(quotes)g(are)g(considered)g(quoted.)69 b(This)38
-b(is)i(the)g(b)s(eha)m(vior)g(of)1110 2849 y Fl(posix)f
-Ft(mo)s(de)g(through)g(v)m(ersion)h(4.1.)69 b(The)39
-b(default)g(Bash)h(b)s(eha)m(vior)g(re-)1110 2959 y(mains)30
-b(as)h(in)f(previous)g(v)m(ersions.)630 3118 y Fs(dirspell)96
-b Ft(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g
-(directory)g(names)f(during)1110 3228 y(w)m(ord)36 b(completion)h(if)f
+m(ersion)h(3.1)h(with)e(resp)s(ect)1110 1148 y(to)39
+b(quoted)f(argumen)m(ts)g(to)h(the)f(conditional)h(command's)f(`)p
+Ft(=~)p Fu(')g(op)s(erator)1110 1258 y(and)i(with)f(resp)s(ect)i(to)g
+(lo)s(cale-sp)s(eci\014c)h(string)e(comparison)g(when)f(using)1110
+1367 y(the)31 b Ft([[)e Fu(conditional)j(command's)e(`)p
+Ft(<)p Fu(')h(and)f(`)p Ft(>)p Fu(')g(op)s(erators.)41
+b(Bash)31 b(v)m(ersions)1110 1477 y(prior)g(to)h(bash-4.1)g(use)g(ASCI)
+s(I)e(collation)j(and)e(strcmp\(3\);)i(bash-4.1)g(and)1110
+1587 y(later)e(use)f(the)h(curren)m(t)f(lo)s(cale's)i(collation)h
+(sequence)e(and)f(strcoll\(3\).)630 1737 y Ft(compat32)96
+b Fu(If)27 b(set,)i(Bash)e(c)m(hanges)i(its)f(b)s(eha)m(vior)f(to)i
+(that)f(of)f(v)m(ersion)h(3.2)h(with)e(resp)s(ect)1110
+1847 y(to)34 b(lo)s(cale-sp)s(eci\014c)h(string)e(comparison)g(when)f
+(using)h(the)g Ft([[)g Fu(conditional)1110 1956 y(command's)d(`)p
+Ft(<)p Fu(')h(and)f(`)p Ft(>)p Fu(')g(op)s(erators)h(\(see)g(previous)f
+(item\).)630 2107 y Ft(compat40)96 b Fu(If)27 b(set,)i(Bash)e(c)m
+(hanges)i(its)f(b)s(eha)m(vior)f(to)i(that)f(of)f(v)m(ersion)h(4.0)h
+(with)e(resp)s(ect)1110 2217 y(to)34 b(lo)s(cale-sp)s(eci\014c)h
+(string)e(comparison)g(when)f(using)h(the)g Ft([[)g Fu(conditional)1110
+2326 y(command's)28 b(`)p Ft(<)p Fu(')h(and)f(`)p Ft(>)p
+Fu(')h(op)s(erators)f(\(see)i(description)e(of)h Ft(compat31)p
+Fu(\))e(and)1110 2436 y(the)38 b(e\013ect)i(of)e(in)m(terrupting)f(a)i
+(command)e(list.)64 b(Bash)38 b(v)m(ersions)h(4.0)g(and)1110
+2545 y(later)24 b(in)m(terrupt)f(the)g(list)h(as)g(if)f(the)h(shell)f
+(receiv)m(ed)i(the)e(in)m(terrupt;)i(previous)1110 2655
+y(v)m(ersions)31 b(con)m(tin)m(ue)g(with)f(the)h(next)g(command)f(in)g
+(the)g(list.)630 2806 y Ft(compat41)96 b Fu(If)25 b(set,)j(Bash,)e
+(when)f(in)g Fm(posix)g Fu(mo)s(de,)i(treats)f(a)g(single)h(quote)f(in)
+f(a)h(double-)1110 2915 y(quoted)46 b(parameter)h(expansion)f(as)g(a)h
+(sp)s(ecial)f(c)m(haracter.)90 b(The)45 b(single)1110
+3025 y(quotes)34 b(m)m(ust)g(matc)m(h)h(\(an)f(ev)m(en)h(n)m(um)m(b)s
+(er\))e(and)g(the)h(c)m(haracters)h(b)s(et)m(w)m(een)1110
+3134 y(the)40 b(single)g(quotes)g(are)g(considered)g(quoted.)69
+b(This)38 b(is)i(the)g(b)s(eha)m(vior)g(of)1110 3244
+y Fm(posix)f Fu(mo)s(de)g(through)g(v)m(ersion)h(4.1.)69
+b(The)39 b(default)g(Bash)h(b)s(eha)m(vior)g(re-)1110
+3354 y(mains)30 b(as)h(in)f(previous)g(v)m(ersions.)630
+3504 y Ft(compat42)96 b Fu(If)29 b(set,)i(Bash)f(do)s(es)f(not)h(pro)s
+(cess)g(the)g(replacemen)m(t)h(string)e(in)h(the)g(pattern)1110
+3614 y(substitution)g(w)m(ord)g(expansion)g(using)g(quote)h(remo)m(v)-5
+b(al.)630 3765 y Ft(complete_fullquote)1110 3874 y Fu(If)31
+b(set,)g(Bash)h(quotes)f(all)h(shell)f(metac)m(haracters)i(in)e
+(\014lenames)g(and)g(direc-)1110 3984 y(tory)g(names)f(when)g(p)s
+(erforming)f(completion.)43 b(If)30 b(not)h(set,)g(Bash)g(remo)m(v)m
+(es)1110 4093 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g
+(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)1110 4203
+y(that)f(will)g(b)s(e)f(quoted)g(in)g(completed)i(\014lenames)e(when)f
+(these)i(metac)m(har-)1110 4313 y(acters)29 b(app)s(ear)e(in)g(shell)h
+(v)-5 b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e
+(completed.)1110 4422 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)
+-5 b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110
+4532 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,)
+g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 4641
+y(\014lenames)j(will)h(not)f(b)s(e)g(quoted,)h(either.)41
+b(This)28 b(is)i(activ)m(e)h(only)e(when)g(bash)1110
+4751 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f
+(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 4861
+y(is)41 b(set)g(b)m(y)g(default,)j(whic)m(h)c(is)h(the)g(default)g
+(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 4970 y(through)30
+b(4.2.)630 5121 y Ft(direxpand)1110 5230 y Fu(If)k(set,)i(Bash)f
+(replaces)g(directory)g(names)g(with)f(the)g(results)h(of)f(w)m(ord)g
+(ex-)1110 5340 y(pansion)k(when)g(p)s(erforming)f(\014lename)i
+(completion.)67 b(This)38 b(c)m(hanges)i(the)p eop end
+%%Page: 65 71
+TeXDict begin 65 70 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(65)1110 299 y(con)m(ten)m(ts)29
+b(of)e(the)g(readline)h(editing)g(bu\013er.)38 b(If)27
+b(not)g(set,)i(Bash)e(attempts)h(to)1110 408 y(preserv)m(e)j(what)f
+(the)g(user)g(t)m(yp)s(ed.)630 555 y Ft(dirspell)96 b
+Fu(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g
+(directory)g(names)f(during)1110 664 y(w)m(ord)36 b(completion)h(if)f
(the)g(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
-3337 y(exist.)630 3497 y Fs(dotglob)144 b Ft(If)27 b(set,)i(Bash)f
+774 y(exist.)630 920 y Ft(dotglob)144 b Fu(If)27 b(set,)i(Bash)f
(includes)g(\014lenames)g(b)s(eginning)f(with)g(a)h(`.')41
-b(in)27 b(the)h(results)g(of)1110 3606 y(\014lename)j(expansion.)630
-3766 y Fs(execfail)96 b Ft(If)24 b(this)h(is)f(set,)j(a)e(non-in)m
+b(in)27 b(the)h(results)g(of)1110 1029 y(\014lename)j(expansion.)630
+1176 y Ft(execfail)96 b Fu(If)24 b(this)h(is)f(set,)j(a)e(non-in)m
(teractiv)m(e)i(shell)e(will)f(not)h(exit)h(if)e(it)h(cannot)h(execute)
-1110 3875 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)
-h(the)f Fs(exec)f Ft(builtin)h(command.)39 b(An)1110
-3985 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
-Fs(exec)f Ft(fails.)630 4144 y Fs(expand_aliases)1110
-4254 y Ft(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
-s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 4364 y(tion)38
-b(6.6)h([Aliases],)j(page)d(81.)64 b(This)37 b(option)h(is)g(enabled)g
-(b)m(y)g(default)g(for)1110 4473 y(in)m(teractiv)m(e)33
-b(shells.)630 4633 y Fs(extdebug)96 b Ft(If)30 b(set,)h(b)s(eha)m(vior)
+1110 1285 y(the)i(\014le)g(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)
+h(the)f Ft(exec)f Fu(builtin)h(command.)39 b(An)1110
+1395 y(in)m(teractiv)m(e)33 b(shell)e(do)s(es)f(not)g(exit)i(if)e
+Ft(exec)f Fu(fails.)630 1541 y Ft(expand_aliases)1110
+1650 y Fu(If)j(set,)h(aliases)g(are)g(expanded)e(as)h(describ)s(ed)f(b)
+s(elo)m(w)h(under)f(Aliases,)i(Sec-)1110 1760 y(tion)38
+b(6.6)h([Aliases],)j(page)d(88.)64 b(This)37 b(option)h(is)g(enabled)g
+(b)m(y)g(default)g(for)1110 1870 y(in)m(teractiv)m(e)33
+b(shells.)630 2016 y Ft(extdebug)96 b Fu(If)30 b(set,)h(b)s(eha)m(vior)
g(in)m(tended)f(for)g(use)g(b)m(y)g(debuggers)g(is)h(enabled:)1159
-4767 y(1.)61 b(The)32 b(`)p Fs(-F)p Ft(')g(option)h(to)g(the)g
-Fs(declare)d Ft(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
-4877 y(Builtins],)29 b(page)g(43\))g(displa)m(ys)f(the)g(source)h
-(\014le)f(name)g(and)f(line)h(n)m(um-)1290 4986 y(b)s(er)h(corresp)s
+2144 y(1.)61 b(The)37 b Ft(-F)g Fu(option)h(to)g(the)g
+Ft(declare)d Fu(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
+2253 y(Builtins],)29 b(page)g(48\))g(displa)m(ys)f(the)g(source)h
+(\014le)f(name)g(and)f(line)h(n)m(um-)1290 2363 y(b)s(er)h(corresp)s
(onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)
-1290 5096 y(men)m(t.)1159 5230 y(2.)61 b(If)20 b(the)h(command)g(run)e
-(b)m(y)i(the)f Fs(DEBUG)g Ft(trap)g(returns)g(a)h(non-zero)g(v)-5
-b(alue,)1290 5340 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
-(not)i(executed.)p eop end
-%%Page: 60 66
-TeXDict begin 60 65 bop 150 -116 a Ft(60)2572 b(Bash)31
-b(Reference)g(Man)m(ual)1159 299 y(3.)61 b(If)37 b(the)g(command)g(run)
-f(b)m(y)i(the)f Fs(DEBUG)f Ft(trap)h(returns)f(a)i(v)-5
-b(alue)38 b(of)f(2,)1290 408 y(and)c(the)g(shell)h(is)f(executing)i(in)
-e(a)h(subroutine)e(\(a)i(shell)g(function)f(or)1290 518
-y(a)h(shell)h(script)f(executed)h(b)m(y)f(the)g Fs(.)g
-Ft(or)g Fs(source)e Ft(builtins\),)j(a)g(call)g(to)1290
-628 y Fs(return)29 b Ft(is)h(sim)m(ulated.)1159 763 y(4.)61
-b Fs(BASH_ARGC)34 b Ft(and)i Fs(BASH_ARGV)e Ft(are)j(up)s(dated)e(as)h
-(describ)s(ed)g(in)g(their)1290 873 y(descriptions)30
-b(\(see)i(Section)f(5.2)g([Bash)g(V)-8 b(ariables],)32
-b(page)f(63\).)1159 1009 y(5.)61 b(F)-8 b(unction)57
-b(tracing)g(is)g(enabled:)93 b(command)56 b(substitution,)63
-b(shell)1290 1118 y(functions,)30 b(and)f(subshells)g(in)m(v)m(ok)m(ed)
-j(with)d Fs(\()h Fi(command)39 b Fs(\))30 b Ft(inherit)g(the)1290
-1228 y Fs(DEBUG)f Ft(and)h Fs(RETURN)e Ft(traps.)1159
-1363 y(6.)61 b(Error)41 b(tracing)i(is)f(enabled:)63
-b(command)42 b(substitution,)i(shell)f(func-)1290 1473
-y(tions,)30 b(and)f(subshells)g(in)m(v)m(ok)m(ed)i(with)e
-Fs(\()h Fi(command)39 b Fs(\))29 b Ft(inherit)g(the)h
-Fs(ERR)1290 1583 y Ft(trap.)630 1744 y Fs(extglob)144
-b Ft(If)26 b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g
-(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 1854 y(Section)j(3.5.8.1)i
-([P)m(attern)f(Matc)m(hing],)g(page)f(26\))h(are)f(enabled.)630
-2016 y Fs(extquote)96 b Ft(If)49 b(set,)54 b Fs($')p
-Fi(string)11 b Fs(')46 b Ft(and)j Fs($")p Fi(string)11
-b Fs(")46 b Ft(quoting)k(is)f(p)s(erformed)e(within)1110
-2125 y Fs(${)p Fi(parameter)11 b Fs(})30 b Ft(expansions)j(enclosed)h
-(in)g(double)f(quotes.)51 b(This)32 b(option)1110 2235
-y(is)e(enabled)h(b)m(y)f(default.)630 2397 y Fs(failglob)96
-b Ft(If)36 b(set,)j(patterns)d(whic)m(h)g(fail)h(to)h(matc)m(h)f
-(\014lenames)f(during)g(\014lename)g(ex-)1110 2506 y(pansion)30
-b(result)g(in)g(an)g(expansion)h(error.)630 2668 y Fs(force_fignore)
-1110 2778 y Ft(If)43 b(set,)k(the)d(su\016xes)f(sp)s(eci\014ed)f(b)m(y)
-i(the)f Fs(FIGNORE)f Ft(shell)h(v)-5 b(ariable)44 b(cause)1110
-2887 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h(when)f(p)s(erforming)f(w)m
-(ord)h(completion)i(ev)m(en)f(if)g(the)1110 2997 y(ignored)37
+1290 2472 y(men)m(t.)1159 2600 y(2.)61 b(If)20 b(the)h(command)g(run)e
+(b)m(y)i(the)f Ft(DEBUG)g Fu(trap)g(returns)g(a)h(non-zero)g(v)-5
+b(alue,)1290 2710 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 2838 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+(y)i(the)f Ft(DEBUG)f Fu(trap)h(returns)f(a)i(v)-5 b(alue)38
+b(of)f(2,)1290 2947 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 3057 y(a)h(shell)h
+(script)f(executed)h(b)m(y)f(the)g Ft(.)g Fu(or)g Ft(source)e
+Fu(builtins\),)j(a)g(call)g(to)1290 3166 y Ft(return)29
+b Fu(is)h(sim)m(ulated.)1159 3294 y(4.)61 b Ft(BASH_ARGC)34
+b Fu(and)i Ft(BASH_ARGV)e Fu(are)j(up)s(dated)e(as)h(describ)s(ed)g(in)
+g(their)1290 3404 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
+(V)-8 b(ariables],)32 b(page)f(69\).)1159 3532 y(5.)61
+b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56
+b(substitution,)63 b(shell)1290 3641 y(functions,)32
+b(and)e(subshells)h(in)m(v)m(ok)m(ed)i(with)e Ft(\()f
+Fj(command)e Ft(\))j Fu(inherit)h(the)1290 3751 y Ft(DEBUG)d
+Fu(and)h Ft(RETURN)e Fu(traps.)1159 3879 y(6.)61 b(Error)41
+b(tracing)i(is)f(enabled:)63 b(command)42 b(substitution,)i(shell)f
+(func-)1290 3988 y(tions,)32 b(and)e(subshells)g(in)m(v)m(ok)m(ed)i
+(with)e Ft(\()g Fj(command)f Ft(\))h Fu(inherit)h(the)g
+Ft(ERR)1290 4098 y Fu(trap.)630 4244 y Ft(extglob)144
+b Fu(If)26 b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g
+(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 4354 y(Section)j(3.5.8.1)i
+([P)m(attern)f(Matc)m(hing],)g(page)f(30\))h(are)f(enabled.)630
+4500 y Ft(extquote)96 b Fu(If)51 b(set,)58 b Ft($')p
+Fj(string)p Ft(')49 b Fu(and)i Ft($")p Fj(string)p Ft(")e
+Fu(quoting)k(is)e(p)s(erformed)f(within)1110 4609 y Ft(${)p
+Fj(parameter)p Ft(})31 b Fu(expansions)k(enclosed)g(in)g(double)f
+(quotes.)55 b(This)33 b(option)1110 4719 y(is)d(enabled)h(b)m(y)f
+(default.)630 4865 y Ft(failglob)96 b Fu(If)36 b(set,)j(patterns)d
+(whic)m(h)g(fail)h(to)h(matc)m(h)f(\014lenames)f(during)g(\014lename)g
+(ex-)1110 4975 y(pansion)30 b(result)g(in)g(an)g(expansion)h(error.)630
+5121 y Ft(force_fignore)1110 5230 y Fu(If)43 b(set,)k(the)d(su\016xes)f
+(sp)s(eci\014ed)f(b)m(y)i(the)f Ft(FIGNORE)f Fu(shell)h(v)-5
+b(ariable)44 b(cause)1110 5340 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h
+(when)f(p)s(erforming)f(w)m(ord)h(completion)i(ev)m(en)f(if)g(the)p
+eop end
+%%Page: 66 72
+TeXDict begin 66 71 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(66)1110 299 y(ignored)37
b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62
-b(See)37 b(Section)h(5.2)1110 3106 y([Bash)24 b(V)-8
-b(ariables],)27 b(page)e(63,)h(for)d(a)h(description)g(of)g
-Fs(FIGNORE)p Ft(.)37 b(This)22 b(option)1110 3216 y(is)30
-b(enabled)h(b)m(y)f(default.)630 3378 y Fs(globstar)96
-b Ft(If)38 b(set,)j(the)e(pattern)f(`)p Fs(**)p Ft(')h(used)e(in)i(a)f
-(\014lename)h(expansion)f(con)m(text)j(will)1110 3487
-y(matc)m(h)f(a)g(\014les)f(and)f(zero)i(or)g(more)f(directories)h(and)f
-(sub)s(directories.)66 b(If)1110 3597 y(the)30 b(pattern)g(is)g(follo)m
-(w)m(ed)i(b)m(y)d(a)i(`)p Fs(/)p Ft(',)f(only)g(directories)h(and)f
-(sub)s(directories)1110 3707 y(matc)m(h.)630 3868 y Fs(gnu_errfmt)1110
-3978 y Ft(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
-h(the)g(standard)f Fl(gnu)g Ft(error)1110 4088 y(message)c(format.)630
-4249 y Fs(histappend)1110 4359 y Ft(If)c(set,)j(the)e(history)g(list)g
+b(See)37 b(Section)h(5.2)1110 408 y([Bash)24 b(V)-8 b(ariables],)27
+b(page)e(69,)h(for)d(a)h(description)g(of)g Ft(FIGNORE)p
+Fu(.)37 b(This)22 b(option)1110 518 y(is)30 b(enabled)h(b)m(y)f
+(default.)630 701 y Ft(globasciiranges)1110 810 y Fu(If)j(set,)h(range)
+f(expressions)g(used)f(in)h(pattern)g(matc)m(hing)h(brac)m(k)m(et)h
+(expres-)1110 920 y(sions)28 b(\(see)h(Section)h(3.5.8.1)g([P)m(attern)
+g(Matc)m(hing],)h(page)e(30\))g(b)s(eha)m(v)m(e)g(as)g(if)1110
+1029 y(in)i(the)g(traditional)i(C)d(lo)s(cale)j(when)d(p)s(erforming)g
+(comparisons.)44 b(That)31 b(is,)1110 1139 y(the)d(curren)m(t)g(lo)s
+(cale's)i(collating)h(sequence)d(is)h(not)f(tak)m(en)h(in)m(to)g
+(accoun)m(t,)i(so)1110 1249 y(`)p Ft(b)p Fu(')j(will)g(not)g(collate)i
+(b)s(et)m(w)m(een)e(`)p Ft(A)p Fu(')g(and)f(`)p Ft(B)p
+Fu(',)h(and)f(upp)s(er-case)g(and)g(lo)m(w)m(er-)1110
+1358 y(case)e(ASCI)s(I)e(c)m(haracters)j(will)f(collate)i(together.)630
+1541 y Ft(globstar)96 b Fu(If)38 b(set,)j(the)e(pattern)f(`)p
+Ft(**)p Fu(')h(used)e(in)i(a)f(\014lename)h(expansion)f(con)m(text)j
+(will)1110 1650 y(matc)m(h)36 b(all)g(\014les)f(and)f(zero)i(or)f(more)
+g(directories)h(and)e(sub)s(directories.)54 b(If)1110
+1760 y(the)30 b(pattern)g(is)g(follo)m(w)m(ed)i(b)m(y)d(a)i(`)p
+Ft(/)p Fu(',)f(only)g(directories)h(and)f(sub)s(directories)1110
+1870 y(matc)m(h.)630 2052 y Ft(gnu_errfmt)1110 2162 y
+Fu(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)h(the)g
+(standard)f Fm(gnu)g Fu(error)1110 2271 y(message)c(format.)630
+2454 y Ft(histappend)1110 2564 y Fu(If)c(set,)j(the)e(history)g(list)g
(is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
-b(alue)29 b(of)1110 4468 y(the)d Fs(HISTFILE)d Ft(v)-5
+b(alue)29 b(of)1110 2673 y(the)d Ft(HISTFILE)d Fu(v)-5
b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
-(erwriting)1110 4578 y(the)31 b(\014le.)630 4740 y Fs(histreedit)1110
-4849 y Ft(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
+(erwriting)1110 2783 y(the)31 b(\014le.)630 2966 y Ft(histreedit)1110
+3075 y Fu(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
(user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110
-4959 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
-5121 y Fs(histverify)1110 5230 y Ft(If)35 b(set,)i(and)e(Readline)h(is)
+3185 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
+3367 y Ft(histverify)1110 3477 y Fu(If)35 b(set,)i(and)e(Readline)h(is)
f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
-5340 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
-(parser.)59 b(Instead,)38 b(the)p eop end
-%%Page: 61 67
-TeXDict begin 61 66 bop 150 -116 a Ft(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(61)1110 299 y(resulting)40
-b(line)f(is)h(loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h
-(allo)m(wing)1110 408 y(further)29 b(mo)s(di\014cation.)630
-564 y Fs(hostcomplete)1110 673 y Ft(If)38 b(set,)j(and)c(Readline)i(is)
-f(b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
-783 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
-(`)p Fs(@)p Ft(')g(is)g(b)s(eing)f(com-)1110 892 y(pleted)g(\(see)h
+3587 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 3696 y(resulting)i(line)f(is)h
+(loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
+1110 3806 y(further)29 b(mo)s(di\014cation.)630 3988
+y Ft(hostcomplete)1110 4098 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
+(b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
+4208 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Ft(@)p Fu(')g(is)g(b)s(eing)f(com-)1110 4317 y(pleted)g(\(see)h
(Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(112\).)1110 1002 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
-630 1157 y Fs(huponexit)1110 1267 y Ft(If)i(set,)i(Bash)f(will)h(send)d
-Fs(SIGHUP)h Ft(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
-1110 1377 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(34\).)630 1532 y Fs(interactive_comments)1110
-1641 y Ft(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
-Fs(#)p Ft(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110
-1751 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f
+(120\).)1110 4427 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+630 4609 y Ft(huponexit)1110 4719 y Fu(If)i(set,)i(Bash)f(will)h(send)d
+Ft(SIGHUP)h Fu(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
+1110 4829 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
+(page)f(38\).)630 5011 y Ft(interactive_comments)1110
+5121 y Fu(Allo)m(w)c(a)g(w)m(ord)e(b)s(eginning)g(with)h(`)p
+Ft(#)p Fu(')g(to)h(cause)f(that)h(w)m(ord)f(and)f(all)i(remain-)1110
+5230 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g(to)g(b)s(e)f
(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110
-1861 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
-2016 y Fs(lastpipe)96 b Ft(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f
-(not)f(activ)m(e,)k(the)d(shell)f(runs)f(the)i(last)g(command)1110
-2125 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m
-(kground)g(in)g(the)g(curren)m(t)g(shell)1110 2235 y(en)m(vironmen)m
-(t.)630 2390 y Fs(lithist)144 b Ft(If)22 b(enabled,)i(and)d(the)h
-Fs(cmdhist)e Ft(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
-2500 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
-(edded)g(newlines)h(rather)g(than)f(using)1110 2609 y(semicolon)32
-b(separators)f(where)e(p)s(ossible.)630 2765 y Fs(login_shell)1110
-2874 y Ft(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f
+5340 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)p
+eop end
+%%Page: 67 73
+TeXDict begin 67 72 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(67)630 299 y Ft(lastpipe)96
+b Fu(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f(not)f(activ)m(e,)k
+(the)d(shell)f(runs)f(the)i(last)g(command)1110 408 y(of)37
+b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m(kground)g(in)g
+(the)g(curren)m(t)g(shell)1110 518 y(en)m(vironmen)m(t.)630
+677 y Ft(lithist)144 b Fu(If)22 b(enabled,)i(and)d(the)h
+Ft(cmdhist)e Fu(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
+787 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 897 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 1056 y Ft(login_shell)1110
+1166 y Fu(The)35 b(shell)h(sets)g(this)f(option)h(if)g(it)g(is)f
(started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110
-2984 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(73\).)41
+1275 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(80\).)41
b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m(hanged.)630
-3139 y Fs(mailwarn)96 b Ft(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
+1435 y Ft(mailwarn)96 b Fu(If)34 b(set,)i(and)e(a)h(\014le)g(that)g
(Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)
-1110 3249 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
-(ed,)k(the)c(message)h Fs("The)k(mail)h(in)f Fi(mail-)1110
-3358 y(file)40 b Fs(has)29 b(been)g(read")g Ft(is)i(displa)m(y)m(ed.)
-630 3513 y Fs(no_empty_cmd_completion)1110 3623 y Ft(If)f(set,)g(and)g
+1110 1544 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m
+(ed,)k(the)c(message)h Ft("The)k(mail)h(in)f Fj(mail-)1110
+1654 y(file)g Ft(has)h(been)f(read")g Fu(is)h(displa)m(y)m(ed.)630
+1813 y Ft(no_empty_cmd_completion)1110 1923 y Fu(If)g(set,)g(and)g
(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g(not)g(attempt)i(to)e
-(searc)m(h)1110 3733 y(the)25 b Fs(PATH)f Ft(for)h(p)s(ossible)f
+(searc)m(h)1110 2032 y(the)25 b Ft(PATH)f Fu(for)h(p)s(ossible)f
(completions)j(when)d(completion)i(is)f(attempted)h(on)1110
-3842 y(an)k(empt)m(y)h(line.)630 3998 y Fs(nocaseglob)1110
-4107 y Ft(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
-(case-insensitiv)m(e)j(fashion)c(when)1110 4217 y(p)s(erforming)29
-b(\014lename)i(expansion.)630 4372 y Fs(nocasematch)1110
-4482 y Ft(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
-(case-insensitiv)m(e)i(fashion)d(when)1110 4591 y(p)s(erforming)31
-b(matc)m(hing)i(while)f(executing)i Fs(case)d Ft(or)h
-Fs([[)g Ft(conditional)h(com-)1110 4701 y(mands.)630
-4856 y Fs(nullglob)96 b Ft(If)23 b(set,)j(Bash)e(allo)m(ws)g
+2142 y(an)k(empt)m(y)h(line.)630 2301 y Ft(nocaseglob)1110
+2411 y Fu(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
+(case-insensitiv)m(e)j(fashion)c(when)1110 2521 y(p)s(erforming)29
+b(\014lename)i(expansion.)630 2680 y Ft(nocasematch)1110
+2790 y Fu(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
+(case-insensitiv)m(e)i(fashion)d(when)1110 2899 y(p)s(erforming)31
+b(matc)m(hing)i(while)f(executing)i Ft(case)d Fu(or)h
+Ft([[)g Fu(conditional)h(com-)1110 3009 y(mands.)630
+3168 y Ft(nullglob)96 b Fu(If)23 b(set,)j(Bash)e(allo)m(ws)g
(\014lename)g(patterns)g(whic)m(h)f(matc)m(h)h(no)g(\014les)f(to)i
-(expand)1110 4966 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g
-(themselv)m(es.)630 5121 y Fs(progcomp)96 b Ft(If)25
+(expand)1110 3278 y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g
+(themselv)m(es.)630 3437 y Ft(progcomp)96 b Fu(If)25
b(set,)i(the)f(programmable)g(completion)g(facilities)i(\(see)f
-(Section)f(8.6)h([Pro-)1110 5230 y(grammable)45 b(Completion],)k(page)c
-(117\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
-5340 y(enabled)30 b(b)m(y)h(default.)p eop end
-%%Page: 62 68
-TeXDict begin 62 67 bop 150 -116 a Ft(62)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(promptvars)1110
-408 y Ft(If)24 b(set,)i(prompt)d(strings)h(undergo)f(parameter)i
-(expansion,)g(command)f(sub-)1110 518 y(stitution,)34
-b(arithmetic)f(expansion,)g(and)e(quote)i(remo)m(v)-5
-b(al)33 b(after)g(b)s(eing)e(ex-)1110 628 y(panded)39
-b(as)i(describ)s(ed)e(b)s(elo)m(w)i(\(see)g(Section)g(6.9)g([Prin)m
-(ting)g(a)g(Prompt],)1110 737 y(page)31 b(84\).)42 b(This)30
-b(option)g(is)h(enabled)f(b)m(y)g(default.)630 897 y
-Fs(restricted_shell)1110 1006 y Ft(The)40 b(shell)h(sets)g(this)g
-(option)g(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see)
-1110 1116 y(Section)c(6.10)g([The)f(Restricted)g(Shell],)i(page)e
-(86\).)56 b(The)34 b(v)-5 b(alue)35 b(ma)m(y)h(not)1110
-1225 y(b)s(e)c(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
-(the)h(startup)g(\014les)f(are)i(executed,)1110 1335
-y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h
-(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 1445
-y(stricted.)630 1604 y Fs(shift_verbose)1110 1714 y Ft(If)g(this)g(is)g
-(set,)j(the)d Fs(shift)f Ft(builtin)h(prin)m(ts)f(an)h(error)g(message)
-i(when)d(the)1110 1823 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
-(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 1983 y
-Fs(sourcepath)1110 2092 y Ft(If)22 b(set,)j(the)e Fs(source)e
-Ft(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Fs(PATH)e
-Ft(to)j(\014nd)d(the)h(directory)1110 2202 y(con)m(taining)29
-b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40
-b(This)27 b(option)h(is)f(enabled)1110 2311 y(b)m(y)j(default.)630
-2471 y Fs(xpg_echo)96 b Ft(If)31 b(set,)h(the)g Fs(echo)e
-Ft(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
-(de-)1110 2580 y(fault.)630 2740 y(The)c(return)f(status)i(when)f
-(listing)h(options)g(is)f(zero)i(if)e(all)i Fq(optnames)i
-Ft(are)d(enabled,)g(non-)630 2849 y(zero)40 b(otherwise.)66
+(Section)f(8.6)h([Pro-)1110 3547 y(grammable)45 b(Completion],)k(page)c
+(124\))h(are)f(enabled.)82 b(This)44 b(option)h(is)1110
+3656 y(enabled)30 b(b)m(y)h(default.)630 3816 y Ft(promptvars)1110
+3925 y Fu(If)50 b(set,)56 b(prompt)49 b(strings)h(undergo)g(parameter)h
+(expansion,)k(command)1110 4035 y(substitution,)35 b(arithmetic)g
+(expansion,)g(and)e(quote)i(remo)m(v)-5 b(al)35 b(after)f(b)s(eing)1110
+4144 y(expanded)53 b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)
+f(6.9)h([Con)m(trolling)g(the)1110 4254 y(Prompt],)30
+b(page)h(92\).)42 b(This)30 b(option)h(is)f(enabled)h(b)m(y)f(default.)
+630 4413 y Ft(restricted_shell)1110 4523 y Fu(The)40
+b(shell)h(sets)g(this)g(option)g(if)g(it)h(is)e(started)i(in)e
+(restricted)i(mo)s(de)e(\(see)1110 4633 y(Section)c(6.10)g([The)f
+(Restricted)g(Shell],)i(page)e(93\).)56 b(The)34 b(v)-5
+b(alue)35 b(ma)m(y)h(not)1110 4742 y(b)s(e)c(c)m(hanged.)49
+b(This)32 b(is)h(not)h(reset)f(when)f(the)h(startup)g(\014les)f(are)i
+(executed,)1110 4852 y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g
+(disco)m(v)m(er)h(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110
+4961 y(stricted.)630 5121 y Ft(shift_verbose)1110 5230
+y Fu(If)g(this)g(is)g(set,)j(the)d Ft(shift)f Fu(builtin)h(prin)m(ts)f
+(an)h(error)g(message)i(when)d(the)1110 5340 y(shift)30
+b(coun)m(t)h(exceeds)g(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)i
+(parameters.)p eop end
+%%Page: 68 74
+TeXDict begin 68 73 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(68)630 299 y Ft(sourcepath)1110
+408 y Fu(If)22 b(set,)j(the)e Ft(source)e Fu(builtin)h(uses)g(the)h(v)
+-5 b(alue)23 b(of)g Ft(PATH)e Fu(to)j(\014nd)d(the)h(directory)1110
+518 y(con)m(taining)29 b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m
+(t.)40 b(This)27 b(option)h(is)f(enabled)1110 628 y(b)m(y)j(default.)
+630 787 y Ft(xpg_echo)96 b Fu(If)31 b(set,)h(the)g Ft(echo)e
+Fu(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
+(de-)1110 897 y(fault.)630 1056 y(The)c(return)f(status)i(when)f
+(listing)h(options)g(is)f(zero)i(if)e(all)i Fr(optnames)i
+Fu(are)d(enabled,)g(non-)630 1166 y(zero)40 b(otherwise.)66
b(When)39 b(setting)h(or)f(unsetting)g(options,)i(the)e(return)f
-(status)h(is)g(zero)630 2959 y(unless)30 b(an)g Fq(optname)36
-b Ft(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150
-3191 y Fr(4.4)68 b(Sp)t(ecial)45 b(Builtins)150 3351
-y Ft(F)-8 b(or)35 b(historical)h(reasons,)g(the)e Fl(posix)g
-Ft(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g
-(as)h Fk(sp)-5 b(e-)150 3460 y(cial)p Ft(.)47 b(When)33
-b(Bash)f(is)h(executing)g(in)f Fl(posix)g Ft(mo)s(de,)h(the)g(sp)s
+(status)h(is)g(zero)630 1275 y(unless)30 b(an)g Fr(optname)36
+b Fu(is)30 b(not)h(a)g(v)-5 b(alid)30 b(shell)h(option.)150
+1508 y Fs(4.4)68 b(Sp)t(ecial)45 b(Builtins)150 1667
+y Fu(F)-8 b(or)35 b(historical)h(reasons,)g(the)e Fm(posix)g
+Fu(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g
+(as)h Fl(sp)-5 b(e-)150 1777 y(cial)p Fu(.)47 b(When)33
+b(Bash)f(is)h(executing)g(in)f Fm(posix)g Fu(mo)s(de,)h(the)g(sp)s
(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150
-3570 y(commands)e(in)g(three)h(resp)s(ects:)199 3704
+1886 y(commands)e(in)g(three)h(resp)s(ects:)199 2021
y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h(shell)h
-(functions)f(during)f(command)h(lo)s(okup.)199 3839 y(2.)61
+(functions)f(during)f(command)h(lo)s(okup.)199 2155 y(2.)61
b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)g(status,)h
-(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 3973
+(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 2290
y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f(command)
g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m(t)330
-4083 y(after)i(the)f(command)h(completes.)275 4242 y(When)36
-b(Bash)g(is)h(not)f(executing)i(in)e Fl(posix)f Ft(mo)s(de,)j(these)f
+2399 y(after)i(the)f(command)h(completes.)275 2559 y(When)36
+b(Bash)g(is)h(not)f(executing)i(in)e Fm(posix)f Fu(mo)s(de,)j(these)f
(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m(tly)h(than)150
-4352 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e(commands.)41
-b(The)30 b(Bash)g Fl(posix)g Ft(mo)s(de)g(is)g(describ)s(ed)f(in)h
-(Section)h(6.11)150 4462 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(86.)275
-4596 y(These)f(are)g(the)h Fl(posix)f Ft(sp)s(ecial)h(builtins:)390
-4731 y Fs(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f
-(readonly)f(return)h(set)390 4840 y(shift)g(trap)h(unset)p
+2668 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e(commands.)41
+b(The)30 b(Bash)g Fm(posix)g Fu(mo)s(de)g(is)g(describ)s(ed)f(in)h
+(Section)h(6.11)150 2778 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(94.)275
+2912 y(These)f(are)g(the)h Fm(posix)f Fu(sp)s(ecial)h(builtins:)390
+3047 y Ft(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f
+(readonly)f(return)h(set)390 3156 y(shift)g(trap)h(unset)p
eop end
-%%Page: 63 69
-TeXDict begin 63 68 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(63)150 299 y Fo(5)80
-b(Shell)53 b(V)-13 b(ariables)150 541 y Ft(This)21 b(c)m(hapter)i
+%%Page: 69 75
+TeXDict begin 69 74 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(69)150 299 y Fp(5)80
+b(Shell)53 b(V)-13 b(ariables)150 541 y Fu(This)21 b(c)m(hapter)i
(describ)s(es)e(the)i(shell)f(v)-5 b(ariables)23 b(that)f(Bash)h(uses.)
37 b(Bash)23 b(automatically)h(assigns)f(default)150
651 y(v)-5 b(alues)31 b(to)g(a)g(n)m(um)m(b)s(er)e(of)h(v)-5
-b(ariables.)150 888 y Fr(5.1)68 b(Bourne)45 b(Shell)g(V)-11
-b(ariables)150 1047 y Ft(Bash)30 b(uses)g(certain)h(shell)g(v)-5
+b(ariables.)150 888 y Fs(5.1)68 b(Bourne)45 b(Shell)g(V)-11
+b(ariables)150 1047 y Fu(Bash)30 b(uses)g(certain)h(shell)g(v)-5
b(ariables)31 b(in)f(the)g(same)h(w)m(a)m(y)g(as)g(the)f(Bourne)g
(shell.)41 b(In)30 b(some)g(cases,)i(Bash)150 1157 y(assigns)f(a)f
(default)h(v)-5 b(alue)31 b(to)g(the)f(v)-5 b(ariable.)150
-1320 y Fs(CDPATH)192 b Ft(A)39 b(colon-separated)i(list)e(of)g
+1320 y Ft(CDPATH)192 b Fu(A)39 b(colon-separated)i(list)e(of)g
(directories)h(used)f(as)g(a)g(searc)m(h)h(path)e(for)h(the)g
-Fs(cd)f Ft(builtin)630 1430 y(command.)150 1592 y Fs(HOME)288
-b Ft(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g
-(for)f(the)h Fs(cd)f Ft(builtin)g(command.)38 b(The)630
+Ft(cd)f Fu(builtin)630 1430 y(command.)150 1592 y Ft(HOME)288
+b Fu(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g
+(for)f(the)h Ft(cd)f Fu(builtin)g(command.)38 b(The)630
1702 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37
b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f
-(3.5.2)h([Tilde)630 1811 y(Expansion],)30 b(page)h(20\).)150
-1973 y Fs(IFS)336 b Ft(A)25 b(list)i(of)e(c)m(haracters)i(that)f
+(3.5.2)h([Tilde)630 1811 y(Expansion],)30 b(page)h(22\).)150
+1973 y Ft(IFS)336 b Fu(A)25 b(list)i(of)e(c)m(haracters)i(that)f
(separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e
-(as)i(part)630 2083 y(of)31 b(expansion.)150 2245 y Fs(MAIL)288
-b Ft(If)44 b(this)g(parameter)h(is)g(set)g(to)g(a)f(\014lename)h(or)f
-(directory)h(name)g(and)f(the)g Fs(MAILPATH)630 2355
-y Ft(v)-5 b(ariable)32 b(is)e(not)h(set,)h(Bash)f(informs)f(the)h(user)
+(as)i(part)630 2083 y(of)31 b(expansion.)150 2245 y Ft(MAIL)288
+b Fu(If)44 b(this)g(parameter)h(is)g(set)g(to)g(a)f(\014lename)h(or)f
+(directory)h(name)g(and)f(the)g Ft(MAILPATH)630 2355
+y Fu(v)-5 b(ariable)32 b(is)e(not)h(set,)h(Bash)f(informs)f(the)h(user)
f(of)h(the)g(arriv)-5 b(al)31 b(of)g(mail)g(in)g(the)g(sp)s(eci\014ed)
630 2464 y(\014le)f(or)h(Maildir-format)g(directory)-8
-b(.)150 2627 y Fs(MAILPATH)96 b Ft(A)33 b(colon-separated)i(list)f(of)f
+b(.)150 2627 y Ft(MAILPATH)96 b Fu(A)33 b(colon-separated)i(list)f(of)f
(\014lenames)h(whic)m(h)f(the)g(shell)g(p)s(erio)s(dically)h(c)m(hec)m
(ks)g(for)f(new)630 2736 y(mail.)60 b(Eac)m(h)37 b(list)g(en)m(try)g
(can)g(sp)s(ecify)f(the)h(message)h(that)f(is)g(prin)m(ted)f(when)f
-(new)h(mail)630 2846 y(arriv)m(es)29 b(in)g(the)g(mail)g(\014le)g(b)m
-(y)g(separating)g(the)g(\014le)g(name)g(from)f(the)h(message)h(with)e
-(a)i(`)p Fs(?)p Ft('.)630 2955 y(When)i(used)f(in)h(the)g(text)i(of)e
-(the)g(message,)i Fs($_)e Ft(expands)f(to)i(the)f(name)g(of)h(the)f
-(curren)m(t)630 3065 y(mail)f(\014le.)150 3227 y Fs(OPTARG)192
-b Ft(The)30 b(v)-5 b(alue)31 b(of)f(the)h(last)g(option)g(argumen)m(t)g
-(pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f Ft(builtin.)150
-3389 y Fs(OPTIND)192 b Ft(The)30 b(index)g(of)g(the)h(last)g(option)g
-(argumen)m(t)g(pro)s(cessed)f(b)m(y)g(the)g Fs(getopts)f
-Ft(builtin.)150 3552 y Fs(PATH)288 b Ft(A)32 b(colon-separated)i(list)f
+(new)h(mail)630 2846 y(arriv)m(es)31 b(in)g(the)g(mail)g(\014le)g(b)m
+(y)g(separating)h(the)f(\014lename)g(from)f(the)h(message)h(with)e(a)i
+(`)p Ft(?)p Fu('.)630 2955 y(When)g(used)f(in)h(the)g(text)i(of)e(the)g
+(message,)i Ft($_)e Fu(expands)f(to)i(the)f(name)g(of)h(the)f(curren)m
+(t)630 3065 y(mail)f(\014le.)150 3227 y Ft(OPTARG)192
+b Fu(The)30 b(v)-5 b(alue)31 b(of)f(the)h(last)g(option)g(argumen)m(t)g
+(pro)s(cessed)f(b)m(y)g(the)g Ft(getopts)f Fu(builtin.)150
+3389 y Ft(OPTIND)192 b Fu(The)30 b(index)g(of)g(the)h(last)g(option)g
+(argumen)m(t)g(pro)s(cessed)f(b)m(y)g(the)g Ft(getopts)f
+Fu(builtin.)150 3552 y Ft(PATH)288 b Fu(A)32 b(colon-separated)i(list)f
(of)f(directories)h(in)e(whic)m(h)h(the)g(shell)g(lo)s(oks)h(for)f
(commands.)45 b(A)630 3661 y(zero-length)e(\(n)m(ull\))g(directory)f
-(name)g(in)g(the)g(v)-5 b(alue)42 b(of)g Fs(PATH)f Ft(indicates)i(the)f
+(name)g(in)g(the)g(v)-5 b(alue)42 b(of)g Ft(PATH)f Fu(indicates)i(the)f
(curren)m(t)630 3771 y(directory)-8 b(.)49 b(A)33 b(n)m(ull)f
(directory)i(name)e(ma)m(y)i(app)s(ear)e(as)h(t)m(w)m(o)h(adjacen)m(t)g
(colons,)g(or)f(as)g(an)630 3880 y(initial)f(or)e(trailing)h(colon.)150
-4042 y Fs(PS1)336 b Ft(The)35 b(primary)f(prompt)h(string.)55
-b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Fs(\\s-\\v\\$)28
-b Ft('.)56 b(See)36 b(Section)g(6.9)630 4152 y([Prin)m(ting)28
-b(a)g(Prompt],)g(page)h(84,)g(for)e(the)h(complete)h(list)g(of)e(escap)
-s(e)h(sequences)g(that)h(are)630 4262 y(expanded)h(b)s(efore)g
-Fs(PS1)f Ft(is)h(displa)m(y)m(ed.)150 4424 y Fs(PS2)336
-b Ft(The)30 b(secondary)g(prompt)g(string.)41 b(The)29
-b(default)i(v)-5 b(alue)31 b(is)f(`)p Fs(>)g Ft('.)150
-4661 y Fr(5.2)68 b(Bash)45 b(V)-11 b(ariables)150 4820
-y Ft(These)45 b(v)-5 b(ariables)46 b(are)g(set)g(or)f(used)f(b)m(y)h
+4042 y Ft(PS1)336 b Fu(The)35 b(primary)f(prompt)h(string.)55
+b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Ft(\\s-\\v\\$)28
+b Fu('.)56 b(See)36 b(Section)g(6.9)630 4152 y([Con)m(trolling)42
+b(the)e(Prompt],)j(page)e(92,)j(for)c(the)g(complete)i(list)f(of)f
+(escap)s(e)h(sequences)630 4262 y(that)31 b(are)g(expanded)e(b)s(efore)
+h Ft(PS1)g Fu(is)g(displa)m(y)m(ed.)150 4424 y Ft(PS2)336
+b Fu(The)30 b(secondary)g(prompt)g(string.)41 b(The)29
+b(default)i(v)-5 b(alue)31 b(is)f(`)p Ft(>)g Fu('.)150
+4661 y Fs(5.2)68 b(Bash)45 b(V)-11 b(ariables)150 4820
+y Fu(These)45 b(v)-5 b(ariables)46 b(are)g(set)g(or)f(used)f(b)m(y)h
(Bash,)50 b(but)44 b(other)i(shells)f(do)h(not)f(normally)h(treat)g
(them)150 4929 y(sp)s(ecially)-8 b(.)275 5067 y(A)24
b(few)g(v)-5 b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f
(in)h(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25
b(for)f(con)m(trolling)150 5176 y(the)31 b(job)f(con)m(trol)h
(facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8
-b(ariables],)32 b(page)g(94\).)150 5340 y Fs(BASH)288
-b Ft(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)
+b(ariables],)32 b(page)g(100\).)150 5340 y Ft(BASH)288
+b Fu(The)30 b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)
g(instance)h(of)g(Bash.)p eop end
-%%Page: 64 70
-TeXDict begin 64 69 bop 150 -116 a Ft(64)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(BASHOPTS)96 b Ft(A)31
-b(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41
+%%Page: 70 76
+TeXDict begin 70 75 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(70)150 299 y Ft(BASHOPTS)96
+b Fu(A)31 b(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)41
b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
-b(alid)630 408 y(argumen)m(t)33 b(for)g(the)f(`)p Fs(-s)p
-Ft(')h(option)g(to)g(the)g Fs(shopt)e Ft(builtin)i(command)f(\(see)i
-(Section)f(4.3.2)630 518 y([The)j(Shopt)g(Builtin],)i(page)f(57\).)60
-b(The)36 b(options)h(app)s(earing)f(in)g Fs(BASHOPTS)e
-Ft(are)i(those)630 628 y(rep)s(orted)e(as)h(`)p Fs(on)p
-Ft(')f(b)m(y)h(`)p Fs(shopt)p Ft('.)53 b(If)34 b(this)g(v)-5
+b(alid)630 408 y(argumen)m(t)37 b(for)g(the)g Ft(-s)f
+Fu(option)i(to)f(the)g Ft(shopt)f Fu(builtin)g(command)h(\(see)g
+(Section)h(4.3.2)630 518 y([The)e(Shopt)g(Builtin],)i(page)f(62\).)60
+b(The)36 b(options)h(app)s(earing)f(in)g Ft(BASHOPTS)e
+Fu(are)i(those)630 628 y(rep)s(orted)e(as)h(`)p Ft(on)p
+Fu(')f(b)m(y)h(`)p Ft(shopt)p Fu('.)53 b(If)34 b(this)g(v)-5
b(ariable)36 b(is)f(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)630
737 y(starts)25 b(up,)f(eac)m(h)i(shell)e(option)h(in)e(the)i(list)g
(will)f(b)s(e)g(enabled)g(b)s(efore)g(reading)g(an)m(y)g(startup)630
847 y(\014les.)41 b(This)29 b(v)-5 b(ariable)31 b(is)g(readonly)-8
-b(.)150 998 y Fs(BASHPID)144 b Ft(Expands)35 b(to)i(the)f(pro)s(cess)f
+b(.)150 1003 y Ft(BASHPID)144 b Fu(Expands)35 b(to)i(the)f(pro)s(cess)f
(ID)i(of)f(the)g(curren)m(t)g(Bash)g(pro)s(cess.)58 b(This)35
-b(di\013ers)h(from)g Fs($$)630 1107 y Ft(under)31 b(certain)j
+b(di\013ers)h(from)g Ft($$)630 1113 y Fu(under)31 b(certain)j
(circumstances,)h(suc)m(h)e(as)g(subshells)f(that)i(do)f(not)g(require)
-g(Bash)g(to)h(b)s(e)630 1217 y(re-initialized.)150 1367
-y Fs(BASH_ALIASES)630 1477 y Ft(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d
+g(Bash)g(to)h(b)s(e)630 1223 y(re-initialized.)150 1379
+y Ft(BASH_ALIASES)630 1489 y Fu(An)40 b(asso)s(ciativ)m(e)j(arra)m(y)d
(v)-5 b(ariable)41 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f
-(in)m(ternal)h(list)630 1587 y(of)c(aliases)h(as)f(main)m(tained)g(b)m
-(y)g(the)g Fs(alias)e Ft(builtin.)59 b(\(see)37 b(Section)h(4.1)f
-([Bourne)g(Shell)630 1696 y(Builtins],)f(page)e(37\).)53
+(in)m(ternal)h(list)630 1598 y(of)c(aliases)h(as)f(main)m(tained)g(b)m
+(y)g(the)g Ft(alias)e Fu(builtin.)59 b(\(see)37 b(Section)h(4.1)f
+([Bourne)g(Shell)630 1708 y(Builtins],)f(page)e(41\).)53
b(Elemen)m(ts)35 b(added)e(to)i(this)e(arra)m(y)i(app)s(ear)e(in)h(the)
-g(alias)h(list;)i(un-)630 1806 y(setting)31 b(arra)m(y)g(elemen)m(ts)h
+g(alias)h(list;)i(un-)630 1817 y(setting)31 b(arra)m(y)g(elemen)m(ts)h
(cause)f(aliases)h(to)f(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(alias)g
-(list.)150 1956 y Fs(BASH_ARGC)630 2066 y Ft(An)f(arra)m(y)h(v)-5
+(list.)150 1974 y Ft(BASH_ARGC)630 2084 y Fu(An)f(arra)m(y)h(v)-5
b(ariable)31 b(whose)f(v)-5 b(alues)31 b(are)g(the)f(n)m(um)m(b)s(er)g
-(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 2176
+(of)g(parameters)h(in)f(eac)m(h)h(frame)g(of)630 2193
y(the)26 b(curren)m(t)f(bash)g(execution)i(call)g(stac)m(k.)41
b(The)25 b(n)m(um)m(b)s(er)g(of)h(parameters)g(to)g(the)g(curren)m(t)
-630 2285 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i
-(with)e Fs(.)g Ft(or)h Fs(source)p Ft(\))e(is)h(at)h(the)g(top)g(of)630
-2395 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h
+630 2303 y(subroutine)i(\(shell)i(function)g(or)f(script)g(executed)i
+(with)e Ft(.)g Fu(or)h Ft(source)p Fu(\))e(is)h(at)h(the)g(top)g(of)630
+2412 y(the)37 b(stac)m(k.)63 b(When)37 b(a)h(subroutine)e(is)h
(executed,)j(the)e(n)m(um)m(b)s(er)d(of)j(parameters)f(passed)630
-2504 y(is)g(pushed)f(on)m(to)i Fs(BASH_ARGC)p Ft(.)59
-b(The)37 b(shell)g(sets)h Fs(BASH_ARGC)c Ft(only)k(when)e(in)h
-(extended)630 2614 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i
-([The)d(Shopt)g(Builtin],)j(page)e(57)h(for)e(a)h(description)630
-2724 y(of)31 b(the)f Fs(extdebug)e Ft(option)j(to)g(the)g
-Fs(shopt)e Ft(builtin\).)150 2874 y Fs(BASH_ARGV)630
-2984 y Ft(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f
+2522 y(is)g(pushed)f(on)m(to)i Ft(BASH_ARGC)p Fu(.)59
+b(The)37 b(shell)g(sets)h Ft(BASH_ARGC)c Fu(only)k(when)e(in)h
+(extended)630 2632 y(debugging)23 b(mo)s(de)f(\(see)h(Section)g(4.3.2)i
+([The)d(Shopt)g(Builtin],)j(page)e(62)h(for)e(a)h(description)630
+2741 y(of)31 b(the)f Ft(extdebug)e Fu(option)j(to)g(the)g
+Ft(shopt)e Fu(builtin\).)150 2898 y Ft(BASH_ARGV)630
+3007 y Fu(An)24 b(arra)m(y)g(v)-5 b(ariable)25 b(con)m(taining)h(all)f
(of)f(the)h(parameters)f(in)g(the)g(curren)m(t)g(bash)g(execution)630
-3093 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g
+3117 y(call)35 b(stac)m(k.)53 b(The)34 b(\014nal)g(parameter)g(of)g
(the)g(last)h(subroutine)e(call)i(is)f(at)h(the)f(top)h(of)f(the)630
-3203 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i
+3226 y(stac)m(k;)28 b(the)c(\014rst)f(parameter)i(of)f(the)g(initial)i
(call)f(is)f(at)h(the)f(b)s(ottom.)39 b(When)24 b(a)g(subroutine)630
-3313 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f
-(on)m(to)i Fs(BASH_ARGV)p Ft(.)66 b(The)40 b(shell)630
-3422 y(sets)28 b Fs(BASH_ARGV)e Ft(only)i(when)f(in)h(extended)g
+3336 y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f
+(on)m(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630
+3446 y(sets)28 b Ft(BASH_ARGV)e Fu(only)i(when)f(in)h(extended)g
(debugging)g(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630
-3532 y(Shopt)i(Builtin],)h(page)g(57)g(for)f(a)h(description)f(of)h
-(the)f Fs(extdebug)e Ft(option)j(to)g(the)f Fs(shopt)630
-3641 y Ft(builtin\).)150 3792 y Fs(BASH_CMDS)630 3902
-y Ft(An)i(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35
+3555 y(Shopt)i(Builtin],)h(page)g(62)g(for)f(a)h(description)f(of)h
+(the)f Ft(extdebug)e Fu(option)j(to)g(the)f Ft(shopt)630
+3665 y Fu(builtin\).)150 3821 y Ft(BASH_CMDS)630 3931
+y Fu(An)i(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5 b(ariable)35
b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h
-(hash)630 4011 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g
-(the)f Fs(hash)f Ft(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630
-4121 y(Shell)23 b(Builtins],)j(page)e(37\).)40 b(Elemen)m(ts)24
+(hash)630 4041 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g
+(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630
+4150 y(Shell)23 b(Builtins],)j(page)e(41\).)40 b(Elemen)m(ts)24
b(added)e(to)j(this)e(arra)m(y)h(app)s(ear)e(in)i(the)f(hash)g(table;)
-630 4230 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f
+630 4260 y(unsetting)30 b(arra)m(y)h(elemen)m(ts)h(cause)f(commands)f
(to)h(b)s(e)f(remo)m(v)m(ed)h(from)f(the)h(hash)e(table.)150
-4381 y Fs(BASH_COMMAND)630 4491 y Ft(The)39 b(command)h(curren)m(tly)g
+4416 y Ft(BASH_COMMAND)630 4526 y Fu(The)39 b(command)h(curren)m(tly)g
(b)s(eing)f(executed)i(or)e(ab)s(out)h(to)g(b)s(e)f(executed,)44
-b(unless)39 b(the)630 4600 y(shell)g(is)g(executing)g(a)g(command)g(as)
+b(unless)39 b(the)630 4635 y(shell)g(is)g(executing)g(a)g(command)g(as)
g(the)f(result)h(of)g(a)g(trap,)i(in)d(whic)m(h)g(case)i(it)f(is)g(the)
-630 4710 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.)
-150 4861 y Fs(BASH_ENV)96 b Ft(If)28 b(this)g(v)-5 b(ariable)30
-b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e
-(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 4970
-y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g
-(to)h(read)f(b)s(efore)g(executing)i(the)630 5080 y(script.)41
-b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(75.)150
-5230 y Fs(BASH_EXECUTION_STRING)630 5340 y Ft(The)f(command)g(argumen)m
-(t)h(to)g(the)g(`)p Fs(-c)p Ft(')f(in)m(v)m(o)s(cation)i(option.)p
-eop end
-%%Page: 65 71
-TeXDict begin 65 70 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(65)150 299 y Fs(BASH_LINENO)630
-408 y Ft(An)62 b(arra)m(y)i(v)-5 b(ariable)63 b(whose)g(mem)m(b)s(ers)e
-(are)j(the)e(line)h(n)m(um)m(b)s(ers)f(in)g(source)h(\014les)630
-518 y(where)46 b(eac)m(h)i(corresp)s(onding)e(mem)m(b)s(er)f(of)i
-Fq(FUNCNAME)53 b Ft(w)m(as)47 b(in)m(v)m(ok)m(ed.)91
-b Fs(${BASH_)630 628 y(LINENO[$i]})39 b Ft(is)i(the)h(line)g(n)m(um)m
-(b)s(er)e(in)i(the)f(source)h(\014le)g(\()p Fs(${BASH_SOURCE[$i+1]})p
-Ft(\))630 737 y(where)d Fs(${FUNCNAME[$i]})c Ft(w)m(as)k(called)i(\(or)
-e Fs(${BASH_LINENO[$i-1]})34 b Ft(if)39 b(referenced)630
-847 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31
-b Fs(LINENO)d Ft(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s
-(er.)150 1002 y Fs(BASH_REMATCH)630 1112 y Ft(An)43 b(arra)m(y)i(v)-5
+630 4745 y(command)30 b(executing)i(at)f(the)f(time)h(of)g(the)g(trap.)
+150 4902 y Ft(BASH_COMPAT)630 5011 y Fu(The)i(v)-5 b(alue)34
+b(is)f(used)g(to)h(set)f(the)h(shell's)g(compatibilit)m(y)h(lev)m(el.)
+51 b(See)34 b(Section)g(4.3.2)h([The)630 5121 y(Shopt)40
+b(Builtin],)45 b(page)c(62,)k(for)c(a)g(description)g(of)g(the)g(v)-5
+b(arious)41 b(compatibilit)m(y)i(lev)m(els)630 5230 y(and)31
+b(their)g(e\013ects.)45 b(The)31 b(v)-5 b(alue)31 b(ma)m(y)h(b)s(e)f(a)
+h(decimal)g(n)m(um)m(b)s(er)e(\(e.g.,)j(4.2\))g(or)e(an)h(in)m(teger)
+630 5340 y(\(e.g.,)39 b(42\))f(corresp)s(onding)d(to)i(the)f(desired)f
+(compatibilit)m(y)k(lev)m(el.)59 b(If)36 b Ft(BASH_COMPAT)d
+Fu(is)p eop end
+%%Page: 71 77
+TeXDict begin 71 76 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(71)630 299 y(unset)37
+b(or)g(set)h(to)g(the)g(empt)m(y)f(string,)j(the)d(compatibilit)m(y)j
+(lev)m(el)f(is)e(set)h(to)g(the)g(default)630 408 y(for)i(the)h(curren)
+m(t)f(v)m(ersion.)72 b(If)40 b Ft(BASH_COMPAT)e Fu(is)i(set)h(to)h(a)e
+(v)-5 b(alue)41 b(that)h(is)e(not)h(one)g(of)630 518
+y(the)f(v)-5 b(alid)40 b(compatibilit)m(y)i(lev)m(els,)i(the)c(shell)g
+(prin)m(ts)f(an)h(error)f(message)i(and)f(sets)g(the)630
+628 y(compatibilit)m(y)23 b(lev)m(el)f(to)f(the)f(default)h(for)f(the)g
+(curren)m(t)g(v)m(ersion.)38 b(The)20 b(v)-5 b(alid)21
+b(compatibilit)m(y)630 737 y(lev)m(els)40 b(corresp)s(ond)e(to)h(the)g
+(compatibilit)m(y)i(options)e(accepted)h(b)m(y)f(the)g
+Ft(shopt)e Fu(builtin)630 847 y(describ)s(ed)20 b(ab)s(o)m(v)m(e)i
+(\(for)g(example,)h Fr(compat42)31 b Fu(means)21 b(that)g(4.2)i(and)d
+(42)i(are)g(v)-5 b(alid)21 b(v)-5 b(alues\).)630 956
+y(The)30 b(curren)m(t)g(v)m(ersion)h(is)f(also)i(a)e(v)-5
+b(alid)31 b(v)-5 b(alue.)150 1121 y Ft(BASH_ENV)96 b
+Fu(If)28 b(this)g(v)-5 b(ariable)30 b(is)e(set)h(when)f(Bash)g(is)h(in)
+m(v)m(ok)m(ed)h(to)f(execute)h(a)e(shell)h(script,)g(its)g(v)-5
+b(alue)29 b(is)630 1230 y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)
+g(a)h(startup)f(\014le)g(to)h(read)f(b)s(efore)g(executing)i(the)630
+1340 y(script.)41 b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)
+j(page)f(82.)150 1504 y Ft(BASH_EXECUTION_STRING)630
+1614 y Fu(The)f(command)g(argumen)m(t)h(to)g(the)g Ft(-c)e
+Fu(in)m(v)m(o)s(cation)k(option.)150 1778 y Ft(BASH_LINENO)630
+1888 y Fu(An)62 b(arra)m(y)i(v)-5 b(ariable)63 b(whose)g(mem)m(b)s(ers)
+e(are)j(the)e(line)h(n)m(um)m(b)s(ers)f(in)g(source)h(\014les)630
+1998 y(where)46 b(eac)m(h)i(corresp)s(onding)d(mem)m(b)s(er)h(of)h
+Fr(FUNCNAME)53 b Fu(w)m(as)47 b(in)m(v)m(ok)m(ed.)91
+b Ft(${BASH_)630 2107 y(LINENO[$i]})39 b Fu(is)i(the)h(line)g(n)m(um)m
+(b)s(er)e(in)i(the)f(source)h(\014le)g(\()p Ft(${BASH_SOURCE[$i+1]})p
+Fu(\))630 2217 y(where)d Ft(${FUNCNAME[$i]})c Fu(w)m(as)k(called)i
+(\(or)e Ft(${BASH_LINENO[$i-1]})34 b Fu(if)39 b(referenced)630
+2326 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31
+b Ft(LINENO)d Fu(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s
+(er.)150 2491 y Ft(BASH_REMATCH)630 2600 y Fu(An)43 b(arra)m(y)i(v)-5
b(ariable)44 b(whose)g(mem)m(b)s(ers)f(are)h(assigned)g(b)m(y)f(the)h
-(`)p Fs(=~)p Ft(')g(binary)f(op)s(erator)630 1221 y(to)37
-b(the)f Fs([[)g Ft(conditional)i(command)e(\(see)h(Section)g(3.2.4.2)i
-([Conditional)e(Constructs],)630 1331 y(page)e(10\).)52
+(`)p Ft(=~)p Fu(')g(binary)f(op)s(erator)630 2710 y(to)37
+b(the)f Ft([[)g Fu(conditional)i(command)e(\(see)h(Section)g(3.2.4.2)i
+([Conditional)e(Constructs],)630 2819 y(page)e(10\).)52
b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f(the)g(p)s(ortion)f(of)h
-(the)g(string)g(matc)m(hing)h(the)630 1440 y(en)m(tire)29
+(the)g(string)g(matc)m(hing)h(the)630 2929 y(en)m(tire)29
b(regular)f(expression.)40 b(The)27 b(elemen)m(t)j(with)d(index)h
-Fq(n)f Ft(is)h(the)g(p)s(ortion)g(of)g(the)g(string)630
-1550 y(matc)m(hing)j(the)g Fq(n)p Ft(th)f(paren)m(thesized)h(sub)s
+Fr(n)f Fu(is)h(the)g(p)s(ortion)g(of)g(the)g(string)630
+3039 y(matc)m(hing)j(the)g Fr(n)p Fu(th)f(paren)m(thesized)h(sub)s
(expression.)39 b(This)29 b(v)-5 b(ariable)31 b(is)g(read-only)-8
-b(.)150 1705 y Fs(BASH_SOURCE)630 1815 y Ft(An)40 b(arra)m(y)h(v)-5
+b(.)150 3203 y Ft(BASH_SOURCE)630 3313 y Fu(An)40 b(arra)m(y)h(v)-5
b(ariable)41 b(whose)f(mem)m(b)s(ers)g(are)h(the)g(source)f
-(\014lenames)h(where)f(the)g(corre-)630 1924 y(sp)s(onding)27
-b(shell)i(function)f(names)g(in)g(the)h Fs(FUNCNAME)d
-Ft(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38
-b(The)630 2034 y(shell)26 b(function)g Fs(${FUNCNAME[$i]})c
-Ft(is)k(de\014ned)f(in)g(the)h(\014le)h Fs(${BASH_SOURCE[$i]})21
-b Ft(and)630 2144 y(called)32 b(from)d Fs(${BASH_SOURCE[$i+1]})150
-2299 y(BASH_SUBSHELL)630 2408 y Ft(Incremen)m(ted)34
-b(b)m(y)h(one)f(eac)m(h)i(time)f(a)f(subshell)g(or)g(subshell)f(en)m
-(vironmen)m(t)i(is)f(spa)m(wned.)630 2518 y(The)c(initial)h(v)-5
-b(alue)31 b(is)g(0.)150 2673 y Fs(BASH_VERSINFO)630 2783
-y Ft(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37 b(\(see)f(Section)h
-(6.7)g([Arra)m(ys],)h(page)e(82\))h(whose)f(mem)m(b)s(ers)630
-2892 y(hold)c(v)m(ersion)h(information)f(for)g(this)g(instance)h(of)g
-(Bash.)46 b(The)32 b(v)-5 b(alues)32 b(assigned)h(to)g(the)630
-3002 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g(follo)m(ws:)630
-3157 y Fs(BASH_VERSINFO[0])1110 3267 y Ft(The)f(ma)5
-b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(release)5
-b Ft(\).)630 3422 y Fs(BASH_VERSINFO[1])1110 3532 y Ft(The)30
-b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i Fq(v)m(ersion)p
-Ft(\).)630 3687 y Fs(BASH_VERSINFO[2])1110 3797 y Ft(The)f(patc)m(h)h
-(lev)m(el.)630 3952 y Fs(BASH_VERSINFO[3])1110 4061 y
-Ft(The)f(build)f(v)m(ersion.)630 4217 y Fs(BASH_VERSINFO[4])1110
-4326 y Ft(The)h(release)i(status)e(\(e.g.,)j Fq(b)s(eta1)7
-b Ft(\).)630 4482 y Fs(BASH_VERSINFO[5])1110 4591 y Ft(The)30
-b(v)-5 b(alue)31 b(of)f Fs(MACHTYPE)p Ft(.)150 4746 y
-Fs(BASH_VERSION)630 4856 y Ft(The)g(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
-(the)h(curren)m(t)f(instance)h(of)g(Bash.)150 5011 y
-Fs(BASH_XTRACEFD)630 5121 y Ft(If)f(set)h(to)h(an)e(in)m(teger)i
+(\014lenames)h(where)f(the)g(corre-)630 3422 y(sp)s(onding)27
+b(shell)i(function)f(names)g(in)g(the)h Ft(FUNCNAME)d
+Fu(arra)m(y)j(v)-5 b(ariable)30 b(are)f(de\014ned.)38
+b(The)630 3532 y(shell)26 b(function)g Ft(${FUNCNAME[$i]})c
+Fu(is)k(de\014ned)f(in)g(the)h(\014le)h Ft(${BASH_SOURCE[$i]})21
+b Fu(and)630 3641 y(called)32 b(from)d Ft(${BASH_SOURCE[$i+1]})150
+3806 y(BASH_SUBSHELL)630 3915 y Fu(Incremen)m(ted)24
+b(b)m(y)f(one)h(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m
+(vironmen)m(t)i(when)f(the)h(shell)630 4025 y(b)s(egins)30
+b(executing)h(in)f(that)h(en)m(vironmen)m(t.)42 b(The)30
+b(initial)h(v)-5 b(alue)31 b(is)f(0.)150 4189 y Ft(BASH_VERSINFO)630
+4299 y Fu(A)36 b(readonly)g(arra)m(y)g(v)-5 b(ariable)37
+b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(89\))h(whose)f(mem)m(b)
+s(ers)630 4408 y(hold)c(v)m(ersion)h(information)f(for)g(this)g
+(instance)h(of)g(Bash.)46 b(The)32 b(v)-5 b(alues)32
+b(assigned)h(to)g(the)630 4518 y(arra)m(y)e(mem)m(b)s(ers)e(are)i(as)g
+(follo)m(ws:)630 4682 y Ft(BASH_VERSINFO[0])1110 4792
+y Fu(The)f(ma)5 b(jor)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i
+Fr(release)5 b Fu(\).)630 4956 y Ft(BASH_VERSINFO[1])1110
+5066 y Fu(The)30 b(minor)g(v)m(ersion)h(n)m(um)m(b)s(er)e(\(the)i
+Fr(v)m(ersion)p Fu(\).)630 5230 y Ft(BASH_VERSINFO[2])1110
+5340 y Fu(The)f(patc)m(h)h(lev)m(el.)p eop end
+%%Page: 72 78
+TeXDict begin 72 77 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(72)630 299 y Ft(BASH_VERSINFO[3])
+1110 408 y Fu(The)30 b(build)f(v)m(ersion.)630 591 y
+Ft(BASH_VERSINFO[4])1110 701 y Fu(The)h(release)i(status)e(\(e.g.,)j
+Fr(b)s(eta1)7 b Fu(\).)630 883 y Ft(BASH_VERSINFO[5])1110
+993 y Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p
+Fu(.)150 1176 y Ft(BASH_VERSION)630 1285 y Fu(The)g(v)m(ersion)h(n)m
+(um)m(b)s(er)e(of)h(the)h(curren)m(t)f(instance)h(of)g(Bash.)150
+1468 y Ft(BASH_XTRACEFD)630 1577 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i
(corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g
-(Bash)g(will)g(write)g(the)630 5230 y(trace)37 b(output)f(generated)h
-(when)f(`)p Fs(set)29 b(-x)p Ft(')36 b(is)g(enabled)h(to)g(that)f
-(\014le)h(descriptor.)58 b(This)630 5340 y(allo)m(ws)29
+(Bash)g(will)g(write)g(the)630 1687 y(trace)37 b(output)f(generated)h
+(when)f(`)p Ft(set)29 b(-x)p Fu(')36 b(is)g(enabled)h(to)g(that)f
+(\014le)h(descriptor.)58 b(This)630 1797 y(allo)m(ws)29
b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f
-(error)f(messages.)41 b(The)p eop end
-%%Page: 66 72
-TeXDict begin 66 71 bop 150 -116 a Ft(66)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(\014le)g(descriptor)f(is)h(closed)g
-(when)f Fs(BASH_XTRACEFD)d Ft(is)k(unset)f(or)g(assigned)h(a)g(new)f(v)
--5 b(alue.)630 408 y(Unsetting)45 b Fs(BASH_XTRACEFD)40
-b Ft(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f
-(trace)630 518 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g
-(standard)e(error.)50 b(Note)35 b(that)g(setting)f Fs(BASH_XTRACEFD)c
-Ft(to)630 628 y(2)39 b(\(the)h(standard)e(error)g(\014le)h
+(error)f(messages.)41 b(The)630 1906 y(\014le)31 b(descriptor)f(is)h
+(closed)g(when)f Ft(BASH_XTRACEFD)d Fu(is)k(unset)f(or)g(assigned)h(a)g
+(new)f(v)-5 b(alue.)630 2016 y(Unsetting)45 b Ft(BASH_XTRACEFD)40
+b Fu(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f
+(trace)630 2125 y(output)33 b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g
+(standard)e(error.)50 b(Note)35 b(that)g(setting)f Ft(BASH_XTRACEFD)c
+Fu(to)630 2235 y(2)39 b(\(the)h(standard)e(error)g(\014le)h
(descriptor\))h(and)e(then)h(unsetting)g(it)g(will)g(result)g(in)g(the)
-630 737 y(standard)30 b(error)g(b)s(eing)f(closed.)150
-915 y Fs(COLUMNS)144 b Ft(Used)32 b(b)m(y)f(the)h Fs(select)e
-Ft(command)h(to)i(determine)f(the)f(terminal)i(width)d(when)h(prin)m
-(ting)630 1025 y(selection)h(lists.)41 b(Automatically)33
-b(set)e(up)s(on)e(receipt)i(of)g(a)g Fs(SIGWINCH)p Ft(.)150
-1203 y Fs(COMP_CWORD)630 1313 y Ft(An)38 b(index)g(in)m(to)h
-Fs(${COMP_WORDS})c Ft(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
-(curren)m(t)g(cursor)g(p)s(o-)630 1422 y(sition.)72 b(This)40
+630 2345 y(standard)30 b(error)g(b)s(eing)f(closed.)150
+2527 y Ft(CHILD_MAX)630 2637 y Fu(Set)35 b(the)h(n)m(um)m(b)s(er)e(of)h
+(exited)h(c)m(hild)g(status)f(v)-5 b(alues)36 b(for)f(the)g(shell)g(to)
+h(remem)m(b)s(er.)55 b(Bash)630 2746 y(will)37 b(not)g(allo)m(w)i(this)
+e(v)-5 b(alue)37 b(to)h(b)s(e)e(decreased)i(b)s(elo)m(w)f(a)g
+Fm(posix)p Fu(-mandated)f(minim)m(um,)630 2856 y(and)30
+b(there)g(is)g(a)h(maxim)m(um)f(v)-5 b(alue)30 b(\(curren)m(tly)h
+(8192\))h(that)f(this)f(ma)m(y)g(not)h(exceed.)41 b(The)630
+2966 y(minim)m(um)30 b(v)-5 b(alue)30 b(is)h(system-dep)s(enden)m(t.)
+150 3148 y Ft(COLUMNS)144 b Fu(Used)32 b(b)m(y)f(the)h
+Ft(select)e Fu(command)h(to)i(determine)f(the)f(terminal)i(width)d
+(when)h(prin)m(ting)630 3258 y(selection)39 b(lists.)63
+b(Automatically)41 b(set)d(if)f(the)h Ft(checkwinsize)d
+Fu(option)j(is)f(enabled)h(\(see)630 3367 y(Section)44
+b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(62\),)k(or)43
+b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 3477
+y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 3660 y
+Ft(COMP_CWORD)630 3769 y Fu(An)38 b(index)g(in)m(to)h
+Ft(${COMP_WORDS})c Fu(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
+(curren)m(t)g(cursor)g(p)s(o-)630 3879 y(sition.)72 b(This)40
b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
(functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
-1532 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
-([Programmable)g(Completion],)630 1641 y(page)31 b(117\).)150
-1819 y Fs(COMP_LINE)630 1929 y Ft(The)38 b(curren)m(t)h(command)f
+3988 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
+([Programmable)g(Completion],)630 4098 y(page)31 b(124\).)150
+4281 y Ft(COMP_LINE)630 4390 y Fu(The)38 b(curren)m(t)h(command)f
(line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5
-b(ailable)41 b(only)d(in)h(shell)f(functions)630 2039
+b(ailable)41 b(only)d(in)h(shell)f(functions)630 4500
y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h
-(programmable)f(completion)i(facilities)g(\(see)630 2148
-y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(117\).)150
-2326 y Fs(COMP_POINT)630 2436 y Ft(The)25 b(index)g(of)h(the)g(curren)m
+(programmable)f(completion)i(facilities)g(\(see)630 4609
+y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(124\).)150
+4792 y Ft(COMP_POINT)630 4902 y Fu(The)25 b(index)g(of)h(the)g(curren)m
(t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
-g(the)h(curren)m(t)630 2545 y(command.)40 b(If)27 b(the)h(curren)m(t)g
+g(the)h(curren)m(t)630 5011 y(command.)40 b(If)27 b(the)h(curren)m(t)g
(cursor)g(p)s(osition)g(is)g(at)g(the)g(end)g(of)g(the)g(curren)m(t)g
-(command,)630 2655 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5
-b(ariable)31 b(is)f(equal)g(to)h Fs(${#COMP_LINE})p Ft(.)37
+(command,)630 5121 y(the)i(v)-5 b(alue)30 b(of)g(this)g(v)-5
+b(ariable)31 b(is)f(equal)g(to)h Ft(${#COMP_LINE})p Fu(.)37
b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
-2765 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
-(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 2874
+5230 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
+(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 5340
y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
-(Completion],)h(page)f(117\).)150 3052 y Fs(COMP_TYPE)630
-3162 y Ft(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
+(Completion],)h(page)f(124\).)p eop end
+%%Page: 73 79
+TeXDict begin 73 78 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(73)150 299 y Ft(COMP_TYPE)630
+408 y Fu(Set)27 b(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h
-(attempted)g(that)630 3271 y(caused)e(a)g(completion)i(function)d(to)i
-(b)s(e)e(called:)40 b Fq(T)-8 b(AB)5 b Ft(,)27 b(for)f(normal)g
-(completion,)i(`)p Fs(?)p Ft(',)f(for)630 3381 y(listing)35
-b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Fs(!)p
-Ft(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630
-3491 y(w)m(ord)22 b(completion,)k(`)p Fs(@)p Ft(',)f(to)e(list)g
+(attempted)g(that)630 518 y(caused)e(a)h(completion)h(function)e(to)h
+(b)s(e)f(called:)40 b Fr(T)-8 b(AB)p Fu(,)27 b(for)g(normal)f
+(completion,)j(`)p Ft(?)p Fu(',)e(for)630 628 y(listing)35
+b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Ft(!)p
+Fu(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630
+737 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g
(completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h
-(`)p Fs(\045)p Ft(',)h(for)630 3600 y(men)m(u)i(completion.)41
+(`)p Ft(\045)p Fu(',)h(for)630 847 y(men)m(u)i(completion.)41
b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28
b(only)f(in)f(shell)g(functions)g(and)g(external)630
-3710 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
+956 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
(completion)g(facilities)i(\(see)e(Section)g(8.6)630
-3819 y([Programmable)e(Completion],)h(page)f(117\).)150
-3998 y Fs(COMP_KEY)96 b Ft(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
+1066 y([Programmable)e(Completion],)h(page)f(124\).)150
+1241 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
(of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e
-(curren)m(t)g(completion)630 4107 y(function.)150 4285
-y Fs(COMP_WORDBREAKS)630 4395 y Ft(The)f(set)i(of)e(c)m(haracters)j
+(curren)m(t)g(completion)630 1351 y(function.)150 1526
+y Ft(COMP_WORDBREAKS)630 1636 y Fu(The)f(set)i(of)e(c)m(haracters)j
(that)e(the)g(Readline)g(library)g(treats)g(as)g(w)m(ord)g(separators)g
-(when)630 4504 y(p)s(erforming)i(w)m(ord)h(completion.)51
-b(If)33 b Fs(COMP_WORDBREAKS)c Ft(is)34 b(unset,)g(it)f(loses)i(its)e
-(sp)s(ecial)630 4614 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 4792 y Fs(COMP_WORDS)630
-4902 y Ft(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
+(when)630 1745 y(p)s(erforming)i(w)m(ord)h(completion.)51
+b(If)33 b Ft(COMP_WORDBREAKS)c Fu(is)34 b(unset,)g(it)f(loses)i(its)e
+(sp)s(ecial)630 1855 y(prop)s(erties,)d(ev)m(en)h(if)f(it)h(is)g
+(subsequen)m(tly)f(reset.)150 2030 y Ft(COMP_WORDS)630
+2140 y Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(consisting)g(of)f(the)
g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630
-5011 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
-h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Fs(COMP_)630
-5121 y(WORDBREAKS)34 b Ft(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60
+2250 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
+h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Ft(COMP_)630
+2359 y(WORDBREAKS)34 b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60
b(This)36 b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39
-b(only)e(in)f(shell)h(func-)630 5230 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
+b(only)e(in)f(shell)h(func-)630 2469 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)
m(y)d(the)i(programmable)f(completion)h(facilities)h(\(see)f(Section)g
-(8.6)g([Pro-)630 5340 y(grammable)e(Completion],)g(page)g(117\).)p
-eop end
-%%Page: 67 73
-TeXDict begin 67 72 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(67)150 299 y Fs(COMPREPLY)630
-408 y Ft(An)37 b(arra)m(y)h(v)-5 b(ariable)38 b(from)f(whic)m(h)g(Bash)
-g(reads)g(the)h(p)s(ossible)e(completions)j(generated)630
-518 y(b)m(y)33 b(a)g(shell)h(function)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)
-g(programmable)h(completion)g(facilit)m(y)h(\(see)f(Sec-)630
-628 y(tion)d(8.6)g([Programmable)g(Completion],)h(page)f(117\).)150
-789 y Fs(COPROC)192 b Ft(An)27 b(arra)m(y)g(v)-5 b(ariable)28
+(8.6)g([Pro-)630 2578 y(grammable)e(Completion],)g(page)g(124\).)150
+2754 y Ft(COMPREPLY)630 2863 y Fu(An)37 b(arra)m(y)h(v)-5
+b(ariable)38 b(from)f(whic)m(h)g(Bash)g(reads)g(the)h(p)s(ossible)e
+(completions)j(generated)630 2973 y(b)m(y)33 b(a)g(shell)h(function)f
+(in)m(v)m(ok)m(ed)h(b)m(y)f(the)g(programmable)h(completion)g(facilit)m
+(y)h(\(see)f(Sec-)630 3082 y(tion)g(8.6)g([Programmable)g(Completion],)
+h(page)f(124\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)
+630 3192 y(one)c(p)s(ossible)f(completion.)150 3367 y
+Ft(COPROC)192 b Fu(An)27 b(arra)m(y)g(v)-5 b(ariable)28
b(created)g(to)f(hold)g(the)g(\014le)g(descriptors)g(for)g(output)f
-(from)h(and)f(input)630 899 y(to)31 b(an)f(unnamed)f(copro)s(cess)i
-(\(see)g(Section)h(3.2.5)g([Copro)s(cesses],)f(page)g(14\).)150
-1061 y Fs(DIRSTACK)96 b Ft(An)26 b(arra)m(y)h(v)-5 b(ariable)28
+(from)h(and)f(input)630 3477 y(to)31 b(an)f(unnamed)f(copro)s(cess)i
+(\(see)g(Section)h(3.2.5)g([Copro)s(cesses],)f(page)g(15\).)150
+3652 y Ft(DIRSTACK)96 b Fu(An)26 b(arra)m(y)h(v)-5 b(ariable)28
b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
-(directory)i(stac)m(k.)41 b(Direc-)630 1170 y(tories)33
+(directory)i(stac)m(k.)41 b(Direc-)630 3762 y(tories)33
b(app)s(ear)f(in)g(the)h(stac)m(k)h(in)e(the)h(order)f(they)h(are)g
-(displa)m(y)m(ed)g(b)m(y)f(the)h Fs(dirs)e Ft(builtin.)630
-1280 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5
+(displa)m(y)m(ed)g(b)m(y)f(the)h Ft(dirs)e Fu(builtin.)630
+3871 y(Assigning)f(to)h(mem)m(b)s(ers)f(of)g(this)g(arra)m(y)g(v)-5
b(ariable)31 b(ma)m(y)g(b)s(e)e(used)h(to)h(mo)s(dify)e(directories)630
-1390 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h
-Fs(pushd)e Ft(and)h Fs(popd)f Ft(builtins)h(m)m(ust)h(b)s(e)e(used)h
-(to)i(add)630 1499 y(and)37 b(remo)m(v)m(e)h(directories.)63
+3981 y(already)41 b(in)f(the)h(stac)m(k,)k(but)40 b(the)h
+Ft(pushd)e Fu(and)h Ft(popd)f Fu(builtins)h(m)m(ust)h(b)s(e)e(used)h
+(to)i(add)630 4091 y(and)37 b(remo)m(v)m(e)h(directories.)63
b(Assignmen)m(t)37 b(to)h(this)f(v)-5 b(ariable)38 b(will)g(not)f(c)m
-(hange)i(the)e(cur-)630 1609 y(ren)m(t)c(directory)-8
-b(.)47 b(If)32 b Fs(DIRSTACK)e Ft(is)i(unset,)g(it)h(loses)g(its)g(sp)s
+(hange)i(the)e(cur-)630 4200 y(ren)m(t)c(directory)-8
+b(.)47 b(If)32 b Ft(DIRSTACK)e Fu(is)i(unset,)g(it)h(loses)g(its)g(sp)s
(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)630
-1718 y(subsequen)m(tly)d(reset.)150 1880 y Fs(EMACS)240
-b Ft(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32
+4310 y(subsequen)m(tly)d(reset.)150 4485 y Ft(EMACS)240
+b Fu(If)31 b(Bash)h(\014nds)d(this)j(v)-5 b(ariable)32
b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
-(v)-5 b(alue)630 1990 y(`)p Fs(t)p Ft(',)36 b(it)f(assumes)f(that)h
+(v)-5 b(alue)630 4595 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h
(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and)
-h(disables)630 2099 y(line)d(editing.)150 2261 y Fs(ENV)336
-b Ft(Similar)35 b(to)g Fs(BASH_ENV)p Ft(;)h(used)e(when)g(the)h(shell)g
-(is)g(in)m(v)m(ok)m(ed)h(in)e Fl(posix)h Ft(Mo)s(de)g(\(see)g(Sec-)630
-2371 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(86\).)150
-2532 y Fs(EUID)288 b Ft(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d
+h(disables)630 4704 y(line)d(editing.)150 4880 y Ft(ENV)336
+b Fu(Similar)35 b(to)g Ft(BASH_ENV)p Fu(;)h(used)e(when)g(the)h(shell)g
+(is)g(in)m(v)m(ok)m(ed)h(in)e Fm(posix)h Fu(Mo)s(de)g(\(see)g(Sec-)630
+4989 y(tion)c(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(94\).)150
+5165 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d
(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5
-b(ariable)31 b(is)f(readonly)-8 b(.)150 2694 y Fs(FCEDIT)192
-b Ft(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f(`)p
-Fs(-e)p Ft(')g(option)h(to)g(the)g Fs(fc)f Ft(builtin)g(command.)150
-2856 y Fs(FIGNORE)144 b Ft(A)35 b(colon-separated)i(list)f(of)g
-(su\016xes)e(to)i(ignore)g(when)e(p)s(erforming)g(\014lename)i(comple-)
-630 2966 y(tion.)j(A)25 b(\014le)g(name)g(whose)f(su\016x)g(matc)m(hes)
-i(one)f(of)g(the)g(en)m(tries)g(in)g Fs(FIGNORE)d Ft(is)j(excluded)630
-3075 y(from)30 b(the)g(list)h(of)g(matc)m(hed)g(\014le)g(names.)40
-b(A)31 b(sample)f(v)-5 b(alue)31 b(is)g(`)p Fs(.o:~)p
-Ft(')150 3237 y Fs(FUNCNAME)96 b Ft(An)35 b(arra)m(y)i(v)-5
+b(ariable)31 b(is)f(readonly)-8 b(.)150 5340 y Ft(FCEDIT)192
+b Fu(The)30 b(editor)h(used)e(as)i(a)g(default)f(b)m(y)h(the)f
+Ft(-e)g Fu(option)h(to)g(the)f Ft(fc)g Fu(builtin)g(command.)p
+eop end
+%%Page: 74 80
+TeXDict begin 74 79 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(74)150 299 y Ft(FIGNORE)144
+b Fu(A)35 b(colon-separated)i(list)f(of)g(su\016xes)e(to)i(ignore)g
+(when)e(p)s(erforming)g(\014lename)i(comple-)630 408
+y(tion.)k(A)27 b(\014lename)g(whose)f(su\016x)g(matc)m(hes)i(one)f(of)g
+(the)g(en)m(tries)g(in)g Ft(FIGNORE)d Fu(is)j(excluded)630
+518 y(from)j(the)g(list)h(of)g(matc)m(hed)g(\014lenames.)41
+b(A)30 b(sample)h(v)-5 b(alue)31 b(is)f(`)p Ft(.o:~)p
+Fu(')150 671 y Ft(FUNCNAME)96 b Fu(An)35 b(arra)m(y)i(v)-5
b(ariable)36 b(con)m(taining)h(the)f(names)g(of)g(all)g(shell)g
-(functions)g(curren)m(tly)f(in)h(the)630 3346 y(execution)g(call)h
-(stac)m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g
-(name)h(of)f(an)m(y)h(curren)m(tly-)630 3456 y(executing)f(shell)f
-(function.)51 b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f
-(with)g(the)g(highest)630 3566 y(index\))e(is)h Fs("main")p
-Ft(.)44 b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i
-(shell)f(function)g(is)g(executing.)630 3675 y(Assignmen)m(ts)23
-b(to)h Fs(FUNCNAME)c Ft(ha)m(v)m(e)k(no)f(e\013ect)h(and)e(return)g(an)
-g(error)g(status.)39 b(If)22 b Fs(FUNCNAME)630 3785 y
-Ft(is)30 b(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,)f
+(functions)g(curren)m(tly)f(in)h(the)630 781 y(execution)g(call)h(stac)
+m(k.)57 b(The)34 b(elemen)m(t)j(with)e(index)g(0)h(is)f(the)g(name)h
+(of)f(an)m(y)h(curren)m(tly-)630 891 y(executing)f(shell)f(function.)51
+b(The)34 b(b)s(ottom-most)h(elemen)m(t)g(\(the)g(one)f(with)g(the)g
+(highest)630 1000 y(index\))e(is)h Ft("main")p Fu(.)44
+b(This)32 b(v)-5 b(ariable)33 b(exists)g(only)g(when)e(a)i(shell)f
+(function)g(is)g(executing.)630 1110 y(Assignmen)m(ts)23
+b(to)h Ft(FUNCNAME)c Fu(ha)m(v)m(e)k(no)f(e\013ect)h(and)e(return)g(an)
+g(error)g(status.)39 b(If)22 b Ft(FUNCNAME)630 1219 y
+Fu(is)30 b(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,)f
(ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)630
-3921 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g(with)g
-Fs(BASH_LINENO)d Ft(and)j Fs(BASH_SOURCE)p Ft(.)40 b(Eac)m(h)32
-b(elemen)m(t)630 4030 y(of)g Fs(FUNCNAME)d Ft(has)j(corresp)s(onding)e
-(elemen)m(ts)j(in)f Fs(BASH_LINENO)c Ft(and)k Fs(BASH_SOURCE)c
-Ft(to)630 4140 y(describ)s(e)39 b(the)h(call)h(stac)m(k.)70
-b(F)-8 b(or)41 b(instance,)i Fs(${FUNCNAME[$i]})35 b
-Ft(w)m(as)41 b(called)f(from)g(the)630 4249 y(\014le)27
-b Fs(${BASH_SOURCE[$i+1]})21 b Ft(at)27 b(line)h(n)m(um)m(b)s(er)d
-Fs(${BASH_LINENO[$i]})p Ft(.)34 b(The)27 b Fs(caller)630
-4359 y Ft(builtin)j(displa)m(ys)g(the)h(curren)m(t)f(call)i(stac)m(k)g
-(using)d(this)i(information.)150 4521 y Fs(FUNCNEST)96
-b Ft(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5 b(alue)36
+1351 y(This)h(v)-5 b(ariable)32 b(can)f(b)s(e)g(used)g(with)g
+Ft(BASH_LINENO)d Fu(and)j Ft(BASH_SOURCE)p Fu(.)40 b(Eac)m(h)32
+b(elemen)m(t)630 1461 y(of)g Ft(FUNCNAME)d Fu(has)j(corresp)s(onding)e
+(elemen)m(ts)j(in)f Ft(BASH_LINENO)c Fu(and)k Ft(BASH_SOURCE)c
+Fu(to)630 1570 y(describ)s(e)39 b(the)h(call)h(stac)m(k.)70
+b(F)-8 b(or)41 b(instance,)i Ft(${FUNCNAME[$i]})35 b
+Fu(w)m(as)41 b(called)f(from)g(the)630 1680 y(\014le)27
+b Ft(${BASH_SOURCE[$i+1]})21 b Fu(at)27 b(line)h(n)m(um)m(b)s(er)d
+Ft(${BASH_LINENO[$i]})p Fu(.)34 b(The)27 b Ft(caller)630
+1789 y Fu(builtin)j(displa)m(ys)g(the)h(curren)m(t)f(call)i(stac)m(k)g
+(using)d(this)i(information.)150 1943 y Ft(FUNCNEST)96
+b Fu(If)34 b(set)i(to)f(a)h(n)m(umeric)e(v)-5 b(alue)36
b(greater)g(than)e(0,)j(de\014nes)d(a)h(maxim)m(um)g(function)g
-(nesting)630 4630 y(lev)m(el.)42 b(F)-8 b(unction)29
+(nesting)630 2052 y(lev)m(el.)42 b(F)-8 b(unction)29
b(in)m(v)m(o)s(cations)h(that)f(exceed)h(this)e(nesting)h(lev)m(el)h
-(will)f(cause)g(the)f(curren)m(t)630 4740 y(command)i(to)h(ab)s(ort.)
-150 4902 y Fs(GLOBIGNORE)630 5011 y Ft(A)38 b(colon-separated)i(list)f
+(will)f(cause)g(the)f(curren)m(t)630 2162 y(command)i(to)h(ab)s(ort.)
+150 2315 y Ft(GLOBIGNORE)630 2425 y Fu(A)38 b(colon-separated)i(list)f
(of)f(patterns)g(de\014ning)f(the)h(set)g(of)h(\014lenames)f(to)g(b)s
-(e)g(ignored)630 5121 y(b)m(y)31 b(\014lename)g(expansion.)43
+(e)g(ignored)630 2534 y(b)m(y)31 b(\014lename)g(expansion.)43
b(If)31 b(a)h(\014lename)f(matc)m(hed)h(b)m(y)f(a)g(\014lename)h
-(expansion)f(pattern)630 5230 y(also)i(matc)m(hes)g(one)f(of)g(the)g
-(patterns)g(in)f Fs(GLOBIGNORE)p Ft(,)f(it)i(is)g(remo)m(v)m(ed)h(from)
-e(the)h(list)h(of)630 5340 y(matc)m(hes.)p eop end
-%%Page: 68 74
-TeXDict begin 68 73 bop 150 -116 a Ft(68)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(GROUPS)192 b Ft(An)36
-b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)h(of)f
-(groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630
-408 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Fs(GROUPS)e
-Ft(ha)m(v)m(e)j(no)f(e\013ect)h(and)e(return)g(an)g(error)g(status.)48
-b(If)630 518 y Fs(GROUPS)29 b Ft(is)h(unset,)g(it)h(loses)g(its)g(sp)s
+(expansion)f(pattern)630 2644 y(also)i(matc)m(hes)g(one)f(of)g(the)g
+(patterns)g(in)f Ft(GLOBIGNORE)p Fu(,)f(it)i(is)g(remo)m(v)m(ed)h(from)
+e(the)h(list)h(of)630 2754 y(matc)m(hes.)150 2907 y Ft(GROUPS)192
+b Fu(An)36 b(arra)m(y)g(v)-5 b(ariable)37 b(con)m(taining)g(the)f(list)
+h(of)f(groups)g(of)g(whic)m(h)f(the)i(curren)m(t)e(user)h(is)g(a)630
+3017 y(mem)m(b)s(er.)47 b(Assignmen)m(ts)33 b(to)g Ft(GROUPS)e
+Fu(ha)m(v)m(e)j(no)f(e\013ect)h(and)e(return)g(an)g(error)g(status.)48
+b(If)630 3126 y Ft(GROUPS)29 b Fu(is)h(unset,)g(it)h(loses)g(its)g(sp)s
(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f
-(reset.)150 682 y Fs(histchars)630 792 y Ft(Up)c(to)g(three)g(c)m
+(reset.)150 3280 y Ft(histchars)630 3389 y Fu(Up)c(to)g(three)g(c)m
(haracters)i(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
-(substitution,)g(and)630 902 y(tok)m(enization)k(\(see)f(Section)f(9.3)
-h([History)f(In)m(teraction],)i(page)f(127\).)41 b(The)29
-b(\014rst)e(c)m(harac-)630 1011 y(ter)j(is)f(the)g Fq(history)g
-(expansion)g Ft(c)m(haracter,)j(that)e(is,)f(the)h(c)m(haracter)h(whic)
-m(h)d(signi\014es)i(the)630 1121 y(start)25 b(of)f(a)h(history)f
-(expansion,)i(normally)e(`)p Fs(!)p Ft('.)39 b(The)24
-b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
-1230 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
+(substitution,)g(and)630 3499 y(tok)m(enization)k(\(see)f(Section)f
+(9.3)h([History)f(In)m(teraction],)i(page)f(135\).)41
+b(The)29 b(\014rst)e(c)m(harac-)630 3608 y(ter)j(is)f(the)g
+Fr(history)g(expansion)g Fu(c)m(haracter,)j(that)e(is,)f(the)h(c)m
+(haracter)h(whic)m(h)d(signi\014es)i(the)630 3718 y(start)25
+b(of)f(a)h(history)f(expansion,)i(normally)e(`)p Ft(!)p
+Fu('.)39 b(The)24 b(second)g(c)m(haracter)i(is)e(the)g(c)m(haracter)630
+3828 y(whic)m(h)36 b(signi\014es)g(`quic)m(k)h(substitution')f(when)f
(seen)h(as)g(the)g(\014rst)f(c)m(haracter)j(on)e(a)g(line,)630
-1340 y(normally)27 b(`)p Fs(^)p Ft('.)39 b(The)26 b(optional)i(third)d
+3937 y(normally)27 b(`)p Ft(^)p Fu('.)39 b(The)26 b(optional)i(third)d
(c)m(haracter)j(is)e(the)h(c)m(haracter)h(whic)m(h)e(indicates)h(that)
-630 1450 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
+630 4047 y(the)34 b(remainder)f(of)h(the)g(line)g(is)f(a)h(commen)m(t)h
(when)e(found)f(as)i(the)g(\014rst)f(c)m(haracter)i(of)f(a)630
-1559 y(w)m(ord,)i(usually)f(`)p Fs(#)p Ft('.)55 b(The)34
+4156 y(w)m(ord,)i(usually)f(`)p Ft(#)p Fu('.)55 b(The)34
b(history)h(commen)m(t)h(c)m(haracter)h(causes)e(history)g
-(substitution)630 1669 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
+(substitution)630 4266 y(to)27 b(b)s(e)f(skipp)s(ed)f(for)i(the)f
(remaining)h(w)m(ords)f(on)h(the)f(line.)40 b(It)27 b(do)s(es)f(not)h
-(necessarily)g(cause)630 1778 y(the)k(shell)f(parser)g(to)h(treat)g
+(necessarily)g(cause)630 4376 y(the)k(shell)f(parser)g(to)h(treat)g
(the)g(rest)g(of)f(the)h(line)f(as)h(a)g(commen)m(t.)150
-1943 y Fs(HISTCMD)144 b Ft(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f
+4529 y Ft(HISTCMD)144 b Fu(The)35 b(history)h(n)m(um)m(b)s(er,)g(or)f
(index)g(in)h(the)g(history)f(list,)j(of)e(the)g(curren)m(t)f(command.)
-56 b(If)630 2052 y Fs(HISTCMD)28 b Ft(is)h(unset,)h(it)g(loses)h(its)f
+56 b(If)630 4639 y Ft(HISTCMD)28 b Fu(is)h(unset,)h(it)g(loses)h(its)f
(sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)g(subsequen)m
-(tly)f(reset.)150 2217 y Fs(HISTCONTROL)630 2326 y Ft(A)40
+(tly)f(reset.)150 4792 y Ft(HISTCONTROL)630 4902 y Fu(A)40
b(colon-separated)i(list)f(of)f(v)-5 b(alues)40 b(con)m(trolling)i(ho)m
-(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 2436
+(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630 5011
y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
-b(alues)29 b(includes)f(`)p Fs(ignorespace)p Ft(',)f(lines)i(whic)m(h)g
-(b)s(egin)f(with)630 2545 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
+b(alues)29 b(includes)f(`)p Ft(ignorespace)p Fu(',)f(lines)i(whic)m(h)g
+(b)s(egin)f(with)630 5121 y(a)39 b(space)g(c)m(haracter)i(are)e(not)g
(sa)m(v)m(ed)g(in)g(the)g(history)f(list.)66 b(A)39 b(v)-5
-b(alue)39 b(of)g(`)p Fs(ignoredups)p Ft(')630 2655 y(causes)34
+b(alue)39 b(of)g(`)p Ft(ignoredups)p Fu(')630 5230 y(causes)34
b(lines)h(whic)m(h)f(matc)m(h)h(the)f(previous)f(history)h(en)m(try)h
(to)g(not)f(b)s(e)f(sa)m(v)m(ed.)53 b(A)34 b(v)-5 b(alue)630
-2765 y(of)32 b(`)p Fs(ignoreboth)p Ft(')d(is)j(shorthand)e(for)i(`)p
-Fs(ignorespace)p Ft(')d(and)i(`)p Fs(ignoredups)p Ft('.)42
-b(A)32 b(v)-5 b(alue)32 b(of)630 2874 y(`)p Fs(erasedups)p
-Ft(')f(causes)i(all)h(previous)f(lines)g(matc)m(hing)h(the)f(curren)m
-(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630 2984 y(from)42
-b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g(sa)m(v)m(ed.)78
-b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s(o)m(v)m(e)630
-3093 y(list)35 b(is)g(ignored.)53 b(If)34 b Fs(HISTCONTROL)e
-Ft(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h(v)-5
-b(alid)35 b(v)-5 b(alue,)36 b(all)630 3203 y(lines)30
+5340 y(of)32 b(`)p Ft(ignoreboth)p Fu(')d(is)j(shorthand)e(for)i(`)p
+Ft(ignorespace)p Fu(')d(and)i(`)p Ft(ignoredups)p Fu('.)42
+b(A)32 b(v)-5 b(alue)32 b(of)p eop end
+%%Page: 75 81
+TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(75)630 299 y(`)p
+Ft(erasedups)p Fu(')31 b(causes)i(all)h(previous)f(lines)g(matc)m(hing)
+h(the)f(curren)m(t)g(line)g(to)h(b)s(e)e(remo)m(v)m(ed)630
+408 y(from)42 b(the)h(history)f(list)i(b)s(efore)e(that)h(line)g(is)g
+(sa)m(v)m(ed.)78 b(An)m(y)43 b(v)-5 b(alue)43 b(not)g(in)f(the)h(ab)s
+(o)m(v)m(e)630 518 y(list)35 b(is)g(ignored.)53 b(If)34
+b Ft(HISTCONTROL)e Fu(is)i(unset,)i(or)e(do)s(es)h(not)g(include)f(a)h
+(v)-5 b(alid)35 b(v)-5 b(alue,)36 b(all)630 628 y(lines)30
b(read)g(b)m(y)g(the)g(shell)g(parser)g(are)g(sa)m(v)m(ed)h(on)f(the)g
(history)g(list,)h(sub)5 b(ject)30 b(to)g(the)g(v)-5
-b(alue)630 3313 y(of)42 b Fs(HISTIGNORE)p Ft(.)73 b(The)42
+b(alue)630 737 y(of)42 b Ft(HISTIGNORE)p Fu(.)73 b(The)42
b(second)g(and)g(subsequen)m(t)f(lines)h(of)h(a)f(m)m(ulti-line)h(comp)
-s(ound)630 3422 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added)
-f(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 b(alue)630
-3532 y(of)31 b Fs(HISTCONTROL)p Ft(.)150 3696 y Fs(HISTFILE)96
-b Ft(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command)
+s(ound)630 847 y(command)33 b(are)h(not)g(tested,)i(and)d(are)h(added)f
+(to)h(the)g(history)g(regardless)g(of)g(the)f(v)-5 b(alue)630
+956 y(of)31 b Ft(HISTCONTROL)p Fu(.)150 1117 y Ft(HISTFILE)96
+b Fu(The)27 b(name)h(of)g(the)g(\014le)g(to)h(whic)m(h)f(the)g(command)
f(history)h(is)g(sa)m(v)m(ed.)41 b(The)27 b(default)h(v)-5
-b(alue)630 3806 y(is)30 b(`)p Fs(~/.bash_history)p Ft('.)150
-3970 y Fs(HISTFILESIZE)630 4080 y Ft(The)c(maxim)m(um)f(n)m(um)m(b)s
+b(alue)630 1226 y(is)30 b Ft(~/.bash_history)p Fu(.)150
+1386 y Ft(HISTFILESIZE)630 1496 y Fu(The)c(maxim)m(um)f(n)m(um)m(b)s
(er)g(of)h(lines)h(con)m(tained)g(in)f(the)g(history)g(\014le.)39
-b(When)26 b(this)g(v)-5 b(ariable)630 4189 y(is)33 b(assigned)h(a)g(v)
--5 b(alue,)35 b(the)f(history)f(\014le)g(is)h(truncated,)g(if)g
-(necessary)-8 b(,)35 b(b)m(y)e(remo)m(ving)i(the)630
-4299 y(oldest)29 b(en)m(tries,)g(to)g(con)m(tain)g(no)f(more)g(than)f
-(that)i(n)m(um)m(b)s(er)e(of)h(lines.)40 b(The)27 b(history)h(\014le)g
-(is)630 4408 y(also)33 b(truncated)e(to)h(this)g(size)g(after)g
-(writing)g(it)g(when)f(an)g(in)m(teractiv)m(e)k(shell)c(exits.)45
-b(The)630 4518 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150
-4682 y Fs(HISTIGNORE)630 4792 y Ft(A)i(colon-separated)h(list)f(of)g
+b(When)26 b(this)g(v)-5 b(ariable)630 1606 y(is)25 b(assigned)h(a)g(v)
+-5 b(alue,)27 b(the)f(history)f(\014le)h(is)f(truncated,)i(if)e
+(necessary)-8 b(,)28 b(to)e(con)m(tain)g(no)g(more)630
+1715 y(than)37 b(that)h(n)m(um)m(b)s(er)d(of)j(lines)f(b)m(y)g(remo)m
+(ving)h(the)f(oldest)h(en)m(tries.)62 b(The)37 b(history)g(\014le)g(is)
+630 1825 y(also)i(truncated)f(to)h(this)e(size)i(after)g(writing)f(it)g
+(when)f(a)h(shell)h(exits.)64 b(If)37 b(the)h(v)-5 b(alue)39
+b(is)630 1934 y(0,)g(the)e(history)f(\014le)h(is)g(truncated)f(to)i
+(zero)f(size.)60 b(Non-n)m(umeric)37 b(v)-5 b(alues)37
+b(and)f(n)m(umeric)630 2044 y(v)-5 b(alues)31 b(less)f(than)g(zero)h
+(inhibit)f(truncation.)41 b(The)29 b(shell)i(sets)f(the)h(default)f(v)
+-5 b(alue)31 b(to)g(the)630 2153 y(v)-5 b(alue)31 b(of)f
+Ft(HISTSIZE)f Fu(after)h(reading)h(an)m(y)g(startup)f(\014les.)150
+2314 y Ft(HISTIGNORE)630 2423 y Fu(A)j(colon-separated)h(list)f(of)g
(patterns)f(used)g(to)h(decide)g(whic)m(h)f(command)g(lines)h(should)
-630 4902 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47
+630 2533 y(b)s(e)f(sa)m(v)m(ed)h(on)g(the)f(history)h(list.)47
b(Eac)m(h)33 b(pattern)g(is)f(anc)m(hored)h(at)g(the)f(b)s(eginning)g
-(of)h(the)630 5011 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g
-(complete)h(line)e(\(no)h(implicit)g(`)p Fs(*)p Ft(')f(is)g(app)s
-(ended\).)75 b(Eac)m(h)630 5121 y(pattern)42 b(is)g(tested)g(against)h
+(of)h(the)630 2642 y(line)43 b(and)e(m)m(ust)h(matc)m(h)h(the)g
+(complete)h(line)e(\(no)h(implicit)g(`)p Ft(*)p Fu(')f(is)g(app)s
+(ended\).)75 b(Eac)m(h)630 2752 y(pattern)42 b(is)g(tested)g(against)h
(the)f(line)g(after)g(the)g(c)m(hec)m(ks)h(sp)s(eci\014ed)e(b)m(y)h
-Fs(HISTCONTROL)630 5230 y Ft(are)37 b(applied.)59 b(In)36
+Ft(HISTCONTROL)630 2862 y Fu(are)37 b(applied.)59 b(In)36
b(addition)h(to)g(the)g(normal)g(shell)f(pattern)h(matc)m(hing)h(c)m
-(haracters,)i(`)p Fs(&)p Ft(')630 5340 y(matc)m(hes)d(the)f(previous)g
-(history)g(line.)57 b(`)p Fs(&)p Ft(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed)
-h(using)g(a)g(bac)m(kslash;)k(the)p eop end
-%%Page: 69 75
-TeXDict begin 69 74 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(69)630 299 y(bac)m(kslash)34
+(haracters,)i(`)p Ft(&)p Fu(')630 2971 y(matc)m(hes)d(the)f(previous)g
+(history)g(line.)57 b(`)p Ft(&)p Fu(')36 b(ma)m(y)h(b)s(e)e(escap)s(ed)
+h(using)g(a)g(bac)m(kslash;)k(the)630 3081 y(bac)m(kslash)34
b(is)g(remo)m(v)m(ed)h(b)s(efore)e(attempting)i(a)g(matc)m(h.)51
-b(The)34 b(second)f(and)h(subsequen)m(t)630 408 y(lines)e(of)h(a)g(m)m
+b(The)34 b(second)f(and)h(subsequen)m(t)630 3190 y(lines)e(of)h(a)g(m)m
(ulti-line)g(comp)s(ound)e(command)h(are)h(not)f(tested,)i(and)e(are)g
-(added)g(to)h(the)630 518 y(history)d(regardless)h(of)g(the)f(v)-5
-b(alue)31 b(of)g Fs(HISTIGNORE)p Ft(.)630 649 y Fs(HISTIGNORE)20
-b Ft(subsumes)g(the)j(function)f(of)h Fs(HISTCONTROL)p
-Ft(.)35 b(A)23 b(pattern)f(of)h(`)p Fs(&)p Ft(')g(is)f(iden)m(tical)630
-758 y(to)k Fs(ignoredups)p Ft(,)e(and)h(a)h(pattern)g(of)f(`)p
-Fs([)31 b(]*)p Ft(')25 b(is)h(iden)m(tical)h(to)f Fs(ignorespace)p
-Ft(.)36 b(Com)m(bining)630 868 y(these)30 b(t)m(w)m(o)h(patterns,)f
+(added)g(to)h(the)630 3300 y(history)d(regardless)h(of)g(the)f(v)-5
+b(alue)31 b(of)g Ft(HISTIGNORE)p Fu(.)630 3435 y Ft(HISTIGNORE)20
+b Fu(subsumes)g(the)j(function)f(of)h Ft(HISTCONTROL)p
+Fu(.)35 b(A)23 b(pattern)f(of)h(`)p Ft(&)p Fu(')g(is)f(iden)m(tical)630
+3544 y(to)k Ft(ignoredups)p Fu(,)e(and)h(a)h(pattern)g(of)f(`)p
+Ft([)31 b(]*)p Fu(')25 b(is)h(iden)m(tical)h(to)f Ft(ignorespace)p
+Fu(.)36 b(Com)m(bining)630 3654 y(these)30 b(t)m(w)m(o)h(patterns,)f
(separating)g(them)g(with)f(a)h(colon,)h(pro)m(vides)e(the)h
-(functionalit)m(y)h(of)630 977 y Fs(ignoreboth)p Ft(.)150
-1129 y Fs(HISTSIZE)96 b Ft(The)42 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
-(commands)e(to)j(remem)m(b)s(er)d(on)h(the)h(history)f(list.)77
-b(The)630 1238 y(default)31 b(v)-5 b(alue)30 b(is)h(500.)150
-1390 y Fs(HISTTIMEFORMAT)630 1499 y Ft(If)44 b(this)g(v)-5
-b(ariable)45 b(is)f(set)g(and)g(not)g(n)m(ull,)k(its)d(v)-5
-b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g(for)630
-1609 y Fq(strftime)c Ft(to)35 b(prin)m(t)f(the)h(time)g(stamp)f(asso)s
-(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m(ed)630
-1718 y(b)m(y)g(the)f Fs(history)f Ft(builtin.)50 b(If)33
-b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g(written)
-f(to)i(the)630 1828 y(history)26 b(\014le)g(so)g(they)g(ma)m(y)h(b)s(e)
-e(preserv)m(ed)g(across)i(shell)f(sessions.)39 b(This)25
-b(uses)h(the)g(history)630 1937 y(commen)m(t)31 b(c)m(haracter)h(to)f
-(distinguish)f(timestamps)h(from)f(other)g(history)h(lines.)150
-2089 y Fs(HOSTFILE)96 b Ft(Con)m(tains)39 b(the)f(name)g(of)h(a)g
-(\014le)f(in)g(the)g(same)h(format)g(as)f(`)p Fs(/etc/hosts)p
-Ft(')e(that)j(should)630 2198 y(b)s(e)i(read)h(when)f(the)i(shell)f
-(needs)f(to)i(complete)h(a)e(hostname.)76 b(The)42 b(list)g(of)g(p)s
-(ossible)630 2308 y(hostname)26 b(completions)g(ma)m(y)h(b)s(e)d(c)m
-(hanged)j(while)e(the)h(shell)g(is)f(running;)h(the)g(next)f(time)630
-2418 y(hostname)37 b(completion)i(is)e(attempted)h(after)g(the)f(v)-5
-b(alue)37 b(is)h(c)m(hanged,)h(Bash)e(adds)g(the)630
-2527 y(con)m(ten)m(ts)43 b(of)f(the)f(new)g(\014le)h(to)g(the)f
-(existing)i(list.)74 b(If)41 b Fs(HOSTFILE)e Ft(is)i(set,)k(but)c(has)g
-(no)630 2637 y(v)-5 b(alue,)29 b(or)e(do)s(es)h(not)g(name)f(a)h
-(readable)g(\014le,)h(Bash)f(attempts)g(to)g(read)g(`)p
-Fs(/etc/hosts)p Ft(')d(to)630 2746 y(obtain)j(the)g(list)h(of)f(p)s
-(ossible)f(hostname)h(completions.)41 b(When)28 b Fs(HOSTFILE)e
-Ft(is)i(unset,)g(the)630 2856 y(hostname)j(list)g(is)f(cleared.)150
-3007 y Fs(HOSTNAME)96 b Ft(The)30 b(name)g(of)h(the)f(curren)m(t)h
-(host.)150 3159 y Fs(HOSTTYPE)96 b Ft(A)30 b(string)h(describing)f(the)
-g(mac)m(hine)h(Bash)g(is)f(running)f(on.)150 3310 y Fs(IGNOREEOF)630
-3420 y Ft(Con)m(trols)e(the)h(action)g(of)f(the)g(shell)g(on)g(receipt)
-h(of)f(an)g Fs(EOF)f Ft(c)m(haracter)i(as)g(the)f(sole)h(input.)630
-3529 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s
-(er)f(of)h(consecutiv)m(e)i Fs(EOF)d Ft(c)m(haracters)i(that)f(can)h(b)
-s(e)630 3639 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f
+(functionalit)m(y)h(of)630 3764 y Ft(ignoreboth)p Fu(.)150
+3924 y Ft(HISTSIZE)96 b Fu(The)37 b(maxim)m(um)g(n)m(um)m(b)s(er)e(of)j
+(commands)f(to)g(remem)m(b)s(er)g(on)g(the)g(history)g(list.)62
+b(If)37 b(the)630 4033 y(v)-5 b(alue)26 b(is)g(0,)i(commands)d(are)h
+(not)h(sa)m(v)m(ed)g(in)e(the)h(history)g(list.)40 b(Numeric)26
+b(v)-5 b(alues)26 b(less)g(than)630 4143 y(zero)i(result)e(in)h(ev)m
+(ery)g(command)g(b)s(eing)f(sa)m(v)m(ed)i(on)f(the)g(history)f(list)i
+(\(there)f(is)g(no)g(limit\).)630 4253 y(The)j(shell)g(sets)h(the)g
+(default)f(v)-5 b(alue)31 b(to)g(500)h(after)f(reading)f(an)m(y)h
+(startup)f(\014les.)150 4413 y Ft(HISTTIMEFORMAT)630
+4522 y Fu(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m
+(ull,)k(its)d(v)-5 b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g
+(for)630 4632 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp)
+f(asso)s(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m
+(ed)630 4741 y(b)m(y)g(the)f Ft(history)f Fu(builtin.)50
+b(If)33 b(this)h(v)-5 b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g
+(written)f(to)i(the)630 4851 y(history)26 b(\014le)g(so)g(they)g(ma)m
+(y)h(b)s(e)e(preserv)m(ed)g(across)i(shell)f(sessions.)39
+b(This)25 b(uses)h(the)g(history)630 4961 y(commen)m(t)31
+b(c)m(haracter)h(to)f(distinguish)f(timestamps)h(from)f(other)g
+(history)h(lines.)150 5121 y Ft(HOSTFILE)96 b Fu(Con)m(tains)33
+b(the)g(name)f(of)h(a)g(\014le)f(in)g(the)h(same)g(format)g(as)f
+Ft(/etc/hosts)e Fu(that)j(should)f(b)s(e)630 5230 y(read)21
+b(when)g(the)g(shell)h(needs)f(to)h(complete)h(a)e(hostname.)38
+b(The)21 b(list)h(of)g(p)s(ossible)f(hostname)630 5340
+y(completions)27 b(ma)m(y)f(b)s(e)f(c)m(hanged)h(while)f(the)h(shell)g
+(is)f(running;)h(the)g(next)f(time)i(hostname)p eop end
+%%Page: 76 82
+TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(76)630 299 y(completion)33
+b(is)g(attempted)g(after)g(the)f(v)-5 b(alue)33 b(is)f(c)m(hanged,)i
+(Bash)e(adds)f(the)i(con)m(ten)m(ts)h(of)630 408 y(the)h(new)f(\014le)g
+(to)h(the)g(existing)h(list.)53 b(If)34 b Ft(HOSTFILE)e
+Fu(is)j(set,)h(but)e(has)g(no)h(v)-5 b(alue,)36 b(or)e(do)s(es)630
+518 y(not)d(name)f(a)h(readable)g(\014le,)g(Bash)f(attempts)i(to)f
+(read)f Ft(/etc/hosts)e Fu(to)j(obtain)g(the)f(list)630
+628 y(of)h(p)s(ossible)f(hostname)h(completions.)43 b(When)31
+b Ft(HOSTFILE)d Fu(is)j(unset,)f(the)h(hostname)g(list)630
+737 y(is)f(cleared.)150 906 y Ft(HOSTNAME)96 b Fu(The)30
+b(name)g(of)h(the)f(curren)m(t)h(host.)150 1074 y Ft(HOSTTYPE)96
+b Fu(A)30 b(string)h(describing)f(the)g(mac)m(hine)h(Bash)g(is)f
+(running)f(on.)150 1243 y Ft(IGNOREEOF)630 1353 y Fu(Con)m(trols)e(the)
+h(action)g(of)f(the)g(shell)g(on)g(receipt)h(of)f(an)g
+Ft(EOF)f Fu(c)m(haracter)i(as)g(the)f(sole)h(input.)630
+1462 y(If)i(set,)i(the)f(v)-5 b(alue)32 b(denotes)f(the)g(n)m(um)m(b)s
+(er)f(of)h(consecutiv)m(e)i Ft(EOF)d Fu(c)m(haracters)i(that)f(can)h(b)
+s(e)630 1572 y(read)40 b(as)f(the)h(\014rst)f(c)m(haracter)i(on)f(an)f
(input)g(line)h(b)s(efore)f(the)h(shell)g(will)g(exit.)70
-b(If)39 b(the)630 3748 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g
+b(If)39 b(the)630 1681 y(v)-5 b(ariable)38 b(exists)f(but)f(do)s(es)g
(not)h(ha)m(v)m(e)h(a)g(n)m(umeric)e(v)-5 b(alue)37 b(\(or)h(has)e(no)h
-(v)-5 b(alue\))37 b(then)g(the)630 3858 y(default)31
+(v)-5 b(alue\))37 b(then)g(the)630 1791 y(default)31
b(is)g(10.)43 b(If)30 b(the)h(v)-5 b(ariable)31 b(do)s(es)g(not)g
-(exist,)h(then)e Fs(EOF)g Ft(signi\014es)h(the)g(end)f(of)h(input)630
-3968 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i
-(for)e(in)m(teractiv)m(e)j(shells.)150 4119 y Fs(INPUTRC)144
-b Ft(The)68 b(name)h(of)f(the)h(Readline)g(initialization)j(\014le,)78
-b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 4228 y(`)p
-Fs(~/.inputrc)p Ft('.)150 4380 y Fs(LANG)288 b Ft(Used)28
+(exist,)h(then)e Ft(EOF)g Fu(signi\014es)h(the)g(end)f(of)h(input)630
+1901 y(to)g(the)g(shell.)41 b(This)29 b(is)i(only)f(in)g(e\013ect)i
+(for)e(in)m(teractiv)m(e)j(shells.)150 2069 y Ft(INPUTRC)144
+b Fu(The)68 b(name)h(of)f(the)h(Readline)g(initialization)j(\014le,)78
+b(o)m(v)m(erriding)69 b(the)g(default)g(of)630 2179 y
+Ft(~/.inputrc)p Fu(.)150 2347 y Ft(LANG)288 b Fu(Used)28
b(to)h(determine)f(the)g(lo)s(cale)h(category)h(for)e(an)m(y)h
-(category)h(not)e(sp)s(eci\014cally)g(selected)630 4489
-y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Fs(LC_)p
-Ft(.)150 4641 y Fs(LC_ALL)192 b Ft(This)28 b(v)-5 b(ariable)29
-b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29 b(of)g Fs(LANG)f
-Ft(and)g(an)m(y)h(other)g Fs(LC_)f Ft(v)-5 b(ariable)29
-b(sp)s(ecifying)630 4750 y(a)i(lo)s(cale)h(category)-8
-b(.)150 4902 y Fs(LC_COLLATE)630 5011 y Ft(This)37 b(v)-5
+(category)h(not)e(sp)s(eci\014cally)g(selected)630 2457
+y(with)i(a)h(v)-5 b(ariable)31 b(starting)g(with)f Ft(LC_)p
+Fu(.)150 2626 y Ft(LC_ALL)192 b Fu(This)28 b(v)-5 b(ariable)29
+b(o)m(v)m(errides)h(the)f(v)-5 b(alue)29 b(of)g Ft(LANG)f
+Fu(and)g(an)m(y)h(other)g Ft(LC_)f Fu(v)-5 b(ariable)29
+b(sp)s(ecifying)630 2735 y(a)i(lo)s(cale)h(category)-8
+b(.)150 2904 y Ft(LC_COLLATE)630 3013 y Fu(This)37 b(v)-5
b(ariable)38 b(determines)g(the)g(collation)i(order)d(used)g(when)f
-(sorting)i(the)g(results)g(of)630 5121 y(\014lename)e(expansion,)i(and)
+(sorting)i(the)g(results)g(of)630 3123 y(\014lename)e(expansion,)i(and)
e(determines)g(the)h(b)s(eha)m(vior)f(of)g(range)h(expressions,)h
-(equiv-)630 5230 y(alence)e(classes,)h(and)e(collating)i(sequences)e
+(equiv-)630 3232 y(alence)e(classes,)h(and)e(collating)i(sequences)e
(within)f(\014lename)h(expansion)g(and)f(pattern)630
-5340 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],)
-e(page)h(25\).)p eop end
-%%Page: 70 76
-TeXDict begin 70 75 bop 150 -116 a Ft(70)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(LC_CTYPE)96 b Ft(This)36
+3342 y(matc)m(hing)d(\(see)h(Section)f(3.5.8)h([Filename)g(Expansion],)
+e(page)h(30\).)150 3511 y Ft(LC_CTYPE)96 b Fu(This)36
b(v)-5 b(ariable)37 b(determines)f(the)h(in)m(terpretation)h(of)f(c)m
-(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 408
+(haracters)h(and)e(the)g(b)s(eha)m(vior)h(of)630 3620
y(c)m(haracter)46 b(classes)g(within)e(\014lename)h(expansion)g(and)f
-(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 518 y(tion)31
-b(3.5.8)h([Filename)g(Expansion],)e(page)h(25\).)150
-679 y Fs(LC_MESSAGES)630 788 y Ft(This)25 b(v)-5 b(ariable)27
+(pattern)h(matc)m(hing)h(\(see)f(Sec-)630 3730 y(tion)31
+b(3.5.8)h([Filename)g(Expansion],)e(page)h(30\).)150
+3898 y Ft(LC_MESSAGES)630 4008 y Fu(This)25 b(v)-5 b(ariable)27
b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted)
-f(strings)g(pre-)630 898 y(ceded)31 b(b)m(y)f(a)h(`)p
-Fs($)p Ft(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
-b(ranslation],)32 b(page)f(7\).)150 1059 y Fs(LC_NUMERIC)630
-1168 y Ft(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
+f(strings)g(pre-)630 4118 y(ceded)31 b(b)m(y)f(a)h(`)p
+Ft($)p Fu(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
+b(ranslation],)32 b(page)f(7\).)150 4286 y Ft(LC_NUMERIC)630
+4396 y Fu(This)f(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
(category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150
-1329 y Fs(LINENO)192 b Ft(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g
+4564 y Ft(LINENO)192 b Fu(The)30 b(line)h(n)m(um)m(b)s(er)e(in)h(the)g
(script)h(or)f(shell)g(function)h(curren)m(tly)f(executing.)150
-1490 y Fs(LINES)240 b Ft(Used)43 b(b)m(y)g(the)g Fs(select)e
-Ft(command)i(to)g(determine)g(the)g(column)g(length)g(for)g(prin)m
-(ting)630 1599 y(selection)32 b(lists.)41 b(Automatically)33
-b(set)e(up)s(on)e(receipt)i(of)g(a)g Fs(SIGWINCH)p Ft(.)150
-1760 y Fs(MACHTYPE)96 b Ft(A)26 b(string)g(that)h(fully)f(describ)s(es)
-f(the)h(system)g(t)m(yp)s(e)h(on)f(whic)m(h)f(Bash)i(is)f(executing,)i
-(in)e(the)630 1870 y(standard)k Fl(gnu)g Fq(cpu-compan)m(y-system)h
-Ft(format.)150 2030 y Fs(MAILCHECK)630 2140 y Ft(Ho)m(w)d(often)g(\(in)
-g(seconds\))g(that)g(the)f(shell)h(should)f(c)m(hec)m(k)i(for)e(mail)h
-(in)f(the)h(\014les)g(sp)s(eci\014ed)630 2250 y(in)i(the)h
-Fs(MAILPATH)e Ft(or)i Fs(MAIL)e Ft(v)-5 b(ariables.)43
-b(The)30 b(default)h(is)f(60)i(seconds.)42 b(When)30
-b(it)h(is)g(time)630 2359 y(to)37 b(c)m(hec)m(k)h(for)e(mail,)j(the)e
-(shell)f(do)s(es)g(so)h(b)s(efore)f(displa)m(ying)h(the)f(primary)g
-(prompt.)57 b(If)630 2469 y(this)37 b(v)-5 b(ariable)38
-b(is)f(unset,)h(or)f(set)h(to)g(a)f(v)-5 b(alue)38 b(that)f(is)g(not)h
-(a)f(n)m(um)m(b)s(er)f(greater)i(than)f(or)630 2578 y(equal)31
-b(to)g(zero,)g(the)g(shell)g(disables)f(mail)h(c)m(hec)m(king.)150
-2739 y Fs(MAPFILE)144 b Ft(An)35 b(arra)m(y)h(v)-5 b(ariable)36
-b(created)g(to)h(hold)e(the)g(text)i(read)e(b)m(y)g(the)h
-Fs(mapfile)d Ft(builtin)i(when)630 2849 y(no)30 b(v)-5
-b(ariable)31 b(name)g(is)f(supplied.)150 3009 y Fs(OLDPWD)192
-b Ft(The)30 b(previous)g(w)m(orking)g(directory)h(as)g(set)g(b)m(y)f
-(the)h Fs(cd)e Ft(builtin.)150 3170 y Fs(OPTERR)192 b
-Ft(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36 b(1,)i(Bash)e(displa)m(ys)g
-(error)f(messages)i(generated)g(b)m(y)f(the)g Fs(getopts)630
-3280 y Ft(builtin)30 b(command.)150 3440 y Fs(OSTYPE)192
-b Ft(A)30 b(string)h(describing)f(the)g(op)s(erating)h(system)g(Bash)f
-(is)h(running)d(on.)150 3601 y Fs(PIPESTATUS)630 3711
-y Ft(An)23 b(arra)m(y)h(v)-5 b(ariable)24 b(\(see)h(Section)f(6.7)h
-([Arra)m(ys],)g(page)f(82\))h(con)m(taining)g(a)f(list)g(of)g(exit)g
-(sta-)630 3820 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g
-(in)f(the)h(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
-3930 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
-(command\).)150 4091 y Fs(POSIXLY_CORRECT)630 4200 y
-Ft(If)h(this)h(v)-5 b(ariable)34 b(is)f(in)f(the)h(en)m(vironmen)m(t)h
-(when)d Fs(bash)h Ft(starts,)i(the)f(shell)g(en)m(ters)h
-Fl(posix)630 4310 y Ft(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e
-(POSIX)f(Mo)s(de],)k(page)e(86\))g(b)s(efore)f(reading)g(the)g(startup)
-630 4419 y(\014les,)32 b(as)f(if)h(the)f(`)p Fs(--posix)p
-Ft(')f(in)m(v)m(o)s(cation)j(option)f(had)f(b)s(een)g(supplied.)42
-b(If)31 b(it)h(is)f(set)h(while)630 4529 y(the)f(shell)f(is)h(running,)
-d Fs(bash)i Ft(enables)g Fl(posix)g Ft(mo)s(de,)g(as)h(if)f(the)h
-(command)870 4664 y Fs(set)47 b(-o)g(posix)630 4799 y
-Ft(had)30 b(b)s(een)f(executed.)150 4960 y Fs(PPID)288
-b Ft(The)30 b(pro)s(cess)g Fl(id)g Ft(of)h(the)f(shell's)h(paren)m(t)g
-(pro)s(cess.)40 b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
-b(.)150 5121 y Fs(PROMPT_COMMAND)630 5230 y Ft(If)32
-b(set,)h(the)f(v)-5 b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command)
-f(to)h(execute)g(b)s(efore)f(the)g(prin)m(ting)g(of)630
-5340 y(eac)m(h)g(primary)d(prompt)g(\()p Fs($PS1)p Ft(\).)p
-eop end
-%%Page: 71 77
-TeXDict begin 71 76 bop 150 -116 a Ft(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(71)150 299 y Fs(PROMPT_DIRTRIM)630
-408 y Ft(If)27 b(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f
-(zero,)i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)
-e(of)h(trailing)630 518 y(directory)35 b(comp)s(onen)m(ts)g(to)h
-(retain)f(when)f(expanding)g(the)h Fs(\\w)f Ft(and)g
-Fs(\\W)g Ft(prompt)g(string)630 628 y(escap)s(es)27 b(\(see)g(Section)g
-(6.9)h([Prin)m(ting)f(a)g(Prompt],)g(page)g(84\).)40
-b(Characters)27 b(remo)m(v)m(ed)h(are)630 737 y(replaced)j(with)f(an)g
-(ellipsis.)150 892 y Fs(PS3)336 b Ft(The)34 b(v)-5 b(alue)35
-b(of)f(this)g(v)-5 b(ariable)35 b(is)g(used)e(as)i(the)f(prompt)g(for)g
-(the)g Fs(select)f Ft(command.)52 b(If)630 1002 y(this)30
-b(v)-5 b(ariable)31 b(is)g(not)f(set,)i(the)e Fs(select)f
-Ft(command)h(prompts)f(with)h(`)p Fs(#?)g Ft(')150 1157
-y Fs(PS4)336 b Ft(The)20 b(v)-5 b(alue)22 b(is)e(the)h(prompt)f(prin)m
-(ted)h(b)s(efore)f(the)h(command)g(line)g(is)g(ec)m(ho)s(ed)g(when)f
-(the)h(`)p Fs(-x)p Ft(')630 1267 y(option)32 b(is)f(set)h(\(see)g
-(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(54\).)45
-b(The)31 b(\014rst)f(c)m(haracter)630 1377 y(of)k Fs(PS4)g
-Ft(is)g(replicated)i(m)m(ultiple)f(times,)h(as)e(necessary)-8
-b(,)37 b(to)e(indicate)g(m)m(ultiple)g(lev)m(els)h(of)630
-1486 y(indirection.)41 b(The)30 b(default)h(is)f(`)p
-Fs(+)g Ft('.)150 1641 y Fs(PWD)336 b Ft(The)30 b(curren)m(t)g(w)m
-(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Fs(cd)f
-Ft(builtin.)150 1797 y Fs(RANDOM)192 b Ft(Eac)m(h)30
+4733 y Ft(LINES)240 b Fu(Used)43 b(b)m(y)g(the)g Ft(select)e
+Fu(command)i(to)g(determine)g(the)g(column)g(length)g(for)g(prin)m
+(ting)630 4843 y(selection)c(lists.)63 b(Automatically)41
+b(set)d(if)f(the)h Ft(checkwinsize)d Fu(option)j(is)f(enabled)h(\(see)
+630 4952 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d
+(62\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630
+5062 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 5230
+y Ft(MACHTYPE)96 b Fu(A)26 b(string)g(that)h(fully)f(describ)s(es)f
+(the)h(system)g(t)m(yp)s(e)h(on)f(whic)m(h)f(Bash)i(is)f(executing,)i
+(in)e(the)630 5340 y(standard)k Fm(gnu)g Fr(cpu-compan)m(y-system)h
+Fu(format.)p eop end
+%%Page: 77 83
+TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(77)150 299 y Ft(MAILCHECK)630
+408 y Fu(Ho)m(w)28 b(often)g(\(in)g(seconds\))g(that)g(the)f(shell)h
+(should)f(c)m(hec)m(k)i(for)e(mail)h(in)f(the)h(\014les)g(sp)s
+(eci\014ed)630 518 y(in)i(the)h Ft(MAILPATH)e Fu(or)i
+Ft(MAIL)e Fu(v)-5 b(ariables.)43 b(The)30 b(default)h(is)f(60)i
+(seconds.)42 b(When)30 b(it)h(is)g(time)630 628 y(to)37
+b(c)m(hec)m(k)h(for)e(mail,)j(the)e(shell)f(do)s(es)g(so)h(b)s(efore)f
+(displa)m(ying)h(the)f(primary)g(prompt.)57 b(If)630
+737 y(this)37 b(v)-5 b(ariable)38 b(is)f(unset,)h(or)f(set)h(to)g(a)f
+(v)-5 b(alue)38 b(that)f(is)g(not)h(a)f(n)m(um)m(b)s(er)f(greater)i
+(than)f(or)630 847 y(equal)31 b(to)g(zero,)g(the)g(shell)g(disables)f
+(mail)h(c)m(hec)m(king.)150 996 y Ft(MAPFILE)144 b Fu(An)35
+b(arra)m(y)h(v)-5 b(ariable)36 b(created)g(to)h(hold)e(the)g(text)i
+(read)e(b)m(y)g(the)h Ft(mapfile)d Fu(builtin)i(when)630
+1105 y(no)30 b(v)-5 b(ariable)31 b(name)g(is)f(supplied.)150
+1254 y Ft(OLDPWD)192 b Fu(The)30 b(previous)g(w)m(orking)g(directory)h
+(as)g(set)g(b)m(y)f(the)h Ft(cd)e Fu(builtin.)150 1403
+y Ft(OPTERR)192 b Fu(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36
+b(1,)i(Bash)e(displa)m(ys)g(error)f(messages)i(generated)g(b)m(y)f(the)
+g Ft(getopts)630 1512 y Fu(builtin)30 b(command.)150
+1661 y Ft(OSTYPE)192 b Fu(A)30 b(string)h(describing)f(the)g(op)s
+(erating)h(system)g(Bash)f(is)h(running)d(on.)150 1810
+y Ft(PIPESTATUS)630 1919 y Fu(An)23 b(arra)m(y)h(v)-5
+b(ariable)24 b(\(see)h(Section)f(6.7)h([Arra)m(ys],)g(page)f(89\))h
+(con)m(taining)g(a)f(list)g(of)g(exit)g(sta-)630 2029
+y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g(in)f(the)h
+(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
+2138 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
+(command\).)150 2287 y Ft(POSIXLY_CORRECT)630 2397 y
+Fu(If)h(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m(vironmen)m(t)g
+(when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g Fm(posix)630
+2506 y Fu(mo)s(de)22 b(\(see)h(Section)g(6.11)h([Bash)e(POSIX)f(Mo)s
+(de],)k(page)e(94\))g(b)s(efore)f(reading)g(the)g(startup)630
+2616 y(\014les,)36 b(as)e(if)h(the)f Ft(--posix)f Fu(in)m(v)m(o)s
+(cation)j(option)f(had)f(b)s(een)g(supplied.)51 b(If)34
+b(it)h(is)g(set)g(while)630 2725 y(the)c(shell)f(is)h(running,)d(Bash)j
+(enables)g Fm(posix)e Fu(mo)s(de,)h(as)h(if)f(the)h(command)870
+2855 y Ft(set)47 b(-o)g(posix)630 2984 y Fu(had)30 b(b)s(een)f
+(executed.)150 3133 y Ft(PPID)288 b Fu(The)30 b(pro)s(cess)g
+Fm(id)g Fu(of)h(the)f(shell's)h(paren)m(t)g(pro)s(cess.)40
+b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150
+3281 y Ft(PROMPT_COMMAND)630 3391 y Fu(If)32 b(set,)h(the)f(v)-5
+b(alue)33 b(is)f(in)m(terpreted)g(as)g(a)h(command)f(to)h(execute)g(b)s
+(efore)f(the)g(prin)m(ting)g(of)630 3500 y(eac)m(h)g(primary)d(prompt)g
+(\()p Ft($PS1)p Fu(\).)150 3649 y Ft(PROMPT_DIRTRIM)630
+3759 y Fu(If)e(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f(zero,)
+i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)e(of)h
+(trailing)630 3868 y(directory)35 b(comp)s(onen)m(ts)g(to)h(retain)f
+(when)f(expanding)g(the)h Ft(\\w)f Fu(and)g Ft(\\W)g
+Fu(prompt)g(string)630 3978 y(escap)s(es)21 b(\(see)h(Section)f(6.9)h
+([Con)m(trolling)g(the)f(Prompt],)h(page)f(92\).)39 b(Characters)21
+b(remo)m(v)m(ed)630 4088 y(are)31 b(replaced)g(with)f(an)g(ellipsis.)
+150 4236 y Ft(PS3)336 b Fu(The)34 b(v)-5 b(alue)35 b(of)f(this)g(v)-5
+b(ariable)35 b(is)g(used)e(as)i(the)f(prompt)g(for)g(the)g
+Ft(select)f Fu(command.)52 b(If)630 4346 y(this)30 b(v)-5
+b(ariable)31 b(is)g(not)f(set,)i(the)e Ft(select)f Fu(command)h
+(prompts)f(with)h(`)p Ft(#?)g Fu(')150 4495 y Ft(PS4)336
+b Fu(The)24 b(v)-5 b(alue)25 b(is)f(the)h(prompt)e(prin)m(ted)h(b)s
+(efore)g(the)h(command)f(line)h(is)f(ec)m(ho)s(ed)i(when)d(the)i
+Ft(-x)630 4604 y Fu(option)32 b(is)f(set)h(\(see)g(Section)h(4.3.1)g
+([The)e(Set)g(Builtin],)i(page)f(58\).)45 b(The)31 b(\014rst)f(c)m
+(haracter)630 4714 y(of)k Ft(PS4)g Fu(is)g(replicated)i(m)m(ultiple)f
+(times,)h(as)e(necessary)-8 b(,)37 b(to)e(indicate)g(m)m(ultiple)g(lev)
+m(els)h(of)630 4823 y(indirection.)41 b(The)30 b(default)h(is)f(`)p
+Ft(+)g Fu('.)150 4972 y Ft(PWD)336 b Fu(The)30 b(curren)m(t)g(w)m
+(orking)h(directory)g(as)f(set)h(b)m(y)f(the)h Ft(cd)f
+Fu(builtin.)150 5121 y Ft(RANDOM)192 b Fu(Eac)m(h)30
b(time)g(this)f(parameter)g(is)g(referenced,)h(a)f(random)g(in)m(teger)
-h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 1906 y(is)i(generated.)43
+h(b)s(et)m(w)m(een)g(0)f(and)g(32767)630 5230 y(is)i(generated.)43
b(Assigning)31 b(a)g(v)-5 b(alue)31 b(to)g(this)g(v)-5
b(ariable)31 b(seeds)g(the)g(random)f(n)m(um)m(b)s(er)f(gen-)630
-2016 y(erator.)150 2171 y Fs(READLINE_LINE)630 2281 y
-Ft(The)e(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g(bu\013er,)f(for)
-h(use)f(with)g(`)p Fs(bind)j(-x)p Ft(')d(\(see)h(Section)h(4.2)630
-2390 y([Bash)i(Builtins],)g(page)g(43\).)150 2545 y Fs(READLINE_POINT)
-630 2655 y Ft(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m
-(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h(for)f(use)g(with)g(`)p
-Fs(bind)630 2765 y(-x)p Ft(')30 b(\(see)h(Section)h(4.2)f([Bash)g
-(Builtins],)g(page)g(43\).)150 2920 y Fs(REPLY)240 b
-Ft(The)30 b(default)g(v)-5 b(ariable)32 b(for)e(the)g
-Fs(read)g Ft(builtin.)150 3075 y Fs(SECONDS)144 b Ft(This)40
-b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i
-(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
-3185 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
+5340 y(erator.)p eop end
+%%Page: 78 84
+TeXDict begin 78 83 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(78)150 299 y Ft(READLINE_LINE)630
+408 y Fu(The)27 b(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g
+(bu\013er,)f(for)h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h
+(Section)h(4.2)630 518 y([Bash)i(Builtins],)g(page)g(48\).)150
+667 y Ft(READLINE_POINT)630 776 y Fu(The)23 b(p)s(osition)g(of)g(the)h
+(insertion)f(p)s(oin)m(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h
+(for)f(use)g(with)g(`)p Ft(bind)630 886 y(-x)p Fu(')30
+b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(48\).)150
+1035 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32
+b(for)e(the)g Ft(read)g Fu(builtin.)150 1183 y Ft(SECONDS)144
+b Fu(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s
+(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
+1293 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 b(alue)43
-b(assigned,)j(and)c(the)630 3294 y(expanded)35 b(v)-5
+b(assigned,)j(and)c(the)630 1403 y(expanded)35 b(v)-5
b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 b(assigned)g(plus)f(the)h
-(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 3404 y(the)31
-b(assignmen)m(t.)150 3559 y Fs(SHELL)240 b Ft(The)29
+(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 1512 y(the)31
+b(assignmen)m(t.)150 1661 y Ft(SHELL)240 b Fu(The)29
b(full)h(pathname)g(to)h(the)f(shell)g(is)g(k)m(ept)g(in)g(this)g(en)m
(vironmen)m(t)g(v)-5 b(ariable.)42 b(If)29 b(it)i(is)f(not)630
-3669 y(set)36 b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f
+1771 y(set)36 b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f
(it)h(the)f(full)f(pathname)h(of)g(the)g(curren)m(t)630
-3778 y(user's)30 b(login)h(shell.)150 3934 y Fs(SHELLOPTS)630
-4043 y Ft(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)
+1880 y(user's)30 b(login)h(shell.)150 2029 y Ft(SHELLOPTS)630
+2138 y Fu(A)g(colon-separated)h(list)f(of)g(enabled)f(shell)h(options.)
41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
-b(alid)630 4153 y(argumen)m(t)24 b(for)f(the)h(`)p Fs(-o)p
-Ft(')f(option)h(to)g(the)g Fs(set)f Ft(builtin)g(command)g(\(see)i
-(Section)f(4.3.1)h([The)630 4262 y(Set)k(Builtin],)h(page)f(54\).)42
-b(The)28 b(options)h(app)s(earing)f(in)g Fs(SHELLOPTS)e
-Ft(are)j(those)h(rep)s(orted)630 4372 y(as)g(`)p Fs(on)p
-Ft(')f(b)m(y)h(`)p Fs(set)g(-o)p Ft('.)40 b(If)29 b(this)h(v)-5
+b(alid)630 2248 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
+Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)h(command)g(\(see)i(Section)
+f(4.3.1)h([The)630 2358 y(Set)g(Builtin],)h(page)f(58\).)42
+b(The)28 b(options)h(app)s(earing)f(in)g Ft(SHELLOPTS)e
+Fu(are)j(those)h(rep)s(orted)630 2467 y(as)g(`)p Ft(on)p
+Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p Fu('.)40 b(If)29 b(this)h(v)-5
b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)h
-(starts)g(up,)630 4482 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)
+(starts)g(up,)630 2577 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)
g(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h(startup)f
-(\014les.)630 4591 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
-b(.)150 4746 y Fs(SHLVL)240 b Ft(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)
+(\014les.)630 2686 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
+b(.)150 2835 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)
m(h)h(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g(started.)38
-b(This)20 b(is)h(in)m(tended)630 4856 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
+b(This)20 b(is)h(in)m(tended)630 2945 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
(of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h(shells)f(are)h(nested.)150
-5011 y Fs(TIMEFORMAT)630 5121 y Ft(The)f(v)-5 b(alue)32
+3093 y Ft(TIMEFORMAT)630 3203 y Fu(The)f(v)-5 b(alue)32
b(of)f(this)g(parameter)g(is)g(used)f(as)h(a)g(format)h(string)f(sp)s
-(ecifying)f(ho)m(w)h(the)g(tim-)630 5230 y(ing)37 b(information)f(for)h
-(pip)s(elines)f(pre\014xed)f(with)h(the)h Fs(time)e Ft(reserv)m(ed)i(w)
-m(ord)f(should)g(b)s(e)630 5340 y(displa)m(y)m(ed.)k(The)27
-b(`)p Fs(\045)p Ft(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h(escap)s
-(e)g(sequence)g(that)g(is)f(expanded)g(to)p eop end
-%%Page: 72 78
-TeXDict begin 72 77 bop 150 -116 a Ft(72)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(a)37 b(time)g(v)-5
-b(alue)36 b(or)h(other)f(information.)59 b(The)36 b(escap)s(e)g
-(sequences)h(and)e(their)i(meanings)630 408 y(are)31
-b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h(p)s(ortions.)
-630 568 y Fs(\045\045)384 b Ft(A)30 b(literal)i(`)p Fs(\045)p
-Ft('.)630 727 y Fs(\045[)p Fi(p)11 b Fs(][l]R)85 b Ft(The)30
-b(elapsed)h(time)g(in)f(seconds.)630 887 y Fs(\045[)p
-Fi(p)11 b Fs(][l]U)85 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g
-(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630 1046
-y Fs(\045[)p Fi(p)11 b Fs(][l]S)85 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h
-(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
-1205 y Fs(\045P)384 b Ft(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
-(as)h(\(\045U)f Fs(+)g Ft(\045S\))g(/)h(\045R.)630 1365
-y(The)23 b(optional)j Fq(p)g Ft(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
+(ecifying)f(ho)m(w)h(the)g(tim-)630 3313 y(ing)37 b(information)f(for)h
+(pip)s(elines)f(pre\014xed)f(with)h(the)h Ft(time)e Fu(reserv)m(ed)i(w)
+m(ord)f(should)g(b)s(e)630 3422 y(displa)m(y)m(ed.)k(The)27
+b(`)p Ft(\045)p Fu(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h(escap)s
+(e)g(sequence)g(that)g(is)f(expanded)g(to)630 3532 y(a)37
+b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)59
+b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630
+3641 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h
+(p)s(ortions.)630 3790 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p
+Ft(\045)p Fu('.)630 3939 y Ft(\045[)p Fj(p)p Ft(][l]R)96
+b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 4088
+y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h
+(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630
+4236 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
+(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
+4385 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
+(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 4534
+y(The)23 b(optional)j Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
(precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630
-1474 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
+4643 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h
-(fraction)g(to)g(b)s(e)630 1584 y(output.)48 b(A)m(t)34
+(fraction)g(to)g(b)s(e)630 4753 y(output.)48 b(A)m(t)34
b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)
-h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 1694 y(of)31
-b Fq(p)h Ft(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
-b(If)29 b Fq(p)k Ft(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
-b(alue)30 b(3)h(is)g(used.)630 1828 y(The)54 b(optional)h
-Fs(l)f Ft(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
-b(min)m(utes,)61 b(of)54 b(the)g(form)630 1938 y Fq(MM)10
-b Ft(m)p Fq(SS)5 b Ft(.)p Fq(FF)i Ft(s.)102 b(The)50
-b(v)-5 b(alue)51 b(of)g Fq(p)i Ft(determines)e(whether)f(or)h(not)f
-(the)h(fraction)h(is)630 2047 y(included.)630 2182 y(If)30
+h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 4862 y(of)31
+b Fr(p)h Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
+b(If)29 b Fr(p)k Fu(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
+b(alue)30 b(3)h(is)g(used.)630 4992 y(The)54 b(optional)h
+Ft(l)f Fu(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
+b(min)m(utes,)61 b(of)54 b(the)g(form)630 5101 y Fr(MM)10
+b Fu(m)p Fr(SS)p Fu(.)p Fr(FF)d Fu(s.)103 b(The)50 b(v)-5
+b(alue)52 b(of)f Fr(p)j Fu(determines)d(whether)f(or)h(not)h(the)f
+(fraction)h(is)630 5211 y(included.)630 5340 y(If)30
b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
-(it)h(had)f(the)h(v)-5 b(alue)870 2316 y Fs
+(it)h(had)f(the)h(v)-5 b(alue)p eop end
+%%Page: 79 85
+TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(79)870 299 y Ft
($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
-2451 y Ft(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
+433 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
-(is)630 2560 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
-(y)m(ed.)150 2720 y Fs(TMOUT)240 b Ft(If)22 b(set)h(to)g(a)g(v)-5
-b(alue)23 b(greater)h(than)e(zero,)j Fs(TMOUT)d Ft(is)g(treated)i(as)e
-(the)h(default)g(timeout)g(for)g(the)630 2829 y Fs(read)31
-b Ft(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
-(43\).)47 b(The)32 b Fs(select)e Ft(command)630 2939
-y(\(see)f(Section)h(3.2.4.2)g([Conditional)g(Constructs],)e(page)i
-(10\))f(terminates)g(if)g(input)e(do)s(es)630 3049 y(not)k(arriv)m(e)g
-(after)g Fs(TMOUT)e Ft(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
-h(terminal.)630 3183 y(In)25 b(an)h(in)m(teractiv)m(e)i(shell,)g(the)e
-(v)-5 b(alue)26 b(is)g(in)m(terpreted)g(as)g(the)g(n)m(um)m(b)s(er)f
-(of)h(seconds)f(to)i(w)m(ait)630 3293 y(for)32 b(input)f(after)i
-(issuing)f(the)g(primary)g(prompt)f(when)g(the)i(shell)f(is)h(in)m
-(teractiv)m(e.)49 b(Bash)630 3402 y(terminates)31 b(after)g(that)g(n)m
-(um)m(b)s(er)e(of)i(seconds)f(if)g(input)g(do)s(es)g(not)g(arriv)m(e.)
-150 3562 y Fs(TMPDIR)192 b Ft(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5
-b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g
-(Bash)h(creates)630 3671 y(temp)s(orary)30 b(\014les)g(for)g(the)h
-(shell's)g(use.)150 3831 y Fs(UID)336 b Ft(The)30 b(n)m(umeric)g(real)h
-(user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30
-b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end
-%%Page: 73 79
-TeXDict begin 73 78 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(73)150 299 y Fo(6)80
-b(Bash)54 b(F)-13 b(eatures)150 524 y Ft(This)30 b(section)h(describ)s
-(es)f(features)g(unique)g(to)h(Bash.)150 752 y Fr(6.1)68
-b(In)l(v)l(oking)46 b(Bash)390 912 y Fs(bash)h([long-opt])e([-ir])h
-([-abefhkmnptuvxdBCDHP])c([-o)47 b Fi(option)11 b Fs(])45
-b([-O)i Fi(shopt_option)11 b Fs(])44 b([)p Fi(ar-)390
-1021 y(gument)57 b Fs(...)o(])390 1131 y(bash)47 b([long-opt])e
-([-abefhkmnptuvxdBCDHP])c([-o)47 b Fi(option)11 b Fs(])46
-b([-O)g Fi(shopt_option)11 b Fs(])44 b(-c)j Fi(string)57
-b Fs([)p Fi(ar-)390 1240 y(gument)g Fs(...)o(])390 1350
-y(bash)47 b([long-opt])e(-s)i([-abefhkmnptuvxdBCDHP])42
-b([-o)k Fi(option)11 b Fs(])46 b([-O)h Fi(shopt_option)11
-b Fs(])43 b([)p Fi(ar-)390 1460 y(gument)57 b Fs(...)o(])275
-1592 y Ft(All)31 b(of)g(the)f(single-c)m(haracter)k(options)d(used)f
-(with)g(the)h Fs(set)f Ft(builtin)g(\(see)h(Section)h(4.3.1)g([The)f
-(Set)150 1702 y(Builtin],)45 b(page)c(54\))i(can)e(b)s(e)f(used)h(as)g
-(options)g(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)74
-b(In)41 b(addition,)j(there)150 1811 y(are)38 b(sev)m(eral)h(m)m
+(is)630 543 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
+(y)m(ed.)150 702 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
+b(alue)23 b(greater)h(than)e(zero,)j Ft(TMOUT)d Fu(is)g(treated)i(as)e
+(the)h(default)g(timeout)g(for)g(the)630 812 y Ft(read)31
+b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
+(48\).)47 b(The)32 b Ft(select)e Fu(command)630 922 y(\(see)f(Section)h
+(3.2.4.2)g([Conditional)g(Constructs],)e(page)i(10\))f(terminates)g(if)
+g(input)e(do)s(es)630 1031 y(not)k(arriv)m(e)g(after)g
+Ft(TMOUT)e Fu(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)h
+(terminal.)630 1166 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
+(v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f
+(of)h(seconds)f(to)630 1275 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
+e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26
+b(terminates)h(after)630 1385 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
+(b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s
+(es)h(not)h(arriv)m(e.)150 1544 y Ft(TMPDIR)192 b Fu(If)39
+b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40 b(as)f(the)h(name)f(of)h(a)
+g(directory)g(in)f(whic)m(h)g(Bash)h(creates)630 1654
+y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g(use.)150
+1813 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)g(of)g
+(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31
+b(is)f(readonly)-8 b(.)p eop end
+%%Page: 80 86
+TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(80)150 299 y Fp(6)80
+b(Bash)54 b(F)-13 b(eatures)150 504 y Fu(This)30 b(c)m(hapter)h
+(describ)s(es)e(features)i(unique)e(to)i(Bash.)150 725
+y Fs(6.1)68 b(In)l(v)l(oking)46 b(Bash)390 884 y Ft(bash)h([long-opt])e
+([-ir])h([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)p
+Ft(])e([-O)i Fj(shopt_option)p Ft(])e([)p Fj(ar-)390
+994 y(gument)h Ft(...)o(])390 1103 y(bash)h([long-opt])e
+([-abefhkmnptuvxdBCDHP])c([-o)47 b Fj(option)p Ft(])f([-O)h
+Fj(shopt_option)p Ft(])d(-c)j Fj(string)f Ft([)p Fj(ar-)390
+1213 y(gument)g Ft(...)o(])390 1323 y(bash)h([long-opt])e(-s)i
+([-abefhkmnptuvxdBCDHP])42 b([-o)k Fj(option)p Ft(])g([-O)h
+Fj(shopt_option)p Ft(])d([)p Fj(ar-)390 1432 y(gument)i
+Ft(...)o(])275 1561 y Fu(All)31 b(of)g(the)f(single-c)m(haracter)k
+(options)d(used)f(with)g(the)h Ft(set)f Fu(builtin)g(\(see)h(Section)h
+(4.3.1)g([The)f(Set)150 1670 y(Builtin],)45 b(page)c(58\))i(can)e(b)s
+(e)f(used)h(as)g(options)g(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)
+74 b(In)41 b(addition,)j(there)150 1780 y(are)38 b(sev)m(eral)h(m)m
(ulti-c)m(haracter)h(options)d(that)h(y)m(ou)g(can)g(use.)61
b(These)38 b(options)f(m)m(ust)h(app)s(ear)e(on)i(the)150
-1921 y(command)30 b(line)h(b)s(efore)f(the)g(single-c)m(haracter)j
-(options)e(to)g(b)s(e)f(recognized.)150 2076 y Fs(--debugger)630
-2186 y Ft(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e
+1890 y(command)30 b(line)h(b)s(efore)f(the)g(single-c)m(haracter)j
+(options)e(to)g(b)s(e)f(recognized.)150 2037 y Ft(--debugger)630
+2147 y Fu(Arrange)j(for)g(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e
(executed)i(b)s(efore)f(the)g(shell)g(starts.)49 b(T)-8
-b(urns)630 2296 y(on)37 b(extended)g(debugging)g(mo)s(de)g(\(see)h
-(Section)g(4.3.2)g([The)f(Shopt)g(Builtin],)i(page)f(57)630
-2405 y(for)30 b(a)h(description)f(of)h(the)f Fs(extdebug)f
-Ft(option)h(to)h(the)g Fs(shopt)e Ft(builtin\).)150 2561
-y Fs(--dump-po-strings)630 2670 y Ft(A)37 b(list)g(of)f(all)i
-(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Fs($)p
-Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 2780
-y(output)24 b(in)h(the)g Fl(gnu)f Fs(gettext)f Ft(PO)i(\(p)s(ortable)g
-(ob)5 b(ject\))26 b(\014le)f(format.)39 b(Equiv)-5 b(alen)m(t)26
-b(to)f(`)p Fs(-D)p Ft(')630 2890 y(except)31 b(for)f(the)h(output)f
-(format.)150 3045 y Fs(--dump-strings)630 3155 y Ft(Equiv)-5
-b(alen)m(t)31 b(to)g(`)p Fs(-D)p Ft('.)150 3310 y Fs(--help)192
-b Ft(Displa)m(y)32 b(a)e(usage)h(message)h(on)e(standard)g(output)g
-(and)f(exit)j(successfully)-8 b(.)150 3466 y Fs(--init-file)27
-b Fi(filename)150 3576 y Fs(--rcfile)h Fi(filename)630
-3685 y Ft(Execute)42 b(commands)f(from)f Fq(\014lename)47
-b Ft(\(instead)42 b(of)f(`)p Fs(~/.bashrc)p Ft('\))e(in)i(an)g(in)m
-(teractiv)m(e)630 3795 y(shell.)150 3950 y Fs(--login)144
-b Ft(Equiv)-5 b(alen)m(t)31 b(to)g(`)p Fs(-l)p Ft('.)150
-4106 y Fs(--noediting)630 4216 y Ft(Do)h(not)e(use)h(the)g
-Fl(gnu)f Ft(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)f(Line)
-g(Editing],)630 4325 y(page)h(95\))h(to)f(read)f(command)g(lines)h
-(when)e(the)i(shell)f(is)h(in)m(teractiv)m(e.)150 4481
-y Fs(--noprofile)630 4590 y Ft(Don't)h(load)f(the)g(system-wide)g
-(startup)f(\014le)g(`)p Fs(/etc/profile)p Ft(')e(or)j(an)m(y)g(of)g
-(the)f(p)s(ersonal)630 4700 y(initialization)g(\014les)d(`)p
-Fs(~/.bash_profile)p Ft(',)e(`)p Fs(~/.bash_login)p Ft(',)g(or)i(`)p
-Fs(~/.profile)p Ft(')e(when)630 4810 y(Bash)31 b(is)f(in)m(v)m(ok)m(ed)
-i(as)e(a)h(login)g(shell.)150 4965 y Fs(--norc)192 b
-Ft(Don't)31 b(read)g(the)f(`)p Fs(~/.bashrc)p Ft(')f(initialization)k
-(\014le)d(in)g(an)h(in)m(teractiv)m(e)i(shell.)41 b(This)30
-b(is)g(on)630 5075 y(b)m(y)g(default)h(if)f(the)h(shell)f(is)h(in)m(v)m
-(ok)m(ed)h(as)e Fs(sh)p Ft(.)150 5230 y Fs(--posix)144
-b Ft(Change)24 b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i
-(default)f(op)s(eration)h(di\013ers)f(from)f(the)i Fl(posix)630
-5340 y Ft(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55
+b(urns)630 2257 y(on)37 b(extended)g(debugging)g(mo)s(de)g(\(see)h
+(Section)g(4.3.2)g([The)f(Shopt)g(Builtin],)i(page)f(62)630
+2366 y(for)30 b(a)h(description)f(of)h(the)f Ft(extdebug)f
+Fu(option)h(to)h(the)g Ft(shopt)e Fu(builtin\).)150 2514
+y Ft(--dump-po-strings)630 2623 y Fu(A)37 b(list)g(of)f(all)i
+(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Ft($)p
+Fu(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630 2733
+y(output)29 b(in)g(the)g Fm(gnu)g Ft(gettext)f Fu(PO)g(\(p)s(ortable)i
+(ob)5 b(ject\))30 b(\014le)g(format.)40 b(Equiv)-5 b(alen)m(t)31
+b(to)f Ft(-D)630 2843 y Fu(except)h(for)f(the)h(output)f(format.)150
+2990 y Ft(--dump-strings)630 3100 y Fu(Equiv)-5 b(alen)m(t)31
+b(to)g Ft(-D)p Fu(.)150 3248 y Ft(--help)192 b Fu(Displa)m(y)32
+b(a)e(usage)h(message)h(on)e(standard)g(output)g(and)f(exit)j
+(successfully)-8 b(.)150 3396 y Ft(--init-file)27 b Fj(filename)150
+3505 y Ft(--rcfile)h Fj(filename)630 3615 y Fu(Execute)23
+b(commands)e(from)g Fr(\014lename)28 b Fu(\(instead)22
+b(of)g Ft(~/.bashrc)p Fu(\))e(in)h(an)h(in)m(teractiv)m(e)i(shell.)150
+3763 y Ft(--login)144 b Fu(Equiv)-5 b(alen)m(t)31 b(to)g
+Ft(-l)p Fu(.)150 3910 y Ft(--noediting)630 4020 y Fu(Do)h(not)e(use)h
+(the)g Fm(gnu)f Fu(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)
+f(Line)g(Editing],)630 4130 y(page)h(101\))h(to)f(read)g(command)f
+(lines)g(when)g(the)g(shell)h(is)f(in)m(teractiv)m(e.)150
+4277 y Ft(--noprofile)630 4387 y Fu(Don't)22 b(load)g(the)g
+(system-wide)f(startup)g(\014le)h Ft(/etc/profile)c Fu(or)j(an)m(y)h
+(of)f(the)h(p)s(ersonal)f(ini-)630 4496 y(tialization)34
+b(\014les)e Ft(~/.bash_profile)p Fu(,)c Ft(~/.bash_login)p
+Fu(,)g(or)k Ft(~/.profile)c Fu(when)j(Bash)630 4606 y(is)f(in)m(v)m(ok)
+m(ed)i(as)f(a)g(login)g(shell.)150 4754 y Ft(--norc)192
+b Fu(Don't)35 b(read)f(the)g Ft(~/.bashrc)e Fu(initialization)k(\014le)
+f(in)e(an)h(in)m(teractiv)m(e)j(shell.)52 b(This)33 b(is)h(on)630
+4863 y(b)m(y)c(default)h(if)f(the)h(shell)f(is)h(in)m(v)m(ok)m(ed)h(as)
+e Ft(sh)p Fu(.)150 5011 y Ft(--posix)144 b Fu(Change)24
+b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i(default)f(op)s
+(eration)h(di\013ers)f(from)f(the)i Fm(posix)630 5121
+y Fu(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55
b(This)35 b(is)h(in)m(tended)f(to)h(mak)m(e)h(Bash)f(b)s(eha)m(v)m(e)g
-(as)g(a)p eop end
-%%Page: 74 80
-TeXDict begin 74 79 bop 150 -116 a Ft(74)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(strict)26 b(sup)s(erset)e(of)h(that)g
-(standard.)38 b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j
-(page)f(86,)630 408 y(for)k(a)h(description)f(of)h(the)f(Bash)h
-Fl(posix)f Ft(mo)s(de.)150 564 y Fs(--restricted)630
-673 y Ft(Mak)m(e)54 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h
-(Section)g(6.10)h([The)d(Restricted)j(Shell],)630 783
-y(page)31 b(86\).)150 938 y Fs(--verbose)630 1048 y Ft(Equiv)-5
-b(alen)m(t)31 b(to)g(`)p Fs(-v)p Ft('.)41 b(Prin)m(t)30
-b(shell)h(input)e(lines)i(as)g(they're)f(read.)150 1203
-y Fs(--version)630 1313 y Ft(Sho)m(w)e(v)m(ersion)g(information)g(for)g
-(this)g(instance)h(of)f(Bash)g(on)g(the)g(standard)f(output)h(and)630
-1422 y(exit)j(successfully)-8 b(.)275 1577 y(There)28
-b(are)i(sev)m(eral)g(single-c)m(haracter)i(options)d(that)h(ma)m(y)g(b)
-s(e)e(supplied)g(at)i(in)m(v)m(o)s(cation)h(whic)m(h)e(are)150
-1687 y(not)i(a)m(v)-5 b(ailable)32 b(with)e(the)h Fs(set)e
-Ft(builtin.)150 1842 y Fs(-c)h Fi(string)630 1952 y Ft(Read)23
-b(and)f(execute)i(commands)f(from)f Fq(string)31 b Ft(after)23
-b(pro)s(cessing)f(the)h(options,)i(then)e(exit.)630 2061
-y(An)m(y)37 b(remaining)f(argumen)m(ts)h(are)g(assigned)g(to)g(the)g(p)
-s(ositional)g(parameters,)i(starting)630 2171 y(with)30
-b Fs($0)p Ft(.)150 2326 y Fs(-i)384 b Ft(F)-8 b(orce)22
+(as)g(a)630 5230 y(strict)26 b(sup)s(erset)e(of)h(that)g(standard.)38
+b(See)26 b(Section)f(6.11)i([Bash)e(POSIX)f(Mo)s(de],)j(page)f(94,)630
+5340 y(for)k(a)h(description)f(of)h(the)f(Bash)h Fm(posix)f
+Fu(mo)s(de.)p eop end
+%%Page: 81 87
+TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(81)150 299 y Ft(--restricted)630
+408 y Fu(Mak)m(e)54 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h
+(Section)g(6.10)h([The)d(Restricted)j(Shell],)630 518
+y(page)31 b(93\).)150 682 y Ft(--verbose)630 791 y Fu(Equiv)-5
+b(alen)m(t)31 b(to)g Ft(-v)p Fu(.)41 b(Prin)m(t)30 b(shell)g(input)g
+(lines)g(as)h(they're)g(read.)150 955 y Ft(--version)630
+1065 y Fu(Sho)m(w)d(v)m(ersion)g(information)g(for)g(this)g(instance)h
+(of)f(Bash)g(on)g(the)g(standard)f(output)h(and)630 1174
+y(exit)j(successfully)-8 b(.)275 1341 y(There)28 b(are)i(sev)m(eral)g
+(single-c)m(haracter)i(options)d(that)h(ma)m(y)g(b)s(e)e(supplied)g(at)
+i(in)m(v)m(o)s(cation)h(whic)m(h)e(are)150 1450 y(not)i(a)m(v)-5
+b(ailable)32 b(with)e(the)h Ft(set)e Fu(builtin.)150
+1616 y Ft(-c)384 b Fu(Read)44 b(and)e(execute)j(commands)e(from)g(the)g
+(\014rst)g(non-option)h Fr(argumen)m(t)h Fu(after)f(pro-)630
+1726 y(cessing)37 b(the)g(options,)i(then)d(exit.)61
+b(An)m(y)37 b(remaining)f(argumen)m(ts)h(are)g(assigned)g(to)h(the)630
+1835 y(p)s(ositional)31 b(parameters,)g(starting)g(with)f
+Ft($0)p Fu(.)150 1999 y Ft(-i)384 b Fu(F)-8 b(orce)22
b(the)g(shell)f(to)g(run)f(in)m(teractiv)m(ely)-8 b(.)41
b(In)m(teractiv)m(e)23 b(shells)e(are)h(describ)s(ed)d(in)i(Section)h
-(6.3)630 2436 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(76.)150
-2591 y Fs(-l)384 b Ft(Mak)m(e)33 b(this)e(shell)h(act)g(as)g(if)f(it)h
+(6.3)630 2109 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(83.)150
+2273 y Ft(-l)384 b Fu(Mak)m(e)33 b(this)e(shell)h(act)g(as)g(if)f(it)h
(had)f(b)s(een)f(directly)i(in)m(v)m(ok)m(ed)h(b)m(y)f(login.)44
-b(When)31 b(the)h(shell)630 2701 y(is)37 b(in)m(teractiv)m(e,)43
+b(When)31 b(the)h(shell)630 2382 y(is)37 b(in)m(teractiv)m(e,)43
b(this)37 b(is)g(equiv)-5 b(alen)m(t)39 b(to)f(starting)h(a)e(login)i
-(shell)e(with)g(`)p Fs(exec)30 b(-l)g(bash)p Ft('.)630
-2810 y(When)h(the)g(shell)h(is)f(not)g(in)m(teractiv)m(e,)k(the)c
+(shell)e(with)g(`)p Ft(exec)30 b(-l)g(bash)p Fu('.)630
+2492 y(When)h(the)g(shell)h(is)f(not)g(in)m(teractiv)m(e,)k(the)c
(login)h(shell)g(startup)f(\014les)g(will)g(b)s(e)g(executed.)630
-2920 y(`)p Fs(exec)e(bash)h(-l)p Ft(')43 b(or)h(`)p Fs(exec)29
-b(bash)g(--login)p Ft(')42 b(will)i(replace)h(the)f(curren)m(t)f(shell)
-h(with)g(a)630 3029 y(Bash)26 b(login)g(shell.)39 b(See)26
-b(Section)g(6.2)h([Bash)e(Startup)g(Files],)j(page)e(75,)i(for)d(a)h
-(description)630 3139 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)
-f(a)h(login)g(shell.)150 3294 y Fs(-r)384 b Ft(Mak)m(e)54
+2601 y(`)p Ft(exec)e(bash)h(-l)p Fu(')43 b(or)h(`)p Ft(exec)29
+b(bash)g(--login)p Fu(')42 b(will)i(replace)h(the)f(curren)m(t)f(shell)
+h(with)g(a)630 2711 y(Bash)26 b(login)g(shell.)39 b(See)26
+b(Section)g(6.2)h([Bash)e(Startup)g(Files],)j(page)e(82,)i(for)d(a)h
+(description)630 2821 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)
+f(a)h(login)g(shell.)150 2984 y Ft(-r)384 b Fu(Mak)m(e)54
b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)
-d(Restricted)j(Shell],)630 3404 y(page)31 b(86\).)150
-3559 y Fs(-s)384 b Ft(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f
+d(Restricted)j(Shell],)630 3094 y(page)31 b(93\).)150
+3258 y Ft(-s)384 b Fu(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f
(if)g(no)f(argumen)m(ts)i(remain)e(after)i(option)f(pro)s(cessing,)h
-(then)630 3669 y(commands)i(are)h(read)g(from)f(the)h(standard)f
+(then)630 3367 y(commands)i(are)h(read)g(from)f(the)h(standard)f
(input.)39 b(This)28 b(option)h(allo)m(ws)h(the)f(p)s(ositional)630
-3778 y(parameters)i(to)g(b)s(e)f(set)g(when)g(in)m(v)m(oking)h(an)g(in)
-m(teractiv)m(e)i(shell.)150 3934 y Fs(-D)384 b Ft(A)37
+3477 y(parameters)i(to)g(b)s(e)f(set)g(when)g(in)m(v)m(oking)h(an)g(in)
+m(teractiv)m(e)i(shell.)150 3641 y Ft(-D)384 b Fu(A)37
b(list)g(of)f(all)i(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p
-Fs($)p Ft(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630
-4043 y(output.)63 b(These)38 b(are)g(the)g(strings)g(that)h(are)f(sub)5
-b(ject)38 b(to)h(language)g(translation)g(when)630 4153
-y(the)e(curren)m(t)g(lo)s(cale)h(is)f(not)g Fs(C)g Ft(or)f
-Fs(POSIX)g Ft(\(see)h(Section)h(3.1.2.5)h([Lo)s(cale)g(T)-8
-b(ranslation],)630 4262 y(page)31 b(7\).)42 b(This)29
-b(implies)i(the)f(`)p Fs(-n)p Ft(')h(option;)g(no)f(commands)g(will)h
-(b)s(e)e(executed.)150 4418 y Fs([-+]O)g([)p Fi(shopt_option)11
-b Fs(])630 4527 y Fq(shopt)p 854 4527 28 4 v 40 w(option)44
-b Ft(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h
-Fs(shopt)d Ft(builtin)i(\(see)630 4637 y(Section)28 b(4.3.2)g([The)f
-(Shopt)f(Builtin],)i(page)f(57\).)41 b(If)26 b Fq(shopt)p
-2690 4637 V 40 w(option)h Ft(is)g(presen)m(t,)h(`)p Fs(-O)p
-Ft(')f(sets)630 4746 y(the)40 b(v)-5 b(alue)40 b(of)f(that)h(option;)45
-b(`)p Fs(+O)p Ft(')40 b(unsets)e(it.)69 b(If)39 b Fq(shopt)p
-2631 4746 V 40 w(option)h Ft(is)f(not)h(supplied,)h(the)630
-4856 y(names)e(and)g(v)-5 b(alues)40 b(of)g(the)g(shell)f(options)h
-(accepted)h(b)m(y)e Fs(shopt)f Ft(are)i(prin)m(ted)f(on)h(the)630
-4966 y(standard)33 b(output.)50 b(If)33 b(the)h(in)m(v)m(o)s(cation)i
-(option)e(is)g(`)p Fs(+O)p Ft(',)g(the)g(output)f(is)h(displa)m(y)m(ed)
-g(in)g(a)630 5075 y(format)d(that)g(ma)m(y)g(b)s(e)e(reused)h(as)h
-(input.)150 5230 y Fs(--)384 b Ft(A)38 b Fs(--)g Ft(signals)g(the)h
-(end)e(of)i(options)f(and)g(disables)g(further)f(option)h(pro)s
-(cessing.)64 b(An)m(y)630 5340 y(argumen)m(ts)31 b(after)g(the)f
-Fs(--)g Ft(are)h(treated)g(as)g(\014lenames)f(and)g(argumen)m(ts.)p
-eop end
-%%Page: 75 81
-TeXDict begin 75 80 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(75)275 299 y(A)27 b
-Fk(lo)-5 b(gin)35 b Ft(shell)27 b(is)g(one)h(whose)f(\014rst)f(c)m
-(haracter)j(of)e(argumen)m(t)h(zero)f(is)h(`)p Fs(-)p
-Ft(',)g(or)f(one)g(in)m(v)m(ok)m(ed)i(with)e(the)150
-408 y(`)p Fs(--login)p Ft(')i(option.)275 546 y(An)24
-b Fk(inter)-5 b(active)33 b Ft(shell)25 b(is)g(one)g(started)g(without)
-g(non-option)h(argumen)m(ts,)g(unless)f(`)p Fs(-s)p Ft(')f(is)h(sp)s
-(eci\014ed,)150 656 y(without)43 b(sp)s(ecifying)f(the)i(`)p
-Fs(-c)p Ft(')e(option,)47 b(and)42 b(whose)h(input)f(and)g(output)g
-(are)h(b)s(oth)g(connected)g(to)150 766 y(terminals)22
-b(\(as)h(determined)f(b)m(y)g Fs(isatty\(3\))p Ft(\),)f(or)i(one)f
-(started)g(with)g(the)g(`)p Fs(-i)p Ft(')g(option.)39
-b(See)22 b(Section)h(6.3)150 875 y([In)m(teractiv)m(e)33
-b(Shells],)e(page)g(76,)g(for)f(more)h(information.)275
-1013 y(If)38 b(argumen)m(ts)h(remain)g(after)g(option)h(pro)s(cessing,)
-h(and)d(neither)h(the)g(`)p Fs(-c)p Ft(')f(nor)h(the)g(`)p
-Fs(-s)p Ft(')f(option)150 1123 y(has)33 b(b)s(een)g(supplied,)h(the)g
-(\014rst)e(argumen)m(t)j(is)e(assumed)g(to)h(b)s(e)f(the)h(name)g(of)g
-(a)g(\014le)g(con)m(taining)h(shell)150 1232 y(commands)30
-b(\(see)g(Section)h(3.8)g([Shell)f(Scripts],)g(page)h(34\).)41
+Ft($)p Fu(')f(is)h(prin)m(ted)f(on)g(the)h(standard)630
+3750 y(output.)63 b(These)38 b(are)g(the)g(strings)g(that)h(are)f(sub)5
+b(ject)38 b(to)h(language)g(translation)g(when)630 3860
+y(the)e(curren)m(t)g(lo)s(cale)h(is)f(not)g Ft(C)g Fu(or)f
+Ft(POSIX)g Fu(\(see)h(Section)h(3.1.2.5)h([Lo)s(cale)g(T)-8
+b(ranslation],)630 3970 y(page)31 b(7\).)42 b(This)29
+b(implies)i(the)f Ft(-n)g Fu(option;)h(no)f(commands)g(will)h(b)s(e)f
+(executed.)150 4133 y Ft([-+]O)f([)p Fj(shopt_option)p
+Ft(])630 4243 y Fr(shopt)p 854 4243 28 4 v 40 w(option)44
+b Fu(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h
+Ft(shopt)d Fu(builtin)i(\(see)630 4353 y(Section)32 b(4.3.2)h([The)e
+(Shopt)f(Builtin],)i(page)g(62\).)44 b(If)31 b Fr(shopt)p
+2724 4353 V 40 w(option)g Fu(is)g(presen)m(t,)h Ft(-O)f
+Fu(sets)630 4462 y(the)24 b(v)-5 b(alue)24 b(of)g(that)h(option;)h
+Ft(+O)e Fu(unsets)f(it.)39 b(If)23 b Fr(shopt)p 2423
+4462 V 40 w(option)h Fu(is)g(not)g(supplied,)g(the)g(names)630
+4572 y(and)31 b(v)-5 b(alues)32 b(of)g(the)g(shell)g(options)g
+(accepted)h(b)m(y)f Ft(shopt)e Fu(are)i(prin)m(ted)f(on)h(the)g
+(standard)630 4681 y(output.)40 b(If)29 b(the)h(in)m(v)m(o)s(cation)h
+(option)f(is)f Ft(+O)p Fu(,)h(the)f(output)g(is)h(displa)m(y)m(ed)g(in)
+f(a)h(format)f(that)630 4791 y(ma)m(y)i(b)s(e)f(reused)f(as)i(input.)
+150 4955 y Ft(--)384 b Fu(A)38 b Ft(--)g Fu(signals)g(the)h(end)e(of)i
+(options)f(and)g(disables)g(further)f(option)h(pro)s(cessing.)64
+b(An)m(y)630 5064 y(argumen)m(ts)31 b(after)g(the)f Ft(--)g
+Fu(are)h(treated)g(as)g(\014lenames)f(and)g(argumen)m(ts.)275
+5230 y(A)d Fl(lo)-5 b(gin)35 b Fu(shell)27 b(is)g(one)h(whose)f
+(\014rst)f(c)m(haracter)j(of)e(argumen)m(t)h(zero)f(is)h(`)p
+Ft(-)p Fu(',)g(or)f(one)g(in)m(v)m(ok)m(ed)i(with)e(the)150
+5340 y Ft(--login)h Fu(option.)p eop end
+%%Page: 82 88
+TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(82)275 299 y(An)28
+b Fl(inter)-5 b(active)37 b Fu(shell)30 b(is)f(one)g(started)h(without)
+f(non-option)h(argumen)m(ts,)g(unless)e Ft(-s)h Fu(is)g(sp)s
+(eci\014ed,)150 408 y(without)k(sp)s(ecifying)h(the)f
+Ft(-c)g Fu(option,)i(and)e(whose)g(input)g(and)f(output)h(are)h(b)s
+(oth)f(connected)h(to)g(ter-)150 518 y(minals)g(\(as)g(determined)f(b)m
+(y)h Ft(isatty\(3\))p Fu(\),)e(or)i(one)g(started)g(with)f(the)h
+Ft(-i)f Fu(option.)51 b(See)33 b(Section)i(6.3)150 628
+y([In)m(teractiv)m(e)e(Shells],)e(page)g(83,)g(for)f(more)h
+(information.)275 763 y(If)i(argumen)m(ts)h(remain)g(after)h(option)f
+(pro)s(cessing,)h(and)e(neither)h(the)g Ft(-c)g Fu(nor)f(the)h
+Ft(-s)g Fu(option)g(has)150 873 y(b)s(een)44 b(supplied,)j(the)d
+(\014rst)g(argumen)m(t)h(is)g(assumed)e(to)j(b)s(e)d(the)i(name)g(of)f
+(a)h(\014le)g(con)m(taining)h(shell)150 982 y(commands)30
+b(\(see)g(Section)h(3.8)g([Shell)f(Scripts],)g(page)h(39\).)41
b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i(in)d(this)h(fashion,)150
-1342 y Fs($0)37 b Ft(is)g(set)h(to)h(the)e(name)h(of)f(the)h(\014le,)i
+1092 y Ft($0)37 b Fu(is)g(set)h(to)h(the)e(name)h(of)f(the)h(\014le,)i
(and)c(the)i(p)s(ositional)g(parameters)g(are)g(set)g(to)g(the)g
-(remaining)150 1451 y(argumen)m(ts.)h(Bash)26 b(reads)f(and)g(executes)
+(remaining)150 1202 y(argumen)m(ts.)h(Bash)26 b(reads)f(and)g(executes)
h(commands)f(from)g(this)g(\014le,)i(then)e(exits.)40
-b(Bash's)25 b(exit)i(status)150 1561 y(is)f(the)h(exit)h(status)e(of)h
+b(Bash's)25 b(exit)i(status)150 1311 y(is)f(the)h(exit)h(status)e(of)h
(the)g(last)g(command)f(executed)h(in)g(the)f(script.)40
-b(If)26 b(no)g(commands)g(are)h(executed,)150 1671 y(the)k(exit)g
-(status)g(is)f(0.)150 1908 y Fr(6.2)68 b(Bash)45 b(Startup)g(Files)150
-2068 y Ft(This)23 b(section)j(describ)s(es)d(ho)m(w)i(Bash)f(executes)h
+b(If)26 b(no)g(commands)g(are)h(executed,)150 1421 y(the)k(exit)g
+(status)g(is)f(0.)150 1655 y Fs(6.2)68 b(Bash)45 b(Startup)g(Files)150
+1814 y Fu(This)23 b(section)j(describ)s(es)d(ho)m(w)i(Bash)f(executes)h
(its)g(startup)f(\014les.)38 b(If)24 b(an)m(y)h(of)f(the)h(\014les)f
-(exist)h(but)e(cannot)150 2177 y(b)s(e)k(read,)i(Bash)f(rep)s(orts)f
-(an)h(error.)39 b(Tildes)28 b(are)g(expanded)f(in)h(\014le)g(names)g
-(as)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(under)150 2287
-y(Tilde)h(Expansion)g(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h
-(page)g(20\).)275 2425 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s
-(ed)e(in)h(Section)h(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(76.)
-150 2627 y Fj(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f
-(login)j(shell,)g(or)g(with)e(`)p Fh(--login)p Fj(')150
-2774 y Ft(When)c(Bash)f(is)h(in)m(v)m(ok)m(ed)h(as)f(an)g(in)m
-(teractiv)m(e)j(login)d(shell,)i(or)e(as)g(a)g(non-in)m(teractiv)m(e)i
-(shell)e(with)g(the)150 2884 y(`)p Fs(--login)p Ft(')j(option,)k(it)e
-(\014rst)e(reads)h(and)g(executes)h(commands)f(from)f(the)i(\014le)f(`)
-p Fs(/etc/profile)p Ft(',)g(if)150 2993 y(that)35 b(\014le)g(exists.)55
-b(After)35 b(reading)g(that)g(\014le,)h(it)g(lo)s(oks)f(for)f(`)p
-Fs(~/.bash_profile)p Ft(',)f(`)p Fs(~/.bash_login)p Ft(',)150
-3103 y(and)28 b(`)p Fs(~/.profile)p Ft(',)f(in)i(that)g(order,)g(and)f
-(reads)g(and)h(executes)h(commands)e(from)g(the)h(\014rst)f(one)h(that)
-150 3213 y(exists)i(and)e(is)h(readable.)41 b(The)30
-b(`)p Fs(--noprofile)p Ft(')d(option)k(ma)m(y)f(b)s(e)g(used)f(when)g
-(the)h(shell)h(is)f(started)g(to)150 3322 y(inhibit)g(this)g(b)s(eha)m
-(vior.)275 3460 y(When)72 b(a)i(login)g(shell)f(exits,)85
-b(Bash)73 b(reads)g(and)g(executes)h(commands)f(from)g(the)g(\014le)150
-3570 y(`)p Fs(~/.bash_logout)p Ft(',)27 b(if)k(it)f(exists.)150
-3772 y Fj(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f
-(non-login)k(shell)150 3919 y Ft(When)g(an)h(in)m(teractiv)m(e)i(shell)
-e(that)g(is)f(not)h(a)g(login)g(shell)g(is)f(started,)48
-b(Bash)c(reads)f(and)g(executes)150 4029 y(commands)24
-b(from)f(`)p Fs(~/.bashrc)p Ft(',)h(if)g(that)g(\014le)g(exists.)40
-b(This)23 b(ma)m(y)i(b)s(e)e(inhibited)g(b)m(y)h(using)g(the)g(`)p
-Fs(--norc)p Ft(')150 4138 y(option.)52 b(The)33 b(`)p
-Fs(--rcfile)28 b Fi(file)11 b Ft(')33 b(option)h(will)g(force)h(Bash)f
-(to)h(read)e(and)h(execute)h(commands)e(from)150 4248
-y Fq(\014le)j Ft(instead)30 b(of)h(`)p Fs(~/.bashrc)p
-Ft('.)275 4386 y(So,)f(t)m(ypically)-8 b(,)33 b(y)m(our)d(`)p
-Fs(~/.bash_profile)p Ft(')d(con)m(tains)32 b(the)e(line)390
-4524 y Fs(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g(~/.bashrc;)e(fi)
-150 4662 y Ft(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h(login-sp)s
-(eci\014c)g(initializations.)150 4864 y Fj(In)m(v)m(ok)m(ed)40
-b(non-in)m(teractiv)m(ely)150 5011 y Ft(When)33 b(Bash)g(is)g(started)h
-(non-in)m(teractiv)m(ely)-8 b(,)37 b(to)d(run)e(a)h(shell)h(script,)g
-(for)f(example,)i(it)e(lo)s(oks)h(for)f(the)150 5121
-y(v)-5 b(ariable)35 b Fs(BASH_ENV)d Ft(in)i(the)h(en)m(vironmen)m(t,)h
-(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j(and)e
-(uses)g(the)150 5230 y(expanded)c(v)-5 b(alue)30 b(as)h(the)g(name)f
-(of)h(a)f(\014le)h(to)g(read)f(and)g(execute.)42 b(Bash)31
-b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150
-5340 y(command)g(w)m(ere)h(executed:)p eop end
-%%Page: 76 82
-TeXDict begin 76 81 bop 150 -116 a Ft(76)2572 b(Bash)31
-b(Reference)g(Man)m(ual)390 299 y Fs(if)47 b([)h(-n)f("$BASH_ENV")e(];)
-i(then)f(.)i("$BASH_ENV";)c(fi)150 461 y Ft(but)30 b(the)g(v)-5
-b(alue)31 b(of)g(the)f Fs(PATH)f Ft(v)-5 b(ariable)32
-b(is)e(not)h(used)e(to)i(searc)m(h)g(for)f(the)h(\014le)f(name.)275
-622 y(As)38 b(noted)h(ab)s(o)m(v)m(e,)j(if)c(a)h(non-in)m(teractiv)m(e)
-i(shell)e(is)g(in)m(v)m(ok)m(ed)h(with)e(the)g(`)p Fs(--login)p
-Ft(')g(option,)j(Bash)150 732 y(attempts)31 b(to)g(read)g(and)e
-(execute)j(commands)e(from)g(the)h(login)g(shell)g(startup)e(\014les.)
-150 958 y Fj(In)m(v)m(ok)m(ed)40 b(with)g(name)h Fh(sh)150
-1105 y Ft(If)c(Bash)g(is)g(in)m(v)m(ok)m(ed)i(with)e(the)g(name)g
-Fs(sh)p Ft(,)i(it)f(tries)f(to)h(mimic)g(the)f(startup)g(b)s(eha)m
-(vior)g(of)h(historical)150 1215 y(v)m(ersions)31 b(of)f
-Fs(sh)g Ft(as)h(closely)h(as)e(p)s(ossible,)g(while)h(conforming)f(to)h
-(the)g Fl(posix)e Ft(standard)h(as)h(w)m(ell.)275 1376
+(exist)h(but)e(cannot)150 1924 y(b)s(e)29 b(read,)i(Bash)f(rep)s(orts)f
+(an)h(error.)40 b(Tildes)30 b(are)g(expanded)f(in)h(\014lenames)g(as)g
+(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)150 2034 y(Tilde)f(Expansion)g
+(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h(page)g(22\).)275
+2169 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s(ed)e(in)h(Section)h
+(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(83.)150
+2370 y Fk(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f(login)j
+(shell,)g(or)g(with)e Fh(--login)150 2516 y Fu(When)c(Bash)f(is)h(in)m
+(v)m(ok)m(ed)h(as)f(an)g(in)m(teractiv)m(e)j(login)d(shell,)i(or)e(as)g
+(a)g(non-in)m(teractiv)m(e)i(shell)e(with)g(the)150 2626
+y Ft(--login)30 b Fu(option,)k(it)f(\014rst)e(reads)h(and)g(executes)i
+(commands)e(from)f(the)i(\014le)f Ft(/etc/profile)p Fu(,)e(if)i(that)
+150 2736 y(\014le)44 b(exists.)80 b(After)44 b(reading)g(that)g
+(\014le,)j(it)d(lo)s(oks)g(for)f Ft(~/.bash_profile)p
+Fu(,)g Ft(~/.bash_login)p Fu(,)h(and)150 2845 y Ft(~/.profile)p
+Fu(,)25 b(in)i(that)g(order,)h(and)e(reads)h(and)f(executes)j(commands)
+d(from)h(the)g(\014rst)f(one)i(that)f(exists)150 2955
+y(and)j(is)h(readable.)42 b(The)30 b Ft(--noprofile)d
+Fu(option)k(ma)m(y)g(b)s(e)f(used)g(when)g(the)h(shell)f(is)h(started)g
+(to)g(inhibit)150 3064 y(this)f(b)s(eha)m(vior.)275 3200
+y(When)38 b(a)h(login)h(shell)f(exits,)j(Bash)d(reads)f(and)h(executes)
+h(commands)e(from)g(the)h(\014le)g Ft(~/.bash_)150 3310
+y(logout)p Fu(,)29 b(if)h(it)h(exists.)150 3510 y Fk(In)m(v)m(ok)m(ed)
+40 b(as)h(an)f(in)m(teractiv)m(e)f(non-login)k(shell)150
+3657 y Fu(When)g(an)h(in)m(teractiv)m(e)i(shell)e(that)g(is)f(not)h(a)g
+(login)g(shell)g(is)f(started,)48 b(Bash)c(reads)f(and)g(executes)150
+3767 y(commands)31 b(from)g Ft(~/.bashrc)p Fu(,)f(if)h(that)h(\014le)g
+(exists.)44 b(This)31 b(ma)m(y)h(b)s(e)f(inhibited)g(b)m(y)g(using)g
+(the)h Ft(--norc)150 3876 y Fu(option.)40 b(The)27 b
+Ft(--rcfile)h Fj(file)e Fu(option)h(will)g(force)h(Bash)f(to)h(read)f
+(and)f(execute)j(commands)d(from)h Fr(\014le)150 3986
+y Fu(instead)k(of)f Ft(~/.bashrc)p Fu(.)275 4121 y(So,)g(t)m(ypically)
+-8 b(,)33 b(y)m(our)d Ft(~/.bash_profile)c Fu(con)m(tains)32
+b(the)f(line)390 4257 y Ft(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g
+(~/.bashrc;)e(fi)150 4393 y Fu(after)31 b(\(or)g(b)s(efore\))f(an)m(y)h
+(login-sp)s(eci\014c)g(initializations.)150 4593 y Fk(In)m(v)m(ok)m(ed)
+40 b(non-in)m(teractiv)m(ely)150 4740 y Fu(When)33 b(Bash)g(is)g
+(started)h(non-in)m(teractiv)m(ely)-8 b(,)37 b(to)d(run)e(a)h(shell)h
+(script,)g(for)f(example,)i(it)e(lo)s(oks)h(for)f(the)150
+4850 y(v)-5 b(ariable)35 b Ft(BASH_ENV)d Fu(in)i(the)h(en)m(vironmen)m
+(t,)h(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j
+(and)e(uses)g(the)150 4959 y(expanded)c(v)-5 b(alue)30
+b(as)h(the)g(name)f(of)h(a)f(\014le)h(to)g(read)f(and)g(execute.)42
+b(Bash)31 b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m(wing)150
+5069 y(command)g(w)m(ere)h(executed:)390 5204 y Ft(if)47
+b([)h(-n)f("$BASH_ENV")e(];)i(then)f(.)i("$BASH_ENV";)c(fi)150
+5340 y Fu(but)30 b(the)g(v)-5 b(alue)31 b(of)g(the)f
+Ft(PATH)f Fu(v)-5 b(ariable)32 b(is)e(not)h(used)e(to)i(searc)m(h)g
+(for)f(the)h(\014lename.)p eop end
+%%Page: 83 89
+TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(83)275 299 y(As)42
+b(noted)g(ab)s(o)m(v)m(e,)47 b(if)42 b(a)h(non-in)m(teractiv)m(e)i
+(shell)d(is)g(in)m(v)m(ok)m(ed)i(with)e(the)h Ft(--login)d
+Fu(option,)46 b(Bash)150 408 y(attempts)31 b(to)g(read)g(and)e(execute)
+j(commands)e(from)g(the)h(login)g(shell)g(startup)e(\014les.)150
+614 y Fk(In)m(v)m(ok)m(ed)40 b(with)g(name)h Fh(sh)150
+761 y Fu(If)c(Bash)g(is)g(in)m(v)m(ok)m(ed)i(with)e(the)g(name)g
+Ft(sh)p Fu(,)i(it)f(tries)f(to)h(mimic)g(the)f(startup)g(b)s(eha)m
+(vior)g(of)h(historical)150 870 y(v)m(ersions)31 b(of)f
+Ft(sh)g Fu(as)h(closely)h(as)e(p)s(ossible,)g(while)h(conforming)f(to)h
+(the)g Fm(posix)e Fu(standard)h(as)h(w)m(ell.)275 1010
y(When)50 b(in)m(v)m(ok)m(ed)j(as)f(an)f(in)m(teractiv)m(e)j(login)e
(shell,)57 b(or)51 b(as)g(a)h(non-in)m(teractiv)m(e)h(shell)f(with)f
-(the)150 1486 y(`)p Fs(--login)p Ft(')39 b(option,)k(it)e(\014rst)e
-(attempts)i(to)g(read)f(and)g(execute)h(commands)f(from)g(`)p
-Fs(/etc/profile)p Ft(')150 1596 y(and)d(`)p Fs(~/.profile)p
-Ft(',)g(in)g(that)h(order.)62 b(The)37 b(`)p Fs(--noprofile)p
-Ft(')e(option)j(ma)m(y)g(b)s(e)f(used)g(to)h(inhibit)f(this)150
-1705 y(b)s(eha)m(vior.)82 b(When)44 b(in)m(v)m(ok)m(ed)h(as)g(an)f(in)m
-(teractiv)m(e)j(shell)d(with)g(the)g(name)g Fs(sh)p Ft(,)j(Bash)d(lo)s
-(oks)h(for)f(the)150 1815 y(v)-5 b(ariable)37 b Fs(ENV)p
-Ft(,)g(expands)e(its)i(v)-5 b(alue)36 b(if)g(it)h(is)f(de\014ned,)h
-(and)e(uses)h(the)g(expanded)g(v)-5 b(alue)36 b(as)h(the)f(name)150
-1924 y(of)i(a)h(\014le)g(to)g(read)f(and)g(execute.)66
-b(Since)38 b(a)h(shell)f(in)m(v)m(ok)m(ed)i(as)f Fs(sh)e
-Ft(do)s(es)h(not)h(attempt)g(to)g(read)g(and)150 2034
-y(execute)i(commands)e(from)g(an)m(y)h(other)g(startup)f(\014les,)j
-(the)e(`)p Fs(--rcfile)p Ft(')d(option)j(has)g(no)f(e\013ect.)70
-b(A)150 2143 y(non-in)m(teractiv)m(e)32 b(shell)d(in)m(v)m(ok)m(ed)h
-(with)f(the)g(name)g Fs(sh)f Ft(do)s(es)g(not)i(attempt)g(to)f(read)g
-(an)m(y)g(other)g(startup)150 2253 y(\014les.)275 2415
-y(When)h(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g
-Fl(posix)e Ft(mo)s(de)h(after)h(the)g(startup)f(\014les)g(are)h(read.)
-150 2641 y Fj(In)m(v)m(ok)m(ed)40 b(in)h Fg(posix)g Fj(mo)s(de)150
-2788 y Ft(When)25 b(Bash)g(is)h(started)f(in)g Fl(posix)g
-Ft(mo)s(de,)h(as)f(with)g(the)h(`)p Fs(--posix)p Ft(')d(command)i(line)
-h(option,)h(it)f(follo)m(ws)150 2898 y(the)e Fl(posix)f
-Ft(standard)h(for)f(startup)h(\014les.)38 b(In)24 b(this)g(mo)s(de,)h
-(in)m(teractiv)m(e)i(shells)d(expand)f(the)h Fs(ENV)f
-Ft(v)-5 b(ariable)150 3007 y(and)30 b(commands)g(are)g(read)h(and)e
+(the)150 1120 y Ft(--login)31 b Fu(option,)k(it)e(\014rst)g(attempts)h
+(to)g(read)f(and)g(execute)h(commands)f(from)g Ft(/etc/profile)d
+Fu(and)150 1230 y Ft(~/.profile)p Fu(,)d(in)i(that)i(order.)39
+b(The)30 b Ft(--noprofile)c Fu(option)k(ma)m(y)g(b)s(e)f(used)g(to)h
+(inhibit)f(this)h(b)s(eha)m(vior.)150 1339 y(When)36
+b(in)m(v)m(ok)m(ed)i(as)e(an)g(in)m(teractiv)m(e)j(shell)e(with)f(the)g
+(name)h Ft(sh)p Fu(,)g(Bash)f(lo)s(oks)h(for)f(the)h(v)-5
+b(ariable)37 b Ft(ENV)p Fu(,)150 1449 y(expands)29 b(its)i(v)-5
+b(alue)30 b(if)h(it)f(is)g(de\014ned,)g(and)f(uses)h(the)g(expanded)g
+(v)-5 b(alue)30 b(as)h(the)f(name)g(of)g(a)h(\014le)f(to)h(read)150
+1558 y(and)g(execute.)46 b(Since)32 b(a)g(shell)g(in)m(v)m(ok)m(ed)h
+(as)f Ft(sh)f Fu(do)s(es)g(not)h(attempt)h(to)g(read)e(and)g(execute)i
+(commands)150 1668 y(from)39 b(an)m(y)g(other)h(startup)e(\014les,)k
+(the)d Ft(--rcfile)e Fu(option)j(has)f(no)g(e\013ect.)69
+b(A)39 b(non-in)m(teractiv)m(e)j(shell)150 1778 y(in)m(v)m(ok)m(ed)32
+b(with)e(the)g(name)h Ft(sh)f Fu(do)s(es)g(not)g(attempt)i(to)f(read)f
+(an)m(y)h(other)g(startup)e(\014les.)275 1918 y(When)h(in)m(v)m(ok)m
+(ed)h(as)g Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g Fm(posix)e
+Fu(mo)s(de)h(after)h(the)g(startup)f(\014les)g(are)h(read.)150
+2123 y Fk(In)m(v)m(ok)m(ed)40 b(in)h Fg(posix)g Fk(mo)s(de)150
+2270 y Fu(When)28 b(Bash)h(is)g(started)g(in)g Fm(posix)f
+Fu(mo)s(de,)g(as)h(with)g(the)g Ft(--posix)d Fu(command)j(line)g
+(option,)h(it)f(follo)m(ws)150 2380 y(the)24 b Fm(posix)f
+Fu(standard)h(for)f(startup)h(\014les.)38 b(In)24 b(this)g(mo)s(de,)h
+(in)m(teractiv)m(e)i(shells)d(expand)f(the)h Ft(ENV)f
+Fu(v)-5 b(ariable)150 2489 y(and)30 b(commands)g(are)g(read)h(and)e
(executed)j(from)d(the)i(\014le)f(whose)g(name)h(is)f(the)h(expanded)e
-(v)-5 b(alue.)41 b(No)150 3117 y(other)31 b(startup)f(\014les)g(are)h
-(read.)150 3343 y Fj(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h
-(daemon)150 3490 y Ft(Bash)36 b(attempts)h(to)g(determine)f(when)f(it)i
+(v)-5 b(alue.)41 b(No)150 2599 y(other)31 b(startup)f(\014les)g(are)h
+(read.)150 2804 y Fk(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h
+(daemon)150 2951 y Fu(Bash)36 b(attempts)h(to)g(determine)f(when)f(it)i
(is)f(b)s(eing)g(run)e(with)i(its)g(standard)g(input)f(connected)i(to)g
-(a)150 3600 y(net)m(w)m(ork)h(connection,)j(as)c(when)g(executed)h(b)m
-(y)f(the)h(remote)g(shell)g(daemon,)h(usually)e Fs(rshd)p
-Ft(,)h(or)g(the)150 3709 y(secure)c(shell)f(daemon)h
-Fs(sshd)p Ft(.)49 b(If)33 b(Bash)g(determines)h(it)g(is)f(b)s(eing)g
-(run)f(in)i(this)f(fashion,)h(it)g(reads)g(and)150 3819
-y(executes)42 b(commands)e(from)g(`)p Fs(~/.bashrc)p
-Ft(',)h(if)g(that)g(\014le)f(exists)i(and)e(is)g(readable.)72
-b(It)40 b(will)h(not)g(do)150 3929 y(this)35 b(if)g(in)m(v)m(ok)m(ed)i
-(as)f Fs(sh)p Ft(.)55 b(The)34 b(`)p Fs(--norc)p Ft(')g(option)i(ma)m
-(y)g(b)s(e)f(used)f(to)i(inhibit)f(this)g(b)s(eha)m(vior,)i(and)e(the)
-150 4038 y(`)p Fs(--rcfile)p Ft(')25 b(option)i(ma)m(y)g(b)s(e)f(used)g
-(to)i(force)f(another)g(\014le)g(to)g(b)s(e)f(read,)i(but)e
-Fs(rshd)f Ft(do)s(es)i(not)g(generally)150 4148 y(in)m(v)m(ok)m(e)32
-b(the)f(shell)f(with)h(those)f(options)h(or)f(allo)m(w)i(them)f(to)g(b)
-s(e)e(sp)s(eci\014ed.)150 4374 y Fj(In)m(v)m(ok)m(ed)40
-b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g Fg(uid/gid)p
-Fj(s)150 4521 y Ft(If)34 b(Bash)h(is)g(started)g(with)f(the)h
-(e\013ectiv)m(e)i(user)d(\(group\))h(id)f(not)h(equal)g(to)g(the)g
-(real)g(user)f(\(group\))h(id,)150 4631 y(and)26 b(the)i
-Fs(-p)e Ft(option)h(is)g(not)h(supplied,)e(no)h(startup)g(\014les)g
-(are)g(read,)h(shell)f(functions)g(are)g(not)g(inherited)150
-4740 y(from)41 b(the)g(en)m(vironmen)m(t,)j(the)d Fs(SHELLOPTS)p
-Ft(,)h Fs(BASHOPTS)p Ft(,)g Fs(CDPATH)p Ft(,)g(and)e
-Fs(GLOBIGNORE)e Ft(v)-5 b(ariables,)45 b(if)150 4850
-y(they)28 b(app)s(ear)f(in)h(the)g(en)m(vironmen)m(t,)i(are)e(ignored,)
-h(and)e(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)g(to)h(the)f(real)h
-(user)150 4959 y(id.)62 b(If)38 b(the)f Fs(-p)h Ft(option)g(is)f
-(supplied)g(at)h(in)m(v)m(o)s(cation,)k(the)c(startup)f(b)s(eha)m(vior)
-h(is)g(the)g(same,)i(but)d(the)150 5069 y(e\013ectiv)m(e)c(user)d(id)g
-(is)g(not)h(reset.)150 5342 y Fr(6.3)68 b(In)l(teractiv)l(e)47
-b(Shells)p eop end
-%%Page: 77 83
-TeXDict begin 77 82 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(77)150 299 y Fj(6.3.1)63
-b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)150
-446 y Ft(An)c(in)m(teractiv)m(e)k(shell)d(is)g(one)g(started)g(without)
-f(non-option)h(argumen)m(ts,)i(unless)d(`)p Fs(-s)p Ft(')h(is)f(sp)s
-(eci\014ed,)150 555 y(without)f(sp)s(ecifying)h(the)f(`)p
-Fs(-c)p Ft(')g(option,)j(and)c(whose)h(input)g(and)g(error)g(output)g
-(are)g(b)s(oth)g(connected)150 665 y(to)d(terminals)g(\(as)g
-(determined)f(b)m(y)g Fs(isatty\(3\))p Ft(\),)f(or)h(one)h(started)f
-(with)g(the)h(`)p Fs(-i)p Ft(')f(option.)275 797 y(An)g(in)m(teractiv)m
-(e)j(shell)d(generally)i(reads)e(from)g(and)g(writes)g(to)h(a)g(user's)
-f(terminal.)275 929 y(The)e(`)p Fs(-s)p Ft(')i(in)m(v)m(o)s(cation)h
-(option)f(ma)m(y)g(b)s(e)f(used)f(to)i(set)g(the)g(p)s(ositional)g
-(parameters)f(when)g(an)g(in)m(ter-)150 1038 y(activ)m(e)k(shell)d(is)h
-(started.)150 1232 y Fj(6.3.2)63 b(Is)41 b(this)g(Shell)g(In)m
-(teractiv)m(e?)150 1379 y Ft(T)-8 b(o)30 b(determine)g(within)f(a)h
-(startup)g(script)f(whether)g(or)h(not)g(Bash)g(is)g(running)e(in)m
-(teractiv)m(ely)-8 b(,)33 b(test)e(the)150 1489 y(v)-5
-b(alue)30 b(of)g(the)f(`)p Fs(-)p Ft(')h(sp)s(ecial)g(parameter.)41
-b(It)29 b(con)m(tains)i Fs(i)e Ft(when)g(the)g(shell)h(is)f(in)m
-(teractiv)m(e.)44 b(F)-8 b(or)30 b(example:)390 1621
-y Fs(case)47 b("$-")f(in)390 1730 y(*i*\))h(echo)f(This)h(shell)f(is)h
-(interactive)e(;;)390 1840 y(*\))i(echo)g(This)f(shell)h(is)g(not)g
-(interactive)e(;;)390 1949 y(esac)275 2081 y Ft(Alternativ)m(ely)-8
-b(,)28 b(startup)23 b(scripts)h(ma)m(y)g(examine)g(the)g(v)-5
-b(ariable)25 b Fs(PS1)p Ft(;)g(it)g(is)e(unset)h(in)f(non-in)m
-(teractiv)m(e)150 2191 y(shells,)31 b(and)e(set)i(in)f(in)m(teractiv)m
-(e)k(shells.)40 b(Th)m(us:)390 2323 y Fs(if)47 b([)h(-z)f("$PS1")f(];)h
-(then)772 2432 y(echo)f(This)h(shell)f(is)i(not)f(interactive)390
-2542 y(else)772 2651 y(echo)f(This)h(shell)f(is)i(interactive)390
-2761 y(fi)150 2955 y Fj(6.3.3)63 b(In)m(teractiv)m(e)38
-b(Shell)k(Beha)m(vior)150 3102 y Ft(When)30 b(the)h(shell)f(is)h
+(a)150 3060 y(net)m(w)m(ork)h(connection,)j(as)c(when)g(executed)h(b)m
+(y)f(the)h(remote)g(shell)g(daemon,)h(usually)e Ft(rshd)p
+Fu(,)h(or)g(the)150 3170 y(secure)c(shell)f(daemon)h
+Ft(sshd)p Fu(.)49 b(If)33 b(Bash)g(determines)h(it)g(is)f(b)s(eing)g
+(run)f(in)i(this)f(fashion,)h(it)g(reads)g(and)150 3280
+y(executes)29 b(commands)e(from)g Ft(~/.bashrc)p Fu(,)e(if)j(that)g
+(\014le)f(exists)h(and)f(is)g(readable.)41 b(It)27 b(will)h(not)f(do)h
+(this)f(if)150 3389 y(in)m(v)m(ok)m(ed)k(as)f Ft(sh)p
+Fu(.)40 b(The)29 b Ft(--norc)f Fu(option)i(ma)m(y)g(b)s(e)f(used)f(to)j
+(inhibit)e(this)g(b)s(eha)m(vior,)h(and)f(the)h Ft(--rcfile)150
+3499 y Fu(option)36 b(ma)m(y)g(b)s(e)e(used)h(to)h(force)g(another)f
+(\014le)h(to)g(b)s(e)e(read,)j(but)d(neither)i Ft(rshd)e
+Fu(nor)h Ft(sshd)f Fu(generally)150 3608 y(in)m(v)m(ok)m(e)e(the)f
+(shell)f(with)h(those)f(options)h(or)f(allo)m(w)i(them)f(to)g(b)s(e)e
+(sp)s(eci\014ed.)150 3814 y Fk(In)m(v)m(ok)m(ed)40 b(with)g(unequal)h
+(e\013ectiv)m(e)e(and)i(real)g Fg(uid/gid)p Fk(s)150
+3960 y Fu(If)34 b(Bash)h(is)g(started)g(with)f(the)h(e\013ectiv)m(e)i
+(user)d(\(group\))h(id)f(not)h(equal)g(to)g(the)g(real)g(user)f
+(\(group\))h(id,)150 4070 y(and)26 b(the)i Ft(-p)e Fu(option)h(is)g
+(not)h(supplied,)e(no)h(startup)g(\014les)g(are)g(read,)h(shell)f
+(functions)g(are)g(not)g(inherited)150 4180 y(from)41
+b(the)g(en)m(vironmen)m(t,)j(the)d Ft(SHELLOPTS)p Fu(,)h
+Ft(BASHOPTS)p Fu(,)g Ft(CDPATH)p Fu(,)g(and)e Ft(GLOBIGNORE)e
+Fu(v)-5 b(ariables,)45 b(if)150 4289 y(they)28 b(app)s(ear)f(in)h(the)g
+(en)m(vironmen)m(t,)i(are)e(ignored,)h(and)e(the)h(e\013ectiv)m(e)j
+(user)c(id)h(is)g(set)g(to)h(the)f(real)h(user)150 4399
+y(id.)62 b(If)38 b(the)f Ft(-p)h Fu(option)g(is)f(supplied)g(at)h(in)m
+(v)m(o)s(cation,)k(the)c(startup)f(b)s(eha)m(vior)h(is)g(the)g(same,)i
+(but)d(the)150 4508 y(e\013ectiv)m(e)c(user)d(id)g(is)g(not)h(reset.)
+150 4750 y Fs(6.3)68 b(In)l(teractiv)l(e)47 b(Shells)150
+4974 y Fk(6.3.1)63 b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)150
+5121 y Fu(An)g(in)m(teractiv)m(e)k(shell)d(is)g(one)g(started)g
+(without)g(non-option)g(argumen)m(ts,)j(unless)c Ft(-s)h
+Fu(is)f(sp)s(eci\014ed,)150 5230 y(without)30 b(sp)s(ecifying)g(the)g
+Ft(-c)f Fu(option,)h(and)g(whose)f(input)g(and)g(error)h(output)f(are)h
+(b)s(oth)f(connected)i(to)150 5340 y(terminals)g(\(as)g(determined)f(b)
+m(y)g Ft(isatty\(3\))p Fu(\),)e(or)j(one)f(started)h(with)f(the)h
+Ft(-i)f Fu(option.)p eop end
+%%Page: 84 90
+TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(84)275 299 y(An)30
+b(in)m(teractiv)m(e)j(shell)d(generally)i(reads)e(from)g(and)g(writes)g
+(to)h(a)g(user's)f(terminal.)275 430 y(The)i Ft(-s)g
+Fu(in)m(v)m(o)s(cation)j(option)f(ma)m(y)f(b)s(e)g(used)f(to)i(set)f
+(the)g(p)s(ositional)h(parameters)f(when)f(an)h(in)m(ter-)150
+540 y(activ)m(e)g(shell)d(is)h(started.)150 733 y Fk(6.3.2)63
+b(Is)41 b(this)g(Shell)g(In)m(teractiv)m(e?)150 880 y
+Fu(T)-8 b(o)30 b(determine)g(within)f(a)h(startup)g(script)f(whether)g
+(or)h(not)g(Bash)g(is)g(running)e(in)m(teractiv)m(ely)-8
+b(,)33 b(test)e(the)150 990 y(v)-5 b(alue)30 b(of)g(the)f(`)p
+Ft(-)p Fu(')h(sp)s(ecial)g(parameter.)41 b(It)29 b(con)m(tains)i
+Ft(i)e Fu(when)g(the)g(shell)h(is)f(in)m(teractiv)m(e.)44
+b(F)-8 b(or)30 b(example:)390 1121 y Ft(case)47 b("$-")f(in)390
+1231 y(*i*\))h(echo)f(This)h(shell)f(is)h(interactive)e(;;)390
+1340 y(*\))i(echo)g(This)f(shell)h(is)g(not)g(interactive)e(;;)390
+1450 y(esac)275 1581 y Fu(Alternativ)m(ely)-8 b(,)28
+b(startup)23 b(scripts)h(ma)m(y)g(examine)g(the)g(v)-5
+b(ariable)25 b Ft(PS1)p Fu(;)g(it)g(is)e(unset)h(in)f(non-in)m
+(teractiv)m(e)150 1691 y(shells,)31 b(and)e(set)i(in)f(in)m(teractiv)m
+(e)k(shells.)40 b(Th)m(us:)390 1822 y Ft(if)47 b([)h(-z)f("$PS1")f(];)h
+(then)772 1932 y(echo)f(This)h(shell)f(is)i(not)f(interactive)390
+2042 y(else)772 2151 y(echo)f(This)h(shell)f(is)i(interactive)390
+2261 y(fi)150 2454 y Fk(6.3.3)63 b(In)m(teractiv)m(e)38
+b(Shell)k(Beha)m(vior)150 2601 y Fu(When)30 b(the)h(shell)f(is)h
(running)d(in)m(teractiv)m(ely)-8 b(,)34 b(it)d(c)m(hanges)h(its)f(b)s
-(eha)m(vior)f(in)g(sev)m(eral)i(w)m(a)m(ys.)199 3234
+(eha)m(vior)f(in)g(sev)m(eral)i(w)m(a)m(ys.)199 2732
y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f
(describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330
-3343 y(page)31 b(75.)199 3475 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
-(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(91\))g(is)f(enabled)g(b)m
-(y)g(default.)55 b(When)34 b(job)330 3585 y(con)m(trol)h(is)f(in)f
+2842 y(page)31 b(82.)199 2973 y(2.)61 b(Job)35 b(Con)m(trol)g(\(see)h
+(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(97\))g(is)f(enabled)g(b)m
+(y)g(default.)55 b(When)34 b(job)330 3083 y(con)m(trol)h(is)f(in)f
(e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e
-(con)m(trol)i(signals)g Fs(SIGTTIN)p Ft(,)330 3694 y
-Fs(SIGTTOU)p Ft(,)29 b(and)g Fs(SIGTSTP)p Ft(.)199 3826
-y(3.)61 b(Bash)39 b(expands)f(and)g(displa)m(ys)h Fs(PS1)f
-Ft(b)s(efore)h(reading)g(the)g(\014rst)f(line)h(of)g(a)g(command,)i
-(and)d(ex-)330 3936 y(pands)30 b(and)g(displa)m(ys)h
-Fs(PS2)e Ft(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f
-(lines)h(of)g(a)g(m)m(ulti-line)330 4045 y(command.)199
-4177 y(4.)61 b(Bash)26 b(executes)i(the)e(v)-5 b(alue)27
-b(of)f(the)h Fs(PROMPT_COMMAND)22 b Ft(v)-5 b(ariable)27
-b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 4287
-y(the)31 b(primary)e(prompt,)h Fs($PS1)f Ft(\(see)i(Section)g(5.2)h
-([Bash)f(V)-8 b(ariables],)32 b(page)f(63\).)199 4419
-y(5.)61 b(Readline)30 b(\(see)h(Chapter)e(8)h([Command)e(Line)i
-(Editing],)g(page)g(95\))h(is)f(used)f(to)h(read)f(commands)330
-4528 y(from)h(the)g(user's)g(terminal.)199 4660 y(6.)61
+(con)m(trol)i(signals)g Ft(SIGTTIN)p Fu(,)330 3192 y
+Ft(SIGTTOU)p Fu(,)29 b(and)g Ft(SIGTSTP)p Fu(.)199 3324
+y(3.)61 b(Bash)39 b(expands)f(and)g(displa)m(ys)h Ft(PS1)f
+Fu(b)s(efore)h(reading)g(the)g(\014rst)f(line)h(of)g(a)g(command,)i
+(and)d(ex-)330 3434 y(pands)30 b(and)g(displa)m(ys)h
+Ft(PS2)e Fu(b)s(efore)i(reading)g(the)g(second)f(and)h(subsequen)m(t)f
+(lines)h(of)g(a)g(m)m(ulti-line)330 3543 y(command.)199
+3675 y(4.)61 b(Bash)26 b(executes)i(the)e(v)-5 b(alue)27
+b(of)f(the)h Ft(PROMPT_COMMAND)22 b Fu(v)-5 b(ariable)27
+b(as)g(a)f(command)g(b)s(efore)g(prin)m(ting)330 3784
+y(the)31 b(primary)e(prompt,)h Ft($PS1)f Fu(\(see)i(Section)g(5.2)h
+([Bash)f(V)-8 b(ariables],)32 b(page)f(69\).)199 3916
+y(5.)61 b(Readline)27 b(\(see)g(Chapter)e(8)h([Command)g(Line)g
+(Editing],)h(page)g(101\))g(is)f(used)g(to)g(read)g(commands)330
+4025 y(from)k(the)g(user's)g(terminal.)199 4157 y(6.)61
b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g
-Fs(ignoreeof)e Ft(option)j(to)g Fs(set)29 b(-o)36 b Ft(instead)h(of)f
-(exiting)i(imme-)330 4770 y(diately)f(when)e(it)i(receiv)m(es)h(an)e
-Fs(EOF)f Ft(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
-g(\(see)330 4879 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g
-(54\).)199 5011 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
-g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(125\))h(and)d
-(history)330 5121 y(expansion)23 b(\(see)i(Section)f(9.3)h([History)f
-(In)m(teraction],)j(page)d(127\))h(are)f(enabled)g(b)m(y)f(default.)39
-b(Bash)330 5230 y(will)23 b(sa)m(v)m(e)i(the)e(command)f(history)h(to)h
-(the)f(\014le)g(named)f(b)m(y)h Fs($HISTFILE)d Ft(when)i(an)h(in)m
-(teractiv)m(e)j(shell)330 5340 y(exits.)p eop end
-%%Page: 78 84
-TeXDict begin 78 83 bop 150 -116 a Ft(78)2572 b(Bash)31
-b(Reference)g(Man)m(ual)199 299 y(8.)61 b(Alias)31 b(expansion)g(\(see)
-g(Section)g(6.6)g([Aliases],)i(page)e(81\))h(is)e(p)s(erformed)f(b)m(y)
-h(default.)199 431 y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h
-(traps,)g(Bash)g(ignores)f Fs(SIGTERM)f Ft(\(see)i(Section)g(3.7.6)h
-([Signals],)g(page)f(34\).)154 563 y(10.)61 b(In)26 b(the)h(absence)h
-(of)f(an)m(y)g(traps,)g Fs(SIGINT)e Ft(is)i(caugh)m(t)h(and)f(handled)e
-(\(\(see)k(Section)e(3.7.6)i([Signals],)330 672 y(page)i(34\).)42
-b Fs(SIGINT)29 b Ft(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154
-804 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i
-Fs(SIGHUP)d Ft(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f
-Fs(huponexit)e Ft(shell)330 914 y(option)31 b(has)f(b)s(een)g(enabled)g
-(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(34\).)154
-1046 y(12.)61 b(The)26 b(`)p Fs(-n)p Ft(')f(in)m(v)m(o)s(cation)k
-(option)d(is)g(ignored,)h(and)f(`)p Fs(set)k(-n)p Ft(')25
-b(has)h(no)g(e\013ect)i(\(see)e(Section)h(4.3.1)h([The)330
-1155 y(Set)j(Builtin],)g(page)g(54\).)154 1287 y(13.)61
-b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e(mail)g(p)s(erio)s(dically)-8
-b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5 b(alues)32 b(of)g(the)h
-Fs(MAIL)p Ft(,)e Fs(MAILPATH)p Ft(,)330 1397 y(and)f
-Fs(MAILCHECK)e Ft(shell)i(v)-5 b(ariables)31 b(\(see)h(Section)f(5.2)g
-([Bash)g(V)-8 b(ariables],)32 b(page)f(63\).)154 1528
-y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i(references)f(to)h(un)m(b)
-s(ound)c(shell)j(v)-5 b(ariables)34 b(after)g(`)p Fs(set)29
-b(-u)p Ft(')k(has)g(b)s(een)330 1638 y(enabled)d(will)h(not)g(cause)g
-(the)f(shell)h(to)g(exit)g(\(see)g(Section)h(4.3.1)g([The)e(Set)h
-(Builtin],)g(page)g(54\).)154 1770 y(15.)61 b(The)48
-b(shell)h(will)f(not)h(exit)g(on)g(expansion)f(errors)g(caused)g(b)m(y)
-h Fq(v)-5 b(ar)54 b Ft(b)s(eing)48 b(unset)g(or)h(n)m(ull)f(in)330
-1879 y Fs(${)p Fi(var)11 b Fs(:?)p Fi(word)g Fs(})26
-b Ft(expansions)k(\(see)h(Section)h(3.5.3)g([Shell)e(P)m(arameter)i
-(Expansion],)e(page)h(21\).)154 2011 y(16.)61 b(Redirection)31
-b(errors)f(encoun)m(tered)h(b)m(y)f(shell)h(builtins)f(will)g(not)h
-(cause)g(the)f(shell)h(to)g(exit.)154 2143 y(17.)61 b(When)26
-b(running)f(in)i Fl(posix)e Ft(mo)s(de,)j(a)f(sp)s(ecial)g(builtin)f
-(returning)g(an)g(error)h(status)g(will)g(not)f(cause)330
-2253 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h([Bash)f
-(POSIX)e(Mo)s(de],)i(page)g(86\).)154 2385 y(18.)61 b(A)34
-b(failed)g Fs(exec)f Ft(will)h(not)g(cause)g(the)g(shell)g(to)g(exit)h
-(\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330
-2494 y(page)e(37\).)154 2626 y(19.)61 b(P)m(arser)31
+Ft(ignoreeof)e Fu(option)j(to)g Ft(set)29 b(-o)36 b Fu(instead)h(of)f
+(exiting)i(imme-)330 4266 y(diately)f(when)e(it)i(receiv)m(es)h(an)e
+Ft(EOF)f Fu(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
+g(\(see)330 4376 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g
+(58\).)199 4507 y(7.)61 b(Command)43 b(history)h(\(see)h(Section)g(9.1)
+g([Bash)f(History)h(F)-8 b(acilities],)51 b(page)45 b(133\))h(and)d
+(history)330 4617 y(expansion)h(\(see)i(Section)f(9.3)h([History)g(In)m
+(teraction],)k(page)45 b(135\))h(are)f(enabled)g(b)m(y)f(default.)330
+4726 y(Bash)28 b(will)g(sa)m(v)m(e)h(the)f(command)f(history)h(to)g
+(the)g(\014le)g(named)f(b)m(y)h Ft($HISTFILE)d Fu(when)h(a)i(shell)g
+(with)330 4836 y(history)i(enabled)h(exits.)199 4967
+y(8.)61 b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i
+(page)e(88\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199
+5099 y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g
+(ignores)f Ft(SIGTERM)f Fu(\(see)i(Section)g(3.7.6)h([Signals],)g(page)
+f(38\).)154 5230 y(10.)61 b(In)26 b(the)h(absence)h(of)f(an)m(y)g
+(traps,)g Ft(SIGINT)e Fu(is)i(caugh)m(t)h(and)f(handled)e(\(\(see)k
+(Section)e(3.7.6)i([Signals],)330 5340 y(page)i(38\).)42
+b Ft(SIGINT)29 b Fu(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)p
+eop end
+%%Page: 85 91
+TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(85)154 299 y(11.)61
+b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i
+Ft(SIGHUP)d Fu(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f
+Ft(huponexit)e Fu(shell)330 408 y(option)31 b(has)f(b)s(een)g(enabled)g
+(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(38\).)154
+542 y(12.)61 b(The)29 b Ft(-n)g Fu(in)m(v)m(o)s(cation)j(option)e(is)g
+(ignored,)g(and)f(`)p Ft(set)h(-n)p Fu(')f(has)h(no)f(e\013ect)j(\(see)
+e(Section)h(4.3.1)g([The)330 652 y(Set)g(Builtin],)g(page)g(58\).)154
+785 y(13.)61 b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e(mail)g(p)s(erio)s
+(dically)-8 b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5 b(alues)32
+b(of)g(the)h Ft(MAIL)p Fu(,)e Ft(MAILPATH)p Fu(,)330
+895 y(and)f Ft(MAILCHECK)e Fu(shell)i(v)-5 b(ariables)31
+b(\(see)h(Section)f(5.2)g([Bash)g(V)-8 b(ariables],)32
+b(page)f(69\).)154 1028 y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i
+(references)f(to)h(un)m(b)s(ound)c(shell)j(v)-5 b(ariables)34
+b(after)g(`)p Ft(set)29 b(-u)p Fu(')k(has)g(b)s(een)330
+1138 y(enabled)d(will)h(not)g(cause)g(the)f(shell)h(to)g(exit)g(\(see)g
+(Section)h(4.3.1)g([The)e(Set)h(Builtin],)g(page)g(58\).)154
+1271 y(15.)61 b(The)48 b(shell)h(will)f(not)h(exit)g(on)g(expansion)f
+(errors)g(caused)g(b)m(y)h Fr(v)-5 b(ar)54 b Fu(b)s(eing)48
+b(unset)g(or)h(n)m(ull)f(in)330 1381 y Ft(${)p Fj(var)p
+Ft(:?)p Fj(word)p Ft(})27 b Fu(expansions)j(\(see)h(Section)h(3.5.3)g
+([Shell)e(P)m(arameter)i(Expansion],)e(page)h(23\).)154
+1514 y(16.)61 b(Redirection)31 b(errors)f(encoun)m(tered)h(b)m(y)f
+(shell)h(builtins)f(will)g(not)h(cause)g(the)f(shell)h(to)g(exit.)154
+1648 y(17.)61 b(When)26 b(running)f(in)i Fm(posix)e Fu(mo)s(de,)j(a)f
+(sp)s(ecial)g(builtin)f(returning)g(an)g(error)h(status)g(will)g(not)f
+(cause)330 1757 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h
+([Bash)f(POSIX)e(Mo)s(de],)i(page)g(94\).)154 1891 y(18.)61
+b(A)34 b(failed)g Ft(exec)f Fu(will)h(not)g(cause)g(the)g(shell)g(to)g
+(exit)h(\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330
+2000 y(page)e(41\).)154 2134 y(19.)61 b(P)m(arser)31
b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.)
-154 2758 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g
-(directory)g(argumen)m(ts)f(to)i(the)e Fs(cd)g Ft(builtin)g(is)h
-(enabled)f(b)m(y)h(default)330 2868 y(\(see)35 b(the)g(description)f
-(of)h(the)f Fs(cdspell)f Ft(option)h(to)i(the)e Fs(shopt)f
-Ft(builtin)h(in)g(Section)h(4.3.2)h([The)330 2977 y(Shopt)30
-b(Builtin],)h(page)g(57\).)154 3109 y(21.)61 b(The)42
+154 2267 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g
+(directory)g(argumen)m(ts)f(to)i(the)e Ft(cd)g Fu(builtin)g(is)h
+(enabled)f(b)m(y)h(default)330 2377 y(\(see)35 b(the)g(description)f
+(of)h(the)f Ft(cdspell)f Fu(option)h(to)i(the)e Ft(shopt)f
+Fu(builtin)h(in)g(Section)h(4.3.2)h([The)330 2486 y(Shopt)30
+b(Builtin],)h(page)g(62\).)154 2620 y(21.)61 b(The)42
b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5 b(alue)43 b(of)f(the)h
-Fs(TMOUT)e Ft(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h
-(not)330 3219 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s
-(er)g(of)i(seconds)f(after)g(prin)m(ting)g Fs($PS1)f
-Ft(\(see)i(Section)g(5.2)h([Bash)330 3328 y(V)-8 b(ariables],)32
-b(page)f(63\).)150 3555 y Fr(6.4)68 b(Bash)45 b(Conditional)h
-(Expressions)150 3715 y Ft(Conditional)26 b(expressions)g(are)g(used)f
-(b)m(y)g(the)h Fs([[)f Ft(comp)s(ound)g(command)g(and)g(the)h
-Fs(test)f Ft(and)g Fs([)g Ft(builtin)150 3824 y(commands.)275
-3956 y(Expressions)32 b(ma)m(y)h(b)s(e)g(unary)f(or)h(binary)-8
+Ft(TMOUT)e Fu(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h
+(not)330 2729 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s
+(er)g(of)i(seconds)f(after)g(prin)m(ting)g Ft($PS1)f
+Fu(\(see)i(Section)g(5.2)h([Bash)330 2839 y(V)-8 b(ariables],)32
+b(page)f(69\).)150 3069 y Fs(6.4)68 b(Bash)45 b(Conditional)h
+(Expressions)150 3229 y Fu(Conditional)26 b(expressions)g(are)g(used)f
+(b)m(y)g(the)h Ft([[)f Fu(comp)s(ound)g(command)g(and)g(the)h
+Ft(test)f Fu(and)g Ft([)g Fu(builtin)150 3338 y(commands.)275
+3472 y(Expressions)32 b(ma)m(y)h(b)s(e)g(unary)f(or)h(binary)-8
b(.)48 b(Unary)33 b(expressions)f(are)i(often)f(used)f(to)i(examine)g
-(the)150 4066 y(status)26 b(of)g(a)h(\014le.)39 b(There)26
-b(are)g(string)g(op)s(erators)g(and)g(n)m(umeric)f(comparison)i(op)s
-(erators)f(as)g(w)m(ell.)40 b(If)26 b(the)150 4175 y
-Fq(\014le)38 b Ft(argumen)m(t)c(to)f(one)h(of)f(the)g(primaries)g(is)g
-(of)g(the)g(form)g(`)p Fs(/dev/fd/)p Fi(N)11 b Ft(',)31
-b(then)i(\014le)g(descriptor)g Fq(N)43 b Ft(is)150 4285
-y(c)m(hec)m(k)m(ed.)e(If)26 b(the)g Fq(\014le)31 b Ft(argumen)m(t)26
-b(to)h(one)f(of)g(the)h(primaries)e(is)h(one)g(of)g(`)p
-Fs(/dev/stdin)p Ft(',)f(`)p Fs(/dev/stdout)p Ft(',)150
-4395 y(or)30 b(`)p Fs(/dev/stderr)p Ft(',)e(\014le)j(descriptor)f(0,)h
-(1,)g(or)g(2,)g(resp)s(ectiv)m(ely)-8 b(,)32 b(is)e(c)m(hec)m(k)m(ed.)
-275 4526 y(When)j(used)g(with)h(`)p Fs([[)p Ft(',)h(the)f(`)p
-Fs(<)p Ft(')g(and)f(`)p Fs(>)p Ft(')h(op)s(erators)g(sort)g
-(lexicographically)j(using)c(the)h(curren)m(t)150 4636
-y(lo)s(cale.)42 b(The)30 b Fs(test)f Ft(command)i(uses)f(ASCI)s(I)e
-(ordering.)275 4768 y(Unless)44 b(otherwise)h(sp)s(eci\014ed,)j
+(the)150 3581 y(status)i(of)g(a)g(\014le.)57 b(There)35
+b(are)h(string)g(op)s(erators)g(and)f(n)m(umeric)h(comparison)g(op)s
+(erators)g(as)g(w)m(ell.)57 b(If)150 3691 y(the)27 b
+Fr(\014le)33 b Fu(argumen)m(t)28 b(to)g(one)f(of)g(the)h(primaries)f
+(is)g(of)g(the)h(form)f Ft(/dev/fd/)p Fj(N)p Fu(,)e(then)i(\014le)h
+(descriptor)f Fr(N)37 b Fu(is)150 3800 y(c)m(hec)m(k)m(ed.)51
+b(If)32 b(the)h Fr(\014le)39 b Fu(argumen)m(t)33 b(to)h(one)f(of)g(the)
+g(primaries)g(is)g(one)g(of)h Ft(/dev/stdin)p Fu(,)d
+Ft(/dev/stdout)p Fu(,)150 3910 y(or)f Ft(/dev/stderr)p
+Fu(,)e(\014le)i(descriptor)h(0,)g(1,)g(or)f(2,)h(resp)s(ectiv)m(ely)-8
+b(,)32 b(is)f(c)m(hec)m(k)m(ed.)275 4043 y(When)37 b(used)g(with)g
+Ft([[)p Fu(,)i(the)f(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p
+Fu(')h(op)s(erators)g(sort)g(lexicographically)i(using)d(the)h(curren)m
+(t)150 4153 y(lo)s(cale.)k(The)30 b Ft(test)f Fu(command)i(uses)f(ASCI)
+s(I)e(ordering.)275 4287 y(Unless)44 b(otherwise)h(sp)s(eci\014ed,)j
(primaries)c(that)h(op)s(erate)g(on)g(\014les)f(follo)m(w)i(sym)m(b)s
-(olic)f(links)g(and)150 4878 y(op)s(erate)31 b(on)f(the)h(target)h(of)e
+(olic)f(links)g(and)150 4396 y(op)s(erate)31 b(on)f(the)h(target)h(of)e
(the)h(link,)f(rather)h(than)f(the)g(link)h(itself.)150
-5032 y Fs(-a)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists.)150 5186 y Fs(-b)30 b Fi(file)162
-b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
+4553 y Ft(-a)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists.)150 4711 y Ft(-b)30 b Fj(file)162
+b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g(\014le.)150
-5340 y Fs(-c)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s(ecial)
-f(\014le.)p eop end
-%%Page: 79 85
-TeXDict begin 79 84 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(79)150 299 y Fs(-d)30
-b Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36
-b Ft(exists)31 b(and)f(is)g(a)h(directory)-8 b(.)150
-463 y Fs(-e)30 b Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists.)150 628 y Fs(-f)30 b Fi(file)162
-b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
-b(and)f(is)g(a)h(regular)f(\014le.)150 792 y Fs(-g)g
-Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
-Ft(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f(set.)150
-956 y Fs(-h)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36
-b Ft(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150
-1121 y Fs(-k)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists)31 b(and)f(its)g Fs(")p Ft(stic)m(ky)p
-Fs(")h Ft(bit)g(is)f(set.)150 1285 y Fs(-p)g Fi(file)162
-b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
-b(and)f(is)g(a)h(named)f(pip)s(e)f(\(FIF)m(O\).)150 1450
-y Fs(-r)h Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36
-b Ft(exists)31 b(and)f(is)g(readable.)150 1614 y Fs(-s)g
-Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
-Ft(exists)31 b(and)f(has)g(a)g(size)i(greater)f(than)f(zero.)150
-1778 y Fs(-t)g Fi(fd)258 b Ft(T)-8 b(rue)30 b(if)g(\014le)h(descriptor)
-f Fq(fd)j Ft(is)e(op)s(en)e(and)h(refers)g(to)h(a)g(terminal.)150
-1943 y Fs(-u)f Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists)31 b(and)f(its)g(set-user-id)h(bit)f(is)h
-(set.)150 2107 y Fs(-w)f Fi(file)162 b Ft(T)-8 b(rue)30
-b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(writable.)150
-2271 y Fs(-x)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(executable.)150
-2436 y Fs(-G)g Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g
-Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f
-(e\013ectiv)m(e)j(group)d(id.)150 2600 y Fs(-L)g Fi(file)162
-b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31
-b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 2765 y Fs(-N)f
-Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
-Ft(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h(since)g(it)h(w)m
-(as)g(last)g(read.)150 2929 y Fs(-O)f Fi(file)162 b Ft(T)-8
-b(rue)30 b(if)g Fq(\014le)36 b Ft(exists)31 b(and)f(is)g(o)m(wned)g(b)m
-(y)h(the)f(e\013ectiv)m(e)j(user)d(id.)150 3093 y Fs(-S)g
-Fi(file)162 b Ft(T)-8 b(rue)30 b(if)g Fq(\014le)36 b
-Ft(exists)31 b(and)f(is)g(a)h(so)s(c)m(k)m(et.)150 3258
-y Fi(file1)39 b Fs(-ef)30 b Fi(file2)630 3367 y Ft(T)-8
-b(rue)30 b(if)g Fq(\014le1)38 b Ft(and)30 b Fq(\014le2)38
-b Ft(refer)30 b(to)i(the)e(same)h(device)g(and)f(ino)s(de)g(n)m(um)m(b)
-s(ers.)150 3532 y Fi(file1)39 b Fs(-nt)30 b Fi(file2)630
-3641 y Ft(T)-8 b(rue)23 b(if)g Fq(\014le1)31 b Ft(is)24
-b(new)m(er)f(\(according)i(to)f(mo)s(di\014cation)g(date\))g(than)g
-Fq(\014le2)7 b Ft(,)25 b(or)f(if)f Fq(\014le1)31 b Ft(exists)630
-3751 y(and)f Fq(\014le2)38 b Ft(do)s(es)30 b(not.)150
-3915 y Fi(file1)39 b Fs(-ot)30 b Fi(file2)630 4025 y
-Ft(T)-8 b(rue)30 b(if)g Fq(\014le1)38 b Ft(is)31 b(older)f(than)g
-Fq(\014le2)7 b Ft(,)32 b(or)e(if)h Fq(\014le2)38 b Ft(exists)31
-b(and)e Fq(\014le1)39 b Ft(do)s(es)30 b(not.)150 4189
-y Fs(-o)g Fi(optname)630 4299 y Ft(T)-8 b(rue)41 b(if)g(the)g(shell)h
-(option)f Fq(optname)47 b Ft(is)41 b(enabled.)73 b(The)41
-b(list)h(of)f(options)h(app)s(ears)e(in)630 4408 y(the)30
-b(description)f(of)h(the)g(`)p Fs(-o)p Ft(')f(option)h(to)h(the)e
-Fs(set)g Ft(builtin)g(\(see)i(Section)f(4.3.1)h([The)f(Set)630
-4518 y(Builtin],)h(page)g(54\).)150 4682 y Fs(-v)f Fi(varname)630
-4792 y Ft(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5 b(ariable)32
-b Fq(v)-5 b(arname)35 b Ft(is)30 b(set)h(\(has)g(b)s(een)e(assigned)i
-(a)g(v)-5 b(alue\).)150 4956 y Fs(-z)30 b Fi(string)630
-5066 y Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fq(string)38
-b Ft(is)31 b(zero.)150 5230 y Fs(-n)f Fi(string)150 5340
-y(string)192 b Ft(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f
-Fq(string)38 b Ft(is)31 b(non-zero.)p eop end
-%%Page: 80 86
-TeXDict begin 80 85 bop 150 -116 a Ft(80)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fi(string1)39 b Fs(==)30
-b Fi(string2)150 408 y(string1)39 b Fs(=)30 b Fi(string2)630
-518 y Ft(T)-8 b(rue)35 b(if)h(the)g(strings)g(are)g(equal.)58
-b(`)p Fs(=)p Ft(')36 b(should)f(b)s(e)g(used)g(with)h(the)g
-Fs(test)f Ft(command)g(for)630 628 y Fl(posix)30 b Ft(conformance.)150
-790 y Fi(string1)39 b Fs(!=)30 b Fi(string2)630 899 y
-Ft(T)-8 b(rue)30 b(if)g(the)h(strings)f(are)h(not)f(equal.)150
-1061 y Fi(string1)39 b Fs(<)30 b Fi(string2)630 1171
-y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 b Ft(sorts)31
-b(b)s(efore)f Fq(string2)38 b Ft(lexicographically)-8
-b(.)150 1333 y Fi(string1)39 b Fs(>)30 b Fi(string2)630
-1442 y Ft(T)-8 b(rue)30 b(if)g Fq(string1)38 b Ft(sorts)31
-b(after)g Fq(string2)38 b Ft(lexicographically)-8 b(.)150
-1604 y Fi(arg1)40 b Fs(OP)29 b Fi(arg2)630 1714 y Fs(OP)k
-Ft(is)h(one)g(of)h(`)p Fs(-eq)p Ft(',)f(`)p Fs(-ne)p
-Ft(',)h(`)p Fs(-lt)p Ft(',)g(`)p Fs(-le)p Ft(',)f(`)p
-Fs(-gt)p Ft(',)h(or)f(`)p Fs(-ge)p Ft('.)51 b(These)34
-b(arithmetic)h(binary)630 1823 y(op)s(erators)h(return)e(true)i(if)f
-Fq(arg1)44 b Ft(is)36 b(equal)g(to,)i(not)e(equal)g(to,)i(less)e(than,)
-h(less)f(than)f(or)630 1933 y(equal)28 b(to,)h(greater)g(than,)f(or)f
-(greater)i(than)e(or)h(equal)g(to)g Fq(arg2)7 b Ft(,)30
-b(resp)s(ectiv)m(ely)-8 b(.)41 b Fq(Arg1)36 b Ft(and)630
-2043 y Fq(arg2)j Ft(ma)m(y)30 b(b)s(e)g(p)s(ositiv)m(e)i(or)e(negativ)m
-(e)j(in)m(tegers.)150 2279 y Fr(6.5)68 b(Shell)45 b(Arithmetic)150
-2438 y Ft(The)35 b(shell)g(allo)m(ws)i(arithmetic)f(expressions)f(to)h
+4868 y Ft(-c)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s(ecial)
+f(\014le.)150 5025 y Ft(-d)f Fj(file)162 b Fu(T)-8 b(rue)30
+b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(directory)-8
+b(.)150 5183 y Ft(-e)30 b Fj(file)162 b Fu(T)-8 b(rue)30
+b(if)g Fr(\014le)36 b Fu(exists.)150 5340 y Ft(-f)30
+b Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36
+b Fu(exists)31 b(and)f(is)g(a)h(regular)f(\014le.)p eop
+end
+%%Page: 86 92
+TeXDict begin 86 91 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(86)150 299 y Ft(-g)30
+b Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36
+b Fu(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f(set.)150
+446 y Ft(-h)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36
+b Fu(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150
+593 y Ft(-k)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36
+b Fu(exists)31 b(and)f(its)g Ft(")p Fu(stic)m(ky)p Ft(")h
+Fu(bit)g(is)f(set.)150 740 y Ft(-p)g Fj(file)162 b Fu(T)-8
+b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(named)f
+(pip)s(e)f(\(FIF)m(O\).)150 886 y Ft(-r)h Fj(file)162
+b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
+b(and)f(is)g(readable.)150 1033 y Ft(-s)g Fj(file)162
+b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
+b(and)f(has)g(a)g(size)i(greater)f(than)f(zero.)150 1180
+y Ft(-t)g Fj(fd)258 b Fu(T)-8 b(rue)30 b(if)g(\014le)h(descriptor)f
+Fr(fd)j Fu(is)e(op)s(en)e(and)h(refers)g(to)h(a)g(terminal.)150
+1327 y Ft(-u)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists)31 b(and)f(its)g(set-user-id)h(bit)f(is)h
+(set.)150 1474 y Ft(-w)f Fj(file)162 b Fu(T)-8 b(rue)30
+b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(writable.)150
+1621 y Ft(-x)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(executable.)150
+1768 y Ft(-G)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f
+(e\013ectiv)m(e)j(group)d(id.)150 1915 y Ft(-L)g Fj(file)162
+b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
+b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150 2062 y Ft(-N)f
+Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b
+Fu(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h(since)g(it)h(w)m
+(as)g(last)g(read.)150 2209 y Ft(-O)f Fj(file)162 b Fu(T)-8
+b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(o)m(wned)g(b)m
+(y)h(the)f(e\013ectiv)m(e)j(user)d(id.)150 2355 y Ft(-S)g
+Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b
+Fu(exists)31 b(and)f(is)g(a)h(so)s(c)m(k)m(et.)150 2502
+y Fj(file1)e Ft(-ef)g Fj(file2)630 2612 y Fu(T)-8 b(rue)30
+b(if)g Fr(\014le1)38 b Fu(and)30 b Fr(\014le2)38 b Fu(refer)30
+b(to)i(the)e(same)h(device)g(and)f(ino)s(de)g(n)m(um)m(b)s(ers.)150
+2759 y Fj(file1)f Ft(-nt)g Fj(file2)630 2868 y Fu(T)-8
+b(rue)23 b(if)h Fr(\014le1)32 b Fu(is)24 b(new)m(er)g(\(according)h(to)
+g(mo)s(di\014cation)f(date\))h(than)f Fr(\014le2)p Fu(,)i(or)e(if)g
+Fr(\014le1)31 b Fu(exists)630 2978 y(and)f Fr(\014le2)38
+b Fu(do)s(es)30 b(not.)150 3125 y Fj(file1)f Ft(-ot)g
+Fj(file2)630 3234 y Fu(T)-8 b(rue)30 b(if)g Fr(\014le1)38
+b Fu(is)31 b(older)f(than)g Fr(\014le2)p Fu(,)i(or)e(if)g
+Fr(\014le2)38 b Fu(exists)31 b(and)f Fr(\014le1)38 b
+Fu(do)s(es)30 b(not.)150 3381 y Ft(-o)g Fj(optname)630
+3491 y Fu(T)-8 b(rue)41 b(if)g(the)g(shell)h(option)f
+Fr(optname)47 b Fu(is)41 b(enabled.)73 b(The)41 b(list)h(of)f(options)h
+(app)s(ears)e(in)630 3601 y(the)33 b(description)h(of)f(the)g
+Ft(-o)g Fu(option)g(to)h(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)g
+(4.3.1)h([The)e(Set)630 3710 y(Builtin],)e(page)g(58\).)150
+3857 y Ft(-v)f Fj(varname)630 3967 y Fu(T)-8 b(rue)30
+b(if)g(the)h(shell)f(v)-5 b(ariable)32 b Fr(v)-5 b(arname)35
+b Fu(is)30 b(set)h(\(has)g(b)s(een)e(assigned)i(a)g(v)-5
+b(alue\).)150 4114 y Ft(-R)30 b Fj(varname)630 4223 y
+Fu(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5 b(ariable)32
+b Fr(v)-5 b(arname)35 b Fu(is)30 b(set)h(and)f(is)h(a)f(name)h
+(reference.)150 4370 y Ft(-z)f Fj(string)66 b Fu(T)-8
+b(rue)30 b(if)g(the)h(length)g(of)f Fr(string)38 b Fu(is)31
+b(zero.)150 4517 y Ft(-n)f Fj(string)150 4626 y(string)192
+b Fu(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fr(string)38
+b Fu(is)31 b(non-zero.)150 4773 y Fj(string1)d Ft(==)i
+Fj(string2)150 4883 y(string1)e Ft(=)i Fj(string2)630
+4993 y Fu(T)-8 b(rue)43 b(if)h(the)g(strings)g(are)g(equal.)82
+b(When)44 b(used)f(with)g(the)h Ft([[)g Fu(command,)j(this)d(p)s(er-)
+630 5102 y(forms)d(pattern)g(matc)m(hing)i(as)f(describ)s(ed)e(ab)s(o)m
+(v)m(e)j(\(see)f(Section)g(3.2.4.2)i([Conditional)630
+5212 y(Constructs],)30 b(page)h(10\).)630 5340 y(`)p
+Ft(=)p Fu(')g(should)e(b)s(e)h(used)f(with)h(the)h Ft(test)e
+Fu(command)h(for)g Fm(posix)g Fu(conformance.)p eop end
+%%Page: 87 93
+TeXDict begin 87 92 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(87)150 299 y Fj(string1)28
+b Ft(!=)i Fj(string2)630 408 y Fu(T)-8 b(rue)30 b(if)g(the)h(strings)f
+(are)h(not)f(equal.)150 563 y Fj(string1)e Ft(<)i Fj(string2)630
+673 y Fu(T)-8 b(rue)30 b(if)g Fr(string1)38 b Fu(sorts)31
+b(b)s(efore)f Fr(string2)38 b Fu(lexicographically)-8
+b(.)150 828 y Fj(string1)28 b Ft(>)i Fj(string2)630 937
+y Fu(T)-8 b(rue)30 b(if)g Fr(string1)38 b Fu(sorts)31
+b(after)g Fr(string2)38 b Fu(lexicographically)-8 b(.)150
+1092 y Fj(arg1)29 b Ft(OP)h Fj(arg2)630 1202 y Ft(OP)j
+Fu(is)h(one)g(of)h(`)p Ft(-eq)p Fu(',)f(`)p Ft(-ne)p
+Fu(',)h(`)p Ft(-lt)p Fu(',)g(`)p Ft(-le)p Fu(',)f(`)p
+Ft(-gt)p Fu(',)h(or)f(`)p Ft(-ge)p Fu('.)51 b(These)34
+b(arithmetic)h(binary)630 1311 y(op)s(erators)h(return)e(true)i(if)f
+Fr(arg1)44 b Fu(is)36 b(equal)g(to,)i(not)e(equal)g(to,)i(less)e(than,)
+h(less)f(than)f(or)630 1421 y(equal)29 b(to,)g(greater)h(than,)e(or)g
+(greater)i(than)d(or)i(equal)f(to)h Fr(arg2)p Fu(,)h(resp)s(ectiv)m
+(ely)-8 b(.)42 b Fr(Arg1)36 b Fu(and)630 1531 y Fr(arg2)j
+Fu(ma)m(y)30 b(b)s(e)g(p)s(ositiv)m(e)i(or)e(negativ)m(e)j(in)m
+(tegers.)150 1758 y Fs(6.5)68 b(Shell)45 b(Arithmetic)150
+1918 y Fu(The)35 b(shell)g(allo)m(ws)i(arithmetic)f(expressions)f(to)h
(b)s(e)f(ev)-5 b(aluated,)38 b(as)d(one)h(of)f(the)h(shell)f
-(expansions)g(or)150 2548 y(b)m(y)30 b(the)h Fs(let)e
-Ft(and)h(the)h(`)p Fs(-i)p Ft(')f(option)h(to)g(the)f
-Fs(declare)f Ft(builtins.)275 2685 y(Ev)-5 b(aluation)27
-b(is)g(done)f(in)g(\014xed-width)g(in)m(tegers)i(with)e(no)h(c)m(hec)m
-(k)h(for)e(o)m(v)m(er\015o)m(w,)j(though)d(division)h(b)m(y)150
-2795 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39
-b(The)26 b(op)s(erators)h(and)g(their)g(precedence,)h(asso)s(ciativit)m
-(y)-8 b(,)32 b(and)150 2904 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h
-(in)e(the)h(C)g(language.)56 b(The)35 b(follo)m(wing)h(list)g(of)f(op)s
-(erators)g(is)g(group)s(ed)f(in)m(to)150 3014 y(lev)m(els)27
+(expansions)g(or)150 2027 y(b)m(y)30 b(the)h Ft(let)e
+Fu(and)h(the)h Ft(-i)e Fu(option)i(to)g(the)g Ft(declare)d
+Fu(builtins.)275 2160 y(Ev)-5 b(aluation)27 b(is)g(done)f(in)g
+(\014xed-width)g(in)m(tegers)i(with)e(no)h(c)m(hec)m(k)h(for)e(o)m(v)m
+(er\015o)m(w,)j(though)d(division)h(b)m(y)150 2269 y(0)g(is)g(trapp)s
+(ed)f(and)h(\015agged)g(as)h(an)f(error.)39 b(The)26
+b(op)s(erators)h(and)g(their)g(precedence,)h(asso)s(ciativit)m(y)-8
+b(,)32 b(and)150 2379 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h(in)e
+(the)h(C)g(language.)56 b(The)35 b(follo)m(wing)h(list)g(of)f(op)s
+(erators)g(is)g(group)s(ed)f(in)m(to)150 2488 y(lev)m(els)27
b(of)f(equal-precedence)i(op)s(erators.)39 b(The)25 b(lev)m(els)j(are)e
(listed)h(in)e(order)h(of)g(decreasing)g(precedence.)150
-3177 y Fi(id)11 b Fs(++)29 b Fi(id)11 b Fs(--)630 3287
-y Ft(v)-5 b(ariable)31 b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen)
-m(t)150 3449 y Fs(++)p Fi(id)40 b Fs(--)p Fi(id)630 3558
-y Ft(v)-5 b(ariable)31 b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150
-3720 y Fs(-)g(+)354 b Ft(unary)29 b(min)m(us)h(and)g(plus)150
-3882 y Fs(!)g(~)354 b Ft(logical)33 b(and)d(bit)m(wise)h(negation)150
-4044 y Fs(**)384 b Ft(exp)s(onen)m(tiation)150 4206 y
-Fs(*)30 b(/)g(\045)276 b Ft(m)m(ultiplication,)33 b(division,)d
-(remainder)150 4368 y Fs(+)g(-)354 b Ft(addition,)31
-b(subtraction)150 4530 y Fs(<<)f(>>)258 b Ft(left)31
-b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150 4692 y Fs(<=)f(>=)g(<)g(>)
-102 b Ft(comparison)150 4854 y Fs(==)30 b(!=)258 b Ft(equalit)m(y)32
-b(and)e(inequalit)m(y)150 5016 y Fs(&)432 b Ft(bit)m(wise)31
-b(AND)150 5178 y Fs(^)432 b Ft(bit)m(wise)31 b(exclusiv)m(e)h(OR)150
-5340 y Fs(|)432 b Ft(bit)m(wise)31 b(OR)p eop end
-%%Page: 81 87
-TeXDict begin 81 86 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(81)150 299 y Fs(&&)384
-b Ft(logical)33 b(AND)150 446 y Fs(||)384 b Ft(logical)33
-b(OR)150 592 y Fs(expr)c(?)h(expr)f(:)h(expr)630 702
-y Ft(conditional)i(op)s(erator)150 849 y Fs(=)e(*=)g(/=)g(\045=)f(+=)h
-(-=)g(<<=)f(>>=)h(&=)g(^=)f(|=)630 958 y Ft(assignmen)m(t)150
-1105 y Fs(expr1)g(,)h(expr2)630 1214 y Ft(comma)275 1361
-y(Shell)38 b(v)-5 b(ariables)39 b(are)g(allo)m(w)m(ed)i(as)e(op)s
-(erands;)i(parameter)e(expansion)g(is)f(p)s(erformed)g(b)s(efore)g(the)
-150 1471 y(expression)g(is)g(ev)-5 b(aluated.)66 b(Within)38
+2643 y Fj(id)p Ft(++)j Fj(id)p Ft(--)67 b Fu(v)-5 b(ariable)31
+b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen)m(t)150
+2798 y Ft(++)p Fj(id)f Ft(--)p Fj(id)67 b Fu(v)-5 b(ariable)31
+b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150 2953
+y Ft(-)g(+)354 b Fu(unary)29 b(min)m(us)h(and)g(plus)150
+3108 y Ft(!)g(~)354 b Fu(logical)33 b(and)d(bit)m(wise)h(negation)150
+3263 y Ft(**)384 b Fu(exp)s(onen)m(tiation)150 3417 y
+Ft(*)30 b(/)g(\045)276 b Fu(m)m(ultiplication,)33 b(division,)d
+(remainder)150 3572 y Ft(+)g(-)354 b Fu(addition,)31
+b(subtraction)150 3727 y Ft(<<)f(>>)258 b Fu(left)31
+b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150 3882 y Ft(<=)f(>=)g(<)g(>)
+102 b Fu(comparison)150 4037 y Ft(==)30 b(!=)258 b Fu(equalit)m(y)32
+b(and)e(inequalit)m(y)150 4192 y Ft(&)432 b Fu(bit)m(wise)31
+b(AND)150 4347 y Ft(^)432 b Fu(bit)m(wise)31 b(exclusiv)m(e)h(OR)150
+4501 y Ft(|)432 b Fu(bit)m(wise)31 b(OR)150 4656 y Ft(&&)384
+b Fu(logical)33 b(AND)150 4811 y Ft(||)384 b Fu(logical)33
+b(OR)150 4966 y Ft(expr)c(?)h(expr)f(:)h(expr)630 5076
+y Fu(conditional)i(op)s(erator)150 5230 y Ft(=)e(*=)g(/=)g(\045=)f(+=)h
+(-=)g(<<=)f(>>=)h(&=)g(^=)f(|=)630 5340 y Fu(assignmen)m(t)p
+eop end
+%%Page: 88 94
+TeXDict begin 88 93 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(88)150 299 y Ft(expr1)29
+b(,)h(expr2)630 408 y Fu(comma)275 574 y(Shell)38 b(v)-5
+b(ariables)39 b(are)g(allo)m(w)m(ed)i(as)e(op)s(erands;)i(parameter)e
+(expansion)g(is)f(p)s(erformed)g(b)s(efore)g(the)150
+684 y(expression)g(is)g(ev)-5 b(aluated.)66 b(Within)38
b(an)h(expression,)h(shell)e(v)-5 b(ariables)39 b(ma)m(y)g(also)g(b)s
-(e)f(referenced)g(b)m(y)150 1580 y(name)31 b(without)f(using)g(the)h
+(e)f(referenced)g(b)m(y)150 793 y(name)31 b(without)f(using)g(the)h
(parameter)g(expansion)f(syn)m(tax.)42 b(A)31 b(shell)f(v)-5
-b(ariable)32 b(that)f(is)f(n)m(ull)h(or)f(unset)150 1690
+b(ariable)32 b(that)f(is)f(n)m(ull)h(or)f(unset)150 903
y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b)m(y)g(name)h
(without)f(using)g(the)g(parameter)h(expansion)f(syn)m(tax.)150
-1800 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5 b(ariable)36
+1012 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5 b(ariable)36
b(is)g(ev)-5 b(aluated)38 b(as)e(an)g(arithmetic)h(expression)f(when)f
-(it)h(is)g(referenced,)i(or)150 1909 y(when)31 b(a)i(v)-5
+(it)h(is)g(referenced,)i(or)150 1122 y(when)31 b(a)i(v)-5
b(ariable)33 b(whic)m(h)f(has)g(b)s(een)f(giv)m(en)j(the)e
-Fq(in)m(teger)40 b Ft(attribute)33 b(using)f(`)p Fs(declare)d(-i)p
-Ft(')i(is)i(assigned)150 2019 y(a)j(v)-5 b(alue.)58 b(A)36
+Fr(in)m(teger)40 b Fu(attribute)33 b(using)f(`)p Ft(declare)d(-i)p
+Fu(')i(is)i(assigned)150 1232 y(a)j(v)-5 b(alue.)58 b(A)36
b(n)m(ull)f(v)-5 b(alue)37 b(ev)-5 b(aluates)37 b(to)g(0.)57
b(A)36 b(shell)g(v)-5 b(ariable)37 b(need)e(not)h(ha)m(v)m(e)h(its)f
-Fq(in)m(teger)44 b Ft(attribute)150 2128 y(turned)29
+Fr(in)m(teger)44 b Fu(attribute)150 1341 y(turned)29
b(on)h(to)i(b)s(e)d(used)h(in)g(an)g(expression.)275
-2256 y(Constan)m(ts)41 b(with)g(a)h(leading)f(0)h(are)g(in)m(terpreted)
+1480 y(Constan)m(ts)41 b(with)g(a)h(leading)f(0)h(are)g(in)m(terpreted)
f(as)g(o)s(ctal)i(n)m(um)m(b)s(ers.)72 b(A)41 b(leading)h(`)p
-Fs(0x)p Ft(')f(or)g(`)p Fs(0X)p Ft(')150 2366 y(denotes)31
-b(hexadecimal.)42 b(Otherwise,)30 b(n)m(um)m(b)s(ers)f(tak)m(e)j(the)f
-(form)f([)p Fq(base)5 b Fs(#)p Ft(])p Fq(n)p Ft(,)31
-b(where)f(the)g(optional)i Fq(base)150 2476 y Ft(is)d(a)h(decimal)g(n)m
+Ft(0x)p Fu(')f(or)g(`)p Ft(0X)p Fu(')150 1589 y(denotes)30
+b(hexadecimal.)42 b(Otherwise,)30 b(n)m(um)m(b)s(ers)f(tak)m(e)i(the)f
+(form)g([)p Fr(base)5 b Ft(#)p Fu(])p Fr(n)p Fu(,)30
+b(where)f(the)i(optional)g Fr(base)150 1699 y Fu(is)e(a)h(decimal)g(n)m
(um)m(b)s(er)e(b)s(et)m(w)m(een)h(2)h(and)e(64)i(represen)m(ting)g(the)
-f(arithmetic)i(base,)e(and)g Fq(n)g Ft(is)g(a)g(n)m(um)m(b)s(er)150
-2585 y(in)41 b(that)i(base.)74 b(If)42 b Fq(base)5 b
-Fs(#)41 b Ft(is)h(omitted,)k(then)41 b(base)h(10)g(is)g(used.)74
-b(The)41 b(digits)h(greater)h(than)e(9)i(are)150 2695
-y(represen)m(ted)38 b(b)m(y)f(the)h(lo)m(w)m(ercase)j(letters,)g(the)d
-(upp)s(ercase)f(letters,)k(`)p Fs(@)p Ft(',)f(and)d(`)p
-Fs(_)p Ft(',)j(in)d(that)i(order.)62 b(If)150 2804 y
-Fq(base)28 b Ft(is)22 b(less)h(than)f(or)h(equal)f(to)i(36,)h(lo)m(w)m
-(ercase)g(and)c(upp)s(ercase)h(letters)i(ma)m(y)f(b)s(e)e(used)h(in)m
-(terc)m(hangeably)150 2914 y(to)31 b(represen)m(t)g(n)m(um)m(b)s(ers)d
-(b)s(et)m(w)m(een)j(10)h(and)d(35.)275 3042 y(Op)s(erators)44
-b(are)h(ev)-5 b(aluated)46 b(in)f(order)f(of)h(precedence.)85
-b(Sub-expressions)44 b(in)g(paren)m(theses)i(are)150
-3152 y(ev)-5 b(aluated)32 b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g
-(the)g(precedence)g(rules)f(ab)s(o)m(v)m(e.)150 3371
-y Fr(6.6)68 b(Aliases)150 3531 y Fq(Aliases)41 b Ft(allo)m(w)d(a)f
-(string)f(to)h(b)s(e)f(substituted)g(for)g(a)g(w)m(ord)g(when)g(it)h
-(is)f(used)f(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)150
-3640 y(simple)32 b(command.)45 b(The)31 b(shell)i(main)m(tains)f(a)h
-(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s(e)e(set)h(and)g(unset)f
-(with)h(the)150 3750 y Fs(alias)d Ft(and)h Fs(unalias)e
-Ft(builtin)i(commands.)275 3878 y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m
-(h)i(simple)f(command,)g(if)f(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g
-(see)f(if)g(it)g(has)f(an)g(alias.)150 3988 y(If)24 b(so,)i(that)g(w)m
-(ord)e(is)h(replaced)g(b)m(y)f(the)h(text)h(of)e(the)h(alias.)40
-b(The)24 b(c)m(haracters)i(`)p Fs(/)p Ft(',)h(`)p Fs($)p
-Ft(',)f(`)p Fs(`)p Ft(',)g(`)p Fs(=)p Ft(')f(and)f(an)m(y)h(of)150
-4097 y(the)e(shell)g(metac)m(haracters)i(or)e(quoting)g(c)m(haracters)h
-(listed)g(ab)s(o)m(v)m(e)g(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h
-(name.)150 4207 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h
-(an)m(y)e(v)-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m
-(haracters.)40 b(The)150 4317 y(\014rst)35 b(w)m(ord)g(of)h(the)g
-(replacemen)m(t)i(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m
-(ord)g(that)g(is)g(iden)m(tical)i(to)e(an)150 4426 y(alias)c(b)s(eing)f
-(expanded)f(is)h(not)g(expanded)f(a)h(second)g(time.)43
-b(This)30 b(means)h(that)g(one)g(ma)m(y)h(alias)g Fs(ls)e
-Ft(to)150 4536 y Fs("ls)f(-F")p Ft(,)36 b(for)f(instance,)i(and)d(Bash)
-h(do)s(es)g(not)g(try)g(to)g(recursiv)m(ely)h(expand)e(the)h
-(replacemen)m(t)i(text.)150 4645 y(If)31 b(the)h(last)h(c)m(haracter)g
-(of)f(the)g(alias)h(v)-5 b(alue)32 b(is)g(a)g(space)g(or)g(tab)g(c)m
-(haracter,)i(then)d(the)h(next)g(command)150 4755 y(w)m(ord)e(follo)m
-(wing)i(the)e(alias)i(is)e(also)i(c)m(hec)m(k)m(ed)g(for)e(alias)i
-(expansion.)275 4883 y(Aliases)d(are)f(created)i(and)d(listed)i(with)f
-(the)g Fs(alias)f Ft(command,)h(and)g(remo)m(v)m(ed)h(with)f(the)g
-Fs(unalias)150 4993 y Ft(command.)275 5121 y(There)44
-b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g(in)f(the)h
-(replacemen)m(t)i(text,)i(as)d(in)e Fs(csh)p Ft(.)83
-b(If)150 5230 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f(function)
-f(should)g(b)s(e)h(used)f(\(see)i(Section)g(3.3)g([Shell)f(F)-8
-b(unctions],)150 5340 y(page)31 b(15\).)p eop end
-%%Page: 82 88
-TeXDict begin 82 87 bop 150 -116 a Ft(82)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(Aliases)i(are)h(not)e(expanded)g
-(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j(unless)c(the)h
-Fs(expand_aliases)150 408 y Ft(shell)e(option)f(is)h(set)g(using)f
-Fs(shopt)f Ft(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)h
-(page)g(57\).)275 542 y(The)38 b(rules)h(concerning)h(the)f
-(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h(confusing.)
-67 b(Bash)150 651 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g(one)f
-(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f(of)g
-(the)g(commands)150 761 y(on)h(that)h(line.)77 b(Aliases)44
-b(are)e(expanded)g(when)f(a)i(command)f(is)g(read,)k(not)c(when)g(it)g
-(is)h(executed.)150 870 y(Therefore,)f(an)e(alias)h(de\014nition)e(app)
-s(earing)h(on)f(the)h(same)h(line)f(as)g(another)g(command)f(do)s(es)h
-(not)150 980 y(tak)m(e)31 b(e\013ect)f(un)m(til)g(the)f(next)g(line)h
-(of)f(input)f(is)h(read.)41 b(The)28 b(commands)h(follo)m(wing)i(the)e
-(alias)h(de\014nition)150 1090 y(on)d(that)h(line)f(are)h(not)f
-(a\013ected)i(b)m(y)e(the)g(new)g(alias.)41 b(This)26
-b(b)s(eha)m(vior)h(is)g(also)h(an)f(issue)g(when)f(functions)150
-1199 y(are)d(executed.)39 b(Aliases)24 b(are)f(expanded)f(when)f(a)i
-(function)g(de\014nition)f(is)h(read,)h(not)f(when)e(the)i(function)150
-1309 y(is)i(executed,)j(b)s(ecause)d(a)h(function)f(de\014nition)f(is)i
-(itself)g(a)f(comp)s(ound)f(command.)39 b(As)25 b(a)h(consequence,)150
-1418 y(aliases)36 b(de\014ned)d(in)h(a)g(function)g(are)h(not)f(a)m(v)
--5 b(ailable)37 b(un)m(til)d(after)h(that)g(function)f(is)g(executed.)
-53 b(T)-8 b(o)35 b(b)s(e)150 1528 y(safe,)41 b(alw)m(a)m(ys)f(put)d
-(alias)j(de\014nitions)e(on)g(a)h(separate)g(line,)i(and)d(do)g(not)g
-(use)g Fs(alias)f Ft(in)h(comp)s(ound)150 1638 y(commands.)275
-1771 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i
-(functions)f(are)g(preferred)g(o)m(v)m(er)h(aliases.)150
-2001 y Fr(6.7)68 b(Arra)l(ys)150 2160 y Ft(Bash)33 b(pro)m(vides)g
-(one-dimensional)g(indexed)f(and)h(asso)s(ciativ)m(e)i(arra)m(y)e(v)-5
+f(arithmetic)i(base,)e(and)g Fr(n)g Fu(is)g(a)g(n)m(um)m(b)s(er)150
+1809 y(in)e(that)h(base.)40 b(If)26 b Fr(base)5 b Ft(#)27
+b Fu(is)h(omitted,)h(then)e(base)g(10)h(is)f(used.)39
+b(When)27 b(sp)s(ecifying)g Fr(n)p Fu(,)h(he)f(digits)h(greater)150
+1918 y(than)33 b(9)h(are)g(represen)m(ted)g(b)m(y)f(the)h(lo)m(w)m
+(ercase)i(letters,)g(the)d(upp)s(ercase)g(letters,)j(`)p
+Ft(@)p Fu(',)e(and)f(`)p Ft(_)p Fu(',)i(in)e(that)150
+2028 y(order.)69 b(If)39 b Fr(base)45 b Fu(is)40 b(less)g(than)g(or)f
+(equal)i(to)f(36,)k(lo)m(w)m(ercase)e(and)d(upp)s(ercase)g(letters)i
+(ma)m(y)g(b)s(e)e(used)150 2137 y(in)m(terc)m(hangeably)32
+b(to)f(represen)m(t)g(n)m(um)m(b)s(ers)e(b)s(et)m(w)m(een)i(10)g(and)f
+(35.)275 2276 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46
+b(in)f(order)f(of)h(precedence.)85 b(Sub-expressions)44
+b(in)g(paren)m(theses)i(are)150 2386 y(ev)-5 b(aluated)32
+b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g(the)g(precedence)g(rules)f
+(ab)s(o)m(v)m(e.)150 2624 y Fs(6.6)68 b(Aliases)150 2784
+y Fr(Aliases)41 b Fu(allo)m(w)d(a)f(string)f(to)h(b)s(e)f(substituted)g
+(for)g(a)g(w)m(ord)g(when)g(it)h(is)f(used)f(as)i(the)g(\014rst)e(w)m
+(ord)h(of)h(a)150 2893 y(simple)32 b(command.)45 b(The)31
+b(shell)i(main)m(tains)f(a)h(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s
+(e)e(set)h(and)g(unset)f(with)h(the)150 3003 y Ft(alias)d
+Fu(and)h Ft(unalias)e Fu(builtin)i(commands.)275 3142
+y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m(h)i(simple)f(command,)g(if)f
+(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g(see)f(if)g(it)g(has)f(an)g
+(alias.)150 3251 y(If)24 b(so,)i(that)g(w)m(ord)e(is)h(replaced)g(b)m
+(y)f(the)h(text)h(of)e(the)h(alias.)40 b(The)24 b(c)m(haracters)i(`)p
+Ft(/)p Fu(',)h(`)p Ft($)p Fu(',)f(`)p Ft(`)p Fu(',)g(`)p
+Ft(=)p Fu(')f(and)f(an)m(y)h(of)150 3361 y(the)e(shell)g(metac)m
+(haracters)i(or)e(quoting)g(c)m(haracters)h(listed)g(ab)s(o)m(v)m(e)g
+(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h(name.)150
+3470 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h(an)m(y)e(v)
+-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m(haracters.)
+40 b(The)150 3580 y(\014rst)35 b(w)m(ord)g(of)h(the)g(replacemen)m(t)i
+(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m(ord)g(that)g(is)g
+(iden)m(tical)i(to)e(an)150 3689 y(alias)c(b)s(eing)f(expanded)f(is)h
+(not)g(expanded)f(a)h(second)g(time.)43 b(This)30 b(means)h(that)g(one)
+g(ma)m(y)h(alias)g Ft(ls)e Fu(to)150 3799 y Ft("ls)f(-F")p
+Fu(,)f(for)f(instance,)i(and)d(Bash)i(do)s(es)f(not)h(try)f(to)h
+(recursiv)m(ely)g(expand)e(the)i(replacemen)m(t)h(text.)40
+b(If)150 3909 y(the)31 b(last)h(c)m(haracter)h(of)e(the)h(alias)g(v)-5
+b(alue)31 b(is)h(a)f Fr(blank)p Fu(,)g(then)g(the)g(next)h(command)e(w)
+m(ord)h(follo)m(wing)i(the)150 4018 y(alias)f(is)e(also)h(c)m(hec)m(k)m
+(ed)i(for)d(alias)h(expansion.)275 4157 y(Aliases)e(are)f(created)i
+(and)d(listed)i(with)f(the)g Ft(alias)f Fu(command,)h(and)g(remo)m(v)m
+(ed)h(with)f(the)g Ft(unalias)150 4267 y Fu(command.)275
+4405 y(There)44 b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g
+(in)f(the)h(replacemen)m(t)i(text,)i(as)d(in)e Ft(csh)p
+Fu(.)83 b(If)150 4515 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f
+(function)f(should)g(b)s(e)h(used)f(\(see)i(Section)g(3.3)g([Shell)f(F)
+-8 b(unctions],)150 4624 y(page)31 b(17\).)275 4763 y(Aliases)i(are)h
+(not)e(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j
+(unless)c(the)h Ft(expand_aliases)150 4873 y Fu(shell)e(option)f(is)h
+(set)g(using)f Ft(shopt)f Fu(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g
+(Builtin],)h(page)g(62\).)275 5011 y(The)38 b(rules)h(concerning)h(the)
+f(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h
+(confusing.)67 b(Bash)150 5121 y(alw)m(a)m(ys)42 b(reads)f(at)h(least)g
+(one)f(complete)i(line)e(of)g(input)f(b)s(efore)h(executing)h(an)m(y)f
+(of)g(the)g(commands)150 5230 y(on)h(that)h(line.)77
+b(Aliases)44 b(are)e(expanded)g(when)f(a)i(command)f(is)g(read,)k(not)c
+(when)g(it)g(is)h(executed.)150 5340 y(Therefore,)f(an)e(alias)h
+(de\014nition)e(app)s(earing)h(on)f(the)h(same)h(line)f(as)g(another)g
+(command)f(do)s(es)h(not)p eop end
+%%Page: 89 95
+TeXDict begin 89 94 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(89)150 299 y(tak)m(e)31
+b(e\013ect)f(un)m(til)g(the)f(next)g(line)h(of)f(input)f(is)h(read.)41
+b(The)28 b(commands)h(follo)m(wing)i(the)e(alias)h(de\014nition)150
+408 y(on)d(that)h(line)f(are)h(not)f(a\013ected)i(b)m(y)e(the)g(new)g
+(alias.)41 b(This)26 b(b)s(eha)m(vior)h(is)g(also)h(an)f(issue)g(when)f
+(functions)150 518 y(are)d(executed.)39 b(Aliases)24
+b(are)f(expanded)f(when)f(a)i(function)g(de\014nition)f(is)h(read,)h
+(not)f(when)e(the)i(function)150 628 y(is)i(executed,)j(b)s(ecause)d(a)
+h(function)f(de\014nition)f(is)i(itself)g(a)f(comp)s(ound)f(command.)39
+b(As)25 b(a)h(consequence,)150 737 y(aliases)36 b(de\014ned)d(in)h(a)g
+(function)g(are)h(not)f(a)m(v)-5 b(ailable)37 b(un)m(til)d(after)h
+(that)g(function)f(is)g(executed.)53 b(T)-8 b(o)35 b(b)s(e)150
+847 y(safe,)41 b(alw)m(a)m(ys)f(put)d(alias)j(de\014nitions)e(on)g(a)h
+(separate)g(line,)i(and)d(do)g(not)g(use)g Ft(alias)f
+Fu(in)h(comp)s(ound)150 956 y(commands.)275 1094 y(F)-8
+b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i(functions)f(are)g
+(preferred)g(o)m(v)m(er)h(aliases.)150 1332 y Fs(6.7)68
+b(Arra)l(ys)150 1491 y Fu(Bash)33 b(pro)m(vides)g(one-dimensional)g
+(indexed)f(and)h(asso)s(ciativ)m(e)i(arra)m(y)e(v)-5
b(ariables.)49 b(An)m(y)33 b(v)-5 b(ariable)33 b(ma)m(y)150
-2270 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e
-Fs(declare)e Ft(builtin)h(will)i(explicitly)g(declare)g(an)f(arra)m(y)
--8 b(.)46 b(There)32 b(is)150 2379 y(no)h(maxim)m(um)g(limit)h(on)f
+1601 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e
+Ft(declare)e Fu(builtin)h(will)i(explicitly)g(declare)g(an)f(arra)m(y)
+-8 b(.)46 b(There)32 b(is)150 1710 y(no)h(maxim)m(um)g(limit)h(on)f
(the)g(size)h(of)g(an)f(arra)m(y)-8 b(,)35 b(nor)d(an)m(y)i(requiremen)
-m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 2489
+m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 1820
y(or)26 b(assigned)h(con)m(tiguously)-8 b(.)41 b(Indexed)25
b(arra)m(ys)i(are)f(referenced)g(using)g(in)m(tegers)i(\(including)e
-(arithmetic)150 2598 y(expressions)41 b(\(see)h(Section)g(6.5)h([Shell)
-e(Arithmetic],)46 b(page)c(80\))g(and)f(are)g(zero-based;)48
-b(asso)s(ciativ)m(e)150 2708 y(arra)m(ys)31 b(use)f(arbitrary)g
-(strings.)275 2841 y(An)c(indexed)h(arra)m(y)h(is)f(created)h
-(automatically)j(if)c(an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h
-(using)f(the)g(syn)m(tax)390 2974 y Fs(name[)p Fi(subscript)11
-b Fs(]=)p Fi(value)150 3108 y Ft(The)37 b Fq(subscript)h
-Ft(is)f(treated)h(as)f(an)g(arithmetic)i(expression)e(that)g(m)m(ust)g
-(ev)-5 b(aluate)39 b(to)f(a)g(n)m(um)m(b)s(er.)59 b(If)150
-3217 y Fq(subscript)29 b Ft(ev)-5 b(aluates)29 b(to)g(a)g(n)m(um)m(b)s
-(er)d(less)j(than)e(zero,)j(it)e(is)h(used)e(as)h(an)g(o\013set)h(from)
-f(one)g(greater)h(than)150 3327 y(the)h(arra)m(y's)h(maxim)m(um)e
-(index)h(\(so)g(a)h(sub)s(cript)d(of)i(-1)h(refers)e(to)i(the)f(last)h
-(elemen)m(t)g(of)f(the)g(arra)m(y\).)41 b(T)-8 b(o)150
-3436 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31
-b(use)390 3570 y Fs(declare)46 b(-a)h Fi(name)150 3703
-y Ft(The)30 b(syn)m(tax)390 3836 y Fs(declare)46 b(-a)h
-Fi(name)11 b Fs([)p Fi(subscript)g Fs(])150 3969 y Ft(is)30
-b(also)i(accepted;)g(the)e Fq(subscript)h Ft(is)g(ignored.)275
-4102 y(Asso)s(ciativ)m(e)h(arra)m(ys)f(are)g(created)g(using)390
-4236 y Fs(declare)46 b(-A)h Fi(name)11 b Fs(.)275 4369
-y Ft(A)m(ttributes)46 b(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g(for)h(an)g
-(arra)m(y)g(v)-5 b(ariable)47 b(using)e(the)h Fs(declare)e
-Ft(and)h Fs(readonly)150 4478 y Ft(builtins.)40 b(Eac)m(h)31
-b(attribute)g(applies)g(to)g(all)g(mem)m(b)s(ers)f(of)g(an)h(arra)m(y)
--8 b(.)275 4612 y(Arra)m(ys)30 b(are)h(assigned)f(to)h(using)f(comp)s
-(ound)f(assignmen)m(ts)i(of)g(the)f(form)390 4745 y Fs(name=\(value)p
-Fi(1)55 b Fs(...)47 b(value)p Fi(n)11 b Fs(\))150 4878
-y Ft(where)37 b(eac)m(h)i Fq(v)-5 b(alue)42 b Ft(is)c(of)g(the)f(form)g
-Fs([)p Fi(subscript)11 b Fs(]=)p Fq(string)d Ft(.)58
-b(Indexed)36 b(arra)m(y)i(assignmen)m(ts)g(do)g(not)150
-4988 y(require)c(the)g(brac)m(k)m(et)h(and)e(subscript.)50
-b(When)34 b(assigning)g(to)g(indexed)g(arra)m(ys,)h(if)f(the)g
-(optional)h(sub-)150 5097 y(script)c(is)h(supplied,)f(that)h(index)f
-(is)h(assigned)g(to;)h(otherwise)f(the)f(index)h(of)f(the)h(elemen)m(t)
-h(assigned)f(is)150 5207 y(the)f(last)g(index)f(assigned)g(to)h(b)m(y)g
-(the)f(statemen)m(t)i(plus)e(one.)41 b(Indexing)30 b(starts)g(at)i
-(zero.)275 5340 y(When)e(assigning)h(to)g(an)f(asso)s(ciativ)m(e)j
-(arra)m(y)-8 b(,)32 b(the)e(subscript)f(is)i(required.)p
-eop end
-%%Page: 83 89
-TeXDict begin 83 88 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(83)275 299 y(This)30
-b(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f(the)f Fs(declare)f
-Ft(builtin.)44 b(Individual)31 b(arra)m(y)h(elemen)m(ts)h(ma)m(y)g(b)s
-(e)150 408 y(assigned)e(to)g(using)f(the)g Fs(name[)p
-Fq(subscript)r Fs(]=)p Fq(v)-5 b(alue)33 b Ft(syn)m(tax)e(in)m(tro)s
-(duced)f(ab)s(o)m(v)m(e.)275 554 y(An)m(y)j(elemen)m(t)i(of)f(an)f
-(arra)m(y)h(ma)m(y)g(b)s(e)f(referenced)g(using)g Fs(${name[)p
-Fq(subscript)r Fs(]})p Ft(.)46 b(The)33 b(braces)h(are)150
-663 y(required)28 b(to)j(a)m(v)m(oid)f(con\015icts)g(with)f(the)h
-(shell's)f(\014lename)h(expansion)f(op)s(erators.)41
-b(If)28 b(the)i Fq(subscript)g Ft(is)150 773 y(`)p Fs(@)p
-Ft(')f(or)g(`)p Fs(*)p Ft(',)g(the)g(w)m(ord)g(expands)f(to)i(all)f
-(mem)m(b)s(ers)f(of)h(the)g(arra)m(y)h Fq(name)5 b Ft(.)40
-b(These)29 b(subscripts)e(di\013er)i(only)150 883 y(when)36
-b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g(quotes.)60
-b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j Fs(${name[*]})150
-992 y Ft(expands)20 b(to)h(a)g(single)g(w)m(ord)f(with)h(the)g(v)-5
-b(alue)21 b(of)f(eac)m(h)i(arra)m(y)f(mem)m(b)s(er)f(separated)h(b)m(y)
-g(the)f(\014rst)g(c)m(haracter)150 1102 y(of)38 b(the)g
-Fs(IFS)f Ft(v)-5 b(ariable,)41 b(and)c Fs(${name[@]})e
-Ft(expands)i(eac)m(h)i(elemen)m(t)g(of)f Fq(name)43 b
-Ft(to)c(a)f(separate)h(w)m(ord.)150 1211 y(When)32 b(there)h(are)f(no)g
-(arra)m(y)h(mem)m(b)s(ers,)f Fs(${name[@]})e Ft(expands)h(to)i
-(nothing.)47 b(If)31 b(the)i(double-quoted)150 1321 y(expansion)39
+(arithmetic)150 1929 y(expressions)38 b(\(see)h(Section)g(6.5)h([Shell)
+e(Arithmetic],)k(page)d(87\)\))h(and)d(are)i(zero-based;)k(asso)s
+(ciativ)m(e)150 2039 y(arra)m(ys)37 b(use)f(arbitrary)g(strings.)59
+b(Unless)36 b(otherwise)h(noted,)h(indexed)e(arra)m(y)h(indices)f(m)m
+(ust)g(b)s(e)g(non-)150 2149 y(negativ)m(e)d(in)m(tegers.)275
+2286 y(An)26 b(indexed)h(arra)m(y)h(is)f(created)h(automatically)j(if)c
+(an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h(using)f(the)g(syn)m
+(tax)390 2424 y Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p
+Fj(value)150 2562 y Fu(The)34 b Fr(subscript)h Fu(is)g(treated)g(as)g
+(an)f(arithmetic)i(expression)e(that)h(m)m(ust)g(ev)-5
+b(aluate)36 b(to)f(a)g(n)m(um)m(b)s(er.)51 b(T)-8 b(o)150
+2672 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31
+b(use)390 2809 y Ft(declare)46 b(-a)h Fj(name)150 2947
+y Fu(The)30 b(syn)m(tax)390 3085 y Ft(declare)46 b(-a)h
+Fj(name)p Ft([)p Fj(subscript)p Ft(])150 3223 y Fu(is)30
+b(also)i(accepted;)g(the)e Fr(subscript)h Fu(is)g(ignored.)150
+3361 y(Asso)s(ciativ)m(e)i(arra)m(ys)d(are)h(created)h(using)390
+3499 y Ft(declare)46 b(-A)h Fj(name)p Ft(.)275 3636 y
+Fu(A)m(ttributes)f(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g(for)h(an)g(arra)m
+(y)g(v)-5 b(ariable)47 b(using)e(the)h Ft(declare)e Fu(and)h
+Ft(readonly)150 3746 y Fu(builtins.)40 b(Eac)m(h)31 b(attribute)g
+(applies)g(to)g(all)g(mem)m(b)s(ers)f(of)g(an)h(arra)m(y)-8
+b(.)275 3884 y(Arra)m(ys)30 b(are)h(assigned)f(to)h(using)f(comp)s
+(ound)f(assignmen)m(ts)i(of)g(the)f(form)390 4022 y Fj(name)p
+Ft(=\()p Fj(value1)44 b(value2)j Ft(...)f(\))150 4159
+y Fu(where)38 b(eac)m(h)i Fr(v)-5 b(alue)44 b Fu(is)39
+b(of)g(the)g(form)f Ft([)p Fj(subscript)p Ft(]=)p Fr(string)p
+Fu(.)63 b(Indexed)37 b(arra)m(y)j(assignmen)m(ts)f(do)g(not)150
+4269 y(require)31 b(an)m(ything)g(but)f Fr(string)p Fu(.)43
+b(When)31 b(assigning)g(to)h(indexed)e(arra)m(ys,)i(if)f(the)g
+(optional)h(subscript)e(is)150 4379 y(supplied,)i(that)h(index)f(is)h
+(assigned)g(to;)h(otherwise)f(the)g(index)f(of)h(the)g(elemen)m(t)h
+(assigned)f(is)f(the)h(last)150 4488 y(index)d(assigned)h(to)g(b)m(y)f
+(the)g(statemen)m(t)j(plus)c(one.)41 b(Indexing)30 b(starts)h(at)g
+(zero.)275 4626 y(When)f(assigning)h(to)g(an)f(asso)s(ciativ)m(e)j
+(arra)m(y)-8 b(,)32 b(the)e(subscript)f(is)i(required.)275
+4764 y(This)f(syn)m(tax)j(is)e(also)i(accepted)g(b)m(y)f(the)f
+Ft(declare)f Fu(builtin.)44 b(Individual)31 b(arra)m(y)h(elemen)m(ts)h
+(ma)m(y)g(b)s(e)150 4873 y(assigned)e(to)g(using)f(the)g
+Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p Fj(value)25 b
+Fu(syn)m(tax)31 b(in)m(tro)s(duced)e(ab)s(o)m(v)m(e.)275
+5011 y(When)h(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8
+b(,)32 b(if)f Fr(name)36 b Fu(is)31 b(subscripted)e(b)m(y)i(a)g
+(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 5121 y(n)m(um)m(b)s(er)43
+b(is)h(in)m(terpreted)h(as)f(relativ)m(e)j(to)e(one)f(greater)i(than)e
+(the)g(maxim)m(um)g(index)g(of)h Fr(name)p Fu(,)j(so)150
+5230 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f(the)g
+(end)g(of)g(the)h(arra)m(y)-8 b(,)29 b(and)e(an)g(index)g(of)g(-1)h
+(references)g(the)f(last)150 5340 y(elemen)m(t.)p eop
+end
+%%Page: 90 96
+TeXDict begin 90 95 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(90)275 299 y(An)m(y)28
+b(elemen)m(t)h(of)g(an)f(arra)m(y)g(ma)m(y)h(b)s(e)f(referenced)g
+(using)g Ft(${)p Fj(name)p Ft([)p Fj(subscript)p Ft(]})p
+Fu(.)35 b(The)27 b(braces)i(are)150 408 y(required)f(to)j(a)m(v)m(oid)f
+(con\015icts)g(with)f(the)h(shell's)f(\014lename)h(expansion)f(op)s
+(erators.)41 b(If)28 b(the)i Fr(subscript)g Fu(is)150
+518 y(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)f(the)h(w)m(ord)f
+(expands)f(to)i(all)g(mem)m(b)s(ers)e(of)i(the)f(arra)m(y)h
+Fr(name)p Fu(.)40 b(These)29 b(subscripts)f(di\013er)h(only)150
+628 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g(quotes.)
+60 b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j Ft(${)p
+Fj(name)p Ft([*]})150 737 y Fu(expands)25 b(to)h(a)g(single)h(w)m(ord)e
+(with)g(the)h(v)-5 b(alue)26 b(of)g(eac)m(h)h(arra)m(y)f(mem)m(b)s(er)f
+(separated)h(b)m(y)g(the)f(\014rst)g(c)m(harac-)150 847
+y(ter)j(of)g(the)h Ft(IFS)e Fu(v)-5 b(ariable,)29 b(and)f
+Ft(${)p Fj(name)p Ft([@]})d Fu(expands)i(eac)m(h)i(elemen)m(t)h(of)e
+Fr(name)33 b Fu(to)c(a)f(separate)h(w)m(ord.)150 956
+y(When)j(there)h(are)f(no)g(arra)m(y)h(mem)m(b)s(ers,)f
+Ft(${)p Fj(name)p Ft([@]})e Fu(expands)h(to)i(nothing.)47
+b(If)31 b(the)i(double-quoted)150 1066 y(expansion)39
b(o)s(ccurs)h(within)f(a)h(w)m(ord,)i(the)d(expansion)h(of)g(the)f
-(\014rst)g(parameter)h(is)g(joined)f(with)h(the)150 1431
-y(b)s(eginning)j(part)h(of)g(the)g(original)h(w)m(ord,)j(and)43
-b(the)h(expansion)g(of)g(the)g(last)h(parameter)f(is)g(joined)150
-1540 y(with)35 b(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)55
-b(This)34 b(is)h(analogous)h(to)g(the)f(expansion)g(of)g(the)g(sp)s
-(ecial)150 1650 y(parameters)28 b(`)p Fs(@)p Ft(')g(and)f(`)p
-Fs(*)p Ft('.)39 b Fs(${#name[)p Fq(subscript)r Fs(]})24
-b Ft(expands)j(to)h(the)g(length)g(of)f Fs(${name[)p
-Fq(subscript)r Fs(]})p Ft(.)150 1759 y(If)j Fq(subscript)i
-Ft(is)f(`)p Fs(@)p Ft(')f(or)h(`)p Fs(*)p Ft(',)g(the)g(expansion)g(is)
-g(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)h(in)f(the)g(arra)m(y)-8
-b(.)42 b(Referencing)150 1869 y(an)30 b(arra)m(y)h(v)-5
-b(ariable)31 b(without)g(a)f(subscript)g(is)g(equiv)-5
-b(alen)m(t)32 b(to)f(referencing)g(with)f(a)g(subscript)g(of)g(0.)275
-2014 y(An)35 b(arra)m(y)i(v)-5 b(ariable)37 b(is)g(considered)f(set)h
-(if)f(a)h(subscript)e(has)h(b)s(een)g(assigned)g(a)h(v)-5
-b(alue.)59 b(The)36 b(n)m(ull)150 2124 y(string)30 b(is)h(a)g(v)-5
-b(alid)30 b(v)-5 b(alue.)275 2269 y(The)32 b Fs(unset)g
-Ft(builtin)h(is)g(used)g(to)h(destro)m(y)g(arra)m(ys.)50
-b Fs(unset)31 b Fq(name)5 b Ft([)p Fq(subscript)r Ft(])33
-b(destro)m(ys)h(the)f(arra)m(y)150 2379 y(elemen)m(t)i(at)g(index)f
-Fq(subscript)r Ft(.)50 b(Care)34 b(m)m(ust)f(b)s(e)h(tak)m(en)h(to)f(a)
-m(v)m(oid)i(un)m(w)m(an)m(ted)e(side)g(e\013ects)h(caused)f(b)m(y)150
-2488 y(\014lename)40 b(expansion.)69 b Fs(unset)39 b
-Fq(name)5 b Ft(,)42 b(where)e Fq(name)45 b Ft(is)39 b(an)h(arra)m(y)-8
-b(,)44 b(remo)m(v)m(es)d(the)f(en)m(tire)h(arra)m(y)-8
-b(.)70 b(A)150 2598 y(subscript)29 b(of)i(`)p Fs(*)p
-Ft(')f(or)h(`)p Fs(@)p Ft(')f(also)h(remo)m(v)m(es)h(the)f(en)m(tire)g
-(arra)m(y)-8 b(.)275 2743 y(The)41 b Fs(declare)p Ft(,)i
-Fs(local)p Ft(,)h(and)d Fs(readonly)f Ft(builtins)h(eac)m(h)j(accept)f
-(a)f(`)p Fs(-a)p Ft(')g(option)h(to)f(sp)s(ecify)g(an)150
-2853 y(indexed)34 b(arra)m(y)h(and)f(a)h(`)p Fs(-A)p
-Ft(')g(option)g(to)g(sp)s(ecify)g(an)f(asso)s(ciativ)m(e)j(arra)m(y)-8
-b(.)55 b(The)34 b Fs(read)f Ft(builtin)i(accepts)150
-2963 y(a)h(`)p Fs(-a)p Ft(')f(option)h(to)g(assign)g(a)f(list)h(of)g(w)
-m(ords)f(read)g(from)g(the)h(standard)e(input)h(to)h(an)f(arra)m(y)-8
-b(,)38 b(and)d(can)150 3072 y(read)c(v)-5 b(alues)31
-b(from)f(the)h(standard)f(input)g(in)m(to)i(individual)e(arra)m(y)h
-(elemen)m(ts.)44 b(The)30 b Fs(set)g Ft(and)g Fs(declare)150
-3182 y Ft(builtins)g(displa)m(y)g(arra)m(y)h(v)-5 b(alues)31
-b(in)f(a)h(w)m(a)m(y)g(that)g(allo)m(ws)h(them)e(to)h(b)s(e)f(reused)g
-(as)g(input.)150 3431 y Fr(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150
-3590 y Ft(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m
-(tly-visited)j(directories.)39 b(The)20 b Fs(pushd)g
-Ft(builtin)h(adds)g(directories)150 3700 y(to)42 b(the)f(stac)m(k)i(as)
+(\014rst)g(parameter)h(is)g(joined)f(with)h(the)150 1176
+y(b)s(eginning)29 b(part)g(of)h(the)f(original)i(w)m(ord,)e(and)g(the)h
+(expansion)f(of)h(the)f(last)i(parameter)e(is)h(joined)f(with)150
+1285 y(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)40
+b(This)28 b(is)h(analogous)h(to)f(the)h(expansion)e(of)h(the)g(sp)s
+(ecial)h(param-)150 1395 y(eters)g(`)p Ft(@)p Fu(')f(and)g(`)p
+Ft(*)p Fu('.)41 b Ft(${#)p Fj(name)p Ft([)p Fj(subscript)p
+Ft(]})24 b Fu(expands)k(to)i(the)g(length)g(of)f Ft(${)p
+Fj(name)p Ft([)p Fj(subscript)p Ft(]})p Fu(.)35 b(If)150
+1504 y Fr(subscript)29 b Fu(is)g(`)p Ft(@)p Fu(')f(or)h(`)p
+Ft(*)p Fu(',)g(the)g(expansion)f(is)h(the)f(n)m(um)m(b)s(er)g(of)g
+(elemen)m(ts)i(in)e(the)h(arra)m(y)-8 b(.)41 b(Referencing)29
+b(an)150 1614 y(arra)m(y)j(v)-5 b(ariable)32 b(without)f(a)h(subscript)
+e(is)h(equiv)-5 b(alen)m(t)33 b(to)f(referencing)f(with)g(a)h
+(subscript)e(of)h(0.)44 b(If)31 b(the)150 1724 y Fr(subscript)f
+Fu(used)e(to)i(reference)g(an)f(elemen)m(t)i(of)e(an)g(indexed)g(arra)m
+(y)h(ev)-5 b(aluates)30 b(to)g(a)g(n)m(um)m(b)s(er)e(less)h(than)150
+1833 y(zero,)37 b(it)f(is)f(in)m(terpreted)g(as)g(relativ)m(e)i(to)f
+(one)f(greater)i(than)d(the)i(maxim)m(um)e(index)h(of)g(the)g(arra)m(y)
+-8 b(,)38 b(so)150 1943 y(negativ)m(e)33 b(indices)e(coun)m(t)h(bac)m
+(k)f(from)g(the)g(end)f(of)h(the)g(arra)m(y)-8 b(,)32
+b(and)e(an)h(index)f(of)h(-1)h(refers)e(to)i(the)f(last)150
+2052 y(elemen)m(t.)275 2186 y(An)k(arra)m(y)i(v)-5 b(ariable)37
+b(is)g(considered)f(set)h(if)f(a)h(subscript)e(has)h(b)s(een)g
+(assigned)g(a)h(v)-5 b(alue.)59 b(The)36 b(n)m(ull)150
+2295 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275
+2429 y(It)29 b(is)h(p)s(ossible)f(to)h(obtain)g(the)f(k)m(eys)i
+(\(indices\))f(of)f(an)h(arra)m(y)g(as)f(w)m(ell)i(as)f(the)f(v)-5
+b(alues.)41 b($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p
+Fi(})150 2538 y Fu(and)39 b($)p Fi({)p Fu(!)p Fr(name)5
+b Fu([*])p Fi(})43 b Fu(expand)c(to)i(the)f(indices)h(assigned)f(in)g
+(arra)m(y)g(v)-5 b(ariable)41 b Fr(name)p Fu(.)70 b(The)39
+b(treatmen)m(t)150 2648 y(when)i(in)g(double)g(quotes)h(is)f(similar)h
+(to)h(the)e(expansion)h(of)f(the)h(sp)s(ecial)g(parameters)g(`)p
+Ft(@)p Fu(')g(and)f(`)p Ft(*)p Fu(')150 2757 y(within)30
+b(double)g(quotes.)275 2891 y(The)j Ft(unset)g Fu(builtin)h(is)g(used)g
+(to)h(destro)m(y)g(arra)m(ys.)52 b Ft(unset)29 b Fj(name)p
+Ft([)p Fj(subscript)p Ft(])h Fu(destro)m(ys)35 b(the)g(ar-)150
+3000 y(ra)m(y)j(elemen)m(t)h(at)g(index)e Fr(subscript)p
+Fu(.)61 b(Negativ)m(e)41 b(subscripts)36 b(to)i(indexed)g(arra)m(ys)g
+(are)g(in)m(terpreted)g(as)150 3110 y(describ)s(ed)f(ab)s(o)m(v)m(e.)67
+b(Care)38 b(m)m(ust)h(b)s(e)f(tak)m(en)h(to)h(a)m(v)m(oid)g(un)m(w)m
+(an)m(ted)e(side)h(e\013ects)h(caused)e(b)m(y)h(\014lename)150
+3220 y(expansion.)50 b Ft(unset)29 b Fj(name)p Fu(,)34
+b(where)f Fr(name)39 b Fu(is)34 b(an)f(arra)m(y)-8 b(,)36
+b(remo)m(v)m(es)f(the)f(en)m(tire)g(arra)m(y)-8 b(.)52
+b(A)33 b(subscript)g(of)150 3329 y(`)p Ft(*)p Fu(')e(or)f(`)p
+Ft(@)p Fu(')g(also)i(remo)m(v)m(es)f(the)g(en)m(tire)g(arra)m(y)-8
+b(.)275 3463 y(The)20 b Ft(declare)p Fu(,)h Ft(local)p
+Fu(,)h(and)e Ft(readonly)f Fu(builtins)h(eac)m(h)i(accept)g(a)g
+Ft(-a)e Fu(option)h(to)h(sp)s(ecify)f(an)f(indexed)150
+3572 y(arra)m(y)28 b(and)f(a)h Ft(-A)e Fu(option)i(to)g(sp)s(ecify)f
+(an)h(asso)s(ciativ)m(e)i(arra)m(y)-8 b(.)40 b(If)27
+b(b)s(oth)g(options)h(are)g(supplied,)f Ft(-A)f Fu(tak)m(es)150
+3682 y(precedence.)55 b(The)35 b Ft(read)f Fu(builtin)h(accepts)h(a)g
+Ft(-a)e Fu(option)i(to)g(assign)f(a)g(list)h(of)f(w)m(ords)g(read)g
+(from)g(the)150 3791 y(standard)h(input)g(to)i(an)f(arra)m(y)-8
+b(,)40 b(and)c(can)h(read)g(v)-5 b(alues)38 b(from)e(the)h(standard)g
+(input)f(in)m(to)i(individual)150 3901 y(arra)m(y)f(elemen)m(ts.)62
+b(The)36 b Ft(set)g Fu(and)h Ft(declare)d Fu(builtins)j(displa)m(y)g
+(arra)m(y)g(v)-5 b(alues)37 b(in)g(a)g(w)m(a)m(y)h(that)g(allo)m(ws)150
+4011 y(them)30 b(to)h(b)s(e)f(reused)g(as)g(input.)150
+4241 y Fs(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150
+4400 y Fu(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m
+(tly-visited)j(directories.)39 b(The)20 b Ft(pushd)g
+Fu(builtin)h(adds)g(directories)150 4510 y(to)42 b(the)f(stac)m(k)i(as)
e(it)h(c)m(hanges)g(the)f(curren)m(t)g(directory)-8 b(,)45
-b(and)40 b(the)i Fs(popd)e Ft(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed)
-150 3809 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j
+b(and)40 b(the)i Ft(popd)e Fu(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed)
+150 4620 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j
(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m(v)m(ed.)
-41 b(The)150 3919 y Fs(dirs)29 b Ft(builtin)h(displa)m(ys)h(the)f(con)m
-(ten)m(ts)i(of)f(the)f(directory)h(stac)m(k.)275 4064
+41 b(The)150 4729 y Ft(dirs)29 b Fu(builtin)h(displa)m(ys)h(the)f(con)m
+(ten)m(ts)i(of)f(the)f(directory)h(stac)m(k.)275 4863
y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f(also)h
-(visible)g(as)f(the)g(v)-5 b(alue)36 b(of)g(the)g Fs(DIRSTACK)e
-Ft(shell)150 4174 y(v)-5 b(ariable.)150 4384 y Fj(6.8.1)63
-b(Directory)40 b(Stac)m(k)g(Builtins)150 4561 y Fs(dirs)870
-4701 y(dirs)47 b([+)p Fi(N)57 b Fs(|)48 b(-)p Fi(N)11
-b Fs(])46 b([-clpv])630 4841 y Ft(Displa)m(y)35 b(the)f(list)g(of)g
-(curren)m(tly)g(remem)m(b)s(ered)f(directories.)51 b(Directories)36
-b(are)e(added)f(to)630 4951 y(the)28 b(list)h(with)f(the)g
-Fs(pushd)f Ft(command;)i(the)f Fs(popd)f Ft(command)h(remo)m(v)m(es)h
-(directories)g(from)630 5060 y(the)i(list.)630 5230 y
-Fs(+)p Fi(N)384 b Ft(Displa)m(ys)23 b(the)f Fq(N)10 b
-Ft(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h(left)g(of)g(the)g
-(list)g(prin)m(ted)1110 5340 y(b)m(y)30 b Fs(dirs)f Ft(when)h(in)m(v)m
-(ok)m(ed)i(without)e(options\),)h(starting)g(with)g(zero.)p
+(visible)g(as)f(the)g(v)-5 b(alue)36 b(of)g(the)g Ft(DIRSTACK)e
+Fu(shell)150 4972 y(v)-5 b(ariable.)150 5169 y Fk(6.8.1)63
+b(Directory)40 b(Stac)m(k)g(Builtins)150 5340 y Ft(dirs)p
eop end
-%%Page: 84 90
-TeXDict begin 84 89 bop 150 -116 a Ft(84)2572 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(-)p Fi(N)384 b Ft(Displa)m(ys)47
-b(the)g Fq(N)10 b Ft(th)46 b(directory)h(\(coun)m(ting)g(from)f(the)g
-(righ)m(t)h(of)g(the)f(list)1110 408 y(prin)m(ted)25
-b(b)m(y)g Fs(dirs)g Ft(when)f(in)m(v)m(ok)m(ed)j(without)f(options\),)h
-(starting)g(with)e(zero.)630 565 y Fs(-c)384 b Ft(Clears)31
+%%Page: 91 97
+TeXDict begin 91 96 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(91)870 299 y Ft(dirs)47
+b([-clpv])e([+)p Fj(N)i Ft(|)h(-)p Fj(N)p Ft(])630 435
+y Fu(Displa)m(y)35 b(the)f(list)g(of)g(curren)m(tly)g(remem)m(b)s(ered)
+f(directories.)51 b(Directories)36 b(are)e(added)f(to)630
+545 y(the)28 b(list)h(with)f(the)g Ft(pushd)f Fu(command;)i(the)f
+Ft(popd)f Fu(command)h(remo)m(v)m(es)h(directories)g(from)630
+654 y(the)i(list.)630 817 y Ft(-c)384 b Fu(Clears)31
b(the)f(directory)h(stac)m(k)h(b)m(y)e(deleting)h(all)h(of)e(the)h
-(elemen)m(ts.)630 722 y Fs(-l)384 b Ft(Pro)s(duces)30
-b(a)i(longer)g(listing;)h(the)f(default)f(listing)i(format)e(uses)g(a)h
-(tilde)g(to)1110 831 y(denote)f(the)f(home)h(directory)-8
-b(.)630 988 y Fs(-p)384 b Ft(Causes)30 b Fs(dirs)f Ft(to)i(prin)m(t)f
-(the)h(directory)g(stac)m(k)h(with)e(one)g(en)m(try)h(p)s(er)e(line.)
-630 1145 y Fs(-v)384 b Ft(Causes)36 b Fs(dirs)f Ft(to)i(prin)m(t)f(the)
-g(directory)h(stac)m(k)h(with)e(one)h(en)m(try)f(p)s(er)f(line,)1110
-1254 y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i
-(the)f(stac)m(k.)150 1411 y Fs(popd)870 1544 y(popd)47
-b([+)p Fi(N)57 b Fs(|)48 b(-)p Fi(N)11 b Fs(])46 b([-n])630
-1677 y Ft(Remo)m(v)m(e)26 b(the)e(top)g(en)m(try)h(from)e(the)h
-(directory)h(stac)m(k,)i(and)c Fs(cd)h Ft(to)h(the)f(new)f(top)i
-(directory)-8 b(.)630 1787 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m
-(en,)h Fs(popd)d Ft(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)
-g(stac)m(k)630 1897 y(and)f(p)s(erforms)e(a)j Fs(cd)f
-Ft(to)h(the)f(new)g(top)h(directory)-8 b(.)44 b(The)31
-b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered)f(from)630 2006
-y(0)d(starting)g(at)g(the)g(\014rst)f(directory)h(listed)g(with)f
-Fs(dirs)p Ft(;)h(i.e.,)i Fs(popd)c Ft(is)i(equiv)-5 b(alen)m(t)28
-b(to)f Fs(popd)630 2116 y(+0)p Ft(.)630 2273 y Fs(+)p
-Fi(N)384 b Ft(Remo)m(v)m(es)22 b(the)f Fq(N)10 b Ft(th)20
-b(directory)g(\(coun)m(ting)i(from)e(the)g(left)h(of)g(the)f(list)h
-(prin)m(ted)1110 2382 y(b)m(y)30 b Fs(dirs)p Ft(\),)g(starting)h(with)f
-(zero.)630 2539 y Fs(-)p Fi(N)384 b Ft(Remo)m(v)m(es)46
-b(the)g Fq(N)10 b Ft(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g
-(righ)m(t)g(of)g(the)g(list)1110 2648 y(prin)m(ted)30
-b(b)m(y)g Fs(dirs)p Ft(\),)g(starting)h(with)f(zero.)630
-2805 y Fs(-n)384 b Ft(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g
-(directory)g(when)e(remo)m(ving)j(directo-)1110 2915
-y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m(k)g
-(is)g(manipulated.)150 3071 y Fs(pushd)870 3205 y(pushd)46
-b([-n])h([+)p Fi(N)57 b Fs(|)48 b Fi(-N)58 b Fs(|)47
-b Fi(dir)57 b Fs(])630 3338 y Ft(Sa)m(v)m(e)29 b(the)f(curren)m(t)g
-(directory)g(on)g(the)g(top)g(of)g(the)g(directory)h(stac)m(k)g(and)e
-(then)h Fs(cd)f Ft(to)i Fq(dir)7 b Ft(.)630 3447 y(With)31
-b(no)f(argumen)m(ts,)h Fs(pushd)e Ft(exc)m(hanges)j(the)e(top)h(t)m(w)m
-(o)h(directories.)630 3604 y Fs(-n)384 b Ft(Suppresses)26
+(elemen)m(ts.)630 980 y Ft(-l)384 b Fu(Pro)s(duces)31
+b(a)h(listing)h(using)e(full)h(pathnames;)h(the)f(default)g(listing)h
+(format)1110 1089 y(uses)d(a)h(tilde)g(to)g(denote)g(the)f(home)h
+(directory)-8 b(.)630 1252 y Ft(-p)384 b Fu(Causes)30
+b Ft(dirs)f Fu(to)i(prin)m(t)f(the)h(directory)g(stac)m(k)h(with)e(one)
+g(en)m(try)h(p)s(er)e(line.)630 1415 y Ft(-v)384 b Fu(Causes)36
+b Ft(dirs)f Fu(to)i(prin)m(t)f(the)g(directory)h(stac)m(k)h(with)e(one)
+h(en)m(try)f(p)s(er)f(line,)1110 1524 y(pre\014xing)30
+b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f(stac)m(k.)630
+1687 y Ft(+)p Fj(N)384 b Fu(Displa)m(ys)23 b(the)f Fr(N)10
+b Fu(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h(left)g(of)g(the)g
+(list)g(prin)m(ted)1110 1797 y(b)m(y)30 b Ft(dirs)f Fu(when)h(in)m(v)m
+(ok)m(ed)i(without)e(options\),)h(starting)g(with)g(zero.)630
+1959 y Ft(-)p Fj(N)384 b Fu(Displa)m(ys)47 b(the)g Fr(N)10
+b Fu(th)46 b(directory)h(\(coun)m(ting)g(from)f(the)g(righ)m(t)h(of)g
+(the)f(list)1110 2069 y(prin)m(ted)25 b(b)m(y)g Ft(dirs)g
+Fu(when)f(in)m(v)m(ok)m(ed)j(without)f(options\),)h(starting)g(with)e
+(zero.)150 2232 y Ft(popd)870 2368 y(popd)47 b([-n])f([+)p
+Fj(N)h Ft(|)h(-)p Fj(N)p Ft(])630 2504 y Fu(Remo)m(v)m(e)26
+b(the)e(top)g(en)m(try)h(from)e(the)h(directory)h(stac)m(k,)i(and)c
+Ft(cd)h Fu(to)h(the)f(new)f(top)i(directory)-8 b(.)630
+2614 y(When)32 b(no)g(argumen)m(ts)h(are)g(giv)m(en,)h
+Ft(popd)d Fu(remo)m(v)m(es)j(the)f(top)f(directory)h(from)f(the)g(stac)
+m(k)630 2723 y(and)f(p)s(erforms)e(a)j Ft(cd)f Fu(to)h(the)f(new)g(top)
+h(directory)-8 b(.)44 b(The)31 b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered)
+f(from)630 2833 y(0)j(starting)g(at)g(the)f(\014rst)g(directory)g
+(listed)h(with)f Ft(dirs)p Fu(;)g(that)h(is,)g Ft(popd)e
+Fu(is)i(equiv)-5 b(alen)m(t)33 b(to)630 2942 y Ft(popd)c(+0)p
+Fu(.)630 3105 y Ft(-n)384 b Fu(Suppresses)27 b(the)j(normal)g(c)m
+(hange)g(of)g(directory)g(when)e(remo)m(ving)j(directo-)1110
+3215 y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m
+(k)g(is)g(manipulated.)630 3377 y Ft(+)p Fj(N)384 b Fu(Remo)m(v)m(es)22
+b(the)f Fr(N)10 b Fu(th)20 b(directory)g(\(coun)m(ting)i(from)e(the)g
+(left)h(of)g(the)f(list)h(prin)m(ted)1110 3487 y(b)m(y)30
+b Ft(dirs)p Fu(\),)g(starting)h(with)f(zero.)630 3650
+y Ft(-)p Fj(N)384 b Fu(Remo)m(v)m(es)46 b(the)g Fr(N)10
+b Fu(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g(righ)m(t)g(of)g
+(the)g(list)1110 3759 y(prin)m(ted)30 b(b)m(y)g Ft(dirs)p
+Fu(\),)g(starting)h(with)f(zero.)150 3922 y Ft(pushd)870
+4058 y(pushd)46 b([-n])h([+)p Fj(N)g Ft(|)g Fj(-N)h Ft(|)f
+Fj(dir)p Ft(])630 4194 y Fu(Sa)m(v)m(e)30 b(the)e(curren)m(t)g
+(directory)h(on)f(the)h(top)f(of)h(the)f(directory)h(stac)m(k)h(and)e
+(then)g Ft(cd)f Fu(to)i Fr(dir)p Fu(.)630 4304 y(With)i(no)f(argumen)m
+(ts,)h Ft(pushd)e Fu(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h
+(directories.)630 4467 y Ft(-n)384 b Fu(Suppresses)26
b(the)i(normal)h(c)m(hange)g(of)f(directory)h(when)e(adding)h
-(directories)1110 3714 y(to)j(the)g(stac)m(k,)h(so)e(that)h(only)g(the)
-f(stac)m(k)i(is)f(manipulated.)630 3870 y Fs(+)p Fi(N)384
-b Ft(Brings)29 b(the)f Fq(N)10 b Ft(th)29 b(directory)g(\(coun)m(ting)h
+(directories)1110 4576 y(to)j(the)g(stac)m(k,)h(so)e(that)h(only)g(the)
+f(stac)m(k)i(is)f(manipulated.)630 4739 y Ft(+)p Fj(N)384
+b Fu(Brings)29 b(the)f Fr(N)10 b Fu(th)29 b(directory)g(\(coun)m(ting)h
(from)e(the)g(left)i(of)e(the)h(list)g(prin)m(ted)1110
-3980 y(b)m(y)34 b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)
+4848 y(b)m(y)34 b Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))i(to)f(the)
f(top)g(of)h(the)f(list)h(b)m(y)f(rotating)i(the)1110
-4089 y(stac)m(k.)630 4246 y Fs(-)p Fi(N)384 b Ft(Brings)23
-b(the)g Fq(N)10 b Ft(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i
-(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 4356 y(b)m(y)34
-b Fs(dirs)p Ft(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h
-(the)f(list)h(b)m(y)f(rotating)i(the)1110 4465 y(stac)m(k.)630
-4622 y Fi(dir)336 b Ft(Mak)m(es)36 b(the)f(curren)m(t)g(w)m(orking)g
-(directory)g(b)s(e)f(the)h(top)g(of)g(the)g(stac)m(k,)j(and)1110
-4732 y(then)30 b(executes)i(the)e(equiv)-5 b(alen)m(t)32
-b(of)f(`)p Fs(cd)f Fq(dir)7 b Ft('.)39 b Fs(cd)p Ft(s)30
-b(to)h Fq(dir)7 b Ft(.)150 4961 y Fr(6.9)68 b(Con)l(trolling)47
-b(the)e(Prompt)150 5121 y Ft(The)24 b(v)-5 b(alue)24
-b(of)h(the)f(v)-5 b(ariable)25 b Fs(PROMPT_COMMAND)20
-b Ft(is)25 b(examined)f(just)g(b)s(efore)f(Bash)i(prin)m(ts)e(eac)m(h)j
-(primary)150 5230 y(prompt.)39 b(If)28 b Fs(PROMPT_COMMAND)d
-Ft(is)j(set)h(and)f(has)g(a)h(non-n)m(ull)f(v)-5 b(alue,)29
-b(then)f(the)h(v)-5 b(alue)29 b(is)f(executed)i(just)150
-5340 y(as)h(if)f(it)h(had)f(b)s(een)f(t)m(yp)s(ed)h(on)h(the)f(command)
-g(line.)p eop end
-%%Page: 85 91
-TeXDict begin 85 90 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(85)275 299 y(In)27
-b(addition,)j(the)f(follo)m(wing)h(table)f(describ)s(es)f(the)h(sp)s
-(ecial)g(c)m(haracters)h(whic)m(h)f(can)f(app)s(ear)g(in)h(the)150
-408 y(prompt)g(v)-5 b(ariables:)150 572 y Fs(\\a)384
-b Ft(A)30 b(b)s(ell)h(c)m(haracter.)150 735 y Fs(\\d)384
-b Ft(The)30 b(date,)h(in)f Fs(")p Ft(W)-8 b(eekda)m(y)32
-b(Mon)m(th)f(Date)p Fs(")h Ft(format)f(\(e.g.,)h Fs(")p
-Ft(T)-8 b(ue)30 b(Ma)m(y)h(26)p Fs(")p Ft(\).)150 897
-y Fs(\\D{)p Fi(format)11 b Fs(})630 1006 y Ft(The)27
-b Fq(format)i Ft(is)f(passed)e(to)i Fs(strftime)p Ft(\(3\))f(and)f(the)
-i(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)630
-1116 y(string;)42 b(an)d(empt)m(y)f Fq(format)j Ft(results)d(in)g(a)h
-(lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65
-b(The)630 1226 y(braces)31 b(are)f(required.)150 1388
-y Fs(\\e)384 b Ft(An)30 b(escap)s(e)h(c)m(haracter.)150
-1550 y Fs(\\h)384 b Ft(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
-(`.'.)150 1712 y Fs(\\H)384 b Ft(The)30 b(hostname.)150
-1875 y Fs(\\j)384 b Ft(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
-(tly)h(managed)g(b)m(y)f(the)g(shell.)150 2037 y Fs(\\l)384
-b Ft(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g
-(name.)150 2199 y Fs(\\n)384 b Ft(A)30 b(newline.)150
-2362 y Fs(\\r)384 b Ft(A)30 b(carriage)i(return.)150
-2524 y Fs(\\s)384 b Ft(The)22 b(name)g(of)h(the)f(shell,)i(the)f
-(basename)f(of)h Fs($0)f Ft(\(the)g(p)s(ortion)g(follo)m(wing)i(the)f
-(\014nal)e(slash\).)150 2686 y Fs(\\t)384 b Ft(The)30
-b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 2849
-y Fs(\\T)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.)
-150 3011 y Fs(\\@)384 b Ft(The)30 b(time,)h(in)f(12-hour)h(am/pm)f
-(format.)150 3173 y Fs(\\A)384 b Ft(The)30 b(time,)h(in)f(24-hour)h
-(HH:MM)g(format.)150 3335 y Fs(\\u)384 b Ft(The)30 b(username)g(of)g
-(the)h(curren)m(t)f(user.)150 3498 y Fs(\\v)384 b Ft(The)30
-b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 3660
-y Fs(\\V)384 b Ft(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g
-Fs(+)f Ft(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))150 3822
-y Fs(\\w)384 b Ft(The)34 b(curren)m(t)h(w)m(orking)g(directory)-8
-b(,)37 b(with)e Fs($HOME)e Ft(abbreviated)j(with)e(a)h(tilde)h(\(uses)f
-(the)630 3932 y Fs($PROMPT_DIRTRIM)26 b Ft(v)-5 b(ariable\).)150
-4094 y Fs(\\W)384 b Ft(The)30 b(basename)h(of)f Fs($PWD)p
-Ft(,)g(with)g Fs($HOME)f Ft(abbreviated)h(with)g(a)h(tilde.)150
-4257 y Fs(\\!)384 b Ft(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f
-(command.)150 4419 y Fs(\\#)384 b Ft(The)30 b(command)g(n)m(um)m(b)s
-(er)f(of)i(this)f(command.)150 4581 y Fs(\\$)384 b Ft(If)30
-b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Fs(#)p Ft(,)g(otherwise)g
-Fs($)p Ft(.)150 4743 y Fs(\\)p Fi(nnn)288 b Ft(The)30
-b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)s(ctal)i(v)
--5 b(alue)31 b Fq(nnn)p Ft(.)150 4906 y Fs(\\\\)384 b
-Ft(A)30 b(bac)m(kslash.)150 5068 y Fs(\\[)384 b Ft(Begin)38
+4958 y(stac)m(k.)630 5121 y Ft(-)p Fj(N)384 b Fu(Brings)23
+b(the)g Fr(N)10 b Fu(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i
+(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 5230 y(b)m(y)34
+b Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h
+(the)f(list)h(b)m(y)f(rotating)i(the)1110 5340 y(stac)m(k.)p
+eop end
+%%Page: 92 98
+TeXDict begin 92 97 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(92)630 299 y Fj(dir)336
+b Fu(Mak)m(es)31 b(the)g(curren)m(t)f(w)m(orking)g(directory)g(b)s(e)g
+(the)g(top)g(of)g(the)h(stac)m(k,)h(mak-)1110 408 y(ing)39
+b(it)g(the)g(new)f(curren)m(t)g(directory)h(as)g(if)g(it)g(had)f(b)s
+(een)g(supplied)f(as)i(an)1110 518 y(argumen)m(t)31 b(to)g(the)f
+Ft(cd)g Fu(builtin.)150 752 y Fs(6.9)68 b(Con)l(trolling)47
+b(the)e(Prompt)150 911 y Fu(The)24 b(v)-5 b(alue)24 b(of)h(the)f(v)-5
+b(ariable)25 b Ft(PROMPT_COMMAND)20 b Fu(is)25 b(examined)f(just)g(b)s
+(efore)f(Bash)i(prin)m(ts)e(eac)m(h)j(primary)150 1021
+y(prompt.)39 b(If)28 b Ft(PROMPT_COMMAND)d Fu(is)j(set)h(and)f(has)g(a)
+h(non-n)m(ull)f(v)-5 b(alue,)29 b(then)f(the)h(v)-5 b(alue)29
+b(is)f(executed)i(just)150 1130 y(as)h(if)f(it)h(had)f(b)s(een)f(t)m
+(yp)s(ed)h(on)h(the)f(command)g(line.)275 1266 y(In)d(addition,)j(the)f
+(follo)m(wing)h(table)f(describ)s(es)f(the)h(sp)s(ecial)g(c)m
+(haracters)h(whic)m(h)f(can)f(app)s(ear)g(in)h(the)150
+1375 y(prompt)g(v)-5 b(ariables)32 b Ft(PS1)d Fu(to)i
+Ft(PS4)p Fu(:)150 1536 y Ft(\\a)384 b Fu(A)30 b(b)s(ell)h(c)m
+(haracter.)150 1696 y Ft(\\d)384 b Fu(The)30 b(date,)h(in)f
+Ft(")p Fu(W)-8 b(eekda)m(y)32 b(Mon)m(th)f(Date)p Ft(")h
+Fu(format)f(\(e.g.,)h Ft(")p Fu(T)-8 b(ue)30 b(Ma)m(y)h(26)p
+Ft(")p Fu(\).)150 1857 y Ft(\\D{)p Fj(format)p Ft(})630
+1966 y Fu(The)c Fr(format)i Fu(is)f(passed)e(to)i Ft(strftime)p
+Fu(\(3\))f(and)f(the)i(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)
+630 2076 y(string;)42 b(an)d(empt)m(y)f Fr(format)j Fu(results)d(in)g
+(a)h(lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65
+b(The)630 2185 y(braces)31 b(are)f(required.)150 2346
+y Ft(\\e)384 b Fu(An)30 b(escap)s(e)h(c)m(haracter.)150
+2506 y Ft(\\h)384 b Fu(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
+(`.'.)150 2666 y Ft(\\H)384 b Fu(The)30 b(hostname.)150
+2826 y Ft(\\j)384 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
+(tly)h(managed)g(b)m(y)f(the)g(shell.)150 2987 y Ft(\\l)384
+b Fu(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g
+(name.)150 3147 y Ft(\\n)384 b Fu(A)30 b(newline.)150
+3307 y Ft(\\r)384 b Fu(A)30 b(carriage)i(return.)150
+3467 y Ft(\\s)384 b Fu(The)22 b(name)g(of)h(the)f(shell,)i(the)f
+(basename)f(of)h Ft($0)f Fu(\(the)g(p)s(ortion)g(follo)m(wing)i(the)f
+(\014nal)e(slash\).)150 3628 y Ft(\\t)384 b Fu(The)30
+b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 3788
+y Ft(\\T)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.)
+150 3948 y Ft(\\@)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(am/pm)f
+(format.)150 4109 y Ft(\\A)384 b Fu(The)30 b(time,)h(in)f(24-hour)h
+(HH:MM)g(format.)150 4269 y Ft(\\u)384 b Fu(The)30 b(username)g(of)g
+(the)h(curren)m(t)f(user.)150 4429 y Ft(\\v)384 b Fu(The)30
+b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 4589
+y Ft(\\V)384 b Fu(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g
+Ft(+)f Fu(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))150 4750
+y Ft(\\w)384 b Fu(The)34 b(curren)m(t)h(w)m(orking)g(directory)-8
+b(,)37 b(with)e Ft($HOME)e Fu(abbreviated)j(with)e(a)h(tilde)h(\(uses)f
+(the)630 4859 y Ft($PROMPT_DIRTRIM)26 b Fu(v)-5 b(ariable\).)150
+5019 y Ft(\\W)384 b Fu(The)30 b(basename)h(of)f Ft($PWD)p
+Fu(,)g(with)g Ft($HOME)f Fu(abbreviated)h(with)g(a)h(tilde.)150
+5180 y Ft(\\!)384 b Fu(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f
+(command.)150 5340 y Ft(\\#)384 b Fu(The)30 b(command)g(n)m(um)m(b)s
+(er)f(of)i(this)f(command.)p eop end
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(93)150 299 y Ft(\\$)384
+b Fu(If)30 b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Ft(#)p
+Fu(,)g(otherwise)g Ft($)p Fu(.)150 479 y Ft(\\)p Fj(nnn)288
+b Fu(The)30 b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)
+s(ctal)i(v)-5 b(alue)31 b Fr(nnn)p Fu(.)150 659 y Ft(\\\\)384
+b Fu(A)30 b(bac)m(kslash.)150 839 y Ft(\\[)384 b Fu(Begin)38
b(a)f(sequence)g(of)g(non-prin)m(ting)g(c)m(haracters.)61
b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630
-5178 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)
-150 5340 y Fs(\\])384 b Ft(End)29 b(a)i(sequence)g(of)f(non-prin)m
-(ting)g(c)m(haracters.)p eop end
-%%Page: 86 92
-TeXDict begin 86 91 bop 150 -116 a Ft(86)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(The)25 b(command)h(n)m(um)m(b)s(er)f
-(and)h(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m
-(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 408 y(of)h(a)f(command)
-h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f(list,)i(whic)m(h)f(ma)m
-(y)g(include)f(commands)g(restored)g(from)150 518 y(the)39
+948 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)150
+1128 y Ft(\\])384 b Fu(End)29 b(a)i(sequence)g(of)f(non-prin)m(ting)g
+(c)m(haracters.)275 1319 y(The)25 b(command)h(n)m(um)m(b)s(er)f(and)h
+(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m(t:)39
+b(the)26 b(history)g(n)m(um)m(b)s(er)150 1428 y(of)h(a)f(command)h(is)f
+(its)h(p)s(osition)f(in)g(the)h(history)f(list,)i(whic)m(h)f(ma)m(y)g
+(include)f(commands)g(restored)g(from)150 1538 y(the)39
b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e(History)h(F)-8
-b(acilities],)45 b(page)40 b(125\),)j(while)d(the)f(command)150
-628 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h
+b(acilities],)45 b(page)40 b(133\),)j(while)d(the)f(command)150
+1647 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g(the)g(sequence)h
(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)f(shell)150
-737 y(session.)275 874 y(After)35 b(the)g(string)g(is)g(deco)s(ded,)h
+1757 y(session.)275 1912 y(After)35 b(the)g(string)g(is)g(deco)s(ded,)h
(it)f(is)g(expanded)f(via)i(parameter)f(expansion,)i(command)d(substi-)
-150 983 y(tution,)k(arithmetic)f(expansion,)g(and)e(quote)h(remo)m(v)-5
-b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5 b(alue)36
-b(of)g(the)g Fs(promptvars)150 1093 y Ft(shell)31 b(option)f(\(see)i
-(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(43\).)150
-1328 y Fr(6.10)68 b(The)45 b(Restricted)h(Shell)150 1488
-y Ft(If)27 b(Bash)h(is)g(started)g(with)g(the)g(name)g
-Fs(rbash)p Ft(,)f(or)g(the)h(`)p Fs(--restricted)p Ft(')d(or)j(`)p
-Fs(-r)p Ft(')g(option)g(is)g(supplied)e(at)150 1597 y(in)m(v)m(o)s
-(cation,)k(the)d(shell)g(b)s(ecomes)h(restricted.)40
-b(A)27 b(restricted)h(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m
-(vironmen)m(t)150 1707 y(more)g(con)m(trolled)i(than)e(the)g(standard)g
-(shell.)40 b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m
-(tically)h(to)f Fs(bash)e Ft(with)150 1817 y(the)31 b(exception)g(that)
-g(the)g(follo)m(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s
-(erformed:)225 1953 y Fp(\017)60 b Ft(Changing)30 b(directories)h(with)
-g(the)f Fs(cd)g Ft(builtin.)225 2089 y Fp(\017)60 b Ft(Setting)31
+150 2022 y(tution,)k(arithmetic)f(expansion,)g(and)e(quote)h(remo)m(v)
+-5 b(al,)39 b(sub)5 b(ject)35 b(to)i(the)f(v)-5 b(alue)36
+b(of)g(the)g Ft(promptvars)150 2131 y Fu(shell)31 b(option)f(\(see)i
+(Section)f(4.2)g([Bash)g(Builtins],)g(page)g(48\).)150
+2395 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150 2554
+y Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
+Ft(rbash)p Fu(,)e(or)h(the)h Ft(--restricted)30 b Fu(or)k
+Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 2664 y(in)m(v)m(o)s(cation,)
+d(the)d(shell)g(b)s(ecomes)h(restricted.)40 b(A)27 b(restricted)h
+(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m(vironmen)m(t)150
+2773 y(more)g(con)m(trolled)i(than)e(the)g(standard)g(shell.)40
+b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m(tically)h(to)f
+Ft(bash)e Fu(with)150 2883 y(the)31 b(exception)g(that)g(the)g(follo)m
+(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s(erformed:)225
+3038 y Fq(\017)60 b Fu(Changing)30 b(directories)h(with)g(the)f
+Ft(cd)g Fu(builtin.)225 3183 y Fq(\017)60 b Fu(Setting)31
b(or)f(unsetting)h(the)g(v)-5 b(alues)30 b(of)h(the)f
-Fs(SHELL)p Ft(,)g Fs(PATH)p Ft(,)f Fs(ENV)p Ft(,)h(or)g
-Fs(BASH_ENV)e Ft(v)-5 b(ariables.)225 2224 y Fp(\017)60
-b Ft(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225
-2360 y Fp(\017)60 b Ft(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m
+Ft(SHELL)p Fu(,)g Ft(PATH)p Fu(,)f Ft(ENV)p Fu(,)h(or)g
+Ft(BASH_ENV)e Fu(v)-5 b(ariables.)225 3328 y Fq(\017)60
+b Fu(Sp)s(ecifying)30 b(command)g(names)g(con)m(taining)i(slashes.)225
+3472 y Fq(\017)60 b Fu(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m
(taining)i(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f
-Fs(.)h Ft(builtin)e(command.)225 2495 y Fp(\017)60 b
-Ft(Sp)s(ecifying)28 b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e(as)h
-(an)g(argumen)m(t)h(to)f(the)g(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f
-Fs(hash)330 2605 y Ft(builtin)h(command.)225 2740 y Fp(\017)60
-b Ft(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
-(en)m(vironmen)m(t)g(at)g(startup.)225 2876 y Fp(\017)60
-b Ft(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Fs(SHELLOPTS)d
-Ft(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
-3011 y Fp(\017)60 b Ft(Redirecting)31 b(output)f(using)g(the)h(`)p
-Fs(>)p Ft(',)g(`)p Fs(>|)p Ft(',)f(`)p Fs(<>)p Ft(',)h(`)p
-Fs(>&)p Ft(',)f(`)p Fs(&>)p Ft(',)h(and)e(`)p Fs(>>)p
-Ft(')i(redirection)g(op)s(erators.)225 3147 y Fp(\017)60
-b Ft(Using)31 b(the)f Fs(exec)f Ft(builtin)h(to)h(replace)h(the)e
-(shell)h(with)f(another)h(command.)225 3282 y Fp(\017)60
-b Ft(Adding)40 b(or)h(deleting)h(builtin)e(commands)h(with)f(the)h(`)p
-Fs(-f)p Ft(')g(and)f(`)p Fs(-d)p Ft(')h(options)g(to)h(the)f
-Fs(enable)330 3392 y Ft(builtin.)225 3527 y Fp(\017)60
-b Ft(Using)31 b(the)f Fs(enable)f Ft(builtin)h(command)g(to)h(enable)g
-(disabled)f(shell)g(builtins.)225 3663 y Fp(\017)60 b
-Ft(Sp)s(ecifying)30 b(the)g(`)p Fs(-p)p Ft(')h(option)g(to)g(the)f
-Fs(command)f Ft(builtin.)225 3798 y Fp(\017)60 b Ft(T)-8
-b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
-Fs(set)g(+r)p Ft(')g(or)g(`)p Fs(set)g(+o)g(restricted)p
-Ft('.)275 3961 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
-(y)g(startup)f(\014les)g(are)h(read.)275 4097 y(When)j(a)i(command)e
+Ft(.)h Fu(builtin)e(command.)225 3617 y Fq(\017)60 b
+Fu(Sp)s(ecifying)32 b(a)g(\014lename)h(con)m(taining)h(a)e(slash)g(as)h
+(an)f(argumen)m(t)h(to)g(the)f Ft(-p)g Fu(option)h(to)g(the)f
+Ft(hash)330 3727 y Fu(builtin)e(command.)225 3871 y Fq(\017)60
+b Fu(Imp)s(orting)30 b(function)g(de\014nitions)g(from)f(the)i(shell)g
+(en)m(vironmen)m(t)g(at)g(startup.)225 4016 y Fq(\017)60
+b Fu(P)m(arsing)31 b(the)f(v)-5 b(alue)31 b(of)g Ft(SHELLOPTS)d
+Fu(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
+4161 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p
+Ft(>)p Fu(',)g(`)p Ft(>|)p Fu(',)f(`)p Ft(<>)p Fu(',)h(`)p
+Ft(>&)p Fu(',)f(`)p Ft(&>)p Fu(',)h(and)e(`)p Ft(>>)p
+Fu(')i(redirection)g(op)s(erators.)225 4306 y Fq(\017)60
+b Fu(Using)31 b(the)f Ft(exec)f Fu(builtin)h(to)h(replace)h(the)e
+(shell)h(with)f(another)h(command.)225 4451 y Fq(\017)60
+b Fu(Adding)24 b(or)g(deleting)i(builtin)e(commands)g(with)h(the)f
+Ft(-f)g Fu(and)g Ft(-d)g Fu(options)h(to)h(the)e Ft(enable)f
+Fu(builtin.)225 4595 y Fq(\017)60 b Fu(Using)31 b(the)f
+Ft(enable)f Fu(builtin)h(command)g(to)h(enable)g(disabled)f(shell)g
+(builtins.)225 4740 y Fq(\017)60 b Fu(Sp)s(ecifying)30
+b(the)g Ft(-p)g Fu(option)h(to)g(the)g Ft(command)d Fu(builtin.)225
+4885 y Fq(\017)60 b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)
+f(with)g(`)p Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(set)g(+o)g(restricted)p
+Fu('.)275 5075 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
+(y)g(startup)f(\014les)g(are)h(read.)275 5230 y(When)j(a)i(command)e
(that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h
-(\(see)g(Section)g(3.8)g([Shell)150 4207 y(Scripts],)25
-b(page)e(34\),)j Fs(rbash)c Ft(turns)g(o\013)i(an)m(y)f(restrictions)h
-(in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)150
-4442 y Fr(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150 4602
-y Ft(Starting)34 b(Bash)f(with)g(the)g(`)p Fs(--posix)p
-Ft(')f(command-line)i(option)g(or)f(executing)h(`)p Fs(set)c(-o)g
-(posix)p Ft(')i(while)150 4711 y(Bash)26 b(is)g(running)e(will)j(cause)
-f(Bash)g(to)h(conform)f(more)g(closely)h(to)g(the)f Fl(posix)f
-Ft(standard)g(b)m(y)h(c)m(hanging)150 4821 y(the)31 b(b)s(eha)m(vior)f
-(to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f(b)m(y)g Fl(posix)g
-Ft(in)g(areas)h(where)f(the)h(Bash)f(default)h(di\013ers.)275
-4957 y(When)f(in)m(v)m(ok)m(ed)h(as)g Fs(sh)p Ft(,)f(Bash)h(en)m(ters)g
-Fl(posix)e Ft(mo)s(de)h(after)h(reading)g(the)f(startup)g(\014les.)275
-5094 y(The)f(follo)m(wing)j(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)
-p Fl(posix)h Ft(mo)s(de')h(is)f(in)g(e\013ect:)199 5230
-y(1.)61 b(When)28 b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e
-(longer)h(exists,)h(Bash)f(will)g(re-searc)m(h)h Fs($PATH)d
-Ft(to)i(\014nd)330 5340 y(the)i(new)e(lo)s(cation.)43
-b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p
-Fs(shopt)f(-s)h(checkhash)p Ft('.)p eop end
-%%Page: 87 93
-TeXDict begin 87 92 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(87)199 299 y(2.)61
-b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s
-(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h(with)f(a)330
-408 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
-540 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)m
-(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
-(is)330 650 y(`Stopp)s(ed\()p Fq(signame)5 b Ft(\)',)31
-b(where)f Fq(signame)36 b Ft(is,)31 b(for)f(example,)h
-Fs(SIGTSTP)p Ft(.)199 781 y(4.)61 b(The)27 b Fs(bg)g
-Ft(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s(e)f(eac)m
-(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 891
+(\(see)g(Section)g(3.8)g([Shell)150 5340 y(Scripts],)25
+b(page)e(39\),)j Ft(rbash)c Fu(turns)g(o\013)i(an)m(y)f(restrictions)h
+(in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)p
+eop end
+%%Page: 94 100
+TeXDict begin 94 99 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(94)150 299 y Fs(6.11)68
+b(Bash)45 b(POSIX)f(Mo)t(de)150 458 y Fu(Starting)39
+b(Bash)f(with)g(the)h Ft(--posix)d Fu(command-line)j(option)g(or)f
+(executing)h(`)p Ft(set)30 b(-o)g(posix)p Fu(')37 b(while)150
+568 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h(conform)f
+(more)g(closely)h(to)g(the)f Fm(posix)f Fu(standard)g(b)m(y)h(c)m
+(hanging)150 677 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g(sp)
+s(eci\014ed)f(b)m(y)g Fm(posix)g Fu(in)g(areas)h(where)f(the)h(Bash)f
+(default)h(di\013ers.)275 811 y(When)f(in)m(v)m(ok)m(ed)h(as)g
+Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g Fm(posix)e Fu(mo)s(de)h(after)h
+(reading)g(the)f(startup)g(\014les.)275 944 y(The)f(follo)m(wing)j
+(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fm(posix)h
+Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 1077 y(1.)61 b(When)28
+b(a)i(command)e(in)g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)
+f(will)g(re-searc)m(h)h Ft($PATH)d Fu(to)i(\014nd)330
+1187 y(the)i(new)e(lo)s(cation.)43 b(This)29 b(is)i(also)g(a)m(v)-5
+b(ailable)33 b(with)d(`)p Ft(shopt)f(-s)h(checkhash)p
+Fu('.)199 1320 y(2.)61 b(The)42 b(message)h(prin)m(ted)e(b)m(y)h(the)g
+(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h(when)f(a)h(job)g(exits)h
+(with)f(a)330 1430 y(non-zero)31 b(status)g(is)f(`Done\(status\)'.)199
+1563 y(3.)61 b(The)40 b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)
+m(trol)h(co)s(de)g(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e
+(is)330 1673 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31
+b(where)f Fr(signame)36 b Fu(is,)31 b(for)f(example,)h
+Ft(SIGTSTP)p Fu(.)199 1806 y(4.)61 b(The)27 b Ft(bg)g
+Fu(builtin)g(uses)g(the)h(required)f(format)h(to)g(describ)s(e)f(eac)m
+(h)i(job)e(placed)h(in)f(the)h(bac)m(kground,)330 1916
y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g(indication)h(of)f(whether)f
(the)h(job)g(is)g(the)h(curren)m(t)e(or)h(previous)g(job.)199
-1022 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
+2049 y(5.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
-330 1132 y(undergo)30 b(alias)h(expansion.)199 1263 y(6.)61
-b(The)38 b Fl(posix)h Fs(PS1)f Ft(and)g Fs(PS2)g Ft(expansions)g(of)i
-(`)p Fs(!)p Ft(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
-Fs(!!)p Ft(')h(to)g(`)p Fs(!)p Ft(')h(are)330 1373 y(enabled,)26
+330 2159 y(undergo)30 b(alias)h(expansion.)199 2292 y(6.)61
+b(The)38 b Fm(posix)h Ft(PS1)f Fu(and)g Ft(PS2)g Fu(expansions)g(of)i
+(`)p Ft(!)p Fu(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
+Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 2401 y(enabled,)26
b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
-b(alues)25 b(of)g Fs(PS1)f Ft(and)h Fs(PS2)f Ft(regardless)330
-1482 y(of)31 b(the)f(setting)i(of)e(the)h Fs(promptvars)c
-Ft(option.)199 1614 y(7.)61 b(The)30 b Fl(posix)g Ft(startup)f(\014les)
-i(are)g(executed)g(\()p Fs($ENV)p Ft(\))f(rather)g(than)g(the)h(normal)
-f(Bash)g(\014les.)199 1745 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
+b(alues)25 b(of)g Ft(PS1)f Fu(and)h Ft(PS2)f Fu(regardless)330
+2511 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
+Fu(option.)199 2644 y(7.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
+i(are)g(executed)g(\()p Ft($ENV)p Fu(\))f(rather)g(than)g(the)h(normal)
+f(Bash)g(\014les.)199 2778 y(8.)61 b(Tilde)30 b(expansion)g(is)f(only)h
(p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g
-(rather)330 1855 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
-(on)e(the)h(line.)199 1987 y(9.)61 b(The)30 b(default)g(history)h
-(\014le)f(is)h(`)p Fs(~/.sh_history)p Ft(')c(\(this)k(is)f(the)g
-(default)h(v)-5 b(alue)31 b(of)f Fs($HISTFILE)p Ft(\).)154
-2118 y(10.)61 b(The)23 b(output)f(of)i(`)p Fs(kill)29
-b(-l)p Ft(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g(on)g(a)h
-(single)g(line,)h(separated)e(b)m(y)g(spaces,)330 2228
-y(without)30 b(the)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
-2359 y(11.)61 b(The)30 b Fs(kill)f Ft(builtin)h(do)s(es)g(not)h(accept)
-h(signal)f(names)f(with)g(a)h(`)p Fs(SIG)p Ft(')f(pre\014x.)154
-2491 y(12.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g
-Fq(\014lename)k Ft(in)30 b Fs(.)g Fq(\014lename)36 b
-Ft(is)31 b(not)f(found.)154 2622 y(13.)61 b(Non-in)m(teractiv)m(e)41
+(rather)330 2887 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
+(on)e(the)h(line.)199 3021 y(9.)61 b(The)31 b Ft(command)e
+Fu(builtin)i(do)s(es)g(not)h(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e)
+h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)330 3130 y(gumen)m(ts)40
+b(from)e(expanding)h(them)g(as)h(assignmen)m(t)g(statemen)m(ts;)46
+b(when)38 b(not)i(in)f Fm(posix)f Fu(mo)s(de,)330 3240
+y(assignmen)m(t)k(builtins)e(lose)h(their)g(assignmen)m(t)h(statemen)m
+(t)h(expansion)d(prop)s(erties)g(when)g(pre-)330 3349
+y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154 3483 y(10.)61
+b(The)30 b(default)g(history)h(\014le)f(is)h Ft(~/.sh_history)26
+b Fu(\(this)31 b(is)f(the)h(default)g(v)-5 b(alue)30
+b(of)h Ft($HISTFILE)p Fu(\).)154 3616 y(11.)61 b(The)23
+b(output)f(of)i(`)p Ft(kill)29 b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g
+(signal)f(names)g(on)g(a)h(single)g(line,)h(separated)e(b)m(y)g
+(spaces,)330 3726 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)
+154 3859 y(12.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h
+(accept)h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
+3992 y(13.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g
+Fr(\014lename)k Fu(in)30 b Ft(.)g Fr(\014lename)36 b
+Fu(is)31 b(not)f(found.)154 4125 y(14.)61 b(Non-in)m(teractiv)m(e)41
b(shells)d(exit)h(if)f(a)g(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h
-(expansion)f(results)f(in)h(an)330 2732 y(in)m(v)-5 b(alid)31
-b(expression.)154 2863 y(14.)61 b(Non-in)m(teractiv)m(e)27
+(expansion)f(results)f(in)h(an)330 4235 y(in)m(v)-5 b(alid)31
+b(expression.)154 4368 y(15.)61 b(Non-in)m(teractiv)m(e)27
b(shells)c(exit)i(if)e(there)h(is)f(a)h(syn)m(tax)g(error)f(in)g(a)h
-(script)f(read)g(with)h(the)f Fs(.)g Ft(or)h Fs(source)330
-2973 y Ft(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i
-(the)f Fs(eval)f Ft(builtin.)154 3104 y(15.)61 b(Redirection)25
+(script)f(read)g(with)h(the)f Ft(.)g Fu(or)h Ft(source)330
+4478 y Fu(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i
+(the)f Ft(eval)f Fu(builtin.)154 4611 y(16.)61 b(Redirection)25
b(op)s(erators)f(do)g(not)g(p)s(erform)f(\014lename)h(expansion)g(on)g
-(the)g(w)m(ord)f(in)h(the)g(redirection)330 3214 y(unless)30
-b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154 3345 y(16.)61
+(the)g(w)m(ord)f(in)h(the)g(redirection)330 4721 y(unless)30
+b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154 4854 y(17.)61
b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e(w)m(ord)h
(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)154
-3477 y(17.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
-b(alid)35 b(shell)f Fs(name)p Ft(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
-g(not)g(con)m(tain)g(c)m(haracters)330 3587 y(other)e(than)g(letters,)h
+4987 y(18.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
+b(alid)35 b(shell)f Ft(name)p Fu(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
+g(not)g(con)m(tain)g(c)m(haracters)330 5097 y(other)e(than)g(letters,)h
(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
-(digit.)49 b(Declaring)330 3696 y(a)31 b(function)f(with)g(an)g(in)m(v)
+(digit.)49 b(Declaring)330 5207 y(a)31 b(function)f(with)g(an)g(in)m(v)
-5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
-(non-in)m(teractiv)m(e)j(shells.)154 3828 y(18.)61 b
-Fl(posix)30 b Ft(sp)s(ecial)h(builtins)e(are)i(found)e(b)s(efore)h
+(non-in)m(teractiv)m(e)j(shells.)154 5340 y(19.)61 b(F)-8
+b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g(one)f
+(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)p eop
+end
+%%Page: 95 101
+TeXDict begin 95 100 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(95)154 299 y(20.)61
+b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e(b)s(efore)h
(shell)h(functions)f(during)f(command)h(lo)s(okup.)154
-3959 y(19.)61 b(The)29 b Fs(time)g Ft(reserv)m(ed)h(w)m(ord)g(ma)m(y)g
+427 y(21.)61 b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g
(b)s(e)g(used)f(b)m(y)h(itself)g(as)g(a)h(command.)40
-b(When)30 b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 4069
+b(When)30 b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 536
y(it)33 b(displa)m(ys)g(timing)g(statistics)h(for)e(the)h(shell)g(and)f
-(its)g(completed)i(c)m(hildren.)47 b(The)32 b Fs(TIMEFORMAT)330
-4178 y Ft(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
-(timing)h(information.)154 4310 y(20.)61 b(When)33 b(parsing)f(and)g
-(expanding)g(a)i($)p Fs({)6 b Ft(.)22 b(.)g(.)11 b Fs(})33
-b Ft(expansion)f(that)i(app)s(ears)e(within)g(double)g(quotes,)330
-4419 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
+(its)g(completed)i(c)m(hildren.)47 b(The)32 b Ft(TIMEFORMAT)330
+646 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
+(timing)h(information.)154 774 y(22.)61 b(When)33 b(parsing)g(and)f
+(expanding)h(a)h($)p Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33
+b Fu(expansion)g(that)h(app)s(ears)f(within)f(double)h(quotes,)330
+883 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330
-4529 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
+993 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e
-(pattern)330 4639 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
+(pattern)330 1103 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
-4770 y(21.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
-Fs(time)d Ft(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m
-(en)h(b)s(egins)d(with)i(a)330 4880 y(`)p Fs(-)p Ft('.)154
-5011 y(22.)61 b(If)24 b(a)g Fl(posix)g Ft(sp)s(ecial)h(builtin)f
+1230 y(23.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
+Ft(time)d Fu(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m
+(en)h(b)s(egins)d(with)i(a)330 1340 y(`)p Ft(-)p Fu('.)154
+1468 y(24.)61 b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f
(returns)f(an)h(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e
-(exits.)39 b(The)24 b(fatal)330 5121 y(errors)30 b(are)h(those)f
-(listed)h(in)f(the)h Fl(posix)e Ft(standard,)h(and)g(include)g(things)g
-(lik)m(e)i(passing)e(incorrect)330 5230 y(options,)43
+(exits.)39 b(The)24 b(fatal)330 1577 y(errors)30 b(are)h(those)f
+(listed)h(in)f(the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g
+(lik)m(e)i(passing)e(incorrect)330 1687 y(options,)43
b(redirection)d(errors,)i(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e
-(for)g(assignmen)m(ts)i(preceding)f(the)330 5340 y(command)30
-b(name,)h(and)f(so)g(on.)p eop end
-%%Page: 88 94
-TeXDict begin 88 93 bop 150 -116 a Ft(88)2572 b(Bash)31
-b(Reference)g(Man)m(ual)154 299 y(23.)61 b(A)31 b(non-in)m(teractiv)m
+(for)g(assignmen)m(ts)i(preceding)f(the)330 1797 y(command)30
+b(name,)h(and)f(so)g(on.)154 1924 y(25.)61 b(A)31 b(non-in)m(teractiv)m
(e)j(shell)d(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5
b(ariable)32 b(assignmen)m(t)g(error)e(o)s(ccurs)330
-408 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m(t)
-h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
-518 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
+2034 y(when)38 b(no)h(command)g(name)g(follo)m(ws)i(the)e(assignmen)m
+(t)h(statemen)m(ts.)69 b(A)39 b(v)-5 b(ariable)40 b(assignmen)m(t)330
+2144 y(error)30 b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g
(assign)f(a)h(v)-5 b(alue)31 b(to)g(a)g(readonly)f(v)-5
-b(ariable.)154 645 y(24.)61 b(A)28 b(non-in)m(teractiv)m(e)j(shell)e
-(exists)f(with)g(an)g(error)g(status)h(if)f(a)g(v)-5
-b(ariable)29 b(assignmen)m(t)g(error)f(o)s(ccurs)330
-755 y(in)i(an)g(assignmen)m(t)i(statemen)m(t)g(preceding)e(a)h(sp)s
-(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f(other)h(simple)330
-864 y(command.)154 991 y(25.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)
-e(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5
-b(ariable)44 b(in)f(a)g Fs(for)330 1101 y Ft(statemen)m(t)32
-b(or)f(the)f(selection)i(v)-5 b(ariable)32 b(in)e(a)g
-Fs(select)f Ft(statemen)m(t)j(is)f(a)f(readonly)h(v)-5
-b(ariable.)154 1228 y(26.)61 b(Pro)s(cess)30 b(substitution)g(is)h(not)
-f(a)m(v)-5 b(ailable.)154 1354 y(27.)61 b(Assignmen)m(t)23
-b(statemen)m(ts)h(preceding)e Fl(posix)f Ft(sp)s(ecial)i(builtins)f(p)s
-(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 1464
-y(after)31 b(the)f(builtin)g(completes.)154 1591 y(28.)61
+b(ariable.)154 2271 y(26.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d
+(exits)h(with)e(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32
+b(assignmen)m(t)g(error)e(o)s(ccurs)330 2381 y(in)g(an)g(assignmen)m(t)
+i(statemen)m(t)g(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g
+(with)h(an)m(y)f(other)h(simple)330 2491 y(command.)154
+2619 y(27.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f
+(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44
+b(in)f(a)g Ft(for)330 2728 y Fu(statemen)m(t)32 b(or)f(the)f(selection)
+i(v)-5 b(ariable)32 b(in)e(a)g Ft(select)f Fu(statemen)m(t)j(is)f(a)f
+(readonly)h(v)-5 b(ariable.)154 2856 y(28.)61 b(Pro)s(cess)30
+b(substitution)g(is)h(not)f(a)m(v)-5 b(ailable.)154 2984
+y(29.)61 b(While)32 b(v)-5 b(ariable)32 b(indirection)f(is)g(a)m(v)-5
+b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h(`)p
+Ft(#)p Fu(')f(and)f(`)p Ft(?)p Fu(')h(sp)s(ecial)330
+3093 y(parameters.)154 3221 y(30.)61 b(Assignmen)m(t)23
+b(statemen)m(ts)h(preceding)e Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s
+(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 3331
+y(after)31 b(the)f(builtin)g(completes.)154 3459 y(31.)61
b(Assignmen)m(t)35 b(statemen)m(ts)h(preceding)f(shell)f(function)g
(calls)i(p)s(ersist)e(in)g(the)h(shell)f(en)m(vironmen)m(t)330
-1700 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
-Fl(posix)e Ft(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
-(executed.)154 1827 y(29.)61 b(The)38 b Fs(export)f Ft(and)g
-Fs(readonly)f Ft(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)
-g(the)h(format)g(re-)330 1937 y(quired)30 b(b)m(y)g Fl(posix)p
-Ft(.)154 2064 y(30.)61 b(The)30 b Fs(trap)f Ft(builtin)h(displa)m(ys)g
-(signal)i(names)e(without)g(the)h(leading)g Fs(SIG)p
-Ft(.)154 2191 y(31.)61 b(The)39 b Fs(trap)e Ft(builtin)i(do)s(esn't)g
+3568 y(after)d(the)f(function)h(returns,)e(as)i(if)f(a)h
+Fm(posix)e Fu(sp)s(ecial)i(builtin)f(command)g(had)g(b)s(een)g
+(executed.)154 3696 y(32.)61 b(The)38 b Ft(export)f Fu(and)g
+Ft(readonly)f Fu(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)
+g(the)h(format)g(re-)330 3806 y(quired)30 b(b)m(y)g Fm(posix)p
+Fu(.)154 3934 y(33.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
+(signal)i(names)e(without)g(the)h(leading)g Ft(SIG)p
+Fu(.)154 4061 y(34.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
(c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
-(signal)i(sp)s(eci\014cation)330 2300 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(sp)s(eci\014cation)330 4171 y(and)30 b(rev)m(ert)i(the)e
(signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
-(is,)g(unless)f(that)h(argumen)m(t)330 2410 y(consists)e(solely)g(of)g
+(is,)g(unless)f(that)h(argumen)m(t)330 4281 y(consists)e(solely)g(of)g
(digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
-2519 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
-(osition,)f(they)g(should)f(use)h(`)p Fs(-)p Ft(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 2646 y(32.)61 b(The)21 b Fs(.)h Ft(and)f
-Fs(source)f Ft(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
+4390 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+(osition,)f(they)g(should)f(use)h(`)p Ft(-)p Fu(')g(as)g(the)g(\014rst)
+f(argumen)m(t.)154 4518 y(35.)61 b(The)21 b Ft(.)h Fu(and)f
+Ft(source)f Fu(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f
(directory)h(for)g(the)g(\014lename)f(argumen)m(t)330
-2756 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
-Fs(PATH)p Ft(.)154 2883 y(33.)61 b(Subshells)20 b(spa)m(wned)h(to)h
-(execute)g(command)g(substitutions)f(inherit)g(the)g(v)-5
-b(alue)22 b(of)g(the)f(`)p Fs(-e)p Ft(')g(option)330
-2992 y(from)34 b(the)h(paren)m(t)g(shell.)55 b(When)34
-b(not)i(in)e Fl(posix)g Ft(mo)s(de,)i(Bash)f(clears)h(the)f(`)p
-Fs(-e)p Ft(')f(option)i(in)e(suc)m(h)330 3102 y(subshells.)154
-3229 y(34.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e
-(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 3356
-y(35.)61 b(When)43 b(the)g Fs(alias)f Ft(builtin)g(displa)m(ys)i(alias)
-g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)
-330 3465 y(leading)31 b(`)p Fs(alias)e Ft(')i(unless)f(the)g(`)p
-Fs(-p)p Ft(')g(option)h(is)g(supplied.)154 3592 y(36.)61
-b(When)40 b(the)g Fs(set)f Ft(builtin)h(is)g(in)m(v)m(ok)m(ed)h
+4628 y(if)30 b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g
+Ft(PATH)p Fu(.)154 4756 y(36.)61 b(Subshells)24 b(spa)m(wned)h(to)h
+(execute)h(command)f(substitutions)f(inherit)g(the)h(v)-5
+b(alue)26 b(of)g(the)g Ft(-e)e Fu(option)330 4865 y(from)37
+b(the)h(paren)m(t)g(shell.)63 b(When)38 b(not)g(in)f
+Fm(posix)g Fu(mo)s(de,)j(Bash)e(clears)g(the)g Ft(-e)g
+Fu(option)g(in)f(suc)m(h)330 4975 y(subshells.)154 5103
+y(37.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i(enabled,)e(ev)m
+(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)154 5230 y(38.)61
+b(When)43 b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i(alias)g
+(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f(with)g(a)330
+5340 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
+Ft(-p)g Fu(option)h(is)f(supplied.)p eop end
+%%Page: 96 102
+TeXDict begin 96 101 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(96)154 299 y(39.)61
+b(When)40 b(the)g Ft(set)f Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h
(without)f(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g
-(function)330 3702 y(names)30 b(and)g(de\014nitions.)154
-3829 y(37.)61 b(When)36 b(the)g Fs(set)g Ft(builtin)g(is)g(in)m(v)m(ok)
-m(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
-b(v)-5 b(alues)37 b(without)330 3938 y(quotes,)26 b(unless)d(they)i
-(con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
-g(con)m(tains)i(nonprin)m(ting)330 4048 y(c)m(haracters.)154
-4175 y(38.)61 b(When)35 b(the)g Fs(cd)f Ft(builtin)h(is)g(in)m(v)m(ok)m
-(ed)i(in)d Fq(logical)41 b Ft(mo)s(de,)36 b(and)f(the)g(pathname)g
-(constructed)g(from)330 4284 y Fs($PWD)i Ft(and)h(the)h(directory)f
+(function)330 408 y(names)30 b(and)g(de\014nitions.)154
+543 y(40.)61 b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)m
+(ed)i(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
+b(v)-5 b(alues)37 b(without)330 653 y(quotes,)26 b(unless)d(they)i(con)
+m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)g
+(con)m(tains)i(nonprin)m(ting)330 762 y(c)m(haracters.)154
+897 y(41.)61 b(When)35 b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m
+(ed)i(in)d Fr(logical)41 b Fu(mo)s(de,)36 b(and)f(the)g(pathname)g
+(constructed)g(from)330 1006 y Ft($PWD)i Fu(and)h(the)h(directory)f
(name)h(supplied)e(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g
-(an)f(existing)330 4394 y(directory)-8 b(,)32 b Fs(cd)d
-Ft(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
-Fq(ph)m(ysical)j Ft(mo)s(de.)154 4521 y(39.)61 b(The)36
-b Fs(pwd)f Ft(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
+(an)f(existing)330 1116 y(directory)-8 b(,)32 b Ft(cd)d
+Fu(will)i(fail)g(instead)g(of)f(falling)h(bac)m(k)h(to)f
+Fr(ph)m(ysical)j Fu(mo)s(de.)154 1250 y(42.)61 b(The)36
+b Ft(pwd)f Fu(builtin)h(v)m(eri\014es)h(that)g(the)f(v)-5
b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h(curren)m(t)f
-(directory)-8 b(,)330 4631 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
-(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h(`)p
-Fs(-P)p Ft(')f(option.)154 4757 y(40.)61 b(When)35 b(listing)g(the)g
-(history)-8 b(,)36 b(the)f Fs(fc)g Ft(builtin)f(do)s(es)g(not)h
-(include)g(an)f(indication)i(of)f(whether)f(or)330 4867
+(directory)-8 b(,)330 1360 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m
+(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f(system)h(with)f(the)h
+Ft(-P)e Fu(option.)154 1494 y(43.)61 b(When)35 b(listing)g(the)g
+(history)-8 b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s(es)g(not)h
+(include)g(an)f(indication)i(of)f(whether)f(or)330 1604
y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154
-4994 y(41.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
-Fs(fc)g Ft(is)g Fs(ed)p Ft(.)154 5121 y(42.)61 b(The)37
-b Fs(type)g Ft(and)g Fs(command)f Ft(builtins)i(will)g(not)g(rep)s(ort)
+1738 y(44.)61 b(The)30 b(default)g(editor)h(used)f(b)m(y)g
+Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 1873 y(45.)61 b(The)37
+b Ft(type)g Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g(rep)s(ort)
f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-5230 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+1983 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
-g(\014le)330 5340 y(found)i(in)h Fs($PATH)p Ft(.)p eop
-end
-%%Page: 89 95
-TeXDict begin 89 94 bop 150 -116 a Ft(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(89)154 299 y(43.)61
-b(The)33 b Fs(vi)f Ft(editing)i(mo)s(de)f(will)g(in)m(v)m(ok)m(e)i(the)
-e Fs(vi)g Ft(editor)h(directly)f(when)f(the)i(`)p Fs(v)p
-Ft(')f(command)g(is)g(run,)330 408 y(instead)e(of)f(c)m(hec)m(king)i
-Fs($VISUAL)d Ft(and)g Fs($EDITOR)p Ft(.)154 543 y(44.)61
-b(When)41 b(the)g Fs(xpg_echo)e Ft(option)i(is)g(enabled,)j(Bash)d(do)s
-(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-653 y(gumen)m(ts)35 b(to)g Fs(echo)e Ft(as)i(options.)54
+g(\014le)330 2092 y(found)i(in)h Ft($PATH)p Fu(.)154
+2227 y(46.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
+(ok)m(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
+Ft(v)p Fu(')f(command)g(is)g(run,)330 2336 y(instead)e(of)f(c)m(hec)m
+(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 2471
+y(47.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
+(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
+2580 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
-g(c)m(haracters)h(are)330 762 y(con)m(v)m(erted.)154
-897 y(45.)61 b(The)30 b Fs(ulimit)f Ft(builtin)g(uses)h(a)h(blo)s(c)m
-(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h(`)p Fs(-c)p
-Ft(')f(and)g(`)p Fs(-f)p Ft(')g(options.)154 1031 y(46.)61
-b(The)39 b(arriv)-5 b(al)41 b(of)f Fs(SIGCHLD)e Ft(when)h(a)h(trap)g
-(is)g(set)h(on)f Fs(SIGCHLD)e Ft(do)s(es)h(not)h(in)m(terrupt)g(the)g
-Fs(wait)330 1141 y Ft(builtin)c(and)h(cause)g(it)h(to)f(return)f
+g(c)m(haracters)h(are)330 2690 y(con)m(v)m(erted.)154
+2824 y(48.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
+(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h Ft(-c)f
+Fu(and)g Ft(-f)f Fu(options.)154 2959 y(49.)61 b(The)39
+b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h
+(on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
+Ft(wait)330 3068 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
-(for)f(eac)m(h)330 1250 y(c)m(hild)31 b(that)g(exits.)275
-1410 y(There)j(is)g(other)h Fl(posix)f Ft(b)s(eha)m(vior)h(that)g(Bash)
+(for)f(eac)m(h)330 3178 y(c)m(hild)31 b(that)g(exits.)154
+3313 y(50.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
+(terrupted)h(b)m(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s
+(een)f(set.)40 b(If)27 b(Bash)330 3422 y(receiv)m(es)41
+b(a)f(trapp)s(ed)e(signal)i(while)f(executing)h Ft(read)p
+Fu(,)h(the)e(trap)h(handler)e(executes)i(and)f Ft(read)330
+3532 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)275
+3691 y(There)k(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h(that)g(Bash)
g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)
-150 1519 y Fl(posix)d Ft(mo)s(de.)40 b(Sp)s(eci\014cally:)199
-1654 y(1.)61 b(The)30 b Fs(fc)f Ft(builtin)h(c)m(hec)m(ks)i
-Fs($EDITOR)c Ft(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
-(if)f Fs(FCEDIT)f Ft(is)h(unset,)330 1763 y(rather)g(than)g(defaulting)
-h(directly)g(to)g Fs(ed)p Ft(.)40 b Fs(fc)30 b Ft(uses)g
-Fs(ed)g Ft(if)g Fs(EDITOR)f Ft(is)h(unset.)199 1898 y(2.)61
+150 3801 y Fm(posix)d Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)199
+3935 y(1.)61 b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i
+Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
+(if)f Ft(FCEDIT)f Fu(is)h(unset,)330 4045 y(rather)g(than)g(defaulting)
+h(directly)g(to)g Ft(ed)p Fu(.)40 b Ft(fc)30 b Fu(uses)g
+Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 4179 y(2.)61
b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
-Fs(xpg_echo)e Ft(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
-Fs(echo)f Ft(builtin)330 2007 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
-2167 y(Bash)66 b(can)h(b)s(e)f(con\014gured)g(to)i(b)s(e)e
-Fl(posix)p Ft(-conforman)m(t)h(b)m(y)f(default,)77 b(b)m(y)66
-b(sp)s(ecifying)h(the)150 2276 y(`)p Fs(--enable-strict-posix-def)o
-(ault)o Ft(')i(to)76 b Fs(configure)c Ft(when)i(building)g(\(see)i
-(Section)f(10.8)150 2386 y([Optional)31 b(F)-8 b(eatures],)32
-b(page)f(133\).)p eop end
-%%Page: 90 96
-TeXDict begin 90 95 bop eop end
-%%Page: 91 97
-TeXDict begin 91 96 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(91)150 299 y Fo(7)80 b(Job)54
-b(Con)l(trol)150 521 y Ft(This)25 b(c)m(hapter)i(discusses)f(what)g
+Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
+Ft(echo)f Fu(builtin)330 4289 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
+4448 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
+Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g(default,)h(b)m(y)f(sp)s
+(ecifying)g(the)g Ft(--enable-)150 4558 y(strict-posix-default)c
+Fu(to)27 b Ft(configure)e Fu(when)h(building)h(\(see)h(Section)g(10.8)g
+([Optional)g(F)-8 b(eatures],)150 4667 y(page)31 b(140\).)p
+eop end
+%%Page: 97 103
+TeXDict begin 97 102 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(97)150 299 y Fp(7)80 b(Job)54
+b(Con)l(trol)150 521 y Fu(This)25 b(c)m(hapter)i(discusses)f(what)g
(job)f(con)m(trol)j(is,)f(ho)m(w)f(it)h(w)m(orks,)g(and)f(ho)m(w)g
(Bash)g(allo)m(ws)h(y)m(ou)g(to)g(access)150 631 y(its)k(facilities.)
-150 858 y Fr(7.1)68 b(Job)45 b(Con)l(trol)h(Basics)150
-1018 y Ft(Job)27 b(con)m(trol)i(refers)e(to)h(the)g(abilit)m(y)h(to)f
+150 858 y Fs(7.1)68 b(Job)45 b(Con)l(trol)h(Basics)150
+1018 y Fu(Job)27 b(con)m(trol)i(refers)e(to)h(the)g(abilit)m(y)h(to)f
(selectiv)m(ely)j(stop)c(\(susp)s(end\))f(the)i(execution)h(of)e(pro)s
(cesses)h(and)150 1127 y(con)m(tin)m(ue)38 b(\(resume\))g(their)f
(execution)h(at)g(a)g(later)g(p)s(oin)m(t.)61 b(A)37
@@ -11254,249 +14984,249 @@ b(user)g(t)m(ypically)i(emplo)m(ys)f(this)f(facilit)m(y)150
1237 y(via)27 b(an)e(in)m(teractiv)m(e)k(in)m(terface)f(supplied)d
(join)m(tly)h(b)m(y)g(the)h(op)s(erating)f(system)g(k)m(ernel's)h
(terminal)f(driv)m(er)150 1347 y(and)k(Bash.)275 1479
-y(The)23 b(shell)i(asso)s(ciates)h(a)f Fq(job)h Ft(with)e(eac)m(h)i
+y(The)23 b(shell)i(asso)s(ciates)h(a)f Fr(job)h Fu(with)e(eac)m(h)i
(pip)s(eline.)38 b(It)25 b(k)m(eeps)f(a)h(table)h(of)e(curren)m(tly)h
(executing)g(jobs,)150 1588 y(whic)m(h)33 b(ma)m(y)i(b)s(e)e(listed)h
-(with)f(the)h Fs(jobs)f Ft(command.)50 b(When)33 b(Bash)h(starts)g(a)g
+(with)f(the)h Ft(jobs)f Fu(command.)50 b(When)33 b(Bash)h(starts)g(a)g
(job)g(async)m(hronously)-8 b(,)34 b(it)150 1698 y(prin)m(ts)c(a)h
-(line)f(that)h(lo)s(oks)g(lik)m(e:)390 1830 y Fs([1])47
-b(25647)150 1962 y Ft(indicating)34 b(that)g(this)f(job)g(is)g(job)g(n)
-m(um)m(b)s(er)f(1)i(and)f(that)g(the)h(pro)s(cess)f Fl(id)g
-Ft(of)g(the)h(last)g(pro)s(cess)f(in)g(the)150 2072 y(pip)s(eline)42
+(line)f(that)h(lo)s(oks)g(lik)m(e:)390 1830 y Ft([1])47
+b(25647)150 1962 y Fu(indicating)34 b(that)g(this)f(job)g(is)g(job)g(n)
+m(um)m(b)s(er)f(1)i(and)f(that)g(the)h(pro)s(cess)f Fm(id)g
+Fu(of)g(the)h(last)g(pro)s(cess)f(in)g(the)150 2072 y(pip)s(eline)42
b(asso)s(ciated)i(with)e(this)g(job)g(is)h(25647.)78
b(All)43 b(of)g(the)g(pro)s(cesses)f(in)g(a)h(single)g(pip)s(eline)f
(are)150 2181 y(mem)m(b)s(ers)30 b(of)g(the)h(same)f(job.)41
-b(Bash)30 b(uses)g(the)h Fq(job)h Ft(abstraction)f(as)g(the)g(basis)f
+b(Bash)30 b(uses)g(the)h Fr(job)h Fu(abstraction)f(as)g(the)g(basis)f
(for)g(job)g(con)m(trol.)275 2313 y(T)-8 b(o)23 b(facilitate)j(the)d
(implemen)m(tation)i(of)f(the)f(user)f(in)m(terface)j(to)f(job)f(con)m
(trol,)j(the)d(op)s(erating)h(system)150 2423 y(main)m(tains)j(the)f
(notion)h(of)f(a)g(curren)m(t)g(terminal)g(pro)s(cess)g(group)g
-Fl(id)p Ft(.)39 b(Mem)m(b)s(ers)26 b(of)g(this)g(pro)s(cess)f(group)150
+Fm(id)p Fu(.)39 b(Mem)m(b)s(ers)26 b(of)g(this)g(pro)s(cess)f(group)150
2533 y(\(pro)s(cesses)h(whose)g(pro)s(cess)g(group)g
-Fl(id)g Ft(is)h(equal)g(to)g(the)f(curren)m(t)g(terminal)h(pro)s(cess)f
-(group)f Fl(id)p Ft(\))i(receiv)m(e)150 2642 y(k)m(eyb)s
-(oard-generated)22 b(signals)g(suc)m(h)e(as)h Fs(SIGINT)p
-Ft(.)36 b(These)21 b(pro)s(cesses)g(are)g(said)g(to)g(b)s(e)g(in)f(the)
+Fm(id)g Fu(is)h(equal)g(to)g(the)f(curren)m(t)g(terminal)h(pro)s(cess)f
+(group)f Fm(id)p Fu(\))i(receiv)m(e)150 2642 y(k)m(eyb)s
+(oard-generated)22 b(signals)g(suc)m(h)e(as)h Ft(SIGINT)p
+Fu(.)36 b(These)21 b(pro)s(cesses)g(are)g(said)g(to)g(b)s(e)g(in)f(the)
h(foreground.)150 2752 y(Bac)m(kground)38 b(pro)s(cesses)f(are)h(those)
-g(whose)f(pro)s(cess)g(group)g Fl(id)h Ft(di\013ers)f(from)g(the)g
+g(whose)f(pro)s(cess)g(group)g Fm(id)h Fu(di\013ers)f(from)g(the)g
(terminal's;)42 b(suc)m(h)150 2861 y(pro)s(cesses)24
b(are)g(imm)m(une)g(to)g(k)m(eyb)s(oard-generated)h(signals.)40
b(Only)23 b(foreground)g(pro)s(cesses)h(are)g(allo)m(w)m(ed)150
2971 y(to)g(read)e(from)h(or,)h(if)f(the)g(user)f(so)i(sp)s(eci\014es)e
-(with)h Fs(stty)29 b(tostop)p Ft(,)23 b(write)g(to)g(the)h(terminal.)38
+(with)h Ft(stty)29 b(tostop)p Fu(,)23 b(write)g(to)g(the)h(terminal.)38
b(Bac)m(kground)150 3081 y(pro)s(cesses)27 b(whic)m(h)g(attempt)h(to)f
-(read)g(from)g(\(write)g(to)h(when)e Fs(stty)j(tostop)d
-Ft(is)h(in)f(e\013ect\))j(the)e(terminal)150 3190 y(are)32
-b(sen)m(t)g(a)g Fs(SIGTTIN)e Ft(\()p Fs(SIGTTOU)p Ft(\))g(signal)i(b)m
+(read)g(from)g(\(write)g(to)h(when)e Ft(stty)j(tostop)d
+Fu(is)h(in)f(e\013ect\))j(the)e(terminal)150 3190 y(are)32
+b(sen)m(t)g(a)g Ft(SIGTTIN)e Fu(\()p Ft(SIGTTOU)p Fu(\))g(signal)i(b)m
(y)g(the)g(k)m(ernel's)g(terminal)g(driv)m(er,)g(whic)m(h,)g(unless)f
(caugh)m(t,)150 3300 y(susp)s(ends)d(the)i(pro)s(cess.)275
3432 y(If)k(the)i(op)s(erating)g(system)f(on)h(whic)m(h)f(Bash)g(is)h
(running)d(supp)s(orts)h(job)h(con)m(trol,)j(Bash)e(con)m(tains)150
3541 y(facilities)30 b(to)f(use)f(it.)40 b(T)m(yping)28
-b(the)g Fq(susp)s(end)h Ft(c)m(haracter)h(\(t)m(ypically)g(`)p
-Fs(^Z)p Ft(',)f(Con)m(trol-Z\))g(while)f(a)g(pro)s(cess)150
+b(the)g Fr(susp)s(end)h Fu(c)m(haracter)h(\(t)m(ypically)g(`)p
+Ft(^Z)p Fu(',)f(Con)m(trol-Z\))g(while)f(a)g(pro)s(cess)150
3651 y(is)42 b(running)f(causes)i(that)g(pro)s(cess)f(to)h(b)s(e)f
(stopp)s(ed)f(and)h(returns)f(con)m(trol)j(to)f(Bash.)77
-b(T)m(yping)42 b(the)150 3761 y Fq(dela)m(y)m(ed)k(susp)s(end)f
-Ft(c)m(haracter)h(\(t)m(ypically)g(`)p Fs(^Y)p Ft(',)i(Con)m(trol-Y\))e
+b(T)m(yping)42 b(the)150 3761 y Fr(dela)m(y)m(ed)k(susp)s(end)f
+Fu(c)m(haracter)h(\(t)m(ypically)g(`)p Ft(^Y)p Fu(',)i(Con)m(trol-Y\))e
(causes)e(the)h(pro)s(cess)e(to)i(b)s(e)f(stopp)s(ed)150
3870 y(when)26 b(it)i(attempts)h(to)f(read)f(input)g(from)f(the)i
(terminal,)h(and)e(con)m(trol)h(to)g(b)s(e)f(returned)f(to)j(Bash.)39
b(The)150 3980 y(user)e(then)g(manipulates)h(the)g(state)h(of)f(this)f
-(job,)j(using)d(the)h Fs(bg)f Ft(command)g(to)h(con)m(tin)m(ue)h(it)f
-(in)g(the)150 4089 y(bac)m(kground,)g(the)f Fs(fg)g Ft(command)f(to)i
+(job,)j(using)d(the)h Ft(bg)f Fu(command)g(to)h(con)m(tin)m(ue)h(it)f
+(in)g(the)150 4089 y(bac)m(kground,)g(the)f Ft(fg)g Fu(command)f(to)i
(con)m(tin)m(ue)g(it)f(in)f(the)h(foreground,)h(or)f(the)g
-Fs(kill)f Ft(command)g(to)150 4199 y(kill)27 b(it.)40
-b(A)27 b(`)p Fs(^Z)p Ft(')g(tak)m(es)h(e\013ect)g(immediately)-8
+Ft(kill)f Fu(command)g(to)150 4199 y(kill)27 b(it.)40
+b(A)27 b(`)p Ft(^Z)p Fu(')g(tak)m(es)h(e\013ect)g(immediately)-8
b(,)29 b(and)d(has)h(the)f(additional)i(side)e(e\013ect)j(of)d(causing)
h(p)s(ending)150 4309 y(output)j(and)g(t)m(yp)s(eahead)h(to)g(b)s(e)e
(discarded.)275 4441 y(There)j(are)g(a)h(n)m(um)m(b)s(er)e(of)i(w)m(a)m
(ys)g(to)h(refer)e(to)h(a)g(job)f(in)g(the)h(shell.)47
-b(The)32 b(c)m(haracter)i(`)p Fs(\045)p Ft(')f(in)m(tro)s(duces)150
-4550 y(a)e(job)f(sp)s(eci\014cation)h(\()p Fq(jobsp)s(ec)6
-b Ft(\).)275 4682 y(Job)31 b(n)m(um)m(b)s(er)f Fs(n)h
-Ft(ma)m(y)h(b)s(e)f(referred)g(to)h(as)g(`)p Fs(\045n)p
-Ft('.)44 b(The)31 b(sym)m(b)s(ols)g(`)p Fs(\045\045)p
-Ft(')h(and)f(`)p Fs(\045+)p Ft(')g(refer)h(to)g(the)g(shell's)150
+b(The)32 b(c)m(haracter)i(`)p Ft(\045)p Fu(')f(in)m(tro)s(duces)150
+4550 y(a)e(job)f(sp)s(eci\014cation)h(\()p Fr(jobsp)s(ec)6
+b Fu(\).)275 4682 y(Job)31 b(n)m(um)m(b)s(er)f Ft(n)h
+Fu(ma)m(y)h(b)s(e)f(referred)g(to)h(as)g(`)p Ft(\045n)p
+Fu('.)44 b(The)31 b(sym)m(b)s(ols)g(`)p Ft(\045\045)p
+Fu(')h(and)f(`)p Ft(\045+)p Fu(')g(refer)h(to)g(the)g(shell's)150
4792 y(notion)k(of)f(the)g(curren)m(t)g(job,)h(whic)m(h)f(is)g(the)g
(last)h(job)f(stopp)s(ed)f(while)h(it)h(w)m(as)g(in)e(the)i(foreground)
e(or)150 4902 y(started)27 b(in)g(the)g(bac)m(kground.)40
-b(A)27 b(single)g(`)p Fs(\045)p Ft(')g(\(with)g(no)g(accompan)m(ying)i
+b(A)27 b(single)g(`)p Ft(\045)p Fu(')g(\(with)g(no)g(accompan)m(ying)i
(job)d(sp)s(eci\014cation\))i(also)g(refers)150 5011
y(to)k(the)e(curren)m(t)h(job.)42 b(The)30 b(previous)g(job)h(ma)m(y)g
-(b)s(e)f(referenced)h(using)f(`)p Fs(\045-)p Ft('.)42
+(b)s(e)f(referenced)h(using)f(`)p Ft(\045-)p Fu('.)42
b(If)30 b(there)h(is)g(only)g(a)g(single)150 5121 y(job,)g(`)p
-Fs(\045+)p Ft(')g(and)f(`)p Fs(\045-)p Ft(')h(can)h(b)s(oth)e(b)s(e)g
+Ft(\045+)p Fu(')g(and)f(`)p Ft(\045-)p Fu(')h(can)h(b)s(oth)e(b)s(e)g
(used)h(to)g(refer)g(to)h(that)g(job.)42 b(In)30 b(output)h(p)s
(ertaining)g(to)g(jobs)g(\(e.g.,)150 5230 y(the)39 b(output)f(of)g(the)
-h Fs(jobs)e Ft(command\),)k(the)d(curren)m(t)h(job)f(is)g(alw)m(a)m(ys)
-i(\015agged)f(with)f(a)h(`)p Fs(+)p Ft(',)i(and)d(the)150
-5340 y(previous)30 b(job)g(with)g(a)h(`)p Fs(-)p Ft('.)p
+h Ft(jobs)e Fu(command\),)k(the)d(curren)m(t)h(job)f(is)g(alw)m(a)m(ys)
+i(\015agged)f(with)f(a)h(`)p Ft(+)p Fu(',)i(and)d(the)150
+5340 y(previous)30 b(job)g(with)g(a)h(`)p Ft(-)p Fu('.)p
eop end
-%%Page: 92 98
-TeXDict begin 92 97 bop 150 -116 a Ft(92)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(A)38 b(job)g(ma)m(y)h(also)g(b)s(e)f
-(referred)f(to)j(using)d(a)i(pre\014x)e(of)i(the)f(name)h(used)e(to)i
-(start)g(it,)i(or)e(using)f(a)150 408 y(substring)29
+%%Page: 98 104
+TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(98)275 299 y(A)38 b(job)g(ma)m(y)h(also)g
+(b)s(e)f(referred)f(to)j(using)d(a)i(pre\014x)e(of)i(the)f(name)h(used)
+e(to)i(start)g(it,)i(or)e(using)f(a)150 408 y(substring)29
b(that)i(app)s(ears)f(in)g(its)h(command)f(line.)41 b(F)-8
-b(or)31 b(example,)g(`)p Fs(\045ce)p Ft(')f(refers)g(to)h(a)g(stopp)s
-(ed)e Fs(ce)h Ft(job.)150 518 y(Using)d(`)p Fs(\045?ce)p
-Ft(',)g(on)f(the)h(other)g(hand,)g(refers)f(to)h(an)m(y)g(job)g(con)m
-(taining)h(the)f(string)f(`)p Fs(ce)p Ft(')h(in)f(its)h(command)150
+b(or)31 b(example,)g(`)p Ft(\045ce)p Fu(')f(refers)g(to)h(a)g(stopp)s
+(ed)e Ft(ce)h Fu(job.)150 518 y(Using)d(`)p Ft(\045?ce)p
+Fu(',)g(on)f(the)h(other)g(hand,)g(refers)f(to)h(an)m(y)g(job)g(con)m
+(taining)h(the)f(string)f(`)p Ft(ce)p Fu(')h(in)f(its)h(command)150
628 y(line.)41 b(If)30 b(the)h(pre\014x)e(or)h(substring)f(matc)m(hes)j
(more)e(than)h(one)f(job,)h(Bash)f(rep)s(orts)g(an)g(error.)275
762 y(Simply)g(naming)h(a)g(job)g(can)g(b)s(e)f(used)h(to)g(bring)f(it)
-i(in)m(to)g(the)f(foreground:)41 b(`)p Fs(\0451)p Ft(')31
-b(is)g(a)h(synon)m(ym)e(for)150 871 y(`)p Fs(fg)g(\0451)p
-Ft(',)i(bringing)f(job)g(1)g(from)g(the)h(bac)m(kground)f(in)m(to)i
-(the)e(foreground.)44 b(Similarly)-8 b(,)32 b(`)p Fs(\0451)e(&)p
-Ft(')i(resumes)150 981 y(job)e(1)h(in)f(the)g(bac)m(kground,)h(equiv)-5
-b(alen)m(t)32 b(to)f(`)p Fs(bg)f(\0451)p Ft(')275 1115
+i(in)m(to)g(the)f(foreground:)41 b(`)p Ft(\0451)p Fu(')31
+b(is)g(a)h(synon)m(ym)e(for)150 871 y(`)p Ft(fg)g(\0451)p
+Fu(',)i(bringing)f(job)g(1)g(from)g(the)h(bac)m(kground)f(in)m(to)i
+(the)e(foreground.)44 b(Similarly)-8 b(,)32 b(`)p Ft(\0451)e(&)p
+Fu(')i(resumes)150 981 y(job)e(1)h(in)f(the)g(bac)m(kground,)h(equiv)-5
+b(alen)m(t)32 b(to)f(`)p Ft(bg)f(\0451)p Fu(')275 1115
y(The)g(shell)i(learns)f(immediately)i(whenev)m(er)e(a)h(job)f(c)m
(hanges)h(state.)45 b(Normally)-8 b(,)33 b(Bash)e(w)m(aits)i(un)m(til)
150 1224 y(it)25 b(is)g(ab)s(out)f(to)i(prin)m(t)e(a)h(prompt)f(b)s
(efore)g(rep)s(orting)h(c)m(hanges)g(in)g(a)g(job's)f(status)h(so)g(as)
-g(to)g(not)g(in)m(terrupt)150 1334 y(an)m(y)g(other)g(output.)39
-b(If)24 b(the)i(`)p Fs(-b)p Ft(')e(option)i(to)f(the)g
-Fs(set)f Ft(builtin)h(is)g(enabled,)h(Bash)f(rep)s(orts)f(suc)m(h)h(c)m
-(hanges)150 1443 y(immediately)g(\(see)g(Section)g(4.3.1)g([The)f(Set)g
-(Builtin],)i(page)f(54\).)40 b(An)m(y)24 b(trap)f(on)h
-Fs(SIGCHLD)e Ft(is)i(executed)150 1553 y(for)30 b(eac)m(h)i(c)m(hild)e
+g(to)g(not)g(in)m(terrupt)150 1334 y(an)m(y)k(other)f(output.)40
+b(If)28 b(the)g Ft(-b)g Fu(option)g(to)h(the)g Ft(set)e
+Fu(builtin)h(is)g(enabled,)h(Bash)g(rep)s(orts)e(suc)m(h)h(c)m(hanges)
+150 1443 y(immediately)d(\(see)g(Section)g(4.3.1)g([The)f(Set)g
+(Builtin],)i(page)f(58\).)40 b(An)m(y)24 b(trap)f(on)h
+Ft(SIGCHLD)e Fu(is)i(executed)150 1553 y(for)30 b(eac)m(h)i(c)m(hild)e
(pro)s(cess)g(that)h(exits.)275 1687 y(If)25 b(an)h(attempt)h(to)g
(exit)g(Bash)f(is)h(made)f(while)g(jobs)f(are)i(stopp)s(ed,)f(\(or)h
-(running,)e(if)h(the)g Fs(checkjobs)150 1796 y Ft(option)e(is)f
+(running,)e(if)h(the)g Ft(checkjobs)150 1796 y Fu(option)e(is)f
(enabled)h({)g(see)g(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)j(page)
-e(57\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
-1906 y(message,)k(and)c(if)i(the)f Fs(checkjobs)e Ft(option)j(is)f
+e(62\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
+1906 y(message,)k(and)c(if)i(the)f Ft(checkjobs)e Fu(option)j(is)f
(enabled,)i(lists)e(the)h(jobs)f(and)f(their)i(statuses.)39
-b(The)25 b Fs(jobs)150 2016 y Ft(command)36 b(ma)m(y)h(then)f(b)s(e)f
+b(The)25 b Ft(jobs)150 2016 y Fu(command)36 b(ma)m(y)h(then)f(b)s(e)f
(used)g(to)i(insp)s(ect)f(their)g(status.)59 b(If)36
b(a)g(second)g(attempt)i(to)f(exit)g(is)f(made)150 2125
y(without)e(an)f(in)m(terv)m(ening)i(command,)f(Bash)g(do)s(es)f(not)h
(prin)m(t)g(another)f(w)m(arning,)i(and)e(an)m(y)h(stopp)s(ed)150
-2235 y(jobs)c(are)h(terminated.)150 2466 y Fr(7.2)68
-b(Job)45 b(Con)l(trol)h(Builtins)150 2650 y Fs(bg)870
-2784 y(bg)h([)p Fi(jobspec)56 b Fs(...)o(])630 2918 y
-Ft(Resume)24 b(eac)m(h)h(susp)s(ended)d(job)i Fq(jobsp)s(ec)29
-b Ft(in)24 b(the)g(bac)m(kground,)h(as)g(if)f(it)h(had)e(b)s(een)g
-(started)630 3027 y(with)32 b(`)p Fs(&)p Ft('.)45 b(If)31
-b Fq(jobsp)s(ec)37 b Ft(is)32 b(not)g(supplied,)f(the)h(curren)m(t)g
-(job)f(is)h(used.)45 b(The)31 b(return)g(status)630 3137
-y(is)i(zero)g(unless)f(it)h(is)g(run)e(when)h(job)g(con)m(trol)i(is)f
-(not)g(enabled,)h(or,)f(when)f(run)f(with)h(job)630 3246
-y(con)m(trol)h(enabled,)g(an)m(y)f Fq(jobsp)s(ec)37 b
-Ft(w)m(as)32 b(not)g(found)f(or)g(sp)s(eci\014es)h(a)g(job)g(that)g(w)m
-(as)g(started)630 3356 y(without)e(job)g(con)m(trol.)150
-3514 y Fs(fg)870 3648 y(fg)47 b([)p Fi(jobspec)11 b Fs(])630
-3782 y Ft(Resume)43 b(the)g(job)g Fq(jobsp)s(ec)48 b
-Ft(in)43 b(the)g(foreground)g(and)f(mak)m(e)j(it)e(the)h(curren)m(t)f
-(job.)78 b(If)630 3891 y Fq(jobsp)s(ec)41 b Ft(is)c(not)f(supplied,)h
+2235 y(jobs)c(are)h(terminated.)150 2466 y Fs(7.2)68
+b(Job)45 b(Con)l(trol)h(Builtins)150 2650 y Ft(bg)870
+2784 y(bg)h([)p Fj(jobspec)f Ft(...)o(])630 2918 y Fu(Resume)24
+b(eac)m(h)h(susp)s(ended)d(job)i Fr(jobsp)s(ec)29 b Fu(in)24
+b(the)g(bac)m(kground,)h(as)g(if)f(it)h(had)e(b)s(een)g(started)630
+3027 y(with)32 b(`)p Ft(&)p Fu('.)45 b(If)31 b Fr(jobsp)s(ec)37
+b Fu(is)32 b(not)g(supplied,)f(the)h(curren)m(t)g(job)f(is)h(used.)45
+b(The)31 b(return)g(status)630 3137 y(is)i(zero)g(unless)f(it)h(is)g
+(run)e(when)h(job)g(con)m(trol)i(is)f(not)g(enabled,)h(or,)f(when)f
+(run)f(with)h(job)630 3246 y(con)m(trol)h(enabled,)g(an)m(y)f
+Fr(jobsp)s(ec)37 b Fu(w)m(as)32 b(not)g(found)f(or)g(sp)s(eci\014es)h
+(a)g(job)g(that)g(w)m(as)g(started)630 3356 y(without)e(job)g(con)m
+(trol.)150 3514 y Ft(fg)870 3648 y(fg)47 b([)p Fj(jobspec)p
+Ft(])630 3782 y Fu(Resume)c(the)g(job)g Fr(jobsp)s(ec)48
+b Fu(in)43 b(the)g(foreground)g(and)f(mak)m(e)j(it)e(the)h(curren)m(t)f
+(job.)78 b(If)630 3891 y Fr(jobsp)s(ec)41 b Fu(is)c(not)f(supplied,)h
(the)f(curren)m(t)h(job)f(is)g(used.)58 b(The)36 b(return)f(status)h
(is)h(that)g(of)630 4001 y(the)d(command)g(placed)h(in)m(to)g(the)f
(foreground,)g(or)g(non-zero)h(if)f(run)f(when)g(job)g(con)m(trol)630
4111 y(is)i(disabled)g(or,)i(when)d(run)g(with)h(job)g(con)m(trol)h
-(enabled,)h Fq(jobsp)s(ec)j Ft(do)s(es)35 b(not)h(sp)s(ecify)f(a)630
-4220 y(v)-5 b(alid)31 b(job)f(or)g Fq(jobsp)s(ec)35 b
-Ft(sp)s(eci\014es)30 b(a)h(job)f(that)h(w)m(as)g(started)g(without)f
-(job)g(con)m(trol.)150 4378 y Fs(jobs)870 4512 y(jobs)47
-b([-lnprs])e([)p Fi(jobspec)11 b Fs(])870 4622 y(jobs)47
-b(-x)g Fi(command)56 b Fs([)p Fi(arguments)11 b Fs(])630
-4756 y Ft(The)30 b(\014rst)f(form)h(lists)h(the)g(activ)m(e)h(jobs.)41
+(enabled,)h Fr(jobsp)s(ec)j Fu(do)s(es)35 b(not)h(sp)s(ecify)f(a)630
+4220 y(v)-5 b(alid)31 b(job)f(or)g Fr(jobsp)s(ec)35 b
+Fu(sp)s(eci\014es)30 b(a)h(job)f(that)h(w)m(as)g(started)g(without)f
+(job)g(con)m(trol.)150 4378 y Ft(jobs)870 4512 y(jobs)47
+b([-lnprs])e([)p Fj(jobspec)p Ft(])870 4622 y(jobs)i(-x)g
+Fj(command)f Ft([)p Fj(arguments)p Ft(])630 4756 y Fu(The)30
+b(\014rst)f(form)h(lists)h(the)g(activ)m(e)h(jobs.)41
b(The)30 b(options)g(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
-4914 y Fs(-l)384 b Ft(List)31 b(pro)s(cess)f Fl(id)p
-Ft(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)630
-5072 y Fs(-n)384 b Ft(Displa)m(y)26 b(information)f(only)h(ab)s(out)e
+4914 y Ft(-l)384 b Fu(List)31 b(pro)s(cess)f Fm(id)p
+Fu(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)630
+5072 y Ft(-n)384 b Fu(Displa)m(y)26 b(information)f(only)h(ab)s(out)e
(jobs)h(that)g(ha)m(v)m(e)i(c)m(hanged)e(status)h(since)1110
5182 y(the)31 b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f
-(status.)630 5340 y Fs(-p)384 b Ft(List)31 b(only)f(the)h(pro)s(cess)f
-Fl(id)g Ft(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)p
+(status.)630 5340 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
+Fm(id)g Fu(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)p
eop end
-%%Page: 93 99
-TeXDict begin 93 98 bop 150 -116 a Ft(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2571 b(93)630 299 y Fs(-r)384 b
-Ft(Restrict)31 b(output)f(to)i(running)c(jobs.)630 461
-y Fs(-s)384 b Ft(Restrict)31 b(output)f(to)i(stopp)s(ed)d(jobs.)630
-622 y(If)23 b Fq(jobsp)s(ec)28 b Ft(is)c(giv)m(en,)i(output)d(is)h
-(restricted)g(to)g(information)g(ab)s(out)f(that)h(job.)39
-b(If)23 b Fq(jobsp)s(ec)630 732 y Ft(is)30 b(not)h(supplied,)e(the)i
-(status)g(of)f(all)h(jobs)f(is)h(listed.)630 868 y(If)g(the)g(`)p
-Fs(-x)p Ft(')g(option)h(is)f(supplied,)g Fs(jobs)f Ft(replaces)i(an)m
-(y)f Fq(jobsp)s(ec)37 b Ft(found)29 b(in)i Fq(command)k
-Ft(or)630 977 y Fq(argumen)m(ts)41 b Ft(with)36 b(the)i(corresp)s
-(onding)d(pro)s(cess)i(group)f Fl(id)p Ft(,)j(and)d(executes)i
-Fq(command)t Ft(,)630 1087 y(passing)30 b(it)h Fq(argumen)m(t)r
-Ft(s,)g(returning)f(its)g(exit)i(status.)150 1249 y Fs(kill)870
-1384 y(kill)47 b([-s)g Fi(sigspec)11 b Fs(])45 b([-n)i
-Fi(signum)11 b Fs(])45 b([-)p Fi(sigspec)11 b Fs(])44
-b Fi(jobspec)57 b Fs(or)47 b Fi(pid)870 1494 y Fs(kill)g(-l)g([)p
-Fi(exit_status)11 b Fs(])630 1630 y Ft(Send)22 b(a)i(signal)g(sp)s
-(eci\014ed)f(b)m(y)g Fq(sigsp)s(ec)29 b Ft(or)24 b Fq(sign)m(um)f
-Ft(to)h(the)g(pro)s(cess)f(named)g(b)m(y)g(job)g(sp)s(eci\014-)630
-1739 y(cation)j Fq(jobsp)s(ec)k Ft(or)25 b(pro)s(cess)g
-Fl(id)g Fq(pid)t Ft(.)38 b Fq(sigsp)s(ec)31 b Ft(is)25
-b(either)g(a)h(case-insensitiv)m(e)h(signal)f(name)630
-1849 y(suc)m(h)k(as)h Fs(SIGINT)d Ft(\(with)j(or)f(without)h(the)f
-Fs(SIG)g Ft(pre\014x\))f(or)i(a)f(signal)h(n)m(um)m(b)s(er;)f
-Fq(sign)m(um)g Ft(is)630 1958 y(a)i(signal)g(n)m(um)m(b)s(er.)43
-b(If)31 b Fq(sigsp)s(ec)37 b Ft(and)31 b Fq(sign)m(um)g
-Ft(are)h(not)f(presen)m(t,)h Fs(SIGTERM)e Ft(is)h(used.)43
-b(The)630 2068 y(`)p Fs(-l)p Ft(')34 b(option)g(lists)h(the)f(signal)h
-(names.)51 b(If)33 b(an)m(y)i(argumen)m(ts)f(are)g(supplied)f(when)g(`)
-p Fs(-l)p Ft(')h(is)630 2178 y(giv)m(en,)e(the)g(names)e(of)i(the)f
+%%Page: 99 105
+TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2571 b(99)630 299 y Ft(-r)384 b
+Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630 461 y Ft(-s)384
+b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630 622
+y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
+(restricted)h(to)g(information)f(ab)s(out)g(that)h(job.)37
+b(If)23 b Fr(jobsp)s(ec)630 732 y Fu(is)30 b(not)h(supplied,)e(the)i
+(status)g(of)f(all)h(jobs)f(is)h(listed.)630 868 y(If)k(the)g
+Ft(-x)f Fu(option)i(is)f(supplied,)g Ft(jobs)f Fu(replaces)i(an)m(y)f
+Fr(jobsp)s(ec)40 b Fu(found)34 b(in)h Fr(command)j Fu(or)630
+977 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)h
+(group)f Fm(id)p Fu(,)k(and)c(executes)j Fr(command)p
+Fu(,)630 1087 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
+(its)g(exit)i(status.)150 1249 y Ft(kill)870 1384 y(kill)47
+b([-s)g Fj(sigspec)p Ft(])e([-n)i Fj(signum)p Ft(])f([-)p
+Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1494
+y Ft(kill)g(-l)g([)p Fj(exit_status)p Ft(])630 1630 y
+Fu(Send)22 b(a)i(signal)g(sp)s(eci\014ed)f(b)m(y)g Fr(sigsp)s(ec)29
+b Fu(or)24 b Fr(sign)m(um)f Fu(to)h(the)g(pro)s(cess)f(named)g(b)m(y)g
+(job)g(sp)s(eci\014-)630 1739 y(cation)k Fr(jobsp)s(ec)j
+Fu(or)25 b(pro)s(cess)g Fm(id)h Fr(pid)p Fu(.)38 b Fr(sigsp)s(ec)31
+b Fu(is)25 b(either)h(a)g(case-insensitiv)m(e)i(signal)e(name)630
+1849 y(suc)m(h)37 b(as)g Ft(SIGINT)f Fu(\(with)h(or)g(without)g(the)g
+Ft(SIG)g Fu(pre\014x\))f(or)h(a)h(signal)g(n)m(um)m(b)s(er;)h
+Fr(sign)m(um)630 1958 y Fu(is)g(a)f(signal)i(n)m(um)m(b)s(er.)63
+b(If)39 b Fr(sigsp)s(ec)44 b Fu(and)38 b Fr(sign)m(um)g
+Fu(are)h(not)g(presen)m(t,)h Ft(SIGTERM)d Fu(is)h(used.)630
+2068 y(The)27 b Ft(-l)h Fu(option)g(lists)h(the)f(signal)h(names.)39
+b(If)28 b(an)m(y)g(argumen)m(ts)h(are)f(supplied)f(when)g
+Ft(-l)g Fu(is)630 2178 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f
(signals)g(corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g
(and)630 2287 y(the)c(return)f(status)h(is)g(zero.)41
-b Fq(exit)p 1796 2287 28 4 v 41 w(status)32 b Ft(is)c(a)g(n)m(um)m(b)s
+b Fr(exit)p 1796 2287 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s
(er)f(sp)s(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630
2397 y(the)35 b(exit)h(status)f(of)g(a)g(pro)s(cess)g(terminated)g(b)m
(y)g(a)g(signal.)55 b(The)34 b(return)g(status)h(is)g(zero)630
2506 y(if)c(at)h(least)g(one)g(signal)f(w)m(as)h(successfully)f(sen)m
(t,)h(or)f(non-zero)h(if)f(an)g(error)f(o)s(ccurs)h(or)g(an)630
2616 y(in)m(v)-5 b(alid)31 b(option)g(is)f(encoun)m(tered.)150
-2778 y Fs(wait)870 2913 y(wait)47 b([)p Fi(jobspec)56
-b Fs(or)47 b Fi(pid)57 b Fs(...])630 3049 y Ft(W)-8 b(ait)28
+2778 y Ft(wait)870 2913 y(wait)47 b([-n])f([)p Fj(jobspec)g
+Ft(or)h Fj(pid)g Ft(...)o(])630 3049 y Fu(W)-8 b(ait)28
b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s(eci\014ed)g(b)m(y)g
-(eac)m(h)h(pro)s(cess)f Fl(id)h Fq(pid)i Ft(or)d(job)g(sp)s
-(eci\014cation)630 3159 y Fq(jobsp)s(ec)40 b Ft(exits)35
-b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g(command)f(w)m
-(aited)i(for.)53 b(If)35 b(a)630 3268 y(job)g(sp)s(ec)f(is)h(giv)m(en,)
-i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m(aited)h(for.)54
-b(If)35 b(no)f(argumen)m(ts)i(are)630 3378 y(giv)m(en,)d(all)f(curren)m
-(tly)f(activ)m(e)i(c)m(hild)f(pro)s(cesses)f(are)g(w)m(aited)h(for,)g
-(and)e(the)i(return)e(status)630 3487 y(is)h(zero.)44
-b(If)30 b(neither)h Fq(jobsp)s(ec)36 b Ft(nor)31 b Fq(pid)i
-Ft(sp)s(eci\014es)e(an)g(activ)m(e)i(c)m(hild)f(pro)s(cess)e(of)h(the)g
-(shell,)630 3597 y(the)g(return)e(status)i(is)f(127.)150
-3759 y Fs(disown)870 3894 y(disown)46 b([-ar])g([-h])h([)p
-Fi(jobspec)56 b Fs(...)o(])630 4030 y Ft(Without)32 b(options,)g(eac)m
-(h)h Fq(jobsp)s(ec)j Ft(is)c(remo)m(v)m(ed)g(from)f(the)h(table)g(of)g
-(activ)m(e)h(jobs.)44 b(If)31 b(the)630 4140 y(`)p Fs(-h)p
-Ft(')36 b(option)h(is)g(giv)m(en,)i(the)e(job)f(is)h(not)f(remo)m(v)m
-(ed)i(from)e(the)h(table,)i(but)d(is)g(mark)m(ed)h(so)630
-4249 y(that)d Fs(SIGHUP)d Ft(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g
-(the)h(shell)f(receiv)m(es)i(a)f Fs(SIGHUP)p Ft(.)47
-b(If)33 b Fq(jobsp)s(ec)38 b Ft(is)630 4359 y(not)32
-b(presen)m(t,)f(and)g(neither)h(the)f(`)p Fs(-a)p Ft(')g(nor)g(`)p
-Fs(-r)p Ft(')g(option)h(is)g(supplied,)e(the)i(curren)m(t)f(job)g(is)
-630 4468 y(used.)58 b(If)36 b(no)g Fq(jobsp)s(ec)41 b
-Ft(is)36 b(supplied,)h(the)g(`)p Fs(-a)p Ft(')f(option)h(means)f(to)h
-(remo)m(v)m(e)h(or)e(mark)g(all)630 4578 y(jobs;)28 b(the)f(`)p
-Fs(-r)p Ft(')g(option)g(without)g(a)g Fq(jobsp)s(ec)32
-b Ft(argumen)m(t)27 b(restricts)h(op)s(eration)f(to)h(running)630
-4688 y(jobs.)150 4849 y Fs(suspend)870 4985 y(suspend)46
-b([-f])630 5121 y Ft(Susp)s(end)31 b(the)i(execution)h(of)g(this)f
-(shell)g(un)m(til)h(it)g(receiv)m(es)h(a)e Fs(SIGCONT)f
-Ft(signal.)50 b(A)33 b(login)630 5230 y(shell)24 b(cannot)h(b)s(e)e
-(susp)s(ended;)h(the)g(`)p Fs(-f)p Ft(')g(option)g(can)h(b)s(e)e(used)g
-(to)i(o)m(v)m(erride)g(this)f(and)f(force)630 5340 y(the)31
-b(susp)s(ension.)p eop end
-%%Page: 94 100
-TeXDict begin 94 99 bop 150 -116 a Ft(94)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(When)f(job)f(con)m(trol)j(is)e(not)h
-(activ)m(e,)i(the)d Fs(kill)f Ft(and)h Fs(wait)f Ft(builtins)g(do)h
-(not)h(accept)h Fq(jobsp)s(ec)j Ft(argu-)150 408 y(men)m(ts.)41
-b(They)30 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)h
-Fl(id)p Ft(s.)150 641 y Fr(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11
-b(ariables)150 825 y Fs(auto_resume)630 935 y Ft(This)31
+(eac)m(h)h(pro)s(cess)f Fm(id)h Fr(pid)i Fu(or)d(job)g(sp)s
+(eci\014cation)630 3159 y Fr(jobsp)s(ec)j Fu(exits)c(and)f(return)g
+(the)g(exit)h(status)g(of)g(the)f(last)h(command)g(w)m(aited)g(for.)39
+b(If)23 b(a)i(job)630 3268 y(sp)s(ec)j(is)g(giv)m(en,)i(all)f(pro)s
+(cesses)f(in)g(the)g(job)g(are)h(w)m(aited)g(for.)40
+b(If)27 b(no)i(argumen)m(ts)f(are)h(giv)m(en,)630 3378
+y(all)f(curren)m(tly)g(activ)m(e)i(c)m(hild)e(pro)s(cesses)f(are)h(w)m
+(aited)g(for,)g(and)f(the)h(return)e(status)i(is)g(zero.)630
+3487 y(If)f(the)g Ft(-n)g Fu(option)h(is)f(supplied,)g
+Ft(wait)f Fu(w)m(aits)i(for)f(an)m(y)h(job)f(to)h(terminate)g(and)f
+(returns)f(its)630 3597 y(exit)37 b(status.)56 b(If)36
+b(neither)f Fr(jobsp)s(ec)41 b Fu(nor)35 b Fr(pid)j Fu(sp)s(eci\014es)d
+(an)h(activ)m(e)i(c)m(hild)e(pro)s(cess)f(of)h(the)630
+3707 y(shell,)31 b(the)f(return)g(status)g(is)h(127.)150
+3868 y Ft(disown)870 4004 y(disown)46 b([-ar])g([-h])h([)p
+Fj(jobspec)f Ft(...)o(])630 4140 y Fu(Without)33 b(options,)h(remo)m(v)
+m(e)g(eac)m(h)f Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g
+(activ)m(e)h(jobs.)47 b(If)32 b(the)h Ft(-h)630 4249
+y Fu(option)j(is)f(giv)m(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m(ed)h
+(from)f(the)g(table,)j(but)c(is)i(mark)m(ed)f(so)g(that)630
+4359 y Ft(SIGHUP)e Fu(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g
+(shell)h(receiv)m(es)h(a)e Ft(SIGHUP)p Fu(.)54 b(If)34
+b Fr(jobsp)s(ec)40 b Fu(is)c(not)630 4468 y(presen)m(t,)41
+b(and)d(neither)h(the)g Ft(-a)f Fu(nor)g(the)h Ft(-r)f
+Fu(option)h(is)g(supplied,)g(the)g(curren)m(t)g(job)f(is)630
+4578 y(used.)g(If)25 b(no)h Fr(jobsp)s(ec)k Fu(is)c(supplied,)f(the)h
+Ft(-a)f Fu(option)h(means)g(to)g(remo)m(v)m(e)h(or)e(mark)h(all)g
+(jobs;)630 4688 y(the)31 b Ft(-r)e Fu(option)i(without)g(a)f
+Fr(jobsp)s(ec)36 b Fu(argumen)m(t)30 b(restricts)h(op)s(eration)g(to)g
+(running)e(jobs.)150 4849 y Ft(suspend)870 4985 y(suspend)46
+b([-f])630 5121 y Fu(Susp)s(end)31 b(the)i(execution)h(of)g(this)f
+(shell)g(un)m(til)h(it)g(receiv)m(es)h(a)e Ft(SIGCONT)f
+Fu(signal.)50 b(A)33 b(login)630 5230 y(shell)28 b(cannot)g(b)s(e)f
+(susp)s(ended;)g(the)g Ft(-f)g Fu(option)i(can)f(b)s(e)f(used)g(to)h(o)
+m(v)m(erride)h(this)e(and)g(force)630 5340 y(the)k(susp)s(ension.)p
+eop end
+%%Page: 100 106
+TeXDict begin 100 105 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2526 b(100)275 299 y(When)30 b(job)f(con)m(trol)j
+(is)e(not)h(activ)m(e,)i(the)d Ft(kill)f Fu(and)h Ft(wait)f
+Fu(builtins)g(do)h(not)h(accept)h Fr(jobsp)s(ec)j Fu(argu-)150
+408 y(men)m(ts.)41 b(They)30 b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)
+h Fm(id)p Fu(s.)150 641 y Fs(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11
+b(ariables)150 825 y Ft(auto_resume)630 935 y Fu(This)31
b(v)-5 b(ariable)32 b(con)m(trols)g(ho)m(w)g(the)f(shell)h(in)m
(teracts)h(with)e(the)h(user)e(and)h(job)g(con)m(trol.)45
b(If)630 1044 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h
@@ -11509,89 +15239,89 @@ b(If)630 1044 y(this)28 b(v)-5 b(ariable)30 b(exists)f(then)f(single)h
42 b(The)29 b(name)g(of)h(a)g(stopp)s(ed)e(job,)i(in)f(this)630
1483 y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g
(it.)41 b(If)27 b(this)h(v)-5 b(ariable)28 b(is)g(set)g(to)h(the)e(v)-5
-b(alue)630 1592 y(`)p Fs(exact)p Ft(',)33 b(the)g(string)g(supplied)f
+b(alue)630 1592 y(`)p Ft(exact)p Fu(',)33 b(the)g(string)g(supplied)f
(m)m(ust)h(matc)m(h)g(the)h(name)f(of)g(a)g(stopp)s(ed)f(job)h
-(exactly;)j(if)630 1702 y(set)29 b(to)h(`)p Fs(substring)p
-Ft(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
+(exactly;)j(if)630 1702 y(set)29 b(to)h(`)p Ft(substring)p
+Fu(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
(substring)f(of)h(the)g(name)630 1812 y(of)38 b(a)f(stopp)s(ed)g(job.)
-62 b(The)37 b(`)p Fs(substring)p Ft(')e(v)-5 b(alue)38
+62 b(The)37 b(`)p Ft(substring)p Fu(')e(v)-5 b(alue)38
b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630
-1921 y(the)f(`)p Fs(\045?)p Ft(')f(job)h Fl(id)f Ft(\(see)i(Section)f
-(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(91\).)64
+1921 y(the)f(`)p Ft(\045?)p Fu(')f(job)h Fm(id)f Fu(\(see)i(Section)f
+(7.1)h([Job)f(Con)m(trol)g(Basics],)j(page)d(97\).)64
b(If)37 b(set)h(to)h(an)m(y)630 2031 y(other)32 b(v)-5
b(alue,)32 b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f
(of)h(a)g(stopp)s(ed)e(job's)i(name;)g(this)630 2140
y(pro)m(vides)e(functionalit)m(y)i(analogous)g(to)f(the)g(`)p
-Fs(\045)p Ft(')f(job)g Fl(id)p Ft(.)p eop end
-%%Page: 95 101
-TeXDict begin 95 100 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(95)150 299 y Fo(8)80
-b(Command)54 b(Line)f(Editing)150 640 y Ft(This)28 b(c)m(hapter)i
-(describ)s(es)e(the)h(basic)g(features)h(of)f(the)g Fl(gnu)f
-Ft(command)h(line)g(editing)h(in)m(terface.)42 b(Com-)150
+Ft(\045)p Fu(')f(job)g Fm(id)p Fu(.)p eop end
+%%Page: 101 107
+TeXDict begin 101 106 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(101)150 299 y Fp(8)80
+b(Command)54 b(Line)f(Editing)150 640 y Fu(This)28 b(c)m(hapter)i
+(describ)s(es)e(the)h(basic)g(features)h(of)f(the)g Fm(gnu)f
+Fu(command)h(line)g(editing)h(in)m(terface.)42 b(Com-)150
749 y(mand)c(line)i(editing)f(is)g(pro)m(vided)g(b)m(y)g(the)g
(Readline)h(library)-8 b(,)41 b(whic)m(h)e(is)g(used)f(b)m(y)h(sev)m
(eral)h(di\013eren)m(t)150 859 y(programs,)34 b(including)e(Bash.)49
b(Command)32 b(line)i(editing)f(is)g(enabled)g(b)m(y)g(default)g(when)f
-(using)h(an)g(in-)150 969 y(teractiv)m(e)c(shell,)f(unless)e(the)h(`)p
-Fs(--noediting)p Ft(')d(option)k(is)e(supplied)g(at)h(shell)g(in)m(v)m
-(o)s(cation.)42 b(Line)26 b(editing)150 1078 y(is)i(also)h(used)e(when)
-h(using)f(the)h(`)p Fs(-e)p Ft(')g(option)h(to)g(the)f
-Fs(read)f Ft(builtin)h(command)f(\(see)i(Section)g(4.2)h([Bash)150
-1188 y(Builtins],)36 b(page)f(43\).)52 b(By)35 b(default,)g(the)f(line)
-h(editing)f(commands)g(are)h(similar)f(to)h(those)f(of)g(Emacs.)150
+(using)h(an)g(in-)150 969 y(teractiv)m(e)h(shell,)d(unless)g(the)g
+Ft(--noediting)d Fu(option)k(is)f(supplied)e(at)j(shell)f(in)m(v)m(o)s
+(cation.)45 b(Line)31 b(editing)150 1078 y(is)g(also)h(used)f(when)f
+(using)h(the)g Ft(-e)g Fu(option)h(to)g(the)f Ft(read)f
+Fu(builtin)h(command)g(\(see)h(Section)g(4.2)h([Bash)150
+1188 y(Builtins],)j(page)f(48\).)52 b(By)35 b(default,)g(the)f(line)h
+(editing)f(commands)g(are)h(similar)f(to)h(those)f(of)g(Emacs.)150
1297 y(A)h(vi-st)m(yle)h(line)f(editing)g(in)m(terface)h(is)e(also)i(a)
m(v)-5 b(ailable.)55 b(Line)34 b(editing)h(can)g(b)s(e)f(enabled)g(at)h
-(an)m(y)g(time)150 1407 y(using)28 b(the)i(`)p Fs(-o)g(emacs)p
-Ft(')d(or)i(`)p Fs(-o)h(vi)p Ft(')f(options)g(to)h(the)f
-Fs(set)f Ft(builtin)h(command)g(\(see)h(Section)f(4.3.1)i([The)150
-1517 y(Set)g(Builtin],)g(page)g(54\),)h(or)e(disabled)g(using)g(the)h
-(`)p Fs(+o)f(emacs)p Ft(')f(or)h(`)p Fs(+o)g(vi)p Ft(')g(options)h(to)g
-Fs(set)p Ft(.)150 1802 y Fr(8.1)68 b(In)l(tro)t(duction)45
-b(to)g(Line)h(Editing)150 1962 y Ft(The)30 b(follo)m(wing)i(paragraphs)
+(an)m(y)g(time)150 1407 y(using)h(the)g Ft(-o)30 b(emacs)35
+b Fu(or)h Ft(-o)30 b(vi)35 b Fu(options)i(to)g(the)f
+Ft(set)f Fu(builtin)h(command)g(\(see)h(Section)g(4.3.1)h([The)150
+1517 y(Set)31 b(Builtin],)g(page)g(58\),)h(or)e(disabled)g(using)g(the)
+h Ft(+o)e(emacs)g Fu(or)i Ft(+o)e(vi)h Fu(options)h(to)g
+Ft(set)p Fu(.)150 1802 y Fs(8.1)68 b(In)l(tro)t(duction)45
+b(to)g(Line)h(Editing)150 1962 y Fu(The)30 b(follo)m(wing)i(paragraphs)
d(describ)s(e)h(the)h(notation)g(used)f(to)h(represen)m(t)f(k)m
-(eystrok)m(es.)275 2132 y(The)35 b(text)i Fi(C-k)f Ft(is)g(read)g(as)h
+(eystrok)m(es.)275 2132 y(The)35 b(text)i Fj(C-k)f Fu(is)g(read)g(as)h
(`Con)m(trol-K')g(and)f(describ)s(es)f(the)h(c)m(haracter)i(pro)s
-(duced)d(when)g(the)h Fs(k)150 2242 y Ft(k)m(ey)31 b(is)g(pressed)e
+(duced)d(when)g(the)h Ft(k)150 2242 y Fu(k)m(ey)31 b(is)g(pressed)e
(while)h(the)h(Con)m(trol)g(k)m(ey)g(is)g(depressed.)275
-2412 y(The)g(text)i Fi(M-k)e Ft(is)h(read)f(as)i(`Meta-K')g(and)f
+2412 y(The)g(text)i Fj(M-k)e Fu(is)h(read)f(as)i(`Meta-K')g(and)f
(describ)s(es)f(the)h(c)m(haracter)h(pro)s(duced)e(when)f(the)i(Meta)
150 2521 y(k)m(ey)i(\(if)f(y)m(ou)h(ha)m(v)m(e)g(one\))g(is)f
-(depressed,)g(and)f(the)h Fs(k)g Ft(k)m(ey)h(is)f(pressed.)48
-b(The)32 b(Meta)j(k)m(ey)e(is)h(lab)s(eled)f Fs(ALT)150
-2631 y Ft(on)c(man)m(y)h(k)m(eyb)s(oards.)40 b(On)29
+(depressed,)g(and)f(the)h Ft(k)g Fu(k)m(ey)h(is)f(pressed.)48
+b(The)32 b(Meta)j(k)m(ey)e(is)h(lab)s(eled)f Ft(ALT)150
+2631 y Fu(on)c(man)m(y)h(k)m(eyb)s(oards.)40 b(On)29
b(k)m(eyb)s(oards)g(with)h(t)m(w)m(o)h(k)m(eys)f(lab)s(eled)g
-Fs(ALT)e Ft(\(usually)i(to)g(either)g(side)g(of)g(the)150
-2740 y(space)h(bar\),)f(the)g Fs(ALT)f Ft(on)h(the)g(left)h(side)f(is)g
+Ft(ALT)e Fu(\(usually)i(to)g(either)g(side)g(of)g(the)150
+2740 y(space)h(bar\),)f(the)g Ft(ALT)f Fu(on)h(the)g(left)h(side)f(is)g
(generally)h(set)f(to)h(w)m(ork)f(as)g(a)h(Meta)g(k)m(ey)-8
-b(.)42 b(The)29 b Fs(ALT)g Ft(k)m(ey)i(on)150 2850 y(the)c(righ)m(t)h
+b(.)42 b(The)29 b Ft(ALT)g Fu(k)m(ey)i(on)150 2850 y(the)c(righ)m(t)h
(ma)m(y)g(also)g(b)s(e)f(con\014gured)f(to)i(w)m(ork)f(as)h(a)f(Meta)i
(k)m(ey)f(or)f(ma)m(y)h(b)s(e)e(con\014gured)h(as)g(some)h(other)150
2960 y(mo)s(di\014er,)i(suc)m(h)g(as)g(a)h(Comp)s(ose)f(k)m(ey)h(for)f
(t)m(yping)h(accen)m(ted)h(c)m(haracters.)275 3130 y(If)23
-b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Fs(ALT)e
-Ft(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g
+b(y)m(ou)i(do)f(not)h(ha)m(v)m(e)h(a)f(Meta)g(or)g Ft(ALT)e
+Fu(k)m(ey)-8 b(,)27 b(or)e(another)f(k)m(ey)i(w)m(orking)e(as)h(a)g
(Meta)h(k)m(ey)-8 b(,)27 b(the)d(iden)m(tical)150 3239
y(k)m(eystrok)m(e)30 b(can)f(b)s(e)f(generated)h(b)m(y)g(t)m(yping)g
-Fs(ESC)e Fk(\014rst)p Ft(,)j(and)e(then)g(t)m(yping)h
-Fs(k)p Ft(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150
-3349 y(as)j Fq(metafying)39 b Ft(the)30 b Fs(k)g Ft(k)m(ey)-8
-b(.)275 3519 y(The)39 b(text)j Fi(M-C-k)d Ft(is)h(read)g(as)h
+Ft(ESC)e Fl(\014rst)p Fu(,)j(and)e(then)g(t)m(yping)h
+Ft(k)p Fu(.)40 b(Either)28 b(pro)s(cess)g(is)g(kno)m(wn)150
+3349 y(as)j Fr(metafying)39 b Fu(the)30 b Ft(k)g Fu(k)m(ey)-8
+b(.)275 3519 y(The)39 b(text)j Fj(M-C-k)d Fu(is)h(read)g(as)h
(`Meta-Con)m(trol-k')j(and)39 b(describ)s(es)h(the)g(c)m(haracter)i
-(pro)s(duced)d(b)m(y)150 3629 y Fq(metafying)g Fi(C-k)p
-Ft(.)275 3799 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
+(pro)s(duced)d(b)m(y)150 3629 y Fr(metafying)g Fj(C-k)p
+Fu(.)275 3799 y(In)c(addition,)j(sev)m(eral)f(k)m(eys)g(ha)m(v)m(e)g
(their)f(o)m(wn)g(names.)58 b(Sp)s(eci\014cally)-8 b(,)38
-b Fs(DEL)p Ft(,)f Fs(ESC)p Ft(,)g Fs(LFD)p Ft(,)g Fs(SPC)p
-Ft(,)g Fs(RET)p Ft(,)150 3908 y(and)d Fs(TAB)f Ft(all)j(stand)e(for)g
+b Ft(DEL)p Fu(,)f Ft(ESC)p Fu(,)g Ft(LFD)p Fu(,)g Ft(SPC)p
+Fu(,)g Ft(RET)p Fu(,)150 3908 y(and)d Ft(TAB)f Fu(all)j(stand)e(for)g
(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init)
-h(\014le)f(\(see)i(Section)f(8.3)150 4018 y([Readline)27
-b(Init)g(File],)i(page)e(98\).)41 b(If)26 b(y)m(our)h(k)m(eyb)s(oard)f
-(lac)m(ks)i(a)f Fs(LFD)f Ft(k)m(ey)-8 b(,)29 b(t)m(yping)e
-Fs(C-j)e Ft(will)i(pro)s(duce)f(the)150 4128 y(desired)k(c)m(haracter.)
-42 b(The)30 b Fs(RET)g Ft(k)m(ey)h(ma)m(y)g(b)s(e)e(lab)s(eled)i
-Fs(Return)e Ft(or)h Fs(Enter)f Ft(on)h(some)h(k)m(eyb)s(oards.)150
-4413 y Fr(8.2)68 b(Readline)47 b(In)l(teraction)150 4573
-y Ft(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t)
+h(\014le)f(\(see)i(Section)f(8.3)150 4018 y([Readline)f(Init)g(File],)i
+(page)e(104\).)52 b(If)33 b(y)m(our)g(k)m(eyb)s(oard)h(lac)m(ks)g(a)g
+Ft(LFD)f Fu(k)m(ey)-8 b(,)36 b(t)m(yping)e Ft(C-j)e Fu(will)i(pro)s
+(duce)150 4128 y(the)d(desired)e(c)m(haracter.)43 b(The)30
+b Ft(RET)f Fu(k)m(ey)i(ma)m(y)g(b)s(e)f(lab)s(eled)h
+Ft(Return)d Fu(or)j Ft(Enter)d Fu(on)j(some)g(k)m(eyb)s(oards.)150
+4413 y Fs(8.2)68 b(Readline)47 b(In)l(teraction)150 4573
+y Fu(Often)32 b(during)g(an)g(in)m(teractiv)m(e)j(session)e(y)m(ou)g(t)
m(yp)s(e)g(in)f(a)h(long)g(line)g(of)f(text,)j(only)d(to)i(notice)g
(that)f(the)150 4682 y(\014rst)f(w)m(ord)g(on)g(the)g(line)h(is)g
(missp)s(elled.)46 b(The)32 b(Readline)h(library)f(giv)m(es)h(y)m(ou)g
@@ -11604,30 +15334,30 @@ b(of)f(the)h(line.)40 b(Using)28 b(these)h(editing)g(commands,)f(y)m
(needs)g(correction,)j(and)d(delete)h(or)f(insert)h(the)f(text)h(of)g
(the)f(corrections.)54 b(Then,)150 5121 y(when)24 b(y)m(ou)h(are)g
(satis\014ed)g(with)g(the)g(line,)i(y)m(ou)e(simply)f(press)g
-Fs(RET)p Ft(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
+Ft(RET)p Fu(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
(at)h(the)h(end)150 5230 y(of)33 b(the)h(line)g(to)g(press)e
-Fs(RET)p Ft(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
+Ft(RET)p Fu(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 5340
y(within)c(the)g(line.)p eop end
-%%Page: 96 102
-TeXDict begin 96 101 bop 150 -116 a Ft(96)2572 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fj(8.2.1)63 b(Readline)40
-b(Bare)h(Essen)m(tials)150 446 y Ft(In)31 b(order)h(to)h(en)m(ter)g(c)m
-(haracters)g(in)m(to)g(the)g(line,)g(simply)e(t)m(yp)s(e)i(them.)46
-b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i(app)s(ears)150
-555 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g(the)h(cursor)e(mo)m
-(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47 b(If)32
-b(y)m(ou)h(mist)m(yp)s(e)g(a)150 665 y(c)m(haracter,)f(y)m(ou)f(can)g
-(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f
+%%Page: 102 108
+TeXDict begin 102 107 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(102)150 299 y Fk(8.2.1)63
+b(Readline)40 b(Bare)h(Essen)m(tials)150 446 y Fu(In)31
+b(order)h(to)h(en)m(ter)g(c)m(haracters)g(in)m(to)g(the)g(line,)g
+(simply)e(t)m(yp)s(e)i(them.)46 b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i
+(app)s(ears)150 555 y(where)e(the)h(cursor)e(w)m(as,)j(and)e(then)g
+(the)h(cursor)e(mo)m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)47
+b(If)32 b(y)m(ou)h(mist)m(yp)s(e)g(a)150 665 y(c)m(haracter,)f(y)m(ou)f
+(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and)f
(delete)j(the)f(mist)m(yp)s(ed)e(c)m(haracter.)275 806
y(Sometimes)i(y)m(ou)g(ma)m(y)h(mist)m(yp)s(e)e(a)i(c)m(haracter,)g
(and)e(not)i(notice)g(the)f(error)f(un)m(til)h(y)m(ou)g(ha)m(v)m(e)h(t)
m(yp)s(ed)150 916 y(sev)m(eral)e(other)f(c)m(haracters.)42
b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h
-Fi(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
+Fj(C-b)d Fu(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)i(and)150
1026 y(then)f(correct)i(y)m(our)e(mistak)m(e.)42 b(Afterw)m(ards,)31
b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)g
-(with)f Fi(C-f)p Ft(.)275 1167 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
+(with)f Fj(C-f)p Fu(.)275 1167 y(When)i(y)m(ou)h(add)f(text)h(in)f(the)
h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
(haracters)h(to)g(the)e(righ)m(t)150 1277 y(of)d(the)g(cursor)f(are)h
(`pushed)e(o)m(v)m(er')j(to)g(mak)m(e)f(ro)s(om)g(for)f(the)h(text)h
@@ -11638,53 +15368,53 @@ h(middle)f(of)h(a)g(line,)h(y)m(ou)e(will)h(notice)h(that)f(c)m
(created)f(b)m(y)g(the)g(remo)m(v)-5 b(al)24 b(of)f(the)g(text.)39
b(A)23 b(list)g(of)g(the)g(bare)f(essen)m(tials)150 1605
y(for)30 b(editing)h(the)g(text)g(of)g(an)f(input)f(line)i(follo)m(ws.)
-150 1775 y Fi(C-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m
-(haracter.)150 1941 y Fi(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one)
-h(c)m(haracter.)150 2108 y Fs(DEL)e Ft(or)i Fs(Backspace)630
-2217 y Ft(Delete)i(the)d(c)m(haracter)i(to)f(the)g(left)g(of)f(the)h
-(cursor.)150 2384 y Fi(C-d)336 b Ft(Delete)33 b(the)d(c)m(haracter)i
+150 1775 y Fj(C-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m
+(haracter.)150 1941 y Fj(C-f)336 b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(one)
+h(c)m(haracter.)150 2108 y Ft(DEL)e Fu(or)i Ft(Backspace)630
+2217 y Fu(Delete)i(the)d(c)m(haracter)i(to)f(the)g(left)g(of)f(the)h
+(cursor.)150 2384 y Fj(C-d)336 b Fu(Delete)33 b(the)d(c)m(haracter)i
(underneath)d(the)i(cursor.)150 2550 y(Prin)m(ting)g(c)m(haracters)630
2660 y(Insert)f(the)g(c)m(haracter)i(in)m(to)g(the)e(line)h(at)g(the)g
-(cursor.)150 2826 y Fi(C-_)e Ft(or)i Fi(C-x)e(C-u)630
-2936 y Ft(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
+(cursor.)150 2826 y Fj(C-_)e Fu(or)i Fj(C-x)e(C-u)630
+2936 y Fu(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)m(y)i(bac)m(k)f(to)g(an)g
(empt)m(y)630 3045 y(line.)150 3215 y(\(Dep)s(ending)29
-b(on)h(y)m(our)f(con\014guration,)i(the)e Fs(Backspace)e
-Ft(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
+b(on)h(y)m(our)f(con\014guration,)i(the)e Ft(Backspace)e
+Fu(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
150 3324 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
-Fs(DEL)g Ft(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
-(underneath)d(the)h(cursor,)i(lik)m(e)150 3434 y Fi(C-d)p
-Ft(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
-(the)f(cursor.\))150 3640 y Fj(8.2.2)63 b(Readline)40
-b(Mo)m(v)m(emen)m(t)h(Commands)150 3787 y Ft(The)27 b(ab)s(o)m(v)m(e)i
+Ft(DEL)g Fu(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
+(underneath)d(the)h(cursor,)i(lik)m(e)150 3434 y Fj(C-d)p
+Fu(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
+(the)f(cursor.\))150 3640 y Fk(8.2.2)63 b(Readline)40
+b(Mo)m(v)m(emen)m(t)h(Commands)150 3787 y Fu(The)27 b(ab)s(o)m(v)m(e)i
(table)g(describ)s(es)e(the)g(most)i(basic)f(k)m(eystrok)m(es)h(that)f
(y)m(ou)g(need)g(in)f(order)g(to)i(do)e(editing)i(of)150
3897 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
(enience,)j(man)m(y)d(other)g(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g
-(in)h(addition)150 4006 y(to)j Fi(C-b)p Ft(,)f Fi(C-f)p
-Ft(,)g Fi(C-d)p Ft(,)h(and)e Fs(DEL)p Ft(.)54 b(Here)35
+(in)h(addition)150 4006 y(to)j Fj(C-b)p Fu(,)f Fj(C-f)p
+Fu(,)g Fj(C-d)p Fu(,)h(and)e Ft(DEL)p Fu(.)54 b(Here)35
b(are)g(some)h(commands)e(for)h(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h
-(the)150 4116 y(line.)150 4286 y Fi(C-a)336 b Ft(Mo)m(v)m(e)32
-b(to)g(the)e(start)h(of)g(the)f(line.)150 4452 y Fi(C-e)336
-b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-4618 y Fi(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
+(the)150 4116 y(line.)150 4286 y Fj(C-a)336 b Fu(Mo)m(v)m(e)32
+b(to)g(the)e(start)h(of)g(the)f(line.)150 4452 y Fj(C-e)336
+b Fu(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+4618 y Fj(M-f)336 b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.)
-150 4785 y Fi(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
-(ord.)150 4951 y Fi(C-l)336 b Ft(Clear)31 b(the)f(screen,)h(reprin)m
+150 4785 y Fj(M-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
+(ord.)150 4951 y Fj(C-l)336 b Fu(Clear)31 b(the)f(screen,)h(reprin)m
(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275
-5121 y(Notice)c(ho)m(w)f Fi(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
-(haracter,)j(while)d Fi(M-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
+5121 y(Notice)c(ho)m(w)f Fj(C-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
+(haracter,)j(while)d Fj(M-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 5230 y(con)m(v)m(en)m(tion)32
b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
5340 y(w)m(ords.)p eop end
-%%Page: 97 103
-TeXDict begin 97 102 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(97)150 299 y Fj(8.2.3)63
-b(Readline)40 b(Killing)i(Commands)150 446 y Fq(Killing)35
-b Ft(text)28 b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i
+%%Page: 103 109
+TeXDict begin 103 108 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(103)150 299 y Fk(8.2.3)63
+b(Readline)40 b(Killing)i(Commands)150 446 y Fr(Killing)35
+b Fu(text)28 b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i
(but)e(to)h(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f
-(usually)150 555 y(b)m(y)g Fq(y)m(anking)35 b Ft(\(re-inserting\))28
+(usually)150 555 y(b)m(y)g Fr(y)m(anking)35 b Fu(\(re-inserting\))28
b(it)g(bac)m(k)f(in)m(to)h(the)f(line.)40 b(\(`Cut')27
b(and)g(`paste')h(are)f(more)g(recen)m(t)h(jargon)f(for)150
665 y(`kill')32 b(and)d(`y)m(ank'.\))275 801 y(If)g(the)i(description)f
@@ -11693,7 +15423,7 @@ b(and)g(`paste')h(are)f(more)g(recen)m(t)h(jargon)f(for)150
(text)g(bac)m(k)g(in)f(a)h(di\013eren)m(t)g(\(or)g(the)f(same\))h
(place)h(later.)275 1047 y(When)23 b(y)m(ou)g(use)g(a)h(kill)g
(command,)g(the)g(text)g(is)f(sa)m(v)m(ed)i(in)e(a)g
-Fq(kill-ring)p Ft(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)
+Fr(kill-ring)p Fu(.)39 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv)
m(e)150 1157 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g(killed)h(text)g
(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)f(bac)m(k,)h(y)m
(ou)g(get)g(it)f(all.)43 b(The)150 1267 y(kill)33 b(ring)f(is)g(not)h
@@ -11701,106 +15431,106 @@ m(e)150 1157 y(kills)31 b(sa)m(v)m(e)i(all)f(of)f(the)g(killed)h(text)g
(previously)g(t)m(yp)s(ed)h(line)f(is)h(a)m(v)-5 b(ailable)150
1376 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)h(when)d(y)m(ou)
i(are)g(t)m(yping)f(another)h(line.)275 1513 y(Here)f(is)h(the)f(list)h
-(of)g(commands)f(for)g(killing)h(text.)150 1675 y Fi(C-k)336
-b Ft(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s
+(of)g(commands)f(for)g(killing)h(text.)150 1675 y Fj(C-k)336
+b Fu(Kill)31 b(the)f(text)i(from)e(the)g(curren)m(t)g(cursor)g(p)s
(osition)h(to)g(the)f(end)g(of)g(the)h(line.)150 1836
-y Fi(M-d)336 b Ft(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
+y Fj(M-d)336 b Fu(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)
g(to)g(the)630 1946 y(end)j(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used)
-f(b)m(y)g Fi(M-f)p Ft(.)150 2107 y Fi(M-DEL)240 b Ft(Kill)31
+f(b)m(y)g Fj(M-f)p Fu(.)150 2107 y Fj(M-DEL)240 b Fu(Kill)31
b(from)f(the)h(cursor)f(the)g(start)h(of)g(the)g(curren)m(t)f(w)m(ord,)
h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)i(the)630
2217 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)g(b)m
-(y)630 2326 y Fi(M-b)p Ft(.)150 2487 y Fi(C-w)336 b Ft(Kill)35
+(y)630 2326 y Fj(M-b)p Fu(.)150 2487 y Fj(C-w)336 b Fu(Kill)35
b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)55
-b(This)34 b(is)h(di\013eren)m(t)h(than)e Fi(M-DEL)630
-2597 y Ft(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
-2759 y(Here)42 b(is)f(ho)m(w)h(to)g Fq(y)m(ank)47 b Ft(the)42
+b(This)34 b(is)h(di\013eren)m(t)h(than)e Fj(M-DEL)630
+2597 y Fu(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
+2759 y(Here)42 b(is)f(ho)m(w)h(to)g Fr(y)m(ank)47 b Fu(the)42
b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 b(Y)-8 b(anking)43
b(means)e(to)h(cop)m(y)h(the)e(most-)150 2869 y(recen)m(tly-killed)33
-b(text)e(from)f(the)g(kill)i(bu\013er.)150 3031 y Fi(C-y)336
-b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m
+b(text)e(from)f(the)g(kill)i(bu\013er.)150 3031 y Fj(C-y)336
+b Fu(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)h(killed)f(text)g(bac)m
(k)g(in)m(to)h(the)e(bu\013er)g(at)h(the)f(cursor.)150
-3192 y Fi(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h
+3192 y Fj(M-y)336 b Fu(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h
(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h
-(the)g(prior)630 3302 y(command)30 b(is)h Fi(C-y)e Ft(or)h
-Fi(M-y)p Ft(.)150 3503 y Fj(8.2.4)63 b(Readline)40 b(Argumen)m(ts)150
-3650 y Ft(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
+(the)g(prior)630 3302 y(command)30 b(is)h Fj(C-y)e Fu(or)h
+Fj(M-y)p Fu(.)150 3503 y Fk(8.2.4)63 b(Readline)40 b(Argumen)m(ts)150
+3650 y Fu(Y)-8 b(ou)40 b(can)f(pass)g(n)m(umeric)f(argumen)m(ts)i(to)f
(Readline)h(commands.)67 b(Sometimes)39 b(the)g(argumen)m(t)h(acts)150
3760 y(as)g(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)f(it)h(is)f(the)g
-Fk(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
+Fl(sign)47 b Fu(of)41 b(the)f(argumen)m(t)g(that)h(is)f(signi\014can)m
(t.)71 b(If)40 b(y)m(ou)150 3869 y(pass)33 b(a)h(negativ)m(e)i(argumen)
m(t)e(to)g(a)g(command)f(whic)m(h)g(normally)h(acts)g(in)f(a)h(forw)m
(ard)f(direction,)i(that)150 3979 y(command)g(will)h(act)g(in)f(a)h
(bac)m(kw)m(ard)f(direction.)57 b(F)-8 b(or)36 b(example,)h(to)f(kill)g
(text)g(bac)m(k)g(to)g(the)g(start)g(of)150 4088 y(the)31
-b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Fs(M--)f(C-k)p
-Ft('.)275 4225 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
+b(line,)g(y)m(ou)f(migh)m(t)h(t)m(yp)s(e)g(`)p Ft(M--)f(C-k)p
+Fu('.)275 4225 y(The)d(general)i(w)m(a)m(y)h(to)e(pass)g(n)m(umeric)g
(argumen)m(ts)h(to)g(a)f(command)g(is)g(to)h(t)m(yp)s(e)f(meta)i
(digits)e(b)s(efore)150 4334 y(the)j(command.)42 b(If)30
b(the)h(\014rst)f(`digit')i(t)m(yp)s(ed)f(is)g(a)g(min)m(us)f(sign)h
-(\(`)p Fs(-)p Ft('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
+(\(`)p Ft(-)p Fu('\),)h(then)f(the)g(sign)f(of)h(the)g(argumen)m(t)150
4444 y(will)39 b(b)s(e)e(negativ)m(e.)66 b(Once)38 b(y)m(ou)h(ha)m(v)m
(e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)g(to)f(get)i(the)e(argumen)m(t)h
(started,)i(y)m(ou)150 4554 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)f
(of)h(the)g(digits,)h(and)f(then)f(the)h(command.)40
-b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fi(C-d)150
-4663 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
-(t)m(yp)s(e)h(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)e(will)h
+b(F)-8 b(or)30 b(example,)g(to)f(giv)m(e)i(the)e Fj(C-d)150
+4663 y Fu(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)f
+(t)m(yp)s(e)h(`)p Ft(M-1)29 b(0)h(C-d)p Fu(',)39 b(whic)m(h)e(will)h
(delete)h(the)e(next)h(ten)150 4773 y(c)m(haracters)32
-b(on)e(the)h(input)e(line.)150 4974 y Fj(8.2.5)63 b(Searc)m(hing)40
-b(for)i(Commands)g(in)f(the)g(History)150 5121 y Ft(Readline)35
+b(on)e(the)h(input)e(line.)150 4974 y Fk(8.2.5)63 b(Searc)m(hing)40
+b(for)i(Commands)g(in)f(the)g(History)150 5121 y Fu(Readline)35
b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)e(the)i
(command)f(history)g(\(see)h(Section)g(9.1)150 5230 y([Bash)i(History)h
-(F)-8 b(acilities],)42 b(page)37 b(125\))i(for)d(lines)h(con)m(taining)
+(F)-8 b(acilities],)42 b(page)37 b(133\))i(for)d(lines)h(con)m(taining)
i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 b(are)i(t)m(w)m(o)150
-5340 y(searc)m(h)31 b(mo)s(des:)40 b Fq(incremen)m(tal)35
-b Ft(and)30 b Fq(non-incremen)m(tal)p Ft(.)p eop end
-%%Page: 98 104
-TeXDict begin 98 103 bop 150 -116 a Ft(98)2572 b(Bash)31
-b(Reference)g(Man)m(ual)275 299 y(Incremen)m(tal)26 b(searc)m(hes)h(b)s
-(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e(t)m(yping)i(the)g
-(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150 408 y(c)m(haracter)37
-b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s(ed,)g(Readline)g
-(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i(history)150
-518 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g(far.)39
-b(An)23 b(incremen)m(tal)j(searc)m(h)e(requires)g(only)g(as)g(man)m(y)g
-(c)m(haracters)i(as)150 628 y(needed)i(to)i(\014nd)d(the)i(desired)f
-(history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m
-(ard)f(in)f(the)h(history)g(for)f(a)i(particular)150
-737 y(string,)g(t)m(yp)s(e)f Fi(C-r)p Ft(.)40 b(T)m(yping)29
-b Fi(C-s)g Ft(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8
-b(.)41 b(The)29 b(c)m(haracters)i(presen)m(t)150 847
-y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g Fs(isearch-terminators)33
-b Ft(v)-5 b(ariable)39 b(are)f(used)f(to)i(terminate)g(an)f(incremen)m
-(tal)150 956 y(searc)m(h.)71 b(If)40 b(that)h(v)-5 b(ariable)41
-b(has)f(not)h(b)s(een)e(assigned)i(a)f(v)-5 b(alue,)44
-b(the)c Fs(ESC)g Ft(and)f Fi(C-J)h Ft(c)m(haracters)i(will)150
-1066 y(terminate)h(an)g(incremen)m(tal)g(searc)m(h.)78
-b Fi(C-g)41 b Ft(will)i(ab)s(ort)f(an)g(incremen)m(tal)i(searc)m(h)f
-(and)f(restore)h(the)150 1176 y(original)30 b(line.)41
-b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f(history)g(en)m
-(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150 1285
-y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 1428 y(T)-8
-b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h
-(history)g(list,)h(t)m(yp)s(e)g Fi(C-r)e Ft(or)h Fi(C-s)f
-Ft(as)h(appropriate.)43 b(This)150 1537 y(will)26 b(searc)m(h)h(bac)m
+5340 y(searc)m(h)31 b(mo)s(des:)40 b Fr(incremen)m(tal)35
+b Fu(and)30 b Fr(non-incremen)m(tal)p Fu(.)p eop end
+%%Page: 104 110
+TeXDict begin 104 109 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(104)275 299 y(Incremen)m(tal)26
+b(searc)m(hes)h(b)s(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e
+(t)m(yping)i(the)g(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150
+408 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
+(ed,)g(Readline)g(displa)m(ys)g(the)f(next)h(en)m(try)g(from)e(the)i
+(history)150 518 y(matc)m(hing)25 b(the)f(string)g(t)m(yp)s(ed)g(so)g
+(far.)39 b(An)23 b(incremen)m(tal)j(searc)m(h)e(requires)g(only)g(as)g
+(man)m(y)g(c)m(haracters)i(as)150 628 y(needed)i(to)i(\014nd)d(the)i
+(desired)f(history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29
+b(searc)m(h)h(bac)m(kw)m(ard)f(in)f(the)h(history)g(for)f(a)i
+(particular)150 737 y(string,)g(t)m(yp)s(e)f Fj(C-r)p
+Fu(.)40 b(T)m(yping)29 b Fj(C-s)g Fu(searc)m(hes)h(forw)m(ard)f
+(through)g(the)g(history)-8 b(.)41 b(The)29 b(c)m(haracters)i(presen)m
+(t)150 847 y(in)38 b(the)g(v)-5 b(alue)38 b(of)g(the)g
+Ft(isearch-terminators)33 b Fu(v)-5 b(ariable)39 b(are)f(used)f(to)i
+(terminate)g(an)f(incremen)m(tal)150 956 y(searc)m(h.)71
+b(If)40 b(that)h(v)-5 b(ariable)41 b(has)f(not)h(b)s(een)e(assigned)i
+(a)f(v)-5 b(alue,)44 b(the)c Ft(ESC)g Fu(and)f Fj(C-J)h
+Fu(c)m(haracters)i(will)150 1066 y(terminate)h(an)g(incremen)m(tal)g
+(searc)m(h.)78 b Fj(C-g)41 b Fu(will)i(ab)s(ort)f(an)g(incremen)m(tal)i
+(searc)m(h)f(and)f(restore)h(the)150 1176 y(original)30
+b(line.)41 b(When)28 b(the)h(searc)m(h)h(is)f(terminated,)h(the)f
+(history)g(en)m(try)g(con)m(taining)h(the)f(searc)m(h)h(string)150
+1285 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 1428
+y(T)-8 b(o)31 b(\014nd)e(other)j(matc)m(hing)g(en)m(tries)g(in)e(the)h
+(history)g(list,)h(t)m(yp)s(e)g Fj(C-r)e Fu(or)h Fj(C-s)f
+Fu(as)h(appropriate.)43 b(This)150 1537 y(will)26 b(searc)m(h)h(bac)m
(kw)m(ard)g(or)f(forw)m(ard)g(in)f(the)i(history)f(for)g(the)g(next)g
(en)m(try)h(matc)m(hing)g(the)f(searc)m(h)h(string)150
1647 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i
(sequence)f(b)s(ound)e(to)i(a)g(Readline)h(command)e(will)h(terminate)h
(the)150 1757 y(searc)m(h)26 b(and)f(execute)i(that)f(command.)39
-b(F)-8 b(or)26 b(instance,)h(a)f Fs(RET)f Ft(will)g(terminate)i(the)f
+b(F)-8 b(or)26 b(instance,)h(a)f Ft(RET)f Fu(will)g(terminate)i(the)f
(searc)m(h)g(and)e(accept)150 1866 y(the)30 b(line,)g(thereb)m(y)f
(executing)i(the)e(command)g(from)g(the)h(history)f(list.)41
b(A)29 b(mo)m(v)m(emen)m(t)j(command)d(will)150 1976
y(terminate)i(the)g(searc)m(h,)g(mak)m(e)h(the)e(last)h(line)g(found)e
(the)i(curren)m(t)f(line,)h(and)f(b)s(egin)g(editing.)275
2119 y(Readline)35 b(remem)m(b)s(ers)f(the)h(last)h(incremen)m(tal)g
-(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j Fi(C-r)p
-Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 2228 y(an)m(y)i(in)m(terv)m
+(searc)m(h)f(string.)54 b(If)34 b(t)m(w)m(o)j Fj(C-r)p
+Fu(s)c(are)i(t)m(yp)s(ed)g(without)150 2228 y(an)m(y)i(in)m(terv)m
(ening)g(c)m(haracters)h(de\014ning)e(a)h(new)f(searc)m(h)h(string,)h
(an)m(y)f(remem)m(b)s(ered)e(searc)m(h)i(string)g(is)150
2338 y(used.)275 2480 y(Non-incremen)m(tal)48 b(searc)m(hes)g(read)e
@@ -11808,496 +15538,541 @@ Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 2228 y(an)m(y)i(in)m(terv)m
(searc)m(h)f(for)150 2590 y(matc)m(hing)d(history)e(lines.)78
b(The)42 b(searc)m(h)h(string)g(ma)m(y)g(b)s(e)f(t)m(yp)s(ed)g(b)m(y)g
(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 2700 y(con)m(ten)m(ts)32
-b(of)f(the)f(curren)m(t)g(line.)150 2944 y Fr(8.3)68
-b(Readline)47 b(Init)e(File)150 3104 y Ft(Although)f(the)g(Readline)g
+b(of)f(the)f(curren)m(t)g(line.)150 2944 y Fs(8.3)68
+b(Readline)47 b(Init)e(File)150 3104 y Fu(Although)f(the)g(Readline)g
(library)f(comes)i(with)e(a)h(set)h(of)f(Emacs-lik)m(e)h(k)m
(eybindings)f(installed)g(b)m(y)150 3213 y(default,)26
b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)m(t)f(set)g(of)g(k)
m(eybindings.)38 b(An)m(y)25 b(user)f(can)h(customize)h(programs)150
3323 y(that)45 b(use)f(Readline)h(b)m(y)f(putting)g(commands)g(in)g(an)
-g Fq(inputrc)49 b Ft(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g
+g Fr(inputrc)49 b Fu(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g
(home)150 3433 y(directory)-8 b(.)59 b(The)35 b(name)i(of)f(this)g
(\014le)g(is)g(tak)m(en)h(from)f(the)g(v)-5 b(alue)37
-b(of)f(the)g(shell)h(v)-5 b(ariable)36 b Fs(INPUTRC)p
-Ft(.)56 b(If)150 3542 y(that)33 b(v)-5 b(ariable)33 b(is)g(unset,)f
-(the)h(default)f(is)h(`)p Fs(~/.inputrc)p Ft('.)44 b(If)32
-b(that)h(\014le)f(do)s(es)g(not)h(exist)g(or)g(cannot)g(b)s(e)150
-3652 y(read,)e(the)f(ultimate)i(default)e(is)h(`)p Fs(/etc/inputrc)p
-Ft('.)275 3794 y(When)e(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)
-g(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f
-(the)150 3904 y(k)m(ey)i(bindings)e(are)i(set.)275 4047
-y(In)26 b(addition,)i(the)f Fs(C-x)i(C-r)d Ft(command)h(re-reads)g
-(this)f(init)h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m
-(hanges)150 4156 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g
-(it.)150 4364 y Fj(8.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
-4511 y Ft(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
+b(of)f(the)g(shell)h(v)-5 b(ariable)36 b Ft(INPUTRC)p
+Fu(.)56 b(If)150 3542 y(that)36 b(v)-5 b(ariable)36 b(is)f(unset,)h
+(the)f(default)h(is)f Ft(~/.inputrc)p Fu(.)52 b(If)35
+b(that)g(\014le)h(do)s(es)e(not)i(exist)g(or)f(cannot)h(b)s(e)150
+3652 y(read,)31 b(the)f(ultimate)i(default)e(is)h Ft(/etc/inputrc)p
+Fu(.)275 3794 y(When)e(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)g
+(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f(the)
+150 3904 y(k)m(ey)i(bindings)e(are)i(set.)275 4047 y(In)26
+b(addition,)i(the)f Ft(C-x)i(C-r)d Fu(command)h(re-reads)g(this)f(init)
+h(\014le,)h(th)m(us)f(incorp)s(orating)g(an)m(y)g(c)m(hanges)150
+4156 y(that)k(y)m(ou)g(migh)m(t)g(ha)m(v)m(e)g(made)g(to)g(it.)150
+4364 y Fk(8.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)150
+4511 y Fu(There)f(are)i(only)f(a)g(few)g(basic)g(constructs)h(allo)m(w)
m(ed)h(in)d(the)h(Readline)h(init)f(\014le.)73 b(Blank)41
b(lines)h(are)150 4620 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
-(a)g(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)41
-b(b)s(eginning)f(with)g(a)i(`)p Fs($)p Ft(')f(indicate)150
+(a)g(`)p Ft(#)p Fu(')g(are)h(commen)m(ts.)73 b(Lines)41
+b(b)s(eginning)f(with)g(a)i(`)p Ft($)p Fu(')f(indicate)150
4730 y(conditional)e(constructs)f(\(see)g(Section)h(8.3.2)g
-([Conditional)g(Init)e(Constructs],)j(page)e(104\).)64
+([Conditional)g(Init)e(Constructs],)j(page)e(111\).)64
b(Other)150 4839 y(lines)31 b(denote)g(v)-5 b(ariable)31
b(settings)g(and)f(k)m(ey)h(bindings.)150 5011 y(V)-8
b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
(the)i(run-time)f(b)s(eha)m(vior)g(of)h(Readline)g(b)m(y)f(altering)h
(the)g(v)-5 b(alues)41 b(of)630 5230 y(v)-5 b(ariables)34
-b(in)f(Readline)i(using)e(the)g Fs(set)g Ft(command)g(within)g(the)h
+b(in)f(Readline)i(using)e(the)g Ft(set)g Fu(command)g(within)g(the)h
(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 5340 y(is)d(simple:)p
eop end
-%%Page: 99 105
-TeXDict begin 99 104 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2107 b(99)870 299 y Fs(set)47
-b Fi(variable)56 b(value)630 436 y Ft(Here,)29 b(for)e(example,)h(is)g
-(ho)m(w)f(to)h(c)m(hange)g(from)f(the)g(default)h(Emacs-lik)m(e)h(k)m
-(ey)f(binding)e(to)630 545 y(use)k Fs(vi)g Ft(line)h(editing)g
-(commands:)870 682 y Fs(set)47 b(editing-mode)d(vi)630
-819 y Ft(V)-8 b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36
-b(where)f(appropriate,)h(are)g(recognized)g(without)f(regard)630
-929 y(to)c(case.)42 b(Unrecognized)31 b(v)-5 b(ariable)31
-b(names)g(are)f(ignored.)630 1066 y(Bo)s(olean)c(v)-5
-b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f(set)i(to)g(on)f(or)g
-(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)g(v)-5
-b(alue)26 b(is)630 1176 y(n)m(ull)e(or)g(empt)m(y)-8
-b(,)27 b Fq(on)d Ft(\(case-insensitiv)m(e\),)29 b(or)24
+%%Page: 105 111
+TeXDict begin 105 110 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(105)870 299 y Ft(set)47
+b Fj(variable)e(value)630 436 y Fu(Here,)29 b(for)e(example,)h(is)g(ho)
+m(w)f(to)h(c)m(hange)g(from)f(the)g(default)h(Emacs-lik)m(e)h(k)m(ey)f
+(binding)e(to)630 545 y(use)k Ft(vi)g Fu(line)h(editing)g(commands:)870
+682 y Ft(set)47 b(editing-mode)d(vi)630 819 y Fu(V)-8
+b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36 b(where)f(appropriate,)h
+(are)g(recognized)g(without)f(regard)630 929 y(to)c(case.)42
+b(Unrecognized)31 b(v)-5 b(ariable)31 b(names)g(are)f(ignored.)630
+1066 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f
+(set)i(to)g(on)f(or)g(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)
+g(v)-5 b(alue)26 b(is)630 1176 y(n)m(ull)e(or)g(empt)m(y)-8
+b(,)27 b Fr(on)d Fu(\(case-insensitiv)m(e\),)29 b(or)24
b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
-5 b(ariable)630 1285 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-1422 y(The)37 b Fs(bind)30 b(-V)37 b Ft(command)g(lists)i(the)f(curren)
+1422 y(The)37 b Ft(bind)30 b(-V)37 b Fu(command)g(lists)i(the)f(curren)
m(t)f(Readline)i(v)-5 b(ariable)38 b(names)g(and)f(v)-5
b(alues.)630 1532 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)
-g(43.)630 1669 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
+g(48.)630 1669 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
(is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5
-b(ariables.)630 1833 y Fs(bell-style)1110 1943 y Ft(Con)m(trols)44
+b(ariables.)630 1833 y Ft(bell-style)1110 1943 y Fu(Con)m(trols)44
b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h
(termi-)1110 2052 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
-Fs(none)p Ft(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)1110 2162 y(`)p Fs(visible)p Ft(',)32
+Ft(none)p Fu(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
+b(If)36 b(set)i(to)1110 2162 y(`)p Ft(visible)p Fu(',)32
b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5
-b(ailable.)51 b(If)33 b(set)g(to)1110 2271 y(`)p Fs(audible)p
-Ft(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
-(terminal's)1110 2381 y(b)s(ell.)630 2545 y Fs(bind-tty-special-chars)
-1110 2655 y Ft(If)45 b(set)h(to)f(`)p Fs(on)p Ft(',)50
+b(ailable.)51 b(If)33 b(set)g(to)1110 2271 y(`)p Ft(audible)p
+Fu(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
+(terminal's)1110 2381 y(b)s(ell.)630 2545 y Ft(bind-tty-special-chars)
+1110 2655 y Fu(If)45 b(set)h(to)f(`)p Ft(on)p Fu(',)50
b(Readline)45 b(attempts)i(to)f(bind)d(the)j(con)m(trol)g(c)m
(haracters)1110 2765 y(treated)36 b(sp)s(ecially)h(b)m(y)e(the)h(k)m
(ernel's)g(terminal)g(driv)m(er)f(to)h(their)f(Readline)1110
-2874 y(equiv)-5 b(alen)m(ts.)630 3039 y Fs(comment-begin)1110
-3148 y Ft(The)29 b(string)g(to)h(insert)f(at)h(the)f(b)s(eginning)g(of)
-g(the)h(line)f(when)f(the)i Fs(insert-)1110 3258 y(comment)e
-Ft(command)j(is)f(executed.)42 b(The)29 b(default)i(v)-5
-b(alue)31 b(is)f Fs("#")p Ft(.)630 3422 y Fs(completion-display-width)
-1110 3532 y Ft(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
-g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 3641
+2874 y(equiv)-5 b(alen)m(ts.)630 3039 y Ft(colored-stats)1110
+3148 y Fu(If)26 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(displa)m
+(ys)g(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
+3258 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
+b(The)38 b(color)j(de\014nitions)d(are)i(tak)m(en)1110
+3367 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Ft(LS_COLORS)d
+Fu(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
+3477 y(is)30 b(`)p Ft(off)p Fu('.)630 3641 y Ft(comment-begin)1110
+3751 y Fu(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
+h(the)h(line)f(when)g(the)1110 3861 y Ft(insert-comment)26
+b Fu(command)31 b(is)f(executed.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)f Ft("#")p Fu(.)630 4025 y Ft(completion-display-width)
+1110 4134 y Fu(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
+g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 4244
y(when)28 b(p)s(erforming)g(completion.)41 b(The)29 b(v)-5
b(alue)29 b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110
-3751 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
+4354 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
b(A)26 b(v)-5 b(alue)27 b(of)f(0)h(will)f(cause)1110
-3861 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
+4463 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
(line.)41 b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630
-4025 y Fs(completion-ignore-case)1110 4134 y Ft(If)d(set)h(to)g(`)p
-Fs(on)p Ft(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
-(and)e(completion)1110 4244 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
-40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Fs(off)p
-Ft('.)630 4408 y Fs(completion-map-case)1110 4518 y Ft(If)22
-b(set)g(to)h(`)p Fs(on)p Ft(',)h(and)e Fq(completion-ignore-case)31
-b Ft(is)22 b(enabled,)i(Readline)f(treats)1110 4628 y(h)m(yphens)29
-b(\(`)p Fs(-)p Ft('\))j(and)e(underscores)g(\(`)p Fs(_)p
-Ft('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-4737 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
-(completion.)630 4902 y Fs(completion-prefix-displa)o(y-le)o(ngth)1110
-5011 y Ft(The)h(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h
-(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110 5121
-y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
-(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 5230
-y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
-(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 5340
+4628 y Ft(completion-ignore-case)1110 4737 y Fu(If)d(set)h(to)g(`)p
+Ft(on)p Fu(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
+(and)e(completion)1110 4847 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
+40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p
+Fu('.)630 5011 y Ft(completion-map-case)1110 5121 y Fu(If)22
+b(set)g(to)h(`)p Ft(on)p Fu(',)h(and)e Fr(completion-ignore-case)31
+b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 5230 y(h)m(yphens)29
+b(\(`)p Ft(-)p Fu('\))j(and)e(underscores)g(\(`)p Ft(_)p
+Fu('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
+5340 y(case-insensitiv)m(e)j(\014lename)d(matc)m(hing)i(and)e
+(completion.)p eop end
+%%Page: 106 112
+TeXDict begin 106 111 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(106)630 299 y Ft
+(completion-prefix-displa)o(y-le)o(ngth)1110 408 y Fu(The)31
+b(length)g(in)g(c)m(haracters)i(of)f(the)f(common)h(pre\014x)e(of)h(a)h
+(list)g(of)f(p)s(ossible)1110 518 y(completions)g(that)f(is)g(displa)m
+(y)m(ed)g(without)g(mo)s(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110
+628 y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 737
y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
-f(completions.)p eop end
-%%Page: 100 106
-TeXDict begin 100 105 bop 150 -116 a Ft(100)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(completion-query-items)1110
-408 y Ft(The)26 b(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
-(that)g(determines)f(when)f(the)i(user)1110 518 y(is)i(ask)m(ed)h
+f(completions.)630 902 y Ft(completion-query-items)1110
+1011 y Fu(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
+(that)g(determines)f(when)f(the)i(user)1110 1121 y(is)i(ask)m(ed)h
(whether)f(the)h(list)g(of)f(p)s(ossibilities)h(should)e(b)s(e)h
-(displa)m(y)m(ed.)41 b(If)29 b(the)1110 628 y(n)m(um)m(b)s(er)d(of)h(p)
-s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5
-b(alue,)28 b(Readline)1110 737 y(will)f(ask)g(the)f(user)g(whether)g
+(displa)m(y)m(ed.)41 b(If)29 b(the)1110 1230 y(n)m(um)m(b)s(er)d(of)h
+(p)s(ossible)f(completions)i(is)f(greater)h(than)e(this)h(v)-5
+b(alue,)28 b(Readline)1110 1340 y(will)f(ask)g(the)f(user)g(whether)g
(or)g(not)h(he)f(wishes)g(to)i(view)e(them;)i(otherwise,)1110
-847 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5
+1450 y(they)d(are)f(simply)g(listed.)40 b(This)23 b(v)-5
b(ariable)25 b(m)m(ust)g(b)s(e)e(set)i(to)g(an)g(in)m(teger)g(v)-5
-b(alue)1110 956 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
+b(alue)1110 1559 y(greater)26 b(than)f(or)f(equal)i(to)f(0.)40
b(A)24 b(negativ)m(e)j(v)-5 b(alue)26 b(means)e(Readline)i(should)1110
-1066 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
-Fs(100)p Ft(.)630 1230 y Fs(convert-meta)1110 1340 y
-Ft(If)22 b(set)g(to)h(`)p Fs(on)p Ft(',)h(Readline)f(will)f(con)m(v)m
+1669 y(nev)m(er)31 b(ask.)41 b(The)29 b(default)i(limit)g(is)g
+Ft(100)p Fu(.)630 1833 y Ft(convert-meta)1110 1943 y
+Fu(If)22 b(set)g(to)h(`)p Ft(on)p Fu(',)h(Readline)f(will)f(con)m(v)m
(ert)i(c)m(haracters)f(with)f(the)g(eigh)m(th)h(bit)f(set)1110
-1450 y(to)33 b(an)e Fl(asci)r(i)h Ft(k)m(ey)h(sequence)f(b)m(y)g
+2052 y(to)33 b(an)e Fm(asci)r(i)h Fu(k)m(ey)h(sequence)f(b)m(y)g
(stripping)f(the)h(eigh)m(th)h(bit)f(and)f(pre\014xing)1110
-1559 y(an)24 b Fs(ESC)g Ft(c)m(haracter,)j(con)m(v)m(erting)f(them)f
-(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 1669
-y(The)30 b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(on)p
-Ft('.)630 1833 y Fs(disable-completion)1110 1943 y Ft(If)36
-b(set)h(to)h(`)p Fs(On)p Ft(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h
-(completion.)60 b(Completion)1110 2052 y(c)m(haracters)28
+2162 y(an)24 b Ft(ESC)g Fu(c)m(haracter,)j(con)m(v)m(erting)f(them)f
+(to)g(a)g(meta-pre\014xed)f(k)m(ey)h(sequence.)1110 2271
+y(The)30 b(default)g(v)-5 b(alue)31 b(is)g(`)p Ft(on)p
+Fu('.)630 2436 y Ft(disable-completion)1110 2545 y Fu(If)36
+b(set)h(to)h(`)p Ft(On)p Fu(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h
+(completion.)60 b(Completion)1110 2655 y(c)m(haracters)28
b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g(line)f(as)g(if)g(they)h
-(had)e(b)s(een)g(mapp)s(ed)1110 2162 y(to)31 b Fs(self-insert)p
-Ft(.)38 b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)630
-2326 y Fs(editing-mode)1110 2436 y Ft(The)d Fs(editing-mode)e
-Ft(v)-5 b(ariable)29 b(con)m(trols)h(whic)m(h)e(default)h(set)h(of)e(k)
-m(ey)i(bind-)1110 2545 y(ings)25 b(is)g(used.)38 b(By)26
+(had)e(b)s(een)g(mapp)s(ed)1110 2765 y(to)31 b Ft(self-insert)p
+Fu(.)38 b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630
+2929 y Ft(editing-mode)1110 3039 y Fu(The)d Ft(editing-mode)e
+Fu(v)-5 b(ariable)29 b(con)m(trols)h(whic)m(h)e(default)h(set)h(of)e(k)
+m(ey)i(bind-)1110 3148 y(ings)25 b(is)g(used.)38 b(By)26
b(default,)g(Readline)g(starts)f(up)f(in)h(Emacs)g(editing)h(mo)s(de,)
-1110 2655 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
+1110 3258 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30 b(can)1110
-2765 y(b)s(e)g(set)h(to)g(either)g(`)p Fs(emacs)p Ft(')e(or)h(`)p
-Fs(vi)p Ft('.)630 2929 y Fs(echo-control-characters)1110
-3039 y Ft(When)g(set)h(to)g(`)p Fs(on)p Ft(',)f(on)g(op)s(erating)h
-(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 3148
+3367 y(b)s(e)g(set)h(to)g(either)g(`)p Ft(emacs)p Fu(')e(or)h(`)p
+Ft(vi)p Fu('.)630 3532 y Ft(echo-control-characters)1110
+3641 y Fu(When)g(set)h(to)g(`)p Ft(on)p Fu(',)f(on)g(op)s(erating)h
+(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 3751
y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m(haracter)h(corresp)s(onding)d
-(to)j(a)f(signal)g(generated)1110 3258 y(from)e(the)g(k)m(eyb)s(oard.)
-41 b(The)30 b(default)g(is)h(`)p Fs(on)p Ft('.)630 3422
-y Fs(enable-keypad)1110 3532 y Ft(When)23 b(set)h(to)g(`)p
-Fs(on)p Ft(',)h(Readline)f(will)g(try)f(to)h(enable)g(the)f
-(application)i(k)m(eypad)1110 3641 y(when)h(it)h(is)f(called.)41
+(to)j(a)f(signal)g(generated)1110 3861 y(from)e(the)g(k)m(eyb)s(oard.)
+41 b(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 4025
+y Ft(enable-keypad)1110 4134 y Fu(When)23 b(set)h(to)g(`)p
+Ft(on)p Fu(',)h(Readline)f(will)g(try)f(to)h(enable)g(the)f
+(application)i(k)m(eypad)1110 4244 y(when)h(it)h(is)f(called.)41
b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g(arro)m(w)g(k)m
-(eys.)1110 3751 y(The)j(default)g(is)h(`)p Fs(off)p Ft('.)630
-3915 y Fs(enable-meta-key)1110 4025 y Ft(When)40 b(set)g(to)g(`)p
-Fs(on)p Ft(',)j(Readline)d(will)g(try)g(to)g(enable)g(an)m(y)g(meta)h
-(mo)s(di\014er)1110 4134 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h
+(eys.)1110 4354 y(The)j(default)g(is)h(`)p Ft(off)p Fu('.)630
+4518 y Ft(enable-meta-key)1110 4628 y Fu(When)40 b(set)g(to)g(`)p
+Ft(on)p Fu(',)j(Readline)d(will)g(try)g(to)g(enable)g(an)m(y)g(meta)h
+(mo)s(di\014er)1110 4737 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h
(supp)s(ort)d(when)h(it)h(is)g(called.)76 b(On)41 b(man)m(y)1110
-4244 y(terminals,)c(the)e(meta)h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)
-m(t-bit)j(c)m(haracters.)56 b(The)1110 4354 y(default)31
-b(is)f(`)p Fs(on)p Ft('.)630 4518 y Fs(expand-tilde)1110
-4628 y Ft(If)d(set)h(to)h(`)p Fs(on)p Ft(',)f(tilde)g(expansion)g(is)f
-(p)s(erformed)f(when)h(Readline)h(attempts)1110 4737
+4847 y(terminals,)c(the)e(meta)h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)
+m(t-bit)j(c)m(haracters.)56 b(The)1110 4956 y(default)31
+b(is)f(`)p Ft(on)p Fu('.)630 5121 y Ft(expand-tilde)1110
+5230 y Fu(If)d(set)h(to)h(`)p Ft(on)p Fu(',)f(tilde)g(expansion)g(is)f
+(p)s(erformed)f(when)h(Readline)h(attempts)1110 5340
y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 4902 y Fs(history-preserve-point)1110
-5011 y Ft(If)41 b(set)h(to)h(`)p Fs(on)p Ft(',)i(the)c(history)h(co)s
-(de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
-5121 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
-(cation)i(on)e(eac)m(h)h(history)g(line)1110 5230 y(retriev)m(ed)h
-(with)f Fs(previous-history)c Ft(or)37 b Fs(next-history)p
-Ft(.)55 b(The)36 b(default)1110 5340 y(is)30 b(`)p Fs(off)p
-Ft('.)p eop end
-%%Page: 101 107
-TeXDict begin 101 106 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(101)630 299 y Fs(history-size)1110
-408 y Ft(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
-(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 518
-y(list.)53 b(If)34 b(set)h(to)g(zero,)i(the)d(n)m(um)m(b)s(er)g(of)g
-(en)m(tries)h(in)f(the)h(history)f(list)h(is)g(not)1110
-628 y(limited.)630 778 y Fs(horizontal-scroll-mode)1110
-888 y Ft(This)g(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
-(`)p Fs(on)p Ft(')g(or)g(`)p Fs(off)p Ft('.)57 b(Setting)36
-b(it)g(to)h(`)p Fs(on)p Ft(')1110 998 y(means)26 b(that)h(the)f(text)h
+Ft(off)p Fu('.)p eop end
+%%Page: 107 113
+TeXDict begin 107 112 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(107)630 299 y Ft
+(history-preserve-point)1110 408 y Fu(If)41 b(set)h(to)h(`)p
+Ft(on)p Fu(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f
+(p)s(oin)m(t)f(\(the)1110 518 y(curren)m(t)35 b(cursor)g(p)s(osition\))
+g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g(line)1110
+628 y(retriev)m(ed)h(with)f Ft(previous-history)c Fu(or)37
+b Ft(next-history)p Fu(.)55 b(The)36 b(default)1110 737
+y(is)30 b(`)p Ft(off)p Fu('.)630 902 y Ft(history-size)1110
+1011 y Fu(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
+(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 1121
+y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 1230 y(new)e(en)m(tries)i
+(are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5
+b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110
+1340 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110
+1450 y(en)m(tries)g(is)g(not)f(limited.)630 1614 y Ft
+(horizontal-scroll-mode)1110 1724 y Fu(This)35 b(v)-5
+b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
+Ft(on)p Fu(')g(or)g(`)p Ft(off)p Fu('.)57 b(Setting)36
+b(it)g(to)h(`)p Ft(on)p Fu(')1110 1833 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 1107 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 1217
+(tally)1110 1943 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 2052
y(screen,)27 b(instead)g(of)f(wrapping)f(on)m(to)i(a)f(new)g(screen)g
-(line.)39 b(By)27 b(default,)g(this)1110 1326 y(v)-5
-b(ariable)31 b(is)g(set)f(to)i(`)p Fs(off)p Ft('.)630
-1477 y Fs(input-meta)1110 1587 y Ft(If)f(set)g(to)h(`)p
-Fs(on)p Ft(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
-i(will)f(not)h(clear)1110 1696 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+(line.)39 b(By)27 b(default,)g(this)1110 2162 y(v)-5
+b(ariable)31 b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630
+2326 y Ft(input-meta)1110 2436 y Fu(If)f(set)g(to)h(`)p
+Ft(on)p Fu(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
+i(will)f(not)h(clear)1110 2545 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
-1806 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
-b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Fs(off)p
-Ft('.)69 b(The)1110 1915 y(name)30 b Fs(meta-flag)e Ft(is)j(a)f(synon)m
-(ym)g(for)g(this)h(v)-5 b(ariable.)630 2066 y Fs(isearch-terminators)
-1110 2176 y Ft(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
-(terminate)j(an)f(incremen)m(tal)1110 2285 y(searc)m(h)25
+2655 y(terminal)g(claims)h(it)g(can)f(supp)s(ort.)68
+b(The)39 b(default)h(v)-5 b(alue)40 b(is)g(`)p Ft(off)p
+Fu('.)69 b(The)1110 2765 y(name)30 b Ft(meta-flag)e Fu(is)j(a)f(synon)m
+(ym)g(for)g(this)h(v)-5 b(ariable.)630 2929 y Ft(isearch-terminators)
+1110 3039 y Fu(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
+(terminate)j(an)f(incremen)m(tal)1110 3148 y(searc)m(h)25
b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
-(command)1110 2395 y(\(see)42 b(Section)f(8.2.5)i([Searc)m(hing],)i
-(page)c(97\).)73 b(If)41 b(this)g(v)-5 b(ariable)41 b(has)g(not)1110
-2504 y(b)s(een)35 b(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m
-(haracters)h Fs(ESC)d Ft(and)h Fi(C-J)g Ft(will)h(terminate)g(an)1110
-2614 y(incremen)m(tal)c(searc)m(h.)630 2765 y Fs(keymap)192
-b Ft(Sets)39 b(Readline's)g(idea)h(of)f(the)g(curren)m(t)f(k)m(eymap)h
-(for)g(k)m(ey)g(binding)f(com-)1110 2874 y(mands.)81
-b(Acceptable)47 b Fs(keymap)42 b Ft(names)i(are)h Fs(emacs)p
-Ft(,)i Fs(emacs-standard)p Ft(,)1110 2984 y Fs(emacs-meta)p
-Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p
-Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 3093 y Fs(vi-insert)p
-Ft(.)64 b Fs(vi)38 b Ft(is)h(equiv)-5 b(alen)m(t)41 b(to)e
-Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)i(equiv)-5 b(alen)m(t)1110
-3203 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)h(v)-5
-b(alue)32 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)33
-b(of)f(the)1110 3313 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)31
-b(also)h(a\013ects)f(the)g(default)f(k)m(eymap.)630 3463
-y Fs(mark-directories)1110 3573 y Ft(If)38 b(set)g(to)h(`)p
-Fs(on)p Ft(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
-g(app)s(ended.)1110 3682 y(The)30 b(default)g(is)h(`)p
-Fs(on)p Ft('.)630 3833 y Fs(mark-modified-lines)1110
-3943 y Ft(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
-Fs(on)p Ft(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
-4052 y(terisk)f(\(`)p Fs(*)p Ft('\))h(at)f(the)g(start)g(of)g(history)g
+(command)1110 3258 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h
+(page)e(103\).)62 b(If)37 b(this)g(v)-5 b(ariable)38
+b(has)f(not)1110 3367 y(b)s(een)e(giv)m(en)h(a)g(v)-5
+b(alue,)37 b(the)f(c)m(haracters)h Ft(ESC)d Fu(and)h
+Fj(C-J)g Fu(will)h(terminate)g(an)1110 3477 y(incremen)m(tal)c(searc)m
+(h.)630 3641 y Ft(keymap)192 b Fu(Sets)39 b(Readline's)g(idea)h(of)f
+(the)g(curren)m(t)f(k)m(eymap)h(for)g(k)m(ey)g(binding)f(com-)1110
+3751 y(mands.)81 b(Acceptable)47 b Ft(keymap)42 b Fu(names)i(are)h
+Ft(emacs)p Fu(,)i Ft(emacs-standard)p Fu(,)1110 3861
+y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p Fu(,)f Ft(vi)p
+Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)f(and)1110
+3970 y Ft(vi-insert)p Fu(.)64 b Ft(vi)38 b Fu(is)h(equiv)-5
+b(alen)m(t)41 b(to)e Ft(vi-command)p Fu(;)i Ft(emacs)c
+Fu(is)i(equiv)-5 b(alen)m(t)1110 4080 y(to)33 b Ft(emacs-standard)p
+Fu(.)41 b(The)31 b(default)h(v)-5 b(alue)32 b(is)g Ft(emacs)p
+Fu(.)44 b(The)31 b(v)-5 b(alue)33 b(of)f(the)1110 4189
+y Ft(editing-mode)27 b Fu(v)-5 b(ariable)31 b(also)h(a\013ects)f(the)g
+(default)f(k)m(eymap.)630 4354 y Ft(keyseq-timeout)1110
+4463 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m
+(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 4573
+y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h(sequence)f(\(one)g(that)h(can)f
+(form)g(a)g(complete)h(k)m(ey)1110 4682 y(sequence)j(using)e(the)i
+(input)e(read)h(so)g(far,)h(or)g(can)f(tak)m(e)i(additional)f(input)
+1110 4792 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49
+b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h(within)1110
+4902 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter)
+g(but)f(complete)j(k)m(ey)e(se-)1110 5011 y(quence.)c(Readline)26
+b(uses)f(this)h(v)-5 b(alue)26 b(to)g(determine)g(whether)f(or)g(not)h
+(input)1110 5121 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m
+(t)f(input)g(source)h(\()p Ft(rl_instream)d Fu(b)m(y)i(default\).)1110
+5230 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
+(milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that)
+1110 5340 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
+(additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23
+b(is)p eop end
+%%Page: 108 114
+TeXDict begin 108 113 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(108)1110 299 y(set)28
+b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f(equal)i(to)f(zero,)i(or)
+e(to)g(a)h(non-n)m(umeric)e(v)-5 b(alue,)1110 408 y(Readline)30
+b(will)f(w)m(ait)i(un)m(til)e(another)h(k)m(ey)g(is)f(pressed)g(to)h
+(decide)f(whic)m(h)g(k)m(ey)1110 518 y(sequence)i(to)g(complete.)42
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)g Ft(500)p Fu(.)630
+701 y Ft(mark-directories)1110 810 y Fu(If)38 b(set)g(to)h(`)p
+Ft(on)p Fu(',)i(completed)e(directory)f(names)g(ha)m(v)m(e)i(a)e(slash)
+g(app)s(ended.)1110 920 y(The)30 b(default)g(is)h(`)p
+Ft(on)p Fu('.)630 1103 y Ft(mark-modified-lines)1110
+1212 y Fu(This)k(v)-5 b(ariable,)38 b(when)d(set)h(to)h(`)p
+Ft(on)p Fu(',)g(causes)g(Readline)f(to)h(displa)m(y)f(an)f(as-)1110
+1322 y(terisk)f(\(`)p Ft(*)p Fu('\))h(at)f(the)g(start)g(of)g(history)g
(lines)g(whic)m(h)f(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110
-4162 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Fs(off)p Ft(')g(b)m(y)g
-(default.)630 4313 y Fs(mark-symlinked-directori)o(es)1110
-4422 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)e(names)f
-(whic)m(h)f(are)h(sym)m(b)s(olic)g(links)g(to)g(di-)1110
-4532 y(rectories)j(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)e(\(sub)5
-b(ject)47 b(to)g(the)f(v)-5 b(alue)47 b(of)f Fs(mark-)1110
-4641 y(directories)p Ft(\).)38 b(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 4792 y Fs(match-hidden-files)1110
-4902 y Ft(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
-Fs(on)p Ft(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
-1110 5011 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Fs(.)p
-Ft(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
-5121 y(completion.)75 b(If)41 b(set)g(to)h(`)p Fs(off)p
-Ft(',)i(the)e(leading)g(`)p Fs(.)p Ft(')f(m)m(ust)g(b)s(e)g(supplied)f
-(b)m(y)1110 5230 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f
+1431 y(This)d(v)-5 b(ariable)31 b(is)f(`)p Ft(off)p Fu(')g(b)m(y)g
+(default.)630 1614 y Ft(mark-symlinked-directori)o(es)1110
+1724 y Fu(If)59 b(set)h(to)g(`)p Ft(on)p Fu(',)67 b(completed)60
+b(names)f(whic)m(h)g(are)h(sym)m(b)s(olic)g(links)f(to)1110
+1833 y(directories)71 b(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)f(\(sub)5
+b(ject)70 b(to)g(the)g(v)-5 b(alue)70 b(of)1110 1943
+y Ft(mark-directories)p Fu(\).)37 b(The)30 b(default)g(is)g(`)p
+Ft(off)p Fu('.)630 2125 y Ft(match-hidden-files)1110
+2235 y Fu(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
+Ft(on)p Fu(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
+1110 2345 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Ft(.)p
+Fu(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
+2454 y(completion.)75 b(If)41 b(set)g(to)h(`)p Ft(off)p
+Fu(',)i(the)e(leading)g(`)p Ft(.)p Fu(')f(m)m(ust)g(b)s(e)g(supplied)f
+(b)m(y)1110 2564 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f
(completed.)53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p
-Fs(on)p Ft(')g(b)m(y)1110 5340 y(default.)p eop end
-%%Page: 102 108
-TeXDict begin 102 107 bop 150 -116 a Ft(102)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(menu-complete-display-pr)o(efix)
-1110 408 y Ft(If)i(set)h(to)g(`)p Fs(on)p Ft(',)h(men)m(u)e(completion)
-i(displa)m(ys)e(the)h(common)g(pre\014x)e(of)i(the)1110
-518 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)s
-(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 628 y(through)30
-b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Fs(off)p
-Ft('.)630 784 y Fs(output-meta)1110 894 y Ft(If)35 b(set)h(to)g(`)p
-Fs(on)p Ft(',)h(Readline)f(will)g(displa)m(y)f(c)m(haracters)i(with)e
-(the)h(eigh)m(th)g(bit)1110 1003 y(set)h(directly)g(rather)f(than)g(as)
-h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59 b(The)1110
-1113 y(default)31 b(is)f(`)p Fs(off)p Ft('.)630 1270
-y Fs(page-completions)1110 1379 y Ft(If)j(set)i(to)f(`)p
-Fs(on)p Ft(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
-Fs(more)p Ft(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
-1489 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
-47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Fs(on)p Ft(')1110
-1598 y(b)m(y)e(default.)630 1755 y Fs(print-completions-horizo)o(ntal)o
-(ly)1110 1864 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)g
+Ft(on)p Fu(')g(b)m(y)1110 2673 y(default.)630 2856 y
+Ft(menu-complete-display-pr)o(efix)1110 2966 y Fu(If)f(set)h(to)g(`)p
+Ft(on)p Fu(',)h(men)m(u)e(completion)i(displa)m(ys)e(the)h(common)g
+(pre\014x)e(of)i(the)1110 3075 y(list)k(of)g(p)s(ossible)f(completions)
+i(\(whic)m(h)e(ma)m(y)h(b)s(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110
+3185 y(through)30 b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p
+Ft(off)p Fu('.)630 3367 y Ft(output-meta)1110 3477 y
+Fu(If)35 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(displa)m(y)
+f(c)m(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 3587
+y(set)h(directly)g(rather)f(than)g(as)h(a)g(meta-pre\014xed)f(escap)s
+(e)h(sequence.)59 b(The)1110 3696 y(default)31 b(is)f(`)p
+Ft(off)p Fu('.)630 3879 y Ft(page-completions)1110 3988
+y Fu(If)j(set)i(to)f(`)p Ft(on)p Fu(',)h(Readline)g(uses)e(an)h(in)m
+(ternal)h Ft(more)p Fu(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
+4098 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Ft(on)p Fu(')1110
+4208 y(b)m(y)e(default.)630 4390 y Ft(print-completions-horizo)o(ntal)o
+(ly)1110 4500 y Fu(If)23 b(set)i(to)g(`)p Ft(on)p Fu(',)g(Readline)g
(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
-1974 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
-(than)g(do)m(wn)g(the)h(screen.)1110 2084 y(The)30 b(default)g(is)h(`)p
-Fs(off)p Ft('.)630 2240 y Fs(revert-all-at-newline)1110
-2350 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)g(will)g(undo)f
+4609 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 4719 y(The)30 b(default)g(is)h(`)p
+Ft(off)p Fu('.)630 4902 y Ft(revert-all-at-newline)1110
+5011 y Fu(If)e(set)h(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)g(undo)f
(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
-2459 y(returning)f(when)f Fs(accept-line)f Ft(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 2569 y(ma)m(y)42
+5121 y(returning)f(when)f Ft(accept-line)f Fu(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 5230 y(ma)m(y)42
b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 2679 y Fs(readline)p Ft(.)38
-b(The)30 b(default)h(is)f(`)p Fs(off)p Ft('.)630 2835
-y Fs(show-all-if-ambiguous)1110 2945 y Ft(This)f(alters)i(the)f
-(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
-b(If)29 b(set)1110 3054 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h)
-g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
-1110 3164 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
-(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 3273 y(The)30
-b(default)g(v)-5 b(alue)31 b(is)g(`)p Fs(off)p Ft('.)630
-3430 y Fs(show-all-if-unmodified)1110 3540 y Ft(This)38
+(across)g(calls)h(to)1110 5340 y Ft(readline)p Fu(.)38
+b(The)30 b(default)h(is)f(`)p Ft(off)p Fu('.)p eop end
+%%Page: 109 115
+TeXDict begin 109 114 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(109)630 299 y Ft
+(show-all-if-ambiguous)1110 408 y Fu(This)29 b(alters)i(the)f(default)g
+(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
+b(If)29 b(set)1110 518 y(to)f(`)p Ft(on)p Fu(',)g(w)m(ords)f(whic)m(h)g
+(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)1110
+628 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 737 y(The)30
+b(default)g(v)-5 b(alue)31 b(is)g(`)p Ft(off)p Fu('.)630
+920 y Ft(show-all-if-unmodified)1110 1029 y Fu(This)38
b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
-(functions)e(in)h(a)1110 3649 y(fashion)25 b(similar)g(to)h
-Fq(sho)m(w-all-if-am)m(biguous)t Ft(.)41 b(If)24 b(set)i(to)f(`)p
-Fs(on)p Ft(',)i(w)m(ords)d(whic)m(h)1110 3759 y(ha)m(v)m(e)32
+(functions)e(in)h(a)1110 1139 y(fashion)25 b(similar)h(to)g
+Fr(sho)m(w-all-if-am)m(biguous)p Fu(.)41 b(If)25 b(set)h(to)h(`)p
+Ft(on)p Fu(',)f(w)m(ords)f(whic)m(h)1110 1249 y(ha)m(v)m(e)32
b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
-(ossible)f(par-)1110 3868 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 3978
+(ossible)f(par-)1110 1358 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 1468
y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
-(immediately)i(instead)e(of)h(ring-)1110 4088 y(ing)g(the)f(b)s(ell.)41
-b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Fs(off)p
-Ft('.)630 4244 y Fs(skip-completed-text)1110 4354 y Ft(If)i(set)i(to)f
-(`)p Fs(on)p Ft(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s
-(eha)m(vior)f(when)f(in-)1110 4463 y(serting)d(a)h(single)g(matc)m(h)f
-(in)m(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s
-(erform-)1110 4573 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f
-(w)m(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
-4682 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
-(that)f(matc)m(h)g(c)m(haracters)1110 4792 y(after)c(p)s(oin)m(t)g(in)g
+(immediately)i(instead)e(of)h(ring-)1110 1577 y(ing)g(the)f(b)s(ell.)41
+b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Ft(off)p
+Fu('.)630 1760 y Ft(show-mode-in-prompt)1110 1870 y Fu(If)35
+b(set)i(to)f(`)p Ft(on)p Fu(',)h(add)e(a)h(c)m(haracter)i(to)e(the)g(b)
+s(eginning)f(of)h(the)g(prompt)f(in-)1110 1979 y(dicating)43
+b(the)f(editing)h(mo)s(de:)63 b(emacs)43 b(\(`)p Ft(@)p
+Fu('\),)i(vi)d(command)g(\(`)p Ft(:)p Fu('\),)k(or)c(vi)1110
+2089 y(insertion)30 b(\(`)p Ft(+)p Fu('\).)42 b(The)30
+b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p Fu('.)630
+2271 y Ft(skip-completed-text)1110 2381 y Fu(If)h(set)i(to)f(`)p
+Ft(on)p Fu(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s(eha)m
+(vior)f(when)f(in-)1110 2491 y(serting)d(a)h(single)g(matc)m(h)f(in)m
+(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)
+1110 2600 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m
+(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
+2710 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
+(that)f(matc)m(h)g(c)m(haracters)1110 2819 y(after)c(p)s(oin)m(t)g(in)g
(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g
-(w)m(ord)1110 4902 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
+(w)m(ord)1110 2929 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-5011 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Fs(e)p Ft(')f(in)1110 5121 y(`)p Fs(Makefile)p
-Ft(')c(will)i(result)f(in)g(`)p Fs(Makefile)p Ft(')f(rather)h(than)h(`)
-p Fs(Makefilefile)p Ft(',)1110 5230 y(assuming)d(there)g(is)h(a)f
+3039 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Ft(e)p Fu(')f(in)1110 3148 y(`)p Ft(Makefile)p
+Fu(')c(will)i(result)f(in)g(`)p Ft(Makefile)p Fu(')f(rather)h(than)h(`)
+p Ft(Makefilefile)p Fu(',)1110 3258 y(assuming)d(there)g(is)h(a)f
(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 5340 y(is)30 b(`)p Fs(off)p Ft('.)p eop end
-%%Page: 103 109
-TeXDict begin 103 108 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(103)630 299 y Fs(visible-stats)
-1110 408 y Ft(If)31 b(set)i(to)f(`)p Fs(on)p Ft(',)h(a)f(c)m(haracter)i
-(denoting)e(a)g(\014le's)g(t)m(yp)s(e)g(is)g(app)s(ended)e(to)j(the)
-1110 518 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
-b(The)30 b(default)g(is)h(`)p Fs(off)p Ft('.)150 675
-y(Key)f(Bindings)630 784 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
-(k)m(ey)g(bindings)e(in)h(the)g(init)g(\014le)g(is)g(simple.)75
-b(First)43 b(y)m(ou)630 894 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h
-(the)g(command)f(that)i(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41
-b(The)27 b(follo)m(wing)630 1003 y(sections)37 b(con)m(tain)g(tables)g
-(of)f(the)g(command)f(name,)j(the)e(default)g(k)m(eybinding,)h(if)f(an)
-m(y)-8 b(,)630 1113 y(and)30 b(a)h(short)f(description)g(of)h(what)f
-(the)g(command)h(do)s(es.)630 1246 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
-(name)g(of)g(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g
-(the)g(init)630 1356 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
-(ou)g(wish)f(to)h(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)
-630 1465 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+b(alue)1110 3367 y(is)30 b(`)p Ft(off)p Fu('.)630 3550
+y Ft(visible-stats)1110 3660 y Fu(If)h(set)i(to)f(`)p
+Ft(on)p Fu(',)h(a)f(c)m(haracter)i(denoting)e(a)g(\014le's)g(t)m(yp)s
+(e)g(is)g(app)s(ended)e(to)j(the)1110 3769 y(\014lename)e(when)e
+(listing)i(p)s(ossible)f(completions.)42 b(The)30 b(default)g(is)h(`)p
+Ft(off)p Fu('.)150 3952 y(Key)f(Bindings)630 4061 y(The)41
+b(syn)m(tax)i(for)f(con)m(trolling)h(k)m(ey)g(bindings)e(in)h(the)g
+(init)g(\014le)g(is)g(simple.)75 b(First)43 b(y)m(ou)630
+4171 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i
+(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630
+4281 y(sections)37 b(con)m(tain)g(tables)g(of)f(the)g(command)f(name,)j
+(the)e(default)g(k)m(eybinding,)h(if)f(an)m(y)-8 b(,)630
+4390 y(and)30 b(a)h(short)f(description)g(of)h(what)f(the)g(command)h
+(do)s(es.)630 4536 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g
+(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g(the)g(init)630
+4646 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)f(to)h
+(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)630
+4756 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)630 1575 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(and)630 4865 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
-b(The)40 b(name)h(of)630 1684 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+b(The)40 b(name)h(of)630 4975 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
-(what)h(y)m(ou)g(\014nd)e(most)630 1794 y(comfortable.)630
-1927 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
+(what)h(y)m(ou)g(\014nd)e(most)630 5084 y(comfortable.)630
+5230 y(In)i(addition)h(to)h(command)f(names,)i(readline)e(allo)m(ws)h
(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f(string)630
-2037 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
-(\(a)h Fq(macro)5 b Ft(\).)630 2170 y(The)42 b Fs(bind)30
-b(-p)42 b Ft(command)h(displa)m(ys)g(Readline)g(function)g(names)g(and)
-f(bindings)g(in)h(a)630 2279 y(format)37 b(that)h(can)f(put)f(directly)
-i(in)m(to)g(an)f(initialization)j(\014le.)60 b(See)38
-b(Section)f(4.2)i([Bash)630 2389 y(Builtins],)31 b(page)g(43.)630
-2545 y Fq(k)m(eyname)5 b Ft(:)42 b Fq(function-name)35
-b Ft(or)c Fq(macro)1110 2655 y(k)m(eyname)k Ft(is)29
-b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s(elled)e(out)h(in)g(English.)39
-b(F)-8 b(or)30 b(example:)1350 2788 y Fs(Control-u:)45
-b(universal-argument)1350 2898 y(Meta-Rubout:)f(backward-kill-word)1350
-3007 y(Control-o:)h(">)i(output")1110 3140 y Ft(In)38
-b(the)h(ab)s(o)m(v)m(e)h(example,)h Fi(C-u)d Ft(is)h(b)s(ound)d(to)k
-(the)e(function)h Fs(universal-)1110 3250 y(argument)p
-Ft(,)f Fi(M-DEL)e Ft(is)i(b)s(ound)e(to)i(the)g(function)g
-Fs(backward-kill-word)p Ft(,)1110 3360 y(and)g Fi(C-o)g
-Ft(is)h(b)s(ound)e(to)j(run)d(the)j(macro)f(expressed)g(on)f(the)i
-(righ)m(t)f(hand)1110 3469 y(side)30 b(\(that)i(is,)e(to)h(insert)g
-(the)f(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)i(the)g(line\).)1110
-3602 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)g(c)m(haracter)i
-(names)e(are)g(recognized)h(while)f(pro-)1110 3712 y(cessing)22
-b(this)g(k)m(ey)g(binding)e(syn)m(tax:)37 b Fq(DEL)p
-Ft(,)22 b Fq(ESC)8 b Ft(,)20 b Fq(ESCAPE)5 b Ft(,)21
-b Fq(LFD)5 b Ft(,)22 b Fq(NEW-)1110 3821 y(LINE)5 b Ft(,)31
-b Fq(RET)7 b Ft(,)29 b Fq(RETURN)10 b Ft(,)30 b Fq(R)m(UBOUT)7
-b Ft(,)31 b Fq(SP)-8 b(A)m(CE)5 b Ft(,)31 b Fq(SPC)8
-b Ft(,)29 b(and)h Fq(T)-8 b(AB)5 b Ft(.)630 3978 y Fs(")p
-Fq(k)m(eyseq)r Fs(")p Ft(:)41 b Fq(function-name)36 b
-Ft(or)30 b Fq(macro)1110 4088 y(k)m(eyseq)k Ft(di\013ers)d(from)f
-Fq(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 4197 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
+5340 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g
+(\(a)h Fr(macro)5 b Fu(\).)p eop end
+%%Page: 110 116
+TeXDict begin 110 115 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(110)630 299 y(The)42
+b Ft(bind)30 b(-p)42 b Fu(command)h(displa)m(ys)g(Readline)g(function)g
+(names)g(and)f(bindings)g(in)h(a)630 408 y(format)37
+b(that)h(can)f(put)f(directly)i(in)m(to)g(an)f(initialization)j
+(\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 518
+y(Builtins],)31 b(page)g(48.)630 673 y Fr(k)m(eyname)5
+b Fu(:)42 b Fr(function-name)35 b Fu(or)c Fr(macro)1110
+783 y(k)m(eyname)k Fu(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
+(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
+915 y Ft(Control-u:)45 b(universal-argument)1350 1024
+y(Meta-Rubout:)f(backward-kill-word)1350 1134 y(Control-o:)h(">)i
+(output")1110 1266 y Fu(In)94 b(the)g(ab)s(o)m(v)m(e)i(example,)111
+b Fj(C-u)94 b Fu(is)g(b)s(ound)f(to)i(the)f(function)1110
+1376 y Ft(universal-argument)p Fu(,)124 b Fj(M-DEL)107
+b Fu(is)i(b)s(ound)e(to)j(the)f(function)1110 1485 y
+Ft(backward-kill-word)p Fu(,)75 b(and)69 b Fj(C-o)g Fu(is)h(b)s(ound)e
+(to)j(run)d(the)i(macro)1110 1595 y(expressed)45 b(on)h(the)g(righ)m(t)
+g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)h(text)h(`)p
+Ft(>)1110 1705 y(output)p Fu(')29 b(in)m(to)i(the)g(line\).)1110
+1837 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
+(names)f(are)g(recognized)h(while)1110 1946 y(pro)s(cessing)40
+b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fr(DEL)p
+Fu(,)42 b Fr(ESC)p Fu(,)g Fr(ESCAPE)p Fu(,)f Fr(LFD)p
+Fu(,)1110 2056 y Fr(NEWLINE)p Fu(,)31 b Fr(RET)p Fu(,)f
+Fr(RETURN)p Fu(,)g Fr(R)m(UBOUT)p Fu(,)h Fr(SP)-8 b(A)m(CE)p
+Fu(,)31 b Fr(SPC)p Fu(,)e(and)h Fr(T)-8 b(AB)p Fu(.)630
+2211 y Ft(")p Fr(k)m(eyseq)r Ft(")p Fu(:)41 b Fr(function-name)36
+b Fu(or)30 b Fr(macro)1110 2321 y(k)m(eyseq)k Fu(di\013ers)d(from)f
+Fr(k)m(eyname)37 b Fu(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
+(denoting)g(an)g(en-)1110 2430 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
-1110 4307 y(double)29 b(quotes.)41 b(Some)29 b Fl(gnu)h
-Ft(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 4416 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
-(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 4526 y(recognized.)1350
-4659 y Fs("\\C-u":)46 b(universal-argument)1350 4769
-y("\\C-x\\C-r":)f(re-read-init-file)1350 4878 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 5011 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
-b Fi(C-u)64 b Ft(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-5121 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fi(C-x)1110 5230
-y(C-r)p Ft(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
-Fs(re-read-init-file)p Ft(,)c(and)j(`)p Fs(ESC)h([)g(1)g(1)1110
-5340 y(~)p Ft(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Fs(Function)e(Key)g(1)p Ft('.)p eop end
-%%Page: 104 110
-TeXDict begin 104 109 bop 150 -116 a Ft(104)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(The)e(follo)m(wing)i
-Fl(gnu)f Ft(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
-b(ailable)32 b(when)d(sp)s(ecifying)630 408 y(k)m(ey)i(sequences:)630
-578 y Fi(\\C-)336 b Ft(con)m(trol)32 b(pre\014x)630 748
-y Fi(\\M-)336 b Ft(meta)31 b(pre\014x)630 918 y Fi(\\e)384
-b Ft(an)30 b(escap)s(e)h(c)m(haracter)630 1087 y Fi(\\\\)384
-b Ft(bac)m(kslash)630 1257 y Fi(\\)p Fs(")g(")p Ft(,)30
-b(a)h(double)f(quotation)i(mark)630 1427 y Fi(\\')384
-b Fs(')p Ft(,)30 b(a)h(single)g(quote)g(or)f(ap)s(ostrophe)630
-1597 y(In)d(addition)h(to)g(the)g Fl(gnu)f Ft(Emacs)h(st)m(yle)h(escap)
-s(e)f(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
-1706 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 1876
-y Fs(\\a)384 b Ft(alert)31 b(\(b)s(ell\))630 2046 y Fs(\\b)384
-b Ft(bac)m(kspace)630 2215 y Fs(\\d)g Ft(delete)630 2385
-y Fs(\\f)g Ft(form)30 b(feed)630 2555 y Fs(\\n)384 b
-Ft(newline)630 2724 y Fs(\\r)g Ft(carriage)32 b(return)630
-2894 y Fs(\\t)384 b Ft(horizon)m(tal)32 b(tab)630 3064
-y Fs(\\v)384 b Ft(v)m(ertical)32 b(tab)630 3234 y Fs(\\)p
-Fi(nnn)288 b Ft(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fq(nnn)e
-Ft(\(one)i(to)1110 3343 y(three)c(digits\))630 3513 y
-Fs(\\x)p Fi(HH)288 b Ft(the)40 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e
-(v)-5 b(alue)39 b(is)h(the)f(hexadecimal)i(v)-5 b(alue)40
-b Fq(HH)1110 3622 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-3792 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
-(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-3902 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
-b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 4011 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
-b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 4121 y(will)j(quote)h(an)m(y)f
-(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
-b(`)p Fs(")p Ft(')h(and)g(`)p Fs(')p Ft('.)69 b(F)-8
-b(or)630 4231 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
-(mak)m(e)h(`)p Fi(C-x)j Fs(\\)p Ft(')c(insert)f(a)h(single)h(`)p
-Fs(\\)p Ft(')f(in)m(to)g(the)g(line:)870 4370 y Fs("\\C-x\\\\":)45
-b("\\\\")150 4580 y Fj(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-150 4727 y Ft(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
+1110 2540 y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h
+Fu(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
+1110 2649 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
+(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 2759 y(recognized.)1350
+2891 y Ft("\\C-u":)46 b(universal-argument)1350 3001
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3110 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3243 y Fu(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+b Fj(C-u)64 b Fu(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
+3352 y Ft(universal-argument)39 b Fu(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 3462
+y(C-r)p Fu(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
+Ft(re-read-init-file)p Fu(,)c(and)j(`)p Ft(ESC)h([)g(1)g(1)1110
+3571 y(~)p Fu(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Ft(Function)e(Key)g(1)p Fu('.)630 3726 y(The)g(follo)m(wing)i
+Fm(gnu)f Fu(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
+b(ailable)32 b(when)d(sp)s(ecifying)630 3836 y(k)m(ey)i(sequences:)630
+3991 y Fj(\\C-)336 b Fu(con)m(trol)32 b(pre\014x)630
+4146 y Fj(\\M-)336 b Fu(meta)31 b(pre\014x)630 4301 y
+Fj(\\e)384 b Fu(an)30 b(escap)s(e)h(c)m(haracter)630
+4456 y Fj(\\\\)384 b Fu(bac)m(kslash)630 4611 y Fj(\\)p
+Ft(")g(")p Fu(,)30 b(a)h(double)f(quotation)i(mark)630
+4766 y Fj(\\')384 b Ft(')p Fu(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 4921 y(In)d(addition)h(to)g(the)g Fm(gnu)f
+Fu(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
+(bac)m(kslash)630 5030 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
+5185 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630 5340
+y Ft(\\b)384 b Fu(bac)m(kspace)p eop end
+%%Page: 111 117
+TeXDict begin 111 116 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(111)630 299 y Ft(\\d)384
+b Fu(delete)630 451 y Ft(\\f)g Fu(form)30 b(feed)630
+604 y Ft(\\n)384 b Fu(newline)630 757 y Ft(\\r)g Fu(carriage)32
+b(return)630 909 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)630
+1062 y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)630 1214
+y Ft(\\)p Fj(nnn)288 b Fu(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)
+e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35
+b Fr(nnn)e Fu(\(one)i(to)1110 1324 y(three)c(digits\))630
+1477 y Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5
+b(alue)39 b Fr(HH)1110 1586 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 1739 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
+(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
+630 1848 y(indicate)23 b(a)e(macro)h(de\014nition.)38
+b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
+(name.)38 b(In)630 1958 y(the)22 b(macro)f(b)s(o)s(dy)-8
+b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
+(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2067 y(will)j(quote)h(an)m
+(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
+b(`)p Ft(")p Fu(')h(and)g(`)p Ft(')p Fu('.)69 b(F)-8
+b(or)630 2177 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+(mak)m(e)h(`)p Fj(C-x)j Ft(\\)p Fu(')c(insert)f(a)h(single)h(`)p
+Ft(\\)p Fu(')f(in)m(to)g(the)g(line:)870 2308 y Ft("\\C-x\\\\":)45
+b("\\\\")150 2501 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+150 2647 y Fu(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
(in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
-4836 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+2757 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
-(erformed)f(as)i(the)150 4946 y(result)f(of)h(tests.)41
+(erformed)f(as)i(the)150 2867 y(result)f(of)h(tests.)41
b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
-5121 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)h
+3019 y Ft($if)336 b Fu(The)31 b Ft($if)f Fu(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
-(the)630 5230 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
+(the)630 3129 y(terminal)39 b(b)s(eing)e(used,)j(or)e(the)g
(application)h(using)f(Readline.)64 b(The)38 b(text)h(of)f(the)g(test)
-630 5340 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
-(haracters)i(are)f(required)e(to)i(isolate)i(it.)p eop
-end
-%%Page: 105 111
-TeXDict begin 105 110 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(105)630 299 y Fs(mode)288
-b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g Fs($if)f
-Ft(directiv)m(e)j(is)e(used)f(to)h(test)h(whether)e(Readline)1110
-408 y(is)29 b(in)h Fs(emacs)e Ft(or)h Fs(vi)g Ft(mo)s(de.)40
-b(This)29 b(ma)m(y)h(b)s(e)e(used)h(in)g(conjunction)h(with)f(the)1110
-518 y(`)p Fs(set)h(keymap)p Ft(')c(command,)i(for)f(instance,)i(to)f
-(set)g(bindings)f(in)g(the)h Fs(emacs-)1110 628 y(standard)23
-b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)g(if)g(Readline)h(is)f
-(starting)h(out)1110 737 y(in)k Fs(emacs)f Ft(mo)s(de.)630
-897 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e
-(used)g(to)i(include)f(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110
-1006 y(ings,)38 b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f
-(output)g(b)m(y)g(the)g(terminal's)1110 1116 y(function)24
-b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g
-(the)g(`)p Fs(=)p Ft(')g(is)g(tested)h(against)1110 1225
-y(b)s(oth)k(the)h(full)g(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s
-(ortion)e(of)h(the)g(terminal)1110 1335 y(name)k(b)s(efore)f(the)g
-(\014rst)g(`)p Fs(-)p Ft('.)50 b(This)33 b(allo)m(ws)i
-Fs(sun)e Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110
-1445 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 1604 y
-Fs(application)1110 1714 y Ft(The)21 b Fq(application)j
-Ft(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 1823 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fq(application)1110
-1933 y(name)5 b Ft(,)25 b(and)d(y)m(ou)h(can)g(test)h(for)e(a)h
-(particular)h(v)-5 b(alue.)38 b(This)22 b(could)h(b)s(e)f(used)g(to)
-1110 2042 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g
-(for)h(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110
-2152 y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)
-f(sequence)h(that)f(quotes)1110 2262 y(the)e(curren)m(t)f(or)g
-(previous)g(w)m(ord)g(in)g(Bash:)1350 2396 y Fs($if)47
-b(Bash)1350 2506 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)
-1350 2615 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 2725 y($endif)150
-2884 y($endif)192 b Ft(This)29 b(command,)i(as)f(seen)h(in)f(the)g
-(previous)g(example,)h(terminates)g(an)g Fs($if)e Ft(command.)150
-3044 y Fs($else)240 b Ft(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
-(the)f Fs($if)g Ft(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 3203 y Fs($include)96 b Ft(This)43 b(directiv)m(e)i(tak)m
-(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
-(commands)630 3313 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+630 3238 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)g(no)f(c)m
+(haracters)i(are)f(required)e(to)i(isolate)i(it.)630
+3391 y Ft(mode)288 b Fu(The)30 b Ft(mode=)e Fu(form)i(of)g(the)h
+Ft($if)e Fu(directiv)m(e)j(is)e(used)f(to)i(test)g(whether)e(Read-)1110
+3501 y(line)44 b(is)f(in)g Ft(emacs)f Fu(or)h Ft(vi)g
+Fu(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g(conjunction)
+1110 3610 y(with)c(the)h(`)p Ft(set)29 b(keymap)p Fu(')38
+b(command,)k(for)d(instance,)j(to)e(set)g(bindings)e(in)1110
+3720 y(the)32 b Ft(emacs-standard)c Fu(and)j Ft(emacs-ctlx)d
+Fu(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 3829 y(starting)f(out)g
+(in)f Ft(emacs)f Fu(mo)s(de.)630 3982 y Ft(term)288 b
+Fu(The)26 b Ft(term=)g Fu(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
+(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 4092 y(ings,)38
+b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f(output)g(b)m(y)g
+(the)g(terminal's)1110 4201 y(function)24 b(k)m(eys.)39
+b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g(the)g(`)p
+Ft(=)p Fu(')g(is)g(tested)h(against)1110 4311 y(b)s(oth)k(the)h(full)g
+(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s(ortion)e(of)h(the)g
+(terminal)1110 4420 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
+Ft(-)p Fu('.)50 b(This)33 b(allo)m(ws)i Ft(sun)e Fu(to)h(matc)m(h)g(b)s
+(oth)f Ft(sun)g Fu(and)1110 4530 y Ft(sun-cmd)p Fu(,)c(for)h(instance.)
+630 4682 y Ft(application)1110 4792 y Fu(The)21 b Fr(application)j
+Fu(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
+(set-)1110 4902 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
+(Readline)g(library)g(sets)g(the)g Fr(application)1110
+5011 y(name)p Fu(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
+(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
+5121 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
+(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 5230
+y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
+(sequence)h(that)f(quotes)1110 5340 y(the)e(curren)m(t)f(or)g(previous)
+g(w)m(ord)g(in)g(Bash:)p eop end
+%%Page: 112 118
+TeXDict begin 112 117 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(112)1350 299 y Ft($if)47
+b(Bash)1350 408 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
+518 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 628 y($endif)150
+787 y($endif)192 b Fu(This)29 b(command,)i(as)f(seen)h(in)f(the)g
+(previous)g(example,)h(terminates)g(an)g Ft($if)e Fu(command.)150
+946 y Ft($else)240 b Fu(Commands)29 b(in)h(this)h(branc)m(h)e(of)i(the)
+f Ft($if)g Fu(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g(fails.)
+150 1106 y Ft($include)96 b Fu(This)43 b(directiv)m(e)i(tak)m(es)g(a)e
+(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g(commands)
+630 1215 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 3422 y(`)p Fs(/etc/inputrc)p Ft(':)870 3557
-y Fs($include)46 b(/etc/inputrc)150 3756 y Fj(8.3.3)63
-b(Sample)41 b(Init)g(File)150 3903 y Ft(Here)27 b(is)f(an)h(example)g
-(of)f(an)h Fq(inputrc)k Ft(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)
-h(binding,)e(v)-5 b(ariable)27 b(assignmen)m(t,)i(and)150
-4012 y(conditional)j(syn)m(tax.)p eop end
-%%Page: 106 112
-TeXDict begin 106 111 bop 150 -116 a Ft(106)2527 b(Bash)31
-b(Reference)g(Man)m(ual)390 408 y Fs(#)47 b(This)g(file)g(controls)e
-(the)i(behaviour)e(of)j(line)e(input)h(editing)e(for)390
-518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h(Readline)f(library.)93
-b(Existing)390 628 y(#)47 b(programs)f(include)g(FTP,)g(Bash,)h(and)g
-(GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f
-(file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#')
-g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i
-(systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e
-(from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390
+(from)630 1325 y Ft(/etc/inputrc)p Fu(:)870 1460 y Ft($include)46
+b(/etc/inputrc)150 1659 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)150
+1806 y Fu(Here)27 b(is)f(an)h(example)g(of)f(an)h Fr(inputrc)k
+Fu(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
+b(ariable)27 b(assignmen)m(t,)i(and)150 1915 y(conditional)j(syn)m
+(tax.)p eop end
+%%Page: 113 119
+TeXDict begin 113 118 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(113)390 408 y Ft(#)47
+b(This)g(file)g(controls)e(the)i(behaviour)e(of)j(line)e(input)h
+(editing)e(for)390 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h
+(Readline)f(library.)93 b(Existing)390 628 y(#)47 b(programs)f(include)
+g(FTP,)g(Bash,)h(and)g(GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g
+(re-read)f(the)h(inputrc)f(file)g(with)h(C-x)g(C-r.)390
+956 y(#)g(Lines)g(beginning)e(with)i('#')g(are)g(comments.)390
+1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i(system-wide)e
+(bindings)h(and)g(variable)390 1285 y(#)h(assignments)e(from)i
+(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390
1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.)
390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390
2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the)
@@ -12317,9 +16092,9 @@ y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390
4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 107 113
-TeXDict begin 107 112 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(107)390 299 y Fs(#"\\M-\\C-[A":)
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(114)390 299 y Ft(#"\\M-\\C-[A":)
331 b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
@@ -12352,1913 +16127,2079 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
(completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g
(he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f
(completion-query-items)42 b(150)p eop end
-%%Page: 108 114
-TeXDict begin 108 113 bop 150 -116 a Ft(108)2527 b(Bash)31
-b(Reference)g(Man)m(ual)390 299 y Fs(#)47 b(For)g(FTP)390
-408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
+%%Page: 115 121
+TeXDict begin 115 120 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(115)390 299 y Ft(#)47
+b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
-847 y($endif)150 1075 y Fr(8.4)68 b(Bindable)45 b(Readline)i(Commands)
-150 1235 y Ft(This)32 b(section)h(describ)s(es)f(Readline)h(commands)f
+847 y($endif)150 1075 y Fs(8.4)68 b(Bindable)45 b(Readline)i(Commands)
+150 1235 y Fu(This)32 b(section)h(describ)s(es)f(Readline)h(commands)f
(that)h(ma)m(y)h(b)s(e)d(b)s(ound)g(to)i(k)m(ey)g(sequences.)48
b(Y)-8 b(ou)33 b(can)150 1344 y(list)40 b(y)m(our)f(k)m(ey)i(bindings)d
-(b)m(y)h(executing)i Fs(bind)29 b(-P)39 b Ft(or,)j(for)d(a)h(more)g
-(terse)g(format,)i(suitable)e(for)f(an)150 1454 y Fq(inputrc)34
-b Ft(\014le,)29 b Fs(bind)g(-p)p Ft(.)40 b(\(See)30 b(Section)f(4.2)h
-([Bash)g(Builtins],)g(page)g(43.\))41 b(Command)28 b(names)h(without)
+(b)m(y)h(executing)i Ft(bind)29 b(-P)39 b Fu(or,)j(for)d(a)h(more)g
+(terse)g(format,)i(suitable)e(for)f(an)150 1454 y Fr(inputrc)34
+b Fu(\014le,)29 b Ft(bind)g(-p)p Fu(.)40 b(\(See)30 b(Section)f(4.2)h
+([Bash)g(Builtins],)g(page)g(48.\))41 b(Command)28 b(names)h(without)
150 1563 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s
(ound)d(b)m(y)i(default.)275 1696 y(In)25 b(the)h(follo)m(wing)i
-(descriptions,)f Fq(p)s(oin)m(t)h Ft(refers)e(to)h(the)f(curren)m(t)g
-(cursor)g(p)s(osition,)h(and)f Fq(mark)31 b Ft(refers)150
+(descriptions,)f Fr(p)s(oin)m(t)h Fu(refers)e(to)h(the)f(curren)m(t)g
+(cursor)g(p)s(osition,)h(and)f Fr(mark)31 b Fu(refers)150
1805 y(to)40 b(a)f(cursor)f(p)s(osition)h(sa)m(v)m(ed)h(b)m(y)f(the)g
-Fs(set-mark)d Ft(command.)66 b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f
+Ft(set-mark)d Fu(command.)66 b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f
(p)s(oin)m(t)g(and)150 1915 y(mark)30 b(is)h(referred)e(to)i(as)g(the)f
-Fq(region)p Ft(.)150 2110 y Fj(8.4.1)63 b(Commands)42
-b(F)-10 b(or)41 b(Mo)m(ving)150 2280 y Fs(beginning-of-line)26
-b(\(C-a\))630 2390 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f
-(curren)m(t)g(line.)150 2545 y Fs(end-of-line)d(\(C-e\))630
-2655 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-2810 y Fs(forward-char)c(\(C-f\))630 2920 y Ft(Mo)m(v)m(e)32
-b(forw)m(ard)e(a)h(c)m(haracter.)150 3075 y Fs(backward-char)c(\(C-b\))
-630 3185 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
-3340 y Fs(forward-word)d(\(M-f\))630 3450 y Ft(Mo)m(v)m(e)32
+Fr(region)p Fu(.)150 2110 y Fk(8.4.1)63 b(Commands)42
+b(F)-10 b(or)41 b(Mo)m(ving)150 2280 y Ft(beginning-of-line)26
+b(\(C-a\))630 2390 y Fu(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f
+(curren)m(t)g(line.)150 2545 y Ft(end-of-line)d(\(C-e\))630
+2655 y Fu(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
+2810 y Ft(forward-char)c(\(C-f\))630 2920 y Fu(Mo)m(v)m(e)32
+b(forw)m(ard)e(a)h(c)m(haracter.)150 3075 y Ft(backward-char)c(\(C-b\))
+630 3185 y Fu(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150
+3340 y Ft(forward-word)d(\(M-f\))630 3450 y Fu(Mo)m(v)m(e)32
b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)i(and)630
-3559 y(digits.)150 3715 y Fs(backward-word)27 b(\(M-b\))630
-3824 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
+3559 y(digits.)150 3715 y Ft(backward-word)27 b(\(M-b\))630
+3824 y Fu(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g
(curren)m(t)f(or)g(previous)g(w)m(ord.)50 b(W)-8 b(ords)34
b(are)g(comp)s(osed)630 3934 y(of)d(letters)g(and)f(digits.)150
-4089 y Fs(shell-forward-word)25 b(\(\))630 4199 y Ft(Mo)m(v)m(e)30
+4089 y Ft(shell-forward-word)25 b(\(\))630 4199 y Fu(Mo)m(v)m(e)30
b(forw)m(ard)e(to)h(the)f(end)f(of)h(the)h(next)f(w)m(ord.)40
b(W)-8 b(ords)28 b(are)g(delimited)h(b)m(y)f(non-quoted)630
-4308 y(shell)j(metac)m(haracters.)150 4464 y Fs(shell-backward-word)25
-b(\(\))630 4573 y Ft(Mo)m(v)m(e)37 b(bac)m(k)e(to)h(the)f(start)g(of)g
+4308 y(shell)j(metac)m(haracters.)150 4464 y Ft(shell-backward-word)25
+b(\(\))630 4573 y Fu(Mo)m(v)m(e)37 b(bac)m(k)e(to)h(the)f(start)g(of)g
(the)g(curren)m(t)g(or)f(previous)h(w)m(ord.)53 b(W)-8
b(ords)35 b(are)g(delimited)630 4683 y(b)m(y)30 b(non-quoted)h(shell)f
-(metac)m(haracters.)150 4838 y Fs(clear-screen)d(\(C-l\))630
-4948 y Ft(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h(curren)m(t)f
+(metac)m(haracters.)150 4838 y Ft(clear-screen)d(\(C-l\))630
+4948 y Fu(Clear)g(the)g(screen)f(and)h(redra)m(w)f(the)h(curren)m(t)f
(line,)i(lea)m(ving)g(the)f(curren)m(t)g(line)g(at)g(the)g(top)630
-5057 y(of)k(the)f(screen.)150 5213 y Fs(redraw-current-line)25
-b(\(\))630 5322 y Ft(Refresh)30 b(the)g(curren)m(t)h(line.)41
+5057 y(of)k(the)f(screen.)150 5213 y Ft(redraw-current-line)25
+b(\(\))630 5322 y Fu(Refresh)30 b(the)g(curren)m(t)h(line.)41
b(By)30 b(default,)h(this)f(is)h(un)m(b)s(ound.)p eop
end
-%%Page: 109 115
-TeXDict begin 109 114 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(109)150 299 y Fj(8.4.2)63
+%%Page: 116 122
+TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(116)150 299 y Fk(8.4.2)63
b(Commands)42 b(F)-10 b(or)41 b(Manipulating)h(The)f(History)150
-473 y Fs(accept-line)27 b(\(Newline)h(or)i(Return\))630
-582 y Ft(Accept)25 b(the)e(line)h(regardless)g(of)f(where)g(the)h
+473 y Ft(accept-line)27 b(\(Newline)h(or)i(Return\))630
+582 y Fu(Accept)25 b(the)e(line)h(regardless)g(of)f(where)g(the)h
(cursor)e(is.)39 b(If)23 b(this)g(line)h(is)f(non-empt)m(y)-8
b(,)26 b(add)c(it)630 692 y(to)27 b(the)f(history)g(list)h(according)g
-(to)g(the)f(setting)i(of)e(the)g Fs(HISTCONTROL)d Ft(and)j
-Fs(HISTIGNORE)630 802 y Ft(v)-5 b(ariables.)42 b(If)30
+(to)g(the)f(setting)i(of)e(the)g Ft(HISTCONTROL)d Fu(and)j
+Ft(HISTIGNORE)630 802 y Fu(v)-5 b(ariables.)42 b(If)30
b(this)h(line)g(is)g(a)g(mo)s(di\014ed)e(history)i(line,)g(then)f
(restore)i(the)f(history)f(line)h(to)630 911 y(its)g(original)g(state.)
-150 1075 y Fs(previous-history)26 b(\(C-p\))630 1184
-y Ft(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
-(fetc)m(hing)g(the)g(previous)f(command.)150 1348 y Fs(next-history)d
-(\(C-n\))630 1457 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
+150 1075 y Ft(previous-history)26 b(\(C-p\))630 1184
+y Fu(Mo)m(v)m(e)32 b(`bac)m(k')g(through)e(the)g(history)h(list,)g
+(fetc)m(hing)g(the)g(previous)f(command.)150 1348 y Ft(next-history)d
+(\(C-n\))630 1457 y Fu(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i
(history)f(list,)i(fetc)m(hing)f(the)g(next)f(command.)150
-1621 y Fs(beginning-of-history)25 b(\(M-<\))630 1730
-y Ft(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
-b(.)150 1894 y Fs(end-of-history)26 b(\(M->\))630 2004
-y Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
+1621 y Ft(beginning-of-history)25 b(\(M-<\))630 1730
+y Fu(Mo)m(v)m(e)32 b(to)g(the)e(\014rst)g(line)g(in)h(the)f(history)-8
+b(.)150 1894 y Ft(end-of-history)26 b(\(M->\))630 2004
+y Fu(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(input)e(history)-8
b(,)31 b(i.e.,)h(the)f(line)f(curren)m(tly)h(b)s(eing)f(en)m(tered.)150
-2167 y Fs(reverse-search-history)24 b(\(C-r\))630 2277
-y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
+2167 y Ft(reverse-search-history)24 b(\(C-r\))630 2277
+y Fu(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g(the)f(curren)m(t)g
(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g(his-)630
2386 y(tory)g(as)f(necessary)-8 b(.)42 b(This)29 b(is)i(an)f(incremen)m
-(tal)i(searc)m(h.)150 2550 y Fs(forward-search-history)24
-b(\(C-s\))630 2659 y Ft(Searc)m(h)30 b(forw)m(ard)f(starting)h(at)g
+(tal)i(searc)m(h.)150 2550 y Ft(forward-search-history)24
+b(\(C-s\))630 2659 y Fu(Searc)m(h)30 b(forw)m(ard)f(starting)h(at)g
(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')f(through)g(the)
h(the)630 2769 y(history)g(as)h(necessary)-8 b(.)41 b(This)30
-b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 2932 y Fs
+b(is)g(an)h(incremen)m(tal)g(searc)m(h.)150 2932 y Ft
(non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24
-b(\(M-p\))630 3042 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
+b(\(M-p\))630 3042 y Fu(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
(the)f(curren)m(t)g(line)g(and)g(mo)m(ving)h(`up')e(through)h(the)g
(his-)630 3152 y(tory)36 b(as)g(necessary)h(using)e(a)i(non-incremen)m
(tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630
-3261 y(user.)150 3425 y Fs(non-incremental-forward-)o(sear)o(ch-h)o
-(ist)o(ory)24 b(\(M-n\))630 3534 y Ft(Searc)m(h)30 b(forw)m(ard)f
+3261 y(user.)150 3425 y Ft(non-incremental-forward-)o(sear)o(ch-h)o
+(ist)o(ory)24 b(\(M-n\))630 3534 y Fu(Searc)m(h)30 b(forw)m(ard)f
(starting)h(at)g(the)g(curren)m(t)f(line)h(and)f(mo)m(ving)h(`do)m(wn')
f(through)g(the)h(the)630 3644 y(history)d(as)f(necessary)i(using)e(a)h
(non-incremen)m(tal)g(searc)m(h)h(for)e(a)h(string)g(supplied)e(b)m(y)i
-(the)630 3754 y(user.)150 3917 y Fs(history-search-forward)d(\(\))630
-4027 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
+(the)630 3754 y(user.)150 3917 y Ft(history-search-forward)d(\(\))630
+4027 y Fu(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
-4136 y(start)36 b(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m
-(t.)55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56
-b(By)630 4246 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150
-4409 y Fs(history-search-backward)24 b(\(\))630 4519
-y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
+4136 y(start)36 b(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m
+(t.)58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)
+630 4246 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
+b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
+b(By)33 b(default,)g(this)630 4355 y(command)d(is)h(un)m(b)s(ound.)150
+4519 y Ft(history-search-backward)24 b(\(\))630 4629
+y Fu(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)g(for)g
(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630
-4629 y(start)g(of)f(the)g(curren)m(t)g(line)g(and)g(the)g(p)s(oin)m(t.)
-55 b(This)34 b(is)i(a)f(non-incremen)m(tal)h(searc)m(h.)56
-b(By)630 4738 y(default,)31 b(this)f(command)g(is)h(un)m(b)s(ound.)150
-4902 y Fs(yank-nth-arg)c(\(M-C-y\))630 5011 y Ft(Insert)37
+4738 y(start)g(of)h(the)f(curren)m(t)f(line)i(and)e(the)h(p)s(oin)m(t.)
+58 b(The)35 b(searc)m(h)i(string)e(m)m(ust)h(matc)m(h)h(at)g(the)630
+4848 y(b)s(eginning)32 b(of)g(a)h(history)g(line.)47
+b(This)32 b(is)h(a)f(non-incremen)m(tal)i(searc)m(h.)48
+b(By)33 b(default,)g(this)630 4957 y(command)d(is)h(un)m(b)s(ound.)150
+5121 y Ft(history-substr-search-fo)o(rwar)o(d)24 b(\(\))630
+5230 y Fu(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)f(for)g
+(the)h(string)f(of)h(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630
+5340 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f(the)h(p)s(oin)m
+(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m(h)h(an)m(ywhere)
+p eop end
+%%Page: 117 123
+TeXDict begin 117 122 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(117)630 299 y(in)32
+b(a)h(history)g(line.)47 b(This)32 b(is)g(a)h(non-incremen)m(tal)h
+(searc)m(h.)47 b(By)33 b(default,)h(this)e(command)630
+408 y(is)e(un)m(b)s(ound.)150 573 y Ft(history-substr-search-ba)o(ckwa)
+o(rd)24 b(\(\))630 683 y Fu(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f
+(the)h(history)g(for)g(the)f(string)h(of)g(c)m(haracters)h(b)s(et)m(w)m
+(een)g(the)630 793 y(start)29 b(of)g(the)g(curren)m(t)g(line)g(and)f
+(the)h(p)s(oin)m(t.)40 b(The)29 b(searc)m(h)g(string)g(ma)m(y)g(matc)m
+(h)h(an)m(ywhere)630 902 y(in)i(a)h(history)g(line.)47
+b(This)32 b(is)g(a)h(non-incremen)m(tal)h(searc)m(h.)47
+b(By)33 b(default,)h(this)e(command)630 1012 y(is)e(un)m(b)s(ound.)150
+1177 y Ft(yank-nth-arg)d(\(M-C-y\))630 1286 y Fu(Insert)37
b(the)g(\014rst)f(argumen)m(t)i(to)f(the)h(previous)e(command)h
-(\(usually)g(the)g(second)g(w)m(ord)630 5121 y(on)32
+(\(usually)g(the)g(second)g(w)m(ord)630 1396 y(on)32
b(the)g(previous)f(line\))i(at)f(p)s(oin)m(t.)46 b(With)32
-b(an)g(argumen)m(t)g Fq(n)p Ft(,)g(insert)g(the)g Fq(n)p
-Ft(th)f(w)m(ord)g(from)630 5230 y(the)k(previous)f(command)h(\(the)g(w)
+b(an)g(argumen)m(t)g Fr(n)p Fu(,)g(insert)g(the)g Fr(n)p
+Fu(th)f(w)m(ord)g(from)630 1506 y(the)k(previous)f(command)h(\(the)g(w)
m(ords)g(in)f(the)h(previous)g(command)f(b)s(egin)h(with)f(w)m(ord)630
-5340 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
-Fq(n)p Ft(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)p
-eop end
-%%Page: 110 116
-TeXDict begin 110 115 bop 150 -116 a Ft(110)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(command.)48 b(Once)33
-b(the)g(argumen)m(t)h Fq(n)e Ft(is)h(computed,)h(the)f(argumen)m(t)g
-(is)g(extracted)i(as)e(if)630 408 y(the)e(`)p Fs(!)p
-Fi(n)11 b Ft(')29 b(history)i(expansion)f(had)g(b)s(een)f(sp)s
-(eci\014ed.)150 579 y Fs(yank-last-arg)e(\(M-.)i(or)h(M-_\))630
-689 y Ft(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)f(command)h
-(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630 798
-y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m(t,)h
-(b)s(eha)m(v)m(e)f(exactly)h(lik)m(e)g Fs(yank-nth-arg)p
-Ft(.)630 908 y(Successiv)m(e)26 b(calls)g(to)f Fs(yank-last-arg)c
-Ft(mo)m(v)m(e)27 b(bac)m(k)e(through)f(the)h(history)g(list,)i
-(inserting)630 1018 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
+1615 y(0\).)69 b(A)40 b(negativ)m(e)h(argumen)m(t)f(inserts)g(the)f
+Fr(n)p Fu(th)g(w)m(ord)g(from)g(the)h(end)f(of)h(the)f(previous)630
+1725 y(command.)48 b(Once)33 b(the)g(argumen)m(t)h Fr(n)e
+Fu(is)h(computed,)h(the)f(argumen)m(t)g(is)g(extracted)i(as)e(if)630
+1834 y(the)e(`)p Ft(!)p Fj(n)p Fu(')f(history)g(expansion)g(had)g(b)s
+(een)g(sp)s(eci\014ed.)150 1999 y Ft(yank-last-arg)d(\(M-.)i(or)h
+(M-_\))630 2109 y Fu(Insert)k(last)i(argumen)m(t)g(to)g(the)f(previous)
+f(command)h(\(the)h(last)f(w)m(ord)g(of)g(the)g(previous)630
+2218 y(history)e(en)m(try\).)51 b(With)34 b(a)g(n)m(umeric)g(argumen)m
+(t,)h(b)s(eha)m(v)m(e)f(exactly)h(lik)m(e)g Ft(yank-nth-arg)p
+Fu(.)630 2328 y(Successiv)m(e)26 b(calls)g(to)f Ft(yank-last-arg)c
+Fu(mo)m(v)m(e)27 b(bac)m(k)e(through)f(the)h(history)g(list,)i
+(inserting)630 2438 y(the)c(last)g(w)m(ord)f(\(or)h(the)g(w)m(ord)f(sp)
s(eci\014ed)g(b)m(y)g(the)h(argumen)m(t)g(to)g(the)g(\014rst)f(call\))i
-(of)f(eac)m(h)h(line)630 1127 y(in)36 b(turn.)58 b(An)m(y)36
+(of)f(eac)m(h)h(line)630 2547 y(in)36 b(turn.)58 b(An)m(y)36
b(n)m(umeric)h(argumen)m(t)f(supplied)g(to)h(these)g(successiv)m(e)g
-(calls)h(determines)630 1237 y(the)d(direction)g(to)h(mo)m(v)m(e)g
+(calls)h(determines)630 2657 y(the)d(direction)g(to)h(mo)m(v)m(e)g
(through)e(the)h(history)-8 b(.)54 b(A)35 b(negativ)m(e)i(argumen)m(t)e
-(switc)m(hes)h(the)630 1346 y(direction)23 b(through)g(the)g(history)f
+(switc)m(hes)h(the)630 2766 y(direction)23 b(through)g(the)g(history)f
(\(bac)m(k)i(or)f(forw)m(ard\).)38 b(The)22 b(history)h(expansion)g
-(facilities)630 1456 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
-(argumen)m(t,)h(as)e(if)h(the)g(`)p Fs(!$)p Ft(')f(history)g(expansion)
-h(had)f(b)s(een)630 1565 y(sp)s(eci\014ed.)150 1776 y
-Fj(8.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 1953 y Fs(delete-char)27 b(\(C-d\))630 2063
-y Ft(Delete)41 b(the)e(c)m(haracter)i(at)e(p)s(oin)m(t.)66
-b(If)39 b(p)s(oin)m(t)f(is)h(at)h(the)f(b)s(eginning)f(of)h(the)g
-(line,)j(there)630 2173 y(are)37 b(no)g(c)m(haracters)i(in)d(the)i
-(line,)h(and)d(the)h(last)h(c)m(haracter)h(t)m(yp)s(ed)e(w)m(as)g(not)g
-(b)s(ound)e(to)630 2282 y Fs(delete-char)p Ft(,)28 b(then)i(return)f
-Fl(eof)p Ft(.)150 2453 y Fs(backward-delete-char)c(\(Rubout\))630
-2562 y Ft(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
+(facilities)630 2876 y(are)28 b(used)f(to)h(extract)h(the)f(last)g
+(argumen)m(t,)h(as)e(if)h(the)g(`)p Ft(!$)p Fu(')f(history)g(expansion)
+h(had)f(b)s(een)630 2986 y(sp)s(eci\014ed.)150 3190 y
+Fk(8.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
+b(ext)150 3365 y Fj(end-of-file)27 b Ft(\(usually)h(C-d\))630
+3475 y Fu(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
+(for)f(example,)i(b)m(y)e Ft(stty)p Fu(.)39 b(If)25 b(this)h(c)m
+(harac-)630 3584 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(haracters)j(on)d(the)h(line,)i(and)d(p)s(oin)m(t)h(is)g(at)h(the)f(b)s
+(eginning)630 3694 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
+(it)g(as)f(the)h(end)f(of)g(input)f(and)h(returns)f Fm(eof)p
+Fu(.)150 3859 y Ft(delete-char)e(\(C-d\))630 3968 y Fu(Delete)35
+b(the)f(c)m(haracter)h(at)f(p)s(oin)m(t.)49 b(If)33 b(this)g(function)g
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 4078
+y(as)e(the)f(tt)m(y)i Fm(eof)d Fu(c)m(haracter,)j(as)f
+Fj(C-d)e Fu(commonly)i(is,)g(see)g(ab)s(o)m(v)m(e)h(for)e(the)g
+(e\013ects.)150 4243 y Ft(backward-delete-char)25 b(\(Rubout\))630
+4353 y Fu(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
-2672 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-2843 y Fs(forward-backward-delete-)o(char)24 b(\(\))630
-2952 y Ft(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+4462 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+4627 y Ft(forward-backward-delete-)o(char)24 b(\(\))630
+4737 y Fu(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
(unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630
-3062 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
+4846 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
(ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
-3172 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-3342 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3452
-y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
+4956 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+5121 y Ft(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 5230
+y Fu(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
(v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630
-3561 y(sequences)d(lik)m(e)g Fi(C-q)p Ft(,)f(for)g(example.)150
-3732 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
-3842 y Ft(Insert)g(y)m(ourself.)150 4012 y Fs(transpose-chars)c
-(\(C-t\))630 4122 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g
-(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
-(cursor,)630 4232 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
-(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
-g(of)h(the)630 4341 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
-(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
-b(Negativ)m(e)25 b(argumen)m(ts)630 4451 y(ha)m(v)m(e)32
-b(no)e(e\013ect.)150 4621 y Fs(transpose-words)c(\(M-t\))630
-4731 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
-(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
-g(that)630 4841 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
-b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
-(line,)i(this)e(transp)s(oses)g(the)630 4950 y(last)j(t)m(w)m(o)h(w)m
-(ords)e(on)g(the)h(line.)150 5121 y Fs(upcase-word)c(\(M-u\))630
-5230 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
-(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
-5340 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
-(the)e(cursor.)p eop end
-%%Page: 111 117
-TeXDict begin 111 116 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(111)150 299 y Fs(downcase-word)27
-b(\(M-l\))630 408 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h
-(follo)m(wing\))i(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m
-(t,)g(lo)m(w)m(ercase)630 518 y(the)31 b(previous)e(w)m(ord,)i(but)e
-(do)i(not)f(mo)m(v)m(e)i(the)f(cursor.)150 692 y Fs(capitalize-word)26
-b(\(M-c\))630 801 y Ft(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+5340 y(sequences)d(lik)m(e)g Fj(C-q)p Fu(,)f(for)g(example.)p
+eop end
+%%Page: 118 124
+TeXDict begin 118 123 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(118)150 299 y Ft(self-insert)27
+b(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630 408 y Fu(Insert)g(y)m
+(ourself.)150 556 y Ft(transpose-chars)c(\(C-t\))630
+665 y Fu(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g(cursor)f
+(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g(cursor,)630
+775 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m(ell.)57
+b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)g(of)h
+(the)630 884 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h(last)h(t)
+m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38 b(Negativ)m(e)25
+b(argumen)m(ts)630 994 y(ha)m(v)m(e)32 b(no)e(e\013ect.)150
+1141 y Ft(transpose-words)c(\(M-t\))630 1251 y Fu(Drag)33
+b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g(the)h(w)m(ord)f
+(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)g(that)630
+1360 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
+(t)h(is)f(at)h(the)g(end)e(of)i(the)f(line,)i(this)e(transp)s(oses)g
+(the)630 1470 y(last)j(t)m(w)m(o)h(w)m(ords)e(on)g(the)h(line.)150
+1617 y Ft(upcase-word)c(\(M-u\))630 1727 y Fu(Upp)s(ercase)32
+b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i(w)m(ord.)45
+b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+1837 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 1984 y Ft(downcase-word)d(\(M-l\))630
+2093 y Fu(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
+(ercase)630 2203 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 2350 y Ft(capitalize-word)26
+b(\(M-c\))630 2460 y Fu(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
-(capitalize)630 911 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
-(mo)m(v)m(e)i(the)f(cursor.)150 1084 y Fs(overwrite-mode)26
-b(\(\))630 1194 y Ft(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 2569 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
+(mo)m(v)m(e)i(the)f(cursor.)150 2717 y Ft(overwrite-mode)26
+b(\(\))630 2826 y Fu(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
-h(switc)m(hes)630 1304 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 2936 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
-(t,)i(switc)m(hes)e(to)630 1413 y(insert)30 b(mo)s(de.)41
-b(This)30 b(command)h(a\013ects)h(only)e Fs(emacs)f Ft(mo)s(de;)i
-Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 1523
+(t,)i(switc)m(hes)e(to)630 3045 y(insert)30 b(mo)s(de.)41
+b(This)30 b(command)h(a\013ects)h(only)e Ft(emacs)f Fu(mo)s(de;)i
+Ft(vi)f Fu(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 3155
y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
-Fs(readline\(\))c Ft(starts)k(in)f(insert)g(mo)s(de.)630
-1664 y(In)e(o)m(v)m(erwrite)j(mo)s(de,)e(c)m(haracters)i(b)s(ound)c(to)
-j Fs(self-insert)c Ft(replace)k(the)g(text)g(at)g(p)s(oin)m(t)630
-1774 y(rather)41 b(than)h(pushing)e(the)i(text)g(to)g(the)g(righ)m(t.)
-75 b(Characters)42 b(b)s(ound)d(to)j Fs(backward-)630
-1883 y(delete-char)27 b Ft(replace)32 b(the)e(c)m(haracter)i(b)s(efore)
-e(p)s(oin)m(t)h(with)f(a)g(space.)630 2025 y(By)h(default,)f(this)h
-(command)f(is)g(un)m(b)s(ound.)150 2238 y Fj(8.4.4)63
-b(Killing)42 b(And)e(Y)-10 b(anking)150 2417 y Fs(kill-line)28
-b(\(C-k\))630 2527 y Ft(Kill)j(the)f(text)i(from)e(p)s(oin)m(t)g(to)h
-(the)g(end)e(of)i(the)f(line.)150 2700 y Fs(backward-kill-line)25
-b(\(C-x)30 b(Rubout\))630 2810 y Ft(Kill)h(bac)m(kw)m(ard)g(to)g(the)f
-(b)s(eginning)g(of)g(the)h(line.)150 2984 y Fs(unix-line-discard)26
-b(\(C-u\))630 3093 y Ft(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)
-f(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150
-3267 y Fs(kill-whole-line)c(\(\))630 3376 y Ft(Kill)37
-b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g
-(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
-3486 y(this)30 b(is)h(un)m(b)s(ound.)150 3659 y Fs(kill-word)d(\(M-d\))
-630 3769 y Ft(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
-(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 3879 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
-b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs(forward-word)p
-Ft(.)150 4052 y Fs(backward-kill-word)25 b(\(M-DEL\))630
-4162 y Ft(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
-b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g
-Fs(backward-word)p Ft(.)150 4335 y Fs(shell-kill-word)d(\(\))630
-4445 y Ft(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+Ft(readline\(\))c Fu(starts)k(in)f(insert)g(mo)s(de.)630
+3283 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
+(ound)c(to)j Ft(self-insert)c Fu(replace)k(the)g(text)g(at)630
+3393 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
+(the)f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630
+3503 y Ft(backward-delete-char)25 b Fu(replace)31 b(the)g(c)m(haracter)
+h(b)s(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 3631
+y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
+3818 y Fk(8.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
+3984 y Ft(kill-line)28 b(\(C-k\))630 4093 y Fu(Kill)j(the)f(text)i
+(from)e(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f(line.)150
+4241 y Ft(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
+4350 y Fu(Kill)h(bac)m(kw)m(ard)g(to)g(the)f(b)s(eginning)g(of)g(the)h
+(line.)150 4498 y Ft(unix-line-discard)26 b(\(C-u\))630
+4607 y Fu(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)f(to)h(the)f
+(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150 4754
+y Ft(kill-whole-line)c(\(\))630 4864 y Fu(Kill)37 b(all)g(c)m
+(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g(where)f(p)s
+(oin)m(t)h(is.)59 b(By)36 b(default,)630 4974 y(this)30
+b(is)h(un)m(b)s(ound.)150 5121 y Ft(kill-word)d(\(M-d\))630
+5230 y Fu(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 4555 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
-b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Fs
-(shell-forward-word)p Ft(.)150 4728 y Fs(shell-backward-kill-word)24
-b(\(\))630 4838 y Ft(Kill)e(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38
+(the)g(end)630 5340 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Ft(forward-word)p
+Fu(.)p eop end
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(119)150 299 y Ft
+(backward-kill-word)25 b(\(M-DEL\))630 408 y Fu(Kill)k(the)g(w)m(ord)g
+(b)s(ehind)e(p)s(oin)m(t.)40 b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h
+(the)g(same)g(as)g Ft(backward-word)p Fu(.)150 569 y
+Ft(shell-kill-word)d(\(\))630 679 y Fu(Kill)k(from)f(p)s(oin)m(t)g(to)h
+(the)g(end)e(of)i(the)f(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m
+(een)g(w)m(ords,)f(to)h(the)g(end)630 788 y(of)h(the)f(next)h(w)m(ord.)
+40 b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f
+Ft(shell-forward-word)p Fu(.)150 949 y Ft(shell-backward-kill-word)24
+b(\(\))630 1059 y Fu(Kill)e(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38
b(W)-8 b(ord)22 b(b)s(oundaries)f(are)h(the)g(same)h(as)f
-Fs(shell-backward-)630 4947 y(word)p Ft(.)150 5121 y
-Fs(unix-word-rubout)k(\(C-w\))630 5230 y Ft(Kill)32 b(the)g(w)m(ord)f
+Ft(shell-backward-)630 1168 y(word)p Fu(.)150 1329 y
+Ft(unix-word-rubout)k(\(C-w\))630 1438 y Fu(Kill)32 b(the)g(w)m(ord)f
(b)s(ehind)f(p)s(oin)m(t,)i(using)f(white)h(space)g(as)g(a)g(w)m(ord)f
-(b)s(oundary)-8 b(.)43 b(The)31 b(killed)630 5340 y(text)g(is)g(sa)m(v)
-m(ed)g(on)g(the)f(kill-ring.)p eop end
-%%Page: 112 118
-TeXDict begin 112 117 bop 150 -116 a Ft(112)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(unix-filename-rubout)25
-b(\(\))630 408 y Ft(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)
-j(using)e(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f(the)
-630 518 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)
-g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 673 y Fs
-(delete-horizontal-space)24 b(\(\))630 783 y Ft(Delete)33
-b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
-b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 938
-y Fs(kill-region)d(\(\))630 1048 y Ft(Kill)k(the)f(text)i(in)e(the)g
+(b)s(oundary)-8 b(.)43 b(The)31 b(killed)630 1548 y(text)g(is)g(sa)m(v)
+m(ed)g(on)g(the)f(kill-ring.)150 1709 y Ft(unix-filename-rubout)25
+b(\(\))630 1818 y Fu(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m
+(t,)j(using)e(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f
+(the)630 1928 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30
+b(killed)h(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150
+2089 y Ft(delete-horizontal-space)24 b(\(\))630 2198
+y Fu(Delete)33 b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
+b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 2359
+y Ft(kill-region)d(\(\))630 2469 y Fu(Kill)k(the)f(text)i(in)e(the)g
(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)
-m(b)s(ound.)150 1203 y Fs(copy-region-as-kill)25 b(\(\))630
-1313 y Ft(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
+m(b)s(ound.)150 2629 y Ft(copy-region-as-kill)25 b(\(\))630
+2739 y Fu(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
(kill)h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f
-(a)m(w)m(a)m(y)-8 b(.)630 1422 y(By)31 b(default,)f(this)h(command)f
-(is)g(un)m(b)s(ound.)150 1578 y Fs(copy-backward-word)25
-b(\(\))630 1687 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
+(a)m(w)m(a)m(y)-8 b(.)630 2848 y(By)31 b(default,)f(this)h(command)f
+(is)g(un)m(b)s(ound.)150 3009 y Ft(copy-backward-word)25
+b(\(\))630 3119 y Fu(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
(t)g(to)i(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)
-f(are)i(the)630 1797 y(same)31 b(as)f Fs(backward-word)p
-Ft(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
-1952 y Fs(copy-forward-word)26 b(\(\))630 2062 y Ft(Cop)m(y)31
+f(are)i(the)630 3228 y(same)31 b(as)f Ft(backward-word)p
+Fu(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
+3389 y Ft(copy-forward-word)26 b(\(\))630 3499 y Fu(Cop)m(y)31
b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630
-2171 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30
+3608 y(same)f(as)f Ft(forward-word)p Fu(.)38 b(By)30
b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150
-2327 y Fs(yank)f(\(C-y\))630 2436 y Ft(Y)-8 b(ank)31
+3769 y Ft(yank)f(\(C-y\))630 3878 y Fu(Y)-8 b(ank)31
b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h
-(p)s(oin)m(t.)150 2592 y Fs(yank-pop)d(\(M-y\))630 2701
-y Ft(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
+(p)s(oin)m(t.)150 4039 y Ft(yank-pop)d(\(M-y\))630 4149
+y Fu(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630
-2811 y(command)30 b(is)h Fs(yank)e Ft(or)h Fs(yank-pop)p
-Ft(.)150 3006 y Fj(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 3176 y Fs(digit-argument)26 b(\()p Fi(M-0)p Fs(,)j
-Fi(M-1)p Fs(,)h(...)f Fi(M--)p Fs(\))630 3285 y Ft(Add)d(this)h(digit)g
+4258 y(command)30 b(is)h Ft(yank)e Fu(or)h Ft(yank-pop)p
+Fu(.)150 4459 y Fk(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 4631 y Ft(digit-argument)26 b(\()p Fj(M-0)p Ft(,)j
+Fj(M-1)p Ft(,)h(...)f Fj(M--)p Ft(\))630 4741 y Fu(Add)d(this)h(digit)g
(to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f
-(new)f(argumen)m(t.)630 3395 y Fi(M--)j Ft(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)150 3550 y Fs(universal-argument)25 b(\(\))630
-3660 y Ft(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
+(new)f(argumen)m(t.)630 4851 y Fj(M--)j Fu(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)150 5011 y Ft(universal-argument)25 b(\(\))630
+5121 y Fu(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
(argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m
-(y)f(one)630 3770 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
+(y)f(one)630 5230 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
(leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630
-3879 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
-m(y)f(digits,)i(executing)f Fs(universal-argument)630
-3989 y Ft(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
-(otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630
-4098 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
-d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
-4208 y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e
-(the)i(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630
-4317 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f
+5340 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
+m(y)f(digits,)i(executing)f Ft(universal-argument)p eop
+end
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(120)630 299 y(again)33
+b(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h(otherwise)g
+(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630 408
+y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)d(a)h
+(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630 518
+y(or)28 b(min)m(us)f(sign,)i(the)f(argumen)m(t)g(coun)m(t)h(for)e(the)i
+(next)f(command)f(is)h(m)m(ultiplied)h(b)m(y)e(four.)630
+628 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)h(initially)h(one,)g(so)f
(executing)g(this)f(function)g(the)h(\014rst)e(time)630
-4427 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
+737 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e
(time)i(mak)m(es)f(the)g(argumen)m(t)g(coun)m(t)h(six-)630
-4537 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h
-(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 4732 y Fj(8.4.6)63
+847 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h
+(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 1052 y Fk(8.4.6)63
b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42
-b(Y)-10 b(ou)150 4902 y Fs(complete)28 b(\(TAB\))630
-5011 y Ft(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
+b(Y)-10 b(ou)150 1226 y Ft(complete)28 b(\(TAB\))630
+1336 y Fu(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630
-5121 y(p)s(erformed)33 b(is)h(application-sp)s(eci\014c.)53
+1445 y(p)s(erformed)33 b(is)h(application-sp)s(eci\014c.)53
b(Bash)35 b(attempts)g(completion)g(treating)h(the)e(text)630
-5230 y(as)39 b(a)h(v)-5 b(ariable)39 b(\(if)h(the)f(text)h(b)s(egins)e
-(with)h(`)p Fs($)p Ft('\),)j(username)c(\(if)i(the)f(text)h(b)s(egins)e
-(with)630 5340 y(`)p Fs(~)p Ft('\),)31 b(hostname)f(\(if)g(the)g(text)h
-(b)s(egins)e(with)h(`)p Fs(@)p Ft('\),)h(or)f(command)f(\(including)h
-(aliases)i(and)p eop end
-%%Page: 113 119
-TeXDict begin 113 118 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(113)630 299 y(functions\))35
-b(in)f(turn.)53 b(If)34 b(none)g(of)h(these)h(pro)s(duces)d(a)i(matc)m
-(h,)i(\014lename)e(completion)h(is)630 408 y(attempted.)150
-573 y Fs(possible-completions)25 b(\(M-?\))630 682 y
-Ft(List)35 b(the)g(p)s(ossible)f(completions)i(of)e(the)h(text)h(b)s
-(efore)e(p)s(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630
-792 y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i
-(columns)f(used)f(for)i(displa)m(y)f(to)h(the)g(v)-5
-b(alue)33 b(of)630 902 y Fs(completion-display-width)o
-Ft(,)g(the)j(v)-5 b(alue)37 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5
-b(ariable)38 b Fs(COLUMNS)p Ft(,)630 1011 y(or)30 b(the)h(screen)f
-(width,)g(in)g(that)h(order.)150 1176 y Fs(insert-completions)25
-b(\(M-*\))630 1285 y Ft(Insert)30 b(all)h(completions)h(of)f(the)g
-(text)g(b)s(efore)f(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s
-(een)e(generated)630 1395 y(b)m(y)g Fs(possible-completions)p
-Ft(.)150 1559 y Fs(menu-complete)d(\(\))630 1669 y Ft(Similar)d(to)g
-Fs(complete)p Ft(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
-(completed)i(with)e(a)i(single)f(matc)m(h)630 1778 y(from)37
+1555 y(as)39 b(a)h(v)-5 b(ariable)39 b(\(if)h(the)f(text)h(b)s(egins)e
+(with)h(`)p Ft($)p Fu('\),)j(username)c(\(if)i(the)f(text)h(b)s(egins)e
+(with)630 1665 y(`)p Ft(~)p Fu('\),)31 b(hostname)f(\(if)g(the)g(text)h
+(b)s(egins)e(with)h(`)p Ft(@)p Fu('\),)h(or)f(command)f(\(including)h
+(aliases)i(and)630 1774 y(functions\))j(in)f(turn.)53
+b(If)34 b(none)g(of)h(these)h(pro)s(duces)d(a)i(matc)m(h,)i(\014lename)
+e(completion)h(is)630 1884 y(attempted.)150 2049 y Ft
+(possible-completions)25 b(\(M-?\))630 2158 y Fu(List)35
+b(the)g(p)s(ossible)f(completions)i(of)e(the)h(text)h(b)s(efore)e(p)s
+(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630 2268
+y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i(columns)f
+(used)f(for)i(displa)m(y)f(to)h(the)g(v)-5 b(alue)33
+b(of)630 2378 y Ft(completion-display-width)o Fu(,)g(the)j(v)-5
+b(alue)37 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)38
+b Ft(COLUMNS)p Fu(,)630 2487 y(or)30 b(the)h(screen)f(width,)g(in)g
+(that)h(order.)150 2652 y Ft(insert-completions)25 b(\(M-*\))630
+2762 y Fu(Insert)30 b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f
+(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630
+2871 y(b)m(y)g Ft(possible-completions)p Fu(.)150 3036
+y Ft(menu-complete)d(\(\))630 3146 y Fu(Similar)d(to)g
+Ft(complete)p Fu(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
+(completed)i(with)e(a)i(single)f(matc)m(h)630 3255 y(from)37
b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39
-b(execution)g(of)f Fs(menu-complete)630 1888 y Ft(steps)i(through)g
+b(execution)g(of)f Ft(menu-complete)630 3365 y Fu(steps)i(through)g
(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i
-(matc)m(h)f(in)f(turn.)630 1998 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
+(matc)m(h)f(in)f(turn.)630 3475 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5
-b(ject)36 b(to)i(the)f(setting)630 2107 y(of)f Fs(bell-style)p
-Ft(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
-b(An)36 b(argumen)m(t)h(of)f Fq(n)f Ft(mo)m(v)m(es)i
-Fq(n)630 2217 y Ft(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+b(ject)36 b(to)i(the)f(setting)630 3584 y(of)f Ft(bell-style)p
+Fu(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
+b(An)36 b(argumen)m(t)h(of)f Fr(n)f Fu(mo)m(v)m(es)i
+Fr(n)630 3694 y Fu(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
(matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f
-(used)g(to)630 2326 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 3803 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
(list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s
-(ound)e(to)630 2436 y Fs(TAB)p Ft(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 2600 y Fs(menu-complete-backward)24
-b(\(\))630 2710 y Ft(Iden)m(tical)36 b(to)g Fs(menu-complete)p
-Ft(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g
-(p)s(ossible)630 2819 y(completions,)d(as)e(if)h Fs(menu-complete)26
-b Ft(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
-2984 y Fs(delete-char-or-list)25 b(\(\))630 3093 y Ft(Deletes)k(the)e
-(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)g(b)s
-(eginning)g(or)f(end)h(of)g(the)g(line)630 3203 y(\(lik)m(e)k
-Fs(delete-char)p Ft(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)
-h(b)s(eha)m(v)m(es)g(iden)m(tically)h(to)e Fs(possible-)630
-3313 y(completions)p Ft(.)38 b(This)29 b(command)h(is)h(un)m(b)s(ound)d
-(b)m(y)i(default.)150 3477 y Fs(complete-filename)c(\(M-/\))630
-3587 y Ft(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g
-(b)s(efore)f(p)s(oin)m(t.)150 3751 y Fs(possible-filename-comple)o
-(tion)o(s)24 b(\(C-x)30 b(/\))630 3861 y Ft(List)f(the)g(p)s(ossible)f
+(ound)e(to)630 3913 y Ft(TAB)p Fu(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 4078 y Ft(menu-complete-backward)24
+b(\(\))630 4188 y Fu(Iden)m(tical)36 b(to)g Ft(menu-complete)p
+Fu(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g
+(p)s(ossible)630 4297 y(completions,)d(as)e(if)h Ft(menu-complete)26
+b Fu(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
+4462 y Ft(delete-char-or-list)25 b(\(\))630 4572 y Fu(Deletes)41
+b(the)e(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)h(b)s
+(eginning)e(or)h(end)f(of)h(the)630 4681 y(line)50 b(\(lik)m(e)h
+Ft(delete-char)p Fu(\).)96 b(If)49 b(at)h(the)g(end)f(of)h(the)f(line,)
+55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 4791
+y Ft(possible-completions)p Fu(.)35 b(This)30 b(command)g(is)g(un)m(b)s
+(ound)e(b)m(y)i(default.)150 4956 y Ft(complete-filename)c(\(M-/\))630
+5065 y Fu(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g
+(b)s(efore)f(p)s(oin)m(t.)150 5230 y Ft(possible-filename-comple)o
+(tion)o(s)24 b(\(C-x)30 b(/\))630 5340 y Fu(List)f(the)g(p)s(ossible)f
(completions)h(of)g(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)g(treating)h
-(it)f(as)g(a)f(\014lename.)150 4025 y Fs(complete-username)e(\(M-~\))
-630 4134 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)
-e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(username.)150
-4299 y Fs(possible-username-comple)o(tion)o(s)24 b(\(C-x)30
-b(~\))630 4408 y Ft(List)25 b(the)g(p)s(ossible)g(completions)h(of)f
-(the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)f(a)g
-(username.)150 4573 y Fs(complete-variable)h(\(M-$\))630
-4682 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)
-s(oin)m(t,)g(treating)i(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150
-4847 y Fs(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30
-b($\))630 4956 y Ft(List)42 b(the)g(p)s(ossible)g(completions)h(of)f
+(it)f(as)g(a)f(\014lename.)p eop end
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(121)150 299 y Ft
+(complete-username)26 b(\(M-~\))630 408 y Fu(A)m(ttempt)32
+b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)s(oin)m(t,)g(treating)i
+(it)f(as)f(a)h(username.)150 569 y Ft(possible-username-comple)o(tion)o
+(s)24 b(\(C-x)30 b(~\))630 679 y Fu(List)25 b(the)g(p)s(ossible)g
+(completions)h(of)f(the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g
+(it)g(as)f(a)g(username.)150 839 y Ft(complete-variable)h(\(M-$\))630
+949 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)s
+(oin)m(t,)g(treating)i(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150
+1110 y Ft(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30
+b($\))630 1219 y Fu(List)42 b(the)g(p)s(ossible)g(completions)h(of)f
(the)g(text)h(b)s(efore)e(p)s(oin)m(t,)46 b(treating)d(it)f(as)g(a)h
-(shell)630 5066 y(v)-5 b(ariable.)150 5230 y Fs(complete-hostname)26
-b(\(M-@\))630 5340 y Ft(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i
-(b)s(efore)e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(hostname.)p
-eop end
-%%Page: 114 120
-TeXDict begin 114 119 bop 150 -116 a Ft(114)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(possible-hostname-comple)o(tion)o
-(s)24 b(\(C-x)30 b(@\))630 408 y Ft(List)25 b(the)g(p)s(ossible)f
-(completions)h(of)g(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)h(treating)g
-(it)f(as)f(a)h(hostname.)150 578 y Fs(complete-command)h(\(M-!\))630
-688 y Ft(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p)s
-(oin)m(t,)h(treating)h(it)g(as)f(a)g(command)g(name.)630
-797 y(Command)46 b(completion)i(attempts)g(to)f(matc)m(h)h(the)f(text)h
-(against)g(aliases,)53 b(reserv)m(ed)630 907 y(w)m(ords,)36
+(shell)630 1329 y(v)-5 b(ariable.)150 1490 y Ft(complete-hostname)26
+b(\(M-@\))630 1599 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i
+(b)s(efore)e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(hostname.)150
+1760 y Ft(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30
+b(@\))630 1869 y Fu(List)25 b(the)g(p)s(ossible)f(completions)h(of)g
+(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)h(treating)g(it)f(as)f(a)h
+(hostname.)150 2030 y Ft(complete-command)h(\(M-!\))630
+2140 y Fu(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p)
+s(oin)m(t,)h(treating)h(it)g(as)f(a)g(command)g(name.)630
+2249 y(Command)46 b(completion)i(attempts)g(to)f(matc)m(h)h(the)f(text)
+h(against)g(aliases,)53 b(reserv)m(ed)630 2359 y(w)m(ords,)36
b(shell)g(functions,)h(shell)e(builtins,)i(and)e(\014nally)g
-(executable)i(\014lenames,)g(in)e(that)630 1017 y(order.)150
-1186 y Fs(possible-command-complet)o(ions)24 b(\(C-x)29
-b(!\))630 1296 y Ft(List)d(the)h(p)s(ossible)f(completions)h(of)f(the)h
+(executable)i(\014lenames,)g(in)e(that)630 2469 y(order.)150
+2629 y Ft(possible-command-complet)o(ions)24 b(\(C-x)29
+b(!\))630 2739 y Fu(List)d(the)h(p)s(ossible)f(completions)h(of)f(the)h
(text)g(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)g(a)f(command)630
-1406 y(name.)150 1575 y Fs(dynamic-complete-history)e(\(M-TAB\))630
-1685 y Ft(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)
+2848 y(name.)150 3009 y Ft(dynamic-complete-history)e(\(M-TAB\))630
+3119 y Fu(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)
s(oin)m(t,)g(comparing)h(the)f(text)h(against)h(lines)630
-1795 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i
-(matc)m(hes.)150 1964 y Fs(dabbrev-expand)26 b(\(\))630
-2074 y Ft(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s
+3228 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i
+(matc)m(hes.)150 3389 y Ft(dabbrev-expand)26 b(\(\))630
+3499 y Fu(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s
(efore)f(p)s(oin)m(t,)i(comparing)f(the)g(text)h(against)630
-2183 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e
-(completion)j(matc)m(hes.)150 2353 y Fs(complete-into-braces)25
-b(\(M-{\))630 2463 y Ft(P)m(erform)f(\014lename)f(completion)i(and)f
+3608 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e
+(completion)j(matc)m(hes.)150 3769 y Ft(complete-into-braces)25
+b(\(M-{\))630 3878 y Fu(P)m(erform)f(\014lename)f(completion)i(and)f
(insert)f(the)h(list)g(of)g(p)s(ossible)f(completions)i(enclosed)630
-2572 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
+3988 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
b(ailable)37 b(to)e(the)g(shell)g(\(see)g(Section)h(3.5.1)g([Brace)g
-(Ex-)630 2682 y(pansion],)30 b(page)h(19\).)150 2892
-y Fj(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 3069 y Fs(start-kbd-macro)
-26 b(\(C-x)j(\(\))630 3178 y Ft(Begin)i(sa)m(ving)h(the)e(c)m
+(Ex-)630 4098 y(pansion],)30 b(page)h(21\).)150 4298
+y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 4471 y Ft(start-kbd-macro)
+26 b(\(C-x)j(\(\))630 4580 y Fu(Begin)i(sa)m(ving)h(the)e(c)m
(haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)
-g(macro.)150 3348 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630
-3458 y Ft(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m
+g(macro.)150 4741 y Ft(end-kbd-macro)d(\(C-x)i(\)\))630
+4851 y Fu(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m
(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i
-(the)630 3567 y(de\014nition.)150 3737 y Fs(call-last-kbd-macro)c
-(\(C-x)k(e\))630 3847 y Ft(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)
+(the)630 4960 y(de\014nition.)150 5121 y Ft(call-last-kbd-macro)c
+(\(C-x)k(e\))630 5230 y Fu(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)
f(macro)h(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the)
-630 3956 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m
-(eyb)s(oard.)150 4166 y Fj(8.4.8)63 b(Some)41 b(Miscellaneous)i
-(Commands)150 4343 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630
-4452 y Ft(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
-Fq(inputrc)27 b Ft(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
-(or)i(v)-5 b(ariable)630 4562 y(assignmen)m(ts)31 b(found)e(there.)150
-4732 y Fs(abort)g(\(C-g\))630 4841 y Ft(Ab)s(ort)d(the)h(curren)m(t)f
+630 5340 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m
+(eyb)s(oard.)p eop end
+%%Page: 122 128
+TeXDict begin 122 127 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(122)150 299 y Ft
+(print-last-kbd-macro)25 b(\(\))630 408 y Fu(Prin)m(t)30
+b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)e(in)i(a)f(format)h
+(suitable)g(for)f(the)h Fr(inputrc)k Fu(\014le.)150 604
+y Fk(8.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)150
+774 y Ft(re-read-init-file)26 b(\(C-x)j(C-r\))630 884
+y Fu(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
+Fr(inputrc)27 b Fu(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
+(or)i(v)-5 b(ariable)630 994 y(assignmen)m(ts)31 b(found)e(there.)150
+1150 y Ft(abort)g(\(C-g\))630 1259 y Fu(Ab)s(ort)d(the)h(curren)m(t)f
(editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5
-b(ject)26 b(to)i(the)630 4951 y(setting)j(of)g Fs(bell-style)p
-Ft(\).)150 5121 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p
-Fi(x)11 b Fs(,)29 b(...)o(\))630 5230 y Ft(If)e(the)h(meta\014ed)g(c)m
-(haracter)h Fq(x)34 b Ft(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g
-(command)h(that)g(is)g(b)s(ound)d(to)k(the)630 5340 y(corresp)s(onding)
-g(upp)s(ercase)h(c)m(haracter.)p eop end
-%%Page: 115 121
-TeXDict begin 115 120 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(115)150 299 y Fs(prefix-meta)27
-b(\(ESC\))630 408 y Ft(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s
-(ed.)62 b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g
-(k)m(ey)-8 b(.)630 518 y(T)m(yping)30 b(`)p Fs(ESC)g(f)p
-Ft(')g(is)h(equiv)-5 b(alen)m(t)31 b(to)g(t)m(yping)g
-Fi(M-f)p Ft(.)150 671 y Fs(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630
-781 y Ft(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s(ered)f(for)g
-(eac)m(h)i(line.)150 934 y Fs(revert-line)27 b(\(M-r\))630
-1044 y Ft(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49
-b(This)32 b(is)h(lik)m(e)i(executing)f(the)f Fs(undo)f
-Ft(command)630 1154 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f
-(b)s(eginning.)150 1307 y Fs(tilde-expand)d(\(M-&\))630
-1417 y Ft(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m
-(ord.)150 1570 y Fs(set-mark)d(\(C-@\))630 1680 y Ft(Set)33
-b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g
-(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630
-1789 y(to)f(that)g(p)s(osition.)150 1943 y Fs(exchange-point-and-mark)
-24 b(\(C-x)29 b(C-x\))630 2052 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)
-g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f
-(set)h(to)f(the)h(sa)m(v)m(ed)630 2162 y(p)s(osition,)f(and)e(the)i
-(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150
-2315 y Fs(character-search)26 b(\(C-]\))630 2425 y Ft(A)f(c)m(haracter)
-h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g
-(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 2534 y(A)30
+b(ject)26 b(to)i(the)630 1369 y(setting)j(of)g Ft(bell-style)p
+Fu(\).)150 1525 y Ft(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p
+Fj(x)p Ft(,)g(...)o(\))630 1634 y Fu(If)e(the)h(meta\014ed)g(c)m
+(haracter)h Fr(x)34 b Fu(is)28 b(lo)m(w)m(ercase,)i(run)d(the)g
+(command)h(that)g(is)g(b)s(ound)d(to)k(the)630 1744 y(corresp)s(onding)
+g(upp)s(ercase)h(c)m(haracter.)150 1900 y Ft(prefix-meta)d(\(ESC\))630
+2010 y Fu(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62
+b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g(k)m(ey)-8
+b(.)630 2119 y(T)m(yping)30 b(`)p Ft(ESC)g(f)p Fu(')g(is)h(equiv)-5
+b(alen)m(t)31 b(to)g(t)m(yping)g Fj(M-f)p Fu(.)150 2275
+y Ft(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 2385 y Fu(Incremen)m(tal)h
+(undo,)f(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
+2541 y Ft(revert-line)27 b(\(M-r\))630 2650 y Fu(Undo)33
+b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32
+b(is)h(lik)m(e)i(executing)f(the)f Ft(undo)f Fu(command)630
+2760 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
+150 2916 y Ft(tilde-expand)d(\(M-&\))630 3026 y Fu(P)m(erform)j(tilde)h
+(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 3182
+y Ft(set-mark)d(\(C-@\))630 3291 y Fu(Set)33 b(the)g(mark)f(to)i(the)f
+(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
+(supplied,)f(the)h(mark)g(is)f(set)630 3401 y(to)f(that)g(p)s(osition.)
+150 3557 y Ft(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
+3666 y Fu(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
+b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f(set)h(to)f(the)h
+(sa)m(v)m(ed)630 3776 y(p)s(osition,)f(and)e(the)i(old)g(cursor)e(p)s
+(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 3932
+y Ft(character-search)26 b(\(C-]\))630 4042 y Fu(A)f(c)m(haracter)h(is)
+f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g(o)s
+(ccurrence)g(of)g(that)g(c)m(haracter.)630 4151 y(A)30
b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 2688 y Fs(character-search-backwar)o(d)24
-b(\(M-C-]\))630 2798 y Ft(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(ccurrences.)150 4307 y Ft(character-search-backwar)o(d)24
+b(\(M-C-]\))630 4417 y Fu(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
-g(that)630 2907 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
+g(that)630 4526 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150
-3061 y Fs(skip-csi-sequence)d(\(\))630 3170 y Ft(Read)i(enough)f(c)m
+4682 y Ft(skip-csi-sequence)d(\(\))630 4792 y Fu(Read)i(enough)f(c)m
(haracters)h(to)g(consume)f(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f
-(as)g(those)h(de\014ned)630 3280 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(as)g(those)h(de\014ned)630 4902 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
(and)f(End.)60 b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m
-(trol)g(Sequence)630 3389 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
-b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Fs("\\)p
-Ft(e[)p Fs(")p Ft(,)g(k)m(eys)f(pro-)630 3499 y(ducing)31
+(trol)g(Sequence)630 5011 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
+b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Ft("\\)p
+Fu(e[)p Ft(")p Fu(,)g(k)m(eys)f(pro-)630 5121 y(ducing)31
b(suc)m(h)h(sequences)g(will)h(ha)m(v)m(e)g(no)f(e\013ect)h(unless)e
-(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 3608 y(command,)f
+(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 5230 y(command,)f
(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g(in)m(to)g(the)f
-(editing)h(bu\013er.)44 b(This)31 b(is)630 3718 y(un)m(b)s(ound)d(b)m
-(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)150
-3871 y Fs(insert-comment)26 b(\(M-#\))630 3981 y Ft(Without)36
-b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5 b(alue)36
-b(of)g(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)36
-b(is)g(in-)630 4091 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
-(curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g
-(supplied,)630 4200 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
-b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g
-(line)630 4310 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
-b(alue)31 b(of)f Fs(comment-begin)p Ft(,)e(the)i(v)-5
-b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 4419
-y(c)m(haracters)42 b(in)d Fs(comment-begin)e Ft(are)j(deleted)h(from)f
-(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 4529
-y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e(if)g(a)g
-(newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37 b(default)630
-4639 y(v)-5 b(alue)32 b(of)g Fs(comment-begin)c Ft(causes)k(this)f
-(command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g(a)g(shell)630
-4748 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f(argumen)m(t)h(causes)g
-(the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f(remo)m(v)m(ed,)630
-4858 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)m(y)f(the)h(shell.)
-150 5011 y Fs(dump-functions)26 b(\(\))630 5121 y Ft(Prin)m(t)g(all)i
-(of)e(the)h(functions)f(and)g(their)g(k)m(ey)h(bindings)e(to)j(the)e
-(Readline)h(output)f(stream.)630 5230 y(If)31 b(a)h(n)m(umeric)g
-(argumen)m(t)g(is)g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f
-(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 5340 y(it)f(can)g(b)s(e)e(made)i
-(part)f(of)g(an)h Fq(inputrc)k Ft(\014le.)41 b(This)29
-b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k(default.)p eop
-end
-%%Page: 116 122
-TeXDict begin 116 121 bop 150 -116 a Ft(116)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(dump-variables)26
-b(\(\))630 408 y Ft(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
+(editing)h(bu\013er.)44 b(This)31 b(is)630 5340 y(un)m(b)s(ound)d(b)m
+(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)p
+eop end
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(123)150 299 y Ft(insert-comment)26
+b(\(M-#\))630 408 y Fu(Without)36 b(a)g(n)m(umeric)g(argumen)m(t,)h
+(the)f(v)-5 b(alue)36 b(of)g(the)g Ft(comment-begin)c
+Fu(v)-5 b(ariable)36 b(is)g(in-)630 518 y(serted)c(at)g(the)g(b)s
+(eginning)f(of)h(the)f(curren)m(t)h(line.)45 b(If)31
+b(a)h(n)m(umeric)f(argumen)m(t)h(is)g(supplied,)630 628
+y(this)k(command)h(acts)g(as)g(a)g(toggle:)55 b(if)37
+b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g(line)630
+737 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 b(alue)31 b(of)f
+Ft(comment-begin)p Fu(,)e(the)i(v)-5 b(alue)31 b(is)g(inserted,)g
+(otherwise)g(the)630 847 y(c)m(haracters)42 b(in)d Ft(comment-begin)e
+Fu(are)j(deleted)h(from)f(the)g(b)s(eginning)g(of)g(the)g(line.)71
+b(In)630 956 y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e
+(if)g(a)g(newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37
+b(default)630 1066 y(v)-5 b(alue)32 b(of)g Ft(comment-begin)c
+Fu(causes)k(this)f(command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g
+(a)g(shell)630 1176 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f
+(argumen)m(t)h(causes)g(the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f
+(remo)m(v)m(ed,)630 1285 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)
+m(y)f(the)h(shell.)150 1443 y Ft(dump-functions)26 b(\(\))630
+1553 y Fu(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g(their)g(k)m(ey)
+h(bindings)e(to)j(the)e(Readline)h(output)f(stream.)630
+1663 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
+1772 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fr(inputrc)k
+Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
+(default.)150 1931 y Ft(dump-variables)26 b(\(\))630
+2040 y Fu(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
b(ariables)22 b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h
-(output)f(stream.)630 518 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
-(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m
-(y)g(that)630 628 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
-Fq(inputrc)k Ft(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 792 y Fs(dump-macros)c(\(\))630
-902 y Ft(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)f
-(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
-1011 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(output)f(stream.)630 2150 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
+g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)
+m(y)g(that)630 2259 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
+Fr(inputrc)k Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
+(b)m(y)k(default.)150 2418 y Ft(dump-macros)c(\(\))630
+2527 y Fu(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
+f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
+2637 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
(supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630
-1121 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
-Fq(inputrc)35 b Ft(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
-d(b)m(y)630 1230 y(default.)150 1395 y Fs(glob-complete-word)e(\(M-g\))
-630 1504 y Ft(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g(treated)h
+2746 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
+Fr(inputrc)35 b Fu(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
+d(b)m(y)630 2856 y(default.)150 3014 y Ft(glob-complete-word)e(\(M-g\))
+630 3124 y Fu(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g(treated)h
(as)f(a)h(pattern)f(for)f(pathname)h(expansion,)g(with)g(an)630
-1614 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23
+3233 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23
b(pattern)i(is)f(used)g(to)h(generate)h(a)e(list)h(of)g(matc)m(hing)630
-1724 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
-1888 y Fs(glob-expand-word)c(\(C-x)j(*\))630 1998 y Ft(The)40
+3343 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
+3501 y Ft(glob-expand-word)c(\(C-x)j(*\))630 3611 y Fu(The)40
b(w)m(ord)g(b)s(efore)g(p)s(oin)m(t)h(is)g(treated)g(as)g(a)g(pattern)g
-(for)f(pathname)g(expansion,)k(and)630 2107 y(the)c(list)g(of)f(matc)m
+(for)f(pathname)g(expansion,)k(and)630 3720 y(the)c(list)g(of)f(matc)m
(hing)i(\014le)e(names)g(is)h(inserted,)h(replacing)g(the)e(w)m(ord.)67
-b(If)39 b(a)h(n)m(umeric)630 2217 y(argumen)m(t)31 b(is)f(supplied,)g
-(a)g(`)p Fs(*)p Ft(')h(is)f(app)s(ended)f(b)s(efore)h(pathname)g
-(expansion.)150 2381 y Fs(glob-list-expansions)25 b(\(C-x)k(g\))630
-2491 y Ft(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h
-(b)s(een)f(generated)h(b)m(y)f Fs(glob-expand-word)630
-2600 y Ft(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.)
+b(If)39 b(a)h(n)m(umeric)630 3830 y(argumen)m(t)31 b(is)f(supplied,)g
+(a)g(`)p Ft(*)p Fu(')h(is)f(app)s(ended)f(b)s(efore)h(pathname)g
+(expansion.)150 3988 y Ft(glob-list-expansions)25 b(\(C-x)k(g\))630
+4098 y Fu(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h
+(b)s(een)f(generated)h(b)m(y)f Ft(glob-expand-word)630
+4208 y Fu(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.)
50 b(If)33 b(a)h(n)m(umeric)g(argumen)m(t)g(is)f(supplied,)h(a)g(`)p
-Fs(*)p Ft(')630 2710 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
-(expansion.)150 2874 y Fs(display-shell-version)25 b(\(C-x)k(C-v\))630
-2984 y Ft(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
-(curren)m(t)f(instance)h(of)f(Bash.)150 3148 y Fs(shell-expand-line)c
-(\(M-C-e\))630 3258 y Ft(Expand)34 b(the)h(line)h(as)g(the)f(shell)h
+Ft(*)p Fu(')630 4317 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
+(expansion.)150 4475 y Ft(display-shell-version)25 b(\(C-x)k(C-v\))630
+4585 y Fu(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
+(curren)m(t)f(instance)h(of)f(Bash.)150 4743 y Ft(shell-expand-line)c
+(\(M-C-e\))630 4853 y Fu(Expand)34 b(the)h(line)h(as)g(the)f(shell)h
(do)s(es.)55 b(This)34 b(p)s(erforms)g(alias)i(and)f(history)g
-(expansion)630 3367 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m
+(expansion)630 4963 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m
(ord)f(expansions)g(\(see)i(Section)f(3.5)h([Shell)e(Expansions],)630
-3477 y(page)e(19\).)150 3641 y Fs(history-expand-line)25
-b(\(M-^\))630 3751 y Ft(P)m(erform)30 b(history)h(expansion)f(on)g(the)
-h(curren)m(t)f(line.)150 3915 y Fs(magic-space)d(\(\))630
-4025 y Ft(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g
-(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)630
-4134 y([History)31 b(In)m(teraction],)i(page)e(127\).)150
-4299 y Fs(alias-expand-line)26 b(\(\))630 4408 y Ft(P)m(erform)i(alias)
-i(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
-([Aliases],)g(page)f(81\).)150 4573 y Fs(history-and-alias-expand)o
-(-lin)o(e)24 b(\(\))630 4682 y Ft(P)m(erform)30 b(history)h(and)e
+5072 y(page)e(21\).)150 5230 y Ft(history-expand-line)25
+b(\(M-^\))630 5340 y Fu(P)m(erform)30 b(history)h(expansion)f(on)g(the)
+h(curren)m(t)f(line.)p eop end
+%%Page: 124 130
+TeXDict begin 124 129 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(124)150 299 y Ft(magic-space)27
+b(\(\))630 408 y Fu(P)m(erform)c(history)g(expansion)g(on)g(the)g
+(curren)m(t)g(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)
+630 518 y([History)31 b(In)m(teraction],)i(page)e(135\).)150
+686 y Ft(alias-expand-line)26 b(\(\))630 796 y Fu(P)m(erform)i(alias)i
+(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
+([Aliases],)g(page)f(88\).)150 964 y Ft(history-and-alias-expand)o
+(-lin)o(e)24 b(\(\))630 1074 y Fu(P)m(erform)30 b(history)h(and)e
(alias)j(expansion)e(on)g(the)h(curren)m(t)f(line.)150
-4847 y Fs(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630
-4956 y Ft(A)g(synon)m(ym)g(for)g Fs(yank-last-arg)p Ft(.)150
-5121 y Fs(operate-and-get-next)25 b(\(C-o\))630 5230
-y Ft(Accept)42 b(the)e(curren)m(t)h(line)f(for)h(execution)g(and)f
+1242 y Ft(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630
+1352 y Fu(A)g(synon)m(ym)g(for)g Ft(yank-last-arg)p Fu(.)150
+1520 y Ft(operate-and-get-next)25 b(\(C-o\))630 1630
+y Fu(Accept)42 b(the)e(curren)m(t)h(line)f(for)h(execution)g(and)f
(fetc)m(h)i(the)e(next)h(line)g(relativ)m(e)i(to)e(the)630
-5340 y(curren)m(t)30 b(line)h(from)f(the)g(history)h(for)f(editing.)41
-b(An)m(y)31 b(argumen)m(t)f(is)h(ignored.)p eop end
-%%Page: 117 123
-TeXDict begin 117 122 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(117)150 299 y Fs
-(edit-and-execute-command)24 b(\(C-xC-e\))630 408 y Ft(In)m(v)m(ok)m(e)
-34 b(an)f(editor)g(on)g(the)g(curren)m(t)f(command)h(line,)h(and)e
-(execute)i(the)f(result)g(as)g(shell)630 518 y(commands.)81
-b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h Fs($VISUAL)p
-Ft(,)f Fs($EDITOR)p Ft(,)h(and)d Fs(emacs)g Ft(as)h(the)630
-628 y(editor,)31 b(in)f(that)h(order.)150 864 y Fr(8.5)68
-b(Readline)47 b(vi)e(Mo)t(de)150 1024 y Ft(While)32 b(the)g(Readline)g
-(library)f(do)s(es)g(not)h(ha)m(v)m(e)h(a)f(full)f(set)h(of)g
-Fs(vi)f Ft(editing)h(functions,)f(it)h(do)s(es)g(con)m(tain)150
-1133 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f(the)g(line.)52
-b(The)34 b(Readline)g Fs(vi)g Ft(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f(sp)s
-(eci\014ed)f(in)150 1243 y(the)e Fl(posix)e Ft(standard.)275
-1380 y(In)35 b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)j(b)s(et)m
-(w)m(een)d Fs(emacs)f Ft(and)g Fs(vi)g Ft(editing)h(mo)s(des,)h(use)f
-(the)g(`)p Fs(set)30 b(-o)150 1490 y(emacs)p Ft(')43
-b(and)h(`)p Fs(set)30 b(-o)f(vi)p Ft(')44 b(commands)g(\(see)i(Section)
-f(4.3.1)h([The)e(Set)h(Builtin],)j(page)e(54\).)83 b(The)150
-1599 y(Readline)31 b(default)g(is)f Fs(emacs)f Ft(mo)s(de.)275
-1737 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f(in)g Fs(vi)f
-Ft(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g(`insertion')g(mo)s
-(de,)g(as)h(if)f(y)m(ou)150 1846 y(had)f(t)m(yp)s(ed)g(an)g(`)p
-Fs(i)p Ft('.)41 b(Pressing)29 b Fs(ESC)f Ft(switc)m(hes)i(y)m(ou)g(in)m
-(to)h(`command')e(mo)s(de,)h(where)e(y)m(ou)i(can)g(edit)g(the)150
-1956 y(text)35 b(of)f(the)g(line)g(with)f(the)h(standard)f
-Fs(vi)g Ft(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)g
-(history)f(lines)h(with)150 2066 y(`)p Fs(k)p Ft(')d(and)e(subsequen)m
-(t)h(lines)h(with)f(`)p Fs(j)p Ft(',)g(and)g(so)h(forth.)150
-2302 y Fr(8.6)68 b(Programmable)47 b(Completion)150 2462
-y Ft(When)25 b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f
-(argumen)m(t)h(to)g(a)g(command)f(for)h(whic)m(h)f(a)h(completion)150
-2571 y(sp)s(eci\014cation)40 b(\(a)h Fq(compsp)s(ec)6
-b Ft(\))39 b(has)h(b)s(een)f(de\014ned)f(using)h(the)h
-Fs(complete)d Ft(builtin)j(\(see)g(Section)h(8.7)150
-2681 y([Programmable)h(Completion)f(Builtins],)k(page)d(119\),)j(the)c
-(programmable)g(completion)i(facilities)150 2790 y(are)31
-b(in)m(v)m(ok)m(ed.)275 2928 y(First,)23 b(the)e(command)g(name)g(is)h
-(iden)m(ti\014ed.)37 b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f
-(de\014ned)g(for)h(that)h(command,)150 3037 y(the)44
-b(compsp)s(ec)g(is)g(used)f(to)h(generate)i(the)e(list)g(of)g(p)s
-(ossible)g(completions)h(for)e(the)h(w)m(ord.)81 b(If)44
-b(the)150 3147 y(command)36 b(w)m(ord)g(is)g(the)g(empt)m(y)h(string)f
-(\(completion)i(attempted)f(at)g(the)g(b)s(eginning)e(of)h(an)h(empt)m
-(y)150 3256 y(line\),)28 b(an)m(y)e(compsp)s(ec)f(de\014ned)g(with)g
-(the)h(`)p Fs(-E)p Ft(')f(option)i(to)f Fs(complete)e
-Ft(is)h(used.)39 b(If)25 b(the)h(command)f(w)m(ord)150
-3366 y(is)i(a)h(full)e(pathname,)i(a)g(compsp)s(ec)e(for)h(the)g(full)g
+1739 y(curren)m(t)30 b(line)h(from)f(the)g(history)h(for)f(editing.)41
+b(An)m(y)31 b(argumen)m(t)f(is)h(ignored.)150 1908 y
+Ft(edit-and-execute-command)24 b(\(C-xC-e\))630 2017
+y Fu(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f
+(command)h(line,)h(and)e(execute)i(the)f(result)g(as)g(shell)630
+2127 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h
+Ft($VISUAL)p Fu(,)f Ft($EDITOR)p Fu(,)h(and)d Ft(emacs)g
+Fu(as)h(the)630 2236 y(editor,)31 b(in)f(that)h(order.)150
+2482 y Fs(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)150 2642
+y Fu(While)32 b(the)g(Readline)g(library)f(do)s(es)g(not)h(ha)m(v)m(e)h
+(a)f(full)f(set)h(of)g Ft(vi)f Fu(editing)h(functions,)f(it)h(do)s(es)g
+(con)m(tain)150 2751 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f
+(the)g(line.)52 b(The)34 b(Readline)g Ft(vi)g Fu(mo)s(de)f(b)s(eha)m(v)
+m(es)i(as)f(sp)s(eci\014ed)f(in)150 2861 y(the)e Fm(posix)e
+Fu(standard.)275 3004 y(In)35 b(order)g(to)i(switc)m(h)f(in)m(teractiv)
+m(ely)j(b)s(et)m(w)m(een)d Ft(emacs)f Fu(and)g Ft(vi)g
+Fu(editing)h(mo)s(des,)h(use)f(the)g(`)p Ft(set)30 b(-o)150
+3114 y(emacs)p Fu(')43 b(and)h(`)p Ft(set)30 b(-o)f(vi)p
+Fu(')44 b(commands)g(\(see)i(Section)f(4.3.1)h([The)e(Set)h(Builtin],)j
+(page)e(58\).)83 b(The)150 3223 y(Readline)31 b(default)g(is)f
+Ft(emacs)f Fu(mo)s(de.)275 3367 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f
+(in)g Ft(vi)f Fu(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g
+(`insertion')g(mo)s(de,)g(as)h(if)f(y)m(ou)150 3476 y(had)f(t)m(yp)s
+(ed)g(an)g(`)p Ft(i)p Fu('.)41 b(Pressing)29 b Ft(ESC)f
+Fu(switc)m(hes)i(y)m(ou)g(in)m(to)h(`command')e(mo)s(de,)h(where)e(y)m
+(ou)i(can)g(edit)g(the)150 3586 y(text)35 b(of)f(the)g(line)g(with)f
+(the)h(standard)f Ft(vi)g Fu(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)
+f(to)f(previous)g(history)f(lines)h(with)150 3695 y(`)p
+Ft(k)p Fu(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p
+Ft(j)p Fu(',)g(and)g(so)h(forth.)150 3941 y Fs(8.6)68
+b(Programmable)47 b(Completion)150 4101 y Fu(When)25
+b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f(argumen)m(t)h(to)g
+(a)g(command)f(for)h(whic)m(h)f(a)h(completion)150 4210
+y(sp)s(eci\014cation)40 b(\(a)h Fr(compsp)s(ec)6 b Fu(\))39
+b(has)h(b)s(een)f(de\014ned)f(using)h(the)h Ft(complete)d
+Fu(builtin)j(\(see)g(Section)h(8.7)150 4320 y([Programmable)h
+(Completion)f(Builtins],)k(page)d(126\),)j(the)c(programmable)g
+(completion)i(facilities)150 4429 y(are)31 b(in)m(v)m(ok)m(ed.)275
+4573 y(First,)23 b(the)e(command)g(name)g(is)h(iden)m(ti\014ed.)37
+b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f(de\014ned)g(for)h(that)h
+(command,)150 4682 y(the)44 b(compsp)s(ec)g(is)g(used)f(to)h(generate)i
+(the)e(list)g(of)g(p)s(ossible)g(completions)h(for)e(the)h(w)m(ord.)81
+b(If)44 b(the)150 4792 y(command)36 b(w)m(ord)g(is)g(the)g(empt)m(y)h
+(string)f(\(completion)i(attempted)f(at)g(the)g(b)s(eginning)e(of)h(an)
+h(empt)m(y)150 4902 y(line\),)30 b(an)m(y)g(compsp)s(ec)f(de\014ned)f
+(with)h(the)h Ft(-E)e Fu(option)i(to)g Ft(complete)d
+Fu(is)i(used.)40 b(If)29 b(the)g(command)g(w)m(ord)150
+5011 y(is)e(a)h(full)e(pathname,)i(a)g(compsp)s(ec)e(for)h(the)g(full)g
(pathname)g(is)g(searc)m(hed)h(for)f(\014rst.)39 b(If)26
-b(no)h(compsp)s(ec)g(is)150 3476 y(found)22 b(for)g(the)h(full)g
+b(no)h(compsp)s(ec)g(is)150 5121 y(found)22 b(for)g(the)h(full)g
(pathname,)h(an)f(attempt)h(is)f(made)g(to)g(\014nd)f(a)h(compsp)s(ec)f
-(for)h(the)g(p)s(ortion)f(follo)m(wing)150 3585 y(the)34
+(for)h(the)g(p)s(ortion)f(follo)m(wing)150 5230 y(the)34
b(\014nal)g(slash.)53 b(If)34 b(those)g(searc)m(hes)i(do)e(not)g
(result)h(in)f(a)g(compsp)s(ec,)h(an)m(y)g(compsp)s(ec)f(de\014ned)f
-(with)150 3695 y(the)e(`)p Fs(-D)p Ft(')f(option)h(to)g
-Fs(complete)d Ft(is)i(used)g(as)g(the)h(default.)275
-3832 y(Once)j(a)g(compsp)s(ec)g(has)g(b)s(een)f(found,)h(it)h(is)f
-(used)f(to)i(generate)h(the)e(list)h(of)f(matc)m(hing)h(w)m(ords.)51
-b(If)150 3942 y(a)37 b(compsp)s(ec)f(is)g(not)h(found,)f(the)h(default)
-f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g
-(8.4.6)150 4051 y([Commands)30 b(F)-8 b(or)31 b(Completion],)g(page)g
-(112\))h(is)f(p)s(erformed.)275 4189 y(First,)g(the)g(actions)g(sp)s
+(with)150 5340 y(the)e Ft(-D)e Fu(option)i(to)g Ft(complete)d
+Fu(is)j(used)e(as)i(the)g(default.)p eop end
+%%Page: 125 131
+TeXDict begin 125 130 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(125)275 299 y(Once)34
+b(a)g(compsp)s(ec)g(has)g(b)s(een)f(found,)h(it)h(is)f(used)f(to)i
+(generate)h(the)e(list)h(of)f(matc)m(hing)h(w)m(ords.)51
+b(If)150 408 y(a)37 b(compsp)s(ec)f(is)g(not)h(found,)f(the)h(default)f
+(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g
+(8.4.6)150 518 y([Commands)30 b(F)-8 b(or)31 b(Completion],)g(page)g
+(120\))h(is)f(p)s(erformed.)275 655 y(First,)g(the)g(actions)g(sp)s
(eci\014ed)f(b)m(y)h(the)f(compsp)s(ec)h(are)g(used.)40
b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h(pre\014xed)150
-4298 y(b)m(y)25 b(the)h(w)m(ord)f(b)s(eing)f(completed)j(are)e
-(returned.)38 b(When)25 b(the)h(`)p Fs(-f)p Ft(')f(or)g(`)p
-Fs(-d)p Ft(')g(option)h(is)f(used)g(for)g(\014lename)150
-4408 y(or)30 b(directory)h(name)f(completion,)i(the)e(shell)h(v)-5
-b(ariable)31 b Fs(FIGNORE)d Ft(is)i(used)f(to)i(\014lter)g(the)f(matc)m
-(hes.)42 b(See)150 4517 y(Section)31 b(5.2)h([Bash)e(V)-8
-b(ariables],)33 b(page)e(63,)g(for)f(a)h(description)g(of)f
-Fs(FIGNORE)p Ft(.)275 4655 y(An)m(y)f(completions)h(sp)s(eci\014ed)f(b)
-m(y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g(`)p
-Fs(-G)p Ft(')f(option)h(are)f(gener-)150 4764 y(ated)h(next.)40
-b(The)29 b(w)m(ords)g(generated)h(b)m(y)f(the)h(pattern)f(need)g(not)g
-(matc)m(h)i(the)e(w)m(ord)g(b)s(eing)g(completed.)150
-4874 y(The)42 b Fs(GLOBIGNORE)d Ft(shell)k(v)-5 b(ariable)43
-b(is)f(not)h(used)e(to)i(\014lter)f(the)h(matc)m(hes,)j(but)c(the)g
-Fs(FIGNORE)f Ft(shell)150 4983 y(v)-5 b(ariable)31 b(is)g(used.)275
-5121 y(Next,)k(the)g(string)e(sp)s(eci\014ed)h(as)g(the)g(argumen)m(t)g
-(to)h(the)f(`)p Fs(-W)p Ft(')g(option)g(is)g(considered.)52
-b(The)33 b(string)150 5230 y(is)g(\014rst)e(split)i(using)f(the)h(c)m
-(haracters)h(in)e(the)h Fs(IFS)e Ft(sp)s(ecial)j(v)-5
+765 y(b)m(y)h(the)f(w)m(ord)h(b)s(eing)f(completed)h(are)g(returned.)44
+b(When)31 b(the)h Ft(-f)f Fu(or)h Ft(-d)f Fu(option)h(is)f(used)g(for)h
+(\014lename)150 874 y(or)e(directory)h(name)f(completion,)i(the)e
+(shell)h(v)-5 b(ariable)31 b Ft(FIGNORE)d Fu(is)i(used)f(to)i(\014lter)
+g(the)f(matc)m(hes.)42 b(See)150 984 y(Section)31 b(5.2)h([Bash)e(V)-8
+b(ariables],)33 b(page)e(69,)g(for)f(a)h(description)g(of)f
+Ft(FIGNORE)p Fu(.)275 1121 y(An)m(y)22 b(completions)h(sp)s(eci\014ed)f
+(b)m(y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g
+Ft(-G)e Fu(option)i(are)g(generated)150 1230 y(next.)41
+b(The)29 b(w)m(ords)g(generated)h(b)m(y)g(the)g(pattern)f(need)h(not)f
+(matc)m(h)i(the)f(w)m(ord)f(b)s(eing)g(completed.)41
+b(The)150 1340 y Ft(GLOBIGNORE)29 b Fu(shell)i(v)-5 b(ariable)32
+b(is)g(not)g(used)e(to)i(\014lter)g(the)g(matc)m(hes,)h(but)d(the)i
+Ft(FIGNORE)e Fu(shell)h(v)-5 b(ariable)150 1450 y(is)30
+b(used.)275 1587 y(Next,)39 b(the)f(string)f(sp)s(eci\014ed)f(as)h(the)
+g(argumen)m(t)h(to)g(the)f Ft(-W)f Fu(option)i(is)f(considered.)60
+b(The)37 b(string)150 1696 y(is)c(\014rst)e(split)i(using)f(the)h(c)m
+(haracters)h(in)e(the)h Ft(IFS)e Fu(sp)s(ecial)j(v)-5
b(ariable)33 b(as)g(delimiters.)48 b(Shell)32 b(quoting)h(is)150
-5340 y(honored.)56 b(Eac)m(h)37 b(w)m(ord)e(is)h(then)f(expanded)g
-(using)h(brace)g(expansion,)h(tilde)f(expansion,)h(parameter)p
-eop end
-%%Page: 118 124
-TeXDict begin 118 123 bop 150 -116 a Ft(118)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y(and)44 b(v)-5 b(ariable)46
-b(expansion,)j(command)44 b(substitution,)49 b(and)44
-b(arithmetic)i(expansion,)j(as)c(describ)s(ed)150 408
-y(ab)s(o)m(v)m(e)38 b(\(see)f(Section)h(3.5)g([Shell)e(Expansions],)i
-(page)f(19\).)61 b(The)36 b(results)h(are)g(split)f(using)h(the)f
-(rules)150 518 y(describ)s(ed)29 b(ab)s(o)m(v)m(e)i(\(see)f(Section)h
-(3.5.7)h([W)-8 b(ord)30 b(Splitting],)h(page)f(25\).)42
-b(The)30 b(results)f(of)h(the)g(expansion)150 628 y(are)f
-(pre\014x-matc)m(hed)h(against)g(the)f(w)m(ord)g(b)s(eing)f(completed,)
-j(and)d(the)i(matc)m(hing)g(w)m(ords)e(b)s(ecome)i(the)150
-737 y(p)s(ossible)g(completions.)275 888 y(After)f(these)g(matc)m(hes)i
-(ha)m(v)m(e)f(b)s(een)f(generated,)h(an)m(y)g(shell)f(function)g(or)g
-(command)g(sp)s(eci\014ed)f(with)150 998 y(the)i(`)p
-Fs(-F)p Ft(')g(and)f(`)p Fs(-C)p Ft(')h(options)g(is)g(in)m(v)m(ok)m
-(ed.)41 b(When)30 b(the)g(command)g(or)f(function)h(is)g(in)m(v)m(ok)m
-(ed,)h(the)f Fs(COMP_)150 1107 y(LINE)p Ft(,)42 b Fs(COMP_POINT)p
-Ft(,)d Fs(COMP_KEY)p Ft(,)i(and)e Fs(COMP_TYPE)f Ft(v)-5
+1806 y(honored.)56 b(Eac)m(h)37 b(w)m(ord)e(is)h(then)f(expanded)g
+(using)h(brace)g(expansion,)h(tilde)f(expansion,)h(parameter)150
+1915 y(and)44 b(v)-5 b(ariable)46 b(expansion,)j(command)44
+b(substitution,)49 b(and)44 b(arithmetic)i(expansion,)j(as)c(describ)s
+(ed)150 2025 y(ab)s(o)m(v)m(e)38 b(\(see)f(Section)h(3.5)g([Shell)e
+(Expansions],)i(page)f(21\).)61 b(The)36 b(results)h(are)g(split)f
+(using)h(the)f(rules)150 2134 y(describ)s(ed)29 b(ab)s(o)m(v)m(e)i
+(\(see)f(Section)h(3.5.7)h([W)-8 b(ord)30 b(Splitting],)h(page)f(29\).)
+42 b(The)30 b(results)f(of)h(the)g(expansion)150 2244
+y(are)f(pre\014x-matc)m(hed)h(against)g(the)f(w)m(ord)g(b)s(eing)f
+(completed,)j(and)d(the)i(matc)m(hing)g(w)m(ords)e(b)s(ecome)i(the)150
+2354 y(p)s(ossible)g(completions.)275 2491 y(After)f(these)g(matc)m
+(hes)i(ha)m(v)m(e)f(b)s(een)f(generated,)h(an)m(y)g(shell)f(function)g
+(or)g(command)g(sp)s(eci\014ed)f(with)150 2600 y(the)36
+b Ft(-F)f Fu(and)g Ft(-C)g Fu(options)h(is)g(in)m(v)m(ok)m(ed.)59
+b(When)35 b(the)h(command)g(or)f(function)h(is)g(in)m(v)m(ok)m(ed,)i
+(the)e Ft(COMP_)150 2710 y(LINE)p Fu(,)42 b Ft(COMP_POINT)p
+Fu(,)d Ft(COMP_KEY)p Fu(,)i(and)e Ft(COMP_TYPE)f Fu(v)-5
b(ariables)41 b(are)f(assigned)g(v)-5 b(alues)41 b(as)f(describ)s(ed)
-150 1217 y(ab)s(o)m(v)m(e)k(\(see)g(Section)f(5.2)h([Bash)f(V)-8
-b(ariables],)48 b(page)c(63\).)79 b(If)42 b(a)i(shell)f(function)f(is)h
-(b)s(eing)f(in)m(v)m(ok)m(ed,)150 1326 y(the)37 b Fs(COMP_WORDS)d
-Ft(and)i Fs(COMP_CWORD)e Ft(v)-5 b(ariables)38 b(are)f(also)h(set.)60
-b(When)37 b(the)g(function)f(or)h(command)150 1436 y(is)42
-b(in)m(v)m(ok)m(ed,)k(the)41 b(\014rst)g(argumen)m(t)h(is)g(the)g(name)
-f(of)h(the)g(command)f(whose)h(argumen)m(ts)f(are)h(b)s(eing)150
-1545 y(completed,)d(the)d(second)g(argumen)m(t)h(is)f(the)g(w)m(ord)g
-(b)s(eing)g(completed,)i(and)e(the)g(third)f(argumen)m(t)i(is)150
-1655 y(the)28 b(w)m(ord)g(preceding)h(the)f(w)m(ord)g(b)s(eing)g
-(completed)h(on)f(the)h(curren)m(t)f(command)g(line.)40
-b(No)29 b(\014ltering)g(of)150 1765 y(the)i(generated)h(completions)h
-(against)f(the)f(w)m(ord)g(b)s(eing)g(completed)h(is)f(p)s(erformed;)f
-(the)h(function)g(or)150 1874 y(command)f(has)g(complete)i(freedom)e
-(in)g(generating)i(the)f(matc)m(hes.)275 2025 y(An)m(y)g(function)h(sp)
-s(eci\014ed)f(with)g(`)p Fs(-F)p Ft(')h(is)g(in)m(v)m(ok)m(ed)h
-(\014rst.)44 b(The)31 b(function)h(ma)m(y)g(use)g(an)m(y)g(of)g(the)g
-(shell)150 2134 y(facilities,)50 b(including)44 b(the)h
-Fs(compgen)d Ft(and)i Fs(compopt)e Ft(builtins)i(describ)s(ed)f(b)s
-(elo)m(w)h(\(see)i(Section)f(8.7)150 2244 y([Programmable)31
-b(Completion)h(Builtins],)f(page)h(119\),)g(to)g(generate)g(the)f(matc)
-m(hes.)42 b(It)31 b(m)m(ust)g(put)f(the)150 2354 y(p)s(ossible)g
-(completions)h(in)f(the)h Fs(COMPREPLY)d Ft(arra)m(y)j(v)-5
-b(ariable.)275 2504 y(Next,)23 b(an)m(y)e(command)f(sp)s(eci\014ed)g
-(with)g(the)h(`)p Fs(-C)p Ft(')f(option)h(is)g(in)m(v)m(ok)m(ed)h(in)e
-(an)g(en)m(vironmen)m(t)h(equiv)-5 b(alen)m(t)150 2614
-y(to)26 b(command)e(substitution.)39 b(It)25 b(should)f(prin)m(t)h(a)g
-(list)h(of)f(completions,)i(one)e(p)s(er)f(line,)j(to)f(the)f(standard)
-150 2724 y(output.)40 b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f(used)g(to)h
-(escap)s(e)g(a)f(newline,)h(if)f(necessary)-8 b(.)275
-2874 y(After)42 b(all)g(of)g(the)g(p)s(ossible)g(completions)h(are)f
-(generated,)k(an)m(y)c(\014lter)g(sp)s(eci\014ed)f(with)h(the)g(`)p
-Fs(-X)p Ft(')150 2984 y(option)34 b(is)f(applied)g(to)h(the)f(list.)49
-b(The)33 b(\014lter)g(is)g(a)h(pattern)f(as)g(used)g(for)g(pathname)g
-(expansion;)h(a)g(`)p Fs(&)p Ft(')150 3093 y(in)39 b(the)g(pattern)g
-(is)g(replaced)g(with)g(the)g(text)h(of)f(the)g(w)m(ord)g(b)s(eing)f
-(completed.)68 b(A)39 b(literal)h(`)p Fs(&)p Ft(')f(ma)m(y)150
-3203 y(b)s(e)e(escap)s(ed)h(with)g(a)h(bac)m(kslash;)k(the)38
-b(bac)m(kslash)h(is)f(remo)m(v)m(ed)h(b)s(efore)e(attempting)j(a)e
-(matc)m(h.)65 b(An)m(y)150 3313 y(completion)35 b(that)g(matc)m(hes)g
-(the)f(pattern)g(will)g(b)s(e)g(remo)m(v)m(ed)h(from)e(the)h(list.)53
-b(A)34 b(leading)g(`)p Fs(!)p Ft(')h(negates)150 3422
-y(the)c(pattern;)f(in)g(this)h(case)g(an)m(y)g(completion)g(not)g(matc)
-m(hing)h(the)e(pattern)h(will)f(b)s(e)g(remo)m(v)m(ed.)275
-3573 y(Finally)-8 b(,)33 b(an)m(y)f(pre\014x)f(and)g(su\016x)g(sp)s
-(eci\014ed)g(with)h(the)g(`)p Fs(-P)p Ft(')f(and)g(`)p
-Fs(-S)p Ft(')h(options)g(are)g(added)f(to)i(eac)m(h)150
-3682 y(mem)m(b)s(er)e(of)g(the)h(completion)h(list,)f(and)f(the)h
-(result)f(is)h(returned)e(to)i(the)g(Readline)g(completion)h(co)s(de)
-150 3792 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)275
-3943 y(If)22 b(the)i(previously-applied)f(actions)i(do)e(not)h
-(generate)h(an)m(y)f(matc)m(hes,)i(and)d(the)g(`)p Fs(-o)30
-b(dirnames)p Ft(')22 b(op-)150 4052 y(tion)29 b(w)m(as)f(supplied)f(to)
-i Fs(complete)d Ft(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g
-(directory)g(name)h(completion)150 4162 y(is)h(attempted.)275
-4313 y(If)g(the)i(`)p Fs(-o)e(plusdirs)p Ft(')f(option)j(w)m(as)f
-(supplied)f(to)i Fs(complete)e Ft(when)g(the)h(compsp)s(ec)g(w)m(as)h
-(de\014ned,)150 4422 y(directory)k(name)f(completion)i(is)e(attempted)h
-(and)f(an)m(y)h(matc)m(hes)g(are)g(added)f(to)h(the)f(results)g(of)h
-(the)150 4532 y(other)31 b(actions.)275 4682 y(By)g(default,)i(if)e(a)h
-(compsp)s(ec)f(is)h(found,)f(whatev)m(er)h(it)g(generates)h(is)e
-(returned)g(to)h(the)g(completion)150 4792 y(co)s(de)21
-b(as)g(the)g(full)g(set)g(of)g(p)s(ossible)f(completions.)39
-b(The)20 b(default)h(Bash)g(completions)h(are)g(not)f(attempted,)150
-4902 y(and)k(the)h(Readline)g(default)g(of)g(\014lename)g(completion)h
-(is)f(disabled.)38 b(If)26 b(the)g(`)p Fs(-o)k(bashdefault)p
-Ft(')22 b(option)150 5011 y(w)m(as)i(supplied)e(to)j
-Fs(complete)c Ft(when)i(the)g(compsp)s(ec)h(w)m(as)g(de\014ned,)g(the)f
-(default)h(Bash)g(completions)h(are)150 5121 y(attempted)f(if)f(the)g
-(compsp)s(ec)g(generates)i(no)e(matc)m(hes.)39 b(If)23
-b(the)g(`)p Fs(-o)30 b(default)p Ft(')21 b(option)j(w)m(as)f(supplied)f
-(to)150 5230 y Fs(complete)j Ft(when)h(the)h(compsp)s(ec)f(w)m(as)i
-(de\014ned,)e(Readline's)i(default)f(completion)h(will)f(b)s(e)f(p)s
-(erformed)150 5340 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,)
-g(the)g(default)f(Bash)h(completions\))h(generate)g(no)e(matc)m(hes.)p
+150 2819 y(ab)s(o)m(v)m(e)34 b(\(see)g(Section)g(5.2)g([Bash)f(V)-8
+b(ariables],)36 b(page)d(69\).)50 b(If)33 b(a)g(shell)g(function)g(is)g
+(b)s(eing)f(in)m(v)m(ok)m(ed,)k(the)150 2929 y Ft(COMP_WORDS)j
+Fu(and)i Ft(COMP_CWORD)d Fu(v)-5 b(ariables)42 b(are)g(also)h(set.)74
+b(When)41 b(the)h(function)f(or)h(command)f(is)150 3039
+y(in)m(v)m(ok)m(ed,)c(the)e(\014rst)f(argumen)m(t)h(\($1\))h(is)e(the)h
+(name)g(of)f(the)h(command)f(whose)h(argumen)m(ts)f(are)h(b)s(eing)150
+3148 y(completed,)30 b(the)f(second)f(argumen)m(t)h(\($2\))h(is)f(the)g
+(w)m(ord)f(b)s(eing)g(completed,)i(and)e(the)h(third)e(argumen)m(t)150
+3258 y(\($3\))40 b(is)f(the)f(w)m(ord)h(preceding)f(the)h(w)m(ord)f(b)s
+(eing)g(completed)i(on)e(the)h(curren)m(t)f(command)h(line.)65
+b(No)150 3367 y(\014ltering)33 b(of)h(the)f(generated)h(completions)g
+(against)h(the)e(w)m(ord)g(b)s(eing)f(completed)i(is)g(p)s(erformed;)f
+(the)150 3477 y(function)d(or)g(command)h(has)f(complete)i(freedom)e
+(in)g(generating)h(the)g(matc)m(hes.)275 3614 y(An)m(y)j(function)h(sp)
+s(eci\014ed)f(with)g Ft(-F)g Fu(is)h(in)m(v)m(ok)m(ed)h(\014rst.)53
+b(The)35 b(function)f(ma)m(y)h(use)g(an)m(y)g(of)g(the)g(shell)150
+3724 y(facilities,)50 b(including)44 b(the)h Ft(compgen)d
+Fu(and)i Ft(compopt)e Fu(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)
+i(Section)f(8.7)150 3833 y([Programmable)31 b(Completion)h(Builtins],)f
+(page)h(126\),)g(to)g(generate)g(the)f(matc)m(hes.)42
+b(It)31 b(m)m(ust)g(put)f(the)150 3943 y(p)s(ossible)g(completions)h
+(in)f(the)h Ft(COMPREPLY)d Fu(arra)m(y)j(v)-5 b(ariable,)31
+b(one)g(p)s(er)e(arra)m(y)i(elemen)m(t.)275 4080 y(Next,)26
+b(an)m(y)f(command)f(sp)s(eci\014ed)g(with)g(the)h Ft(-C)f
+Fu(option)h(is)f(in)m(v)m(ok)m(ed)i(in)e(an)g(en)m(vironmen)m(t)h
+(equiv)-5 b(alen)m(t)150 4189 y(to)26 b(command)e(substitution.)39
+b(It)25 b(should)f(prin)m(t)h(a)g(list)h(of)f(completions,)i(one)e(p)s
+(er)f(line,)j(to)f(the)f(standard)150 4299 y(output.)40
+b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f(used)g(to)h(escap)s(e)g(a)f
+(newline,)h(if)f(necessary)-8 b(.)275 4436 y(After)24
+b(all)i(of)f(the)f(p)s(ossible)g(completions)i(are)f(generated,)i(an)m
+(y)e(\014lter)g(sp)s(eci\014ed)e(with)i(the)g Ft(-X)e
+Fu(option)150 4545 y(is)34 b(applied)g(to)g(the)h(list.)52
+b(The)33 b(\014lter)h(is)g(a)h(pattern)f(as)g(used)f(for)h(pathname)g
+(expansion;)i(a)e(`)p Ft(&)p Fu(')g(in)g(the)150 4655
+y(pattern)28 b(is)f(replaced)h(with)g(the)f(text)i(of)f(the)f(w)m(ord)h
+(b)s(eing)f(completed.)40 b(A)28 b(literal)h(`)p Ft(&)p
+Fu(')f(ma)m(y)g(b)s(e)f(escap)s(ed)150 4765 y(with)38
+b(a)h(bac)m(kslash;)k(the)38 b(bac)m(kslash)h(is)g(remo)m(v)m(ed)g(b)s
+(efore)f(attempting)h(a)g(matc)m(h.)65 b(An)m(y)39 b(completion)150
+4874 y(that)32 b(matc)m(hes)g(the)g(pattern)g(will)f(b)s(e)g(remo)m(v)m
+(ed)h(from)f(the)h(list.)44 b(A)32 b(leading)g(`)p Ft(!)p
+Fu(')f(negates)i(the)f(pattern;)150 4984 y(in)e(this)g(case)i(an)m(y)e
+(completion)i(not)f(matc)m(hing)g(the)g(pattern)f(will)h(b)s(e)f(remo)m
+(v)m(ed.)275 5121 y(Finally)-8 b(,)42 b(an)m(y)c(pre\014x)g(and)f
+(su\016x)h(sp)s(eci\014ed)f(with)i(the)f Ft(-P)g Fu(and)g
+Ft(-S)f Fu(options)i(are)g(added)f(to)h(eac)m(h)150 5230
+y(mem)m(b)s(er)31 b(of)g(the)h(completion)h(list,)f(and)f(the)h(result)
+f(is)h(returned)e(to)i(the)g(Readline)g(completion)h(co)s(de)150
+5340 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)p
eop end
-%%Page: 119 125
-TeXDict begin 119 124 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(119)275 299 y(When)20
-b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g(name)f(completion)h
-(is)f(desired,)i(the)e(programmable)150 408 y(completion)31
-b(functions)e(force)i(Readline)f(to)h(app)s(end)d(a)i(slash)g(to)g
-(completed)h(names)e(whic)m(h)h(are)g(sym-)150 518 y(b)s(olic)40
-b(links)g(to)h(directories,)j(sub)5 b(ject)40 b(to)h(the)f(v)-5
-b(alue)41 b(of)f(the)g Fq(mark-directories)45 b Ft(Readline)c(v)-5
-b(ariable,)150 628 y(regardless)31 b(of)f(the)h(setting)g(of)g(the)f
-Fq(mark-symlink)m(ed-directories)36 b Ft(Readline)31
-b(v)-5 b(ariable.)275 770 y(There)25 b(is)i(some)g(supp)s(ort)e(for)h
-(dynamically)h(mo)s(difying)f(completions.)40 b(This)26
-b(is)g(most)h(useful)f(when)150 880 y(used)37 b(in)h(com)m(bination)h
-(with)e(a)i(default)f(completion)h(sp)s(eci\014ed)e(with)h(`)p
-Fs(-D)p Ft('.)63 b(It's)38 b(p)s(ossible)f(for)h(shell)150
-989 y(functions)28 b(executed)h(as)f(completion)i(handlers)d(to)i
-(indicate)g(that)g(completion)g(should)e(b)s(e)h(retried)g(b)m(y)150
-1099 y(returning)j(an)i(exit)g(status)f(of)h(124.)48
-b(If)31 b(a)i(shell)f(function)g(returns)f(124,)k(and)c(c)m(hanges)j
-(the)e(compsp)s(ec)150 1209 y(asso)s(ciated)43 b(with)e(the)g(command)g
+%%Page: 126 132
+TeXDict begin 126 131 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(126)275 299 y(If)27
+b(the)h(previously-applied)f(actions)i(do)f(not)g(generate)h(an)m(y)f
+(matc)m(hes,)i(and)d(the)h Ft(-o)h(dirnames)d Fu(op-)150
+408 y(tion)j(w)m(as)f(supplied)f(to)i Ft(complete)d Fu(when)h(the)h
+(compsp)s(ec)g(w)m(as)g(de\014ned,)g(directory)g(name)h(completion)150
+518 y(is)h(attempted.)275 654 y(If)35 b(the)g Ft(-o)30
+b(plusdirs)j Fu(option)j(w)m(as)g(supplied)e(to)i Ft(complete)e
+Fu(when)g(the)i(compsp)s(ec)f(w)m(as)h(de\014ned,)150
+764 y(directory)g(name)f(completion)i(is)e(attempted)h(and)f(an)m(y)h
+(matc)m(hes)g(are)g(added)f(to)h(the)f(results)g(of)h(the)150
+873 y(other)31 b(actions.)275 1010 y(By)g(default,)i(if)e(a)h(compsp)s
+(ec)f(is)h(found,)f(whatev)m(er)h(it)g(generates)h(is)e(returned)g(to)h
+(the)g(completion)150 1119 y(co)s(de)21 b(as)g(the)g(full)g(set)g(of)g
+(p)s(ossible)f(completions.)39 b(The)20 b(default)h(Bash)g(completions)
+h(are)g(not)f(attempted,)150 1229 y(and)30 b(the)g(Readline)h(default)f
+(of)g(\014lename)h(completion)g(is)f(disabled.)41 b(If)29
+b(the)i Ft(-o)e(bashdefault)e Fu(option)150 1338 y(w)m(as)d(supplied)e
+(to)j Ft(complete)c Fu(when)i(the)g(compsp)s(ec)h(w)m(as)g(de\014ned,)g
+(the)f(default)h(Bash)g(completions)h(are)150 1448 y(attempted)j(if)f
+(the)h(compsp)s(ec)f(generates)h(no)f(matc)m(hes.)41
+b(If)27 b(the)g Ft(-o)j(default)25 b Fu(option)j(w)m(as)f(supplied)f
+(to)150 1557 y Ft(complete)f Fu(when)h(the)h(compsp)s(ec)f(w)m(as)i
+(de\014ned,)e(Readline's)i(default)f(completion)h(will)f(b)s(e)f(p)s
+(erformed)150 1667 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,)
+g(the)g(default)f(Bash)h(completions\))h(generate)g(no)e(matc)m(hes.)
+275 1803 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g
+(name)f(completion)h(is)f(desired,)i(the)e(programmable)150
+1913 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d
+(a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g(sym-)150
+2022 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
+b(ject)40 b(to)h(the)f(v)-5 b(alue)41 b(of)f(the)g Fr(mark-directories)
+45 b Fu(Readline)c(v)-5 b(ariable,)150 2132 y(regardless)31
+b(of)f(the)h(setting)g(of)g(the)f Fr(mark-symlink)m(ed-directories)36
+b Fu(Readline)31 b(v)-5 b(ariable.)275 2268 y(There)25
+b(is)i(some)g(supp)s(ort)e(for)h(dynamically)h(mo)s(difying)f
+(completions.)40 b(This)26 b(is)g(most)h(useful)f(when)150
+2378 y(used)40 b(in)h(com)m(bination)i(with)e(a)g(default)h(completion)
+g(sp)s(eci\014ed)f(with)g Ft(-D)p Fu(.)72 b(It's)42 b(p)s(ossible)f
+(for)g(shell)150 2487 y(functions)28 b(executed)h(as)f(completion)i
+(handlers)d(to)i(indicate)g(that)g(completion)g(should)e(b)s(e)h
+(retried)g(b)m(y)150 2597 y(returning)j(an)i(exit)g(status)f(of)h(124.)
+48 b(If)31 b(a)i(shell)f(function)g(returns)f(124,)k(and)c(c)m(hanges)j
+(the)e(compsp)s(ec)150 2707 y(asso)s(ciated)43 b(with)e(the)g(command)g
(on)g(whic)m(h)g(completion)i(is)e(b)s(eing)g(attempted)h(\(supplied)e
-(as)i(the)150 1318 y(\014rst)29 b(argumen)m(t)h(when)e(the)i(function)f
+(as)i(the)150 2816 y(\014rst)29 b(argumen)m(t)h(when)e(the)i(function)f
(is)g(executed\),)j(programmable)d(completion)i(restarts)f(from)f(the)
-150 1428 y(b)s(eginning,)e(with)g(an)h(attempt)g(to)g(\014nd)e(a)i(new)
+150 2926 y(b)s(eginning,)e(with)g(an)h(attempt)g(to)g(\014nd)e(a)i(new)
e(compsp)s(ec)i(for)f(that)h(command.)39 b(This)27 b(allo)m(ws)h(a)g
-(set)g(of)150 1537 y(completions)33 b(to)f(b)s(e)g(built)f(dynamically)
+(set)g(of)150 3035 y(completions)33 b(to)f(b)s(e)g(built)f(dynamically)
i(as)f(completion)h(is)f(attempted,)h(rather)f(than)f(b)s(eing)g
-(loaded)150 1647 y(all)g(at)g(once.)275 1789 y(F)-8 b(or)38
+(loaded)150 3145 y(all)g(at)g(once.)275 3281 y(F)-8 b(or)38
b(instance,)h(assuming)e(that)h(there)f(is)h(a)f(library)g(of)g(compsp)
s(ecs,)i(eac)m(h)g(k)m(ept)e(in)g(a)h(\014le)f(corre-)150
-1899 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
+3391 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
(follo)m(wing)h(default)f(completion)h(function)e(w)m(ould)150
-2009 y(load)31 b(completions)g(dynamically:)390 2151
-y Fs(_completion_loader\(\))390 2261 y({)390 2370 y(.)47
-b("/etc/bash_completion.d/$1)o(.sh")41 b(>/dev/null)k(2>&1)i(&&)g
-(return)f(124)390 2480 y(})390 2589 y(complete)g(-D)h(-F)g
-(_completion_loader)150 2834 y Fr(8.7)68 b(Programmable)47
-b(Completion)f(Builtins)150 2993 y Ft(Tw)m(o)27 b(builtin)g(commands)g
-(are)g(a)m(v)-5 b(ailable)29 b(to)f(manipulate)g(the)f(programmable)g
-(completion)h(facilities.)150 3165 y Fs(compgen)870 3303
-y(compgen)46 b([)p Fi(option)11 b Fs(])45 b([)p Fi(word)11
-b Fs(])630 3442 y Ft(Generate)27 b(p)s(ossible)e(completion)i(matc)m
-(hes)g(for)e Fq(w)m(ord)k Ft(according)e(to)f(the)g Fq(option)p
-Ft(s,)h(whic)m(h)630 3552 y(ma)m(y)h(b)s(e)f(an)m(y)h(option)g
-(accepted)h(b)m(y)e(the)h Fs(complete)d Ft(builtin)j(with)f(the)h
-(exception)g(of)g(`)p Fs(-p)p Ft(')630 3661 y(and)k(`)p
-Fs(-r)p Ft(',)i(and)e(write)h(the)g(matc)m(hes)h(to)g(the)f(standard)f
-(output.)48 b(When)33 b(using)f(the)h(`)p Fs(-F)p Ft(')630
-3771 y(or)28 b(`)p Fs(-C)p Ft(')g(options,)h(the)f(v)-5
-b(arious)29 b(shell)f(v)-5 b(ariables)29 b(set)f(b)m(y)g(the)g
-(programmable)h(completion)630 3880 y(facilities,)k(while)d(a)m(v)-5
-b(ailable,)33 b(will)e(not)g(ha)m(v)m(e)g(useful)f(v)-5
-b(alues.)630 4019 y(The)34 b(matc)m(hes)h(will)g(b)s(e)f(generated)h
-(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h(programmable)f(com-)630
-4128 y(pletion)d(co)s(de)g(had)f(generated)i(them)e(directly)i(from)e
-(a)h(completion)h(sp)s(eci\014cation)f(with)630 4238
-y(the)e(same)h(\015ags.)40 b(If)29 b Fq(w)m(ord)j Ft(is)d(sp)s
-(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
-Fq(w)m(ord)j Ft(will)630 4348 y(b)s(e)d(displa)m(y)m(ed.)630
-4486 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)
+3500 y(load)31 b(completions)g(dynamically:)390 3636
+y Ft(_completion_loader\(\))390 3746 y({)581 3856 y(.)47
+b("/etc/bash_completion.d/$1)o(.sh)o(")42 b(>/dev/null)j(2>&1)i(&&)g
+(return)f(124)390 3965 y(})390 4075 y(complete)g(-D)h(-F)g
+(_completion_loader)c(-o)k(bashdefault)e(-o)i(default)150
+4310 y Fs(8.7)68 b(Programmable)47 b(Completion)f(Builtins)150
+4469 y Fu(Three)21 b(builtin)g(commands)f(are)i(a)m(v)-5
+b(ailable)24 b(to)e(manipulate)f(the)h(programmable)f(completion)h
+(facilities:)150 4579 y(one)34 b(to)g(sp)s(ecify)f(ho)m(w)h(the)f
+(argumen)m(ts)h(to)g(a)g(particular)g(command)f(are)h(to)g(b)s(e)f
+(completed,)j(and)d(t)m(w)m(o)150 4688 y(to)e(mo)s(dify)f(the)g
+(completion)i(as)e(it)h(is)g(happ)s(ening.)150 4850 y
+Ft(compgen)870 4985 y(compgen)46 b([)p Fj(option)p Ft(])f([)p
+Fj(word)p Ft(])630 5121 y Fu(Generate)27 b(p)s(ossible)e(completion)i
+(matc)m(hes)g(for)e Fr(w)m(ord)k Fu(according)e(to)f(the)g
+Fr(option)p Fu(s,)h(whic)m(h)630 5230 y(ma)m(y)32 b(b)s(e)f(an)m(y)h
+(option)g(accepted)g(b)m(y)g(the)f Ft(complete)f Fu(builtin)h(with)g
+(the)g(exception)i(of)f Ft(-p)630 5340 y Fu(and)39 b
+Ft(-r)p Fu(,)i(and)e(write)h(the)g(matc)m(hes)g(to)g(the)g(standard)f
+(output.)68 b(When)39 b(using)g(the)h Ft(-F)p eop end
+%%Page: 127 133
+TeXDict begin 127 132 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(127)630 299 y(or)33
+b Ft(-C)f Fu(options,)i(the)e(v)-5 b(arious)33 b(shell)g(v)-5
+b(ariables)33 b(set)g(b)m(y)g(the)g(programmable)g(completion)630
+408 y(facilities,)g(while)d(a)m(v)-5 b(ailable,)33 b(will)e(not)g(ha)m
+(v)m(e)g(useful)f(v)-5 b(alues.)630 542 y(The)34 b(matc)m(hes)h(will)g
+(b)s(e)f(generated)h(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h
+(programmable)f(com-)630 652 y(pletion)d(co)s(de)g(had)f(generated)i
+(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with)
+630 762 y(the)e(same)h(\015ags.)40 b(If)29 b Fr(w)m(ord)j
+Fu(is)d(sp)s(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
+Fr(w)m(ord)j Fu(will)630 871 y(b)s(e)d(displa)m(y)m(ed.)630
+1005 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)
m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m
-(ere)630 4596 y(generated.)150 4763 y Fs(complete)870
-4902 y(complete)46 b([-abcdefgjksuv])d([-o)k Fi(comp-option)11
-b Fs(])44 b([-DE])i([-A)h Fi(action)11 b Fs(])46 b([-)870
-5011 y(G)h Fi(globpat)11 b Fs(])46 b([-W)g Fi(wordlist)11
-b Fs(])870 5121 y([-F)47 b Fi(function)11 b Fs(])45 b([-C)i
-Fi(command)11 b Fs(])45 b([-X)i Fi(filterpat)11 b Fs(])870
-5230 y([-P)47 b Fi(prefix)11 b Fs(])45 b([-S)i Fi(suffix)11
-b Fs(])45 b Fi(name)58 b Fs([)p Fi(name)f Fs(...)o(])870
-5340 y(complete)46 b(-pr)g([-DE])h([)p Fi(name)57 b Fs(...)o(])p
-eop end
-%%Page: 120 126
-TeXDict begin 120 125 bop 150 -116 a Ft(120)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(Sp)s(ecify)i(ho)m(w)h(argumen)m(ts)h
-(to)f(eac)m(h)i Fq(name)j Ft(should)33 b(b)s(e)g(completed.)53
-b(If)33 b(the)i(`)p Fs(-p)p Ft(')e(option)630 408 y(is)d(supplied,)e
-(or)i(if)g(no)f(options)h(are)g(supplied,)f(existing)h(completion)h(sp)
-s(eci\014cations)g(are)630 518 y(prin)m(ted)43 b(in)h(a)g(w)m(a)m(y)h
-(that)f(allo)m(ws)h(them)f(to)g(b)s(e)g(reused)f(as)h(input.)80
-b(The)43 b(`)p Fs(-r)p Ft(')g(option)630 628 y(remo)m(v)m(es)29
-b(a)e(completion)i(sp)s(eci\014cation)e(for)g(eac)m(h)i
-Fq(name)5 b Ft(,)28 b(or,)g(if)f(no)g Fq(name)5 b Ft(s)27
-b(are)h(supplied,)630 737 y(all)46 b(completion)h(sp)s(eci\014cations.)
-87 b(The)45 b(`)p Fs(-D)p Ft(')h(option)g(indicates)g(that)g(the)g
-(remaining)630 847 y(options)35 b(and)f(actions)h(should)f(apply)g(to)h
-(the)g(\\default")g(command)f(completion;)k(that)630
-956 y(is,)25 b(completion)g(attempted)g(on)e(a)h(command)f(for)g(whic)m
-(h)h(no)f(completion)i(has)e(previously)630 1066 y(b)s(een)28
-b(de\014ned.)39 b(The)27 b(`)p Fs(-E)p Ft(')i(option)g(indicates)g
-(that)g(the)g(remaining)f(options)h(and)f(actions)630
-1176 y(should)i(apply)i(to)g(\\empt)m(y")g(command)g(completion;)h
-(that)f(is,)g(completion)h(attempted)630 1285 y(on)d(a)h(blank)f(line.)
-630 1419 y(The)f(pro)s(cess)g(of)h(applying)g(these)g(completion)g(sp)s
-(eci\014cations)h(when)d(w)m(ord)i(completion)630 1529
+(ere)630 1115 y(generated.)150 1273 y Ft(complete)870
+1407 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
+Ft(])e([-DE])h([-A)h Fj(action)p Ft(])f([-)870 1517 y(G)h
+Fj(globpat)p Ft(])f([-W)h Fj(wordlist)p Ft(])870 1626
+y([-F)g Fj(function)p Ft(])e([-C)i Fj(command)p Ft(])f([-X)h
+Fj(filterpat)p Ft(])870 1736 y([-P)g Fj(prefix)p Ft(])f([-S)h
+Fj(suffix)p Ft(])e Fj(name)i Ft([)p Fj(name)f Ft(...])870
+1845 y(complete)g(-pr)g([-DE])h([)p Fj(name)f Ft(...)o(])630
+1979 y Fu(Sp)s(ecify)37 b(ho)m(w)h(argumen)m(ts)f(to)i(eac)m(h)g
+Fr(name)j Fu(should)37 b(b)s(e)g(completed.)63 b(If)38
+b(the)f Ft(-p)g Fu(option)630 2089 y(is)30 b(supplied,)e(or)i(if)g(no)f
+(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s
+(eci\014cations)g(are)630 2198 y(prin)m(ted)24 b(in)h(a)g(w)m(a)m(y)g
+(that)h(allo)m(ws)g(them)e(to)i(b)s(e)e(reused)f(as)i(input.)38
+b(The)24 b Ft(-r)g Fu(option)i(remo)m(v)m(es)630 2308
+y(a)i(completion)h(sp)s(eci\014cation)f(for)g(eac)m(h)h
+Fr(name)p Fu(,)f(or,)h(if)e(no)h Fr(name)5 b Fu(s)27
+b(are)h(supplied,)g(all)g(com-)630 2418 y(pletion)k(sp)s
+(eci\014cations.)44 b(The)30 b Ft(-D)h Fu(option)h(indicates)g(that)f
+(the)h(remaining)f(options)h(and)630 2527 y(actions)27
+b(should)e(apply)g(to)i(the)f(\\default")h(command)e(completion;)k
+(that)e(is,)g(completion)630 2637 y(attempted)g(on)f(a)h(command)f(for)
+g(whic)m(h)g(no)g(completion)i(has)d(previously)h(b)s(een)g(de\014ned.)
+630 2746 y(The)f Ft(-E)g Fu(option)h(indicates)h(that)f(the)g
+(remaining)g(options)g(and)f(actions)i(should)e(apply)g(to)630
+2856 y(\\empt)m(y")32 b(command)e(completion;)i(that)f(is,)f
+(completion)i(attempted)f(on)g(a)f(blank)g(line.)630
+2990 y(The)f(pro)s(cess)g(of)h(applying)g(these)g(completion)g(sp)s
+(eci\014cations)h(when)d(w)m(ord)i(completion)630 3099
y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)f
-(Section)g(8.6)g([Programmable)g(Completion],)630 1638
-y(page)31 b(117\).)42 b(The)30 b(`)p Fs(-D)p Ft(')h(option)f(tak)m(es)i
-(precedence)f(o)m(v)m(er)h(`)p Fs(-E)p Ft('.)630 1772
-y(Other)41 b(options,)46 b(if)41 b(sp)s(eci\014ed,)j(ha)m(v)m(e)f(the)f
-(follo)m(wing)i(meanings.)75 b(The)41 b(argumen)m(ts)h(to)630
-1882 y(the)e(`)p Fs(-G)p Ft(',)j(`)p Fs(-W)p Ft(',)g(and)d(`)p
-Fs(-X)p Ft(')g(options)g(\(and,)j(if)d(necessary)-8 b(,)44
-b(the)c(`)p Fs(-P)p Ft(')h(and)e(`)p Fs(-S)p Ft(')h(options\))630
-1991 y(should)30 b(b)s(e)h(quoted)g(to)h(protect)g(them)f(from)g
-(expansion)g(b)s(efore)g(the)g Fs(complete)e Ft(builtin)630
-2101 y(is)h(in)m(v)m(ok)m(ed.)630 2259 y Fs(-o)g Fi(comp-option)1110
-2369 y Ft(The)c Fq(comp-option)i Ft(con)m(trols)g(sev)m(eral)h(asp)s
-(ects)e(of)g(the)g(compsp)s(ec's)g(b)s(eha)m(v-)1110
-2478 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h(generation)h(of)e
-(completions.)41 b Fq(comp-option)27 b Ft(ma)m(y)1110
-2588 y(b)s(e)j(one)g(of:)1110 2746 y Fs(bashdefault)1590
-2856 y Ft(P)m(erform)d(the)h(rest)f(of)h(the)g(default)f(Bash)h
-(completions)g(if)g(the)1590 2966 y(compsp)s(ec)i(generates)i(no)e
-(matc)m(hes.)1110 3124 y Fs(default)144 b Ft(Use)22 b(Readline's)g
-(default)g(\014lename)g(completion)g(if)g(the)g(comp-)1590
-3233 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
-3392 y Fs(dirnames)96 b Ft(P)m(erform)46 b(directory)g(name)h
-(completion)g(if)f(the)g(compsp)s(ec)1590 3501 y(generates)32
-b(no)e(matc)m(hes.)1110 3660 y Fs(filenames)1590 3769
-y Ft(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
-(\014lenames,)1590 3879 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
-(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590
-3988 y(adding)d(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s
-(ecial)g(c)m(har-)1590 4098 y(acters,)39 b(or)d(suppressing)f(trailing)
-i(spaces\).)59 b(This)35 b(option)i(is)1590 4208 y(in)m(tended)30
-b(to)g(b)s(e)g(used)f(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with)
-1590 4317 y(`)p Fs(-F)p Ft('.)1110 4475 y Fs(nospace)144
-b Ft(T)-8 b(ell)40 b(Readline)g(not)g(to)g(app)s(end)d(a)j(space)g
-(\(the)f(default\))h(to)1590 4585 y(w)m(ords)30 b(completed)h(at)g(the)
-g(end)f(of)g(the)h(line.)1110 4743 y Fs(plusdirs)96 b
-Ft(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d(b)m(y)i(the)g(compsp)s
-(ec)g(are)g(gener-)1590 4853 y(ated,)g(directory)f(name)g(completion)i
-(is)d(attempted)i(and)f(an)m(y)1590 4963 y(matc)m(hes)j(are)e(added)g
-(to)h(the)g(results)f(of)g(the)h(other)g(actions.)630
-5121 y Fs(-A)f Fi(action)1110 5230 y Ft(The)25 b Fq(action)h
-Ft(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e(generate)i(a)e
-(list)h(of)f(p)s(ossible)1110 5340 y(completions:)p eop
-end
-%%Page: 121 127
-TeXDict begin 121 126 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(121)1110 299 y Fs(alias)240
-b Ft(Alias)31 b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f
-(as)i(`)p Fs(-a)p Ft('.)1110 461 y Fs(arrayvar)96 b Ft(Arra)m(y)31
-b(v)-5 b(ariable)31 b(names.)1110 623 y Fs(binding)144
-b Ft(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h
-([Bindable)1590 732 y(Readline)h(Commands],)f(page)h(108\).)1110
-894 y Fs(builtin)144 b Ft(Names)21 b(of)g(shell)f(builtin)h(commands.)
-37 b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 1004
-y(as)31 b(`)p Fs(-b)p Ft('.)1110 1166 y Fs(command)144
-b Ft(Command)29 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
-(eci\014ed)f(as)i(`)p Fs(-c)p Ft('.)1110 1328 y Fs(directory)1590
-1438 y Ft(Directory)h(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s
-(eci\014ed)g(as)g(`)p Fs(-d)p Ft('.)1110 1600 y Fs(disabled)96
-b Ft(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110
-1762 y Fs(enabled)144 b Ft(Names)31 b(of)g(enabled)f(shell)g(builtins.)
-1110 1924 y Fs(export)192 b Ft(Names)34 b(of)f(exp)s(orted)f(shell)h(v)
--5 b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
-2033 y(\014ed)d(as)g(`)p Fs(-e)p Ft('.)1110 2195 y Fs(file)288
-b Ft(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i(`)p Fs(-f)p Ft('.)1110 2357 y Fs(function)96 b
-Ft(Names)31 b(of)g(shell)f(functions.)1110 2519 y Fs(group)240
-b Ft(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
-(as)g(`)p Fs(-g)p Ft('.)1110 2681 y Fs(helptopic)1590
-2791 y Ft(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
-Fs(help)f Ft(builtin)g(\(see)h(Sec-)1590 2900 y(tion)31
-b(4.2)g([Bash)g(Builtins],)g(page)g(43\).)1110 3062 y
-Fs(hostname)96 b Ft(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
-(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 3172 y(the)55 b
-Fs(HOSTFILE)e Ft(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
-([Bash)1590 3282 y(V)-8 b(ariables],)32 b(page)f(63\).)1110
-3444 y Fs(job)336 b Ft(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
+(Section)g(8.6)g([Programmable)g(Completion],)630 3209
+y(page)31 b(124\).)42 b(The)30 b Ft(-D)g Fu(option)h(tak)m(es)h
+(precedence)f(o)m(v)m(er)g Ft(-E)p Fu(.)630 3343 y(Other)d(options,)i
+(if)f(sp)s(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i(meanings.)40
+b(The)29 b(argumen)m(ts)g(to)h(the)630 3453 y Ft(-G)p
+Fu(,)41 b Ft(-W)p Fu(,)h(and)c Ft(-X)h Fu(options)h(\(and,)h(if)f
+(necessary)-8 b(,)42 b(the)e Ft(-P)f Fu(and)f Ft(-S)h
+Fu(options\))h(should)f(b)s(e)630 3562 y(quoted)28 b(to)h(protect)g
+(them)f(from)f(expansion)h(b)s(efore)g(the)g Ft(complete)e
+Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 3720 y Ft(-o)i
+Fj(comp-option)1110 3830 y Fu(The)c Fr(comp-option)i
+Fu(con)m(trols)g(sev)m(eral)h(asp)s(ects)e(of)g(the)g(compsp)s(ec's)g
+(b)s(eha)m(v-)1110 3940 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
+(generation)h(of)e(completions.)41 b Fr(comp-option)27
+b Fu(ma)m(y)1110 4049 y(b)s(e)j(one)g(of:)1110 4208 y
+Ft(bashdefault)1590 4317 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
+(default)f(Bash)h(completions)g(if)g(the)1590 4427 y(compsp)s(ec)i
+(generates)i(no)e(matc)m(hes.)1110 4585 y Ft(default)144
+b Fu(Use)22 b(Readline's)g(default)g(\014lename)g(completion)g(if)g
+(the)g(comp-)1590 4695 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
+4853 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
+(completion)g(if)f(the)g(compsp)s(ec)1590 4963 y(generates)32
+b(no)e(matc)m(hes.)1110 5121 y Ft(filenames)1590 5230
+y Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
+(\014lenames,)1590 5340 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
+(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)p
+eop end
+%%Page: 128 134
+TeXDict begin 128 133 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(128)1590 299 y(adding)25
+b(a)h(slash)f(to)h(directory)g(names)f(quoting)h(sp)s(ecial)g(c)m(har-)
+1590 408 y(acters,)39 b(or)d(suppressing)f(trailing)i(spaces\).)59
+b(This)35 b(option)i(is)1590 518 y(in)m(tended)30 b(to)g(b)s(e)g(used)f
+(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with)1590
+628 y Ft(-F)p Fu(.)1110 787 y Ft(noquote)144 b Fu(T)-8
+b(ell)28 b(Readline)g(not)g(to)g(quote)g(the)g(completed)g(w)m(ords)f
+(if)h(they)1590 896 y(are)j(\014lenames)f(\(quoting)h(\014lenames)g(is)
+f(the)h(default\).)1110 1055 y Ft(nospace)144 b Fu(T)-8
+b(ell)40 b(Readline)g(not)g(to)g(app)s(end)d(a)j(space)g(\(the)f
+(default\))h(to)1590 1165 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f
+(of)g(the)h(line.)1110 1324 y Ft(plusdirs)96 b Fu(After)30
+b(an)m(y)h(matc)m(hes)g(de\014ned)d(b)m(y)i(the)g(compsp)s(ec)g(are)g
+(gener-)1590 1433 y(ated,)g(directory)f(name)g(completion)i(is)d
+(attempted)i(and)f(an)m(y)1590 1543 y(matc)m(hes)j(are)e(added)g(to)h
+(the)g(results)f(of)g(the)h(other)g(actions.)630 1702
+y Ft(-A)f Fj(action)66 b Fu(The)25 b Fr(action)h Fu(ma)m(y)g(b)s(e)e
+(one)h(of)h(the)f(follo)m(wing)i(to)e(generate)i(a)e(list)h(of)f(p)s
+(ossible)1110 1811 y(completions:)1110 1970 y Ft(alias)240
+b Fu(Alias)31 b(names.)41 b(Ma)m(y)31 b(also)h(b)s(e)e(sp)s(eci\014ed)f
+(as)i Ft(-a)p Fu(.)1110 2129 y Ft(arrayvar)96 b Fu(Arra)m(y)31
+b(v)-5 b(ariable)31 b(names.)1110 2288 y Ft(binding)144
+b Fu(Readline)30 b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h
+([Bindable)1590 2398 y(Readline)h(Commands],)f(page)h(115\).)1110
+2556 y Ft(builtin)144 b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)
+37 b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 2666
+y(as)31 b Ft(-b)p Fu(.)1110 2825 y Ft(command)144 b Fu(Command)29
+b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i
+Ft(-c)p Fu(.)1110 2984 y Ft(directory)1590 3093 y Fu(Directory)h
+(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g
+Ft(-d)p Fu(.)1110 3252 y Ft(disabled)96 b Fu(Names)31
+b(of)g(disabled)f(shell)g(builtins.)1110 3411 y Ft(enabled)144
+b Fu(Names)31 b(of)g(enabled)f(shell)g(builtins.)1110
+3570 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)-5
+b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
+3680 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 3839 y Ft(file)288
+b Fu(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
+(as)i Ft(-f)p Fu(.)1110 3998 y Ft(function)96 b Fu(Names)31
+b(of)g(shell)f(functions.)1110 4156 y Ft(group)240 b
+Fu(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
+(as)g Ft(-g)p Fu(.)1110 4315 y Ft(helptopic)1590 4425
+y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
+Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 4534 y(tion)31
+b(4.2)g([Bash)g(Builtins],)g(page)g(48\).)1110 4693 y
+Ft(hostname)96 b Fu(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
+(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 4803 y(the)55 b
+Ft(HOSTFILE)e Fu(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
+([Bash)1590 4913 y(V)-8 b(ariables],)32 b(page)f(69\).)1110
+5071 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
-3553 y(\014ed)f(as)g(`)p Fs(-j)p Ft('.)1110 3715 y Fs(keyword)144
-b Ft(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
-b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i(`)p Fs(-k)p Ft('.)1110
-3877 y Fs(running)144 b Ft(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
-(con)m(trol)h(is)g(activ)m(e.)1110 4039 y Fs(service)144
-b Ft(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
-(eci\014ed)g(as)g(`)p Fs(-s)p Ft('.)1110 4201 y Fs(setopt)192
-b Ft(V)-8 b(alid)34 b(argumen)m(ts)f(for)f(the)h(`)p
-Fs(-o)p Ft(')g(option)g(to)h(the)f Fs(set)e Ft(builtin)1590
-4311 y(\(see)g(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(54\).)
-1110 4473 y Fs(shopt)240 b Ft(Shell)40 b(option)g(names)g(as)g
-(accepted)i(b)m(y)e(the)g Fs(shopt)e Ft(builtin)1590
-4582 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(43\).)
-1110 4744 y Fs(signal)192 b Ft(Signal)31 b(names.)1110
-4906 y Fs(stopped)144 b Ft(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
-(job)g(con)m(trol)i(is)f(activ)m(e.)1110 5068 y Fs(user)288
-b Ft(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i(`)p Fs(-u)p Ft('.)1110 5230 y Fs(variable)96 b
-Ft(Names)36 b(of)g(all)g(shell)g(v)-5 b(ariables.)56
-b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590
-5340 y(`)p Fs(-v)p Ft('.)p eop end
-%%Page: 122 128
-TeXDict begin 122 127 bop 150 -116 a Ft(122)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y Fs(-C)f Fi(command)1110
-408 y Fq(command)35 b Ft(is)e(executed)g(in)e(a)i(subshell)e(en)m
-(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 518 y(used)e(as)g(the)h
-(p)s(ossible)f(completions.)630 674 y Fs(-F)g Fi(function)1110
-783 y Ft(The)25 b(shell)i(function)e Fq(function)h Ft(is)g(executed)h
-(in)e(the)i(curren)m(t)e(shell)i(en)m(viron-)1110 893
-y(men)m(t.)40 b(When)25 b(it)h(\014nishes,)f(the)h(p)s(ossible)f
-(completions)h(are)g(retriev)m(ed)g(from)1110 1003 y(the)31
-b(v)-5 b(alue)30 b(of)h(the)g Fs(COMPREPLY)c Ft(arra)m(y)k(v)-5
-b(ariable.)630 1158 y Fs(-G)30 b Fi(globpat)1110 1268
-y Ft(The)39 b(\014lename)h(expansion)g(pattern)g Fq(globpat)j
-Ft(is)d(expanded)f(to)h(generate)1110 1377 y(the)31 b(p)s(ossible)e
-(completions.)630 1533 y Fs(-P)h Fi(prefix)1110 1643
-y Fq(pre\014x)39 b Ft(is)34 b(added)f(at)i(the)f(b)s(eginning)f(of)i
-(eac)m(h)g(p)s(ossible)e(completion)i(after)1110 1752
-y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
-1908 y Fs(-S)g Fi(suffix)1110 2018 y Fq(su\016x)c Ft(is)20
+5181 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 5340 y Ft(keyword)144
+b Fu(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
+b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-k)p Fu(.)p
+eop end
+%%Page: 129 135
+TeXDict begin 129 134 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(129)1110 299 y Ft(running)144
+b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f(con)m(trol)h(is)g
+(activ)m(e.)1110 463 y Ft(service)144 b Fu(Service)31
+b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s(eci\014ed)g(as)g
+Ft(-s)p Fu(.)1110 628 y Ft(setopt)192 b Fu(V)-8 b(alid)39
+b(argumen)m(ts)g(for)f(the)h Ft(-o)e Fu(option)i(to)g(the)g
+Ft(set)e Fu(builtin)1590 737 y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)
+g(Builtin],)i(page)f(58\).)1110 902 y Ft(shopt)240 b
+Fu(Shell)40 b(option)g(names)g(as)g(accepted)i(b)m(y)e(the)g
+Ft(shopt)e Fu(builtin)1590 1011 y(\(see)31 b(Section)h(4.2)f([Bash)g
+(Builtins],)g(page)g(48\).)1110 1176 y Ft(signal)192
+b Fu(Signal)31 b(names.)1110 1340 y Ft(stopped)144 b
+Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g(job)g(con)m(trol)i(is)f
+(activ)m(e.)1110 1504 y Ft(user)288 b Fu(User)30 b(names.)41
+b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-u)p
+Fu(.)1110 1669 y Ft(variable)96 b Fu(Names)36 b(of)g(all)g(shell)g(v)-5
+b(ariables.)56 b(Ma)m(y)37 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590
+1778 y Ft(-v)p Fu(.)630 1943 y Ft(-C)30 b Fj(command)1110
+2052 y Fr(command)35 b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m
+(vironmen)m(t,)i(and)f(its)g(output)g(is)1110 2162 y(used)e(as)g(the)h
+(p)s(ossible)f(completions.)630 2326 y Ft(-F)g Fj(function)1110
+2436 y Fu(The)39 b(shell)g(function)g Fr(function)g Fu(is)g(executed)h
+(in)f(the)g(curren)m(t)g(shell)g(en)m(vi-)1110 2545 y(ronmen)m(t.)72
+b(When)41 b(it)g(is)g(executed,)k($1)c(is)g(the)g(name)g(of)g(the)g
+(command)1110 2655 y(whose)34 b(argumen)m(ts)h(are)g(b)s(eing)f
+(completed,)j($2)e(is)f(the)h(w)m(ord)f(b)s(eing)g(com-)1110
+2765 y(pleted,)44 b(and)c($3)i(is)e(the)h(w)m(ord)g(preceding)f(the)h
+(w)m(ord)f(b)s(eing)h(completed,)1110 2874 y(as)g(describ)s(ed)f(ab)s
+(o)m(v)m(e)i(\(see)g(Section)f(8.6)h([Programmable)g(Completion],)1110
+2984 y(page)30 b(124\).)42 b(When)29 b(it)h(\014nishes,)e(the)h(p)s
+(ossible)g(completions)h(are)g(retriev)m(ed)1110 3093
+y(from)g(the)g(v)-5 b(alue)31 b(of)g(the)f Ft(COMPREPLY)e
+Fu(arra)m(y)j(v)-5 b(ariable.)630 3258 y Ft(-G)30 b Fj(globpat)1110
+3367 y Fu(The)39 b(\014lename)h(expansion)g(pattern)g
+Fr(globpat)j Fu(is)d(expanded)f(to)h(generate)1110 3477
+y(the)31 b(p)s(ossible)e(completions.)630 3641 y Ft(-P)h
+Fj(prefix)66 b Fr(pre\014x)39 b Fu(is)34 b(added)f(at)i(the)f(b)s
+(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110
+3751 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
+3915 y Ft(-S)g Fj(suffix)66 b Fr(su\016x)26 b Fu(is)20
b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g
-(other)g(options)1110 2127 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
-2283 y Fs(-W)h Fi(wordlist)1110 2393 y Ft(The)24 b Fq(w)m(ordlist)k
-Ft(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i
-Fs(IFS)e Ft(sp)s(ecial)h(v)-5 b(ariable)1110 2502 y(as)36
+(other)g(options)1110 4025 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
+4189 y Ft(-W)h Fj(wordlist)1110 4299 y Fu(The)24 b Fr(w)m(ordlist)k
+Fu(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i
+Ft(IFS)e Fu(sp)s(ecial)h(v)-5 b(ariable)1110 4408 y(as)36
b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
-(expanded.)57 b(The)35 b(p)s(ossible)1110 2612 y(completions)c(are)e
+(expanded.)57 b(The)35 b(p)s(ossible)1110 4518 y(completions)c(are)e
(the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f
-(matc)m(h)i(the)1110 2721 y(w)m(ord)f(b)s(eing)g(completed.)630
-2877 y Fs(-X)g Fi(filterpat)1110 2987 y Fq(\014lterpat)d
-Ft(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38
-b(It)25 b(is)g(applied)f(to)1110 3096 y(the)30 b(list)f(of)h(p)s
+(matc)m(h)i(the)1110 4628 y(w)m(ord)f(b)s(eing)g(completed.)630
+4792 y Ft(-X)g Fj(filterpat)1110 4902 y Fr(\014lterpat)d
+Fu(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38
+b(It)25 b(is)g(applied)f(to)1110 5011 y(the)30 b(list)f(of)h(p)s
(ossible)f(completions)h(generated)h(b)m(y)e(the)g(preceding)h(options)
-1110 3206 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
-(hing)g Fq(\014lterpat)h Ft(is)e(remo)m(v)m(ed)1110 3315
-y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Fs(!)p
-Ft(')e(in)g Fq(\014lterpat)j Ft(negates)f(the)f(pattern;)g(in)f(this)
-1110 3425 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
-Fq(\014lterpat)i Ft(is)d(remo)m(v)m(ed.)630 3581 y(The)35
+1110 5121 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
+(hing)g Fr(\014lterpat)h Fu(is)e(remo)m(v)m(ed)1110 5230
+y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Ft(!)p
+Fu(')e(in)g Fr(\014lterpat)j Fu(negates)f(the)f(pattern;)g(in)f(this)
+1110 5340 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
+Fr(\014lterpat)i Fu(is)d(remo)m(v)m(ed.)p eop end
+%%Page: 130 136
+TeXDict begin 130 135 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(130)630 299 y(The)35
b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h(an)f(in)m(v)-5
b(alid)37 b(option)f(is)g(supplied,)g(an)g(option)h(other)630
-3690 y(than)31 b(`)p Fs(-p)p Ft(')g(or)g(`)p Fs(-r)p
-Ft(')g(is)g(supplied)f(without)h(a)g Fq(name)37 b Ft(argumen)m(t,)32
-b(an)f(attempt)h(is)f(made)g(to)630 3800 y(remo)m(v)m(e)h(a)e
-(completion)i(sp)s(eci\014cation)f(for)f(a)h Fq(name)k
-Ft(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)630
-3910 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
-(eci\014cation.)150 4065 y Fs(compopt)870 4198 y(compopt)46
-b([-o)h Fi(option)11 b Fs(])45 b([-DE])h([+o)h Fi(option)11
-b Fs(])46 b([)p Fi(name)11 b Fs(])630 4331 y Ft(Mo)s(dify)33
-b(completion)h(options)g(for)f(eac)m(h)h Fq(name)39 b
-Ft(according)34 b(to)g(the)f Fq(option)p Ft(s,)i(or)e(for)g(the)630
-4440 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
-Fq(name)5 b Ft(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
-Fq(option)p Ft(s)h(are)630 4550 y(giv)m(en,)30 b(displa)m(y)e(the)g
-(completion)h(options)g(for)e(eac)m(h)i Fq(name)34 b
-Ft(or)27 b(the)i(curren)m(t)e(completion.)630 4659 y(The)f(p)s(ossible)
-g(v)-5 b(alues)27 b(of)f Fq(option)h Ft(are)g(those)g(v)-5
-b(alid)26 b(for)g(the)h Fs(complete)d Ft(builtin)i(describ)s(ed)630
-4769 y(ab)s(o)m(v)m(e.)40 b(The)23 b(`)p Fs(-D)p Ft(')i(option)f
-(indicates)h(that)g(the)f(remaining)g(options)h(should)e(apply)h(to)h
-(the)630 4879 y(\\default")33 b(command)f(completion;)i(that)f(is,)g
-(completion)g(attempted)g(on)f(a)g(command)630 4988 y(for)c(whic)m(h)f
-(no)h(completion)h(has)f(previously)g(b)s(een)f(de\014ned.)38
-b(The)28 b(`)p Fs(-E)p Ft(')g(option)g(indicates)630
-5098 y(that)c(the)g(remaining)g(options)g(should)e(apply)h(to)i(\\empt)
-m(y")g(command)e(completion;)k(that)630 5207 y(is,)k(completion)g
-(attempted)h(on)e(a)h(blank)f(line.)630 5340 y(The)g(`)p
-Fs(-D)p Ft(')g(option)h(tak)m(es)h(precedence)f(o)m(v)m(er)g(`)p
-Fs(-E)p Ft('.)p eop end
-%%Page: 123 129
-TeXDict begin 123 128 bop 150 -116 a Ft(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(123)630 299 y(The)23
+408 y(than)h Ft(-p)g Fu(or)g Ft(-r)f Fu(is)h(supplied)f(without)i(a)f
+Fr(name)44 b Fu(argumen)m(t,)c(an)e(attempt)i(is)e(made)g(to)630
+518 y(remo)m(v)m(e)32 b(a)e(completion)i(sp)s(eci\014cation)f(for)f(a)h
+Fr(name)k Fu(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)630
+628 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
+(eci\014cation.)150 789 y Ft(compopt)870 924 y(compopt)46
+b([-o)h Fj(option)p Ft(])f([-DE])g([+o)h Fj(option)p
+Ft(])f([)p Fj(name)p Ft(])630 1060 y Fu(Mo)s(dify)33
+b(completion)h(options)g(for)f(eac)m(h)h Fr(name)39 b
+Fu(according)34 b(to)g(the)f Fr(option)p Fu(s,)i(or)e(for)g(the)630
+1170 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
+Fr(name)5 b Fu(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
+Fr(option)p Fu(s)h(are)630 1279 y(giv)m(en,)30 b(displa)m(y)e(the)g
+(completion)h(options)g(for)e(eac)m(h)i Fr(name)34 b
+Fu(or)27 b(the)i(curren)m(t)e(completion.)630 1389 y(The)f(p)s(ossible)
+g(v)-5 b(alues)27 b(of)f Fr(option)h Fu(are)g(those)g(v)-5
+b(alid)26 b(for)g(the)h Ft(complete)d Fu(builtin)i(describ)s(ed)630
+1498 y(ab)s(o)m(v)m(e.)41 b(The)28 b Ft(-D)g Fu(option)h(indicates)h
+(that)f(the)g(remaining)g(options)g(should)e(apply)h(to)i(the)630
+1608 y(\\default")j(command)f(completion;)i(that)f(is,)g(completion)g
+(attempted)g(on)f(a)g(command)630 1717 y(for)g(whic)m(h)g(no)g
+(completion)i(has)e(previously)g(b)s(een)g(de\014ned.)45
+b(The)32 b Ft(-E)f Fu(option)i(indicates)630 1827 y(that)24
+b(the)g(remaining)g(options)g(should)e(apply)h(to)i(\\empt)m(y")g
+(command)e(completion;)k(that)630 1937 y(is,)k(completion)g(attempted)h
+(on)e(a)h(blank)f(line.)630 2072 y(The)g Ft(-D)g Fu(option)g(tak)m(es)i
+(precedence)f(o)m(v)m(er)h Ft(-E)p Fu(.)630 2208 y(The)23
b(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h(in)m(v)-5
b(alid)24 b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f(made)630
-408 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h Fq(name)k
-Ft(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f(exists,)
-630 518 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p eop
-end
-%%Page: 124 130
-TeXDict begin 124 129 bop eop end
-%%Page: 125 131
-TeXDict begin 125 130 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(125)150
-299 y Fo(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
-572 y Ft(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)
-f Fl(gnu)h Ft(History)g(Library)e(in)m(teractiv)m(ely)-8
-b(,)50 b(from)42 b(a)h(user's)150 681 y(standp)s(oin)m(t.)76
+2317 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+Fr(name)k Fu(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
+(exists,)630 2427 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150
+2662 y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
+2822 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h
+(additional)g(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i
+(default)150 2931 y(actions)29 b Ft(complete)d Fu(and)i
+Ft(compgen)e Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g
+(and)g(bind)e(it)j(to)g(a)g(particular)150 3041 y(command)h(using)g
+Ft(complete)e(-F)p Fu(.)275 3177 y(The)j(follo)m(wing)j(function)e(pro)
+m(vides)g(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46
+b(It)32 b(is)h(a)f(reasonably)h(go)s(o)s(d)150 3287 y(example)e(of)f
+(what)g(shell)g(functions)g(m)m(ust)f(do)h(when)f(used)h(for)f
+(completion.)42 b(This)29 b(function)h(uses)g(the)150
+3396 y(w)m(ord)38 b(passsed)g(as)h Ft($2)g Fu(to)g(determine)g(the)g
+(directory)g(name)g(to)g(complete.)67 b(Y)-8 b(ou)40
+b(can)f(also)g(use)g(the)150 3506 y Ft(COMP_WORDS)28
+b Fu(arra)m(y)i(v)-5 b(ariable;)32 b(the)e(curren)m(t)h(w)m(ord)f(is)g
+(indexed)g(b)m(y)g(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)275
+3642 y(The)42 b(function)h(relies)h(on)e(the)i Ft(complete)c
+Fu(and)j Ft(compgen)e Fu(builtins)h(to)i(do)f(m)m(uc)m(h)g(of)g(the)h
+(w)m(ork,)150 3752 y(adding)25 b(only)h(the)g(things)g(that)g(the)g
+(Bash)g Ft(cd)f Fu(do)s(es)g(b)s(ey)m(ond)g(accepting)j(basic)e
+(directory)g(names:)38 b(tilde)150 3862 y(expansion)22
+b(\(see)h(Section)g(3.5.2)g([Tilde)g(Expansion],)g(page)g(22\),)i
+(searc)m(hing)e(directories)g(in)e Fr($CDP)-8 b(A)g(TH)p
+Fu(,)150 3971 y(whic)m(h)21 b(is)h(describ)s(ed)e(ab)s(o)m(v)m(e)j
+(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)j(page)e(41\),)j
+(and)c(basic)h(supp)s(ort)150 4081 y(for)31 b(the)h Ft(cdable_vars)d
+Fu(shell)i(option)h(\(see)h(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)
+i(page)f(62\).)46 b Ft(_comp_)150 4190 y(cd)30 b Fu(mo)s(di\014es)g
+(the)h(v)-5 b(alue)31 b(of)g Fr(IFS)36 b Fu(so)31 b(that)g(it)g(con)m
+(tains)h(only)f(a)g(newline)g(to)h(accommo)s(date)g(\014le)f(names)150
+4300 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
+Fu(prin)m(ts)h(the)h(p)s(ossible)f(completions)i(it)g(generates)g(one)f
+(p)s(er)150 4410 y(line.)275 4546 y(P)m(ossible)24 b(completions)h(go)g
+(in)m(to)g(the)f Fr(COMPREPL)-8 b(Y)36 b Fu(arra)m(y)24
+b(v)-5 b(ariable,)26 b(one)e(completion)i(p)s(er)c(arra)m(y)150
+4656 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
+(retriev)m(es)h(the)g(completions)g(from)f(there)g(when)150
+4765 y(the)h(function)f(returns.)390 4902 y Ft(#)47 b(A)h(completion)d
+(function)g(for)i(the)g(cd)g(builtin)390 5011 y(#)g(based)g(on)g(the)g
+(cd)g(completion)e(function)h(from)g(the)h(bash_completion)d(package)
+390 5121 y(_comp_cd\(\))390 5230 y({)581 5340 y(local)i(IFS=$')g
+(\\t\\n')190 b(#)47 b(normalize)f(IFS)p eop end
+%%Page: 131 137
+TeXDict begin 131 136 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(131)581 299 y Ft(local)46
+b(cur)h(_skipdot)f(_cdpath)581 408 y(local)g(i)i(j)f(k)581
+628 y(#)g(Tilde)g(expansion,)e(with)h(side)h(effect)f(of)h(expanding)f
+(tilde)g(to)h(full)g(pathname)581 737 y(case)g("$2")f(in)581
+847 y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 956 y(*\))286
+b(cur=$2)46 b(;;)581 1066 y(esac)581 1285 y(#)h(no)h(cdpath)e(or)h
+(absolute)e(pathname)h(--)h(straight)f(directory)f(completion)581
+1395 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
+(@\(./*|../*|/*\))d(]];)j(then)772 1504 y(#)g(compgen)f(prints)g(paths)
+h(one)f(per)h(line;)g(could)f(also)h(use)g(while)f(loop)772
+1614 y(IFS=$'\\n')772 1724 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
+("$cur"\))f(\))772 1833 y(IFS=$')g(\\t\\n')581 1943 y(#)h
+(CDPATH+directories)c(in)k(the)g(current)f(directory)f(if)j(not)e(in)i
+(CDPATH)581 2052 y(else)772 2162 y(IFS=$'\\n')772 2271
+y(_skipdot=false)772 2381 y(#)f(preprocess)e(CDPATH)h(to)i(convert)d
+(null)i(directory)e(names)i(to)g(.)772 2491 y(_cdpath=${CDPATH/#:/.:})
+772 2600 y(_cdpath=${_cdpath//::/:.)o(:})772 2710 y
+(_cdpath=${_cdpath/\045:/:.})772 2819 y(for)g(i)g(in)g
+(${_cdpath//:/$'\\n'};)c(do)963 2929 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
+(then)f(_skipdot=true;)e(fi)963 3039 y(k="${#COMPREPLY[@]}")963
+3148 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
+1154 3258 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
+963 3367 y(done)772 3477 y(done)772 3587 y($_skipdot)f(||)i
+(COMPREPLY+=\()e($\(compgen)g(-d)i(--)g("$cur"\))f(\))772
+3696 y(IFS=$')g(\\t\\n')581 3806 y(fi)581 4025 y(#)h(variable)f(names)g
+(if)h(appropriate)e(shell)i(option)f(set)h(and)f(no)i(completions)581
+4134 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c
+(-eq)k(0)g(]];)g(then)772 4244 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
+("$cur"\))f(\))581 4354 y(fi)581 4573 y(return)g(0)390
+4682 y(})275 4902 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
+(function)e(using)f(the)i Ft(-F)f Fu(option)h(to)g Ft(complete)p
+Fu(:)390 5121 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
+(and)i(append)f(slashes)g(to)h(directories;)390 5230
+y(#)g(use)g(the)g(bash)g(default)f(completion)f(for)i(other)f
+(arguments)390 5340 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
+(bashdefault)e(-F)i(_comp_cd)f(cd)p eop end
+%%Page: 132 138
+TeXDict begin 132 137 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(132)150 299 y(Since)33
+b(w)m(e'd)g(lik)m(e)i(Bash)e(and)f(Readline)i(to)g(tak)m(e)g(care)g(of)
+f(some)h(of)f(the)g(other)h(details)g(for)e(us,)i(w)m(e)f(use)150
+408 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
+(Readline)i(what)f(to)g(do.)76 b(The)41 b Ft(-o)30 b(filenames)39
+b Fu(option)150 518 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
+(completions)h(should)f(b)s(e)f(treated)i(as)g(\014lenames,)i(and)d
+(quoted)150 628 y(appropriately)-8 b(.)53 b(That)34 b(option)h(will)g
+(also)g(cause)g(Readline)g(to)g(app)s(end)e(a)h(slash)g(to)h
+(\014lenames)g(it)g(can)150 737 y(determine)i(are)g(directories)h
+(\(whic)m(h)g(is)f(wh)m(y)f(w)m(e)i(migh)m(t)f(w)m(an)m(t)h(to)g
+(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 847
+y(slash)22 b(if)g(w)m(e're)h(using)f(directories)h(found)e(via)i
+Fr(CDP)-8 b(A)g(TH)10 b Fu(:)37 b(Readline)23 b(can't)g(tell)g(those)g
+(completions)h(are)150 956 y(directories\).)45 b(The)31
+b Ft(-o)f(nospace)f Fu(option)j(tells)g(Readline)g(to)h(not)e(app)s
+(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150 1066 y(directory)c
+(name,)h(in)f(case)h(w)m(e)f(w)m(an)m(t)h(to)f(app)s(end)f(to)h(it.)41
+b(The)27 b Ft(-o)j(bashdefault)25 b Fu(option)j(brings)f(in)h(the)150
+1176 y(rest)h(of)f(the)h Ft(")p Fu(Bash)f(default)p Ft(")h
+Fu(completions)g({)g(p)s(ossible)f(completion)i(that)f(Bash)f(adds)g
+(to)h(the)g(default)150 1285 y(Readline)40 b(set.)68
+b(These)39 b(include)g(things)g(lik)m(e)i(command)e(name)g(completion,)
+44 b(v)-5 b(ariable)40 b(completion)150 1395 y(for)i(w)m(ords)g(b)s
+(eginning)f(with)h(`)p Ft({)p Fu(',)k(completions)e(con)m(taining)f
+(pathname)g(expansion)f(patterns)g(\(see)150 1504 y(Section)31
+b(3.5.8)h([Filename)g(Expansion],)e(page)i(30\),)f(and)f(so)h(on.)275
+1639 y(Once)39 b(installed)i(using)e Ft(complete)p Fu(,)h
+Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)h(time)f(w)m(e)g
+(attempt)h(w)m(ord)150 1748 y(completion)32 b(for)e(a)h
+Ft(cd)e Fu(command.)275 1883 y(Man)m(y)34 b(more)g(examples)g({)g(an)g
+(extensiv)m(e)h(collection)i(of)c(completions)i(for)f(most)g(of)g(the)g
+(common)150 1993 y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g
+(a)m(v)-5 b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p
+2943 1993 28 4 v 39 w(completion)i(pro)5 b(ject.)150
+2102 y(This)33 b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h
+(GNU/Lin)m(ux)f(distributions.)51 b(Originally)35 b(written)f(b)m(y)g
+(Ian)150 2212 y(Macdonald,)45 b(the)c(pro)5 b(ject)42
+b(no)m(w)f(liv)m(es)i(at)f Ft(http:)9 b(/)g(/)e(bash-completio)o(n)i(.)
+e(a)o(lio)o(th)i(.)d(debi)o(an)j(.)d(org)i(/)f Fu(.)150
+2321 y(There)30 b(are)h(p)s(orts)e(for)h(other)h(systems)f(suc)m(h)g
+(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275 2456 y(An)54
+b(older)h(v)m(ersion)h(of)f(the)g(bash)p 1532 2456 V
+40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f(with)h(bash)
+f(in)h(the)150 2565 y Ft(examples/complete)26 b Fu(sub)s(directory)-8
+b(.)p eop end
+%%Page: 133 139
+TeXDict begin 133 138 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(133)150
+299 y Fp(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
+543 y Fu(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)
+f Fm(gnu)h Fu(History)g(Library)e(in)m(teractiv)m(ely)-8
+b(,)50 b(from)42 b(a)h(user's)150 653 y(standp)s(oin)m(t.)76
b(It)42 b(should)f(b)s(e)h(considered)g(a)g(user's)g(guide.)76
-b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fl(gnu)150
-791 y Ft(History)31 b(Library)f(in)g(other)g(programs,)g(see)h(the)g
-Fl(gnu)f Ft(Readline)h(Library)f(Man)m(ual.)150 1042
-y Fr(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)150
-1202 y Ft(When)40 b(the)h(`)p Fs(-o)30 b(history)p Ft(')38
-b(option)j(to)g(the)g Fs(set)e Ft(builtin)h(is)h(enabled)f(\(see)h
-(Section)g(4.3.1)i([The)d(Set)150 1311 y(Builtin],)32
-b(page)g(54\),)h(the)e(shell)h(pro)m(vides)f(access)h(to)g(the)f
-Fq(command)g(history)p Ft(,)h(the)f(list)h(of)f(commands)150
-1421 y(previously)h(t)m(yp)s(ed.)47 b(The)33 b(v)-5 b(alue)33
-b(of)f(the)h Fs(HISTSIZE)e Ft(shell)h(v)-5 b(ariable)34
-b(is)f(used)e(as)i(the)g(n)m(um)m(b)s(er)e(of)i(com-)150
-1531 y(mands)i(to)i(sa)m(v)m(e)h(in)e(a)g(history)h(list.)58
-b(The)36 b(text)h(of)g(the)f(last)h Fs($HISTSIZE)d Ft(commands)i
-(\(default)g(500\))150 1640 y(is)h(sa)m(v)m(ed.)61 b(The)36
-b(shell)h(stores)h(eac)m(h)g(command)e(in)h(the)g(history)g(list)g
-(prior)f(to)i(parameter)f(and)f(v)-5 b(ari-)150 1750
-y(able)33 b(expansion)g(but)f(after)h(history)f(expansion)h(is)g(p)s
-(erformed,)e(sub)5 b(ject)33 b(to)g(the)g(v)-5 b(alues)33
-b(of)g(the)g(shell)150 1859 y(v)-5 b(ariables)31 b Fs(HISTIGNORE)d
-Ft(and)h Fs(HISTCONTROL)p Ft(.)275 2007 y(When)g(the)g(shell)h(starts)g
+b(F)-8 b(or)43 b(information)f(on)g(using)g(the)g Fm(gnu)150
+762 y Fu(History)31 b(Library)f(in)g(other)g(programs,)g(see)h(the)g
+Fm(gnu)f Fu(Readline)h(Library)f(Man)m(ual.)150 1000
+y Fs(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)150
+1159 y Fu(When)44 b(the)g Ft(-o)30 b(history)42 b Fu(option)i(to)h(the)
+f Ft(set)f Fu(builtin)h(is)g(enabled)g(\(see)g(Section)h(4.3.1)h([The)e
+(Set)150 1269 y(Builtin],)32 b(page)g(58\),)h(the)e(shell)h(pro)m
+(vides)f(access)h(to)g(the)f Fr(command)g(history)p Fu(,)h(the)f(list)h
+(of)f(commands)150 1378 y(previously)h(t)m(yp)s(ed.)47
+b(The)33 b(v)-5 b(alue)33 b(of)f(the)h Ft(HISTSIZE)e
+Fu(shell)h(v)-5 b(ariable)34 b(is)f(used)e(as)i(the)g(n)m(um)m(b)s(er)e
+(of)i(com-)150 1488 y(mands)i(to)i(sa)m(v)m(e)h(in)e(a)g(history)h
+(list.)58 b(The)36 b(text)h(of)g(the)f(last)h Ft($HISTSIZE)d
+Fu(commands)i(\(default)g(500\))150 1597 y(is)h(sa)m(v)m(ed.)61
+b(The)36 b(shell)h(stores)h(eac)m(h)g(command)e(in)h(the)g(history)g
+(list)g(prior)f(to)i(parameter)f(and)f(v)-5 b(ari-)150
+1707 y(able)33 b(expansion)g(but)f(after)h(history)f(expansion)h(is)g
+(p)s(erformed,)e(sub)5 b(ject)33 b(to)g(the)g(v)-5 b(alues)33
+b(of)g(the)g(shell)150 1817 y(v)-5 b(ariables)31 b Ft(HISTIGNORE)d
+Fu(and)h Ft(HISTCONTROL)p Fu(.)275 1954 y(When)g(the)g(shell)h(starts)g
(up,)f(the)h(history)f(is)h(initialized)h(from)e(the)h(\014le)f(named)g
-(b)m(y)h(the)f Fs(HISTFILE)150 2116 y Ft(v)-5 b(ariable)21
-b(\(default)h(`)p Fs(~/.bash_history)p Ft('\).)34 b(The)20
-b(\014le)h(named)f(b)m(y)h(the)g(v)-5 b(alue)21 b(of)g
-Fs(HISTFILE)d Ft(is)j(truncated,)150 2226 y(if)42 b(necessary)-8
+(b)m(y)h(the)f Ft(HISTFILE)150 2064 y Fu(v)-5 b(ariable)26
+b(\(default)g Ft(~/.bash_history)p Fu(\).)35 b(The)24
+b(\014le)i(named)e(b)m(y)h(the)h(v)-5 b(alue)25 b(of)h
+Ft(HISTFILE)c Fu(is)k(truncated,)150 2174 y(if)42 b(necessary)-8
b(,)45 b(to)e(con)m(tain)g(no)f(more)g(than)f(the)h(n)m(um)m(b)s(er)f
(of)h(lines)g(sp)s(eci\014ed)f(b)m(y)h(the)g(v)-5 b(alue)42
-b(of)g(the)150 2336 y Fs(HISTFILESIZE)21 b Ft(v)-5 b(ariable.)40
-b(When)24 b(an)g(in)m(teractiv)m(e)j(shell)e(exits,)h(the)f(last)g
-Fs($HISTSIZE)d Ft(lines)j(are)f(copied)150 2445 y(from)29
-b(the)i(history)e(list)i(to)g(the)f(\014le)g(named)f(b)m(y)h
-Fs($HISTFILE)p Ft(.)38 b(If)30 b(the)g Fs(histappend)d
-Ft(shell)j(option)g(is)g(set)150 2555 y(\(see)22 b(Section)g(4.2)g
-([Bash)g(Builtins],)h(page)f(43\),)j(the)c(lines)g(are)h(app)s(ended)d
-(to)j(the)f(history)g(\014le,)j(otherwise)150 2664 y(the)32
-b(history)f(\014le)g(is)h(o)m(v)m(erwritten.)45 b(If)31
-b Fs(HISTFILE)e Ft(is)j(unset,)f(or)h(if)f(the)h(history)f(\014le)g(is)
-h(un)m(writable,)g(the)150 2774 y(history)37 b(is)h(not)f(sa)m(v)m(ed.)
-63 b(After)38 b(sa)m(ving)g(the)f(history)-8 b(,)40 b(the)e(history)f
-(\014le)g(is)h(truncated)f(to)h(con)m(tain)h(no)150 2883
-y(more)31 b(than)f Fs($HISTFILESIZE)c Ft(lines.)41 b(If)30
-b Fs(HISTFILESIZE)d Ft(is)k(not)f(set,)h(no)g(truncation)f(is)h(p)s
-(erformed.)275 3031 y(If)g(the)h Fs(HISTTIMEFORMAT)d
-Ft(is)j(set,)h(the)f(time)h(stamp)f(information)g(asso)s(ciated)i(with)
-e(eac)m(h)h(history)150 3140 y(en)m(try)d(is)h(written)f(to)h(the)f
+b(of)g(the)150 2283 y Ft(HISTFILESIZE)28 b Fu(v)-5 b(ariable.)46
+b(When)31 b(a)h(shell)g(with)g(history)f(enabled)h(exits,)h(the)f(last)
+h Ft($HISTSIZE)c Fu(lines)150 2393 y(are)35 b(copied)g(from)g(the)g
+(history)f(list)i(to)f(the)g(\014le)g(named)f(b)m(y)h
+Ft($HISTFILE)p Fu(.)51 b(If)35 b(the)g Ft(histappend)d
+Fu(shell)150 2502 y(option)26 b(is)g(set)g(\(see)h(Section)f(4.2)h
+([Bash)f(Builtins],)h(page)g(48\),)h(the)e(lines)g(are)g(app)s(ended)e
+(to)i(the)g(history)150 2612 y(\014le,)36 b(otherwise)f(the)g(history)f
+(\014le)h(is)f(o)m(v)m(erwritten.)55 b(If)34 b Ft(HISTFILE)e
+Fu(is)j(unset,)g(or)g(if)f(the)h(history)f(\014le)h(is)150
+2721 y(un)m(writable,)f(the)f(history)g(is)g(not)h(sa)m(v)m(ed.)49
+b(After)34 b(sa)m(ving)g(the)f(history)-8 b(,)34 b(the)g(history)f
+(\014le)g(is)g(truncated)150 2831 y(to)g(con)m(tain)h(no)f(more)g(than)
+f Ft($HISTFILESIZE)d Fu(lines.)48 b(If)33 b Ft(HISTFILESIZE)c
+Fu(is)k(unset,)g(or)f(set)i(to)f(n)m(ull,)h(a)150 2941
+y(non-n)m(umeric)c(v)-5 b(alue,)31 b(or)f(a)h(n)m(umeric)f(v)-5
+b(alue)31 b(less)g(than)f(zero,)h(the)g(history)f(\014le)h(is)f(not)h
+(truncated.)275 3078 y(If)g(the)h Ft(HISTTIMEFORMAT)d
+Fu(is)j(set,)h(the)f(time)h(stamp)f(information)g(asso)s(ciated)i(with)
+e(eac)m(h)h(history)150 3188 y(en)m(try)d(is)h(written)f(to)h(the)f
(history)h(\014le,)f(mark)m(ed)h(with)f(the)g(history)g(commen)m(t)h(c)
-m(haracter.)43 b(When)30 b(the)150 3250 y(history)22
+m(haracter.)43 b(When)30 b(the)150 3298 y(history)22
b(\014le)h(is)g(read,)h(lines)f(b)s(eginning)e(with)i(the)f(history)h
(commen)m(t)g(c)m(haracter)h(follo)m(w)m(ed)h(immediately)150
-3360 y(b)m(y)30 b(a)h(digit)g(are)g(in)m(terpreted)g(as)f(timestamps)h
-(for)f(the)h(previous)f(history)g(line.)275 3507 y(The)19
-b(builtin)h(command)g Fs(fc)g Ft(ma)m(y)h(b)s(e)f(used)f(to)i(list)g
+3407 y(b)m(y)30 b(a)h(digit)g(are)g(in)m(terpreted)g(as)f(timestamps)h
+(for)f(the)h(previous)f(history)g(line.)275 3545 y(The)19
+b(builtin)h(command)g Ft(fc)g Fu(ma)m(y)h(b)s(e)f(used)f(to)i(list)g
(or)g(edit)g(and)e(re-execute)j(a)f(p)s(ortion)f(of)g(the)h(history)150
-3617 y(list.)41 b(The)27 b Fs(history)f Ft(builtin)i(ma)m(y)h(b)s(e)e
+3655 y(list.)41 b(The)27 b Ft(history)f Fu(builtin)i(ma)m(y)h(b)s(e)e
(used)g(to)i(displa)m(y)g(or)f(mo)s(dify)f(the)h(history)g(list)h(and)f
-(manipulate)150 3726 y(the)j(history)g(\014le.)42 b(When)31
+(manipulate)150 3764 y(the)j(history)g(\014le.)42 b(When)31
b(using)f(command-line)h(editing,)h(searc)m(h)f(commands)g(are)g(a)m(v)
--5 b(ailable)33 b(in)e(eac)m(h)150 3836 y(editing)45
+-5 b(ailable)33 b(in)e(eac)m(h)150 3874 y(editing)45
b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g(history)f(list)i
(\(see)f(Section)h(8.4.2)g([Commands)e(F)-8 b(or)150
-3945 y(History],)31 b(page)h(109\).)275 4093 y(The)47
+3983 y(History],)31 b(page)h(116\).)275 4121 y(The)47
b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e(commands)g
(are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95 b(The)150
-4202 y Fs(HISTCONTROL)25 b Ft(and)j Fs(HISTIGNORE)e Ft(v)-5
+4231 y Ft(HISTCONTROL)25 b Fu(and)j Ft(HISTIGNORE)e Fu(v)-5
b(ariables)29 b(ma)m(y)h(b)s(e)d(set)j(to)f(cause)g(the)g(shell)f(to)i
-(sa)m(v)m(e)g(only)f(a)g(subset)150 4312 y(of)e(the)g(commands)f(en)m
-(tered.)40 b(The)26 b Fs(cmdhist)f Ft(shell)i(option,)h(if)f(enabled,)g
-(causes)h(the)e(shell)h(to)h(attempt)150 4421 y(to)23
+(sa)m(v)m(e)g(only)f(a)g(subset)150 4340 y(of)e(the)g(commands)f(en)m
+(tered.)40 b(The)26 b Ft(cmdhist)f Fu(shell)i(option,)h(if)f(enabled,)g
+(causes)h(the)e(shell)h(to)h(attempt)150 4450 y(to)23
b(sa)m(v)m(e)h(eac)m(h)f(line)g(of)f(a)h(m)m(ulti-line)g(command)f(in)g
(the)h(same)f(history)g(en)m(try)-8 b(,)25 b(adding)d(semicolons)h
-(where)150 4531 y(necessary)37 b(to)f(preserv)m(e)h(syn)m(tactic)h
-(correctness.)58 b(The)36 b Fs(lithist)e Ft(shell)i(option)h(causes)g
-(the)f(shell)g(to)150 4641 y(sa)m(v)m(e)25 b(the)e(command)h(with)f(em)
+(where)150 4560 y(necessary)37 b(to)f(preserv)m(e)h(syn)m(tactic)h
+(correctness.)58 b(The)36 b Ft(lithist)e Fu(shell)i(option)h(causes)g
+(the)f(shell)g(to)150 4669 y(sa)m(v)m(e)25 b(the)e(command)h(with)f(em)
m(b)s(edded)f(newlines)h(instead)h(of)f(semicolons.)40
-b(The)23 b Fs(shopt)e Ft(builtin)i(is)h(used)150 4750
+b(The)23 b Ft(shopt)e Fu(builtin)i(is)h(used)150 4779
y(to)31 b(set)g(these)g(options.)41 b(See)31 b(Section)g(4.2)g([Bash)g
-(Builtins],)g(page)g(43,)h(for)e(a)h(description)f(of)h
-Fs(shopt)p Ft(.)150 5002 y Fr(9.2)68 b(Bash)45 b(History)h(Builtins)150
-5161 y Ft(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g
+(Builtins],)g(page)g(48,)h(for)e(a)h(description)f(of)h
+Ft(shopt)p Fu(.)150 5016 y Fs(9.2)68 b(Bash)45 b(History)h(Builtins)150
+5176 y Fu(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g
(whic)m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g
-(\014le.)150 5340 y Fs(fc)p eop end
-%%Page: 126 132
-TeXDict begin 126 131 bop 150 -116 a Ft(126)2527 b(Bash)31
-b(Reference)g(Man)m(ual)870 299 y Fs(fc)47 b([-e)g Fi(ename)11
-b Fs(])46 b([-lnr])g([)p Fi(first)11 b Fs(])45 b([)p
-Fi(last)11 b Fs(])870 408 y(fc)47 b(-s)g([)p Fi(pat)11
-b Fs(=)p Fi(rep)g Fs(])45 b([)p Fi(command)11 b Fs(])630
-539 y Ft(Fix)41 b(Command.)68 b(In)39 b(the)i(\014rst)e(form,)j(a)e
-(range)h(of)f(commands)g(from)f Fq(\014rst)i Ft(to)g
-Fq(last)i Ft(is)630 648 y(selected)35 b(from)e(the)g(history)g(list.)50
-b(Both)34 b Fq(\014rst)h Ft(and)e Fq(last)j Ft(ma)m(y)e(b)s(e)e(sp)s
-(eci\014ed)h(as)g(a)h(string)630 758 y(\(to)26 b(lo)s(cate)h(the)e
-(most)h(recen)m(t)g(command)e(b)s(eginning)h(with)g(that)g(string\))h
-(or)f(as)g(a)g(n)m(um)m(b)s(er)630 867 y(\(an)f(index)f(in)m(to)h(the)g
-(history)g(list,)h(where)e(a)h(negativ)m(e)i(n)m(um)m(b)s(er)c(is)i
-(used)f(as)g(an)h(o\013set)g(from)630 977 y(the)j(curren)m(t)f(command)
-h(n)m(um)m(b)s(er\).)38 b(If)26 b Fq(last)k Ft(is)c(not)h(sp)s
-(eci\014ed)f(it)h(is)g(set)g(to)g Fq(\014rst)r Ft(.)39
-b(If)26 b Fq(\014rst)i Ft(is)630 1087 y(not)j(sp)s(eci\014ed)f(it)h(is)
-g(set)h(to)f(the)g(previous)f(command)h(for)f(editing)i(and)e
-Fp(\000)p Ft(16)h(for)g(listing.)630 1196 y(If)f(the)g(`)p
-Fs(-l)p Ft(')g(\015ag)h(is)f(giv)m(en,)h(the)g(commands)e(are)i(listed)
-g(on)f(standard)f(output.)40 b(The)30 b(`)p Fs(-n)p Ft(')630
-1306 y(\015ag)i(suppresses)f(the)h(command)g(n)m(um)m(b)s(ers)e(when)i
-(listing.)46 b(The)32 b(`)p Fs(-r)p Ft(')g(\015ag)g(rev)m(erses)h(the)
-630 1415 y(order)g(of)g(the)h(listing.)50 b(Otherwise,)34
-b(the)f(editor)h(giv)m(en)g(b)m(y)f Fq(ename)39 b Ft(is)33
-b(in)m(v)m(ok)m(ed)i(on)e(a)h(\014le)630 1525 y(con)m(taining)i(those)f
-(commands.)52 b(If)33 b Fq(ename)40 b Ft(is)34 b(not)h(giv)m(en,)h(the)
-f(v)-5 b(alue)35 b(of)f(the)g(follo)m(wing)630 1634 y(v)-5
-b(ariable)33 b(expansion)e(is)h(used:)42 b Fs(${FCEDIT:-${EDITOR:-vi}})
-p Ft(.)d(This)31 b(sa)m(ys)h(to)g(use)g(the)630 1744
-y(v)-5 b(alue)34 b(of)f(the)h Fs(FCEDIT)e Ft(v)-5 b(ariable)34
-b(if)f(set,)i(or)f(the)f(v)-5 b(alue)34 b(of)g(the)f
-Fs(EDITOR)f Ft(v)-5 b(ariable)34 b(if)f(that)630 1854
-y(is)g(set,)i(or)e Fs(vi)g Ft(if)g(neither)g(is)g(set.)50
-b(When)33 b(editing)h(is)f(complete,)i(the)f(edited)f(commands)630
-1963 y(are)e(ec)m(ho)s(ed)g(and)f(executed.)630 2093
-y(In)k(the)g(second)g(form,)h Fq(command)j Ft(is)c(re-executed)i(after)
-f(eac)m(h)g(instance)g(of)f Fq(pat)j Ft(in)d(the)630
-2203 y(selected)e(command)e(is)g(replaced)h(b)m(y)g Fq(rep)s
-Ft(.)630 2333 y(A)g(useful)f(alias)i(to)g(use)e(with)h(the)g
-Fs(fc)f Ft(command)h(is)g Fs(r='fc)e(-s')p Ft(,)h(so)h(that)h(t)m
-(yping)f(`)p Fs(r)f(cc)p Ft(')630 2443 y(runs)35 b(the)h(last)h
-(command)f(b)s(eginning)g(with)g Fs(cc)f Ft(and)h(t)m(yping)g(`)p
-Fs(r)p Ft(')h(re-executes)h(the)e(last)630 2552 y(command)30
-b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(81\).)150
-2703 y Fs(history)870 2833 y(history)46 b([)p Fi(n)11
-b Fs(])870 2943 y(history)46 b(-c)870 3052 y(history)g(-d)h
-Fi(offset)870 3162 y Fs(history)f([-anrw])g([)p Fi(filename)11
-b Fs(])870 3271 y(history)46 b(-ps)h Fi(arg)630 3402
-y Ft(With)26 b(no)g(options,)h(displa)m(y)f(the)g(history)g(list)g
-(with)f(line)h(n)m(um)m(b)s(ers.)38 b(Lines)26 b(pre\014xed)e(with)630
-3511 y(a)35 b(`)p Fs(*)p Ft(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.)
-53 b(An)34 b(argumen)m(t)h(of)g Fq(n)f Ft(lists)i(only)f(the)g(last)g
-Fq(n)f Ft(lines.)54 b(If)35 b(the)630 3621 y(shell)30
-b(v)-5 b(ariable)31 b Fs(HISTTIMEFORMAT)26 b Ft(is)k(set)h(and)e(not)i
+(\014le.)150 5340 y Ft(fc)p eop end
+%%Page: 134 140
+TeXDict begin 134 139 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(134)870
+299 y Ft(fc)47 b([-e)g Fj(ename)p Ft(])f([-lnr])g([)p
+Fj(first)p Ft(])g([)p Fj(last)p Ft(])870 408 y(fc)h(-s)g([)p
+Fj(pat)p Ft(=)p Fj(rep)p Ft(])f([)p Fj(command)p Ft(])630
+539 y Fu(The)22 b(\014rst)g(form)f(selects)j(a)f(range)g(of)f(commands)
+g(from)g Fr(\014rst)i Fu(to)f Fr(last)i Fu(from)d(the)h(history)f(list)
+630 648 y(and)i(displa)m(ys)h(or)g(edits)h(and)e(re-executes)j(them.)39
+b(Both)25 b Fr(\014rst)h Fu(and)f Fr(last)j Fu(ma)m(y)d(b)s(e)g(sp)s
+(eci\014ed)630 758 y(as)31 b(a)g(string)f(\(to)i(lo)s(cate)h(the)d
+(most)h(recen)m(t)h(command)f(b)s(eginning)e(with)i(that)g(string\))g
+(or)630 867 y(as)d(a)g(n)m(um)m(b)s(er)f(\(an)h(index)f(in)m(to)i(the)f
+(history)g(list,)h(where)e(a)h(negativ)m(e)i(n)m(um)m(b)s(er)d(is)h
+(used)f(as)630 977 y(an)g(o\013set)i(from)e(the)h(curren)m(t)f(command)
+h(n)m(um)m(b)s(er\).)39 b(If)27 b Fr(last)j Fu(is)e(not)f(sp)s
+(eci\014ed)g(it)h(is)g(set)g(to)630 1087 y Fr(\014rst)p
+Fu(.)47 b(If)32 b Fr(\014rst)i Fu(is)f(not)g(sp)s(eci\014ed)f(it)h(is)g
+(set)g(to)h(the)f(previous)f(command)h(for)f(editing)i(and)630
+1196 y Fq(\000)p Fu(16)j(for)g(listing.)61 b(If)36 b(the)h
+Ft(-l)f Fu(\015ag)i(is)e(giv)m(en,)k(the)d(commands)f(are)i(listed)f
+(on)g(standard)630 1306 y(output.)59 b(The)36 b Ft(-n)h
+Fu(\015ag)g(suppresses)e(the)h(command)h(n)m(um)m(b)s(ers)e(when)h
+(listing.)60 b(The)37 b Ft(-r)630 1415 y Fu(\015ag)e(rev)m(erses)f(the)
+h(order)e(of)i(the)f(listing.)53 b(Otherwise,)35 b(the)f(editor)h(giv)m
+(en)g(b)m(y)f Fr(ename)40 b Fu(is)630 1525 y(in)m(v)m(ok)m(ed)33
+b(on)f(a)g(\014le)g(con)m(taining)h(those)f(commands.)44
+b(If)31 b Fr(ename)38 b Fu(is)31 b(not)h(giv)m(en,)i(the)d(v)-5
+b(alue)630 1634 y(of)29 b(the)g(follo)m(wing)i(v)-5 b(ariable)29
+b(expansion)g(is)g(used:)39 b Ft(${FCEDIT:-${EDITOR:-vi}})p
+Fu(.)34 b(This)630 1744 y(sa)m(ys)g(to)g(use)f(the)h(v)-5
+b(alue)34 b(of)f(the)h Ft(FCEDIT)e Fu(v)-5 b(ariable)34
+b(if)f(set,)i(or)f(the)f(v)-5 b(alue)34 b(of)g(the)g
+Ft(EDITOR)630 1854 y Fu(v)-5 b(ariable)40 b(if)e(that)i(is)f(set,)i(or)
+e Ft(vi)f Fu(if)h(neither)g(is)g(set.)66 b(When)39 b(editing)g(is)g
+(complete,)k(the)630 1963 y(edited)31 b(commands)f(are)g(ec)m(ho)s(ed)h
+(and)f(executed.)630 2093 y(In)k(the)g(second)g(form,)h
+Fr(command)j Fu(is)c(re-executed)i(after)f(eac)m(h)g(instance)g(of)f
+Fr(pat)j Fu(in)d(the)630 2203 y(selected)e(command)e(is)h(replaced)g(b)
+m(y)f Fr(rep)p Fu(.)41 b Fr(command)34 b Fu(is)c(in)m(tepreted)h(the)g
+(same)g(as)g Fr(\014rst)630 2313 y Fu(ab)s(o)m(v)m(e.)630
+2443 y(A)g(useful)f(alias)i(to)g(use)e(with)h(the)g Ft(fc)f
+Fu(command)h(is)g Ft(r='fc)e(-s')p Fu(,)h(so)h(that)h(t)m(yping)f(`)p
+Ft(r)f(cc)p Fu(')630 2552 y(runs)35 b(the)h(last)h(command)f(b)s
+(eginning)g(with)g Ft(cc)f Fu(and)h(t)m(yping)g(`)p Ft(r)p
+Fu(')h(re-executes)h(the)e(last)630 2662 y(command)30
+b(\(see)h(Section)h(6.6)f([Aliases],)h(page)g(88\).)150
+2813 y Ft(history)870 2943 y(history)46 b([)p Fj(n)p
+Ft(])870 3052 y(history)g(-c)870 3162 y(history)g(-d)h
+Fj(offset)870 3271 y Ft(history)f([-anrw])g([)p Fj(filename)p
+Ft(])870 3381 y(history)g(-ps)h Fj(arg)630 3511 y Fu(With)26
+b(no)g(options,)h(displa)m(y)f(the)g(history)g(list)g(with)f(line)h(n)m
+(um)m(b)s(ers.)38 b(Lines)26 b(pre\014xed)e(with)630
+3621 y(a)35 b(`)p Ft(*)p Fu(')g(ha)m(v)m(e)h(b)s(een)e(mo)s(di\014ed.)
+53 b(An)34 b(argumen)m(t)h(of)g Fr(n)f Fu(lists)i(only)f(the)g(last)g
+Fr(n)f Fu(lines.)54 b(If)35 b(the)630 3730 y(shell)30
+b(v)-5 b(ariable)31 b Ft(HISTTIMEFORMAT)26 b Fu(is)k(set)h(and)e(not)i
(n)m(ull,)f(it)h(is)f(used)f(as)h(a)h(format)f(string)630
-3730 y(for)36 b Fq(strftime)41 b Ft(to)36 b(displa)m(y)g(the)g(time)h
+3840 y(for)36 b Fr(strftime)41 b Fu(to)36 b(displa)m(y)g(the)g(time)h
(stamp)f(asso)s(ciated)h(with)f(eac)m(h)h(displa)m(y)m(ed)f(history)630
-3840 y(en)m(try)-8 b(.)47 b(No)33 b(in)m(terv)m(ening)g(blank)f(is)g
+3950 y(en)m(try)-8 b(.)47 b(No)33 b(in)m(terv)m(ening)g(blank)f(is)g
(prin)m(ted)g(b)s(et)m(w)m(een)h(the)g(formatted)f(time)h(stamp)g(and)
-630 3950 y(the)e(history)f(line.)630 4080 y(Options,)g(if)h(supplied,)e
-(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 4230
-y Fs(-c)384 b Ft(Clear)23 b(the)g(history)g(list.)39
+630 4059 y(the)e(history)f(line.)630 4189 y(Options,)g(if)h(supplied,)e
+(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630 4340
+y Ft(-c)384 b Fu(Clear)23 b(the)g(history)g(list.)39
b(This)22 b(ma)m(y)i(b)s(e)e(com)m(bined)h(with)f(the)h(other)h
-(options)1110 4340 y(to)31 b(replace)g(the)g(history)f(list)h
-(completely)-8 b(.)630 4491 y Fs(-d)30 b Fi(offset)1110
-4600 y Ft(Delete)25 b(the)f(history)f(en)m(try)g(at)h(p)s(osition)f
-Fq(o\013set)r Ft(.)39 b Fq(o\013set)26 b Ft(should)c(b)s(e)h(sp)s
-(eci\014ed)1110 4710 y(as)31 b(it)g(app)s(ears)e(when)h(the)g(history)g
-(is)h(displa)m(y)m(ed.)630 4861 y Fs(-a)384 b Ft(App)s(end)35
-b(the)i(new)g(history)g(lines)g(\(history)g(lines)g(en)m(tered)h(since)
-f(the)g(b)s(e-)1110 4970 y(ginning)30 b(of)h(the)f(curren)m(t)g(Bash)h
-(session\))g(to)g(the)g(history)f(\014le.)630 5121 y
-Fs(-n)384 b Ft(App)s(end)32 b(the)i(history)f(lines)h(not)g(already)g
-(read)g(from)f(the)h(history)f(\014le)h(to)1110 5230
-y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25
+(options)1110 4450 y(to)31 b(replace)g(the)g(history)f(list)h
+(completely)-8 b(.)630 4600 y Ft(-d)30 b Fj(offset)66
+b Fu(Delete)25 b(the)f(history)f(en)m(try)h(at)g(p)s(osition)f
+Fr(o\013set)p Fu(.)39 b Fr(o\013set)27 b Fu(should)22
+b(b)s(e)h(sp)s(eci\014ed)1110 4710 y(as)31 b(it)g(app)s(ears)e(when)h
+(the)g(history)g(is)h(displa)m(y)m(ed.)630 4861 y Ft(-a)384
+b Fu(App)s(end)35 b(the)i(new)g(history)g(lines)g(\(history)g(lines)g
+(en)m(tered)h(since)f(the)g(b)s(e-)1110 4970 y(ginning)30
+b(of)h(the)f(curren)m(t)g(Bash)h(session\))g(to)g(the)g(history)f
+(\014le.)630 5121 y Ft(-n)384 b Fu(App)s(end)32 b(the)i(history)f
+(lines)h(not)g(already)g(read)g(from)f(the)h(history)f(\014le)h(to)1110
+5230 y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25
b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110
5340 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h
(session.)p eop end
-%%Page: 127 133
-TeXDict begin 127 132 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(127)630
-299 y Fs(-r)384 b Ft(Read)26 b(the)h(curren)m(t)f(history)g(\014le)g
-(and)g(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)f(history)1110
-408 y(list.)630 562 y Fs(-w)384 b Ft(W)-8 b(rite)32 b(out)e(the)h
-(curren)m(t)f(history)g(to)i(the)e(history)g(\014le.)630
-715 y Fs(-p)384 b Ft(P)m(erform)31 b(history)f(substitution)h(on)f(the)
-h Fq(arg)8 b Ft(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110
-824 y(the)d(standard)f(output,)i(without)f(storing)g(the)g(results)g
-(in)g(the)g(history)g(list.)630 977 y Fs(-s)384 b Ft(The)30
-b Fq(arg)8 b Ft(s)30 b(are)h(added)f(to)h(the)f(end)g(of)h(the)f
+%%Page: 135 141
+TeXDict begin 135 140 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(135)630
+299 y Ft(-r)384 b Fu(Read)31 b(the)f(history)g(\014le)h(and)f(app)s
+(end)e(its)j(con)m(ten)m(ts)h(to)f(the)g(history)f(list.)630
+447 y Ft(-w)384 b Fu(W)-8 b(rite)32 b(out)e(the)h(curren)m(t)f(history)
+g(list)h(to)h(the)e(history)g(\014le.)630 595 y Ft(-p)384
+b Fu(P)m(erform)31 b(history)f(substitution)h(on)f(the)h
+Fr(arg)8 b Fu(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110
+705 y(the)d(standard)f(output,)i(without)f(storing)g(the)g(results)g
+(in)g(the)g(history)g(list.)630 853 y Ft(-s)384 b Fu(The)30
+b Fr(arg)8 b Fu(s)30 b(are)h(added)f(to)h(the)f(end)g(of)h(the)f
(history)h(list)g(as)f(a)h(single)g(en)m(try)-8 b(.)630
-1130 y(When)24 b(an)m(y)h(of)f(the)h(`)p Fs(-w)p Ft(',)h(`)p
-Fs(-r)p Ft(',)f(`)p Fs(-a)p Ft(',)h(or)f(`)p Fs(-n)p
-Ft(')f(options)g(is)h(used,)g(if)f Fq(\014lename)30 b
-Ft(is)24 b(giv)m(en,)j(then)630 1240 y(it)32 b(is)g(used)f(as)h(the)f
-(history)h(\014le.)45 b(If)31 b(not,)h(then)g(the)f(v)-5
-b(alue)32 b(of)g(the)g Fs(HISTFILE)d Ft(v)-5 b(ariable)33
-b(is)630 1350 y(used.)150 1576 y Fr(9.3)68 b(History)46
-b(Expansion)150 1735 y Ft(The)f(History)h(library)e(pro)m(vides)i(a)f
-(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g(the)f
-(history)150 1845 y(expansion)g(pro)m(vided)f(b)m(y)h
-Fs(csh)p Ft(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h
-(used)e(to)i(manipulate)f(the)150 1954 y(history)30 b(information.)275
-2086 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
+1001 y(When)26 b(an)m(y)h(of)f(the)g Ft(-w)p Fu(,)h Ft(-r)p
+Fu(,)g Ft(-a)p Fu(,)g(or)f Ft(-n)f Fu(options)i(is)f(used,)h(if)f
+Fr(\014lename)32 b Fu(is)26 b(giv)m(en,)i(then)e(it)h(is)630
+1111 y(used)h(as)g(the)h(history)f(\014le.)40 b(If)28
+b(not,)i(then)e(the)g(v)-5 b(alue)29 b(of)g(the)g Ft(HISTFILE)d
+Fu(v)-5 b(ariable)29 b(is)f(used.)150 1332 y Fs(9.3)68
+b(History)46 b(Expansion)150 1492 y Fu(The)f(History)h(library)e(pro)m
+(vides)i(a)f(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g
+(the)f(history)150 1601 y(expansion)g(pro)m(vided)f(b)m(y)h
+Ft(csh)p Fu(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h
+(used)e(to)i(manipulate)f(the)150 1711 y(history)30 b(information.)275
+1840 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150
-2195 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
+1949 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150
-2305 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
-(quic)m(kly)-8 b(.)275 2436 y(History)27 b(expansion)f(tak)m(es)i
+2059 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
+(quic)m(kly)-8 b(.)275 2188 y(History)27 b(expansion)f(tak)m(es)i
(place)f(in)f(t)m(w)m(o)i(parts.)39 b(The)26 b(\014rst)g(is)g(to)h
-(determine)g(whic)m(h)f(line)h(from)f(the)150 2546 y(history)i(list)g
+(determine)g(whic)m(h)f(line)h(from)f(the)150 2297 y(history)i(list)g
(should)f(b)s(e)g(used)g(during)g(substitution.)39 b(The)27
b(second)h(is)g(to)h(select)g(p)s(ortions)e(of)h(that)h(line)150
-2655 y(for)d(inclusion)f(in)m(to)i(the)f(curren)m(t)f(one.)40
+2407 y(for)d(inclusion)f(in)m(to)i(the)f(curren)m(t)f(one.)40
b(The)25 b(line)h(selected)h(from)f(the)g(history)f(is)h(called)h(the)f
-Fq(ev)m(en)m(t)p Ft(,)j(and)150 2765 y(the)21 b(p)s(ortions)g(of)g
+Fr(ev)m(en)m(t)p Fu(,)j(and)150 2517 y(the)21 b(p)s(ortions)g(of)g
(that)h(line)f(that)h(are)g(acted)g(up)s(on)e(are)h(called)h
-Fq(w)m(ords)p Ft(.)38 b(V)-8 b(arious)21 b Fq(mo)s(di\014ers)j
-Ft(are)e(a)m(v)-5 b(ailable)150 2874 y(to)35 b(manipulate)f(the)g
+Fr(w)m(ords)p Fu(.)38 b(V)-8 b(arious)21 b Fr(mo)s(di\014ers)j
+Fu(are)e(a)m(v)-5 b(ailable)150 2626 y(to)35 b(manipulate)f(the)g
(selected)i(w)m(ords.)51 b(The)33 b(line)h(is)g(brok)m(en)g(in)m(to)h
-(w)m(ords)e(in)h(the)g(same)h(fashion)e(that)150 2984
+(w)m(ords)e(in)h(the)g(same)h(fashion)e(that)150 2736
y(Bash)i(do)s(es,)h(so)f(that)h(sev)m(eral)g(w)m(ords)e(surrounded)f(b)
m(y)i(quotes)g(are)g(considered)g(one)g(w)m(ord.)54 b(History)150
-3094 y(expansions)34 b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s
+2845 y(expansions)34 b(are)g(in)m(tro)s(duced)f(b)m(y)h(the)g(app)s
(earance)g(of)g(the)g(history)g(expansion)g(c)m(haracter,)i(whic)m(h)e
-(is)150 3203 y(`)p Fs(!)p Ft(')d(b)m(y)f(default.)41
-b(Only)29 b(`)p Fs(\\)p Ft(')i(and)f(`)p Fs(')p Ft(')g(ma)m(y)h(b)s(e)f
+(is)150 2955 y(`)p Ft(!)p Fu(')d(b)m(y)f(default.)41
+b(Only)29 b(`)p Ft(\\)p Fu(')i(and)f(`)p Ft(')p Fu(')g(ma)m(y)h(b)s(e)f
(used)g(to)h(escap)s(e)g(the)f(history)g(expansion)h(c)m(haracter.)275
-3335 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h
-Fs(shopt)e Ft(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)150
-3444 y(page)32 b(43\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s
+3084 y(Sev)m(eral)40 b(shell)g(options)g(settable)h(with)e(the)h
+Ft(shopt)e Fu(builtin)h(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)150
+3194 y(page)32 b(48\))h(ma)m(y)f(b)s(e)f(used)g(to)i(tailor)g(the)e(b)s
(eha)m(vior)h(of)g(history)g(expansion.)44 b(If)31 b(the)h
-Fs(histverify)d Ft(shell)150 3554 y(option)39 b(is)f(enabled,)i(and)e
+Ft(histverify)d Fu(shell)150 3303 y(option)39 b(is)f(enabled,)i(and)e
(Readline)g(is)h(b)s(eing)e(used,)j(history)e(substitutions)g(are)g
-(not)h(immediately)150 3663 y(passed)30 b(to)h(the)g(shell)g(parser.)40
+(not)h(immediately)150 3413 y(passed)30 b(to)h(the)g(shell)g(parser.)40
b(Instead,)30 b(the)h(expanded)f(line)h(is)f(reloaded)h(in)m(to)h(the)e
-(Readline)h(editing)150 3773 y(bu\013er)e(for)i(further)e(mo)s
+(Readline)h(editing)150 3522 y(bu\013er)e(for)i(further)e(mo)s
(di\014cation.)41 b(If)30 b(Readline)h(is)f(b)s(eing)g(used,)g(and)g
-(the)g Fs(histreedit)e Ft(shell)i(option)150 3882 y(is)k(enabled,)h(a)g
+(the)g Ft(histreedit)e Fu(shell)i(option)150 3632 y(is)k(enabled,)h(a)g
(failed)g(history)f(expansion)g(will)g(b)s(e)g(reloaded)g(in)m(to)h
-(the)g(Readline)f(editing)h(bu\013er)e(for)150 3992 y(correction.)74
-b(The)41 b(`)p Fs(-p)p Ft(')g(option)g(to)h(the)f Fs(history)f
-Ft(builtin)g(command)h(ma)m(y)h(b)s(e)e(used)h(to)g(see)h(what)150
-4102 y(a)c(history)g(expansion)f(will)h(do)f(b)s(efore)h(using)f(it.)63
-b(The)37 b(`)p Fs(-s)p Ft(')g(option)h(to)h(the)f Fs(history)d
-Ft(builtin)i(ma)m(y)150 4211 y(b)s(e)c(used)h(to)g(add)g(commands)f(to)
-i(the)f(end)g(of)g(the)g(history)g(list)h(without)f(actually)i
-(executing)f(them,)150 4321 y(so)j(that)h(they)f(are)g(a)m(v)-5
-b(ailable)40 b(for)e(subsequen)m(t)f(recall.)65 b(This)37
-b(is)h(most)g(useful)g(in)f(conjunction)h(with)150 4430
-y(Readline.)275 4562 y(The)33 b(shell)h(allo)m(ws)h(con)m(trol)h(of)e
-(the)g(v)-5 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)
-g(expansion)g(mec)m(h-)150 4671 y(anism)h(with)g(the)g
-Fs(histchars)d Ft(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)
-i(\(see)f(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150
-4781 y(page)32 b(63\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
-(commen)m(t)i(c)m(haracter)f(to)g(mark)f(history)g(timestamps)h(when)
-150 4891 y(writing)e(the)h(history)f(\014le.)150 5083
-y Fj(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 5230
-y Ft(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g(reference)g(to)h(a)f
-(command)f(line)h(en)m(try)g(in)g(the)g(history)g(list.)48
-b(Unless)33 b(the)150 5340 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)
-f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h(in)f(the)h
-(history)f(list.)p eop end
-%%Page: 128 134
-TeXDict begin 128 133 bop 150 -116 a Ft(128)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(!)432 b Ft(Start)34
-b(a)f(history)h(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)
-e(a)h(space,)h(tab,)f(the)g(end)f(of)630 408 y(the)i(line,)g(`)p
-Fs(=)p Ft(')g(or)f(`)p Fs(\()p Ft(')h(\(when)e(the)i
-Fs(extglob)d Ft(shell)j(option)f(is)h(enabled)f(using)g(the)g
-Fs(shopt)630 518 y Ft(builtin\).)150 669 y Fs(!)p Fi(n)384
-b Ft(Refer)30 b(to)i(command)e(line)g Fq(n)p Ft(.)150
-819 y Fs(!-)p Fi(n)336 b Ft(Refer)30 b(to)i(the)e(command)g
-Fq(n)g Ft(lines)h(bac)m(k.)150 970 y Fs(!!)384 b Ft(Refer)30
-b(to)i(the)e(previous)g(command.)40 b(This)30 b(is)g(a)h(synon)m(ym)f
-(for)g(`)p Fs(!-1)p Ft('.)150 1120 y Fs(!)p Fi(string)144
-b Ft(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g
-(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
-1230 y(list)31 b(starting)g(with)f Fq(string)8 b Ft(.)150
-1381 y Fs(!?)p Fi(string)j Fs([?])630 1490 y Ft(Refer)25
-b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)
-g(p)s(osition)g(in)g(the)g(history)630 1600 y(list)32
-b(con)m(taining)h Fq(string)8 b Ft(.)43 b(The)31 b(trailing)h(`)p
-Fs(?)p Ft(')f(ma)m(y)h(b)s(e)f(omitted)h(if)f(the)h Fq(string)39
-b Ft(is)31 b(follo)m(w)m(ed)630 1709 y(immediately)h(b)m(y)e(a)h
-(newline.)150 1860 y Fs(^)p Fi(string1)11 b Fs(^)p Fi(string2)g
-Fs(^)630 1970 y Ft(Quic)m(k)31 b(Substitution.)43 b(Rep)s(eat)31
-b(the)g(last)h(command,)g(replacing)f Fq(string1)39 b
-Ft(with)31 b Fq(string2)7 b Ft(.)630 2079 y(Equiv)-5
-b(alen)m(t)31 b(to)g Fs(!!:s/)p Fi(string1)11 b Fs(/)p
-Fi(string2)g Fs(/)p Ft(.)150 2230 y Fs(!#)384 b Ft(The)30
-b(en)m(tire)h(command)f(line)h(t)m(yp)s(ed)f(so)h(far.)150
-2420 y Fj(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150
-2567 y Ft(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
+(the)g(Readline)f(editing)h(bu\013er)e(for)150 3741 y(correction.)68
+b(The)38 b Ft(-p)h Fu(option)g(to)h(the)f Ft(history)e
+Fu(builtin)i(command)f(ma)m(y)i(b)s(e)e(used)g(to)i(see)g(what)f(a)150
+3851 y(history)f(expansion)f(will)h(do)g(b)s(efore)f(using)h(it.)63
+b(The)37 b Ft(-s)g Fu(option)i(to)f(the)g Ft(history)e
+Fu(builtin)h(ma)m(y)i(b)s(e)150 3961 y(used)21 b(to)i(add)f(commands)g
+(to)g(the)h(end)e(of)i(the)f(history)g(list)h(without)f(actually)i
+(executing)f(them,)h(so)e(that)150 4070 y(they)31 b(are)f(a)m(v)-5
+b(ailable)33 b(for)d(subsequen)m(t)g(recall.)42 b(This)29
+b(is)i(most)g(useful)e(in)h(conjunction)h(with)f(Readline.)275
+4199 y(The)j(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g(v)-5
+b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)g(expansion)
+g(mec)m(h-)150 4309 y(anism)h(with)g(the)g Ft(histchars)d
+Fu(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)i(\(see)f
+(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150 4418 y(page)32
+b(69\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g(commen)m(t)i(c)m
+(haracter)f(to)g(mark)f(history)g(timestamps)h(when)150
+4528 y(writing)e(the)h(history)f(\014le.)150 4716 y Fk(9.3.1)63
+b(Ev)m(en)m(t)39 b(Designators)150 4863 y Fu(An)32 b(ev)m(en)m(t)j
+(designator)e(is)g(a)g(reference)g(to)h(a)f(command)f(line)h(en)m(try)g
+(in)g(the)g(history)g(list.)48 b(Unless)33 b(the)150
+4973 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)f(are)g(relativ)m(e)i
+(to)e(the)f(curren)m(t)g(p)s(osition)h(in)f(the)h(history)f(list.)150
+5121 y Ft(!)432 b Fu(Start)34 b(a)f(history)h(substitution,)g(except)g
+(when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h(tab,)f(the)g(end)f(of)630
+5230 y(the)i(line,)g(`)p Ft(=)p Fu(')g(or)f(`)p Ft(\()p
+Fu(')h(\(when)e(the)i Ft(extglob)d Fu(shell)j(option)f(is)h(enabled)f
+(using)g(the)g Ft(shopt)630 5340 y Fu(builtin\).)p eop
+end
+%%Page: 136 142
+TeXDict begin 136 141 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(136)150
+299 y Ft(!)p Fj(n)384 b Fu(Refer)30 b(to)i(command)e(line)g
+Fr(n)p Fu(.)150 460 y Ft(!-)p Fj(n)336 b Fu(Refer)30
+b(to)i(the)e(command)g Fr(n)g Fu(lines)h(bac)m(k.)150
+622 y Ft(!!)384 b Fu(Refer)30 b(to)i(the)e(previous)g(command.)40
+b(This)30 b(is)g(a)h(synon)m(ym)f(for)g(`)p Ft(!-1)p
+Fu('.)150 784 y Ft(!)p Fj(string)144 b Fu(Refer)25 b(to)h(the)f(most)h
+(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)g(p)s(osition)g(in)
+g(the)g(history)630 893 y(list)31 b(starting)g(with)f
+Fr(string)p Fu(.)150 1055 y Ft(!?)p Fj(string)p Ft([?])630
+1164 y Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)
+g(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
+1274 y(list)32 b(con)m(taining)i Fr(string)p Fu(.)45
+b(The)31 b(trailing)i(`)p Ft(?)p Fu(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f
+(the)g Fr(string)39 b Fu(is)32 b(follo)m(w)m(ed)630 1384
+y(immediately)g(b)m(y)e(a)h(newline.)150 1545 y Ft(^)p
+Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630 1655 y Fu(Quic)m(k)h
+(Substitution.)44 b(Rep)s(eat)32 b(the)g(last)h(command,)f(replacing)g
+Fr(string1)40 b Fu(with)31 b Fr(string2)p Fu(.)630 1764
+y(Equiv)-5 b(alen)m(t)31 b(to)g Ft(!!:s/)p Fj(string1)p
+Ft(/)p Fj(string2)p Ft(/)p Fu(.)150 1926 y Ft(!#)384
+b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)m(yp)s(ed)f(so)h(far.)150
+2127 y Fk(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150
+2274 y Fu(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41 b(A)27
-b(`)p Fs(:)p Ft(')g(separates)h(the)f(ev)m(en)m(t)150
-2677 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
+b(`)p Ft(:)p Fu(')g(separates)h(the)f(ev)m(en)m(t)150
+2384 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g
-(b)s(egins)150 2786 y(with)30 b(a)g(`)p Fs(^)p Ft(',)g(`)p
-Fs($)p Ft(',)g(`)p Fs(*)p Ft(',)h(`)p Fs(-)p Ft(',)f(or)g(`)p
-Fs(\045)p Ft('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
+(b)s(egins)150 2494 y(with)30 b(a)g(`)p Ft(^)p Fu(',)g(`)p
+Ft($)p Fu(',)g(`)p Ft(*)p Fu(',)h(`)p Ft(-)p Fu(',)f(or)g(`)p
+Ft(\045)p Fu('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150
-2896 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
+2603 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f
-(line)g(separated)h(b)m(y)150 3005 y(single)h(spaces.)275
-3136 y(F)-8 b(or)31 b(example,)150 3286 y Fs(!!)384 b
-Ft(designates)37 b(the)f(preceding)g(command.)57 b(When)35
+(line)g(separated)h(b)m(y)150 2713 y(single)h(spaces.)275
+2849 y(F)-8 b(or)31 b(example,)150 3012 y Ft(!!)384 b
+Fu(designates)37 b(the)f(preceding)g(command.)57 b(When)35
b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
-3396 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 3546
-y Fs(!!:$)288 b Ft(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the)
+3122 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 3283
+y Ft(!!:$)288 b Fu(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the)
h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630
-3656 y(to)31 b Fs(!$)p Ft(.)150 3806 y Fs(!fi:2)240 b
-Ft(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f
-(recen)m(t)i(command)e(starting)h(with)f(the)630 3916
-y(letters)j Fs(fi)p Ft(.)275 4067 y(Here)e(are)h(the)g(w)m(ord)f
-(designators:)150 4217 y Fs(0)g(\(zero\))114 b Ft(The)30
-b Fs(0)p Ft(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h
-(this)e(is)g(the)h(command)f(w)m(ord.)150 4368 y Fi(n)432
-b Ft(The)30 b Fq(n)p Ft(th)g(w)m(ord.)150 4518 y Fs(^)432
-b Ft(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150
-4669 y Fs($)432 b Ft(The)30 b(last)h(argumen)m(t.)150
-4820 y Fs(\045)432 b Ft(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
-(most)g(recen)m(t)g(`)p Fs(?)p Fi(string)11 b Fs(?)p
-Ft(')28 b(searc)m(h.)150 4970 y Fi(x)11 b Fs(-)p Fi(y)325
-b Ft(A)30 b(range)h(of)g(w)m(ords;)f(`)p Fs(-)p Fi(y)11
-b Ft(')30 b(abbreviates)h(`)p Fs(0-)p Fi(y)11 b Ft('.)150
-5121 y Fs(*)432 b Ft(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e
-Fs(0)p Ft(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
-Fs(1-$)p Ft('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-5230 y(to)j(use)g(`)p Fs(*)p Ft(')f(if)h(there)g(is)g(just)f(one)h(w)m
+3393 y(to)31 b Ft(!$)p Fu(.)150 3555 y Ft(!fi:2)240 b
+Fu(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f
+(recen)m(t)i(command)e(starting)h(with)f(the)630 3664
+y(letters)j Ft(fi)p Fu(.)275 3827 y(Here)e(are)h(the)g(w)m(ord)f
+(designators:)150 3990 y Ft(0)g(\(zero\))114 b Fu(The)30
+b Ft(0)p Fu(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h
+(this)e(is)g(the)h(command)f(w)m(ord.)150 4151 y Fj(n)432
+b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150 4313 y Ft(^)432
+b Fu(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150
+4474 y Ft($)432 b Fu(The)30 b(last)h(argumen)m(t.)150
+4636 y Ft(\045)432 b Fu(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h
+(most)g(recen)m(t)g(`)p Ft(?)p Fj(string)p Ft(?)p Fu(')e(searc)m(h.)150
+4798 y Fj(x)p Ft(-)p Fj(y)336 b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p
+Ft(-)p Fj(y)p Fu(')g(abbreviates)h(`)p Ft(0-)p Fj(y)p
+Fu('.)150 4959 y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h
+(the)e Ft(0)p Fu(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
+Ft(1-$)p Fu('.)39 b(It)28 b(is)g(not)g(an)f(error)630
+5069 y(to)j(use)g(`)p Ft(*)p Fu(')f(if)h(there)g(is)g(just)f(one)h(w)m
(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
-(returned)e(in)630 5340 y(that)j(case.)p eop end
-%%Page: 129 135
-TeXDict begin 129 134 bop 150 -116 a Ft(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(129)150
-299 y Fi(x)11 b Fs(*)373 b Ft(Abbreviates)31 b(`)p Fi(x)11
-b Fs(-$)p Ft(')150 458 y Fi(x)g Fs(-)373 b Ft(Abbreviates)31
-b(`)p Fi(x)11 b Fs(-$)p Ft(')29 b(lik)m(e)j(`)p Fi(x)11
-b Fs(*)p Ft(',)30 b(but)g(omits)h(the)f(last)h(w)m(ord.)275
-618 y(If)i(a)h(w)m(ord)g(designator)g(is)g(supplied)f(without)h(an)g
-(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e(previous)f(command)150
-727 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150 927 y Fj(9.3.3)63
-b(Mo)s(di\014ers)150 1073 y Ft(After)29 b(the)g(optional)g(w)m(ord)g
-(designator,)g(y)m(ou)g(can)g(add)f(a)h(sequence)g(of)g(one)g(or)f
-(more)h(of)g(the)f(follo)m(wing)150 1183 y(mo)s(di\014ers,)h(eac)m(h)j
-(preceded)e(b)m(y)g(a)h(`)p Fs(:)p Ft('.)150 1342 y Fs(h)432
-b Ft(Remo)m(v)m(e)32 b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g
-(lea)m(ving)h(only)e(the)h(head.)150 1502 y Fs(t)432
-b Ft(Remo)m(v)m(e)32 b(all)f(leading)h(pathname)e(comp)s(onen)m(ts,)h
-(lea)m(ving)h(the)e(tail.)150 1661 y Fs(r)432 b Ft(Remo)m(v)m(e)32
-b(a)f(trailing)g(su\016x)f(of)g(the)h(form)f(`)p Fs(.)p
-Fi(suffix)11 b Ft(',)28 b(lea)m(ving)33 b(the)d(basename.)150
-1821 y Fs(e)432 b Ft(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g
-(su\016x.)150 1980 y Fs(p)432 b Ft(Prin)m(t)30 b(the)h(new)f(command)g
-(but)g(do)g(not)g(execute)i(it.)150 2139 y Fs(q)432 b
-Ft(Quote)31 b(the)f(substituted)g(w)m(ords,)g(escaping)h(further)e
-(substitutions.)150 2299 y Fs(x)432 b Ft(Quote)32 b(the)f(substituted)g
-(w)m(ords)f(as)i(with)f(`)p Fs(q)p Ft(',)h(but)e(break)h(in)m(to)i(w)m
-(ords)d(at)i(spaces,)h(tabs,)630 2408 y(and)d(newlines.)150
-2568 y Fs(s/)p Fi(old)11 b Fs(/)p Fi(new)g Fs(/)630 2677
-y Ft(Substitute)32 b Fq(new)40 b Ft(for)32 b(the)h(\014rst)f(o)s
-(ccurrence)h(of)f Fq(old)37 b Ft(in)32 b(the)h(ev)m(en)m(t)h(line.)48
-b(An)m(y)32 b(delimiter)630 2787 y(ma)m(y)25 b(b)s(e)g(used)f(in)g
-(place)i(of)f(`)p Fs(/)p Ft('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s
-(e)e(quoted)h(in)f Fq(old)29 b Ft(and)24 b Fq(new)32
-b Ft(with)25 b(a)630 2897 y(single)j(bac)m(kslash.)40
-b(If)27 b(`)p Fs(&)p Ft(')g(app)s(ears)g(in)g Fq(new)8
-b Ft(,)27 b(it)h(is)f(replaced)h(b)m(y)f Fq(old)t Ft(.)39
-b(A)27 b(single)h(bac)m(kslash)630 3006 y(will)35 b(quote)g(the)g(`)p
-Fs(&)p Ft('.)54 b(The)34 b(\014nal)g(delimiter)i(is)e(optional)i(if)f
-(it)g(is)f(the)h(last)h(c)m(haracter)g(on)630 3116 y(the)31
-b(input)e(line.)150 3275 y Fs(&)432 b Ft(Rep)s(eat)31
-b(the)f(previous)g(substitution.)150 3435 y Fs(g)150
-3544 y(a)432 b Ft(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f(applied)h(o)m(v)
-m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66 b(Used)39
-b(in)f(conjunction)630 3654 y(with)30 b(`)p Fs(s)p Ft(',)h(as)f(in)h
-Fs(gs/)p Fi(old)11 b Fs(/)p Fi(new)g Fs(/)p Ft(,)26 b(or)k(with)h(`)p
-Fs(&)p Ft('.)150 3813 y Fs(G)432 b Ft(Apply)30 b(the)g(follo)m(wing)i
-(`)p Fs(s)p Ft(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g
-(the)g(ev)m(en)m(t.)p eop end
-%%Page: 130 136
-TeXDict begin 130 135 bop eop end
-%%Page: 131 137
-TeXDict begin 131 136 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(131)150 299 y Fo(10)80
-b(Installing)52 b(Bash)150 556 y Ft(This)31 b(c)m(hapter)h(pro)m(vides)
+(returned)e(in)630 5178 y(that)j(case.)150 5340 y Fj(x)p
+Ft(*)384 b Fu(Abbreviates)31 b(`)p Fj(x)p Ft(-$)p Fu(')p
+eop end
+%%Page: 137 143
+TeXDict begin 137 142 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(137)150
+299 y Fj(x)p Ft(-)384 b Fu(Abbreviates)31 b(`)p Fj(x)p
+Ft(-$)p Fu(')f(lik)m(e)h(`)p Fj(x)p Ft(*)p Fu(',)g(but)f(omits)h(the)f
+(last)h(w)m(ord.)275 458 y(If)i(a)h(w)m(ord)g(designator)g(is)g
+(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h(the)e
+(previous)f(command)150 568 y(is)d(used)g(as)h(the)f(ev)m(en)m(t.)150
+767 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 914 y Fu(After)29
+b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g(add)f(a)h
+(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)150
+1024 y(mo)s(di\014ers,)h(eac)m(h)j(preceded)e(b)m(y)g(a)h(`)p
+Ft(:)p Fu('.)150 1183 y Ft(h)432 b Fu(Remo)m(v)m(e)32
+b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the)
+h(head.)150 1342 y Ft(t)432 b Fu(Remo)m(v)m(e)32 b(all)f(leading)h
+(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150
+1502 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
+(the)h(form)f(`)p Ft(.)p Fj(suffix)p Fu(',)f(lea)m(ving)j(the)f
+(basename.)150 1661 y Ft(e)432 b Fu(Remo)m(v)m(e)32 b(all)f(but)f(the)h
+(trailing)g(su\016x.)150 1821 y Ft(p)432 b Fu(Prin)m(t)30
+b(the)h(new)f(command)g(but)g(do)g(not)g(execute)i(it.)150
+1980 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)g
+(escaping)h(further)e(substitutions.)150 2139 y Ft(x)432
+b Fu(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i(with)f(`)p
+Ft(q)p Fu(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i(spaces,)h(tabs,)
+630 2249 y(and)d(newlines.)150 2408 y Ft(s/)p Fj(old)p
+Ft(/)p Fj(new)p Ft(/)630 2518 y Fu(Substitute)i Fr(new)40
+b Fu(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f Fr(old)37
+b Fu(in)32 b(the)h(ev)m(en)m(t)h(line.)48 b(An)m(y)32
+b(delimiter)630 2628 y(ma)m(y)25 b(b)s(e)g(used)f(in)g(place)i(of)f(`)p
+Ft(/)p Fu('.)39 b(The)24 b(delimiter)h(ma)m(y)h(b)s(e)e(quoted)h(in)f
+Fr(old)29 b Fu(and)24 b Fr(new)32 b Fu(with)25 b(a)630
+2737 y(single)k(bac)m(kslash.)40 b(If)28 b(`)p Ft(&)p
+Fu(')g(app)s(ears)g(in)f Fr(new)p Fu(,)i(it)f(is)h(replaced)f(b)m(y)g
+Fr(old)p Fu(.)40 b(A)28 b(single)h(bac)m(kslash)630 2847
+y(will)35 b(quote)g(the)g(`)p Ft(&)p Fu('.)54 b(The)34
+b(\014nal)g(delimiter)i(is)e(optional)i(if)f(it)g(is)f(the)h(last)h(c)m
+(haracter)g(on)630 2956 y(the)31 b(input)e(line.)150
+3116 y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
+3275 y Ft(g)150 3385 y(a)432 b Fu(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
+(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66
+b(Used)39 b(in)f(conjunction)630 3494 y(with)30 b(`)p
+Ft(s)p Fu(',)h(as)f(in)h Ft(gs/)p Fj(old)p Ft(/)p Fj(new)p
+Ft(/)p Fu(,)c(or)j(with)h(`)p Ft(&)p Fu('.)150 3654 y
+Ft(G)432 b Fu(Apply)30 b(the)g(follo)m(wing)i(`)p Ft(s)p
+Fu(')f(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m(ord)e(in)g(the)g(ev)m
+(en)m(t.)p eop end
+%%Page: 138 144
+TeXDict begin 138 143 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(138)150 299 y Fp(10)80
+b(Installing)52 b(Bash)150 556 y Fu(This)31 b(c)m(hapter)h(pro)m(vides)
g(basic)g(instructions)f(for)g(installing)i(Bash)f(on)f(the)h(v)-5
b(arious)31 b(supp)s(orted)f(plat-)150 665 y(forms.)40
-b(The)28 b(distribution)h(supp)s(orts)e(the)j Fl(gnu)f
-Ft(op)s(erating)h(systems,)f(nearly)h(ev)m(ery)g(v)m(ersion)f(of)h
+b(The)28 b(distribution)h(supp)s(orts)e(the)j Fm(gnu)f
+Fu(op)s(erating)h(systems,)f(nearly)h(ev)m(ery)g(v)m(ersion)f(of)h
(Unix,)150 775 y(and)d(sev)m(eral)j(non-Unix)d(systems)h(suc)m(h)g(as)g
(BeOS)g(and)f(In)m(terix.)40 b(Other)28 b(indep)s(enden)m(t)e(p)s(orts)
-h(exist)i(for)150 884 y Fl(ms-dos)p Ft(,)h Fl(os/2)p
-Ft(,)g(and)g(Windo)m(ws)g(platforms.)150 1128 y Fr(10.1)68
-b(Basic)45 b(Installation)150 1288 y Ft(These)30 b(are)h(installation)h
+h(exist)i(for)150 884 y Fm(ms-dos)p Fu(,)h Fm(os/2)p
+Fu(,)g(and)g(Windo)m(ws)g(platforms.)150 1128 y Fs(10.1)68
+b(Basic)45 b(Installation)150 1288 y Fu(These)30 b(are)h(installation)h
(instructions)e(for)h(Bash.)275 1430 y(The)e(simplest)i(w)m(a)m(y)g(to)
-g(compile)h(Bash)e(is:)199 1572 y(1.)61 b Fs(cd)38 b
-Ft(to)h(the)f(directory)h(con)m(taining)h(the)f(source)f(co)s(de)h(and)
-f(t)m(yp)s(e)g(`)p Fs(./configure)p Ft(')e(to)j(con\014gure)330
+g(compile)h(Bash)e(is:)199 1572 y(1.)61 b Ft(cd)38 b
+Fu(to)h(the)f(directory)h(con)m(taining)h(the)f(source)f(co)s(de)h(and)
+f(t)m(yp)s(e)g(`)p Ft(./configure)p Fu(')e(to)j(con\014gure)330
1681 y(Bash)c(for)f(y)m(our)h(system.)54 b(If)34 b(y)m(ou're)h(using)f
-Fs(csh)g Ft(on)g(an)h(old)g(v)m(ersion)g(of)g(System)f(V,)h(y)m(ou)g
+Ft(csh)g Fu(on)g(an)h(old)g(v)m(ersion)g(of)g(System)f(V,)h(y)m(ou)g
(migh)m(t)330 1791 y(need)21 b(to)g(t)m(yp)s(e)g(`)p
-Fs(sh)30 b(./configure)p Ft(')18 b(instead)j(to)g(prev)m(en)m(t)h
-Fs(csh)e Ft(from)g(trying)h(to)g(execute)h Fs(configure)330
-1901 y Ft(itself.)330 2039 y(Running)30 b Fs(configure)f
-Ft(tak)m(es)k(some)e(time.)45 b(While)32 b(running,)e(it)i(prin)m(ts)f
+Ft(sh)30 b(./configure)p Fu(')18 b(instead)j(to)g(prev)m(en)m(t)h
+Ft(csh)e Fu(from)g(trying)h(to)g(execute)h Ft(configure)330
+1901 y Fu(itself.)330 2039 y(Running)30 b Ft(configure)f
+Fu(tak)m(es)k(some)e(time.)45 b(While)32 b(running,)e(it)i(prin)m(ts)f
(messages)h(telling)h(whic)m(h)330 2149 y(features)e(it)g(is)f(c)m(hec)
m(king)i(for.)199 2287 y(2.)61 b(T)m(yp)s(e)30 b(`)p
-Fs(make)p Ft(')g(to)h(compile)g(Bash)g(and)e(build)h(the)g
-Fs(bashbug)f Ft(bug)g(rep)s(orting)h(script.)199 2425
-y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p Fs(make)g(tests)p
-Ft(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 2563
-y(4.)61 b(T)m(yp)s(e)36 b(`)p Fs(make)29 b(install)p
-Ft(')35 b(to)i(install)h Fs(bash)d Ft(and)h Fs(bashbug)p
-Ft(.)57 b(This)35 b(will)i(also)h(install)f(the)g(man)m(ual)330
+Ft(make)p Fu(')g(to)h(compile)g(Bash)g(and)e(build)h(the)g
+Ft(bashbug)f Fu(bug)g(rep)s(orting)h(script.)199 2425
+y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p Ft(make)g(tests)p
+Fu(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 2563
+y(4.)61 b(T)m(yp)s(e)36 b(`)p Ft(make)29 b(install)p
+Fu(')35 b(to)i(install)h Ft(bash)d Fu(and)h Ft(bashbug)p
+Fu(.)57 b(This)35 b(will)i(also)h(install)f(the)g(man)m(ual)330
2673 y(pages)31 b(and)f(Info)g(\014le.)275 2844 y(The)20
-b Fs(configure)f Ft(shell)i(script)g(attempts)h(to)g(guess)f(correct)i
+b Ft(configure)f Fu(shell)i(script)g(attempts)h(to)g(guess)f(correct)i
(v)-5 b(alues)21 b(for)g(v)-5 b(arious)21 b(system-dep)s(enden)m(t)150
-2953 y(v)-5 b(ariables)44 b(used)f(during)g(compilation.)82
-b(It)43 b(uses)h(those)g(v)-5 b(alues)44 b(to)g(create)h(a)g(`)p
-Fs(Makefile)p Ft(')c(in)j(eac)m(h)150 3063 y(directory)25
-b(of)g(the)g(pac)m(k)-5 b(age)27 b(\(the)e(top)g(directory)-8
-b(,)27 b(the)e(`)p Fs(builtins)p Ft(',)f(`)p Fs(doc)p
-Ft(',)i(and)e(`)p Fs(support)p Ft(')g(directories,)150
-3172 y(eac)m(h)32 b(directory)f(under)d(`)p Fs(lib)p
-Ft(',)j(and)f(sev)m(eral)h(others\).)42 b(It)30 b(also)i(creates)f(a)g
-(`)p Fs(config.h)p Ft(')e(\014le)h(con)m(taining)150
-3282 y(system-dep)s(enden)m(t)h(de\014nitions.)44 b(Finally)-8
-b(,)34 b(it)e(creates)h(a)f(shell)g(script)f(named)g
-Fs(config.status)d Ft(that)150 3392 y(y)m(ou)k(can)g(run)e(in)h(the)g
-(future)g(to)h(recreate)h(the)f(curren)m(t)f(con\014guration,)h(a)g
-(\014le)g(`)p Fs(config.cache)p Ft(')c(that)150 3501
-y(sa)m(v)m(es)35 b(the)f(results)f(of)h(its)g(tests)h(to)f(sp)s(eed)f
-(up)g(recon\014guring,)h(and)f(a)h(\014le)g(`)p Fs(config.log)p
-Ft(')d(con)m(taining)150 3611 y(compiler)25 b(output)g(\(useful)f
-(mainly)h(for)g(debugging)f Fs(configure)p Ft(\).)37
-b(If)24 b(at)i(some)f(p)s(oin)m(t)g(`)p Fs(config.cache)p
-Ft(')150 3720 y(con)m(tains)32 b(results)e(y)m(ou)g(don't)h(w)m(an)m(t)
-g(to)g(k)m(eep,)g(y)m(ou)g(ma)m(y)g(remo)m(v)m(e)h(or)e(edit)h(it.)275
-3862 y(T)-8 b(o)37 b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h
-(and)f(argumen)m(ts)g(that)h(the)g Fs(configure)d Ft(script)i(under-)
-150 3972 y(stands,)30 b(t)m(yp)s(e)390 4114 y Fs(bash-2.04$)45
-b(./configure)g(--help)150 4256 y Ft(at)31 b(the)g(Bash)f(prompt)g(in)g
+2953 y(v)-5 b(ariables)31 b(used)e(during)g(compilation.)42
+b(It)31 b(uses)e(those)i(v)-5 b(alues)30 b(to)h(create)h(a)e
+Ft(Makefile)e Fu(in)i(eac)m(h)i(direc-)150 3063 y(tory)k(of)g(the)g
+(pac)m(k)-5 b(age)38 b(\(the)e(top)g(directory)-8 b(,)38
+b(the)e Ft(builtins)p Fu(,)f Ft(doc)p Fu(,)i(and)e Ft(support)e
+Fu(directories,)39 b(eac)m(h)150 3172 y(directory)29
+b(under)d Ft(lib)p Fu(,)j(and)e(sev)m(eral)j(others\).)40
+b(It)29 b(also)g(creates)h(a)e Ft(config.h)e Fu(\014le)j(con)m(taining)
+g(system-)150 3282 y(dep)s(enden)m(t)e(de\014nitions.)40
+b(Finally)-8 b(,)31 b(it)d(creates)i(a)f(shell)g(script)f(named)g
+Ft(config.status)d Fu(that)k(y)m(ou)g(can)150 3392 y(run)h(in)h(the)h
+(future)f(to)h(recreate)h(the)f(curren)m(t)f(con\014guration,)i(a)f
+(\014le)f Ft(config.cache)e Fu(that)j(sa)m(v)m(es)h(the)150
+3501 y(results)39 b(of)g(its)h(tests)g(to)g(sp)s(eed)e(up)g
+(recon\014guring,)j(and)e(a)g(\014le)g Ft(config.log)e
+Fu(con)m(taining)j(compiler)150 3611 y(output)30 b(\(useful)h(mainly)g
+(for)f(debugging)h Ft(configure)p Fu(\).)40 b(If)30 b(at)h(some)h(p)s
+(oin)m(t)e Ft(config.cache)e Fu(con)m(tains)150 3720
+y(results)i(y)m(ou)h(don't)f(w)m(an)m(t)h(to)h(k)m(eep,)f(y)m(ou)g(ma)m
+(y)g(remo)m(v)m(e)g(or)g(edit)g(it.)275 3862 y(T)-8 b(o)37
+b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h(and)f(argumen)m(ts)g
+(that)h(the)g Ft(configure)d Fu(script)i(under-)150 3972
+y(stands,)30 b(t)m(yp)s(e)390 4114 y Ft(bash-2.04$)45
+b(./configure)g(--help)150 4256 y Fu(at)31 b(the)g(Bash)f(prompt)g(in)g
(y)m(our)g(Bash)h(source)f(directory)-8 b(.)275 4398
y(If)53 b(y)m(ou)h(need)f(to)i(do)e(un)m(usual)g(things)g(to)i(compile)
g(Bash,)k(please)c(try)e(to)i(\014gure)e(out)h(ho)m(w)150
-4508 y Fs(configure)47 b Ft(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h
+4508 y Ft(configure)47 b Fu(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h
(to)h(do)e(them,)55 b(and)49 b(mail)h(di\013s)f(or)h(instructions)f(to)
-150 4617 y Fs(bash-maintainers@gnu.org)24 b Ft(so)30
+150 4617 y Ft(bash-maintainers@gnu.org)24 b Fu(so)30
b(they)h(can)g(b)s(e)e(considered)i(for)f(the)g(next)h(release.)275
-4760 y(The)24 b(\014le)i(`)p Fs(configure.in)p Ft(')c(is)k(used)e(to)j
-(create)g Fs(configure)22 b Ft(b)m(y)k(a)g(program)f(called)h(Auto)s
-(conf.)39 b(Y)-8 b(ou)150 4869 y(only)31 b(need)f(`)p
-Fs(configure.in)p Ft(')d(if)k(y)m(ou)f(w)m(an)m(t)i(to)f(c)m(hange)g
-(it)g(or)f(regenerate)i Fs(configure)c Ft(using)i(a)h(new)m(er)150
-4979 y(v)m(ersion)25 b(of)f(Auto)s(conf.)39 b(If)24 b(y)m(ou)h(do)f
-(this,)i(mak)m(e)f(sure)f(y)m(ou)h(are)f(using)g(Auto)s(conf)h(v)m
-(ersion)f(2.50)i(or)f(new)m(er.)275 5121 y(Y)-8 b(ou)29
-b(can)f(remo)m(v)m(e)i(the)f(program)g(binaries)f(and)g(ob)5
-b(ject)29 b(\014les)g(from)f(the)h(source)f(co)s(de)h(directory)g(b)m
-(y)150 5230 y(t)m(yping)j(`)p Fs(make)d(clean)p Ft('.)42
-b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
-Fs(configure)e Ft(created)j(\(so)g(y)m(ou)g(can)f(compile)150
+4760 y(The)e(\014le)g Ft(configure.ac)d Fu(is)k(used)e(to)j(create)g
+Ft(configure)c Fu(b)m(y)i(a)h(program)f(called)i(Auto)s(conf.)40
+b(Y)-8 b(ou)150 4869 y(only)34 b(need)g Ft(configure.ac)d
+Fu(if)i(y)m(ou)i(w)m(an)m(t)g(to)f(c)m(hange)i(it)e(or)g(regenerate)i
+Ft(configure)31 b Fu(using)j(a)g(new)m(er)150 4979 y(v)m(ersion)25
+b(of)f(Auto)s(conf.)39 b(If)24 b(y)m(ou)h(do)f(this,)i(mak)m(e)f(sure)f
+(y)m(ou)h(are)f(using)g(Auto)s(conf)h(v)m(ersion)f(2.50)i(or)f(new)m
+(er.)275 5121 y(Y)-8 b(ou)29 b(can)f(remo)m(v)m(e)i(the)f(program)g
+(binaries)f(and)g(ob)5 b(ject)29 b(\014les)g(from)f(the)h(source)f(co)s
+(de)h(directory)g(b)m(y)150 5230 y(t)m(yping)j(`)p Ft(make)d(clean)p
+Fu('.)42 b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
+Ft(configure)e Fu(created)j(\(so)g(y)m(ou)g(can)f(compile)150
5340 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
-(yp)s(e)g(`)p Fs(make)e(distclean)p Ft('.)p eop end
-%%Page: 132 138
-TeXDict begin 132 137 bop 150 -116 a Ft(132)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fr(10.2)68 b(Compilers)46
-b(and)f(Options)150 458 y Ft(Some)28 b(systems)h(require)f(un)m(usual)f
-(options)i(for)f(compilation)i(or)f(linking)f(that)h(the)g
-Fs(configure)d Ft(script)150 568 y(do)s(es)32 b(not)g(kno)m(w)g(ab)s
-(out.)44 b(Y)-8 b(ou)33 b(can)f(giv)m(e)h Fs(configure)d
-Ft(initial)j(v)-5 b(alues)32 b(for)g(v)-5 b(ariables)32
-b(b)m(y)g(setting)h(them)150 677 y(in)k(the)g(en)m(vironmen)m(t.)62
-b(Using)38 b(a)f(Bourne-compatible)i(shell,)g(y)m(ou)f(can)g(do)f(that)
-h(on)f(the)g(command)150 787 y(line)31 b(lik)m(e)g(this:)390
-920 y Fs(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275
-1053 y Ft(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f
-Fs(env)e Ft(program,)h(y)m(ou)h(can)g(do)f(it)h(lik)m(e)h(this:)390
-1186 y Fs(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42
-b(LDFLAGS=-s)j(./configure)275 1318 y Ft(The)29 b(con\014guration)i
+(yp)s(e)g(`)p Ft(make)e(distclean)p Fu('.)p eop end
+%%Page: 139 145
+TeXDict begin 139 144 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(139)150 299 y Fs(10.2)68
+b(Compilers)46 b(and)f(Options)150 458 y Fu(Some)28 b(systems)h
+(require)f(un)m(usual)f(options)i(for)f(compilation)i(or)f(linking)f
+(that)h(the)g Ft(configure)d Fu(script)150 568 y(do)s(es)32
+b(not)g(kno)m(w)g(ab)s(out.)44 b(Y)-8 b(ou)33 b(can)f(giv)m(e)h
+Ft(configure)d Fu(initial)j(v)-5 b(alues)32 b(for)g(v)-5
+b(ariables)32 b(b)m(y)g(setting)h(them)150 677 y(in)k(the)g(en)m
+(vironmen)m(t.)62 b(Using)38 b(a)f(Bourne-compatible)i(shell,)g(y)m(ou)
+f(can)g(do)f(that)h(on)f(the)g(command)150 787 y(line)31
+b(lik)m(e)g(this:)390 920 y Ft(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g
+(./configure)275 1053 y Fu(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f
+Ft(env)e Fu(program,)h(y)m(ou)h(can)g(do)f(it)h(lik)m(e)h(this:)390
+1186 y Ft(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42
+b(LDFLAGS=-s)j(./configure)275 1318 y Fu(The)29 b(con\014guration)i
(pro)s(cess)f(uses)g(GCC)g(to)h(build)e(Bash)i(if)f(it)h(is)g(a)m(v)-5
-b(ailable.)150 1548 y Fr(10.3)68 b(Compiling)46 b(F)-11
-b(or)45 b(Multiple)g(Arc)l(hitectures)150 1707 y Ft(Y)-8
+b(ailable.)150 1548 y Fs(10.3)68 b(Compiling)46 b(F)-11
+b(or)45 b(Multiple)g(Arc)l(hitectures)150 1707 y Fu(Y)-8
b(ou)27 b(can)g(compile)g(Bash)g(for)f(more)h(than)f(one)h(kind)f(of)g
(computer)h(at)g(the)g(same)g(time,)h(b)m(y)e(placing)i(the)150
1817 y(ob)5 b(ject)31 b(\014les)f(for)g(eac)m(h)i(arc)m(hitecture)f(in)
f(their)g(o)m(wn)h(directory)-8 b(.)41 b(T)-8 b(o)31
b(do)f(this,)g(y)m(ou)h(m)m(ust)f(use)g(a)g(v)m(ersion)150
-1926 y(of)25 b Fs(make)f Ft(that)h(supp)s(orts)f(the)h
-Fs(VPATH)e Ft(v)-5 b(ariable,)27 b(suc)m(h)e(as)g(GNU)h
-Fs(make)p Ft(.)37 b Fs(cd)25 b Ft(to)h(the)f(directory)g(where)g(y)m
+1926 y(of)25 b Ft(make)f Fu(that)h(supp)s(orts)f(the)h
+Ft(VPATH)e Fu(v)-5 b(ariable,)27 b(suc)m(h)e(as)g(GNU)h
+Ft(make)p Fu(.)37 b Ft(cd)25 b Fu(to)h(the)f(directory)g(where)g(y)m
(ou)150 2036 y(w)m(an)m(t)34 b(the)f(ob)5 b(ject)34 b(\014les)f(and)f
-(executables)i(to)g(go)g(and)e(run)g(the)h Fs(configure)d
-Ft(script)j(from)g(the)g(source)150 2145 y(directory)-8
-b(.)41 b(Y)-8 b(ou)27 b(ma)m(y)h(need)f(to)g(supply)f(the)h(`)p
-Fs(--srcdir=PATH)p Ft(')d(argumen)m(t)k(to)g(tell)g Fs(configure)c
-Ft(where)150 2255 y(the)36 b(source)g(\014les)f(are.)57
-b Fs(configure)33 b Ft(automatically)39 b(c)m(hec)m(ks)e(for)e(the)h
+(executables)i(to)g(go)g(and)e(run)g(the)h Ft(configure)d
+Fu(script)j(from)g(the)g(source)150 2145 y(directory)-8
+b(.)44 b(Y)-8 b(ou)32 b(ma)m(y)g(need)f(to)h(supply)e(the)i
+Ft(--srcdir=PATH)27 b Fu(argumen)m(t)32 b(to)g(tell)h
+Ft(configure)28 b Fu(where)150 2255 y(the)36 b(source)g(\014les)f(are.)
+57 b Ft(configure)33 b Fu(automatically)39 b(c)m(hec)m(ks)e(for)e(the)h
(source)g(co)s(de)f(in)h(the)f(directory)150 2364 y(that)c
-Fs(configure)d Ft(is)i(in)g(and)g(in)g(`..'.)275 2497
-y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Fs(make)f
-Ft(that)i(do)s(es)e(not)i(supp)s(orts)d(the)i Fs(VPATH)e
-Ft(v)-5 b(ariable,)24 b(y)m(ou)e(can)f(compile)h(Bash)150
+Ft(configure)d Fu(is)i(in)g(and)g(in)g(`..'.)275 2497
+y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Ft(make)f
+Fu(that)i(do)s(es)e(not)i(supp)s(orts)d(the)i Ft(VPATH)e
+Fu(v)-5 b(ariable,)24 b(y)m(ou)e(can)f(compile)h(Bash)150
2607 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h
(source)g(co)s(de)f(directory)-8 b(.)51 b(After)34 b(y)m(ou)g(ha)m(v)m
(e)h(installed)f(Bash)150 2716 y(for)c(one)h(arc)m(hitecture,)h(use)e
-(`)p Fs(make)g(distclean)p Ft(')e(b)s(efore)i(recon\014guring)g(for)g
+(`)p Ft(make)g(distclean)p Fu(')e(b)s(efore)i(recon\014guring)g(for)g
(another)g(arc)m(hitecture.)275 2849 y(Alternativ)m(ely)-8
-b(,)26 b(if)21 b(y)m(our)h(system)g(supp)s(orts)d(sym)m(b)s(olic)j
-(links,)i(y)m(ou)e(can)g(use)f(the)h(`)p Fs(support/mkclone)p
-Ft(')150 2959 y(script)h(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f
-(has)f(sym)m(b)s(olic)i(links)e(bac)m(k)i(to)g(eac)m(h)g(\014le)f(in)g
-(the)g(source)g(directory)-8 b(.)150 3068 y(Here's)41
-b(an)f(example)i(that)f(creates)h(a)e(build)g(directory)h(in)f(the)h
-(curren)m(t)f(directory)h(from)f(a)h(source)150 3178
-y(directory)31 b(`)p Fs(/usr/gnu/src/bash-2.0)p Ft(':)390
-3311 y Fs(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o(mkcl)o(one)
-41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150 3444 y
-Ft(The)c Fs(mkclone)e Ft(script)i(requires)g(Bash,)i(so)f(y)m(ou)f(m)m
-(ust)h(ha)m(v)m(e)g(already)g(built)f(Bash)g(for)g(at)h(least)h(one)150
-3553 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f(create)i(build)e
-(directories)h(for)f(other)h(arc)m(hitectures.)150 3782
-y Fr(10.4)68 b(Installation)47 b(Names)150 3942 y Ft(By)27
-b(default,)h(`)p Fs(make)i(install)p Ft(')25 b(will)j(install)g(in)m
-(to)g(`)p Fs(/usr/local/bin)p Ft(',)c(`)p Fs(/usr/local/man)p
-Ft(',)h(etc.)40 b(Y)-8 b(ou)150 4051 y(can)31 b(sp)s(ecify)f(an)h
-(installation)h(pre\014x)d(other)i(than)g(`)p Fs(/usr/local)p
-Ft(')d(b)m(y)i(giving)i Fs(configure)c Ft(the)i(option)150
-4161 y(`)p Fs(--prefix=)p Fi(PATH)11 b Ft(',)35 b(or)h(b)m(y)g(sp)s
-(ecifying)g(a)h(v)-5 b(alue)37 b(for)f(the)h Fs(DESTDIR)d
-Ft(`)p Fs(make)p Ft(')i(v)-5 b(ariable)37 b(when)f(running)150
-4271 y(`)p Fs(make)29 b(install)p Ft('.)275 4403 y(Y)-8
+b(,)30 b(if)c(y)m(our)g(system)h(supp)s(orts)d(sym)m(b)s(olic)j(links,)
+g(y)m(ou)g(can)g(use)f(the)g Ft(support/mkclone)150 2959
+y Fu(script)d(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f(has)f(sym)m
+(b)s(olic)i(links)e(bac)m(k)i(to)g(eac)m(h)g(\014le)f(in)g(the)g
+(source)g(directory)-8 b(.)150 3068 y(Here's)41 b(an)f(example)i(that)f
+(creates)h(a)e(build)g(directory)h(in)f(the)h(curren)m(t)f(directory)h
+(from)f(a)h(source)150 3178 y(directory)31 b Ft(/usr/gnu/src/bash-2.0)p
+Fu(:)390 3311 y Ft(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o
+(mkcl)o(one)41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150
+3444 y Fu(The)c Ft(mkclone)e Fu(script)i(requires)g(Bash,)i(so)f(y)m
+(ou)f(m)m(ust)h(ha)m(v)m(e)g(already)g(built)f(Bash)g(for)g(at)h(least)
+h(one)150 3553 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f
+(create)i(build)e(directories)h(for)f(other)h(arc)m(hitectures.)150
+3782 y Fs(10.4)68 b(Installation)47 b(Names)150 3942
+y Fu(By)37 b(default,)i(`)p Ft(make)29 b(install)p Fu(')35
+b(will)j(install)f(in)m(to)h Ft(/usr/local/bin)p Fu(,)d
+Ft(/usr/local/man)p Fu(,)f(etc.)61 b(Y)-8 b(ou)150 4051
+y(can)35 b(sp)s(ecify)f(an)h(installation)i(pre\014x)c(other)j(than)e
+Ft(/usr/local)e Fu(b)m(y)j(giving)g Ft(configure)e Fu(the)h(option)150
+4161 y Ft(--prefix=)p Fj(PATH)p Fu(,)41 b(or)g(b)m(y)g(sp)s(ecifying)h
+(a)f(v)-5 b(alue)42 b(for)f(the)h Ft(DESTDIR)d Fu(`)p
+Ft(make)p Fu(')i(v)-5 b(ariable)42 b(when)f(running)150
+4271 y(`)p Ft(make)29 b(install)p Fu('.)275 4403 y(Y)-8
b(ou)71 b(can)h(sp)s(ecify)f(separate)h(installation)h(pre\014xes)d
(for)h(arc)m(hitecture-sp)s(eci\014c)i(\014les)f(and)150
-4513 y(arc)m(hitecture-indep)s(enden)m(t)38 b(\014les.)62
-b(If)37 b(y)m(ou)h(giv)m(e)g Fs(configure)d Ft(the)j(option)g(`)p
-Fs(--exec-prefix=)p Fi(PATH)11 b Ft(',)150 4623 y(`)p
-Fs(make)29 b(install)p Ft(')63 b(will)h(use)f Fq(P)-8
-b(A)g(TH)75 b Ft(as)64 b(the)g(pre\014x)e(for)i(installing)h(programs)e
-(and)h(libraries.)150 4732 y(Do)s(cumen)m(tation)32 b(and)e(other)h
-(data)g(\014les)f(will)h(still)g(use)f(the)h(regular)f(pre\014x.)150
-4961 y Fr(10.5)68 b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)150
-5121 y Ft(There)f(ma)m(y)g(b)s(e)f(some)i(features)f
-Fs(configure)e Ft(can)i(not)g(\014gure)g(out)g(automatically)-8
-b(,)52 b(but)44 b(need)h(to)150 5230 y(determine)36 b(b)m(y)g(the)h(t)m
-(yp)s(e)f(of)g(host)h(Bash)f(will)h(run)d(on.)58 b(Usually)37
-b Fs(configure)d Ft(can)i(\014gure)g(that)g(out,)150
-5340 y(but)c(if)h(it)g(prin)m(ts)g(a)g(message)h(sa)m(ying)g(it)f(can)h
-(not)f(guess)g(the)g(host)g(t)m(yp)s(e,)h(giv)m(e)g(it)f(the)h(`)p
-Fs(--host=TYPE)p Ft(')p eop end
-%%Page: 133 139
-TeXDict begin 133 138 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(133)150 299 y(option.)39
-b(`)p Fs(TYPE)p Ft(')25 b(can)g(either)g(b)s(e)g(a)g(short)g(name)g
-(for)g(the)g(system)g(t)m(yp)s(e,)h(suc)m(h)f(as)g(`)p
-Fs(sun4)p Ft(',)h(or)f(a)g(canonical)150 408 y(name)30
-b(with)g(three)h(\014elds:)40 b(`)p Fs(CPU-COMPANY-SYSTEM)p
-Ft(')26 b(\(e.g.,)32 b(`)p Fs(i386-unknown-freebsd4.2)p
-Ft('\).)275 539 y(See)e(the)h(\014le)f(`)p Fs(support/config.sub)p
-Ft(')c(for)k(the)h(p)s(ossible)f(v)-5 b(alues)30 b(of)h(eac)m(h)g
-(\014eld.)150 764 y Fr(10.6)68 b(Sharing)45 b(Defaults)150
-924 y Ft(If)d(y)m(ou)i(w)m(an)m(t)g(to)f(set)h(default)f(v)-5
-b(alues)43 b(for)g Fs(configure)d Ft(scripts)j(to)h(share,)i(y)m(ou)d
-(can)g(create)i(a)e(site)150 1033 y(shell)48 b(script)f(called)i
-Fs(config.site)44 b Ft(that)k(giv)m(es)h(default)f(v)-5
-b(alues)48 b(for)f(v)-5 b(ariables)48 b(lik)m(e)h Fs(CC)p
-Ft(,)j Fs(cache_)150 1143 y(file)p Ft(,)43 b(and)e Fs(prefix)p
-Ft(.)73 b Fs(configure)39 b Ft(lo)s(oks)j(for)f(`)p Fs
-(PREFIX/share/config.site)p Ft(')35 b(if)42 b(it)g(exists,)j(then)150
-1252 y(`)p Fs(PREFIX/etc/config.site)p Ft(')20 b(if)26
-b(it)g(exists.)40 b(Or,)26 b(y)m(ou)g(can)g(set)g(the)g
-Fs(CONFIG_SITE)c Ft(en)m(vironmen)m(t)k(v)-5 b(ari-)150
+4513 y(arc)m(hitecture-indep)s(enden)m(t)44 b(\014les.)80
+b(If)43 b(y)m(ou)h(giv)m(e)h Ft(configure)c Fu(the)j(option)g
+Ft(--exec-prefix=)p Fj(PATH)p Fu(,)150 4623 y(`)p Ft(make)29
+b(install)p Fu(')63 b(will)h(use)f Fr(P)-8 b(A)g(TH)75
+b Fu(as)64 b(the)g(pre\014x)e(for)i(installing)h(programs)e(and)h
+(libraries.)150 4732 y(Do)s(cumen)m(tation)32 b(and)e(other)h(data)g
+(\014les)f(will)h(still)g(use)f(the)h(regular)f(pre\014x.)150
+4961 y Fs(10.5)68 b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)150
+5121 y Fu(There)f(ma)m(y)g(b)s(e)f(some)i(features)f
+Ft(configure)e Fu(can)i(not)g(\014gure)g(out)g(automatically)-8
+b(,)52 b(but)44 b(need)h(to)150 5230 y(determine)26 b(b)m(y)g(the)g(t)m
+(yp)s(e)g(of)g(host)g(Bash)g(will)g(run)f(on.)39 b(Usually)26
+b Ft(configure)d Fu(can)k(\014gure)e(that)h(out,)i(but)150
+5340 y(if)g(it)g(prin)m(ts)f(a)h(message)g(sa)m(ying)h(it)f(can)g(not)f
+(guess)h(the)g(host)f(t)m(yp)s(e,)i(giv)m(e)g(it)f(the)g
+Ft(--host=TYPE)c Fu(option.)p eop end
+%%Page: 140 146
+TeXDict begin 140 145 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(140)150 299 y(`)p Ft(TYPE)p
+Fu(')29 b(can)h(either)g(b)s(e)g(a)g(short)f(name)h(for)f(the)h(system)
+g(t)m(yp)s(e,)h(suc)m(h)e(as)h(`)p Ft(sun4)p Fu(',)g(or)f(a)h
+(canonical)i(name)150 408 y(with)e(three)h(\014elds:)40
+b(`)p Ft(CPU-COMPANY-SYSTEM)p Fu(')26 b(\(e.g.,)32 b(`)p
+Ft(i386-unknown-freebsd4.2)p Fu('\).)275 539 y(See)e(the)h(\014le)f
+Ft(support/config.sub)c Fu(for)k(the)g(p)s(ossible)g(v)-5
+b(alues)31 b(of)f(eac)m(h)i(\014eld.)150 764 y Fs(10.6)68
+b(Sharing)45 b(Defaults)150 924 y Fu(If)d(y)m(ou)i(w)m(an)m(t)g(to)f
+(set)h(default)f(v)-5 b(alues)43 b(for)g Ft(configure)d
+Fu(scripts)j(to)h(share,)i(y)m(ou)d(can)g(create)i(a)e(site)150
+1033 y(shell)48 b(script)f(called)i Ft(config.site)44
+b Fu(that)k(giv)m(es)h(default)f(v)-5 b(alues)48 b(for)f(v)-5
+b(ariables)48 b(lik)m(e)h Ft(CC)p Fu(,)j Ft(cache_)150
+1143 y(file)p Fu(,)c(and)d Ft(prefix)p Fu(.)85 b Ft(configure)43
+b Fu(lo)s(oks)j(for)f Ft(PREFIX/share/config.site)39
+b Fu(if)46 b(it)g(exists,)k(then)150 1252 y Ft(PREFIX/etc/config.site)
+24 b Fu(if)31 b(it)g(exists.)42 b(Or,)30 b(y)m(ou)h(can)g(set)g(the)g
+Ft(CONFIG_SITE)c Fu(en)m(vironmen)m(t)k(v)-5 b(ari-)150
1362 y(able)40 b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67
-b(A)40 b(w)m(arning:)58 b(the)40 b(Bash)g Fs(configure)c
-Ft(lo)s(oks)k(for)f(a)h(site)150 1472 y(script,)31 b(but)e(not)i(all)g
-Fs(configure)d Ft(scripts)i(do.)150 1697 y Fr(10.7)68
-b(Op)t(eration)46 b(Con)l(trols)150 1856 y Fs(configure)28
-b Ft(recognizes)k(the)e(follo)m(wing)i(options)f(to)g(con)m(trol)h(ho)m
-(w)e(it)h(op)s(erates.)150 2008 y Fs(--cache-file=)p
-Fi(file)630 2117 y Ft(Use)k(and)g(sa)m(v)m(e)h(the)f(results)g(of)g
-(the)h(tests)f(in)g Fq(\014le)40 b Ft(instead)35 b(of)h(`)p
-Fs(./config.cache)p Ft('.)51 b(Set)630 2227 y Fq(\014le)36
-b Ft(to)31 b(`)p Fs(/dev/null)p Ft(')d(to)j(disable)g(cac)m(hing,)h
-(for)e(debugging)g Fs(configure)p Ft(.)150 2379 y Fs(--help)192
-b Ft(Prin)m(t)30 b(a)h(summary)e(of)i(the)f(options)h(to)g
-Fs(configure)p Ft(,)d(and)i(exit.)150 2531 y Fs(--quiet)150
-2641 y(--silent)150 2750 y(-q)384 b Ft(Do)31 b(not)g(prin)m(t)f
+b(A)40 b(w)m(arning:)58 b(the)40 b(Bash)g Ft(configure)c
+Fu(lo)s(oks)k(for)f(a)h(site)150 1472 y(script,)31 b(but)e(not)i(all)g
+Ft(configure)d Fu(scripts)i(do.)150 1697 y Fs(10.7)68
+b(Op)t(eration)46 b(Con)l(trols)150 1856 y Ft(configure)28
+b Fu(recognizes)k(the)e(follo)m(wing)i(options)f(to)g(con)m(trol)h(ho)m
+(w)e(it)h(op)s(erates.)150 2008 y Ft(--cache-file=)p
+Fj(file)630 2117 y Fu(Use)d(and)g(sa)m(v)m(e)h(the)f(results)g(of)g
+(the)h(tests)f(in)g Fr(\014le)33 b Fu(instead)28 b(of)h
+Ft(./config.cache)p Fu(.)36 b(Set)28 b Fr(\014le)630
+2227 y Fu(to)j Ft(/dev/null)d Fu(to)j(disable)g(cac)m(hing,)h(for)e
+(debugging)g Ft(configure)p Fu(.)150 2379 y Ft(--help)192
+b Fu(Prin)m(t)30 b(a)h(summary)e(of)i(the)f(options)h(to)g
+Ft(configure)p Fu(,)d(and)i(exit.)150 2531 y Ft(--quiet)150
+2641 y(--silent)150 2750 y(-q)384 b Fu(Do)31 b(not)g(prin)m(t)f
(messages)h(sa)m(ying)g(whic)m(h)g(c)m(hec)m(ks)g(are)g(b)s(eing)f
-(made.)150 2902 y Fs(--srcdir=)p Fi(dir)630 3012 y Ft(Lo)s(ok)i(for)f
-(the)h(Bash)g(source)f(co)s(de)h(in)f(directory)h Fq(dir)7
-b Ft(.)44 b(Usually)32 b Fs(configure)d Ft(can)i(deter-)630
-3121 y(mine)f(that)h(directory)g(automatically)-8 b(.)150
-3273 y Fs(--version)630 3383 y Ft(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g
-(Auto)s(conf)f(used)g(to)h(generate)h(the)f Fs(configure)d
-Ft(script,)j(and)f(exit.)275 3535 y Fs(configure)34 b
-Ft(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
-(oilerplate)g(options.)61 b(`)p Fs(configure)150 3644
-y(--help)p Ft(')29 b(prin)m(ts)h(the)g(complete)i(list.)150
-3869 y Fr(10.8)68 b(Optional)46 b(F)-11 b(eatures)150
-4029 y Ft(The)24 b(Bash)g Fs(configure)e Ft(has)h(a)i(n)m(um)m(b)s(er)e
-(of)h(`)p Fs(--enable-)p Fi(feature)11 b Ft(')20 b(options,)26
-b(where)d Fq(feature)30 b Ft(indicates)150 4138 y(an)f(optional)i(part)
-e(of)g(Bash.)41 b(There)28 b(are)i(also)g(sev)m(eral)h(`)p
-Fs(--with-)p Fi(package)11 b Ft(')25 b(options,)30 b(where)f
-Fq(pac)m(k)-5 b(age)150 4248 y Ft(is)32 b(something)h(lik)m(e)h(`)p
-Fs(bash-malloc)p Ft(')c(or)i(`)p Fs(purify)p Ft('.)45
+(made.)150 2902 y Ft(--srcdir=)p Fj(dir)630 3012 y Fu(Lo)s(ok)i(for)g
+(the)g(Bash)g(source)h(co)s(de)f(in)g(directory)g Fr(dir)p
+Fu(.)45 b(Usually)33 b Ft(configure)c Fu(can)j(deter-)630
+3121 y(mine)e(that)h(directory)g(automatically)-8 b(.)150
+3273 y Ft(--version)630 3383 y Fu(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g
+(Auto)s(conf)f(used)g(to)h(generate)h(the)f Ft(configure)d
+Fu(script,)j(and)f(exit.)275 3535 y Ft(configure)34 b
+Fu(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
+(oilerplate)g(options.)61 b(`)p Ft(configure)150 3644
+y(--help)p Fu(')29 b(prin)m(ts)h(the)g(complete)i(list.)150
+3869 y Fs(10.8)68 b(Optional)46 b(F)-11 b(eatures)150
+4029 y Fu(The)29 b(Bash)h Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f
+(of)h Ft(--enable-)p Fj(feature)25 b Fu(options,)30 b(where)g
+Fr(feature)35 b Fu(indicates)150 4138 y(an)e(optional)i(part)e(of)h
+(Bash.)50 b(There)33 b(are)g(also)i(sev)m(eral)g Ft(--with-)p
+Fj(package)29 b Fu(options,)35 b(where)e Fr(pac)m(k)-5
+b(age)150 4248 y Fu(is)32 b(something)h(lik)m(e)h(`)p
+Ft(bash-malloc)p Fu(')c(or)i(`)p Ft(purify)p Fu('.)45
b(T)-8 b(o)33 b(turn)e(o\013)i(the)f(default)h(use)f(of)g(a)h(pac)m(k)
--5 b(age,)35 b(use)150 4357 y(`)p Fs(--without-)p Fi(package)11
-b Ft('.)36 b(T)-8 b(o)29 b(con\014gure)g(Bash)h(without)f(a)g(feature)h
-(that)g(is)f(enabled)g(b)m(y)g(default,)h(use)150 4467
-y(`)p Fs(--disable-)p Fi(feature)11 b Ft('.)275 4598
-y(Here)21 b(is)g(a)g(complete)h(list)g(of)f(the)g(`)p
-Fs(--enable-)p Ft(')e(and)h(`)p Fs(--with-)p Ft(')g(options)h(that)g
-(the)g(Bash)g Fs(configure)150 4707 y Ft(recognizes.)150
-4859 y Fs(--with-afs)630 4969 y Ft(De\014ne)31 b(if)f(y)m(ou)h(are)f
-(using)g(the)h(Andrew)e(File)j(System)e(from)g(T)-8 b(ransarc.)150
-5121 y Fs(--with-bash-malloc)630 5230 y Ft(Use)31 b(the)g(Bash)f(v)m
-(ersion)i(of)e Fs(malloc)f Ft(in)h(the)h(directory)g(`)p
-Fs(lib/malloc)p Ft('.)39 b(This)30 b(is)h(not)g(the)630
-5340 y(same)h Fs(malloc)e Ft(that)j(app)s(ears)e(in)g
-Fl(gnu)h Ft(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i(originally)g
-(deriv)m(ed)p eop end
-%%Page: 134 140
-TeXDict begin 134 139 bop 150 -116 a Ft(134)2527 b(Bash)31
-b(Reference)g(Man)m(ual)630 299 y(from)h(the)h(4.2)g
-Fl(bsd)f Fs(malloc)p Ft(.)45 b(This)31 b Fs(malloc)g
-Ft(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630
-408 y(eac)m(h)g(allo)s(cation.)48 b(This)31 b(option)i(is)f(enabled)g
-(b)m(y)g(default.)46 b(The)31 b(`)p Fs(NOTES)p Ft(')g(\014le)h(con)m
-(tains)i(a)630 518 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g
-(should)e(b)s(e)i(turned)e(o\013,)j(and)f Fs(configure)d
-Ft(disables)j(this)630 628 y(option)j(automatically)i(for)d(a)h(n)m(um)
-m(b)s(er)e(of)i(systems.)150 798 y Fs(--with-curses)630
-907 y Ft(Use)h(the)h(curses)e(library)h(instead)g(of)h(the)f(termcap)g
-(library)-8 b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630
-1017 y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete)
-i(termcap)e(database.)150 1187 y Fs(--with-gnu-malloc)630
-1297 y Ft(A)g(synon)m(ym)g(for)g Fs(--with-bash-malloc)p
-Ft(.)150 1467 y Fs(--with-installed-readlin)o(e[=)p Fi(P)o(REFI)o(X)11
-b Fs(])630 1576 y Ft(De\014ne)26 b(this)f(to)h(mak)m(e)h(Bash)f(link)f
-(with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather)
-630 1686 y(than)38 b(the)h(v)m(ersion)g(in)g(`)p Fs(lib/readline)p
-Ft('.)62 b(This)38 b(w)m(orks)h(only)f(with)h(Readline)g(5.0)h(and)630
-1796 y(later)29 b(v)m(ersions.)40 b(If)28 b Fq(PREFIX)37
-b Ft(is)28 b Fs(yes)f Ft(or)h(not)g(supplied,)f Fs(configure)f
-Ft(uses)h(the)h(v)-5 b(alues)29 b(of)630 1905 y(the)c(mak)m(e)g(v)-5
-b(ariables)25 b Fs(includedir)d Ft(and)h Fs(libdir)p
-Ft(,)h(whic)m(h)h(are)f(sub)s(directories)g(of)h Fs(prefix)630
-2015 y Ft(b)m(y)32 b(default,)g(to)h(\014nd)d(the)i(installed)h(v)m
-(ersion)f(of)g(Readline)h(if)f(it)g(is)g(not)g(in)g(the)g(standard)630
-2124 y(system)j(include)f(and)g(library)g(directories.)54
-b(If)34 b Fq(PREFIX)43 b Ft(is)35 b Fs(no)p Ft(,)g(Bash)f(links)h(with)
-f(the)630 2234 y(v)m(ersion)k(in)f(`)p Fs(lib/readline)p
-Ft('.)58 b(If)37 b Fq(PREFIX)46 b Ft(is)38 b(set)g(to)g(an)m(y)f(other)
-h(v)-5 b(alue,)39 b Fs(configure)630 2344 y Ft(treats)27
+-5 b(age,)35 b(use)150 4357 y Ft(--without-)p Fj(package)p
+Fu(.)46 b(T)-8 b(o)34 b(con\014gure)g(Bash)g(without)f(a)i(feature)f
+(that)g(is)g(enabled)g(b)m(y)f(default,)i(use)150 4467
+y Ft(--disable-)p Fj(feature)p Fu(.)275 4598 y(Here)28
+b(is)g(a)h(complete)g(list)g(of)f(the)h Ft(--enable-)c
+Fu(and)j Ft(--with-)e Fu(options)i(that)h(the)f(Bash)g
+Ft(configure)150 4707 y Fu(recognizes.)150 4859 y Ft(--with-afs)630
+4969 y Fu(De\014ne)j(if)f(y)m(ou)h(are)f(using)g(the)h(Andrew)e(File)j
+(System)e(from)g(T)-8 b(ransarc.)150 5121 y Ft(--with-bash-malloc)630
+5230 y Fu(Use)34 b(the)g(Bash)h(v)m(ersion)f(of)g Ft(malloc)e
+Fu(in)i(the)g(directory)h Ft(lib/malloc)p Fu(.)48 b(This)34
+b(is)g(not)g(the)630 5340 y(same)e Ft(malloc)e Fu(that)j(app)s(ears)e
+(in)g Fm(gnu)h Fu(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i
+(originally)g(deriv)m(ed)p eop end
+%%Page: 141 147
+TeXDict begin 141 146 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(141)630 299 y(from)32 b(the)h(4.2)g
+Fm(bsd)f Ft(malloc)p Fu(.)45 b(This)31 b Ft(malloc)g
+Fu(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630
+408 y(eac)m(h)j(allo)s(cation.)58 b(This)34 b(option)i(is)f(enabled)g
+(b)m(y)g(default.)56 b(The)34 b Ft(NOTES)g Fu(\014le)h(con)m(tains)i(a)
+630 518 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g(should)e(b)s
+(e)i(turned)e(o\013,)j(and)f Ft(configure)d Fu(disables)j(this)630
+628 y(option)j(automatically)i(for)d(a)h(n)m(um)m(b)s(er)e(of)i
+(systems.)150 789 y Ft(--with-curses)630 899 y Fu(Use)h(the)h(curses)e
+(library)h(instead)g(of)h(the)f(termcap)g(library)-8
+b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630 1008
+y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete)i
+(termcap)e(database.)150 1170 y Ft(--with-gnu-malloc)630
+1279 y Fu(A)g(synon)m(ym)g(for)g Ft(--with-bash-malloc)p
+Fu(.)150 1441 y Ft(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)p
+Ft(])630 1550 y Fu(De\014ne)c(this)f(to)h(mak)m(e)h(Bash)f(link)f(with)
+g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather)630
+1660 y(than)f(the)h(v)m(ersion)g(in)f Ft(lib/readline)p
+Fu(.)36 b(This)25 b(w)m(orks)g(only)h(with)f(Readline)h(5.0)h(and)e
+(later)630 1769 y(v)m(ersions.)46 b(If)32 b Fr(PREFIX)41
+b Fu(is)32 b Ft(yes)f Fu(or)i(not)f(supplied,)f Ft(configure)f
+Fu(uses)i(the)g(v)-5 b(alues)32 b(of)h(the)630 1879 y(mak)m(e)28
+b(v)-5 b(ariables)29 b Ft(includedir)24 b Fu(and)j Ft(libdir)p
+Fu(,)g(whic)m(h)g(are)h(sub)s(directories)f(of)g Ft(prefix)f
+Fu(b)m(y)630 1989 y(default,)44 b(to)d(\014nd)f(the)h(installed)g(v)m
+(ersion)h(of)f(Readline)g(if)g(it)g(is)g(not)g(in)g(the)g(standard)630
+2098 y(system)35 b(include)f(and)g(library)g(directories.)54
+b(If)34 b Fr(PREFIX)43 b Fu(is)35 b Ft(no)p Fu(,)g(Bash)f(links)h(with)
+f(the)630 2208 y(v)m(ersion)42 b(in)e Ft(lib/readline)p
+Fu(.)70 b(If)40 b Fr(PREFIX)51 b Fu(is)41 b(set)g(to)h(an)m(y)g(other)f
+(v)-5 b(alue,)44 b Ft(configure)630 2317 y Fu(treats)27
b(it)g(as)f(a)h(directory)g(pathname)f(and)f(lo)s(oks)i(for)f(the)g
-(installed)h(v)m(ersion)g(of)f(Readline)630 2453 y(in)34
+(installed)h(v)m(ersion)g(of)f(Readline)630 2427 y(in)34
b(sub)s(directories)f(of)h(that)h(directory)g(\(include)f(\014les)g(in)
-g Fq(PREFIX)9 b Ft(/)p Fs(include)32 b Ft(and)i(the)630
-2563 y(library)c(in)g Fq(PREFIX)9 b Ft(/)p Fs(lib)p Ft(\).)150
-2733 y Fs(--with-purify)630 2843 y Ft(De\014ne)23 b(this)g(to)h(use)f
+g Fr(PREFIX)9 b Fu(/)p Ft(include)32 b Fu(and)i(the)630
+2536 y(library)c(in)g Fr(PREFIX)9 b Fu(/)p Ft(lib)p Fu(\).)150
+2698 y Ft(--with-purify)630 2807 y Fu(De\014ne)23 b(this)g(to)h(use)f
(the)g(Purify)f(memory)h(allo)s(cation)i(c)m(hec)m(k)m(er)g(from)e
-(Rational)i(Soft)m(w)m(are.)150 3013 y Fs(--enable-minimal-config)630
-3122 y Ft(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h
+(Rational)i(Soft)m(w)m(are.)150 2969 y Ft(--enable-minimal-config)630
+3078 y Fu(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h
(close)g(to)f(the)g(historical)h(Bourne)e(shell.)275
-3298 y(There)g(are)i(sev)m(eral)g(`)p Fs(--enable-)p
-Ft(')d(options)j(that)f(alter)h(ho)m(w)g(Bash)f(is)g(compiled)h(and)e
-(link)m(ed,)j(rather)150 3407 y(than)k(c)m(hanging)h(run-time)f
-(features.)150 3583 y Fs(--enable-largefile)630 3693
-y Ft(Enable)76 b(supp)s(ort)f(for)h(large)h(\014les)f(\()p
-Fs(http://www.sas.com/standar)o(ds/l)o(arge)o(_)630 3802
-y(file/x_open.20Mar96.html)o Ft(\))23 b(if)28 b(the)g(op)s(erating)h
-(system)f(requires)g(sp)s(ecial)g(compiler)630 3912 y(options)45
-b(to)g(build)e(programs)h(whic)m(h)g(can)g(access)i(large)f(\014les.)82
-b(This)44 b(is)g(enabled)g(b)m(y)630 4021 y(default,)31
-b(if)f(the)h(op)s(erating)g(system)f(pro)m(vides)g(large)i(\014le)e
-(supp)s(ort.)150 4191 y Fs(--enable-profiling)630 4301
-y Ft(This)h(builds)f(a)i(Bash)g(binary)f(that)h(pro)s(duces)e
+3241 y(There)k(are)i(sev)m(eral)g Ft(--enable-)d Fu(options)i(that)h
+(alter)g(ho)m(w)f(Bash)g(is)g(compiled)h(and)e(link)m(ed,)i(rather)150
+3350 y(than)h(c)m(hanging)h(run-time)f(features.)150
+3513 y Ft(--enable-largefile)630 3622 y Fu(Enable)e(supp)s(ort)f(for)h
+(large)i(\014les)f(\()p Ft(http://www.sas.com/stand)o(ards)o(/la)o
+(rge_)o(file)o(/)630 3732 y(x_open)5 b(.)t(20Mar96)g(.)t(html)p
+Fu(\))31 b(if)37 b(the)f(op)s(erating)h(system)g(requires)f(sp)s(ecial)
+h(compiler)g(op-)630 3842 y(tions)27 b(to)h(build)e(programs)h(whic)m
+(h)g(can)g(access)h(large)h(\014les.)39 b(This)26 b(is)i(enabled)f(b)m
+(y)f(default,)630 3951 y(if)k(the)h(op)s(erating)g(system)f(pro)m
+(vides)h(large)g(\014le)g(supp)s(ort.)150 4113 y Ft(--enable-profiling)
+630 4222 y Fu(This)g(builds)f(a)i(Bash)g(binary)f(that)h(pro)s(duces)e
(pro\014ling)h(information)h(to)h(b)s(e)d(pro)s(cessed)630
-4411 y(b)m(y)g Fs(gprof)f Ft(eac)m(h)j(time)f(it)g(is)f(executed.)150
-4581 y Fs(--enable-static-link)630 4690 y Ft(This)37
+4332 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f(it)g(is)f(executed.)150
+4493 y Ft(--enable-static-link)630 4603 y Fu(This)37
b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)-8
-b(,)43 b(if)37 b Fs(gcc)g Ft(is)g(b)s(eing)g(used.)61
-b(This)37 b(could)h(b)s(e)630 4800 y(used)30 b(to)h(build)e(a)i(v)m
-(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 4976
-y(The)f(`)p Fs(minimal-config)p Ft(')d(option)k(can)g(b)s(e)f(used)f
+b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
+b(This)37 b(could)h(b)s(e)630 4712 y(used)30 b(to)h(build)e(a)i(v)m
+(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 4875
+y(The)f(`)p Ft(minimal-config)p Fu(')d(option)k(can)g(b)s(e)f(used)f
(to)j(disable)e(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150
-5085 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
-(y)h(b)s(e)f(enabled)g(using)g(`)p Fs(enable-)p Fi(feature)11
-b Ft('.)275 5230 y(All)37 b(of)g(the)f(follo)m(wing)i(options)f(except)
-h(for)e(`)p Fs(disabled-builtins)p Ft(')d(and)j(`)p Fs
-(xpg-echo-default)p Ft(')150 5340 y(are)26 b(enabled)g(b)m(y)g
-(default,)h(unless)f(the)g(op)s(erating)g(system)g(do)s(es)g(not)g(pro)
-m(vide)g(the)g(necessary)g(supp)s(ort.)p eop end
-%%Page: 135 141
-TeXDict begin 135 140 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(135)150 299 y Fs(--enable-alias)630
-408 y Ft(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
-Fs(alias)f Ft(and)g Fs(unalias)e Ft(builtins)j(\(see)g(Sec-)630
-518 y(tion)31 b(6.6)g([Aliases],)i(page)e(81\).)150 692
-y Fs(--enable-arith-for-comma)o(nd)630 801 y Ft(Include)21
+4984 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
+(y)h(b)s(e)f(enabled)g(using)g(`)p Ft(enable-)p Fj(feature)p
+Fu('.)275 5121 y(All)41 b(of)g(the)g(follo)m(wing)i(options)e(except)h
+(for)f(`)p Ft(disabled-builtins)p Fu(',)e(`)p Ft(directpand-default)p
+Fu(',)150 5230 y(and)45 b(`)p Ft(xpg-echo-default)p Fu(')c(are)k
+(enabled)h(b)m(y)f(default,)k(unless)44 b(the)i(op)s(erating)f(system)h
+(do)s(es)f(not)150 5340 y(pro)m(vide)30 b(the)h(necessary)g(supp)s
+(ort.)p eop end
+%%Page: 142 148
+TeXDict begin 142 147 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(142)150 299 y Ft(--enable-alias)630
+408 y Fu(Allo)m(w)41 b(alias)g(expansion)f(and)f(include)g(the)h
+Ft(alias)f Fu(and)g Ft(unalias)e Fu(builtins)j(\(see)g(Sec-)630
+518 y(tion)31 b(6.6)g([Aliases],)i(page)e(88\).)150 682
+y Ft(--enable-arith-for-comma)o(nd)630 792 y Fu(Include)21
b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g
-Fs(for)f Ft(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
-911 y(C)30 b(language)i Fs(for)d Ft(statemen)m(t)j(\(see)g(Section)f
+Ft(for)f Fu(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
+902 y(C)30 b(language)i Ft(for)d Fu(statemen)m(t)j(\(see)g(Section)f
(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)150
-1084 y Fs(--enable-array-variables)630 1194 y Ft(Include)h(supp)s(ort)g
+1066 y Ft(--enable-array-variables)630 1176 y Fu(Include)h(supp)s(ort)g
(for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33
-b(\(see)h(Section)g(6.7)h([Ar-)630 1303 y(ra)m(ys],)c(page)g(82\).)150
-1477 y Fs(--enable-bang-history)630 1587 y Ft(Include)36
-b(supp)s(ort)f(for)h Fs(csh)p Ft(-lik)m(e)h(history)g(substitution)f
-(\(see)h(Section)g(9.3)h([History)f(In-)630 1696 y(teraction],)c(page)e
-(127\).)150 1870 y Fs(--enable-brace-expansion)630 1979
-y Ft(Include)40 b Fs(csh)p Ft(-lik)m(e)h(brace)f(expansion)g(\()h
-Fs(b{a,b}c)d Fp(7!)i Fs(bac)30 b(bbc)39 b Ft(\).)71 b(See)40
-b(Section)h(3.5.1)630 2089 y([Brace)32 b(Expansion],)e(page)h(19,)h
-(for)e(a)g(complete)i(description.)150 2262 y Fs
-(--enable-casemod-attribu)o(tes)630 2372 y Ft(Include)37
+b(\(see)h(Section)g(6.7)h([Ar-)630 1285 y(ra)m(ys],)c(page)g(89\).)150
+1450 y Ft(--enable-bang-history)630 1559 y Fu(Include)36
+b(supp)s(ort)f(for)h Ft(csh)p Fu(-lik)m(e)h(history)g(substitution)f
+(\(see)h(Section)g(9.3)h([History)f(In-)630 1669 y(teraction],)c(page)e
+(135\).)150 1833 y Ft(--enable-brace-expansion)630 1943
+y Fu(Include)40 b Ft(csh)p Fu(-lik)m(e)h(brace)f(expansion)g(\()h
+Ft(b{a,b}c)d Fq(7!)i Ft(bac)30 b(bbc)39 b Fu(\).)71 b(See)40
+b(Section)h(3.5.1)630 2052 y([Brace)32 b(Expansion],)e(page)h(21,)h
+(for)e(a)g(complete)i(description.)150 2217 y Ft
+(--enable-casemod-attribu)o(tes)630 2326 y Fu(Include)37
b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h
-Fs(declare)e Ft(builtin)i(and)f(as-)630 2482 y(signmen)m(t)29
+Ft(declare)e Fu(builtin)i(and)f(as-)630 2436 y(signmen)m(t)29
b(statemen)m(ts.)41 b(V)-8 b(ariables)30 b(with)e(the)g
-Fq(upp)s(ercase)k Ft(attribute,)e(for)e(example,)i(will)630
-2591 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f
-(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 2765 y Fs
-(--enable-casemod-expansi)o(on)630 2874 y Ft(Include)h(supp)s(ort)e
+Fr(upp)s(ercase)k Fu(attribute,)e(for)e(example,)i(will)630
+2545 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f
+(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 2710 y Ft
+(--enable-casemod-expansi)o(on)630 2819 y Fu(Include)h(supp)s(ort)e
(for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150
-3048 y Fs(--enable-command-timing)630 3157 y Ft(Include)43
-b(supp)s(ort)f(for)h(recognizing)i Fs(time)e Ft(as)g(a)h(reserv)m(ed)g
-(w)m(ord)f(and)g(for)h(displa)m(ying)630 3267 y(timing)37
+2984 y Ft(--enable-command-timing)630 3093 y Fu(Include)43
+b(supp)s(ort)f(for)h(recognizing)i Ft(time)e Fu(as)g(a)h(reserv)m(ed)g
+(w)m(ord)f(and)g(for)h(displa)m(ying)630 3203 y(timing)37
b(statistics)h(for)e(the)g(pip)s(eline)g(follo)m(wing)i
-Fs(time)d Ft(\(see)i(Section)g(3.2.2)h([Pip)s(elines],)630
-3377 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w)
+Ft(time)d Fu(\(see)i(Section)g(3.2.2)h([Pip)s(elines],)630
+3313 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w)
m(ell)g(as)g(shell)f(builtins)g(and)g(functions)g(to)h(b)s(e)e(timed.)
-150 3550 y Fs(--enable-cond-command)630 3660 y Ft(Include)33
-b(supp)s(ort)f(for)i(the)g Fs([[)f Ft(conditional)i(command.)51
-b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 3769 y(tional)c
-(Constructs],)e(page)h(10\).)150 3943 y Fs(--enable-cond-regexp)630
-4052 y Ft(Include)k(supp)s(ort)f(for)i(matc)m(hing)h
-Fl(posix)e Ft(regular)h(expressions)g(using)f(the)h(`)p
-Fs(=~)p Ft(')g(binary)630 4162 y(op)s(erator)25 b(in)f(the)h
-Fs([[)f Ft(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.4.2)h
-([Conditional)e(Con-)630 4271 y(structs],)31 b(page)g(10\).)150
-4445 y Fs(--enable-coprocesses)630 4555 y Ft(Include)23
-b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f(the)h Fs(coproc)e
-Ft(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.2)630
-4664 y([Pip)s(elines],)31 b(page)g(8\).)150 4838 y Fs
-(--enable-debugger)630 4947 y Ft(Include)f(supp)s(ort)e(for)i(the)h
+150 3477 y Ft(--enable-cond-command)630 3587 y Fu(Include)33
+b(supp)s(ort)f(for)i(the)g Ft([[)f Fu(conditional)i(command.)51
+b(\(see)34 b(Section)h(3.2.4.2)h([Condi-)630 3696 y(tional)c
+(Constructs],)e(page)h(10\).)150 3861 y Ft(--enable-cond-regexp)630
+3970 y Fu(Include)k(supp)s(ort)f(for)i(matc)m(hing)h
+Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
+Ft(=~)p Fu(')g(binary)630 4080 y(op)s(erator)25 b(in)f(the)h
+Ft([[)f Fu(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.4.2)h
+([Conditional)e(Con-)630 4189 y(structs],)31 b(page)g(10\).)150
+4354 y Ft(--enable-coprocesses)630 4463 y Fu(Include)23
+b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f(the)h Ft(coproc)e
+Fu(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.2)630
+4573 y([Pip)s(elines],)31 b(page)g(8\).)150 4737 y Ft
+(--enable-debugger)630 4847 y Fu(Include)f(supp)s(ort)e(for)i(the)h
(bash)f(debugger)g(\(distributed)g(separately\).)150
-5121 y Fs(--enable-directory-stack)630 5230 y Ft(Include)j(supp)s(ort)g
-(for)h(a)g Fs(csh)p Ft(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i
-Fs(pushd)p Ft(,)f Fs(popd)p Ft(,)g(and)f Fs(dirs)630
-5340 y Ft(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
-(k],)g(page)f(83\).)p eop end
-%%Page: 136 142
-TeXDict begin 136 141 bop 150 -116 a Ft(136)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fs(--enable-disabled-builti)o(ns)630
-408 y Ft(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
-(ed)i(via)f(`)p Fs(builtin)29 b(xxx)p Ft(')37 b(ev)m(en)j(after)f
-Fs(xxx)e Ft(has)630 518 y(b)s(een)31 b(disabled)g(using)g(`)p
-Fs(enable)d(-n)i(xxx)p Ft('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
-(Builtins],)i(page)f(43,)630 628 y(for)e(details)i(of)e(the)h
-Fs(builtin)d Ft(and)i Fs(enable)e Ft(builtin)i(commands.)150
-783 y Fs(--enable-dparen-arithmet)o(ic)630 892 y Ft(Include)42
-b(supp)s(ort)f(for)h(the)h Fs(\(\(...)o(\)\))f Ft(command)g(\(see)i
-(Section)f(3.2.4.2)i([Conditional)630 1002 y(Constructs],)30
-b(page)h(10\).)150 1157 y Fs(--enable-extended-glob)630
-1267 y Ft(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
+5011 y Ft(--enable-direxpand-defau)o(lt)630 5121 y Fu(Cause)53
+b(the)g Ft(direxpand)d Fu(shell)j(option)h(\(see)g(Section)f(4.3.2)i
+([The)e(Shopt)f(Builtin],)630 5230 y(page)29 b(62\))g(to)f(b)s(e)f
+(enabled)h(b)m(y)g(default)g(when)e(the)i(shell)g(starts.)41
+b(It)27 b(is)h(normally)g(disabled)630 5340 y(b)m(y)i(default.)p
+eop end
+%%Page: 143 149
+TeXDict begin 143 148 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(143)150 299 y Ft
+(--enable-directory-stack)630 408 y Fu(Include)33 b(supp)s(ort)g(for)h
+(a)g Ft(csh)p Fu(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i
+Ft(pushd)p Fu(,)f Ft(popd)p Fu(,)g(and)f Ft(dirs)630
+518 y Fu(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
+(k],)g(page)f(90\).)150 673 y Ft(--enable-disabled-builti)o(ns)630
+783 y Fu(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
+(ed)i(via)f(`)p Ft(builtin)29 b(xxx)p Fu(')37 b(ev)m(en)j(after)f
+Ft(xxx)e Fu(has)630 892 y(b)s(een)31 b(disabled)g(using)g(`)p
+Ft(enable)d(-n)i(xxx)p Fu('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
+(Builtins],)i(page)f(48,)630 1002 y(for)e(details)i(of)e(the)h
+Ft(builtin)d Fu(and)i Ft(enable)e Fu(builtin)i(commands.)150
+1157 y Ft(--enable-dparen-arithmet)o(ic)630 1267 y Fu(Include)42
+b(supp)s(ort)f(for)h(the)h Ft(\(\(...)o(\)\))f Fu(command)g(\(see)i
+(Section)f(3.2.4.2)i([Conditional)630 1377 y(Constructs],)30
+b(page)h(10\).)150 1532 y Ft(--enable-extended-glob)630
+1641 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630
-1377 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
-(page)e(26.)150 1532 y Fs(--enable-extended-glob-d)o(efau)o(lt)630
-1641 y Ft(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g
-Fq(extglob)j Ft(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)
-d(Sec-)630 1751 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
-(57)g(to)h(b)s(e)d(enabled.)150 1906 y Fs(--enable-help-builtin)630
-2016 y Ft(Include)24 b(the)h Fs(help)f Ft(builtin,)h(whic)m(h)g(displa)
-m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
-b(\(see)630 2125 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
-(43\).)150 2281 y Fs(--enable-history)630 2390 y Ft(Include)e(command)g
-(history)h(and)f(the)h Fs(fc)f Ft(and)g Fs(history)e
-Ft(builtin)j(commands)f(\(see)h(Sec-)630 2500 y(tion)h(9.1)g([Bash)g
-(History)g(F)-8 b(acilities],)34 b(page)d(125\).)150
-2655 y Fs(--enable-job-control)630 2765 y Ft(This)e(enables)i(the)f
-(job)g(con)m(trol)h(features)g(\(see)g(Chapter)f(7)g([Job)g(Con)m
-(trol],)h(page)g(91\),)h(if)630 2874 y(the)f(op)s(erating)f(system)h
-(supp)s(orts)d(them.)150 3029 y Fs(--enable-multibyte)630
-3139 y Ft(This)h(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m
-(haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630
-3249 y(the)h(necessary)f(supp)s(ort.)150 3404 y Fs
-(--enable-net-redirection)o(s)630 3513 y Ft(This)21 b(enables)h(the)g
-(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g(form)f
-Fs(/dev/tcp/)p Fi(host)11 b Fs(/)p Fi(port)630 3623 y
-Ft(and)29 b Fs(/dev/udp/)p Fi(host)11 b Fs(/)p Fi(port)34
-b Ft(when)28 b(used)g(in)h(redirections)h(\(see)g(Section)g(3.6)g
-([Redirec-)630 3733 y(tions],)h(page)g(27\).)150 3888
-y Fs(--enable-process-substit)o(utio)o(n)630 3998 y Ft(This)49
+1751 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
+(page)e(30.)150 1906 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
+2016 y Fu(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g
+Fr(extglob)j Fu(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)
+d(Sec-)630 2125 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
+(62)g(to)h(b)s(e)d(enabled.)150 2281 y Ft(--enable-glob-asciirange)o
+(-def)o(ault)630 2390 y Fu(Set)i(the)g(default)f(v)-5
+b(alue)31 b(of)g(the)g Fr(globasciiranges)36 b Fu(shell)31
+b(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)h(under)630
+2500 y(Section)41 b(4.3.2)h([The)e(Shopt)f(Builtin],)44
+b(page)d(62)g(to)g(b)s(e)f(enabled.)70 b(This)39 b(con)m(trols)j(the)
+630 2609 y(b)s(eha)m(vior)21 b(of)g(c)m(haracter)h(ranges)f(when)f
+(used)g(in)g(pattern)h(matc)m(hing)h(brac)m(k)m(et)g(expressions.)150
+2765 y Ft(--enable-help-builtin)630 2874 y Fu(Include)i(the)h
+Ft(help)f Fu(builtin,)h(whic)m(h)g(displa)m(ys)f(help)h(on)f(shell)h
+(builtins)f(and)h(v)-5 b(ariables)25 b(\(see)630 2984
+y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f(48\).)150
+3139 y Ft(--enable-history)630 3249 y Fu(Include)e(command)g(history)h
+(and)f(the)h Ft(fc)f Fu(and)g Ft(history)e Fu(builtin)j(commands)f
+(\(see)h(Sec-)630 3358 y(tion)h(9.1)g([Bash)g(History)g(F)-8
+b(acilities],)34 b(page)d(133\).)150 3513 y Ft(--enable-job-control)630
+3623 y Fu(This)e(enables)i(the)f(job)g(con)m(trol)h(features)g(\(see)g
+(Chapter)f(7)g([Job)g(Con)m(trol],)h(page)g(97\),)h(if)630
+3733 y(the)f(op)s(erating)f(system)h(supp)s(orts)d(them.)150
+3888 y Ft(--enable-multibyte)630 3998 y Fu(This)h(enables)i(supp)s(ort)
+d(for)i(m)m(ultib)m(yte)h(c)m(haracters)g(if)f(the)g(op)s(erating)h
+(system)f(pro)m(vides)630 4107 y(the)h(necessary)f(supp)s(ort.)150
+4262 y Ft(--enable-net-redirection)o(s)630 4372 y Fu(This)23
+b(enables)h(the)g(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g
+(form)g Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 4482
+y Fu(and)31 b Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)26
+b Fu(when)31 b(used)g(in)g(redirections)h(\(see)g(Section)g(3.6)h
+([Redirec-)630 4591 y(tions],)e(page)g(31\).)150 4746
+y Ft(--enable-process-substit)o(utio)o(n)630 4856 y Fu(This)49
b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)
-s(cess)e(Substitution],)630 4107 y(page)31 b(24\))h(if)e(the)h(op)s
+s(cess)e(Substitution],)630 4966 y(page)31 b(29\))h(if)e(the)h(op)s
(erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
-4262 y Fs(--enable-progcomp)630 4372 y Ft(Enable)d(the)g(programmable)g
+5121 y Ft(--enable-progcomp)630 5230 y Fu(Enable)d(the)g(programmable)g
(completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
-4482 y(Completion],)i(page)h(117\).)42 b(If)30 b(Readline)h(is)f(not)h
-(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
-4637 y Fs(--enable-prompt-string-d)o(ecod)o(ing)630 4746
-y Ft(T)-8 b(urn)46 b(on)h(the)h(in)m(terpretation)g(of)g(a)g(n)m(um)m
-(b)s(er)e(of)h(bac)m(kslash-escap)s(ed)h(c)m(haracters)h(in)630
-4856 y(the)39 b Fs($PS1)p Ft(,)g Fs($PS2)p Ft(,)h Fs($PS3)p
-Ft(,)f(and)f Fs($PS4)f Ft(prompt)h(strings.)64 b(See)39
-b(Section)g(6.9)h([Prin)m(ting)f(a)630 4966 y(Prompt],)30
-b(page)h(84,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
-(escap)s(e)h(sequences.)150 5121 y Fs(--enable-readline)630
-5230 y Ft(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
-(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 5340
+5340 y(Completion],)i(page)h(124\).)42 b(If)30 b(Readline)h(is)f(not)h
+(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)p eop
+end
+%%Page: 144 150
+TeXDict begin 144 149 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(144)150 299 y Ft
+(--enable-prompt-string-d)o(ecod)o(ing)630 408 y Fu(T)-8
+b(urn)30 b(on)i(the)f(in)m(terpretation)i(of)f(a)g(n)m(um)m(b)s(er)e
+(of)i(bac)m(kslash-escap)s(ed)g(c)m(haracters)i(in)d(the)630
+518 y Ft($PS1)p Fu(,)36 b Ft($PS2)p Fu(,)g Ft($PS3)p
+Fu(,)h(and)e Ft($PS4)f Fu(prompt)h(strings.)57 b(See)36
+b(Section)h(6.9)g([Con)m(trolling)g(the)630 628 y(Prompt],)30
+b(page)h(92,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
+(escap)s(e)h(sequences.)150 787 y Ft(--enable-readline)630
+897 y Fu(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
+(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 1006
y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
-(Editing],)h(page)g(95\).)p eop end
-%%Page: 137 143
-TeXDict begin 137 142 bop 150 -116 a Ft(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(137)150 299 y Fs(--enable-restricted)630
-408 y Ft(Include)41 b(supp)s(ort)f(for)i(a)g Fq(restricted)g(shell)p
-Ft(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
-518 y(as)f Fs(rbash)p Ft(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
+(Editing],)h(page)g(101\).)150 1166 y Ft(--enable-restricted)630
+1275 y Fu(Include)41 b(supp)s(ort)f(for)i(a)g Fr(restricted)g(shell)p
+Fu(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
+1385 y(as)f Ft(rbash)p Fu(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
b(See)40 b(Section)h(6.10)g([The)f(Restricted)h(Shell],)630
-628 y(page)31 b(86,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s
-(de.)150 787 y Fs(--enable-select)630 897 y Ft(Include)25
-b(the)h Fs(select)f Ft(comp)s(ound)f(command,)j(whic)m(h)e(allo)m(ws)j
-(the)e(generation)h(of)f(simple)630 1006 y(men)m(us)k(\(see)h(Section)g
+1494 y(page)31 b(93,)h(for)e(a)g(description)h(of)f(restricted)h(mo)s
+(de.)150 1654 y Ft(--enable-select)630 1763 y Fu(Include)25
+b(the)h Ft(select)f Fu(comp)s(ound)f(command,)j(whic)m(h)e(allo)m(ws)j
+(the)e(generation)h(of)f(simple)630 1873 y(men)m(us)k(\(see)h(Section)g
(3.2.4.2)i([Conditional)e(Constructs],)g(page)g(10\).)150
-1166 y Fs(--enable-separate-helpfi)o(les)630 1275 y Ft(Use)h(external)h
+2032 y Ft(--enable-separate-helpfi)o(les)630 2142 y Fu(Use)h(external)h
(\014les)f(for)g(the)g(do)s(cumen)m(tation)h(displa)m(y)m(ed)f(b)m(y)g
-(the)g Fs(help)f Ft(builtin)h(instead)630 1385 y(of)f(storing)f(the)h
-(text)g(in)m(ternally)-8 b(.)150 1544 y Fs(--enable-single-help-str)o
-(ings)630 1654 y Ft(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
-(the)i Fs(help)d Ft(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)
-i(help)630 1763 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
+(the)g Ft(help)f Fu(builtin)h(instead)630 2252 y(of)f(storing)f(the)h
+(text)g(in)m(ternally)-8 b(.)150 2411 y Ft(--enable-single-help-str)o
+(ings)630 2521 y Fu(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
+(the)i Ft(help)d Fu(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)
+i(help)630 2630 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
(text)g(to)g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35
-b(ma)m(y)g(need)630 1873 y(to)c(disable)g(this)f(if)g(y)m(our)h
+b(ma)m(y)g(need)630 2740 y(to)c(disable)g(this)f(if)g(y)m(our)h
(compiler)g(cannot)f(handle)g(v)m(ery)h(long)g(string)f(literals.)150
-2032 y Fs(--enable-strict-posix-de)o(faul)o(t)630 2142
-y Ft(Mak)m(e)c(Bash)f Fl(posix)p Ft(-conforman)m(t)g(b)m(y)f(default)h
+2899 y Ft(--enable-strict-posix-de)o(faul)o(t)630 3009
+y Fu(Mak)m(e)c(Bash)f Fm(posix)p Fu(-conforman)m(t)g(b)m(y)f(default)h
(\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
-2252 y(page)31 b(86\).)150 2411 y Fs(--enable-usg-echo-defaul)o(t)630
-2521 y Ft(A)f(synon)m(ym)g(for)g Fs(--enable-xpg-echo-default)p
-Ft(.)150 2680 y Fs(--enable-xpg-echo-defaul)o(t)630 2790
-y Ft(Mak)m(e)c(the)f Fs(echo)e Ft(builtin)i(expand)f(bac)m
+3118 y(page)31 b(94\).)150 3278 y Ft(--enable-usg-echo-defaul)o(t)630
+3387 y Fu(A)f(synon)m(ym)g(for)g Ft(--enable-xpg-echo-default)p
+Fu(.)150 3547 y Ft(--enable-xpg-echo-defaul)o(t)630 3656
+y Fu(Mak)m(e)c(the)f Ft(echo)e Fu(builtin)i(expand)f(bac)m
(kslash-escap)s(ed)h(c)m(haracters)h(b)m(y)f(default,)h(without)630
-2899 y(requiring)41 b(the)g(`)p Fs(-e)p Ft(')g(option.)73
-b(This)41 b(sets)g(the)g(default)h(v)-5 b(alue)41 b(of)h(the)f
-Fs(xpg_echo)e Ft(shell)630 3009 y(option)26 b(to)g Fs(on)p
-Ft(,)g(whic)m(h)g(mak)m(es)g(the)g(Bash)g Fs(echo)e Ft(b)s(eha)m(v)m(e)
-i(more)g(lik)m(e)h(the)f(v)m(ersion)g(sp)s(eci\014ed)630
-3118 y(in)41 b(the)h(Single)g(Unix)f(Sp)s(eci\014cation,)k(v)m(ersion)e
-(3.)74 b(See)42 b(Section)g(4.2)h([Bash)f(Builtins],)630
-3228 y(page)31 b(43,)h(for)e(a)g(description)h(of)f(the)h(escap)s(e)g
-(sequences)f(that)h Fs(echo)f Ft(recognizes.)275 3387
-y(The)23 b(\014le)i(`)p Fs(config-top.h)p Ft(')c(con)m(tains)26
-b(C)e(Prepro)s(cessor)g(`)p Fs(#define)p Ft(')e(statemen)m(ts)k(for)f
-(options)f(whic)m(h)150 3497 y(are)35 b(not)g(settable)i(from)d
-Fs(configure)p Ft(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g
-(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 3606
-y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
-b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
-(for)g(more)150 3716 y(information)c(ab)s(out)f(its)h(e\013ect.)p
-eop end
-%%Page: 138 144
-TeXDict begin 138 143 bop eop end
-%%Page: 139 145
-TeXDict begin 139 144 bop 150 -116 a Ft(App)s(endix)29
-b(A:)h(Rep)s(orting)h(Bugs)2299 b(139)150 299 y Fo(App)t(endix)52
-b(A)81 b(Rep)t(orting)53 b(Bugs)150 533 y Ft(Please)33
+3766 y(requiring)d(the)h Ft(-e)f Fu(option.)39 b(This)23
+b(sets)h(the)g(default)g(v)-5 b(alue)24 b(of)g(the)g
+Ft(xpg_echo)e Fu(shell)h(option)630 3875 y(to)28 b Ft(on)p
+Fu(,)g(whic)m(h)f(mak)m(es)h(the)g(Bash)f Ft(echo)f Fu(b)s(eha)m(v)m(e)
+i(more)g(lik)m(e)h(the)e(v)m(ersion)h(sp)s(eci\014ed)f(in)g(the)630
+3985 y(Single)35 b(Unix)f(Sp)s(eci\014cation,)i(v)m(ersion)e(3.)53
+b(See)35 b(Section)g(4.2)g([Bash)g(Builtins],)h(page)f(48,)630
+4095 y(for)30 b(a)h(description)f(of)h(the)f(escap)s(e)h(sequences)g
+(that)g Ft(echo)e Fu(recognizes.)275 4254 y(The)f(\014le)i
+Ft(config-top.h)c Fu(con)m(tains)31 b(C)d(Prepro)s(cessor)h(`)p
+Ft(#define)p Fu(')f(statemen)m(ts)j(for)f(options)f(whic)m(h)150
+4364 y(are)35 b(not)g(settable)i(from)d Ft(configure)p
+Fu(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g(to)h(b)s(e)e(c)
+m(hanged;)k(b)s(ew)m(are)d(of)150 4473 y(the)h(consequences)g(if)f(y)m
+(ou)h(do.)55 b(Read)36 b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e
+(eac)m(h)i(de\014nition)e(for)g(more)150 4583 y(information)c(ab)s(out)
+f(its)h(e\013ect.)p eop end
+%%Page: 145 151
+TeXDict begin 145 150 bop 150 -116 a Fu(App)s(endix)29
+b(A:)h(Rep)s(orting)h(Bugs)2299 b(145)150 299 y Fp(App)t(endix)52
+b(A)81 b(Rep)t(orting)53 b(Bugs)150 533 y Fu(Please)33
b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i(Bash.)44
b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e(that)h(it)g
(really)h(is)f(a)150 643 y(bug,)d(and)g(that)h(it)g(app)s(ears)f(in)g
(the)h(latest)h(v)m(ersion)f(of)g(Bash.)40 b(The)29 b(latest)j(v)m
(ersion)e(of)f(Bash)h(is)f(alw)m(a)m(ys)150 752 y(a)m(v)-5
-b(ailable)33 b(for)d(FTP)g(from)g Fs(ftp://ftp.gnu.org/pub/gn)o(u/ba)o
-(sh/)o Ft(.)275 887 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f
-(that)h(a)f(bug)g(actually)h(exists,)j(use)c(the)g Fs(bashbug)e
-Ft(command)i(to)150 996 y(submit)25 b(a)h(bug)g(rep)s(ort.)38
+b(ailable)33 b(for)d(FTP)g(from)g Ft(ftp://ftp.gnu.org/pub/gn)o(u/ba)o
+(sh/)o Fu(.)275 887 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f
+(that)h(a)f(bug)g(actually)h(exists,)j(use)c(the)g Ft(bashbug)e
+Fu(command)i(to)150 996 y(submit)25 b(a)h(bug)g(rep)s(ort.)38
b(If)26 b(y)m(ou)g(ha)m(v)m(e)h(a)f(\014x,)h(y)m(ou)f(are)g(encouraged)
h(to)f(mail)h(that)f(as)g(w)m(ell!)40 b(Suggestions)150
-1106 y(and)20 b(`philosophical')j(bug)d(rep)s(orts)g(ma)m(y)i(b)s(e)e
-(mailed)i(to)g Fs(bug-bash@gnu.org)17 b Ft(or)k(p)s(osted)f(to)i(the)f
-(Usenet)150 1215 y(newsgroup)29 b Fs(gnu.bash.bug)p Ft(.)275
-1350 y(All)i(bug)e(rep)s(orts)h(should)f(include:)225
-1484 y Fp(\017)60 b Ft(The)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
-(Bash.)225 1619 y Fp(\017)60 b Ft(The)30 b(hardw)m(are)g(and)g(op)s
-(erating)g(system.)225 1753 y Fp(\017)60 b Ft(The)30
-b(compiler)h(used)e(to)i(compile)h(Bash.)225 1888 y Fp(\017)60
-b Ft(A)30 b(description)h(of)f(the)h(bug)f(b)s(eha)m(viour.)225
-2022 y Fp(\017)60 b Ft(A)30 b(short)h(script)f(or)g(`recip)s(e')h(whic)
+1106 y(and)j(`philosophical')i(bug)e(rep)s(orts)g(ma)m(y)i(b)s(e)e
+(mailed)h(to)g Ft(bug-bash@gnu)11 b(.)d(org)40 b Fu(or)k(p)s(osted)f
+(to)i(the)150 1215 y(Usenet)31 b(newsgroup)e Ft(gnu.bash.bug)p
+Fu(.)275 1350 y(All)i(bug)e(rep)s(orts)h(should)f(include:)225
+1484 y Fq(\017)60 b Fu(The)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
+(Bash.)225 1619 y Fq(\017)60 b Fu(The)30 b(hardw)m(are)g(and)g(op)s
+(erating)g(system.)225 1753 y Fq(\017)60 b Fu(The)30
+b(compiler)h(used)e(to)i(compile)h(Bash.)225 1888 y Fq(\017)60
+b Fu(A)30 b(description)h(of)f(the)h(bug)f(b)s(eha)m(viour.)225
+2022 y Fq(\017)60 b Fu(A)30 b(short)h(script)f(or)g(`recip)s(e')h(whic)
m(h)f(exercises)i(the)e(bug)g(and)g(ma)m(y)h(b)s(e)f(used)f(to)i(repro)
-s(duce)e(it.)150 2182 y Fs(bashbug)d Ft(inserts)i(the)h(\014rst)f
+s(duce)e(it.)150 2182 y Ft(bashbug)d Fu(inserts)i(the)h(\014rst)f
(three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m
(vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
-(ual)f(to)h Fs(chet.ramey@case.edu)p Ft(.)p eop end
-%%Page: 140 146
-TeXDict begin 140 145 bop eop end
-%%Page: 141 147
-TeXDict begin 141 146 bop 150 -116 a Ft(App)s(endix)29
+(ual)f(to)h Ft(bug-bash@gnu.org)p Fu(.)p eop end
+%%Page: 146 152
+TeXDict begin 146 151 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(141)150 141 y Fo(App)t(endix)58
+b(The)f(Bourne)g(Shell)1258 b(146)150 141 y Fp(App)t(endix)58
b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13 b(rom)54
-b(The)g(Bourne)1088 299 y(Shell)150 530 y Ft(Bash)26
+b(The)g(Bourne)1088 299 y(Shell)150 530 y Fu(Bash)26
b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f
(and)g(v)-5 b(ariable)27 b(expansion,)g(redirec-)150
640 y(tion,)i(and)e(quoting)g(as)h(the)g(Bourne)f(Shell.)40
-b(Bash)27 b(uses)g(the)h Fl(posix)f Ft(standard)f(as)i(the)g(sp)s
+b(Bash)27 b(uses)g(the)h Fm(posix)f Fu(standard)f(as)i(the)g(sp)s
(eci\014cation)g(of)150 749 y(ho)m(w)34 b(these)h(features)g(are)g(to)g
(b)s(e)f(implemen)m(ted.)53 b(There)34 b(are)h(some)g(di\013erences)g
(b)s(et)m(w)m(een)g(the)g(tradi-)150 859 y(tional)e(Bourne)e(shell)h
@@ -14267,486 +18208,493 @@ b(Bash)27 b(uses)g(the)h Fl(posix)f Ft(standard)f(as)i(the)g(sp)s
y(n)m(um)m(b)s(er)24 b(of)h(these)h(di\013erences)f(are)h(explained)f
(in)g(greater)h(depth)f(in)g(previous)f(sections.)40
b(This)25 b(section)150 1078 y(uses)33 b(the)i(v)m(ersion)f(of)g
-Fs(sh)f Ft(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g
+Ft(sh)f Fu(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g
(the)g(historical)i(Bourne)d(shell\))150 1188 y(as)e(the)f(baseline)h
-(reference.)225 1322 y Fp(\017)60 b Ft(Bash)32 b(is)h
-Fl(posix)p Ft(-conforman)m(t,)g(ev)m(en)g(where)f(the)g
-Fl(posix)g Ft(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330
-1431 y Fs(sh)e Ft(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e
-(POSIX)g(Mo)s(de],)h(page)g(86\).)225 1565 y Fp(\017)60
-b Ft(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
+(reference.)225 1322 y Fq(\017)60 b Fu(Bash)32 b(is)h
+Fm(posix)p Fu(-conforman)m(t,)g(ev)m(en)g(where)f(the)g
+Fm(posix)g Fu(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330
+1431 y Ft(sh)e Fu(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e
+(POSIX)g(Mo)s(de],)h(page)g(94\).)225 1565 y Fq(\017)60
+b Fu(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
(options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e
-(73\).)225 1699 y Fp(\017)60 b Ft(Bash)28 b(has)g(command-line)h
-(editing)f(\(see)h(Chapter)f(8)g([Command)f(Line)h(Editing],)i(page)e
-(95\))i(and)330 1809 y(the)h Fs(bind)e Ft(builtin.)225
-1943 y Fp(\017)60 b Ft(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
+(80\).)225 1699 y Fq(\017)60 b Fu(Bash)40 b(has)f(command-line)h
+(editing)g(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)k(page)d
+(101\))330 1809 y(and)30 b(the)g Ft(bind)g Fu(builtin.)225
+1943 y Fq(\017)60 b Fu(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
(ord)f(completion)i(mec)m(hanism)f(\(see)h(Section)g(8.6)g([Pro-)330
-2052 y(grammable)39 b(Completion],)i(page)e(117\),)i(and)d(builtin)g
-(commands)f Fs(complete)p Ft(,)h Fs(compgen)p Ft(,)h(and)330
-2162 y Fs(compopt)p Ft(,)29 b(to)i(manipulate)g(it.)225
-2296 y Fp(\017)60 b Ft(Bash)26 b(has)f(command)h(history)f(\(see)i
+2052 y(grammable)39 b(Completion],)i(page)e(124\),)i(and)d(builtin)g
+(commands)f Ft(complete)p Fu(,)h Ft(compgen)p Fu(,)h(and)330
+2162 y Ft(compopt)p Fu(,)29 b(to)i(manipulate)g(it.)225
+2296 y Fq(\017)60 b Fu(Bash)26 b(has)f(command)h(history)f(\(see)i
(Section)f(9.1)h([Bash)f(History)h(F)-8 b(acilities],)30
-b(page)c(125\))i(and)d(the)330 2405 y Fs(history)k Ft(and)h
-Fs(fc)g Ft(builtins)g(to)h(manipulate)g(it.)42 b(The)30
+b(page)c(133\))i(and)d(the)330 2405 y Ft(history)k Fu(and)h
+Ft(fc)g Fu(builtins)g(to)h(manipulate)g(it.)42 b(The)30
b(Bash)h(history)g(list)g(main)m(tains)g(timestamp)330
2515 y(information)g(and)e(uses)h(the)h(v)-5 b(alue)31
-b(of)f(the)h Fs(HISTTIMEFORMAT)26 b Ft(v)-5 b(ariable)32
-b(to)f(displa)m(y)f(it.)225 2649 y Fp(\017)60 b Ft(Bash)48
-b(implemen)m(ts)h Fs(csh)p Ft(-lik)m(e)g(history)f(expansion)g(\(see)h
+b(of)f(the)h Ft(HISTTIMEFORMAT)26 b Fu(v)-5 b(ariable)32
+b(to)f(displa)m(y)f(it.)225 2649 y Fq(\017)60 b Fu(Bash)48
+b(implemen)m(ts)h Ft(csh)p Fu(-lik)m(e)g(history)f(expansion)g(\(see)h
(Section)g(9.3)h([History)f(In)m(teraction],)330 2759
-y(page)31 b(127\).)225 2892 y Fp(\017)60 b Ft(Bash)33
+y(page)31 b(135\).)225 2892 y Fq(\017)60 b Fu(Bash)33
b(has)g(one-dimensional)h(arra)m(y)f(v)-5 b(ariables)34
-b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(82\),)h(and)e(the)330
+b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(89\),)h(and)e(the)330
3002 y(appropriate)39 b(v)-5 b(ariable)40 b(expansions)f(and)g
(assignmen)m(t)h(syn)m(tax)g(to)g(use)f(them.)67 b(Sev)m(eral)40
b(of)g(the)330 3112 y(Bash)32 b(builtins)f(tak)m(e)j(options)e(to)h
(act)g(on)e(arra)m(ys.)46 b(Bash)32 b(pro)m(vides)g(a)g(n)m(um)m(b)s
(er)f(of)h(built-in)f(arra)m(y)330 3221 y(v)-5 b(ariables.)225
-3355 y Fp(\017)60 b Ft(The)37 b Fs($'...)n(')g Ft(quoting)g(syn)m(tax,)
+3355 y Fq(\017)60 b Fu(The)37 b Ft($'...)n(')g Fu(quoting)g(syn)m(tax,)
j(whic)m(h)d(expands)f(ANSI-C)h(bac)m(kslash-escap)s(ed)h(c)m
(haracters)g(in)330 3465 y(the)26 b(text)h(b)s(et)m(w)m(een)g(the)g
(single)f(quotes,)i(is)e(supp)s(orted)f(\(see)i(Section)g(3.1.2.4)h
([ANSI-C)e(Quoting],)330 3574 y(page)31 b(6\).)225 3708
-y Fp(\017)60 b Ft(Bash)69 b(supp)s(orts)e(the)i Fs($"...)n(")g
-Ft(quoting)g(syn)m(tax)g(to)h(do)e(lo)s(cale-sp)s(eci\014c)j
-(translation)f(of)330 3818 y(the)65 b(c)m(haracters)i(b)s(et)m(w)m(een)
-f(the)f(double)g(quotes.)145 b(The)65 b(`)p Fs(-D)p Ft(',)74
-b(`)p Fs(--dump-strings)p Ft(',)d(and)330 3927 y(`)p
-Fs(--dump-po-strings)p Ft(')27 b(in)m(v)m(o)s(cation)33
-b(options)e(list)h(the)f(translatable)h(strings)f(found)f(in)h(a)g
-(script)330 4037 y(\(see)g(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
-b(ranslation],)32 b(page)f(7\).)225 4171 y Fp(\017)60
-b Ft(Bash)44 b(implemen)m(ts)g(the)f Fs(!)h Ft(k)m(eyw)m(ord)g(to)g
-(negate)h(the)f(return)e(v)-5 b(alue)44 b(of)g(a)g(pip)s(eline)f(\(see)
-h(Sec-)330 4281 y(tion)33 b(3.2.2)i([Pip)s(elines],)f(page)g(8\).)49
-b(V)-8 b(ery)33 b(useful)f(when)g(an)h Fs(if)f Ft(statemen)m(t)j(needs)
+y Fq(\017)60 b Fu(Bash)30 b(supp)s(orts)f(the)h Ft($"...)o(")f
+Fu(quoting)i(syn)m(tax)g(to)f(do)g(lo)s(cale-sp)s(eci\014c)i
+(translation)g(of)e(the)g(c)m(har-)330 3818 y(acters)g(b)s(et)m(w)m
+(een)f(the)f(double)g(quotes.)41 b(The)28 b Ft(-D)p Fu(,)h
+Ft(--dump-strings)p Fu(,)c(and)j Ft(--dump-po-strings)330
+3927 y Fu(in)m(v)m(o)s(cation)42 b(options)d(list)i(the)e(translatable)
+i(strings)f(found)e(in)h(a)h(script)g(\(see)g(Section)g(3.1.2.5)330
+4037 y([Lo)s(cale)32 b(T)-8 b(ranslation],)31 b(page)h(7\).)225
+4171 y Fq(\017)60 b Fu(Bash)44 b(implemen)m(ts)g(the)f
+Ft(!)h Fu(k)m(eyw)m(ord)g(to)g(negate)h(the)f(return)e(v)-5
+b(alue)44 b(of)g(a)g(pip)s(eline)f(\(see)h(Sec-)330 4281
+y(tion)33 b(3.2.2)i([Pip)s(elines],)f(page)g(8\).)49
+b(V)-8 b(ery)33 b(useful)f(when)g(an)h Ft(if)f Fu(statemen)m(t)j(needs)
d(to)i(act)g(only)f(if)330 4390 y(a)k(test)h(fails.)60
-b(The)36 b(Bash)g(`)p Fs(-o)30 b(pipefail)p Ft(')35 b(option)i(to)h
-Fs(set)d Ft(will)i(cause)g(a)g(pip)s(eline)g(to)g(return)f(a)330
+b(The)36 b(Bash)g(`)p Ft(-o)30 b(pipefail)p Fu(')35 b(option)i(to)h
+Ft(set)d Fu(will)i(cause)g(a)g(pip)s(eline)g(to)g(return)f(a)330
4500 y(failure)31 b(status)f(if)h(an)m(y)f(command)g(fails.)225
-4634 y Fp(\017)60 b Ft(Bash)34 b(has)g(the)g Fs(time)f
-Ft(reserv)m(ed)h(w)m(ord)g(and)f(command)h(timing)h(\(see)g(Section)g
+4634 y Fq(\017)60 b Fu(Bash)34 b(has)g(the)g Ft(time)f
+Fu(reserv)m(ed)h(w)m(ord)g(and)f(command)h(timing)h(\(see)g(Section)g
(3.2.2)g([Pip)s(elines],)330 4743 y(page)g(8\).)52 b(The)33
b(displa)m(y)i(of)f(the)g(timing)g(statistics)i(ma)m(y)f(b)s(e)e(con)m
-(trolled)j(with)e(the)g Fs(TIMEFORMAT)330 4853 y Ft(v)-5
-b(ariable.)225 4987 y Fp(\017)60 b Ft(Bash)23 b(implemen)m(ts)g(the)h
-Fs(for)29 b(\(\()h Fi(expr1)39 b Fs(;)30 b Fi(expr2)40
-b Fs(;)30 b Fi(expr3)39 b Fs(\)\))23 b Ft(arithmetic)h(for)e(command,)j
-(sim-)330 5096 y(ilar)31 b(to)g(the)g(C)f(language)h(\(see)h(Section)f
-(3.2.4.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)225
-5230 y Fp(\017)60 b Ft(Bash)31 b(includes)f(the)g Fs(select)f
-Ft(comp)s(ound)g(command,)i(whic)m(h)f(allo)m(ws)i(the)f(generation)g
-(of)g(simple)330 5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i
-([Conditional)e(Constructs],)g(page)g(10\).)p eop end
-%%Page: 142 148
-TeXDict begin 142 147 bop 150 -116 a Ft(142)2527 b(Bash)31
-b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(Bash)40
-b(includes)g(the)g Fs([[)g Ft(comp)s(ound)e(command,)43
+(trolled)j(with)e(the)g Ft(TIMEFORMAT)330 4853 y Fu(v)-5
+b(ariable.)225 4987 y Fq(\017)60 b Fu(Bash)28 b(implemen)m(ts)g(the)f
+Ft(for)j(\(\()g Fj(expr1)f Ft(;)h Fj(expr2)f Ft(;)h Fj(expr3)f
+Ft(\)\))e Fu(arithmetic)h(for)g(command,)g(sim-)330 5096
+y(ilar)j(to)g(the)g(C)f(language)h(\(see)h(Section)f(3.2.4.1)i([Lo)s
+(oping)d(Constructs],)h(page)g(10\).)225 5230 y Fq(\017)60
+b Fu(Bash)31 b(includes)f(the)g Ft(select)f Fu(comp)s(ound)g(command,)i
+(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)g(simple)330
+5340 y(men)m(us)f(\(see)h(Section)g(3.2.4.2)i([Conditional)e
+(Constructs],)g(page)g(10\).)p eop end
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Fu(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(147)225 299 y Fq(\017)60
+b Fu(Bash)40 b(includes)g(the)g Ft([[)g Fu(comp)s(ound)e(command,)43
b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
408 y(the)f(shell)g(grammar)g(\(see)h(Section)f(3.2.4.2)j([Conditional)
d(Constructs],)i(page)f(10\),)i(including)330 518 y(optional)32
-b(regular)e(expression)g(matc)m(hing.)225 653 y Fp(\017)60
-b Ft(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
-(hing)f(for)e(the)g Fs(case)g Ft(and)f Fs([[)h Ft(constructs.)225
-789 y Fp(\017)60 b Ft(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
-(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(19\))h(and)d(tilde)330
+b(regular)e(expression)g(matc)m(hing.)225 653 y Fq(\017)60
+b Fu(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
+(hing)f(for)e(the)g Ft(case)g Fu(and)f Ft([[)h Fu(constructs.)225
+789 y Fq(\017)60 b Fu(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
+(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(21\))h(and)d(tilde)330
898 y(expansion)k(\(see)i(Section)f(3.5.2)h([Tilde)f(Expansion],)f
-(page)h(20\).)225 1034 y Fp(\017)60 b Ft(Bash)24 b(implemen)m(ts)h
-(command)e(aliases)j(and)d(the)i Fs(alias)d Ft(and)i
-Fs(unalias)e Ft(builtins)h(\(see)i(Section)g(6.6)330
-1143 y([Aliases],)32 b(page)f(81\).)225 1279 y Fp(\017)60
-b Ft(Bash)32 b(pro)m(vides)g(shell)g(arithmetic,)i(the)e
-Fs(\(\()g Ft(comp)s(ound)e(command)i(\(see)h(Section)f(3.2.4.2)j([Con-)
+(page)h(22\).)225 1034 y Fq(\017)60 b Fu(Bash)24 b(implemen)m(ts)h
+(command)e(aliases)j(and)d(the)i Ft(alias)d Fu(and)i
+Ft(unalias)e Fu(builtins)h(\(see)i(Section)g(6.6)330
+1143 y([Aliases],)32 b(page)f(88\).)225 1279 y Fq(\017)60
+b Fu(Bash)32 b(pro)m(vides)g(shell)g(arithmetic,)i(the)e
+Ft(\(\()g Fu(comp)s(ound)e(command)i(\(see)h(Section)f(3.2.4.2)j([Con-)
330 1388 y(ditional)d(Constructs],)e(page)i(10\),)g(and)e(arithmetic)i
(expansion)e(\(see)i(Section)f(6.5)h([Shell)f(Arith-)330
-1498 y(metic],)h(page)f(80\).)225 1633 y Fp(\017)60 b
-Ft(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g(en)
+1498 y(metic],)h(page)f(87\).)225 1633 y Fq(\017)60 b
+Fu(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g(en)
m(vironmen)m(t)g(are)g(automatically)i(exp)s(orted)d(to)h(c)m(hild)330
1743 y(pro)s(cesses.)38 b(The)23 b(Bourne)g(shell)g(do)s(es)g(not)g
(normally)g(do)g(this)g(unless)g(the)g(v)-5 b(ariables)24
b(are)f(explicitly)330 1852 y(mark)m(ed)30 b(using)g(the)h
-Fs(export)e Ft(command.)225 1988 y Fp(\017)60 b Ft(Bash)26
-b(supp)s(orts)d(the)j(`)p Fs(+=)p Ft(')f(assignmen)m(t)i(op)s(erator,)g
+Ft(export)e Fu(command.)225 1988 y Fq(\017)60 b Fu(Bash)26
+b(supp)s(orts)d(the)j(`)p Ft(+=)p Fu(')f(assignmen)m(t)i(op)s(erator,)g
(whic)m(h)e(app)s(ends)f(to)i(the)g(v)-5 b(alue)26 b(of)f(the)h(v)-5
b(ariable)330 2097 y(named)30 b(on)g(the)h(left)g(hand)e(side.)225
-2233 y Fp(\017)60 b Ft(Bash)36 b(includes)g(the)g Fl(posix)f
-Ft(pattern)h(remo)m(v)-5 b(al)37 b(`)p Fs(\045)p Ft(',)h(`)p
-Fs(#)p Ft(',)g(`)p Fs(\045\045)p Ft(')e(and)f(`)p Fs(##)p
-Ft(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f
+2233 y Fq(\017)60 b Fu(Bash)36 b(includes)g(the)g Fm(posix)f
+Fu(pattern)h(remo)m(v)-5 b(al)37 b(`)p Ft(\045)p Fu(',)h(`)p
+Ft(#)p Fu(',)g(`)p Ft(\045\045)p Fu(')e(and)f(`)p Ft(##)p
+Fu(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f
(trailing)h(substrings)e(from)g(v)-5 b(ariable)35 b(v)-5
b(alues)35 b(\(see)g(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
-2452 y(Expansion],)30 b(page)h(21\).)225 2587 y Fp(\017)60
-b Ft(The)46 b(expansion)g Fs(${#xx})p Ft(,)j(whic)m(h)d(returns)f(the)i
-(length)f(of)h Fs(${xx})p Ft(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330
+2452 y(Expansion],)30 b(page)h(23\).)225 2587 y Fq(\017)60
+b Fu(The)46 b(expansion)g Ft(${#xx})p Fu(,)j(whic)m(h)d(returns)f(the)i
+(length)f(of)h Ft(${xx})p Fu(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330
2697 y(tion)31 b(3.5.3)h([Shell)f(P)m(arameter)g(Expansion],)f(page)i
-(21\).)225 2832 y Fp(\017)60 b Ft(The)30 b(expansion)g
-Fs(${var:)p Fq(o\013set)r Fs([:)p Fq(length)p Fs(]})p
-Ft(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i
-Fs(var)p Ft('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g
-Fq(length)p Ft(,)j(b)s(eginning)c(at)i Fq(o\013set)r
-Ft(,)j(is)42 b(presen)m(t)h(\(see)h(Section)f(3.5.3)i([Shell)e(P)m
-(arameter)330 3051 y(Expansion],)30 b(page)h(21\).)225
-3187 y Fp(\017)60 b Ft(The)21 b(expansion)f Fs(${var/[/])p
-Fq(pattern)p Fs([/)p Fq(replacemen)m(t)r Fs(]})p Ft(,)i(whic)m(h)e
-(matc)m(hes)j Fq(pattern)e Ft(and)f(replaces)330 3296
-y(it)29 b(with)e Fq(replacemen)m(t)32 b Ft(in)c(the)g(v)-5
-b(alue)29 b(of)f Fs(var)p Ft(,)g(is)g(a)m(v)-5 b(ailable)31
+(23\).)225 2832 y Fq(\017)60 b Fu(The)30 b(expansion)g
+Ft(${var:)p Fr(o\013set)r Ft([:)p Fr(length)p Ft(]})p
+Fu(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i
+Ft(var)p Fu('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g
+Fr(length)p Fu(,)k(b)s(eginning)42 b(at)i Fr(o\013set)p
+Fu(,)j(is)c(presen)m(t)g(\(see)g(Section)h(3.5.3)h([Shell)e(P)m
+(arameter)330 3051 y(Expansion],)30 b(page)h(23\).)225
+3187 y Fq(\017)60 b Fu(The)21 b(expansion)f Ft(${var/[/])p
+Fr(pattern)p Ft([/)p Fr(replacemen)m(t)r Ft(]})p Fu(,)i(whic)m(h)e
+(matc)m(hes)j Fr(pattern)e Fu(and)f(replaces)330 3296
+y(it)29 b(with)e Fr(replacemen)m(t)32 b Fu(in)c(the)g(v)-5
+b(alue)29 b(of)f Ft(var)p Fu(,)g(is)g(a)m(v)-5 b(ailable)31
b(\(see)e(Section)f(3.5.3)i([Shell)f(P)m(arameter)330
-3406 y(Expansion],)h(page)h(21\).)225 3541 y Fp(\017)60
-b Ft(The)32 b(expansion)g Fs(${!)p Fi(prefix)p Fs(})p
-Fi(*)40 b Ft(expansion,)32 b(whic)m(h)g(expands)g(to)h(the)f(names)g
-(of)h(all)g(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)f(names)h
-(b)s(egin)f(with)g Fq(pre\014x)6 b Ft(,)36 b(is)g(a)m(v)-5
-b(ailable)38 b(\(see)e(Section)h(3.5.3)g([Shell)f(P)m(arameter)330
-3761 y(Expansion],)30 b(page)h(21\).)225 3896 y Fp(\017)60
-b Ft(Bash)22 b(has)f Fq(indirect)j Ft(v)-5 b(ariable)22
-b(expansion)g(using)f Fs(${!word})e Ft(\(see)k(Section)f(3.5.3)i
-([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(21\).)225
-4141 y Fp(\017)60 b Ft(Bash)31 b(can)f(expand)g(p)s(ositional)h
-(parameters)g(b)s(ey)m(ond)e Fs($9)h Ft(using)g Fs(${)p
-Fi(num)11 b Fs(})p Ft(.)225 4276 y Fp(\017)60 b Ft(The)27
-b Fl(posix)g Fs($\(\))g Ft(form)g(of)h(command)g(substitution)f(is)h
+3406 y(Expansion],)h(page)h(23\).)225 3541 y Fq(\017)60
+b Fu(The)33 b(expansion)g Ft(${!)p Fj(prefix)p Ft(*})d
+Fu(expansion,)k(whic)m(h)e(expands)h(to)h(the)f(names)g(of)g(all)h
+(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)g(names)g(b)s(egin)g
+(with)g Fr(pre\014x)p Fu(,)g(is)g(a)m(v)-5 b(ailable)39
+b(\(see)e(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
+3761 y(Expansion],)30 b(page)h(23\).)225 3896 y Fq(\017)60
+b Fu(Bash)22 b(has)f Fr(indirect)j Fu(v)-5 b(ariable)22
+b(expansion)g(using)f Ft(${!word})e Fu(\(see)k(Section)f(3.5.3)i
+([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(23\).)225
+4141 y Fq(\017)60 b Fu(Bash)31 b(can)f(expand)g(p)s(ositional)h
+(parameters)g(b)s(ey)m(ond)e Ft($9)h Fu(using)g Ft(${)p
+Fj(num)p Ft(})p Fu(.)225 4276 y Fq(\017)60 b Fu(The)27
+b Fm(posix)g Ft($\(\))g Fu(form)g(of)h(command)g(substitution)f(is)h
(implemen)m(ted)g(\(see)h(Section)f(3.5.4)i([Com-)330
-4386 y(mand)38 b(Substitution],)k(page)e(24\),)j(and)38
-b(preferred)g(to)i(the)g(Bourne)f(shell's)h Fs(``)e Ft(\(whic)m(h)i(is)
+4386 y(mand)38 b(Substitution],)k(page)e(28\),)j(and)38
+b(preferred)g(to)i(the)g(Bourne)f(shell's)h Ft(``)e Fu(\(whic)m(h)i(is)
f(also)330 4495 y(implemen)m(ted)31 b(for)f(bac)m(kw)m(ards)h
-(compatibilit)m(y\).)225 4631 y Fp(\017)60 b Ft(Bash)31
+(compatibilit)m(y\).)225 4631 y Fq(\017)60 b Fu(Bash)31
b(has)f(pro)s(cess)g(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)s
-(cess)f(Substitution],)f(page)h(24\).)225 4766 y Fp(\017)60
-b Ft(Bash)55 b(automatically)j(assigns)e(v)-5 b(ariables)55
+(cess)f(Substitution],)f(page)h(29\).)225 4766 y Fq(\017)60
+b Fu(Bash)55 b(automatically)j(assigns)e(v)-5 b(ariables)55
b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g(curren)m(t)330
-4876 y(user)40 b(\()p Fs(UID)p Ft(,)i Fs(EUID)p Ft(,)g(and)e
-Fs(GROUPS)p Ft(\),)h(the)g(curren)m(t)f(host)g(\()p Fs(HOSTTYPE)p
-Ft(,)h Fs(OSTYPE)p Ft(,)h Fs(MACHTYPE)p Ft(,)f(and)330
-4985 y Fs(HOSTNAME)p Ft(\),)55 b(and)c(the)g(instance)h(of)g(Bash)f
-(that)h(is)f(running)f(\()p Fs(BASH)p Ft(,)56 b Fs(BASH_VERSION)p
-Ft(,)e(and)330 5095 y Fs(BASH_VERSINFO)p Ft(\).)37 b(See)31
-b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(63,)g(for)f
-(details.)225 5230 y Fp(\017)60 b Ft(The)44 b Fs(IFS)f
-Ft(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
+4876 y(user)40 b(\()p Ft(UID)p Fu(,)i Ft(EUID)p Fu(,)g(and)e
+Ft(GROUPS)p Fu(\),)h(the)g(curren)m(t)f(host)g(\()p Ft(HOSTTYPE)p
+Fu(,)h Ft(OSTYPE)p Fu(,)h Ft(MACHTYPE)p Fu(,)f(and)330
+4985 y Ft(HOSTNAME)p Fu(\),)55 b(and)c(the)g(instance)h(of)g(Bash)f
+(that)h(is)f(running)f(\()p Ft(BASH)p Fu(,)56 b Ft(BASH_VERSION)p
+Fu(,)e(and)330 5095 y Ft(BASH_VERSINFO)p Fu(\).)37 b(See)31
+b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(69,)g(for)f
+(details.)225 5230 y Fq(\017)60 b Fu(The)44 b Ft(IFS)f
+Fu(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
(of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)330 5340
-y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(25\).)41
+y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(29\).)41
b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
eop end
-%%Page: 143 149
-TeXDict begin 143 148 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(143)225 299 y Fp(\017)60
-b Ft(Bash)38 b(implemen)m(ts)g(the)g(full)g(set)g(of)g
-Fl(posix)f Ft(\014lename)h(expansion)g(op)s(erators,)i(including)d
-Fq(c)m(har-)330 408 y(acter)i(classes)t Ft(,)h Fq(equiv)-5
-b(alence)39 b(classes)t Ft(,)h(and)d Fq(collating)j(sym)m(b)s(ols)g
-Ft(\(see)f(Section)f(3.5.8)h([Filename)330 518 y(Expansion],)30
-b(page)h(25\).)225 660 y Fp(\017)60 b Ft(Bash)35 b(implemen)m(ts)g
-(extended)g(pattern)g(matc)m(hing)h(features)f(when)f(the)h
-Fs(extglob)d Ft(shell)j(option)330 769 y(is)30 b(enabled)h(\(see)g
-(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(26\).)225
-911 y Fp(\017)60 b Ft(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f
-(v)-5 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
-Fs(sh)d Ft(do)s(es)g(not)g(separate)330 1021 y(the)31
-b(t)m(w)m(o)g(name)g(spaces.)225 1163 y Fp(\017)60 b
-Ft(Bash)30 b(functions)e(are)i(p)s(ermitted)f(to)h(ha)m(v)m(e)h(lo)s
-(cal)g(v)-5 b(ariables)30 b(using)f(the)g Fs(local)f
-Ft(builtin,)i(and)e(th)m(us)330 1272 y(useful)i(recursiv)m(e)g
+b(The)f(Bourne)g(Shell)1258 b(148)225 299 y Fq(\017)60
+b Fu(The)36 b(\014lename)h(expansion)f(brac)m(k)m(et)i(expression)f(co)
+s(de)f(uses)g(`)p Ft(!)p Fu(')h(and)f(`)p Ft(^)p Fu(')h(to)g(negate)h
+(the)f(set)g(of)330 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f
+(brac)m(k)m(ets.)43 b(The)29 b(Bourne)i(shell)f(uses)g(only)h(`)p
+Ft(!)p Fu('.)225 536 y Fq(\017)60 b Fu(Bash)38 b(implemen)m(ts)g(the)g
+(full)g(set)g(of)g Fm(posix)f Fu(\014lename)h(expansion)g(op)s
+(erators,)i(including)d Fr(c)m(har-)330 646 y(acter)i(classes)p
+Fu(,)j Fr(equiv)-5 b(alence)39 b(classes)p Fu(,)j(and)37
+b Fr(collating)k(sym)m(b)s(ols)g Fu(\(see)e(Section)g(3.5.8)h
+([Filename)330 756 y(Expansion],)30 b(page)h(30\).)225
+883 y Fq(\017)60 b Fu(Bash)35 b(implemen)m(ts)g(extended)g(pattern)g
+(matc)m(hing)h(features)f(when)f(the)h Ft(extglob)d Fu(shell)j(option)
+330 993 y(is)30 b(enabled)h(\(see)g(Section)g(3.5.8.1)i([P)m(attern)f
+(Matc)m(hing],)g(page)f(30\).)225 1121 y Fq(\017)60 b
+Fu(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f(v)-5
+b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
+Ft(sh)d Fu(do)s(es)g(not)g(separate)330 1230 y(the)31
+b(t)m(w)m(o)g(name)g(spaces.)225 1358 y Fq(\017)60 b
+Fu(Bash)30 b(functions)e(are)i(p)s(ermitted)f(to)h(ha)m(v)m(e)h(lo)s
+(cal)g(v)-5 b(ariables)30 b(using)f(the)g Ft(local)f
+Fu(builtin,)i(and)e(th)m(us)330 1468 y(useful)i(recursiv)m(e)g
(functions)g(ma)m(y)h(b)s(e)f(written)g(\(see)i(Section)f(4.2)g([Bash)g
-(Builtins],)g(page)h(43\).)225 1414 y Fp(\017)60 b Ft(V)-8
+(Builtins],)g(page)h(48\).)225 1596 y Fq(\017)60 b Fu(V)-8
b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)
-f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1524
+f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1705
y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)
-e(33\).)60 b(In)35 b Fs(sh)p Ft(,)j(all)f(v)-5 b(ariable)37
-b(assignmen)m(ts)330 1633 y(preceding)30 b(commands)g(are)h(global)h
+e(37\).)60 b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37
+b(assignmen)m(ts)330 1815 y(preceding)30 b(commands)g(are)h(global)h
(unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h
-(system.)225 1775 y Fp(\017)60 b Ft(Bash)44 b(p)s(erforms)e(\014lename)
+(system.)225 1943 y Fq(\017)60 b Fu(Bash)44 b(p)s(erforms)e(\014lename)
i(expansion)f(on)h(\014lenames)g(sp)s(eci\014ed)f(as)h(op)s(erands)e
-(to)j(input)e(and)330 1885 y(output)30 b(redirection)h(op)s(erators)g
-(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(27\).)225
-2027 y Fp(\017)60 b Ft(Bash)29 b(con)m(tains)h(the)f(`)p
-Fs(<>)p Ft(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
-(to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2136
-y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Fs(&>)p Ft(')g(redirection)
+(to)j(input)e(and)330 2052 y(output)30 b(redirection)h(op)s(erators)g
+(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(31\).)225
+2180 y Fq(\017)60 b Fu(Bash)29 b(con)m(tains)h(the)f(`)p
+Ft(<>)p Fu(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
+(to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2290
+y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Ft(&>)p Fu(')g(redirection)
g(op)s(erator,)h(for)f(directing)g(standard)f(output)h(and)330
-2246 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
-(Section)f(3.6)g([Redirections],)h(page)g(27\).)225 2388
-y Fp(\017)60 b Ft(Bash)21 b(includes)f(the)h(`)p Fs(<<<)p
-Ft(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
-(e)e(used)g(as)h(the)g(standard)330 2497 y(input)29 b(to)j(a)e
-(command.)225 2639 y Fp(\017)60 b Ft(Bash)29 b(implemen)m(ts)h(the)f(`)
-p Fs([n]<&)p Fi(word)11 b Ft(')26 b(and)j(`)p Fs([n]>&)p
-Fi(word)11 b Ft(')26 b(redirection)k(op)s(erators,)g(whic)m(h)e(mo)m(v)
-m(e)330 2749 y(one)j(\014le)f(descriptor)g(to)h(another.)225
-2890 y Fp(\017)60 b Ft(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
+2399 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
+(Section)f(3.6)g([Redirections],)h(page)g(31\).)225 2527
+y Fq(\017)60 b Fu(Bash)21 b(includes)f(the)h(`)p Ft(<<<)p
+Fu(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
+(e)e(used)g(as)h(the)g(standard)330 2637 y(input)29 b(to)j(a)e
+(command.)225 2765 y Fq(\017)60 b Fu(Bash)32 b(implemen)m(ts)f(the)h(`)
+p Ft([n]<&)p Fj(word)p Fu(')d(and)i(`)p Ft([n]>&)p Fj(word)p
+Fu(')e(redirection)j(op)s(erators,)g(whic)m(h)f(mo)m(v)m(e)330
+2874 y(one)g(\014le)f(descriptor)g(to)h(another.)225
+3002 y Fq(\017)60 b Fu(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
(\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g
-(redirection)i(op)s(erators)330 3000 y(\(see)31 b(Section)h(3.6)f
-([Redirections],)h(page)f(27\).)225 3142 y Fp(\017)60
-b Ft(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
+(redirection)i(op)s(erators)330 3112 y(\(see)31 b(Section)h(3.6)f
+([Redirections],)h(page)f(31\).)225 3240 y Fq(\017)60
+b Fu(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
(arbitrary)e(mac)m(hines)h(and)f(services)h(with)f(the)h(redi-)330
-3251 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
-([Redirections],)g(page)f(27\).)225 3393 y Fp(\017)60
-b Ft(The)29 b Fs(noclobber)e Ft(option)j(is)g(a)m(v)-5
+3349 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
+([Redirections],)g(page)f(31\).)225 3477 y Fq(\017)60
+b Fu(The)29 b Ft(noclobber)e Fu(option)j(is)g(a)m(v)-5
b(ailable)32 b(to)e(a)m(v)m(oid)h(o)m(v)m(erwriting)g(existing)g
-(\014les)e(with)h(output)f(redi-)330 3503 y(rection)39
-b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(54\).)66
-b(The)38 b(`)p Fs(>|)p Ft(')h(redirection)g(op)s(erator)330
-3612 y(ma)m(y)31 b(b)s(e)f(used)f(to)i(o)m(v)m(erride)h
-Fs(noclobber)p Ft(.)225 3754 y Fp(\017)60 b Ft(The)34
-b(Bash)g Fs(cd)g Ft(and)f Fs(pwd)g Ft(builtins)h(\(see)h(Section)g(4.1)
-g([Bourne)g(Shell)f(Builtins],)h(page)g(37\))h(eac)m(h)330
-3864 y(tak)m(e)c(`)p Fs(-L)p Ft(')e(and)g(`)p Fs(-P)p
-Ft(')g(options)h(to)g(switc)m(h)g(b)s(et)m(w)m(een)g(logical)i(and)c
-(ph)m(ysical)i(mo)s(des.)225 4006 y Fp(\017)60 b Ft(Bash)25
-b(allo)m(ws)h(a)g(function)e(to)i(o)m(v)m(erride)g(a)g(builtin)e(with)h
-(the)g(same)g(name,)i(and)d(pro)m(vides)h(access)h(to)330
-4115 y(that)34 b(builtin's)f(functionalit)m(y)h(within)f(the)g
-(function)g(via)h(the)f Fs(builtin)f Ft(and)g Fs(command)g
-Ft(builtins)330 4225 y(\(see)f(Section)h(4.2)f([Bash)g(Builtins],)g
-(page)g(43\).)225 4367 y Fp(\017)60 b Ft(The)35 b Fs(command)e
-Ft(builtin)i(allo)m(ws)i(selectiv)m(e)h(disabling)e(of)f(functions)g
-(when)g(command)g(lo)s(okup)g(is)330 4476 y(p)s(erformed)29
-b(\(see)i(Section)g(4.2)h([Bash)f(Builtins],)g(page)g(43\).)225
-4618 y Fp(\017)60 b Ft(Individual)23 b(builtins)g(ma)m(y)i(b)s(e)e
-(enabled)h(or)g(disabled)g(using)f(the)h Fs(enable)f
-Ft(builtin)g(\(see)i(Section)g(4.2)330 4728 y([Bash)31
-b(Builtins],)g(page)g(43\).)225 4869 y Fp(\017)60 b Ft(The)26
-b(Bash)h Fs(exec)e Ft(builtin)h(tak)m(es)i(additional)f(options)g(that)
+(\014les)e(with)h(output)f(redi-)330 3587 y(rection)39
+b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(58\).)66
+b(The)38 b(`)p Ft(>|)p Fu(')h(redirection)g(op)s(erator)330
+3696 y(ma)m(y)31 b(b)s(e)f(used)f(to)i(o)m(v)m(erride)h
+Ft(noclobber)p Fu(.)225 3824 y Fq(\017)60 b Fu(The)34
+b(Bash)g Ft(cd)g Fu(and)f Ft(pwd)g Fu(builtins)h(\(see)h(Section)g(4.1)
+g([Bourne)g(Shell)f(Builtins],)h(page)g(41\))h(eac)m(h)330
+3934 y(tak)m(e)c Ft(-L)e Fu(and)f Ft(-P)h Fu(options)h(to)g(switc)m(h)g
+(b)s(et)m(w)m(een)g(logical)i(and)c(ph)m(ysical)i(mo)s(des.)225
+4061 y Fq(\017)60 b Fu(Bash)25 b(allo)m(ws)h(a)g(function)e(to)i(o)m(v)
+m(erride)g(a)g(builtin)e(with)h(the)g(same)g(name,)i(and)d(pro)m(vides)
+h(access)h(to)330 4171 y(that)34 b(builtin's)f(functionalit)m(y)h
+(within)f(the)g(function)g(via)h(the)f Ft(builtin)f Fu(and)g
+Ft(command)g Fu(builtins)330 4281 y(\(see)f(Section)h(4.2)f([Bash)g
+(Builtins],)g(page)g(48\).)225 4408 y Fq(\017)60 b Fu(The)35
+b Ft(command)e Fu(builtin)i(allo)m(ws)i(selectiv)m(e)h(disabling)e(of)f
+(functions)g(when)g(command)g(lo)s(okup)g(is)330 4518
+y(p)s(erformed)29 b(\(see)i(Section)g(4.2)h([Bash)f(Builtins],)g(page)g
+(48\).)225 4646 y Fq(\017)60 b Fu(Individual)23 b(builtins)g(ma)m(y)i
+(b)s(e)e(enabled)h(or)g(disabled)g(using)f(the)h Ft(enable)f
+Fu(builtin)g(\(see)i(Section)g(4.2)330 4756 y([Bash)31
+b(Builtins],)g(page)g(48\).)225 4883 y Fq(\017)60 b Fu(The)26
+b(Bash)h Ft(exec)e Fu(builtin)h(tak)m(es)i(additional)f(options)g(that)
g(allo)m(w)h(users)d(to)j(con)m(trol)g(the)e(con)m(ten)m(ts)330
-4979 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g(executed)g
+4993 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g(executed)g
(command,)h(and)d(what)i(the)f(zeroth)h(argumen)m(t)330
-5089 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f
-([Bourne)f(Shell)h(Builtins],)g(page)g(37\).)225 5230
-y Fp(\017)60 b Ft(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
+5103 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f
+([Bourne)f(Shell)h(Builtins],)g(page)g(41\).)225 5230
+y Fq(\017)60 b Fu(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
(to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
-Fs(export)f(-f)h Ft(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
-b(unctions],)32 b(page)f(15\).)p eop end
-%%Page: 144 150
-TeXDict begin 144 149 bop 150 -116 a Ft(144)2527 b(Bash)31
-b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(The)37
-b(Bash)g Fs(export)p Ft(,)h Fs(readonly)p Ft(,)f(and)f
-Fs(declare)g Ft(builtins)h(can)g(tak)m(e)i(a)f(`)p Fs(-f)p
-Ft(')f(option)h(to)g(act)g(on)330 408 y(shell)26 b(functions,)g(a)h(`)p
-Fs(-p)p Ft(')e(option)h(to)h(displa)m(y)f(v)-5 b(ariables)26
-b(with)g(v)-5 b(arious)25 b(attributes)i(set)f(in)f(a)i(format)330
-518 y(that)g(can)f(b)s(e)f(used)h(as)g(shell)g(input,)h(a)f(`)p
-Fs(-n)p Ft(')g(option)g(to)h(remo)m(v)m(e)h(v)-5 b(arious)26
-b(v)-5 b(ariable)27 b(attributes,)h(and)330 628 y(`)p
-Fs(name=value)p Ft(')g(argumen)m(ts)j(to)g(set)g(v)-5
+Ft(export)f(-f)h Fu(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
+b(unctions],)32 b(page)f(17\).)p eop end
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Fu(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(149)225 299 y Fq(\017)60
+b Fu(The)40 b(Bash)h Ft(export)p Fu(,)h Ft(readonly)p
+Fu(,)f(and)g Ft(declare)d Fu(builtins)j(can)g(tak)m(e)h(a)f
+Ft(-f)f Fu(option)i(to)f(act)h(on)330 408 y(shell)30
+b(functions,)f(a)h Ft(-p)f Fu(option)g(to)i(displa)m(y)e(v)-5
+b(ariables)30 b(with)f(v)-5 b(arious)30 b(attributes)g(set)g(in)f(a)h
+(format)330 518 y(that)g(can)g(b)s(e)f(used)g(as)g(shell)h(input,)f(a)h
+Ft(-n)f Fu(option)h(to)g(remo)m(v)m(e)h(v)-5 b(arious)30
+b(v)-5 b(ariable)30 b(attributes,)h(and)330 628 y(`)p
+Ft(name=value)p Fu(')d(argumen)m(ts)j(to)g(set)g(v)-5
b(ariable)31 b(attributes)g(and)f(v)-5 b(alues)30 b(sim)m(ultaneously)
--8 b(.)225 765 y Fp(\017)60 b Ft(The)42 b(Bash)h Fs(hash)f
-Ft(builtin)g(allo)m(ws)j(a)e(name)g(to)g(b)s(e)f(asso)s(ciated)j(with)d
+-8 b(.)225 765 y Fq(\017)60 b Fu(The)42 b(Bash)h Ft(hash)f
+Fu(builtin)g(allo)m(ws)j(a)e(name)g(to)g(b)s(e)f(asso)s(ciated)j(with)d
(an)h(arbitrary)f(\014lename,)330 874 y(ev)m(en)30 b(when)e(that)h
(\014lename)g(cannot)h(b)s(e)e(found)g(b)m(y)h(searc)m(hing)g(the)g
-Fs($PATH)p Ft(,)g(using)f(`)p Fs(hash)h(-p)p Ft(')g(\(see)330
-984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(37\).)225
-1121 y Fp(\017)60 b Ft(Bash)27 b(includes)f(a)i Fs(help)d
-Ft(builtin)i(for)f(quic)m(k)h(reference)h(to)f(shell)g(facilities)i
-(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(43\).)225
-1367 y Fp(\017)60 b Ft(The)42 b Fs(printf)g Ft(builtin)g(is)h(a)m(v)-5
+Ft($PATH)p Fu(,)g(using)f(`)p Ft(hash)h(-p)p Fu(')g(\(see)330
+984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(41\).)225
+1121 y Fq(\017)60 b Fu(Bash)27 b(includes)f(a)i Ft(help)d
+Fu(builtin)i(for)f(quic)m(k)h(reference)h(to)f(shell)g(facilities)i
+(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(48\).)225
+1367 y Fq(\017)60 b Fu(The)42 b Ft(printf)g Fu(builtin)g(is)h(a)m(v)-5
b(ailable)45 b(to)f(displa)m(y)f(formatted)g(output)g(\(see)h(Section)g
-(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(43\).)225
-1614 y Fp(\017)60 b Ft(The)26 b(Bash)h Fs(read)f Ft(builtin)g(\(see)i
-(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(43\))g(will)f(read)g(a)g
-(line)g(ending)330 1724 y(in)f(`)p Fs(\\)p Ft(')h(with)f(the)g(`)p
-Fs(-r)p Ft(')h(option,)h(and)d(will)i(use)f(the)h Fs(REPLY)e
-Ft(v)-5 b(ariable)27 b(as)g(a)f(default)h(if)f(no)h(non-option)330
-1833 y(argumen)m(ts)k(are)h(supplied.)42 b(The)30 b(Bash)i
-Fs(read)e Ft(builtin)g(also)j(accepts)f(a)g(prompt)e(string)h(with)g
-(the)330 1943 y(`)p Fs(-p)p Ft(')k(option)g(and)f(will)h(use)g
-(Readline)g(to)h(obtain)f(the)g(line)g(when)f(giv)m(en)i(the)f(`)p
-Fs(-e)p Ft(')g(option.)54 b(The)330 2052 y Fs(read)31
-b Ft(builtin)h(also)i(has)e(additional)h(options)g(to)g(con)m(trol)h
-(input:)44 b(the)32 b(`)p Fs(-s)p Ft(')h(option)f(will)h(turn)f(o\013)
-330 2162 y(ec)m(hoing)38 b(of)e(input)f(c)m(haracters)j(as)e(they)h
-(are)f(read,)i(the)e(`)p Fs(-t)p Ft(')g(option)h(will)g(allo)m(w)g
-Fs(read)e Ft(to)i(time)330 2271 y(out)c(if)g(input)f(do)s(es)g(not)h
-(arriv)m(e)g(within)g(a)g(sp)s(eci\014ed)f(n)m(um)m(b)s(er)f(of)i
-(seconds,)h(the)f(`)p Fs(-n)p Ft(')f(option)i(will)330
-2381 y(allo)m(w)29 b(reading)e(only)h(a)g(sp)s(eci\014ed)e(n)m(um)m(b)s
-(er)g(of)i(c)m(haracters)h(rather)e(than)g(a)h(full)f(line,)i(and)d
-(the)i(`)p Fs(-d)p Ft(')330 2491 y(option)j(will)g(read)f(un)m(til)g(a)
-h(particular)g(c)m(haracter)h(rather)e(than)g(newline.)225
-2628 y Fp(\017)60 b Ft(The)33 b Fs(return)e Ft(builtin)i(ma)m(y)g(b)s
-(e)g(used)f(to)i(ab)s(ort)f(execution)h(of)f(scripts)g(executed)h(with)
-f(the)g Fs(.)g Ft(or)330 2737 y Fs(source)c Ft(builtins)g(\(see)j
-(Section)f(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(37\).)225
-2874 y Fp(\017)60 b Ft(Bash)43 b(includes)g(the)g Fs(shopt)f
-Ft(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g
+(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(48\).)225
+1614 y Fq(\017)60 b Fu(The)26 b(Bash)h Ft(read)f Fu(builtin)g(\(see)i
+(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(48\))g(will)f(read)g(a)g
+(line)g(ending)330 1724 y(in)i(`)p Ft(\\)p Fu(')h(with)f(the)g
+Ft(-r)g Fu(option,)i(and)d(will)i(use)f(the)h Ft(REPLY)e
+Fu(v)-5 b(ariable)30 b(as)g(a)f(default)h(if)f(no)h(non-option)330
+1833 y(argumen)m(ts)h(are)h(supplied.)42 b(The)30 b(Bash)i
+Ft(read)e Fu(builtin)g(also)j(accepts)f(a)g(prompt)e(string)h(with)g
+(the)330 1943 y Ft(-p)c Fu(option)h(and)f(will)g(use)h(Readline)g(to)g
+(obtain)g(the)g(line)f(when)g(giv)m(en)h(the)g Ft(-e)f
+Fu(option.)40 b(The)27 b Ft(read)330 2052 y Fu(builtin)h(also)i(has)e
+(additional)i(options)f(to)g(con)m(trol)h(input:)39 b(the)29
+b Ft(-s)f Fu(option)h(will)g(turn)e(o\013)j(ec)m(hoing)330
+2162 y(of)f(input)f(c)m(haracters)j(as)e(they)g(are)h(read,)f(the)g
+Ft(-t)g Fu(option)g(will)h(allo)m(w)g Ft(read)e Fu(to)i(time)g(out)f
+(if)g(input)330 2271 y(do)s(es)i(not)h(arriv)m(e)g(within)f(a)h(sp)s
+(eci\014ed)f(n)m(um)m(b)s(er)f(of)i(seconds,)g(the)f
+Ft(-n)g Fu(option)h(will)g(allo)m(w)h(reading)330 2381
+y(only)38 b(a)g(sp)s(eci\014ed)f(n)m(um)m(b)s(er)f(of)i(c)m(haracters)h
+(rather)e(than)g(a)h(full)g(line,)i(and)d(the)h Ft(-d)f
+Fu(option)h(will)330 2491 y(read)30 b(un)m(til)h(a)g(particular)f(c)m
+(haracter)i(rather)f(than)f(newline.)225 2628 y Fq(\017)60
+b Fu(The)33 b Ft(return)e Fu(builtin)i(ma)m(y)g(b)s(e)g(used)f(to)i(ab)
+s(ort)f(execution)h(of)f(scripts)g(executed)h(with)f(the)g
+Ft(.)g Fu(or)330 2737 y Ft(source)c Fu(builtins)g(\(see)j(Section)f
+(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(41\).)225
+2874 y Fq(\017)60 b Fu(Bash)43 b(includes)g(the)g Ft(shopt)f
+Fu(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g
(capabilities)h(\(see)330 2984 y(Section)c(4.3.2)g([The)f(Shopt)f
-(Builtin],)k(page)d(57\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
+(Builtin],)k(page)d(62\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
(b)s(e)f(set)i(and)330 3093 y(unset)30 b(at)h(shell)g(in)m(v)m(o)s
(cation)h(\(see)f(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)g(page)h
-(73\).)225 3230 y Fp(\017)60 b Ft(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
+(80\).)225 3230 y Fq(\017)60 b Fu(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
(optional)h(b)s(eha)m(vior)e(con)m(trollable)j(with)e(the)f
-Fs(set)g Ft(builtin)g(\(see)h(Sec-)330 3340 y(tion)31
-b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(54\).)225 3477
-y Fp(\017)60 b Ft(The)31 b(`)p Fs(-x)p Ft(')g(\()p Fs(xtrace)p
-Ft(\))g(option)h(displa)m(ys)f(commands)h(other)f(than)h(simple)f
+Ft(set)g Fu(builtin)g(\(see)h(Sec-)330 3340 y(tion)31
+b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(58\).)225 3477
+y Fq(\017)60 b Fu(The)31 b(`)p Ft(-x)p Fu(')g(\()p Ft(xtrace)p
+Fu(\))g(option)h(displa)m(ys)f(commands)h(other)f(than)h(simple)f
(commands)g(when)g(p)s(er-)330 3587 y(forming)f(an)g(execution)i(trace)
-f(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(54\).)225
-3724 y Fp(\017)60 b Ft(The)28 b Fs(test)g Ft(builtin)h(\(see)h(Section)
-f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(37\))g(is)f(sligh)m(tly)h
+f(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(58\).)225
+3724 y Fq(\017)60 b Fu(The)28 b Ft(test)g Fu(builtin)h(\(see)h(Section)
+f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(41\))g(is)f(sligh)m(tly)h
(di\013eren)m(t,)330 3833 y(as)23 b(it)g(implemen)m(ts)f(the)h
-Fl(posix)f Ft(algorithm,)j(whic)m(h)d(sp)s(eci\014es)g(the)h(b)s(eha)m
+Fm(posix)f Fu(algorithm,)j(whic)m(h)d(sp)s(eci\014es)g(the)h(b)s(eha)m
(vior)f(based)g(on)h(the)f(n)m(um)m(b)s(er)330 3943 y(of)31
-b(argumen)m(ts.)225 4080 y Fp(\017)60 b Ft(Bash)31 b(includes)g(the)h
-Fs(caller)d Ft(builtin,)j(whic)m(h)f(displa)m(ys)g(the)g(con)m(text)i
+b(argumen)m(ts.)225 4080 y Fq(\017)60 b Fu(Bash)31 b(includes)g(the)h
+Ft(caller)d Fu(builtin,)j(whic)m(h)f(displa)m(ys)g(the)g(con)m(text)i
(of)f(an)m(y)g(activ)m(e)h(subroutine)330 4189 y(call)28
b(\(a)f(shell)f(function)h(or)f(a)h(script)f(executed)h(with)f(the)h
-Fs(.)f Ft(or)g Fs(source)f Ft(builtins\).)39 b(This)26
+Ft(.)f Fu(or)g Ft(source)f Fu(builtins\).)39 b(This)26
b(supp)s(orts)330 4299 y(the)31 b(bash)e(debugger.)225
-4436 y Fp(\017)60 b Ft(The)42 b Fs(trap)f Ft(builtin)h(\(see)i(Section)
-f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(37\))h(allo)m(ws)g(a)e
-Fs(DEBUG)330 4545 y Ft(pseudo-signal)c(sp)s(eci\014cation,)i(similar)e
-(to)g Fs(EXIT)p Ft(.)62 b(Commands)36 b(sp)s(eci\014ed)h(with)g(a)h
-Fs(DEBUG)e Ft(trap)330 4655 y(are)k(executed)g(b)s(efore)f(ev)m(ery)h
-(simple)f(command,)j Fs(for)c Ft(command,)k Fs(case)c
-Ft(command,)k Fs(select)330 4765 y Ft(command,)35 b(ev)m(ery)g
-(arithmetic)g Fs(for)e Ft(command,)i(and)f(b)s(efore)g(the)g(\014rst)f
+4436 y Fq(\017)60 b Fu(The)42 b Ft(trap)f Fu(builtin)h(\(see)i(Section)
+f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(41\))h(allo)m(ws)g(a)e
+Ft(DEBUG)330 4545 y Fu(pseudo-signal)c(sp)s(eci\014cation,)i(similar)e
+(to)g Ft(EXIT)p Fu(.)62 b(Commands)36 b(sp)s(eci\014ed)h(with)g(a)h
+Ft(DEBUG)e Fu(trap)330 4655 y(are)k(executed)g(b)s(efore)f(ev)m(ery)h
+(simple)f(command,)j Ft(for)c Fu(command,)k Ft(case)c
+Fu(command,)k Ft(select)330 4765 y Fu(command,)35 b(ev)m(ery)g
+(arithmetic)g Ft(for)e Fu(command,)i(and)f(b)s(efore)g(the)g(\014rst)f
(command)h(executes)h(in)330 4874 y(a)29 b(shell)g(function.)40
-b(The)28 b Fs(DEBUG)g Ft(trap)g(is)h(not)g(inherited)f(b)m(y)h(shell)g
+b(The)28 b Ft(DEBUG)g Fu(trap)g(is)h(not)g(inherited)f(b)m(y)h(shell)g
(functions)f(unless)g(the)h(function)330 4984 y(has)35
-b(b)s(een)g(giv)m(en)i(the)f Fs(trace)e Ft(attribute)i(or)g(the)g
-Fs(functrace)d Ft(option)j(has)f(b)s(een)g(enabled)g(using)330
-5093 y(the)28 b Fs(shopt)e Ft(builtin.)39 b(The)27 b
-Fs(extdebug)f Ft(shell)i(option)g(has)f(additional)h(e\013ects)h(on)f
-(the)g Fs(DEBUG)e Ft(trap.)330 5230 y(The)21 b Fs(trap)e
-Ft(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
-(page)e(37\))g(allo)m(ws)g(an)f Fs(ERR)f Ft(pseudo-)330
+b(b)s(een)g(giv)m(en)i(the)f Ft(trace)e Fu(attribute)i(or)g(the)g
+Ft(functrace)d Fu(option)j(has)f(b)s(een)g(enabled)g(using)330
+5093 y(the)28 b Ft(shopt)e Fu(builtin.)39 b(The)27 b
+Ft(extdebug)f Fu(shell)i(option)g(has)f(additional)h(e\013ects)h(on)f
+(the)g Ft(DEBUG)e Fu(trap.)330 5230 y(The)21 b Ft(trap)e
+Fu(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
+(page)e(41\))g(allo)m(ws)g(an)f Ft(ERR)f Fu(pseudo-)330
5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
-Fs(EXIT)f Ft(and)g Fs(DEBUG)p Ft(.)39 b(Commands)28 b(sp)s(eci\014ed)h
-(with)g(an)g Fs(ERR)g Ft(trap)p eop end
-%%Page: 145 151
-TeXDict begin 145 150 bop 150 -116 a Ft(App)s(endix)29
+Ft(EXIT)f Fu(and)g Ft(DEBUG)p Fu(.)39 b(Commands)28 b(sp)s(eci\014ed)h
+(with)g(an)g Ft(ERR)g Fu(trap)p eop end
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(145)330 299 y(are)40 b(executed)g(after)g
+b(The)f(Bourne)g(Shell)1258 b(150)330 299 y(are)40 b(executed)g(after)g
(a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
-b(The)39 b Fs(ERR)g Ft(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
-(shell)g(functions)f(unless)g(the)h Fs(-o)29 b(errtrace)37
-b Ft(option)i(to)g(the)g Fs(set)f Ft(builtin)g(is)330
-518 y(enabled.)330 650 y(The)g Fs(trap)g Ft(builtin)h(\(see)g(Section)h
-(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(37\))g(allo)m(ws)g(a)g
-Fs(RETURN)330 760 y Ft(pseudo-signal)35 b(sp)s(eci\014cation,)j
-(similar)d(to)h Fs(EXIT)e Ft(and)g Fs(DEBUG)p Ft(.)54
+b(The)39 b Ft(ERR)g Fu(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
+(shell)g(functions)f(unless)g(the)h Ft(-o)29 b(errtrace)37
+b Fu(option)i(to)g(the)g Ft(set)f Fu(builtin)g(is)330
+518 y(enabled.)330 650 y(The)g Ft(trap)g Fu(builtin)h(\(see)g(Section)h
+(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(41\))g(allo)m(ws)g(a)g
+Ft(RETURN)330 760 y Fu(pseudo-signal)35 b(sp)s(eci\014cation,)j
+(similar)d(to)h Ft(EXIT)e Fu(and)g Ft(DEBUG)p Fu(.)54
b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 869 y
-Fs(RETURN)k Ft(trap)i(are)g(executed)h(b)s(efore)e(execution)i(resumes)
+Ft(RETURN)k Fu(trap)i(are)g(executed)h(b)s(efore)e(execution)i(resumes)
e(after)h(a)g(shell)g(function)g(or)g(a)g(shell)330 979
-y(script)36 b(executed)g(with)g Fs(.)f Ft(or)h Fs(source)e
-Ft(returns.)56 b(The)35 b Fs(RETURN)f Ft(trap)i(is)g(not)g(inherited)f
+y(script)36 b(executed)g(with)g Ft(.)f Fu(or)h Ft(source)e
+Fu(returns.)56 b(The)35 b Ft(RETURN)f Fu(trap)i(is)g(not)g(inherited)f
(b)m(y)h(shell)330 1088 y(functions)k(unless)h(the)g(function)f(has)h
-(b)s(een)f(giv)m(en)i(the)f Fs(trace)e Ft(attribute)j(or)e(the)h
-Fs(functrace)330 1198 y Ft(option)31 b(has)f(b)s(een)g(enabled)g(using)
-g(the)g Fs(shopt)f Ft(builtin.)225 1330 y Fp(\017)60
-b Ft(The)30 b(Bash)g Fs(type)f Ft(builtin)h(is)g(more)g(extensiv)m(e)i
+(b)s(een)f(giv)m(en)i(the)f Ft(trace)e Fu(attribute)j(or)e(the)h
+Ft(functrace)330 1198 y Fu(option)31 b(has)f(b)s(een)g(enabled)g(using)
+g(the)g Ft(shopt)f Fu(builtin.)225 1330 y Fq(\017)60
+b Fu(The)30 b(Bash)g Ft(type)f Fu(builtin)h(is)g(more)g(extensiv)m(e)i
(and)d(giv)m(es)j(more)e(information)h(ab)s(out)f(the)g(names)330
1440 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i
-(page)f(43\).)225 1571 y Fp(\017)60 b Ft(The)34 b(Bash)h
-Fs(umask)e Ft(builtin)h(p)s(ermits)g(a)g(`)p Fs(-p)p
-Ft(')h(option)g(to)g(cause)g(the)g(output)f(to)h(b)s(e)f(displa)m(y)m
-(ed)h(in)330 1681 y(the)g(form)g(of)g(a)h Fs(umask)e
-Ft(command)h(that)g(ma)m(y)h(b)s(e)f(reused)f(as)h(input)g(\(see)h
-(Section)g(4.1)g([Bourne)330 1791 y(Shell)30 b(Builtins],)h(page)h
-(37\).)225 1923 y Fp(\017)60 b Ft(Bash)34 b(implemen)m(ts)h(a)g
-Fs(csh)p Ft(-lik)m(e)g(directory)f(stac)m(k,)j(and)d(pro)m(vides)g(the)
-g Fs(pushd)p Ft(,)g Fs(popd)p Ft(,)g(and)g Fs(dirs)330
-2032 y Ft(builtins)g(to)i(manipulate)f(it)h(\(see)f(Section)h(6.8)g
-([The)f(Directory)h(Stac)m(k],)i(page)d(83\).)56 b(Bash)35
-b(also)330 2142 y(mak)m(es)c(the)g(directory)g(stac)m(k)g(visible)g(as)
-g(the)f(v)-5 b(alue)31 b(of)g(the)f Fs(DIRSTACK)f Ft(shell)h(v)-5
-b(ariable.)225 2274 y Fp(\017)60 b Ft(Bash)28 b(in)m(terprets)h(sp)s
-(ecial)g(bac)m(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e
-(strings)h(when)f(in)m(ter-)330 2383 y(activ)m(e)33 b(\(see)e(Section)g
-(6.9)h([Prin)m(ting)e(a)h(Prompt],)g(page)g(84\).)225
-2515 y Fp(\017)60 b Ft(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h
+(page)f(48\).)225 1571 y Fq(\017)60 b Fu(The)27 b(Bash)h
+Ft(umask)e Fu(builtin)h(p)s(ermits)g(a)h Ft(-p)f Fu(option)h(to)h
+(cause)f(the)g(output)f(to)h(b)s(e)f(displa)m(y)m(ed)h(in)g(the)330
+1681 y(form)i(of)h(a)g Ft(umask)f Fu(command)g(that)i(ma)m(y)f(b)s(e)f
+(reused)g(as)h(input)f(\(see)i(Section)f(4.1)h([Bourne)f(Shell)330
+1791 y(Builtins],)g(page)g(41\).)225 1923 y Fq(\017)60
+b Fu(Bash)34 b(implemen)m(ts)h(a)g Ft(csh)p Fu(-lik)m(e)g(directory)f
+(stac)m(k,)j(and)d(pro)m(vides)g(the)g Ft(pushd)p Fu(,)g
+Ft(popd)p Fu(,)g(and)g Ft(dirs)330 2032 y Fu(builtins)g(to)i
+(manipulate)f(it)h(\(see)f(Section)h(6.8)g([The)f(Directory)h(Stac)m
+(k],)i(page)d(90\).)56 b(Bash)35 b(also)330 2142 y(mak)m(es)c(the)g
+(directory)g(stac)m(k)g(visible)g(as)g(the)f(v)-5 b(alue)31
+b(of)g(the)f Ft(DIRSTACK)f Fu(shell)h(v)-5 b(ariable.)225
+2274 y Fq(\017)60 b Fu(Bash)28 b(in)m(terprets)h(sp)s(ecial)g(bac)m
+(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e(strings)h
+(when)f(in)m(ter-)330 2383 y(activ)m(e)33 b(\(see)e(Section)g(6.9)h
+([Con)m(trolling)f(the)g(Prompt],)f(page)h(92\).)225
+2515 y Fq(\017)60 b Fu(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h
(more)f(useful)g(\(see)h(Section)h(6.10)g([The)e(Restricted)i(Shell],)
-330 2625 y(page)31 b(86\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s
-(de)f(is)h(to)s(o)g(limited.)225 2757 y Fp(\017)60 b
-Ft(The)30 b Fs(disown)f Ft(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
+330 2625 y(page)31 b(93\);)h(the)f(SVR4.2)g(shell)f(restricted)h(mo)s
+(de)f(is)h(to)s(o)g(limited.)225 2757 y Fq(\017)60 b
+Fu(The)30 b Ft(disown)f Fu(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
(from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h
-(7.2)330 2866 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(92\))h(or)e
-(suppress)e(the)i(sending)g(of)g Fs(SIGHUP)e Ft(to)j(a)g(job)f(when)f
+(7.2)330 2866 y([Job)h(Con)m(trol)h(Builtins],)g(page)g(98\))h(or)e
+(suppress)e(the)i(sending)g(of)g Ft(SIGHUP)e Fu(to)j(a)g(job)f(when)f
(the)330 2976 y(shell)f(exits)g(as)f(the)h(result)f(of)h(a)f
-Fs(SIGHUP)p Ft(.)225 3108 y Fp(\017)60 b Ft(Bash)31 b(includes)f(a)g(n)
+Ft(SIGHUP)p Fu(.)225 3108 y Fq(\017)60 b Fu(Bash)31 b(includes)f(a)g(n)
m(um)m(b)s(er)f(of)i(features)g(to)g(supp)s(ort)d(a)j(separate)g
-(debugger)f(for)h(shell)f(scripts.)225 3240 y Fp(\017)60
-b Ft(The)28 b(SVR4.2)h(shell)f(has)g(t)m(w)m(o)i(privilege-related)g
-(builtins)e(\()p Fs(mldmode)e Ft(and)i Fs(priv)p Ft(\))f(not)i(presen)m
-(t)f(in)330 3350 y(Bash.)225 3482 y Fp(\017)60 b Ft(Bash)31
-b(do)s(es)f(not)g(ha)m(v)m(e)i(the)e Fs(stop)g Ft(or)g
-Fs(newgrp)f Ft(builtins.)225 3613 y Fp(\017)60 b Ft(Bash)31
-b(do)s(es)f(not)g(use)g(the)h Fs(SHACCT)d Ft(v)-5 b(ariable)32
+(debugger)f(for)h(shell)f(scripts.)225 3240 y Fq(\017)60
+b Fu(The)28 b(SVR4.2)h(shell)f(has)g(t)m(w)m(o)i(privilege-related)g
+(builtins)e(\()p Ft(mldmode)e Fu(and)i Ft(priv)p Fu(\))f(not)i(presen)m
+(t)f(in)330 3350 y(Bash.)225 3482 y Fq(\017)60 b Fu(Bash)31
+b(do)s(es)f(not)g(ha)m(v)m(e)i(the)e Ft(stop)g Fu(or)g
+Ft(newgrp)f Fu(builtins.)225 3613 y Fq(\017)60 b Fu(Bash)31
+b(do)s(es)f(not)g(use)g(the)h Ft(SHACCT)d Fu(v)-5 b(ariable)32
b(or)e(p)s(erform)f(shell)i(accoun)m(ting.)225 3745 y
-Fp(\017)60 b Ft(The)30 b(SVR4.2)h Fs(sh)f Ft(uses)g(a)g
-Fs(TIMEOUT)f Ft(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g
-Fs(TMOUT)p Ft(.)150 3900 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m
+Fq(\017)60 b Fu(The)30 b(SVR4.2)h Ft(sh)f Fu(uses)g(a)g
+Ft(TIMEOUT)f Fu(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g
+Ft(TMOUT)p Fu(.)150 3900 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m
(y)g(b)s(e)f(found)f(in)h(Chapter)f(6)i([Bash)g(F)-8
-b(eatures],)32 b(page)f(73.)150 4127 y Fr(B.1)67 b(Implemen)l(tation)48
+b(eatures],)32 b(page)f(80.)150 4127 y Fs(B.1)67 b(Implemen)l(tation)48
b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)150
-4287 y Ft(Since)33 b(Bash)h(is)f(a)g(completely)i(new)e(implemen)m
+4287 y Fu(Since)33 b(Bash)h(is)f(a)g(completely)i(new)e(implemen)m
(tation,)j(it)e(do)s(es)e(not)i(su\013er)e(from)h(man)m(y)g(of)h(the)f
(limi-)150 4396 y(tations)f(of)e(the)h(SVR4.2)g(shell.)41
-b(F)-8 b(or)31 b(instance:)225 4528 y Fp(\017)60 b Ft(Bash)32
+b(F)-8 b(or)31 b(instance:)225 4528 y Fq(\017)60 b Fu(Bash)32
b(do)s(es)f(not)h(fork)f(a)h(subshell)e(when)h(redirecting)h(in)m(to)h
(or)e(out)h(of)g(a)g(shell)f(con)m(trol)i(structure)330
-4638 y(suc)m(h)d(as)h(an)f Fs(if)g Ft(or)g Fs(while)f
-Ft(statemen)m(t.)225 4770 y Fp(\017)60 b Ft(Bash)29 b(do)s(es)f(not)h
+4638 y(suc)m(h)d(as)h(an)f Ft(if)g Fu(or)g Ft(while)f
+Fu(statemen)m(t.)225 4770 y Fq(\017)60 b Fu(Bash)29 b(do)s(es)f(not)h
(allo)m(w)h(un)m(balanced)f(quotes.)41 b(The)28 b(SVR4.2)h(shell)g
(will)g(silen)m(tly)i(insert)d(a)h(needed)330 4879 y(closing)g(quote)g
-(at)f Fs(EOF)f Ft(under)g(certain)h(circumstances.)41
+(at)f Ft(EOF)f Fu(under)g(certain)h(circumstances.)41
b(This)27 b(can)h(b)s(e)g(the)g(cause)g(of)g(some)h(hard-)330
-4989 y(to-\014nd)h(errors.)225 5121 y Fp(\017)60 b Ft(The)45
+4989 y(to-\014nd)h(errors.)225 5121 y Fq(\017)60 b Fu(The)45
b(SVR4.2)h(shell)f(uses)g(a)g(baro)s(que)g(memory)g(managemen)m(t)i(sc)
-m(heme)e(based)g(on)g(trapping)330 5230 y Fs(SIGSEGV)p
-Ft(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
-(with)g Fs(SIGSEGV)e Ft(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
-5340 y(the)31 b Fs(system\(\))d Ft(C)i(library)g(function)g(call\),)i
+m(heme)e(based)g(on)g(trapping)330 5230 y Ft(SIGSEGV)p
+Fu(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
+(with)g Ft(SIGSEGV)e Fu(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
+5340 y(the)31 b Ft(system\(\))d Fu(C)i(library)g(function)g(call\),)i
(it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
-%%Page: 146 152
-TeXDict begin 146 151 bop 150 -116 a Ft(146)2527 b(Bash)31
-b(Reference)g(Man)m(ual)225 299 y Fp(\017)60 b Ft(In)26
-b(a)i(questionable)g(attempt)h(at)f(securit)m(y)-8 b(,)29
-b(the)e(SVR4.2)h(shell,)g(when)f(in)m(v)m(ok)m(ed)h(without)g(the)f(`)p
-Fs(-p)p Ft(')330 408 y(option,)39 b(will)d(alter)i(its)e(real)h(and)f
-(e\013ectiv)m(e)j Fl(uid)d Ft(and)g Fl(gid)h Ft(if)f(they)h(are)f(less)
-h(than)f(some)h(magic)330 518 y(threshold)30 b(v)-5 b(alue,)31
-b(commonly)g(100.)42 b(This)29 b(can)i(lead)g(to)g(unexp)s(ected)f
-(results.)225 653 y Fp(\017)60 b Ft(The)30 b(SVR4.2)h(shell)g(do)s(es)f
-(not)g(allo)m(w)i(users)e(to)h(trap)f Fs(SIGSEGV)p Ft(,)f
-Fs(SIGALRM)p Ft(,)f(or)j Fs(SIGCHLD)p Ft(.)225 787 y
-Fp(\017)60 b Ft(The)34 b(SVR4.2)h(shell)g(do)s(es)g(not)f(allo)m(w)j
-(the)d Fs(IFS)p Ft(,)h Fs(MAILCHECK)p Ft(,)f Fs(PATH)p
-Ft(,)h Fs(PS1)p Ft(,)g(or)f Fs(PS2)g Ft(v)-5 b(ariables)35
-b(to)330 897 y(b)s(e)30 b(unset.)225 1031 y Fp(\017)60
-b Ft(The)30 b(SVR4.2)h(shell)g(treats)g(`)p Fs(^)p Ft(')f(as)h(the)g
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Fu(App)s(endix)29
+b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
+b(The)f(Bourne)g(Shell)1258 b(151)225 299 y Fq(\017)60
+b Fu(In)30 b(a)i(questionable)g(attempt)g(at)g(securit)m(y)-8
+b(,)33 b(the)e(SVR4.2)h(shell,)g(when)e(in)m(v)m(ok)m(ed)j(without)e
+(the)h Ft(-p)330 408 y Fu(option,)39 b(will)d(alter)i(its)e(real)h(and)
+f(e\013ectiv)m(e)j Fm(uid)d Fu(and)g Fm(gid)h Fu(if)f(they)h(are)f
+(less)h(than)f(some)h(magic)330 518 y(threshold)30 b(v)-5
+b(alue,)31 b(commonly)g(100.)42 b(This)29 b(can)i(lead)g(to)g(unexp)s
+(ected)f(results.)225 653 y Fq(\017)60 b Fu(The)30 b(SVR4.2)h(shell)g
+(do)s(es)f(not)g(allo)m(w)i(users)e(to)h(trap)f Ft(SIGSEGV)p
+Fu(,)f Ft(SIGALRM)p Fu(,)f(or)j Ft(SIGCHLD)p Fu(.)225
+787 y Fq(\017)60 b Fu(The)34 b(SVR4.2)h(shell)g(do)s(es)g(not)f(allo)m
+(w)j(the)d Ft(IFS)p Fu(,)h Ft(MAILCHECK)p Fu(,)f Ft(PATH)p
+Fu(,)h Ft(PS1)p Fu(,)g(or)f Ft(PS2)g Fu(v)-5 b(ariables)35
+b(to)330 897 y(b)s(e)30 b(unset.)225 1031 y Fq(\017)60
+b Fu(The)30 b(SVR4.2)h(shell)g(treats)g(`)p Ft(^)p Fu(')f(as)h(the)g
(undo)s(cumen)m(ted)e(equiv)-5 b(alen)m(t)31 b(of)g(`)p
-Fs(|)p Ft('.)225 1166 y Fp(\017)60 b Ft(Bash)37 b(allo)m(ws)h(m)m
+Ft(|)p Fu('.)225 1166 y Fq(\017)60 b Fu(Bash)37 b(allo)m(ws)h(m)m
(ultiple)f(option)g(argumen)m(ts)g(when)e(it)i(is)g(in)m(v)m(ok)m(ed)h
-(\()p Fs(-x)30 b(-v)p Ft(\);)40 b(the)c(SVR4.2)i(shell)330
+(\()p Ft(-x)30 b(-v)p Fu(\);)40 b(the)c(SVR4.2)i(shell)330
1275 y(allo)m(ws)c(only)f(one)g(option)g(argumen)m(t)g(\()p
-Fs(-xv)p Ft(\).)47 b(In)32 b(fact,)i(some)f(v)m(ersions)g(of)g(the)g
+Ft(-xv)p Fu(\).)47 b(In)32 b(fact,)i(some)f(v)m(ersions)g(of)g(the)g
(shell)f(dump)f(core)330 1385 y(if)f(the)h(second)f(argumen)m(t)h(b)s
-(egins)f(with)g(a)h(`)p Fs(-)p Ft('.)225 1519 y Fp(\017)60
-b Ft(The)26 b(SVR4.2)i(shell)f(exits)g(a)g(script)g(if)g(an)m(y)g
+(egins)f(with)g(a)h(`)p Ft(-)p Fu('.)225 1519 y Fq(\017)60
+b Fu(The)26 b(SVR4.2)i(shell)f(exits)g(a)g(script)g(if)g(an)m(y)g
(builtin)f(fails;)j(Bash)e(exits)g(a)g(script)g(only)g(if)g(one)g(of)g
-(the)330 1629 y Fl(posix)34 b Ft(sp)s(ecial)h(builtins)f(fails,)i(and)e
+(the)330 1629 y Fm(posix)34 b Fu(sp)s(ecial)h(builtins)f(fails,)i(and)e
(only)h(for)f(certain)h(failures,)h(as)f(en)m(umerated)g(in)f(the)h
-Fl(posix)330 1738 y Ft(standard.)225 1873 y Fp(\017)60
-b Ft(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
-(when)f(in)m(v)m(ok)m(ed)i(as)e Fs(jsh)g Ft(\(it)h(turns)e(on)h(job)g
+Fm(posix)330 1738 y Fu(standard.)225 1873 y Fq(\017)60
+b Fu(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
+(when)f(in)m(v)m(ok)m(ed)i(as)e Ft(jsh)g Fu(\(it)h(turns)e(on)h(job)g
(con)m(trol\).)p eop end
-%%Page: 147 153
-TeXDict begin 147 152 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 152 158
+TeXDict begin 152 157 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(147)150 299 y Fo(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13
-b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 502 y Ft(V)-8
+b(152)150 299 y Fp(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13
+b(ree)53 b(Do)t(cumen)l(tation)e(License)1359 502 y Fu(V)-8
b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390
-635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fp(\015)e
-Ft(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
+635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y Fq(\015)e
+Fu(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31
b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 745
-y Fs(http://fsf.org/)390 964 y Ft(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
+y Ft(http://fsf.org/)390 964 y Fu(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f
(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390
1074 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f
(is)f(not)h(allo)m(w)m(ed.)199 1207 y(0.)61 b(PREAMBLE)330
1340 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g
(a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330
-1450 y(useful)29 b(do)s(cumen)m(t)h Fq(free)36 b Ft(in)29
+1450 y(useful)29 b(do)s(cumen)m(t)h Fr(free)36 b Fu(in)29
b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j
(the)e(e\013ectiv)m(e)j(freedom)330 1559 y(to)f(cop)m(y)g(and)f
(redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i
@@ -14815,10 +18763,11 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
(cumen)m(t)g(is)g(released)p eop end
-%%Page: 148 154
-TeXDict begin 148 153 bop 150 -116 a Ft(148)2527 b(Bash)31
-b(Reference)g(Man)m(ual)330 299 y(under)26 b(this)i(License.)40
-b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Fu(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(153)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
b(arian)m(t.)46 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)i(zero)
@@ -14855,63 +18804,63 @@ b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g
(substan)m(tial)h(amoun)m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g
(is)330 2134 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i
(\\Opaque".)330 2285 y(Examples)53 b(of)g(suitable)h(formats)f(for)g(T)
--8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fl(asci)r(i)g
-Ft(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
+-8 b(ransparen)m(t)53 b(copies)h(include)f(plain)g Fm(asci)r(i)g
+Fu(without)330 2395 y(markup,)37 b(T)-8 b(exinfo)36 b(input)f(format,)j
(LaT)1759 2414 y(E)1810 2395 y(X)e(input)f(format,)j
-Ff(SGML)f Ft(or)f Ff(XML)g Ft(using)g(a)g(publicly)330
-2504 y(a)m(v)-5 b(ailable)42 b Ff(DTD)p Ft(,)g(and)d
-(standard-conforming)h(simple)g Ff(HTML)p Ft(,)g(P)m(ostScript)h(or)f
-Ff(PDF)g Ft(designed)330 2614 y(for)e(h)m(uman)g(mo)s(di\014cation.)65
-b(Examples)38 b(of)h(transparen)m(t)f(image)i(formats)e(include)g
-Ff(PNG)p Ft(,)h Ff(X)n(CF)330 2724 y Ft(and)h Ff(JPG)p
-Ft(.)g(Opaque)h(formats)g(include)f(proprietary)g(formats)h(that)h(can)
-f(b)s(e)f(read)g(and)h(edited)330 2833 y(only)54 b(b)m(y)f(proprietary)
-h(w)m(ord)f(pro)s(cessors,)59 b Ff(SGML)54 b Ft(or)f
-Ff(XML)h Ft(for)g(whic)m(h)f(the)h Ff(DTD)g Ft(and/or)330
-2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g(generally)i(a)m(v)-5
-b(ailable,)71 b(and)60 b(the)h(mac)m(hine-generated)j
-Ff(HTML)p Ft(,)330 3052 y(P)m(ostScript)31 b(or)f Ff(PDF)h
-Ft(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s(cessors)g(for)g(output)
-g(purp)s(oses)f(only)-8 b(.)330 3203 y(The)34 b(\\Title)h(P)m(age")i
-(means,)e(for)f(a)h(prin)m(ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f
-(itself,)h(plus)e(suc)m(h)f(follo)m(wing)330 3313 y(pages)28
-b(as)g(are)g(needed)g(to)g(hold,)g(legibly)-8 b(,)30
-b(the)e(material)h(this)e(License)i(requires)e(to)h(app)s(ear)f(in)h
-(the)330 3422 y(title)g(page.)40 b(F)-8 b(or)28 b(w)m(orks)e(in)g
-(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h(an)m(y)e(title)j(page)e
-(as)g(suc)m(h,)g(\\Title)h(P)m(age")330 3532 y(means)j(the)f(text)i
-(near)e(the)h(most)g(prominen)m(t)g(app)s(earance)f(of)h(the)g(w)m
-(ork's)g(title,)h(preceding)f(the)330 3641 y(b)s(eginning)f(of)g(the)h
-(b)s(o)s(dy)e(of)h(the)h(text.)330 3792 y(The)j(\\publisher")g(means)h
-(an)m(y)f(p)s(erson)g(or)h(en)m(tit)m(y)h(that)f(distributes)f(copies)i
-(of)e(the)h(Do)s(cumen)m(t)330 3902 y(to)c(the)g(public.)330
-4052 y(A)f(section)h(\\En)m(titled)g(XYZ")f(means)f(a)h(named)g
-(subunit)e(of)h(the)h(Do)s(cumen)m(t)h(whose)e(title)i(either)330
-4162 y(is)d(precisely)g(XYZ)g(or)f(con)m(tains)i(XYZ)f(in)f(paren)m
-(theses)i(follo)m(wing)g(text)g(that)f(translates)h(XYZ)e(in)330
-4271 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g
-(sp)s(eci\014c)g(section)h(name)f(men)m(tioned)h(b)s(elo)m(w,)g(suc)m
-(h)330 4381 y(as)i(\\Ac)m(kno)m(wledgemen)m(ts",)33 b(\\Dedications",)e
-(\\Endorsemen)m(ts",)e(or)f(\\History".\))42 b(T)-8 b(o)29
-b(\\Preserv)m(e)330 4491 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g
-(section)g(when)f(y)m(ou)h(mo)s(dify)e(the)i(Do)s(cumen)m(t)h(means)e
-(that)h(it)g(remains)g(a)330 4600 y(section)e(\\En)m(titled)f(XYZ")g
-(according)g(to)g(this)g(de\014nition.)330 4751 y(The)c(Do)s(cumen)m(t)
-i(ma)m(y)f(include)f(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to)
-g(the)g(notice)h(whic)m(h)e(states)i(that)330 4861 y(this)34
-b(License)g(applies)g(to)h(the)f(Do)s(cumen)m(t.)52 b(These)33
-b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330
-4970 y(b)s(e)k(included)g(b)m(y)g(reference)h(in)g(this)f(License,)j
-(but)d(only)h(as)g(regards)f(disclaiming)i(w)m(arran)m(ties:)330
-5080 y(an)m(y)e(other)g(implication)i(that)e(these)g(W)-8
-b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g
-(and)f(has)h(no)330 5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h
-(this)f(License.)199 5340 y(2.)61 b(VERBA)-8 b(TIM)31
-b(COPYING)p eop end
-%%Page: 149 155
-TeXDict begin 149 154 bop 150 -116 a Ft(App)s(endix)29
+Ff(SGML)f Fu(or)f Ff(XML)g Fu(using)g(a)g(publicly)330
+2504 y(a)m(v)-5 b(ailable)42 b Ff(DTD)p Fu(,)h(and)c
+(standard-conforming)g(simple)h Ff(HTML)p Fu(,)i(P)m(ostScript)e(or)f
+Ff(PDF)h Fu(designed)330 2614 y(for)e(h)m(uman)f(mo)s(di\014cation.)65
+b(Examples)38 b(of)h(transparen)m(t)f(image)h(formats)g(include)f
+Ff(PNG)p Fu(,)i Ff(X)n(CF)330 2724 y Fu(and)e Ff(JPG)p
+Fu(.)64 b(Opaque)38 b(formats)h(include)f(proprietary)h(formats)f(that)
+h(can)g(b)s(e)f(read)h(and)f(edited)330 2833 y(only)54
+b(b)m(y)f(proprietary)h(w)m(ord)f(pro)s(cessors,)59 b
+Ff(SGML)54 b Fu(or)f Ff(XML)h Fu(for)g(whic)m(h)f(the)h
+Ff(DTD)g Fu(and/or)330 2943 y(pro)s(cessing)61 b(to)s(ols)h(are)f(not)g
+(generally)i(a)m(v)-5 b(ailable,)71 b(and)60 b(the)h(mac)m
+(hine-generated)j Ff(HTML)p Fu(,)330 3052 y(P)m(ostScript)31
+b(or)f Ff(PDF)h Fu(pro)s(duced)d(b)m(y)j(some)f(w)m(ord)g(pro)s
+(cessors)g(for)g(output)g(purp)s(oses)f(only)-8 b(.)330
+3203 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m(ted)f(b)
+s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f(follo)m
+(wing)330 3313 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)g(legibly)-8
+b(,)30 b(the)e(material)h(this)e(License)i(requires)e(to)h(app)s(ear)f
+(in)h(the)330 3422 y(title)g(page.)40 b(F)-8 b(or)28
+b(w)m(orks)e(in)g(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h(an)m(y)e
+(title)j(page)e(as)g(suc)m(h,)g(\\Title)h(P)m(age")330
+3532 y(means)j(the)f(text)i(near)e(the)h(most)g(prominen)m(t)g(app)s
+(earance)f(of)h(the)g(w)m(ork's)g(title,)h(preceding)f(the)330
+3641 y(b)s(eginning)f(of)g(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330
+3792 y(The)j(\\publisher")g(means)h(an)m(y)f(p)s(erson)g(or)h(en)m(tit)
+m(y)h(that)f(distributes)f(copies)i(of)e(the)h(Do)s(cumen)m(t)330
+3902 y(to)c(the)g(public.)330 4052 y(A)f(section)h(\\En)m(titled)g
+(XYZ")f(means)f(a)h(named)g(subunit)e(of)h(the)h(Do)s(cumen)m(t)h
+(whose)e(title)i(either)330 4162 y(is)d(precisely)g(XYZ)g(or)f(con)m
+(tains)i(XYZ)f(in)f(paren)m(theses)i(follo)m(wing)g(text)g(that)f
+(translates)h(XYZ)e(in)330 4271 y(another)e(language.)40
+b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g(sp)s(eci\014c)g(section)h(name)f
+(men)m(tioned)h(b)s(elo)m(w,)g(suc)m(h)330 4381 y(as)i(\\Ac)m(kno)m
+(wledgemen)m(ts",)33 b(\\Dedications",)e(\\Endorsemen)m(ts",)e(or)f
+(\\History".\))42 b(T)-8 b(o)29 b(\\Preserv)m(e)330 4491
+y(the)34 b(Title")h(of)e(suc)m(h)h(a)g(section)g(when)f(y)m(ou)h(mo)s
+(dify)e(the)i(Do)s(cumen)m(t)h(means)e(that)h(it)g(remains)g(a)330
+4600 y(section)e(\\En)m(titled)f(XYZ")g(according)g(to)g(this)g
+(de\014nition.)330 4751 y(The)c(Do)s(cumen)m(t)i(ma)m(y)f(include)f(W)
+-8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to)g(the)g(notice)h(whic)m
+(h)e(states)i(that)330 4861 y(this)34 b(License)g(applies)g(to)h(the)f
+(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 b(arran)m(t)m(y)36
+b(Disclaimers)f(are)g(considered)e(to)330 4970 y(b)s(e)k(included)g(b)m
+(y)g(reference)h(in)g(this)f(License,)j(but)d(only)h(as)g(regards)f
+(disclaiming)i(w)m(arran)m(ties:)330 5080 y(an)m(y)e(other)g
+(implication)i(that)e(these)g(W)-8 b(arran)m(t)m(y)39
+b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330
+5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)199
+5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end
+%%Page: 154 160
+TeXDict begin 154 159 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(149)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(154)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -15001,21 +18950,21 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
b(,)p eop end
-%%Page: 150 156
-TeXDict begin 150 155 bop 150 -116 a Ft(150)2527 b(Bash)31
-b(Reference)g(Man)m(ual)510 299 y(b)s(e)g(listed)h(in)f(the)g(History)h
-(section)g(of)g(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32
-b(ma)m(y)g(use)f(the)g(same)h(title)h(as)510 408 y(a)e(previous)f(v)m
-(ersion)g(if)h(the)f(original)i(publisher)d(of)h(that)h(v)m(ersion)g
-(giv)m(es)h(p)s(ermission.)360 545 y(B.)61 b(List)31
-b(on)f(the)h(Title)g(P)m(age,)i(as)d(authors,)h(one)g(or)f(more)h(p)s
-(ersons)e(or)h(en)m(tities)j(resp)s(onsible)c(for)510
-655 y(authorship)c(of)h(the)h(mo)s(di\014cations)f(in)g(the)g(Mo)s
-(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i(least)h(\014v)m
-(e)510 765 y(of)c(the)g(principal)g(authors)f(of)i(the)f(Do)s(cumen)m
-(t)g(\(all)h(of)g(its)f(principal)g(authors,)h(if)f(it)g(has)g(few)m
-(er)510 874 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g(y)m
-(ou)g(from)f(this)g(requiremen)m(t.)359 1011 y(C.)60
+%%Page: 155 161
+TeXDict begin 155 160 bop 150 -116 a Fu(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(155)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
+h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original)
+i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360
+545 y(B.)61 b(List)31 b(on)f(the)h(Title)g(P)m(age,)i(as)d(authors,)h
+(one)g(or)f(more)h(p)s(ersons)e(or)h(en)m(tities)j(resp)s(onsible)c
+(for)510 655 y(authorship)c(of)h(the)h(mo)s(di\014cations)f(in)g(the)g
+(Mo)s(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i(least)h
+(\014v)m(e)510 765 y(of)c(the)g(principal)g(authors)f(of)i(the)f(Do)s
+(cumen)m(t)g(\(all)h(of)g(its)f(principal)g(authors,)h(if)f(it)g(has)g
+(few)m(er)510 874 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g
+(y)m(ou)g(from)f(this)g(requiremen)m(t.)359 1011 y(C.)60
b(State)32 b(on)e(the)h(Title)h(page)f(the)g(name)g(of)g(the)g
(publisher)e(of)i(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)32
b(as)f(the)510 1121 y(publisher.)355 1258 y(D.)61 b(Preserv)m(e)31
@@ -15083,10 +19032,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
-%%Page: 151 157
-TeXDict begin 151 156 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 156 162
+TeXDict begin 156 161 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(151)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(156)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
b(ersion's)36 b(license)g(notice.)57 b(These)330 408
y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -15171,18 +19120,18 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 152 158
-TeXDict begin 152 157 bop 150 -116 a Ft(152)2527 b(Bash)31
-b(Reference)g(Man)m(ual)199 299 y(7.)61 b(A)m(GGREGA)-8
-b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i
-(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30
-b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330
-551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m
-(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called)
-330 661 y(an)c(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i(resulting)e
-(from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g(the)330
-770 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e(b)s(ey)m
-(ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39
+%%Page: 157 163
+TeXDict begin 157 162 bop 150 -116 a Fu(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(157)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f
+(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)
+s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h
+(on)f(a)g(v)m(olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g
+(is)h(called)330 661 y(an)c(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i
+(resulting)e(from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g
+(the)330 770 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e
+(b)s(ey)m(ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39
b(When)330 880 y(the)g(Do)s(cumen)m(t)g(is)f(included)g(in)g(an)g
(aggregate,)44 b(this)38 b(License)h(do)s(es)f(not)h(apply)f(to)h(the)g
(other)330 989 y(w)m(orks)30 b(in)g(the)h(aggregate)i(whic)m(h)d(are)h
@@ -15259,10 +19208,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 153 159
-TeXDict begin 153 158 bop 150 -116 a Ft(App)s(endix)29
+%%Page: 158 164
+TeXDict begin 158 163 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(153)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
+b(158)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -15270,7 +19219,7 @@ b(License)e(from)g(time)h(to)g(time.)46 b(Suc)m(h)31
b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h(in)g(spirit)330
653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m(y)h(di\013er)f
(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i(concerns.)330
-762 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p Ft(.)330
+762 y(See)c Ft(http://www.gnu.org/copy)o(left)o(/)p Fu(.)330
897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m(en)g(a)g
(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29
b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g
@@ -15326,33 +19275,33 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 154 160
-TeXDict begin 154 159 bop 150 -116 a Ft(154)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fr(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g
-(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts)150
-458 y Ft(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g
-(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f
-(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g
-(follo)m(wing)i(cop)m(yrigh)m(t)g(and)e(license)h(notices)g(just)f
-(after)h(the)g(title)h(page:)468 680 y Fe(Copyright)42
-b(\(C\))79 b Fd(year)88 b(your)40 b(name)9 b Fe(.)468
-767 y(Permission)42 b(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g
-(modify)f(this)g(document)468 854 y(under)h(the)f(terms)g(of)g(the)g
-(GNU)g(Free)g(Documentation)i(License,)f(Version)g(1.3)468
-941 y(or)f(any)g(later)g(version)h(published)h(by)d(the)h(Free)g
-(Software)h(Foundation;)468 1029 y(with)g(no)e(Invariant)j(Sections,)f
-(no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468
-1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f(license)i(is)f(included)h
-(in)f(the)g(section)g(entitled)h(``GNU)468 1203 y(Free)g(Documentation)
-h(License''.)275 1337 y Ft(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5
-b(arian)m(t)41 b(Sections,)i(F)-8 b(ron)m(t-Co)m(v)m(er)42
-b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts,)43
-b(replace)e(the)150 1447 y(\\with)6 b(.)22 b(.)g(.)12
-b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547 1559
-y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g Fd(list)f(their)g
-(titles)9 b Fe(,)41 b(with)547 1646 y(the)f(Front-Cover)i(Texts)e
-(being)g Fd(list)9 b Fe(,)40 b(and)g(with)g(the)g(Back-Cover)i(Texts)
-547 1733 y(being)e Fd(list)9 b Fe(.)275 1868 y Ft(If)34
+%%Page: 159 165
+TeXDict begin 159 164 bop 150 -116 a Fu(App)s(endix)29
+b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
+b(159)150 299 y Fs(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+(for)g(y)l(our)g(do)t(cumen)l(ts)150 458 y Fu(T)-8 b(o)35
+b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e)
+i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150
+568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g(follo)m(wing)i(cop)m(yrigh)
+m(t)g(and)e(license)h(notices)g(just)f(after)h(the)g(title)h(page:)468
+680 y Fe(Copyright)42 b(\(C\))79 b Fd(year)g(your)40
+b(name)p Fe(.)468 767 y(Permission)i(is)e(granted)g(to)g(copy,)h
+(distribute)g(and/or)g(modify)f(this)g(document)468 854
+y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i
+(License,)f(Version)g(1.3)468 941 y(or)f(any)g(later)g(version)h
+(published)h(by)d(the)h(Free)g(Software)h(Foundation;)468
+1029 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g
+(and)f(no)f(Back-Cover)468 1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f
+(license)i(is)f(included)h(in)f(the)g(section)g(entitled)h(``GNU)468
+1203 y(Free)g(Documentation)h(License''.)275 1337 y Fu(If)d(y)m(ou)h
+(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8
+b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k
+(T)-8 b(exts,)43 b(replace)e(the)150 1447 y(\\with)6
+b(.)22 b(.)g(.)12 b(T)-8 b(exts.")41 b(line)31 b(with)f(this:)547
+1559 y Fe(with)40 b(the)g(Invariant)h(Sections)g(being)g
+Fd(list)f(their)g(titles)p Fe(,)h(with)547 1646 y(the)f(Front-Cover)i
+(Texts)e(being)g Fd(list)p Fe(,)h(and)f(with)g(the)g(Back-Cover)h
+(Texts)547 1733 y(being)f Fd(list)p Fe(.)275 1868 y Fu(If)34
b(y)m(ou)i(ha)m(v)m(e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f
(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g
(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g
@@ -15364,1245 +19313,1291 @@ y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s
(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
eop end
-%%Page: 155 161
-TeXDict begin 155 160 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(155)150 299 y Fo(App)t(endix)52
-b(D)81 b(Indexes)150 631 y Fr(D.1)68 b(Index)45 b(of)g(Shell)g(Builtin)
+%%Page: 160 166
+TeXDict begin 160 165 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(160)150 299 y Fp(App)t(endix)52
+b(D)81 b(Indexes)150 631 y Fs(D.1)68 b(Index)45 b(of)g(Shell)g(Builtin)
g(Commands)150 868 y(.)150 984 y Fe(.)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)39 b Fb(37)150 1218 y Fr(:)150 1335
+(:)h(:)f(:)g(:)g(:)39 b Fb(41)150 1218 y Fs(:)150 1335
y Fe(:)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39
-b Fb(37)150 1579 y Fr([)150 1695 y Fe([)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(41)150 1579 y Fs([)150 1695 y Fe([)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)39 b Fb(41)150 1938 y Fr(A)150 2055
+(:)h(:)f(:)g(:)g(:)39 b Fb(45)150 1938 y Fs(A)150 2055
y Fe(alias)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(43)150
-2289 y Fr(B)150 2405 y Fe(bg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(48)150
+2289 y Fs(B)150 2405 y Fe(bg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)37 b Fb(92)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
+g(:)37 b Fb(98)150 2493 y Fe(bind)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-49 b Fb(44)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
+49 b Fb(48)150 2580 y Fe(break)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46
-b Fb(37)150 2668 y Fe(builtin)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(41)150 2668 y Fe(builtin)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41
-b Fb(45)150 2902 y Fr(C)150 3019 y Fe(caller)17 b Fc(:)e(:)e(:)g(:)g(:)
+b Fb(49)150 2902 y Fs(C)150 3019 y Fe(caller)17 b Fc(:)e(:)e(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-43 b Fb(45)150 3106 y Fe(cd)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+43 b Fb(50)150 3106 y Fe(cd)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)37 b Fb(38)150 3194 y Fe(command)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g
+(:)37 b Fb(42)150 3194 y Fe(command)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41
-b Fb(45)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g
+b Fb(50)150 3281 y Fe(compgen)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b
-Fb(119)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)
+Fb(126)150 3368 y Fe(complete)10 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(119)150
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(127)150
3456 y Fe(compopt)12 b Fc(:)j(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(122)150 3543
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)39 b Fb(130)150 3543
y Fe(continue)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(38)150 3778 y
-Fr(D)150 3894 y Fe(declare)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(42)150 3778 y
+Fs(D)150 3894 y Fe(declare)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b
-Fb(46)150 3982 y Fe(dirs)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+Fb(50)150 3982 y Fe(dirs)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(83)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
+b Fb(90)150 4069 y Fe(disown)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(93)150 4303 y Fr(E)150 4420 y Fe(echo)23 b Fc(:)13
+b Fb(99)150 4303 y Fs(E)150 4420 y Fe(echo)23 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(47)150 4507 y Fe(enable)17
+g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(52)150 4507 y Fe(enable)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(48)150 4595 y Fe(eval)23
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(52)150 4595 y Fe(eval)23
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(38)150 4682 y
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(42)150 4682 y
Fe(exec)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(38)150
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(42)150
4770 y Fe(exit)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(38)150 4857 y Fe(export)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
+b Fb(43)150 4857 y Fe(export)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(39)150 5110 y Fr(F)150 5227 y Fe(fc)8 b Fc(:)14
+b Fb(43)150 5110 y Fs(F)150 5227 y Fe(fc)8 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(125)150 5314
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(133)150 5314
y Fe(fg)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(92)2025 868 y Fr(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g
+b Fb(98)2025 868 y Fs(G)2025 988 y Fe(getopts)15 b Fc(:)f(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(39)2025 1250 y Fr(H)2025 1370 y Fe(hash)23 b Fc(:)13
+b Fb(43)2025 1250 y Fs(H)2025 1370 y Fe(hash)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(40)2025 1459 y Fe(help)23
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(44)2025 1459 y Fe(help)23
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(48)2025 1549
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(53)2025 1549
y Fe(history)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(126)2025 1811
-y Fr(J)2025 1931 y Fe(jobs)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(134)2025 1811
+y Fs(J)2025 1931 y Fe(jobs)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
-b Fb(92)2025 2193 y Fr(K)2025 2313 y Fe(kill)23 b Fc(:)13
+b Fb(98)2025 2193 y Fs(K)2025 2313 y Fe(kill)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(93)2025 2557 y Fr(L)2025
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(99)2025 2557 y Fs(L)2025
2677 y Fe(let)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(48)2025 2766 y Fe(local)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(53)2025 2766 y Fe(local)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(48)2025 2856 y Fe(logout)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(53)2025 2856 y Fe(logout)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(49)2025 3118 y Fr(M)2025 3238 y Fe(mapfile)15 b
+b Fb(53)2025 3118 y Fs(M)2025 3238 y Fe(mapfile)15 b
Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)41 b Fb(49)2025 3500 y Fr(P)2025 3620
+h(:)f(:)g(:)g(:)41 b Fb(54)2025 3500 y Fs(P)2025 3620
y Fe(popd)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(84)2025
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(91)2025
3710 y Fe(printf)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(49)2025
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(54)2025
3799 y Fe(pushd)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
-Fb(84)2025 3888 y Fe(pwd)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+Fb(91)2025 3888 y Fe(pwd)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(40)2025 4150 y Fr(R)2025 4270 y Fe(read)23 b Fc(:)13
+b Fb(44)2025 4150 y Fs(R)2025 4270 y Fe(read)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(50)2025 4360 y Fe(readarray)9
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(55)2025 4360 y Fe(readarray)9
b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)36 b Fb(51)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g
+f(:)g(:)g(:)36 b Fb(56)2025 4449 y Fe(readonly)12 b Fc(:)j(:)e(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(40)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(44)2025 4538 y Fe(return)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(40)2025 4782 y Fr(S)2025 4902 y Fe(set)8 b Fc(:)13
+b Fb(45)2025 4782 y Fs(S)2025 4902 y Fe(set)8 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(54)2025 4991
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(58)2025 4991
y Fe(shift)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(41)2025
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(45)2025
5080 y Fe(shopt)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
-Fb(57)2025 5169 y Fe(source)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+Fb(62)2025 5169 y Fe(source)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(51)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(56)2025 5259 y Fe(suspend)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(93)p eop end
-%%Page: 156 162
-TeXDict begin 156 161 bop 150 -116 a Ft(156)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fr(T)150 428 y Fe(test)23
+b Fb(99)p eop end
+%%Page: 161 167
+TeXDict begin 161 166 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(161)150 299 y Fs(T)150 428 y Fe(test)23
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(41)150 522 y
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(45)150 522 y
Fe(times)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(42)150
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fb(46)150
616 y Fe(trap)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(42)150 709 y Fe(type)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(47)150 709 y Fe(type)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(52)150 803 y Fe(typeset)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(56)150 803 y Fe(typeset)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41
-b Fb(52)2025 299 y Fr(U)2025 415 y Fe(ulimit)17 b Fc(:)d(:)g(:)f(:)g(:)
+b Fb(57)2025 299 y Fs(U)2025 415 y Fe(ulimit)17 b Fc(:)d(:)g(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-44 b Fb(52)2025 502 y Fe(umask)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g
+44 b Fb(57)2025 502 y Fe(umask)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(43)2025 590 y Fe(unalias)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(47)2025 590 y Fe(unalias)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(53)2025 677 y Fe(unset)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(58)2025 677 y Fe(unset)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(43)2025 910 y Fr(W)2025 1026 y Fe(wait)23 b Fc(:)13
+b Fb(48)2025 910 y Fs(W)2025 1026 y Fe(wait)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(93)150 1259 y Fr(D.2)68
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(99)150 1259 y Fs(D.2)68
b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h(W)-11 b(ords)150
-1495 y(!)150 1612 y Fe(!)15 b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+1495 y(!)150 1611 y Fe(!)15 b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)42 b Fb(8)150 1855 y Fr([)150 1971 y Fe([[)10
+g(:)g(:)42 b Fb(8)150 1855 y Fs([)150 1971 y Fe([[)10
b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(12)150
-2220 y Fr(])150 2337 y Fe(]])10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
+2220 y Fs(])150 2336 y Fe(]])10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)37 b Fb(12)150 2579 y Fa({)150 2695 y Fe({)13 b Fc(:)g(:)g(:)g(:)h
+g(:)37 b Fb(12)150 2579 y Fa(|)150 2695 y Fe({)13 b Fc(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(14)150 2938 y Fa(})150
-3054 y Fe(})13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(14)150 2782 y Fe(})13
+b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(14)150
+3024 y Fs(C)150 3140 y Fe(case)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
+b Fb(11)150 3374 y Fs(D)150 3490 y Fe(do)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39
-b Fb(14)150 3296 y Fr(C)150 3412 y Fe(case)23 b Fc(:)13
+g(:)g(:)g(:)g(:)37 b Fb(10)150 3577 y Fe(done)23 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(11)150 3646 y Fr(D)150
-3762 y Fe(do)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(10)150 3849 y Fe(done)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(10)150 3810 y Fs(E)150
+3926 y Fe(elif)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
+b Fb(10)150 4014 y Fe(else)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(10)150 4083 y Fr(E)150 4199 y Fe(elif)23 b Fc(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 1495 y Fe(else)23
-b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(10)2025 1495 y Fe(esac)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(11)2025 1737 y Fs(F)2025 1856 y Fe(fi)10 b Fc(:)k(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)37 b Fb(10)2025 1945 y Fe(for)8 b
+Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(10)2025
+2033 y Fe(function)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 1586
-y Fe(esac)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(11)2025
-1838 y Fr(F)2025 1961 y Fe(fi)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(17)2025 2275
+y Fs(I)2025 2394 y Fe(if)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+37 b Fb(10)2025 2483 y Fe(in)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)37 b Fb(11)2025 2724 y Fs(S)2025 2843 y Fe(select)17
+b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(12)2025 3085 y Fs(T)2025
+3204 y Fe(then)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(10)2025 3293 y Fe(time)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)34 b Fb(8)2025 3534 y Fs(U)2025 3653 y Fe(until)21
+b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(10)2025 3894 y Fs(W)2025
+4014 y Fe(while)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
+Fb(10)150 4246 y Fs(D.3)68 b(P)l(arameter)47 b(and)d(V)-11
+b(ariable)46 b(Index)150 4483 y(!)150 4603 y Fe(!)13
+b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)150
+4846 y Fs(#)150 4967 y Fe(#)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)39 b Fb(20)150 5220 y Fs($)150 5340 y Fe($)13
+b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)2025
+4483 y Fe($!)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37
+b Fb(20)2025 4574 y Fe($#)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)37 b Fb(20)2025 4665 y Fe($$)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)37 b Fb(10)2025 2052 y Fe(for)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)34 b Fb(10)2025 2143 y Fe(function)12 b Fc(:)j(:)e(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(15)2025 2394 y Fr(I)2025 2518 y Fe(if)10 b Fc(:)k(:)f(:)g(:)g(:)g
+(:)g(:)37 b Fb(20)2025 4756 y Fe($*)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)37 b Fb(20)2025 4847 y Fe($-)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)37 b Fb(20)2025 4938 y Fe($?)10 b Fc(:)k(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)37 b Fb(10)2025 2608 y Fe(in)10 b
+(:)g(:)g(:)g(:)g(:)37 b Fb(20)2025 5029 y Fe($@)10 b
Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(11)2025
-2860 y Fr(S)2025 2983 y Fe(select)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(11)2025 3235 y Fr(T)2025 3358 y Fe(then)23 b Fc(:)13
-b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(10)2025 3449 y Fe(time)7
-b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(8)2025
-3701 y Fr(U)2025 3824 y Fe(until)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(10)2025 4076 y Fr(W)2025 4199 y Fe(while)21 b Fc(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)46 b Fb(10)150 4431 y Fr(D.3)68 b(P)l(arameter)47
-b(and)d(V)-11 b(ariable)46 b(Index)150 4668 y(!)150 4794
-y Fe(!)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39
-b Fb(18)150 5054 y Fr(#)150 5180 y Fe(#)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(20)2025
+5120 y Fe($_)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)39 b Fb(18)2025 4668 y Fr($)2025 4794
-y Fe($)13 b Fc(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
-b Fb(18)2025 5067 y Fr(*)2025 5192 y Fe(*)13 b Fc(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(18)p eop end
-%%Page: 157 163
-TeXDict begin 157 162 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(157)150 299 y Fr(-)150 415 y Fe(-)13
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37
+b Fb(20)2025 5211 y Fe($0)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)37 b Fb(20)p eop end
+%%Page: 162 168
+TeXDict begin 162 167 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(162)150 299 y Fs(*)150 415 y Fe(*)13
b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(18)150
-649 y Fr(?)150 765 y Fe(?)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)150
+649 y Fs(-)150 765 y Fe(-)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)39 b Fb(18)150 999 y Fr(@)150 1115 y Fe(@)13 b
+(:)g(:)39 b Fb(20)150 999 y Fs(?)150 1115 y Fe(?)13 b
Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(18)p
-159 1349 41 6 v 150 1465 a Fe(_)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)39 b Fb(18)150 1699 y Fr(0)150 1815 y Fe(0)13
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)150
+1349 y Fs(@)150 1465 y Fe(@)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)39 b Fb(20)p 159 1699 41 6 v 150 1815 a Fe(_)13
b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(18)150
-2049 y Fr(A)150 2166 y Fe(auto_resume)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(94)150
-2409 y Fr(B)150 2525 y Fe(BASH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(63)150 2612 y Fe(BASH_ALIASES)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(64)150 2700
-y Fe(BASH_ARGC)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(64)150 2787 y
-Fe(BASH_ARGV)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(64)150 2874 y Fe(BASH_CMDS)9
-b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)36 b Fb(64)150 2962 y Fe(BASH_COMMAND)22
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)39 b Fb(20)150
+2049 y Fs(0)150 2165 y Fe(0)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)39 b Fb(20)150 2399 y Fs(A)150 2515 y Fe(auto_resume)22
+b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46
+b Fb(100)150 2758 y Fs(B)150 2875 y Fe(BASH)23 b Fc(:)13
+b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(69)150 2962 y Fe(BASH_ALIASES)22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45
-b Fb(64)150 3049 y Fe(BASH_ENV)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b
-Fb(64)150 3137 y Fe(BASH_EXECUTION_STRING)13 b Fc(:)18
+b Fb(70)150 3049 y Fe(BASH_ARGC)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b
+Fb(70)150 3137 y Fe(BASH_ARGV)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(70)150
+3224 y Fe(BASH_CMDS)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(70)150 3311
+y Fe(BASH_COMMAND)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)45 b Fb(70)150 3399 y Fe(BASH_COMPAT)24
+b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+48 b Fb(70)150 3486 y Fe(BASH_ENV)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38
+b Fb(71)150 3574 y Fe(BASH_EXECUTION_STRING)13 b Fc(:)18
b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)39 b Fb(64)150 3224 y Fe(BASH_LINENO)24
+g(:)g(:)g(:)h(:)f(:)39 b Fb(71)150 3661 y Fe(BASH_LINENO)24
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-48 b Fb(65)150 3311 y Fe(BASH_REMATCH)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)
+48 b Fb(71)150 3748 y Fe(BASH_REMATCH)22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(65)150
-3399 y Fe(BASH_SOURCE)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(71)150
+3836 y Fe(BASH_SOURCE)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(65)150 3486 y Fe(BASH_SUBSHELL)16
+(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(71)150 3923 y Fe(BASH_SUBSHELL)16
b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43
-b Fb(65)150 3573 y Fe(BASH_VERSINFO)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g
+b Fb(71)150 4010 y Fe(BASH_VERSINFO)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(65)150 3661 y Fe(BASH_VERSION)22
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(71)150 4098 y Fe(BASH_VERSION)22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45
-b Fb(65)150 3748 y Fe(BASH_XTRACEFD)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g
+b Fb(72)150 4185 y Fe(BASH_XTRACEFD)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(65)150 3835 y Fe(BASHOPTS)12
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(72)150 4272 y Fe(BASHOPTS)12
b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)38 b Fb(64)150 3923 y Fe(BASHPID)15 b
+(:)g(:)h(:)f(:)38 b Fb(70)150 4360 y Fe(BASHPID)15 b
Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)41 b Fb(64)150 4010 y Fe(bell-style)7
+f(:)g(:)g(:)g(:)41 b Fb(70)150 4447 y Fe(bell-style)24
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+49 b Fb(105)150 4534 y Fe(bind-tty-special-chars)8 b
+Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)35 b Fb(105)150 4787 y Fs(C)150 4903
+y Fe(CDPATH)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 4991
+y Fe(CHILD_MAX)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(72)150 5078 y
+Fe(colored-stats)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)41 b Fb(105)150 5165 y Fe(COLUMNS)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41
+b Fb(72)150 5253 y Fe(comment-begin)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(105)150 5340 y Fe(COMP_CWORD)7
b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)33 b Fb(99)150 4098 y Fe(bind-tty-special-chars)10
-b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(99)150 4350 y Fr(C)150
-4466 y Fe(CDPATH)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+f(:)g(:)33 b Fb(72)2025 299 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
+b Fb(73)2025 386 y Fe(COMP_LINE)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b
+Fb(72)2025 474 y Fe(COMP_POINT)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(63)150
-4554 y Fe(COLUMNS)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(66)150
-4641 y Fe(comment-begin)16 b Fc(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)43 b Fb(99)150 4728 y Fe(COMP_CWORD)7
-b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)33 b Fb(66)150 4816 y Fe(COMP_KEY)12 b Fc(:)j(:)e(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38
-b Fb(66)150 4903 y Fe(COMP_LINE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b
-Fb(66)150 4991 y Fe(COMP_POINT)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(66)150
-5078 y Fe(COMP_TYPE)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(66)150 5165
-y Fe(COMP_WORDBREAKS)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)38 b Fb(66)150 5253 y Fe(COMP_WORDS)7 b Fc(:)15
-b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-33 b Fb(66)150 5340 y Fe(completion-display-width)28
-b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)49 b Fb(99)2025 299 y Fe(completion-ignore-case)10
-b Fc(:)18 b(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(99)2025 387 y Fe(completion-map-case)18
-b Fc(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(99)2025 474 y
-Fe(completion-prefix-display-leng)q(th)25 b Fc(:)13 b(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)46 b Fb(99)2025 562 y Fe(completion-query-items)8
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(72)2025
+561 y Fe(COMP_TYPE)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(73)2025 649
+y Fe(COMP_WORDBREAKS)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)38 b Fb(73)2025 736 y Fe(COMP_WORDS)7 b Fc(:)15
+b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+33 b Fb(73)2025 824 y Fe(completion-display-width)26
+b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)47 b Fb(105)2025 911 y Fe(completion-ignore-case)8
b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(100)2025 649 y Fe(COMPREPLY)9
-b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)36 b Fb(67)2025 737 y Fe(convert-meta)17
+(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(105)2025 999 y Fe(completion-map-case)16
+b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(105)2025 1086 y Fe
+(completion-prefix-display-leng)q(th)17 b Fc(:)i(:)13
+b(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(106)2025 1174 y Fe
+(completion-query-items)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b
+Fb(106)2025 1261 y Fe(COMPREPLY)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b
+Fb(73)2025 1349 y Fe(convert-meta)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(106)2025 1436 y Fe(COPROC)17
+b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(73)2025 1671 y Fs(D)2025
+1788 y Fe(DIRSTACK)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(73)2025 1875
+y Fe(disable-completion)22 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)45
+b Fb(106)2025 2128 y Fs(E)2025 2245 y Fe(editing-mode)17
b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(100)2025 825 y Fe(COPROC)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(67)2025 1060 y Fr(D)2025 1177 y Fe(DIRSTACK)12 b
-Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)39 b Fb(67)2025 1264 y Fe(disable-completion)22
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(100)2025 1518
-y Fr(E)2025 1635 y Fe(editing-mode)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g
+b Fb(106)2025 2332 y Fe(EMACS)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
+b Fb(73)2025 2420 y Fe(enable-keypad)14 b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(106)2025 2507 y Fe(ENV)8
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(73)2025
+2595 y Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(73)2025 2682 y Fe(expand-tilde)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(100)2025 1723 y Fe(EMACS)21
-b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(67)2025 1810 y Fe(enable-keypad)14
-b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41
-b Fb(100)2025 1898 y Fe(ENV)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)34 b Fb(67)2025 1985 y Fe(EUID)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(106)2025 2936 y Fs(F)2025
+3052 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(73)2025
+3140 y Fe(FIGNORE)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(74)2025
+3227 y Fe(FUNCNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(67)2025 2073 y Fe(expand-tilde)17 b Fc(:)e(:)f(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(100)2025 2327
-y Fr(F)2025 2444 y Fe(FCEDIT)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(67)2025 2531 y Fe(FIGNORE)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(74)2025 3315
+y Fe(FUNCNEST)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(74)2025 3549
+y Fs(G)2025 3666 y Fe(GLOBIGNORE)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(74)2025
+3753 y Fe(GROUPS)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(74)2025
+3988 y Fs(H)2025 4104 y Fe(histchars)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36
+b Fb(74)2025 4192 y Fe(HISTCMD)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(67)2025 2619 y Fe(FUNCNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
-Fb(67)2025 2707 y Fe(FUNCNEST)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
-Fb(67)2025 2942 y Fr(G)2025 3059 y Fe(GLOBIGNORE)7 b
-Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)33 b Fb(67)2025 3146 y Fe(GROUPS)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(68)2025 3381 y Fr(H)2025 3498 y Fe(histchars)9 b
-Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)36 b Fb(68)2025 3586 y Fe(HISTCMD)15 b Fc(:)f(:)f(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41
-b Fb(68)2025 3674 y Fe(HISTCONTROL)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
+b Fb(74)2025 4279 y Fe(HISTCONTROL)24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(68)2025
-3761 y Fe(HISTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(74)2025
+4367 y Fe(HISTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(68)2025 3849
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(75)2025 4454
y Fe(HISTFILESIZE)21 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)45 b Fb(68)2025 3936 y Fe(HISTIGNORE)7
+(:)g(:)g(:)g(:)h(:)45 b Fb(75)2025 4542 y Fe(HISTIGNORE)7
b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)33 b Fb(68)2025 4024 y Fe(history-preserve-point)8
+g(:)h(:)33 b Fb(75)2025 4630 y Fe(history-preserve-point)8
b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(100)2025 4112 y Fe(history-size)17
+(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(107)2025 4717 y Fe(history-size)17
b Fc(:)e(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(101)2025 4199 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)
+b Fb(107)2025 4805 y Fe(HISTSIZE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(69)2025 4287 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h
+b Fb(75)2025 4892 y Fe(HISTTIMEFORMAT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(69)2025 4375 y Fe(HOME)23
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(75)2025 4980 y Fe(HOME)23
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(63)2025 4462
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(69)2025 5067
y Fe(horizontal-scroll-mode)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35
-b Fb(101)2025 4550 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)
+b Fb(107)2025 5155 y Fe(HOSTFILE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39
-b Fb(69)2025 4637 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+b Fb(75)2025 5242 y Fe(HOSTNAME)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
-Fb(69)2025 4725 y Fe(HOSTTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+Fb(76)2025 5330 y Fe(HOSTTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b
-Fb(69)2025 4960 y Fr(I)2025 5077 y Fe(IFS)8 b Fc(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(63)2025 5165
-y Fe(IGNOREEOF)9 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(69)2025 5252 y
-Fe(input-meta)24 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)49 b Fb(101)2025 5340 y Fe(INPUTRC)15
-b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)41 b Fb(69)p eop end
-%%Page: 158 164
-TeXDict begin 158 163 bop 150 -116 a Ft(158)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fe(isearch-terminators)16
+Fb(76)p eop end
+%%Page: 163 169
+TeXDict begin 163 168 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(163)150 299 y Fs(I)150 415 y Fe(IFS)8
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(69)150
+502 y Fe(IGNOREEOF)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(76)150 590
+y Fe(input-meta)24 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)49 b Fb(107)150 677 y Fe(INPUTRC)15
+b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)41 b Fb(76)150 764 y Fe(isearch-terminators)16
b Fc(:)h(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(101)150 536 y Fr(K)150
-654 y Fe(keymap)15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)42 b Fb(101)150 910
-y Fr(L)150 1027 y Fe(LANG)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(69)150 1115 y Fe(LC_ALL)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(107)150 997 y Fs(K)150
+1114 y Fe(keymap)15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)42 b Fb(107)150
+1366 y Fs(L)150 1482 y Fe(LANG)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
+b Fb(76)150 1569 y Fe(LC_ALL)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(69)150 1203 y Fe(LC_COLLATE)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g
+b Fb(76)150 1656 y Fe(LC_COLLATE)7 b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(69)150
-1291 y Fe(LC_CTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(76)150
+1743 y Fe(LC_CTYPE)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(70)150 1380
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(76)150 1831
y Fe(LC_MESSAGES)13 b Fc(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)40 b Fb(7,)26 b(70)150 1468 y Fe(LC_NUMERIC)7
+(:)g(:)g(:)40 b Fb(7,)26 b(76)150 1918 y Fe(LC_NUMERIC)7
b Fc(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)33 b Fb(70)150 1556 y Fe(LINENO)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g
+f(:)g(:)33 b Fb(76)150 2005 y Fe(LINENO)17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(70)150 1644 y Fe(LINES)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(76)150 2093 y Fe(LINES)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46
-b Fb(70)150 1881 y Fr(M)150 1998 y Fe(MACHTYPE)12 b Fc(:)j(:)e(:)g(:)g
+b Fb(76)150 2326 y Fs(M)150 2442 y Fe(MACHTYPE)12 b Fc(:)j(:)e(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38
-b Fb(70)150 2087 y Fe(MAIL)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(76)150 2529 y Fe(MAIL)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(63)150 2175 y Fe(MAILCHECK)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g
+b Fb(69)150 2617 y Fe(MAILCHECK)9 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b
-Fb(70)150 2263 y Fe(MAILPATH)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)
+Fb(77)150 2704 y Fe(MAILPATH)12 b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(63)150
-2351 y Fe(MAPFILE)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(69)150
+2791 y Fe(MAPFILE)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(70)150
-2439 y Fe(mark-modified-lines)16 b Fc(:)h(:)d(:)f(:)g(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(77)150
+2878 y Fe(mark-modified-lines)16 b Fc(:)h(:)d(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43
-b Fb(101)150 2527 y Fe(mark-symlinked-directories)16
+b Fb(108)150 2966 y Fe(mark-symlinked-directories)16
b Fc(:)i(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-42 b Fb(101)150 2615 y Fe(match-hidden-files)23 b Fc(:)13
+42 b Fb(108)150 3053 y Fe(match-hidden-files)23 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(101)150 2703 y Fe
+(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(108)150 3140 y Fe
(menu-complete-display-prefix)11 b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(102)150 2791 y Fe(meta-flag)7
+(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(108)150 3227 y Fe(meta-flag)7
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)34 b Fb(101)150 3047 y Fr(O)150 3164 y Fe(OLDPWD)17
+g(:)g(:)34 b Fb(107)150 3479 y Fs(O)150 3596 y Fe(OLDPWD)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(70)150 3252 y Fe(OPTARG)17
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(77)150 3683 y Fe(OPTARG)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(63)150 3340 y Fe(OPTERR)17
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 3770 y Fe(OPTERR)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(70)150 3428 y Fe(OPTIND)17
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(77)150 3857 y Fe(OPTIND)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(63)150 3516 y Fe(OSTYPE)17
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(69)150 3945 y Fe(OSTYPE)17
b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(70)150 3604 y Fe(output-meta)22
+(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(77)150 4032 y Fe(output-meta)22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46
-b Fb(102)150 3860 y Fr(P)150 3978 y Fe(page-completions)7
+b Fb(108)150 4284 y Fs(P)150 4400 y Fe(page-completions)7
b Fc(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(102)150
-4066 y Fe(PATH)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)49
-b Fb(63)2025 299 y Fe(PIPESTATUS)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(108)2025
+299 y Fe(PATH)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(69)2025 389 y Fe(PIPESTATUS)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(70)2025
-386 y Fe(POSIXLY_CORRECT)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(77)2025
+478 y Fe(POSIXLY_CORRECT)11 b Fc(:)17 b(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)38 b Fb(70)2025 473 y Fe(PPID)23 b Fc(:)13
+g(:)g(:)g(:)38 b Fb(77)2025 568 y Fe(PPID)23 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(70)2025 560 y Fe(PROMPT_COMMAND)14
+h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(77)2025 658 y Fe(PROMPT_COMMAND)14
b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40
-b Fb(70)2025 648 y Fe(PROMPT_DIRTRIM)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)
+b Fb(77)2025 748 y Fe(PROMPT_DIRTRIM)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(71)2025 735 y Fe(PS1)8
+(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(77)2025 837 y Fe(PS1)8
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(63)2025
-822 y Fe(PS2)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(69)2025
+927 y Fe(PS2)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(63)2025 909 y Fe(PS3)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(71)2025 996 y Fe(PS4)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(71)2025 1083 y Fe(PWD)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(69)2025 1017 y Fe(PS3)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-34 b Fb(71)2025 1316 y Fr(R)2025 1432 y Fe(RANDOM)17
+34 b Fb(77)2025 1107 y Fe(PS4)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)34 b Fb(77)2025 1197 y Fe(PWD)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)34 b Fb(77)2025 1443 y Fs(R)2025 1564 y Fe(RANDOM)17
b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(71)2025 1519 y Fe(READLINE_LINE)16
+(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(77)2025 1654 y Fe(READLINE_LINE)16
b Fc(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43
-b Fb(71)2025 1606 y Fe(READLINE_POINT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h
+b Fb(78)2025 1744 y Fe(READLINE_POINT)14 b Fc(:)i(:)d(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(71)2025 1694 y Fe(REPLY)21
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(78)2025 1834 y Fe(REPLY)21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(71)2025 1781 y Fe
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(78)2025 1923 y Fe
(revert-all-at-newline)11 b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(102)2025 2014 y Fr(S)2025 2130 y Fe(SECONDS)15 b
+b Fb(108)2025 2170 y Fs(S)2025 2291 y Fe(SECONDS)15 b
Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)41 b Fb(71)2025 2217 y Fe(SHELL)21 b
+h(:)f(:)g(:)g(:)41 b Fb(78)2025 2381 y Fe(SHELL)21 b
Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(71)2025 2304 y Fe(SHELLOPTS)9
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(78)2025 2471 y Fe(SHELLOPTS)9
b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)36 b Fb(71)2025 2391 y Fe(SHLVL)21 b Fc(:)13
+f(:)g(:)g(:)36 b Fb(78)2025 2560 y Fe(SHLVL)21 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)46 b Fb(71)2025 2478 y Fe(show-all-if-ambiguous)11
+g(:)g(:)h(:)f(:)g(:)46 b Fb(78)2025 2650 y Fe(show-all-if-ambiguous)11
b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)38 b Fb(102)2025 2565 y Fe
+(:)h(:)f(:)g(:)g(:)g(:)g(:)38 b Fb(109)2025 2740 y Fe
(show-all-if-unmodified)8 b Fc(:)18 b(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b
-Fb(102)2025 2653 y Fe(skip-completed-text)16 b Fc(:)h(:)c(:)g(:)h(:)f
+Fb(109)2025 2830 y Fe(show-mode-in-prompt)16 b Fc(:)h(:)c(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)43 b Fb(102)2025 2904 y Fr(T)2025 3020 y Fe(TEXTDOMAIN)9
-b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)36 b Fb(7)2025 3107 y Fe(TEXTDOMAINDIR)21
-b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)46
-b Fb(7)2025 3194 y Fe(TIMEFORMAT)7 b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(71)2025
-3282 y Fe(TMOUT)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b
-Fb(72)2025 3369 y Fe(TMPDIR)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+g(:)43 b Fb(109)2025 2919 y Fe(skip-completed-text)16
+b Fc(:)h(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fb(109)2025 3184 y Fs(T)2025
+3306 y Fe(TEXTDOMAIN)9 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44
-b Fb(72)2025 3601 y Fr(U)2025 3717 y Fe(UID)8 b Fc(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(7)2025 3395
+y Fe(TEXTDOMAINDIR)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(72)2025 3950
-y Fr(V)2025 4066 y Fe(visible-stats)14 b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g
+g(:)g(:)g(:)g(:)g(:)46 b Fb(7)2025 3485 y Fe(TIMEFORMAT)7
+b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)33 b Fb(78)2025 3575 y Fe(TMOUT)21 b Fc(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(103)150 4299 y Fr(D.4)68
-b(F)-11 b(unction)44 b(Index)150 4535 y(A)150 4661 y
-Fe(abort)27 b(\(C-g\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(114)150 4753 y Fe(accept-line)28
-b(\(Newline)g(or)e(Return\))e Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)50 b Fb(109)150 4845 y Fe(alias-expand-line)29
-b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(116)150
-5122 y Fr(B)150 5248 y Fe(backward-char)29 b(\(C-b\))23
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(108)150 5340 y
-Fe(backward-delete-char)30 b(\(Rubout\))14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(110)2025 4535 y Fe
-(backward-kill-line)29 b(\(C-x)e(Rubout\))16 b Fc(:)f(:)e(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(111)2025 4622 y Fe(backward-kill-word)29
-b(\(M-DEL\))24 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)49 b Fb(111)2025 4710 y Fe(backward-word)28
-b(\(M-b\))c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50 b Fb(108)2025
-4797 y Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13
+g(:)g(:)h(:)f(:)g(:)46 b Fb(79)2025 3665 y Fe(TMPDIR)17
+b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(79)2025 3911 y Fs(U)2025
+4032 y Fe(UID)8 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
+b Fb(79)2025 4279 y Fs(V)2025 4400 y Fe(visible-stats)14
+b Fc(:)i(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41
+b Fb(109)150 4649 y Fs(D.4)68 b(F)-11 b(unction)44 b(Index)150
+4886 y(A)150 5010 y Fe(abort)27 b(\(C-g\))9 b Fc(:)14
+b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36
+b Fb(122)150 5102 y Fe(accept-line)28 b(\(Newline)g(or)e(Return\))e
+Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b
+Fb(116)150 5193 y Fe(alias-expand-line)29 b(\(\))21 b
+Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(124)2025 4886 y Fs(B)2025
+5033 y Fe(backward-char)28 b(\(C-b\))c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)50
+b Fb(115)2025 5135 y Fe(backward-delete-char)30 b(\(Rubout\))14
+b Fc(:)h(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41
+b Fb(117)2025 5238 y Fe(backward-kill-line)29 b(\(C-x)e(Rubout\))16
+b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fb(118)2025
+5340 y Fe(backward-kill-word)29 b(\(M-DEL\))24 b Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49
-b Fb(109)2025 4884 y Fe(beginning-of-line)29 b(\(C-a\))13
-b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)40 b Fb(108)2025 5136 y Fr(C)2025 5253 y
-Fe(call-last-kbd-macro)30 b(\(C-x)c(e\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fb(114)2025
-5340 y Fe(capitalize-word)29 b(\(M-c\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45
-b Fb(111)p eop end
-%%Page: 159 165
-TeXDict begin 159 164 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(159)150 299 y Fe(character-search)29
-b(\(C-]\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 b Fb(115)150 387 y
-Fe(character-search-backward)31 b(\(M-C-]\))23 b Fc(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(115)150 474 y Fe(clear-screen)28
-b(\(C-l\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(108)150 562 y Fe(complete)27 b(\(TAB\))20 b Fc(:)13
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(112)150
-650 y Fe(complete-command)29 b(\(M-!\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42
-b Fb(114)150 738 y Fe(complete-filename)29 b(\(M-/\))13
+b Fb(119)p eop end
+%%Page: 164 170
+TeXDict begin 164 169 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(164)150 299 y Fe(backward-word)29
+b(\(M-b\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49 b Fb(115)150
+387 y Fe(beginning-of-history)30 b(\(M-<\))23 b Fc(:)13
+b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(116)150 475 y Fe(beginning-of-line)29 b(\(C-a\))13
b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)39 b Fb(113)150 825 y Fe(complete-hostname)29
-b(\(M-@\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(113)150 913 y Fe
-(complete-into-braces)30 b(\(M-{\))23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(114)150
-1001 y Fe(complete-username)29 b(\(M-~\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
-b Fb(113)150 1089 y Fe(complete-variable)29 b(\(M-$\))13
+g(:)h(:)f(:)39 b Fb(115)150 732 y Fs(C)150 851 y Fe
+(call-last-kbd-macro)30 b(\(C-x)c(e\))9 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(121)150
+939 y Fe(capitalize-word)29 b(\(M-c\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
+b Fb(118)150 1027 y Fe(character-search)29 b(\(C-]\))15
+b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)42 b Fb(122)150 1115 y Fe(character-search-backward)31
+b(\(M-C-]\))23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48
+b Fb(122)150 1204 y Fe(clear-screen)28 b(\(C-l\))8 b
+Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(115)150
+1292 y Fe(complete)27 b(\(TAB\))20 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)45 b Fb(120)150 1380 y Fe(complete-command)29
+b(\(M-!\))15 b Fc(:)g(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42 b Fb(121)150 1468 y
+Fe(complete-filename)29 b(\(M-/\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39
+b Fb(120)150 1556 y Fe(complete-hostname)29 b(\(M-@\))13
b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)39 b Fb(113)150 1176 y Fe(copy-backward-word)30
-b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(112)150 1264
-y Fe(copy-forward-word)29 b(\(\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
-b Fb(112)150 1352 y Fe(copy-region-as-kill)30 b(\(\))15
-b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)42 b Fb(112)150 1606 y Fr(D)150 1724
-y Fe(dabbrev-expand)29 b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)38 b Fb(114)150 1811 y Fe(delete-char)28 b(\(C-d\))11
-b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(110)150
-1899 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
+g(:)h(:)f(:)39 b Fb(121)150 1645 y Fe(complete-into-braces)30
+b(\(M-{\))23 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)49 b Fb(121)150 1733 y Fe(complete-username)29
+b(\(M-~\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(121)150 1821 y Fe(complete-variable)
+29 b(\(M-$\))13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(121)150 1909 y Fe
+(copy-backward-word)30 b(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
+b Fb(119)150 1998 y Fe(copy-forward-word)29 b(\(\))21
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(119)150 2086 y Fe
+(copy-region-as-kill)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42
+b Fb(119)150 2343 y Fs(D)150 2461 y Fe(dabbrev-expand)29
+b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38
+b Fb(121)150 2549 y Fe(delete-char)28 b(\(C-d\))11 b
+Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(117)150
+2638 y Fe(delete-char-or-list)30 b(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)42
-b Fb(113)150 1987 y Fe(delete-horizontal-space)31 b(\(\))22
+b Fb(120)150 2726 y Fe(delete-horizontal-space)31 b(\(\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(112)150 2075 y Fe(digit-argument)29 b(\()p Fd(M-0)p
+49 b Fb(119)150 2814 y Fe(digit-argument)29 b(\()p Fd(M-0)p
Fe(,)e Fd(M-1)p Fe(,)f(...)g Fd(M--)p Fe(\))d Fc(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(112)150 2162 y Fe
+b(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(119)150 2902 y Fe
(display-shell-version)30 b(\(C-x)d(C-v\))16 b Fc(:)e(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(116)150 2250 y Fe(do-uppercase-version)
-30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)9 b Fe(,)27 b(...\))325
-2337 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+(:)f(:)g(:)g(:)g(:)g(:)43 b Fb(123)150 2991 y Fe(do-uppercase-version)
+30 b(\(M-a,)d(M-b,)f(M-)p Fd(x)p Fe(,)h(...)q(\))325
+3078 y Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(114)150 2425
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(122)150 3166
y Fe(downcase-word)29 b(\(M-l\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)49
-b Fb(111)150 2513 y Fe(dump-functions)29 b(\(\))11 b
+b Fb(118)150 3254 y Fe(dump-functions)29 b(\(\))11 b
Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(115)150
-2600 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(123)150
+3342 y Fe(dump-macros)28 b(\(\))19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)45 b Fb(116)150 2688 y Fe(dump-variables)29
+g(:)g(:)h(:)f(:)g(:)45 b Fb(123)150 3431 y Fe(dump-variables)29
b(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38
-b Fb(116)150 2776 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7
-b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(114)150
-3030 y Fr(E)150 3148 y Fe(edit-and-execute-command)e(\(C-xC-e\))23
-b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(117)150
-3235 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14
+b Fb(123)150 3519 y Fe(dynamic-complete-history)31 b(\(M-TAB\))7
+b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(121)150
+3776 y Fs(E)150 3894 y Fe(edit-and-execute-command)e(\(C-xC-e\))23
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)48 b Fb(124)150
+3982 y Fe(end-kbd-macro)29 b(\(C-x)d(\)\))7 b Fc(:)14
b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)34 b Fb(114)150 3323 y Fe(end-of-history)29
-b(\(M->\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(109)150
-3411 y Fe(end-of-line)28 b(\(C-e\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)38 b Fb(108)150 3499 y Fe(exchange-point-and-mark)31
-b(\(C-x)26 b(C-x\))11 b Fc(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)38
-b Fb(115)150 3753 y Fr(F)150 3870 y Fe(forward-backward-delete-char)32
+(:)g(:)h(:)f(:)g(:)34 b Fb(121)150 4071 y Fd(end-of-file)28
+b Fe(\(usually)g(C-d\))14 b Fc(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)41 b Fb(117)150 4159 y
+Fe(end-of-history)29 b(\(M->\))21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
+b Fb(116)150 4247 y Fe(end-of-line)28 b(\(C-e\))11 b
+Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(115)150
+4335 y Fe(exchange-point-and-mark)31 b(\(C-x)26 b(C-x\))11
+b Fc(:)j(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(122)150
+4592 y Fs(F)150 4710 y Fe(forward-backward-delete-char)32
b(\(\))9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(110)150 3958 y Fe(forward-char)28 b(\(C-f\))8 b
+b Fb(117)150 4799 y Fe(forward-char)28 b(\(C-f\))8 b
Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(108)150
-4046 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(109)150 4134
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(115)150
+4887 y Fe(forward-search-history)c(\(C-s\))17 b Fc(:)d(:)f(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(116)150 4975
y Fe(forward-word)28 b(\(M-f\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)35 b Fb(108)150 4378 y Fr(G)150 4495 y Fe(glob-complete-word)30
+(:)35 b Fb(115)150 5222 y Fs(G)150 5340 y Fe(glob-complete-word)30
b(\(M-g\))10 b Fc(:)k(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(116)150 4583 y Fe(glob-expand-word)29
-b(\(C-x)e(*\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(116)150 4670 y Fe
-(glob-list-expansions)30 b(\(C-x)d(g\))7 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(116)150 4925
-y Fr(H)150 5042 y Fe(history-and-alias-expand-line)f(\(\))7
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(116)150
-5130 y Fe(history-expand-line)d(\(M-^\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
-b Fb(116)150 5217 y Fe(history-search-backward)d(\(\))22
-b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-49 b Fb(109)150 5305 y Fe(history-search-forward)31 b(\(\))8
-b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)34 b Fb(109)2025 299 y Fr(I)2025 416 y Fe(insert-comment)29
+(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(123)2025 299 y Fe(glob-expand-word)29
+b(\(C-x)e(*\))17 b Fc(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)44 b Fb(123)2025 388 y Fe
+(glob-list-expansions)30 b(\(C-x)c(g\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(123)2025
+651 y Fs(H)2025 771 y Fe(history-and-alias-expand-line)e(\(\))7
+b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(124)2025
+860 y Fe(history-expand-line)c(\(M-^\))8 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b
+Fb(123)2025 950 y Fe(history-search-backward)d(\(\))22
+b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+49 b Fb(116)2025 1039 y Fe(history-search-forward)30
+b(\(\))8 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)34 b Fb(116)2025 1128 y Fe
+(history-substr-search-backward)e(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)h
+(:)f(:)g(:)48 b Fb(117)2025 1217 y Fe(history-substr-search-forward)32
+b(\(\))7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34
+b Fb(116)2025 1480 y Fs(I)2025 1600 y Fe(insert-comment)29
b(\(M-#\))21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(115)2025
-503 y Fe(insert-completions)29 b(\(M-*\))10 b Fc(:)15
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(123)2025
+1690 y Fe(insert-completions)29 b(\(M-*\))10 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)37 b Fb(113)2025 591 y Fe(insert-last-argument)30
+(:)37 b Fb(120)2025 1779 y Fe(insert-last-argument)30
b(\(M-.)c(or)g(M-_\))18 b Fc(:)c(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)45
-b Fb(116)2025 844 y Fr(K)2025 961 y Fe(kill-line)27 b(\(C-k\))16
-b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b
-Fb(111)2025 1048 y Fe(kill-region)28 b(\(\))19 b Fc(:)13
+b Fb(124)2025 2041 y Fs(K)2025 2162 y Fe(kill-line)27
+b(\(C-k\))16 b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43
+b Fb(118)2025 2251 y Fe(kill-region)28 b(\(\))19 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(112)2025
-1136 y Fe(kill-whole-line)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fb(119)2025
+2340 y Fe(kill-whole-line)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)35 b Fb(111)2025 1224 y Fe(kill-word)27 b(\(M-d\))16
+f(:)g(:)35 b Fb(118)2025 2430 y Fe(kill-word)27 b(\(M-d\))16
b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b
-Fb(111)2025 1467 y Fr(M)2025 1583 y Fe(magic-space)28
+Fb(118)2025 2682 y Fs(M)2025 2802 y Fe(magic-space)28
b(\(\))19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(116)2025 1671 y Fe(menu-complete)28 b(\(\))13 b
+b Fb(124)2025 2891 y Fe(menu-complete)28 b(\(\))13 b
Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(113)2025
-1758 y Fe(menu-complete-backward)30 b(\(\))8 b Fc(:)13
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(120)2025
+2981 y Fe(menu-complete-backward)30 b(\(\))8 b Fc(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)34
-b Fb(113)2025 2012 y Fr(N)2025 2129 y Fe(next-history)28
+b Fb(120)2025 3243 y Fs(N)2025 3364 y Fe(next-history)28
b(\(C-n\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(109)2025 2216 y Fe(non-incremental-forward-search)q(-hist)q(ory)d
-(\(M-n\))2200 2303 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(116)2025 3453 y Fe(non-incremental-forward-search)q(-hist)q(ory)d
+(\(M-n\))2200 3540 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b
-Fb(109)2025 2391 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32
-b(\(M-p\))2200 2478 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+Fb(116)2025 3629 y Fe(non-incremental-reverse-search)q(-hist)q(ory)32
+b(\(M-p\))2200 3716 y Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b
-Fb(109)2025 2713 y Fr(O)2025 2829 y Fe(operate-and-get-next)30
+Fb(116)2025 3960 y Fs(O)2025 4081 y Fe(operate-and-get-next)30
b(\(C-o\))23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)49 b Fb(116)2025 2917 y Fe(overwrite-mode)29
+g(:)g(:)g(:)49 b Fb(124)2025 4170 y Fe(overwrite-mode)29
b(\(\))11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(111)2025 3160 y Fr(P)2025 3277 y Fe(possible-command-completions)
+b Fb(118)2025 4422 y Fs(P)2025 4542 y Fe(possible-command-completions)
32 b(\(C-x)26 b(!\))21 b Fc(:)13 b(:)g(:)h(:)f(:)47 b
-Fb(114)2025 3364 y Fe(possible-completions)30 b(\(M-?\))23
+Fb(121)2025 4632 y Fe(possible-completions)30 b(\(M-?\))23
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-49 b Fb(113)2025 3452 y Fe(possible-filename-completions)32
-b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(113)2025
-3539 y Fe(possible-hostname-completions)32 b(\(C-x)26
-b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(114)2025 3627 y Fe
+49 b Fb(120)2025 4721 y Fe(possible-filename-completions)32
+b(\(C-x)26 b(/\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(120)2025
+4810 y Fe(possible-hostname-completions)32 b(\(C-x)26
+b(@\))18 b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4900 y Fe
(possible-username-completions)32 b(\(C-x)26 b(~\))18
-b Fc(:)c(:)f(:)g(:)45 b Fb(113)2025 3715 y Fe
+b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 4989 y Fe
(possible-variable-completions)32 b(\(C-x)26 b($\))18
-b Fc(:)c(:)f(:)g(:)45 b Fb(113)2025 3802 y Fe(prefix-meta)28
+b Fc(:)c(:)f(:)g(:)45 b Fb(121)2025 5078 y Fe(prefix-meta)28
b(\(ESC\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(115)2025 3890 y Fe(previous-history)29 b(\(C-p\))15
+b Fb(122)2025 5167 y Fe(previous-history)29 b(\(C-p\))15
b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)42 b Fb(109)2025 4143 y Fr(Q)2025 4260
-y Fe(quoted-insert)28 b(\(C-q)f(or)f(C-v\))19 b Fc(:)14
-b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)46
-b Fb(110)2025 4513 y Fr(R)2025 4630 y Fe(re-read-init-file)29
-b(\(C-x)e(C-r\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)36 b Fb(114)2025 4718 y Fe(redraw-current-line)30
-b(\(\))15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(108)2025 4805 y Fe
-(reverse-search-history)30 b(\(C-r\))17 b Fc(:)e(:)e(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fb(109)2025 4893 y Fe(revert-line)28
-b(\(M-r\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
-b Fb(115)2025 5136 y Fr(S)2025 5252 y Fe(self-insert)28
-b(\(a,)e(b,)g(A,)g(1,)g(!,)g(...)q(\))7 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(110)2025 5340 y Fe(set-mark)27
-b(\(C-@\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(115)p eop end
-%%Page: 160 166
-TeXDict begin 160 165 bop 150 -116 a Ft(160)2527 b(Bash)31
-b(Reference)g(Man)m(ual)150 299 y Fe(shell-backward-kill-word)g(\(\))20
-b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(111)150 389 y Fe(shell-backward-word)30 b(\(\))15
+h(:)f(:)g(:)g(:)42 b Fb(116)2025 5257 y Fe(print-last-kbd-macro)30
+b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(122)p eop end
+%%Page: 165 171
+TeXDict begin 165 170 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(165)150 299 y Fs(Q)150 416 y Fe(quoted-insert)29
+b(\(C-q)d(or)g(C-v\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)45 b Fb(117)150 670 y Fs(R)150
+787 y Fe(re-read-init-file)29 b(\(C-x)e(C-r\))9 b Fc(:)14
+b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
+b Fb(122)150 875 y Fe(redraw-current-line)30 b(\(\))15
+b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)42 b Fb(115)150 963 y Fe(reverse-search-history)31
+b(\(C-r\))17 b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)44 b Fb(116)150 1051 y Fe(revert-line)28 b(\(M-r\))11
+b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(122)150
+1294 y Fs(S)150 1412 y Fe(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)h(!,)f
+(...\))7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33
+b Fb(118)150 1499 y Fe(set-mark)27 b(\(C-@\))20 b Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(122)150
+1587 y Fe(shell-backward-kill-word)31 b(\(\))20 b Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
+b Fb(119)150 1675 y Fe(shell-backward-word)30 b(\(\))15
b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)42 b Fb(108)150 479 y Fe(shell-expand-line)29
+g(:)g(:)g(:)g(:)42 b Fb(115)150 1762 y Fe(shell-expand-line)29
b(\(M-C-e\))8 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(116)150 569 y Fe(shell-forward-word)c
+(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(123)150 1850 y Fe(shell-forward-word)c
(\(\))18 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(108)150 659 y
-Fe(shell-kill-word)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-35 b Fb(111)150 748 y Fe(skip-csi-sequence)29 b(\(\))21
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(115)150 1938
+y Fe(shell-kill-word)29 b(\(\))8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)35 b Fb(119)150 2026 y Fe(skip-csi-sequence)29 b(\(\))21
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(115)150 838 y Fe(start-kbd-macro)29
+(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(122)150 2113 y Fe(start-kbd-macro)29
b(\(C-x)e(\(\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(114)150 1094
-y Fr(T)150 1216 y Fe(tilde-expand)28 b(\(M-&\))8 b Fc(:)15
-b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(115)150 1305 y
-Fe(transpose-chars)29 b(\(C-t\))18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44
-b Fb(110)150 1395 y Fe(transpose-words)29 b(\(M-t\))18
-b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)44 b Fb(110)2025 299 y Fr(U)2025
-417 y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))c Fc(:)13
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46 b Fb(121)2025 299
+y Fs(T)2025 424 y Fe(tilde-expand)28 b(\(M-&\))8 b Fc(:)15
+b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(122)2025 515 y
+Fe(transpose-chars)29 b(\(C-t\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45
+b Fb(118)2025 607 y Fe(transpose-words)29 b(\(M-t\))18
+b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)45 b Fb(118)2025 881 y Fs(U)2025
+1006 y Fe(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))c Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)48 b Fb(115)2025 505 y Fe(universal-argument)29
+(:)h(:)f(:)g(:)g(:)48 b Fb(122)2025 1097 y Fe(universal-argument)29
b(\(\))18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(112)2025 594 y
-Fe(unix-filename-rubout)30 b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fb(119)2025 1189
+y Fe(unix-filename-rubout)30 b(\(\))13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)40
-b Fb(112)2025 682 y Fe(unix-line-discard)29 b(\(C-u\))13
+b Fb(119)2025 1280 y Fe(unix-line-discard)29 b(\(C-u\))13
b Fc(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)40 b Fb(111)2025 770 y Fe(unix-word-rubout)29
+g(:)g(:)g(:)40 b Fb(118)2025 1372 y Fe(unix-word-rubout)29
b(\(C-w\))15 b Fc(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(111)2025 858 y
-Fe(upcase-word)28 b(\(M-u\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-38 b Fb(110)2025 1116 y Fr(Y)2025 1234 y Fe(yank)26 b(\(C-y\))12
-b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)39 b Fb(112)2025 1322 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))19
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)46 b Fb(110)2025 1410 y Fe(yank-nth-arg)28 b(\(M-C-y\))22
-b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(109)2025 1499 y Fe(yank-pop)27
-b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45
-b Fb(112)150 1731 y Fr(D.5)68 b(Concept)45 b(Index)150
-1991 y(A)150 2109 y Fb(alias)27 b(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(81)150 2197
-y(arithmetic)26 b(ev)l(aluation)16 b Fc(:)e(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-43 b Fb(80)150 2285 y(arithmetic)26 b(expansion)d Fc(:)13
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(119)2025 1463
+y Fe(upcase-word)28 b(\(M-u\))11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)38 b Fb(118)2025 1737 y Fs(Y)2025 1862 y Fe(yank)26
+b(\(C-y\))12 b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)39 b Fb(119)2025 1954 y Fe(yank-last-arg)28
+b(\(M-.)f(or)f(M-_\))19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)46 b Fb(117)2025 2045 y Fe(yank-nth-arg)28
+b(\(M-C-y\))22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fb(117)2025
+2137 y Fe(yank-pop)27 b(\(M-y\))20 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)45 b Fb(119)150 2369 y Fs(D.5)68
+b(Concept)45 b(Index)150 2629 y(A)150 2748 y Fb(alias)27
+b(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)44 b Fb(88)150 2836 y(arithmetic)26 b(ev)l(aluation)16
+b Fc(:)e(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)43 b Fb(87)150 2925
+y(arithmetic)26 b(expansion)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49
+b Fb(29)150 3013 y(arithmetic,)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43 b Fb(87)150 3102 y(arra)n(ys)15
+b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)41 b Fb(89)150 3358 y Fs(B)150
+3477 y Fb(bac)n(kground)9 b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(97)150 3565 y(Bash)26
+b(con\014guration)d Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49
+b Fb(138)150 3654 y(Bash)26 b(installation)c Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)49 b Fb(24)150 2373 y(arithmetic,)27
-b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)43
-b Fb(80)150 2461 y(arra)n(ys)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)41
-b Fb(82)150 2714 y Fr(B)150 2832 y Fb(bac)n(kground)9
-b Fc(:)j(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)35 b Fb(91)150 2920 y(Bash)26 b(con\014guration)d
-Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)49 b Fb(131)150
-3008 y(Bash)26 b(installation)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)46 b Fb(131)150 3096 y(Bourne)26 b(shell)13
-b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)40 b Fb(5)150 3184 y(brace)26 b(expansion)20 b
-Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)47
-b Fb(19)150 3272 y(builtin)9 b Fc(:)k(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fb(138)150
+3742 y(Bourne)26 b(shell)13 b Fc(:)h(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(5)150 3831
+y(brace)26 b(expansion)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)47 b Fb(21)150 3919 y(builtin)9 b Fc(:)k(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)36 b Fb(3)150 4159 y Fs(C)150 4278 y Fb(command)26
+b(editing)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40
+b Fb(102)150 4366 y(command)26 b(execution)d Fc(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fb(36)150 4455
+y(command)26 b(expansion)16 b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42
+b Fb(35)150 4543 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)39 b Fb(133)150 4632 y(command)26
+b(searc)n(h)10 b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+36 b Fb(36)150 4720 y(command)26 b(substitution)15 b
+Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(28)150 4809 y(command)26
+b(timing)7 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36
-b Fb(3)150 3509 y Fr(C)150 3627 y Fb(command)26 b(editing)15
-b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)42
-b Fb(96)150 3715 y(command)26 b(execution)d Fc(:)13 b(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)49 b Fb(31)150 3803 y(command)26 b(expansion)16
-b Fc(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(31)150
-3891 y(command)26 b(history)12 b Fc(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)39 b Fb(125)150 3979 y(command)26 b(searc)n(h)10
-b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36
-b Fb(31)150 4067 y(command)26 b(substitution)15 b Fc(:)e(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)41 b Fb(24)150 4155 y(command)26 b(timing)7
-b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(8)150 4243 y(commands,)26 b(comp)r(ound)18 b Fc(:)c(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)45 b Fb(9)150 4331 y(commands,)26 b(conditional)d
-Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(10)150 4419 y(commands,)26
-b(grouping)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(13)150 4507 y(commands,)26 b(lists)6 b Fc(:)15 b(:)e(:)g(:)g(:)g
+g(:)34 b Fb(8)150 4897 y(commands,)26 b(comp)r(ound)18
+b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(9)150 4986
+y(commands,)26 b(conditional)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48
+b Fb(10)150 5074 y(commands,)26 b(grouping)9 b Fc(:)14
+b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(14)150 5163
+y(commands,)26 b(lists)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(9)150 5251 y(commands,)26
+b(lo)r(oping)16 b Fc(:)f(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42
+b Fb(10)150 5340 y(commands,)26 b(pip)r(elines)12 b Fc(:)i(:)f(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(9)150
-4595 y(commands,)26 b(lo)r(oping)16 b Fc(:)f(:)e(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(8)2025 2629 y(commands,)26
+b(shell)15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+42 b Fb(8)2025 2720 y(commands,)26 b(simple)17 b Fc(:)d(:)f(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)44 b Fb(8)2025 2810 y(commen)n(ts,)26
+b(shell)7 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)35 b Fb(7)2025 2901 y(completion)26 b(builtins)15
+b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)42 b Fb(126)2025
+2991 y(con\014guration)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)42 b Fb(138)2025 3082 y(con)n(trol)26
+b(op)r(erator)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)42 b Fb(10)150 4683 y(commands,)26 b(pip)r(elines)12
-b Fc(:)i(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(8)150
-4771 y(commands,)26 b(shell)15 b Fc(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)42 b Fb(8)150 4859 y(commands,)26
-b(simple)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44
-b Fb(8)150 4947 y(commen)n(ts,)26 b(shell)7 b Fc(:)15
-b(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34
-b Fb(7)150 5035 y(completion)27 b(builtins)15 b Fc(:)e(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)42 b Fb(119)150 5123 y(con\014guration)15
-b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42
-b Fb(131)150 5211 y(con)n(trol)26 b(op)r(erator)21 b
-Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)46
-b Fb(3)150 5299 y(copro)r(cess)12 b Fc(:)i(:)g(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b
-Fb(14)2025 1991 y Fr(D)2025 2112 y Fb(directory)26 b(stac)n(k)c
-Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49
-b Fb(83)2025 2376 y Fr(E)2025 2497 y Fb(editing)26 b(command)g(lines)13
-b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)39 b Fb(96)2025 2587
-y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(33)2025 2677 y(ev)l(aluation,)26
-b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)49 b
-Fb(80)2025 2766 y(ev)n(en)n(t)24 b(designators)14 b Fc(:)h(:)e(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b Fb(127)2025 2856 y(execution)25
-b(en)n(vironmen)n(t)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37
-b Fb(32)2025 2946 y(exit)25 b(status)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Fb(3,)26
-b(33)2025 3036 y(expansion)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(19)2025
-3126 y(expansion,)26 b(arithmetic)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)38 b Fb(24)2025 3215 y(expansion,)26 b(brace)10 b
-Fc(:)j(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36
-b Fb(19)2025 3305 y(expansion,)26 b(\014lename)12 b Fc(:)h(:)g(:)g(:)h
+(:)g(:)h(:)46 b Fb(3)2025 3172 y(copro)r(cess)12 b Fc(:)i(:)f(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(25)2025 3395 y(expansion,)26
-b(parameter)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)40
-b Fb(21)2025 3485 y(expansion,)26 b(pathname)18 b Fc(:)13
-b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(25)2025 3575 y(expansion,)26
-b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)34 b Fb(20)2025 3665 y(expressions,)27 b(arithmetic)7
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)38
+b Fb(15)2025 3439 y Fs(D)2025 3562 y Fb(directory)26
+b(stac)n(k)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)49 b Fb(90)2025 3829 y Fs(E)2025 3952 y Fb(editing)26
+b(command)g(lines)11 b Fc(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)38
+b Fb(102)2025 4043 y(en)n(vironmen)n(t)12 b Fc(:)g(:)h(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fb(37)2025
+4133 y(ev)l(aluation,)26 b(arithmetic)e Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)49 b Fb(87)2025 4224 y(ev)n(en)n(t)24 b(designators)14
+b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41 b
+Fb(135)2025 4314 y(execution)25 b(en)n(vironmen)n(t)11
+b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37 b Fb(36)2025 4405
+y(exit)25 b(status)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)45 b Fb(3,)26 b(38)2025 4495 y(expansion)20
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(80)2025 3754
-y(expressions,)27 b(conditional)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38
-b Fb(78)2025 4018 y Fr(F)2025 4139 y Fb(\014eld)15 b
-Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)47 b Fb(21)2025 4586 y(expansion,)26 b(arithmetic)12
+b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fb(29)2025 4676
+y(expansion,)26 b(brace)10 b Fc(:)j(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(3)2025 4229
-y(\014lename)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fb(3)2025
-4319 y(\014lename)26 b(expansion)c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)49 b Fb(25)2025 4408 y(foreground)23 b Fc(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-49 b Fb(91)2025 4498 y(functions,)26 b(shell)21 b Fc(:)13
+h(:)f(:)g(:)36 b Fb(21)2025 4767 y(expansion,)26 b(\014lename)12
+b Fc(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(30)2025
+4857 y(expansion,)26 b(parameter)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)40 b Fb(23)2025 4948 y(expansion,)26 b(pathname)18
+b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(30)2025
+5038 y(expansion,)26 b(tilde)8 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)34 b Fb(22)2025 5129 y(expressions,)27
+b(arithmetic)7 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
+b Fb(87)2025 5220 y(expressions,)27 b(conditional)11
+b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fb(85)p eop end
+%%Page: 166 172
+TeXDict begin 166 171 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(166)150 299 y Fs(F)150 415 y Fb(\014eld)15
+b Fc(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)42 b Fb(3)150
+502 y(\014lename)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)42 b Fb(3)150
+589 y(\014lename)26 b(expansion)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)49 b Fb(30)150 676 y(foreground)24 b Fc(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+49 b Fb(97)150 764 y(functions,)26 b(shell)21 b Fc(:)14
+b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)47
+b Fb(17)150 1013 y Fs(H)150 1129 y Fb(history)26 b(builtins)14
+b Fc(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)40
+b Fb(133)150 1216 y(history)26 b(ev)n(en)n(ts)18 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47
-b Fb(15)2025 4762 y Fr(H)2025 4883 y Fb(history)25 b(builtins)14
-b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41
-b Fb(125)2025 4973 y(history)25 b(ev)n(en)n(ts)19 b Fc(:)13
-b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)46
-b Fb(127)2025 5063 y(history)25 b(expansion)8 b Fc(:)14
-b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(127)2025
-5152 y(history)25 b(list)c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Fb(125)2025 5242
-y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)13 b Fc(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)40 b Fb(123)p eop end
-%%Page: 161 167
-TeXDict begin 161 166 bop 150 -116 a Ft(App)s(endix)29
-b(D:)i(Indexes)2623 b(161)150 299 y Fr(I)150 415 y Fb(iden)n(ti\014er)
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)46
+b Fb(135)150 1304 y(history)26 b(expansion)8 b Fc(:)13
+b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fb(135)150
+1391 y(history)26 b(list)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(133)150 1478
+y(History)-6 b(,)26 b(ho)n(w)g(to)f(use)13 b Fc(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)39 b Fb(132)150 1728 y Fs(I)150 1843 y Fb(iden)n(ti\014er)
22 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)50 b Fb(3)150 502 y(initialization)28
-b(\014le,)e(readline)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)39 b Fb(98)150
-589 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)g(:)50 b Fb(3)150 1931 y(initialization)28
+b(\014le,)e(readline)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(104)150
+2018 y(installation)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(131)150 676 y(in)n(teraction,)27
-b(readline)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47
-b Fb(95)150 764 y(in)n(teractiv)n(e)26 b(shell)14 b Fc(:)g(:)f(:)g(:)g
+f(:)g(:)g(:)g(:)g(:)g(:)40 b Fb(138)150 2105 y(in)n(teraction,)27
+b(readline)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)45
+b Fb(101)150 2192 y(in)n(teractiv)n(e)26 b(shell)14 b
+Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(81,)26
+b(83)150 2279 y(in)n(ternationalization)14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)41 b Fb(75,)26 b(76)150 851 y(in)n
-(ternationalization)14 b Fc(:)h(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-41 b Fb(7)150 1084 y Fr(J)150 1200 y Fb(job)16 b Fc(:)e(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)43 b Fb(3)150 1287 y(job)26 b(con)n(trol)13
-b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)40
-b Fb(3,)26 b(91)150 1537 y Fr(K)150 1653 y Fb(kill)g(ring)21
-b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)47 b Fb(97)150 1740 y(killing)27
-b(text)19 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)46 b Fb(97)150 1989 y Fr(L)150 2105
-y Fb(lo)r(calization)14 b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fb(7)150 2193
-y(login)27 b(shell)17 b Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)44 b Fb(75)150 2442 y
-Fr(M)150 2558 y Fb(matc)n(hing,)26 b(pattern)20 b Fc(:)14
-b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(26)150
-2645 y(metac)n(haracter)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+g(:)h(:)f(:)g(:)g(:)41 b Fb(7)150 2512 y Fs(J)150 2628
+y Fb(job)16 b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43
+b Fb(3)150 2716 y(job)26 b(con)n(trol)13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(3)150 2878 y Fr(N)150
-2994 y Fb(name)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fb(3,)26
+b(97)150 2965 y Fs(K)150 3081 y Fb(kill)g(ring)19 b Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)45 b Fb(103)150 3168 y(killing)27 b(text)17 b
+Fc(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+44 b Fb(103)150 3418 y Fs(L)150 3534 y Fb(lo)r(calization)14
+b Fc(:)i(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)41 b Fb(7)150 3621 y(login)27 b(shell)17 b
+Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)40
-b Fb(3)150 3081 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f
+g(:)g(:)44 b Fb(81)150 3871 y Fs(M)150 3987 y Fb(matc)n(hing,)26
+b(pattern)20 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
+b Fb(30)150 4074 y(metac)n(haracter)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)45 b Fb(3)150 4307
+y Fs(N)150 4423 y Fb(name)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)40
+b Fb(3)150 4510 y(nativ)n(e)25 b(languages)13 b Fc(:)i(:)e(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 3169
-y(notation,)27 b(readline)9 b Fc(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)35 b Fb(96)150 3418 y Fr(O)150 3534 y Fb(op)r(erator,)27
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)40 b Fb(7)150 4597
+y(notation,)27 b(readline)7 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)33 b Fb(102)150 4847 y Fs(O)150 4963 y Fb(op)r(erator,)27
b(shell)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)43 b Fb(3)150 3784 y Fr(P)150 3900 y Fb(parameter)26
+g(:)g(:)43 b Fb(3)150 5212 y Fs(P)150 5328 y Fb(parameter)26
b(expansion)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34
-b Fb(21)150 3987 y(parameters)17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g
+b Fb(23)150 5415 y(parameters)17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(17)150
-4074 y(parameters,)27 b(p)r(ositional)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)44 b Fb(17)150 4161 y(parameters,)27 b(sp)r(ecial)18
-b Fc(:)c(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)44 b Fb(18)150
-4249 y(pathname)25 b(expansion)12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)38 b Fb(25)150 4336 y(pattern)25 b(matc)n(hing)14
-b Fc(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)40
-b Fb(26)150 4423 y(pip)r(eline)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50
-b Fb(8)150 4510 y(POSIX)17 b Fc(:)12 b(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)43 b Fb(18)2025
+299 y(parameters,)27 b(p)r(ositional)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)44 b Fb(19)2025 387 y(parameters,)27 b(sp)r(ecial)18
+b Fc(:)c(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fb(20)2025
+474 y(pathname)25 b(expansion)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)38 b Fb(30)2025 562 y(pattern)25 b(matc)n(hing)14
+b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)41
+b Fb(30)2025 650 y(pip)r(eline)23 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)50
+b Fb(8)2025 738 y(POSIX)17 b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)44
+b Fb(3)2025 825 y(POSIX)24 b(Mo)r(de)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)37 b Fb(94)2025
+913 y(pro)r(cess)26 b(group)9 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44
-b Fb(3)150 4597 y(POSIX)25 b(Mo)r(de)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b Fb(86)150
-4685 y(pro)r(cess)27 b(group)9 b Fc(:)k(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)36 b Fb(3)2025 299 y(pro)r(cess)26
-b(group)g(ID)21 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)49 b Fb(3)2025 386 y(pro)r(cess)26 b(substitution)c
-Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48 b Fb(24)2025
-474 y(programmable)27 b(completion)20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)46
-b Fb(117)2025 561 y(prompting)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(84)2025
-811 y Fr(Q)2025 928 y Fb(quoting)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)37
-b Fb(6)2025 1015 y(quoting,)26 b(ANSI)13 b Fc(:)e(:)j(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fb(6)2025
-1266 y Fr(R)2025 1382 y Fb(Readline,)26 b(ho)n(w)g(to)g(use)7
-b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(94)2025
-1469 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fb(27)2025 1557
-y(reserv)n(ed)25 b(w)n(ord)7 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fb(3)2025 1644
-y(restricted)26 b(shell)8 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(3)2025 1001
+y(pro)r(cess)26 b(group)g(ID)21 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)49 b Fb(3)2025 1089 y(pro)r(cess)26
+b(substitution)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)48
+b Fb(29)2025 1177 y(programmable)27 b(completion)20 b
+Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)46 b Fb(124)2025 1264 y(prompting)11 b
+Fc(:)i(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)38 b Fb(92)2025 1517 y Fs(Q)2025 1634 y Fb(quoting)10
+b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)37 b Fb(6)2025 1722 y(quoting,)26
+b(ANSI)13 b Fc(:)e(:)j(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)35 b Fb(86)2025 1731 y(return)25
-b(status)c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)48 b Fb(4)2025 1965 y Fr(S)2025 2082 y
-Fb(shell)26 b(arithmetic)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+h(:)f(:)40 b Fb(6)2025 1974 y Fs(R)2025 2091 y Fb(Readline,)26
+b(ho)n(w)g(to)g(use)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49
+b Fb(100)2025 2179 y(redirection)7 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b
+Fb(31)2025 2267 y(reserv)n(ed)25 b(w)n(ord)7 b Fc(:)14
+b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
+b Fb(3)2025 2355 y(restricted)26 b(shell)8 b Fc(:)14
+b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)35
+b Fb(93)2025 2443 y(return)25 b(status)c Fc(:)13 b(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)48 b Fb(4)2025
+2678 y Fs(S)2025 2796 y Fb(shell)26 b(arithmetic)11 b
+Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37
+b Fb(87)2025 2883 y(shell)26 b(function)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38 b Fb(17)2025
+2971 y(shell)26 b(script)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)37 b Fb(80)2025 2169 y(shell)26 b(function)12
-b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)38
-b Fb(15)2025 2256 y(shell)26 b(script)c Fc(:)13 b(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b
-Fb(34)2025 2344 y(shell)26 b(v)l(ariable)18 b Fc(:)c(:)f(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(17)2025
-2431 y(shell,)26 b(in)n(teractiv)n(e)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)40 b Fb(76)2025 2518 y(signal)7
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34 b Fb(4)2025 2606
-y(signal)27 b(handling)17 b Fc(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)44 b Fb(34)2025 2693 y(sp)r(ecial)27
-b(builtin)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-37 b Fb(4,)26 b(62)2025 2781 y(startup)f(\014les)d Fc(:)13
-b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48
-b Fb(75)2025 2868 y(susp)r(ending)25 b(jobs)6 b Fc(:)14
-b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(91)2025 3118 y Fr(T)2025 3235 y Fb(tilde)26 b(expansion)18
-b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)45
-b Fb(20)2025 3322 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(39)2025 3059
+y(shell)26 b(v)l(ariable)18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)45 b Fb(18)2025 3147 y(shell,)26
+b(in)n(teractiv)n(e)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)40 b Fb(83)2025 3234 y(signal)7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)34 b Fb(4)2025 3322 y(signal)27 b(handling)17
+b Fc(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)44
+b Fb(38)2025 3410 y(sp)r(ecial)27 b(builtin)10 b Fc(:)j(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(4,)26 b(68)2025
+3498 y(startup)f(\014les)d Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(82)2025 3585 y(susp)r(ending)25
+b(jobs)6 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)33 b Fb(97)2025 3838 y Fs(T)2025 3955 y Fb(tilde)26
+b(expansion)18 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)45 b Fb(22)2025 4043 y(tok)n(en)11 b Fc(:)h(:)i(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)38
-b Fb(4)2025 3409 y(translation,)27 b(nativ)n(e)e(languages)13
+(:)g(:)38 b Fb(4)2025 4131 y(translation,)27 b(nativ)n(e)e(languages)13
b Fc(:)i(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)40 b Fb(7)2025 3660 y Fr(V)2025 3776 y Fb(v)l(ariable,)26
+g(:)g(:)g(:)40 b Fb(7)2025 4383 y Fs(V)2025 4500 y Fb(v)l(ariable,)26
b(shell)8 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)34 b Fb(17)2025 3864 y(v)l(ariables,)27 b(readline)21
-b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)47
-b Fb(99)2025 4114 y Fr(W)2025 4230 y Fb(w)n(ord)21 b
-Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fb(4)2025 4318
-y(w)n(ord)26 b(splitting)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)47 b Fb(25)2025 4568 y Fr(Y)2025
-4685 y Fb(y)n(anking)25 b(text)9 b Fc(:)j(:)h(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)35 b Fb(97)p eop
-end
-%%Page: 162 168
-TeXDict begin 162 167 bop eop end
+f(:)g(:)g(:)34 b Fb(18)2025 4588 y(v)l(ariables,)27 b(readline)18
+b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)45 b Fb(105)2025
+4841 y Fs(W)2025 4958 y Fb(w)n(ord)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)48 b Fb(4)2025 5046 y(w)n(ord)26 b(splitting)21
+b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)47
+b Fb(29)2025 5298 y Fs(Y)2025 5415 y Fb(y)n(anking)25
+b(text)7 b Fc(:)12 b(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)34 b Fb(103)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/bashref.texi b/doc/bashref.texi
index ae982d5e..eca3c26b 100644
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -2,11 +2,9 @@
@c %**start of header
@setfilename bashref.info
@settitle Bash Reference Manual
-@c %**end of header
-
-@setchapternewpage odd
@include version.texi
+@c %**end of header
@copying
This text is a brief description of the features that are present in
@@ -16,24 +14,15 @@ 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--2011 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.
+Copyright @copyright{} 1988--2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 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) below. A copy of the license is
-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.''
-
+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 quotation
@end copying
@@ -60,12 +49,6 @@ developing GNU and promoting software freedom.''
@vskip 0pt plus 1filll
@insertcopying
-@sp 1
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111-1307 @*
-USA @*
-
@end titlepage
@contents
@@ -76,6 +59,7 @@ USA @*
This text is a brief description of the features that are present in
the Bash shell (version @value{VERSION}, @value{UPDATED}).
+The Bash home page is @url{http://www.gnu.org/software/bash/}.
This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
@@ -85,9 +69,9 @@ Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
borrowed concepts from are the Bourne Shell (@file{sh}), the Korn Shell
(@file{ksh}), and the C-shell (@file{csh} and its successor,
-@file{tcsh}). The following menu breaks the features up into
-categories based upon which one of these other shells inspired the
-feature.
+@file{tcsh}). The following menu breaks the features up into
+categories, noting which features were inspired by other shells and
+which are specific to Bash.
This manual is meant as a brief introduction to features found in
Bash. The Bash manual page should be used as the definitive
@@ -185,7 +169,7 @@ Shells also provide a small set of built-in
commands (@dfn{builtins}) implementing functionality impossible
or inconvenient to obtain via separate utilities.
For example, @code{cd}, @code{break}, @code{continue}, and
-@code{exec}) cannot be implemented outside of the shell because
+@code{exec} cannot be implemented outside of the shell because
they directly manipulate the shell itself.
The @code{history}, @code{getopts}, @code{kill}, or @code{pwd}
builtins, among others, could be implemented in separate utilities,
@@ -627,7 +611,7 @@ the control operators @samp{|} or @samp{|&}.
@cindex command timing
The format for a pipeline is
@example
-[@code{time} [@code{-p}]] [@code{!}] @var{command1} [ [@code{|} or @code{|&}] @var{command2} @dots{}]
+[time [-p]] [!] @var{command1} [ | or |& @var{command2} ] @dots{}
@end example
@noindent
@@ -637,9 +621,11 @@ 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
+If @samp{|&} is used, @var{command1}'s standard error, in addition to
+its standard output, 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 to the standard output is
performed after any redirections specified by the command.
The reserved word @code{time} causes timing statistics
@@ -753,6 +739,10 @@ terminated by a corresponding reserved word or operator.
Any redirections (@pxref{Redirections}) associated with a compound command
apply to all commands within that compound command unless explicitly overridden.
+In most cases a list of commands in a compound command's description may be
+separated from the rest of the command by one or more newlines, and may be
+followed by a newline in place of a semicolon.
+
Bash provides looping constructs, conditional commands, and mechanisms
to group commands and execute them as a unit.
@@ -771,9 +761,11 @@ command's syntax, it may be replaced with one or more newlines.
@rwindex do
@rwindex done
The syntax of the @code{until} command is:
+
@example
until @var{test-commands}; do @var{consequent-commands}; done
@end example
+
Execute @var{consequent-commands} as long as
@var{test-commands} has an exit status which is not zero.
The return status is the exit status of the last command executed
@@ -782,6 +774,7 @@ in @var{consequent-commands}, or zero if none was executed.
@item while
@rwindex while
The syntax of the @code{while} command is:
+
@example
while @var{test-commands}; do @var{consequent-commands}; done
@end example
@@ -798,6 +791,7 @@ The syntax of the @code{for} command is:
@example
for @var{name} [ [in [@var{words} @dots{}] ] ; ] do @var{commands}; done
@end example
+
Expand @var{words}, and execute @var{commands} once for each member
in the resultant list, with @var{name} bound to the current member.
If @samp{in @var{words}} is not present, the @code{for} command
@@ -813,6 +807,7 @@ An alternate form of the @code{for} command is also supported:
@example
for (( @var{expr1} ; @var{expr2} ; @var{expr3} )) ; do @var{commands} ; done
@end example
+
First, the arithmetic expression @var{expr1} is evaluated according
to the rules described below (@pxref{Shell Arithmetic}).
The arithmetic expression @var{expr2} is then evaluated repeatedly
@@ -822,7 +817,6 @@ executed and the arithmetic expression @var{expr3} is evaluated.
If any expression is omitted, it behaves as if it evaluates to 1.
The return value is the exit status of the last command in @var{commands}
that is executed, or false if any of the expressions is invalid.
-
@end table
The @code{break} and @code{continue} builtins (@pxref{Bourne Shell Builtins})
@@ -869,7 +863,7 @@ zero if no condition tested true.
The syntax of the @code{case} command is:
@example
-@code{case @var{word} in [ [(] @var{pattern} [| @var{pattern}]@dots{}) @var{command-list} ;;]@dots{} esac}
+case @var{word} in [ [(] @var{pattern} [| @var{pattern}]@dots{}) @var{command-list} ;;]@dots{} esac
@end example
@code{case} will selectively execute the @var{command-list} corresponding to
@@ -893,6 +887,8 @@ There may be an arbitrary number of @code{case} clauses, each terminated
by a @samp{;;}, @samp{;&}, or @samp{;;&}.
The first pattern that matches determines the
command-list that is executed.
+It's a common idiom to use @samp{*} as the final pattern to define the
+default case, since that pattern will always match.
Here is an example using @code{case} in a script that could be used to
describe one interesting feature of an animal:
@@ -989,26 +985,28 @@ the conditional expression @var{expression}.
Expressions are composed of the primaries described below in
@ref{Bash Conditional Expressions}.
Word splitting and filename expansion are not performed on the words
-between the @samp{[[} and @samp{]]}; tilde expansion, parameter and
+between the @code{[[} and @code{]]}; tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
substitution, and quote removal are performed.
Conditional operators such as @samp{-f} must be unquoted to be recognized
as primaries.
-When used with @samp{[[}, the @samp{<} and @samp{>} operators sort
+When used with @code{[[}, the @samp{<} and @samp{>} operators sort
lexicographically using the current locale.
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}.
+to the rules described below in @ref{Pattern Matching},
+as if the @code{extglob} shell option were enabled.
+The @samp{=} operator is identical to @samp{==}.
If the shell option @code{nocasematch}
(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
match (@samp{!=})the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force it to be matched as a
-string.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
An additional binary operator, @samp{=~}, is available, with the same
precedence as @samp{==} and @samp{!=}.
@@ -1022,8 +1020,12 @@ If the shell option @code{nocasematch}
(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.
+Any part of the pattern may be quoted to force the quoted portion
+to be matched as a string.
+Bracket expressions in regular expressions must be treated carefully,
+since normal quoting characters lose their meanings between brackets.
+If the pattern is stored in a shell variable, quoting the variable
+expansion forces the entire pattern 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
@@ -1031,6 +1033,61 @@ matching the entire regular expression.
The element of @code{BASH_REMATCH} with index @var{n} is the portion of the
string matching the @var{n}th parenthesized subexpression.
+For example, the following will match a line
+(stored in the shell variable @var{line})
+if there is a sequence of characters in the value consisting of
+any number, including zero, of
+space characters, zero or one instances of @samp{a}, then a @samp{b}:
+@example
+[[ $line =~ [[:space:]]*(a)?b ]]
+@end example
+
+@noindent
+That means values like @samp{aab} and @samp{ aaaaaab} will match, as
+will a line containing a @samp{b} anywhere in its value.
+
+Storing the regular expression in a shell variable is often a useful
+way to avoid problems with quoting characters that are special to the
+shell.
+It is sometimes difficult to specify a regular expression literally
+without using quotes, or to keep track of the quoting used by regular
+expressions while paying attention to the shell's quote removal.
+Using a shell variable to store the pattern decreases these problems.
+For example, the following is equivalent to the above:
+@example
+pattern='[[:space:]]*(a)?b'
+[[ $line =~ $pattern ]]
+@end example
+
+@noindent
+If you want to match a character that's special to the regular expression
+grammar, it has to be quoted to remove its special meaning.
+This means that in the pattern @samp{xxx.txt}, the @samp{.} matches any
+character in the string (its usual regular expression meaning), but in the
+pattern @samp{"xxx.txt"} it can only match a literal @samp{.}.
+Shell programmers should take special care with backslashes, since backslashes
+are used both by the shell and regular expressions to remove the special
+meaning from the following character.
+The following two sets of commands are @emph{not} equivalent:
+@example
+pattern='\.'
+
+[[ . =~ $pattern ]]
+[[ . =~ \. ]]
+
+[[ . =~ "$pattern" ]]
+[[ . =~ '\.' ]]
+@end example
+
+@noindent
+The first two matches will succeed, but the second two will not, because
+in the second two the backslash will be part of the pattern to be matched.
+In the first two examples, the backslash removes the special meaning from
+@samp{.}, so the literal @samp{.} matches.
+If the string in the first examples were anything other than @samp{.}, say
+@samp{a}, the pattern would not match, because the quoted @samp{.} in the
+pattern loses its special meaning of matching any single character.
+
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
@@ -1048,11 +1105,11 @@ True if both @var{expression1} and @var{expression2} are true.
@item @var{expression1} || @var{expression2}
True if either @var{expression1} or @var{expression2} is true.
@end table
+
@noindent
The @code{&&} and @code{||} operators do not evaluate @var{expression2} if the
value of @var{expression1} is sufficient to determine the return
value of the entire conditional expression.
-
@end table
@node Command Grouping
@@ -1111,7 +1168,7 @@ established between the executing shell and the coprocess.
The format for a coprocess is:
@example
-@code{coproc} [@var{NAME}] @var{command} [@var{redirections}]
+coproc [@var{NAME}] @var{command} [@var{redirections}]
@end example
@noindent
@@ -1121,49 +1178,55 @@ If @var{NAME} is not supplied, the default name is @var{COPROC}.
command (@pxref{Simple Commands}); otherwise, it is interpreted as
the first word of the simple command.
-When the coproc is executed, the shell creates an array variable
+When the coprocess is executed, the shell creates an array variable
(@pxref{Arrays})
-named @var{NAME} in the context of the executing shell.
+named @env{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].
+and that file descriptor is assigned to @env{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].
+and that file descriptor is assigned to @env{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 file descriptors are not available in subshells.
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable @var{NAME}_PID.
+available as the value of the variable @env{NAME}_PID.
The @code{wait}
builtin command may be used to wait for the coprocess to terminate.
+Since the coprocess is created as an asynchronous command,
+the @code{coproc} command always returns success.
The return status of a coprocess is the exit status of @var{command}.
@node GNU Parallel
@subsection GNU Parallel
+There are ways to run commands in parallel that are not built into Bash.
+GNU Parallel is a tool to do just that.
+
GNU Parallel, as its name suggests, can be used to build and run commands
in parallel. You may run the same command with different arguments, whether
-they are filenames, usernames, hostnames, or lines read from files.
+they are filenames, usernames, hostnames, or lines read from files. GNU
+Parallel provides shorthand references to many of the most common operations
+(input lines, various portions of the input line, different ways to specify
+the input source, and so on). Parallel can replace @code{xargs} or feed
+commands from its input sources to several different instances of Bash.
For a complete description, refer to the GNU Parallel documentation. A few
examples should provide a brief introduction to its use.
-For example, it is easy to prefix each line in a text file with a specified
-string:
+For example, it is easy to replace @code{xargs} to gzip all html files in the
+current directory and its subdirectories:
@example
-cat file | parallel -k echo prefix_string
+find . -type f -name '*.html' -print | parallel gzip
@end example
@noindent
-The @option{-k} option is required to preserve the lines' order.
-
-Similarly, you can append a specified string to each line in a text file:
-@example
-cat file | parallel -k echo @{@} append_string
-@end example
+If you need to protect special characters such as newlines in file names,
+use find's @option{-print0} option and parallel's @option{-0} option.
You can use Parallel to move files from the current directory when the
number of files is too large to process with one @code{mv} invocation:
@@ -1172,20 +1235,31 @@ ls | parallel mv @{@} destdir
@end example
As you can see, the @{@} is replaced with each line read from standard input.
+While using @code{ls} will work in most instances, it is not sufficient to
+deal with all filenames.
+If you need to accommodate special characters in filenames, you can use
+
+@example
+find . -depth 1 \! -name '.*' -print0 | parallel -0 mv @{@} destdir
+@end example
+
+@noindent
+as alluded to above.
+
This will run as many @code{mv} commands as there are files in the current
-directory. You can emulate a parallel @code{xargs} by adding the @option{-X}
-option:
+directory.
+You can emulate a parallel @code{xargs} by adding the @option{-X} option:
@example
-ls | parallel -X mv @{@} destdir
+find . -depth 1 \! -name '.*' -print0 | parallel -0 -X mv @{@} destdir
@end example
GNU Parallel can replace certain common idioms that operate on lines read
-from a file (in this case, filenames):
+from a file (in this case, filenames listed one per line):
@example
- for x in $(cat list); do
- do-something1 $x config-$x
- do-something2 < $x
- done | process-output
+ while IFS= read -r x; do
+ do-something1 "$x" "config-$x"
+ do-something2 < "$x"
+ done < file | process-output
@end example
@noindent
@@ -1201,7 +1275,15 @@ ls *.gz | parallel -j+0 "zcat @{@} | bzip2 >@{.@}.bz2 && rm @{@}"
@end example
@noindent
This will recompress all files in the current directory with names ending
-in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+in .gz using bzip2, running one job per CPU (-j+0) in parallel.
+(We use @code{ls} for brevity here; using @code{find} as above is more
+robust in the face of filenames containing unexpected characters.)
+Parallel can take arguments from the command line; the above can also be
+written as
+
+@example
+parallel "zcat @{@} | bzip2 >@{.@}.bz2 && rm @{@}" ::: *.gz
+@end example
If a command generates output, you may want to preserve the input order in
the output. For instance, the following command
@@ -1209,14 +1291,29 @@ the output. For instance, the following command
@{ echo foss.org.my ; echo debian.org; echo freenetproject.org; @} | parallel traceroute
@end example
@noindent
-will display as output the traceroute invocation that finishes first. Using
-the @option{-k} option, as we saw above
+will display as output the traceroute invocation that finishes first.
+Adding the @option{-k} option
@example
@{ echo foss.org.my ; echo debian.org; echo freenetproject.org; @} | parallel -k traceroute
@end example
@noindent
will ensure that the output of @code{traceroute foss.org.my} is displayed first.
+Finally, Parallel can be used to run a sequence of shell commands in parallel,
+similar to @samp{cat file | bash}.
+It is not uncommon to take a list of filenames, create a series of shell
+commands to operate on them, and feed that list of commnds to a shell.
+Parallel can speed this up. Assuming that @file{file} contains a list of
+shell commands, one per line,
+
+@example
+parallel -j 10 < file
+@end example
+
+@noindent
+will evaluate the commands using the shell (since no explicit command is
+supplied as an argument), in blocks of ten shell jobs at a time.
+
@node Shell Functions
@section Shell Functions
@cindex shell function
@@ -1233,8 +1330,13 @@ shell context; no new process is created to interpret them.
Functions are declared using this syntax:
@rwindex function
@example
-@var{name} () @var{compound-command} [ @var{redirections} ]@*or@*
-@code{function} @var{name} [()] @var{compound-command} [ @var{redirections} ]
+@var{name} () @var{compound-command} [ @var{redirections} ]
+@end example
+
+or
+
+@example
+function @var{name} [()] @var{compound-command} [ @var{redirections} ]
@end example
This defines a shell function named @var{name}. The reserved
@@ -1247,6 +1349,9 @@ That command is usually a @var{list} enclosed between @{ and @}, but
may be any compound command listed above.
@var{compound-command} is executed whenever @var{name} is specified as the
name of a command.
+When the shell is in @sc{posix} mode (@pxref{Bash POSIX Mode}),
+@var{name} may not be the same as one of the special builtins
+(@pxref{Special Builtins}).
Any redirections (@pxref{Redirections}) associated with the shell function
are performed when the function is executed.
@@ -1314,8 +1419,8 @@ Variables local to the function may be declared with the
the function and the commands it invokes.
Function names and definitions may be listed with the
-@option{-f} option to the @code{declare} or @code{typeset}
-builtin commands (@pxref{Bash Builtins}).
+@option{-f} option to the @code{declare} (@code{typeset})
+builtin command (@pxref{Bash Builtins}).
The @option{-F} option to @code{declare} or @code{typeset}
will list the function names only
(and optionally the source file and line number, if the @code{extdebug}
@@ -1377,6 +1482,9 @@ Assignment statements may also appear as arguments to the
@code{alias},
@code{declare}, @code{typeset}, @code{export}, @code{readonly},
and @code{local} builtin commands.
+When in @sc{posix} mode (@pxref{Bash POSIX Mode}), these builtins may appear
+in a command after one or more instances of the @code{command} builtin
+and retain these assignment statement properties.
In the context where an assignment statement is assigning a value
to a shell variable or array index (@pxref{Arrays}), the @samp{+=}
@@ -1394,6 +1502,39 @@ in an associative array.
When applied to a string-valued variable, @var{value} is expanded and
appended to the variable's value.
+A variable can be assigned the @var{nameref} attribute using the
+@option{-n} option to the \fBdeclare\fP or \fBlocal\fP builtin commands
+(@pxref{Bash Builtins})
+to create a @var{nameref}, or a reference to another variable.
+This allows variables to be manipulated indirectly.
+Whenever the nameref variable is referenced or assigned to, the operation
+is actually performed on the variable specified by the nameref variable's
+value.
+A nameref is commonly used within shell functions to refer to a variable
+whose name is passed as an argument to the function.
+For instance, if a variable name is passed to a shell function as its first
+argument, running
+@example
+declare -n ref=$1
+@end example
+@noindent
+inside the function creates a nameref variable @var{ref} whose value is
+the variable name passed as the first argument.
+References and assignments to @var{ref} are treated as references and
+assignments to the variable whose name was passed as @code{$1}.
+
+If the control variable in a @code{for} loop has the nameref attribute,
+the list of words can be a list of shell variables, and a name reference
+will be established for each word in the list, in turn, when the loop is
+executed.
+Array variables cannot be given the @option{-n} attribute.
+However, nameref variables can reference array variables and subscripted
+array variables.
+Namerefs can be unset using the @option{-n} option to the @code{unset} builtin
+(@pxref{Bourne Shell Builtins}).
+Otherwise, if @code{unset} is executed with the name of a nameref variable
+as an argument, the variable referenced by the nameref variable will be unset.
+
@node Positional Parameters
@subsection Positional Parameters
@cindex parameters, positional
@@ -1424,8 +1565,13 @@ only be referenced; assignment to them is not allowed.
@vtable @code
@item *
-Expands to the positional parameters, starting from one. When the
-expansion occurs within double quotes, it expands to a single word
+@vindex $*
+($*) Expands to the positional parameters, starting from one.
+When the expansion is not within double quotes, each positional parameter
+expands to a separate word.
+In contexts where it is performed, those words
+are subject to further word splitting and pathname expansion.
+When the expansion occurs within double quotes, it expands to a single word
with the value of each parameter separated by the first character
of the @env{IFS}
special variable. That is, @code{"$*"} is equivalent
@@ -1436,9 +1582,9 @@ If @env{IFS} is unset, the parameters are separated by spaces.
If @env{IFS} is null, the parameters are joined without intervening
separators.
-
@item @@
-Expands to the positional parameters, starting from one. When the
+@vindex $@@
+($@@) Expands to the positional parameters, starting from one. When the
expansion occurs within double quotes, each parameter expands to a
separate word. That is, @code{"$@@"} is equivalent to
@code{"$1" "$2" @dots{}}.
@@ -1451,28 +1597,35 @@ When there are no positional parameters, @code{"$@@"} and
expand to nothing (i.e., they are removed).
@item #
-Expands to the number of positional parameters in decimal.
+@vindex $#
+($#) Expands to the number of positional parameters in decimal.
@item ?
-Expands to the exit status of the most recently executed foreground
+@vindex $?
+($?) Expands to the exit status of the most recently executed foreground
pipeline.
@item -
-(A hyphen.) Expands to the current option flags as specified upon
+@vindex $-
+($-, a hyphen.) Expands to the current option flags as specified upon
invocation, by the @code{set}
builtin command, or those set by the shell itself
(such as the @option{-i} option).
@item $
-Expands to the process @sc{id} of the shell. In a @code{()} subshell, it
+@vindex $$
+($$) Expands to the process @sc{id} of the shell. In a @code{()} subshell, it
expands to the process @sc{id} of the invoking shell, not the subshell.
@item !
-Expands to the process @sc{id} of the most recently executed background
-(asynchronous) command.
+@vindex $!
+($!) Expands to the process @sc{id} of the job most recently placed into the
+background, whether executed as an asynchronous command or using
+the @code{bg} builtin (@pxref{Job Control Builtins}).
@item 0
-Expands to the name of the shell or shell script. This is set at
+@vindex $0
+($0) Expands to the name of the shell or shell script. This is set at
shell initialization. If Bash is invoked with a file of commands
(@pxref{Shell Scripts}), @code{$0} is set to the name of that file.
If Bash is started with the @option{-c} option (@pxref{Invoking Bash}),
@@ -1481,7 +1634,8 @@ executed, if one is present. Otherwise, it is set
to the filename used to invoke Bash, as given by argument zero.
@item _
-(An underscore.)
+@vindex $_
+($_, an underscore.)
At shell startup, set to the absolute pathname used to invoke the
shell or shell script being executed as passed in the environment
or argument list.
@@ -1498,6 +1652,7 @@ When checking mail, this parameter holds the name of the mail file.
Expansion is performed on the command line after it has been split into
@code{token}s. There are seven kinds of expansion performed:
+
@itemize @bullet
@item brace expansion
@item tilde expansion
@@ -1523,15 +1678,17 @@ Expansion is performed on the command line after it has been split into
words.
@end menu
-The order of expansions is: brace expansion, tilde expansion,
-parameter, variable, and arithmetic expansion and
-command substitution
-(done in a left-to-right fashion), word splitting, and filename
-expansion.
+The order of expansions is:
+brace expansion;
+tilde expansion, parameter and variable expansion, arithmetic expansion,
+and command substitution (done in a left-to-right fashion);
+word splitting;
+and filename expansion.
On systems that can support it, there is an additional expansion
-available: @var{process substitution}. This is performed at the
-same time as parameter, variable, and arithmetic expansion and
+available: @var{process substitution}.
+This is performed at the
+same time as tilde, parameter, variable, and arithmetic expansion and
command substitution.
Only brace expansion, word splitting, and filename expansion
@@ -1552,9 +1709,9 @@ is performed.
Brace expansion is a mechanism by which arbitrary strings may be generated.
This mechanism is similar to
@var{filename expansion} (@pxref{Filename Expansion}),
-but the file names generated need not exist.
+but the filenames 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 seqeunce expression
+followed by either a series of comma-separated strings or a sequence expression
between a pair of braces,
followed by an optional @var{postscript}.
The preamble is prefixed to each string contained within the braces, and
@@ -1576,12 +1733,14 @@ 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
+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.
+lexicographically between @var{x} and @var{y}, inclusive,
+using the default C locale.
+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.
@@ -1652,7 +1811,7 @@ left unchanged.
Each variable assignment is checked for unquoted tilde-prefixes immediately
following a @samp{:} or the first @samp{=}.
In these cases, tilde expansion is also performed.
-Consequently, one may use file names with tildes in assignments to
+Consequently, one may use filenames with tildes in assignments to
@env{PATH}, @env{MAILPATH}, and @env{CDPATH},
and the shell assigns the expanded value.
@@ -1682,7 +1841,6 @@ The string that would be displayed by @samp{dirs +@var{N}}
@item ~-@var{N}
The string that would be displayed by @samp{dirs -@var{N}}
-
@end table
@node Shell Parameter Expansion
@@ -1703,21 +1861,22 @@ embedded arithmetic expansion, command substitution, or parameter
expansion.
The basic form of parameter expansion is $@{@var{parameter}@}.
-The value of @var{parameter} is substituted. The braces are required
-when @var{parameter}
+The value of @var{parameter} is substituted.
+The @var{parameter} is a shell parameter as described above
+(@pxref{Shell Parameters}) or an array reference (@pxref{Arrays}).
+The braces are required when @var{parameter}
is a positional parameter with more than one digit,
-or when @var{parameter}
-is followed by a character that is not to be
+or when @var{parameter} is followed by a character that is not to be
interpreted as part of its name.
If the first character of @var{parameter} is an exclamation point (!),
-a level of variable indirection is introduced.
+it introduces a level of variable indirection.
Bash uses the value of the variable formed from the rest of
@var{parameter} as the name of the variable; this variable is then
expanded and that value is used in the rest of the substitution, rather
than the value of @var{parameter} itself.
This is known as @code{indirect expansion}.
-The exceptions to this are the expansions of $@{!@var{prefix}@*@}
+The exceptions to this are the expansions of $@{!@var{prefix}*@}
and $@{!@var{name}[@@]@}
described below.
The exclamation point must immediately follow the left brace in order to
@@ -1727,7 +1886,7 @@ In each of the cases below, @var{word} is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the form described
-below, Bash tests for a parameter that is unset or null.
+below (e.g., @samp{:-}), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included,
the operator tests for both @var{parameter}'s existence and that its value
@@ -1763,33 +1922,147 @@ is null or unset, nothing is substituted, otherwise the expansion of
@item $@{@var{parameter}:@var{offset}@}
@itemx $@{@var{parameter}:@var{offset}:@var{length}@}
-Expands to up to @var{length} characters of @var{parameter}
+This is referred to as Substring Expansion.
+It expands to up to @var{length} characters of the value of @var{parameter}
starting at the character specified by @var{offset}.
-If @var{length} is omitted, expands to the substring of
-@var{parameter} starting at the character specified by @var{offset}.
+If @var{parameter} is @samp{@@}, an indexed array subscripted by
+@samp{@@} or @samp{*}, or an associative array name, the results differ as
+described below.
+If @var{length} is omitted, it expands to the substring of the value of
+@var{parameter} starting at the character specified by @var{offset}
+and extending to the end of the value.
@var{length} and @var{offset} are arithmetic expressions
(@pxref{Shell Arithmetic}).
-This is referred to as Substring Expansion.
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{length} evaluates to a number less than zero, and @var{parameter}
-is not @samp{@@} and not an indexed or associative array, it is interpreted
-as an offset from the end of the value of @var{parameter} rather than
-a number of characters, and the expansion is the characters between the
-two offsets.
+is used as an offset in characters
+from the end of the value of @var{parameter}.
+If @var{length} evaluates to a number less than zero,
+it is interpreted as an offset in characters
+from the end of the value of @var{parameter} rather than
+a number of characters, and the expansion is the characters between
+@var{offset} and that result.
+Note that a negative offset must be separated from the colon by at least
+one space to avoid being confused with the @samp{:-} expansion.
+
+Here are some examples illustrating substring expansion on parameters and
+subscripted arrays:
+
+@verbatim
+$ string=01234567890abcdefgh
+$ echo ${string:7}
+7890abcdefgh
+$ echo ${string:7:0}
+
+$ echo ${string:7:2}
+78
+$ echo ${string:7:-2}
+7890abcdef
+$ echo ${string: -7}
+bcdefgh
+$ echo ${string: -7:0}
+
+$ echo ${string: -7:2}
+bc
+$ echo ${string: -7:-2}
+bcdef
+$ set -- 01234567890abcdefgh
+$ echo ${1:7}
+7890abcdefgh
+$ echo ${1:7:0}
+
+$ echo ${1:7:2}
+78
+$ echo ${1:7:-2}
+7890abcdef
+$ echo ${1: -7}
+bcdefgh
+$ echo ${1: -7:0}
+
+$ echo ${1: -7:2}
+bc
+$ echo ${1: -7:-2}
+bcdef
+$ array[0]=01234567890abcdefgh
+$ echo ${array[0]:7}
+7890abcdefgh
+$ echo ${array[0]:7:0}
+
+$ echo ${array[0]:7:2}
+78
+$ echo ${array[0]:7:-2}
+7890abcdef
+$ echo ${array[0]: -7}
+bcdefgh
+$ echo ${array[0]: -7:0}
+
+$ echo ${array[0]: -7:2}
+bc
+$ echo ${array[0]: -7:-2}
+bcdef
+@end verbatim
+
If @var{parameter} is @samp{@@}, the result is @var{length} positional
parameters beginning at @var{offset}.
+A negative @var{offset} is taken relative to one greater than the greatest
+positional parameter, so an offset of -1 evaluates to the last positional
+parameter.
+It is an expansion error if @var{length} evaluates to a number less than zero.
+
+The following examples illustrate substring expansion using positional
+parameters:
+
+@verbatim
+$ set -- 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${@:7}
+7 8 9 0 a b c d e f g h
+$ echo ${@:7:0}
+
+$ echo ${@:7:2}
+7 8
+$ echo ${@:7:-2}
+bash: -2: substring expression < 0
+$ echo ${@: -7:2}
+b c
+$ echo ${@:0}
+./bash 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${@:0:2}
+./bash 1
+$ echo ${@: -7:0}
+
+@end verbatim
+
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.
+It is an expansion error if @var{length} evaluates to a number less than zero.
+
+These examples show how you can use substring expansion with indexed
+arrays:
+
+@verbatim
+$ array=(0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h)
+$ echo ${array[@]:7}
+7 8 9 0 a b c d e f g h
+$ echo ${array[@]:7:2}
+7 8
+$ echo ${array[@]: -7:2}
+b c
+$ echo ${array[@]: -7:-2}
+bash: -2: substring expression < 0
+$ echo ${array[@]:0}
+0 1 2 3 4 5 6 7 8 9 0 a b c d e f g h
+$ echo ${array[@]:0:2}
+0 1
+$ echo ${array[@]: -7:0}
+
+@end verbatim
+
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 by default.
If @var{offset} is 0, and the positional parameters are used, @code{$@@} is
@@ -1818,6 +2091,11 @@ If @var{parameter} is @samp{*} or @samp{@@}, the value substituted
is the number of positional parameters.
If @var{parameter} is an array name subscripted by @samp{*} or @samp{@@},
the value substituted is the number of elements in the array.
+If @var{parameter}
+is an indexed array name subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+@var{parameter}, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
@item $@{@var{parameter}#@var{word}@}
@itemx $@{@var{parameter}##@var{word}@}
@@ -1881,6 +2159,9 @@ array in turn, and the expansion is the resultant list.
This expansion modifies the case of alphabetic characters in @var{parameter}.
The @var{pattern} is expanded to produce a pattern just as in
filename expansion.
+Each character in the expanded value of @var{parameter} is tested against
+@var{pattern}, and, if it matches the pattern, its case is converted.
+The pattern should not attempt to match more than one character.
The @samp{^} operator converts lowercase letters matching @var{pattern}
to uppercase; the @samp{,} operator converts matching uppercase letters
to lowercase.
@@ -1896,7 +2177,6 @@ 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
@@ -1952,8 +2232,9 @@ $(( @var{expression} ))
The expression is treated as if it were within double quotes, but
a double quote inside the parentheses is not treated specially.
-All tokens in the expression undergo parameter expansion, command
-substitution, and quote removal.
+All tokens in the expression undergo parameter and variable expansion,
+command substitution, and quote removal.
+The result is treated as the arithmetic expression to be evaluated.
Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
@@ -2001,7 +2282,8 @@ 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.
+the results of the other expansions into words using these characters
+as field terminators.
If @env{IFS} is unset, or its value is exactly @code{<space><tab><newline>},
the default, then sequences of
@code{ <space>}, @code{<tab>}, and @code{<newline>}
@@ -2044,7 +2326,8 @@ After word splitting, unless the @option{-f} option has been set
If one of these characters appears, then the word is
regarded as a @var{pattern},
and replaced with an alphabetically sorted list of
-file names matching the pattern. If no matching file names are found,
+filenames matching the pattern (@pxref{Pattern Matching}).
+If no matching filenames are found,
and the shell option @code{nullglob} is disabled, the word is left
unchanged.
If the @code{nullglob} option is set, and no matches are found, the word
@@ -2057,7 +2340,7 @@ without regard to the case of alphabetic characters.
When a pattern is used for filename expansion, the character @samp{.}
at the start of a filename or immediately following a slash
must be matched explicitly, unless the shell option @code{dotglob} is set.
-When matching a file name, the slash character must always be
+When matching a filename, the slash character must always be
matched explicitly.
In other cases, the @samp{.} character is not treated specially.
@@ -2110,7 +2393,7 @@ Matches any single character.
@item [@dots{}]
Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a @var{range expression};
-any character that sorts between those two characters, inclusive,
+any character that falls between those two characters, inclusive,
using the current locale's collating sequence and character set,
is matched. If the first character following the
@samp{[} is a @samp{!} or a @samp{^}
@@ -2119,8 +2402,8 @@ may be matched by including it as the first or last character
in the set. A @samp{]} may be matched by including it as the first
character in the set.
The sorting order of characters in range expressions is determined by
-the current locale and the value of the @env{LC_COLLATE} shell variable,
-if set.
+the current locale and the values of the
+@env{LC_COLLATE} and @env{LC_ALL} shell variables, if set.
For example, in the default C locale, @samp{[a-dx-z]} is equivalent to
@samp{[abcdxyz]}. Many locales sort characters in dictionary order, and in
@@ -2128,7 +2411,8 @@ these locales @samp{[a-dx-z]} is typically not equivalent to @samp{[abcdxyz]};
it might be equivalent to @samp{[aBbCcDdxXyYz]}, for example. To obtain
the traditional interpretation of ranges in bracket expressions, you can
force the use of the C locale by setting the @env{LC_COLLATE} or
-@env{LC_ALL} environment variable to the value @samp{C}.
+@env{LC_ALL} environment variable to the value @samp{C}, or enable the
+@code{globasciiranges} shell option.
Within @samp{[} and @samp{]}, @var{character classes} can be specified
using the syntax
@@ -2190,7 +2474,11 @@ result from one of the above expansions are removed.
Before a command is executed, its input and output
may be @var{redirected}
using a special notation interpreted by the shell.
-Redirection may also be used to open and close files for the
+Redirection allows commands' file handles to be
+duplicated, opened, closed,
+made to refer to different files,
+and can change the files the command reads from and writes to.
+Redirection may also be used to modify file handles in the
current shell execution environment. The following redirection
operators may precede or appear anywhere within a
simple command or may follow a command.
@@ -2252,14 +2540,13 @@ File descriptor 2 is duplicated.
@item /dev/tcp/@var{host}/@var{port}
If @var{host} is a valid hostname or Internet address, and @var{port}
-is an integer port number or service name, Bash attempts to open a TCP
-connection to the corresponding socket.
+is an integer port number or service name, Bash attempts to open
+the corresponding TCP socket.
@item /dev/udp/@var{host}/@var{port}
If @var{host} is a valid hostname or Internet address, and @var{port}
-is an integer port number or service name, Bash attempts to open a UDP
-connection to the corresponding socket.
-
+is an integer port number or service name, Bash attempts to open
+the corresponding UDP socket.
@end table
A failure to open or create a file causes the redirection to fail.
@@ -2337,6 +2624,9 @@ This is semantically equivalent to
@example
>@var{word} 2>&1
@end example
+When using the second form, @var{word} may not expand to a number or
+@samp{-}. If it does, other redirection operators apply
+(see Duplicating File Descriptors below) for compatibility reasons.
@subsection Appending Standard Output and Standard Error
This construct allows both the
@@ -2354,6 +2644,7 @@ This is semantically equivalent to
@example
>>@var{word} 2>&1
@end example
+(see Duplicating File Descriptors below).
@subsection Here Documents
This type of redirection instructs the shell to read input from the
@@ -2369,15 +2660,15 @@ The format of here-documents is:
@var{delimiter}
@end example
-No parameter expansion, command substitution, arithmetic expansion,
-or filename expansion is performed on
+No parameter and variable expansion, command substitution,
+arithmetic expansion, or filename expansion is performed on
@var{word}. If any characters in @var{word} are quoted, the
@var{delimiter} is the result of quote removal on @var{word},
and the lines in the here-document are not expanded.
If @var{word} is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion. In the latter
-case, the character sequence @code{\newline} is ignored, and @samp{\}
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence @code{\newline} is ignored, and @samp{\}
must be used to quote the characters
@samp{\}, @samp{$}, and @samp{`}.
@@ -2393,8 +2684,12 @@ A variant of here documents, the format is:
<<< @var{word}
@end example
-The @var{word} is expanded and supplied to the command on its standard
-input.
+The @var{word} undergoes
+brace expansion, tilde expansion, parameter and variable expansion,
+command substitution, arithmetic expansion, and quote removal.
+Pathname expansion and word splitting are not performed.
+The result is supplied as a single string to the command on its
+standard input.
@subsection Duplicating File Descriptors
The redirection operator
@@ -2409,8 +2704,8 @@ is made to be a copy of that file descriptor.
If the digits in @var{word} do not specify a file descriptor open for
input, a redirection error occurs.
If @var{word}
-evaluates to @samp{-}, file descriptor @var{n} is closed. If
-@var{n} is not specified, the standard input (file descriptor 0) is used.
+evaluates to @samp{-}, file descriptor @var{n} is closed.
+If @var{n} is not specified, the standard input (file descriptor 0) is used.
The operator
@example
@@ -2421,8 +2716,10 @@ is used similarly to duplicate output file descriptors. If
@var{n} is not specified, the standard output (file descriptor 1) is used.
If the digits in @var{word} do not specify a file descriptor open for
output, a redirection error occurs.
+If @var{word}
+evaluates to @samp{-}, file descriptor @var{n} is closed.
As a special case, if @var{n} is omitted, and @var{word} does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or @samp{-}, the standard output and standard
error are redirected as described previously.
@subsection Moving File Descriptors
@@ -2703,7 +3000,7 @@ parameter assignments are placed in the environment for a command,
not just those that precede the command name.
When Bash invokes an external command, the variable @samp{$_}
-is set to the full path name of the command and passed to that
+is set to the full pathname of the command and passed to that
command in its environment.
@node Exit Status
@@ -2714,7 +3011,7 @@ 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
+compound commands are also limited to this range. Under certain
circumstances, the shell will use special values to indicate specific
failure modes.
@@ -2907,6 +3204,7 @@ These commands are implemented as specified by the @sc{posix} standard.
@example
: [@var{arguments}]
@end example
+
Do nothing beyond expanding @var{arguments} and performing redirections.
The return status is zero.
@@ -2915,6 +3213,7 @@ The return status is zero.
@example
. @var{filename} [@var{arguments}]
@end example
+
Read and execute commands from the @var{filename} argument in the
current shell context. If @var{filename} does not contain a slash,
the @env{PATH} variable is used to find @var{filename}.
@@ -2933,6 +3232,7 @@ This builtin is equivalent to @code{source}.
@example
break [@var{n}]
@end example
+
Exit from a @code{for}, @code{while}, @code{until}, or @code{select} loop.
If @var{n} is supplied, the @var{n}th enclosing loop is exited.
@var{n} must be greater than or equal to 1.
@@ -2941,21 +3241,42 @@ The return status is zero unless @var{n} is not greater than or equal to 1.
@item cd
@btindex cd
@example
-cd [-L|[-P [-e]]] [@var{directory}]
+cd [-L|[-P [-e]] [-@@] [@var{directory}]
@end example
+
Change the current working directory to @var{directory}.
-If @var{directory} is not given, the value of the @env{HOME} shell
-variable is used.
-If the shell variable @env{CDPATH} exists, it is used as a search path.
+If @var{directory} is not supplied, the value of the @env{HOME}
+shell variable is used.
+Any additional arguments following @var{directory} are ignored.
+If the shell variable
+@env{CDPATH} exists, it is used as a search path:
+each directory name in @env{CDPATH} is searched for
+@var{directory}, with alternative directory names in @env{CDPATH}
+separated by a colon (@samp{:}).
If @var{directory} begins with a slash, @env{CDPATH} is not used.
-The @option{-P} option means to not follow symbolic links; symbolic
-links are followed by default or with the @option{-L} option.
+The @option{-P} option means to not follow symbolic links: symbolic links
+are resolved while @code{cd} is traversing @var{directory} and before
+processing an instance of @samp{..} in @var{directory}.
+
+By default, or when the @option{-L} option is supplied, symbolic links
+in @var{directory} are resolved after @code{cd} processes an instance
+of @samp{..} in @var{directory}.
+
+If @samp{..} appears in @var{directory}, it is processed by removing the
+immediately preceding pathname component, back to a slash or the beginning
+of @var{directory}.
+
If the @option{-e} option is supplied with @option{-P}
and the current working directory cannot be successfully determined
after a successful directory change, @code{cd} will return an unsuccessful
status.
-If @var{directory} is @samp{-}, it is equivalent to @env{$OLDPWD}.
+
+On systems that support it, the @option{-@@} option presents the extended
+attributes associated with a file as a directory.
+
+If @var{directory} is @samp{-}, it is converted to @env{$OLDPWD}
+before the directory change is attempted.
If a non-empty directory name from @env{CDPATH} is used, or if
@samp{-} is the first argument, and the directory change is
@@ -2970,6 +3291,7 @@ non-zero otherwise.
@example
continue [@var{n}]
@end example
+
Resume the next iteration of an enclosing @code{for}, @code{while},
@code{until}, or @code{select} loop.
If @var{n} is supplied, the execution of the @var{n}th enclosing loop
@@ -2982,6 +3304,7 @@ The return status is zero unless @var{n} is not greater than or equal to 1.
@example
eval [@var{arguments}]
@end example
+
The arguments are concatenated together into a single command, which is
then read and executed, and its exit status returned as the exit status
of @code{eval}.
@@ -2993,6 +3316,7 @@ zero.
@example
exec [-cl] [-a @var{name}] [@var{command} [@var{arguments}]]
@end example
+
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
@@ -3002,6 +3326,11 @@ The @option{-c} option causes @var{command} to be executed with an empty
environment.
If @option{-a} is supplied, the shell passes @var{name} as the zeroth
argument to @var{command}.
+If @var{command}
+cannot be executed for some reason, a non-interactive shell exits,
+unless the @code{execfail} shell option
+is enabled. In that case, it returns failure.
+An interactive shell returns failure if the file cannot be executed.
If no @var{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.
@@ -3011,6 +3340,7 @@ return status is zero; otherwise the return status is non-zero.
@example
exit [@var{n}]
@end example
+
Exit the shell, returning a status of @var{n} to the shell's parent.
If @var{n} is omitted, the exit status is that of the last command executed.
Any trap on @code{EXIT} is executed before the shell terminates.
@@ -3020,12 +3350,13 @@ Any trap on @code{EXIT} is executed before the shell terminates.
@example
export [-fn] [-p] [@var{name}[=@var{value}]]
@end example
+
Mark each @var{name} to be passed to child processes
in the environment. If the @option{-f} option is supplied, the @var{name}s
refer to shell functions; otherwise the names refer to shell variables.
The @option{-n} option means to no longer mark each @var{name} for export.
If no @var{names} are supplied, or if the @option{-p} option is given, a
-list of exported names is displayed.
+list of names of all exported variables is displayed.
The @option{-p} option displays output in a form that may be reused as input.
If a variable name is followed by =@var{value}, the value of
the variable is set to @var{value}.
@@ -3039,10 +3370,11 @@ with a name that is not a shell function.
@example
getopts @var{optstring} @var{name} [@var{args}]
@end example
+
@code{getopts} is used by shell scripts to parse positional parameters.
@var{optstring} contains the option characters to be recognized; if a
character is followed by a colon, the option is expected to have an
-argument, which should be separated from it by white space.
+argument, which should be separated from it by whitespace.
The colon (@samp{:}) and question mark (@samp{?}) may not be
used as option characters.
Each time it is invoked, @code{getopts}
@@ -3069,7 +3401,7 @@ given in @var{args}, @code{getopts} parses those instead.
@code{getopts} can report errors in two ways. If the first character of
@var{optstring} is a colon, @var{silent}
-error reporting is used. In normal operation diagnostic messages
+error reporting is used. In normal operation, diagnostic messages
are printed when invalid options or missing option arguments are
encountered.
If the variable @env{OPTERR}
@@ -3093,6 +3425,7 @@ If @code{getopts} is silent, then a colon (@samp{:}) is placed in
@example
hash [-r] [-p @var{filename}] [-dt] [@var{name}]
@end example
+
Each time @code{hash} is invoked, it remembers the full pathnames of the
commands specified as @var{name} arguments,
so they need not be searched for on subsequent invocations.
@@ -3120,6 +3453,7 @@ option is supplied.
@example
pwd [-LP]
@end example
+
Print the absolute pathname of the current working directory.
If the @option{-P} option is supplied, the pathname printed will not
contain symbolic links.
@@ -3134,6 +3468,7 @@ is supplied.
@example
readonly [-aAf] [-p] [@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
@@ -3159,16 +3494,22 @@ or the @option{-f} option is supplied with a name that is not a shell function.
@example
return [@var{n}]
@end example
-Cause a shell function to exit with the return value @var{n}.
+
+Cause a shell function to stop executing and return the value @var{n}
+to its caller.
If @var{n} is not supplied, the return value is the exit status of the
last command executed in the function.
-This may also be used to terminate execution of a script being executed
-with the @code{.} (or @code{source}) builtin, returning either @var{n} or
+@code{return} may also be used to terminate execution of a script
+being executed with the @code{.} (@code{source}) builtin,
+returning either @var{n} or
the exit status of the last command executed within the script as the exit
status of the script.
+If @var{n} is supplied, the return value is its least significant
+8 bits.
Any command associated with the @code{RETURN} trap is executed
before execution resumes after the function or script.
-The return status is non-zero if @code{return} is used outside a function
+The return status is non-zero if @code{return} is supplied a non-numeric
+argument or is used outside a function
and not during the execution of a script by @code{.} or @code{source}.
@item shift
@@ -3176,6 +3517,7 @@ and not during the execution of a script by @code{.} or @code{source}.
@example
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}.
@@ -3192,7 +3534,13 @@ less than zero, non-zero otherwise.
@itemx [
@btindex test
@btindex [
-Evaluate a conditional expression @var{expr}.
+@example
+test @var{expr}
+@end example
+
+Evaluate a conditional express
+ion @var{expr} and return a status of 0
+(true) or 1 (false).
Each operator and operand must be a separate argument.
Expressions are composed of the primaries described below in
@ref{Bash Conditional Expressions}.
@@ -3275,6 +3623,7 @@ operators sort lexicographically using ASCII ordering.
@example
times
@end example
+
Print out the user and system times used by the shell and its children.
The return status is zero.
@@ -3283,6 +3632,7 @@ The return status is zero.
@example
trap [-lp] [@var{arg}] [@var{sigspec} @dots{}]
@end example
+
The commands in @var{arg} are to be read and executed when the
shell receives signal @var{sigspec}. If @var{arg} is absent (and
there is a single @var{sigspec}) or
@@ -3315,15 +3665,21 @@ each time a shell function or a script executed with the @code{.} or
@code{source} builtins finishes executing.
If a @var{sigspec} is @code{ERR}, the command @var{arg}
-is executed whenever a simple command has a non-zero exit status,
+is executed whenever
+a pipeline (which may consist of a single simple
+command), a list, or a compound command returns a
+non-zero exit status,
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 following the @code{if} or @code{elif} reserved words,
-part of a command executed in a @code{&&} or @code{||} list,
+part of a command executed in a @code{&&} or @code{||} list
+except the command following the final @code{&&} or @code{||},
+any command in a pipeline but the last,
or if the command's return
status is being inverted using @code{!}.
-These are the same conditions obeyed by the @code{errexit} option.
+These are the same conditions obeyed by the @code{errexit} (@option{-e})
+option.
Signals ignored upon entry to the shell cannot be trapped or reset.
Trapped signals that are not being ignored are reset to their original
@@ -3337,6 +3693,7 @@ valid signal.
@example
umask [-p] [-S] [@var{mode}]
@end example
+
Set the shell process's file creation mask to @var{mode}. If
@var{mode} begins with a digit, it is interpreted as an octal number;
if not, it is interpreted as a symbolic mode mask similar
@@ -3356,13 +3713,21 @@ results in permissions of @code{755}.
@item unset
@btindex unset
@example
-unset [-fv] [@var{name}]
+unset [-fnv] [@var{name}]
@end example
-Each variable or function @var{name} is removed.
-If no options are supplied, or the @option{-v} option is given, each
-@var{name} refers to a shell variable.
+
+Remove each variable or function @var{name}.
+If the @option{-v} option is given, each
+@var{name} refers to a shell variable and that variable is remvoved.
If the @option{-f} option is given, the @var{name}s refer to shell
functions, and the function definition is removed.
+If the @option{-n} option is supplied, and @var{name} is a variable with
+the @var{nameref} attribute, @var{name} will be unset rather than the
+variable it references.
+@option{-n} has no effect if the @option{-f} option is supplied.
+If no options are supplied, each @var{name} refers to a variable; if
+there is no variable by that name, any function with that name is
+unset.
Readonly variables and functions may not be unset.
The return status is zero unless a @var{name} is readonly.
@end table
@@ -3379,7 +3744,7 @@ Some of these commands are specified in the @sc{posix} standard.
@item alias
@btindex alias
@example
-alias [@code{-p}] [@var{name}[=@var{value}] @dots{}]
+alias [-p] [@var{name}[=@var{value}] @dots{}]
@end example
Without arguments or with the @option{-p} option, @code{alias} prints
@@ -3393,7 +3758,7 @@ Aliases are described in @ref{Aliases}.
@item bind
@btindex bind
@example
-bind [-m @var{keymap}] [-lpsvPSV]
+bind [-m @var{keymap}] [-lpsvPSVX]
bind [-m @var{keymap}] [-q @var{function}] [-u @var{function}] [-r @var{keyseq}]
bind [-m @var{keymap}] -f @var{filename}
bind [-m @var{keymap}] -x @var{keyseq:shell-command}
@@ -3475,6 +3840,10 @@ 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.
+
+@item -X
+List all key sequences bound to shell commands and the associated commands
+in a format that can be reused as input.
@end table
@noindent
@@ -3486,6 +3855,7 @@ error occurs.
@example
builtin [@var{shell-builtin} [@var{args}]]
@end example
+
Run a shell builtin, passing it @var{args}, and return its exit status.
This is useful when defining a shell function with the same
name as a shell builtin, retaining the functionality of the builtin within
@@ -3498,6 +3868,7 @@ builtin command.
@example
caller [@var{expr}]
@end example
+
Returns the context of any active subroutine call (a shell function or
a script executed with the @code{.} or @code{source} builtins).
@@ -3518,6 +3889,7 @@ call stack.
@example
command [-pVv] @var{command} [@var{arguments} @dots{}]
@end example
+
Runs @var{command} with @var{arguments} ignoring any shell function
named @var{command}.
Only shell builtin commands or commands found by searching the
@@ -3541,7 +3913,7 @@ zero if @var{command} is found, and non-zero if not.
@item declare
@btindex declare
@example
-declare [-aAfFilrtux] [-p] [@var{name}[=@var{value}] @dots{}]
+declare [-aAfFgilnrtux] [-p] [@var{name}[=@var{value}] @dots{}]
@end example
Declare variables and give them attributes. If no @var{name}s
@@ -3549,8 +3921,8 @@ 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 with @var{name} arguments, additional options
-are ignored.
+When @option{-p} is used with @var{name} arguments, additional options,
+other than @option{-f} and @option{-F}, are ignored.
When @option{-p} is supplied without @var{name} arguments, @code{declare}
will display the attributes and values of all variables having the
@@ -3593,6 +3965,15 @@ When the variable is assigned a value, all upper-case characters are
converted to lower-case.
The upper-case attribute is disabled.
+@item -n
+Give each @var{name} the @var{nameref} attribute, making
+it a name reference to another variable.
+That other variable is defined by the value of @var{name}.
+All references and assignments to @var{name}, except for changing the
+@option{-n} attribute itself, are performed on the variable referenced by
+@var{name}'s value.
+The @option{-n} attribute cannot be applied to array variables.
+
@item -r
Make @var{name}s readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
@@ -3618,10 +3999,14 @@ 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, unless the @samp{-g} option is used.
+as with the @code{local} command, unless the @option{-g} option is used.
If a variable name is followed by =@var{value}, the value of the variable
is set to @var{value}.
+When using @option{-a} or @option{-A} and the compound assignment syntax to
+create array variables, additional attributes do not take effect until
+subsequent assignments.
+
The return status is zero unless an invalid option is encountered,
an attempt is made to define a function using @samp{-f foo=bar},
an attempt is made to assign a value to a readonly variable,
@@ -3637,9 +4022,10 @@ or an attempt is made to display a non-existent function with @option{-f}.
@example
echo [-neE] [@var{arg} @dots{}]
@end example
+
Output the @var{arg}s, separated by spaces, terminated with a
newline.
-The return status is always 0.
+The return status is 0 unless a write error occurs.
If @option{-n} is specified, the trailing newline is suppressed.
If the @option{-e} option is given, interpretation of the following
backslash-escaped characters is enabled.
@@ -3692,6 +4078,7 @@ the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value
@example
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
as a shell builtin to be executed without specifying a full pathname,
@@ -3724,6 +4111,7 @@ or there is an error loading a new builtin from a shared object.
@example
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
@@ -3745,8 +4133,9 @@ The return status is zero unless no command matches @var{pattern}.
@item let
@btindex let
@example
-let @var{expression} [@var{expression}]
+let @var{expression} [@var{expression} @dots{}]
@end example
+
The @code{let} builtin allows arithmetic to be performed on shell
variables. Each @var{expression} is evaluated according to the
rules given below in @ref{Shell Arithmetic}. If the
@@ -3758,6 +4147,7 @@ otherwise 0 is returned.
@example
local [@var{option}] @var{name}[=@var{value}] @dots{}
@end example
+
For each argument, a local variable named @var{name} is created,
and assigned @var{value}.
The @var{option} can be any of the options accepted by @code{declare}.
@@ -3772,20 +4162,23 @@ readonly variable.
@example
logout [@var{n}]
@end example
+
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}]
+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 the indexed 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
@@ -3826,6 +4219,7 @@ is not an indexed array.
@example
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}.
The @option{-v} option causes the output to be assigned to the variable
@@ -3841,20 +4235,23 @@ interprets the following extensions:
@table @code
@item %b
-causes @code{printf} to expand backslash escape sequences in the
+Causes @code{printf} to expand backslash escape sequences in the
corresponding @var{argument},
-(except that @samp{\c} terminates output, backslashes in
+except that @samp{\c} terminates output, backslashes in
@samp{\'}, @samp{\"}, and @samp{\?} are not removed, and octal escapes
-beginning with @samp{\0} may contain up to four digits).
+beginning with @samp{\0} may contain up to four digits.
@item %q
-causes @code{printf} to output the
+Causes @code{printf} to output the
corresponding @var{argument} in a format that can be reused as shell input.
@item %(@var{datefmt})T
-causes @code{printf} to output the date-time string resulting from using
-@var{datefmt} as a format string for @code{strftime}(3). The corresponding
-@var{argument} is an integer representing the number of seconds since the
-epoch. Two special argument values may be used: -1 represents the current
+Causes @code{printf} to output the date-time string resulting from using
+@var{datefmt} as a format string for @code{strftime}(3).
+The corresponding @var{argument} is an integer representing the number of
+seconds since the epoch.
+Two special argument values may be used: -1 represents the current
time, and -2 represents the time the shell was invoked.
+If no argument is specified, conversion behaves as if -1 had been given.
+This is an exception to the usual @code{printf} behavior.
@end table
@noindent
@@ -3872,8 +4269,10 @@ non-zero on failure.
@item read
@btindex read
@example
-read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-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}]
+ [-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
is assigned to the first @var{name}, the second word to the second @var{name},
@@ -3882,14 +4281,16 @@ to the last @var{name}.
If there are fewer words read from the input stream than names,
the remaining names are assigned empty values.
The characters in the value of the @env{IFS} variable
-are used to split the line into words.
+are used to split the line into words using the same rules the shell
+uses for expansion (described above in @ref{Word Splitting}).
The backslash character @samp{\} may be used to remove any special
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 (in which case the return code is greater than 128), 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),
+a variable assignment error (such as assigning to a readonly variable) occurs,
+or an invalid file descriptor is supplied as the argument to @option{-u}.
Options, if supplied, have the following meanings:
@@ -3943,27 +4344,31 @@ 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.
+input (or a specified number of characters)
+is not read within @var{timeout} seconds.
@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.
+If @code{read} times out, @code{read} saves any partial input read into
+the specified variable @var{name}.
+If @var{timeout} is 0, @code{read} returns immediately, without trying to
+read and data. The exit status is 0 if input is available on
+the specified file descriptor, non-zero 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 readarray
@btindex readarray
@example
-readarray [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [
--C @var{callback}] [-c @var{quantum}] [@var{array}]
+readarray [-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 the indexed array variable @var{array},
or from file descriptor @var{fd}
if the @option{-u} option is supplied.
@@ -3975,6 +4380,7 @@ A synonym for @code{mapfile}.
@example
source @var{filename}
@end example
+
A synonym for @code{.} (@pxref{Bourne Shell Builtins}).
@item type
@@ -3982,6 +4388,7 @@ A synonym for @code{.} (@pxref{Bourne Shell Builtins}).
@example
type [-afptP] [@var{name} @dots{}]
@end example
+
For each @var{name}, indicate how it would be interpreted if used as a
command name.
@@ -4001,7 +4408,7 @@ 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}.
+which is 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}.
@@ -4017,20 +4424,23 @@ if any are not found.
@item typeset
@btindex typeset
@example
-typeset [-afFrxi] [-p] [@var{name}[=@var{value}] @dots{}]
+typeset [-afFgrxilnrtux] [-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.
+shell.
+It is a synonym for the @code{declare} builtin command.
@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.
@@ -4096,11 +4506,11 @@ 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
+If @var{limit} is given, and the @option{-a} option is not used,
+@var{limit} 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;
@@ -4110,9 +4520,9 @@ is printed, unless the @option{-H} option is supplied.
When setting new limits, if neither @option{-H} nor @option{-S} is supplied,
both the hard and soft limits are set.
If no option is given, then @option{-f} is assumed. Values are in 1024-byte
-increments, except for @option{-t}, which is in seconds, @option{-p},
-which is in units of 512-byte blocks, and @option{-n} and @option{-u}, which
-are unscaled values.
+increments, except for @option{-t}, which is in seconds; @option{-p},
+which is in units of 512-byte blocks; and @option{-T}, @option{-b},
+@option{-n} and @option{-u}, which are unscaled values.
The return status is zero unless an invalid option or argument is supplied,
or an error occurs while setting a new limit.
@@ -4126,7 +4536,6 @@ unalias [-a] [@var{name} @dots{} ]
Remove each @var{name} from the list of aliases. If @option{-a} is
supplied, all aliases are removed.
Aliases are described in @ref{Aliases}.
-
@end table
@node Modifying Shell Behavior
@@ -4173,11 +4582,11 @@ Cause the status of terminated background jobs to be reported
immediately, rather than before printing the next primary prompt.
@item -e
-Exit immediately if a pipeline (@pxref{Pipelines}), which may consist
-of a single simple command (@pxref{Simple Commands}),
-a subshell command enclosed in parentheses (@pxref{Command Grouping}),
-or one of the commands executed as part of a command list enclosed
-by braces (@pxref{Command Grouping})
+Exit immediately if
+a pipeline (@pxref{Pipelines}), which may consist of a single simple command
+(@pxref{Simple Commands}),
+a list (@pxref{Lists}),
+or a compound command (@pxref{Compound Commands})
returns a non-zero status.
The shell does not exit if the command that fails is part of the
command list immediately following a @code{while} or @code{until} keyword,
@@ -4186,12 +4595,25 @@ part of any command executed in a @code{&&} or @code{||} list except
the command following the final @code{&&} or @code{||},
any command in a pipeline but the last,
or if the command's return status is being inverted with @code{!}.
+If a compound command other than a subshell
+returns a non-zero status because a command failed
+while @option{-e} was being ignored, the shell does not exit.
A trap on @code{ERR}, if set, is executed before the shell exits.
This option applies to the shell environment and each subshell environment
separately (@pxref{Command Execution Environment}), and may cause
subshells to exit before executing all the commands in the subshell.
+If a compound command or shell function executes in a context where
+@option{-e} is being ignored,
+none of the commands executed within the compound command or function body
+will be affected by the @option{-e} setting, even if @option{-e} is set
+and a command returns a failure status.
+If a compound command or shell function sets @option{-e} while executing in
+a context where @option{-e} is ignored, that setting will not have any
+effect until the compound command or the command containing the function
+call completes.
+
@item -f
Disable filename expansion (globbing).
@@ -4206,6 +4628,9 @@ the command name.
@item -m
Job control is enabled (@pxref{Job Control}).
+All processes run in a separate process group.
+When a background job completes, the shell prints a line
+containing its exit status.
@item -n
Read commands but do not execute them; this may be used to check a
@@ -4313,9 +4738,9 @@ processed, shell functions are not inherited from the environment,
and the @env{SHELLOPTS}, @env{BASHOPTS}, @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
+real user (group) id, and the @option{-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
+If the @option{-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.
@@ -4358,7 +4783,7 @@ 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
+If set, do not resolve 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
@@ -4424,7 +4849,11 @@ This builtin allows you to change additional shell optional behavior.
@example
shopt [-pqsu] [-o] [@var{optname} @dots{}]
@end example
-Toggle the values of variables controlling optional shell behavior.
+
+Toggle the values of settings controlling optional shell behavior.
+The settings can be either those listed below, or, if the
+@option{-o} option is used, those available with the @option{-o}
+option to the @code{set} builtin command (@pxref{The Set Builtin}).
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
@@ -4452,7 +4881,7 @@ Restricts the values of
@end table
If either @option{-s} or @option{-u}
-is used with no @var{optname} arguments, the display is limited to
+is used with no @var{optname} arguments, @code{shopt} shows only
those options which are set or unset, respectively.
Unless otherwise noted, the @code{shopt} options are disabled (off)
@@ -4499,7 +4928,7 @@ 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
+ and, if necessary, updates the values of
@env{LINES} and @env{COLUMNS}.
@item cmdhist
@@ -4511,30 +4940,58 @@ 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 @samp{=~} operator.
+arguments to the conditional command's @samp{=~} operator
+and with respect to locale-specific
+string comparison when using the @code{[[}
+conditional command's @samp{<} and @samp{>} operators.
+Bash versions prior to bash-4.1 use ASCII collation and strcmp(3);
+bash-4.1 and later use the current locale's collation sequence and strcoll(3).
@item compat32
If set, Bash
changes its behavior to that of version 3.2 with respect to locale-specific
-string comparison when using the @samp{[[}
-conditional command's @samp{<} and @samp{>} operators.
-Bash versions prior to bash-4.0 use ASCII collation and strcmp(3);
-bash-4.1 and later use the current locale's collation sequence and strcoll(3).
+string comparison when using the @code{[[}
+conditional command's @samp{<} and @samp{>} operators (see previous item).
@item compat40
If set, Bash
changes its behavior to that of version 4.0 with respect to locale-specific
-string comparison when using the @samp{[[}
-conditional command's @samp{<} and @samp{>} operators (see previous item)
+string comparison when using the @code{[[}
+conditional command's @samp{<} and @samp{>} operators (see description
+of @code{compat31})
and the effect of interrupting a command list.
+Bash versions 4.0 and later interrupt the list as if the shell received the
+interrupt; previous versions continue with the next command in the list.
@item compat41
-If set, Bash, when in posix mode, treats a single quote in a double-quoted
+If set, Bash, when in @sc{posix} mode, treats a single quote in a double-quoted
parameter expansion as a special character. The single quotes must match
(an even number) and the characters between the single quotes are considered
quoted. This is the behavior of @sc{posix} mode through version 4.1.
The default Bash behavior remains as in previous versions.
+@item compat42
+If set, Bash
+does not process the replacement string in the pattern substitution word
+expansion using quote removal.
+
+@item complete_fullquote
+If set, Bash
+quotes all shell metacharacters in filenames and directory names when
+performing completion.
+If not set, Bash
+removes metacharacters such as the dollar sign from the set of
+characters that will be quoted in completed filenames
+when these metacharacters appear in shell variable references in words to be
+completed.
+This means that dollar signs in variable names that expand to directories
+will not be quoted;
+however, any dollar signs appearing in filenames will not be quoted, either.
+This is active only when bash is using backslashes to quote completed
+filenames.
+This variable is set by default, which is the default Bash behavior in
+versions through 4.2.
+
@item direxpand
If set, Bash
replaces directory names with the results of word expansion when performing
@@ -4616,6 +5073,15 @@ the ignored words are the only possible completions.
@xref{Bash Variables}, for a description of @env{FIGNORE}.
This option is enabled by default.
+@item globasciiranges
+If set, range expressions used in pattern matching bracket expressions
+(@pxref{Pattern Matching})
+behave as if in the traditional C locale when performing
+comparisons. That is, the current locale's collating sequence
+is not taken into account, so
+@samp{b} will not collate between @samp{A} and @samp{B},
+and upper-case and lower-case ASCII characters will collate together.
+
@item globstar
If set, the pattern @samp{**} used in a filename expansion context will
match all files and zero or more directories and subdirectories.
@@ -4704,7 +5170,7 @@ This option is enabled by default.
If set, prompt strings undergo
parameter expansion, command substitution, arithmetic
expansion, and quote removal after being expanded
-as described below (@pxref{Printing a Prompt}).
+as described below (@pxref{Controlling the Prompt}).
This option is enabled by default.
@item restricted_shell
@@ -4735,7 +5201,6 @@ 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.
-
@end table
@node Special Builtins
@@ -4813,7 +5278,7 @@ the specified file or Maildir-format directory.
A colon-separated list of filenames which the shell periodically checks
for new mail.
Each list entry can specify the message that is printed when new mail
-arrives in the mail file by separating the file name from the message with
+arrives in the mail file by separating the filename from the message with
a @samp{?}.
When used in the text of the message, @code{$_} expands to the name of
the current mail file.
@@ -4835,7 +5300,7 @@ or trailing colon.
@item PS1
The primary prompt string. The default value is @samp{\s-\v\$ }.
-@xref{Printing a Prompt}, for the complete list of escape
+@xref{Controlling the Prompt}, for the complete list of escape
sequences that are expanded before @env{PS1} is displayed.
@item PS2
@@ -4915,6 +5380,22 @@ The command currently being executed or about to be executed, unless the
shell is executing a command as the result of a trap,
in which case it is the command executing at the time of the trap.
+@item BASH_COMPAT
+The value is used to set the shell's compatibility level.
+@xref{The Shopt Builtin}, for a description of the various compatibility
+levels and their effects.
+The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42)
+corresponding to the desired compatibility level.
+If @code{BASH_COMPAT} is unset or set to the empty string, the compatibility
+level is set to the default for the current version.
+If @code{BASH_COMPAT} is set to a value that is not one of the valid
+compatibility levels, the shell prints an error message and sets the
+compatibility level to the default for the current version.
+The valid compatibility levels correspond to the compatibility options
+accepted by the @code{shopt} builtin described above (for example,
+@var{compat42} means that 4.2 and 42 are valid values).
+The current version is also a valid value.
+
@item BASH_ENV
If this variable is set when Bash is invoked to execute a shell
script, its value is expanded and used as the name of a startup file
@@ -4950,7 +5431,8 @@ The shell function @code{$@{FUNCNAME[$i]@}} is defined in the file
@code{$@{BASH_SOURCE[$i]@}} and called from @code{$@{BASH_SOURCE[$i+1]@}}
@item BASH_SUBSHELL
-Incremented by one each time a subshell or subshell environment is spawned.
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
@item BASH_VERSINFO
@@ -4977,7 +5459,6 @@ The release status (e.g., @var{beta1}).
@item BASH_VERSINFO[5]
The value of @env{MACHTYPE}.
-
@end table
@item BASH_VERSION
@@ -4997,9 +5478,18 @@ Note that setting @code{BASH_XTRACEFD} to 2 (the standard error file
descriptor) and then unsetting it will result in the standard error
being closed.
+@item CHILD_MAX
+Set the number of exited child status values for the shell to remember.
+Bash will not allow this value to be decreased below a @sc{posix}-mandated
+minimum, and there is a maximum value (currently 8192) that this may
+not exceed.
+The minimum value is system-dependent.
+
@item COLUMNS
Used by the @code{select} command to determine the terminal width
-when printing selection lists. Automatically set upon receipt of a
+when printing selection lists.
+Automatically set if the @code{checkwinsize} option is enabled
+(@pxref{The Shopt Builtin}), or in an interactive shell upon receipt of a
@code{SIGWINCH}.
@item COMP_CWORD
@@ -5058,6 +5548,7 @@ programmable completion facilities (@pxref{Programmable Completion}).
An array variable from which Bash reads the possible completions
generated by a shell function invoked by the programmable completion
facility (@pxref{Programmable Completion}).
+Each array element contains one possible completion.
@item COPROC
An array variable created to hold the file descriptors
@@ -5094,9 +5585,9 @@ builtin command.
@item FIGNORE
A colon-separated list of suffixes to ignore when performing
filename completion.
-A file name whose suffix matches one of the entries in
+A filename whose suffix matches one of the entries in
@env{FIGNORE}
-is excluded from the list of matched file names. A sample
+is excluded from the list of matched filenames. A sample
value is @samp{.o:~}
@item FUNCNAME
@@ -5182,13 +5673,16 @@ The name of the file to which the command history is saved. The
default value is @file{~/.bash_history}.
@item HISTFILESIZE
-The maximum number of lines contained in the history file. When this
-variable is assigned a value, the history file is truncated, if
-necessary, by removing the oldest entries,
-to contain no more than that number of lines.
+The maximum number of lines contained in the history file.
+When this variable is assigned a value, the history file is truncated,
+if necessary, to contain no more than that number of lines
+by removing the oldest entries.
The history file is also truncated to this size after
-writing it when an interactive shell exits.
-The default value is 500.
+writing it when a shell exits.
+If the value is 0, the history file is truncated to zero size.
+Non-numeric values and numeric values less than zero inhibit truncation.
+The shell sets the default value to the value of @env{HISTSIZE}
+after reading any startup files.
@item HISTIGNORE
A colon-separated list of patterns used to decide which command
@@ -5212,7 +5706,10 @@ provides the functionality of @code{ignoreboth}.
@item HISTSIZE
The maximum number of commands to remember on the history list.
-The default value is 500.
+If the value is 0, commands are not saved in the history list.
+Numeric values less than zero result in every command being saved
+on the history list (there is no limit).
+The shell sets the default value to 500 after reading any startup files.
@item HISTTIMEFORMAT
If this variable is set and not null, its value is used as a format string
@@ -5288,7 +5785,9 @@ The line number in the script or shell function currently executing.
@item LINES
Used by the @code{select} command to determine the column length
-for printing selection lists. Automatically set upon receipt of a
+for printing selection lists.
+Automatically set if the @code{checkwinsize} option is enabled
+(@pxref{The Shopt Builtin}), or in an interactive shell upon receipt of a
@code{SIGWINCH}.
@item MACHTYPE
@@ -5324,10 +5823,10 @@ in the most-recently-executed foreground pipeline (which may
contain only a single command).
@item POSIXLY_CORRECT
-If this variable is in the environment when @code{bash} starts, the shell
+If this variable is in the environment when Bash starts, the shell
enters @sc{posix} mode (@pxref{Bash POSIX Mode}) before reading the
startup files, as if the @option{--posix} invocation option had been supplied.
-If it is set while the shell is running, @code{bash} enables @sc{posix} mode,
+If it is set while the shell is running, Bash enables @sc{posix} mode,
as if the command
@example
@code{set -o posix}
@@ -5346,7 +5845,7 @@ 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}).
+@code{\W} prompt string escapes (@pxref{Controlling the Prompt}).
Characters removed are replaced with an ellipsis.
@item PS3
@@ -5460,10 +5959,11 @@ if input does not arrive after @code{TMOUT} seconds when input is coming
from a terminal.
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.
+the number of seconds to wait for a line of input after issuing
+the primary prompt.
+Bash
+terminates after waiting for that number of seconds if a complete
+line of input does not arrive.
@item TMPDIR
If set, Bash uses its value as the name of a directory in which
@@ -5477,7 +5977,7 @@ The numeric real user id of the current user. This variable is readonly.
@node Bash Features
@chapter Bash Features
-This section describes features unique to Bash.
+This chapter describes features unique to Bash.
@menu
* Invoking Bash:: Command line options that you can give
@@ -5490,7 +5990,7 @@ This section describes features unique to Bash.
* Aliases:: Substituting one command for another.
* Arrays:: Array Variables.
* The Directory Stack:: History of visited directories.
-* Printing a Prompt:: Controlling the PS1 string.
+* Controlling the Prompt:: Customizing the various prompt strings.
* The Restricted Shell:: A more controlled mode of shell execution.
* Bash POSIX Mode:: Making Bash behave more closely to what
the POSIX standard specifies.
@@ -5569,16 +6069,16 @@ Equivalent to @option{-v}. Print shell input lines as they're read.
@item --version
Show version information for this instance of
Bash on the standard output and exit successfully.
-
@end table
There are several single-character options that may be supplied at
invocation which are not available with the @code{set} builtin.
@table @code
-@item -c @var{string}
-Read and execute commands from @var{string} after processing the
-options, then exit. Any remaining arguments are assigned to the
+@item -c
+Read and execute commands from the first non-option @var{argument}
+after processing the options, then exit.
+Any remaining arguments are assigned to the
positional parameters, starting with @code{$0}.
@item -i
@@ -5627,7 +6127,6 @@ that may be reused as input.
A @code{--} signals the end of options and disables further option
processing.
Any arguments after the @code{--} are treated as filenames and arguments.
-
@end table
@cindex login shell
@@ -5659,7 +6158,7 @@ in the script. If no commands are executed, the exit status is 0.
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
+Tildes are expanded in filenames as described above under
Tilde Expansion (@pxref{Tilde Expansion}).
Interactive shells are described in @ref{Interactive Shells}.
@@ -5705,7 +6204,7 @@ following command were executed:
@end example
@noindent
but the value of the @env{PATH} variable is not used to search for the
-file name.
+filename.
As noted above, if a non-interactive shell is invoked with the
@option{--login} option, Bash attempts to read and execute commands from the
@@ -5755,18 +6254,18 @@ 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
@option{--rcfile} option may be used to force another file to be read, but
-@code{rshd} does not generally invoke the shell with those options or
-allow them to be specified.
+neither @code{rshd} nor @code{sshd} generally invoke the shell with those
+options or allow them to be specified.
@subsubheading Invoked with unequal effective and real @sc{uid/gid}s
If Bash is started with the effective user (group) id not equal to the
-real user (group) id, and the @code{-p} option is not supplied, no startup
+real user (group) id, and the @option{-p} option is not supplied, no startup
files are read, shell functions are not inherited from the environment,
the @env{SHELLOPTS}, @env{BASHOPTS}, @env{CDPATH}, and @env{GLOBIGNORE}
variables, if they appear in the environment, are ignored, and the effective
user id is set to the real user id.
-If the @code{-p} option is supplied at invocation, the startup behavior is
+If the @option{-p} option is supplied at invocation, the startup behavior is
the same, but the effective user id is not reset.
@node Interactive Shells
@@ -5862,7 +6361,7 @@ Command history (@pxref{Bash History Facilities})
and history expansion (@pxref{History Interaction})
are enabled by default.
Bash will save the command history to the file named by @env{$HISTFILE}
-when an interactive shell exits.
+when a shell with history enabled exits.
@item
Alias expansion (@pxref{Aliases}) is performed by default.
@@ -5942,7 +6441,7 @@ If the @var{file} argument to one of the primaries is one of
@file{/dev/stdin}, @file{/dev/stdout}, or @file{/dev/stderr}, file
descriptor 0, 1, or 2, respectively, is checked.
-When used with @samp{[[}, the @samp{<} and @samp{>} operators sort
+When used with @code{[[}, the @samp{<} and @samp{>} operators sort
lexicographically using the current locale.
The @code{test} command uses ASCII ordering.
@@ -6033,6 +6532,9 @@ option to the @code{set} builtin (@pxref{The Set Builtin}).
@item -v @var{varname}
True if the shell variable @var{varname} is set (has been assigned a value).
+@item -R @var{varname}
+True if the shell variable @var{varname} is set and is a name reference.
+
@item -z @var{string}
True if the length of @var{string} is zero.
@@ -6043,6 +6545,9 @@ True if the length of @var{string} is non-zero.
@item @var{string1} == @var{string2}
@itemx @var{string1} = @var{string2}
True if the strings are equal.
+When used with the @code{[[} command, this performs pattern matching as
+described above (@pxref{Conditional Constructs}).
+
@samp{=} should be used with the @code{test} command for @sc{posix} conformance.
@item @var{string1} != @var{string2}
@@ -6062,7 +6567,6 @@ is equal to, not equal to, less than, less than or equal to,
greater than, or greater than or equal to @var{arg2},
respectively. @var{Arg1} and @var{arg2}
may be positive or negative integers.
-
@end table
@node Shell Arithmetic
@@ -6159,9 +6663,10 @@ Constants with a leading 0 are interpreted as octal numbers.
A leading @samp{0x} or @samp{0X} denotes hexadecimal. Otherwise,
numbers take the form [@var{base}@code{#}]@var{n}, where the optional @var{base}
is a decimal number between 2 and 64 representing the arithmetic
-base, and @var{n} is a number in that base. If @var{base}@code{#} is
-omitted, then base 10 is used.
-The digits greater than 9 are represented by the lowercase letters,
+base, and @var{n} is a number in that base.
+If @var{base}@code{#} is omitted, then base 10 is used.
+When specifying @var{n},
+he digits greater than 9 are represented by the lowercase letters,
the uppercase letters, @samp{@@}, and @samp{_}, in that order.
If @var{base} is less than or equal to 36, lowercase and uppercase
letters may be used interchangeably to represent numbers between 10
@@ -6193,8 +6698,9 @@ aliases, but a word that is identical to an alias being expanded
is not expanded a second time.
This means that one may alias @code{ls} to @code{"ls -F"},
for instance, and Bash does not try to recursively expand the
-replacement text. If the last character of the alias value is a
-space or tab character, then the next command word following the
+replacement text.
+If the last character of the alias value is a
+@var{blank}, then the next command word following the
alias is also checked for alias expansion.
Aliases are created and listed with the @code{alias}
@@ -6241,21 +6747,19 @@ 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 (@pxref{Shell Arithmetic}) and are zero-based;
+expressions (@pxref{Shell Arithmetic})) and are zero-based;
associative arrays use arbitrary strings.
+Unless otherwise noted, indexed array indices must be non-negative integers.
An indexed array is created automatically if any variable is assigned to
using the syntax
@example
-name[@var{subscript}]=@var{value}
+@var{name}[@var{subscript}]=@var{value}
@end example
@noindent
The @var{subscript}
is treated as an arithmetic expression that must evaluate to a number.
-If @var{subscript} evaluates to a number less than zero, it is used as
-an offset from one greater than the array's maximum index (so a subcript
-of -1 refers to the last element of the array).
To explicitly declare an array, use
@example
declare -a @var{name}
@@ -6268,6 +6772,7 @@ declare -a @var{name}[@var{subscript}]
@noindent
is also accepted; the @var{subscript} is ignored.
+@noindent
Associative arrays are created using
@example
declare -A @var{name}.
@@ -6280,12 +6785,12 @@ an array.
Arrays are assigned to using compound assignments of the form
@example
-name=(value@var{1} @dots{} value@var{n})
+@var{name}=(@var{value1} @var{value2} @dots{} )
@end example
@noindent
where each
@var{value} is of the form @code{[@var{subscript}]=}@var{string}.
-Indexed array assignments do not require the bracket and subscript.
+Indexed array assignments do not require anything but @var{string}.
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
@@ -6295,44 +6800,63 @@ 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.
+@code{@var{name}[@var{subscript}]=@var{value}} syntax introduced above.
+
+When assigning to an indexed array, if @var{name}
+is subscripted by a negative number, that number is
+interpreted as relative to one greater than the maximum index of
+@var{name}, so negative indices count back from the end of the
+array, and an index of -1 references the last element.
Any element of an array may be referenced using
-@code{$@{name[}@var{subscript}@code{]@}}.
+@code{$@{@var{name}[@var{subscript}]@}}.
The braces are required to avoid
conflicts with the shell's filename expansion operators. If the
@var{subscript} is @samp{@@} or @samp{*}, the word expands to all members
of the array @var{name}. These subscripts differ only when the word
appears within double quotes.
If the word is double-quoted,
-@code{$@{name[*]@}} expands to a single word with
+@code{$@{@var{name}[*]@}} expands to a single word with
the value of each array member separated by the first character of the
-@env{IFS} variable, and @code{$@{name[@@]@}} expands each element of
+@env{IFS} variable, and @code{$@{@var{name}[@@]@}} expands each element of
@var{name} to a separate word. When there are no array members,
-@code{$@{name[@@]@}} expands to nothing.
+@code{$@{@var{name}[@@]@}} expands to nothing.
If the double-quoted expansion occurs within a word, the expansion of
the first parameter is joined with the beginning part of the original
word, and the expansion of the last parameter is joined with the last
part of the original word.
This is analogous to the
expansion of the special parameters @samp{@@} and @samp{*}.
-@code{$@{#name[}@var{subscript}@code{]@}} expands to the length of
-@code{$@{name[}@var{subscript}@code{]@}}.
+@code{$@{#@var{name}[@var{subscript}]@}} expands to the length of
+@code{$@{@var{name}[@var{subscript}]@}}.
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 with a subscript of 0.
+If the @var{subscript}
+used to reference an element of an indexed array
+evaluates to a number less than zero, it is
+interpreted as relative to one greater than the maximum index of the array,
+so negative indices count back from the end of the array,
+and an index of -1 refers to the last element.
An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
+It is possible to obtain the keys (indices) of an array as well as the values.
+$@{!@var{name}[@@]@} and $@{!@var{name}[*]@} expand to the indices
+assigned in array variable @var{name}.
+The treatment when in double quotes is similar to the expansion of the
+special parameters @samp{@@} and @samp{*} within double quotes.
+
The @code{unset} builtin is used to destroy arrays.
-@code{unset} @var{name}[@var{subscript}]
+@code{unset @var{name}[@var{subscript}]}
destroys the array element at index @var{subscript}.
+Negative subscripts to indexed arrays are interpreted as described above.
Care must be taken to avoid unwanted side effects caused by filename
expansion.
-@code{unset} @var{name}, where @var{name} is an array, removes the
-entire array. A subscript of @samp{*} or @samp{@@} also removes the
+@code{unset @var{name}}, where @var{name} is an array, removes the
+entire array. A subscript of @samp{*} or @samp{@@} also removes the
entire array.
The @code{declare}, @code{local}, and @code{readonly}
@@ -6373,37 +6897,39 @@ as the value of the @env{DIRSTACK} shell variable.
@item dirs
@btindex dirs
@example
-dirs [+@var{N} | -@var{N}] [-clpv]
+dirs [-clpv] [+@var{N} | -@var{N}]
@end example
+
Display the list of currently remembered directories. Directories
are added to the list with the @code{pushd} command; the
@code{popd} command removes directories from the list.
+
@table @code
-@item +@var{N}
-Displays the @var{N}th directory (counting from the left of the
-list printed by @code{dirs} when invoked without options), starting
-with zero.
-@item -@var{N}
-Displays the @var{N}th directory (counting from the right of the
-list printed by @code{dirs} when invoked without options), starting
-with zero.
@item -c
Clears the directory stack by deleting all of the elements.
@item -l
-Produces a longer listing; the default listing format uses a
-tilde to denote the home directory.
+Produces a listing using full pathnames;
+the default listing format uses a tilde to denote the home directory.
@item -p
Causes @code{dirs} to print the directory stack with one entry per
line.
@item -v
Causes @code{dirs} to print the directory stack with one entry per
line, prefixing each entry with its index in the stack.
+@item +@var{N}
+Displays the @var{N}th directory (counting from the left of the
+list printed by @code{dirs} when invoked without options), starting
+with zero.
+@item -@var{N}
+Displays the @var{N}th directory (counting from the right of the
+list printed by @code{dirs} when invoked without options), starting
+with zero.
@end table
@item popd
@btindex popd
@example
-popd [+@var{N} | -@var{N}] [-n]
+popd [-n] [+@var{N} | -@var{N}]
@end example
Remove the top entry from the directory stack, and @code{cd}
@@ -6412,23 +6938,24 @@ When no arguments are given, @code{popd}
removes the top directory from the stack and
performs a @code{cd} to the new top directory. The
elements are numbered from 0 starting at the first directory listed with
-@code{dirs}; i.e., @code{popd} is equivalent to @code{popd +0}.
+@code{dirs}; that is, @code{popd} is equivalent to @code{popd +0}.
+
@table @code
+@item -n
+Suppresses the normal change of directory when removing directories
+from the stack, so that only the stack is manipulated.
@item +@var{N}
Removes the @var{N}th directory (counting from the left of the
list printed by @code{dirs}), starting with zero.
@item -@var{N}
Removes the @var{N}th directory (counting from the right of the
list printed by @code{dirs}), starting with zero.
-@item -n
-Suppresses the normal change of directory when removing directories
-from the stack, so that only the stack is manipulated.
@end table
@btindex pushd
@item pushd
@example
-pushd [-n] [@var{+N} | @var{-N} | @var{dir} ]
+pushd [-n] [@var{+N} | @var{-N} | @var{dir}]
@end example
Save the current directory on the top of the directory stack
@@ -6448,14 +6975,13 @@ 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 @var{dir}
-Makes the current working directory be the top of the stack, and then
-executes the equivalent of `@code{cd} @var{dir}'.
-@code{cd}s to @var{dir}.
+Makes the current working directory be the top of the stack, making
+it the new current directory as if it had been supplied as an argument
+to the @code{cd} builtin.
@end table
-
@end table
-@node Printing a Prompt
+@node Controlling the Prompt
@section Controlling the Prompt
@cindex prompting
@@ -6465,7 +6991,7 @@ has a non-null value, then the
value is executed just as if it had been typed on the command line.
In addition, the following table describes the special characters which
-can appear in the prompt variables:
+can appear in the prompt variables @env{PS1} to @env{PS4}:
@table @code
@item \a
@@ -6648,6 +7174,12 @@ Tilde expansion is only performed on assignments preceding a command
name, rather than on all assignment statements on the line.
@item
+The @code{command} builtin does not prevent builtins that take assignment
+statements as arguments from expanding them as assignment statements;
+when not in @sc{posix} mode, assignment builtins lose their assignment
+statement expansion properties when preceded by @code{command}.
+
+@item
The default history file is @file{~/.sh_history} (this is the
default value of @env{$HISTFILE}).
@@ -6687,6 +7219,10 @@ may not start with a digit. Declaring a function with an invalid name
causes a fatal syntax error in non-interactive shells.
@item
+Function names may not be the same as one of the @sc{posix} special
+builtins.
+
+@item
@sc{posix} special builtins are found before shell functions
during command lookup.
@@ -6722,7 +7258,7 @@ A variable assignment error occurs, for example, when trying to assign
a value to a readonly variable.
@item
-A non-interactive shell exists with an error status if a variable
+A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a special
builtin, but not with any other simple command.
@@ -6735,6 +7271,10 @@ variable in a @code{for} statement or the selection variable in a
Process substitution is not available.
@item
+While variable indirection is available, it may not be applied to the
+@samp{#} and @samp{?} special parameters.
+
+@item
Assignment statements preceding @sc{posix} special builtins
persist in the shell environment after the builtin completes.
@@ -6827,6 +7367,12 @@ The arrival of @code{SIGCHLD} when a trap is set on @code{SIGCHLD} does
not interrupt the @code{wait} builtin and cause it to return immediately.
The trap command is run once for each child that exits.
+@item
+The @code{read} builtin may be interrupted by a signal for which a trap
+has been set.
+If Bash receives a trapped signal while executing @code{read}, the trap
+handler executes and @code{read} returns an exit status greater than 128.
+
@end enumerate
There is other @sc{posix} behavior that Bash does not implement by
@@ -6942,7 +7488,7 @@ previous job with a @samp{-}.
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 example, @samp{%ce} refers
-to a stopped @code{ce} job. Using @samp{%?ce}, on the
+to a stopped @code{ce} job. Using @samp{%?ce}, on the
other hand, refers to any job containing the string @samp{ce} in
its command line. If the prefix or substring matches more than one job,
Bash reports an error.
@@ -6979,6 +7525,7 @@ Bash does not print another warning, and any stopped jobs are terminated.
@example
bg [@var{jobspec} @dots{}]
@end example
+
Resume each suspended job @var{jobspec} in the background, as if it
had been started with @samp{&}.
If @var{jobspec} is not supplied, the current job is used.
@@ -6992,6 +7539,7 @@ that was started without job control.
@example
fg [@var{jobspec}]
@end example
+
Resume the job @var{jobspec} in the foreground and make it the current job.
If @var{jobspec} is not supplied, the current job is used.
The return status is that of the command placed into the foreground,
@@ -7021,10 +7569,10 @@ the user was last notified of their status.
List only the process @sc{id} of the job's process group leader.
@item -r
-Restrict output to running jobs.
+Display only running jobs.
@item -s
-Restrict output to stopped jobs.
+Display only stopped jobs.
@end table
If @var{jobspec} is given,
@@ -7043,6 +7591,7 @@ passing it @var{argument}s, returning its exit status.
kill [-s @var{sigspec}] [-n @var{signum}] [-@var{sigspec}] @var{jobspec} or @var{pid}
kill -l [@var{exit_status}]
@end example
+
Send a signal specified by @var{sigspec} or @var{signum} to the process
named by job specification @var{jobspec} or process @sc{id} @var{pid}.
@var{sigspec} is either a case-insensitive signal name such as
@@ -7061,14 +7610,17 @@ or non-zero if an error occurs or an invalid option is encountered.
@item wait
@btindex wait
@example
-wait [@var{jobspec} or @var{pid} ...]
+wait [-n] [@var{jobspec} or @var{pid} @dots{}]
@end example
+
Wait until the child process specified by each process @sc{id} @var{pid}
or job specification @var{jobspec} exits and return the exit status of the
last command waited for.
If a job spec is given, all processes in the job are waited for.
If no arguments are given, all currently active child processes are
waited for, and the return status is zero.
+If the @option{-n} option is supplied, @code{wait} waits for any job to
+terminate and returns its exit status.
If neither @var{jobspec} nor @var{pid} specifies an active child process
of the shell, the return status is 127.
@@ -7077,13 +7629,14 @@ of the shell, the return status is 127.
@example
disown [-ar] [-h] [@var{jobspec} @dots{}]
@end example
-Without options, each @var{jobspec} is removed from the table of
+
+Without options, remove each @var{jobspec} from the table of
active jobs.
If the @option{-h} option is given, the job is not removed from the table,
but is marked so that @code{SIGHUP} is not sent to the job if the shell
receives a @code{SIGHUP}.
-If @var{jobspec} is not present, and neither the @option{-a} nor @option{-r}
-option is supplied, the current job is used.
+If @var{jobspec} is not present, and neither the @option{-a} nor the
+@option{-r} option is supplied, the current job is used.
If no @var{jobspec} is supplied, the @option{-a} option means to remove or
mark all jobs; the @option{-r} option without a @var{jobspec}
argument restricts operation to running jobs.
@@ -7093,11 +7646,11 @@ argument restricts operation to running jobs.
@example
suspend [-f]
@end example
+
Suspend the execution of this shell until it receives a
@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
When job control is not active, the @code{kill} and @code{wait}
@@ -7232,9 +7785,9 @@ to do them, and mail diffs or instructions to
@email{bash-maintainers@@gnu.org} so they can be
considered for the next release.
-The file @file{configure.in} is used to create @code{configure}
+The file @file{configure.ac} is used to create @code{configure}
by a program called Autoconf. You only need
-@file{configure.in} if you want to change it or regenerate
+@file{configure.ac} if you want to change it or regenerate
@code{configure} using a newer version of Autoconf. If
you do this, make sure you are using Autoconf version 2.50 or
newer.
@@ -7465,7 +8018,8 @@ The @samp{minimal-config} option can be used to disable all of
the following options, but it is processed first, so individual
options may be enabled using @samp{enable-@var{feature}}.
-All of the following options except for @samp{disabled-builtins} and
+All of the following options except for @samp{disabled-builtins},
+@samp{directpand-default}, and
@samp{xpg-echo-default} are
enabled by default, unless the operating system does not provide the
necessary support.
@@ -7523,6 +8077,11 @@ Include support for coprocesses and the @code{coproc} reserved word
@item --enable-debugger
Include support for the bash debugger (distributed separately).
+@item --enable-direxpand-default
+Cause the @code{direxpand} shell option (@pxref{The Shopt Builtin})
+to be enabled by default when the shell starts.
+It is normally disabled by default.
+
@item --enable-directory-stack
Include support for a @code{csh}-like directory stack and the
@code{pushd}, @code{popd}, and @code{dirs} builtins
@@ -7546,6 +8105,12 @@ above under @ref{Pattern Matching}.
Set the default value of the @var{extglob} shell option described
above under @ref{The Shopt Builtin} to be enabled.
+@item --enable-glob-asciirange-default
+Set the default value of the @var{globasciiranges} shell option described
+above under @ref{The Shopt Builtin} to be enabled.
+This controls the behavior of character ranges when used in pattern matching
+bracket expressions.
+
@item --enable-help-builtin
Include the @code{help} builtin, which displays help on shell builtins and
variables (@pxref{Bash Builtins}).
@@ -7580,7 +8145,7 @@ If Readline is not enabled, this option has no effect.
@item --enable-prompt-string-decoding
Turn on the interpretation of a number of backslash-escaped characters
in the @env{$PS1}, @env{$PS2}, @env{$PS3}, and @env{$PS4} prompt
-strings. See @ref{Printing a Prompt}, for a complete list of prompt
+strings. See @ref{Controlling the Prompt}, for a complete list of prompt
string escape sequences.
@item --enable-readline
@@ -7620,7 +8185,6 @@ which makes the Bash @code{echo} behave more like the version specified in
the Single Unix Specification, version 3.
@xref{Bash Builtins}, for a description of the escape sequences that
@code{echo} recognizes.
-
@end table
The file @file{config-top.h} contains C Preprocessor
@@ -7668,7 +8232,7 @@ to reproduce it.
the template it provides for filing a bug report.
Please send all reports concerning this manual to
-@email{chet.ramey@@case.edu}.
+@email{bug-bash@@gnu.org}.
@node Major Differences From The Bourne Shell
@appendix Major Differences From The Bourne Shell
@@ -7805,7 +8369,7 @@ which matches @var{pattern} and replaces it with @var{replacement} in
the value of @code{var}, is available (@pxref{Shell Parameter Expansion}).
@item
-The expansion @code{$@{!@var{prefix@}*}} expansion, which expands to
+The expansion @code{$@{!@var{prefix}*@}} expansion, which expands to
the names of all shell variables whose names begin with @var{prefix},
is available (@pxref{Shell Parameter Expansion}).
@@ -7840,6 +8404,11 @@ not all words (@pxref{Word Splitting}).
This closes a longstanding shell security hole.
@item
+The filename expansion bracket expression code uses @samp{!} and @samp{^}
+to negate the set of characters between the brackets.
+The Bourne shell uses only @samp{!}.
+
+@item
Bash implements the full set of @sc{posix} filename expansion operators,
including @var{character classes}, @var{equivalence classes}, and
@var{collating symbols} (@pxref{Filename Expansion}).
@@ -7976,7 +8545,7 @@ Bash has much more optional behavior controllable with the @code{set}
builtin (@pxref{The Set Builtin}).
@item
-The @samp{-x} (@code{xtrace}) option displays commands other than
+The @samp{-x} (@option{xtrace}) option displays commands other than
simple commands when performing an execution trace
(@pxref{The Set Builtin}).
@@ -8039,7 +8608,7 @@ Bash also makes the directory stack visible as the value of the
@item
Bash interprets special backslash-escaped characters in the prompt
-strings when interactive (@pxref{Printing a Prompt}).
+strings when interactive (@pxref{Controlling the Prompt}).
@item
The Bash restricted mode is more useful (@pxref{The Restricted Shell});
diff --git a/doc/builtins.0 b/doc/builtins.0
index 5361dd79..dcdc6c51 100644
--- a/doc/builtins.0
+++ b/doc/builtins.0
@@ -29,9 +29,9 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ssoouurrccee _f_i_l_e_n_a_m_e [_a_r_g_u_m_e_n_t_s]
Read and execute commands from _f_i_l_e_n_a_m_e in the current shell
environment and return the exit status of the last command exe-
- cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash, file
- names in PPAATTHH are used to find the directory containing _f_i_l_e_-
- _n_a_m_e. The file searched for in PPAATTHH need not be executable.
+ cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash,
+ filenames in PPAATTHH are used to find the directory containing
+ _f_i_l_e_n_a_m_e. The file searched for in PPAATTHH need not be executable.
When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
to the sshhoopptt builtin command is turned off, the PPAATTHH is not
@@ -61,7 +61,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled, any specified _j_o_b_s_p_e_c was not found or was started
without job control.
- bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVV]
+ bbiinndd [--mm _k_e_y_m_a_p] [--llppssvvPPSSVVXX]
bbiinndd [--mm _k_e_y_m_a_p] [--qq _f_u_n_c_t_i_o_n] [--uu _f_u_n_c_t_i_o_n] [--rr _k_e_y_s_e_q]
bbiinndd [--mm _k_e_y_m_a_p] --ff _f_i_l_e_n_a_m_e
bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d
@@ -108,6 +108,9 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
command changes the value of RREEAADDLLIINNEE__LLIINNEE or RREEAADD--
LLIINNEE__PPOOIINNTT, those new values will be reflected in the
editing state.
+ --XX List all key sequences bound to shell commands and the
+ associated commands in a format that can be reused as
+ input.
The return value is 0 unless an unrecognized option is given or
an error occurred.
@@ -140,117 +143,129 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
routine call or _e_x_p_r does not correspond to a valid position in
the call stack.
- ccdd [--LL|[--PP [--ee]]] [_d_i_r]
- Change the current directory to _d_i_r. The variable HHOOMMEE is the
- default _d_i_r. The variable CCDDPPAATTHH defines the search path for
- the directory containing _d_i_r. Alternative directory names in
- CCDDPPAATTHH are separated by a colon (:). A null directory name in
- CCDDPPAATTHH is the same as the current directory, i.e., ``..''. If
- _d_i_r begins with a slash (/), then CCDDPPAATTHH is not used. The --PP
- option says to use the physical directory structure instead of
- following symbolic links (see also the --PP option to the sseett
- builtin command); the --LL option forces symbolic links to be fol-
- lowed. If the --ee option is supplied with --PP, and the current
- working directory cannot be successfully determined after a suc-
- cessful directory change, ccdd will return an unsuccessful status.
- An argument of -- is equivalent to $$OOLLDDPPWWDD. If a non-empty
- directory name from CCDDPPAATTHH is used, or if -- is the first argu-
- ment, and the directory change is successful, the absolute path-
- name of the new working directory is written to the standard
- output. The return value is true if the directory was success-
- fully changed; false otherwise.
+ ccdd [--LL|[--PP [--ee]] [-@]] [_d_i_r]
+ Change the current directory to _d_i_r. if _d_i_r is not supplied,
+ the value of the HHOOMMEE shell variable is the default. Any addi-
+ tional arguments following _d_i_r are ignored. The variable CCDDPPAATTHH
+ defines the search path for the directory containing _d_i_r: each
+ directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative
+ directory names in CCDDPPAATTHH are separated by a colon (:). A null
+ directory name in CCDDPPAATTHH is the same as the current directory,
+ i.e., ``..''. If _d_i_r begins with a slash (/), then CCDDPPAATTHH is not
+ used. The --PP option causes ccdd to use the physical directory
+ structure by resolving symbolic links while traversing _d_i_r and
+ before processing instances of _._. in _d_i_r (see also the --PP option
+ to the sseett builtin command); the --LL option forces symbolic links
+ to be followed by resolving the link after processing instances
+ of _._. in _d_i_r. If _._. appears in _d_i_r, it is processed by removing
+ the immediately previous pathname component from _d_i_r, back to a
+ slash or the beginning of _d_i_r. If the --ee option is supplied
+ with --PP, and the current working directory cannot be success-
+ fully determined after a successful directory change, ccdd will
+ return an unsuccessful status. On systems that support it, the
+ --@@ option presents the extended attributes associated with a
+ file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD
+ before the directory change is attempted. If a non-empty direc-
+ tory name from CCDDPPAATTHH is used, or if -- is the first argument,
+ and the directory change is successful, the absolute pathname of
+ the new working directory is written to the standard output.
+ The return value is true if the directory was successfully
+ changed; false otherwise.
ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...]
- Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
- lookup. Only builtin commands or commands found in the PPAATTHH are
- executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
- performed using a default value for PPAATTHH that is guaranteed to
- find all of the standard utilities. If either the --VV or --vv
+ Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
+ lookup. Only builtin commands or commands found in the PPAATTHH are
+ executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
+ performed using a default value for PPAATTHH that is guaranteed to
+ find all of the standard utilities. If either the --VV or --vv
option is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
- option causes a single word indicating the command or file name
+ option causes a single word indicating the command or filename
used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a
- more verbose description. If the --VV or --vv option is supplied,
- the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
+ more verbose description. If the --VV or --vv option is supplied,
+ the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
neither option is supplied and an error occurred or _c_o_m_m_a_n_d can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d.
ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d]
- Generate possible completion matches for _w_o_r_d according to the
- _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
- builtin with the exception of --pp and --rr, and write the matches
- to the standard output. When using the --FF or --CC options, the
- various shell variables set by the programmable completion
+ Generate possible completion matches for _w_o_r_d according to the
+ _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
+ builtin with the exception of --pp and --rr, and write the matches
+ to the standard output. When using the --FF or --CC options, the
+ various shell variables set by the programmable completion
facilities, while available, will not have useful values.
- The matches will be generated in the same way as if the pro-
- grammable completion code had generated them directly from a
+ The matches will be generated in the same way as if the pro-
+ grammable completion code had generated them directly from a
completion specification with the same flags. If _w_o_r_d is speci-
fied, only those completions matching _w_o_r_d will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
+ ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEE] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
_p_a_t] [--WW _w_o_r_d_l_i_s_t] [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d]
[--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_f_i_x] _n_a_m_e [_n_a_m_e _._._.]
ccoommpplleettee --pprr [--DDEE] [_n_a_m_e ...]
- Specify how arguments to each _n_a_m_e should be completed. If the
- --pp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _n_a_m_e should be completed. If the
+ --pp 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 --rr option removes a completion spec-
- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
+ ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
pletion specifications. The --DD option indicates that the
- remaining options and actions should apply to the ``default''
- command completion; that is, completion attempted on a command
- for which no completion has previously been defined. The --EE
- option indicates that the remaining options and actions should
- apply to ``empty'' command completion; that is, completion
+ remaining options and actions should apply to the ``default''
+ command completion; that is, completion attempted on a command
+ for which no completion has previously been defined. The --EE
+ 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 under PPrroo--
+ The process of applying these completion specifications when
+ word completion is attempted is described above under PPrroo--
ggrraammmmaabbllee CCoommpplleettiioonn.
- Other options, if specified, have the following meanings. The
- arguments to the --GG, --WW, and --XX options (and, if necessary, the
- --PP and --SS options) should be quoted to protect them from expan-
+ Other options, if specified, have the following meanings. The
+ arguments to the --GG, --WW, and --XX options (and, if necessary, the
+ --PP and --SS options) should be quoted to protect them from expan-
sion before the ccoommpplleettee builtin is invoked.
--oo _c_o_m_p_-_o_p_t_i_o_n
- The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
- spec's behavior beyond the simple generation of comple-
+ The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
+ spec's behavior beyond the simple generation of comple-
tions. _c_o_m_p_-_o_p_t_i_o_n may be one of:
bbaasshhddeeffaauulltt
Perform the rest of the default bbaasshh completions
if the compspec generates no matches.
- ddeeffaauulltt Use readline's default filename completion if
+ ddeeffaauulltt Use readline's default filename completion if
the compspec generates no matches.
ddiirrnnaammeess
- Perform directory name completion if the comp-
+ Perform directory name completion if the comp-
spec generates no matches.
ffiilleennaammeess
- Tell readline that the compspec generates file-
- names, so it can perform any filename-specific
- processing (like adding a slash to directory
- names, quoting special characters, or suppress-
- ing trailing spaces). Intended to be used with
+ Tell readline that the compspec generates file-
+ names, so it can perform any filename-specific
+ processing (like adding a slash to directory
+ names, quoting special characters, or suppress-
+ ing trailing spaces). Intended to be used with
shell functions.
- nnoossppaaccee Tell readline not to append a space (the
- default) to words completed at the end of the
+ nnooqquuoottee Tell readline not to quote the completed words
+ if they are filenames (quoting filenames is the
+ default).
+ nnoossppaaccee Tell readline not to append a space (the
+ default) to words completed at the end of the
line.
pplluussddiirrss
- After any matches defined by the compspec are
- generated, directory name completion is
- attempted and any matches are added to the
+ After any matches defined by the compspec are
+ generated, directory name completion is
+ attempted and any matches are added to the
results of the other actions.
--AA _a_c_t_i_o_n
- The _a_c_t_i_o_n may be one of the following to generate a
+ The _a_c_t_i_o_n may be one of the following to generate a
list of possible completions:
aalliiaass Alias names. May also be specified as --aa.
aarrrraayyvvaarr
Array variable names.
bbiinnddiinngg RReeaaddlliinnee key binding names.
- bbuuiillttiinn Names of shell builtin commands. May also be
+ bbuuiillttiinn Names of shell builtin commands. May also be
specified as --bb.
ccoommmmaanndd Command names. May also be specified as --cc.
ddiirreeccttoorryy
@@ -258,7 +273,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ddiissaabblleedd
Names of disabled shell builtins.
eennaabblleedd Names of enabled shell builtins.
- eexxppoorrtt Names of exported shell variables. May also be
+ eexxppoorrtt Names of exported shell variables. May also be
specified as --ee.
ffiillee File names. May also be specified as --ff.
ffuunnccttiioonn
@@ -267,17 +282,17 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
hheellppttooppiicc
Help topics as accepted by the hheellpp builtin.
hhoossttnnaammee
- Hostnames, as taken from the file specified by
+ Hostnames, as taken from the file specified by
the HHOOSSTTFFIILLEE shell variable.
- jjoobb Job names, if job control is active. May also
+ jjoobb Job names, if job control is active. May also
be specified as --jj.
- kkeeyywwoorrdd Shell reserved words. May also be specified as
+ kkeeyywwoorrdd Shell reserved words. May also be specified as
--kk.
rruunnnniinngg Names of running jobs, if job control is active.
sseerrvviiccee Service names. May also be specified as --ss.
- sseettoopptt Valid arguments for the --oo option to the sseett
+ sseettoopptt Valid arguments for the --oo option to the sseett
builtin.
- sshhoopptt Shell option names as accepted by the sshhoopptt
+ sshhoopptt Shell option names as accepted by the sshhoopptt
builtin.
ssiiggnnaall Signal names.
ssttooppppeedd Names of stopped jobs, if job control is active.
@@ -286,13 +301,18 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Names of all shell variables. May also be spec-
ified as --vv.
--CC _c_o_m_m_a_n_d
- _c_o_m_m_a_n_d is executed in a subshell environment, and its
+ _c_o_m_m_a_n_d is executed in a subshell environment, and its
output is used as the possible completions.
--FF _f_u_n_c_t_i_o_n
- The shell function _f_u_n_c_t_i_o_n is executed in the current
- shell environment. When it finishes, the possible com-
- pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
- array variable.
+ The shell function _f_u_n_c_t_i_o_n is executed in the current
+ shell environment. When the function is executed, the
+ first argument ($$11) is the name of the command whose
+ arguments are being completed, the second argument ($$22)
+ is the word being completed, and the third argument ($$33)
+ is the word preceding the word being completed on the
+ current command line. When it finishes, the possible
+ completions are retrieved from the value of the CCOOMMPPRREE--
+ PPLLYY array variable.
--GG _g_l_o_b_p_a_t
The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
generate the possible completions.
@@ -347,27 +367,27 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
loop) is resumed. The return value is 0 unless _n is not greater
than or equal to 1.
- ddeeccllaarree [--aaAAffFFggiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
- ttyyppeesseett [--aaAAffFFggiillrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
+ ddeeccllaarree [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
+ ttyyppeesseett [--aaAAffFFggiillnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
Declare variables and/or give them attributes. If no _n_a_m_es are
given then display the values of variables. The --pp option will
display the attributes and values of each _n_a_m_e. When --pp is used
- with _n_a_m_e arguments, additional options are ignored. When --pp is
- supplied without _n_a_m_e 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
- --pp, ddeeccllaarree will display the attributes and values of all shell
- variables. The --ff option will restrict the display to shell
- functions. The --FF option inhibits the display of function defi-
- nitions; only the function name and attributes are printed. If
- the eexxttddeebbuugg shell option is enabled using sshhoopptt, the source
- file name and line number where the function is defined are dis-
- played as well. The --FF option implies --ff. The --gg option forces
- variables to be created or modified at the global scope, even
- when ddeeccllaarree is executed in a shell function. It is ignored in
- all other cases. The following options can be used to restrict
- output to variables with the specified attribute or to give
- variables attributes:
+ with _n_a_m_e arguments, additional options, other than --ff and --FF,
+ are ignored. When --pp is supplied without _n_a_m_e 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 --pp, ddeeccllaarree will display the
+ attributes and values of all shell variables. The --ff option
+ will restrict the display to shell functions. The --FF option
+ inhibits the display of function definitions; only the function
+ name and attributes are printed. If the eexxttddeebbuugg shell option
+ is enabled using sshhoopptt, the source file name and line number
+ where the function is defined are displayed as well. The --FF
+ option implies --ff. The --gg option forces variables to be created
+ or modified at the global scope, even when ddeeccllaarree is executed
+ in a shell function. It is ignored in all other cases. The
+ following options can be used to restrict output to variables
+ with the specified attribute or to give variables attributes:
--aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss
above).
--AA Each _n_a_m_e is an associative array variable (see AArrrraayyss
@@ -379,6 +399,13 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--ll When the variable is assigned a value, all upper-case
characters are converted to lower-case. The upper-case
attribute is disabled.
+ --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name
+ reference to another variable. That other variable is
+ defined by the value of _n_a_m_e. All references and assign-
+ ments to _n_a_m_e, except for changing the --nn attribute
+ itself, are performed on the variable referenced by
+ _n_a_m_e's value. The --nn attribute cannot be applied to
+ array variables.
--rr Make _n_a_m_es readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
--tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions
@@ -394,66 +421,68 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Using `+' instead of `-' turns off the attribute instead, with
the exceptions that ++aa may not be used to destroy an array vari-
able and ++rr will not remove the readonly attribute. When used
- in a function, makes each _n_a_m_e local, as with the llooccaall command,
- unless the --ggPP ooppttiioonn iiss ssuupppplliieedd,, IIff aa vvaarriiaabbllee nnaammee iiss ffooll--
- lloowweedd bbyy ==_v_a_l_u_e,, tthhee vvaalluuee ooff tthhee vvaarriiaabbllee iiss sseett ttoo _v_a_l_u_e.. TThhee
- rreettuurrnn vvaalluuee iiss 00 uunnlleessss aann iinnvvaalliidd ooppttiioonn iiss eennccoouunntteerreedd,, aann
- aatttteemmpptt iiss mmaaddee ttoo ddeeffiinnee aa ffuunnccttiioonn uussiinngg ````--ff ffoooo==bbaarr'''',, aann
- aatttteemmpptt iiss mmaaddee ttoo aassssiiggnn aa vvaalluuee ttoo aa rreeaaddoonnllyy vvaarriiaabbllee,, aann
- aatttteemmpptt iiss mmaaddee ttoo aassssiiggnn aa vvaalluuee ttoo aann aarrrraayy vvaarriiaabbllee wwiitthhoouutt
- uussiinngg tthhee ccoommppoouunndd aassssiiggnnmmeenntt ssyynnttaaxx ((sseeee AArrrraayyss above), one of
- the _n_a_m_e_s is not a valid shell variable name, an attempt is made
- to turn off readonly status for a readonly variable, 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 --ff.
-
- ddiirrss [[++_n]] [[--_n]] [[--ccllppvv]]
- Without options, displays the list of currently remembered
- directories. The default display is on a single line with
- directory names separated by spaces. Directories are added to
- the list with the ppuusshhdd command; the ppooppdd command removes
+ in a function, ddeeccllaarree and ttyyppeesseett make each _n_a_m_e local, as with
+ the llooccaall command, unless the --gg option is supplied. If a vari-
+ able name is followed by =_v_a_l_u_e, the value of the variable is
+ set to _v_a_l_u_e. When using --aa or --AA and the compound assignment
+ syntax to create array variables, additional attributes do not
+ take effect until subsequent assignments. The return value is 0
+ unless an invalid option is encountered, an attempt is made to
+ define a function using ``-f foo=bar'', an attempt is made to
+ assign a value to a readonly variable, an attempt is made to
+ assign a value to an array variable without using the compound
+ assignment syntax (see AArrrraayyss above), one of the _n_a_m_e_s is not a
+ valid shell variable name, an attempt is made to turn off read-
+ only status for a readonly variable, 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 --ff.
+
+ ddiirrss [[--ccllppvv]] [[++_n]] [[--_n]]
+ Without options, displays the list of currently remembered
+ directories. The default display is on a single line with
+ directory names separated by spaces. Directories are added to
+ the list with the ppuusshhdd command; the ppooppdd command removes
entries from the list.
- ++_n Displays the _nth entry counting from the left of the list
- shown by ddiirrss when invoked without options, starting with
- zero.
- --_n Displays the _nth entry counting from the right of the
- list shown by ddiirrss when invoked without options, starting
- with zero.
--cc Clears the directory stack by deleting all of the
entries.
- --ll Produces a longer listing; the default listing format
- uses a tilde to denote the home directory.
+ --ll Produces a listing using full pathnames; the default
+ listing format uses a tilde to denote the home directory.
--pp Print the directory stack with one entry per line.
--vv Print the directory stack with one entry per line, pre-
fixing each entry with its index in the stack.
+ ++_n Displays the _nth entry counting from the left of the list
+ shown by ddiirrss when invoked without options, starting with
+ zero.
+ --_n Displays the _nth entry counting from the right of the
+ list shown by ddiirrss when invoked without options, starting
+ with zero.
The return value is 0 unless an invalid option is supplied or _n
indexes beyond the end of the directory stack.
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ...]
- Without options, each _j_o_b_s_p_e_c is removed from the table of
- active jobs. If _j_o_b_s_p_e_c is not present, and neither --aa nor --rr
- is supplied, the shell's notion of the _c_u_r_r_e_n_t _j_o_b is used. If
- the --hh option is given, each _j_o_b_s_p_e_c is not removed from the ta-
- ble, but is marked so that SSIIGGHHUUPP is not sent to the job if the
- shell receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is present, and neither
- the --aa nor the --rr option is supplied, the _c_u_r_r_e_n_t _j_o_b is used.
- If no _j_o_b_s_p_e_c is supplied, the --aa option means to remove or mark
- all jobs; the --rr option without a _j_o_b_s_p_e_c argument restricts
- operation to running jobs. The return value is 0 unless a _j_o_b_-
- _s_p_e_c does not specify a valid job.
+ Without options, remove each _j_o_b_s_p_e_c from the table of active
+ jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr
+ option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option
+ is given, each _j_o_b_s_p_e_c is not removed from the table, but is
+ marked so that SSIIGGHHUUPP is not sent to the job if the shell
+ receives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is supplied, the --aa option
+ means to remove or mark all jobs; the --rr option without a _j_o_b_-
+ _s_p_e_c argument restricts operation to running jobs. The return
+ value is 0 unless a _j_o_b_s_p_e_c does not specify a valid job.
eecchhoo [--nneeEE] [_a_r_g ...]
Output the _a_r_gs, separated by spaces, followed by a newline.
- The return status is always 0. If --nn is specified, the trailing
- newline is suppressed. If the --ee option is given, interpreta-
- tion of the following backslash-escaped characters is enabled.
- The --EE option disables the interpretation of these escape char-
- acters, even on systems where they are interpreted by default.
- The xxppgg__eecchhoo shell option may be used to dynamically determine
- whether or not eecchhoo expands these escape characters by default.
- eecchhoo does not interpret ---- to mean the end of options. eecchhoo
- interprets the following escape sequences:
+ The return status is 0 unless a write error occurs. If --nn is
+ specified, the trailing newline is suppressed. If the --ee option
+ is given, interpretation of the following backslash-escaped
+ characters is enabled. The --EE option disables the interpreta-
+ tion of these escape characters, even on systems where they are
+ interpreted by default. The xxppgg__eecchhoo shell option may be used
+ to dynamically determine whether or not eecchhoo expands these
+ escape characters by default. eecchhoo does not interpret ---- to
+ mean the end of options. eecchhoo interprets the following escape
+ sequences:
\\aa alert (bell)
\\bb backspace
\\cc suppress further output
@@ -465,89 +494,88 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
\\tt horizontal tab
\\vv vertical tab
\\\\ backslash
- \\00_n_n_n the eight-bit character whose value is the octal value
+ \\00_n_n_n the eight-bit character whose value is the octal value
_n_n_n (zero to three octal digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
- \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
+ \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H (one to four hex digits)
\\UU_H_H_H_H_H_H_H_H
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits)
eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...]
- Enable and disable builtin shell commands. Disabling a builtin
+ 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 shell normally searches for builtins before disk commands.
- If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
+ to be executed without specifying a full pathname, even though
+ the shell normally searches for builtins before disk commands.
+ If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are
enabled. For example, to use the tteesstt binary found via the PPAATTHH
- instead of the shell builtin version, run ``enable -n test''.
- The --ff option means to load the new builtin command _n_a_m_e from
+ instead of the shell builtin version, run ``enable -n test''.
+ The --ff option means to load the new builtin command _n_a_m_e from
shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading.
- The --dd option will delete a builtin previously loaded with --ff.
+ The --dd option will delete a builtin previously loaded with --ff.
If no _n_a_m_e arguments are given, or if the --pp option is supplied,
a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If --nn
- is supplied, only disabled builtins are printed. If --aa is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If --ss is supplied, the
- output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
- value is 0 unless a _n_a_m_e is not a shell builtin or there is an
+ ments, the list consists of all enabled shell builtins. If --nn
+ is supplied, only disabled builtins are printed. If --aa is sup-
+ plied, the list printed includes all builtins, with an indica-
+ tion of whether or not each is enabled. If --ss is supplied, the
+ output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
+ value is 0 unless a _n_a_m_e is not a shell builtin or there is an
error loading a new builtin from a shared object.
eevvaall [_a_r_g ...]
- The _a_r_gs are read and concatenated together into a single com-
- mand. This command is then read and executed by the shell, and
- its exit status is returned as the value of eevvaall. If there are
+ The _a_r_gs are read and concatenated together into a single com-
+ mand. This command is then read and executed by the shell, and
+ its exit status is returned as the value of eevvaall. If there are
no _a_r_g_s, or only null arguments, eevvaall returns 0.
eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]]
- If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
- is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
+ If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
+ is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
the --ll option is supplied, the shell places a dash at the begin-
- ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
+ ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what
_l_o_g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with
- an empty environment. If --aa is supplied, the shell passes _n_a_m_e
+ an empty environment. If --aa is supplied, the shell passes _n_a_m_e
as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can-
- not be executed for some reason, a non-interactive shell exits,
- unless the shell option eexxeeccffaaiill is enabled, in which case it
- returns failure. An interactive shell returns failure if the
+ not be executed for some reason, a non-interactive shell exits,
+ unless the eexxeeccffaaiill shell option is enabled. In that case, it
+ returns failure. An interactive shell returns failure if the
file cannot be executed. If _c_o_m_m_a_n_d is not specified, any redi-
rections take effect in the current shell, and the return status
- is 0. If there is a redirection error, the return status is 1.
+ is 0. If there is a redirection error, the return status is 1.
eexxiitt [_n]
- Cause the shell to exit with a status of _n. If _n is omitted,
+ Cause the shell to exit with a status of _n. If _n is omitted,
the exit status is that of the last command executed. A trap on
EEXXIITT is executed before the shell terminates.
eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ...
eexxppoorrtt --pp
- The supplied _n_a_m_e_s are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the --ff option is
- given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
- if the --pp option is supplied, a list of all names that are
- exported in this shell is printed. The --nn option causes the
- export property to be removed from each _n_a_m_e. If a variable
- name is followed by =_w_o_r_d, the value of the variable is set to
- _w_o_r_d. eexxppoorrtt returns an exit status of 0 unless an invalid
- option is encountered, one of the _n_a_m_e_s is not a valid shell
- variable name, or --ff is supplied with a _n_a_m_e that is not a func-
- tion.
+ The supplied _n_a_m_e_s are marked for automatic export to the envi-
+ ronment of subsequently executed commands. If the --ff option is
+ given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
+ if the --pp option is supplied, a list of names of all exported
+ variables is printed. The --nn option causes the export property
+ to be removed from each _n_a_m_e. If a variable name is followed by
+ =_w_o_r_d, the value of the variable is set to _w_o_r_d. eexxppoorrtt returns
+ an exit status of 0 unless an invalid option is encountered, one
+ of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup-
+ plied with a _n_a_m_e that is not a function.
ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t]
ffcc --ss [_p_a_t=_r_e_p] [_c_m_d]
- Fix Command. In the first form, a range of commands from _f_i_r_s_t
- to _l_a_s_t is selected from the history list. _F_i_r_s_t and _l_a_s_t may
- be specified as a string (to locate the last command beginning
- with that string) or as a number (an index into the history
- list, where a negative number is used as an offset from the cur-
- rent command number). If _l_a_s_t is not specified it is set to the
- current command for listing (so that ``fc -l -10'' prints the
- last 10 commands) and to _f_i_r_s_t otherwise. If _f_i_r_s_t is not spec-
- ified it is set to the previous command for editing and -16 for
- listing.
+ The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t
+ from the history list and displays or edits and re-executes
+ them. _F_i_r_s_t and _l_a_s_t may be specified as a string (to locate
+ the last command beginning with that string) or as a number (an
+ index into the history list, where a negative number is used as
+ an offset from the current command number). If _l_a_s_t is not
+ specified it is set to the current command for listing (so that
+ ``fc -l -10'' prints the last 10 commands) and to _f_i_r_s_t other-
+ wise. If _f_i_r_s_t is not specified it is set to the previous com-
+ mand for editing and -16 for listing.
The --nn option suppresses the command numbers when listing. The
--rr option reverses the order of the commands. If the --ll option
@@ -555,14 +583,14 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
wise, the editor given by _e_n_a_m_e is invoked on a file containing
those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT
variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set.
- If neither variable is set, is used. When editing is complete,
- the edited commands are echoed and executed.
+ If neither variable is set, _v_i is used. When editing is com-
+ plete, the edited commands are echoed and executed.
In the second form, _c_o_m_m_a_n_d is re-executed after each instance
- of _p_a_t is replaced by _r_e_p. 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 com-
- mand.
+ of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is intepreted the same as
+ _f_i_r_s_t above. 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.
If the first form is used, the return value is 0 unless an
invalid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
@@ -608,7 +636,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ggeettooppttss can report errors in two ways. If the first character
of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
- normal operation diagnostic messages are printed when invalid
+ normal operation, diagnostic messages are printed when invalid
options or missing option arguments are encountered. If the
variable OOPPTTEERRRR is set to 0, no error messages will be dis-
played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon.
@@ -633,7 +661,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
is determined by searching the directories in $$PPAATTHH and remem-
bered. Any previously-remembered pathname is discarded. If the
--pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e
- is used as the full file name of the command. The --rr option
+ is used as the full filename of the command. The --rr option
causes the shell to forget all remembered locations. The --dd
option causes the shell to forget the remembered location of
each _n_a_m_e. If the --tt option is supplied, the full pathname to
@@ -654,7 +682,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
format
--ss Display only a short usage synopsis for each _p_a_t_t_e_r_n
- The return status is 0 unless no command matches _p_a_t_t_e_r_n.
+
+ The return status is 0 unless no command matches _p_a_t_t_e_r_n.
hhiissttoorryy [[_n]]
hhiissttoorryy --cc
@@ -682,10 +711,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
file into the current history list. These are lines
appended to the history file since the beginning of the
current bbaasshh session.
- --rr Read the contents of the history file and use them as the
- current history.
- --ww Write the current history to the history file, overwrit-
- ing the history file's contents.
+ --rr Read the contents of the history file and append them to
+ the current history list.
+ --ww Write the current history list to the history file, over-
+ writing the history file's contents.
--pp Perform history substitution on the following _a_r_g_s and
display the result on the standard output. Does not
store the results in the history list. Each _a_r_g must be
@@ -714,8 +743,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
status since the user was last notified of their status.
--pp List only the process ID of the job's process group
leader.
- --rr Restrict output to running jobs.
- --ss Restrict output to stopped jobs.
+ --rr Display only running jobs.
+ --ss Display only stopped jobs.
If _j_o_b_s_p_e_c is given, output is restricted to information about
that job. The return status is 0 unless an invalid option is
@@ -839,37 +868,41 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
The corresponding _a_r_g_u_m_e_n_t is an integer representing the
number of seconds since the epoch. Two special argument
values may be used: -1 represents the current time, and
- -2 represents the time the shell was invoked.
+ -2 represents the time the shell was invoked. If no
+ argument is specified, conversion behaves as if -1 had
+ been given. This is an exception to the usual pprriinnttff
+ behavior.
- Arguments to non-string format specifiers are treated as C con-
+ Arguments to non-string format specifiers are treated as C con-
stants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value
+ if the leading character is a single or double quote, the value
is the ASCII value of the following character.
- The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
+ The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
_m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
+ the 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.
ppuusshhdd [--nn] [+_n] [-_n]
ppuusshhdd [--nn] [_d_i_r]
- Adds a directory to the top of the directory stack, or rotates
- the stack, making the new top of the stack the current working
+ 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
- and returns 0, unless the directory stack is empty. Arguments,
+ and returns 0, unless the directory stack is empty. Arguments,
if supplied, have the following meanings:
- --nn Suppresses the normal change of directory when adding
- directories to the stack, so that only the stack is
+ --nn Suppresses the normal change of directory when adding
+ directories to the stack, so that only the stack is
manipulated.
- ++_n Rotates the stack so that the _nth directory (counting
- from the left of the list shown by ddiirrss, starting with
+ ++_n Rotates the stack so that the _nth directory (counting
+ from the left of the list shown by ddiirrss, starting with
zero) is at the top.
- --_n Rotates the stack so that the _nth directory (counting
- from the right of the list shown by ddiirrss, starting with
+ --_n Rotates the stack so that the _nth directory (counting
+ from the right of the list shown by ddiirrss, starting with
zero) is at the top.
_d_i_r Adds _d_i_r to the directory stack at the top, making it the
- new current working directory.
+ new current working directory as if it had been supplied
+ as the argument to the ccdd builtin.
If the ppuusshhdd command is successful, a ddiirrss is performed as well.
If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
@@ -896,128 +929,149 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ing separators assigned to the last _n_a_m_e. If there are fewer
words read from the input stream than names, the remaining names
are assigned empty values. The characters in IIFFSS are used to
- split the line into words. The backslash character (\\) may be
- used to remove any special meaning for the next character read
- and for line continuation. Options, if supplied, have the fol-
- lowing meanings:
+ split the line into words using the same rules the shell uses
+ for expansion (described above under WWoorrdd SSpplliittttiinngg). The back-
+ slash character (\\) may be used to remove any special meaning
+ for the next character read and for line continuation. Options,
+ if supplied, have the following meanings:
--aa _a_n_a_m_e
The words are assigned to sequential indices of the array
variable _a_n_a_m_e, starting at 0. _a_n_a_m_e is unset before any
new values are assigned. Other _n_a_m_e arguments are
ignored.
--dd _d_e_l_i_m
- The first character of _d_e_l_i_m is used to terminate the
+ The first character of _d_e_l_i_m is used to terminate the
input line, rather than newline.
--ee If the standard input is coming from a terminal, rreeaaddlliinnee
- (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
- line uses the current (or default, if line editing was
+ (see RREEAADDLLIINNEE above) is used to obtain the line. Read-
+ line uses the current (or default, if line editing was
not previously active) editing settings.
--ii _t_e_x_t
- If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
+ If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
placed into the editing buffer before editing begins.
--nn _n_c_h_a_r_s
- rreeaadd returns after reading _n_c_h_a_r_s characters rather than
- waiting for a complete line of input, but honor a delim-
- iter if fewer than _n_c_h_a_r_s characters are read before the
+ rreeaadd returns after reading _n_c_h_a_r_s characters rather than
+ waiting for a complete line of input, but honor a delim-
+ iter if fewer than _n_c_h_a_r_s characters are read before the
delimiter.
--NN _n_c_h_a_r_s
- rreeaadd returns after reading exactly _n_c_h_a_r_s characters
- rather than waiting for a complete line of input, unless
- EOF is encountered or rreeaadd times out. Delimiter charac-
- ters encountered in the input are not treated specially
- and do not cause rreeaadd to return until _n_c_h_a_r_s characters
+ rreeaadd returns after reading exactly _n_c_h_a_r_s characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or rreeaadd times out. Delimiter charac-
+ ters encountered in the input are not treated specially
+ and do not cause rreeaadd to return until _n_c_h_a_r_s characters
are read.
--pp _p_r_o_m_p_t
Display _p_r_o_m_p_t on standard error, without a trailing new-
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
--rr Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not be used as a line
+ slash is considered to be part of the line. In particu-
+ lar, a backslash-newline pair may not be used as a line
continuation.
--ss Silent mode. If input is coming from a terminal, charac-
ters are not echoed.
--tt _t_i_m_e_o_u_t
- Cause rreeaadd to time out and return failure if a complete
- line of input is not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_-
- _o_u_t may be a decimal number with a fractional portion
- following the decimal point. This option is only effec-
- tive if rreeaadd is reading input from a terminal, pipe, or
- other special file; it has no effect when reading from
- regular files. If _t_i_m_e_o_u_t is 0, rreeaadd 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.
+ Cause rreeaadd to time out and return failure if a complete
+ line of input (or a specified number of characters) is
+ not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci-
+ mal number with a fractional portion following the deci-
+ mal point. This option is only effective if rreeaadd is
+ reading input from a terminal, pipe, or other special
+ file; it has no effect when reading from regular files.
+ If rreeaadd times out, rreeaadd saves any partial input read into
+ the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd
+ returns immediately, without trying to read any data.
+ The exit status is 0 if input is available on the speci-
+ fied file descriptor, non-zero otherwise. The exit sta-
+ tus is greater than 128 if the timeout is exceeded.
--uu _f_d Read input from file descriptor _f_d.
If no _n_a_m_e_s are supplied, the line read is assigned to the vari-
able RREEPPLLYY. The return code is zero, unless end-of-file is
encountered, rreeaadd times out (in which case the return code is
- greater than 128), or an invalid file descriptor is supplied as
- the argument to --uu.
-
- rreeaaddoonnllyy [--aaAAppff] [_n_a_m_e[=_w_o_r_d] ...]
- The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
- may not be changed by subsequent assignment. If the --ff option
- is supplied, the functions corresponding to the _n_a_m_e_s are so
- marked. The --aa option restricts the variables to indexed
- arrays; the --AA option restricts the variables to associative
- arrays. If no _n_a_m_e arguments are given, or if the --pp option is
- supplied, a list of all readonly names is printed. The --pp
- option causes output to be displayed in a format that may be
- reused as input. If a variable name is followed by =_w_o_r_d, the
- value of the variable is set to _w_o_r_d. The return status is 0
- unless an invalid option is encountered, one of the _n_a_m_e_s is not
- a valid shell variable name, or --ff is supplied with a _n_a_m_e that
- is not a function.
+ greater than 128), a variable assignment error (such as assign-
+ ing to a readonly variable) occurs, or an invalid file descrip-
+ tor is supplied as the argument to --uu.
+
+ rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...]
+ The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
+ may not be changed by subsequent assignment. If the --ff option
+ is supplied, the functions corresponding to the _n_a_m_e_s are so
+ marked. The --aa option restricts the variables to indexed
+ arrays; the --AA option restricts the variables to associative
+ arrays. If both options are supplied, --AA takes precedence. If
+ no _n_a_m_e arguments are given, or if the --pp option is supplied, a
+ list of all readonly names is printed. The other options may be
+ used to restrict the output to a subset of the set of readonly
+ names. The --pp option causes output to be displayed in a format
+ that may be reused as input. If a variable name is followed by
+ =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return
+ status is 0 unless an invalid option is encountered, one of the
+ _n_a_m_e_s is not a valid shell variable name, or --ff is supplied with
+ a _n_a_m_e that is not a function.
rreettuurrnn [_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
- executed in the function body. If used outside a function, but
- during execution of a script by the .. (ssoouurrccee) command, it
- causes the shell to stop executing that script and return either
- _n or the exit status of the last command executed within the
- script as the exit status of the script. If used outside a
- function and not during execution of a script by .., the return
- status is false. Any command associated with the RREETTUURRNN trap is
- executed before execution resumes after the function or script.
+ Causes a function to stop executing and return the value speci-
+ fied by _n to its caller. If _n is omitted, the return status is
+ that of the last command executed in the function body. If
+ rreettuurrnn is used outside a function, but during execution of a
+ script by the .. (ssoouurrccee) command, it causes the shell to stop
+ executing that script and return either _n or the exit status of
+ the last command executed within the script as the exit status
+ of the script. If _n is supplied, the return value is its least
+ significant 8 bits. The return status is non-zero if rreettuurrnn is
+ supplied a non-numeric argument, or is used outside a function
+ and not during execution of a script by .. or ssoouurrccee. Any com-
+ mand associated with the RREETTUURRNN trap is executed before execu-
+ tion resumes after the function or script.
sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- Without options, the name and value of each shell variable are
+ 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. Read-only variables can-
- not be reset. In _p_o_s_i_x _m_o_d_e, 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 option processing are treated as val-
+ not be reset. In _p_o_s_i_x mode, 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 option processing are treated as val-
ues for the positional parameters and are assigned, in order, to
- $$11, $$22, ...... $$_n. Options, if specified, have the following
+ $$11, $$22, ...... $$_n. Options, if specified, have the following
meanings:
- --aa Automatically mark variables and functions which are
- modified or created for export to the environment of
+ --aa Automatically mark variables and functions which are
+ modified or created for export to the environment of
subsequent commands.
- --bb Report the status of terminated background jobs immedi-
+ --bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
- --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
- single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _s_u_b_s_h_e_l_l command enclosed in
- parentheses, or one of the commands executed as part of
- a command list enclosed by braces (see SSHHEELLLL GGRRAAMMMMAARR
- above) exits with a non-zero status. The shell does not
- exit if the command that fails is part of the command
- list immediately following a wwhhiillee or uunnttiill keyword,
- part of the test following the iiff or eelliiff reserved
- words, part of any command executed in a &&&& or |||| list
- except the command following the final &&&& or ||||, any
- command in a pipeline but the last, or if the command's
- return value is being inverted with !!. A trap on EERRRR,
+ --ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
+ single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d
+ (see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero sta-
+ tus. The shell does not exit if the command that fails
+ is part of the command list immediately following a
+ wwhhiillee or uunnttiill keyword, part of the test following the
+ iiff or eelliiff reserved words, part of any command executed
+ in a &&&& or |||| list except the command following the
+ final &&&& or ||||, any command in a pipeline but the last,
+ or if the command's return value is being inverted with
+ !!. If a compound command other than a subshell returns
+ a non-zero status because a command failed while --ee was
+ being ignored, the shell does not exit. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
+
+ If a compound command or shell function executes in a
+ context where --ee is being ignored, none of the commands
+ executed within the compound command or function body
+ will be affected by the --ee setting, even if --ee is set
+ and a command returns a failure status. If a compound
+ command or shell function sets --ee while executing in a
+ context where --ee is ignored, that setting will not have
+ any effect until the compound command or the command
+ containing the function call completes.
--ff Disable pathname expansion.
--hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
@@ -1026,10 +1080,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
that precede the command name.
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
- support it (see JJOOBB CCOONNTTRROOLL above). Background pro-
- cesses run in a separate process group and a line con-
- taining their exit status is printed upon their comple-
- tion.
+ support it (see JJOOBB CCOONNTTRROOLL above). All processes run
+ in a separate process group. When a background job com-
+ pletes, the shell prints a line containing its exit sta-
+ tus.
--nn Read commands but do not execute them. This may be used
to check a shell script for syntax errors. This is
ignored by interactive shells.
@@ -1079,7 +1133,9 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
is disabled by default.
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
- match the standard (_p_o_s_i_x _m_o_d_e).
+ match the standard (_p_o_s_i_x _m_o_d_e). See SSEEEE AALLSSOO
+ below for a reference to a document that details
+ how posix mode affects bash's behavior.
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
@@ -1128,7 +1184,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
- --PP If set, the shell does not follow symbolic links when
+ --PP If set, the shell does not resolve symbolic links when
executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
@@ -1164,12 +1220,14 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
zero if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
- Toggle the values of variables controlling optional shell behav-
- ior. With no options, or with the --pp option, a list of all set-
- table options is displayed, with an indication of whether or not
- each is set. The --pp option causes output to be displayed in a
- form that may be reused as input. Other options have the fol-
- lowing meanings:
+ Toggle the values of settings controlling optional shell behav-
+ ior. The settings can be either those listed below, or, if the
+ --oo option is used, those available with the --oo option to the sseett
+ builtin command. With no options, or with the --pp option, a list
+ of all settable options is displayed, with an indication of
+ whether or not each is set. The --pp option causes output to be
+ displayed in a form that may be reused as input. Other options
+ have the following meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
--qq Suppresses normal output (quiet mode); the return status
@@ -1180,10 +1238,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
- If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, the dis-
- play is limited to those options which are set or unset, respec-
- tively. Unless otherwise noted, the sshhoopptt options are disabled
- (unset) by default.
+ If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
+ shows only those options which are set or unset, respectively.
+ Unless otherwise noted, the sshhoopptt options are disabled (unset)
+ by default.
The return status when listing options is zero if all _o_p_t_n_a_m_e_s
are enabled, non-zero otherwise. When setting or unsetting
@@ -1203,7 +1261,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
ter, and one character too many. If a correction is
- found, the corrected file name is printed, and the com-
+ found, the corrected filename is printed, and the com-
mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
@@ -1228,146 +1286,183 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccoommppaatt3311
If set, bbaasshh changes its behavior to that of version 3.1
with respect to quoted arguments to the [[[[ conditional
- command's ==~~ operator.
+ command's ==~~ operator and locale-specific string compar-
+ ison when using the [[[[ conditional command's << and >>
+ operators. Bash versions prior to bash-4.1 use ASCII
+ collation and _s_t_r_c_m_p(3); bash-4.1 and later use the cur-
+ rent locale's collation sequence and _s_t_r_c_o_l_l(3).
ccoommppaatt3322
If set, bbaasshh changes its behavior to that of version 3.2
with respect to locale-specific string comparison when
- using the [[[[ conditional command's << and >> operators.
- Bash versions prior to bash-4.1 use ASCII collation and
- _s_t_r_c_m_p(3); bash-4.1 and later use the current locale's
- collation sequence and _s_t_r_c_o_l_l(3).
+ using the [[[[ conditional command's << and >> operators
+ (see previous item).
ccoommppaatt4400
If set, bbaasshh changes its behavior to that of version 4.0
with respect to locale-specific string comparison when
using the [[[[ conditional command's << and >> operators
- (see previous item) and the effect of interrupting a
- command list.
+ (see description of ccoommppaatt3311) and the effect of inter-
+ rupting a command list. Bash versions 4.0 and later
+ interrupt the list as if the shell received the inter-
+ rupt; previous versions continue with the next command
+ in the list.
ccoommppaatt4411
- @item compat41 If set, bbaasshh, when in posix mode, treats
- a single quote in a double-quoted parameter expansion as
- a special character. The single quotes must match (an
- even number) and the characters between the single
- quotes are considered quoted. This is the behavior of
- posix mode through version 4.1. The default bash behav-
- ior remains as in previous versions.
+ If set, bbaasshh, when in _p_o_s_i_x mode, treats a single quote
+ in a double-quoted parameter expansion as a special
+ character. The single quotes must match (an even num-
+ ber) and the characters between the single quotes are
+ considered quoted. This is the behavior of posix mode
+ through version 4.1. The default bash behavior remains
+ as in previous versions.
+ ccoommppaatt4422
+ If set, bbaasshh does not process the replacement string in
+ the pattern substitution word expansion using quote
+ removal.
+ ccoommpplleettee__ffuullllqquuoottee
+ If set, bbaasshh quotes all shell metacharacters in file-
+ names and directory names when performing completion.
+ If not set, bbaasshh removes metacharacters such as the dol-
+ lar sign from the set of characters that will be quoted
+ in completed filenames when these metacharacters appear
+ in shell variable references in words to be completed.
+ This means that dollar signs in variable names that
+ expand to directories will not be quoted; however, any
+ dollar signs appearing in filenames will not be quoted,
+ either. This is active only when bash is using back-
+ slashes to quote completed filenames. This variable is
+ set by default, which is the default bash behavior in
+ versions through 4.2.
+ ddiirreexxppaanndd
+ If set, bbaasshh replaces directory names with the results
+ of word expansion when performing filename completion.
+ This changes the contents of the readline editing
+ buffer. If not set, bbaasshh attempts to preserve what the
+ user typed.
ddiirrssppeellll
- If set, bbaasshh attempts spelling correction on directory
- names during word completion if the directory name ini-
+ If set, bbaasshh attempts spelling correction on directory
+ names during word completion if the directory name ini-
tially supplied does not exist.
- ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
+ ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
- not execute the file specified as an argument to the
- eexxeecc builtin command. An interactive shell does not
+ not execute the file specified as an argument to the
+ eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
- If set, aliases are expanded as described above under
+ If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
eexxttddeebbuugg
- If set, behavior intended for use by debuggers is
+ If set, behavior intended for use by debuggers is
enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
- 22.. If the command run by the DDEEBBUUGG trap returns a
- non-zero value, the next command is skipped and
+ 22.. If the command run by the DDEEBBUUGG trap returns a
+ non-zero value, the next command is skipped and
not executed.
- 33.. If the command run by the DDEEBBUUGG trap returns a
- value of 2, and the shell is executing in a sub-
- routine (a shell function or a shell script exe-
- cuted by the .. or ssoouurrccee builtins), a call to
+ 33.. If the command run by the DDEEBBUUGG trap returns a
+ value of 2, and the shell is executing in a sub-
+ routine (a shell function or a shell script exe-
+ cuted by the .. or ssoouurrccee builtins), a call to
rreettuurrnn is simulated.
- 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
+ 44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
- 55.. Function tracing is enabled: command substitu-
+ 55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
- 66.. Error tracing is enabled: command substitution,
- shell functions, and subshells invoked with ((
+ 66.. Error tracing is enabled: command substitution,
+ shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
- If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
- within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
+ If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
+ within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
- If set, patterns which fail to match filenames during
+ If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
- If set, the suffixes specified by the FFIIGGNNOORREE shell
- variable cause words to be ignored when performing word
+ If set, the suffixes specified by the FFIIGGNNOORREE shell
+ variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a
- description of FFIIGGNNOORREE. This option is enabled by
+ description of FFIIGGNNOORREE. This option is enabled by
default.
+ gglloobbaasscciiiirraannggeess
+ If set, range expressions used in pattern matching
+ bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
+ as if in the traditional C locale when performing com-
+ parisons. That is, the current locale's collating
+ sequence is not taken into account, so bb will not col-
+ late between AA and BB, and upper-case and lower-case
+ ASCII characters will collate together.
gglloobbssttaarr
If set, the pattern **** used in a pathname expansion con-
- text will match a files and zero or more directories and
- subdirectories. If the pattern is followed by a //, only
- directories and subdirectories match.
+ text will match all files and zero or more directories
+ and subdirectories. If the pattern is followed by a //,
+ only directories and subdirectories match.
ggnnuu__eerrrrffmmtt
If set, shell error messages are written in the standard
GNU error message format.
hhiissttaappppeenndd
- If set, the history list is appended to the file named
- by the value of the HHIISSTTFFIILLEE variable when the shell
+ If set, the history list is appended to the file named
+ by the value of the HHIISSTTFFIILLEE variable when the shell
exits, rather than overwriting the file.
hhiissttrreeeeddiitt
- If set, and rreeaaddlliinnee is being used, a user is given the
+ If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
- If set, and rreeaaddlliinnee is being used, the results of his-
- tory substitution are not immediately passed to the
- shell parser. Instead, the resulting line is loaded
+ If set, and rreeaaddlliinnee is being used, the results of his-
+ tory substitution are not immediately passed to the
+ shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
- perform hostname completion when a word containing a @@
- is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
+ perform hostname completion when a word containing a @@
+ is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
- and all remaining characters on that line to be ignored
- in an interactive shell (see CCOOMMMMEENNTTSS above). This
+ and all remaining characters on that line to be ignored
+ in an interactive shell (see CCOOMMMMEENNTTSS above). This
option is enabled by default.
llaassttppiippee
- If set, and job control is not active, the shell runs
+ If set, and job control is not active, the shell runs
the last command of a pipeline not executed in the back-
ground in the current shell environment.
- lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
+ lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
llooggiinn__sshheellll
- The shell sets this option if it is started as a login
- shell (see IINNVVOOCCAATTIIOONN above). The value may not be
+ The shell sets this option if it is started as a login
+ shell (see IINNVVOOCCAATTIIOONN above). The value may not be
changed.
mmaaiillwwaarrnn
- If set, and a file that bbaasshh is checking for mail has
- been accessed since the last time it was checked, the
- message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
+ If set, and a file that bbaasshh is checking for mail has
+ been accessed since the last time it was checked, the
+ message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
- If set, and rreeaaddlliinnee is being used, bbaasshh will not
+ If set, and rreeaaddlliinnee is being used, bbaasshh will not
attempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
- If set, bbaasshh matches filenames in a case-insensitive
+ If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
nnooccaasseemmaattcchh
- If set, bbaasshh matches patterns in a case-insensitive
+ If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands.
nnuullllgglloobb
- If set, bbaasshh allows patterns which match no files (see
- PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
+ If set, bbaasshh allows patterns which match no files (see
+ PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
@@ -1375,48 +1470,50 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
enabled by default.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
- mand substitution, arithmetic expansion, and quote
- removal after being expanded as described in PPRROOMMPPTTIINNGG
+ mand substitution, arithmetic expansion, and quote
+ removal after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
rreessttrriicctteedd__sshheellll
- The shell sets this option if it is started in
+ The shell sets this option if it is started in
restricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
- may not be changed. This is not reset when the startup
- files are executed, allowing the startup files to dis-
+ may not be changed. This is not reset when the startup
+ files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
- If set, the sshhiifftt builtin prints an error message when
+ If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
- find the directory containing the file supplied as an
+ find the directory containing the file supplied as an
argument. This option is enabled by default.
xxppgg__eecchhoo
- If set, the eecchhoo builtin expands backslash-escape
+ If set, the eecchhoo builtin expands backslash-escape
sequences by default.
+
ssuussppeenndd [--ff]
- Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
+ Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell cannot be suspended; the --ff option can be
used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and --ff is not sup-
+ tus is 0 unless the shell is a login shell and --ff is not sup-
plied, or if job control is not enabled.
+
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
- Return a status of 0 or 1 depending on the evaluation of the
- conditional expression _e_x_p_r. Each operator and operand must be
- a separate argument. Expressions are composed of the primaries
- described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not
- accept any options, nor does it accept and ignore an argument of
- ---- as signifying the end of options.
-
- Expressions may be combined using the following operators,
+ Return a status of 0 (true) or 1 (false) depending on the evalu-
+ ation of the conditional expression _e_x_p_r. Each operator and op-
+ erand must be a separate argument. Expressions are composed of
+ the primaries described above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
+ tteesstt does not accept any options, nor does it accept and ignore
+ an argument of ---- as signifying the end of options.
+
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
- depends on the number of arguments; see below. Operator prece-
+ depends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
- Returns the value of _e_x_p_r. This may be used to override
+ Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1433,76 +1530,79 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
2 arguments
If the first argument is !!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
+ only if the second argument is null. If the first argu-
+ ment is one of the unary conditional operators listed
+ above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
- If the second argument is one of the binary conditional
+ If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
- using the first and third arguments as operands. The --aa
- and --oo 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
+ using the first and third arguments as operands. The --aa
+ and --oo 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. Other-
+ is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !!, the result is the negation of
- the three-argument expression composed of the remaining
+ the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
+ uated according to precedence using the rules listed
above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- When used with tteesstt or [[, the << and >> operators sort lexico-
+ When used with tteesstt or [[, the << and >> operators sort lexico-
graphically using ASCII ordering.
- ttiimmeess Print the accumulated user and system times for the shell and
+ ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
- The command _a_r_g is to be read and executed when the shell
- receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
- single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
- original disposition (the value it had upon entrance to the
- shell). If _a_r_g is the null string the signal specified by each
- _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
- If _a_r_g is not present and --pp has been supplied, then the trap
- commands associated with each _s_i_g_s_p_e_c are displayed. If no
- arguments are supplied or if only --pp is given, ttrraapp prints the
- list of commands associated with each signal. The --ll option
- causes the shell to print a list of signal names and their cor-
- responding numbers. Each _s_i_g_s_p_e_c is either a signal name
- defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
+ The command _a_r_g is to be read and executed when the shell
+ receives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a
+ single _s_i_g_s_p_e_c) or --, each specified signal is reset to its
+ original disposition (the value it had upon entrance to the
+ shell). If _a_r_g is the null string the signal specified by each
+ _s_i_g_s_p_e_c is ignored by the shell and by the commands it invokes.
+ If _a_r_g is not present and --pp has been supplied, then the trap
+ commands associated with each _s_i_g_s_p_e_c are displayed. If no
+ arguments are supplied or if only --pp is given, ttrraapp prints the
+ list of commands associated with each signal. The --ll option
+ causes the shell to print a list of signal names and their cor-
+ responding numbers. Each _s_i_g_s_p_e_c is either a signal name
+ defined in <_s_i_g_n_a_l_._h>, or a signal number. Signal names are
case insensitive and the SSIIGG prefix is optional.
- If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
- from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
- cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
- _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
- first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
- above). Refer to the description of the eexxttddeebbuugg option to the
+ If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
+ from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
+ cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
+ _s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
+ first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
+ above). Refer to the description of the eexxttddeebbuugg option to the
sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
ishes executing.
- If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a sim-
- ple command has a non-zero exit status, subject to the following
- conditions. The EERRRR trap is not executed if the failed command
- is part of the command list immediately following a wwhhiillee or
- uunnttiill keyword, part of the test in an _i_f statement, part of a
- command executed in a &&&& or |||| list, or if the command's return
- value is being inverted via !!. These are the same conditions
- obeyed by the eerrrreexxiitt option.
+ If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a a
+ pipeline (which may consist of a single simple command), a list,
+ or a compound command returns a non-zero exit status, subject to
+ the following conditions. The EERRRR trap is not executed if the
+ failed command is part of the command list immediately following
+ a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
+ part of a command executed in a &&&& or |||| list except the command
+ following the final &&&& or ||||, any command in a pipeline but the
+ last, or if the command's return value is being inverted using
+ !!. These are the same conditions obeyed by the eerrrreexxiitt (--ee)
+ option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to
@@ -1522,14 +1622,14 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
fied as a command name, or nothing if ``type -t name'' would not
return _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
- hashed, --pp and --PP print the hashed value, not necessarily the
- file that appears first in PPAATTHH. If the --aa option is used, ttyyppee
- prints all of the places that contain an executable named _n_a_m_e.
- This includes aliases and functions, if and only if the --pp
- option is not also used. The table of hashed commands is not
- consulted when using --aa. The --ff option suppresses shell func-
- tion lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true if
- all of the arguments are found, false if any are not found.
+ hashed, --pp and --PP print the hashed value, which is not necessar-
+ ily the file that appears first in PPAATTHH. If the --aa option is
+ used, ttyyppee prints all of the places that contain an executable
+ named _n_a_m_e. This includes aliases and functions, if and only if
+ the --pp option is not also used. The table of hashed commands is
+ not consulted when using --aa. The --ff option suppresses shell
+ function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true
+ if all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSSTTaabbccddeeffiillmmnnppqqrrssttuuvvxx [_l_i_m_i_t]]
Provides control over the resources available to the shell and
@@ -1572,13 +1672,13 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--xx The maximum number of file locks
--TT The maximum number of threads
- If _l_i_m_i_t is given, it is the new value of the specified resource
- (the --aa option is display only). If no option is given, then --ff
- is assumed. Values are in 1024-byte increments, except for --tt,
- which is in seconds, --pp, which is in units of 512-byte blocks,
- and --TT, --bb, --nn, and --uu, which are unscaled values. The return
- status is 0 unless an invalid option or argument is supplied, or
- an error occurs while setting a new limit.
+ If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
+ new value of the specified resource. If no option is given,
+ then --ff is assumed. Values are in 1024-byte increments, except
+ for --tt, which is in seconds; --pp, which is in units of 512-byte
+ blocks; and --TT, --bb, --nn, and --uu, which are unscaled values. The
+ return status is 0 unless an invalid option or argument is sup-
+ plied, or an error occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
@@ -1597,31 +1697,38 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
- uunnsseett [-ffvv] [_n_a_m_e ...]
+ uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
For each _n_a_m_e, remove the corresponding variable or function.
- If no options are supplied, or the --vv option is given, each _n_a_m_e
- refers to a shell variable. Read-only variables may not be
+ If the --vv option is given, each _n_a_m_e refers to a shell variable,
+ and that variable is removed. Read-only variables may not be
unset. If --ff is specified, each _n_a_m_e refers to a shell func-
- tion, and the function definition is removed. Each unset vari-
- able or function is removed from the environment passed to sub-
- sequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANNDDOOMM, SSEECCOONNDDSS,
- LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are unset, they
- lose their special properties, even if they are subsequently
- reset. The exit status is true unless a _n_a_m_e is readonly.
-
- wwaaiitt [_n _._._.]
- Wait for each specified process and return its termination sta-
- tus. Each _n may be a process ID or a job specification; if a
+ tion, and the function definition is removed. If the --nn option
+ is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
+ _n_a_m_e will be unset rather than the variable it references. --nn
+ has no effect if the --ff option is supplied. If no options are
+ supplied, each _n_a_m_e refers to a variable; if there is no vari-
+ able by that name, any function with that name is unset. Each
+ unset variable or function is removed from the environment
+ passed to subsequent commands. If any of CCOOMMPP__WWOORRDDBBRREEAAKKSS, RRAANN--
+ DDOOMM, SSEECCOONNDDSS, LLIINNEENNOO, HHIISSTTCCMMDD, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, or DDIIRRSSTTAACCKK are
+ unset, they lose their special properties, even if they are sub-
+ sequently reset. The exit status is true unless a _n_a_m_e is read-
+ only.
+
+ wwaaiitt [--nn] [_n _._._.]
+ Wait for each specified child process and return its termination
+ status. Each _n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are
waited for. If _n is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If _n
- specifies a non-existent process or job, the return status is
- 127. Otherwise, the return status is the exit status of the
- last process or job waited for.
+ cesses are waited for, and the return status is zero. If the --nn
+ option is supplied, wwaaiitt waits for any job to terminate and
+ returns its exit status. If _n specifies a non-existent process
+ or job, the return status is 127. Otherwise, the return status
+ is the exit status of the last process or job waited for.
SSEEEE AALLSSOO
bash(1), sh(1)
-GNU Bash-4.0 2004 Apr 20 BASH_BUILTINS(1)
+GNU Bash-4.2 2004 Apr 20 BASH_BUILTINS(1)
diff --git a/doc/builtins.1 b/doc/builtins.1
index bf8bfec2..829a49c2 100644
--- a/doc/builtins.1
+++ b/doc/builtins.1
@@ -1,6 +1,13 @@
.\" 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-4.0"
+.\"
+.\" File Name macro. This used to be `.PN', for Path Name,
+.\" but Sun doesn't seem to like that very much.
+.\"
+.de FN
+\fI\|\\$1\|\fP
+..
+.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash-4.2"
.SH NAME
bash, :, ., [, alias, bg, bind, break, builtin, caller,
cd, command, compgen, complete,
diff --git a/doc/builtins.ps b/doc/builtins.ps
index 6dde00b5..5d49778a 100644
--- a/doc/builtins.ps
+++ b/doc/builtins.ps
@@ -1,15 +1,15 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Tue Dec 28 14:30:24 2010
+%%CreationDate: Mon Feb 24 08:28:31 2014
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Symbol
%%+ font Courier
%%DocumentSuppliedResources: procset grops 1.19 2
-%%Pages: 22
+%%Pages: 23
%%PageOrder: Ascend
-%%DocumentMedia: Default 595 842 0 () ()
+%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
@@ -191,7 +191,7 @@ setpacking
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
-<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
@@ -199,11 +199,11 @@ setpacking
%%IncludeResource: font Symbol
%%IncludeResource: font Courier
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
-/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
@@ -278,15 +278,16 @@ E F0(])A F2(sour)108 303.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3
(ar)A(guments)-.37 E F0(])A 1.02(Read and e)144 315.6 R -.15(xe)-.15 G
1.02(cute commands from).15 F F3(\214lename)5.43 E F0 1.02
(in the current shell en)3.7 F 1.02(vironment and return the e)-.4 F
-(xit)-.15 E 1.68(status of the last command e)144 327.6 R -.15(xe)-.15 G
-1.68(cuted from).15 F F3(\214lename)4.18 E F0 6.68(.I).18 G(f)-6.68 E F3
-(\214lename)6.09 E F0 1.68(does not contain a slash, \214le)4.36 F .608
-(names in)144 339.6 R/F4 9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E
-F0 .608(are used to \214nd the directory containing)2.858 F F3
-(\214lename)3.108 E F0 5.608(.T).18 G .608(he \214le searched for in)
--5.608 F F4 -.666(PA)3.108 G(TH)-.189 E F0 .832(need not be e)144 351.6
-R -.15(xe)-.15 G 3.332(cutable. When).15 F F2(bash)3.332 E F0 .832
-(is not in)3.332 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .833
+(xit)-.15 E 1.458(status of the last command e)144 327.6 R -.15(xe)-.15
+G 1.458(cuted from).15 F F3(\214lename)3.958 E F0 6.458(.I).18 G(f)
+-6.458 E F3(\214lename)5.868 E F0 1.458
+(does not contain a slash, \214le-)4.138 F .608(names in)144 339.6 R/F4
+9/Times-Bold@0 SF -.666(PA)3.108 G(TH)-.189 E F0 .608
+(are used to \214nd the directory containing)2.858 F F3(\214lename)3.108
+E F0 5.608(.T).18 G .608(he \214le searched for in)-5.608 F F4 -.666(PA)
+3.108 G(TH)-.189 E F0 .832(need not be e)144 351.6 R -.15(xe)-.15 G
+3.332(cutable. When).15 F F2(bash)3.332 E F0 .832(is not in)3.332 F F3
+.832(posix mode)3.332 F F0 3.332(,t)C .833
(he current directory is searched if no)-3.332 F .982
(\214le is found in)144 363.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F2(sour)3.481 E(cepath)-.18
@@ -333,7 +334,7 @@ F0 5.745(.I)C(f)-5.745 E F3(job-)4.985 E(spec)144 541.2 Q F0 .672
(peci\214ed)-2.919 E F3(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
(ot)-2.919 E(found or w)144 565.2 Q(as started without job control.)-.1
E F2(bind)108 582 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F2(\255lpsvPSV)-2.5 E F0(])A F2(bind)108 594 Q F0([)2.5 E F2
+2.5(][)C F2(\255lpsvPSVX)-2.5 E F0(])A F2(bind)108 594 Q F0([)2.5 E F2
<ad6d>A F3 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F2<ad71>-2.5 E F3
(function)2.5 E F0 2.5(][)C F2<ad75>-2.5 E F3(function)2.5 E F0 2.5(][)C
F2<ad72>-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 606 Q F0([)
@@ -361,7 +362,7 @@ E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.659
180 726 S(ymap)-.2 E F0 3.193(names are)5.883 F F3 3.193
(emacs, emacs\255standar)5.693 F 3.192
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-F0(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP
+F0(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -414,2309 +415,2496 @@ E F2 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G
(cuted command changes the v).15 F 2.011(alue of)-.25 F F3
(READLINE_LINE)4.511 E F0(or)4.261 E F3(READLINE_POINT)180 360 Q/F4 9
/Times-Roman@0 SF(,)A F0(those ne)2.25 E 2.5(wv)-.25 G
-(alues will be re\215ected in the editing state.)-2.75 E(The return v)
-144 376.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+(alues will be re\215ected in the editing state.)-2.75 E F2<ad58>144 372
+Q F0 .829(List all k)23.08 F 1.129 -.15(ey s)-.1 H .829
+(equences bound to shell commands and the associated commands in a for)
+.15 F(-)-.2 E(mat that can be reused as input.)180 384 Q(The return v)
+144 400.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F2(br)108 393.6 Q(eak)-.18 E F0([)2.5 E F1(n)A F0(])A .054
-(Exit from within a)144 405.6 R F2 -.25(fo)2.554 G(r).25 E F0(,)A F2
-(while)2.554 E F0(,)A F2(until)2.555 E F0 2.555(,o)C(r)-2.555 E F2
+E F2(br)108 417.6 Q(eak)-.18 E F0([)2.5 E F1(n)A F0(])A .055
+(Exit from within a)144 429.6 R F2 -.25(fo)2.555 G(r).25 E F0(,)A F2
+(while)2.555 E F0(,)A F2(until)2.555 E F0 2.555(,o)C(r)-2.555 E F2
(select)2.555 E F0 2.555(loop. If)2.555 F F1(n)2.555 E F0 .055
(is speci\214ed, break)2.555 F F1(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
-(ls.).15 E F1(n)5.415 E F0 .055(must be)2.795 F/F5 10/Symbol SF<b3>2.555
-E F0(1.)2.555 E(If)144 417.6 Q F1(n)3.075 E F0 .215(is greater than the\
- number of enclosing loops, all enclosing loops are e)2.955 F 2.714
-(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(is 0 unless)144
-429.6 Q F1(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F2 -.2
-(bu)108 446.4 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
-F1(ar)A(guments)-.37 E F0(])A(Ex)144 458.4 Q .792
-(ecute the speci\214ed shell b)-.15 F .792(uiltin, passing it)-.2 F F1
+(ls.).15 E F1(n)5.414 E F0 .054(must be)2.794 F/F5 10/Symbol SF<b3>2.554
+E F0(1.)2.554 E(If)144 441.6 Q F1(n)3.074 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.954 F 2.715
+(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
+453.6 Q F1(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F2 -.2
+(bu)108 470.4 S(iltin).2 E F1(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F1(ar)A(guments)-.37 E F0(])A(Ex)144 482.4 Q .793
+(ecute the speci\214ed shell b)-.15 F .793(uiltin, passing it)-.2 F F1
(ar)3.293 E(guments)-.37 E F0 3.293(,a).27 G .793(nd return its e)-3.293
-F .793(xit status.)-.15 F .793(This is useful)5.793 F .616
+F .792(xit status.)-.15 F .792(This is useful)5.792 F .615
(when de\214ning a function whose name is the same as a shell b)144
-470.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
-482.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
+494.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
+506.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 494.4 Q(alse if)-.1
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 518.4 Q(alse if)-.1
E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F2(caller)108 511.2 Q F0([)2.5 E F1 -.2(ex)C(pr)
-.2 E F0(])A .254(Returns the conte)144 523.2 R .254(xt of an)-.15 F
+(uiltin command.)-.2 E F2(caller)108 535.2 Q F0([)2.5 E F1 -.2(ex)C(pr)
+.2 E F0(])A .253(Returns the conte)144 547.2 R .254(xt of an)-.15 F
2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 535.2 Q
-(ce)-.18 E F0 -.2(bu)2.824 G 2.824(iltins\). W).2 F(ithout)-.4 E F1 -.2
-(ex)2.824 G(pr).2 E F0(,)A F2(caller)2.824 E F0 .324
+.254(cuted with the).15 F F2(.)2.754 E F0(or)2.754 E F2(sour)144 559.2 Q
+(ce)-.18 E F0 -.2(bu)2.825 G 2.825(iltins\). W).2 F(ithout)-.4 E F1 -.2
+(ex)2.825 G(pr).2 E F0(,)A F2(caller)2.825 E F0 .324
(displays the line number and source \214lename of the current)2.824 F
-.254(subroutine call.)144 547.2 R .254(If a non-ne)5.254 F -.05(ga)-.15
-G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
-F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
-(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
+.253(subroutine call.)144 571.2 R .253(If a non-ne)5.253 F -.05(ga)-.15
+G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .254
+(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
tine name, and source \214le corresponding to that position in the curr\
-ent e)144 559.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
-(This e)144 571.2 R .001(xtra information may be used, for e)-.15 F .001
-(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
-3.019(0. The)144 583.2 R .519(return v)3.019 F .519
-(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
-(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
-(does not corre-)3.02 F(spond to a v)144 595.2 Q
-(alid position in the call stack.)-.25 E F2(cd)108 612 Q F0([)2.5 E F2
-<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0(]]] [)A F1(dir)A F0(])
-A .21(Change the current directory to)144 624 R F1(dir)2.71 E F0 5.21
-(.T)C .21(he v)-5.21 F(ariable)-.25 E F3(HOME)2.71 E F0 .21(is the def)
-2.46 F(ault)-.1 E F1(dir)2.71 E F0 5.21(.T).73 G .21(he v)-5.21 F
-(ariable)-.25 E F3(CDP)2.71 E -.855(AT)-.666 G(H).855 E F0 .776
-(de\214nes the search path for the directory containing)144 636 R F1
-(dir)3.276 E F0 5.777(.A).73 G(lternati)-5.777 E 1.077 -.15(ve d)-.25 H
-.777(irectory names in).15 F F3(CDP)3.277 E -.855(AT)-.666 G(H).855 E F0
-.764(are separated by a colon \(:\).)144 648 R 3.264(An)5.764 G .764
-(ull directory name in)-3.264 F F3(CDP)3.264 E -.855(AT)-.666 G(H).855 E
-F0 .764(is the same as the current direc-)3.014 F(tory)144 660 Q 2.973
-(,i)-.65 G .473(.e., `)-2.973 F(`)-.74 E F2(.)A F0 -.74('')C 5.473(.I)
-.74 G(f)-5.473 E F1(dir)3.323 E F0(be)3.703 E .474
-(gins with a slash \(/\), then)-.15 F F3(CDP)2.974 E -.855(AT)-.666 G(H)
-.855 E F0 .474(is not used. The)2.724 F F2<ad50>2.974 E F0 .474
-(option says to use)2.974 F .58(the ph)144 672 R .58
-(ysical directory structure instead of follo)-.05 F .579
-(wing symbolic links \(see also the)-.25 F F2<ad50>3.079 E F0 .579
-(option to the)3.079 F F2(set)144 684 Q F0 -.2(bu)2.716 G .216
-(iltin command\); the).2 F F2<ad4c>2.716 E F0 .216
-(option forces symbolic links to be follo)2.716 F 2.717(wed. If)-.25 F
-(the)2.717 E F2<ad65>2.717 E F0 .217(option is sup-)2.717 F 1.087
-(plied with)144 696 R F2<ad50>3.587 E F0 3.587(,a)C 1.087
-(nd the current w)-3.587 F 1.086
-(orking directory cannot be successfully determined after a suc-)-.1 F
-.44(cessful directory change,)144 708 R F2(cd)2.94 E F0 .44
-(will return an unsuccessful status.)2.94 F .44(An ar)5.44 F .44
-(gument of)-.18 F F2<ad>2.94 E F0 .44(is equi)2.94 F -.25(va)-.25 G .44
-(lent to).25 F F3($OLDPWD)144 720 Q F4(.)A F0 1.045
-(If a non-empty directory name from)5.545 F F3(CDP)3.545 E -.855(AT)
--.666 G(H).855 E F0 1.044(is used, or if)3.295 F F2<ad>3.544 E F0 1.044
-(is the \214rst ar)3.544 F(gument,)-.18 E(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(2)203.725 E 0 Cg EP
+ent e)144 583.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
+144 595.2 Q(xtra information may be used, for e)-.15 E .001
+(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
+5.001 F 3.02(0. The)144 607.2 R .52(return v)3.02 F .52
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
+(cuting a subroutine call or).15 F F1 -.2(ex)3.019 G(pr).2 E F0 .519
+(does not corre-)3.019 F(spond to a v)144 619.2 Q
+(alid position in the call stack.)-.25 E F2(cd)108 636 Q F0([)2.5 E F2
+<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0(]] [\255@]] [)A F1
+(dir)A F0(])A .321(Change the current directory to)144 648 R F1(dir)
+2.821 E F0 5.321(.i)C(f)-5.321 E F1(dir)2.821 E F0 .322
+(is not supplied, the v)2.821 F .322(alue of the)-.25 F F3(HOME)2.822 E
+F0 .322(shell v)2.572 F .322(ariable is)-.25 F 1.036(the def)144 660 R
+3.536(ault. An)-.1 F 3.536(ya)-.15 G 1.035(dditional ar)-3.536 F 1.035
+(guments follo)-.18 F(wing)-.25 E F1(dir)3.535 E F0 1.035(are ignored.)
+3.535 F 1.035(The v)6.035 F(ariable)-.25 E F3(CDP)3.535 E -.855(AT)-.666
+G(H).855 E F0(de\214nes)3.285 E .849
+(the search path for the directory containing)144 672 R F1(dir)3.349 E
+F0 3.35(:e).73 G .85(ach directory name in)-3.35 F F3(CDP)3.35 E -.855
+(AT)-.666 G(H).855 E F0 .85(is searched for)3.1 F F1(dir)144 684 Q F0
+5.665(.A)C(lternati)-5.665 E .965 -.15(ve d)-.25 H .665
+(irectory names in).15 F F3(CDP)3.165 E -.855(AT)-.666 G(H).855 E F0
+.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .664
+(ull directory name)-3.165 F(in)144 696 Q F3(CDP)4.162 E -.855(AT)-.666
+G(H).855 E F0 1.662(is the same as the current directory)3.912 F 4.162
+(,i)-.65 G 1.662(.e., `)-4.162 F(`)-.74 E F2(.)A F0 -.74('')C 6.662(.I)
+.74 G(f)-6.662 E F1(dir)4.513 E F0(be)4.893 E 1.663
+(gins with a slash \(/\), then)-.15 F F3(CDP)144 708 Q -.855(AT)-.666 G
+(H).855 E F0 .347(is not used. The)2.598 F F2<ad50>2.847 E F0 .347
+(option causes)2.847 F F2(cd)2.847 E F0 .347(to use the ph)2.847 F .347
+(ysical directory structure by resolving)-.05 F 1.12
+(symbolic links while tra)144 720 R -.15(ve)-.2 G(rsing).15 E F1(dir)
+3.62 E F0 1.12(and before processing instances of)3.62 F F1(..)3.62 E F0
+(in)3.62 E F1(dir)3.62 E F0 1.12(\(see also the)3.62 F F2<ad50>3.62 E F0
+(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(2)203.725 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .021(and th\
-e directory change is successful, the absolute pathname of the ne)144 84
-R 2.522(ww)-.25 G .022(orking directory is writ-)-2.622 F .165
-(ten to the standard output.)144 96 R .165(The return v)5.165 F .165
-(alue is true if the directory w)-.25 F .165(as successfully changed; f)
--.1 F(alse)-.1 E(otherwise.)144 108 Q/F1 10/Times-Bold@0 SF(command)108
-124.8 Q F0([)2.5 E F1(\255pVv)A F0(])A/F2 10/Times-Italic@0 SF(command)
-2.5 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 136.8 Q F2
-(command)2.956 E F0(with)3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .395
+(option to the)144 84 R/F1 10/Times-Bold@0 SF(set)2.895 E F0 -.2(bu)
+2.895 G .395(iltin command\); the).2 F F1<ad4c>2.895 E F0 .395
+(option forces symbolic links to be follo)2.895 F .395(wed by resolv-)
+-.25 F .443(ing the link after processing instances of)144 96 R/F2 10
+/Times-Italic@0 SF(..)2.943 E F0(in)2.943 E F2(dir)2.943 E F0 5.443(.I)C
+(f)-5.443 E F2(..)2.943 E F0 .443(appears in)2.943 F F2(dir)2.943 E F0
+2.943(,i)C 2.943(ti)-2.943 G 2.944(sp)-2.943 G .444(rocessed by remo)
+-2.944 F(ving)-.15 E .744(the immediately pre)144 108 R .744
+(vious pathname component from)-.25 F F2(dir)3.244 E F0 3.244(,b)C .744
+(ack to a slash or the be)-3.244 F .744(ginning of)-.15 F F2(dir)3.244 E
+F0(.)A 1.465(If the)144 120 R F1<ad65>3.965 E F0 1.465
+(option is supplied with)3.965 F F1<ad50>3.965 E F0 3.965(,a)C 1.465
+(nd the current w)-3.965 F 1.466
+(orking directory cannot be successfully)-.1 F .468
+(determined after a successful directory change,)144 132 R F1(cd)2.968 E
+F0 .468(will return an unsuccessful status.)2.968 F .467(On systems)
+5.467 F .336(that support it, the)144 144 R F1<ad40>2.836 E F0 .336
+(option presents the e)2.836 F .336(xtended attrib)-.15 F .337
+(utes associated with a \214le as a directory)-.2 F(.)-.65 E .71(An ar)
+144 156 R .71(gument of)-.18 F F1<ad>3.21 E F0 .71(is con)3.21 F -.15
+(ve)-.4 G .71(rted to).15 F/F3 9/Times-Bold@0 SF($OLDPWD)3.21 E F0 .71
+(before the directory change is attempted.)2.96 F .71(If a non-)5.71 F
+.106(empty directory name from)144 168 R F3(CDP)2.606 E -.855(AT)-.666 G
+(H).855 E F0 .107(is used, or if)2.356 F F1<ad>2.607 E F0 .107
+(is the \214rst ar)2.607 F .107(gument, and the directory change)-.18 F
+.038(is successful, the absolute pathname of the ne)144 180 R 2.538(ww)
+-.25 G .038(orking directory is written to the standard output.)-2.638 F
+(The return v)144 192 Q(alue is true if the directory w)-.25 E
+(as successfully changed; f)-.1 E(alse otherwise.)-.1 E F1(command)108
+208.8 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)2.5 E F0([)2.5 E F2
+(ar)A(g)-.37 E F0(...])2.5 E(Run)144 220.8 Q F2(command)2.956 E F0(with)
+3.527 E F2(ar)3.087 E(gs)-.37 E F0 .257
(suppressing the normal shell function lookup. Only b)3.027 F .257
-(uiltin commands or)-.2 F .502(commands found in the)144 148.8 R/F3 9
-/Times-Bold@0 SF -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15
-(xe)-.15 G 3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502
-(option is gi)3.002 F -.15(ve)-.25 G .501(n, the search for).15 F F2
-(command)3.201 E F0(is)3.771 E .399(performed using a def)144 160.8 R
-.399(ault v)-.1 F .399(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0
-.4(that is guaranteed to \214nd all of the standard utilities.)2.649 F
-(If)5.4 E .175(either the)144 172.8 R F1<ad56>2.675 E F0(or)2.675 E F1
-<ad76>2.675 E F0 .175(option is supplied, a description of)2.675 F F2
-(command)2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F1<ad76>2.674 E
-F0 .174(option causes)2.674 F 3.11(as)144 184.8 S .61(ingle w)-3.11 F
-.61(ord indicating the command or \214le name used to in)-.1 F -.2(vo)
--.4 G -.1(ke).2 G F2(command)3.41 E F0 .61(to be displayed; the)3.88 F
-F1<ad56>144 196.8 Q F0 .25(option produces a more v)2.75 F .25
+(uiltin commands or)-.2 F .502(commands found in the)144 232.8 R F3
+-.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G 3.002
+(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)3.002
+F -.15(ve)-.25 G .501(n, the search for).15 F F2(command)3.201 E F0(is)
+3.771 E .399(performed using a def)144 244.8 R .399(ault v)-.1 F .399
+(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0 .4
+(that is guaranteed to \214nd all of the standard utilities.)2.649 F(If)
+5.4 E .175(either the)144 256.8 R F1<ad56>2.675 E F0(or)2.675 E F1<ad76>
+2.675 E F0 .175(option is supplied, a description of)2.675 F F2(command)
+2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F1<ad76>2.674 E F0 .174
+(option causes)2.674 F 3.317(as)144 268.8 S .817(ingle w)-3.317 F .817
+(ord indicating the command or \214lename used to in)-.1 F -.2(vo)-.4 G
+-.1(ke).2 G F2(command)3.618 E F0 .818(to be displayed; the)4.088 F F1
+<ad56>144 280.8 Q F0 .25(option produces a more v)2.75 F .25
(erbose description.)-.15 F .249(If the)5.25 F F1<ad56>2.749 E F0(or)
2.749 E F1<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
-(xit status)-.15 F 1.004(is 0 if)144 208.8 R F2(command)3.704 E F0 -.1
+(xit status)-.15 F 1.004(is 0 if)144 292.8 R F2(command)3.704 E F0 -.1
(wa)4.274 G 3.504(sf).1 G 1.005(ound, and 1 if not.)-3.504 F 1.005
(If neither option is supplied and an error occurred or)6.005 F F2
-(command)144.2 220.8 Q F0 1.599(cannot be found, the e)4.869 F 1.599
+(command)144.2 304.8 Q F0 1.599(cannot be found, the e)4.869 F 1.599
(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
-(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 232.8 S
+(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 316.8 S
(iltin is the e).2 E(xit status of)-.15 E F2(command)2.5 E F0(.).77 E F1
-(compgen)108 249.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
--.37 E F0(])A .012(Generate possible completion matches for)144 261.6 R
+(compgen)108 333.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .012(Generate possible completion matches for)144 345.6 R
F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
-(accepted by the)144 273.6 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981
+(accepted by the)144 357.6 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981
(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
3.481 E F1<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
--3.481 F 1.415(standard output.)144 285.6 R 1.415(When using the)6.415 F
+-3.481 F 1.415(standard output.)144 369.6 R 1.415(When using the)6.415 F
F1<ad46>3.915 E F0(or)3.915 E F1<ad43>3.915 E F0 1.415(options, the v)
3.915 F 1.415(arious shell v)-.25 F 1.415(ariables set by the pro-)-.25
-F(grammable completion f)144 297.6 Q(acilities, while a)-.1 E -.25(va)
+F(grammable completion f)144 381.6 Q(acilities, while a)-.1 E -.25(va)
-.2 G(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)
--.25 E .352(The matches will be generated in the same w)144 321.6 R .352
+-.25 E .352(The matches will be generated in the same w)144 405.6 R .352
(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
em directly from a completion speci\214cation with the same \215ags.)144
-333.6 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
-2.52 F(those completions matching)144 345.6 Q F2(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 369.6 Q
+417.6 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 429.6 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 453.6 Q
(alue is true unless an in)-.25 E -.25(va)-.4 G
(lid option is supplied, or no matches were generated.).25 E F1
-(complete)108 386.4 Q F0([)3.729 E F1(\255abcdefgjksuv)A F0 3.729(][)C
+(complete)108 470.4 Q F0([)3.729 E F1(\255abcdefgjksuv)A F0 3.729(][)C
F1<ad6f>-3.729 E F2(comp-option)3.729 E F0 3.729(][)C F1(\255DE)-3.729 E
F0 3.728(][)C F1<ad41>-3.728 E F2(action)3.728 E F0 3.728(][)C F1<ad47>
-3.728 E F2(globpat)3.728 E F0 3.728(][)C F1<ad57>-3.728 E F2(wor)3.728
E(dlist)-.37 E F0 3.728(][)C F1<ad46>-3.728 E F2(func-)3.728 E(tion)108
-398.4 Q F0 2.5(][)C F1<ad43>-2.5 E F2(command)2.5 E F0(])A([)144 410.4 Q
+482.4 Q F0 2.5(][)C F1<ad43>-2.5 E F2(command)2.5 E F0(])A([)144 494.4 Q
F1<ad58>A F2(\214lterpat)2.5 E F0 2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E
(e\214x)-.37 E F0 2.5(][)C F1<ad53>-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])
A F2(name)2.5 E F0([)2.5 E F2(name ...)A F0(])A F1(complete \255pr)108
-422.4 Q F0([)2.5 E F1(\255DE)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E
-.634(Specify ho)144 434.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
+506.4 Q F0([)2.5 E F1(\255DE)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E
+.634(Specify ho)144 518.4 R 3.134(wa)-.25 G -.18(rg)-3.134 G .634
(uments to each).18 F F2(name)3.134 E F0 .634(should be completed.)3.134
F .633(If the)5.634 F F1<ad70>3.133 E F0 .633
(option is supplied, or if no)3.133 F .139(options are supplied, e)144
-446.4 R .139(xisting completion speci\214cations are printed in a w)-.15
+530.4 R .139(xisting completion speci\214cations are printed in a w)-.15
F .14(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)
-144 458.4 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)
+144 542.4 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)
-.15 G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2
(name)2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E
F2(name)2.81 E F0(s)A 1.346
-(are supplied, all completion speci\214cations.)144 470.4 R(The)6.347 E
+(are supplied, all completion speci\214cations.)144 554.4 R(The)6.347 E
F1<ad44>3.847 E F0 1.347(option indicates that the remaining options)
-3.847 F .5(and actions should apply to the `)144 482.4 R(`def)-.74 E
+3.847 F .5(and actions should apply to the `)144 566.4 R(`def)-.74 E
(ault')-.1 E 3('c)-.74 G .5
(ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
-494.4 S .955(ommand for which no completion has pre)-3.455 F .955
+578.4 S .955(ommand for which no completion has pre)-3.455 F .955
(viously been de\214ned.)-.25 F(The)5.955 E F1<ad45>3.455 E F0 .955
(option indicates that)3.455 F .065
-(the remaining options and actions should apply to `)144 506.4 R
+(the remaining options and actions should apply to `)144 590.4 R
(`empty')-.74 E 2.564('c)-.74 G .064
(ommand completion; that is, comple-)-2.564 F
-(tion attempted on a blank line.)144 518.4 Q 1.437
+(tion attempted on a blank line.)144 602.4 Q 1.437
(The process of applying these completion speci\214cations when w)144
-542.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144
-554.4 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
+626.4 R 1.438(ord completion is attempted is)-.1 F(described abo)144
+638.4 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
(ogrammable Completion)-.18 E F0(.)A .556
-(Other options, if speci\214ed, ha)144 578.4 R .856 -.15(ve t)-.2 H .555
+(Other options, if speci\214ed, ha)144 662.4 R .856 -.15(ve t)-.2 H .555
(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0 3.055
(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722(options \(and, if necessary)
-144 590.4 R 3.222(,t)-.65 G(he)-3.222 E F1<ad50>3.222 E F0(and)3.222 E
+144 674.4 R 3.222(,t)-.65 G(he)-3.222 E F1<ad50>3.222 E F0(and)3.222 E
F1<ad53>3.222 E F0 .723
(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
-(sion before the)144 602.4 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 614.4 Q
-F2(comp-option)2.5 E F0(The)184 626.4 Q F2(comp-option)2.791 E F0 .291
+(sion before the)144 686.4 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 698.4 Q
+F2(comp-option)2.5 E F0(The)184 710.4 Q F2(comp-option)2.791 E F0 .291
(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 638.4 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 650.4 Q F0
-.281(Perform the rest of the def)224 662.4 R(ault)-.1 E F1(bash)2.781 E
-F0 .281(completions if the compspec generates no)2.781 F(matches.)224
-674.4 Q F1(default)184 686.4 Q F0 2.876(Use readline')10 F 5.376(sd)-.55
-G(ef)-5.376 E 2.875
-(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 698.4 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(3)203.725 E 0 Cg
-EP
+(yond the simple)-.15 F(generation of completions.)184 722.4 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E(GNU Bash-4.2)72 768 Q
+(2004 Apr 20)148.735 E(3)203.725 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(dir)184 84 Q(names)-.15 E F0(Perform directory name co\
-mpletion if the compspec generates no matches.)224 96 Q F1(\214lenames)
-184 108 Q F0 -.7(Te)224 120 S .137(ll readline that the compspec genera\
-tes \214lenames, so it can perform an).7 F 2.637<798c>-.15 G(le-)-2.637
-E .134(name\255speci\214c processing \(lik)224 132 R 2.634(ea)-.1 G .134
-(dding a slash to directory names, quoting spe-)-2.634 F .45
-(cial characters, or suppressing trailing spaces\).)224 144 R .45
-(Intended to be used with shell)5.45 F(functions.)224 156 Q F1(nospace)
-184 168 Q F0 -.7(Te)6.11 G .22
-(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1 F
-.22(ords completed at the end)-.1 F(of the line.)224 180 Q F1(plusdirs)
-184 192 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G 1.985
-(atches de\214ned by the compspec are generated, directory name)-4.485 F
-.584(completion is attempted and an)224 204 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 216
-Q F1<ad41>144 228 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 240
-Q F2(action)2.5 E F0(may be one of the follo)2.5 E
+/Times-Bold@0 SF(bashdefault)184 84 Q F0 .281
+(Perform the rest of the def)224 96 R(ault)-.1 E F1(bash)2.781 E F0 .281
+(completions if the compspec generates no)2.781 F(matches.)224 108 Q F1
+(default)184 120 Q F0 2.876(Use readline')10 F 5.376(sd)-.55 G(ef)-5.376
+E 2.875(ault \214lename completion if the compspec generates no)-.1 F
+(matches.)224 132 Q F1(dir)184 144 Q(names)-.15 E F0(Perform directory \
+name completion if the compspec generates no matches.)224 156 Q F1
+(\214lenames)184 168 Q F0 -.7(Te)224 180 S .137(ll readline that the co\
+mpspec generates \214lenames, so it can perform an).7 F 2.637<798c>-.15
+G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 192 R 2.634
+(ea)-.1 G .134(dding a slash to directory names, quoting spe-)-2.634 F
+.45(cial characters, or suppressing trailing spaces\).)224 204 R .45
+(Intended to be used with shell)5.45 F(functions.)224 216 Q F1(noquote)
+184 228 Q F0 -.7(Te)5.55 G .814
+(ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
+3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
+(\214lenames is the def)224 240 Q(ault\).)-.1 E F1(nospace)184 252 Q F0
+-.7(Te)6.11 G .22(ll readline not to append a space \(the def).7 F .22
+(ault\) to w)-.1 F .22(ords completed at the end)-.1 F(of the line.)224
+264 Q F1(plusdirs)184 276 Q F0 1.985(After an)5.54 F 4.485(ym)-.15 G
+1.985(atches de\214ned by the compspec are generated, directory name)
+-4.485 F .583(completion is attempted and an)224 288 R 3.084(ym)-.15 G
+.584(atches are added to the results of the other)-3.084 F(actions.)224
+300 Q F1<ad41>144 312 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184
+324 Q F2(action)2.5 E F0(may be one of the follo)2.5 E
(wing to generate a list of possible completions:)-.25 E F1(alias)184
-252 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
-E F0(.)A F1(arrayv)184 264 Q(ar)-.1 E F0(Array v)224 276 Q
-(ariable names.)-.25 E F1 4.7(binding Readline)184 288 R F0 -.1(ke)2.5 G
-2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 300 S(iltin).2 E F0
+336 Q F0(Alias names.)20.55 E(May also be speci\214ed as)5 E F1<ad61>2.5
+E F0(.)A F1(arrayv)184 348 Q(ar)-.1 E F0(Array v)224 360 Q
+(ariable names.)-.25 E F1 4.7(binding Readline)184 372 R F0 -.1(ke)2.5 G
+2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 384 S(iltin).2 E F0
(Names of shell b)11.85 E(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 312
-Q F0(Command names.)224 324 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 336 Q(ectory)-.18 E F0(Directory names.)224 348 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 360
-Q F0(Names of disabled shell b)224 372 Q(uiltins.)-.2 E F1(enabled)184
-384 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
-396 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 396
+Q F0(Command names.)224 408 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 420 Q(ectory)-.18 E F0(Directory names.)224 432 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 444
+Q F0(Names of disabled shell b)224 456 Q(uiltins.)-.2 E F1(enabled)184
+468 Q F0(Names of enabled shell b)6.66 E(uiltins.)-.2 E F1(export)184
+480 Q F0(Names of e)12.23 E(xported shell v)-.15 E 2.5(ariables. May)
-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-408 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
-E F0(.)A F1(function)184 420 Q F0(Names of shell functions.)224 432 Q F1
-(gr)184 444 Q(oup)-.18 E F0(Group names.)14.62 E
+492 Q F0(File names.)27.22 E(May also be speci\214ed as)5 E F1<ad66>2.5
+E F0(.)A F1(function)184 504 Q F0(Names of shell functions.)224 516 Q F1
+(gr)184 528 Q(oup)-.18 E F0(Group names.)14.62 E
(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-456 Q F0(Help topics as accepted by the)224 468 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 480 Q F0(Hostnames, as tak)224 492
+540 Q F0(Help topics as accepted by the)224 552 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 564 Q F0(Hostnames, as tak)224 576
Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 504 Q F0
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 588 Q F0
(Job names, if job control is acti)26.11 E -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 516 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 528 Q(ed w)-.15 E 2.5(ords. May)
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 600 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 612 Q(ed w)-.15 E 2.5(ords. May)
-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-540 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
--.25 G(.).15 E F1(ser)184 552 Q(vice)-.1 E F0(Service names.)10.67 E
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 564 Q
+624 Q F0(Names of running jobs, if job control is acti)5.54 E -.15(ve)
+-.25 G(.).15 E F1(ser)184 636 Q(vice)-.1 E F0(Service names.)10.67 E
+(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 648 Q
F0 -1.11(Va)14.45 G(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 576 Q F0(Shell option names as accepted by the)16.66 E F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 588 Q F0
-(Signal names.)14.99 E F1(stopped)184 600 Q F0
+(shopt)184 660 Q F0(Shell option names as accepted by the)16.66 E F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 672 Q F0
+(Signal names.)14.99 E F1(stopped)184 684 Q F0
(Names of stopped jobs, if job control is acti)6.66 E -.15(ve)-.25 G(.)
-.15 E F1(user)184 612 Q F0(User names.)21.67 E
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 624 S
+.15 E F1(user)184 696 Q F0(User names.)21.67 E
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 708 S
(riable).1 E F0(Names of all shell v)5.1 E 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 636 Q F2
-(command)2.5 E(command)184 648 Q F0 1.055(is e)3.555 F -.15(xe)-.15 G
-1.055(cuted in a subshell en).15 F 1.056
-(vironment, and its output is used as the possible)-.4 F(completions.)
-184 660 Q F1<ad46>144 672 Q F2(function)2.5 E F0 1.181
-(The shell function)184 684 R F2(function)3.681 E F0 1.181(is e)3.681 F
--.15(xe)-.15 G 1.181(cuted in the current shell en).15 F 3.68
-(vironment. When)-.4 F 1.18(it \214n-)3.68 F .932
-(ishes, the possible completions are retrie)184 696 R -.15(ve)-.25 G
-3.432(df).15 G .932(rom the v)-3.432 F .932(alue of the)-.25 F F3
-(COMPREPL)3.432 E(Y)-.828 E F0(array)3.182 E -.25(va)184 708 S(riable.)
-.25 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(4)203.725 E 0 Cg EP
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A(GNU Bash-4.2)72 768 Q
+(2004 Apr 20)148.735 E(4)203.725 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad47>144 84 Q/F2 10/Times-Italic@0 SF(globpat)2.5 E F0
-1.008(The pathname e)184 96 R 1.008(xpansion pattern)-.15 F F2(globpat)
-3.507 E F0 1.007(is e)3.507 F 1.007
-(xpanded to generate the possible comple-)-.15 F(tions.)184 108 Q F1
-<ad50>144 120 Q F2(pr)2.5 E(e\214x)-.37 E(pr)184 132 Q(e\214x)-.37 E F0
-.534(is added at the be)3.034 F .534
+/Times-Bold@0 SF<ad43>144 84 Q/F2 10/Times-Italic@0 SF(command)2.5 E
+(command)184 96 Q F0 1.056(is e)3.556 F -.15(xe)-.15 G 1.056
+(cuted in a subshell en).15 F 1.056
+(vironment, and its output is used as the possible)-.4 F(completions.)
+184 108 Q F1<ad46>144 120 Q F2(function)2.5 E F0 .113
+(The shell function)184 132 R F2(function)2.614 E F0 .114(is e)2.614 F
+-.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
+(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 144 R
+-.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
+($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
+(he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
+(are being completed, the second ar)184 156 R 1.407(gument \()-.18 F F1
+($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
+(ord being completed, and the)-.1 F .104(third ar)184 168 R .104
+(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
+-2.604 F .104(ord preceding the w)-.1 F .103
+(ord being completed on the current com-)-.1 F .101(mand line.)184 180 R
+.101(When it \214nishes, the possible completions are retrie)5.101 F
+-.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
+-.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 192 Q(Y)-.828 E F0(array v)2.25
+E(ariable.)-.25 E F1<ad47>144 204 Q F2(globpat)2.5 E F0 1.008
+(The pathname e)184 216 R 1.008(xpansion pattern)-.15 F F2(globpat)3.507
+E F0 1.007(is e)3.507 F 1.007(xpanded to generate the possible comple-)
+-.15 F(tions.)184 228 Q F1<ad50>144 240 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
+184 252 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
(ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 144 Q F1<ad53>144 156 Q F2(suf)2.5 E
+-.15(ve)-.2 G(been applied.)184 264 Q F1<ad53>144 276 Q F2(suf)2.5 E
2.81(\214x suf)-.18 F<8c78>-.18 E F0
(is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 168 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 180 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.64 F/F3 9/Times-Bold@0 SF(IFS)
-3.64 E F0 1.139(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F
-2.007(each resultant w)184 192 R 2.007(ord is e)-.1 F 4.507
-(xpanded. The)-.15 F 2.008(possible completions are the members of the)
-4.507 F(resultant list which match the w)184 204 Q(ord being completed.)
--.1 E F1<ad58>144 216 Q F2(\214lterpat)2.5 E(\214lterpat)184 228 Q F0
-.456(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15
-F .455(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 240 R 1.596
-(guments, and each completion)-.18 F(matching)184 252 Q F2(\214lterpat)
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 288 Q F2(wor)2.5 E
+(dlist)-.37 E F0(The)184 300 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14
+(is split using the characters in the)3.64 F F3(IFS)3.64 E F0 1.139
+(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F 2.007
+(each resultant w)184 312 R 2.007(ord is e)-.1 F 4.507(xpanded. The)-.15
+F 2.008(possible completions are the members of the)4.507 F
+(resultant list which match the w)184 324 Q(ord being completed.)-.1 E
+F1<ad58>144 336 Q F2(\214lterpat)2.5 E(\214lterpat)184 348 Q F0 .456
+(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
+.455(is applied to the list of possible)2.956 F 1.596
+(completions generated by the preceding options and ar)184 360 R 1.596
+(guments, and each completion)-.18 F(matching)184 372 Q F2(\214lterpat)
3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
-(tes the pattern;).05 F(in this case, an)184 264 Q 2.5(yc)-.15 G
+(tes the pattern;).05 F(in this case, an)184 384 Q 2.5(yc)-.15 G
(ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E .466(The return v)144 280.8 R .466
+-.15(ve)-.15 G(d.).15 E .466(The return v)144 400.8 R .466
(alue is true unless an in)-.25 F -.25(va)-.4 G .466
(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 292.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
+(plied without a)144 412.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F2(name)144 304.8 Q F0
+1.361(ompletion speci\214cation for a).15 F F2(name)144 424.8 Q F0
(for which no speci\214cation e)2.5 E
(xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 321.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(compopt)108 441.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
F1(\255DE)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C F2
-(name)-2.5 E F0(])A .447(Modify completion options for each)144 333.6 R
+(name)-2.5 E F0(])A .447(Modify completion options for each)144 453.6 R
F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0
.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .726
-(completion if no)144 345.6 R F2(name)3.226 E F0 3.226(sa)C .726
+(completion if no)144 465.6 R F2(name)3.226 E F0 3.226(sa)C .726
(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 357.6 Q F2(name)
+(n, display the completion options for).15 F(each)144 477.6 Q F2(name)
3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
-F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 369.6 Q F0 -.2(bu)
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 489.6 Q F0 -.2(bu)
2.798 G .298(iltin described abo).2 F -.15(ve)-.15 G 5.297(.T).15 G(he)
-5.297 E F1<ad44>2.797 E F0 .297
(option indicates that the remaining options should apply to)2.797 F
-1.227(the `)144 381.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
+1.227(the `)144 501.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
mmand completion; that is, completion attempted on a command for which \
-no)-3.727 F 2.178(completion has pre)144 393.6 R 2.178
+no)-3.727 F 2.178(completion has pre)144 513.6 R 2.178
(viously been de\214ned.)-.25 F(The)7.178 E F1<ad45>4.678 E F0 2.177
(option indicates that the remaining options)4.677 F(should apply to `)
-144 405.6 Q(`empty')-.74 E 2.5('c)-.74 G
+144 525.6 Q(`empty')-.74 E 2.5('c)-.74 G
(ommand completion; that is, completion attempted on a blank line.)-2.5
-E 1.387(The return v)144 429.6 R 1.387(alue is true unless an in)-.25 F
+E 1.387(The return v)144 549.6 R 1.387(alue is true unless an in)-.25 F
-.25(va)-.4 G 1.388
(lid option is supplied, an attempt is made to modify the).25 F
-(options for a)144 441.6 Q F2(name)2.5 E F0
+(options for a)144 561.6 Q F2(name)2.5 E F0
(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F1(continue)108 458.4 Q F0([)
-2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 470.4 R 1.754
+(xists, or an output error occurs.)-.15 E F1(continue)108 578.4 Q F0([)
+2.5 E F2(n)A F0(])A 1.754(Resume the ne)144 590.4 R 1.754
(xt iteration of the enclosing)-.15 F F1 -.25(fo)4.254 G(r).25 E F0(,)A
F1(while)4.254 E F0(,)A F1(until)4.254 E F0 4.254(,o)C(r)-4.254 E F1
(select)4.254 E F0 4.253(loop. If)4.254 F F2(n)4.613 E F0 1.753
-(is speci\214ed,)4.493 F 1.208(resume at the)144 482.4 R F2(n)3.709 E F0
+(is speci\214ed,)4.493 F 1.208(resume at the)144 602.4 R F2(n)3.709 E F0
1.209(th enclosing loop.)B F2(n)6.569 E F0 1.209(must be)3.949 F/F4 10
/Symbol SF<b3>3.709 E F0 3.709(1. If)3.709 F F2(n)4.069 E F0 1.209
(is greater than the number of enclosing)3.949 F .514
-(loops, the last enclosing loop \(the `)144 494.4 R(`top-le)-.74 E -.15
+(loops, the last enclosing loop \(the `)144 614.4 R(`top-le)-.74 E -.15
(ve)-.25 G(l').15 E 3.014('l)-.74 G .514(oop\) is resumed.)-3.014 F .513
(The return v)5.513 F .513(alue is 0 unless)-.25 F F2(n)3.013 E F0(is)
-3.013 E(not greater than or equal to 1.)144 506.4 Q F1(declar)108 523.2
-Q(e)-.18 E F0([)2.5 E F1(\255aAfFgilrtux)A F0 2.5(][)C F1<ad70>-2.5 E F0
-2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
-(typeset)108 535.2 Q F0([)2.5 E F1(\255aAfFgilrtux)A F0 2.5(][)C F1
+3.013 E(not greater than or equal to 1.)144 626.4 Q F1(declar)108 643.2
+Q(e)-.18 E F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C F1<ad70>-2.5 E
+F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E F1
+(typeset)108 655.2 Q F0([)2.5 E F1(\255aAfFgilnrtux)A F0 2.5(][)C F1
<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(..])-2.5 E 1.264(Declare v)144 547.2 R 1.264(ariables and/or gi)-.25 F
+(..])-2.5 E 1.264(Declare v)144 667.2 R 1.264(ariables and/or gi)-.25 F
1.564 -.15(ve t)-.25 H 1.264(hem attrib).15 F 3.765(utes. If)-.2 F(no)
3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265(re gi)-3.765 F -.15(ve)-.25
G 3.765(nt).15 G 1.265(hen display the v)-3.765 F 1.265(alues of)-.25 F
--.25(va)144 559.2 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
+-.25(va)144 679.2 S 3.483(riables. The).25 F F1<ad70>3.483 E F0 .983
(option will display the attrib)3.483 F .983(utes and v)-.2 F .982
(alues of each)-.25 F F2(name)3.482 E F0 5.982(.W).18 G(hen)-5.982 E F1
-<ad70>3.482 E F0 .982(is used)3.482 F(with)144 571.2 Q F2(name)3.579 E
-F0(ar)3.579 E 1.079(guments, additional options are ignored.)-.18 F
-(When)6.079 E F1<ad70>3.579 E F0 1.079(is supplied without)3.579 F F2
-(name)3.58 E F0(ar)3.58 E(gu-)-.18 E .151
-(ments, it will display the attrib)144 583.2 R .151(utes and v)-.2 F
-.151(alues of all v)-.25 F .15(ariables ha)-.25 F .15(ving the attrib)
--.2 F .15(utes speci\214ed by the)-.2 F .046(additional options.)144
-595.2 R .046(If no other options are supplied with)5.046 F F1<ad70>2.547
-E F0(,)A F1(declar)2.547 E(e)-.18 E F0 .047(will display the attrib)
-2.547 F .047(utes and)-.2 F -.25(va)144 607.2 S 1.363
-(lues of all shell v).25 F 3.863(ariables. The)-.25 F F1<ad66>3.863 E F0
-1.362(option will restrict the display to shell functions.)3.863 F(The)
-6.362 E F1<ad46>3.862 E F0 2.422(option inhibits the display of functio\
-n de\214nitions; only the function name and attrib)144 619.2 R 2.423
-(utes are)-.2 F 2.664(printed. If)144 631.2 R(the)2.664 E F1(extdeb)
-2.664 E(ug)-.2 E F0 .164(shell option is enabled using)2.664 F F1(shopt)
-2.664 E F0 2.664(,t)C .163(he source \214le name and line number)-2.664
-F 1.288(where the function is de\214ned are displayed as well.)144 643.2
-R(The)6.288 E F1<ad46>3.788 E F0 1.288(option implies)3.788 F F1<ad66>
-3.788 E F0 6.288(.T)C(he)-6.288 E F1<ad67>3.789 E F0(option)3.789 E .491
-(forces v)144 655.2 R .491
-(ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G 2.99(nw).15 G(hen)-2.99 E F1(declar)2.99 E(e)-.18 E F0 .49
-(is e)2.99 F -.15(xe)-.15 G .49(cuted in a).15 F .124(shell function.)
-144 667.2 R .124(It is ignored in all other cases.)5.124 F .125
-(The follo)5.125 F .125(wing options can be used to restrict output)-.25
-F(to v)144 679.2 Q(ariables with the speci\214ed attrib)-.25 E
-(ute or to gi)-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2
-E F1<ad61>144 691.2 Q F0(Each)25.3 E F2(name)2.5 E F0(is an inde)2.5 E
--.15(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1
-(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 703.2 Q
-F0(Each)23.08 E F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25
-H(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F1<ad66>144 715.2 Q F0(Use function names only)
-26.97 E(.)-.65 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(5)203.725 E
-0 Cg EP
+<ad70>3.482 E F0 .982(is used)3.482 F(with)144 691.2 Q F2(name)2.774 E
+F0(ar)2.774 E .274(guments, additional options, other than)-.18 F F1
+<ad66>2.775 E F0(and)2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275
+(re ignored.)-2.775 F(When)5.275 E F1<ad70>2.775 E F0 .275(is supplied)
+2.775 F(without)144 703.2 Q F2(name)4.814 E F0(ar)4.814 E 2.314
+(guments, it will display the attrib)-.18 F 2.314(utes and v)-.2 F 2.313
+(alues of all v)-.25 F 2.313(ariables ha)-.25 F 2.313(ving the)-.2 F
+(attrib)144 715.2 Q 1.181(utes speci\214ed by the additional options.)
+-.2 F 1.182(If no other options are supplied with)6.181 F F1<ad70>3.682
+E F0(,)A F1(declar)3.682 E(e)-.18 E F0 .62(will display the attrib)144
+727.2 R .62(utes and v)-.2 F .62(alues of all shell v)-.25 F 3.12
+(ariables. The)-.25 F F1<ad66>3.12 E F0 .62
+(option will restrict the display)3.12 F(GNU Bash-4.2)72 768 Q
+(2004 Apr 20)148.735 E(5)203.725 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad69>144 84 Q F0 .558(The v)27.52 F .558
-(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
-(va)-.25 G .558(luation \(see).25 F/F2 9/Times-Bold@0 SF .557
-(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 96 Q F0(abo)2.25
-E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)-2.5 E
-(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 108 Q F0 .909
-(When the v)27.52 F .909(ariable is assigned a v)-.25 F .909
-(alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
-G .91(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 120 R(upper)
-2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad72>144 132 Q F0
-(Mak)25.86 E(e)-.1 E/F3 10/Times-Italic@0 SF(name)5.047 E F0 5.047(sr)C
-(eadonly)-5.047 E 7.547(.T)-.65 G 2.546
-(hese names cannot then be assigned v)-7.547 F 2.546
-(alues by subsequent)-.25 F(assignment statements or unset.)180 144 Q F1
-<ad74>144 156 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F3(name)
-2.929 E F0(the)2.929 E F3(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E 2.929
-(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929 E(UG)
--.1 E F0(and)2.93 E F1(RETURN)2.93 E F0(traps from the calling shell.)
-180 168 Q(The trace attrib)5 E(ute has no special meaning for v)-.2 E
-(ariables.)-.25 E F1<ad75>144 180 Q F0 .91(When the v)24.74 F .909
-(ariable is assigned a v)-.25 F .909(alue, all lo)-.25 F(wer)-.25 E .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to upper).15 F
-(-)-.2 E 2.5(case. The)180 192 R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F1<ad78>144 204 Q F0(Mark)25.3 E F3(name)2.5 E
-F0 2.5(sf)C(or e)-2.5 E(xport to subsequent commands via the en)-.15 E
-(vironment.)-.4 E .12(Using `+' instead of `\255' turns of)144 220.8 R
-2.62(ft)-.25 G .12(he attrib)-2.62 F .121(ute instead, with the e)-.2 F
-.121(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
-.645(to destro)144 232.8 R 3.145(ya)-.1 G 3.145(na)-3.145 G .645(rray v)
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.29
+(to shell functions.)144 84 R(The)6.29 E/F1 10/Times-Bold@0 SF<ad46>3.79
+E F0 1.291(option inhibits the display of function de\214nitions; only \
+the function)3.791 F .948(name and attrib)144 96 R .948
+(utes are printed.)-.2 F .948(If the)5.948 F F1(extdeb)3.448 E(ug)-.2 E
+F0 .948(shell option is enabled using)3.448 F F1(shopt)3.448 E F0 3.448
+(,t)C .948(he source)-3.448 F 1.342(\214le name and line number where t\
+he function is de\214ned are displayed as well.)144 108 R(The)6.342 E F1
+<ad46>3.842 E F0(option)3.842 E(implies)144 120 Q F1<ad66>3.892 E F0
+6.392(.T)C(he)-6.392 E F1<ad67>3.892 E F0 1.391(option forces v)3.892 F
+1.391(ariables to be created or modi\214ed at the global scope, e)-.25 F
+-.15(ve)-.25 G(n).15 E(when)144 132 Q F1(declar)4.382 E(e)-.18 E F0
+1.882(is e)4.382 F -.15(xe)-.15 G 1.882(cuted in a shell function.).15 F
+1.883(It is ignored in all other cases.)6.882 F 1.883(The follo)6.883 F
+(wing)-.25 E .794(options can be used to restrict output to v)144 144 R
+.794(ariables with the speci\214ed attrib)-.25 F .793(ute or to gi)-.2 F
+1.093 -.15(ve v)-.25 H(ariables)-.1 E(attrib)144 156 Q(utes:)-.2 E F1
+<ad61>144 168 Q F0(Each)25.3 E/F2 10/Times-Italic@0 SF(name)2.5 E F0
+(is an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E
+(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1<ad41>144 180 Q F0(Each)23.08 E F2(name)2.5 E F0
+(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15 E(ariable \(see)
+-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad66>144
+192 Q F0(Use function names only)26.97 E(.)-.65 E F1<ad69>144 204 Q F0
+.557(The v)27.52 F .558(ariable is treated as an inte)-.25 F .558
+(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F3 9
+/Times-Bold@0 SF .558(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)
+180 216 Q F0(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G
+(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E
+F1<ad6c>144 228 Q F0 .91(When the v)27.52 F .909
+(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
+-.25 E(-)-.2 E 2.5(case. The)180 240 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad6e>144 252 Q F0(Gi)24.74 E 1.619 -.15(ve e)
+-.25 H(ach).15 E F2(name)3.819 E F0(the)3.819 E F2(namer)3.819 E(ef)-.37
+E F0(attrib)3.819 E 1.319(ute, making it a name reference to another v)
+-.2 F(ariable.)-.25 E 1.033(That other v)180 264 R 1.033
+(ariable is de\214ned by the v)-.25 F 1.033(alue of)-.25 F F2(name)3.533
+E F0 6.033(.A)C 1.033(ll references and assignments to)-6.033 F F2(name)
+180 276 Q F0 4.032(,e)C 1.532(xcept for changing the)-4.182 F F1<ad6e>
+4.032 E F0(attrib)4.032 E 1.532(ute itself, are performed on the v)-.2 F
+1.533(ariable refer)-.25 F(-)-.2 E(enced by)180 288 Q F2(name)2.5 E F0
+1.1 -.55('s v)D 2.5(alue. The).3 F F1<ad6e>2.5 E F0(attrib)2.5 E
+(ute cannot be applied to array v)-.2 E(ariables.)-.25 E F1<ad72>144 300
+Q F0(Mak)25.86 E(e)-.1 E F2(name)5.047 E F0 5.047(sr)C(eadonly)-5.047 E
+7.547(.T)-.65 G 2.546(hese names cannot then be assigned v)-7.547 F
+2.546(alues by subsequent)-.25 F(assignment statements or unset.)180 312
+Q F1<ad74>144 324 Q F0(Gi)26.97 E .729 -.15(ve e)-.25 H(ach).15 E F2
+(name)2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
+2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1(DEB)2.929
+E(UG)-.1 E F0(and)2.93 E F1(RETURN)2.93 E F0
+(traps from the calling shell.)180 336 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144 348
+Q F0 .91(When the v)24.74 F .909(ariable is assigned a v)-.25 F .909
+(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F -.15
+(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 360 R(lo)
+2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>144
+372 Q F0(Mark)25.3 E F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .12
+(Using `+' instead of `\255' turns of)144 388.8 R 2.62(ft)-.25 G .12
+(he attrib)-2.62 F .121(ute instead, with the e)-.2 F .121
+(xceptions that)-.15 F F1(+a)2.621 E F0 .121(may not be used)2.621 F
+.645(to destro)144 400.8 R 3.145(ya)-.1 G 3.145(na)-3.145 G .645(rray v)
-3.145 F .645(ariable and)-.25 F F1(+r)3.145 E F0 .645(will not remo)
3.145 F .945 -.15(ve t)-.15 H .645(he readonly attrib).15 F 3.144
-(ute. When)-.2 F .644(used in a func-)3.144 F .53(tion, mak)144 244.8 R
-.53(es each)-.1 F F3(name)3.03 E F0 .53(local, as with the)3.03 F F1
-(local)3.031 E F0 .531(command, unless the)3.031 F F1 .531
-(\255gP option is supplied, If a)3.031 F -.1(va)144 256.8 S 1.558
-(riable name is f).1 F(ollo)-.25 E 1.558(wed by =)-.1 F F3(value)A F1
-4.058(,t)C 1.558(he v)-4.058 F 1.557(alue of the v)-.1 F 1.557
-(ariable is set to)-.1 F F3(value)4.057 E F1 6.557(.T)C 1.557(he r)
--6.557 F(etur)-.18 E(n)-.15 E -.1(va)144 268.8 S 1.168
-(lue is 0 unless an in).1 F -.1(va)-.4 G 1.168(lid option is encounter)
-.1 F 1.168(ed, an attempt is made to de\214ne a function)-.18 F(using)
-144 280.8 Q/F4 10/Courier@0 SF .312(\255f foo=bar)2.812 F F1 2.812(,a)C
-2.812(na)-2.812 G .312(ttempt is made to assign a v)-2.812 F .312
-(alue to a r)-.1 F .312(eadonly v)-.18 F .311(ariable, an attempt)-.1 F
-.615(is made to assign a v)144 292.8 R .615(alue to an array v)-.1 F
-.616(ariable without using the compound assignment syn-)-.1 F .26
-(tax \(see Arrays)144 304.8 R F0(abo)2.76 E -.15(ve)-.15 G .26
-(\), one of the).15 F F3(names)2.76 E F0 .259(is not a v)2.76 F .259
-(alid shell v)-.25 F .259(ariable name, an attempt is made to)-.25 F
-.703(turn of)144 316.8 R 3.203(fr)-.25 G .704
-(eadonly status for a readonly v)-3.203 F .704
-(ariable, an attempt is made to turn of)-.25 F 3.204(fa)-.25 G .704
-(rray status for an)-3.204 F(array v)144 328.8 Q
-(ariable, or an attempt is made to display a non-e)-.25 E
-(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1(dirs [+)108 345.6
-Q F3(n)A F1 2.5(][)C<ad>-2.5 E F3(n)A F1 2.5(][)C(\255clpv])-2.5 E F0
--.4(Wi)144 357.6 S .329
+(ute. When)-.2 F .644(used in a func-)3.144 F(tion,)144 412.8 Q F1
+(declar)2.835 E(e)-.18 E F0(and)2.835 E F1(typeset)2.835 E F0(mak)2.835
+E 2.835(ee)-.1 G(ach)-2.835 E F2(name)2.835 E F0 .335
+(local, as with the)2.835 F F1(local)2.835 E F0 .335
+(command, unless the)2.835 F F1<ad67>2.835 E F0(option)2.835 E 1.283
+(is supplied.)144 424.8 R 1.283(If a v)6.283 F 1.283
+(ariable name is follo)-.25 F 1.283(wed by =)-.25 F F2(value)A F0 3.783
+(,t)C 1.283(he v)-3.783 F 1.283(alue of the v)-.25 F 1.282
+(ariable is set to)-.25 F F2(value)3.782 E F0(.)A .926(When using)144
+436.8 R F1<ad61>3.426 E F0(or)3.426 E F1<ad41>3.426 E F0 .927
+(and the compound assignment syntax to create array v)3.426 F .927
+(ariables, additional)-.25 F(attrib)144 448.8 Q .592(utes do not tak)-.2
+F 3.092(ee)-.1 G -.25(ff)-3.092 G .592
+(ect until subsequent assignments.).25 F .592(The return v)5.592 F .592
+(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .429
+(option is encountered, an attempt is made to de\214ne a function using)
+144 460.8 R/F4 10/Courier@0 SF .429(\255f foo=bar)2.929 F F0 2.929(,a)C
+2.929(na)-2.929 G .429(ttempt is)-2.929 F .063(made to assign a v)144
+472.8 R .063(alue to a readonly v)-.25 F .062
+(ariable, an attempt is made to assign a v)-.25 F .062
+(alue to an array v)-.25 F(ari-)-.25 E .102
+(able without using the compound assignment syntax \(see)144 484.8 R F1
+(Arrays)2.602 E F0(abo)2.602 E -.15(ve)-.15 G .102(\), one of the).15 F
+F2(names)2.602 E F0 .102(is not a)2.602 F -.25(va)144 496.8 S .172
+(lid shell v).25 F .171(ariable name, an attempt is made to turn of)-.25
+F 2.671(fr)-.25 G .171(eadonly status for a readonly v)-2.671 F .171
+(ariable, an)-.25 F .96(attempt is made to turn of)144 508.8 R 3.46(fa)
+-.25 G .96(rray status for an array v)-3.46 F .96
+(ariable, or an attempt is made to display a)-.25 F(non-e)144 520.8 Q
+(xistent function with)-.15 E F1<ad66>2.5 E F0(.)A F1
+(dirs [\255clpv] [+)108 537.6 Q F2(n)A F1 2.5(][)C<ad>-2.5 E F2(n)A F1
+(])A F0 -.4(Wi)144 549.6 S .329
(thout options, displays the list of currently remembered directories.)
.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 369.6 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 381.6 Q
+(single line with directory names separated by spaces.)144 561.6 R 1.238
+(Directories are added to the list with the)6.238 F F1(pushd)144 573.6 Q
F0(command; the)2.5 E F1(popd)2.5 E F0(command remo)2.5 E -.15(ve)-.15 G
-2.5(se).15 G(ntries from the list.)-2.5 E F1(+)144 393.6 Q F3(n)A F0
-1.565(Displays the)25.3 F F3(n)4.065 E F0 1.565
+2.5(se).15 G(ntries from the list.)-2.5 E F1<ad63>144 585.6 Q F0
+(Clears the directory stack by deleting all of the entries.)25.86 E F1
+<ad6c>144 597.6 Q F0 .882
+(Produces a listing using full pathnames; the def)27.52 F .881
+(ault listing format uses a tilde to denote)-.1 F(the home directory)180
+609.6 Q(.)-.65 E F1<ad70>144 621.6 Q F0
+(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
+633.6 Q F0 .272(Print the directory stack with one entry per line, pre\
+\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
+G(he)-2.773 E(stack.)180 645.6 Q F1(+)144 657.6 Q F2(n)A F0 1.565
+(Displays the)25.3 F F2(n)4.065 E F0 1.565
(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F1
(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 405.6 Q F1<ad>144 417.6 Q F3
-(n)A F0 1.194(Displays the)25.3 F F3(n)3.694 E F0 1.194
+(without options, starting with zero.)180 669.6 Q F1<ad>144 681.6 Q F2
+(n)A F0 1.194(Displays the)25.3 F F2(n)3.694 E F0 1.194
(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 429.6 Q F1<ad63>144 441.6 Q F0
-(Clears the directory stack by deleting all of the entries.)25.86 E F1
-<ad6c>144 453.6 Q F0 .324(Produces a longer listing; the def)27.52 F
-.324(ault listing format uses a tilde to denote the home direc-)-.1 F
-(tory)180 465.6 Q(.)-.65 E F1<ad70>144 477.6 Q F0
-(Print the directory stack with one entry per line.)24.74 E F1<ad76>144
-489.6 Q F0 .272(Print the directory stack with one entry per line, pre\
-\214xing each entry with its inde)25.3 F 2.773(xi)-.15 G 2.773(nt)-2.773
-G(he)-2.773 E(stack.)180 501.6 Q .258(The return v)144 518.4 R .258
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
-(lid option is supplied or).25 F F3(n)2.758 E F0(inde)2.758 E -.15(xe)
+(without options, starting with zero.)180 693.6 Q .258(The return v)144
+710.4 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
-.15 F(tory stack.)144 530.4 Q F1(diso)108 547.2 Q(wn)-.1 E F0([)2.5 E F1
-(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F3(jobspec)-2.5 E F0
-(...])2.5 E -.4(Wi)144 559.2 S .295(thout options, each).4 F F3(jobspec)
-4.535 E F0 .295(is remo)3.105 F -.15(ve)-.15 G 2.795(df).15 G .295
-(rom the table of acti)-2.795 F .595 -.15(ve j)-.25 H 2.795(obs. If).15
-F F3(jobspec)4.535 E F0 .295(is not present,)3.105 F .423(and neither)
-144 571.2 R F1<ad61>2.923 E F0(nor)2.923 E F1<ad72>2.923 E F0 .423
-(is supplied, the shell')2.923 F 2.923(sn)-.55 G .423(otion of the)
--2.923 F F3(curr)2.922 E .422(ent job)-.37 F F0 .422(is used.)2.922 F
-.422(If the)5.422 F F1<ad68>2.922 E F0 .422(option is)2.922 F(gi)144
-583.2 Q -.15(ve)-.25 G .14(n, each).15 F F3(jobspec)4.38 E F0 .14
-(is not remo)2.95 F -.15(ve)-.15 G 2.641(df).15 G .141(rom the table, b)
--2.641 F .141(ut is mark)-.2 F .141(ed so that)-.1 F F2(SIGHUP)2.641 E
-F0 .141(is not sent to the)2.391 F .005(job if the shell recei)144 595.2
-R -.15(ve)-.25 G 2.504(sa).15 G F2(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0
-.004(If no)4.504 F F3(jobspec)4.244 E F0 .004
-(is present, and neither the)2.814 F F1<ad61>2.504 E F0 .004(nor the)
-2.504 F F1<ad72>2.504 E F0 .004(option is)2.504 F 1.228(supplied, the)
-144 607.2 R F3(curr)3.728 E 1.228(ent job)-.37 F F0 1.229(is used.)3.729
-F 1.229(If no)6.229 F F3(jobspec)5.469 E F0 1.229(is supplied, the)4.039
-F F1<ad61>3.729 E F0 1.229(option means to remo)3.729 F 1.529 -.15(ve o)
--.15 H(r).15 E .657(mark all jobs; the)144 619.2 R F1<ad72>3.157 E F0
-.657(option without a)3.157 F F3(jobspec)4.897 E F0(ar)3.467 E .656
-(gument restricts operation to running jobs.)-.18 F(The)5.656 E
-(return v)144 631.2 Q(alue is 0 unless a)-.25 E F3(jobspec)4.24 E F0
-(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E F1(echo)108 648 Q
-F0([)2.5 E F1(\255neE)A F0 2.5(][)C F3(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-.394(Output the)144 660 R F3(ar)2.894 E(g)-.37 E F0 .394
-(s, separated by spaces, follo)B .395(wed by a ne)-.25 F 2.895
-(wline. The)-.25 F .395(return status is al)2.895 F -.1(wa)-.1 G .395
-(ys 0.).1 F(If)5.395 E F1<ad6e>2.895 E F0 .549
-(is speci\214ed, the trailing ne)144 672 R .548(wline is suppressed.)
--.25 F .548(If the)5.548 F F1<ad65>3.048 E F0 .548(option is gi)3.048 F
--.15(ve)-.25 G .548(n, interpretation of the fol-).15 F(lo)144 684 Q
-.052(wing backslash-escaped characters is enabled.)-.25 F(The)5.052 E F1
-<ad45>2.552 E F0 .053(option disables the interpretation of these)2.553
-F 1.503(escape characters, e)144 696 R -.15(ve)-.25 G 4.003(no).15 G
-4.003(ns)-4.003 G 1.502(ystems where the)-4.003 F 4.002(ya)-.15 G 1.502
-(re interpreted by def)-4.002 F 4.002(ault. The)-.1 F F1(xpg_echo)4.002
-E F0(shell)4.002 E .009
-(option may be used to dynamically determine whether or not)144 708 R F1
-(echo)2.509 E F0 -.15(ex)2.51 G .01(pands these escape characters).15 F
-.66(by def)144 720 R(ault.)-.1 E F1(echo)5.66 E F0 .66
-(does not interpret)3.16 F F1<adad>3.16 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.659 E F0 .659
-(interprets the follo)3.159 F(wing)-.25 E(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(6)203.725 E 0 Cg EP
+.15 F(tory stack.)144 722.4 Q(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735
+E(6)203.725 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E
-(escape sequences:)144 84 Q/F1 10/Times-Bold@0 SF(\\a)144 96 Q F0
-(alert \(bell\))28.22 E F1(\\b)144 108 Q F0(backspace)27.66 E F1(\\c)144
-120 Q F0(suppress further output)28.78 E F1(\\e)144 132 Q(\\E)144 144 Q
-F0(an escape character)26.55 E F1(\\f)144 156 Q F0(form feed)29.89 E F1
-(\\n)144 168 Q F0(ne)27.66 E 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 180 Q
-F0(carriage return)28.78 E F1(\\t)144 192 Q F0(horizontal tab)29.89 E F1
-(\\v)144 204 Q F0 -.15(ve)28.22 G(rtical tab).15 E F1(\\\\)144 216 Q F0
-(backslash)30.44 E F1(\\0)144 228 Q/F2 10/Times-Italic@0 SF(nnn)A F0
-(the eight-bit character whose v)13.22 E(alue is the octal v)-.25 E
-(alue)-.25 E F2(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F1
-(\\x)144 240 Q F2(HH)A F0(the eight-bit character whose v)13.78 E
-(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0
-(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1
-(\\u)144 252 Q F2(HHHH)A F0 1.506
-(the Unicode \(ISO/IEC 10646\) character whose v)180 264 R 1.507
-(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.007 E F0(\(one to four he)180 276 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 288 Q F2(HHHHHHHH)A F0 .548
-(the Unicode \(ISO/IEC 10646\) character whose v)180 300 R .547
-(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.047 E(HHH)180 312 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\))
--2.5 E F1(enable)108 328.8 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C F1
-(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
-(][)C F2(name)-2.5 E F0(...])2.5 E .277(Enable and disable b)144 340.8 R
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(diso)108 84 Q(wn)-.1 E F0([)2.5 E F1(\255ar)A F0 2.5
+(][)C F1<ad68>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(jobspec)-2.5 E
+F0(...])2.5 E -.4(Wi)144 96 S .121(thout options, remo).4 F .422 -.15
+(ve e)-.15 H(ach).15 E F2(jobspec)4.362 E F0 .122
+(from the table of acti)2.932 F .422 -.15(ve j)-.25 H 2.622(obs. If).15
+F F2(jobspec)4.362 E F0 .122(is not present, and)2.932 F .096
+(neither the)144 108 R F1<ad61>2.596 E F0 .096(nor the)2.596 F F1<ad72>
+2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E .096
+(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1<ad68>
+2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each).15 F
+F2(jobspec)144 120 Q F0 .672(is not remo)3.482 F -.15(ve)-.15 G 3.172
+(df).15 G .672(rom the table, b)-3.172 F .672(ut is mark)-.2 F .672
+(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.172 E F0 .673
+(is not sent to the job if the)2.922 F .962(shell recei)144 132 R -.15
+(ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
+(If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
+<ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 144 R F1
+<ad72>3.858 E F0 1.358(option without a)3.858 F F2(jobspec)5.598 E F0
+(ar)4.169 E 1.359(gument restricts operation to running jobs.)-.18 F
+1.359(The return)6.359 F -.25(va)144 156 S(lue is 0 unless a).25 E F2
+(jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
+F1(echo)108 172.8 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)
+-.37 E F0(...])2.5 E .425(Output the)144 184.8 R F2(ar)2.925 E(g)-.37 E
+F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
+(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307
+(error occurs.)144 196.8 R(If)5.307 E F1<ad6e>2.807 E F0 .307
+(is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25
+F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15
+(ve)-.25 G .308(n, inter).15 F(-)-.2 E 1.349(pretation of the follo)144
+208.8 R 1.348(wing backslash-escaped characters is enabled.)-.25 F(The)
+6.348 E F1<ad45>3.848 E F0 1.348(option disables the)3.848 F 1.054
+(interpretation of these escape characters, e)144 220.8 R -.15(ve)-.25 G
+3.555(no).15 G 3.555(ns)-3.555 G 1.055(ystems where the)-3.555 F 3.555
+(ya)-.15 G 1.055(re interpreted by def)-3.555 F(ault.)-.1 E(The)144
+232.8 Q F1(xpg_echo)3.459 E F0 .959
+(shell option may be used to dynamically determine whether or not)3.459
+F F1(echo)3.458 E F0 -.15(ex)3.458 G(pands).15 E .715
+(these escape characters by def)144 244.8 R(ault.)-.1 E F1(echo)5.715 E
+F0 .716(does not interpret)3.215 F F1<adad>3.216 E F0 .716
+(to mean the end of options.)3.216 F F1(echo)5.716 E F0
+(interprets the follo)144 256.8 Q(wing escape sequences:)-.25 E F1(\\a)
+144 268.8 Q F0(alert \(bell\))28.22 E F1(\\b)144 280.8 Q F0(backspace)
+27.66 E F1(\\c)144 292.8 Q F0(suppress further output)28.78 E F1(\\e)144
+304.8 Q(\\E)144 316.8 Q F0(an escape character)26.55 E F1(\\f)144 328.8
+Q F0(form feed)29.89 E F1(\\n)144 340.8 Q F0(ne)27.66 E 2.5(wl)-.25 G
+(ine)-2.5 E F1(\\r)144 352.8 Q F0(carriage return)28.78 E F1(\\t)144
+364.8 Q F0(horizontal tab)29.89 E F1(\\v)144 376.8 Q F0 -.15(ve)28.22 G
+(rtical tab).15 E F1(\\\\)144 388.8 Q F0(backslash)30.44 E F1(\\0)144
+400.8 Q F2(nnn)A F0(the eight-bit character whose v)13.22 E
+(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 412.8 Q F2(HH)A F0
+(the eight-bit character whose v)13.78 E(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\u)144 424.8 Q F2(HHHH)A F0
+1.507(the Unicode \(ISO/IEC 10646\) character whose v)180 436.8 R 1.506
+(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
+4.006 E F0(\(one to four he)180 448.8 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 460.8 Q F2(HHHHHHHH)A F0 .547
+(the Unicode \(ISO/IEC 10646\) character whose v)180 472.8 R .547
+(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
+3.048 E(HHH)180 484.8 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
+(igits\))-2.5 E F1(enable)108 501.6 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C
+F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
+(][)C F2(name)-2.5 E F0(...])2.5 E .278(Enable and disable b)144 513.6 R
.278(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
-(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .834
-(the same name as a shell b)144 352.8 R .834(uiltin to be e)-.2 F -.15
+(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833
+(the same name as a shell b)144 525.6 R .834(uiltin to be e)-.2 F -.15
(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15
-(ve)-.25 G 3.333(nt).15 G(hough)-3.333 E .989
-(the shell normally searches for b)144 364.8 R .989
-(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .99
-(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F 1.582
-(abled; otherwise,)144 376.8 R F2(names)4.082 E F0 1.582(are enabled.)
+(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99
+(the shell normally searches for b)144 537.6 R .989
+(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .989
+(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F 1.581
+(abled; otherwise,)144 549.6 R F2(names)4.082 E F0 1.582(are enabled.)
4.082 F -.15(Fo)6.582 G 4.082(re).15 G 1.582(xample, to use the)-4.232 F
-F1(test)4.082 E F0 1.582(binary found via the)4.082 F/F3 9/Times-Bold@0
-SF -.666(PA)4.081 G(TH)-.189 E F0 .08(instead of the shell b)144 388.8 R
-.08(uiltin v)-.2 F .08(ersion, run)-.15 F/F4 10/Courier@0 SF .081
-(enable -n test)2.58 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.581 E F0 .081
-(option means to load the ne)2.581 F(w)-.25 E -.2(bu)144 400.8 S 1.525
-(iltin command).2 F F2(name)4.385 E F0 1.524(from shared object)4.204 F
+F1(test)4.082 E F0 1.582(binary found via the)4.082 F F3 -.666(PA)4.082
+G(TH)-.189 E F0 .081(instead of the shell b)144 561.6 R .081(uiltin v)
+-.2 F .081(ersion, run)-.15 F/F5 10/Courier@0 SF .081(enable -n test)
+2.581 F F0 5.081(.T)C(he)-5.081 E F1<ad66>2.58 E F0 .08
+(option means to load the ne)2.58 F(w)-.25 E -.2(bu)144 573.6 S 1.524
+(iltin command).2 F F2(name)4.384 E F0 1.524(from shared object)4.204 F
F2(\214lename)4.024 E F0 4.024(,o).18 G 4.024(ns)-4.024 G 1.524
-(ystems that support dynamic loading.)-4.024 F(The)144 412.8 Q F1<ad64>
-2.866 E F0 .366(option will delete a b)2.866 F .366(uiltin pre)-.2 F
-.366(viously loaded with)-.25 F F1<ad66>2.867 E F0 5.367(.I)C 2.867(fn)
--5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E .367(guments are gi)
--.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)144 424.8 R F1<ad70>
-2.899 E F0 .399(option is supplied, a list of shell b)2.899 F .399
+(ystems that support dynamic loading.)-4.024 F(The)144 585.6 Q F1<ad64>
+2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
+.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
+-5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
+-.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 597.6 R F1<ad70>
+2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
-F .398(guments, the)-.18 F .098(list consists of all enabled shell b)144
-436.8 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
-(is supplied, only disabled b)2.598 F .099(uiltins are printed.)-.2 F
-(If)5.099 E F1<ad61>2.599 E F0 1.917
-(is supplied, the list printed includes all b)144 448.8 R 1.916
-(uiltins, with an indication of whether or not each is)-.2 F 2.878
-(enabled. If)144 460.8 R F1<ad73>2.878 E F0 .379
-(is supplied, the output is restricted to the POSIX)2.878 F F2(special)
-2.879 E F0 -.2(bu)2.879 G 2.879(iltins. The).2 F .379(return v)2.879 F
-(alue)-.25 E .995(is 0 unless a)144 472.8 R F2(name)3.855 E F0 .994
-(is not a shell b)3.675 F .994(uiltin or there is an error loading a ne)
--.2 F 3.494(wb)-.25 G .994(uiltin from a shared)-3.694 F(object.)144
-484.8 Q F1 -2.3 -.15(ev a)108 501.6 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
-E F0(...])2.5 E(The)144 513.6 Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
-(re read and concatenated together into a single command.)-3.17 F .671
-(This command is then read)5.671 F .495(and e)144 525.6 R -.15(xe)-.15 G
-.495(cuted by the shell, and its e).15 F .495
+F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
+609.6 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
+(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
+(If)5.098 E F1<ad61>2.598 E F0 1.916
+(is supplied, the list printed includes all b)144 621.6 R 1.916
+(uiltins, with an indication of whether or not each is)-.2 F 2.879
+(enabled. If)144 633.6 R F1<ad73>2.879 E F0 .379
+(is supplied, the output is restricted to the POSIX)2.879 F F2(special)
+2.879 E F0 -.2(bu)2.878 G 2.878(iltins. The).2 F .378(return v)2.878 F
+(alue)-.25 E .994(is 0 unless a)144 645.6 R F2(name)3.854 E F0 .994
+(is not a shell b)3.674 F .994(uiltin or there is an error loading a ne)
+-.2 F 3.495(wb)-.25 G .995(uiltin from a shared)-3.695 F(object.)144
+657.6 Q F1 -2.3 -.15(ev a)108 674.4 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37
+E F0(...])2.5 E(The)144 686.4 Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C
+.671(re read and concatenated together into a single command.)-3.171 F
+.67(This command is then read)5.67 F .495(and e)144 698.4 R -.15(xe)-.15
+G .495(cuted by the shell, and its e).15 F .495
(xit status is returned as the v)-.15 F .495(alue of)-.25 F F1 -2.3 -.15
(ev a)2.995 H(l).15 E F0 5.495(.I)C 2.995(ft)-5.495 G .495(here are no)
--2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 537.6 Q
-(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
-(exec)108 554.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
-(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
--.37 E F0(]])A(If)144 566.4 Q F2(command)3.005 E F0 .305
-(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
-(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E
-(guments)-.37 E F0(become)3.076 E .177(the ar)144 578.4 R .177
-(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
-(he)-2.676 E F1<ad6c>2.676 E F0 .176
-(option is supplied, the shell places a dash at the be)2.676 F .176
-(ginning of)-.15 F .499(the zeroth ar)144 590.4 R .499(gument passed to)
--.18 F F2(command)2.999 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2
-(lo)2.999 E(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.5 E F1<ad63>3 E F0
-.5(option causes)3 F F2(com-)3.2 E(mand)144 602.4 Q F0 .639(to be e)
-3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
-(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
-(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the)
-3.318 F 1.077(zeroth ar)144 614.4 R 1.077(gument to the e)-.18 F -.15
-(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
-1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 626.4 Q .618 -.15(ve s)-.25 H .318(hell e).15 F
-.318(xits, unless the shell option)-.15 F F1(execfail)2.817 E F0 .317
-(is enabled, in which case it returns f)2.817 F(ail-)-.1 E 2.505
-(ure. An)144 638.4 R(interacti)2.505 E .305 -.15(ve s)-.25 H .005
-(hell returns f).15 F .005(ailure if the \214le cannot be e)-.1 F -.15
-(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
-(is not speci\214ed,)3.275 F(an)144 650.4 Q 3.037(yr)-.15 G .537
-(edirections tak)-3.037 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
-(ect in the current shell, and the return status is 0.).25 F .536
-(If there is a redirection)5.536 F(error)144 662.4 Q 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 679.2 Q F0([)2.5 E F2(n)A F0
-6.29(]C)C .095(ause the shell to e)-6.29 F .095(xit with a status of)
--.15 F F2(n)2.595 E F0 5.095(.I)C(f)-5.095 E F2(n)2.955 E F0 .096
-(is omitted, the e)2.835 F .096(xit status is that of the last command)
--.15 F -.15(exe)144 691.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
-E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg EP
+-2.995 F F2(ar)2.995 E(gs)-.37 E F0(,).27 E(or only null ar)144 710.4 Q
+(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E
+(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(7)203.725 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(export)108 84 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G
-/F2 10/Times-Italic@0 SF(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0
-(]] ...)A F1(export \255p)108 96 Q F0 .257(The supplied)144 108 R F2
-(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
+/Times-Bold@0 SF(exec)108 84 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1
+<ad61>-2.5 E/F2 10/Times-Italic@0 SF(name)2.5 E F0 2.5(][)C F2(command)
+-2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(]])A(If)144 96 Q F2(command)
+3.006 E F0 .306(is speci\214ed, it replaces the shell.)3.576 F .305
+(No ne)5.305 F 2.805(wp)-.25 G .305(rocess is created.)-2.805 F(The)
+5.305 E F2(ar)3.135 E(guments)-.37 E F0(become)3.075 E .176(the ar)144
+108 R .176(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)
+-5.176 G(he)-2.676 E F1<ad6c>2.676 E F0 .176
+(option is supplied, the shell places a dash at the be)2.676 F .177
+(ginning of)-.15 F .5(the zeroth ar)144 120 R .5(gument passed to)-.18 F
+F2(command)3 E F0 5.499(.T).77 G .499(his is what)-5.499 F F2(lo)2.999 E
+(gin)-.1 E F0 .499(\(1\) does.).24 F(The)5.499 E F1<ad63>2.999 E F0 .499
+(option causes)2.999 F F2(com-)3.199 E(mand)144 132 Q F0 .638(to be e)
+3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
+(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
+3.319 F 1.078(zeroth ar)144 144 R 1.077(gument to the e)-.18 F -.15(xe)
+-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0 1.077
+(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a).15 F
+(non-interacti)144 156 Q .876 -.15(ve s)-.25 H .576(hell e).15 F .576
+(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
+(shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
+F(ail-)-.1 E 2.505(ure. An)144 168 R(interacti)2.505 E .305 -.15(ve s)
+-.25 H .005(hell returns f).15 F .005(ailure if the \214le cannot be e)
+-.1 F -.15(xe)-.15 G 2.505(cuted. If).15 F F2(command)2.705 E F0 .005
+(is not speci\214ed,)3.275 F(an)144 180 Q 3.036(yr)-.15 G .536
+(edirections tak)-3.036 F 3.036(ee)-.1 G -.25(ff)-3.036 G .536
+(ect in the current shell, and the return status is 0.).25 F .536
+(If there is a redirection)5.536 F(error)144 192 Q 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E F1(exit)108 208.8 Q F0([)2.5 E F2(n)A F0
+6.29(]C)C .096(ause the shell to e)-6.29 F .096(xit with a status of)
+-.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
+(is omitted, the e)2.835 F .095(xit status is that of the last command)
+-.15 F -.15(exe)144 220.8 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
+/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
+(cuted before the shell terminates.).15 E F1(export)108 237.6 Q F0([)2.5
+E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
+F0(]] ...)A F1(export \255p)108 249.6 Q F0 .256(The supplied)144 261.6 R
+F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.626(commands. If)144 120 R(the)2.626 E F1<ad66>
-2.626 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2
-(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2
-(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .127(n, or if the)
-.15 F F1<ad70>144 132 Q F0 .66
-(option is supplied, a list of all names that are e)3.16 F .659
-(xported in this shell is printed.)-.15 F(The)5.659 E F1<ad6e>3.159 E F0
-(option)3.159 E 1.586(causes the e)144 144 R 1.586
-(xport property to be remo)-.15 F -.15(ve)-.15 G 4.086(df).15 G 1.586
-(rom each)-4.086 F F2(name)4.086 E F0 6.586(.I)C 4.086(fav)-6.586 G
-1.587(ariable name is follo)-4.336 F 1.587(wed by)-.25 F(=)144 156 Q F2
-(wor)A(d)-.37 E F0 2.804(,t)C .304(he v)-2.804 F .304(alue of the v)-.25
-F .304(ariable is set to)-.25 F F2(wor)2.804 E(d)-.37 E F0(.)A F1
-(export)5.304 E F0 .304(returns an e)2.804 F .303
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G(lid).25 E .293
-(option is encountered, one of the)144 168 R F2(names)2.793 E F0 .293
-(is not a v)2.793 F .293(alid shell v)-.25 F .293(ariable name, or)-.25
-F F1<ad66>2.793 E F0 .294(is supplied with a)2.793 F F2(name)144.36 180
-Q F0(that is not a function.)2.68 E F1(fc)108 196.8 Q F0([)2.5 E F1
-<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
+(xe)-.15 G(cuted).15 E 2.627(commands. If)144 273.6 R(the)2.627 E F1
+<ad66>2.627 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the)
+.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
+5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .126
+(n, or if the).15 F F1<ad70>144 285.6 Q F0 .048
+(option is supplied, a list of names of all e)2.547 F .048(xported v)
+-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.548 E F0
+.048(option causes the)2.548 F -.15(ex)144 297.6 S 1.447
+(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
+(rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
+1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 309.6 S .741(lue of the v)
+.25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
+(export)5.741 E F0 .742(returns an e)3.242 F .742
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
+.25 F .032(encountered, one of the)144 321.6 R F2(names)2.532 E F0 .032
+(is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
+F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
+(that)2.711 E(is not a function.)144 333.6 Q F1(fc)108 350.4 Q F0([)2.5
+E F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-208.8 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
-(cmd)-2.5 E F0(])A .478(Fix Command.)144 220.8 R .478
-(In the \214rst form, a range of commands from)5.478 F F2<8c72>4.888 E
-(st)-.1 E F0(to)3.658 E F2(last)3.068 E F0 .477
-(is selected from the his-)3.658 F .881(tory list.)144 232.8 R F2 -.45
-(Fi)5.881 G -.1(rs).45 G(t).1 E F0(and)4.061 E F2(last)3.471 E F0 .882
-(may be speci\214ed as a string \(to locate the last command be)4.062 F
-.882(ginning with)-.15 F .797(that string\) or as a number \(an inde)144
-244.8 R 3.297(xi)-.15 G .797(nto the history list, where a ne)-3.297 F
--.05(ga)-.15 G(ti).05 E 1.097 -.15(ve n)-.25 H .796(umber is used as an)
-.15 F(of)144 256.8 Q .276(fset from the current command number\).)-.25 F
-(If)5.276 E F2(last)2.866 E F0 .277
-(is not speci\214ed it is set to the current command)3.456 F .093
-(for listing \(so that)144 268.8 R/F3 10/Courier@0 SF .092
-(fc \255l \25510)2.592 F F0 .092(prints the last 10 commands\) and to)
-2.592 F F2<8c72>4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72>
-4.502 E(st)-.1 E F0 .092(is not)3.272 F
-(speci\214ed it is set to the pre)144 280.8 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 304.8
+362.4 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+(cmd)-2.5 E F0(])A .431
+(The \214rst form selects a range of commands from)144 374.4 R F2<8c72>
+4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
+(from the history list and displays or)3.612 F .142(edits and re-e)144
+386.4 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+.45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
+(may be speci\214ed as a string \(to locate the last command)3.321 F(be)
+144 398.4 Q .31(ginning with that string\) or as a number \(an inde)-.15
+F 2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05
+(ga)-.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .315
+(is used as an of)144 410.4 R .315
+(fset from the current command number\).)-.25 F(If)5.315 E F2(last)2.904
+E F0 .314(is not speci\214ed it is set to the cur)3.494 F(-)-.2 E .948
+(rent command for listing \(so that)144 422.4 R/F4 10/Courier@0 SF .948
+(fc \255l \25510)3.448 F F0 .948(prints the last 10 commands\) and to)
+3.448 F F2<8c72>5.359 E(st)-.1 E F0(other)4.129 E(-)-.2 E 2.5(wise. If)
+144 434.4 R F2<8c72>4.41 E(st)-.1 E F0
+(is not speci\214ed it is set to the pre)3.18 E
+(vious command for editing and \25516 for listing.)-.25 E(The)144 458.4
Q F1<ad6e>2.522 E F0 .022
(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 316.8 R .438(If the)
+(rses the order of).15 F .438(the commands.)144 470.4 R .438(If the)
5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.334(the editor gi)144 328.8 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E
-F2(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+.335(the editor gi)144 482.4 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
+F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.335 E F2(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
-(n,).15 E .631(the v)144 340.8 R .631(alue of the)-.25 F/F4 9
-/Times-Bold@0 SF(FCEDIT)3.131 E F0 -.25(va)2.881 G .631
-(riable is used, and the v).25 F .631(alue of)-.25 F F4(EDIT)3.131 E(OR)
--.162 E F0(if)2.881 E F4(FCEDIT)3.13 E F0 .63(is not set.)2.88 F .63
-(If nei-)5.63 F 1.884(ther v)144 352.8 R 1.884(ariable is set, is used.)
--.25 F 1.884
-(When editing is complete, the edited commands are echoed and)6.884 F
--.15(exe)144 364.8 S(cuted.).15 E .04(In the second form,)144 388.8 R F2
-(command)2.54 E F0 .04(is re-e)2.54 F -.15(xe)-.15 G .039
-(cuted after each instance of).15 F F2(pat)2.539 E F0 .039
-(is replaced by)2.539 F F2 -.37(re)2.539 G(p).37 E F0 5.039(.A)C(useful)
--2.5 E .406(alias to use with this is)144 400.8 R F3 .406(r='fc \255s')
-2.906 F F0 2.906(,s)C 2.906(ot)-2.906 G .406(hat typing)-2.906 F F3
-6.406(rc)2.906 G(c)-6.406 E F0 .406(runs the last command be)2.906 F
-.407(ginning with)-.15 F F3(cc)144 412.8 Q F0(and typing)2.5 E F3(r)2.5
-E F0(re-e)2.5 E -.15(xe)-.15 G(cutes the last command.).15 E .142
-(If the \214rst form is used, the return v)144 436.8 R .142
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E .63(the v)144 494.4 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
+F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
+F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
+(is not set.)2.881 F .631(If nei-)5.631 F .951(ther v)144 506.4 R .951
+(ariable is set,)-.25 F F2(vi)5.117 E F0 .951(is used.)5.117 F .95
+(When editing is complete, the edited commands are echoed and)5.951 F
+-.15(exe)144 518.4 S(cuted.).15 E .788(In the second form,)144 542.4 R
+F2(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
+(cuted after each instance of).15 F F2(pat)3.288 E F0 .788
+(is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789
+E(mand)144 554.4 Q F0 .347(is intepreted the same as)2.847 F F2<8c72>
+2.847 E(st)-.1 E F0(abo)2.847 E -.15(ve)-.15 G 5.347(.A).15 G .347
+(useful alias to use with this is)-2.5 F F4 .346(r='fc \255s')2.847 F F0
+2.846(,s)C 2.846(ot)-2.846 G(hat)-2.846 E(typing)144 566.4 Q F4 7.165
+(rc)3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
+(ginning with)-.15 F F4(cc)3.666 E F0 1.166(and typing)3.666 F F4(r)
+3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F
+(mand.)144 578.4 Q .142(If the \214rst form is used, the return v)144
+602.4 R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .454(specify history lines out of range.)144 448.8
+E F2(last)2.732 E F0 .454(specify history lines out of range.)144 614.4
R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
-(alue of the)-.25 F .788(last command e)144 460.8 R -.15(xe)-.15 G .788
+(alue of the)-.25 F .788(last command e)144 626.4 R -.15(xe)-.15 G .788
(cuted or f).15 F .787
(ailure if an error occurs with the temporary \214le of commands.)-.1 F
.787(If the)5.787 F 1.135
(second form is used, the return status is that of the command re-e)144
-472.8 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
-(does not)4.406 F(specify a v)144 484.8 Q
+638.4 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 650.4 Q
(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F1(fg)108 501.6 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 513.6 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+(ailure.)-.1 E F1(fg)108 667.2 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
+144 679.2 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.413(is not present, the)4.223 F(shell')144 525.6 Q 3.116(sn)-.55 G
+1.413(is not present, the)4.223 F(shell')144 691.2 Q 3.116(sn)-.55 G
.616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)-.37 F F0 .617
(is used.)3.116 F .617(The return v)5.617 F .617
-(alue is that of the command placed into the)-.25 F(fore)144 537.6 Q
+(alue is that of the command placed into the)-.25 F(fore)144 703.2 Q
.363(ground, or f)-.15 F .363
(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
-(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 549.6 Q
+(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 715.2 Q
F0 .004(does not specify a v)2.814 F .004(alid job or)-.25 F F2(jobspec)
4.244 E F0 .004(speci\214es a job that w)2.814 F .004
-(as started without job control.)-.1 F F1(getopts)108 566.4 Q F2
+(as started without job control.)-.1 F(GNU Bash-4.2)72 768 Q
+(2004 Apr 20)148.735 E(8)203.725 E 0 Cg EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(getopts)108 84 Q/F2 10/Times-Italic@0 SF
(optstring name)2.5 E F0([)2.5 E F2(ar)A(gs)-.37 E F0(])A F1(getopts)144
-578.4 Q F0 .793
+96 Q F0 .793
(is used by shell procedures to parse positional parameters.)3.294 F F2
(optstring)6.023 E F0 .793(contains the option)3.513 F .149
-(characters to be recognized; if a character is follo)144 590.4 R .15
+(characters to be recognized; if a character is follo)144 108 R .15
(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
--.15(ve a)-.2 H(n).15 E(ar)144 602.4 Q .579
+-.15(ve a)-.2 H(n).15 E(ar)144 120 Q .579
(gument, which should be separated from it by white space.)-.18 F .578
(The colon and question mark char)5.579 F(-)-.2 E 1.665
-(acters may not be used as option characters.)144 614.4 R 1.665
+(acters may not be used as option characters.)144 132 R 1.665
(Each time it is in)6.665 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
4.165 E F0 1.665(places the ne)4.165 F(xt)-.15 E .797
-(option in the shell v)144 626.4 R(ariable)-.25 E F2(name)3.297 E F0
-3.297(,i).18 G(nitializing)-3.297 E F2(name)3.657 E F0 .797
-(if it does not e)3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G
-3.296(ft)-3.296 G .796(he ne)-3.296 F(xt)-.15 E(ar)144 638.4 Q .085
-(gument to be processed into the v)-.18 F(ariable)-.25 E F4(OPTIND)2.585
-E/F5 9/Times-Roman@0 SF(.)A F4(OPTIND)4.585 E F0 .085
-(is initialized to 1 each time the shell)2.335 F .846
-(or a shell script is in)144 650.4 R -.2(vo)-.4 G -.1(ke).2 G 3.345
+(option in the shell v)144 144 R(ariable)-.25 E F2(name)3.297 E F0 3.297
+(,i).18 G(nitializing)-3.297 E F2(name)3.657 E F0 .797(if it does not e)
+3.477 F .796(xist, and the inde)-.15 F 3.296(xo)-.15 G 3.296(ft)-3.296 G
+.796(he ne)-3.296 F(xt)-.15 E(ar)144 156 Q .085
+(gument to be processed into the v)-.18 F(ariable)-.25 E/F3 9
+/Times-Bold@0 SF(OPTIND)2.585 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
+4.585 E F0 .085(is initialized to 1 each time the shell)2.335 F .846
+(or a shell script is in)144 168 R -.2(vo)-.4 G -.1(ke).2 G 3.345
(d. When).1 F .845(an option requires an ar)3.345 F(gument,)-.18 E F1
(getopts)3.345 E F0 .845(places that ar)3.345 F(gument)-.18 E .803
-(into the v)144 662.4 R(ariable)-.25 E F4(OPT)3.303 E(ARG)-.81 E F5(.)A
-F0 .803(The shell does not reset)5.303 F F4(OPTIND)3.303 E F0 .804
+(into the v)144 180 R(ariable)-.25 E F3(OPT)3.303 E(ARG)-.81 E F4(.)A F0
+.803(The shell does not reset)5.303 F F3(OPTIND)3.303 E F0 .804
(automatically; it must be manually)3.054 F .294
-(reset between multiple calls to)144 674.4 R F1(getopts)2.793 E F0 .293
+(reset between multiple calls to)144 192 R F1(getopts)2.793 E F0 .293
(within the same shell in)2.793 F -.2(vo)-.4 G .293(cation if a ne).2 F
-2.793(ws)-.25 G .293(et of parameters)-2.793 F(is to be used.)144 686.4
-Q 2.043(When the end of options is encountered,)144 710.4 R F1(getopts)
-4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
-(alue greater than zero.)-.25 F F4(OPTIND)144 722.4 Q F0
+2.793(ws)-.25 G .293(et of parameters)-2.793 F(is to be used.)144 204 Q
+2.043(When the end of options is encountered,)144 228 R F1(getopts)4.543
+E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
+(alue greater than zero.)-.25 F F3(OPTIND)144 240 Q F0
(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F2(name)2.5 E F0
-(is set to ?.)2.5 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(8)
-203.725 E 0 Cg EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(getopts)144 84 Q F0 2.393
+(is set to ?.)2.5 E F1(getopts)144 264 Q F0 2.393
(normally parses the positional parameters, b)4.893 F 2.392
(ut if more ar)-.2 F 2.392(guments are gi)-.18 F -.15(ve)-.25 G 4.892
-(ni).15 G(n)-4.892 E/F2 10/Times-Italic@0 SF(ar)4.892 E(gs)-.37 E F0(,)
-.27 E F1(getopts)144 96 Q F0(parses those instead.)2.5 E F1(getopts)144
-120 Q F0 1.165(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665
-(ays. If)-3.765 F 1.165(the \214rst character of)3.665 F F2(optstring)
-3.895 E F0 1.166(is a colon,)3.886 F F2(silent)4.006 E F0(error)4.346 E
-1.264(reporting is used.)144 132 R 1.263
-(In normal operation diagnostic messages are printed when in)6.263 F
--.25(va)-.4 G 1.263(lid options or).25 F .393(missing option ar)144 144
-R .393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
--.25 E/F3 9/Times-Bold@0 SF(OPTERR)2.894 E F0 .394
-(is set to 0, no error messages)2.644 F(will be displayed, e)144 156 Q
--.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
-F2(optstring)2.73 E F0(is not a colon.)2.72 E .667(If an in)144 180 R
--.25(va)-.4 G .667(lid option is seen,).25 F F1(getopts)3.167 E F0 .667
-(places ? into)3.167 F F2(name)3.527 E F0 .666
-(and, if not silent, prints an error message)3.347 F .399(and unsets)144
-192 R F3(OPT)2.899 E(ARG)-.81 E/F4 9/Times-Roman@0 SF(.)A F0(If)4.899 E
-F1(getopts)2.899 E F0 .399
+(ni).15 G(n)-4.892 E F2(ar)4.892 E(gs)-.37 E F0(,).27 E F1(getopts)144
+276 Q F0(parses those instead.)2.5 E F1(getopts)144 300 Q F0 1.165
+(can report errors in tw)3.665 F 3.665(ow)-.1 G 3.665(ays. If)-3.765 F
+1.165(the \214rst character of)3.665 F F2(optstring)3.895 E F0 1.166
+(is a colon,)3.886 F F2(silent)4.006 E F0(error)4.346 E 1.071
+(reporting is used.)144 312 R 1.071
+(In normal operation, diagnostic messages are printed when in)6.071 F
+-.25(va)-.4 G 1.07(lid options or).25 F .393(missing option ar)144 324 R
+.393(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)-.25
+E F3(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
+(will be displayed, e)144 336 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
+G(he \214rst character of)-2.5 E F2(optstring)2.73 E F0(is not a colon.)
+2.72 E .667(If an in)144 360 R -.25(va)-.4 G .667(lid option is seen,)
+.25 F F1(getopts)3.167 E F0 .667(places ? into)3.167 F F2(name)3.527 E
+F0 .666(and, if not silent, prints an error message)3.347 F .399
+(and unsets)144 372 R F3(OPT)2.899 E(ARG)-.81 E F4(.)A F0(If)4.899 E F1
+(getopts)2.899 E F0 .399
(is silent, the option character found is placed in)2.899 F F3(OPT)2.899
-E(ARG)-.81 E F0 .4(and no)2.65 F(diagnostic message is printed.)144 204
-Q 1.242(If a required ar)144 228 R 1.242(gument is not found, and)-.18 F
+E(ARG)-.81 E F0 .4(and no)2.65 F(diagnostic message is printed.)144 384
+Q 1.242(If a required ar)144 408 R 1.242(gument is not found, and)-.18 F
F1(getopts)3.741 E F0 1.241(is not silent, a question mark \()3.741 F F1
(?).833 E F0 3.741(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F
-F2(name)144 240 Q F0(,).18 E F3(OPT)2.734 E(ARG)-.81 E F0 .234
+F2(name)144 420 Q F0(,).18 E F3(OPT)2.734 E(ARG)-.81 E F0 .234
(is unset, and a diagnostic message is printed.)2.484 F(If)5.234 E F1
(getopts)2.734 E F0 .235(is silent, then a colon \()2.734 F F1(:).833 E
-F0(\)).833 E(is placed in)144 252 Q F2(name)2.86 E F0(and)2.68 E F3(OPT)
+F0(\)).833 E(is placed in)144 432 Q F2(name)2.86 E F0(and)2.68 E F3(OPT)
2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F1
-(getopts)144 276 Q F0 .902
+(getopts)144 456 Q F0 .902
(returns true if an option, speci\214ed or unspeci\214ed, is found.)
3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 288 Q F1(hash)108 304.8
+(options is encountered or an error occurs.)144 468 Q F1(hash)108 484.8
Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\214lename)2.5 E
F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .858
-(Each time)144 316.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
+(Each time)144 496.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
G -.1(ke).2 G .858(d, the full pathname of the command).1 F F2(name)
3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 328.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
+(the directories in)144 508.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .098(If the)144 340.8
-R F1<ad70>2.598 E F0 .098
-(option is supplied, no path search is performed, and)2.598 F F2
-(\214lename)4.509 E F0 .099(is used as the full \214le name)2.779 F
-1.712(of the command.)144 352.8 R(The)6.712 E F1<ad72>4.212 E F0 1.711
+(viously-remembered pathname is discarded.)-.25 F .242(If the)144 520.8
+R F1<ad70>2.742 E F0 .243
+(option is supplied, no path search is performed, and)2.742 F F2
+(\214lename)4.653 E F0 .243(is used as the full \214lename)2.923 F 1.712
+(of the command.)144 532.8 R(The)6.712 E F1<ad72>4.212 E F0 1.711
(option causes the shell to for)4.212 F 1.711
(get all remembered locations.)-.18 F(The)6.711 E F1<ad64>4.211 E F0
-.833(option causes the shell to for)144 364.8 R .833
+.833(option causes the shell to for)144 544.8 R .833
(get the remembered location of each)-.18 F F2(name)3.333 E F0 5.833(.I)
C 3.333(ft)-5.833 G(he)-3.333 E F1<ad74>3.333 E F0 .833(option is sup-)
-3.333 F .704(plied, the full pathname to which each)144 376.8 R F2(name)
+3.333 F .704(plied, the full pathname to which each)144 556.8 R F2(name)
3.204 E F0 .703(corresponds is printed.)3.204 F .703(If multiple)5.703 F
F2(name)3.203 E F0(ar)3.203 E(guments)-.18 E .795(are supplied with)144
-388.8 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0
+568.8 R F1<ad74>3.295 E F0 3.295(,t)C(he)-3.295 E F2(name)3.295 E F0
.795(is printed before the hashed full pathname.)3.295 F(The)5.795 E F1
<ad6c>3.295 E F0 .795(option causes)3.295 F .934
(output to be displayed in a format that may be reused as input.)144
-400.8 R .934(If no ar)5.934 F .934(guments are gi)-.18 F -.15(ve)-.25 G
-.934(n, or if).15 F(only)144 412.8 Q F1<ad6c>2.821 E F0 .321
+580.8 R .934(If no ar)5.934 F .934(guments are gi)-.18 F -.15(ve)-.25 G
+.934(n, or if).15 F(only)144 592.8 Q F1<ad6c>2.821 E F0 .321
(is supplied, information about remembered commands is printed.)2.821 F
-.322(The return status is true)5.322 F(unless a)144 424.8 Q F2(name)2.86
+.322(The return status is true)5.322 F(unless a)144 604.8 Q F2(name)2.86
E F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
-.25 E F1(help)108 441.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
+.25 E F1(help)108 621.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
(pattern)-2.5 E F0(])A .867(Display helpful information about b)144
-453.6 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
+633.6 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
.866(is speci\214ed,)3.607 F F1(help)3.366 E F0(gi)3.366 E -.15(ve)-.25
G 3.366(sd).15 G(etailed)-3.366 E .306(help on all commands matching)144
-465.6 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
+645.6 R F2(pattern)2.806 E F0 2.807(;o).24 G .307
(therwise help for all the b)-2.807 F .307
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 477.6 Q F1
-<ad64>144 489.6 Q F0(Display a short description of each)24.74 E F2
-(pattern)2.5 E F1<ad6d>144 501.6 Q F0(Display the description of each)
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 657.6 Q F1
+<ad64>144 669.6 Q F0(Display a short description of each)24.74 E F2
+(pattern)2.5 E F1<ad6d>144 681.6 Q F0(Display the description of each)
21.97 E F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G(ormat)
--2.5 E F1<ad73>144 513.6 Q F0
+-2.5 E F1<ad73>144 693.6 Q F0
(Display only a short usage synopsis for each)26.41 E F2(pattern)2.5 E
-F0(The return status is 0 unless no command matches)108 525.6 Q F2
-(pattern)2.5 E F0(.).24 E F1(history [)108 542.4 Q F2(n)A F1(])A
-(history \255c)108 554.4 Q(history \255d)108 566.4 Q F2(of)2.5 E(fset)
--.18 E F1(history \255anrw)108 578.4 Q F0([)2.5 E F2(\214lename)A F0(])A
-F1(history \255p)108 590.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
-(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 602.4 Q F2(ar)2.5 E(g)
--.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
-614.4 S .752
+F0(The return status is 0 unless no command matches)144 710.4 Q F2
+(pattern)2.5 E F0(.).24 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(9)
+203.725 E 0 Cg EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(history [)108 84 Q/F2 10/Times-Italic@0 SF(n)A F1(])A
+(history \255c)108 96 Q(history \255d)108 108 Q F2(of)2.5 E(fset)-.18 E
+F1(history \255anrw)108 120 Q F0([)2.5 E F2(\214lename)A F0(])A F1
+(history \255p)108 132 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5(g.)
+-.37 G(..)-2.5 E F0(])A F1(history \255s)108 144 Q F2(ar)2.5 E(g)-.37 E
+F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 156 S .752
(th no options, display the command history list with line numbers.).4 F
.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
-G .38(been modi\214ed.)144 626.4 R .38(An ar)5.38 F .38(gument of)-.18 F
+G .38(been modi\214ed.)144 168 R .38(An ar)5.38 F .38(gument of)-.18 F
F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
-(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E F3(HISTTIMEFOR-)
-2.881 E(MA)144 638.4 Q(T)-.855 E F0 .265
+(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
+/Times-Bold@0 SF(HISTTIMEFOR-)2.881 E(MA)144 180 Q(T)-.855 E F0 .265
(is set and not null, it is used as a format string for)2.515 F F2
(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019
-(ciated with each displayed history entry)144 650.4 R 6.019(.N)-.65 G
+(ciated with each displayed history entry)144 192 R 6.019(.N)-.65 G
3.519(oi)-6.019 G(nterv)-3.519 E 1.019
(ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 662.4 R(If)5.176 E F2(\214lename)
+(time stamp and the history line.)144 204 R(If)5.176 E F2(\214lename)
2.676 E F0 .176
(is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 674.4 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)
-2.25 E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad63>144 686.4 Q F0
+(not, the v)144 216 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)2.25
+E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad63>144 228 Q F0
(Clear the history list by deleting all the entries.)25.86 E F1<ad64>144
-698.4 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
-180 710.4 Q F2(of)2.5 E(fset)-.18 E F0(.)A(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(9)203.725 E 0 Cg EP
-%%Page: 10 10
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad61>144 84 Q F0 .598(Append the `)25.3 F(`ne)-.74 E
-(w')-.25 E 3.098('h)-.74 G .598
+240 Q F2(of)2.5 E(fset)-.18 E F0(Delete the history entry at position)
+180 252 Q F2(of)2.5 E(fset)-.18 E F0(.)A F1<ad61>144 264 Q F0 .598
+(Append the `)25.3 F(`ne)-.74 E(w')-.25 E 3.098('h)-.74 G .598
(istory lines \(history lines entered since the be)-3.098 F .599
-(ginning of the current)-.15 F F1(bash)180 96 Q F0
-(session\) to the history \214le.)2.5 E F1<ad6e>144 108 Q F0 .854(Read \
+(ginning of the current)-.15 F F1(bash)180 276 Q F0
+(session\) to the history \214le.)2.5 E F1<ad6e>144 288 Q F0 .854(Read \
the history lines not already read from the history \214le into the cur\
rent history list.)24.74 F .772
-(These are lines appended to the history \214le since the be)180 120 R
+(These are lines appended to the history \214le since the be)180 300 R
.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 132 Q F1<ad72>144 144 Q F0(Read the contents of the history \
-\214le and use them as the current history)25.86 E(.)-.65 E F1<ad77>144
-156 Q F0(Write the current history to the history \214le, o)23.08 E -.15
-(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
--2.5 E F1<ad70>144 168 Q F0 .626
-(Perform history substitution on the follo)24.74 F(wing)-.25 E/F2 10
-/Times-Italic@0 SF(ar)3.125 E(gs)-.37 E F0 .625
-(and display the result on the standard)3.125 F 2.975(output. Does)180
-180 R .475(not store the results in the history list.)2.975 F(Each)5.475
-E F2(ar)2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 192 Q(xpansion.)-.15 E F1<ad73>144 204 Q F0 .363
+(sion.)180 312 Q F1<ad72>144 324 Q F0(Read the contents of the history \
+\214le and append them to the current history list.)25.86 E F1<ad77>144
+336 Q F0(Write the current history list to the history \214le, o)23.08 E
+-.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F1<ad70>144 348 Q F0 .626
+(Perform history substitution on the follo)24.74 F(wing)-.25 E F2(ar)
+3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+2.975(output. Does)180 360 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
+2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
+(normal history e)180 372 Q(xpansion.)-.15 E F1<ad73>144 384 Q F0 .363
(Store the)26.41 F F2(ar)3.193 E(gs)-.37 E F0 .363
(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
-(he last command in the history list is)-5.363 F(remo)180 216 Q -.15(ve)
+(he last command in the history list is)-5.363 F(remo)180 396 Q -.15(ve)
-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .145(If the)144 232.8 R/F3 9/Times-Bold@0 SF
-(HISTTIMEFORMA)2.645 E(T)-.855 E F0 -.25(va)2.395 G .145
+(are added.)2.77 E .145(If the)144 412.8 R F3(HISTTIMEFORMA)2.645 E(T)
+-.855 E F0 -.25(va)2.395 G .145
(riable is set, the time stamp information associated with each history)
-.25 F .669(entry is written to the history \214le, mark)144 244.8 R .669
+.25 F .669(entry is written to the history \214le, mark)144 424.8 R .669
(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
-(hen the history)-5.668 F .955(\214le is read, lines be)144 256.8 R .956
+(hen the history)-5.668 F .955(\214le is read, lines be)144 436.8 R .956
(ginning with the history comment character follo)-.15 F .956
(wed immediately by a digit)-.25 F .416
-(are interpreted as timestamps for the pre)144 268.8 R .416
+(are interpreted as timestamps for the pre)144 448.8 R .416
(vious history line.)-.25 F .416(The return v)5.416 F .415
(alue is 0 unless an in)-.25 F -.25(va)-.4 G(lid).25 E .499(option is e\
ncountered, an error occurs while reading or writing the history \214le\
-, an in)144 280.8 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
-3 E(supplied as an ar)144 292.8 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
+, an in)144 460.8 R -.25(va)-.4 G(lid).25 E F2(of)3 E(fset)-.18 E F0(is)
+3 E(supplied as an ar)144 472.8 Q(gument to)-.18 E F1<ad64>2.5 E F0 2.5
(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E(xpansion supplied as an ar)-.15
E(gument to)-.18 E F1<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(jobs)108
-309.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5
-E F1(jobs \255x)108 321.6 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)
--.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 333.6 Q .3
+489.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])2.5
+E F1(jobs \255x)108 501.6 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E(gs)
+-.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 513.6 Q .3
-.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F1<ad6c>144 345.6 Q F0
+(he follo).15 E(wing meanings:)-.25 E F1<ad6c>144 525.6 Q F0
(List process IDs in addition to the normal information.)27.52 E F1
-<ad6e>144 357.6 Q F0 .194(Display information only about jobs that ha)
+<ad6e>144 537.6 Q F0 .194(Display information only about jobs that ha)
24.74 F .494 -.15(ve c)-.2 H .193(hanged status since the user w).15 F
-.193(as last noti-)-.1 F(\214ed of their status.)180 369.6 Q F1<ad70>144
-381.6 Q F0(List only the process ID of the job')24.74 E 2.5(sp)-.55 G
-(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 393.6 Q F0
-(Restrict output to running jobs.)25.86 E F1<ad73>144 405.6 Q F0
-(Restrict output to stopped jobs.)26.41 E(If)144 422.4 Q F2(jobspec)
-4.553 E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
+.193(as last noti-)-.1 F(\214ed of their status.)180 549.6 Q F1<ad70>144
+561.6 Q F0(List only the process ID of the job')24.74 E 2.5(sp)-.55 G
+(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 573.6 Q F0
+(Display only running jobs.)25.86 E F1<ad73>144 585.6 Q F0
+(Display only stopped jobs.)26.41 E(If)144 602.4 Q F2(jobspec)4.553 E F0
+.313(is gi)3.123 F -.15(ve)-.25 G .313
(n, output is restricted to information about that job).15 F 5.314(.T)
--.4 G .314(he return status is 0 unless)-5.314 F(an in)144 434.4 Q -.25
+-.4 G .314(he return status is 0 unless)-5.314 F(an in)144 614.4 Q -.25
(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 451.2 R F1
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 631.2 R F1
<ad78>2.895 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .394
-(with the corre-)3.164 F(sponding process group ID, and e)144 463.2 Q
+(with the corre-)3.164 F(sponding process group ID, and e)144 643.2 Q
-.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
2.5 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15 E
-F1(kill)108 480 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
+F1(kill)108 660 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
-(kill \255l)108 492 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G
-(it_status).2 E F0(])A .119(Send the signal named by)144 504 R F2
+(kill \255l)108 672 Q F0([)2.5 E F2(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G
+(it_status).2 E F0(])A .119(Send the signal named by)144 684 R F2
(sigspec)2.959 E F0(or)2.929 E F2(signum)2.959 E F0 .119
(to the processes named by)2.939 F F2(pid)3.87 E F0(or)3.39 E F2
(jobspec)2.62 E F0(.).31 E F2(sigspec)5.46 E F0(is)2.93 E .319
-(either a case-insensiti)144 516 R .619 -.15(ve s)-.25 H .319
+(either a case-insensiti)144 696 R .619 -.15(ve s)-.25 H .319
(ignal name such as).15 F F3(SIGKILL)2.819 E F0 .318
(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
-(pre\214x\) or a signal)2.568 F(number;)144 528 Q F2(signum)4.188 E F0
+(pre\214x\) or a signal)2.568 F(number;)144 708 Q F2(signum)4.188 E F0
1.349(is a signal number)4.168 F 6.349(.I)-.55 G(f)-6.349 E F2(sigspec)
4.189 E F0 1.349(is not present, then)4.159 F F3(SIGTERM)3.849 E F0
-1.349(is assumed.)3.599 F(An)6.349 E(ar)144 540 Q .523(gument of)-.18 F
+1.349(is assumed.)3.599 F(An)6.349 E(ar)144 720 Q .523(gument of)-.18 F
F1<ad6c>3.023 E F0 .523(lists the signal names.)3.023 F .523(If an)5.523
F 3.023(ya)-.15 G -.18(rg)-3.023 G .523(uments are supplied when).18 F
F1<ad6c>3.023 E F0 .523(is gi)3.023 F -.15(ve)-.25 G .523(n, the names)
-.15 F .28(of the signals corresponding to the ar)144 552 R .28
-(guments are listed, and the return status is 0.)-.18 F(The)5.28 E F2
--.2(ex)2.78 G(it_status).2 E F0(ar)144 564 Q .378(gument to)-.18 F F1
-<ad6c>2.878 E F0 .378
+.15 F(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(10)198.725 E 0 Cg EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .28
+(of the signals corresponding to the ar)144 84 R .28
+(guments are listed, and the return status is 0.)-.18 F(The)5.28 E/F1 10
+/Times-Italic@0 SF -.2(ex)2.78 G(it_status).2 E F0(ar)144 96 Q .378
+(gument to)-.18 F/F2 10/Times-Bold@0 SF<ad6c>2.878 E F0 .378
(is a number specifying either a signal number or the e)2.878 F .377
-(xit status of a process termi-)-.15 F .593(nated by a signal.)144 576 R
-F1(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
+(xit status of a process termi-)-.15 F .593(nated by a signal.)144 108 R
+F2(kill)5.593 E F0 .593(returns true if at least one signal w)3.093 F
.593(as successfully sent, or f)-.1 F .594(alse if an error)-.1 F
-(occurs or an in)144 588 Q -.25(va)-.4 G(lid option is encountered.).25
-E F1(let)108 604.8 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0
-(...])2.5 E(Each)144 616.8 Q F2(ar)3.027 E(g)-.37 E F0 .197
+(occurs or an in)144 120 Q -.25(va)-.4 G(lid option is encountered.).25
+E F2(let)108 136.8 Q F1(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0
+(...])2.5 E(Each)144 148.8 Q F1(ar)3.027 E(g)-.37 E F0 .197
(is an arithmetic e)2.917 F .197(xpression to be e)-.15 F -.25(va)-.25 G
-.196(luated \(see).25 F F3 .196(ARITHMETIC EV)2.696 F(ALU)-1.215 E -.855
-(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G 2.696(\). If).15 F
-(the last)144 628.8 Q F2(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G
-(luates to 0,).25 E F1(let)2.5 E F0(returns 1; 0 is returned otherwise.)
-2.5 E F1(local)108 645.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(name)
--2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])-2.5 E -.15(Fo)144 657.6 S
-2.56(re).15 G .06(ach ar)-2.56 F .06(gument, a local v)-.18 F .06
-(ariable named)-.25 F F2(name)2.92 E F0 .06(is created, and assigned)
-2.74 F F2(value)2.56 E F0 5.06(.T).18 G(he)-5.06 E F2(option)2.56 E F0
-.06(can be)2.56 F(an)144 669.6 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653
-(he options accepted by)-3.153 F F1(declar)3.153 E(e)-.18 E F0 5.652(.W)
-C(hen)-5.652 E F1(local)3.152 E F0 .652
+.196(luated \(see).25 F/F3 9/Times-Bold@0 SF .196(ARITHMETIC EV)2.696 F
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)2.446 E -.15(ve)-.15 G
+2.696(\). If).15 F(the last)144 160.8 Q F1(ar)2.83 E(g)-.37 E F0 -.25
+(eva)2.72 G(luates to 0,).25 E F2(let)2.5 E F0
+(returns 1; 0 is returned otherwise.)2.5 E F2(local)108 177.6 Q F0([)2.5
+E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
+(..])-2.5 E -.15(Fo)144 189.6 S 2.56(re).15 G .06(ach ar)-2.56 F .06
+(gument, a local v)-.18 F .06(ariable named)-.25 F F1(name)2.92 E F0 .06
+(is created, and assigned)2.74 F F1(value)2.56 E F0 5.06(.T).18 G(he)
+-5.06 E F1(option)2.56 E F0 .06(can be)2.56 F(an)144 201.6 Q 3.153(yo)
+-.15 G 3.153(ft)-3.153 G .653(he options accepted by)-3.153 F F2(declar)
+3.153 E(e)-.18 E F0 5.652(.W)C(hen)-5.652 E F2(local)3.152 E F0 .652
(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-681.6 Q F2(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
+213.6 Q F1(name)3.72 E F0 .86(to ha)3.54 F 1.16 -.15(ve a v)-.2 H .861
(isible scope restricted to that function and its children.).15 F -.4
-(Wi)5.861 G .861(th no operands,).4 F F1(local)144 693.6 Q F0 1.165
+(Wi)5.861 G .861(th no operands,).4 F F2(local)144 225.6 Q F0 1.165
(writes a list of local v)3.665 F 1.165
(ariables to the standard output.)-.25 F 1.165(It is an error to use)
-6.165 F F1(local)3.664 E F0 1.164(when not)3.664 F .232
-(within a function.)144 705.6 R .233(The return status is 0 unless)5.232
-F F1(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
--.25(va)-.4 G(lid).25 E F2(name)3.093 E F0(is)2.913 E(supplied, or)144
-717.6 Q F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(10)198.725 E 0 Cg EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(logout)108 84 Q F0(Exit a login shell.)9.33 E F1
-(map\214le)108 100.8 Q F0([)2.5 E F1<ad6e>A/F2 10/Times-Italic@0 SF
-(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1
-<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1
-<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)
--.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)
--2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 112.8 S(adarray).18 E F0([)2.5 E
-F1<ad6e>A F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0
-2.5(][)C F1<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5
-(][)C F1<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)
-2.5 E(k)-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2
-(arr)-2.5 E(ay)-.15 E F0(])A .351
-(Read lines from the standard input into the inde)144 124.8 R -.15(xe)
--.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F2(arr)2.85 E
+6.165 F F2(local)3.664 E F0 1.164(when not)3.664 F .232
+(within a function.)144 237.6 R .233(The return status is 0 unless)5.232
+F F2(local)2.733 E F0 .233(is used outside a function, an in)2.733 F
+-.25(va)-.4 G(lid).25 E F1(name)3.093 E F0(is)2.913 E(supplied, or)144
+249.6 Q F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2
+(logout)108 266.4 Q F0(Exit a login shell.)9.33 E F2(map\214le)108 283.2
+Q F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1
+(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5(][)C F2
+<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>
+-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)
+2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A F2 -.18(re)108 295.2 S
+(adarray).18 E F0([)2.5 E F2<ad6e>A F1(count)2.5 E F0 2.5(][)C F2<ad4f>
+-2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1(count)2.5 E F0 2.5
+(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1(fd)2.5 E F0 2.5(][)C
+F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)C F2<ad63>-2.5 E F1
+(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0(])A .351
+(Read lines from the standard input into the inde)144 307.2 R -.15(xe)
+-.15 G 2.851(da).15 G .351(rray v)-2.851 F(ariable)-.25 E F1(arr)2.85 E
(ay)-.15 E F0 2.85(,o).32 G 2.85(rf)-2.85 G .35(rom \214le descriptor)
--2.85 F F2(fd)2.85 E F0 1.248(if the)144 136.8 R F1<ad75>3.748 E F0
-1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E/F3
-9/Times-Bold@0 SF(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E
-F2(arr)3.749 E(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249
-F(ha)144 148.8 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E
-F1<ad6e>144 160.8 Q F0(Cop)24.74 E 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E
-F2(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)2.5 E F0
-(is 0, all lines are copied.)2.5 E F1<ad4f>144 172.8 Q F0(Be)22.52 E
-(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x)
--.15 E F2(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5(xi)
--.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 184.8 Q F0
-(Discard the \214rst)26.41 E F2(count)2.5 E F0(lines read.)2.5 E F1
-<ad74>144 196.8 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E
-(wline from each line read.)-.25 E F1<ad75>144 208.8 Q F0
-(Read lines from \214le descriptor)24.74 E F2(fd)2.5 E F0
-(instead of the standard input.)2.5 E F1<ad43>144 220.8 Q F0(Ev)23.08 E
-(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2(quantum)
-2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
-(option speci\214es)2.5 E F2(quantum)2.5 E F0(.).32 E F1<ad63>144 232.8
-Q F0(Specify the number of lines read between each call to)25.86 E F2
-(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 249.6 Q F1<ad43>2.968 E F0 .467
-(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
-(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
+-2.85 F F1(fd)2.85 E F0 1.248(if the)144 319.2 R F2<ad75>3.748 E F0
+1.248(option is supplied.)3.748 F 1.249(The v)6.249 F(ariable)-.25 E F3
+(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1 E F1(arr)3.749 E
+(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)-6.249 F(ha)144
+331.2 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad6e>
+144 343.2 Q F0(Cop)24.74 E 2.5(ya)-.1 G 2.5(tm)-2.5 G(ost)-2.5 E F1
+(count)2.7 E F0 2.5(lines. If)3.18 F F1(count)2.5 E F0
+(is 0, all lines are copied.)2.5 E F2<ad4f>144 355.2 Q F0(Be)22.52 E
+(gin assigning to)-.15 E F1(arr)2.83 E(ay)-.15 E F0(at inde)2.82 E(x)
+-.15 E F1(origin)2.5 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E 2.5(xi)
+-.15 G 2.5(s0)-2.5 G(.)-2.5 E F2<ad73>144 367.2 Q F0
+(Discard the \214rst)26.41 E F1(count)2.5 E F0(lines read.)2.5 E F2
+<ad74>144 379.2 Q F0(Remo)26.97 E .3 -.15(ve a t)-.15 H(railing ne).15 E
+(wline from each line read.)-.25 E F2<ad75>144 391.2 Q F0
+(Read lines from \214le descriptor)24.74 E F1(fd)2.5 E F0
+(instead of the standard input.)2.5 E F2<ad43>144 403.2 Q F0(Ev)23.08 E
+(aluate)-.25 E F1(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F1(quantum)
+2.5 E F0(lines are read.)2.5 E(The)5 E F2<ad63>2.5 E F0
+(option speci\214es)2.5 E F1(quantum)2.5 E F0(.).32 E F2<ad63>144 415.2
+Q F0(Specify the number of lines read between each call to)25.86 E F1
+(callbac)2.5 E(k)-.2 E F0(.).67 E(If)144 432 Q F2<ad43>2.968 E F0 .467
+(is speci\214ed without)2.967 F F2<ad63>2.967 E F0 2.967(,t)C .467
+(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F1
(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .261(plied the inde)144 261.6 R 2.761(xo)-.15
-G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
-igned and the line to be assigned to that element)-.15 F .275
-(as additional ar)144 273.6 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
+(luated, it is sup-).25 F .261(plied the inde)144 444 R 2.761(xo)-.15 G
+2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be assig\
+ned and the line to be assigned to that element)-.15 F .275
+(as additional ar)144 456 R(guments.)-.18 E F1(callbac)5.275 E(k)-.2 E
F0 .275(is e)2.775 F -.25(va)-.25 G .274
(luated after the line is read b).25 F .274
-(ut before the array element is)-.2 F(assigned.)144 285.6 Q
-(If not supplied with an e)144 302.4 Q(xplicit origin,)-.15 E F1
-(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F1(map\214le)144 319.2 Q F0 1.905
+(ut before the array element is)-.2 F(assigned.)144 468 Q
+(If not supplied with an e)144 484.8 Q(xplicit origin,)-.15 E F2
+(map\214le)2.5 E F0(will clear)2.5 E F1(arr)2.5 E(ay)-.15 E F0
+(before assigning to it.)2.5 E F2(map\214le)144 501.6 Q F0 1.905
(returns successfully unless an in)4.405 F -.25(va)-.4 G 1.905
-(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F F2(arr)
-4.406 E(ay)-.15 E F0(is)4.406 E(in)144 331.2 Q -.25(va)-.4 G
-(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
+(lid option or option ar).25 F 1.906(gument is supplied,)-.18 F F1(arr)
+4.406 E(ay)-.15 E F0(is)4.406 E(in)144 513.6 Q -.25(va)-.4 G
+(lid or unassignable, or if).25 E F1(arr)2.5 E(ay)-.15 E F0
(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F1(popd)108 348 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
-2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 360 Q -.15(ve)-.15 G 2.8(se)
+F2(popd)108 530.4 Q F0<5bad>2.5 E F2(n)A F0 2.5(][)C(+)-2.5 E F1(n)A F0
+2.5(][)C<ad>-2.5 E F1(n)A F0(])A(Remo)144 542.4 Q -.15(ve)-.15 G 2.8(se)
.15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299
(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G
.299(he top directory from the)-2.799 F 1.478(stack, and performs a)144
-372 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
+554.4 R F2(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
-F(wing)-.25 E(meanings:)144 384 Q F1<ad6e>144 396 Q F0 .551
+F(wing)-.25 E(meanings:)144 566.4 Q F2<ad6e>144 578.4 Q F0 .551
(Suppresses the normal change of directory when remo)24.74 F .551
(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 408 Q F1(+)144 420 Q F2(n)A F0
-(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0 .14
-(th entry counting from the left of the list sho)B .14(wn by)-.25 F F1
-(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180 432
-S 2.5(re).15 G(xample:)-2.65 E/F4 10/Courier@0 SF(popd +0)2.5 E F0(remo)
-2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)-.65 E
-F4(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 444 Q F2(n)A F0(Remo)
-25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0 1.259
-(th entry counting from the right of the list sho)B 1.259(wn by)-.25 F
-F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5(zero. F)
-180 456 R(or e)-.15 E(xample:)-.15 E F4(popd -0)2.5 E F0(remo)2.5 E -.15
-(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F4(popd -1)2.5
-E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144 472.8 R F1(popd)
-3.143 E F0 .643(command is successful, a)3.143 F F1(dirs)3.143 E F0 .644
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.644
-E F0 .416(returns f)144 484.8 R .416(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.915
+(that only the stack is manipulated.)180 590.4 Q F2(+)144 602.4 Q F1(n)A
+F0(Remo)25.3 E -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F1(n)2.64 E F0
+.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
+F2(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
+614.4 S 2.5(re).15 G(xample:)-2.65 E/F4 10/Courier@0 SF(popd +0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
+-.65 E F4(popd +1)2.5 E F0(the second.)2.5 E F2<ad>144 626.4 Q F1(n)A F0
+(Remo)25.3 E -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F1(n)3.76 E F0
+1.259(th entry counting from the right of the list sho)B 1.259(wn by)
+-.25 F F2(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
+(zero. F)180 638.4 R(or e)-.15 E(xample:)-.15 E F4(popd -0)2.5 E F0
+(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
+E F4(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
+655.2 R F2(popd)3.143 E F0 .643(command is successful, a)3.143 F F2
+(dirs)3.143 E F0 .644(is performed as well, and the return status is 0.)
+3.143 F F2(popd)5.644 E F0 .416(returns f)144 667.2 R .416
+(alse if an in)-.1 F -.25(va)-.4 G .415
+(lid option is encountered, the directory stack is empty).25 F 2.915
(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 496.8 Q
-(ails.)-.1 E F1(printf)108 513.6 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
-(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.436
-(Write the formatted)144 525.6 R F2(ar)3.936 E(guments)-.37 E F0 1.437
-(to the standard output under the control of the)3.936 F F2(format)3.937
-E F0 6.437(.T)C(he)-6.437 E F1<ad76>3.937 E F0 .126
-(option causes the output to be assigned to the v)144 537.6 R(ariable)
--.25 E F2(var)2.626 E F0 .126(rather than being printed to the standard)
-2.626 F(output.)144 549.6 Q(The)144 573.6 Q F2(format)3.017 E F0 .517(i\
-s a character string which contains three types of objects: plain chara\
-cters, which are)3.017 F .704(simply copied to standard output, charact\
-er escape sequences, which are con)144 585.6 R -.15(ve)-.4 G .703
-(rted and copied to).15 F .036(the standard output, and format speci\
-\214cations, each of which causes printing of the ne)144 597.6 R .037
-(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 609.6 Q(gument)-.37 E F0
-5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
-(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
-E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 621.6 Q
-(xtensions:)-.15 E F1(%b)144 633.6 Q F0(causes)20.44 E F1(printf)5.115 E
-F0 2.615(to e)5.115 F 2.615
-(xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
-5.115 E(gument)-.37 E F0(\(e)180 645.6 Q .608(xcept that)-.15 F F1(\\c)
-3.108 E F0 .608(terminates output, backslashes in)3.108 F F1<5c08>3.108
-E F0(,)A F1(\\")3.108 E F0 3.108(,a)C(nd)-3.108 E F1(\\?)3.108 E F0 .608
-(are not remo)3.108 F -.15(ve)-.15 G .608(d, and octal).15 F(escapes be)
-180 657.6 Q(ginning with)-.15 E F1(\\0)2.5 E F0
-(may contain up to four digits\).)2.5 E F1(%q)144 669.6 Q F0(causes)
-20.44 E F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2
-(ar)2.51 E(gument)-.37 E F0 .01(in a format that can be reused as shell)
-2.51 F(input.)180 681.6 Q F1(%\()144 693.6 Q F2(datefmt)A F1(\)T)A F0
-(causes)180 705.6 Q F1(printf)4.404 E F0 1.904
-(to output the date-time string resulting from using)4.404 F F2(datefmt)
-4.404 E F0 1.903(as a format)4.404 F .38(string for)180 717.6 R F2
-(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
-2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
-(ger representing the number)-.15 F .458(of seconds since the epoch.)180
-729.6 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F
-.458(alues may be used: -1 represents the)-.25 F(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP
+(tory stack entry is speci\214ed, or the directory change f)144 679.2 Q
+(ails.)-.1 E F2(printf)108 696 Q F0([)2.5 E F2<ad76>A F1(var)2.5 E F0(])
+A F1(format)2.5 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A 1.436
+(Write the formatted)144 708 R F1(ar)3.936 E(guments)-.37 E F0 1.437
+(to the standard output under the control of the)3.936 F F1(format)3.937
+E F0 6.437(.T)C(he)-6.437 E F2<ad76>3.937 E F0 .126
+(option causes the output to be assigned to the v)144 720 R(ariable)-.25
+E F1(var)2.626 E F0 .126(rather than being printed to the standard)2.626
+F(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(11)198.725 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E
-(current time, and -2 represents the time the shell w)180 84 Q(as in)-.1
-E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E(Ar)144 100.8 Q .463(guments to non-s\
-tring format speci\214ers are treated as C constants, e)-.18 F .464
-(xcept that a leading plus or)-.15 F 1.259(minus sign is allo)144 112.8
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(output.)144
+84 Q(The)144 108 Q/F1 10/Times-Italic@0 SF(format)3.017 E F0 .517(is a \
+character string which contains three types of objects: plain character\
+s, which are)3.017 F .704(simply copied to standard output, character e\
+scape sequences, which are con)144 120 R -.15(ve)-.4 G .703
+(rted and copied to).15 F .036(the standard output, and format speci\
+\214cations, each of which causes printing of the ne)144 132 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F1(ar)144 144 Q(gument)-.37 E F0
+5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F1
+(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B/F2 10
+/Times-Bold@0 SF(printf)3.031 E F0 .531(interprets the follo)3.031 F(w-)
+-.25 E(ing e)144 156 Q(xtensions:)-.15 E F2(%b)144 168 Q F0(causes)20.44
+E F2(printf)5.115 E F0 2.615(to e)5.115 F 2.615
+(xpand backslash escape sequences in the corresponding)-.15 F F1(ar)
+5.115 E(gument)-.37 E F0(\(e)180 180 Q .608(xcept that)-.15 F F2(\\c)
+3.108 E F0 .608(terminates output, backslashes in)3.108 F F2<5c08>3.108
+E F0(,)A F2(\\")3.108 E F0 3.108(,a)C(nd)-3.108 E F2(\\?)3.108 E F0 .608
+(are not remo)3.108 F -.15(ve)-.15 G .608(d, and octal).15 F(escapes be)
+180 192 Q(ginning with)-.15 E F2(\\0)2.5 E F0
+(may contain up to four digits\).)2.5 E F2(%q)144 204 Q F0(causes)20.44
+E F2(printf)2.51 E F0 .01(to output the corresponding)2.51 F F1(ar)2.51
+E(gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
+(input.)180 216 Q F2(%\()144 228 Q F1(datefmt)A F2(\)T)A F0(causes)180
+240 Q F2(printf)4.404 E F0 1.904
+(to output the date-time string resulting from using)4.404 F F1(datefmt)
+4.404 E F0 1.903(as a format)4.404 F .38(string for)180 252 R F1
+(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F1(ar)
+2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
+(ger representing the number)-.15 F .458(of seconds since the epoch.)180
+264 R -1 -.8(Tw o)5.458 H .458(special ar)3.758 F .458(gument v)-.18 F
+.458(alues may be used: -1 represents the)-.25 F .847
+(current time, and -2 represents the time the shell w)180 276 R .847
+(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.348(d. If).1 F .848(no ar)3.348
+F .848(gument is speci-)-.18 F .355(\214ed, con)180 288 R -.15(ve)-.4 G
+.355(rsion beha).15 F -.15(ve)-.2 G 2.855(sa).15 G 2.855(si)-2.855 G
+2.855(f-)-2.855 G 2.855(1h)-2.855 G .354(ad been gi)-2.855 F -.15(ve)
+-.25 G 2.854(n. This).15 F .354(is an e)2.854 F .354
+(xception to the usual)-.15 F F2(printf)2.854 E F0(beha)180 300 Q(vior)
+-.2 E(.)-.55 E(Ar)144 316.8 Q .463(guments to non-string format speci\
+\214ers are treated as C constants, e)-.18 F .464
+(xcept that a leading plus or)-.15 F 1.259(minus sign is allo)144 328.8
R 1.259
(wed, and if the leading character is a single or double quote, the v)
--.25 F 1.258(alue is the)-.25 F(ASCII v)144 124.8 Q(alue of the follo)
--.25 E(wing character)-.25 E(.)-.55 E(The)144 141.6 Q/F1 10
-/Times-Italic@0 SF(format)3.423 E F0 .923
-(is reused as necessary to consume all of the)3.423 F F1(ar)3.423 E
-(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
-3.423 E F0 .924(requires more)3.424 F F1(ar)144 153.6 Q(guments)-.37 E
+-.25 F 1.258(alue is the)-.25 F(ASCII v)144 340.8 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 357.6 Q F1(format)3.423 E
+F0 .923(is reused as necessary to consume all of the)3.423 F F1(ar)3.423
+E(guments)-.37 E F0 5.923(.I)C 3.423(ft)-5.923 G(he)-3.423 E F1(format)
+3.423 E F0 .924(requires more)3.424 F F1(ar)144 369.6 Q(guments)-.37 E
F0 .033(than are supplied, the e)2.534 F .033
(xtra format speci\214cations beha)-.15 F .333 -.15(ve a)-.2 H 2.533(si)
.15 G 2.533(faz)-2.533 G .033(ero v)-2.533 F .033(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 165.6 Q(The return v)5 E
-(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E/F2 10
-/Times-Bold@0 SF(pushd)108 182.4 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)
--2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 194.4 Q
-F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a direc\
-tory to the top of the directory stack, or rotates the stack, making th\
-e ne)144 206.4 R 3.14(wt)-.25 G .64(op of the)-3.14 F 1.316
-(stack the current w)144 218.4 R 1.316(orking directory)-.1 F 6.316(.W)
--.65 G 1.315(ith no ar)-6.716 F 1.315(guments, e)-.18 F 1.315
-(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315(irectories and)-3.815 F
-.871(returns 0, unless the directory stack is empty)144 230.4 R 5.871
-(.A)-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172
--.15(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144
-242.4 Q F2<ad6e>144 254.4 Q F0 .902(Suppresses the normal change of dir\
-ectory when adding directories to the stack, so that)24.74 F
-(only the stack is manipulated.)180 266.4 Q F2(+)144 278.4 Q F1(n)A F0
+-.25 F(as appropriate, had been supplied.)144 381.6 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F2(pushd)
+108 398.4 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C
+<ad>-2.5 E F1(n)A F0(])A F2(pushd)108 410.4 Q F0([)2.5 E F2<ad6e>A F0
+2.5(][)C F1(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
+irectory stack, or rotates the stack, making the ne)144 422.4 R 3.14(wt)
+-.25 G .64(op of the)-3.14 F 1.316(stack the current w)144 434.4 R 1.316
+(orking directory)-.1 F 6.316(.W)-.65 G 1.315(ith no ar)-6.716 F 1.315
+(guments, e)-.18 F 1.315(xchanges the top tw)-.15 F 3.815(od)-.1 G 1.315
+(irectories and)-3.815 F .871
+(returns 0, unless the directory stack is empty)144 446.4 R 5.871(.A)
+-.65 G -.18(rg)-5.871 G .872(uments, if supplied, ha).18 F 1.172 -.15
+(ve t)-.2 H .872(he follo).15 F .872(wing mean-)-.25 F(ings:)144 458.4 Q
+F2<ad6e>144 470.4 Q F0 .902(Suppresses the normal change of directory w\
+hen adding directories to the stack, so that)24.74 F
+(only the stack is manipulated.)180 482.4 Q F2(+)144 494.4 Q F1(n)A F0
1.267(Rotates the stack so that the)25.3 F F1(n)3.767 E F0 1.268
(th directory \(counting from the left of the list sho)B 1.268(wn by)
--.25 F F2(dirs)180 290.4 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F2<ad>144 302.4 Q F1(n)A F0
+-.25 F F2(dirs)180 506.4 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F2<ad>144 518.4 Q F1(n)A F0
.92(Rotates the stack so that the)25.3 F F1(n)3.42 E F0 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F2(dirs)180 314.4 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1(dir)144.35 326.4 Q F0(Adds)23.98 E F1(dir)2.85 E F0
-(to the directory stack at the top, making it the ne)3.23 E 2.5(wc)-.25
-G(urrent w)-2.5 E(orking directory)-.1 E(.)-.65 E .488(If the)144 343.2
-R F2(pushd)2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)
-2.988 E F0 .488(is performed as well.)2.988 F .489
-(If the \214rst form is used,)5.488 F F2(pushd)2.989 E F0 1.04
-(returns 0 unless the cd to)144 355.2 R F1(dir)3.89 E F0 -.1(fa)4.27 G
-3.539(ils. W).1 F 1.039(ith the second form,)-.4 F F2(pushd)3.539 E F0
-1.039(returns 0 unless the directory)3.539 F .846(stack is empty)144
-367.2 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent directory stack ele\
-ment is speci\214ed, or the directory change to the)-.15 F
-(speci\214ed ne)144 379.2 Q 2.5(wc)-.25 G(urrent directory f)-2.5 E
-(ails.)-.1 E F2(pwd)108 396 Q F0([)2.5 E F2(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 408 R .845
-(orking directory)-.1 F 5.844(.T)-.65 G .844
-(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
-420 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2 .181
+F F2(dirs)180 530.4 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F1(dir)144.35 542.4 Q F0(Adds)23.98 E F1(dir)3.137 E F0 .287
+(to the directory stack at the top, making it the ne)3.517 F 2.788(wc)
+-.25 G .288(urrent w)-2.788 F .288(orking directory as)-.1 F
+(if it had been supplied as the ar)180 554.4 Q(gument to the)-.18 E F2
+(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .489(If the)144 571.2 R F2(pushd)
+2.989 E F0 .489(command is successful, a)2.989 F F2(dirs)2.988 E F0 .488
+(is performed as well.)2.988 F .488(If the \214rst form is used,)5.488 F
+F2(pushd)2.988 E F0 1.039(returns 0 unless the cd to)144 583.2 R F1(dir)
+3.889 E F0 -.1(fa)4.269 G 3.539(ils. W).1 F 1.039(ith the second form,)
+-.4 F F2(pushd)3.54 E F0 1.04(returns 0 unless the directory)3.54 F .847
+(stack is empty)144 595.2 R 3.347(,an)-.65 G(on-e)-3.347 E .847(xistent\
+ directory stack element is speci\214ed, or the directory change to the)
+-.15 F(speci\214ed ne)144 607.2 Q 2.5(wc)-.25 G(urrent directory f)-2.5
+E(ails.)-.1 E F2(pwd)108 624 Q F0([)2.5 E F2(\255LP)A F0(])A .844
+(Print the absolute pathname of the current w)144 636 R .845
+(orking directory)-.1 F 5.845(.T)-.65 G .845
+(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
+648 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2 .181
(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2(set)
-2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264(enabled. If)
-144 432 R(the)3.264 E F2<ad4c>3.264 E F0 .763
-(option is used, the pathname printed may contain symbolic links.)3.264
-F .763(The return)5.763 F 1.36(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 444 R -.25(va)
--.4 G(lid).25 E(option is supplied.)144 456 Q F2 -.18(re)108 472.8 S(ad)
-.18 E F0([)3.817 E F2(\255ers)A F0 3.817(][)C F2<ad61>-3.817 E F1(aname)
-3.817 E F0 3.817(][)C F2<ad64>-3.817 E F1(delim)3.817 E F0 3.817(][)C F2
-<ad69>-3.817 E F1(te)3.817 E(xt)-.2 E F0 3.817(][)C F2<ad6e>-3.817 E F1
-(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad4e>-3.816 E F1(nc)
-3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad70>-3.816 E F1(pr)3.816 E
-(ompt)-.45 E F0 3.816(][)C F2<ad74>-3.816 E F1(timeout)3.816 E F0 3.816
-(][)C F2<ad75>-3.816 E F1(fd)3.816 E F0(])A([)108 484.8 Q F1(name)A F0
+2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263(enabled. If)
+144 660 R(the)3.263 E F2<ad4c>3.263 E F0 .763
+(option is used, the pathname printed may contain symbolic links.)3.263
+F .764(The return)5.764 F 1.36(status is 0 unless an error occurs while\
+ reading the name of the current directory or an in)144 672 R -.25(va)
+-.4 G(lid).25 E(option is supplied.)144 684 Q F2 -.18(re)108 700.8 S(ad)
+.18 E F0([)3.816 E F2(\255ers)A F0 3.816(][)C F2<ad61>-3.816 E F1(aname)
+3.816 E F0 3.816(][)C F2<ad64>-3.816 E F1(delim)3.816 E F0 3.816(][)C F2
+<ad69>-3.816 E F1(te)3.816 E(xt)-.2 E F0 3.816(][)C F2<ad6e>-3.816 E F1
+(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad4e>-3.817 E F1(nc)
+3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad70>-3.817 E F1(pr)3.817 E
+(ompt)-.45 E F0 3.817(][)C F2<ad74>-3.817 E F1(timeout)3.817 E F0 3.817
+(][)C F2<ad75>-3.817 E F1(fd)3.817 E F0(])A([)108 712.8 Q F1(name)A F0
(...])2.5 E .516(One line is read from the standard input, or from the \
-\214le descriptor)144 496.8 R F1(fd)3.016 E F0 .516(supplied as an ar)
-3.016 F .516(gument to)-.18 F(the)144 508.8 Q F2<ad75>2.538 E F0 .038
-(option, and the \214rst w)2.538 F .038(ord is assigned to the \214rst)
--.1 F F1(name)2.539 E F0 2.539(,t).18 G .039(he second w)-2.539 F .039
-(ord to the second)-.1 F F1(name)2.539 E F0(,).18 E .42
-(and so on, with lefto)144 520.8 R -.15(ve)-.15 G 2.92(rw).15 G .42
-(ords and their interv)-3.02 F .42
-(ening separators assigned to the last)-.15 F F1(name)2.92 E F0 5.42(.I)
-.18 G 2.92(ft)-5.42 G(here)-2.92 E .54(are fe)144 532.8 R .54(wer w)-.25
-F .541(ords read from the input stream than names, the remaining names \
-are assigned empty)-.1 F -.25(va)144 544.8 S 2.511(lues. The).25 F .011
-(characters in)2.511 F/F3 9/Times-Bold@0 SF(IFS)2.511 E F0 .011
-(are used to split the line into w)2.261 F 2.511(ords. The)-.1 F .011
-(backslash character \()2.511 F F2(\\)A F0 2.51(\)m)C(ay)-2.51 E 1.89
-(be used to remo)144 556.8 R 2.19 -.15(ve a)-.15 H 2.19 -.15(ny s).15 H
-1.891(pecial meaning for the ne).15 F 1.891
-(xt character read and for line continuation.)-.15 F
-(Options, if supplied, ha)144 568.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 580.8 Q F1(aname)2.5 E F0 1.05(The w)
-180 592.8 R 1.049
-(ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F1(aname)3.549 E F0 3.549(,s).18 G 1.049(tarting at 0.)-3.549 F
-F1(aname)180.33 604.8 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
--.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 616.8 Q F1(delim)2.5 E
-F0(The \214rst character of)180 628.8 Q F1(delim)2.5 E F0
-(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
-F2<ad65>144 640.8 Q F0 .372
-(If the standard input is coming from a terminal,)25.86 F F2 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
--.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
-(to obtain the line.)180 652.8 R .218
-(Readline uses the current \(or def)5.218 F .218
-(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 664.8 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings.)-2.5 E
-F2<ad69>144 676.8 Q F1(te)2.5 E(xt)-.2 E F0(If)10.78 E F2 -.18(re)2.715
-G(adline).18 E F0 .216(is being used to read the line,)2.715 F F1(te)
-2.716 E(xt)-.2 E F0 .216(is placed into the editing b)2.716 F(uf)-.2 E
-.216(fer before edit-)-.25 F(ing be)180 688.8 Q(gins.)-.15 E F2<ad6e>144
-700.8 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 712.8 S(ad).18 E
-F0 1.395(returns after reading)3.895 F F1(nc)3.895 E(har)-.15 E(s)-.1 E
-F0 1.395(characters rather than w)3.895 F 1.394
-(aiting for a complete line of)-.1 F(input, b)180 724.8 Q
-(ut honor a delimiter if fe)-.2 E(wer than)-.25 E F1(nc)2.5 E(har)-.15 E
-(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(12)198.725 E 0 Cg EP
+\214le descriptor)144 724.8 R F1(fd)3.016 E F0 .516(supplied as an ar)
+3.016 F .517(gument to)-.18 F(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735
+E(12)198.725 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad4e>144 84 Q/F2 10/Times-Italic@0 SF(nc)2.5 E(har)-.15
-E(s)-.1 E F1 -.18(re)180 96 S(ad).18 E F0 1.269(returns after reading e)
-3.769 F(xactly)-.15 E F2(nc)3.769 E(har)-.15 E(s)-.1 E F0 1.269
-(characters rather than w)3.769 F 1.27(aiting for a complete)-.1 F .275
-(line of input, unless EOF is encountered or)180 108 R F1 -.18(re)2.775
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(the)144 84 Q
+/F1 10/Times-Bold@0 SF<ad75>2.539 E F0 .039(option, and the \214rst w)
+2.539 F .038(ord is assigned to the \214rst)-.1 F/F2 10/Times-Italic@0
+SF(name)2.538 E F0 2.538(,t).18 G .038(he second w)-2.538 F .038
+(ord to the second)-.1 F F2(name)2.538 E F0(,).18 E .42
+(and so on, with lefto)144 96 R -.15(ve)-.15 G 2.92(rw).15 G .42
+(ords and their interv)-3.02 F .42
+(ening separators assigned to the last)-.15 F F2(name)2.92 E F0 5.42(.I)
+.18 G 2.92(ft)-5.42 G(here)-2.92 E .541(are fe)144 108 R .541(wer w)-.25
+F .541(ords read from the input stream than names, the remaining names \
+are assigned empty)-.1 F -.25(va)144 120 S 3.357(lues. The).25 F .857
+(characters in)3.357 F/F3 9/Times-Bold@0 SF(IFS)3.357 E F0 .857
+(are used to split the line into w)3.107 F .857
+(ords using the same rules the shell)-.1 F .754(uses for e)144 132 R
+.753(xpansion \(described abo)-.15 F 1.053 -.15(ve u)-.15 H(nder).15 E
+F1 -.75(Wo)3.253 G .753(rd Splitting).75 F F0 3.253(\). The)B .753
+(backslash character \()3.253 F F1(\\)A F0 3.253(\)m)C .753(ay be)-3.253
+F .075(used to remo)144 144 R .375 -.15(ve a)-.15 H .375 -.15(ny s).15 H
+.075(pecial meaning for the ne).15 F .076
+(xt character read and for line continuation.)-.15 F(Options,)5.076 E
+(if supplied, ha)144 156 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 168 Q F2(aname)2.5 E F0 1.05(The w)
+180 180 R 1.049(ords are assigned to sequential indices of the array v)
+-.1 F(ariable)-.25 E F2(aname)3.549 E F0 3.549(,s).18 G 1.049
+(tarting at 0.)-3.549 F F2(aname)180.33 192 Q F0(is unset before an)2.68
+E 2.5(yn)-.15 G .5 -.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E
+F2(name)2.5 E F0(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 204 Q
+F2(delim)2.5 E F0(The \214rst character of)180 216 Q F2(delim)2.5 E F0
+(is used to terminate the input line, rather than ne)2.5 E(wline.)-.25 E
+F1<ad65>144 228 Q F0 .372
+(If the standard input is coming from a terminal,)25.86 F F1 -.18(re)
+2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
+-.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
+(to obtain the line.)180 240 R .218(Readline uses the current \(or def)
+5.218 F .218(ault, if line editing w)-.1 F .218(as not pre)-.1 F
+(viously)-.25 E(acti)180 252 Q -.15(ve)-.25 G 2.5(\)e).15 G
+(diting settings.)-2.5 E F1<ad69>144 264 Q F2(te)2.5 E(xt)-.2 E F0(If)
+10.78 E F1 -.18(re)2.715 G(adline).18 E F0 .216
+(is being used to read the line,)2.715 F F2(te)2.716 E(xt)-.2 E F0 .216
+(is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-)
+-.25 F(ing be)180 276 Q(gins.)-.15 E F1<ad6e>144 288 Q F2(nc)2.5 E(har)
+-.15 E(s)-.1 E F1 -.18(re)180 300 S(ad).18 E F0 1.395
+(returns after reading)3.895 F F2(nc)3.895 E(har)-.15 E(s)-.1 E F0 1.395
+(characters rather than w)3.895 F 1.394(aiting for a complete line of)
+-.1 F(input, b)180 312 Q(ut honor a delimiter if fe)-.2 E(wer than)-.25
+E F2(nc)2.5 E(har)-.15 E(s)-.1 E F0
+(characters are read before the delimiter)2.5 E(.)-.55 E F1<ad4e>144 324
+Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 336 S(ad).18 E F0 1.269
+(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769 E(har)-.15 E
+(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27
+(aiting for a complete)-.1 F .275
+(line of input, unless EOF is encountered or)180 348 R F1 -.18(re)2.775
G(ad).18 E F0 .274(times out.)2.774 F .274(Delimiter characters encoun-)
5.274 F 1.002
-(tered in the input are not treated specially and do not cause)180 120 R
+(tered in the input are not treated specially and do not cause)180 360 R
F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)3.503
-E(har)-.15 E(s)-.1 E F0(characters are read.)180 132 Q F1<ad70>144 144 Q
-F2(pr)2.5 E(ompt)-.45 E F0(Display)180 156 Q F2(pr)3.661 E(ompt)-.45 E
+E(har)-.15 E(s)-.1 E F0(characters are read.)180 372 Q F1<ad70>144 384 Q
+F2(pr)2.5 E(ompt)-.45 E F0(Display)180 396 Q F2(pr)3.661 E(ompt)-.45 E
F0 1.161(on standard error)3.661 F 3.661(,w)-.4 G 1.161
(ithout a trailing ne)-3.661 F 1.161(wline, before attempting to read)
--.25 F(an)180 168 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
+-.25 F(an)180 408 Q 2.5(yi)-.15 G 2.5(nput. The)-2.5 F
(prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 180 Q F0 .543(Backslash does not act as an escape character)
+<ad72>144 420 Q F0 .543(Backslash does not act as an escape character)
25.86 F 5.543(.T)-.55 G .544(he backslash is considered to be part of)
--5.543 F(the line.)180 192 Q(In particular)5 E 2.5(,ab)-.4 G
+-5.543 F(the line.)180 432 Q(In particular)5 E 2.5(,ab)-.4 G
(ackslash-ne)-2.5 E(wline pair may not be used as a line continuation.)
--.25 E F1<ad73>144 204 Q F0(Silent mode.)26.41 E
+-.25 E F1<ad73>144 444 Q F0(Silent mode.)26.41 E
(If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 216 Q F2(timeout)2.5 E F0(Cause)180 228 Q F1 -.18(re)3.549 G
-(ad).18 E F0 1.048(to time out and return f)3.549 F 1.048
-(ailure if a complete line of input is not read within)-.1 F F2(timeout)
-180 240 Q F0(seconds.)3.496 E F2(timeout)5.996 E F0 .997
-(may be a decimal number with a fractional portion follo)3.496 F(wing)
--.25 E .576(the decimal point.)180 252 R .576(This option is only ef)
-5.576 F(fecti)-.25 E .876 -.15(ve i)-.25 H(f).15 E F1 -.18(re)3.076 G
-(ad).18 E F0 .576(is reading input from a terminal,)3.076 F .141
-(pipe, or other special \214le; it has no ef)180 264 R .142
-(fect when reading from re)-.25 F .142(gular \214les.)-.15 F(If)5.142 E
-F2(timeout)2.642 E F0 .142(is 0,)2.642 F F1 -.18(re)180 276 S(ad).18 E
-F0 .113(returns success if input is a)2.614 F -.25(va)-.2 G .113
-(ilable on the speci\214ed \214le descriptor).25 F 2.613(,f)-.4 G .113
-(ailure otherwise.)-2.713 F(The e)180 288 Q
-(xit status is greater than 128 if the timeout is e)-.15 E(xceeded.)-.15
-E F1<ad75>144 300 Q F2(fd)2.5 E F0(Read input from \214le descriptor)
-14.46 E F2(fd)2.5 E F0(.)A .191(If no)144 316.8 R F2(names)3.051 E F0
-.191(are supplied, the line read is assigned to the v)2.961 F(ariable)
--.25 E/F3 9/Times-Bold@0 SF(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF
-(.)A F0 .192(The return code is zero,)4.692 F 1.344
-(unless end-of-\214le is encountered,)144 328.8 R F1 -.18(re)3.844 G(ad)
+<ad74>144 456 Q F2(timeout)2.5 E F0(Cause)180 468 Q F1 -.18(re)2.929 G
+(ad).18 E F0 .428(to time out and return f)2.929 F .428
+(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
+(ber of characters\) is not read within)180 480 R F2(timeout)3.061 E F0
+(seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number)
+3.061 F(with a fractional portion follo)180 492 Q
+(wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E
+.3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
+g input from a terminal, pipe, or other special \214le; it has no ef)180
+504 R .506(fect when reading)-.25 F .59(from re)180 516 R .59
+(gular \214les.)-.15 F(If)5.59 E F1 -.18(re)3.09 G(ad).18 E F0 .589
+(times out,)3.09 F F1 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2
+G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
+(artial input read into the speci\214ed).15 F -.25(va)180 528 S(riable)
+.25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 .27
+(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77
+F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 G
+(ata.)-2.77 E 1.12(The e)180 540 R 1.12(xit status is 0 if input is a)
+-.15 F -.25(va)-.2 G 1.12(ilable on the speci\214ed \214le descriptor)
+.25 F 3.62(,n)-.4 G 1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180
+552 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e)
+.15 E(xceeded.)-.15 E F1<ad75>144 564 Q F2(fd)2.5 E F0
+(Read input from \214le descriptor)14.46 E F2(fd)2.5 E F0(.)A .191
+(If no)144 580.8 R F2(names)3.051 E F0 .191
+(are supplied, the line read is assigned to the v)2.961 F(ariable)-.25 E
+F3(REPL)2.692 E(Y)-.828 E/F4 9/Times-Roman@0 SF(.)A F0 .192
+(The return code is zero,)4.692 F 1.344
+(unless end-of-\214le is encountered,)144 592.8 R F1 -.18(re)3.844 G(ad)
.18 E F0 1.343
-(times out \(in which case the return code is greater than)3.844 F
-(128\), or an in)144 340.8 Q -.25(va)-.4 G
-(lid \214le descriptor is supplied as the ar).25 E(gument to)-.18 E F1
-<ad75>2.5 E F0(.)A F1 -.18(re)108 357.6 S(adonly).18 E F0([)2.5 E F1
-(\255aA)A(pf)-.25 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0 2.5(].)C(..])-2.5 E .77(The gi)144 369.6 R -.15(ve)-.25 G(n).15 E F2
-(names)3.27 E F0 .77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77
-(alues of these)-.25 F F2(names)3.63 E F0 .77
-(may not be changed by subse-)3.54 F 1.097(quent assignment.)144 381.6 R
-1.097(If the)6.097 F F1<ad66>3.597 E F0 1.097
-(option is supplied, the functions corresponding to the)3.597 F F2
-(names)3.596 E F0 1.096(are so)3.596 F(mark)144 393.6 Q 3.334(ed. The)
+(times out \(in which case the return code is greater than)3.844 F .871
+(128\), a v)144 604.8 R .871
+(ariable assignment error \(such as assigning to a readonly v)-.25 F
+.872(ariable\) occurs, or an in)-.25 F -.25(va)-.4 G(lid).25 E
+(\214le descriptor is supplied as the ar)144 616.8 Q(gument to)-.18 E F1
+<ad75>2.5 E F0(.)A F1 -.18(re)108 633.6 S(adonly).18 E F0([)2.5 E F1
+(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A
+F2(wor)A(d)-.37 E F0 2.5(].)C(..])-2.5 E .77(The gi)144 645.6 R -.15(ve)
+-.25 G(n).15 E F2(names)3.27 E F0 .77(are mark)3.27 F .77
+(ed readonly; the v)-.1 F .77(alues of these)-.25 F F2(names)3.63 E F0
+.77(may not be changed by subse-)3.54 F 1.096(quent assignment.)144
+657.6 R 1.096(If the)6.096 F F1<ad66>3.596 E F0 1.097
+(option is supplied, the functions corresponding to the)3.596 F F2
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 669.6 Q 3.334(ed. The)
-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .538(ables to associati)144 405.6 R .838 -.15(ve a)-.25 H 3.038
-(rrays. If).15 F(no)3.038 E F2(name)3.398 E F0(ar)3.218 E .538
-(guments are gi)-.18 F -.15(ve)-.25 G .538(n, or if the).15 F F1<ad70>
-3.038 E F0 .537(option is supplied, a list)3.038 F .08
-(of all readonly names is printed.)144 417.6 R(The)5.08 E F1<ad70>2.58 E
-F0 .081(option causes output to be displayed in a format that may)2.58 F
-1.177(be reused as input.)144 429.6 R 1.177(If a v)6.177 F 1.176
-(ariable name is follo)-.25 F 1.176(wed by =)-.25 F F2(wor)A(d)-.37 E F0
-3.676(,t)C 1.176(he v)-3.676 F 1.176(alue of the v)-.25 F 1.176
-(ariable is set to)-.25 F F2(wor)144 441.6 Q(d)-.37 E F0 6.205(.T)C
-1.205(he return status is 0 unless an in)-6.205 F -.25(va)-.4 G 1.206
-(lid option is encountered, one of the).25 F F2(names)4.066 E F0 1.206
-(is not a)3.976 F -.25(va)144 453.6 S(lid shell v).25 E
-(ariable name, or)-.25 E F1<ad66>2.5 E F0(is supplied with a)2.5 E F2
-(name)2.86 E F0(that is not a function.)2.68 E F1 -.18(re)108 470.4 S
-(tur).18 E(n)-.15 E F0([)2.5 E F2(n)A F0(])A .587
-(Causes a function to e)144 482.4 R .587(xit with the return v)-.15 F
-.587(alue speci\214ed by)-.25 F F2(n)3.087 E F0 5.587(.I).24 G(f)-5.587
-E F2(n)3.447 E F0 .586(is omitted, the return status is)3.327 F 1.335
-(that of the last command e)144 494.4 R -.15(xe)-.15 G 1.335
-(cuted in the function body).15 F 6.335(.I)-.65 G 3.835(fu)-6.335 G
-1.335(sed outside a function, b)-3.835 F 1.335(ut during)-.2 F -.15(exe)
-144 506.4 S .794(cution of a script by the).15 F F1(.)3.294 E F0(\()
-5.794 E F1(sour)A(ce)-.18 E F0 3.294(\)c)C .794
-(ommand, it causes the shell to stop e)-3.294 F -.15(xe)-.15 G .794
-(cuting that script).15 F .245(and return either)144 518.4 R F2(n)3.105
-E F0 .246(or the e)2.985 F .246(xit status of the last command e)-.15 F
--.15(xe)-.15 G .246(cuted within the script as the e).15 F .246
-(xit sta-)-.15 F .082(tus of the script.)144 530.4 R .082
-(If used outside a function and not during e)5.082 F -.15(xe)-.15 G .082
-(cution of a script by).15 F F1(.)2.582 E F0 2.581(,t).833 G .081
-(he return sta-)-2.581 F 2.305(tus is f)144 542.4 R 4.805(alse. An)-.1 F
-4.805(yc)-.15 G 2.305(ommand associated with the)-4.805 F F1(RETURN)
-4.805 E F0 2.306(trap is e)4.806 F -.15(xe)-.15 G 2.306(cuted before e)
-.15 F -.15(xe)-.15 G(cution).15 E(resumes after the function or script.)
-144 554.4 Q F1(set)108 571.2 Q F0([)2.5 E F1
-(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E F2
-(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1
-(set)108 583.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)
--2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0
-(...])2.5 E -.4(Wi)144 595.2 S .836(thout options, the name and v).4 F
+-.25 E .776(ables to associati)144 681.6 R 1.076 -.15(ve a)-.25 H 3.276
+(rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
+F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
+3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 693.6 R -.15(ve)
+-.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
+(option is supplied, a list of all readonly names is printed.)3.021 F
+.521(The other)5.521 F .295(options may be used to restrict the output \
+to a subset of the set of readonly names.)144 705.6 R(The)5.296 E F1
+<ad70>2.796 E F0(option)2.796 E .786
+(causes output to be displayed in a format that may be reused as input.)
+144 717.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
+729.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
+-3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
+3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
+-5.718 F -.25(va)-.4 G(lid).25 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)
+148.735 E(13)198.725 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .26
+(option is encountered, one of the)144 84 R/F1 10/Times-Italic@0 SF
+(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)-.25 F .26
+(ariable name, or)-.25 F/F2 10/Times-Bold@0 SF<ad66>2.76 E F0 .26
+(is supplied with a)2.76 F F1(name)144.36 96 Q F0
+(that is not a function.)2.68 E F2 -.18(re)108 112.8 S(tur).18 E(n)-.15
+E F0([)2.5 E F1(n)A F0(])A .02(Causes a function to stop e)144 124.8 R
+-.15(xe)-.15 G .02(cuting and return the v).15 F .021
+(alue speci\214ed by)-.25 F F1(n)2.881 E F0 .021(to its caller)2.761 F
+5.021(.I)-.55 G(f)-5.021 E F1(n)2.881 E F0 .021(is omitted,)2.761 F .469
+(the return status is that of the last command e)144 136.8 R -.15(xe)
+-.15 G .469(cuted in the function body).15 F 5.469(.I)-.65 G(f)-5.469 E
+F2 -.18(re)2.969 G(tur).18 E(n)-.15 E F0 .468(is used out-)2.969 F .466
+(side a function, b)144 148.8 R .466(ut during e)-.2 F -.15(xe)-.15 G
+.467(cution of a script by the).15 F F2(.)2.967 E F0(\()5.467 E F2(sour)
+A(ce)-.18 E F0 2.967(\)c)C .467(ommand, it causes the shell to)-2.967 F
+.088(stop e)144 160.8 R -.15(xe)-.15 G .087
+(cuting that script and return either).15 F F1(n)2.947 E F0 .087
+(or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe)
+-.15 G .087(cuted within).15 F .613(the script as the e)144 172.8 R .613
+(xit status of the script.)-.15 F(If)5.613 E F1(n)3.113 E F0 .613
+(is supplied, the return v)3.113 F .613
+(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 184.8 R
+.011(return status is non-zero if)2.511 F F2 -.18(re)2.511 G(tur).18 E
+(n)-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01
+(gument, or is used outside)-.18 F 2.909(af)144 196.8 S .409
+(unction and not during e)-2.909 F -.15(xe)-.15 G .41
+(cution of a script by).15 F F2(.)2.91 E F0(or)3.743 E F2(sour)2.91 E
+(ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41
+(ommand associated with the).15 F F2(RETURN)144 208.8 Q F0(trap is e)2.5
+E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G
+(cution resumes after the function or script.).15 E F2(set)108 225.6 Q
+F0([)2.5 E F2(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F2<ad6f>-2.5 E
+F1(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E(g)-.37 E F0(...])2.5 E
+F2(set)108 237.6 Q F0([)2.5 E F2(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F2
+(+o)-2.5 E F1(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E(g)-.37 E F0
+(...])2.5 E -.4(Wi)144 249.6 S .836(thout options, the name and v).4 F
.835(alue of each shell v)-.25 F .835
(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 607.2
+(reused as input for setting or resetting the currently-set v)144 261.6
R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.947(reset. In)144 619.2 R F2 .447(posix mode)
-2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
-(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.53
-(locale. When)144 631.2 R 1.031(options are speci\214ed, the)3.53 F
+(riables cannot be).25 F 2.912(reset. In)144 273.6 R F1(posix)2.912 E F0
+.412(mode, only shell v)2.912 F .412(ariables are listed.)-.25 F .412
+(The output is sorted according to the current)5.412 F 3.53
+(locale. When)144 285.6 R 1.031(options are speci\214ed, the)3.53 F
3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
-1.624(after option processing are treated as v)144 643.2 R 1.623
+1.624(after option processing are treated as v)144 297.6 R 1.623
(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 655.2 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
-F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
--.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 667.2 Q
+144 309.6 Q 2.5(,t)-.4 G(o)-2.5 E F2($1)2.5 E F0(,)A F2($2)2.5 E F0(,)A
+F2 2.5(... $)2.5 F F1(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad61>144 321.6 Q
F0 .539(Automatically mark v)29.3 F .539
(ariables and functions which are modi\214ed or created for e)-.25 F .54
-(xport to)-.15 F(the en)184 679.2 Q(vironment of subsequent commands.)
--.4 E F1<ad62>144 691.2 Q F0 .132
+(xport to)-.15 F(the en)184 333.6 Q(vironment of subsequent commands.)
+-.4 E F2<ad62>144 345.6 Q F0 .132
(Report the status of terminated background jobs immediately)28.74 F
2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 703.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 715.2 Q F0 .51
-(Exit immediately if a)29.86 F F2(pipeline)3.01 E F0 .511
-(\(which may consist of a single)3.011 F F2 .511(simple command)3.011 F
-F0 3.011(\), a)B F2(sub-)3.011 E(shell)184 727.2 Q F0 .872
-(command enclosed in parentheses, or one of the commands e)3.373 F -.15
-(xe)-.15 G .872(cuted as part of a).15 F(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .399
-(command list enclosed by braces \(see)184 84 R/F1 9/Times-Bold@0 SF
-.399(SHELL GRAMMAR)2.899 F F0(abo)2.649 E -.15(ve)-.15 G 2.899(\)e).15 G
-.399(xits with a non-zero)-3.049 F 3.969(status. The)184 96 R 1.468
-(shell does not e)3.969 F 1.468(xit if the command that f)-.15 F 1.468
-(ails is part of the command list)-.1 F .569(immediately follo)184 108 R
-.569(wing a)-.25 F/F2 10/Times-Bold@0 SF(while)3.069 E F0(or)3.069 E F2
-(until)3.069 E F0 -.1(ke)3.069 G(yw)-.05 E .569
-(ord, part of the test follo)-.1 F .57(wing the)-.25 F F2(if)3.07 E F0
-(or)3.07 E F2(elif)3.07 E F0(reserv)184 120 Q .91(ed w)-.15 F .91
-(ords, part of an)-.1 F 3.41(yc)-.15 G .909(ommand e)-3.41 F -.15(xe)
--.15 G .909(cuted in a).15 F F2(&&)3.409 E F0(or)3.409 E F2(||)3.409 E
-F0 .909(list e)3.409 F .909(xcept the command)-.15 F(follo)184 132 Q
-.049(wing the \214nal)-.25 F F2(&&)2.549 E F0(or)2.549 E F2(||)2.549 E
-F0 2.549(,a)C .349 -.15(ny c)-2.549 H .049(ommand in a pipeline b).15 F
-.05(ut the last, or if the command')-.2 F(s)-.55 E .373(return v)184 144
-R .373(alue is being in)-.25 F -.15(ve)-.4 G .373(rted with).15 F F2(!)
-2.873 E F0 5.372(.A)C .372(trap on)-2.5 F F2(ERR)2.872 E F0 2.872(,i)C
-2.872(fs)-2.872 G .372(et, is e)-2.872 F -.15(xe)-.15 G .372
-(cuted before the shell).15 F -.15(ex)184 156 S 2.896(its. This).15 F
-.397(option applies to the shell en)2.896 F .397
-(vironment and each subshell en)-.4 F .397(vironment sepa-)-.4 F .191
-(rately \(see)184 168 R F1 .19(COMMAND EXECUTION ENVIR)2.691 F(ONMENT)
--.27 E F0(abo)2.44 E -.15(ve)-.15 G .19(\), and may cause subshells).15
-F(to e)184 180 Q(xit before e)-.15 E -.15(xe)-.15 G
-(cuting all the commands in the subshell.).15 E F2<ad66>144 192 Q F0
-(Disable pathname e)30.97 E(xpansion.)-.15 E F2<ad68>144 204 Q F0 2.238
-(Remember the location of commands as the)28.74 F 4.738(ya)-.15 G 2.239
-(re look)-4.738 F 2.239(ed up for e)-.1 F -.15(xe)-.15 G 4.739
-(cution. This).15 F(is)4.739 E(enabled by def)184 216 Q(ault.)-.1 E F2
-<ad6b>144 228 Q F0 .514(All ar)28.74 F .514
+(primary prompt.)184 357.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F2<ad65>144 369.6 Q F0
+.087(Exit immediately if a)29.86 F F1(pipeline)2.587 E F0 .087
+(\(which may consist of a single)2.587 F F1 .088(simple command)2.588 F
+F0 .088(\), a)B F1(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 381.6 Q
+F1 1.294(compound command)3.794 F F0(\(see)3.794 E/F3 9/Times-Bold@0 SF
+1.294(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e)
+.15 F 1.293(xits with a non-zero status.)-.15 F .079
+(The shell does not e)184 393.6 R .079(xit if the command that f)-.15 F
+.08(ails is part of the command list immediately)-.1 F(follo)184 405.6 Q
+1.655(wing a)-.25 F F2(while)4.155 E F0(or)4.155 E F2(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+(wing the)-.25 F F2(if)4.154 E F0(or)4.154 E F2(elif)4.154 E F0(reserv)
+4.154 E(ed)-.15 E -.1(wo)184 417.6 S .581(rds, part of an).1 F 3.081(yc)
+-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F2
+(&&)3.081 E F0(or)3.081 E F2(||)3.081 E F0 .582(list e)3.082 F .582
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 429.6 R
+F2(&&)3.418 E F0(or)3.418 E F2(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
+-3.418 H .918(ommand in a pipeline b).15 F .917
+(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
+-.25(va)184 441.6 S .66(lue is being in).25 F -.15(ve)-.4 G .66
+(rted with).15 F F2(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
+(ompound command other than a subshell returns a)-3.161 F 1.113
+(non-zero status because a command f)184 453.6 R 1.112(ailed while)-.1 F
+F2<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
+(eing ignored, the shell does)-3.612 F .177(not e)184 465.6 R 2.677
+(xit. A)-.15 F .177(trap on)2.677 F F2(ERR)2.677 E F0 2.677(,i)C 2.678
+(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
+(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
+(option applies to)2.678 F .618(the shell en)184 477.6 R .617
+(vironment and each subshell en)-.4 F .617(vironment separately \(see)
+-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 489.6 R(ONMENT)
+-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
+(\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 501.6
+Q 2.042(If a compound command or shell function e)184 519.6 R -.15(xe)
+-.15 G 2.042(cutes in a conte).15 F 2.042(xt where)-.15 F F2<ad65>4.542
+E F0 2.042(is being)4.542 F 1.435(ignored, none of the commands e)184
+531.6 R -.15(xe)-.15 G 1.436
+(cuted within the compound command or function).15 F .194
+(body will be af)184 543.6 R .194(fected by the)-.25 F F2<ad65>2.694 E
+F0 .193(setting, e)2.693 F -.15(ve)-.25 G 2.693(ni).15 G(f)-2.693 E F2
+<ad65>2.693 E F0 .193(is set and a command returns a f)2.693 F(ailure)
+-.1 E 3.39(status. If)184 555.6 R 3.39(ac)3.39 G .89
+(ompound command or shell function sets)-3.39 F F2<ad65>3.39 E F0 .89
+(while e)3.39 F -.15(xe)-.15 G .89(cuting in a conte).15 F(xt)-.15 E
+(where)184 567.6 Q F2<ad65>3.154 E F0 .654
+(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
+-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
+(or the command containing the function call completes.)184 579.6 Q F2
+<ad66>144 591.6 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F2
+<ad68>144 603.6 Q F0 2.238(Remember the location of commands as the)
+28.74 F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
+-.15(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184
+615.6 Q(ault.)-.1 E F2<ad6b>144 627.6 Q F0 .514(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
F .513(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 240 Q F2
-<ad6d>144 252 Q F0 .148(Monitor mode.)25.97 F .148
+(command, not just those that precede the command name.)184 639.6 Q F2
+<ad6d>144 651.6 Q F0 .148(Monitor mode.)25.97 F .148
(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
-.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .637
-(on systems that support it \(see)184 264 R F1 .636(JOB CONTR)3.136 F
-(OL)-.27 E F0(abo)2.886 E -.15(ve)-.15 G 3.136(\). Background).15 F .636
-(processes run in a)3.136 F .641
-(separate process group and a line containing their e)184 276 R .642
-(xit status is printed upon their com-)-.15 F(pletion.)184 288 Q F2
-<ad6e>144 300 Q F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F
--.15(xe)-.15 G .653(cute them.).15 F .652
-(This may be used to check a shell script for)5.653 F(syntax errors.)184
-312 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2<ad6f>144 324 Q/F3 10/Times-Italic@0 SF(option\255name)2.5 E F0(The)
-184 336 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5 E
-(wing:)-.25 E F2(allexport)184 348 Q F0(Same as)224 360 Q F2<ad61>2.5 E
-F0(.)A F2(braceexpand)184 372 Q F0(Same as)224 384 Q F2<ad42>2.5 E F0(.)
-A F2(emacs)184 396 Q F0 .089
-(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
--.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 408 R -.15(ve)-.25 G 3.45(,u).15 G .95
-(nless the shell is started with the)-3.45 F F2(\255\255noediting)3.45 E
-F0 2.5(option. This)224 420 R(also af)2.5 E(fects the editing interf)
--.25 E(ace used for)-.1 E F2 -.18(re)2.5 G(ad \255e).18 E F0(.)A F2(err)
-184 432 Q(exit)-.18 E F0(Same as)11.31 E F2<ad65>2.5 E F0(.)A F2
-(errtrace)184 444 Q F0(Same as)5.03 E F2<ad45>2.5 E F0(.)A F2(functrace)
-184 456 Q F0(Same as)224 468 Q F2<ad54>2.5 E F0(.)A F2(hashall)184 480 Q
-F0(Same as)9.43 E F2<ad68>2.5 E F0(.)A F2(histexpand)184 492 Q F0
-(Same as)224 504 Q F2<ad48>2.5 E F0(.)A F2(history)184 516 Q F0 .586
-(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
-(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F1(HIST)3.087 E
-(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is)
-5.087 F(on by def)224 528 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
-(hells.).15 E F2(ignor)184 540 Q(eeof)-.18 E F0 1.657(The ef)224 552 R
-1.657(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
-(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
-.15 E(\(see)224 564 Q F2(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F2 -.1(ke)184 576 S(yw).1 E(ord)-.1 E F0(Same as)
-224 588 Q F2<ad6b>2.5 E F0(.)A F2(monitor)184 600 Q F0(Same as)5.56 E F2
-<ad6d>2.5 E F0(.)A F2(noclob)184 612 Q(ber)-.1 E F0(Same as)224 624 Q F2
-<ad43>2.5 E F0(.)A F2(noexec)184 636 Q F0(Same as)11.12 E F2<ad6e>2.5 E
-F0(.)A F2(noglob)184 648 Q F0(Same as)11.1 E F2<ad66>2.5 E F0(.)A F2
-(nolog)184 660 Q F0(Currently ignored.)16.66 E F2(notify)184 672 Q F0
-(Same as)15 E F2<ad62>2.5 E F0(.)A F2(nounset)184 684 Q F0(Same as)6.66
-E F2<ad75>2.5 E F0(.)A F2(onecmd)184 696 Q F0(Same as)6.67 E F2<ad74>2.5
-E F0(.)A F2(ph)184 708 Q(ysical)-.15 E F0(Same as)5.14 E F2<ad50>2.5 E
-F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)198.725 E 0 Cg EP
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
+(on systems that support it \(see)184 663.6 R F3 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
+(processes run in a separate)3.151 F .678(process group.)184 675.6 R
+.679(When a background job completes, the shell prints a line containin\
+g its)5.678 F -.15(ex)184 687.6 S(it status.).15 E F2<ad6e>144 699.6 Q
+F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F -.15(xe)-.15 G
+.653(cute them.).15 F .652(This may be used to check a shell script for)
+5.653 F(syntax errors.)184 711.6 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735
+E(14)198.725 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(pipefail)184 84 Q F0 1.029(If set, the return v)7.77 F
-1.029(alue of a pipeline is the v)-.25 F 1.03
-(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 96 R
+/Times-Bold@0 SF<ad6f>144 84 Q/F2 10/Times-Italic@0 SF(option\255name)
+2.5 E F0(The)184 96 Q F2(option\255name)2.5 E F0
+(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 108 Q F0
+(Same as)224 120 Q F1<ad61>2.5 E F0(.)A F1(braceexpand)184 132 Q F0
+(Same as)224 144 Q F1<ad42>2.5 E F0(.)A F1(emacs)184 156 Q F0 .089
+(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
+-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 168 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
+F0 2.5(option. This)224 180 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
+184 192 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 204 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
+184 216 Q F0(Same as)224 228 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 240 Q
+F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 252 Q F0
+(Same as)224 264 Q F1<ad48>2.5 E F0(.)A F1(history)184 276 Q F0 .586
+(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
+(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F3 9
+/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF
+(.)A F0 .587(This option is)5.087 F(on by def)224 288 Q
+(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
+300 Q(eeof)-.18 E F0 1.657(The ef)224 312 R 1.657
+(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10)
+4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+324 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1 -.1(ke)184 336 S(yw).1 E(ord)-.1 E F0(Same as)224 348 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 360 Q F0(Same as)5.56 E F1<ad6d>2.5 E
+F0(.)A F1(noclob)184 372 Q(ber)-.1 E F0(Same as)224 384 Q F1<ad43>2.5 E
+F0(.)A F1(noexec)184 396 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
+(noglob)184 408 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
+420 Q F0(Currently ignored.)16.66 E F1(notify)184 432 Q F0(Same as)15 E
+F1<ad62>2.5 E F0(.)A F1(nounset)184 444 Q F0(Same as)6.66 E F1<ad75>2.5
+E F0(.)A F1(onecmd)184 456 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
+(ph)184 468 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
+(pipefail)184 480 Q F0 1.029(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 492 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 108 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 120 Q F0
+-.15 F -.15(ex)224 504 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 516 Q F0
2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 132 Q
-/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 144 Q(vileged)
--.1 E F0(Same as)224 156 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 168 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 180 Q F0
-1.466(Use a vi-style command line editing interf)32.22 F 3.965
-(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
-(interf)224 192 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 204 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-222 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F2
-(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
-(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-234 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
-3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
-(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 246 Q F1<ad70>
-144 258 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
+(fers from the)-.25 F 1.212(POSIX standard to match the standard \()224
+528 R F2 1.212(posix mode)B F0 3.712(\). See)B F3 1.212(SEE ALSO)3.712 F
+F0(belo)3.462 E(w)-.25 E 2.306
+(for a reference to a document that details ho)224 540 R 4.807(wp)-.25 G
+2.307(osix mode af)-4.807 F 2.307(fects bash')-.25 F(s)-.55 E(beha)224
+552 Q(vior)-.2 E(.)-.55 E F1(pri)184 564 Q(vileged)-.1 E F0(Same as)224
+576 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 588 S(rbose).1 E F0(Same as)
+7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 600 Q F0 1.466
+(Use a vi-style command line editing interf)32.22 F 3.965(ace. This)-.1
+F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F(interf)224 612 Q
+(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(xtrace)184
+624 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184 642 Q F1<ad6f>3.052
+E F0 .552(is supplied with no)3.052 F F2(option\255name)3.053 E F0 3.053
+(,t)C .553(he v)-3.053 F .553(alues of the current options are printed.)
+-.25 F(If)5.553 E F1(+o)184 654 Q F0 1.072(is supplied with no)3.572 F
+F2(option\255name)3.572 E F0 3.572(,a)C 1.071(series of)-.001 F F1(set)
+3.571 E F0 1.071(commands to recreate the current)3.571 F
+(option settings is displayed on the standard output.)184 666 Q F1<ad70>
+144 678 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
--.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 270 R 1.5
-(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
--.27(BA)184 282 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
-.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
-.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 294 R .38
+F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 690 R 1.5
+(vironment, and the)-.4 F F3(SHELLOPTS)4 E F4(,)A F3 -.27(BA)184 702 S
+(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H).855 E F4(,)A F0
+(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524
+(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
+(vironment,)-.4 E .38(are ignored.)184 714 R .38
(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
--.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 306 R F1<ad70>2.961 E F0 .461
-(option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 318 Q .695 -.15(ve u)-.25 H .395
-(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
-2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 330 R -.45(Tu)5.386 G
-.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
-F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 342 Q F1<ad74>144 354 Q F0
-(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15
-E F1<ad75>144 366 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\
-bles and parameters other than the special parameters "@" and "*" as an)
--.25 F .182(error when performing parameter e)184 378 R 2.682
-(xpansion. If)-.15 F -.15(ex)2.682 G .183
-(pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 390 R 3.246(,t)-.4 G .746
+-.25 H .379(ser \(group\) id not equal to the real).15 F 2.196
+(user \(group\) id, and the)184 726 R F1<ad70>4.696 E F0 2.196
+(option is not supplied, these actions are tak)4.696 F 2.196(en and the)
+-.1 F(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(ef)184 84 Q
+(fecti)-.25 E 1.667 -.15(ve u)-.25 H 1.367
+(ser id is set to the real user id.).15 F 1.367(If the)6.367 F/F1 10
+/Times-Bold@0 SF<ad70>3.867 E F0 1.366
+(option is supplied at startup, the)3.866 F(ef)184 96 Q(fecti)-.25 E
+.708 -.15(ve u)-.25 H .408(ser id is not reset.).15 F -.45(Tu)5.409 G
+.409(rning this option of).45 F 2.909(fc)-.25 G .409(auses the ef)-2.909
+F(fecti)-.25 E .709 -.15(ve u)-.25 H .409(ser and group).15 F
+(ids to be set to the real user and group ids.)184 108 Q F1<ad74>144 120
+Q F0(Exit after reading and e)30.97 E -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 132 Q F0 -.35(Tr)28.74 G .044
+(eat unset v).35 F .044(ariables and parameters other than the special \
+parameters "@" and "*" as an)-.25 F .182
+(error when performing parameter e)184 144 R 2.682(xpansion. If)-.15 F
+-.15(ex)2.682 G .183(pansion is attempted on an unset v).15 F(ari-)-.25
+E .746(able or parameter)184 156 R 3.246(,t)-.4 G .746
(he shell prints an error message, and, if not interacti)-3.246 F -.15
(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-402 Q F1<ad76>144 414 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 426 Q F0 .315(After e)29.3 F .315
-(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
-2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 438 R F1
--.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
-(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
-3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 450 Q
+168 Q F1<ad76>144 180 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 192 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .315(simple command)2.815
+F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E
+F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.236
+(or arithmetic)184 204 R F1 -.25(fo)3.736 G(r).25 E F0 1.236
+(command, display the e)3.736 F 1.236(xpanded v)-.15 F 1.236(alue of)
+-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0
+(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 216 Q
(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 462 Q F0 2.578(The shell performs brace e)27.63 F 2.578
+<ad42>144 228 Q F0 2.578(The shell performs brace e)27.63 F 2.578
(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 474 Q
-(ault.)-.1 E F1<ad43>144 486 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
+-.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 240 Q
+(ault.)-.1 E F1<ad43>144 252 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
-3.053(tors. This)184 498 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+3.053(tors. This)184 264 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 510 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 522 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
+.15 F(tor)184 276 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 288 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
-2.604 F F1(ERR)2.604 E F0 .103
(is inherited by shell functions, command substitutions, and com-)2.604
-F .838(mands e)184 534 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F .838(mands e)184 300 R -.15(xe)-.15 G .838(cuted in a subshell en).15
F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
-(trap is normally not inherited in)3.339 F(such cases.)184 546 Q F1
-<ad48>144 558 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
+(trap is normally not inherited in)3.339 F(such cases.)184 312 Q F1
+<ad48>144 324 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
(style history substitution.)5.532 F .531(This option is on by def)5.532
-F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 570 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 582 Q F0 1.164
-(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
-(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
-(that change the current w)184 594 R 2.822(orking directory)-.1 F 7.822
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 336 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 348 Q F0 .959
+(If set, the shell does not resolv)28.19 F 3.459(es)-.15 G .959
+(ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
+(cuting commands such as).15 F F1(cd)3.46 E F0 2.822
+(that change the current w)184 360 R 2.822(orking directory)-.1 F 7.822
(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
-(ysical directory structure)-.05 F 2.685(instead. By)184 606 R(def)2.685
+(ysical directory structure)-.05 F 2.685(instead. By)184 372 R(def)2.685
E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 618 Q(.)-.65 E F1<ad54>144
-630 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 384 Q(.)-.65 E F1<ad54>144
+396 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 642 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 408 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 654 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 666 Q
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 420 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 432 Q
F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.4 E(the positional parameters are set to the)184 678 Q F2
+(Otherwise,)5.4 E(the positional parameters are set to the)184 444 Q F2
(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-690 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
+456 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
-1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 702 R
+1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 468 R
F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
-(parameters remain unchanged.)184 714 Q .425(The options are of)144
-730.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(parameters remain unchanged.)184 480 Q .425(The options are of)144
+496.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F(GNU Bash-4.0)72
-768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
-%%Page: 16 16
+(Using + rather than \255 causes these options)5.425 F .178
+(to be turned of)144 508.8 R 2.678(f. The)-.25 F .178
+(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
+-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+(current set of options may be found in)144 520.8 R F1<24ad>2.566 E F0
+5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
+(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(is encountered.)144 532.8 Q F1(shift)108 549.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 561.6 R F2(n)2.929 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
+.428(rameters represented by the num-).15 F(bers)144 573.6 Q F1($#)2.582
+E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
+(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
+-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
+.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
+(is 0, no parameters are changed.)144 585.6 R(If)5.06 E F2(n)2.92 E F0
+.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
+(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 597.6 R
+.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
+.144(is greater than)2.884 F F1($#)2.644 E F0
+(or less than zero; otherwise 0.)144 609.6 Q F1(shopt)108 626.4 Q F0([)
+2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
+-2.5 E F0(...])2.5 E -.8(To)144 638.4 S .64(ggle the v).8 F .639
+(alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
+5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
+(listed belo)144 650.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
+(option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
+F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
+(bu)2.875 G .375(iltin com-).2 F 3.326(mand. W)144 662.4 R .826
+(ith no options, or with the)-.4 F F1<ad70>3.326 E F0 .825
+(option, a list of all settable options is displayed, with an)3.326 F
+.945(indication of whether or not each is set.)144 674.4 R(The)5.945 E
+F1<ad70>3.445 E F0 .945(option causes output to be displayed in a form)
+3.445 F(that may be reused as input.)144 686.4 Q(Other options ha)5 E .3
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad73>144 698.4 Q
+F0(Enable \(set\) each)26.41 E F2(optname)2.5 E F0(.)A F1<ad75>144 710.4
+Q F0(Disable \(unset\) each)24.74 E F2(optname)2.5 E F0(.)A
+(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
+%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .178
-(to be turned of)144 84 R 2.678(f. The)-.25 F .178
-(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
-(current set of options may be found in)144 96 R/F1 10/Times-Bold@0 SF
-<24ad>2.566 E F0 5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)
--.1 G .066(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
-(is encountered.)144 108 Q F1(shift)108 124.8 Q F0([)2.5 E/F2 10
-/Times-Italic@0 SF(n)A F0(])A .429(The positional parameters from)144
-136.8 R F2(n)2.929 E F0 .429(+1 ... are renamed to)B F1 .429($1 ....)
-2.929 F F0 -.15(Pa)5.428 G .428(rameters represented by the num-).15 F
-(bers)144 148.8 Q F1($#)2.582 E F0(do)2.582 E .082(wn to)-.25 F F1($#)
-2.582 E F0<ad>A F2(n)A F0 .082(+1 are unset.)B F2(n)5.442 E F0 .082
-(must be a non-ne)2.822 F -.05(ga)-.15 G(ti).05 E .383 -.15(ve n)-.25 H
-.083(umber less than or equal to).15 F F1($#)2.583 E F0 5.083(.I)C(f)
--5.083 E F2(n)2.943 E F0 .06(is 0, no parameters are changed.)144 160.8
-R(If)5.06 E F2(n)2.92 E F0 .06(is not gi)2.8 F -.15(ve)-.25 G .06
-(n, it is assumed to be 1.).15 F(If)5.06 E F2(n)2.92 E F0 .06
-(is greater than)2.8 F F1($#)2.56 E F0 2.56(,t)C(he)-2.56 E .143
-(positional parameters are not changed.)144 172.8 R .144
-(The return status is greater than zero if)5.143 F F2(n)3.004 E F0 .144
-(is greater than)2.884 F F1($#)2.644 E F0
-(or less than zero; otherwise 0.)144 184.8 Q F1(shopt)108 201.6 Q F0([)
-2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 213.6 S .222(ggle the v).8 F .222
-(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
-(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
-<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 225.6 R(The)
-144 237.6 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.828 F .327(Other options)
-5.327 F(ha)144 249.6 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 261.6 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 273.6 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 285.6 Q F0 .003(Suppresses normal out\
-put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 297.6 R .256
-(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad71>144 84 Q F0 .003(Suppresses normal output \(quiet\
+ mode\); the return status indicates whether the)24.74 F/F2 10
+/Times-Italic@0 SF(optname)2.503 E F0(is)2.503 E .255(set or unset.)180
+96 R .255(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F
-(all)180 309.6 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 321.6 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
+(all)180 108 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)2.5
+E F1<ad6f>144 120 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .127
-(If either)144 338.4 R F1<ad73>2.627 E F0(or)2.627 E F1<ad75>2.627 E F0
-.127(is used with no)2.627 F F2(optname)2.627 E F0(ar)2.627 E .127
-(guments, the display is limited to those options which)-.18 F 1.024
-(are set or unset, respecti)144 350.4 R -.15(ve)-.25 G(ly).15 E 6.024
-(.U)-.65 G 1.024(nless otherwise noted, the)-6.024 F F1(shopt)3.523 E F0
-1.023(options are disabled \(unset\) by)3.523 F(def)144 362.4 Q(ault.)
--.1 E 1.544(The return status when listing options is zero if all)144
-379.2 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
-4.045 F .696
+(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .625
+(If either)144 136.8 R F1<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0
+.624(is used with no)3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)
+-.18 E F1(shopt)3.124 E F0(sho)3.124 E .624
+(ws only those options which are)-.25 F 2.233(set or unset, respecti)144
+148.8 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G 2.234
+(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0 2.234
+(options are disabled \(unset\) by)4.734 F(def)144 160.8 Q(ault.)-.1 E
+1.544(The return status when listing options is zero if all)144 177.6 R
+F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)4.044 F
+.696
(When setting or unsetting options, the return status is zero unless an)
-144 391.2 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
-(alid shell)-.25 F(option.)144 403.2 Q(The list of)144 420 Q F1(shopt)
-2.5 E F0(options is:)2.5 E F1(autocd)144 438 Q F0 .199
+144 189.6 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
+(alid shell)-.25 F(option.)144 201.6 Q(The list of)144 218.4 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 236.4 Q F0 .2
(If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 450 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 248.4 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 462 Q(ars)-.1 E F0 .156(If set, an ar)184 474 R .156
-(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 260.4 Q(ars)-.1 E F0 .155(If set, an ar)184 272.4 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 486 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 498 Q F0
+(name of a v)184 284.4 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 296.4 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 510 R 1.488(errors check)3.988 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
--.4 G(nd)-3.987 E .552(one character too man)184 522 R 4.352 -.65(y. I)
--.15 H 3.052(fac).65 G .552
-(orrection is found, the corrected \214le name is printed, and)-3.052 F
-(the command proceeds.)184 534 Q(This option is only used by interacti)5
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(checkhash)144 546 Q F0 2.08
-(If set,)184 558 R F1(bash)4.58 E F0 2.079
-(checks that a command found in the hash table e)4.58 F 2.079
-(xists before trying to)-.15 F -.15(exe)184 570 S(cute it.).15 E
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 308.4 R 1.487(errors check)3.987 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
+-.4 G(nd)-3.988 E .77(one character too man)184 320.4 R 4.57 -.65(y. I)
+-.15 H 3.27(fac).65 G .77
+(orrection is found, the corrected \214lename is printed, and)-3.27 F
+(the command proceeds.)184 332.4 Q
+(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(checkhash)144 344.4 Q F0 2.079(If set,)184 356.4 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 368.4 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 582 Q
-F0 .448(If set,)184 594 R F1(bash)2.948 E F0 .448
-(lists the status of an)2.948 F 2.949(ys)-.15 G .449
-(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 606 R(an)3.439 E 3.439(yj)-.15 G
-.938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 2.203
-(attempted without an interv)184 618 R 2.203(ening command \(see)-.15 F
-/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 630 Q -.1(wa)-.1
-G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E F1(checkwinsize)144 642 Q F0 .797(If set,)184
-654 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G
-.796(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G
-.796(pdates the)-3.296 F -.25(va)184 666 S(lues of).25 E F3(LINES)2.5 E
-F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist)144
-678 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202(attempts to sa)
-3.702 F 1.502 -.15(ve a)-.2 H 1.202
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 380.4
+Q F0 .449(If set,)184 392.4 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 404.4 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 2.203
+(attempted without an interv)184 416.4 R 2.203(ening command \(see)-.15
+F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 428.4 Q -.1(wa)
+-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
+(obs are stopped.)-2.5 E F1(checkwinsize)144 440.4 Q F0 .796(If set,)184
+452.4 R F1(bash)3.296 E F0 .796(checks the windo)3.296 F 3.296(ws)-.25 G
+.797(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G
+.797(pdates the)-3.297 F -.25(va)184 464.4 S(lues of).25 E F3(LINES)2.5
+E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist)
+144 476.4 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
+(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
(ll lines of a multiple-line command in the same history).15 F(entry)184
-690 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 702 Q
-F0 .42(If set,)184 714 R F1(bash)2.92 E F0 .42(changes its beha)2.92 F
-.419(vior to that of v)-.2 F .419(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the)184 726 Q F1([[)2.5 E F0
-(conditional command')2.5 E(s)-.55 E F1(=~)2.5 E F0(operator)2.5 E(.)
--.55 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
-%%Page: 17 17
+488.4 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 500.4
+Q F0 .419(If set,)184 512.4 R F1(bash)2.919 E F0 .419(changes its beha)
+2.919 F .419(vior to that of v)-.2 F .42
+(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E .462(to the)
+184 524.4 R F1([[)2.962 E F0 .462(conditional command')2.962 F(s)-.55 E
+F1(=~)2.962 E F0 .462
+(operator and locale-speci\214c string comparison when)2.962 F .71
+(using the)184 536.4 R F1([[)3.21 E F0 .71(conditional command')3.21 F
+(s)-.55 E F1(<)3.21 E F0(and)3.21 E F1(>)3.21 E F0 3.21(operators. Bash)
+3.21 F -.15(ve)3.21 G .71(rsions prior to bash-4.1).15 F .821
+(use ASCII collation and)184 548.4 R F2(str)3.321 E(cmp)-.37 E F0 .821
+(\(3\); bash-4.1 and later use the current locale').19 F 3.32(sc)-.55 G
+(ollation)-3.32 E(sequence and)184 560.4 Q F2(str)2.5 E(coll)-.37 E F0
+(\(3\).).51 E F1(compat32)144 572.4 Q F0 1.409(If set,)184 584.4 R F1
+(bash)3.909 E F0 1.409(changes its beha)3.909 F 1.409(vior to that of v)
+-.2 F 1.41(ersion 3.2 with respect to locale-speci\214c)-.15 F .423
+(string comparison when using the)184 596.4 R F1([[)2.922 E F0 .422
+(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
+2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\).)184 608.4 Q
+F1(compat40)144 620.4 Q F0 1.409(If set,)184 632.4 R F1(bash)3.909 E F0
+1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41
+(ersion 4.0 with respect to locale-speci\214c)-.15 F 2.008
+(string comparison when using the)184 644.4 R F1([[)4.508 E F0 2.007
+(conditional command')4.508 F(s)-.55 E F1(<)4.507 E F0(and)4.507 E F1(>)
+4.507 E F0 2.007(operators \(see)4.507 F .769(description of)184 656.4 R
+F1(compat31)3.269 E F0 3.269(\)a)C .769(nd the ef)-3.269 F .769
+(fect of interrupting a command list.)-.25 F .77(Bash v)5.77 F(ersions)
+-.15 E .087(4.0 and later interrupt the list as if the shell recei)184
+668.4 R -.15(ve)-.25 G 2.586(dt).15 G .086(he interrupt; pre)-2.586 F
+.086(vious v)-.25 F .086(ersions con-)-.15 F(tinue with the ne)184 680.4
+Q(xt command in the list.)-.15 E F1(compat41)144 692.4 Q F0 1.483
+(If set,)184 704.4 R F1(bash)3.983 E F0 3.983(,w)C 1.483(hen in)-3.983 F
+F2(posix)3.983 E F0 1.484
+(mode, treats a single quote in a double-quoted parameter)3.983 F -.15
+(ex)184 716.4 S .959(pansion as a special character).15 F 5.959(.T)-.55
+G .958(he single quotes must match \(an e)-5.959 F -.15(ve)-.25 G 3.458
+(nn).15 G .958(umber\) and)-3.458 F .59
+(the characters between the single quotes are considered quoted.)184
+728.4 R .59(This is the beha)5.59 F .59(vior of)-.2 F(GNU Bash-4.2)72
+768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
+%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(compat32)144 84 Q F0 1.409(If set,)184 96 R F1(bash)
-3.909 E F0 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F
-1.41(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.266
-(string comparison when using the)184 108 R F1([[)3.766 E F0 1.266
-(conditional command')3.766 F(s)-.55 E F1(<)3.766 E F0(and)3.766 E F1(>)
-3.766 E F0 3.765(operators. Bash)3.765 F -.15(ve)184 120 S .512
-(rsions prior to bash-4.1 use ASCII collation and).15 F/F2 10
-/Times-Italic@0 SF(str)3.012 E(cmp)-.37 E F0 .513
-(\(3\); bash-4.1 and later use the).19 F(current locale')184 132 Q 2.5
-(sc)-.55 G(ollation sequence and)-2.5 E F2(str)2.5 E(coll)-.37 E F0
-(\(3\).).51 E F1(compat40)144 144 Q F0 1.41(If set,)184 156 R F1(bash)
-3.91 E F0 1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F
-1.409(ersion 4.0 with respect to locale-speci\214c)-.15 F .422
-(string comparison when using the)184 168 R F1([[)2.922 E F0 .422
-(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
-2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\) and the ef)184
-180 Q(fect of interrupting a command list.)-.25 E F1(compat41)144 192 Q
-F0 1.232(@item compat41 If set,)184 204 R F1(bash)3.732 E F0 3.732(,w)C
-1.232(hen in posix mode, treats a single quote in a double-)-3.732 F
-1.213(quoted parameter e)184 216 R 1.213
-(xpansion as a special character)-.15 F 6.213(.T)-.55 G 1.214
-(he single quotes must match \(an)-6.213 F -2.15 -.25(ev e)184 228 T
-2.949(nn).25 G .448(umber\) and the characters between the single quote\
-s are considered quoted.)-2.949 F(This)5.448 E .062(is the beha)184 240
-R .062(vior of posix mode through v)-.2 F .062(ersion 4.1.)-.15 F .062
-(The def)5.062 F .062(ault bash beha)-.1 F .063(vior remains as)-.2 F
-(in pre)184 252 Q(vious v)-.25 E(ersions.)-.15 E F1(dirspell)144 264 Q
-F0 .859(If set,)7.77 F F1(bash)3.359 E F0 .858
-(attempts spelling correction on directory names during w)3.359 F .858
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .59
+(posix mode through v)184 84 R .589(ersion 4.1.)-.15 F .589(The def)
+5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 96 Q/F1 10/Times-Bold@0 SF
+(compat42)144 108 Q F0 1.796(If set,)184 120 R F1(bash)4.296 E F0 1.796
+(does not process the replacement string in the pattern substitution w)
+4.296 F(ord)-.1 E -.15(ex)184 132 S(pansion using quote remo).15 E -.25
+(va)-.15 G(l.).25 E F1(complete_fullquote)144 144 Q F0 .654(If set,)184
+156 R F1(bash)3.153 E F0 .653(quotes all shell metacharacters in \214le\
+names and directory names when per)3.153 F(-)-.2 E 1.524
+(forming completion.)184 168 R 1.524(If not set,)6.524 F F1(bash)4.024 E
+F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
+(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
+haracters that will be quoted in completed \214lenames when these)184
+180 R .028(metacharacters appear in shell v)184 192 R .028
+(ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
+(This means)5.029 F 1.073(that dollar signs in v)184 204 R 1.073
+(ariable names that e)-.25 F 1.073
+(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
+(ev e)184 216 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ollar signs appearing in \214lenames will not be quoted, either).15 F
+6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
+(only when bash is using backslashes to quote completed \214lenames.)184
+228 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 240 Q
+(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
+(ersions through 4.2.)-.15 E F1(dir)144 252 Q(expand)-.18 E F0 .486
+(If set,)184 264 R F1(bash)2.986 E F0 .486
+(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
+.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
+276 R .179(This changes the contents of the readline editing b)5.18 F
+(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
+184 288 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 300 Q F0 .858(If set,)7.77 F
+F1(bash)3.358 E F0 .858
+(attempts spelling correction on directory names during w)3.358 F .859
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 276 Q(xist.)-.15 E
-F1(dotglob)144 288 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 312 Q(xist.)-.15 E
+F1(dotglob)144 324 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 300 Q F0 1.387
-(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
+(xpansion.)-.15 E F1(execfail)144 336 Q F0 1.386
+(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.386(cute the \214le speci\214ed as an).15 F(ar)184 312 Q
+1.387(cute the \214le speci\214ed as an).15 F(ar)184 348 Q
(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 324 Q F0
-.716(If set, aliases are e)184 336 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(ALIASES)3.217 E
-/F4 9/Times-Roman@0 SF(.)A F0 .717(This option is enabled)5.217 F
-(by def)184 348 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 360 Q(ug)-.2 E F0(If set, beha)184 372 Q
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 360 Q F0
+.717(If set, aliases are e)184 372 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
+/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
+(by def)184 384 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 396 Q(ug)-.2 E F0(If set, beha)184 408 Q
(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
-384 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251 F F1
+420 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1
(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 396 Q
-(gument.)-.18 E F1(2.)184 408 Q F0 1.667(If the command run by the)28.5
+(number corresponding to each function name supplied as an ar)220 432 Q
+(gument.)-.18 E F1(2.)184 444 Q F0 1.667(If the command run by the)28.5
F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 420
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 432 Q F0 .841
-(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
-(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
-(exe)220 444 S .488
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 456
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 468 Q F0 .84
+(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 480 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 456 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
--.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 468 Q
-F3 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F3 -.27(BA)3.404 G
+(sour)220 492 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 504 Q
+F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G
(SH_ARGV).27 E F0 .904(are updated as described in their descriptions)
-3.154 F(abo)220 480 Q -.15(ve)-.15 G(.).15 E F1(5.)184 492 Q F0 1.359
+3.154 F(abo)220 516 Q -.15(ve)-.15 G(.).15 E F1(5.)184 528 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-504 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
-(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(DEB)2.5 E(UG)-.1 E F0
-(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)184 516 Q F0 .805
-(Error tracing is enabled:)28.5 F .804
-(command substitution, shell functions, and subshells)5.805 F(in)220 528
-Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F2
+540 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
+(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
+184 552 Q F0 .804(Error tracing is enabled:)28.5 F .805
+(command substitution, shell functions, and subshells)5.804 F(in)220 564
+Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 540 Q F0 .4(If set, the e)8.89 F .4
+2.5 E F1(extglob)144 576 Q F0 .4(If set, the e)8.89 F .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 552 Q
-F0(are enabled.)2.5 E F1(extquote)144 564 Q F0 2.473(If set,)184 576 R
-F1($)4.973 E F0<08>A F2(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
-E F0(")A F2(string)A F0 4.973("q)C 2.473(uoting is performed within)
--4.973 F F1(${)4.973 E F2(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 588 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 600 Q F0
-1.424(If set, patterns which f)7.77 F 1.425
-(ail to match \214lenames during pathname e)-.1 F 1.425
-(xpansion result in an)-.15 F -.15(ex)184 612 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 624 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.937(If set, the suf)184 636 R<8c78>-.25 E .936(es speci\214ed by the)
--.15 F F3(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 648 R .32
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 588 Q
+F0(are enabled.)2.5 E F1(extquote)144 600 Q F0 2.473(If set,)184 612 R
+F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
+E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
+-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
+(pansions).15 E(enclosed in double quotes.)184 624 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 636 Q F0
+1.425(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.424
+(xpansion result in an)-.15 F -.15(ex)184 648 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 660 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 672 R<8c78>-.25 E .936(es speci\214ed by the)
+-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
+-.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 684 R .32
(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948
-(pletions. See)184 660 R F3 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0
-(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F3
-(FIGNORE)2.947 E F4(.)A F0 .447(This option is)4.947 F(enabled by def)
-184 672 Q(ault.)-.1 E F1(globstar)144 684 Q F0 .178(If set, the pattern)
-5 F F1(**)2.678 E F0 .178(used in a pathname e)2.678 F .178
-(xpansion conte)-.15 F .179(xt will match a \214les and zero or)-.15 F
-1.298(more directories and subdirectories.)184 696 R 1.298
-(If the pattern is follo)6.298 F 1.298(wed by a)-.25 F F1(/)3.797 E F0
-3.797(,o)C 1.297(nly directories)-3.797 F(and subdirectories match.)184
-708 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
-%%Page: 18 18
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
+(pletions. See)184 696 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
+(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
+(FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def)
+184 708 Q(ault.)-.1 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(18)
+198.725 E 0 Cg EP
+%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(gnu_errfmt)144 84 Q F0(If set, shell error messages ar\
-e written in the standard GNU error message format.)184 96 Q F1
-(histappend)144 108 Q F0 .676
+/Times-Bold@0 SF(globasciiranges)144 84 Q F0 2.519(If set, range e)184
+96 R 2.519(xpressions used in pattern matching brack)-.15 F 2.518(et e)
+-.1 F 2.518(xpressions \(see)-.15 F/F2 9/Times-Bold@0 SF -.09(Pa)5.018 G
+(tter).09 E(n)-.135 E(Matching)184 108 Q F0(abo)2.964 E -.15(ve)-.15 G
+3.214(\)b).15 G(eha)-3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214
+(fi)-3.214 G 3.214(nt)-3.214 G .714
+(he traditional C locale when performing comparisons.)-3.214 F 1.02
+(That is, the current locale')184 120 R 3.52(sc)-.55 G 1.02
+(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F F1
+(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 132 R F1(A)
+3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)-3.457 F
+.957(-case and lo)-.2 F(wer)-.25 E .957
+(-case ASCII characters will collate)-.2 F(together)184 144 Q(.)-.55 E
+F1(globstar)144 156 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0
+.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+(xt will match all \214les and zero)-.15 F .431
+(or more directories and subdirectories.)184 168 R .431
+(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
+2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
+180 Q F1(gnu_errfmt)144 192 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 204 Q F1(histappend)144
+216 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-120 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.177 E F0
--.25(va)2.927 G(ri-).25 E(able when the shell e)184 132 Q
-(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1
-(histr)144 144 Q(eedit)-.18 E F0 .576(If set, and)184 156 R F1 -.18(re)
-3.076 G(adline).18 E F0 .575(is being used, a user is gi)3.076 F -.15
-(ve)-.25 G 3.075(nt).15 G .575(he opportunity to re-edit a f)-3.075 F
-.575(ailed his-)-.1 F(tory substitution.)184 168 Q F1(histv)144 180 Q
-(erify)-.1 E F0 .402(If set, and)184 192 R F1 -.18(re)2.903 G(adline).18
-E F0 .403
+228 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 240 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 252 Q(eedit)-.18
+E F0 .575(If set, and)184 264 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 276 Q F1(histv)144 288 Q(erify)-.1 E F0 .403
+(If set, and)184 300 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 204 R 5.662(.I)-.55 G .661
-(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 216 S -.25(ff).2 G(er).25 E
+2.903 F .661(passed to the shell parser)184 312 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 324 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 228 Q F0 1.181(If set, and)184 240 R F1 -.18(re)3.681
-G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
-(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-252 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 264 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 276 Q F0(If set,)
-184 288 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(hostcomplete)144 336 Q F0 1.182(If set, and)184 348 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+360 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+F2(READLINE)3.881 E F0(abo)184 372 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 384 Q F0(If set,)
+184 396 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 300 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 312 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 408 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 420 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
(ord and all remaining characters on)-.1 F .967
-(that line to be ignored in an interacti)184 324 R 1.267 -.15(ve s)-.25
+(that line to be ignored in an interacti)184 432 R 1.267 -.15(ve s)-.25
H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 336 Q
-(ault.)-.1 E F1(lastpipe)144 348 Q F0 1.211
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 444 Q
+(ault.)-.1 E F1(lastpipe)144 456 Q F0 1.212
(If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15
G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15
-(exe)184 360 S(cuted in the background in the current shell en).15 E
-(vironment.)-.4 E F1(lithist)144 372 Q F0 .655(If set, and the)15.55 F
-F1(cmdhist)3.155 E F0 .654
+(exe)184 468 S(cuted in the background in the current shell en).15 E
+(vironment.)-.4 E F1(lithist)144 480 Q F0 .654(If set, and the)15.55 F
+F1(cmdhist)3.154 E F0 .654
(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
-3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F
-(with embedded ne)184 384 Q
+3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 492 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
-(login_shell)144 396 Q F0 .486
+(login_shell)144 504 Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-408 R F2(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)2.737 E -.15(ve)
--.15 G 2.987(\). The).15 F -.25(va)184 420 S(lue may not be changed.).25
-E F1(mailwar)144 432 Q(n)-.15 E F0 .815(If set, and a \214le that)184
-444 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
--.1(wa)184 456 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+516 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 528 S(lue may not be changed.).25
+E F1(mailwar)144 540 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+552 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
+-.1(wa)184 564 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 468 Q F0 .324(If set, and)184 480 R F1 -.18
-(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E
-F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)
--.189 E F0 .325(for possible)2.575 F
-(completions when completion is attempted on an empty line.)184 492 Q F1
-(nocaseglob)144 504 Q F0 .437(If set,)184 516 R F1(bash)2.937 E F0 .436
-(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
-H .436(ashion when performing pathname).05 F -.15(ex)184 528 S
+(no_empty_cmd_completion)144 576 Q F0 .325(If set, and)184 588 R F1 -.18
+(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E
+F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)
+-.189 E F0 .324(for possible)2.574 F
+(completions when completion is attempted on an empty line.)184 600 Q F1
+(nocaseglob)144 612 Q F0 .436(If set,)184 624 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 636 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 540 Q F0 1.193(If set,)184
-552 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
-3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
-F(while e)184 564 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
-E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 576 Q F0
-.855(If set,)184 588 R F1(bash)3.355 E F0(allo)3.355 E .855
-(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
-(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
--3.354 E -.15(ex)184 600 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 612 Q(ogcomp)-.18 E F0 .676
-(If set, the programmable completion f)184 624 R .677(acilities \(see)
--.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
--.15(ve)-.15 G(\)).15 E(are enabled.)184 636 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 648 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 660 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 672 S .17(pansion, and quote remo).15 F -.25(va)-.15
-G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
-E(This option is enabled by def)184 684 Q(ault.)-.1 E F1 -.18(re)144 696
-S(stricted_shell).18 E F0 1.069
-(The shell sets this option if it is started in restricted mode \(see)
-184 708 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 720 Q 4.178
-(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
-1.678(This is not reset when the startup \214les are)6.678 F
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP
-%%Page: 19 19
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 648 Q F0 1.194(If set,)184
+660 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
+F(while e)184 672 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
+E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 684 Q F0
+.854(If set,)184 696 R F1(bash)3.354 E F0(allo)3.354 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
+(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
+-3.355 E -.15(ex)184 708 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(19)198.725
+E 0 Cg EP
+%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(exe)184
-84 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E -.15(ve)
--.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E/F1 10
-/Times-Bold@0 SF(shift_v)144 96 Q(erbose)-.1 E F0 .502(If set, the)184
-108 R F1(shift)3.002 E F0 -.2(bu)3.002 G .501
-(iltin prints an error message when the shift count e).2 F .501
-(xceeds the number)-.15 F(of positional parameters.)184 120 Q F1(sour)
-144 132 Q(cepath)-.18 E F0 .77(If set, the)184 144 R F1(sour)3.27 E(ce)
--.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
-.771(alue of)-.25 F/F2 9/Times-Bold@0 SF -.666(PA)3.271 G(TH)-.189 E F0
-.771(to \214nd the directory containing the)3.021 F
-(\214le supplied as an ar)184 156 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 168 Q F0
-(If set, the)184 180 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 192 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 204 R -.15
-(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25
-G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 216 R F1<ad66>
-2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 228 S(nless the shell is a login shell and)-2.5 E F1
-<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
-F1(test)108 240 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)108
-252 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 1.15
-(Return a status of 0 or 1 depending on the e)6.77 F -.25(va)-.25 G 1.15
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)3.65 G
-(pr).2 E F0 6.15(.E).73 G(ach)-6.15 E 1.187
-(operator and operand must be a separate ar)144 264 R 3.688
-(gument. Expressions)-.18 F 1.188(are composed of the primaries)3.688 F
-1.89(described abo)144 276 R 2.19 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)4.39 E 1.89(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)6.39 E F0 1.889(does not accept an)4.389 F 4.389(yo)-.15 G 1.889
-(ptions, nor)-4.389 F(does it accept and ignore an ar)144 288 Q
-(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .785(Expressions may be combined using the follo)144 306 R .786
-(wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 318 R -.25(eva)3.412 G .912
-(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
-4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
-(used when there are \214v)144 330 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G(ore ar)
--2.5 E(guments.)-.18 E F1(!)144 342 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35
-(Tr)12.6 G(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1
-E F1(\()144 354 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26
-(Returns the v)6.77 F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(pr)144 84 Q(ogcomp)-.18 E F0 .677
+(If set, the programmable completion f)184 96 R .677(acilities \(see)-.1
+F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E -.15
+(ve)-.15 G(\)).15 E(are enabled.)184 108 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 120 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 132 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 144 S .171(pansion, and quote remo).15 F -.25(va)-.15
+G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
+-.15 F/F2 9/Times-Bold@0 SF(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15
+(ve)-.15 G(.).15 E(This option is enabled by def)184 156 Q(ault.)-.1 E
+F1 -.18(re)144 168 S(stricted_shell).18 E F0 1.069
+(The shell sets this option if it is started in restricted mode \(see)
+184 180 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 192 Q 4.178
+(w\). The)-.25 F -.25(va)4.178 G 1.678(lue may not be changed.).25 F
+1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
+184 204 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
+-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
+F1(shift_v)144 216 Q(erbose)-.1 E F0 .501(If set, the)184 228 R F1
+(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
+(xceeds the number)-.15 F(of positional parameters.)184 240 Q F1(sour)
+144 252 Q(cepath)-.18 E F0 .771(If set, the)184 264 R F1(sour)3.271 E
+(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
+-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 276 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 288 Q F0(If set, the)184 300 Q F1(echo)2.5 E F0
+-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
+E(ault.)-.1 E F1(suspend)108 316.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 328.8 R -.15(xe)-.15 G 1.001
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
+F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
+3.502 F .023(suspended; the)144 340.8 R F1<ad66>2.523 E F0 .023
+(option can be used to o)2.523 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .022(The return status is)
+5.022 F 2.5(0u)144 352.8 S(nless the shell is a login shell and)-2.5 E
+F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
+E F1(test)108 369.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
+108 381.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877
+(Return a status of 0 \(true\) or 1 \(f)6.77 F .878
+(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 393.6
+S(pr).2 E F0 5.53(.E).73 G .53
+(ach operator and operand must be a separate ar)-5.53 F 3.03
+(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079
+(primaries described abo)144 405.6 R 3.379 -.15(ve u)-.15 H(nder).15 E
+F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF
+(.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E
+(options, nor does it accept and ignore an ar)144 417.6 Q(gument of)-.18
+E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .786
+(Expressions may be combined using the follo)144 435.6 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F 3.411
+(dence. The)144 447.6 R -.25(eva)3.411 G .911
+(luation depends on the number of ar).25 F .912(guments; see belo)-.18 F
+4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F
+(used when there are \214v)144 459.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F1(!)144 471.6 Q F3 -.2(ex)2.5 G(pr).2 E
+F0 -.35(Tr)12.6 G(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E
+(alse.)-.1 E F1(\()144 483.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
+.26(Returns the v)6.77 F .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0
5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 366 Q F3 -.2(ex)
-144 378 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 390 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F3
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 402 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 414 S
-(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 430.8 Q F0(and)2.5 E F1([)2.5 E
-F0 -.25(eva)2.5 G(luate conditional e).25 E
+(rride the normal precedence of opera-).15 F(tors.)180 495.6 Q F3 -.2
+(ex)144 507.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0
+-.35(Tr)180 519.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5
+E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 531.6 S
+(pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180
+543.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2
+(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 560.4 Q F0(and)2.5 E
+F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 448.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 460.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 472.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 484.8 Q
+(guments.)-.18 E 2.5(0a)144 578.4 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 590.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 602.4 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 614.4 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 496.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 508.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 626.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 638.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 520.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 532.8 Q .553
+(gument is null.)-.18 F .38(If the \214rst ar)180 650.4 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 662.4 Q .552
(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
(xpression is true if the unary test is true.)-.15 F .552
-(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 544.8 Q
+(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 674.4 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 556.8 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 568.8 R .236
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 686.4 S -.18(rg)-2.5 G
+(uments).18 E .236(The follo)180 698.4 R .236
(wing conditions are applied in the order listed.)-.25 F .236
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 580.8 R 1.155 -.15
+(the binary conditional operators listed abo)180 710.4 R 1.155 -.15
(ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 592.8 R .578(xpression i\
+F4(,)A F0(the)3.105 E .579(result of the e)180 722.4 R .578(xpression i\
s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 604.8 R(The)6.333 E F1<ad61>3.833
-E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
-(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 616.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
-F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
-.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
-628.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
-(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02
-F(ar)180 640.8 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0
-2.985(,t)C .485(he result is the one-ar)-2.985 F .485
-(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
-(wise, the e)180 652.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
-664.8 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 676.8 R
-.385(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385
-(he result is the ne)-2.885 F -.05(ga)-.15 G .384(tion of the three-ar)
-.05 F .384(gument e)-.18 F .384(xpression com-)-.15 F 1.647
-(posed of the remaining ar)180 688.8 R 4.147(guments. Otherwise,)-.18 F
-1.647(the e)4.147 F 1.648(xpression is parsed and e)-.15 F -.25(va)-.25
-G(luated).25 E(according to precedence using the rules listed abo)180
-700.8 Q -.15(ve)-.15 G(.).15 E(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735
-E(19)198.725 E 0 Cg EP
-%%Page: 20 20
+(guments)-.18 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E
+0 Cg EP
+%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(5o)144
-84 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 E 1.635(The e)180 96 R
-1.635(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635
-(luated according to precedence using the rules listed).25 F(abo)180 108
-Q -.15(ve)-.15 G(.).15 E(When used with)144 126 Q/F1 10/Times-Bold@0 SF
-(test)2.5 E F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0
-(and)2.5 E F1(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using ASCII ordering.)-.15 E F1(times)108 142.8 Q F0
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.332
+(as operands.)180 84 R(The)6.332 E/F1 10/Times-Bold@0 SF<ad61>3.832 E F0
+(and)3.832 E F1<ad6f>3.832 E F0 1.333
+(operators are considered binary operators when there are)3.832 F .558
+(three ar)180 96 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058 F
+.558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F .558
+(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F(o-ar)-.1
+E(gument)-.18 E .52(test using the second and third ar)180 108 R 3.021
+(guments. If)-.18 F .521(the \214rst ar)3.021 F .521(gument is e)-.18 F
+(xactly)-.15 E F1(\()3.021 E F0 .521(and the third)3.021 F(ar)180 120 Q
+.485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0 2.985(,t)C .485
+(he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18
+F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 132 Q
+(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 144 S -.18(rg)-2.5 G
+(uments).18 E .384(If the \214rst ar)180 156 R .384(gument is)-.18 F F1
+(!)2.884 E F0 2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15
+G .385(tion of the three-ar).05 F .385(gument e)-.18 F .385
+(xpression com-)-.15 F 1.648(posed of the remaining ar)180 168 R 4.147
+(guments. Otherwise,)-.18 F 1.647(the e)4.147 F 1.647
+(xpression is parsed and e)-.15 F -.25(va)-.25 G(luated).25 E
+(according to precedence using the rules listed abo)180 180 Q -.15(ve)
+-.15 G(.).15 E 2.5(5o)144 192 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18
+E 1.635(The e)180 204 R 1.635(xpression is parsed and e)-.15 F -.25(va)
+-.25 G 1.635(luated according to precedence using the rules listed).25 F
+(abo)180 216 Q -.15(ve)-.15 G(.).15 E(When used with)144 234 Q F1(test)
+2.5 E F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5
+E F1(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using ASCII ordering.)-.15 E F1(times)108 250.8 Q F0
1.229(Print the accumulated user and system times for the shell and for\
- processes run from the shell.)13.23 F(The return status is 0.)144 154.8
-Q F1(trap)108 171.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10
+ processes run from the shell.)13.23 F(The return status is 0.)144 262.8
+Q F1(trap)108 279.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10
/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E
-.703(The command)144 183.6 R F2(ar)3.533 E(g)-.37 E F0 .703
-(is to be read and e)3.423 F -.15(xe)-.15 G .702
-(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202(ss).15 G
-(ignal\(s\))-3.202 E F2(sigspec)3.202 E F0 5.702(.I).31 G(f)-5.702 E F2
-(ar)3.532 E(g)-.37 E F0(is)3.422 E .608(absent \(and there is a single)
-144 195.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
+.702(The command)144 291.6 R F2(ar)3.532 E(g)-.37 E F0 .702
+(is to be read and e)3.422 F -.15(xe)-.15 G .702
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203(ss).15 G
+(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)-5.703 E F2
+(ar)3.533 E(g)-.37 E F0(is)3.423 E .609(absent \(and there is a single)
+144 303.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 207.6 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658
+.658(\(the v)144 315.6 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 219.6 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F2(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215
-(been supplied, then the trap commands associated with each)144 231.6 R
-F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
-F(gu-)-.18 E .86(ments are supplied or if only)144 243.6 R F1<ad70>3.36
+144.34 327.6 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 339.6 R
+F2(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
+F(gu-)-.18 E .86(ments are supplied or if only)144 351.6 R F1<ad70>3.36
E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 255.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 267.6 R F2(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
-(names are case insensiti)144 279.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
-/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649
-(If a)144 297.6 R F2(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0
-1.649(\(0\) the command)3.899 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
-4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)
--.15 F 1.648(If a)6.648 F F2(sigspec)4.488 E F0(is)4.458 E F3(DEB)144
-309.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.167(the command)3.417 F
-F2(ar)3.997 E(g)-.37 E F0 1.167(is e)3.887 F -.15(xe)-.15 G 1.167
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.168(simple command)
-3.667 F F0(,)A F2(for)3.668 E F0(command,)3.668 E F2(case)3.668 E F0
-(com-)3.668 E(mand,)144 321.6 Q F2(select)2.647 E F0 .147(command, e)
-2.647 F -.15(ve)-.25 G .147(ry arithmetic).15 F F2(for)2.647 E F0 .146
-(command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
-(cutes in a).15 F .145(shell function \(see)144 333.6 R F3 .145
-(SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F1(extdeb)2.646 E(ug)-.2 E F0
-.146(option to)2.646 F(the)144 345.6 Q F1(shopt)3.201 E F0 -.2(bu)3.201
-G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E
-(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E
-F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 357.6 Q F2(ar)
-3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
+(signal. The)144 363.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 375.6 R F2(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
+(names are case insensiti)144 387.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
+/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648
+(If a)144 405.6 R F2(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0
+1.648(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
+4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)
+-.15 F 1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144
+417.6 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F
+F2(ar)3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167
+(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command)
+3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0
+(com-)3.667 E(mand,)144 429.6 Q F2(select)2.646 E F0 .146(command, e)
+2.646 F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147
+(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
+(cutes in a).15 F .146(shell function \(see)144 441.6 R F3 .146
+(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
+F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0
+.145(option to)2.645 F(the)144 453.6 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
+(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG)
+-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3
+(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 465.6 Q F2(ar)
+3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.644(cuted with the).15 F F1(.)3.144 E F0(or)3.144 E F1(sour)3.144 E(ce)
--.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 369.6 Q -.15(xe)
--.15 G(cuting.).15 E .929(If a)144 387.6 R F2(sigspec)3.769 E F0(is)
-3.739 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E
-(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F
--.15(ve)-.25 G 3.429(ras).15 G .928(imple command has a non\255zero)
--3.429 F -.15(ex)144 399.6 S 1.008(it status, subject to the follo).15 F
-1.009(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009
-(trap is not e)3.259 F -.15(xe)-.15 G 1.009(cuted if the f).15 F 1.009
-(ailed com-)-.1 F .324
-(mand is part of the command list immediately follo)144 411.6 R .324
-(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1
-(ke)2.824 G(yw)-.05 E .324(ord, part of the test)-.1 F .151(in an)144
-423.6 R F2(if)2.661 E F0 .151(statement, part of a command e)4.611 F
--.15(xe)-.15 G .151(cuted in a).15 F F1(&&)2.651 E F0(or)2.651 E F1(||)
-2.651 E F0 .151(list, or if the command')2.651 F 2.651(sr)-.55 G .151
-(eturn v)-2.651 F(alue)-.25 E(is being in)144 435.6 Q -.15(ve)-.4 G
-(rted via).15 E F1(!)2.5 E F0 5(.T)C(hese are the same conditions obe)-5
-E(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(option.)2.5 E 1.095
+.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce)
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 477.6 Q -.15(xe)
+-.15 G(cuting.).15 E .521(If a)144 495.6 R F2(sigspec)3.361 E F0(is)
+3.331 E F3(ERR)3.021 E F4(,)A F0 .522(the command)2.771 F F2(ar)3.352 E
+(g)-.37 E F0 .522(is e)3.242 F -.15(xe)-.15 G .522(cuted whene).15 F
+-.15(ve)-.25 G 3.022(raap).15 G .522(ipeline \(which may consist of a)
+-3.022 F .185(single simple command\), a list, or a compound command re\
+turns a non\255zero e)144 507.6 R .184(xit status, subject to)-.15 F
+.451(the follo)144 519.6 R .451(wing conditions.)-.25 F(The)5.451 E F3
+(ERR)2.951 E F0 .451(trap is not e)2.701 F -.15(xe)-.15 G .451
+(cuted if the f).15 F .452(ailed command is part of the com-)-.1 F .388
+(mand list immediately follo)144 531.6 R .388(wing a)-.25 F F1(while)
+2.888 E F0(or)2.888 E F1(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
+(ord, part of the test in an)-.1 F F2(if)2.897 E F0 .387
+(statement, part)4.847 F .777(of a command e)144 543.6 R -.15(xe)-.15 G
+.778(cuted in a).15 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 .778
+(list e)3.278 F .778(xcept the command follo)-.15 F .778
+(wing the \214nal)-.25 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0
+3.278(,a)C -.15(ny)-3.278 G 1.28(command in a pipeline b)144 555.6 R
+1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)
+-3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
+F1(!)3.78 E F0(.)A(These are the same conditions obe)144 567.6 Q
+(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5
+(\)o)C(ption.)-2.5 E 1.095
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-453.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
-(being ignored are reset to their original v)144 465.6 R .662
-(alues in a subshell or subshell en)-.25 F .662(vironment when one is)
--.4 F 2.5(created. The)144 477.6 R(return status is f)2.5 E(alse if an)
+585.6 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
+(being ignored are reset to their original v)144 597.6 R .662
+(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
+-.4 F 2.5(created. The)144 609.6 R(return status is f)2.5 E(alse if an)
-.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108
-494.4 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name)A F0(...])2.5 E -.4(Wi)144 506.4 S .174
-(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F2(name)
-3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F1<ad74>144 518.4 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0
+626.4 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2
+(name)A F0(...])2.5 E -.4(Wi)144 638.4 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name)
+3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F1<ad74>144 650.4 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
-(,).24 E F2 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F2
-(\214le)5.253 E F0(if)3.523 E F2(name)144.36 530.4 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
-(name)2.946 E F0 .086(is not)2.766 F .118
-(found, then nothing is printed, and an e)144 542.4 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
-(either returns the name of the disk \214le that w)144 554.4 R .855
+(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 662.4 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(name)2.947 E F0 .087(is not)2.767 F .119
+(found, then nothing is printed, and an e)144 674.4 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 686.4 R .855
(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
-566.4 R/F5 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
-(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1
-<ad50>3.141 E F0 .641(option forces a)3.141 F F3 -.666(PA)3.141 G(TH)
--.189 E F0 .113(search for each)144 578.4 R F2(name)2.613 E F0 2.613(,e)
-C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F5 .113(type -t name)2.613
-F F0 -.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113
-(.I).18 G 2.613(fa)-5.113 G .112(command is hashed,)-.001 F F1<ad70>
-2.612 E F0(and)144 590.4 Q F1<ad50>2.944 E F0 .444(print the hashed v)
-2.944 F .444(alue, not necessarily the \214le that appears \214rst in)
--.25 F F3 -.666(PA)2.945 G(TH)-.189 E F4(.)A F0 .445(If the)4.945 F F1
-<ad61>2.945 E F0(option)2.945 E .265(is used,)144 602.4 R F1(type)2.765
-E F0 .265(prints all of the places that contain an e)2.765 F -.15(xe)
--.15 G .265(cutable named).15 F F2(name)2.765 E F0 5.265(.T).18 G .265
-(his includes aliases)-5.265 F .426(and functions, if and only if the)
-144 614.4 R F1<ad70>2.926 E F0 .426(option is not also used.)2.926 F
-.427(The table of hashed commands is not)5.426 F .549
-(consulted when using)144 626.4 R F1<ad61>3.049 E F0 5.549(.T)C(he)
--5.549 E F1<ad66>3.049 E F0 .548
-(option suppresses shell function lookup, as with the)3.049 F F1
-(command)3.048 E F0 -.2(bu)144 638.4 S(iltin.).2 E F1(type)5 E F0
-(returns true if all of the ar)2.5 E(guments are found, f)-.18 E
-(alse if an)-.1 E 2.5(ya)-.15 G(re not found.)-2.5 E F1(ulimit)108 655.2
-Q F0([)2.5 E F1(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2
-(limit)A F0(]])A(Pro)144 667.2 Q .243(vides control o)-.15 F -.15(ve)
--.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
+.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
+144 698.4 R/F5 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 710.4 R F2(name)2.612 E F0 2.612(,e)C -.15
+(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F5 .113(type -t name)2.613 F F0
+-.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
+F0(and)144 722.4 Q F1<ad50>3.231 E F0 .731(print the hashed v)3.231 F
+.73(alue, which is not necessarily the \214le that appears \214rst in)
+-.25 F F3 -.666(PA)3.23 G(TH)-.189 E F4(.)A F0 .73(If the)5.23 F
+(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP
+%%Page: 22 22
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF<ad61>144 84 Q F0 1.748(option is used,)4.248 F F1(type)
+4.248 E F0 1.748(prints all of the places that contain an e)4.248 F -.15
+(xe)-.15 G 1.748(cutable named).15 F/F2 10/Times-Italic@0 SF(name)4.249
+E F0 6.749(.T).18 G(his)-6.749 E .744
+(includes aliases and functions, if and only if the)144 96 R F1<ad70>
+3.244 E F0 .744(option is not also used.)3.244 F .743
+(The table of hashed)5.744 F 1.223(commands is not consulted when using)
+144 108 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 120 R F1(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F1(type)5.326
+E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 132 Q F1(ulimit)108 148.8 Q F0([)2.5 E F1
+(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2(limit)A F0(]])A
+(Pro)144 160.8 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743(rt).15
+G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.944(that allo)144 679.2 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+.944(that allo)144 172.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 691.2 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
+144 184.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.708 F .426(be increased up to the v)144 703.2 R .426
+ft limit may)2.708 F .426(be increased up to the v)144 196.8 R .426
(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
F0(nor)2.925 E F1<ad53>2.925 E F0 .425
(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
-715.2 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+208.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.742(of the special v)144 727.2 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
+.742(of the special v)144 220.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
-C .741(hich stand for the current hard limit, the current)-3.241 F
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg EP
-%%Page: 21 21
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .78
-(soft limit, and no limit, respecti)144 84 R -.15(ve)-.25 G(ly).15 E
-5.78(.I)-.65 G(f)-5.78 E/F1 10/Times-Italic@0 SF(limit)3.37 E F0 .78
+C .741(hich stand for the current hard limit, the current)-3.241 F .78
+(soft limit, and no limit, respecti)144 232.8 R -.15(ve)-.25 G(ly).15 E
+5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .499(resource is printed, unless the)144 96 R/F2 10/Times-Bold@0 SF
-<ad48>2.999 E F0 .499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When)
-.15 F .498(more than one resource is speci\214ed, the)2.999 F
-(limit name and unit are printed before the v)144 108 Q 2.5(alue. Other)
--.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2<ad61>144 120
-Q F0(All current limits are reported)25.3 E F2<ad62>144 132 Q F0
-(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E F2<ad63>
-144 144 Q F0(The maximum size of core \214les created)25.86 E F2<ad64>
-144 156 Q F0(The maximum size of a process')24.74 E 2.5(sd)-.55 G
-(ata se)-2.5 E(gment)-.15 E F2<ad65>144 168 Q F0
-(The maximum scheduling priority \("nice"\))25.86 E F2<ad66>144 180 Q F0
-(The maximum size of \214les written by the shell and its children)26.97
-E F2<ad69>144 192 Q F0(The maximum number of pending signals)27.52 E F2
-<ad6c>144 204 Q F0(The maximum size that may be lock)27.52 E
-(ed into memory)-.1 E F2<ad6d>144 216 Q F0
+F .499(resource is printed, unless the)144 244.8 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
+(more than one resource is speci\214ed, the)2.999 F
+(limit name and unit are printed before the v)144 256.8 Q 2.5
+(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F1
+<ad61>144 268.8 Q F0(All current limits are reported)25.3 E F1<ad62>144
+280.8 Q F0(The maximum sock)24.74 E(et b)-.1 E(uf)-.2 E(fer size)-.25 E
+F1<ad63>144 292.8 Q F0(The maximum size of core \214les created)25.86 E
+F1<ad64>144 304.8 Q F0(The maximum size of a process')24.74 E 2.5(sd)
+-.55 G(ata se)-2.5 E(gment)-.15 E F1<ad65>144 316.8 Q F0
+(The maximum scheduling priority \("nice"\))25.86 E F1<ad66>144 328.8 Q
+F0(The maximum size of \214les written by the shell and its children)
+26.97 E F1<ad69>144 340.8 Q F0(The maximum number of pending signals)
+27.52 E F1<ad6c>144 352.8 Q F0(The maximum size that may be lock)27.52 E
+(ed into memory)-.1 E F1<ad6d>144 364.8 Q F0
(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F2<ad6e>144 228 Q F0 .791(The \
-maximum number of open \214le descriptors \(most systems do not allo)
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 376.8 Q F0 .791(Th\
+e maximum number of open \214le descriptors \(most systems do not allo)
24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
-(be set\))180 240 Q F2<ad70>144 252 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F2
-<ad71>144 264 Q F0(The maximum number of bytes in POSIX message queues)
-24.74 E F2<ad72>144 276 Q F0(The maximum real-time scheduling priority)
-25.86 E F2<ad73>144 288 Q F0(The maximum stack size)26.41 E F2<ad74>144
-300 Q F0(The maximum amount of cpu time in seconds)26.97 E F2<ad75>144
-312 Q F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
-(ilable to a single user).25 E F2<ad76>144 324 Q F0 .47
+(be set\))180 388.8 Q F1<ad70>144 400.8 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
+<ad71>144 412.8 Q F0
+(The maximum number of bytes in POSIX message queues)24.74 E F1<ad72>144
+424.8 Q F0(The maximum real-time scheduling priority)25.86 E F1<ad73>144
+436.8 Q F0(The maximum stack size)26.41 E F1<ad74>144 448.8 Q F0
+(The maximum amount of cpu time in seconds)26.97 E F1<ad75>144 460.8 Q
+F0(The maximum number of processes a)24.74 E -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 472.8 Q F0 .47
(The maximum amount of virtual memory a)25.3 F -.25(va)-.2 G .47
-(ilable to the shell and, on some systems, to).25 F(its children)180 336
-Q F2<ad78>144 348 Q F0(The maximum number of \214le locks)25.3 E F2
-<ad54>144 360 Q F0(The maximum number of threads)23.63 E(If)144 376.8 Q
-F1(limit)2.933 E F0 .343(is gi)3.523 F -.15(ve)-.25 G .343
-(n, it is the ne).15 F 2.843(wv)-.25 G .343
-(alue of the speci\214ed resource \(the)-3.093 F F2<ad61>2.843 E F0 .343
-(option is display only\).)2.843 F .343(If no)5.343 F .176(option is gi)
-144 388.8 R -.15(ve)-.25 G .176(n, then).15 F F2<ad66>2.676 E F0 .175
-(is assumed.)2.676 F -1.11(Va)5.175 G .175
-(lues are in 1024-byte increments, e)1.11 F .175(xcept for)-.15 F F2
-<ad74>2.675 E F0 2.675(,w)C .175(hich is in)-2.675 F(seconds,)144 400.8
-Q F2<ad70>2.515 E F0 2.515(,w)C .015
-(hich is in units of 512-byte blocks, and)-2.515 F F2<ad54>2.516 E F0(,)
-A F2<ad62>2.516 E F0(,)A F2<ad6e>2.516 E F0 2.516(,a)C(nd)-2.516 E F2
-<ad75>2.516 E F0 2.516(,w)C .016(hich are unscaled v)-2.516 F(al-)-.25 E
-3.788(ues. The)144 412.8 R 1.287(return status is 0 unless an in)3.787 F
--.25(va)-.4 G 1.287(lid option or ar).25 F 1.287
+(ilable to the shell and, on some systems, to).25 F(its children)180
+484.8 Q F1<ad78>144 496.8 Q F0(The maximum number of \214le locks)25.3 E
+F1<ad54>144 508.8 Q F0(The maximum number of threads)23.63 E(If)144
+525.6 Q F2(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468
+(n, and the).15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968 F F2
+(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
+(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045
+(no option is gi)144 537.6 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66>
+2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1
+<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144
+549.6 R F1<ad70>2.902 E F0 2.902(,w)C .402
+(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,)
+A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1
+<ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144
+561.6 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083
+F -.25(va)-.4 G .583(lid option or ar).25 F .583
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
-424.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F2(umask)108 441.6 Q F0([)2.5 E F2
-<ad70>A F0 2.5(][)C F2<ad53>-2.5 E F0 2.5(][)C F1(mode)-2.5 E F0(])A .2
-(The user \214le-creation mask is set to)144 453.6 R F1(mode)2.7 E F0
-5.2(.I).18 G(f)-5.2 E F1(mode)3.08 E F0(be)2.88 E .2
+573.6 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 590.4 Q F0([)2.5 E F1
+<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0 2.5(][)C F2(mode)-2.5 E F0(])A .2
+(The user \214le-creation mask is set to)144 602.4 R F2(mode)2.7 E F0
+5.2(.I).18 G(f)-5.2 E F2(mode)3.08 E F0(be)2.88 E .2
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 465.6 R F1 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-477.6 Q F1(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
-(alue of the mask is printed.)-.25 F(The)5.382 E F2<ad53>2.882 E F0 .382
+pted by)144 614.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+626.4 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
+(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 489.6 R .547
+(printed in symbolic form; the def)144 638.4 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
-(he)-3.047 E F2<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F1
-(mode)144.38 501.6 Q F0 .551
+(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
+(mode)144.38 650.4 Q F0 .551
(is omitted, the output is in a form that may be reused as input.)3.231
-F .552(The return status is 0 if the)5.552 F(mode w)144 513.6 Q
-(as successfully changed or if no)-.1 E F1(mode)2.5 E F0(ar)2.5 E
-(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F2
-(unalias)108 530.4 Q F0<5bad>2.5 E F2(a)A F0 2.5(][)C F1(name)-2.5 E F0
-(...])2.5 E(Remo)144 542.4 Q 1.955 -.15(ve e)-.15 H(ach).15 E F1(name)
+F .552(The return status is 0 if the)5.552 F(mode w)144 662.4 Q
+(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
+(unalias)108 679.2 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 691.2 Q 1.955 -.15(ve e)-.15 H(ach).15 E F2(name)
4.155 E F0 1.655(from the list of de\214ned aliases.)4.155 F(If)6.655 E
-F2<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
-F(remo)144 554.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
-(alue is true unless a supplied)-.25 E F1(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F2(unset)108 571.2 Q F0<5bad>2.5 E F2
-(fv)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E -.15(Fo)144 583.2 S 3.106
-(re).15 G(ach)-3.106 E F1(name)3.106 E F0 3.106(,r).18 G(emo)-3.106 E
-.906 -.15(ve t)-.15 H .606(he corresponding v).15 F .607
-(ariable or function.)-.25 F .607(If no options are supplied, or the)
-5.607 F F2<ad76>144 595.2 Q F0 .305(option is gi)2.805 F -.15(ve)-.25 G
-.305(n, each).15 F F1(name)3.165 E F0 .305(refers to a shell v)2.985 F
-2.805(ariable. Read-only)-.25 F -.25(va)2.805 G .304
-(riables may not be unset.).25 F(If)5.304 E F2<ad66>144 607.2 Q F0 .459
-(is speci\214ed, each)2.959 F F1(name)3.319 E F0 .459
-(refers to a shell function, and the function de\214nition is remo)3.139
-F -.15(ve)-.15 G 2.96(d. Each).15 F .903(unset v)144 619.2 R .903
-(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.402(df).15 G .902
-(rom the en)-3.402 F .902(vironment passed to subsequent commands.)-.4 F
-(If)5.902 E(an)144 631.2 Q 6.915(yo)-.15 G(f)-6.915 E/F3 9/Times-Bold@0
-SF(COMP_W)6.915 E(ORDBREAKS)-.09 E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)
-6.665 E F4(,)A F3(SECONDS)6.665 E F4(,)A F3(LINENO)6.665 E F4(,)A F3
-(HISTCMD)6.666 E F4(,)A F3(FUNCN)6.666 E(AME)-.18 E F4(,)A F3(GR)144
-643.2 Q(OUPS)-.27 E F4(,)A F0(or)2.523 E F3(DIRST)2.773 E -.495(AC)-.81
-G(K).495 E F0 .272(are unset, the)2.522 F 2.772(yl)-.15 G .272
-(ose their special properties, e)-2.772 F -.15(ve)-.25 G 2.772(ni).15 G
-2.772(ft)-2.772 G(he)-2.772 E 2.772(ya)-.15 G .272(re subsequently)
--2.772 F 2.5(reset. The)144 655.2 R -.15(ex)2.5 G
-(it status is true unless a).15 E F1(name)2.86 E F0(is readonly)2.68 E
-(.)-.65 E F2(wait)108 672 Q F0([)2.5 E F1 2.5(n.)C(..)-2.5 E F0(])A -.8
-(Wa)144 684 S .288
-(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F1(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
-(job speci\214cation; if a job spec is gi)144 696 R -.15(ve)-.25 G .722
-(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
--3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F1(n)3.582 E F0
-(is)3.462 E 1.265(not gi)144 708 R -.15(ve)-.25 G 1.265
-(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
-(nd the return status is zero.)-3.765 F(If)6.266 E F1(n)4.126 E F0 .457
-(speci\214es a non-e)144 720 R .457
-(xistent process or job, the return status is 127.)-.15 F .457
-(Otherwise, the return status is the)5.457 F(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(21)198.725 E 0 Cg EP
-%%Page: 22 22
+F1<ad61>4.155 E F0 1.655(is supplied, all alias de\214nitions are)4.155
+F(remo)144 703.2 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
+(is not a de\214ned alias.)2.68 E(GNU Bash-4.2)72 768 Q(2004 Apr 20)
+148.735 E(22)198.725 E 0 Cg EP
+%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(ex)144
-84 S(it status of the last process or job w).15 E(aited for)-.1 E(.)-.55
-E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 100.8 Q F0(bash\(1\), sh\(1\))108
-112.8 Q(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(22)198.725 E 0 Cg EP
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
+/Times-Bold@0 SF(unset)108 84 Q F0<5bad>2.5 E F1(fv)A F0 2.5(][)C<ad>
+-2.5 E F1(n)A F0 2.5(][)C/F2 10/Times-Italic@0 SF(name)-2.5 E F0(...])
+2.5 E -.15(Fo)144 96 S 3.827(re).15 G(ach)-3.827 E F2(name)3.827 E F0
+3.827(,r).18 G(emo)-3.827 E 1.627 -.15(ve t)-.15 H 1.327
+(he corresponding v).15 F 1.327(ariable or function.)-.25 F 1.327
+(If the)6.327 F F1<ad76>3.828 E F0 1.328(option is gi)3.828 F -.15(ve)
+-.25 G 1.328(n, each).15 F F2(name)144.36 108 Q F0 1.551
+(refers to a shell v)4.231 F 1.551(ariable, and that v)-.25 F 1.551
+(ariable is remo)-.25 F -.15(ve)-.15 G 4.05(d. Read-only).15 F -.25(va)
+4.05 G 1.55(riables may not be).25 F 4.641(unset. If)144 120 R F1<ad66>
+4.641 E F0 2.141(is speci\214ed, each)4.641 F F2(name)5.001 E F0 2.141
+(refers to a shell function, and the function de\214nition is)4.821 F
+(remo)144 132 Q -.15(ve)-.15 G 2.538(d. If).15 F(the)2.537 E F1<ad6e>
+2.537 E F0 .037(option is supplied, and)2.537 F F2(name)2.537 E F0 .037
+(is a v)2.537 F .037(ariable with the)-.25 F F2(namer)2.537 E(ef)-.37 E
+F0(attrib)2.537 E(ute,)-.2 E F2(name)2.537 E F0(will)2.537 E .492
+(be unset rather than the v)144 144 R .492(ariable it references.)-.25 F
+F1<ad6e>5.492 E F0 .492(has no ef)2.992 F .492(fect if the)-.25 F F1
+<ad66>2.992 E F0 .492(option is supplied.)2.992 F .493(If no)5.493 F
+.221(options are supplied, each)144 156 R F2(name)2.721 E F0 .221
+(refers to a v)2.721 F .22(ariable; if there is no v)-.25 F .22
+(ariable by that name, an)-.25 F 2.72(yf)-.15 G(unc-)-2.72 E 1.188
+(tion with that name is unset.)144 168 R 1.189(Each unset v)6.189 F
+1.189(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.689(df).15 G
+1.189(rom the en)-3.689 F(vironment)-.4 E 3.206
+(passed to subsequent commands.)144 180 R 3.206(If an)8.206 F 5.706(yo)
+-.15 G(f)-5.706 E/F3 9/Times-Bold@0 SF(COMP_W)5.706 E(ORDBREAKS)-.09 E
+/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)5.455 E F4(,)A F3(SECONDS)5.455 E
+F4(,)A F3(LINENO)144 192 Q F4(,)A F3(HISTCMD)4.347 E F4(,)A F3(FUNCN)
+4.347 E(AME)-.18 E F4(,)A F3(GR)4.347 E(OUPS)-.27 E F4(,)A F0(or)4.348 E
+F3(DIRST)4.598 E -.495(AC)-.81 G(K).495 E F0 2.098(are unset, the)4.348
+F 4.598(yl)-.15 G 2.098(ose their special)-4.598 F(properties, e)144 204
+Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(ya)-.15 G
+(re subsequently reset.)-2.5 E(The e)5 E(xit status is true unless a)
+-.15 E F2(name)2.86 E F0(is readonly)2.68 E(.)-.65 E F1(wait)108 220.8 Q
+F0([)2.5 E F1<ad6e>A F0 2.5(][)C F2 2.5(n.)-2.5 G(..)-2.5 E F0(])A -.8
+(Wa)144 232.8 S .027(it for each speci\214ed child process and return i\
+ts termination status.).8 F(Each)5.026 E F2(n)2.886 E F0 .026
+(may be a process ID)2.766 F .256
+(or a job speci\214cation; if a job spec is gi)144 244.8 R -.15(ve)-.25
+G .256(n, all processes in that job').15 F 2.756(sp)-.55 G .256
+(ipeline are w)-2.756 F .256(aited for)-.1 F 5.256(.I)-.55 G(f)-5.256 E
+F2(n)3.116 E F0 .318(is not gi)144 256.8 R -.15(ve)-.25 G .318
+(n, all currently acti).15 F .618 -.15(ve c)-.25 H .318
+(hild processes are w).15 F .318(aited for)-.1 F 2.818(,a)-.4 G .318
+(nd the return status is zero.)-2.818 F .317(If the)5.317 F F1<ad6e>144
+268.8 Q F0 .361(option is supplied,)2.861 F F1(wait)2.861 E F0 -.1(wa)
+2.861 G .361(its for an).1 F 2.862(yj)-.15 G .362
+(ob to terminate and returns its e)-2.862 F .362(xit status.)-.15 F(If)
+5.362 E F2(n)3.222 E F0(speci\214es)3.102 E 2.596(an)144 280.8 S(on-e)
+-2.596 E .096(xistent process or job, the return status is 127.)-.15 F
+.095(Otherwise, the return status is the e)5.095 F .095(xit status)-.15
+F(of the last process or job w)144 292.8 Q(aited for)-.1 E(.)-.55 E/F5
+10.95/Times-Bold@0 SF(SEE ALSO)72 309.6 Q F0(bash\(1\), sh\(1\))108
+321.6 Q(GNU Bash-4.2)72 768 Q(2004 Apr 20)148.735 E(23)198.725 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rbash.0 b/doc/rbash.0
index ebd414ca..3ac18d86 100644
--- a/doc/rbash.0
+++ b/doc/rbash.0
@@ -18,7 +18,7 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o specifying command names containing //
- +o specifying a file name containing a // as an argument to the ..
+ +o specifying a filename containing a // as an argument to the ..
builtin command
+o specifying a filename containing a slash as an argument to the
diff --git a/doc/rbash.ps b/doc/rbash.ps
index be68b201..6d2a4500 100644
--- a/doc/rbash.ps
+++ b/doc/rbash.ps
@@ -1,12 +1,12 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Tue Dec 28 14:30:24 2010
+%%CreationDate: Mon Feb 24 08:28:31 2014
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.19 2
%%Pages: 1
%%PageOrder: Ascend
-%%DocumentMedia: Default 595 842 0 () ()
+%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
@@ -188,16 +188,16 @@ setpacking
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
-<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
-/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
@@ -245,7 +245,7 @@ E F0(\(1\))A F1(RESTRICTED SHELL)72 112.8 Q F0(If)108 124.8 Q F2(bash)
G(TH)-.189 E F4(,)A F3(ENV)2.25 E F4(,)A F0(or)2.25 E F3 -.27(BA)2.5 G
(SH_ENV).27 E F0 32.5<8373>108 199.2 S
(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
-216 S(pecifying a \214le name containing a)-32.5 E F2(/)2.5 E F0
+216 S(pecifying a \214lename containing a)-32.5 E F2(/)2.5 E F0
(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
(iltin command).2 E 32.5<8373>108 232.8 S .45
(pecifying a \214lename containing a slash as an ar)-32.5 F .449
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 03c29989..bfd765dd 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,13 +1,13 @@
% texinfo.tex -- TeX macros to handle Texinfo files.
-%
+%
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2009-01-18.17}
+\def\texinfoversion{2013-09-11.11}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013 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
@@ -24,13 +24,14 @@
%
% As a special exception, when this file is read by TeX when processing
% a Texinfo source document, you may use the result without
-% restriction. (This has been our intent since Texinfo was invented.)
+% restriction. This Exception is an additional permission under section 7
+% of the GNU General Public License, version 3 ("GPLv3").
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
-% ftp://tug.org/tex/texinfo.tex
-% (and all CTAN mirrors, see http://www.ctan.org).
+% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
+% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page)
% The texinfo.tex in any given distribution could well be out
% of date, so if that's what you're using, please check.
%
@@ -65,7 +66,6 @@
\everyjob{\message{[Texinfo version \texinfoversion]}%
\catcode`+=\active \catcode`\_=\active}
-
\chardef\other=12
% We never want plain's \outer definition of \+ in Texinfo.
@@ -93,14 +93,13 @@
\let\ptexnewwrite\newwrite
\let\ptexnoindent=\noindent
\let\ptexplus=+
+\let\ptexraggedright=\raggedright
\let\ptexrbrace=\}
\let\ptexslash=\/
\let\ptexstar=\*
\let\ptext=\t
\let\ptextop=\top
-{\catcode`\'=\active
-\global\let\ptexquoteright'}% Math-mode def from plain.tex.
-\let\ptexraggedright=\raggedright
+{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode
% If this character appears in an error message or help string, it
% starts a new line in the output.
@@ -118,10 +117,11 @@
% Set up fixed words for English if not already set.
\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putworderror\undefined \gdef\putworderror{error}\fi
\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
@@ -160,15 +160,18 @@
\def\spaceisspace{\catcode`\ =\spacecat}
% sometimes characters are active, so we need control sequences.
+\chardef\ampChar = `\&
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dashChar = `\-
\chardef\dotChar = `\.
\chardef\exclamChar= `\!
+\chardef\hashChar = `\#
\chardef\lquoteChar= `\`
\chardef\questChar = `\?
\chardef\rquoteChar= `\'
\chardef\semiChar = `\;
+\chardef\slashChar = `\/
\chardef\underChar = `\_
% Ignore a token.
@@ -199,36 +202,7 @@
% that mark overfull boxes (in case you have decided
% that the text looks ok even though it passes the margin).
%
-\def\finalout{\overfullrule=0pt}
-
-% @| 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
- }%
- }%
-}
+\def\finalout{\overfullrule=0pt }
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
@@ -246,7 +220,7 @@
\tracingmacros2
\tracingrestores1
\showboxbreadth\maxdimen \showboxdepth\maxdimen
- \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \ifx\eTeXversion\thisisundefined\else % etex gives us more logging
\tracingscantokens1
\tracingifs1
\tracinggroups1
@@ -257,6 +231,13 @@
\errorcontextlines16
}%
+% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
+% aren't perfect, it's not the end of the world, being an error message,
+% after all.
+%
+\def\errormsg{\begingroup \indexnofonts \doerrormsg}
+\def\doerrormsg#1{\errmessage{#1}}
+
% add check for \lastpenalty to plain's definitions. If the last thing
% we did was a \nobreak, we don't want to insert more space.
%
@@ -267,7 +248,6 @@
\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
\removelastskip\penalty-200\bigskip\fi\fi}
-% For @cropmarks command.
% Do @cropmarks to get crop marks.
%
\newif\ifcropmarks
@@ -301,9 +281,9 @@
\toks6=\expandafter{\prevsectiondefs}%
\toks8=\expandafter{\lastcolordefs}%
\mark{%
- \the\toks0 \the\toks2
- \noexpand\or \the\toks4 \the\toks6
- \noexpand\else \the\toks8
+ \the\toks0 \the\toks2 % 0: top marks (\last...)
+ \noexpand\or \the\toks4 \the\toks6 % 1: bottom marks (default, \prev...)
+ \noexpand\else \the\toks8 % 2: color marks
}%
}
% \topmark doesn't work for the very first chapter (after the title
@@ -342,10 +322,13 @@
%
% Do this outside of the \shipout so @code etc. will be expanded in
% the headline as they should be, not taken literally (outputting ''code).
+ \def\commmonheadfootline{\let\hsize=\pagewidth \texinfochars}
+ %
\ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+ \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+ %
\ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+ \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
%
{%
% Have to do this stuff outside the \shipout because we want it to
@@ -358,7 +341,7 @@
% We don't want .vr (or whatever) entries like this:
% \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
% "\acronym" won't work when it's read back in;
- % it needs to be
+ % it needs to be
% {\code {{\tt \backslashcurfont }acronym}
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
@@ -577,7 +560,7 @@
}
\def\inenvironment#1{%
\ifx#1\empty
- out of any environment%
+ outside of any environment%
\else
in environment \expandafter\string#1%
\fi
@@ -589,7 +572,7 @@
\parseargdef\end{%
\if 1\csname iscond.#1\endcsname
\else
- % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ % The general wording of \badenverr may not be ideal.
\expandafter\checkenv\csname#1\endcsname
\csname E#1\endcsname
\endgroup
@@ -599,85 +582,6 @@
\newhelp\EMsimple{Press RETURN to continue.}
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% 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\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce \{ and \} commands for indices,
- % and @{ and @} for the aux/toc files.
- \catcode`\{ = \other \catcode`\} = \other
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\! = 0 \catcode`\\ = \other
- !gdef!lbracecmd[\{]%
- !gdef!rbracecmd[\}]%
- !gdef!lbraceatcmd[@{]%
- !gdef!rbraceatcmd[@}]%
-!endgroup
-
-% @comma{} to avoid , parsing problems.
-\let\comma = ,
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown @ordf @ordm
-% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
-\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
- \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% The \TeX{} logo, as in plain, but resetting the spacing so that a
-% period following counts as ending a sentence. (Idea found in latex.)
-%
-\edef\TeX{\TeX \spacefactor=1000 }
-
-% @LaTeX{} logo. Not quite the same results as the definition in
-% latex.ltx, since we use a different font for the raised A; it's most
-% convenient for us to use an explicitly smaller font, rather than using
-% the \scriptstyle font (since we don't reset \scriptstyle and
-% \scriptscriptstyle).
-%
-\def\LaTeX{%
- L\kern-.36em
- {\setbox0=\hbox{T}%
- \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
- \kern-.15em
- \TeX
-}
-
% 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
@@ -694,7 +598,7 @@
\def\:{\spacefactor=1000 }
% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
+\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
% @/ allows a line break.
\let\/=\allowbreak
@@ -709,7 +613,7 @@
\def\?{?\spacefactor=\endofsentencespacefactor\space}
% @frenchspacing on|off says whether to put extra space after punctuation.
-%
+%
\def\onword{on}
\def\offword{off}
%
@@ -719,7 +623,7 @@
\else\ifx\temp\offword \plainnonfrenchspacing
\else
\errhelp = \EMsimple
- \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
\fi\fi
}
@@ -801,15 +705,6 @@ where each line of input produces a line of output.}
\newdimen\mil \mil=0.001in
-% Old definition--didn't work.
-%\parseargdef\need{\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\nobreak
-%\prevdepth=-1000pt
-%}}
-
\parseargdef\need{%
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
@@ -873,7 +768,7 @@ where each line of input produces a line of output.}
% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
% paragraph. For more general purposes, use the \margin insertion
-% class. WHICH is `l' or `r'.
+% class. WHICH is `l' or `r'. Not documented, written for gawk manual.
%
\newskip\inmarginspacing \inmarginspacing=1cm
\def\strutdepth{\dp\strutbox}
@@ -920,6 +815,36 @@ where each line of input produces a line of output.}
\temp
}
+% @| 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). This command
+% is not documented, not supported, and doesn't work.
+%
+\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
+ }%
+ }%
+}
+
% @include FILE -- \input text of FILE.
%
\def\include{\parseargusing\filenamecatcodes\includezzz}
@@ -930,6 +855,7 @@ where each line of input produces a line of output.}
\makevalueexpandable % we want to expand any @value in FILE.
\turnoffactive % and allow special characters in the expansion
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @include of #1^^J}%
\edef\temp{\noexpand\input #1 }%
%
% This trickery is to read FILE outside of a group, in case it makes
@@ -965,7 +891,7 @@ where each line of input produces a line of output.}
\def\popthisfilestack{\errthisfilestackempty}
\def\errthisfilestackempty{\errmessage{Internal error:
the stack of filenames is empty.}}
-
+%
\def\thisfile{}
% @center line
@@ -973,36 +899,46 @@ where each line of input produces a line of output.}
%
\parseargdef\center{%
\ifhmode
- \let\next\centerH
+ \let\centersub\centerH
\else
- \let\next\centerV
+ \let\centersub\centerV
\fi
- \next{\hfil \ignorespaces#1\unskip \hfil}%
+ \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+ \let\centersub\relax % don't let the definition persist, just in case
}
-\def\centerH#1{%
- {%
- \hfil\break
- \advance\hsize by -\leftskip
- \advance\hsize by -\rightskip
- \line{#1}%
- \break
- }%
+\def\centerH#1{{%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+ % The idea here is the same as in \startdefun, \cartouche, etc.: if
+ % @center is the first thing after a section heading, we need to wipe
+ % out the negative parskip inserted by \sectionheading, but still
+ % prevent a page break here.
+ \centerpenalty = \lastpenalty
+ \ifnum\centerpenalty>10000 \vskip\parskip \fi
+ \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+ \line{\kern\leftskip #1\kern\rightskip}%
}
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-
+%
\parseargdef\sp{\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{\begingroup \catcode`\^^M=\other%
\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
\commentxxx}
{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
\let\c=\comment
% @paragraphindent NCHARS
@@ -1095,109 +1031,6 @@ where each line of input produces a line of output.}
}
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math outputs its argument in math mode.
-%
-% One complication: _ usually means subscripts, but it could also mean
-% an actual _ character, as in @math{@var{some_variable} + 1}. So make
-% _ active, and distinguish by seeing if the current family is \slfam,
-% which is what @var uses.
-{
- \catcode`\_ = \active
- \gdef\mathunderscore{%
- \catcode`\_=\active
- \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
- }
-}
-% Another complication: we want \\ (and @\) to output a \ character.
-% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
-% this is not advertised and we don't care. Texinfo does not
-% otherwise define @\.
-%
-% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
-\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
-%
-\def\math{%
- \tex
- \mathunderscore
- \let\\ = \mathbackslash
- \mathactive
- % make the texinfo accent commands work in math mode
- \let\"=\ddot
- \let\'=\acute
- \let\==\bar
- \let\^=\hat
- \let\`=\grave
- \let\u=\breve
- \let\v=\check
- \let\~=\tilde
- \let\dotaccent=\dot
- $\finishmath
-}
-\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
-
-% Some active characters (such as <) are spaced differently in math.
-% We have to reset their definitions in case the @math was an argument
-% to a command which sets the catcodes (such as @item or @section).
-%
-{
- \catcode`^ = \active
- \catcode`< = \active
- \catcode`> = \active
- \catcode`+ = \active
- \catcode`' = \active
- \gdef\mathactive{%
- \let^ = \ptexhat
- \let< = \ptexless
- \let> = \ptexgtr
- \let+ = \ptexplus
- \let' = \ptexquoteright
- }
-}
-
-% Some math mode symbols.
-\def\bullet{$\ptexbullet$}
-\def\geq{\ifmmode \ge\else $\ge$\fi}
-\def\leq{\ifmmode \le\else $\le$\fi}
-\def\minus{\ifmmode -\else $-$\fi}
-
-% @dots{} outputs an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in the cm
-% typewriter fonts as three actual period characters; on the other hand,
-% in other typewriter fonts three periods are wider than 1.5em. So do
-% whichever is larger.
-%
-\def\dots{%
- \leavevmode
- \setbox0=\hbox{...}% get width of three periods
- \ifdim\wd0 > 1.5em
- \dimen0 = \wd0
- \else
- \dimen0 = 1.5em
- \fi
- \hbox to \dimen0{%
- \hskip 0pt plus.25fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \dots
- \spacefactor=\endofsentencespacefactor
-}
-
-% @comma{} is so commas can be inserted into text without messing up
-% Texinfo's parsing.
-%
-\let\comma = ,
-
% @refill is a no-op.
\let\refill=\relax
@@ -1262,9 +1095,8 @@ where each line of input produces a line of output.}
\newif\ifpdfmakepagedest
% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
-% can be set). So we test for \relax and 0 as well as \undefined,
-% borrowed from ifpdf.sty.
-\ifx\pdfoutput\undefined
+% can be set). So we test for \relax and 0 as well as being undefined.
+\ifx\pdfoutput\thisisundefined
\else
\ifx\pdfoutput\relax
\else
@@ -1279,50 +1111,24 @@ where each line of input produces a line of output.}
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
-% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
-% (and related messages, the final outcome is that it is up to the TeX
-% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
-
-% double active backslashes.
-%
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslashdouble{%
- @catcode`@\=@active
- @let\=@doublebackslash}
-}
-
-% To handle parens, we must adopt a different approach, since parens are
-% not active characters. hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens, with minor
-% changes for Texinfo. It is included here under the GPL by permission
-% from the author, Heiko Oberdiek.
-%
-% #1 is the tokens to replace.
-% #2 is the replacement.
-% #3 is the control sequence with the string.
%
-\def\HyPsdSubst#1#2#3{%
- \def\HyPsdReplace##1#1##2\END{%
- ##1%
- \ifx\\##2\\%
- \else
- #2%
- \HyReturnAfterFi{%
- \HyPsdReplace##2\END
- }%
- \fi
- }%
- \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
-}
-\long\def\HyReturnAfterFi#1\fi{\fi#1}
-
-% #1 is a control sequence in which to do the replacements.
-\def\backslashparens#1{%
- \xdef#1{#1}% redefine it as its expansion; the definition is simply
- % \lastnode when called from \setref -> \pdfmkdest.
- \HyPsdSubst{(}{\realbackslash(}{#1}%
- \HyPsdSubst{)}{\realbackslash)}{#1}%
+% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+% related messages. The final outcome is that it is up to the TeX user
+% to double the backslashes and otherwise make the string valid, so
+% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to
+% do this reliably, so we use it.
+
+% #1 is a control sequence in which to do the replacements,
+% which we \xdef.
+\def\txiescapepdf#1{%
+ \ifx\pdfescapestring\thisisundefined
+ % No primitive available; should we give a warning or log?
+ % Many times it won't matter.
+ \else
+ % The expandable \pdfescapestring primitive escapes parentheses,
+ % backslashes, and other special chars.
+ \xdef#1{\pdfescapestring{#1}}%
+ \fi
}
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
@@ -1332,13 +1138,16 @@ output) for that.)}
\ifpdf
%
- % Color manipulation macros based on pdfcolor.tex.
- \def\cmykDarkRed{0.28 1 1 0.35}
- \def\cmykBlack{0 0 0 1}
+ % Color manipulation macros based on pdfcolor.tex,
+ % except using rgb instead of cmyk; the latter is said to render as a
+ % very dark gray on-screen and a very dark halftone in print, instead
+ % of actual black.
+ \def\rgbDarkRed{0.50 0.09 0.12}
+ \def\rgbBlack{0 0 0}
%
% k sets the color for filling (usual text, etc.);
% K sets the color for stroking (thin rules, e.g., normal _'s).
- \def\pdfsetcolor#1{\pdfliteral{#1 k #1 K}}
+ \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}}
%
% Set color, and create a mark which defines \thiscolor accordingly,
% so that \makeheadline knows which color to restore.
@@ -1348,7 +1157,7 @@ output) for that.)}
\pdfsetcolor{#1}%
}
%
- \def\maincolor{\cmykBlack}
+ \def\maincolor{\rgbBlack}
\pdfsetcolor{\maincolor}
\edef\thiscolor{\maincolor}
\def\lastcolordefs{}
@@ -1378,32 +1187,34 @@ output) for that.)}
%
% #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
\def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
- \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+ \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+ \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
%
- % pdftex (and the PDF format) support .png, .jpg, .pdf (among
- % others). Let's try in that order.
+ % pdftex (and the PDF format) support .pdf, .png, .jpg (among
+ % others). Let's try in that order, PDF first since if
+ % someone has a scalable image, presumably better to use that than a
+ % bitmap.
\let\pdfimgext=\empty
\begingroup
- \openin 1 #1.png \ifeof 1
- \openin 1 #1.jpg \ifeof 1
- \openin 1 #1.jpeg \ifeof 1
- \openin 1 #1.JPG \ifeof 1
- \openin 1 #1.pdf \ifeof 1
- \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.pdf \ifeof 1
+ \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.png \ifeof 1
+ \openin 1 #1.jpg \ifeof 1
+ \openin 1 #1.jpeg \ifeof 1
+ \openin 1 #1.JPG \ifeof 1
\errhelp = \nopdfimagehelp
\errmessage{Could not find image file #1 for pdf}%
- \else \gdef\pdfimgext{PDF}%
+ \else \gdef\pdfimgext{JPG}%
\fi
- \else \gdef\pdfimgext{pdf}%
+ \else \gdef\pdfimgext{jpeg}%
\fi
- \else \gdef\pdfimgext{JPG}%
+ \else \gdef\pdfimgext{jpg}%
\fi
- \else \gdef\pdfimgext{jpeg}%
+ \else \gdef\pdfimgext{png}%
\fi
- \else \gdef\pdfimgext{jpg}%
+ \else \gdef\pdfimgext{PDF}%
\fi
- \else \gdef\pdfimgext{png}%
+ \else \gdef\pdfimgext{pdf}%
\fi
\closein 1
\endgroup
@@ -1415,8 +1226,8 @@ output) for that.)}
\else
\immediate\pdfximage
\fi
- \ifdim \wd0 >0pt width \imagewidth \fi
- \ifdim \wd2 >0pt height \imageheight \fi
+ \ifdim \wd0 >0pt width \pdfimagewidth \fi
+ \ifdim \wd2 >0pt height \pdfimageheight \fi
\ifnum\pdftexversion<13
#1.\pdfimgext
\else
@@ -1431,10 +1242,9 @@ output) for that.)}
% such as \, aren't expanded when present in a section title.
\indexnofonts
\turnoffactive
- \activebackslashdouble
\makevalueexpandable
\def\pdfdestname{#1}%
- \backslashparens\pdfdestname
+ \txiescapepdf\pdfdestname
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
}}
%
@@ -1443,8 +1253,8 @@ output) for that.)}
%
% by default, use a color that is dark enough to print on paper as
% nearly black, but still distinguishable for online viewing.
- \def\urlcolor{\cmykDarkRed}
- \def\linkcolor{\cmykDarkRed}
+ \def\urlcolor{\rgbDarkRed}
+ \def\linkcolor{\rgbDarkRed}
\def\endlink{\setcolor{\maincolor}\pdfendlink}
%
% Adding outlines to PDF; macros for calculating structure of outlines
@@ -1466,29 +1276,24 @@ output) for that.)}
% page number. We could generate a destination for the section
% text in the case where a section has no node, but it doesn't
% seem worth the trouble, since most documents are normally structured.
- \def\pdfoutlinedest{#3}%
+ \edef\pdfoutlinedest{#3}%
\ifx\pdfoutlinedest\empty
\def\pdfoutlinedest{#4}%
\else
- % Doubled backslashes in the name.
- {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
- \backslashparens\pdfoutlinedest}%
+ \txiescapepdf\pdfoutlinedest
\fi
%
- % Also double the backslashes in the display string.
- {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
- \backslashparens\pdfoutlinetext}%
+ % Also escape PDF chars in the display string.
+ \edef\pdfoutlinetext{#1}%
+ \txiescapepdf\pdfoutlinetext
%
\pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
}
%
\def\pdfmakeoutlines{%
\begingroup
- % Thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
% Read toc silently, to get counts of subentries for \pdfoutline.
+ \def\partentry##1##2##3##4{}% ignore parts in the outlines
\def\numchapentry##1##2##3##4{%
\def\thischapnum{##2}%
\def\thissecnum{0}%
@@ -1542,25 +1347,41 @@ output) for that.)}
% Latin 2 (0xea) gets translated to a | character. Info from
% Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
%
- % xx to do this right, we have to translate 8-bit characters to
- % their "best" equivalent, based on the @documentencoding. Right
- % now, I guess we'll just let the pdf reader have its way.
+ % TODO this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Too
+ % much work for too little return. Just use the ASCII equivalents
+ % we use for the index sort strings.
+ %
\indexnofonts
\setupdatafile
+ % We can have normal brace characters in the PDF outlines, unlike
+ % Texinfo index files. So set that up.
+ \def\{{\lbracecharliteral}%
+ \def\}{\rbracecharliteral}%
\catcode`\\=\active \otherbackslash
\input \tocreadfilename
\endgroup
}
+ {\catcode`[=1 \catcode`]=2
+ \catcode`{=\other \catcode`}=\other
+ \gdef\lbracecharliteral[{]%
+ \gdef\rbracecharliteral[}]%
+ ]
%
\def\skipspaces#1{\def\PP{#1}\def\D{|}%
\ifx\PP\D\let\nextsp\relax
\else\let\nextsp\skipspaces
- \ifx\p\space\else\addtokens{\filename}{\PP}%
- \advance\filenamelength by 1
- \fi
+ \addtokens{\filename}{\PP}%
+ \advance\filenamelength by 1
\fi
\nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \def\getfilename#1{%
+ \filenamelength=0
+ % If we don't expand the argument now, \skipspaces will get
+ % snagged on things like "@value{foo}".
+ \edef\temp{#1}%
+ \expandafter\skipspaces\temp|\relax
+ }
\ifnum\pdftexversion < 14
\let \startlink \pdfannotlink
\else
@@ -1573,7 +1394,7 @@ output) for that.)}
% tried to figure out what each command should do in the context
% of @url. for now, just make @/ a no-op, that's the only one
% people have actually reported a problem with.
- %
+ %
\normalturnoffactive
\def\@{@}%
\let\/=\empty
@@ -1657,9 +1478,6 @@ output) for that.)}
\def\ttsl{\setfontstyle{ttsl}}
-% Default leading.
-\newdimen\textleading \textleading = 13.2pt
-
% 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.
@@ -1671,6 +1489,7 @@ output) for that.)}
% can get a sort of poor man's double spacing by redefining this.
\def\baselinefactor{1}
%
+\newdimen\textleading
\def\setleading#1{%
\dimen0 = #1\relax
\normalbaselineskip = \baselinefactor\dimen0
@@ -1692,7 +1511,7 @@ output) for that.)}
% if we are producing pdf, and we have \pdffontattr, then define cmaps.
% (\pdffontattr was introduced many years ago, but people still run
% older pdftex's; it's easy to conditionalize, so we do.)
-\ifpdf \ifx\pdffontattr\undefined \else
+\ifpdf \ifx\pdffontattr\thisisundefined \else
\begingroup
\catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
\catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1943,28 +1762,34 @@ end
\fi\fi
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
+% Set the font macro #1 to the font named \fontprefix#2.
% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
-% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
-% empty to omit).
+% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit).
+% Example:
+% #1 = \textrm
+% #2 = \rmshape
+% #3 = 10
+% #4 = \mainmagstep
+% #5 = OT1
+%
\def\setfont#1#2#3#4#5{%
\font#1=\fontprefix#2#3 scaled #4
\csname cmap#5\endcsname#1%
}
% This is what gets called when #5 of \setfont is empty.
\let\cmap\gobble
-% emacs-page end of cmaps
+%
+% (end of cmaps)
% 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
+\ifx\fontprefix\thisisundefined
\def\fontprefix{cm}
\fi
% Support font families that don't use the same naming scheme as CM.
\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
+\def\rmbshape{bx} % where the normal face is bold
\def\bfshape{b}
\def\bxshape{bx}
\def\ttshape{tt}
@@ -1979,9 +1804,8 @@ end
\def\scshape{csc}
\def\scbshape{csc}
-% Definitions for a main text size of 11pt. This is the default in
-% Texinfo.
-%
+% Definitions for a main text size of 11pt. (The default in Texinfo.)
+%
\def\definetextfontsizexi{%
% Text fonts (11.2pt, magstep1).
\def\textnominalsize{11pt}
@@ -2102,17 +1926,17 @@ end
\font\reducedsy=cmsy10
\def\reducedecsize{1000}
-% reset the current fonts
-\textfonts
+\textleading = 13.2pt % line spacing for 11pt CM
+\textfonts % reset the current fonts
\rm
-} % end of 11pt text font size definitions
+} % end of 11pt text font size definitions, \definetextfontsizexi
% Definitions to make the main text be 10pt Computer Modern, with
% section, chapter, etc., sizes following suit. This is for the GNU
% Press printing of the Emacs 22 manual. Maybe other manuals in the
% future. Used with @smallbook, which sets the leading to 12pt.
-%
+%
\def\definetextfontsizex{%
% Text fonts (10pt).
\def\textnominalsize{10pt}
@@ -2201,7 +2025,7 @@ end
\setfont\secsf\sfbshape{12}{1000}{OT1}
\let\secbf\secrm
\setfont\secsc\scbshape{10}{\magstep1}{OT1}
-\font\seci=cmmi12
+\font\seci=cmmi12
\font\secsy=cmsy10 scaled \magstep1
\def\sececsize{1200}
@@ -2233,29 +2057,28 @@ end
\font\reducedsy=cmsy9
\def\reducedecsize{0900}
-% reduce space between paragraphs
-\divide\parskip by 2
-
-% reset the current fonts
-\textfonts
+\divide\parskip by 2 % reduce space between paragraphs
+\textleading = 12pt % line spacing for 10pt CM
+\textfonts % reset the current fonts
\rm
-} % end of 10pt text font size definitions
+} % end of 10pt text font size definitions, \definetextfontsizex
% We provide the user-level command
% @fonttextsize 10
% (or 11) to redefine the text font size. pt is assumed.
-%
-\def\xword{10}
+%
\def\xiword{11}
+\def\xword{10}
+\def\xwordpt{10pt}
%
\parseargdef\fonttextsize{%
\def\textsizearg{#1}%
- \wlog{doing @fonttextsize \textsizearg}%
+ %\wlog{doing @fonttextsize \textsizearg}%
%
% Set \globaldefs so that documents can use this inside @tex, since
% makeinfo 4.8 does not support it, but we need it nonetheless.
- %
+ %
\begingroup \globaldefs=1
\ifx\textsizearg\xword \definetextfontsizex
\else \ifx\textsizearg\xiword \definetextfontsizexi
@@ -2305,7 +2128,7 @@ end
\let\tenttsl=\titlettsl
\def\curfontsize{title}%
\def\lsize{chap}\def\lllsize{subsec}%
- \resetmathfonts \setleading{25pt}}
+ \resetmathfonts \setleading{27pt}}
\def\titlefont#1{{\titlefonts\rmisbold #1}}
\def\chapfonts{%
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
@@ -2433,12 +2256,14 @@ end
% Markup style setup for left and right quotes.
\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuplq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuplqdefault \else \temp \fi
}
\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuprq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuprqdefault \else \temp \fi
}
@@ -2451,29 +2276,32 @@ end
\gdef\markupsetcodequoteleft{\let`\codequoteleft}
\gdef\markupsetcodequoteright{\let'\codequoteright}
-
-\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
}
\let\markupsetuplqcode \markupsetcodequoteleft
\let\markupsetuprqcode \markupsetcodequoteright
+%
\let\markupsetuplqexample \markupsetcodequoteleft
\let\markupsetuprqexample \markupsetcodequoteright
+%
+\let\markupsetuplqkbd \markupsetcodequoteleft
+\let\markupsetuprqkbd \markupsetcodequoteright
+%
+\let\markupsetuplqsamp \markupsetcodequoteleft
+\let\markupsetuprqsamp \markupsetcodequoteright
+%
\let\markupsetuplqverb \markupsetcodequoteleft
\let\markupsetuprqverb \markupsetcodequoteright
+%
\let\markupsetuplqverbatim \markupsetcodequoteleft
\let\markupsetuprqverbatim \markupsetcodequoteright
-\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
-\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
-%
+% Allow an option to not use regular directed right quote/apostrophe
+% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
+% The undirected quote is ugly, so don't make it the default, but it
+% works for pasting with more pdf viewers (at least evince), the
+% lilypond developers report. xpdf does work with the regular 0x27.
+%
\def\codequoteright{%
\expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
\expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
@@ -2485,7 +2313,7 @@ end
% and a similar option for the left quote char vs. a grave accent.
% Modern fonts display ASCII 0x60 as a grave accent, so some people like
% the code environments to do likewise.
-%
+%
\def\codequoteleft{%
\expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
\expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
@@ -2496,33 +2324,85 @@ end
\else \char'22 \fi
}
+% Commands to set the quote options.
+%
+\parseargdef\codequoteundirected{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}%
+ \fi\fi
+}
+%
+\parseargdef\codequotebacktick{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}%
+ \fi\fi
+}
+
% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
\def\noligaturesquoteleft{\relax\lq}
% Count depth in font-changes, for error checks
\newcount\fontdepth \fontdepth=0
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
+% Font commands.
-% \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
- \ptexslash\fi\fi\fi}
-\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+% #1 is the font command (\sl or \it), #2 is the text to slant.
+% If we are in a monospaced environment, however, 1) always use \ttsl,
+% and 2) do not add an italic correction.
+\def\dosmartslant#1#2{%
+ \ifusingtt
+ {{\ttsl #2}\let\next=\relax}%
+ {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
+ \next
+}
+\def\smartslanted{\dosmartslant\sl}
+\def\smartitalic{\dosmartslant\it}
-% like \smartslanted except unconditionally uses \ttsl.
-% @var is set to this for defun arguments.
-\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+% Output an italic correction unless \next (presumed to be the following
+% character) is such as not to need one.
+\def\smartitaliccorrection{%
+ \ifx\next,%
+ \else\ifx\next-%
+ \else\ifx\next.%
+ \else\ifx\next\.%
+ \else\ifx\next\comma%
+ \else\ptexslash
+ \fi\fi\fi\fi\fi
+ \aftersmartic
+}
+
+% Unconditional use \ttsl, and no ic. @var is set to this for defuns.
+\def\ttslanted#1{{\ttsl #1}}
% @cite is like \smartslanted except unconditionally use \sl. We never want
% ttsl for book titles, do we?
-\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
+
+\def\aftersmartic{}
+\def\var#1{%
+ \let\saveaftersmartic = \aftersmartic
+ \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+ \smartslanted{#1}%
+}
\let\i=\smartitalic
\let\slanted=\smartslanted
-\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}}
\let\dfn=\smartslanted
\let\emph=\smartitalic
@@ -2572,34 +2452,12 @@ end
% @samp.
\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
-% definition of @key that produces a lozenge. Doesn't adjust to text size.
-%\setfont\keyrm\rmshape{8}{1000}{OT1}
-%\font\keysy=cmsy9
-%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-% \vbox{\hrule\kern-0.4pt
-% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-% \kern-0.4pt\hrule}%
-% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-
-% definition of @key with no lozenge. If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle. But
-% if it isn't monospace, then use \tt.
-%
-\def\key#1{{\setupmarkupstyle{key}%
- \nohyphenation
- \ifmonospace\else\tt\fi
- #1}\null}
-
-% ctrl is no longer a Texinfo command.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
+% @indicateurl is \samp, that is, with quotes.
+\let\indicateurl=\samp
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
+% @code (and similar) prints in typewriter, but with spaces the same
+% size as normal in the surrounding text, without hyphenation, etc.
+% This is a subroutine for that.
\def\tclose#1{%
{%
% Change normal interword space to be same as for the current font.
@@ -2618,18 +2476,18 @@ end
\plainfrenchspacing
#1%
}%
- \null
+ \null % reset spacefactor to 1000
}
% We *must* turn on hyphenation at `-' and `_' in @code.
+% (But see \codedashfinish below.)
% Otherwise, it is too hard to avoid overfull 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 at a dash.
-% -- rms.
+% and arrange explicitly to hyphenate at a dash. -- rms.
{
\catcode`\-=\active \catcode`\_=\active
\catcode`\'=\active \catcode`\`=\active
@@ -2643,15 +2501,38 @@ end
\let-\codedash
\let_\codeunder
\else
- \let-\realdash
+ \let-\normaldash
\let_\realunder
\fi
+ % Given -foo (with a single dash), we do not want to allow a break
+ % after the hyphen.
+ \global\let\codedashprev=\codedash
+ %
\codex
}
+ %
+ \gdef\codedash{\futurelet\next\codedashfinish}
+ \gdef\codedashfinish{%
+ \normaldash % always output the dash character itself.
+ %
+ % Now, output a discretionary to allow a line break, unless
+ % (a) the next character is a -, or
+ % (b) the preceding character is a -.
+ % E.g., given --posix, we do not want to allow a break after either -.
+ % Given --foo-bar, we do want to allow a break between the - and the b.
+ \ifx\next\codedash \else
+ \ifx\codedashprev\codedash
+ \else \discretionary{}{}{}\fi
+ \fi
+ % we need the space after the = for the case when \next itself is a
+ % space token; it would get swallowed otherwise. As in @code{- a}.
+ \global\let\codedashprev= \next
+ }
}
+\def\normaldash{-}
+%
+\def\codex #1{\tclose{#1}\endgroup}
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
\def\codeunder{%
% this is all so @math{@code{var_name}+1} can work. In math mode, _
% is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
@@ -2663,13 +2544,12 @@ end
\discretionary{}{}{}}%
{\_}%
}
-\def\codex #1{\tclose{#1}\endgroup}
% An additional complication: the above will allow breaks after, e.g.,
-% each of the four underscores in __typeof__. This is undesirable in
-% some manuals, especially if they don't have long identifiers in
-% general. @allowcodebreaks provides a way to control this.
-%
+% each of the four underscores in __typeof__. This is bad.
+% @allowcodebreaks provides a document-level way to turn breaking at -
+% and _ on and off.
+%
\newif\ifallowcodebreaks \allowcodebreakstrue
\def\keywordtrue{true}
@@ -2683,63 +2563,25 @@ end
\allowcodebreaksfalse
\else
\errhelp = \EMsimple
- \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}%
\fi\fi
}
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\parseargdef\kbdinputstyle{%
- \def\txiarg{#1}%
- \ifx\txiarg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\txiarg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\txiarg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is `distinct'.
-\kbdinputstyle distinct
-
-\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{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
-
-% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
-\let\indicateurl=\code
-\let\env=\code
+% For @command, @env, @file, @option quotes seem unnecessary,
+% so use \code rather than \samp.
\let\command=\code
-
-% @clicksequence{File @click{} Open ...}
-\def\clicksequence#1{\begingroup #1\endgroup}
-
-% @clickstyle @arrow (by default)
-\parseargdef\clickstyle{\def\click{#1}}
-\def\click{\arrow}
+\let\env=\code
+\let\file=\code
+\let\option=\code
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
% second argument specifying the text to display and an optional third
% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
+% itself. First (mandatory) arg is the url.
+% (This \urefnobreak definition isn't used now, leaving it for a while
+% for comparison.)
+\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
+\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
@@ -2760,6 +2602,103 @@ end
\endlink
\endgroup}
+% This \urefbreak definition is the active one.
+\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
+\let\uref=\urefbreak
+\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
+\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \urefcode{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% Allow line breaks around only a few characters (only).
+\def\urefcatcodes{%
+ \catcode\ampChar=\active \catcode\dotChar=\active
+ \catcode\hashChar=\active \catcode\questChar=\active
+ \catcode\slashChar=\active
+}
+{
+ \urefcatcodes
+ %
+ \global\def\urefcode{\begingroup
+ \setupmarkupstyle{code}%
+ \urefcatcodes
+ \let&\urefcodeamp
+ \let.\urefcodedot
+ \let#\urefcodehash
+ \let?\urefcodequest
+ \let/\urefcodeslash
+ \codex
+ }
+ %
+ % By default, they are just regular characters.
+ \global\def&{\normalamp}
+ \global\def.{\normaldot}
+ \global\def#{\normalhash}
+ \global\def?{\normalquest}
+ \global\def/{\normalslash}
+}
+
+% we put a little stretch before and after the breakable chars, to help
+% line breaking of long url's. The unequal skips make look better in
+% cmtt at least, especially for dots.
+\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+%
+\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
+\def\urefcodedot{\urefprestretch .\urefpoststretch}
+\def\urefcodehash{\urefprestretch \#\urefpoststretch}
+\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
+{
+ \catcode`\/=\active
+ \global\def\urefcodeslashfinish{%
+ \urefprestretch \slashChar
+ % Allow line break only after the final / in a sequence of
+ % slashes, to avoid line break between the slashes in http://.
+ \ifx\next/\else \urefpoststretch \fi
+ }
+}
+
+% One more complication: by default we'll break after the special
+% characters, but some people like to break before the special chars, so
+% allow that. Also allow no breaking at all, for manual control.
+%
+\parseargdef\urefbreakstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\wordnone
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordbefore
+ \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordafter
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\wordafter{after}
+\def\wordbefore{before}
+\def\wordnone{none}
+
+\urefbreakstyle after
+
% @url synonym for @uref, since that's how everyone uses it.
%
\let\url=\uref
@@ -2781,6 +2720,67 @@ end
\let\email=\uref
\fi
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct'.
+\kbdinputstyle distinct
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
+
+\def\xkey{\key}
+\def\kbdsub#1#2#3\par{%
+ \def\one{#1}\def\three{#3}\def\threex{??}%
+ \ifx\one\xkey\ifx\threex\three \key{#2}%
+ \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+ \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+}
+
+% definition of @key that produces a lozenge. Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+% \vbox{\hrule\kern-0.4pt
+% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+% \kern-0.4pt\hrule}%
+% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge. If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle. But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}%
+ \nohyphenation
+ \ifmonospace\else\tt\fi
+ #1}\null}
+
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
% 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.
%
@@ -2794,7 +2794,7 @@ end
% @acronym for "FBI", "NATO", and the like.
% We print this one point size smaller, since it's intended for
% all-uppercase.
-%
+%
\def\acronym#1{\doacronym #1,,\finish}
\def\doacronym#1,#2,#3\finish{%
{\selectfonts\lsize #1}%
@@ -2802,11 +2802,12 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @abbr for "Comput. J." and the like.
% No font change, but don't do end-of-sentence spacing.
-%
+%
\def\abbr#1{\doabbr #1,,\finish}
\def\doabbr#1,#2,#3\finish{%
{\plainfrenchspacing #1}%
@@ -2814,10 +2815,248 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
+}
+
+% @asis just yields its argument. Used with @table, for example.
+%
+\def\asis#1{#1}
+
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}. So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+ \catcode`\_ = \active
+ \gdef\mathunderscore{%
+ \catcode`\_=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+ }
+}
+% Another complication: we want \\ (and @\) to output a math (or tt) \.
+% FYI, plain.tex uses \\ as a temporary control sequence (for no
+% particular reason), but this is not advertised and we don't care.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ % make the texinfo accent commands work in math mode
+ \let\"=\ddot
+ \let\'=\acute
+ \let\==\bar
+ \let\^=\hat
+ \let\`=\grave
+ \let\u=\breve
+ \let\v=\check
+ \let\~=\tilde
+ \let\dotaccent=\dot
+ $\finishmath
+}
+\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \catcode`' = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ \let' = \ptexquoteright
+ }
+}
+
+% ctrl is no longer a Texinfo command, but leave this definition for fun.
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+% except specified as a normal braced arg, so no newlines to worry about.
+%
+\def\outfmtnametex{tex}
+%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
+}
+%
+% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
+% FMTNAME is tex, else ELSE-TEXT.
+\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
+\long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi
+}
+%
+% For raw, must switch into @tex before parsing the argument, to avoid
+% setting catcodes prematurely. Doing it this way means that, for
+% example, @inlineraw{html, foo{bar} gets a parse error instead of being
+% ignored. But this isn't important because if people want a literal
+% *right* brace they would have to use a command anyway, so they may as
+% well use a command to get a left brace too. We could re-use the
+% delimiter character idea from \verb, but it seems like overkill.
+%
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\def\doinlinerawtwo#1,#2,\finish{%
+ \def\inlinerawname{#1}%
+ \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
+ \endgroup % close group opened by \tex.
+}
+
+% @inlineifset{VAR, TEXT} expands TEXT if VAR is @set.
+%
+\long\def\inlineifset#1{\doinlineifset #1,\finish}
+\long\def\doinlineifset#1,#2,\finish{%
+ \def\inlinevarname{#1}%
+ \expandafter\ifx\csname SET\inlinevarname\endcsname\relax
+ \else\ignorespaces#2\fi
+}
+
+% @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set.
+%
+\long\def\inlineifclear#1{\doinlineifclear #1,\finish}
+\long\def\doinlineifclear#1,#2,\finish{%
+ \def\inlinevarname{#1}%
+ \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi
}
\message{glyphs,}
+% and logos.
+
+% @@ prints an @, as does @atchar{}.
+\def\@{\char64 }
+\let\atchar=\@
+
+% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
+% Unless we're in typewriter, use \ecfont because the CM text fonts do
+% not have braces, and we don't want to switch into math.
+\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
+\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
+\let\{=\mylbrace \let\lbracechar=\{
+\let\}=\myrbrace \let\rbracechar=\}
+\begingroup
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux/toc files.
+ \catcode`\{ = \other \catcode`\} = \other
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \ptexc
+\let\dotaccent = \ptexdot
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \ptext
+\let\ubaraccent = \ptexb
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
+ \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence. (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo. Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+ L\kern-.36em
+ {\setbox0=\hbox{T}%
+ \vbox to \ht0{\hbox{%
+ \ifx\textnominalsize\xwordpt
+ % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX.
+ % Revert to plain's \scriptsize, which is 7pt.
+ \count255=\the\fam $\fam\count255 \scriptstyle A$%
+ \else
+ % For 11pt, we can use our lllsize.
+ \selectfonts\lllsize A%
+ \fi
+ }%
+ \vss
+ }}%
+ \kern-.15em
+ \TeX
+}
+
+% Some math mode symbols.
+\def\bullet{$\ptexbullet$}
+\def\geq{\ifmmode \ge\else $\ge$\fi}
+\def\leq{\ifmmode \le\else $\le$\fi}
+\def\minus{\ifmmode -\else $-$\fi}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in the cm
+% typewriter fonts as three actual period characters; on the other hand,
+% in other typewriter fonts three periods are wider than 1.5em. So do
+% whichever is larger.
+%
+\def\dots{%
+ \leavevmode
+ \setbox0=\hbox{...}% get width of three periods
+ \ifdim\wd0 > 1.5em
+ \dimen0 = \wd0
+ \else
+ \dimen0 = 1.5em
+ \fi
+ \hbox to \dimen0{%
+ \hskip 0pt plus.25fil
+ .\hskip 0pt plus1fil
+ .\hskip 0pt plus1fil
+ .\hskip 0pt plus.5fil
+ }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+ \dots
+ \spacefactor=\endofsentencespacefactor
+}
% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
%
@@ -2839,7 +3078,7 @@ end
{\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 \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt}
%
\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -2863,52 +3102,59 @@ end
% Theiling, which support regular, slanted, bold and bold slanted (and
% "outlined" (blackboard board, sort of) versions, which we don't need).
% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
-%
+%
% Although only regular is the truly official Euro symbol, we ignore
% that. The Euro is designed to be slightly taller than the regular
% font height.
-%
+%
% feymr - regular
% feymo - slanted
% feybr - bold
% feybo - bold slanted
-%
+%
% There is no good (free) typewriter version, to my knowledge.
% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
% Hmm.
-%
+%
% Also doesn't work in math. Do we need to do math with euro symbols?
% Hope not.
-%
-%
+%
+%
\def\euro{{\eurofont e}}
\def\eurofont{%
% We set the font at each command, rather than predefining it in
% \textfonts and the other font-switching commands, so that
% installations which never need the symbol don't have to have the
% font installed.
- %
+ %
% There is only one designed size (nominal 10pt), so we always scale
% that to the current nominal size.
- %
+ %
% By the way, simply using "at 1em" works for cmr10 and the like, but
% does not work for cmbx10 and other extended/shrunken fonts.
- %
+ %
\def\eurosize{\csname\curfontsize nominalsize\endcsname}%
%
- \ifx\curfontstyle\bfstylename
+ \ifx\curfontstyle\bfstylename
% bold:
\font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
- \else
+ \else
% regular:
\font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
\fi
\thiseurofont
}
-% Hacks for glyphs from the EC fonts similar to \euro. We don't
-% use \let for the aliases, because sometimes we redefine the original
-% macro, and the alias should reflect the redefinition.
+% Glyphs from the EC fonts. We don't use \let for the aliases, because
+% sometimes we redefine the original macro, and the alias should reflect
+% the redefinition.
+%
+% Use LaTeX names for the Icelandic letters.
+\def\DH{{\ecfont \char"D0}} % Eth
+\def\dh{{\ecfont \char"F0}} % eth
+\def\TH{{\ecfont \char"DE}} % Thorn
+\def\th{{\ecfont \char"FE}} % thorn
+%
\def\guillemetleft{{\ecfont \char"13}}
\def\guillemotleft{\guillemetleft}
\def\guillemetright{{\ecfont \char"14}}
@@ -2922,7 +3168,7 @@ end
% we have the precomposed glyphs for the most common cases. We put the
% tests to use those glyphs in the single \ogonek macro so we have fewer
% dummy definitions to worry about for index entries, etc.
-%
+%
% ogonek is also used with other letters in Lithuanian (IOU), but using
% the precomposed glyphs for those is not so easy since they aren't in
% the same EC font.
@@ -2945,6 +3191,7 @@ end
\def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
\def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
%
+% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
\def\ecfont{%
% We can't distinguish serif/sans and italic/slanted, but this
% is used for crude hacks anyway (like adding French and German
@@ -2952,12 +3199,17 @@ end
% hopefully nobody will notice/care.
\edef\ecsize{\csname\curfontsize ecsize\endcsname}%
\edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
- \ifx\curfontstyle\bfstylename
- % bold:
- \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \ifmonospace
+ % typewriter:
+ \font\thisecfont = ectt\ecsize \space at \nominalsize
\else
- % regular:
- \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \else
+ % regular:
+ \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \fi
\fi
\thisecfont
}
@@ -2979,8 +3231,8 @@ end
% Laurent Siebenmann reports \Orb undefined with:
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
% so we'll define it if necessary.
-%
-\ifx\Orb\undefined
+%
+\ifx\Orb\thisisundefined
\def\Orb{\mathhexbox20D}
\fi
@@ -3008,8 +3260,9 @@ end
\newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
+\parseargdef\shorttitlepage{%
+ \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
\envdef\titlepage{%
% Open one extra group, as we want to close it in the middle of \Etitlepage.
@@ -3069,14 +3322,28 @@ end
\finishedtitlepagetrue
}
-%%% Macros to be used within @titlepage:
+% Settings used for typesetting titles: no hyphenation, no indentation,
+% don't worry much about spacing, ragged right. This should be used
+% inside a \vbox, and fonts need to be set appropriately first. Because
+% it is always used for titles, nothing else, we call \rmisbold. \par
+% should be specified before the end of the \vbox, since a vbox is a group.
+%
+\def\raggedtitlesettings{%
+ \rmisbold
+ \hyphenpenalty=10000
+ \parindent=0pt
+ \tolerance=5000
+ \ptexraggedright
+}
+
+% Macros to be used within @titlepage:
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
\parseargdef\title{%
\checkenv\titlepage
- \leftline{\titlefonts\rmisbold #1}
+ \vbox{\titlefonts \raggedtitlesettings #1\par}%
% print a rule at the page bottom also.
\finishedtitlepagefalse
\vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -3102,7 +3369,7 @@ end
}
-%%% Set up page headings and footings.
+% Set up page headings and footings.
\let\thispage=\folio
@@ -3196,10 +3463,14 @@ end
\def\headings #1 {\csname HEADINGS#1\endcsname}
-\def\HEADINGSoff{%
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
+\def\headingsoff{% non-global headings elimination
+ \evenheadline={\hfil}\evenfootline={\hfil}%
+ \oddheadline={\hfil}\oddfootline={\hfil}%
+}
+
+\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
+\HEADINGSoff % it's the default
+
% 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
@@ -3250,7 +3521,7 @@ end
% This produces Day Month Year style of output.
% Only define if not already defined, in case a txi-??.tex file has set
% up a different format (e.g., txi-cs.tex does this).
-\ifx\today\undefined
+\ifx\today\thisisundefined
\def\today{%
\number\day\space
\ifcase\month
@@ -3311,7 +3582,7 @@ end
\begingroup
\advance\leftskip by-\tableindent
\advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
+ \advance\rightskip by0pt plus1fil\relax
\leavevmode\unhbox0\par
\endgroup
%
@@ -3325,7 +3596,7 @@ end
% cause the example and the item to crash together. So we use this
% bizarre value of 10001 as a signal to \aboveenvbreak to insert
% \parskip glue after all. Section titles are handled this way also.
- %
+ %
\penalty 10001
\endgroup
\itemxneedsnegativevskipfalse
@@ -3797,18 +4068,18 @@ end
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
\fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+% If so, set to same dimension as multitablelinespace.
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi%
\ifdim\multitableparskip=0pt
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi}
@@ -3960,7 +4231,7 @@ end
\def\value{\begingroup\makevalueexpandable\valuexxx}
\def\valuexxx#1{\expandablevalue{#1}\endgroup}
{
- \catcode`\- = \active \catcode`\_ = \active
+ \catcode`\-=\active \catcode`\_=\active
%
\gdef\makevalueexpandable{%
\let\value = \expandablevalue
@@ -3969,7 +4240,7 @@ end
% ..., but we might end up with active ones in the argument if
% we're called from @code, as @code{@value{foo-bar_}}, though.
% So \let them to their normal equivalents.
- \let-\realdash \let_\normalunderscore
+ \let-\normaldash \let_\normalunderscore
}
}
@@ -3980,7 +4251,12 @@ end
% variable's value contains other Texinfo commands, it's almost certain
% it will fail (although perhaps we could fix that with sufficient work
% to do a one-level expansion on the result, instead of complete).
-%
+%
+% Unfortunately, this has the consequence that when _ is in the *value*
+% of an @set, it does not print properly in the roman fonts (get the cmr
+% dot accent at position 126 instead). No fix comes to mind, and it's
+% been this way since 2003 or earlier, so just ignore it.
+%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']}%
@@ -3992,8 +4268,9 @@ end
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
-%
-% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+% To get the special treatment we need for `@end ifset,' we call
+% \makecond and then redefine.
%
\makecond{ifset}
\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
@@ -4009,7 +4286,7 @@ end
}
\def\ifsetfail{\doignore{ifset}}
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% @ifclear VAR ... @end executes the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
% The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4020,6 +4297,35 @@ end
\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
\def\ifclearfail{\doignore{ifclear}}
+% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
+% without the @) is in fact defined. We can only feasibly check at the
+% TeX level, so something like `mathcode' is going to considered
+% defined even though it is not a Texinfo command.
+%
+\makecond{ifcommanddefined}
+\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
+%
+\def\doifcmddefined#1#2{{%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname #2\endcsname\relax
+ #1% If not defined, \let\next as above.
+ \fi
+ \expandafter
+ }\next
+}
+\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
+
+% @ifcommandnotdefined CMD ... handled similar to @ifclear above.
+\makecond{ifcommandnotdefined}
+\def\ifcommandnotdefined{%
+ \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
+\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
+
+% Set the `txicommandconditionals' variable, so documents have a way to
+% test if the @ifcommand...defined conditionals are available.
+\set txicommandconditionals
+
% @dircategory CATEGORY -- specify a category of the dir file
% which this file should belong to. Ignore this in TeX.
\let\dircategory=\comment
@@ -4123,11 +4429,14 @@ end
\def\@{@}% change to @@ when we switch to @ as escape char in index files.
\def\ {\realbackslash\space }%
%
- % Need these in case \tex is in effect and \{ is a \delimiter again.
- % But can't use \lbracecmd and \rbracecmd because texindex assumes
- % braces and backslashes are used only as delimiters.
- \let\{ = \mylbrace
- \let\} = \myrbrace
+ % Need these unexpandable (because we define \tt as a dummy)
+ % definitions when @{ or @} appear in index entry text. Also, more
+ % complicated, when \tex is in effect and \{ is a \delimiter again.
+ % We can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters. Perhaps we
+ % should define @lbrace and @rbrace commands a la @comma.
+ \def\{{{\tt\char123}}%
+ \def\}{{\tt\char125}}%
%
% I don't entirely understand this, but when an index entry is
% generated from a macro call, the \endinput which \scanmacro inserts
@@ -4138,7 +4447,7 @@ end
% processing continues to some further point. On the other hand, it
% seems \endinput does not hurt in the printed index arg, since that
% is still getting written without apparent harm.
- %
+ %
% Sample source (mac-idx3.tex, reported by Graham Percival to
% help-texinfo, 22may06):
% @macro funindex {WORD}
@@ -4146,12 +4455,12 @@ end
% @end macro
% ...
% @funindex commtest
- %
+ %
% The above is not enough to reproduce the bug, but it gives the flavor.
- %
+ %
% Sample whatsit resulting:
% .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
- %
+ %
% So:
\let\endinput = \empty
%
@@ -4180,7 +4489,7 @@ end
\def\commondummies{%
%
% \definedummyword defines \#1 as \string\#1\space, thus effectively
- % preventing its expansion. This is used only for control% words,
+ % preventing its expansion. This is used only for control words,
% not control letters, because the \space would be incorrect for
% control characters, but is needed to separate the control word
% from whatever follows.
@@ -4199,23 +4508,28 @@ end
\commondummiesnofonts
%
\definedummyletter\_%
+ \definedummyletter\-%
%
% Non-English letters.
\definedummyword\AA
\definedummyword\AE
+ \definedummyword\DH
\definedummyword\L
- \definedummyword\OE
\definedummyword\O
+ \definedummyword\OE
+ \definedummyword\TH
\definedummyword\aa
\definedummyword\ae
+ \definedummyword\dh
+ \definedummyword\exclamdown
\definedummyword\l
- \definedummyword\oe
\definedummyword\o
- \definedummyword\ss
- \definedummyword\exclamdown
- \definedummyword\questiondown
+ \definedummyword\oe
\definedummyword\ordf
\definedummyword\ordm
+ \definedummyword\questiondown
+ \definedummyword\ss
+ \definedummyword\th
%
% Although these internal commands shouldn't show up, sometimes they do.
\definedummyword\bf
@@ -4231,20 +4545,25 @@ end
\definedummyword\TeX
%
% Assorted special characters.
+ \definedummyword\arrow
\definedummyword\bullet
\definedummyword\comma
\definedummyword\copyright
\definedummyword\registeredsymbol
\definedummyword\dots
\definedummyword\enddots
+ \definedummyword\entrybreak
\definedummyword\equiv
\definedummyword\error
\definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\geq
\definedummyword\guillemetleft
\definedummyword\guillemetright
\definedummyword\guilsinglleft
\definedummyword\guilsinglright
- \definedummyword\expansion
+ \definedummyword\lbracechar
+ \definedummyword\leq
\definedummyword\minus
\definedummyword\ogonek
\definedummyword\pounds
@@ -4256,6 +4575,7 @@ end
\definedummyword\quoteleft
\definedummyword\quoteright
\definedummyword\quotesinglbase
+ \definedummyword\rbracechar
\definedummyword\result
\definedummyword\textdegree
%
@@ -4301,18 +4621,27 @@ end
\definedummyword\b
\definedummyword\i
\definedummyword\r
+ \definedummyword\sansserif
\definedummyword\sc
+ \definedummyword\slanted
\definedummyword\t
%
% Commands that take arguments.
+ \definedummyword\abbr
\definedummyword\acronym
+ \definedummyword\anchor
\definedummyword\cite
\definedummyword\code
\definedummyword\command
\definedummyword\dfn
+ \definedummyword\dmn
+ \definedummyword\email
\definedummyword\emph
\definedummyword\env
\definedummyword\file
+ \definedummyword\image
+ \definedummyword\indicateurl
+ \definedummyword\inforef
\definedummyword\kbd
\definedummyword\key
\definedummyword\math
@@ -4340,7 +4669,7 @@ end
\def\definedummyaccent##1{\let##1\asis}%
% We can just ignore other control letters.
\def\definedummyletter##1{\let##1\empty}%
- % Hopefully, all control words can become @asis.
+ % All control words become @asis by default; overrides below.
\let\definedummyword\definedummyaccent
%
\commondummiesnofonts
@@ -4352,48 +4681,63 @@ end
%
\def\ { }%
\def\@{@}%
- % how to handle braces?
\def\_{\normalunderscore}%
+ \def\-{}% @- shouldn't affect sorting
+ %
+ % Unfortunately, texindex is not prepared to handle braces in the
+ % content at all. So for index sorting, we map @{ and @} to strings
+ % starting with |, since that ASCII character is between ASCII { and }.
+ \def\{{|a}%
+ \def\lbracechar{|a}%
+ %
+ \def\}{|b}%
+ \def\rbracechar{|b}%
%
% Non-English letters.
\def\AA{AA}%
\def\AE{AE}%
+ \def\DH{DZZ}%
\def\L{L}%
\def\OE{OE}%
\def\O{O}%
+ \def\TH{ZZZ}%
\def\aa{aa}%
\def\ae{ae}%
+ \def\dh{dzz}%
+ \def\exclamdown{!}%
\def\l{l}%
\def\oe{oe}%
- \def\o{o}%
- \def\ss{ss}%
- \def\exclamdown{!}%
- \def\questiondown{?}%
\def\ordf{a}%
\def\ordm{o}%
+ \def\o{o}%
+ \def\questiondown{?}%
+ \def\ss{ss}%
+ \def\th{zzz}%
%
\def\LaTeX{LaTeX}%
\def\TeX{TeX}%
%
% Assorted special characters.
% (The following {} will end up in the sort string, but that's ok.)
+ \def\arrow{->}%
\def\bullet{bullet}%
\def\comma{,}%
\def\copyright{copyright}%
- \def\registeredsymbol{R}%
\def\dots{...}%
\def\enddots{...}%
\def\equiv{==}%
\def\error{error}%
\def\euro{euro}%
+ \def\expansion{==>}%
+ \def\geq{>=}%
\def\guillemetleft{<<}%
\def\guillemetright{>>}%
\def\guilsinglleft{<}%
\def\guilsinglright{>}%
- \def\expansion{==>}%
+ \def\leq{<=}%
\def\minus{-}%
- \def\pounds{pounds}%
\def\point{.}%
+ \def\pounds{pounds}%
\def\print{-|}%
\def\quotedblbase{"}%
\def\quotedblleft{"}%
@@ -4401,22 +4745,31 @@ end
\def\quoteleft{`}%
\def\quoteright{'}%
\def\quotesinglbase{,}%
+ \def\registeredsymbol{R}%
\def\result{=>}%
- \def\textdegree{degrees}%
+ \def\textdegree{o}%
+ %
+ \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax
+ \else \indexlquoteignore \fi
%
% We need to get rid of all macros, leaving only the arguments (if present).
% Of course this is not nearly correct, but it is the best we can do for now.
% makeinfo does not expand macros in the argument to @deffn, which ends up
% writing an index entry, and texindex isn't prepared for an index sort entry
% that starts with \.
- %
+ %
% Since macro invocations are followed by braces, we can just redefine them
% to take a single TeX argument. The case of a macro invocation that
% goes to end-of-line is not handled.
- %
+ %
\macrolist
}
+% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us
+% ignore left quotes in the sort term.
+{\catcode`\`=\active
+ \gdef\indexlquoteignore{\let`=\empty}}
+
\let\indexbackslash=0 %overridden during \printindex.
\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
@@ -4514,10 +4867,9 @@ end
%
% ..., ready, GO:
%
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
#1%
-\else
+ \else
% \lastskip and \lastpenalty cannot both be nonzero simultaneously.
\whatsitskip = \lastskip
\edef\lastskipmacro{\the\lastskip}%
@@ -4541,7 +4893,6 @@ end
% to re-insert the same penalty (values >10000 are used for various
% signals); since we just inserted a non-discardable item, any
% following glue (such as a \parskip) would be a breakpoint. For example:
- %
% @deffn deffn-whatever
% @vindex index-whatever
% Description.
@@ -4554,8 +4905,7 @@ end
% (the whatsit from the \write), so we must insert a \nobreak.
\nobreak\vskip\whatsitskip
\fi
-\fi
-}
+\fi}
% The index entry written in the file actually looks like
% \entry {sortstring}{page}{topic}
@@ -4674,7 +5024,6 @@ end
% But this freezes the catcodes in the argument, and can cause problems to
% @code, which sets - active. This problem was fixed by a kludge---
% ``-'' was active throughout whole index, but this isn't really right.
-%
% The right solution is to prevent \entry from swallowing the whole text.
% --kasal, 21nov03
\def\entry{%
@@ -4711,10 +5060,17 @@ end
% columns.
\vskip 0pt plus1pt
%
+ % When reading the text of entry, convert explicit line breaks
+ % from @* into spaces. The user might give these in long section
+ % titles, for instance.
+ \def\*{\unskip\space\ignorespaces}%
+ \def\entrybreak{\hfil\break}%
+ %
% Swallow the left brace of the text (first parameter):
\afterassignment\doentry
\let\temp =
}
+\def\entrybreak{\unskip\space\ignorespaces}%
\def\doentry{%
\bgroup % Instead of the swallowed brace.
\noindent
@@ -4947,7 +5303,22 @@ end
\message{sectioning,}
% Chapters, sections, etc.
-% \unnumberedno is an oxymoron, of course. But we count the unnumbered
+% Let's start with @part.
+\outer\parseargdef\part{\partzzz{#1}}
+\def\partzzz#1{%
+ \chapoddpage
+ \null
+ \vskip.3\vsize % move it down on the page a bit
+ \begingroup
+ \noindent \titlefonts\rmisbold #1\par % the text
+ \let\lastnode=\empty % no node to associate with
+ \writetocentry{part}{#1}{}% but put it in the toc
+ \headingsoff % no headline or footline on the part page
+ \chapoddpage
+ \endgroup
+}
+
+% \unnumberedno is an oxymoron. But we count the unnumbered
% sections so that we can refer to them unambiguously in the pdf
% outlines by their "section number". We avoid collisions with chapter
% numbers by starting them at 10000. (If a document ever has 10000
@@ -5026,8 +5397,8 @@ end
\chardef\maxseclevel = 3
%
% A numbered section within an unnumbered changes to unnumbered too.
-% To achive this, remember the "biggest" unnum. sec. we are currently in:
-\chardef\unmlevel = \maxseclevel
+% To achieve this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unnlevel = \maxseclevel
%
% Trace whether the current chapter is an appendix or not:
% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
@@ -5052,8 +5423,8 @@ end
% The heading type:
\def\headtype{#1}%
\if \headtype U%
- \ifnum \absseclevel < \unmlevel
- \chardef\unmlevel = \absseclevel
+ \ifnum \absseclevel < \unnlevel
+ \chardef\unnlevel = \absseclevel
\fi
\else
% Check for appendix sections:
@@ -5065,10 +5436,10 @@ end
\fi\fi
\fi
% Check for numbered within unnumbered:
- \ifnum \absseclevel > \unmlevel
+ \ifnum \absseclevel > \unnlevel
\def\headtype{U}%
\else
- \chardef\unmlevel = 3
+ \chardef\unnlevel = 3
\fi
\fi
% Now print the heading:
@@ -5122,7 +5493,9 @@ end
\gdef\chaplevelprefix{\the\chapno.}%
\resetallfloatnos
%
- \message{\putwordChapter\space \the\chapno}%
+ % \putwordChapter can contain complex things in translations.
+ \toks0=\expandafter{\putwordChapter}%
+ \message{\the\toks0 \space \the\chapno}%
%
% Write the actual heading.
\chapmacro{#1}{Ynumbered}{\the\chapno}%
@@ -5133,15 +5506,17 @@ end
\global\let\subsubsection = \numberedsubsubsec
}
-\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz
+%
\def\appendixzzz#1{%
\global\secno=0 \global\subsecno=0 \global\subsubsecno=0
\global\advance\appendixno by 1
\gdef\chaplevelprefix{\appendixletter.}%
\resetallfloatnos
%
- \def\appendixnum{\putwordAppendix\space \appendixletter}%
- \message{\appendixnum}%
+ % \putwordAppendix can contain complex things in translations.
+ \toks0=\expandafter{\putwordAppendix}%
+ \message{\the\toks0 \space \appendixletter}%
%
\chapmacro{#1}{Yappendix}{\appendixletter}%
%
@@ -5150,7 +5525,8 @@ end
\global\let\subsubsection = \appendixsubsubsec
}
-\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+% normally unnmhead0 calls unnumberedzzz:
+\outer\parseargdef\unnumbered{\unnmhead0{#1}}
\def\unnumberedzzz#1{%
\global\secno=0 \global\subsecno=0 \global\subsubsecno=0
\global\advance\unnumberedno by 1
@@ -5194,40 +5570,47 @@ end
\let\top\unnumbered
% Sections.
+%
\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
\def\seczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
}
-\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+% normally calls appendixsectionzzz:
+\outer\parseargdef\appendixsection{\apphead1{#1}}
\def\appendixsectionzzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
}
\let\appendixsec\appendixsection
-\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+% normally calls unnumberedseczzz:
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}}
\def\unnumberedseczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
}
% Subsections.
-\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+%
+% normally calls numberedsubseczzz:
+\outer\parseargdef\numberedsubsec{\numhead2{#1}}
\def\numberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+% normally calls appendixsubseczzz:
+\outer\parseargdef\appendixsubsec{\apphead2{#1}}
\def\appendixsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+% normally calls unnumberedsubseczzz:
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}}
\def\unnumberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynothing}%
@@ -5235,21 +5618,25 @@ end
}
% Subsubsections.
-\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+%
+% normally numberedsubsubseczzz:
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
\def\numberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynumbered}%
{\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+% normally appendixsubsubseczzz:
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}}
\def\appendixsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+% normally unnumberedsubsubseczzz:
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}}
\def\unnumberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynothing}%
@@ -5265,14 +5652,6 @@ end
% 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{%
{\advance\chapheadingskip by 10pt \chapbreak }%
\parsearg\chapheadingzzz
@@ -5280,10 +5659,8 @@ end
\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
\def\chapheadingzzz#1{%
- {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}%
- \bigskip \par\penalty 200\relax
+ \vbox{\chapfonts \raggedtitlesettings #1\par}%
+ \nobreak\bigskip \nobreak
\suppressfirstparagraphindent
}
@@ -5299,14 +5676,13 @@ end
% (including whitespace, linebreaking, etc. around it),
% given all the information in convenient, parsed form.
-%%% Args are the skip and penalty (usually negative)
+% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-
\newskip\chapheadingskip
+% Define plain chapter starts, and page on/off switching for it.
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
% Because \domark is called before \chapoddpage, the filler page will
@@ -5316,9 +5692,8 @@ end
\chappager
\ifodd\pageno \else
\begingroup
- \evenheadline={\hfil}\evenfootline={\hfil}%
- \oddheadline={\hfil}\oddfootline={\hfil}%
- \hbox to 0pt{}%
+ \headingsoff
+ \null
\chappager
\endgroup
\fi
@@ -5374,7 +5749,10 @@ end
\xdef\lastchapterdefs{%
\gdef\noexpand\thischaptername{\the\toks0}%
\gdef\noexpand\thischapternum{\appendixletter}%
- \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum:
+ % \noexpand\putwordAppendix avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
+ \noexpand\thischapternum:
\noexpand\thischaptername}%
}%
\else
@@ -5382,7 +5760,10 @@ end
\xdef\lastchapterdefs{%
\gdef\noexpand\thischaptername{\the\toks0}%
\gdef\noexpand\thischapternum{\the\chapno}%
- \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum:
+ % \noexpand\putwordChapter avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
+ \noexpand\thischapternum:
\noexpand\thischaptername}%
}%
\fi\fi\fi
@@ -5438,8 +5819,7 @@ end
%
% Typeset the actual heading.
\nobreak % Avoid page breaks at the interline glue.
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
- \hangindent=\wd0 \centerparametersmaybe
+ \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
\unhbox0 #1\par}%
}%
\nobreak\bigskip % no page break after a chapter title
@@ -5461,18 +5841,18 @@ end
\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
%
\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}\bigskip \par\nobreak
+ \chapoddpage
+ \vbox{\chapfonts \raggedtitlesettings #1\par}%
+ \nobreak\bigskip\nobreak
}
\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\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+ \chapoddpage
+ \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
+ \nobreak\bigskip \nobreak
}
\def\CHAPFopen{%
\global\let\chapmacro=\chfopen
@@ -5504,6 +5884,8 @@ end
%
\def\sectionheading#1#2#3#4{%
{%
+ \checkenv{}% should not be in an environment.
+ %
% Switch to the right set of fonts.
\csname #2fonts\endcsname \rmisbold
%
@@ -5525,7 +5907,10 @@ end
\xdef\lastsectiondefs{%
\gdef\noexpand\thissectionname{\the\toks0}%
\gdef\noexpand\thissectionnum{#4}%
- \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+ % \noexpand\putwordSection avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thissection{\noexpand\putwordSection{}
+ \noexpand\thissectionnum:
\noexpand\thissectionname}%
}%
\fi
@@ -5535,7 +5920,10 @@ end
\xdef\lastsectiondefs{%
\gdef\noexpand\thissectionname{\the\toks0}%
\gdef\noexpand\thissectionnum{#4}%
- \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+ % \noexpand\putwordSection avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thissection{\noexpand\putwordSection{}
+ \noexpand\thissectionnum:
\noexpand\thissectionname}%
}%
\fi
@@ -5555,7 +5943,7 @@ end
%
% Now the second mark, after the heading break. No break points
% between here and the heading.
- \let\prevsectiondefs=\lastsectiondefs
+ \global\let\prevsectiondefs=\lastsectiondefs
\domark
%
% Only insert the space after the number if we have a section number.
@@ -5609,15 +5997,15 @@ end
%
% We'll almost certainly start a paragraph next, so don't let that
% glue accumulate. (Not a breakpoint because it's preceded by a
- % discardable item.)
+ % discardable item.) However, when a paragraph is not started next
+ % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+ % or the negative glue will cause weirdly wrong output, typically
+ % obscuring the section heading with something else.
\vskip-\parskip
- %
- % This is purely so the last item on the list is a known \penalty >
- % 10000. This is so \startdefun can avoid allowing breakpoints after
- % section headings. Otherwise, it would insert a valid breakpoint between:
- %
- % @section sec-whatever
- % @deffn def-whatever
+ %
+ % This is so the last item on the main vertical list is a known
+ % \penalty > 10000, so \startdefun, etc., can recognize the situation
+ % and do the needful.
\penalty 10001
}
@@ -5673,7 +6061,7 @@ end
% These characters do not print properly in the Computer Modern roman
% fonts, so we must take special care. This is more or less redundant
% with the Texinfo input format setup at the end of this file.
-%
+%
\def\activecatcodes{%
\catcode`\"=\active
\catcode`\$=\active
@@ -5723,7 +6111,7 @@ end
% redefined for the two-volume lispref. We always output on
% \jobname.toc even if this is redefined.
-%
+%
\def\tocreadfilename{\jobname.toc}
% Normal (long) toc.
@@ -5749,6 +6137,7 @@ end
\def\summarycontents{%
\startcontents{\putwordShortTOC}%
%
+ \let\partentry = \shortpartentry
\let\numchapentry = \shortchapentry
\let\appentry = \shortchapentry
\let\unnchapentry = \shortunnchapentry
@@ -5804,6 +6193,19 @@ end
% The last argument is the page number.
% The arguments in between are the chapter number, section number, ...
+% Parts, in the main contents. Replace the part number, which doesn't
+% exist, with an empty box. Let's hope all the numbers have the same width.
+% Also ignore the page number, which is conventionally not printed.
+\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}}
+\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}}
+%
+% Parts, in the short toc.
+\def\shortpartentry#1#2#3#4{%
+ \penalty-300
+ \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip
+ \shortchapentry{{\bf #1}}{\numeralbox}{}{}%
+}
+
% Chapters, in the main contents.
\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
%
@@ -5893,9 +6295,9 @@ end
\message{environments,}
% @foo ... @end foo.
-% @tex ... @end tex escapes into raw Tex temporarily.
+% @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.
+% But \@ or @@ will get a plain @ character.
\envdef\tex{%
\setupmarkupstyle{tex}%
@@ -5908,10 +6310,14 @@ end
\catcode `\|=\other
\catcode `\<=\other
\catcode `\>=\other
- \catcode`\`=\other
- \catcode`\'=\other
+ \catcode `\`=\other
+ \catcode `\'=\other
\escapechar=`\\
%
+ % ' is active in math mode (mathcode"8000). So reset it, and all our
+ % other math active characters (just in case), to plain's definitions.
+ \mathactive
+ %
\let\b=\ptexb
\let\bullet=\ptexbullet
\let\c=\ptexc
@@ -5929,7 +6335,7 @@ end
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
- \expandafter \let\csname top\endcsname=\ptextop % outer
+ \expandafter \let\csname top\endcsname=\ptextop % we've made it outer
\let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -6015,6 +6421,12 @@ end
\normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
% Flag to tell @lisp, etc., not to narrow margin.
\let\nonarrowing = t%
+ %
+ % If this cartouche directly follows a sectioning command, we need the
+ % \parskip glue (backspaced over by default) or the cartouche can
+ % collide with the section heading.
+ \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
+ %
\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
@@ -6028,7 +6440,7 @@ end
\lineskip=\normlskip
\parskip=\normpskip
\vskip -\parskip
- \comment % For explanation, see the end of \def\group.
+ \comment % For explanation, see the end of def\group.
}
\def\Ecartouche{%
\ifhmode\par\fi
@@ -6048,7 +6460,7 @@ end
\newdimen\nonfillparindent
\def\nonfillstart{%
\aboveenvbreak
- \hfuzz = 12pt % Don't be fussy
+ \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy
\sepspaces % Make spaces be word-separators rather than space tokens.
\let\par = \lisppar % don't ignore blank lines
\obeylines % each line of input is a line of output
@@ -6114,41 +6526,42 @@ end
}
% We often define two environments, @foo and @smallfoo.
-% Let's do it by one command:
-\def\makedispenv #1#2{
- \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
- \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+% Let's do it in one command. #1 is the env name, #2 the definition.
+\def\makedispenvdef#1#2{%
+ \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}%
+ \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}%
\expandafter\let\csname E#1\endcsname \afterenvbreak
\expandafter\let\csname Esmall#1\endcsname \afterenvbreak
}
-% Define two synonyms:
-\def\maketwodispenvs #1#2#3{
- \makedispenv{#1}{#3}
- \makedispenv{#2}{#3}
+% Define two environment synonyms (#1 and #2) for an environment.
+\def\maketwodispenvdef#1#2#3{%
+ \makedispenvdef{#1}{#3}%
+ \makedispenvdef{#2}{#3}%
}
-
-% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
+% @lisp: indented, narrowed, typewriter font;
+% @example: same as @lisp.
%
% @smallexample and @smalllisp: use smaller fonts.
% Originally contributed by Pavel@xerox.
%
-\maketwodispenvs {lisp}{example}{%
+\maketwodispenvdef{lisp}{example}{%
\nonfillstart
\tt\setupmarkupstyle{example}%
\let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
+ \gobble % eat return
}
% @display/@smalldisplay: same as @lisp except keep current font.
%
-\makedispenv {display}{%
+\makedispenvdef{display}{%
\nonfillstart
\gobble
}
% @format/@smallformat: same as @display except don't narrow margins.
%
-\makedispenv{format}{%
+\makedispenvdef{format}{%
\let\nonarrowing = t%
\nonfillstart
\gobble
@@ -6167,7 +6580,7 @@ end
\envdef\flushright{%
\let\nonarrowing = t%
\nonfillstart
- \advance\leftskip by 0pt plus 1fill
+ \advance\leftskip by 0pt plus 1fill\relax
\gobble
}
\let\Eflushright = \afterenvbreak
@@ -6202,43 +6615,28 @@ end
% we're doing normal filling. So, when using \aboveenvbreak and
% \afterenvbreak, temporarily make \parskip 0.
%
+\makedispenvdef{quotation}{\quotationstart}
+%
\def\quotationstart{%
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \parindent=0pt
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \indentedblockstart % same as \indentedblock, but increase right margin too.
\ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
\advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \else
- \let\nonarrowing = \relax
\fi
\parsearg\quotationlabel
}
-\envdef\quotation{%
- \setnormaldispenv
- \quotationstart
-}
-
-\envdef\smallquotation{%
- \setsmalldispenv
- \quotationstart
-}
-\let\Esmallquotation = \Equotation
-
% We have retained a nonzero parskip for the environment, since we're
% doing normal filling.
%
\def\Equotation{%
\par
- \ifx\quotationauthor\undefined\else
+ \ifx\quotationauthor\thisisundefined\else
% indent a bit.
\leftline{\kern 2\leftskip \sl ---\quotationauthor}%
\fi
{\parskip=0pt \afterenvbreak}%
}
+\def\Esmallquotation{\Equotation}
% If we're given an argument, typeset it in bold with a colon after.
\def\quotationlabel#1{%
@@ -6248,6 +6646,32 @@ end
\fi
}
+% @indentedblock is like @quotation, but indents only on the left and
+% has no optional argument.
+%
+\makedispenvdef{indentedblock}{\indentedblockstart}
+%
+\def\indentedblockstart{%
+ {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+ \parindent=0pt
+ %
+ % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \ifx\nonarrowing\relax
+ \advance\leftskip by \lispnarrowing
+ \exdentamount = \lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+}
+
+% Keep a nonzero parskip for the environment, since we're doing normal filling.
+%
+\def\Eindentedblock{%
+ \par
+ {\parskip=0pt \afterenvbreak}%
+}
+\def\Esmallindentedblock{\Eindentedblock}
+
% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
% If we want to allow any <char> as delimiter,
@@ -6295,21 +6719,28 @@ end
% Setup for the @verbatim environment
%
-% Real tab expansion
+% Real tab expansion.
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
%
-\def\starttabbox{\setbox0=\hbox\bgroup}
+% We typeset each line of the verbatim in an \hbox, so we can handle
+% tabs. The \global is in case the verbatim line starts with an accent,
+% or some other command that starts with a begin-group. Otherwise, the
+% entire \verbbox would disappear at the corresponding end-group, before
+% it is typeset. Meanwhile, we can't have nested verbatim commands
+% (can we?), so the \global won't be overwriting itself.
+\newbox\verbbox
+\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup}
%
\begingroup
\catcode`\^^I=\active
\gdef\tabexpand{%
\catcode`\^^I=\active
\def^^I{\leavevmode\egroup
- \dimen0=\wd0 % the width so far, or since the previous tab
- \divide\dimen0 by\tabw
- \multiply\dimen0 by\tabw % compute previous multiple of \tabw
- \advance\dimen0 by\tabw % advance to next multiple of \tabw
- \wd0=\dimen0 \box0 \starttabbox
+ \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab
+ \divide\dimen\verbbox by\tabw
+ \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw
+ \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw
+ \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox
}%
}
\endgroup
@@ -6318,15 +6749,16 @@ end
\def\setupverbatim{%
\let\nonarrowing = t%
\nonfillstart
- % Easiest (and conventionally used) font for verbatim
- \tt
- \def\par{\leavevmode\egroup\box0\endgraf}%
+ \tt % easiest (and conventionally used) font for verbatim
+ % The \leavevmode here is for blank lines. Otherwise, we would
+ % never \starttabox and the \egroup would end verbatim mode.
+ \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
\tabexpand
\setupmarkupstyle{verbatim}%
% Respect line breaks,
% print special symbols as themselves, and
- % make each space count
- % must do in this order:
+ % make each space count.
+ % Must do in this order:
\obeylines \uncatcodespecials \sepspaces
\everypar{\starttabbox}%
}
@@ -6383,6 +6815,7 @@ end
\makevalueexpandable
\setupverbatim
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
\input #1
\afterenvbreak
}%
@@ -6432,7 +6865,7 @@ end
% commands also insert a nobreak penalty, and we don't want to allow
% a break between a section heading and a defun.
%
- % As a minor refinement, we avoid "club" headers by signalling
+ % As a further refinement, we avoid "club" headers by signalling
% with penalty of 10003 after the very first @deffn in the
% sequence (see above), and penalty of 10002 after any following
% @def command.
@@ -6469,7 +6902,7 @@ end
#1#2 \endheader
% common ending:
\interlinepenalty = 10000
- \advance\rightskip by 0pt plus 1fil
+ \advance\rightskip by 0pt plus 1fil\relax
\endgraf
\nobreak\vskip -\parskip
\penalty\defunpenalty % signal to \startdefun and \dodefunx
@@ -6499,13 +6932,36 @@ end
\def\domakedefun#1#2#3{%
\envdef#1{%
\startdefun
+ \doingtypefnfalse % distinguish typed functions from all else
\parseargusing\activeparens{\printdefunline#3}%
}%
\def#2{\dodefunx#1}%
\def#3%
}
-%%% Untyped functions:
+\newif\ifdoingtypefn % doing typed function?
+\newif\ifrettypeownline % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line. This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+%
+\parseargdef\deftypefnnewline{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @txideftypefnnl value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+% Untyped functions:
% @deffn category name args
\makedefun{deffn}{\deffngeneral{}}
@@ -6524,7 +6980,7 @@ end
\defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-%%% Typed functions:
+% Typed functions:
% @deftypefn category type name args
\makedefun{deftypefn}{\deftypefngeneral{}}
@@ -6539,10 +6995,11 @@ end
%
\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
\dosubind{fn}{\code{#4}}{#1}%
+ \doingtypefntrue
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Typed variables:
+% Typed variables:
% @deftypevr category type var args
\makedefun{deftypevr}{\deftypecvgeneral{}}
@@ -6560,7 +7017,7 @@ end
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Untyped variables:
+% Untyped variables:
% @defvr category var args
\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
@@ -6571,7 +7028,8 @@ end
% \defcvof {category of}class var args
\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-%%% Type:
+% Types:
+
% @deftp category name args
\makedefun{deftp}#1 #2 #3\endheader{%
\doind{tp}{\code{#2}}%
@@ -6599,25 +7057,49 @@ end
% We are followed by (but not passed) the arguments, if any.
%
\def\defname#1#2#3{%
+ \par
% Get the values of \leftskip and \rightskip as they were outside the @def...
\advance\leftskip by -\defbodyindent
%
- % How we'll format the type name. Putting it in brackets helps
+ % Determine if we are typesetting the return type of a typed function
+ % on a line by itself.
+ \rettypeownlinefalse
+ \ifdoingtypefn % doing a typed function specifically?
+ % then check user option for putting return type on its own line:
+ \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+ \rettypeownlinetrue
+ \fi
+ \fi
+ %
+ % How we'll format the category name. Putting it in brackets helps
% distinguish it from the body text that may end up on the next line
% just below it.
\def\temp{#1}%
\setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
%
- % Figure out line sizes for the paragraph shape.
+ % Figure out line sizes for the paragraph shape. We'll always have at
+ % least two.
+ \tempnum = 2
+ %
% The first line needs space for \box0; but if \rightskip is nonzero,
% we need only space for the part of \box0 which exceeds it:
\dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ %
+ % If doing a return type on its own line, we'll have another line.
+ \ifrettypeownline
+ \advance\tempnum by 1
+ \def\maybeshapeline{0in \hsize}%
+ \else
+ \def\maybeshapeline{}%
+ \fi
+ %
% The continuations:
\dimen2=\hsize \advance\dimen2 by -\defargsindent
- % (plain.tex says that \dimen1 should be used only as global.)
- \parshape 2 0in \dimen0 \defargsindent \dimen2
%
- % Put the type name to the right margin.
+ % The final paragraph shape:
+ \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2
+ %
+ % Put the category name at the right margin.
\noindent
\hbox to 0pt{%
\hfil\box0 \kern-\hsize
@@ -6639,8 +7121,16 @@ end
% . this still does not fix the ?` and !` ligatures, but so far no
% one has made identifiers using them :).
\df \tt
- \def\temp{#2}% return value type
- \ifx\temp\empty\else \tclose{\temp} \fi
+ \def\temp{#2}% text of the return type
+ \ifx\temp\empty\else
+ \tclose{\temp}% typeset the return type
+ \ifrettypeownline
+ % put return type on its own line; prohibit line break following:
+ \hfil\vadjust{\nobreak}\break
+ \else
+ \space % type on same line, so just followed by a space
+ \fi
+ \fi % no return type
#3% output function name
}%
{\rm\enskip}% hskip 0.5 em of \tenrm
@@ -6660,7 +7150,10 @@ end
\df \sl \hyphenchar\font=0
%
% On the other hand, if an argument has two dashes (for instance), we
- % want a way to get ttsl. Let's try @var for that.
+ % want a way to get ttsl. We used to recommend @var for that, so
+ % leave the code in, but it's strange for @var to lead to typewriter.
+ % Nowadays we recommend @code, since the difference between a ttsl hyphen
+ % and a tt hyphen is pretty tiny. @code also disables ?` !`.
\def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
#1%
\sl\hyphenchar\font=45
@@ -6758,7 +7251,7 @@ end
% To do this right we need a feature of e-TeX, \scantokens,
% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
+\ifx\eTeXversion\thisisundefined
\newwrite\macscribble
\def\scantokens#1{%
\toks0={#1}%
@@ -6769,25 +7262,30 @@ end
}
\fi
-\def\scanmacro#1{%
- \begingroup
- \newlinechar`\^^M
- \let\xeatspaces\eatspaces
- % Undo catcode changes of \startcontents and \doprintindex
- % When called from @insertcopying or (short)caption, we need active
- % backslash to get it printed correctly. Previously, we had
- % \catcode`\\=\other instead. We'll see whether a problem appears
- % with macro expansion. --kasal, 19aug04
- \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
- % ... and \example
- \spaceisspace
- %
- % Append \endinput to make sure that TeX does not see the ending newline.
- % I've verified that it is necessary both for e-TeX and for ordinary TeX
- % --kasal, 29nov03
- \scantokens{#1\endinput}%
- \endgroup
-}
+\def\scanmacro#1{\begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ %
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ %
+ % ... and for \example:
+ \spaceisspace
+ %
+ % The \empty here causes a following catcode 5 newline to be eaten as
+ % part of reading whitespace after a control sequence. It does not
+ % eat a catcode 13 newline. There's no good way to handle the two
+ % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
+ % would then have different behavior). See the Macro Details node in
+ % the manual for the workaround we recommend for macros and
+ % line-oriented commands.
+ %
+ \scantokens{#1\empty}%
+\endgroup}
\def\scanexp#1{%
\edef\temp{\noexpand\scanmacro{#1}}%
@@ -6815,7 +7313,7 @@ end
% This does \let #1 = #2, with \csnames; that is,
% \let \csname#1\endcsname = \csname#2\endcsname
% (except of course we have to play expansion games).
-%
+%
\def\cslet#1#2{%
\expandafter\let
\csname#1\expandafter\endcsname
@@ -6841,17 +7339,18 @@ end
% Macro bodies are absorbed as an argument in a context where
% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
+% (as in normal texinfo). It is necessary to change the definition of \
+% to recognize macro arguments; this is the job of \mbodybackslash.
+%
% Non-ASCII encodings make 8-bit characters active, so un-activate
% them to avoid their expansion. Must do this non-globally, to
% confine the change to the current group.
-
+%
% It's necessary to have hard CRs when the macro is executed. This is
-% done by making ^^M (\endlinechar) catcode 12 when reading the macro
+% done by making ^^M (\endlinechar) catcode 12 when reading the macro
% body, and then making it the \newlinechar in \scanmacro.
-
-\def\scanctxt{%
+%
+\def\scanctxt{% used as subroutine
\catcode`\"=\other
\catcode`\+=\other
\catcode`\<=\other
@@ -6864,13 +7363,13 @@ end
\ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
}
-\def\scanargctxt{%
+\def\scanargctxt{% used for copying and captions, not macros.
\scanctxt
\catcode`\\=\other
\catcode`\^^M=\other
}
-\def\macrobodyctxt{%
+\def\macrobodyctxt{% used for @macro definitions
\scanctxt
\catcode`\{=\other
\catcode`\}=\other
@@ -6878,32 +7377,56 @@ end
\usembodybackslash
}
-\def\macroargctxt{%
+\def\macroargctxt{% used when scanning invocations
\scanctxt
- \catcode`\\=\other
+ \catcode`\\=0
}
+% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes"
+% for the single characters \ { }. Thus, we end up with the "commands"
+% that would be written @\ @{ @} in a Texinfo document.
+%
+% We already have @{ and @}. For @\, we define it here, and only for
+% this purpose, to produce a typewriter backslash (so, the @\ that we
+% define for @math can't be used with @macro calls):
+%
+\def\\{\normalbackslash}%
+%
+% We would like to do this for \, too, since that is what makeinfo does.
+% But it is not possible, because Texinfo already has a command @, for a
+% cedilla accent. Documents must use @comma{} instead.
+%
+% \anythingelse will almost certainly be an error of some kind.
+
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
% where N is the macro parameter number.
% We define \csname macarg.\endcsname to be \realbackslash, so
% \\ in macro replacement text gets you a backslash.
-
+%
{\catcode`@=0 @catcode`@\=@active
@gdef@usembodybackslash{@let\=@mbodybackslash}
@gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
}
\expandafter\def\csname macarg.\endcsname{\realbackslash}
+\def\margbackslash#1{\char`\#1 }
+
\def\macro{\recursivefalse\parsearg\macroxxx}
\def\rmacro{\recursivetrue\parsearg\macroxxx}
\def\macroxxx#1{%
- \getargs{#1}% now \macname is the macname and \argl the arglist
+ \getargs{#1}% now \macname is the macname and \argl the arglist
\ifx\argl\empty % no arguments
- \paramno=0%
+ \paramno=0\relax
\else
\expandafter\parsemargdef \argl;%
+ \if\paramno>256\relax
+ \ifx\eTeXversion\thisisundefined
+ \errhelp = \EMsimple
+ \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
+ \fi
+ \fi
\fi
\if1\csname ismacro.\the\macname\endcsname
\message{Warning: redefining \the\macname}%
@@ -6950,46 +7473,269 @@ end
% an opening brace, and that opening brace is not consumed.
\def\getargs#1{\getargsxxx#1{}}
\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
+\def\getmacname#1 #2\relax{\macname={#1}}
\def\getmacargs#1{\def\argl{#1}}
+% For macro processing make @ a letter so that we can make Texinfo private macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
+% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
+% in the params list to some hook where the argument si to be expanded. If
+% there are less than 10 arguments that hook is to be replaced by ##N where N
+% is the position in that list, that is to say the macro arguments are to be
+% defined `a la TeX in the macro body.
+%
% That gets used by \mbodybackslash (above).
-
+%
% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
+% The technique used is stolen from LaTeX: let \hash be something
% unexpandable, insert that wherever you need a #, and then redefine
% it to # just before using the token list produced.
%
% The same technique is used to protect \eatspaces till just before
% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
- \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+%
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime underwhich the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, you need that no macro has more than 256 arguments, otherwise an
+% error is produced.
+\def\parsemargdef#1;{%
+ \paramno=0\def\paramlist{}%
+ \let\hash\relax
+ \let\xeatspaces\relax
+ \parsemargdefxxx#1,;,%
+ % In case that there are 10 or more arguments we parse again the arguments
+ % list to set new definitions for the \macarg.BLAH macros corresponding to
+ % each BLAH argument. It was anyhow needed to parse already once this list
+ % in order to count the arguments, and as macros with at most 9 arguments
+ % are by far more frequent than macro with 10 or more arguments, defining
+ % twice the \macarg.BLAH macros does not cost too much processing power.
+ \ifnum\paramno<10\relax\else
+ \paramno0\relax
+ \parsemmanyargdef@@#1,;,% 10 or more arguments
+ \fi
+}
\def\parsemargdefxxx#1,{%
\if#1;\let\next=\relax
\else \let\next=\parsemargdefxxx
- \advance\paramno by 1%
+ \advance\paramno by 1
\expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
{\xeatspaces{\hash\the\paramno}}%
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+\def\parsemmanyargdef@@#1,{%
+ \if#1;\let\next=\relax
+ \else
+ \let\next=\parsemmanyargdef@@
+ \edef\tempb{\eatspaces{#1}}%
+ \expandafter\def\expandafter\tempa
+ \expandafter{\csname macarg.\tempb\endcsname}%
+ % Note that we need some extra \noexpand\noexpand, this is because we
+ % don't want \the to be expanded in the \parsermacbody as it uses an
+ % \xdef .
+ \expandafter\edef\tempa
+ {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
+ \advance\paramno by 1\relax
+ \fi\next}
+
% These two commands read recursive and nonrecursive macro bodies.
% (They're different since rec and nonrec macros end differently.)
+%
+\catcode `\@\texiatcatcode
\long\def\parsemacbody#1@end macro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
\long\def\parsermacbody#1@end rmacro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\catcode `\@=11\relax
+
+\let\endargs@\relax
+\let\nil@\relax
+\def\nilm@{\nil@}%
+\long\def\nillm@{\nil@}%
+
+% This macro is expanded during the Texinfo macro expansion, not during its
+% definition. It gets all the arguments values and assigns them to macros
+% macarg.ARGNAME
+%
+% #1 is the macro name
+% #2 is the list of argument names
+% #3 is the list of argument values
+\def\getargvals@#1#2#3{%
+ \def\macargdeflist@{}%
+ \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
+ \def\paramlist{#2,\nil@}%
+ \def\macroname{#1}%
+ \begingroup
+ \macroargctxt
+ \def\argvaluelist{#3,\nil@}%
+ \def\@tempa{#3}%
+ \ifx\@tempa\empty
+ \setemptyargvalues@
+ \else
+ \getargvals@@
+ \fi
+}
+
+%
+\def\getargvals@@{%
+ \ifx\paramlist\nilm@
+ % Some sanity check needed here that \argvaluelist is also empty.
+ \ifx\argvaluelist\nillm@
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Too many arguments in macro `\macroname'!}%
+ \fi
+ \let\next\macargexpandinbody@
+ \else
+ \ifx\argvaluelist\nillm@
+ % No more arguments values passed to macro. Set remaining named-arg
+ % macros to empty.
+ \let\next\setemptyargvalues@
+ \else
+ % pop current arg name into \@tempb
+ \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\paramlist}%
+ % pop current argument value into \@tempc
+ \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\argvaluelist}%
+ % Here \@tempb is the current arg name and \@tempc is the current arg value.
+ % First place the new argument macro definition into \@tempd
+ \expandafter\macname\expandafter{\@tempc}%
+ \expandafter\let\csname macarg.\@tempb\endcsname\relax
+ \expandafter\def\expandafter\@tempe\expandafter{%
+ \csname macarg.\@tempb\endcsname}%
+ \edef\@tempd{\long\def\@tempe{\the\macname}}%
+ \push@\@tempd\macargdeflist@
+ \let\next\getargvals@@
+ \fi
+ \fi
+ \next
+}
+
+\def\push@#1#2{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter#1#2}%
+}
+
+% Replace arguments by their values in the macro body, and place the result
+% in macro \@tempa
+\def\macvalstoargs@{%
+ % To do this we use the property that token registers that are \the'ed
+ % within an \edef expand only once. So we are going to place all argument
+ % values into respective token registers.
+ %
+ % First we save the token context, and initialize argument numbering.
+ \begingroup
+ \paramno0\relax
+ % Then, for each argument number #N, we place the corresponding argument
+ % value into a new token list register \toks#N
+ \expandafter\putargsintokens@\saveparamlist@,;,%
+ % Then, we expand the body so that argument are replaced by their
+ % values. The trick for values not to be expanded themselves is that they
+ % are within tokens and that tokens expand only once in an \edef .
+ \edef\@tempc{\csname mac.\macroname .body\endcsname}%
+ % Now we restore the token stack pointer to free the token list registers
+ % which we have used, but we make sure that expanded body is saved after
+ % group.
+ \expandafter
+ \endgroup
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+ }
+
+\def\macargexpandinbody@{%
+ %% Define the named-macro outside of this group and then close this group.
+ \expandafter
+ \endgroup
+ \macargdeflist@
+ % First the replace in body the macro arguments by their values, the result
+ % is in \@tempa .
+ \macvalstoargs@
+ % Then we point at the \norecurse or \gobble (for recursive) macro value
+ % with \@tempb .
+ \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
+ % Depending on whether it is recursive or not, we need some tailing
+ % \egroup .
+ \ifx\@tempb\gobble
+ \let\@tempc\relax
+ \else
+ \let\@tempc\egroup
+ \fi
+ % And now we do the real job:
+ \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
+ \@tempd
+}
+
+\def\putargsintokens@#1,{%
+ \if#1;\let\next\relax
+ \else
+ \let\next\putargsintokens@
+ % First we allocate the new token list register, and give it a temporary
+ % alias \@tempb .
+ \toksdef\@tempb\the\paramno
+ % Then we place the argument value into that token list register.
+ \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
+ \expandafter\@tempb\expandafter{\@tempa}%
+ \advance\paramno by 1\relax
+ \fi
+ \next
+}
+
+% Save the token stack pointer into macro #1
+\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
+% Restore the token stack pointer from number in macro #1
+\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
+% newtoks that can be used non \outer .
+\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
+
+% Tailing missing arguments are set to empty
+\def\setemptyargvalues@{%
+ \ifx\paramlist\nilm@
+ \let\next\macargexpandinbody@
+ \else
+ \expandafter\setemptyargvaluesparser@\paramlist\endargs@
+ \let\next\setemptyargvalues@
+ \fi
+ \next
+}
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
+\def\setemptyargvaluesparser@#1,#2\endargs@{%
+ \expandafter\def\expandafter\@tempa\expandafter{%
+ \expandafter\def\csname macarg.#1\endcsname{}}%
+ \push@\@tempa\macargdeflist@
+ \def\paramlist{#2}%
+}
+
+% #1 is the element target macro
+% #2 is the list macro
+% #3,#4\endargs@ is the list value
+\def\pop@#1#2#3,#4\endargs@{%
+ \def#1{#3}%
+ \def#2{#4}%
+}
+\long\def\longpop@#1#2#3,#4\endargs@{%
+ \long\def#1{#3}%
+ \long\def#2{#4}%
+}
+
+% This defines a Texinfo @macro. There are eight cases: recursive and
+% nonrecursive macros of zero, one, up to nine, and many arguments.
% Much magic with \expandafter here.
% \xdef is used so that macro definitions will survive the file
% they're defined in; @include reads the file inside a group.
+%
\def\defmacro{%
\let\hash=##% convert placeholders to macro parameter chars
\ifrecursive
@@ -7004,17 +7750,25 @@ end
\expandafter\noexpand\csname\the\macname xxx\endcsname}%
\expandafter\xdef\csname\the\macname xxx\endcsname##1{%
\egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else
+ \ifnum\paramno<10\relax % at most 9
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else % 10 or more
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
+ \fi
\fi
\else
\ifcase\paramno
@@ -7031,29 +7785,40 @@ end
\egroup
\noexpand\norecurse{\the\macname}%
\noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \else % at most 9
+ \ifnum\paramno<10\relax
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % 10 or more:
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
+ \fi
\fi
\fi}
+\catcode `\@\texiatcatcode\relax
+
\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
% \braceorline decides whether the next nonwhitespace character is a
% {. If so it reads up to the closing }, if not, it reads the whole
% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
+% as an argument (by \parsebrace or \parsearg).
+%
\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
\def\braceorlinexxx{%
\ifx\nchar\bgroup\else
@@ -7063,7 +7828,8 @@ end
% @alias.
% We need some trickery to remove the optional spaces around the equal
-% sign. Just make them active and then expand them all to nothing.
+% sign. Make them active and then expand them all to nothing.
+%
\def\alias{\parseargusing\obeyspaces\aliasxxx}
\def\aliasxxx #1{\aliasyyy#1\relax}
\def\aliasyyy #1=#2\relax{%
@@ -7084,7 +7850,8 @@ end
% @inforef is relatively simple.
\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+\def\inforefzzz #1,#2,#3,#4**{%
+ \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
% @node's only job in TeX is to define \lastnode, which is used in
@@ -7145,11 +7912,32 @@ end
\toks0 = \expandafter{\lastsection}%
\immediate \writexrdef{title}{\the\toks0 }%
\immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
- \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
+ \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
}%
\fi
}
+% @xrefautosectiontitle on|off says whether @section(ing) names are used
+% automatically in xrefs, if the third arg is not explicitly specified.
+% This was provided as a "secret" @set xref-automatic-section-title
+% variable, now it's official.
+%
+\parseargdef\xrefautomaticsectiontitle{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @xrefautomaticsectiontitle value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+%
% @xref, @pxref, and @ref generate cross-references. 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
@@ -7158,26 +7946,41 @@ end
\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
\def\ref#1{\xrefX[#1,,,,,,,]}
+%
+\newbox\toprefbox
+\newbox\printedrefnamebox
+\newbox\infofilenamebox
+\newbox\printedmanualbox
+%
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
- \def\printedmanual{\ignorespaces #5}%
+ %
+ % Get args without leading/trailing spaces.
\def\printedrefname{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual\unskip}%
- \setbox0=\hbox{\printedrefname\unskip}%
- \ifdim \wd0 = 0pt
+ \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
+ %
+ \def\infofilename{\ignorespaces #4}%
+ \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
+ %
+ \def\printedmanual{\ignorespaces #5}%
+ \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
+ %
+ % If the printed reference name (arg #3) was not explicitly given in
+ % the @xref, figure out what we want to use.
+ \ifdim \wd\printedrefnamebox = 0pt
% No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
+ % Not auto section-title: use node name inside the square brackets.
\def\printedrefname{\ignorespaces #1}%
\else
- % 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.
+ % Auto section-title: use chapter/section title inside
+ % the square brackets if we have it.
+ \ifdim \wd\printedmanualbox > 0pt
+ % It is in another manual, so we don't have it; use node name.
\def\printedrefname{\ignorespaces #1}%
\else
\ifhavexrefs
- % We know the real title if we have the xref values.
+ % We (should) know the real title if we have the xref values.
\def\printedrefname{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
@@ -7191,13 +7994,20 @@ end
\ifpdf
{\indexnofonts
\turnoffactive
+ \makevalueexpandable
% This expands tokens, so do it after making catcode changes, so _
- % etc. don't get their TeX definitions.
+ % etc. don't get their TeX definitions. This ignores all spaces in
+ % #4, including (wrongly) those in the middle of the filename.
\getfilename{#4}%
%
- % See comments at \activebackslashdouble.
- {\activebackslashdouble \xdef\pdfxrefdest{#1}%
- \backslashparens\pdfxrefdest}%
+ % This (wrongly) does not take account of leading or trailing
+ % spaces in #1, which should be ignored.
+ \edef\pdfxrefdest{#1}%
+ \ifx\pdfxrefdest\empty
+ \def\pdfxrefdest{Top}% no empty targets
+ \else
+ \txiescapepdf\pdfxrefdest % escape PDF special chars
+ \fi
%
\leavevmode
\startlink attr{/Border [0 0 0]}%
@@ -7224,29 +8034,42 @@ end
\iffloat\Xthisreftitle
% If the user specified the print name (third arg) to the ref,
% print it instead of our usual "Figure 1.2".
- \ifdim\wd0 = 0pt
+ \ifdim\wd\printedrefnamebox = 0pt
\refx{#1-snt}{}%
\else
\printedrefname
\fi
%
- % if the user also gave the printed manual name (fifth arg), append
+ % If the user also gave the printed manual name (fifth arg), append
% "in MANUALNAME".
- \ifdim \wd1 > 0pt
+ \ifdim \wd\printedmanualbox > 0pt
\space \putwordin{} \cite{\printedmanual}%
\fi
\else
% node/anchor (non-float) references.
+ %
+ % If we use \unhbox 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 \wd\printedmanualbox > 0pt
+ % Cross-manual reference with a printed manual name.
+ %
+ \crossmanualxref{\cite{\printedmanual\unskip}}%
+ %
+ \else\ifdim \wd\infofilenamebox > 0pt
+ % Cross-manual reference with only an info filename (arg 4), no
+ % printed manual name (arg 5). This is essentially the same as
+ % the case above; we output the filename, since we have nothing else.
+ %
+ \crossmanualxref{\code{\infofilename\unskip}}%
%
- % 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{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
\else
+ % Reference within this manual.
+ %
% _ (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
@@ -7258,7 +8081,7 @@ end
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
\ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
}%
- % output the `[mynode]' via a macro so it can be overridden.
+ % output the `[mynode]' via the macro below so it can be overridden.
\xrefprintnodename\printedrefname
%
% But we always want a comma and a space:
@@ -7266,11 +8089,37 @@ end
%
% output the `page 3'.
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
+ \fi\fi
\fi
\endlink
\endgroup}
+% Output a cross-manual xref to #1. Used just above (twice).
+%
+% Only include the text "Section ``foo'' in" if the foo is neither
+% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
+% "see The Foo Manual", the idea being to refer to the whole manual.
+%
+% But, this being TeX, we can't easily compare our node name against the
+% string "Top" while ignoring the possible spaces before and after in
+% the input. By adding the arbitrary 7sp below, we make it much less
+% likely that a real node name would have the same width as "Top" (e.g.,
+% in a monospaced font). Hopefully it will never happen in practice.
+%
+% For the same basic reason, we retypeset the "Top" at every
+% reference, since the current font is indeterminate.
+%
+\def\crossmanualxref#1{%
+ \setbox\toprefbox = \hbox{Top\kern7sp}%
+ \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+ \ifdim \wd2 > 7sp % nonempty?
+ \ifdim \wd2 = \wd\toprefbox \else % same as Top?
+ \putwordSection{} ``\printedrefname'' \putwordin{}\space
+ \fi
+ \fi
+ #1%
+}
+
% This macro is called from \xrefX for the `[nodename]' part of xref
% output. It's a separate macro only so it can be changed more easily,
% since square brackets don't work well in some documents. Particularly
@@ -7321,7 +8170,8 @@ end
\angleleft un\-de\-fined\angleright
\iflinks
\ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
+ {\toks0 = {#1}% avoid expansion of possibly-complex value
+ \message{\linenumber Undefined cross reference `\the\toks0'.}}%
\else
\ifwarnedxrefs\else
\global\warnedxrefstrue
@@ -7485,7 +8335,7 @@ end
% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
-% @footnotestyle is meaningful for info output only.
+% @footnotestyle is meaningful for Info output only.
\let\footnotestyle=\comment
{\catcode `\@=11
@@ -7548,6 +8398,8 @@ end
% expands into a box, it must come within the paragraph, lest it
% provide a place where TeX can split the footnote.
\footstrut
+ %
+ % Invoke rest of plain TeX footnote routine.
\futurelet\next\fo@t
}
}%end \catcode `\@=11
@@ -7635,7 +8487,7 @@ end
it from ftp://tug.org/tex/epsf.tex.}
%
\def\image#1{%
- \ifx\epsfbox\undefined
+ \ifx\epsfbox\thisisundefined
\ifwarnednoepsf \else
\errhelp = \noepsfhelp
\errmessage{epsf.tex not found, images will be ignored}%
@@ -7651,7 +8503,7 @@ end
% #2 is (optional) width, #3 is (optional) height.
% #4 is (ignored optional) html alt text.
% #5 is (ignored optional) extension.
-% #6 is just the usual extra ignored arg for parsing this stuff.
+% #6 is just the usual extra ignored arg for parsing stuff.
\newif\ifimagevmode
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
\catcode`\^^M = 5 % in case we're inside an example
@@ -7659,6 +8511,13 @@ end
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
+ \else \ifx\centersub\centerV
+ % for @center @image, we need a vbox so we can have our vertical space
+ \imagevmodetrue
+ \vbox\bgroup % vbox has better behavior than vtop herev
+ \fi\fi
+ %
+ \ifimagevmode
\nobreak\medskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
@@ -7668,9 +8527,13 @@ end
\fi
%
% Leave vertical mode so that indentation from an enclosing
- % environment such as @quotation is respected. On the other hand, if
- % it's at the top level, we don't want the normal paragraph indentation.
- \noindent
+ % environment such as @quotation is respected.
+ % However, if we're at the top level, we don't want the
+ % normal paragraph indentation.
+ % On the other hand, if we are in the case of @center @image, we don't
+ % want to start a paragraph, which will create a hsize-width box and
+ % eradicate the centering.
+ \ifx\centersub\centerV\else \noindent \fi
%
% Output the image.
\ifpdf
@@ -7682,7 +8545,10 @@ end
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \medskip \fi % space after the standalone image
+ \ifimagevmode
+ \medskip % space after a standalone image
+ \fi
+ \ifx\centersub\centerV \egroup \fi
\endgroup}
@@ -7975,21 +8841,22 @@ end
\closein 1
\endgroup % end raw TeX
\endgroup}
-}
%
% If they passed de_DE, and txi-de_DE.tex doesn't exist,
% try txi-de.tex.
-%
-\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
+%
+\gdef\documentlanguagetrywithoutunderscore#1_#2\finish{%
\openin 1 txi-#1.tex
\ifeof 1
\errhelp = \nolanghelp
\errmessage{Cannot read language file txi-#1.tex}%
\else
+ \globaldefs = 1 % everything in the txi-LL files needs to persist
\input txi-#1.tex
\fi
\closein 1
}
+}% end of special _ catcode
%
\newhelp\nolanghelp{The given language definition file cannot be found or
is empty. Maybe you need to install it? Putting it in the current
@@ -7998,16 +8865,16 @@ directory should work if nowhere else does.}
% This macro is called from txi-??.tex files; the first argument is the
% \language name to set (without the "\lang@" prefix), the second and
% third args are \{left,right}hyphenmin.
-%
+%
% The language names to pass are determined when the format is built.
% See the etex.log file created at that time, e.g.,
% /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log.
-%
+%
% With TeX Live 2008, etex now includes hyphenation patterns for all
% available languages. This means we can support hyphenation in
% Texinfo, at least to some extent. (This still doesn't solve the
% accented characters problem.)
-%
+%
\catcode`@=11
\def\txisetlanguage#1#2#3{%
% do not set the language if the name is undefined in the current TeX.
@@ -8062,7 +8929,7 @@ directory should work if nowhere else does.}
\setnonasciicharscatcode\active
\lattwochardefs
%
- \else \ifx \declaredencoding \latone
+ \else \ifx \declaredencoding \latone
\setnonasciicharscatcode\active
\latonechardefs
%
@@ -8074,7 +8941,7 @@ directory should work if nowhere else does.}
\setnonasciicharscatcode\active
\utfeightchardefs
%
- \else
+ \else
\message{Unknown document encoding #1, ignoring.}%
%
\fi % utfeight
@@ -8086,7 +8953,7 @@ directory should work if nowhere else does.}
% A message to be logged when using a character that isn't available
% the default font encoding (OT1).
-%
+%
\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
% Take account of \c (plain) vs. \, (Texinfo) difference.
@@ -8099,21 +8966,21 @@ directory should work if nowhere else does.}
%
% Latin1 (ISO-8859-1) character definitions.
\def\latonechardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\exclamdown}
- \gdef^^a2{\missingcharmsg{CENT SIGN}}
+ \gdef^^a2{\missingcharmsg{CENT SIGN}}
\gdef^^a3{{\pounds}}
\gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
\gdef^^a5{\missingcharmsg{YEN SIGN}}
- \gdef^^a6{\missingcharmsg{BROKEN BAR}}
+ \gdef^^a6{\missingcharmsg{BROKEN BAR}}
\gdef^^a7{\S}
- \gdef^^a8{\"{}}
- \gdef^^a9{\copyright}
+ \gdef^^a8{\"{}}
+ \gdef^^a9{\copyright}
\gdef^^aa{\ordf}
\gdef^^ab{\guillemetleft}
\gdef^^ac{$\lnot$}
- \gdef^^ad{\-}
- \gdef^^ae{\registeredsymbol}
+ \gdef^^ad{\-}
+ \gdef^^ae{\registeredsymbol}
\gdef^^af{\={}}
%
\gdef^^b0{\textdegree}
@@ -8129,7 +8996,7 @@ directory should work if nowhere else does.}
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
%
- \gdef^^bb{\guilletright}
+ \gdef^^bb{\guillemetright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
\gdef^^be{$3\over4$}
@@ -8140,7 +9007,7 @@ directory should work if nowhere else does.}
\gdef^^c2{\^A}
\gdef^^c3{\~A}
\gdef^^c4{\"A}
- \gdef^^c5{\ringaccent A}
+ \gdef^^c5{\ringaccent A}
\gdef^^c6{\AE}
\gdef^^c7{\cedilla C}
\gdef^^c8{\`E}
@@ -8152,7 +9019,7 @@ directory should work if nowhere else does.}
\gdef^^ce{\^I}
\gdef^^cf{\"I}
%
- \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+ \gdef^^d0{\DH}
\gdef^^d1{\~N}
\gdef^^d2{\`O}
\gdef^^d3{\'O}
@@ -8166,7 +9033,7 @@ directory should work if nowhere else does.}
\gdef^^db{\^U}
\gdef^^dc{\"U}
\gdef^^dd{\'Y}
- \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+ \gdef^^de{\TH}
\gdef^^df{\ss}
%
\gdef^^e0{\`a}
@@ -8186,7 +9053,7 @@ directory should work if nowhere else does.}
\gdef^^ee{\^{\dotless i}}
\gdef^^ef{\"{\dotless i}}
%
- \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+ \gdef^^f0{\dh}
\gdef^^f1{\~n}
\gdef^^f2{\`o}
\gdef^^f3{\'o}
@@ -8200,7 +9067,7 @@ directory should work if nowhere else does.}
\gdef^^fb{\^u}
\gdef^^fc{\"u}
\gdef^^fd{\'y}
- \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+ \gdef^^fe{\th}
\gdef^^ff{\"y}
}
@@ -8221,7 +9088,7 @@ directory should work if nowhere else does.}
% Latin2 (ISO-8859-2) character definitions.
\def\lattwochardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\ogonek{A}}
\gdef^^a2{\u{}}
\gdef^^a3{\L}
@@ -8272,7 +9139,7 @@ directory should work if nowhere else does.}
\gdef^^ce{\^I}
\gdef^^cf{\v D}
%
- \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+ \gdef^^d0{\DH}
\gdef^^d1{\'N}
\gdef^^d2{\v N}
\gdef^^d3{\'O}
@@ -8281,7 +9148,7 @@ directory should work if nowhere else does.}
\gdef^^d6{\"O}
\gdef^^d7{$\times$}
\gdef^^d8{\v R}
- \gdef^^d9{\ringaccent U}
+ \gdef^^d9{\ringaccent U}
\gdef^^da{\'U}
\gdef^^db{\H U}
\gdef^^dc{\"U}
@@ -8302,11 +9169,11 @@ directory should work if nowhere else does.}
\gdef^^ea{\ogonek{e}}
\gdef^^eb{\"e}
\gdef^^ec{\v e}
- \gdef^^ed{\'\i}
- \gdef^^ee{\^\i}
+ \gdef^^ed{\'{\dotless{i}}}
+ \gdef^^ee{\^{\dotless{i}}}
\gdef^^ef{\v d}
%
- \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+ \gdef^^f0{\dh}
\gdef^^f1{\'n}
\gdef^^f2{\v n}
\gdef^^f3{\'o}
@@ -8325,11 +9192,11 @@ directory should work if nowhere else does.}
}
% UTF-8 character definitions.
-%
+%
% This code to support UTF-8 is based on LaTeX's utf8.def, with some
% changes for Texinfo conventions. It is included here under the GPL by
% permission from Frank Mittelbach and the LaTeX team.
-%
+%
\newcount\countUTFx
\newcount\countUTFy
\newcount\countUTFz
@@ -8394,7 +9261,7 @@ directory should work if nowhere else does.}
\gdef\DeclareUnicodeCharacter#1#2{%
\countUTFz = "#1\relax
- \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+ %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
\begingroup
\parseXMLCharref
\def\UTFviiiTwoOctets##1##2{%
@@ -8479,6 +9346,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00CE}{\^I}
\DeclareUnicodeCharacter{00CF}{\"I}
+ \DeclareUnicodeCharacter{00D0}{\DH}
\DeclareUnicodeCharacter{00D1}{\~N}
\DeclareUnicodeCharacter{00D2}{\`O}
\DeclareUnicodeCharacter{00D3}{\'O}
@@ -8491,6 +9359,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00DB}{\^U}
\DeclareUnicodeCharacter{00DC}{\"U}
\DeclareUnicodeCharacter{00DD}{\'Y}
+ \DeclareUnicodeCharacter{00DE}{\TH}
\DeclareUnicodeCharacter{00DF}{\ss}
\DeclareUnicodeCharacter{00E0}{\`a}
@@ -8510,6 +9379,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
\DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+ \DeclareUnicodeCharacter{00F0}{\dh}
\DeclareUnicodeCharacter{00F1}{\~n}
\DeclareUnicodeCharacter{00F2}{\`o}
\DeclareUnicodeCharacter{00F3}{\'o}
@@ -8522,6 +9392,7 @@ directory should work if nowhere else does.}
\DeclareUnicodeCharacter{00FB}{\^u}
\DeclareUnicodeCharacter{00FC}{\"u}
\DeclareUnicodeCharacter{00FD}{\'y}
+ \DeclareUnicodeCharacter{00FE}{\th}
\DeclareUnicodeCharacter{00FF}{\"y}
\DeclareUnicodeCharacter{0100}{\=A}
@@ -8858,8 +9729,8 @@ directory should work if nowhere else does.}
% Prevent underfull vbox error messages.
\vbadness = 10000
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
+% Don't be very finicky about underfull hboxes, either.
+\hbadness = 6666
% Following George Bush, get rid of widows and orphans.
\widowpenalty=10000
@@ -9066,28 +9937,21 @@ directory should work if nowhere else does.}
\message{and turning on texinfo input format.}
+\def^^L{\par} % remove \outer, so ^L can appear in an @comment
+
% DEL is a comment character, in case @c does not suffice.
\catcode`\^^? = 14
% 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
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}%$ font-lock fix
+\catcode`\"=\other \def\normaldoublequote{"}
+\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix
+\catcode`\+=\other \def\normalplus{+}
+\catcode`\<=\other \def\normalless{<}
+\catcode`\>=\other \def\normalgreater{>}
+\catcode`\^=\other \def\normalcaret{^}
+\catcode`\_=\other \def\normalunderscore{_}
+\catcode`\|=\other \def\normalverticalbar{|}
+\catcode`\~=\other \def\normaltilde{~}
% This macro is used to make a character print one way in \tt
% (where it can probably be output as-is), and another way in other fonts,
@@ -9114,11 +9978,9 @@ directory should work if nowhere else does.}
\catcode`\"=\active
\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
+\catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde
\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
+\catcode`\^=\active \def\activehat{{\tt \hat}} \let^ = \activehat
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
@@ -9128,16 +9990,26 @@ directory should work if nowhere else does.}
\catcode`\|=\active
\def|{{\tt\char124}}
+
\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
+\catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless
\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+\catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr
+\catcode`\+=\active \def+{{\tt \char 43}}
+\catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% used for headline/footline in the output routine, in case the page
+% breaks in the middle of an @tex block.
+\def\texinfochars{%
+ \let< = \activeless
+ \let> = \activegtr
+ \let~ = \activetilde
+ \let^ = \activehat
+ \markupsetuplqdefault \markupsetuprqdefault
+ \let\b = \strong
+ \let\i = \smartitalic
+ % in principle, all other definitions in \tex have to be undone too.
+}
% 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.
@@ -9165,34 +10037,48 @@ directory should work if nowhere else does.}
% In texinfo, backslash is an active character; it prints the backslash
% in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
+\catcode`\\=\active % @ for escape char from now on.
+
+% The story here is that in math mode, the \char of \backslashcurfont
+% ends up printing the roman \ from the math symbol font (because \char
+% in math mode uses the \mathcode, and plain.tex sets
+% \mathcode`\\="026E). It seems better for @backslashchar{} to always
+% print a typewriter backslash, hence we use an explicit \mathchar,
+% which is the decimal equivalent of "715c (class 7, e.g., use \fam;
+% ignored family value; char position "5C). We can't use " for the
+% usual hex value because it has already been made active.
+@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
+
% On startup, @fixbackslash assigns:
% @let \ = @normalbackslash
-
% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
+% catcode other. We switch back and forth between these.
@gdef@rawbackslash{@let\=@backslashcurfont}
@gdef@otherbackslash{@let\=@realbackslash}
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-@def@normalturnoffactive{%
- @let\=@normalbackslash
- @let"=@normaldoublequote
- @let~=@normaltilde
- @let^=@normalcaret
- @let_=@normalunderscore
- @let|=@normalverticalbar
- @let<=@normalless
- @let>=@normalgreater
- @let+=@normalplus
- @let$=@normaldollar %$ font-lock fix
- @markupsetuplqdefault
- @markupsetuprqdefault
- @unsepspaces
+% the literal character `\'. Also revert - to its normal character, in
+% case the active - from code has slipped in.
+%
+{@catcode`- = @active
+ @gdef@normalturnoffactive{%
+ @let-=@normaldash
+ @let"=@normaldoublequote
+ @let$=@normaldollar %$ font-lock fix
+ @let+=@normalplus
+ @let<=@normalless
+ @let>=@normalgreater
+ @let\=@normalbackslash
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let~=@normaltilde
+ @markupsetuplqdefault
+ @markupsetuprqdefault
+ @unsepspaces
+ }
}
% Make _ and + \other characters, temporarily.
@@ -9221,10 +10107,19 @@ directory should work if nowhere else does.}
% Say @foo, not \foo, in error messages.
@escapechar = `@@
+% These (along with & and #) are made active for url-breaking, so need
+% active definitions as the normal characters.
+@def@normaldot{.}
+@def@normalquest{?}
+@def@normalslash{/}
+
% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
+% @hashchar{} gets its own user-level command, because of #line.
+@catcode`@& = @other @def@normalamp{&}
+@catcode`@# = @other @def@normalhash{#}
+@catcode`@% = @other @def@normalpercent{%}
+
+@let @hashchar = @normalhash
@c Finally, make ` and ' active, so that txicodequoteundirected and
@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
@@ -9234,7 +10129,7 @@ directory should work if nowhere else does.}
@catcode`@`=@active
@markupsetuplqdefault
@markupsetuprqdefault
-
+
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@c page-delimiter: "^\\\\message"
diff --git a/doc/version.texi b/doc/version.texi
index b6c492e0..5f71e558 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,10 +1,10 @@
@ignore
-Copyright (C) 1988-2011 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Tue Dec 28 13:41:22 EST 2010
+@set LASTCHANGE Sun Feb 2 16:22:00 EST 2014
-@set EDITION 4.2
-@set VERSION 4.2
-@set UPDATED 28 December 2010
-@set UPDATED-MONTH December 2010
+@set EDITION 4.3
+@set VERSION 4.3
+@set UPDATED 2 February 2014
+@set UPDATED-MONTH February 2014
diff --git a/error.c b/error.c
index 1eac01c4..64c4f411 100644
--- a/error.c
+++ b/error.c
@@ -340,6 +340,36 @@ parser_error (lineno, format, va_alist)
}
#ifdef DEBUG
+/* This assumes ASCII and is suitable only for debugging */
+char *
+strescape (str)
+ const char *str;
+{
+ char *r, *result;
+ unsigned char *s;
+
+ r = result = (char *)xmalloc (strlen (str) * 2 + 1);
+
+ for (s = (unsigned char *)str; s && *s; s++)
+ {
+ if (*s < ' ')
+ {
+ *r++ = '^';
+ *r++ = *s+64;
+ }
+ else if (*s == 127)
+ {
+ *r++ = '^';
+ *r++ = '?';
+ }
+ else
+ *r++ = *s;
+ }
+
+ *r = '\0';
+ return result;
+}
+
void
#if defined (PREFER_STDARG)
itrace (const char *format, ...)
diff --git a/error.h b/error.h
index e79ba3ee..4b17577e 100644
--- a/error.h
+++ b/error.h
@@ -51,6 +51,7 @@ extern void internal_error __P((const char *, ...)) __attribute__((__format__ (
extern void internal_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
/* Debugging functions, not enabled in released version. */
+extern char *strescape __P((const char *));
extern void itrace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2)));
extern void trace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2)));
@@ -59,7 +60,7 @@ extern void command_error __P((const char *, int, int, int));
extern char *command_errstr __P((int));
-/* Specific errror message functions that eventually call report_error or
+/* Specific error message functions that eventually call report_error or
internal_error. */
extern void err_badarraysub __P((const char *));
diff --git a/eval.c b/eval.c
index 9011e0bf..1f65aaca 100644
--- a/eval.c
+++ b/eval.c
@@ -1,6 +1,6 @@
/* eval.c -- reading and evaluating commands. */
-/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -54,6 +54,10 @@ extern int need_here_doc;
extern int current_command_number, current_command_line_count, line_number;
extern int expand_aliases;
+#if defined (HAVE_POSIX_SIGNALS)
+extern sigset_t top_level_mask;
+#endif
+
static void send_pwd_to_eterm __P((void));
static sighandler alrm_catcher __P((int));
@@ -75,12 +79,13 @@ reader_loop ()
{
int code;
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
#if defined (PROCESS_SUBSTITUTION)
unlink_fifo_list ();
#endif /* PROCESS_SUBSTITUTION */
+ /* XXX - why do we set this every time through the loop? */
if (interactive_shell && signal_is_ignored (SIGINT) == 0)
set_signal_handler (SIGINT, sigint_sighandler);
@@ -90,7 +95,7 @@ reader_loop ()
switch (code)
{
- /* Some kind of throw to top_level has occured. */
+ /* Some kind of throw to top_level has occurred. */
case FORCE_EOF:
case ERREXIT:
case EXITPROG:
@@ -118,6 +123,9 @@ reader_loop ()
dispose_command (current_command);
current_command = (COMMAND *)NULL;
}
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL);
+#endif
break;
default:
@@ -190,12 +198,14 @@ alrm_catcher(i)
static void
send_pwd_to_eterm ()
{
- char *pwd;
+ char *pwd, *f;
+ f = 0;
pwd = get_string_value ("PWD");
if (pwd == 0)
- pwd = get_working_directory ("eterm");
+ f = pwd = get_working_directory ("eterm");
fprintf (stderr, "\032/%s\n", pwd);
+ free (f);
}
/* Call the YACC-generated parser and return the status of the parse.
diff --git a/examples/INDEX.html b/examples/INDEX.html
index 5e8cdc69..bd06b256 100644
--- a/examples/INDEX.html
+++ b/examples/INDEX.html
@@ -143,7 +143,7 @@
</tr>
<tr>
<td>./functions/keep</td>
- <td>Try to keep some programs in the forground and running.</td>
+ <td>Try to keep some programs in the foreground and running.</td>
</tr>
<tr>
<td>./functions/ksh-cd</td>
@@ -642,6 +642,10 @@
<td>csh</td>
</tr>
<tr>
+ <td>./scripts/bash-hexdump.sh</td>
+ <td>hexdump(1) in bash</td>
+ <td>hexdump -C, hd</td>
+ <tr>
<td>./scripts/cat.sh</td>
<td>Readline-based pager.</td>
<td>cat, readline pager</td>
diff --git a/examples/INDEX.txt b/examples/INDEX.txt
index db2858fd..4b5478ee 100644
--- a/examples/INDEX.txt
+++ b/examples/INDEX.txt
@@ -32,7 +32,7 @@ Path Description X-Ref
./functions/isvalidip Test user input for valid IP Addresses.
./functions/jdate.bash Julian date conversion.
./functions/jj.bash Look for running jobs.
-./functions/keep Try to keep some programs in the forground and running.
+./functions/keep Try to keep some programs in the foreground and running.
./functions/ksh-cd ksh-like 'cd': cd [-LP] [dir [change]]. ksh
./functions/ksh-compat-test ksh-like arithmetic test replacements. ksh
./functions/kshenv Functions and aliases to provide the beginnings of a ksh environment for bash. ksh
@@ -151,6 +151,7 @@ Path Description X-Ref
./scripts Example scripts
./scripts/adventure.sh Text adventure game in bash!
+./scripts/bash-hexdump.sh hexdump(1) in bash
./scripts/bcsh.sh Bourne shell cshell-emulator. csh
./scripts/cat.sh Readline-based pager. cat, readline pager
./scripts/center Center - center a group of lines.
diff --git a/examples/complete/cdfunc b/examples/complete/cdfunc
new file mode 100644
index 00000000..439edaf8
--- /dev/null
+++ b/examples/complete/cdfunc
@@ -0,0 +1,76 @@
+# cdfunc - example completion function for cd
+#
+# based on the cd completion function from the bash_completion package
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2011 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
+_comp_cd()
+{
+ local IFS=$' \t\n' # normalize IFS
+ local cur _skipdot _cdpath
+ local i j k
+
+ # Tilde expansion, with side effect of expanding tilde to full pathname
+ case "$2" in
+ \~*) eval cur="$2" ;;
+ *) cur=$2 ;;
+ esac
+
+ # no cdpath or absolute pathname -- straight directory completion
+ if [[ -z "${CDPATH:-}" ]] || [[ "$cur" == @(./*|../*|/*) ]]; then
+ # compgen prints paths one per line; could also use while loop
+ IFS=$'\n'
+ COMPREPLY=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ # CDPATH+directories in the current directory if not in CDPATH
+ else
+ IFS=$'\n'
+ _skipdot=false
+ # preprocess CDPATH to convert null directory names to .
+ _cdpath=${CDPATH/#:/.:}
+ _cdpath=${_cdpath//::/:.:}
+ _cdpath=${_cdpath/%:/:.}
+ for i in ${_cdpath//:/$'\n'}; do
+ if [[ $i -ef . ]]; then _skipdot=true; fi
+ k="${#COMPREPLY[@]}"
+ for j in $( compgen -d -- "$i/$cur" ); do
+ COMPREPLY[k++]=${j#$i/} # cut off directory
+ done
+ done
+ $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ fi
+
+ # variable names if appropriate shell option set and no completions
+ if shopt -q cdable_vars && [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+ COMPREPLY=( $(compgen -v -- "$cur") )
+ fi
+
+ # append slash to passed directory name that is the only completion.
+ # readline will not do this if we complete from CDPATH
+ if [[ ${#COMPREPLY[@]} -eq 1 ]]; then
+ i=${COMPREPLY[0]} # shorthand
+ if [[ "$cur" == "$i" ]] && [[ "$i" != "*/" ]]; then
+ COMPREPLY[0]+=/
+ fi
+ fi
+ return 0
+}
+
+complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
diff --git a/examples/complete/complete-examples b/examples/complete/complete-examples
index baa97e39..8a0746d5 100644
--- a/examples/complete/complete-examples
+++ b/examples/complete/complete-examples
@@ -1,6 +1,23 @@
#
# Completion examples
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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 encapsulates the default bash completion code
diff --git a/examples/functions/array-stuff b/examples/functions/array-stuff
index 97ed5123..e6316c76 100644
--- a/examples/functions/array-stuff
+++ b/examples/functions/array-stuff
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1999 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
# usage: reverse arrayname
reverse()
{
diff --git a/examples/functions/fstty b/examples/functions/fstty
index a770d841..5ed594f0 100644
--- a/examples/functions/fstty
+++ b/examples/functions/fstty
@@ -2,6 +2,24 @@
# A function that works as a front end for both stty and the `bind'
# builtin, so the tty driver and readline see the same changes
#
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2011 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
#
# Convert between the stty ^H control character form and the readline \C-H
diff --git a/examples/functions/func b/examples/functions/func
index 710f6433..e7696f71 100644
--- a/examples/functions/func
+++ b/examples/functions/func
@@ -3,8 +3,24 @@
#
# usage: func name [name ...]
#
-# Chet Ramey
-# chet@ins.CWRU.Edu
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1991 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
func()
{
local status=0
diff --git a/examples/functions/inetaddr b/examples/functions/inetaddr
index f3e228f5..9e726139 100644
--- a/examples/functions/inetaddr
+++ b/examples/functions/inetaddr
@@ -1,4 +1,23 @@
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
+#
# inet2hex - Internet address conversion, dotted-decimal to hex
#
inet2hex ()
diff --git a/examples/functions/isnum2 b/examples/functions/isnum2
index e2e7a5f5..583e3749 100644
--- a/examples/functions/isnum2
+++ b/examples/functions/isnum2
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1998 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
isnum2()
{
case "$1" in
diff --git a/examples/functions/ksh-cd b/examples/functions/ksh-cd
index 801a4909..26b00a99 100644
--- a/examples/functions/ksh-cd
+++ b/examples/functions/ksh-cd
@@ -1,4 +1,23 @@
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2001 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
+#
# ksh-like `cd': cd [-LP] [dir [change]]
#
cd()
diff --git a/examples/functions/ksh-compat-test b/examples/functions/ksh-compat-test
index feee965d..919d82bc 100644
--- a/examples/functions/ksh-compat-test
+++ b/examples/functions/ksh-compat-test
@@ -1,4 +1,22 @@
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1999 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+#
# replacements for test/[ that do arithmetic expansion on the operands to
# the arithmetic operators, like ksh.
#
diff --git a/examples/functions/kshenv b/examples/functions/kshenv
index 7594f2d3..9faba08c 100644
--- a/examples/functions/kshenv
+++ b/examples/functions/kshenv
@@ -5,6 +5,24 @@
# Chet Ramey
# chet@ins.CWRU.Edu
#
+
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
#
# These are definitions for the ksh compiled-in `exported aliases'. There
# are others, but we already have substitutes for them: "history", "type",
diff --git a/examples/functions/notify.bash b/examples/functions/notify.bash
index dafbac5a..ed4377ce 100644
--- a/examples/functions/notify.bash
+++ b/examples/functions/notify.bash
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1992 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
trap _notify CHLD
NOTIFY_ALL=false
unset NOTIFY_LIST
diff --git a/examples/functions/seq b/examples/functions/seq
index 87c8a2c4..c1953eec 100644
--- a/examples/functions/seq
+++ b/examples/functions/seq
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1995 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
# Generate a sequence from m to n, m defaults to 1.
seq ()
diff --git a/examples/functions/seq2 b/examples/functions/seq2
index c3ad95c4..4a544988 100644
--- a/examples/functions/seq2
+++ b/examples/functions/seq2
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1998 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
# Generate a sequence from m to n, m defaults to 1.
seq ()
diff --git a/examples/functions/sort-pos-params b/examples/functions/sort-pos-params
index 0052b466..3fbf7dba 100644
--- a/examples/functions/sort-pos-params
+++ b/examples/functions/sort-pos-params
@@ -1,3 +1,22 @@
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2001 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
# Sort the positional paramters.
# Make sure the positional parameters are passed as arguments to the function.
# If -u is the first arg, remove duplicate array members.
diff --git a/examples/functions/substr b/examples/functions/substr
index a80b3b46..f19f5d7e 100644
--- a/examples/functions/substr
+++ b/examples/functions/substr
@@ -1,4 +1,22 @@
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+#
# substr -- a function to emulate the ancient ksh builtin
#
diff --git a/examples/functions/substr2 b/examples/functions/substr2
index 2bb8d363..fc21b986 100644
--- a/examples/functions/substr2
+++ b/examples/functions/substr2
@@ -1,4 +1,22 @@
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+#
# substr -- a function to emulate the ancient ksh builtin
#
@@ -29,7 +47,7 @@ substr()
done
if [ "$OPTIND" -gt 1 ] ; then
- shift $[ $OPTIND -1 ]
+ shift $(( $OPTIND -1 ))
fi
if [ "$#" -eq 0 ] || [ "$#" -gt 2 ] ; then
diff --git a/examples/functions/whatis b/examples/functions/whatis
index 56c5a580..570c5854 100644
--- a/examples/functions/whatis
+++ b/examples/functions/whatis
@@ -9,6 +9,25 @@
# case, the value is printed in a form which would yield the same value
# if typed as input to the shell itself.
#
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1994 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
whatis()
{
diff --git a/examples/functions/whence b/examples/functions/whence
index 70b2322a..ba27b00d 100644
--- a/examples/functions/whence
+++ b/examples/functions/whence
@@ -8,6 +8,25 @@
# Chet Ramey
# chet@ins.CWRU.Edu
#
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1994 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
whence()
{
local vflag= path=
diff --git a/examples/functions/which b/examples/functions/which
index ca33703e..f0db290c 100644
--- a/examples/functions/which
+++ b/examples/functions/which
@@ -3,6 +3,24 @@
#
# usage: which [-as] command [command...]
#
+#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1999 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
which()
{
diff --git a/examples/loadables/Makefile.in b/examples/loadables/Makefile.in
index 343beb02..99549bf3 100644
--- a/examples/loadables/Makefile.in
+++ b/examples/loadables/Makefile.in
@@ -85,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 mypid
+ uname sync push ln unlink realpath strftime mypid
OTHERPROG = necho hello cat
all: $(SHOBJ_STATUS)
@@ -110,9 +110,6 @@ print: print.o
necho: necho.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ necho.o $(SHOBJ_LIBS)
-getconf: getconf.o
- $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ getconf.o $(SHOBJ_LIBS)
-
hello: hello.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ hello.o $(SHOBJ_LIBS)
@@ -179,9 +176,6 @@ ln: ln.o
unlink: unlink.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ unlink.o $(SHOBJ_LIBS)
-cut: cut.o
- $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cut.o $(SHOBJ_LIBS)
-
realpath: realpath.o
$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS)
@@ -229,7 +223,6 @@ tee.o: tee.c
head.o: head.c
rmdir.o: rmdir.c
necho.o: necho.c
-getconf.o: getconf.c
hello.o: hello.c
cat.o: cat.c
printenv.o: printenv.c
diff --git a/examples/loadables/basename.c b/examples/loadables/basename.c
index b5705cb4..7ee817f6 100644
--- a/examples/loadables/basename.c
+++ b/examples/loadables/basename.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 <http://www.gnu.org/licenses/>.
+*/
+
#include "config.h"
#if defined (HAVE_UNISTD_H)
diff --git a/examples/loadables/finfo.c b/examples/loadables/finfo.c
index af7ffb64..b806ef05 100644
--- a/examples/loadables/finfo.c
+++ b/examples/loadables/finfo.c
@@ -5,6 +5,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 <http://www.gnu.org/licenses/>.
+*/
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
diff --git a/examples/loadables/hello.c b/examples/loadables/hello.c
index bff6e76c..643156c4 100644
--- a/examples/loadables/hello.c
+++ b/examples/loadables/hello.c
@@ -3,6 +3,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 <http://www.gnu.org/licenses/>.
+*/
+
#include <config.h>
#if defined (HAVE_UNISTD_H)
diff --git a/examples/loadables/mkdir.c b/examples/loadables/mkdir.c
index f41f171b..f5c105ee 100644
--- a/examples/loadables/mkdir.c
+++ b/examples/loadables/mkdir.c
@@ -109,7 +109,7 @@ mkdir_builtin (list)
umask (original_umask);
nmode = (S_IRWXU | S_IRWXG | S_IRWXO) & ~original_umask;
- parent_mode = nmode | (S_IWRITE|S_IEXEC); /* u+wx */
+ parent_mode = nmode | (S_IWUSR|S_IXUSR); /* u+wx */
/* Adjust new mode based on mode argument */
nmode &= omode;
diff --git a/examples/loadables/sleep.c b/examples/loadables/sleep.c
index a9bd36f3..736c8af1 100644
--- a/examples/loadables/sleep.c
+++ b/examples/loadables/sleep.c
@@ -66,6 +66,10 @@ WORD_LIST *list;
return(EX_USAGE);
}
+ /* Skip over `--' */
+ if (list->word && ISOPTION (list->word->word, '-'))
+ list = list->next;
+
if (*list->word->word == '-' || list->next) {
builtin_usage ();
return (EX_USAGE);
diff --git a/examples/scripts/center b/examples/scripts/center
index 8d367d30..dbe61336 100644
--- a/examples/scripts/center
+++ b/examples/scripts/center
@@ -5,6 +5,23 @@
# tabs in the lines might cause this to look a little bit off
#
#
+# Chet Ramey <chet.ramey@case.edu>
+#
+# Copyright 1999 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
width=${COLUMNS:-80}
diff --git a/examples/scripts/shprompt b/examples/scripts/shprompt
index ec8b997a..098c45f0 100755
--- a/examples/scripts/shprompt
+++ b/examples/scripts/shprompt
@@ -11,6 +11,22 @@
#
# Chet Ramey
# chet@ins.CWRU.Edu
+#
+# Copyright 2002 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
type=file
@@ -44,7 +60,7 @@ do
done
if [ "$OPTIND" -gt 1 ] ; then
- shift $[$OPTIND - 1]
+ shift $(( $OPTIND - 1 ))
fi
while :
diff --git a/examples/scripts/spin.bash b/examples/scripts/spin.bash
index dc6a66aa..9fa91250 100644
--- a/examples/scripts/spin.bash
+++ b/examples/scripts/spin.bash
@@ -5,6 +5,22 @@
# Chet Ramey
# chet@po.cwru.edu
#
+# Copyright 1997 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
bs=$'\b'
chars="|${bs} \\${bs} -${bs} /${bs}"
diff --git a/examples/scripts/xterm_title b/examples/scripts/xterm_title
index 72ba099b..839003fe 100755
--- a/examples/scripts/xterm_title
+++ b/examples/scripts/xterm_title
@@ -4,6 +4,23 @@
#
# Derived from http://www.clark.net/pub/dickey/xterm/xterm.faq.html#how2_title
#
+
+# Copyright 1997 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
P=${0##*/}
[ -z "$DISPLAY" ] && {
echo "${P}: not running X" >&2
diff --git a/examples/scripts/zprintf b/examples/scripts/zprintf
index 5e2e3ad8..86f9e95f 100755
--- a/examples/scripts/zprintf
+++ b/examples/scripts/zprintf
@@ -11,6 +11,23 @@
# Chet Ramey
# chet@po.cwru.edu
+# Copyright 1996 Chester Ramey
+#
+# 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.
+#
+# TThis 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.
+
+
[ $# -lt 1 ] && {
echo "zprintf: usage: zprintf format [args ...]" >&2
exit 2
diff --git a/examples/startup-files/README b/examples/startup-files/README
index 92667a69..00df0414 100644
--- a/examples/startup-files/README
+++ b/examples/startup-files/README
@@ -10,12 +10,3 @@ bash-profile Sample startup file for bash login shells (Ramey).
bashrc Sample Bourne Again SHell init file (Ramey).
Bashrc.bfox Sample Bourne Again SHell init file (Fox).
README README
-
-apple Example Start-up files for Mac OS X.
-apple/aliases Sample aliases for Mac OS X.
-apple/bash.defaults Sample User preferences file.
-apple/environment Sample Bourne Again Shell environment file.
-apple/login Sample login wrapper.
-apple/logout Sample logout wrapper.
-apple/rc Sample Bourne Again Shell config file.
-apple/README README
diff --git a/execute_cmd.c b/execute_cmd.c
index 7432c85f..f9a755de 100644
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -1,6 +1,6 @@
/* execute_cmd.c -- Execute a COMMAND structure. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -33,7 +33,7 @@
#include "filecntl.h"
#include "posixstat.h"
#include <signal.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
@@ -118,6 +118,8 @@ extern time_t shell_start_time;
extern char *glob_argv_flags;
#endif
+extern int job_control; /* XXX */
+
extern int close __P((int));
/* Static functions defined and used in this file. */
@@ -195,7 +197,7 @@ static int execute_pipeline __P((COMMAND *, int, int, int, struct fd_bitmap *));
static int execute_connection __P((COMMAND *, int, int, int, struct fd_bitmap *));
-static int execute_intern_function __P((WORD_DESC *, COMMAND *));
+static int execute_intern_function __P((WORD_DESC *, FUNCTION_DEF *));
/* 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. */
@@ -222,6 +224,10 @@ int last_command_exit_value;
was terminated by a signal, and, if so, which one. */
int last_command_exit_signal;
+/* Are we currently ignoring the -e option for the duration of a builtin's
+ execution? */
+int builtin_ignoring_errexit = 0;
+
/* The list of redirections to perform which will undo the redirections
that I made in the shell. */
REDIRECT *redirection_undo_list = (REDIRECT *)NULL;
@@ -272,11 +278,13 @@ static int function_line_number;
report the correct line number. Kind of a hack. */
static int showing_function_line;
-static int line_number_for_err_trap;
+/* $LINENO ($BASH_LINENO) for use by an ERR trap. Global so parse_and_execute
+ can save and restore it. */
+int line_number_for_err_trap;
/* A sort of function nesting level counter */
int funcnest = 0;
-int funcnest_max = 0; /* XXX - bash-4.2 */
+int funcnest_max = 0; /* bash-4.2 */
int lastpipe_opt = 0;
@@ -345,11 +353,11 @@ executing_line_number ()
return currently_executing_command->value.Cond->line;
#endif
#if defined (DPAREN_ARITHMETIC)
- else if (currently_executing_command->type == cm_arith)
+ if (currently_executing_command->type == cm_arith)
return currently_executing_command->value.Arith->line;
#endif
#if defined (ARITH_FOR_COMMAND)
- else if (currently_executing_command->type == cm_arith_for)
+ if (currently_executing_command->type == cm_arith_for)
return currently_executing_command->value.ArithFor->line;
#endif
@@ -506,7 +514,7 @@ async_redirect_stdin ()
#define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
-/* Execute the command passed in COMMAND, perhaps doing it asynchrounously.
+/* Execute the command passed in COMMAND, perhaps doing it asynchronously.
COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
ASYNCHROUNOUS, if non-zero, says to do this command in the background.
PIPE_IN and PIPE_OUT are file descriptors saying where input comes
@@ -528,18 +536,18 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
{
int exec_result, user_subshell, invert, ignore_return, was_error_trap;
REDIRECT *my_undo_list, *exec_undo_list;
+ char *tcmd;
volatile int last_pid;
volatile int save_line_number;
+#if defined (PROCESS_SUBSTITUTION)
+ volatile int ofifo, nfifo, osize, saved_fifo;
+ volatile char *ofifo_list;
+#endif
-#if 0
- if (command == 0 || breaking || continuing || read_but_dont_execute)
- return (EXECUTION_SUCCESS);
-#else
if (breaking || continuing)
return (last_command_exit_value);
if (command == 0 || read_but_dont_execute)
return (EXECUTION_SUCCESS);
-#endif
QUIT;
run_pending_traps ();
@@ -578,21 +586,47 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
(pipe_out != NO_PIPE || pipe_in != NO_PIPE || asynchronous)))
{
pid_t paren_pid;
+ int s;
/* Fork a subshell, turn off the subshell bit, turn off job
control and call execute_command () on the command again. */
line_number_for_err_trap = line_number;
- paren_pid = make_child (savestring (make_command_string (command)),
- asynchronous);
+ tcmd = make_command_string (command);
+ paren_pid = make_child (savestring (tcmd), asynchronous);
+
+ if (user_subshell && signal_is_trapped (ERROR_TRAP) &&
+ signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
+ {
+ FREE (the_printed_command_except_trap);
+ the_printed_command_except_trap = savestring (the_printed_command);
+ }
+
if (paren_pid == 0)
- exit (execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close));
- /* NOTREACHED */
+ {
+ /* We want to run the exit trap for forced {} subshells, and we
+ want to note this before execute_in_subshell modifies the
+ COMMAND struct. Need to keep in mind that execute_in_subshell
+ runs the exit trap for () subshells itself. */
+ /* This handles { command; } & */
+ s = user_subshell == 0 && command->type == cm_group && pipe_in == NO_PIPE && pipe_out == NO_PIPE && asynchronous;
+ /* run exit trap for : | { ...; } and { ...; } | : */
+ /* run exit trap for : | ( ...; ) and ( ...; ) | : */
+ s += user_subshell == 0 && command->type == cm_group && (pipe_in != NO_PIPE || pipe_out != NO_PIPE) && asynchronous == 0;
+
+ last_command_exit_value = execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close);
+ if (s)
+ subshell_exit (last_command_exit_value);
+ else
+ exit (last_command_exit_value);
+ /* NOTREACHED */
+ }
else
{
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
- unlink_fifo_list ();
+ if (variable_context == 0) /* wait until shell function completes */
+ unlink_fifo_list ();
#endif
/* If we are part of a pipeline, and not the end of the pipeline,
then we should simply return and let the last command in the
@@ -641,6 +675,9 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
run_pending_traps ();
+ /* Posix 2013 2.9.3.1: "the exit status of an asynchronous list
+ shall be zero." */
+ last_command_exit_value = 0;
return (EXECUTION_SUCCESS);
}
}
@@ -669,6 +706,17 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
if (shell_control_structure (command->type) && command->redirects)
stdin_redir = stdin_redirects (command->redirects);
+#if defined (PROCESS_SUBSTITUTION)
+ if (variable_context != 0)
+ {
+ ofifo = num_fifos ();
+ ofifo_list = copy_fifo_list ((int *)&osize);
+ saved_fifo = 1;
+ }
+ else
+ saved_fifo = 0;
+#endif
+
/* Handle WHILE FOR CASE etc. with redirections. (Also '&' input
redirection.) */
if (do_redirections (command->redirects, RX_ACTIVE|RX_UNDOABLE) != 0)
@@ -676,6 +724,10 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
cleanup_redirects (redirection_undo_list);
redirection_undo_list = (REDIRECT *)NULL;
dispose_exec_redirects ();
+#if defined (PROCESS_SUBSTITUTION)
+ if (saved_fifo)
+ free ((void *)ofifo_list);
+#endif
return (last_command_exit_value = EXECUTION_FAILURE);
}
@@ -751,9 +803,11 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
the child. */
/* XXX - this is something to watch out for if there are problems
- when the shell is compiled without job control. */
- if (already_making_children && pipe_out == NO_PIPE &&
- last_made_pid != last_pid)
+ when the shell is compiled without job control. Don't worry about
+ whether or not last_made_pid == last_pid; already_making_children
+ tells us whether or not there are unwaited-for children to wait
+ for and reap. */
+ if (already_making_children && pipe_out == NO_PIPE)
{
stop_pipeline (asynchronous, (COMMAND *)NULL);
@@ -951,7 +1005,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
case cm_function_def:
exec_result = execute_intern_function (command->value.Function_def->name,
- command->value.Function_def->command);
+ command->value.Function_def);
break;
default:
@@ -970,6 +1024,16 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
if (my_undo_list || exec_undo_list)
discard_unwind_frame ("loop_redirections");
+#if defined (PROCESS_SUBSTITUTION)
+ if (saved_fifo)
+ {
+ nfifo = num_fifos ();
+ if (nfifo > ofifo)
+ close_new_fifos ((char *)ofifo_list, osize);
+ free ((void *)ofifo_list);
+ }
+#endif
+
/* Invert the return value if we have to */
if (invert)
exec_result = (exec_result == EXECUTION_SUCCESS)
@@ -1000,6 +1064,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
if (running_trap == 0)
#endif
currently_executing_command = (COMMAND *)NULL;
+
return (last_command_exit_value);
}
@@ -1222,7 +1287,7 @@ time_command (command, asynchronous, pipe_in, pipe_out, fds_to_close)
# endif
#endif
- posix_time = (command->flags & CMD_TIME_POSIX);
+ posix_time = command && (command->flags & CMD_TIME_POSIX);
nullcmd = (command == 0) || (command->type == cm_simple && command->value.Simple->words == 0 && command->value.Simple->redirects == 0);
if (posixly_correct && nullcmd)
@@ -1435,7 +1500,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
if (user_subshell)
{
stdin_redir = stdin_redirects (command->redirects);
- restore_default_signal (0);
+ restore_default_signal (EXIT_TRAP);
}
/* If this is an asynchronous command (command &), we want to
@@ -1487,13 +1552,13 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
invert = (tcom->flags & CMD_INVERT_RETURN) != 0;
tcom->flags &= ~CMD_INVERT_RETURN;
- result = setjmp (top_level);
+ result = setjmp_nosigs (top_level);
/* If we're inside a function while executing this subshell, we
need to handle a possible `return'. */
function_value = 0;
if (return_catch_flag)
- function_value = setjmp (return_catch);
+ function_value = setjmp_nosigs (return_catch);
/* If we're going to exit the shell, we don't want to invert the return
status. */
@@ -1504,7 +1569,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
else if (function_value)
return_code = return_catch_value;
else
- return_code = execute_command_internal (tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close);
+ return_code = execute_command_internal ((COMMAND *)tcom, asynchronous, NO_PIPE, NO_PIPE, fds_to_close);
/* If we are asked to, invert the return value. */
if (invert)
@@ -1539,6 +1604,7 @@ typedef struct cplist
struct cpelement *head;
struct cpelement *tail;
int ncoproc;
+ int lock;
}
cplist_t;
@@ -1548,11 +1614,15 @@ static struct cpelement *cpl_add __P((struct coproc *));
static struct cpelement *cpl_delete __P((pid_t));
static void cpl_reap __P((void));
static void cpl_flush __P((void));
+static void cpl_closeall __P((void));
static struct cpelement *cpl_search __P((pid_t));
-static struct cpelement *cpl_searchbyname __P((char *));
+static struct cpelement *cpl_searchbyname __P((const char *));
static void cpl_prune __P((void));
-Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0, 0, 0 };
+static void coproc_free __P((struct coproc *));
+
+/* Will go away when there is fully-implemented support for multiple coprocs. */
+Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0, 0, 0, 0 };
cplist_t coproc_list = {0, 0, 0};
@@ -1638,32 +1708,45 @@ cpl_delete (pid)
static void
cpl_reap ()
{
- struct cpelement *prev, *p;
+ struct cpelement *p, *next, *nh, *nt;
- for (prev = p = coproc_list.head; p; prev = p, p = p->next)
- if (p->coproc->c_flags & COPROC_DEAD)
- {
- prev->next = p->next; /* remove from list */
-
- /* 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 */
+ /* Build a new list by removing dead coprocs and fix up the coproc_list
+ pointers when done. */
+ nh = nt = next = (struct cpelement *)0;
+ for (p = coproc_list.head; p; p = next)
+ {
+ next = p->next;
+ if (p->coproc->c_flags & COPROC_DEAD)
+ {
+ coproc_list.ncoproc--; /* keep running count, fix up pointers later */
#if defined (DEBUG)
- itrace("cpl_reap: deleting %d", p->coproc->c_pid);
+ itrace("cpl_reap: deleting %d", p->coproc->c_pid);
#endif
- coproc_dispose (p->coproc);
- cpe_dispose (p);
- }
+ coproc_dispose (p->coproc);
+ cpe_dispose (p);
+ }
+ else if (nh == 0)
+ nh = nt = p;
+ else
+ {
+ nt->next = p;
+ nt = nt->next;
+ }
+ }
+
+ if (coproc_list.ncoproc == 0)
+ coproc_list.head = coproc_list.tail = 0;
+ else
+ {
+ if (nt)
+ nt->next = 0;
+ coproc_list.head = nh;
+ coproc_list.tail = nt;
+ if (coproc_list.ncoproc == 1)
+ coproc_list.tail = coproc_list.head; /* just to make sure */
+ }
}
/* Clear out the list of saved statuses */
@@ -1685,17 +1768,36 @@ cpl_flush ()
coproc_list.ncoproc = 0;
}
+static void
+cpl_closeall ()
+{
+ struct cpelement *cpe;
+
+ for (cpe = coproc_list.head; cpe; cpe = cpe->next)
+ coproc_close (cpe->coproc);
+}
+
+static void
+cpl_fdchk (fd)
+ int fd;
+{
+ struct cpelement *cpe;
+
+ for (cpe = coproc_list.head; cpe; cpe = cpe->next)
+ coproc_checkfd (cpe->coproc, fd);
+}
+
/* 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;
+ struct cpelement *cpe;
- for (cp = coproc_list.head ; cp; cp = cp->next)
- if (cp->coproc->c_pid == pid)
- return cp;
+ for (cpe = coproc_list.head ; cpe; cpe = cpe->next)
+ if (cpe->coproc->c_pid == pid)
+ return cpe;
return (struct cpelement *)NULL;
}
@@ -1703,7 +1805,7 @@ cpl_search (pid)
cpelement struct if found. If not found, return NULL. */
static struct cpelement *
cpl_searchbyname (name)
- char *name;
+ const char *name;
{
struct cpelement *cp;
@@ -1738,14 +1840,28 @@ struct coproc *
getcoprocbypid (pid)
pid_t pid;
{
+#if MULTIPLE_COPROCS
+ struct cpelement *p;
+
+ p = cpl_search (pid);
+ return (p ? p->coproc : 0);
+#else
return (pid == sh_coproc.c_pid ? &sh_coproc : 0);
+#endif
}
struct coproc *
getcoprocbyname (name)
const char *name;
{
+#if MULTIPLE_COPROCS
+ struct cpelement *p;
+
+ p = cpl_searchbyname (name);
+ return (p ? p->coproc : 0);
+#else
return ((sh_coproc.c_name && STREQ (sh_coproc.c_name, name)) ? &sh_coproc : 0);
+#endif
}
void
@@ -1756,7 +1872,7 @@ coproc_init (cp)
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;
+ cp->c_flags = cp->c_status = cp->c_lock = 0;
}
struct coproc *
@@ -1766,33 +1882,62 @@ coproc_alloc (name, pid)
{
struct coproc *cp;
- cp = &sh_coproc; /* XXX */
+#if MULTIPLE_COPROCS
+ cp = (struct coproc *)xmalloc (sizeof (struct coproc));
+#else
+ cp = &sh_coproc;
+#endif
coproc_init (cp);
+ cp->c_lock = 2;
- cp->c_name = savestring (name);
cp->c_pid = pid;
-
+ cp->c_name = savestring (name);
+#if MULTIPLE_COPROCS
+ cpl_add (cp);
+#endif
+ cp->c_lock = 0;
return (cp);
}
+static void
+coproc_free (cp)
+ struct coproc *cp;
+{
+ free (cp);
+}
+
void
coproc_dispose (cp)
struct coproc *cp;
{
+ sigset_t set, oset;
+
if (cp == 0)
return;
+ BLOCK_SIGNAL (SIGCHLD, set, oset);
+ cp->c_lock = 3;
coproc_unsetvars (cp);
FREE (cp->c_name);
coproc_close (cp);
+#if MULTIPLE_COPROCS
+ coproc_free (cp);
+#else
coproc_init (cp);
+ cp->c_lock = 0;
+#endif
+ UNBLOCK_SIGNAL (oset);
}
-/* Placeholder for now. */
+/* Placeholder for now. Will require changes for multiple coprocs */
void
coproc_flush ()
{
+#if MULTIPLE_COPROCS
+ cpl_flush ();
+#else
coproc_dispose (&sh_coproc);
+#endif
}
void
@@ -1815,17 +1960,25 @@ coproc_close (cp)
void
coproc_closeall ()
{
- coproc_close (&sh_coproc);
+#if MULTIPLE_COPROCS
+ cpl_closeall ();
+#else
+ coproc_close (&sh_coproc); /* XXX - will require changes for multiple coprocs */
+#endif
}
void
coproc_reap ()
{
+#if MULTIPLE_COPROCS
+ cpl_reap ();
+#else
struct coproc *cp;
- cp = &sh_coproc;
+ cp = &sh_coproc; /* XXX - will require changes for multiple coprocs */
if (cp && (cp->c_flags & COPROC_DEAD))
coproc_dispose (cp);
+#endif
}
void
@@ -1872,7 +2025,11 @@ void
coproc_fdchk (fd)
int fd;
{
+#if MULTIPLE_COPROCS
+ cpl_fdchk (fd);
+#else
coproc_checkfd (&sh_coproc, fd);
+#endif
}
void
@@ -1907,19 +2064,24 @@ coproc_pidchk (pid, status)
{
struct coproc *cp;
+#if MULTIPLE_COPROCS
+ struct cpelement *cpe;
+
+ cpe = cpl_delete (pid);
+ cp = cpe ? cpe->coproc : 0;
+#else
cp = getcoprocbypid (pid);
-#if 0
- if (cp)
- itrace("coproc_pidchk: pid %d has died", pid);
#endif
if (cp)
{
+ cp->c_lock = 4;
cp->c_status = status;
cp->c_flags |= COPROC_DEAD;
cp->c_flags &= ~COPROC_RUNNING;
-#if 0
- coproc_dispose (cp);
-#endif
+ /* Don't dispose the coproc or unset the COPROC_XXX variables because
+ this is executed in a signal handler context. Wait until coproc_reap
+ takes care of it. */
+ cp->c_lock = 0;
}
}
@@ -2009,35 +2171,36 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
int pipe_in, pipe_out;
struct fd_bitmap *fds_to_close;
{
- int rpipe[2], wpipe[2], estat;
+ int rpipe[2], wpipe[2], estat, invert;
pid_t coproc_pid;
Coproc *cp;
char *tcmd;
+ sigset_t set, oset;
- /* XXX -- will require changes to handle multiple coprocs */
+ /* XXX -- can be removed after changes to handle multiple coprocs */
+#if !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
- }
+ internal_warning ("execute_coproc: coproc [%d:%s] still exists", sh_coproc.c_pid, sh_coproc.c_name);
coproc_init (&sh_coproc);
+#endif
+ invert = (command->flags & CMD_INVERT_RETURN) != 0;
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 */
+ BLOCK_SIGNAL (SIGCHLD, set, oset);
+
coproc_pid = make_child (savestring (tcmd), 1);
+
if (coproc_pid == 0)
{
close (rpipe[0]);
close (wpipe[1]);
+ UNBLOCK_SIGNAL (oset);
estat = execute_in_subshell (command, 1, wpipe[0], rpipe[1], fds_to_close);
fflush (stdout);
@@ -2049,6 +2212,7 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
close (rpipe[1]);
close (wpipe[0]);
+ /* XXX - possibly run Coproc->name through word expansion? */
cp = coproc_alloc (command->value.Coproc->name, coproc_pid);
cp->c_rfd = rpipe[0];
cp->c_wfd = wpipe[1];
@@ -2058,6 +2222,8 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
coproc_setvars (cp);
+ UNBLOCK_SIGNAL (oset);
+
#if 0
itrace ("execute_coproc: [%d] %s", coproc_pid, the_printed_command);
#endif
@@ -2070,7 +2236,7 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
DESCRIBE_PID (coproc_pid);
run_pending_traps ();
- return (EXECUTION_SUCCESS);
+ return (invert ? EXECUTION_FAILURE : EXECUTION_SUCCESS);
}
#endif
@@ -2196,8 +2362,8 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
if (ignore_return && cmd)
cmd->flags |= CMD_IGNORE_RETURN;
-#if defined (JOB_CONTROL)
lastpipe_flag = 0;
+
begin_unwind_frame ("lastpipe-exec");
lstdin = -1;
/* If the `lastpipe' option is set with shopt, and job control is not
@@ -2221,14 +2387,11 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
}
if (prev >= 0)
add_unwind_protect (close, prev);
-#endif
exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
-#if defined (JOB_CONTROL)
if (lstdin > 0)
restore_stdin (lstdin);
-#endif
if (prev >= 0)
close (prev);
@@ -2251,9 +2414,7 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
unfreeze_jobs_list ();
}
-#if defined (JOB_CONTROL)
discard_unwind_frame ("lastpipe-exec");
-#endif
return (exec_result);
}
@@ -2438,6 +2599,7 @@ execute_for_command (for_command)
loop_level++;
identifier = for_command->name->word;
+ line_number = for_command->line; /* for expansion error messages */
list = releaser = expand_words_no_vars (for_command->map_list);
begin_unwind_frame ("for");
@@ -2470,11 +2632,7 @@ execute_for_command (for_command)
/* Save this command unless it's a trap command and we're not running
a debug trap. */
-#if 0
- if (signal_in_progress (DEBUG_TRAP) == 0 && (this_command_name == 0 || (STREQ (this_command_name, "trap") == 0)))
-#else
if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
-#endif
{
FREE (the_printed_command_except_trap);
the_printed_command_except_trap = savestring (the_printed_command);
@@ -2489,7 +2647,14 @@ execute_for_command (for_command)
#endif
this_command_name = (char *)NULL;
- v = bind_variable (identifier, list->word->word, 0);
+ /* XXX - special ksh93 for command index variable handling */
+ v = find_variable_last_nameref (identifier);
+ if (v && nameref_p (v))
+ {
+ v = bind_variable_value (v, list->word->word, 0);
+ }
+ else
+ v = bind_variable (identifier, list->word->word, 0);
if (readonly_p (v) || noassign_p (v))
{
line_number = save_line_number;
@@ -2720,7 +2885,8 @@ displen (s)
{
#if defined (HANDLE_MULTIBYTE)
wchar_t *wcstr;
- size_t wclen, slen;
+ size_t slen;
+ int wclen;
wcstr = 0;
slen = mbstowcs (wcstr, s, 0);
@@ -2730,7 +2896,7 @@ displen (s)
mbstowcs (wcstr, s, slen + 1);
wclen = wcswidth (wcstr, slen);
free (wcstr);
- return ((int)wclen);
+ return (wclen < 0 ? STRLEN(s) : wclen);
#else
return (STRLEN (s));
#endif
@@ -2748,6 +2914,8 @@ print_index_and_element (len, ind, list)
return (0);
for (i = ind, l = list; l && --i; l = l->next)
;
+ if (l == 0) /* don't think this can happen */
+ return (0);
fprintf (stderr, "%*d%s%s", len, ind, RP_SPACE, l->word->word);
return (displen (l->word->word));
}
@@ -2888,7 +3056,7 @@ select_query (list, list_len, prompt, print_menu)
for (l = list; l && --reply; l = l->next)
;
- return (l->word->word);
+ return (l->word->word); /* XXX - can't be null? */
}
}
@@ -3329,12 +3497,16 @@ execute_arith_command (arith_command)
static char * const nullstr = "";
+/* XXX - can COND ever be NULL when this is called? */
static int
execute_cond_node (cond)
COND_COM *cond;
{
int result, invert, patmatch, rmatch, mflags, ignore;
char *arg1, *arg2;
+#if 0
+ char *t1, *t2;
+#endif
invert = (cond->flags & CMD_INVERT_RETURN);
ignore = (cond->flags & CMD_IGNORE_RETURN);
@@ -3378,8 +3550,8 @@ execute_cond_node (cond)
else if (cond->type == COND_BINARY)
{
rmatch = 0;
- patmatch = ((cond->op->word[1] == '=') && (cond->op->word[2] == '\0') &&
- (cond->op->word[0] == '!' || cond->op->word[0] == '=') ||
+ patmatch = (((cond->op->word[1] == '=') && (cond->op->word[2] == '\0') &&
+ (cond->op->word[0] == '!' || cond->op->word[0] == '=')) ||
(cond->op->word[0] == '=' && cond->op->word[1] == '\0'));
#if defined (COND_REGEXP)
rmatch = (cond->op->word[0] == '=' && cond->op->word[1] == '~' &&
@@ -3413,6 +3585,14 @@ execute_cond_node (cond)
mflags |= SHMAT_SUBEXP;
#endif
+#if 0
+ t1 = strescape(arg1);
+ t2 = strescape(arg2);
+ itrace("execute_cond_node: sh_regmatch on `%s' and `%s'", t1, t2);
+ free(t1);
+ free(t2);
+#endif
+
result = sh_regmatch (arg1, arg2, mflags);
}
else
@@ -3547,7 +3727,8 @@ execute_null_command (redirects, pipe_in, pipe_out, async)
{
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
- unlink_fifo_list ();
+ if (pipe_out == NO_PIPE)
+ unlink_fifo_list ();
#endif
return (EXECUTION_SUCCESS);
}
@@ -3580,55 +3761,78 @@ static void
fix_assignment_words (words)
WORD_LIST *words;
{
- WORD_LIST *w;
+ WORD_LIST *w, *wcmd;
struct builtin *b;
- int assoc, global;
+ int assoc, global, array, integer;
if (words == 0)
return;
b = 0;
- assoc = global = 0;
+ assoc = global = array = integer = 0;
- for (w = words; w; w = w->next)
+ /* Skip over assignment statements preceding a command name */
+ wcmd = words;
+ for (wcmd = words; wcmd; wcmd = wcmd->next)
+ if ((wcmd->word->flags & W_ASSIGNMENT) == 0)
+ break;
+
+ for (w = wcmd; w; w = w->next)
if (w->word->flags & W_ASSIGNMENT)
{
if (b == 0)
{
- b = builtin_address_internal (words->word->word, 0);
+ /* Posix (post-2008) says that `command' doesn't change whether
+ or not the builtin it shadows is a `declaration command', even
+ though it removes other special builtin properties. In Posix
+ mode, we skip over one or more instances of `command' and
+ deal with the next word as the assignment builtin. */
+ while (posixly_correct && wcmd && wcmd->word && wcmd->word->word && STREQ (wcmd->word->word, "command"))
+ wcmd = wcmd->next;
+ b = builtin_address_internal (wcmd->word->word, 0);
if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
return;
else if (b && (b->flags & ASSIGNMENT_BUILTIN))
- words->word->flags |= W_ASSNBLTIN;
+ wcmd->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;
+ if (array)
+ w->word->flags |= W_ASSIGNARRAY;
+#endif
if (global)
w->word->flags |= W_ASSNGLOBAL;
-#endif
+ if (integer)
+ w->word->flags |= W_ASSIGNINT;
}
#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+1, 'A') || strchr (w->word->word+1, 'g')))
+ else if (w->word->word[0] == '-' && (strchr (w->word->word+1, 'A') || strchr (w->word->word+1, 'a') || strchr (w->word->word+1, 'g')))
#else
else if (w->word->word[0] == '-' && strchr (w->word->word+1, 'g'))
#endif
{
if (b == 0)
{
- b = builtin_address_internal (words->word->word, 0);
+ while (posixly_correct && wcmd && wcmd->word && wcmd->word->word && STREQ (wcmd->word->word, "command"))
+ wcmd = wcmd->next;
+ b = builtin_address_internal (wcmd->word->word, 0);
if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0)
return;
else if (b && (b->flags & ASSIGNMENT_BUILTIN))
- words->word->flags |= W_ASSNBLTIN;
+ wcmd->word->flags |= W_ASSNBLTIN;
}
- if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
+ if ((wcmd->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
assoc = 1;
- if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
+ else if ((wcmd->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'a'))
+ array = 1;
+ if ((wcmd->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
global = 1;
+ if ((wcmd->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'i'))
+ integer = 1;
}
}
@@ -3639,8 +3843,12 @@ is_dirname (pathname)
char *pathname;
{
char *temp;
- temp = search_for_command (pathname);
- return (temp ? file_isdir (temp) : file_isdir (pathname));
+ int ret;
+
+ temp = search_for_command (pathname, 0);
+ ret = (temp ? file_isdir (temp) : file_isdir (pathname));
+ free (temp);
+ return ret;
}
/* The meaty part of all the executions. We have to start hacking the
@@ -3664,6 +3872,8 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
special_builtin_failed = builtin_is_special = 0;
command_line = (char *)0;
+ QUIT;
+
/* If we're in a function, update the line number information. */
if (variable_context && interactive_shell && sourcelevel == 0)
line_number -= function_line_number;
@@ -3746,6 +3956,8 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
#endif
last_asynchronous_pid = old_last_async_pid;
+
+ CHECK_SIGTERM;
}
else
{
@@ -3755,7 +3967,11 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
result = last_command_exit_value;
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
- unlink_fifo_list ();
+ /* Close /dev/fd file descriptors in the parent after forking the
+ last child in a (possibly one-element) pipeline. Defer this
+ until any running shell function completes. */
+ if (pipe_out == NO_PIPE && variable_context == 0) /* XXX */
+ unlink_fifo_list (); /* XXX */
#endif
command_line = (char *)NULL; /* don't free this. */
bind_lastarg ((char *)NULL);
@@ -3828,11 +4044,12 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
/* In POSIX mode, assignment errors in the temporary environment cause a
non-interactive shell to exit. */
- if (builtin_is_special && interactive_shell == 0 && tempenv_assign_error)
+ if (posixly_correct && builtin_is_special && interactive_shell == 0 && tempenv_assign_error)
{
last_command_exit_value = EXECUTION_FAILURE;
jump_to_top_level (ERREXIT);
}
+ tempenv_assign_error = 0; /* don't care about this any more */
add_unwind_protect (dispose_words, words);
QUIT;
@@ -3853,7 +4070,7 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
goto return_result;
}
- /* One other possiblilty. The user may want to resume an existing job.
+ /* One other possibililty. The user may want to resume an existing job.
If they do, find out whether this word is a candidate for a running
job. */
if (job_control && already_forked == 0 && async == 0 &&
@@ -3948,6 +4165,18 @@ run_builtin:
{
if (result > EX_SHERRBASE)
{
+ switch (result)
+ {
+ case EX_REDIRFAIL:
+ case EX_BADASSIGN:
+ case EX_EXPFAIL:
+ /* These errors cause non-interactive posix mode shells to exit */
+ if (posixly_correct && builtin_is_special && interactive_shell == 0)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ jump_to_top_level (ERREXIT);
+ }
+ }
result = builtin_status (result);
if (builtin_is_special)
special_builtin_failed = 1;
@@ -3980,7 +4209,7 @@ run_builtin:
}
if (command_line == 0)
- command_line = savestring (the_printed_command_except_trap);
+ command_line = savestring (the_printed_command_except_trap ? the_printed_command_except_trap : "");
#if defined (PROCESS_SUBSTITUTION)
if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
@@ -4041,13 +4270,9 @@ execute_builtin (builtin, words, flags, subshell)
int isbltinenv;
char *error_trap;
-#if 0
- /* XXX -- added 12/11 */
- terminate_immediately++;
-#endif
-
error_trap = 0;
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
@@ -4060,6 +4285,7 @@ execute_builtin (builtin, words, flags, subshell)
{
begin_unwind_frame ("eval_builtin");
unwind_protect_int (exit_immediately_on_error);
+ unwind_protect_int (builtin_ignoring_errexit);
error_trap = TRAP_STRING (ERROR_TRAP);
if (error_trap)
{
@@ -4069,6 +4295,7 @@ execute_builtin (builtin, words, flags, subshell)
restore_default_signal (ERROR_TRAP);
}
exit_immediately_on_error = 0;
+ builtin_ignoring_errexit = 1;
eval_unwind = 1;
}
else
@@ -4076,9 +4303,10 @@ execute_builtin (builtin, words, flags, subshell)
/* The temporary environment for a builtin is supposed to apply to
all commands executed by that builtin. Currently, this is a
- problem only with the `unset', `source' and `eval' builtins. */
-
- isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin);
+ problem only with the `unset', `source' and `eval' builtins.
+ `mapfile' is a special case because it uses evalstring (same as
+ eval or source) to run its callbacks. */
+ isbltinenv = (builtin == source_builtin || builtin == eval_builtin || builtin == unset_builtin || builtin == mapfile_builtin);
if (isbltinenv)
{
@@ -4118,7 +4346,8 @@ execute_builtin (builtin, words, flags, subshell)
if (eval_unwind)
{
- exit_immediately_on_error += old_e_flag;
+ exit_immediately_on_error = errexit_flag;
+ builtin_ignoring_errexit = 0;
if (error_trap)
{
set_error_trap (error_trap);
@@ -4127,11 +4356,6 @@ execute_builtin (builtin, words, flags, subshell)
discard_unwind_frame ("eval_builtin");
}
-#if 0
- /* XXX -- added 12/11 */
- terminate_immediately--;
-#endif
-
return (result);
}
@@ -4159,7 +4383,7 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
if (funcnest_max > 0 && funcnest >= funcnest_max)
{
- internal_error ("%s: maximum function nesting level exceeded (%d)", var->name, funcnest);
+ internal_error (_("%s: maximum function nesting level exceeded (%d)"), var->name, funcnest);
funcnest = 0; /* XXX - should we reset it somewhere else? */
jump_to_top_level (DISCARD);
}
@@ -4251,11 +4475,11 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
/* This is quite similar to the code in shell.c and elsewhere. */
shell_fn = find_function_def (this_shell_function->name);
sfile = shell_fn ? shell_fn->source_file : "";
- array_push (funcname_a, this_shell_function->name);
+ array_push ((ARRAY *)funcname_a, this_shell_function->name);
- array_push (bash_source_a, sfile);
+ array_push ((ARRAY *)bash_source_a, sfile);
t = itos (executing_line_number ());
- array_push (bash_lineno_a, t);
+ array_push ((ARRAY *)bash_lineno_a, t);
free (t);
#endif
@@ -4279,7 +4503,7 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
fc = tc;
return_catch_flag++;
- return_val = setjmp (return_catch);
+ return_val = setjmp_nosigs (return_catch);
if (return_val)
{
@@ -4330,8 +4554,8 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
#if defined (ARRAY_VARS)
/* These two variables cannot be unset, and cannot be affected by the
function. */
- array_pop (bash_source_a);
- array_pop (bash_lineno_a);
+ array_pop ((ARRAY *)bash_source_a);
+ array_pop ((ARRAY *)bash_lineno_a);
/* FUNCNAME can be unset, and so can potentially be changed by the
function. */
@@ -4437,13 +4661,13 @@ execute_subshell_builtin_or_function (words, redirects, builtin, var,
{
/* Give builtins a place to jump back to on failure,
so we don't go back up to main(). */
- result = setjmp (top_level);
+ result = setjmp_nosigs (top_level);
/* Give the return builtin a place to jump to when executed in a subshell
or pipeline */
funcvalue = 0;
if (return_catch_flag && builtin == return_builtin)
- funcvalue = setjmp (return_catch);
+ funcvalue = setjmp_nosigs (return_catch);
if (result == EXITPROG)
exit (last_command_exit_value);
@@ -4597,10 +4821,15 @@ setup_async_signals ()
if (job_control == 0)
#endif
{
+ /* Make sure we get the original signal dispositions now so we don't
+ confuse the trap builtin later if the subshell tries to use it to
+ reset SIGINT/SIGQUIT. Don't call set_signal_ignored; that sets
+ the value of original_signals to SIG_IGN. Posix interpretation 751. */
+ get_original_signal (SIGINT);
set_signal_handler (SIGINT, SIG_IGN);
- set_signal_ignored (SIGINT);
+
+ get_original_signal (SIGQUIT);
set_signal_handler (SIGQUIT, SIG_IGN);
- set_signal_ignored (SIGQUIT);
}
}
@@ -4665,7 +4894,7 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
}
#endif /* RESTRICTED_SHELL */
- command = search_for_command (pathname);
+ command = search_for_command (pathname, 1);
if (command)
{
@@ -4686,18 +4915,12 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
{
int old_interactive;
-#if 0
- /* This has been disabled for the time being. */
-#if !defined (ARG_MAX) || ARG_MAX >= 10240
- if (posixly_correct == 0)
- put_gnu_argv_flags_into_env ((long)getpid (), glob_argv_flags);
-#endif
-#endif
-
reset_terminating_signals (); /* XXX */
/* Cancel traps, in trap.c. */
restore_original_signals ();
+ CHECK_SIGTERM;
+
/* restore_original_signals may have undone the work done
by make_child to ensure that SIGINT and SIGQUIT are ignored
in asynchronous children. */
@@ -4751,10 +4974,17 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */
}
+#if defined (JOB_CONTROL)
+ /* May need to reinitialize more of the job control state here. */
+ kill_current_pipeline ();
+#endif
+
wl = make_word_list (make_word (NOTFOUND_HOOK), words);
exit (execute_shell_function (hookf, wl));
}
+ CHECK_SIGTERM;
+
/* Execve expects the command name to be in args[0]. So we
leave it there, in the same format that the user used to
type it in. */
@@ -4764,6 +4994,8 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out,
else
{
parent_return:
+ QUIT;
+
/* Make sure that the pipes are closed in the parent. */
close_pipes (pipe_in, pipe_out);
#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD)
@@ -4992,6 +5224,7 @@ shell_execve (command, args, env)
run it for some reason. See why. */
#if defined (HAVE_HASH_BANG_EXEC)
READ_SAMPLE_BUF (command, sample, sample_len);
+ sample[sample_len - 1] = '\0';
if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
{
char *interp;
@@ -5044,7 +5277,7 @@ shell_execve (command, args, env)
#endif
if (check_binary_file (sample, sample_len))
{
- internal_error (_("%s: cannot execute binary file"), command);
+ internal_error (_("%s: cannot execute binary file: %s"), command, strerror (i));
return (EX_BINARY_FILE);
}
}
@@ -5097,9 +5330,9 @@ shell_execve (command, args, env)
}
static int
-execute_intern_function (name, function)
+execute_intern_function (name, funcdef)
WORD_DESC *name;
- COMMAND *function;
+ FUNCTION_DEF *funcdef;
{
SHELL_VAR *var;
@@ -5113,6 +5346,14 @@ execute_intern_function (name, function)
return (EXECUTION_FAILURE);
}
+ /* Posix interpretation 383 */
+ if (posixly_correct && find_special_builtin (name->word))
+ {
+ internal_error (_("`%s': is a special builtin"), name->word);
+ last_command_exit_value = EX_BADUSAGE;
+ jump_to_top_level (ERREXIT);
+ }
+
var = find_function (name->word);
if (var && (readonly_p (var) || noassign_p (var)))
{
@@ -5121,7 +5362,11 @@ execute_intern_function (name, function)
return (EXECUTION_FAILURE);
}
- bind_function (name->word, function);
+#if defined (DEBUGGER)
+ bind_function_def (name->word, funcdef);
+#endif
+
+ bind_function (name->word, funcdef->command);
return (EXECUTION_SUCCESS);
}
diff --git a/expr.c b/expr.c
index 98d75b60..1462c102 100644
--- a/expr.c
+++ b/expr.c
@@ -1,6 +1,6 @@
/* expr.c -- arithmetic expression evaluation. */
-/* Copyright (C) 1990-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1990-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -63,7 +63,7 @@
Implementation is a recursive-descent parser.
Chet Ramey
- chet@ins.CWRU.Edu
+ chet@po.cwru.edu
*/
#include "config.h"
@@ -82,12 +82,13 @@
#include "bashintl.h"
#include "shell.h"
+#include "typemax.h" /* INTMAX_MAX, INTMAX_MIN */
/* Because of the $((...)) construct, expressions may include newlines.
Here is a macro which accepts newlines, tabs and spaces as whitespace. */
#define cr_whitespace(c) (whitespace(c) || ((c) == '\n'))
-/* Size be which the expression stack grows when neccessary. */
+/* Size be which the expression stack grows when necessary. */
#define EXPR_STACK_GROW_SIZE 10
/* Maximum amount of recursion allowed. This prevents a non-integer
@@ -188,7 +189,9 @@ static void pushexp __P((void));
static void popexp __P((void));
static void expr_unwind __P((void));
static void expr_bind_variable __P((char *, char *));
+#if defined (ARRAY_VARS)
static void expr_bind_array_element __P((char *, arrayind_t, char *));
+#endif
static intmax_t subexpr __P((char *));
@@ -309,10 +312,15 @@ static void
expr_bind_variable (lhs, rhs)
char *lhs, *rhs;
{
- (void)bind_int_variable (lhs, rhs);
+ SHELL_VAR *v;
+
+ v = bind_int_variable (lhs, rhs);
+ if (v && (readonly_p (v) || noassign_p (v)))
+ longjmp (evalbuf, 1); /* variable assignment error */
stupidly_hack_special_variables (lhs);
}
+#if defined (ARRAY_VARS)
/* Rewrite tok, which is of the form vname[expression], to vname[ind], where
IND is the already-calculated value of expression. */
static void
@@ -333,11 +341,12 @@ expr_bind_array_element (tok, ind, rhs)
sprintf (lhs, "%s[%s]", vname, istr); /* XXX */
- expr_bind_variable (lhs, rhs);
/*itrace("expr_bind_array_element: %s=%s", lhs, rhs);*/
+ expr_bind_variable (lhs, rhs);
free (vname);
free (lhs);
}
+#endif /* ARRAY_VARS */
/* Evaluate EXPR, and return the arithmetic result. If VALIDP is
non-null, a zero is stored into the location to which it points
@@ -366,7 +375,7 @@ evalexp (expr, validp)
FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf));
- c = setjmp (evalbuf);
+ c = setjmp_nosigs (evalbuf);
if (c)
{
@@ -450,6 +459,9 @@ expassign ()
register intmax_t value;
char *lhs, *rhs;
arrayind_t lind;
+#if defined (HAVE_IMAXDIV)
+ imaxdiv_t idiv;
+#endif
value = expcond ();
if (curtok == EQ || curtok == OP_ASSIGN)
@@ -468,6 +480,7 @@ expassign ()
lvalue = value;
}
+ /* XXX - watch out for pointer aliasing issues here */
lhs = savestring (tokstr);
/* save ind in case rhs is string var and evaluation overwrites it */
lind = curlval.ind;
@@ -490,10 +503,18 @@ expassign ()
lvalue *= value;
break;
case DIV:
- lvalue /= value;
- break;
case MOD:
- lvalue %= value;
+ if (lvalue == INTMAX_MIN && value == -1)
+ lvalue = (op == DIV) ? INTMAX_MIN : 0;
+ else
+#if HAVE_IMAXDIV
+ {
+ idiv = imaxdiv (lvalue, value);
+ lvalue = (op == DIV) ? idiv.quot : idiv.rem;
+ }
+#else
+ lvalue = (op == DIV) ? lvalue / value : lvalue % value;
+#endif
break;
case PLUS:
lvalue += value;
@@ -527,16 +548,22 @@ expassign ()
rhs = itos (value);
if (noeval == 0)
{
+#if defined (ARRAY_VARS)
if (lind != -1)
expr_bind_array_element (lhs, lind, rhs);
else
+#endif
expr_bind_variable (lhs, rhs);
}
+ if (curlval.tokstr && curlval.tokstr == tokstr)
+ init_lvalue (&curlval);
+
free (rhs);
free (lhs);
FREE (tokstr);
tokstr = (char *)NULL; /* For freeing on errors. */
}
+
return (value);
}
@@ -654,6 +681,7 @@ expbor ()
readtok ();
val2 = expbxor ();
val1 = val1 | val2;
+ lasttok = NUM;
}
return (val1);
@@ -672,6 +700,7 @@ expbxor ()
readtok ();
val2 = expband ();
val1 = val1 ^ val2;
+ lasttok = NUM;
}
return (val1);
@@ -690,6 +719,7 @@ expband ()
readtok ();
val2 = exp5 ();
val1 = val1 & val2;
+ lasttok = NUM;
}
return (val1);
@@ -712,6 +742,7 @@ exp5 ()
val1 = (val1 == val2);
else if (op == NEQ)
val1 = (val1 != val2);
+ lasttok = NUM;
}
return (val1);
}
@@ -740,6 +771,7 @@ exp4 ()
val1 = val1 < val2;
else /* (op == GT) */
val1 = val1 > val2;
+ lasttok = NUM;
}
return (val1);
}
@@ -763,6 +795,7 @@ expshift ()
val1 = val1 << val2;
else
val1 = val1 >> val2;
+ lasttok = NUM;
}
return (val1);
@@ -786,6 +819,7 @@ exp3 ()
val1 += val2;
else if (op == MINUS)
val1 -= val2;
+ lasttok = NUM;
}
return (val1);
}
@@ -794,6 +828,9 @@ static intmax_t
exp2 ()
{
register intmax_t val1, val2;
+#if defined (HAVE_IMAXDIV)
+ imaxdiv_t idiv;
+#endif
val1 = exppower ();
@@ -802,30 +839,70 @@ exp2 ()
(curtok == MOD))
{
int op = curtok;
+ char *stp, *sltp;
+ stp = tp;
readtok ();
val2 = exppower ();
+ /* Handle division by 0 and twos-complement arithmetic overflow */
if (((op == DIV) || (op == MOD)) && (val2 == 0))
{
if (noeval == 0)
- evalerror (_("division by 0"));
+ {
+ sltp = lasttp;
+ lasttp = stp;
+ while (lasttp && *lasttp && whitespace (*lasttp))
+ lasttp++;
+ evalerror (_("division by 0"));
+ lasttp = sltp;
+ }
else
val2 = 1;
}
+ else if (op == MOD && val1 == INTMAX_MIN && val2 == -1)
+ {
+ val1 = 0;
+ continue;
+ }
+ else if (op == DIV && val1 == INTMAX_MIN && val2 == -1)
+ val2 = 1;
if (op == MUL)
val1 *= val2;
- else if (op == DIV)
- val1 /= val2;
- else if (op == MOD)
- val1 %= val2;
+ else if (op == DIV || op == MOD)
+#if defined (HAVE_IMAXDIV)
+ {
+ idiv = imaxdiv (val1, val2);
+ val1 = (op == DIV) ? idiv.quot : idiv.rem;
+ }
+#else
+ val1 = (op == DIV) ? val1 / val2 : val1 % val2;
+#endif
+ lasttok = NUM;
}
return (val1);
}
static intmax_t
+ipow (base, exp)
+ intmax_t base, exp;
+{
+ intmax_t result;
+
+ result = 1;
+ while (exp)
+ {
+ if (exp & 1)
+ result *= base;
+ exp >>= 1;
+ base *= base;
+ }
+ return result;
+}
+
+static intmax_t
exppower ()
{
register intmax_t val1, val2, c;
@@ -835,13 +912,12 @@ exppower ()
{
readtok ();
val2 = exppower (); /* exponentiation is right-associative */
+ lasttok = NUM;
if (val2 == 0)
return (1);
if (val2 < 0)
evalerror (_("exponent less than 0"));
- for (c = 1; val2--; c *= val1)
- ;
- val1 = c;
+ val1 = ipow (val1, val2);
}
return (val1);
}
@@ -855,21 +931,25 @@ exp1 ()
{
readtok ();
val = !exp1 ();
+ lasttok = NUM;
}
else if (curtok == BNOT)
{
readtok ();
val = ~exp1 ();
+ lasttok = NUM;
}
else if (curtok == MINUS)
{
readtok ();
val = - exp1 ();
+ lasttok = NUM;
}
else if (curtok == PLUS)
{
readtok ();
val = exp1 ();
+ lasttok = NUM;
}
else
val = exp0 ();
@@ -899,9 +979,11 @@ exp0 ()
vincdec = itos (v2);
if (noeval == 0)
{
+#if defined (ARRAY_VARS)
if (curlval.ind != -1)
expr_bind_array_element (curlval.tokstr, curlval.ind, vincdec);
else
+#endif
expr_bind_variable (tokstr, vincdec);
}
free (vincdec);
@@ -912,6 +994,7 @@ exp0 ()
}
else if (curtok == LPAR)
{
+ /* XXX - save curlval here? Or entire expression context? */
readtok ();
val = EXP_HIGHEST ();
@@ -945,9 +1028,11 @@ exp0 ()
vincdec = itos (v2);
if (noeval == 0)
{
+#if defined (ARRAY_VARS)
if (curlval.ind != -1)
expr_bind_array_element (curlval.tokstr, curlval.ind, vincdec);
else
+#endif
expr_bind_variable (tokstr, vincdec);
}
free (vincdec);
@@ -955,11 +1040,11 @@ exp0 ()
}
else
{
+ /* XXX - watch out for pointer aliasing issues here */
if (stok == STR) /* free new tokstr before old one is restored */
FREE (tokstr);
RESTORETOK (&ec);
}
-
}
readtok ();
@@ -1048,8 +1133,8 @@ expr_streval (tok, e, lvalue)
jump_to_top_level (FORCE_EOF);
}
- ind = -1;
#if defined (ARRAY_VARS)
+ ind = -1;
/* Second argument of 0 to get_array_value means that we don't allow
references like array[@]. In this case, get_array_value is just
like get_variable_value in that it does not return newly-allocated
@@ -1066,7 +1151,11 @@ expr_streval (tok, e, lvalue)
lvalue->tokstr = tok; /* XXX */
lvalue->tokval = tval;
lvalue->tokvar = v; /* XXX */
+#if defined (ARRAY_VARS)
lvalue->ind = ind;
+#else
+ lvalue->ind = -1;
+#endif
}
return (tval);
diff --git a/externs.h b/externs.h
index 09244fa4..61fd0eba 100644
--- a/externs.h
+++ b/externs.h
@@ -78,6 +78,7 @@ extern void xtrace_print_cond_term __P((int, int, WORD_DESC *, char *, char *));
/* Functions from shell.c. */
extern void exit_shell __P((int)) __attribute__((__noreturn__));
extern void sh_exit __P((int)) __attribute__((__noreturn__));
+extern void subshell_exit __P((int)) __attribute__((__noreturn__));
extern void disable_priv_mode __P((void));
extern void unbind_args __P((void));
@@ -106,8 +107,14 @@ 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 *));
+extern int parser_in_command_position __P((void));
+
extern void free_pushed_string_input __P((void));
+extern int parser_expanding_alias __P((void));
+extern void parser_save_alias __P((void));
+extern void parser_restore_alias __P((void));
+
extern char *decode_prompt_string __P((char *));
extern int get_current_prompt_level __P((void));
@@ -227,6 +234,7 @@ 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));
+extern char *mitos __P((intmax_t));
extern char *uinttostr __P((uintmax_t, char *, size_t));
extern char *uitos __P((uintmax_t));
@@ -306,13 +314,14 @@ extern int sh_regmatch __P((const char *, const char *, int));
/* declarations for functions defined in lib/sh/shmbchar.c */
extern size_t mbstrlen __P((const char *));
extern char *mbsmbchar __P((const char *));
+extern int sh_mbsnlen __P((const char *, size_t, int));
/* declarations for functions defined in lib/sh/shquote.c */
extern char *sh_single_quote __P((const char *));
extern char *sh_double_quote __P((const char *));
extern char *sh_mkdoublequoted __P((const char *, int, int));
extern char *sh_un_double_quote __P((char *));
-extern char *sh_backslash_quote __P((char *));
+extern char *sh_backslash_quote __P((char *, const char *, int));
extern char *sh_backslash_quote_for_double_quotes __P((char *));
extern int sh_contains_shell_metas __P((char *));
@@ -374,6 +383,8 @@ extern void strlist_sort __P((STRINGLIST *));
extern char **strvec_create __P((int));
extern char **strvec_resize __P((char **, int));
+extern char **strvec_mcreate __P((int));
+extern char **strvec_mresize __P((char **, int));
extern void strvec_flush __P((char **));
extern void strvec_dispose __P((char **));
extern int strvec_remove __P((char **, char *));
@@ -461,6 +472,12 @@ extern unsigned int fsleep __P((unsigned int, unsigned int));
/* declarations for functions defined in lib/sh/unicode.c */
extern int u32cconv __P((unsigned long, char *));
+extern void u32reset __P((void));
+
+/* declarations for functions defined in lib/sh/wcsnwidth.c */
+#if defined (HANDLE_MULTIBYTE)
+extern int wcsnwidth __P((const wchar_t *, size_t, int));
+#endif
/* declarations for functions defined in lib/sh/winsize.c */
extern void get_new_window_size __P((int, int *, int *));
@@ -480,6 +497,7 @@ extern ssize_t zreadretry __P((int, char *, size_t));
extern ssize_t zreadintr __P((int, char *, size_t));
extern ssize_t zreadc __P((int, char *));
extern ssize_t zreadcintr __P((int, char *));
+extern ssize_t zreadn __P((int, char *, size_t));
extern void zreset __P((void));
extern void zsyncfd __P((int));
diff --git a/findcmd.c b/findcmd.c
index 330e3954..9f3d954f 100644
--- a/findcmd.c
+++ b/findcmd.c
@@ -1,6 +1,6 @@
/* findcmd.c -- Functions to search for commands by name. */
-/* Copyright (C) 1997-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -49,6 +49,7 @@ extern int errno;
#endif
extern int posixly_correct;
+extern int last_command_exit_value;
/* Static functions defined and used in this file. */
static char *_find_user_command_internal __P((const char *, int));
@@ -235,7 +236,7 @@ _find_user_command_internal (name, flags)
/* Search for the value of PATH in both the temporary environments and
in the regular list of variables. */
- if (var = find_variable_internal ("PATH", 1)) /* XXX could be array? */
+ if (var = find_variable_tempenv ("PATH")) /* XXX could be array? */
path_list = value_cell (var);
else
path_list = (char *)NULL;
@@ -296,10 +297,13 @@ get_next_path_element (path_list, path_index_pointer)
/* Look for PATHNAME in $PATH. Returns either the hashed command
corresponding to PATHNAME or the first instance of PATHNAME found
- in $PATH. Returns a newly-allocated string. */
+ in $PATH. If (FLAGS&1) is non-zero, insert the instance of PATHNAME
+ found in $PATH into the command hash table. Returns a newly-allocated
+ string. */
char *
-search_for_command (pathname)
+search_for_command (pathname, flags)
const char *pathname;
+ int flags;
{
char *hashed_file, *command;
int temp_path, st;
@@ -309,7 +313,7 @@ search_for_command (pathname)
/* If PATH is in the temporary environment for this command, don't use the
hash table to search for the full pathname. */
- path = find_variable_internal ("PATH", 1);
+ path = find_variable_tempenv ("PATH");
temp_path = path && tempvar_p (path);
if (temp_path == 0 && path)
path = (SHELL_VAR *)NULL;
@@ -352,7 +356,7 @@ search_for_command (pathname)
}
else
command = find_user_command (pathname);
- if (command && hashing_enabled && temp_path == 0)
+ if (command && hashing_enabled && temp_path == 0 && (flags & 1))
phash_insert ((char *)pathname, command, dot_found_in_search, 1); /* XXX fix const later */
}
return (command);
@@ -398,7 +402,8 @@ user_command_matches (name, flags, state)
name_len = strlen (name);
file_to_lose_on = (char *)NULL;
dot_found_in_search = 0;
- stat (".", &dotinfo);
+ if (stat (".", &dotinfo) < 0)
+ dotinfo.st_dev = dotinfo.st_ino = 0; /* so same_file won't match */
path_list = get_string_value ("PATH");
path_index = 0;
}
@@ -569,7 +574,8 @@ find_user_command_in_path (name, path_list, flags)
file_to_lose_on = (char *)NULL;
name_len = strlen (name);
- stat (".", &dotinfo);
+ if (stat (".", &dotinfo) < 0)
+ dotinfo.st_dev = dotinfo.st_ino = 0;
path_index = 0;
while (path_list[path_index])
diff --git a/findcmd.h b/findcmd.h
index db74c1cb..52ad1d0b 100644
--- a/findcmd.h
+++ b/findcmd.h
@@ -1,6 +1,6 @@
/* findcmd.h - functions from findcmd.c. */
-/* Copyright (C) 1997-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -29,7 +29,7 @@ extern int is_directory __P((const char *));
extern int executable_or_directory __P((const char *));
extern char *find_user_command __P((const char *));
extern char *find_path_file __P((const char *));
-extern char *search_for_command __P((const char *));
+extern char *search_for_command __P((const char *, int));
extern char *user_command_matches __P((const char *, int, int));
#endif /* _FINDCMD_H_ */
diff --git a/flags.c b/flags.c
index d3b38ad3..eaec9aae 100644
--- a/flags.c
+++ b/flags.c
@@ -40,6 +40,7 @@ extern char *shell_name;
#endif
extern int shell_initialized;
+extern int builtin_ignoring_errexit;
/* -c, -s invocation options -- not really flags, but they show up in $- */
extern int want_pending_command, read_from_stdin;
@@ -59,7 +60,9 @@ int mark_modified_vars = 0;
int asynchronous_notification = 0;
/* Non-zero means exit immediately if a command exits with a non-zero
- exit status. */
+ exit status. The first is what controls set -e; the second is what
+ bash uses internally. */
+int errexit_flag = 0;
int exit_immediately_on_error = 0;
/* Non-zero means disable filename globbing. */
@@ -126,7 +129,11 @@ int hashing_enabled = 1;
#if defined (BANG_HISTORY)
/* Non-zero means that we are doing history expansion. The default.
This means !22 gets the 22nd line of history. */
+# if defined (STRICT_POSIX)
+int history_expansion = 0;
+# else
int history_expansion = 1;
+# endif
#endif /* BANG_HISTORY */
/* Non-zero means that we allow comments to appear in interactive commands. */
@@ -175,7 +182,7 @@ const struct flags_alist shell_flags[] = {
#if defined (JOB_CONTROL)
{ 'b', &asynchronous_notification },
#endif /* JOB_CONTROL */
- { 'e', &exit_immediately_on_error },
+ { 'e', &errexit_flag },
{ 'f', &disallow_filename_globbing },
{ 'h', &hashing_enabled },
{ 'i', &forced_interactive },
@@ -250,7 +257,6 @@ change_flag (flag, on_or_off)
return (FLAG_ERROR);
old_value = *value;
-
*value = (on_or_off == FLAG_ON) ? 1 : 0;
/* Special cases for a few flags. */
@@ -269,6 +275,11 @@ change_flag (flag, on_or_off)
break;
#endif /* JOB_CONTROL */
+ case 'e':
+ if (builtin_ignoring_errexit == 0)
+ exit_immediately_on_error = errexit_flag;
+ break;
+
case 'n':
if (interactive_shell)
read_but_dont_execute = 0;
diff --git a/flags.h b/flags.h
index d8fa7570..830edab4 100644
--- a/flags.h
+++ b/flags.h
@@ -41,11 +41,12 @@ extern const struct flags_alist shell_flags[];
extern char optflags[];
extern int
- mark_modified_vars, exit_immediately_on_error, disallow_filename_globbing,
+ mark_modified_vars, errexit_flag, exit_immediately_on_error,
+ disallow_filename_globbing,
place_keywords_in_env, read_but_dont_execute,
just_one_command, unbound_vars_is_error, echo_input_at_read,
echo_command_at_execute, no_invisible_vars, noclobber,
- hashing_enabled, forced_interactive, privileged_mode,
+ hashing_enabled, forced_interactive, privileged_mode, jobs_m_flag,
asynchronous_notification, interactive_comments, no_symbolic_links,
function_trace_mode, error_trace_mode, pipefail_opt;
diff --git a/general.c b/general.c
index fdadf1d5..087689eb 100644
--- a/general.c
+++ b/general.c
@@ -1,6 +1,6 @@
/* general.c -- Stuff that is used by all files. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -21,7 +21,7 @@
#include "config.h"
#include "bashtypes.h"
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
#include "posixstat.h"
@@ -40,6 +40,7 @@
#include "shell.h"
#include "test.h"
+#include "trap.h"
#include <tilde/tilde.h>
@@ -171,6 +172,9 @@ legal_number (string, result)
if (result)
*result = 0;
+ if (string == 0)
+ return 0;
+
errno = 0;
value = strtoimax (string, &ep, 10);
if (errno || ep == string)
@@ -182,7 +186,7 @@ legal_number (string, result)
/* If *string is not '\0' but *ep is '\0' on return, the entire string
is valid. */
- if (string && *string && *ep == '\0')
+ if (*string && *ep == '\0')
{
if (result)
*result = value;
@@ -398,7 +402,8 @@ check_dev_tty ()
return;
tty_fd = open (tty, O_RDWR|O_NONBLOCK);
}
- close (tty_fd);
+ if (tty_fd >= 0)
+ close (tty_fd);
}
/* Return 1 if PATH1 and PATH2 are the same file. This is kind of
@@ -562,7 +567,7 @@ file_iswdir (fn)
/* Return 1 if STRING is "." or "..", optionally followed by a directory
separator */
int
-dot_or_dotdot (string)
+path_dot_or_dotdot (string)
const char *string;
{
if (string == 0 || *string == '\0' || *string != '.')
@@ -766,7 +771,7 @@ trim_pathname (name, maxlen)
*nbeg++ = '.';
nlen = nend - ntail;
- memcpy (nbeg, ntail, nlen);
+ memmove (nbeg, ntail, nlen);
nbeg[nlen] = '\0';
return name;
@@ -980,7 +985,13 @@ bash_tilde_expand (s, assign_p)
old_immed = interrupt_immediately;
old_term = terminate_immediately;
- interrupt_immediately = terminate_immediately = 1;
+ /* We want to be able to interrupt tilde expansion. Ordinarily, we can just
+ jump to top_level, but we don't want to run any trap commands in a signal
+ handler context. We might be able to get away with just checking for
+ things like SIGINT and SIGQUIT. */
+ if (any_signals_trapped () < 0)
+ interrupt_immediately = 1;
+ terminate_immediately = 1;
tilde_additional_prefixes = assign_p == 0 ? (char **)0
: (assign_p == 2 ? bash_tilde_prefixes2 : bash_tilde_prefixes);
@@ -989,8 +1000,12 @@ 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;
+
+ QUIT;
+
return (ret);
}
diff --git a/general.h b/general.h
index 2b31c58a..1f8c54ae 100644
--- a/general.h
+++ b/general.h
@@ -124,7 +124,7 @@ typedef struct {
int token;
} STRING_INT_ALIST;
-/* A macro to avoid making an uneccessary function call. */
+/* A macro to avoid making an unneccessary function call. */
#define REVERSE_LIST(list, type) \
((list && list->next) ? (type)list_reverse ((GENERIC_LIST *)list) \
: (type)(list))
@@ -304,7 +304,7 @@ 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 dot_or_dotdot __P((const char *));
+extern int path_dot_or_dotdot __P((const char *));
extern int absolute_pathname __P((const char *));
extern int absolute_program __P((const char *));
diff --git a/include/chartypes.h b/include/chartypes.h
index 77bcad97..c7080181 100644
--- a/include/chartypes.h
+++ b/include/chartypes.h
@@ -35,7 +35,7 @@
eliminate the && through constant folding."
Solaris defines some of these symbols so we must undefine them first. */
-#if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
+#if STDC_HEADERS || (!defined (isascii) && !HAVE_ISASCII)
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
diff --git a/include/posixdir.h b/include/posixdir.h
index bd33694d..0921c5d7 100644
--- a/include/posixdir.h
+++ b/include/posixdir.h
@@ -1,6 +1,6 @@
/* posixdir.h -- Posix directory reading includes and defines. */
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
+/* Copyright (C) 1987,1991,2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -46,16 +46,26 @@
# define D_NAMLEN(d) ((d)->d_namlen)
#endif /* !HAVE_DIRENT_H */
+/* The bash code fairly consistenly uses d_fileno; make sure it's available */
#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
# define d_fileno d_ino
#endif
-#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO))
/* Posix does not require that the d_ino field be present, and some
systems do not provide it. */
+#if !defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO)
# define REAL_DIR_ENTRY(dp) 1
#else
# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
#endif /* _POSIX_SOURCE */
+#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (BROKEN_DIRENT_D_INO)
+# define D_INO_AVAILABLE
+#endif
+
+/* Signal the rest of the code that it can safely use dirent.d_fileno */
+#if defined (D_INO_AVAILABLE) || defined (HAVE_STRUCT_DIRENT_D_FILENO)
+# define D_FILENO_AVAILABLE 1
+#endif
+
#endif /* !_POSIXDIR_H_ */
diff --git a/include/posixjmp.h b/include/posixjmp.h
index 49bfecf3..98cf7185 100644
--- a/include/posixjmp.h
+++ b/include/posixjmp.h
@@ -30,11 +30,13 @@
# if !defined (__OPENNT)
# undef setjmp
# define setjmp(x) sigsetjmp((x), 1)
+# define setjmp_nosigs(x) sigsetjmp((x), 0)
# undef longjmp
# define longjmp(x, n) siglongjmp((x), (n))
# endif /* !__OPENNT */
#else
# define procenv_t jmp_buf
+# define setjmp_nosigs setjmp
#endif
#endif /* _POSIXJMP_H_ */
diff --git a/include/shmbutil.h b/include/shmbutil.h
index e349e6fe..afb381a4 100644
--- a/include/shmbutil.h
+++ b/include/shmbutil.h
@@ -36,6 +36,8 @@ extern size_t mbstrlen __P((const char *));
extern char *xstrchr __P((const char *, int));
+extern int locale_mb_cur_max; /* XXX */
+
#ifndef MB_INVALIDCH
#define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2)
#define MB_NULLWCH(x) ((x) == 0)
@@ -98,7 +100,7 @@ extern char *xstrchr __P((const char *, int));
# define ADVANCE_CHAR(_str, _strsize, _i) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -138,7 +140,7 @@ extern char *xstrchr __P((const char *, int));
# define ADVANCE_CHAR_P(_str, _strsize) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -173,7 +175,7 @@ extern char *xstrchr __P((const char *, int));
# define BACKUP_CHAR(_str, _strsize, _i) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -215,7 +217,7 @@ extern char *xstrchr __P((const char *, int));
# define BACKUP_CHAR_P(_base, _strsize, _str) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -256,7 +258,7 @@ extern char *xstrchr __P((const char *, int));
# define COPY_CHAR_P(_dst, _src, _srcend) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -295,7 +297,7 @@ extern char *xstrchr __P((const char *, int));
# define COPY_CHAR_I(_dst, _di, _src, _srcend, _si) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -338,7 +340,7 @@ extern char *xstrchr __P((const char *, int));
# define SCOPY_CHAR_I(_dst, _escchar, _sc, _src, _si, _slen) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -385,7 +387,7 @@ extern char *xstrchr __P((const char *, int));
# define SCOPY_CHAR_M(_dst, _src, _srcend, _si) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
mbstate_t state_bak; \
size_t mblength; \
@@ -429,7 +431,7 @@ extern char *xstrchr __P((const char *, int));
# define SADD_MBCHAR(_dst, _src, _si, _srcsize) \
do \
{ \
- if (MB_CUR_MAX > 1) \
+ if (locale_mb_cur_max > 1) \
{ \
int i; \
mbstate_t state_bak; \
@@ -465,7 +467,7 @@ extern char *xstrchr __P((const char *, int));
# define SADD_MBCHAR(_dst, _src, _si, _srcsize)
#endif
-/* Watch out when using this -- it's just straight textual subsitution */
+/* Watch out when using this -- it's just straight textual substitution */
#if defined (HANDLE_MULTIBYTE)
# define SADD_MBQCHAR_BODY(_dst, _src, _si, _srcsize) \
\
diff --git a/include/stat-time.h b/include/stat-time.h
new file mode 100644
index 00000000..e04cc619
--- /dev/null
+++ b/include/stat-time.h
@@ -0,0 +1,214 @@
+/* stat-related time functions.
+
+ Copyright (C) 2005, 2007, 2009-2012 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 <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+#ifndef STAT_TIME_H
+#define STAT_TIME_H 1
+
+#include <sys/stat.h>
+
+#if defined (TIME_H_DEFINES_STRUCT_TIMESPEC)
+# include <time.h>
+#elif defined (SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)
+# include <sys/time.h>
+#elif defined (PTHREAD_H_DEFINES_STRUCT_TIMESPEC)
+# include <pthread.h>
+#endif
+
+#ifndef HAVE_STRUCT_TIMESPEC
+struct timespec
+{
+ time_t tv_sec;
+ long int tv_nsec;
+};
+#endif
+
+/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type
+ struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST,
+ ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST,
+ if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim
+ for access, status change, data modification, or birth (creation)
+ time respectively.
+
+ These macros are private to stat-time.h. */
+#if defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
+# ifdef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
+# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim)
+# else
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec)
+# endif
+#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
+# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec)
+#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec)
+#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec)
+#endif
+
+/* Return the nanosecond component of *ST's access time. */
+static inline long int
+get_stat_atime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_atim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_atim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's status change time. */
+static inline long int
+get_stat_ctime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_ctim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_ctim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's data modification time. */
+static inline long int
+get_stat_mtime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_mtim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_mtim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's birth time. */
+static inline long int
+get_stat_birthtime_ns (struct stat const *st)
+{
+# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
+ return STAT_TIMESPEC (st, st_birthtim).tv_nsec;
+# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+ return STAT_TIMESPEC_NS (st, st_birthtim);
+# else
+ /* Avoid a "parameter unused" warning. */
+ (void) st;
+ return 0;
+# endif
+}
+
+/* Return *ST's access time. */
+static inline struct timespec
+get_stat_atime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_atim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_atime;
+ t.tv_nsec = get_stat_atime_ns (st);
+ return t;
+#endif
+}
+
+/* Return *ST's status change time. */
+static inline struct timespec
+get_stat_ctime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_ctim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_ctime;
+ t.tv_nsec = get_stat_ctime_ns (st);
+ return t;
+#endif
+}
+
+/* Return *ST's data modification time. */
+static inline struct timespec
+get_stat_mtime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_mtim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_mtime;
+ t.tv_nsec = get_stat_mtime_ns (st);
+ return t;
+#endif
+}
+
+static inline int
+timespec_cmp (struct timespec a, struct timespec b)
+{
+ return (a.tv_sec < b.tv_sec
+ ? -1
+ : (a.tv_sec > b.tv_sec
+ ? 1
+ : (int) (a.tv_nsec - b.tv_nsec)));
+}
+
+/* Return *ST's birth time, if available; otherwise return a value
+ with tv_sec and tv_nsec both equal to -1. */
+static inline struct timespec
+get_stat_birthtime (struct stat const *st)
+{
+ struct timespec t;
+
+#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC)
+ t = STAT_TIMESPEC (st, st_birthtim);
+#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+ t.tv_sec = st->st_birthtime;
+ t.tv_nsec = st->st_birthtimensec;
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* Native Windows platforms (but not Cygwin) put the "file creation
+ time" in st_ctime (!). See
+ <http://msdn2.microsoft.com/de-de/library/14h5k7ff(VS.80).aspx>. */
+ t.tv_sec = st->st_ctime;
+ t.tv_nsec = 0;
+#else
+ /* Birth time is not supported. */
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ /* Avoid a "parameter unused" warning. */
+ (void) st;
+#endif
+
+#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC)
+ /* FreeBSD and NetBSD sometimes signal the absence of knowledge by
+ using zero. Attempt to work around this problem. Alas, this can
+ report failure even for valid time stamps. Also, NetBSD
+ sometimes returns junk in the birth time fields; work around this
+ bug if it is detected. */
+ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
+ {
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ }
+#endif
+
+ return t;
+}
+
+#endif
diff --git a/include/stdc.h b/include/stdc.h
index df01d813..d2fd4b25 100644
--- a/include/stdc.h
+++ b/include/stdc.h
@@ -36,10 +36,11 @@
# endif
#endif
+/* Fortify, at least, has trouble with this definition */
#if defined (HAVE_STRINGIZE)
-# define __STRING(x) #x
+# define CPP_STRING(x) #x
#else
-# define __STRING(x) "x"
+# define CPP_STRING(x) "x"
#endif
#if !defined (__STDC__)
diff --git a/include/systimes.h b/include/systimes.h
index 9629d255..ec2d92f5 100644
--- a/include/systimes.h
+++ b/include/systimes.h
@@ -45,7 +45,7 @@ struct tms
};
/* Store the CPU time used by this process and all its
- dead descendents in BUFFER.
+ dead descendants in BUFFER.
Return the elapsed real time from an arbitrary point in the
past (the bash emulation uses the epoch), or (clock_t) -1 for
errors. All times are in CLK_TCKths of a second. */
diff --git a/include/typemax.h b/include/typemax.h
index 300b1133..aa21c9c6 100644
--- a/include/typemax.h
+++ b/include/typemax.h
@@ -96,4 +96,8 @@ static const unsigned long long int maxquad = ULLONG_MAX;
# define SSIZE_MAX 32767 /* POSIX minimum max */
#endif
+#ifndef SIZE_MAX
+# define SIZE_MAX 65535 /* POSIX minimum max */
+#endif
+
#endif /* _SH_TYPEMAX_H */
diff --git a/input.c b/input.c
index 2731e290..14c6f4e0 100644
--- a/input.c
+++ b/input.c
@@ -42,6 +42,7 @@
#include "error.h"
#include "externs.h"
#include "quit.h"
+#include "trap.h"
#if !defined (errno)
extern int errno;
@@ -83,24 +84,34 @@ getc_with_restart (stream)
{
while (1)
{
- CHECK_TERMSIG;
+ QUIT;
+ run_pending_traps ();
+
local_bufused = read (fileno (stream), localbuf, sizeof(localbuf));
if (local_bufused > 0)
break;
+ else if (local_bufused == 0)
+ {
+ local_index = 0;
+ return EOF;
+ }
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));
+ local_index = local_bufused = 0;
return EOF;
}
continue;
}
- else if (local_bufused == 0 || errno != EINTR)
+ else if (errno != EINTR)
{
- local_index = 0;
+ local_index = local_bufused = 0;
return EOF;
}
+ else if (interrupt_state || terminating_signal) /* QUIT; */
+ local_index = local_bufused = 0;
}
local_index = 0;
}
@@ -301,7 +312,7 @@ save_bash_input (fd, new_fd)
the buffered stream. Make sure the file descriptor used to save bash
input is set close-on-exec. Returns 0 on success, -1 on failure. This
works only if fd is > 0 -- if fd == 0 and bash is reading input from
- fd 0, save_bash_input is used instead, to cooperate with input
+ fd 0, sync_buffered_stream is used instead, to cooperate with input
redirection (look at redir.c:add_undo_redirect()). */
int
check_bash_input (fd)
@@ -450,7 +461,7 @@ close_buffered_fd (fd)
return (close_buffered_stream (buffers[fd]));
}
-/* Make the BUFFERED_STREAM associcated with buffers[FD] be BP, and return
+/* Make the BUFFERED_STREAM associated with buffers[FD] be BP, and return
the old BUFFERED_STREAM. */
BUFFERED_STREAM *
set_buffered_stream (fd, bp)
diff --git a/jobs.c b/jobs.c
index d63c5dd9..2452779c 100644
--- a/jobs.c
+++ b/jobs.c
@@ -3,7 +3,7 @@
/* This file works with both POSIX and BSD systems. It implements job
control. */
-/* Copyright (C) 1989-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -45,7 +45,9 @@
#include "filecntl.h"
#include <sys/ioctl.h>
+#if defined (HAVE_SYS_PARAM_H)
#include <sys/param.h>
+#endif
#if defined (BUFFERED_INPUT)
# include "input.h"
@@ -81,7 +83,14 @@ extern int errno;
extern int killpg __P((pid_t, int));
#endif
-#define DEFAULT_CHILD_MAX 32
+#if !DEFAULT_CHILD_MAX
+# define DEFAULT_CHILD_MAX 32
+#endif
+
+#if !MAX_CHILD_MAX
+# define MAX_CHILD_MAX 8192
+#endif
+
#if !defined (DEBUG)
#define MAX_JOBS_IN_ARRAY 4096 /* production */
#else
@@ -203,10 +212,10 @@ int previous_job = NO_JOB;
#endif
/* Last child made by the shell. */
-pid_t last_made_pid = NO_PID;
+volatile pid_t last_made_pid = NO_PID;
/* Pid of the last asynchronous child. */
-pid_t last_asynchronous_pid = NO_PID;
+volatile pid_t last_asynchronous_pid = NO_PID;
/* The pipeline currently being built. */
PROCESS *the_pipeline = (PROCESS *)NULL;
@@ -219,7 +228,7 @@ int already_making_children = 0;
/* If this is non-zero, $LINES and $COLUMNS are reset after every process
exits from get_tty_state(). */
-int check_window_size;
+int check_window_size = CHECKWINSIZE_DEFAULT;
/* Functions local to this file. */
@@ -318,10 +327,6 @@ static int jobs_list_frozen;
static char retcode_name_buffer[64];
-/* flags to detect pid wraparound */
-static pid_t first_pid = NO_PID;
-static int pid_wrap = -1;
-
#if !defined (_POSIX_VERSION)
/* These are definitions to map POSIX 1003.1 functions onto existing BSD
@@ -348,8 +353,6 @@ void
init_job_stats ()
{
js = zerojs;
- first_pid = NO_PID;
- pid_wrap = -1;
}
/* Return the working directory for the current process. Unlike
@@ -886,7 +889,9 @@ delete_old_job (pid)
delete_job (job, DEL_NOBGPID);
else
{
- internal_warning (_("forked pid %d appears in running job %d"), pid, job);
+#ifdef DEBUG
+ internal_warning (_("forked pid %d appears in running job %d"), pid, job+1);
+#endif
if (p)
p->pid = 0;
}
@@ -929,7 +934,7 @@ realloc_jobs_list ()
}
}
-#if defined (DEBUG)
+#if 0
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);
@@ -960,14 +965,14 @@ realloc_jobs_list ()
if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
reset_current ();
-#ifdef DEBUG
+#if 0
itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
#endif
UNBLOCK_CHILD (oset);
}
-/* Compact the jobs list by removing dead jobs. Assumed that we have filled
+/* Compact the jobs list by removing dead jobs. Assume that we have filled
the jobs array to some predefined maximum. Called when the shell is not
the foreground process (subshell_environment != 0). Returns the first
available slot in the compacted list. If that value is js.j_jobslots, then
@@ -983,7 +988,7 @@ compact_jobs_list (flags)
reap_dead_jobs ();
realloc_jobs_list ();
-#ifdef DEBUG
+#if 0
itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
#endif
@@ -1714,6 +1719,8 @@ make_child (command, async_p)
sigset_t set, oset;
pid_t pid;
+ /* XXX - block SIGTERM here and unblock in child after fork resets the
+ set of pending signals? */
sigemptyset (&set);
sigaddset (&set, SIGCHLD);
sigaddset (&set, SIGINT);
@@ -1734,6 +1741,8 @@ make_child (command, async_p)
sync_buffered_stream (default_buffered_input);
#endif /* BUFFERED_INPUT */
+ RESET_SIGTERM;
+
/* Create the child, handle severe errors. Retry on EAGAIN. */
while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX)
{
@@ -1742,11 +1751,16 @@ make_child (command, async_p)
waitchld (-1, 0);
sys_error ("fork: retry");
+ RESET_SIGTERM;
+
if (sleep (forksleep) != 0)
break;
forksleep <<= 1;
}
+ if (pid != 0)
+ RESET_SIGTERM;
+
if (pid < 0)
{
sys_error ("fork");
@@ -1856,13 +1870,6 @@ make_child (command, async_p)
/* In the parent. Remember the pid of the child just created
as the proper pgrp if this is the first child. */
- if (first_pid == NO_PID)
- first_pid = pid;
- else if (pid_wrap == -1 && pid < first_pid)
- pid_wrap = 0;
- else if (pid_wrap == 0 && pid >= first_pid)
- pid_wrap = 1;
-
if (job_control)
{
if (pipeline_pgrp == 0)
@@ -1896,15 +1903,13 @@ make_child (command, async_p)
last_asynchronous_pid = 1;
#endif
- if (pid_wrap > 0)
- delete_old_job (pid);
+ /* Delete the saved status for any job containing this PID in case it's
+ been reused. */
+ delete_old_job (pid);
-#if !defined (RECYCLES_PIDS)
- /* Only check for saved status if we've saved more than CHILD_MAX
- statuses, unless the system recycles pids. */
- if ((js.c_reaped + bgpids.npid) >= js.c_childmax)
-#endif
- bgp_delete (pid); /* new process, discard any saved status */
+ /* Perform the check for pid reuse unconditionally. Some systems reuse
+ PIDs before giving a process CHILD_MAX/_SC_CHILD_MAX unique ones. */
+ bgp_delete (pid); /* new process, discard any saved status */
last_made_pid = pid;
@@ -2212,6 +2217,10 @@ wait_for_background_pids ()
#define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids
static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER;
+static int wait_sigint_received;
+static int child_caught_sigint;
+static int waiting_for_child;
+
static void
restore_sigint_handler ()
{
@@ -2219,11 +2228,10 @@ restore_sigint_handler ()
{
set_signal_handler (SIGINT, old_sigint_handler);
old_sigint_handler = INVALID_SIGNAL_HANDLER;
+ waiting_for_child = 0;
}
}
-static int wait_sigint_received;
-
/* Handle SIGINT while we are waiting for children in a script to exit.
The `wait' builtin should be interruptible, but all others should be
effectively ignored (i.e. not cause the shell to exit). */
@@ -2236,7 +2244,7 @@ wait_sigint_handler (sig)
if (interrupt_immediately ||
(this_shell_builtin && this_shell_builtin == wait_builtin))
{
- last_command_exit_value = EXECUTION_FAILURE;
+ last_command_exit_value = 128+SIGINT;
restore_sigint_handler ();
/* If we got a SIGINT while in `wait', and SIGINT is trapped, do
what POSIX.2 says (see builtins/wait.def for more info). */
@@ -2244,19 +2252,36 @@ wait_sigint_handler (sig)
signal_is_trapped (SIGINT) &&
((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler))
{
- interrupt_immediately = 0;
trap_handler (SIGINT); /* set pending_traps[SIGINT] */
wait_signal_received = SIGINT;
- longjmp (wait_intr_buf, 1);
+ if (interrupt_immediately)
+ {
+ interrupt_immediately = 0;
+ longjmp (wait_intr_buf, 1);
+ }
+ else
+ /* Let CHECK_WAIT_INTR handle it in wait_for/waitchld */
+ SIGRETURN (0);
}
-
- ADDINTERRUPT;
- QUIT;
+ else if (interrupt_immediately)
+ {
+ ADDINTERRUPT;
+ QUIT;
+ }
+ else /* wait_builtin but signal not trapped, treat as interrupt */
+ kill (getpid (), SIGINT);
}
/* XXX - should this be interrupt_state? If it is, the shell will act
as if it got the SIGINT interrupt. */
- wait_sigint_received = 1;
+ if (waiting_for_child)
+ wait_sigint_received = 1;
+ else
+ {
+ last_command_exit_value = 128+SIGINT;
+ restore_sigint_handler ();
+ kill (getpid (), SIGINT);
+ }
/* Otherwise effectively ignore the SIGINT and allow the running job to
be killed. */
@@ -2380,6 +2405,7 @@ wait_for (pid)
/* In the case that this code is interrupted, and we longjmp () out of it,
we are relying on the code in throw_to_top_level () to restore the
top-level signal mask. */
+ child = 0;
BLOCK_CHILD (set, oset);
/* Ignore interrupts while waiting for a job run without job control
@@ -2392,10 +2418,11 @@ wait_for (pid)
substitution. */
/* This is possibly a race condition -- should it go in stop_pipeline? */
- wait_sigint_received = 0;
+ wait_sigint_received = child_caught_sigint = 0;
if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
{
old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+ waiting_for_child = 0;
if (old_sigint_handler == SIG_IGN)
set_signal_handler (SIGINT, old_sigint_handler);
}
@@ -2407,13 +2434,17 @@ wait_for (pid)
/* Check for terminating signals and exit the shell if we receive one */
CHECK_TERMSIG;
+ /* Check for a trapped signal interrupting the wait builtin and jump out */
+ CHECK_WAIT_INTR;
+
/* If we say wait_for (), then we have a record of this child somewhere.
If it and none of its peers are running, don't call waitchld(). */
job = NO_JOB;
do
{
- FIND_CHILD (pid, child);
+ if (pid != ANY_PID)
+ FIND_CHILD (pid, child);
/* If this child is part of a job, then we are really waiting for the
job to finish. Otherwise, we are waiting for the child to finish.
@@ -2426,7 +2457,7 @@ wait_for (pid)
has already exited before this is called, sigchld_handler will have
called waitchld and the state will be set to JDEAD. */
- if (PRUNNING(child) || (job != NO_JOB && RUNNING (job)))
+ if (pid == ANY_PID || PRUNNING(child) || (job != NO_JOB && RUNNING (job)))
{
#if defined (WAITPID_BROKEN) /* SCOv4 */
sigset_t suspend_set;
@@ -2444,10 +2475,18 @@ wait_for (pid)
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
act.sa_flags = 0;
- sigaction (SIGCHLD, &act, &oact);
+# if defined (SA_RESTART)
+ act.sa_flags |= SA_RESTART;
# endif
+ sigaction (SIGCHLD, &act, &oact);
+# endif /* MUST_UNBLOCK_CHLD */
queue_sigchld = 1;
- r = waitchld (pid, 1);
+ waiting_for_child++;
+ r = waitchld (pid, 1); /* XXX */
+ waiting_for_child--;
+#if 0
+itrace("wait_for: blocking wait for %d returns %d child = %p", (int)pid, r, child);
+#endif
# if defined (MUST_UNBLOCK_CHLD)
sigaction (SIGCHLD, &oact, (struct sigaction *)NULL);
sigprocmask (SIG_SETMASK, &chldset, (sigset_t *)NULL);
@@ -2456,6 +2495,7 @@ wait_for (pid)
if (r == -1 && errno == ECHILD && this_shell_builtin == wait_builtin)
{
termination_state = -1;
+ /* XXX - restore sigint handler here? */
goto wait_for_return;
}
@@ -2465,8 +2505,11 @@ wait_for (pid)
if it exists, as JDEAD. */
if (r == -1 && errno == ECHILD)
{
- child->running = PS_DONE;
- WSTATUS (child->status) = 0; /* XXX -- can't find true status */
+ if (child)
+ {
+ child->running = PS_DONE;
+ WSTATUS (child->status) = 0; /* XXX -- can't find true status */
+ }
js.c_living = 0; /* no living child processes */
if (job != NO_JOB)
{
@@ -2474,6 +2517,11 @@ wait_for (pid)
js.c_reaped++;
js.j_ndead++;
}
+ if (pid == ANY_PID)
+ {
+ termination_state = -1;
+ break;
+ }
}
#endif /* WAITPID_BROKEN */
}
@@ -2486,9 +2534,20 @@ wait_for (pid)
QUIT;
/* Check for terminating signals and exit the shell if we receive one */
CHECK_TERMSIG;
+
+ /* Check for a trapped signal interrupting the wait builtin and jump out */
+ CHECK_WAIT_INTR;
+
+ if (pid == ANY_PID)
+ /* XXX - could set child but we don't have a handle on what waitchld
+ reaps. Leave termination_state alone. */
+ goto wait_for_return;
}
while (PRUNNING (child) || (job != NO_JOB && RUNNING (job)));
+ /* Restore the original SIGINT signal handler before we return. */
+ restore_sigint_handler ();
+
/* The exit state of the command is either the termination state of the
child, or the termination state of the job. If a job, the status
of the last child in the pipeline is the significant one. If the command
@@ -2585,11 +2644,10 @@ if (job == NO_JOB)
and being killed by the SIGINT to pass the status back to our
parent. */
s = job_signal_status (job);
-
- if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0)
+
+ if (child_caught_sigint == 0 && signal_is_trapped (SIGINT) == 0)
{
UNBLOCK_CHILD (oset);
- restore_sigint_handler ();
old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL);
if (old_sigint_handler == SIG_IGN)
restore_sigint_handler ();
@@ -2597,6 +2655,8 @@ if (job == NO_JOB)
kill (getpid (), SIGINT);
}
}
+ else if (interactive_shell == 0 && IS_FOREGROUND (job) && check_window_size)
+ get_new_window_size (0, (int *)0, (int *)0);
/* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD
signal handler path */
@@ -2615,9 +2675,6 @@ wait_for_return:
UNBLOCK_CHILD (oset);
- /* Restore the original SIGINT signal handler before we return. */
- restore_sigint_handler ();
-
return (termination_state);
}
@@ -2650,6 +2707,76 @@ wait_for_job (job)
return r;
}
+/* Wait for any background job started by this shell to finish. Very
+ similar to wait_for_background_pids(). Returns the exit status of
+ the next exiting job, -1 if there are no background jobs. The caller
+ is responsible for translating -1 into the right return value. */
+int
+wait_for_any_job ()
+{
+ pid_t pid;
+ int i, r, waited_for;
+ sigset_t set, oset;
+
+ if (jobs_list_frozen)
+ return -1;
+
+ /* First see if there are any unnotified dead jobs that we can report on */
+ BLOCK_CHILD (set, oset);
+ for (i = 0; i < js.j_jobslots; i++)
+ {
+ if (jobs[i] && DEADJOB (i) && IS_NOTIFIED (i) == 0)
+ {
+return_job:
+ r = job_exit_status (i);
+ notify_of_job_status (); /* XXX */
+ delete_job (i, 0);
+#if defined (COPROCESS_SUPPORT)
+ coproc_reap ();
+#endif
+ UNBLOCK_CHILD (oset);
+ return r;
+ }
+ }
+ UNBLOCK_CHILD (oset);
+
+ /* At this point, we have no dead jobs in the jobs table. Wait until we
+ get one, even if it takes multiple pids exiting. */
+ for (waited_for = 0;;)
+ {
+ /* Make sure there is a background job to wait for */
+ BLOCK_CHILD (set, oset);
+ for (i = 0; i < js.j_jobslots; i++)
+ if (jobs[i] && RUNNING (i) && IS_FOREGROUND (i) == 0)
+ break;
+ if (i == js.j_jobslots)
+ {
+ UNBLOCK_CHILD (oset);
+ return -1;
+ }
+
+ UNBLOCK_CHILD (oset);
+
+ QUIT;
+ CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
+
+ errno = 0;
+ r = wait_for (ANY_PID); /* special sentinel value for wait_for */
+ if (r == -1 && errno == ECHILD)
+ mark_all_jobs_as_dead ();
+
+ /* Now we see if we have any dead jobs and return the first one */
+ BLOCK_CHILD (set, oset);
+ for (i = 0; i < js.j_jobslots; i++)
+ if (jobs[i] && DEADJOB (i))
+ goto return_job;
+ UNBLOCK_CHILD (oset);
+ }
+
+ return -1;
+}
+
/* Print info about dead jobs, and then delete them from the list
of known jobs. This does not actually delete jobs when the
shell is not interactive, because the dead jobs are not marked
@@ -3066,6 +3193,7 @@ waitchld (wpid, block)
WAIT status;
PROCESS *child;
pid_t pid;
+
int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */
@@ -3081,8 +3209,11 @@ waitchld (wpid, block)
: 0;
if (sigchld || block == 0)
waitpid_flags |= WNOHANG;
+
/* Check for terminating signals and exit the shell if we receive one */
CHECK_TERMSIG;
+ /* Check for a trapped signal interrupting the wait builtin and jump out */
+ CHECK_WAIT_INTR;
if (block == 1 && queue_sigchld == 0 && (waitpid_flags & WNOHANG) == 0)
{
@@ -3092,6 +3223,10 @@ waitchld (wpid, block)
pid = WAITPID (-1, &status, waitpid_flags);
+#if 0
+if (wpid != -1 && block)
+ itrace("waitchld: blocking waitpid returns %d", pid);
+#endif
/* WCONTINUED may be rejected by waitpid as invalid even when defined */
if (wcontinued && pid < 0 && errno == EINVAL)
{
@@ -3103,7 +3238,7 @@ waitchld (wpid, block)
if it was non-zero before we called waitpid. */
if (sigchld > 0 && (waitpid_flags & WNOHANG))
sigchld--;
-
+
/* If waitpid returns -1 with errno == ECHILD, there are no more
unwaited-for child processes of this shell. */
if (pid < 0 && errno == ECHILD)
@@ -3114,12 +3249,30 @@ waitchld (wpid, block)
break;
}
+#if 0
+itrace("waitchld: waitpid returns %d block = %d", pid, block);
+#endif
/* If waitpid returns 0, there are running children. If it returns -1,
the only other error POSIX says it can return is EINTR. */
CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
+
+ /* If waitpid returns -1/EINTR and the shell saw a SIGINT, then we
+ assume the child has blocked or handled SIGINT. In that case, we
+ require the child to actually die due to SIGINT to act on the
+ SIGINT we received; otherwise we assume the child handled it and
+ let it go. */
+ if (pid < 0 && errno == EINTR && wait_sigint_received)
+ child_caught_sigint = 1;
+
if (pid <= 0)
continue; /* jumps right to the test */
+ /* If the child process did die due to SIGINT, forget our assumption
+ that it caught or otherwise handled it. */
+ if (WIFSIGNALED (status) && WTERMSIG (status) == SIGINT)
+ child_caught_sigint = 0;
+
/* children_exited is used to run traps on SIGCHLD. We don't want to
run the trap if a process is just being continued. */
if (WIFCONTINUED(status) == 0)
@@ -3132,7 +3285,7 @@ waitchld (wpid, block)
child = find_process (pid, 1, &job); /* want living procs only */
#if defined (COPROCESS_SUPPORT)
- coproc_pidchk (pid, status);
+ coproc_pidchk (pid, WSTATUS(status));
#endif
/* It is not an error to have a child terminate that we did
@@ -3188,10 +3341,22 @@ waitchld (wpid, block)
interrupt_immediately = 0;
trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */
wait_signal_received = SIGCHLD;
- longjmp (wait_intr_buf, 1);
+ /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
+ run_pending_traps will call run_sigchld_trap later */
+ if (sigchld == 0)
+ longjmp (wait_intr_buf, 1);
}
-
- run_sigchld_trap (children_exited);
+ /* If not in posix mode and not executing the wait builtin, queue the
+ signal for later handling. Run the trap immediately if we are
+ executing the wait builtin, but don't break out of `wait'. */
+ else if (sigchld) /* called from signal handler */
+ queue_sigchld_trap (children_exited);
+ else if (running_trap)
+ queue_sigchld_trap (children_exited);
+ else if (this_shell_builtin == wait_builtin)
+ run_sigchld_trap (children_exited); /* XXX */
+ else
+ queue_sigchld_trap (children_exited);
}
/* We have successfully recorded the useful information about this process
@@ -3240,8 +3405,7 @@ set_job_status_and_cleanup (job)
#endif
{
any_stopped = 1;
- any_tstped |= interactive && job_control &&
- (WSTOPSIG (child->status) == SIGTSTP);
+ any_tstped |= job_control && (WSTOPSIG (child->status) == SIGTSTP);
}
child = child->next;
}
@@ -3307,7 +3471,7 @@ set_job_status_and_cleanup (job)
does not exit due to SIGINT, run the trap handler but do not
otherwise act as if we got the interrupt. */
if (wait_sigint_received && interactive_shell == 0 &&
- WIFSIGNALED (child->status) == 0 && IS_FOREGROUND (job) &&
+ child_caught_sigint && IS_FOREGROUND (job) &&
signal_is_trapped (SIGINT))
{
int old_frozen;
@@ -3329,7 +3493,8 @@ set_job_status_and_cleanup (job)
signals are sent to process groups) or via kill(2) to the foreground
process by another process (or itself). If the shell did receive the
SIGINT, it needs to perform normal SIGINT processing. */
- else if (wait_sigint_received && (WTERMSIG (child->status) == SIGINT) &&
+ else if (wait_sigint_received &&
+ child_caught_sigint == 0 &&
IS_FOREGROUND (job) && IS_JOBCONTROL (job) == 0)
{
int old_frozen;
@@ -3369,7 +3534,7 @@ set_job_status_and_cleanup (job)
temp_handler = trap_to_sighandler (SIGINT);
restore_sigint_handler ();
if (temp_handler == SIG_DFL)
- termsig_handler (SIGINT);
+ termsig_handler (SIGINT); /* XXX */
else if (temp_handler != SIG_IGN)
(*temp_handler) (SIGINT);
}
@@ -3442,15 +3607,20 @@ run_sigchld_trap (nchild)
subst_assign_varlist = (WORD_LIST *)NULL;
the_pipeline = (PROCESS *)NULL;
+ running_trap = SIGCHLD + 1;
+
set_impossible_sigchld_trap ();
jobs_list_frozen = 1;
for (i = 0; i < nchild; i++)
{
+#if 0
interrupt_immediately = 1;
+#endif
parse_and_execute (savestring (trap_command), "trap", SEVAL_NOHIST|SEVAL_RESETLINE);
}
run_unwind_frame ("SIGCHLD trap");
+ running_trap = 0;
}
/* Function to call when you want to notify people of changes
@@ -3529,6 +3699,9 @@ notify_of_job_status ()
case JDEAD:
if (interactive_shell == 0 && termsig && WIFSIGNALED (s) &&
termsig != SIGINT &&
+#if defined (DONT_REPORT_SIGTERM)
+ termsig != SIGTERM &&
+#endif
#if defined (DONT_REPORT_SIGPIPE)
termsig != SIGPIPE &&
#endif
@@ -3610,8 +3783,8 @@ initialize_job_control (force)
exit (1);
}
- /* We can only have job control if we are interactive. */
- if (interactive == 0)
+ /* We can only have job control if we are interactive unless we force it. */
+ if (interactive == 0 && force == 0)
{
job_control = 0;
original_pgrp = NO_PID;
@@ -3635,7 +3808,8 @@ initialize_job_control (force)
if (shell_tty == -1)
shell_tty = dup (fileno (stderr)); /* fd 2 */
- shell_tty = move_to_high_fd (shell_tty, 1, -1);
+ if (shell_tty != -1)
+ shell_tty = move_to_high_fd (shell_tty, 1, -1);
/* Compensate for a bug in systems that compiled the BSD
rlogind with DEBUG defined, like NeXT and Alliant. */
@@ -3696,6 +3870,8 @@ initialize_job_control (force)
t_errno = errno;
setpgid (0, original_pgrp);
shell_pgrp = original_pgrp;
+ errno = t_errno;
+ sys_error (_("cannot set terminal process group (%d)"), shell_pgrp);
job_control = 0;
}
}
@@ -4085,8 +4261,10 @@ mark_dead_jobs_as_notified (force)
}
#ifdef DEBUG
+# if 0
if (ndeadproc != js.c_reaped)
itrace("mark_dead_jobs_as_notified: ndeadproc (%d) != js.c_reaped (%d)", ndeadproc, js.c_reaped);
+# endif
if (ndead != js.j_ndead)
itrace("mark_dead_jobs_as_notified: ndead (%d) != js.j_ndead (%d)", ndead, js.j_ndead);
#endif
@@ -4218,6 +4396,27 @@ restart_job_control ()
initialize_job_control (0);
}
+void
+set_maxchild (nchild)
+ int nchild;
+{
+ static int lmaxchild = -1;
+
+ if (lmaxchild < 0)
+ lmaxchild = getmaxchild ();
+ if (lmaxchild < 0)
+ lmaxchild = DEFAULT_CHILD_MAX;
+
+ /* Clamp value we set. Minimum is what Posix requires, maximum is defined
+ above as MAX_CHILD_MAX. */
+ if (nchild < lmaxchild)
+ nchild = lmaxchild;
+ else if (nchild > MAX_CHILD_MAX)
+ nchild = MAX_CHILD_MAX;
+
+ js.c_childmax = nchild;
+}
+
/* Set the handler to run when the shell receives a SIGCHLD signal. */
void
set_sigchld_handler ()
diff --git a/jobs.h b/jobs.h
index 39da61ea..bec95273 100644
--- a/jobs.h
+++ b/jobs.h
@@ -156,6 +156,8 @@ struct bgpids {
/* A value which cannot be a process ID. */
#define NO_PID (pid_t)-1
+#define ANY_PID (pid_t)-1
+
/* System calls. */
#if !defined (HAVE_UNISTD_H)
extern pid_t fork (), getpid (), getpgrp ();
@@ -165,7 +167,7 @@ extern pid_t fork (), getpid (), getpgrp ();
extern struct jobstats js;
extern pid_t original_pgrp, shell_pgrp, pipeline_pgrp;
-extern pid_t last_made_pid, last_asynchronous_pid;
+extern volatile pid_t last_made_pid, last_asynchronous_pid;
extern int asynchronous_notification;
extern JOB **jobs;
@@ -216,6 +218,7 @@ extern int wait_for_single_pid __P((pid_t));
extern void wait_for_background_pids __P((void));
extern int wait_for __P((pid_t));
extern int wait_for_job __P((int));
+extern int wait_for_any_job __P((void));
extern void notify_and_cleanup __P((void));
extern void reap_dead_jobs __P((void));
@@ -243,8 +246,8 @@ extern void close_pgrp_pipe __P((void));
extern void save_pgrp_pipe __P((int *, int));
extern void restore_pgrp_pipe __P((int *));
-#if defined (JOB_CONTROL)
-extern int job_control;
-#endif
+extern void set_maxchild __P((int));
+
+extern int job_control; /* set to 0 in nojobs.c */
#endif /* _JOBS_H_ */
diff --git a/lib/glob/glob.c b/lib/glob/glob.c
index ad9b9d90..f5494361 100644
--- a/lib/glob/glob.c
+++ b/lib/glob/glob.c
@@ -48,6 +48,8 @@
#include "stdc.h"
#include "memalloc.h"
+#include <signal.h>
+
#include "shell.h"
#include "glob.h"
@@ -84,6 +86,8 @@ struct globval
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 signal_is_pending __P((int));
+extern void run_pending_traps __P((void));
extern int extended_glob;
@@ -112,9 +116,13 @@ static void wdequote_pathname __P((char *));
# define dequote_pathname udequote_pathname
#endif
static void dequote_pathname __P((char *));
-static int glob_testdir __P((char *));
+static int glob_testdir __P((char *, int));
static char **glob_dir_to_array __P((char *, char **, int));
+/* Make sure these names continue to agree with what's in smatch.c */
+extern char *glob_patscan __P((char *, char *, int));
+extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int));
+
/* Compile `glob_loop.c' for single-byte characters. */
#define CHAR unsigned char
#define INT int
@@ -162,15 +170,67 @@ glob_pattern_p (pattern)
#endif
}
+#if EXTENDED_GLOB
+/* Return 1 if all subpatterns in the extended globbing pattern PAT indicate
+ that the name should be skipped. XXX - doesn't handle pattern negation,
+ not sure if it should */
+static int
+extglob_skipname (pat, dname, flags)
+ char *pat, *dname;
+ int flags;
+{
+ char *pp, *pe, *t;
+ int n, r;
+
+ pp = pat + 2;
+ pe = pp + strlen (pp) - 1; /*(*/
+ if (*pe != ')')
+ return 0;
+ if ((t = strchr (pp, '|')) == 0) /* easy case first */
+ {
+ *pe = '\0';
+ r = skipname (pp, dname, flags); /*(*/
+ *pe = ')';
+ return r;
+ }
+ while (t = glob_patscan (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = '\0';
+ r = skipname (pp, dname, flags);
+ t[-1] = n;
+ if (r == 0) /* if any pattern says not skip, we don't skip */
+ return r;
+ pp = t;
+ } /*(*/
+
+ if (pp == pe) /* glob_patscan might find end of pattern */
+ return r;
+
+ *pe = '\0';
+# if defined (HANDLE_MULTIBYTE)
+ r = mbskipname (pp, dname, flags); /*(*/
+# else
+ r = skipname (pp, dname, flags); /*(*/
+# endif
+ *pe = ')';
+ return r;
+}
+#endif
+
/* Return 1 if DNAME should be skipped according to PAT. Mostly concerned
with matching leading `.'. */
-
static int
skipname (pat, dname, flags)
char *pat;
char *dname;
int flags;
{
+#if EXTENDED_GLOB
+ if (extglob_pattern_p (pat)) /* XXX */
+ return (extglob_skipname (pat, dname, flags));
+#endif
+
/* If a leading dot need not be explicitly matched, and the pattern
doesn't start with a `.', don't match `.' or `..' */
if (noglob_dot_filenames == 0 && pat[0] != '.' &&
@@ -179,7 +239,7 @@ skipname (pat, dname, flags)
(dname[1] == '\0' || (dname[1] == '.' && dname[2] == '\0'))))
return 1;
- /* If a dot must be explicity matched, check to see if they do. */
+ /* If a dot must be explicitly matched, check to see if they do. */
else if (noglob_dot_filenames && dname[0] == '.' && pat[0] != '.' &&
(pat[0] != '\\' || pat[1] != '.'))
return 1;
@@ -188,18 +248,91 @@ skipname (pat, dname, flags)
}
#if HANDLE_MULTIBYTE
+
+static int
+wchkname (pat_wc, dn_wc)
+ wchar_t *pat_wc, *dn_wc;
+{
+ /* If a leading dot need not be explicitly matched, and the
+ pattern doesn't start with a `.', don't match `.' or `..' */
+ if (noglob_dot_filenames == 0 && pat_wc[0] != L'.' &&
+ (pat_wc[0] != L'\\' || pat_wc[1] != L'.') &&
+ (dn_wc[0] == L'.' &&
+ (dn_wc[1] == L'\0' || (dn_wc[1] == L'.' && dn_wc[2] == L'\0'))))
+ return 1;
+
+ /* If a leading dot must be explicitly matched, check to see if the
+ pattern and dirname both have one. */
+ else if (noglob_dot_filenames && dn_wc[0] == L'.' &&
+ pat_wc[0] != L'.' &&
+ (pat_wc[0] != L'\\' || pat_wc[1] != L'.'))
+ return 1;
+
+ return 0;
+}
+
+static int
+wextglob_skipname (pat, dname, flags)
+ wchar_t *pat, *dname;
+ int flags;
+{
+#if EXTENDED_GLOB
+ wchar_t *pp, *pe, *t, n;
+ int r;
+
+ pp = pat + 2;
+ pe = pp + wcslen (pp) - 1; /*(*/
+ if (*pe != L')')
+ return 0;
+ if ((t = wcschr (pp, L'|')) == 0)
+ {
+ *pe = L'\0';
+ r = wchkname (pp, dname); /*(*/
+ *pe = L')';
+ return r;
+ }
+ while (t = glob_patscan_wc (pp, pe, '|'))
+ {
+ n = t[-1];
+ t[-1] = L'\0';
+ r = wchkname (pp, dname);
+ t[-1] = n;
+ if (r == 0)
+ return 0;
+ pp = t;
+ }
+
+ if (pp == pe) /* glob_patscan_wc might find end of pattern */
+ return r;
+
+ *pe = L'\0';
+ r = wchkname (pp, dname); /*(*/
+ *pe = L')';
+ return r;
+#else
+ return (wchkname (pat, dname));
+#endif
+}
+
/* Return 1 if DNAME should be skipped according to PAT. Handles multibyte
characters in PAT and DNAME. Mostly concerned with matching leading `.'. */
-
static int
mbskipname (pat, dname, flags)
char *pat, *dname;
int flags;
{
- int ret;
+ int ret, ext;
wchar_t *pat_wc, *dn_wc;
size_t pat_n, dn_n;
+ if (mbsmbchar (dname) == 0 && mbsmbchar (pat) == 0)
+ return (skipname (pat, dname, flags));
+
+ ext = 0;
+#if EXTENDED_GLOB
+ ext = extglob_pattern_p (pat);
+#endif
+
pat_wc = dn_wc = (wchar_t *)NULL;
pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
@@ -208,22 +341,7 @@ mbskipname (pat, dname, flags)
ret = 0;
if (pat_n != (size_t)-1 && dn_n !=(size_t)-1)
- {
- /* If a leading dot need not be explicitly matched, and the
- pattern doesn't start with a `.', don't match `.' or `..' */
- if (noglob_dot_filenames == 0 && pat_wc[0] != L'.' &&
- (pat_wc[0] != L'\\' || pat_wc[1] != L'.') &&
- (dn_wc[0] == L'.' &&
- (dn_wc[1] == L'\0' || (dn_wc[1] == L'.' && dn_wc[2] == L'\0'))))
- ret = 1;
-
- /* If a leading dot must be explicity matched, check to see if the
- pattern and dirname both have one. */
- else if (noglob_dot_filenames && dn_wc[0] == L'.' &&
- pat_wc[0] != L'.' &&
- (pat_wc[0] != L'\\' || pat_wc[1] != L'.'))
- ret = 1;
- }
+ ret = ext ? wextglob_skipname (pat_wc, dn_wc, flags) : wchkname (pat_wc, dn_wc);
else
ret = skipname (pat, dname, flags);
@@ -325,13 +443,20 @@ dequote_pathname (pathname)
/* Return 0 if DIR is a directory, -1 otherwise. */
static int
-glob_testdir (dir)
+glob_testdir (dir, flags)
char *dir;
+ int flags;
{
struct stat finfo;
+ int r;
-/*itrace("glob_testdir: testing %s", dir);*/
- if (stat (dir, &finfo) < 0)
+/*itrace("glob_testdir: testing %s" flags = %d, dir, flags);*/
+#if defined (HAVE_LSTAT)
+ r = (flags & GX_ALLDIRS) ? lstat (dir, &finfo) : stat (dir, &finfo);
+#else
+ r = stat (dir, &finfo);
+#endif
+ if (r < 0)
return (-1);
if (S_ISDIR (finfo.st_mode) == 0)
@@ -407,7 +532,6 @@ finddirs (pat, sdir, flags, ep, np)
return ret;
}
-
/* Return a vector of names of files in directory DIR
whose names match glob pattern PAT.
@@ -456,7 +580,7 @@ glob_vector (pat, dir, flags)
/* If PAT is empty, skip the loop, but return one (empty) filename. */
if (pat == 0 || *pat == '\0')
{
- if (glob_testdir (dir) < 0)
+ if (glob_testdir (dir, 0) < 0)
return ((char **) &glob_error_return);
nextlink = (struct globval *)alloca (sizeof (struct globval));
@@ -478,7 +602,7 @@ glob_vector (pat, dir, flags)
skip = 1;
}
- patlen = strlen (pat);
+ patlen = (pat && *pat) ? strlen (pat) : 0;
/* If the filename pattern (PAT) does not contain any globbing characters,
we can dispense with reading the directory, and just see if there is
@@ -489,14 +613,18 @@ glob_vector (pat, dir, flags)
int dirlen;
struct stat finfo;
- if (glob_testdir (dir) < 0)
+ if (glob_testdir (dir, 0) < 0)
return ((char **) &glob_error_return);
dirlen = strlen (dir);
nextname = (char *)malloc (dirlen + patlen + 2);
npat = (char *)malloc (patlen + 1);
if (nextname == 0 || npat == 0)
- lose = 1;
+ {
+ FREE (nextname);
+ FREE (npat);
+ lose = 1;
+ }
else
{
strcpy (npat, pat);
@@ -518,7 +646,10 @@ glob_vector (pat, dir, flags)
count = 1;
}
else
- lose = 1;
+ {
+ free (npat);
+ lose = 1;
+ }
}
else
{
@@ -536,7 +667,7 @@ glob_vector (pat, dir, flags)
is not robust (i.e., it opens non-directories successfully), test
that DIR is a directory and punt if it's not. */
#if defined (OPENDIR_NOT_ROBUST)
- if (glob_testdir (dir) < 0)
+ if (glob_testdir (dir, 0) < 0)
return ((char **) &glob_error_return);
#endif
@@ -570,7 +701,12 @@ glob_vector (pat, dir, flags)
lose = 1;
break;
}
-
+ else if (signal_is_pending (SIGINT)) /* XXX - make SIGINT traps responsive */
+ {
+ lose = 1;
+ break;
+ }
+
dp = readdir (d);
if (dp == NULL)
break;
@@ -599,7 +735,7 @@ glob_vector (pat, dir, flags)
if (flags & GX_NULLDIR)
pflags |= MP_IGNDOT;
subdir = sh_makepath (dir, dp->d_name, pflags);
- isdir = glob_testdir (subdir);
+ isdir = glob_testdir (subdir, flags);
if (isdir < 0 && (flags & GX_MATCHDIRS))
{
free (subdir);
@@ -635,6 +771,8 @@ glob_vector (pat, dir, flags)
nextname = (char *) malloc (sdlen + 1);
if (nextlink == 0 || nextname == 0)
{
+ FREE (nextlink);
+ FREE (nextname);
free (subdir);
lose = 1;
break;
@@ -647,6 +785,8 @@ glob_vector (pat, dir, flags)
++count;
continue;
}
+ else if (flags & GX_MATCHDIRS)
+ free (subdir);
convfn = fnx_fromfs (dp->d_name, D_NAMLEN (dp));
if (strmatch (pat, convfn, mflags) != FNM_NOMATCH)
@@ -666,6 +806,8 @@ glob_vector (pat, dir, flags)
nextname = (char *) malloc (D_NAMLEN (dp) + 1);
if (nextlink == 0 || nextname == 0)
{
+ FREE (nextlink);
+ FREE (nextname);
lose = 1;
break;
}
@@ -689,7 +831,11 @@ glob_vector (pat, dir, flags)
nextname = (char *)malloc (sdlen + 1);
nextlink = (struct globval *) malloc (sizeof (struct globval));
if (nextlink == 0 || nextname == 0)
- lose = 1;
+ {
+ FREE (nextlink);
+ FREE (nextname);
+ lose = 1;
+ }
else
{
nextlink->name = nextname;
@@ -733,7 +879,7 @@ glob_vector (pat, dir, flags)
FREE (tmplink);
}
- QUIT;
+ /* Don't call QUIT; here; let higher layers deal with it. */
return ((char **)NULL);
}
@@ -815,7 +961,13 @@ glob_dir_to_array (dir, array, flags)
result[i] = (char *) malloc (l + strlen (array[i]) + 3);
if (result[i] == NULL)
- return (NULL);
+ {
+ int ind;
+ for (ind = 0; ind < i; ind++)
+ free (result[ind]);
+ free (result);
+ return (NULL);
+ }
strcpy (result[i], dir);
if (add_slash)
@@ -893,19 +1045,70 @@ glob_filename (pathname, flags)
/* If directory_name contains globbing characters, then we
have to expand the previous levels. Just recurse. */
- if (glob_pattern_p (directory_name))
+ if (directory_len > 0 && glob_pattern_p (directory_name))
{
- char **directories;
+ char **directories, *d, *p;
register unsigned int i;
+ int all_starstar, last_starstar;
+ all_starstar = last_starstar = 0;
+ d = directory_name;
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;
+ /* Collapse a sequence of ** patterns separated by one or more slashes
+ to a single ** terminated by a slash or NUL */
+ if ((flags & GX_GLOBSTAR) && d[0] == '*' && d[1] == '*' && (d[2] == '/' || d[2] == '\0'))
+ {
+ p = d;
+ while (d[0] == '*' && d[1] == '*' && (d[2] == '/' || d[2] == '\0'))
+ {
+ p = d;
+ if (d[2])
+ {
+ d += 3;
+ while (*d == '/')
+ d++;
+ if (*d == 0)
+ break;
+ }
+ }
+ if (*d == 0)
+ all_starstar = 1;
+ d = p;
+ dflags |= GX_ALLDIRS|GX_ADDCURDIR;
+ directory_len = strlen (d);
+ }
+
+ /* If there is a non [star][star]/ component in directory_name, we
+ still need to collapse trailing sequences of [star][star]/ into
+ a single one and note that the directory name ends with [star][star],
+ so we can compensate if filename is [star][star] */
+ if ((flags & GX_GLOBSTAR) && all_starstar == 0)
+ {
+ int dl, prev;
+ prev = dl = directory_len;
+ while (dl >= 4 && d[dl - 1] == '/' &&
+ d[dl - 2] == '*' &&
+ d[dl - 3] == '*' &&
+ d[dl - 4] == '/')
+ prev = dl, dl -= 3;
+ if (dl != directory_len)
+ last_starstar = 1;
+ directory_len = prev;
+ }
+
+ /* If the directory name ends in [star][star]/ but the filename is
+ [star][star], just remove the final [star][star] from the directory
+ so we don't have to scan everything twice. */
+ if (last_starstar && directory_len > 4 &&
+ filename[0] == '*' && filename[1] == '*' && filename[2] == 0)
+ {
+ directory_len -= 3;
+ }
- if (directory_name[directory_len - 1] == '/')
- directory_name[directory_len - 1] = '\0';
+ if (d[directory_len - 1] == '/')
+ d[directory_len - 1] = '\0';
- directories = glob_filename (directory_name, dflags);
+ directories = glob_filename (d, dflags);
if (free_dirname)
{
@@ -927,13 +1130,26 @@ glob_filename (pathname, flags)
return ((char **) &glob_error_return);
}
+ /* If we have something like [star][star]/[star][star], it's no use to
+ glob **, then do it again, and throw half the results away. */
+ if (all_starstar && filename[0] == '*' && filename[1] == '*' && filename[2] == 0)
+ {
+ free ((char *) directories);
+ free (directory_name);
+ directory_name = NULL;
+ directory_len = 0;
+ goto only_filename;
+ }
+
/* We have successfully globbed the preceding directory name.
For each name in DIRECTORIES, call glob_vector on it and
FILENAME. Concatenate the results together. */
for (i = 0; directories[i] != NULL; ++i)
{
char **temp_results;
+ int shouldbreak;
+ shouldbreak = 0;
/* XXX -- we've recursively scanned any directories resulting from
a `**', so turn off the flag. We turn it on again below if
filename is `**' */
@@ -964,8 +1180,39 @@ glob_filename (pathname, flags)
/* If we're expanding **, we don't need to glue the directory
name to the results; we've already done it in glob_vector */
- if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0')
- array = temp_results;
+ if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && (filename[2] == '\0' || filename[2] == '/'))
+ {
+ /* When do we remove null elements from temp_results? And
+ how to avoid duplicate elements in the final result? */
+ /* If (dflags & GX_NULLDIR) glob_filename potentially left a
+ NULL placeholder in the temp results just in case
+ glob_vector/glob_dir_to_array did something with it, but
+ if it didn't, and we're not supposed to be passing them
+ through for some reason ((flags & GX_NULLDIR) == 0) we
+ need to remove all the NULL elements from the beginning
+ of TEMP_RESULTS. */
+ /* If we have a null directory name and ** as the filename,
+ we have just searched for everything from the current
+ directory on down. Break now (shouldbreak = 1) to avoid
+ duplicate entries in the final result. */
+#define NULL_PLACEHOLDER(x) ((x) && *(x) && **(x) == 0)
+ if ((dflags & GX_NULLDIR) && (flags & GX_NULLDIR) == 0 &&
+ NULL_PLACEHOLDER (temp_results))
+#undef NULL_PLACEHOLDER
+ {
+ register int i, n;
+ for (n = 0; temp_results[n] && *temp_results[n] == 0; n++)
+ ;
+ i = n;
+ do
+ temp_results[i - n] = temp_results[i];
+ while (temp_results[i++] != 0);
+ array = temp_results;
+ shouldbreak = 1;
+ }
+ else
+ array = temp_results;
+ }
else
array = glob_dir_to_array (directories[i], temp_results, flags);
l = 0;
@@ -986,6 +1233,11 @@ glob_filename (pathname, flags)
/* Note that the elements of ARRAY are not freed. */
if (array != temp_results)
free ((char *) array);
+ else if ((dflags & GX_ALLDIRS) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0')
+ free (temp_results); /* expanding ** case above */
+
+ if (shouldbreak)
+ break;
}
}
/* Free the directories. */
@@ -997,6 +1249,7 @@ glob_filename (pathname, flags)
return (result);
}
+only_filename:
/* If there is only a directory name, return it. */
if (*filename == '\0')
{
@@ -1055,10 +1308,13 @@ glob_filename (pathname, flags)
{
if (free_dirname)
free (directory_name);
+ QUIT; /* XXX - shell */
+ run_pending_traps ();
return (temp_results);
}
result = glob_dir_to_array ((dflags & GX_ALLDIRS) ? "" : directory_name, temp_results, flags);
+
if (free_dirname)
free (directory_name);
return (result);
@@ -1079,6 +1335,7 @@ glob_filename (pathname, flags)
free (directory_name);
QUIT;
+ run_pending_traps ();
return (NULL);
}
diff --git a/lib/glob/glob.h b/lib/glob/glob.h
index 993ed70c..b9462333 100644
--- a/lib/glob/glob.h
+++ b/lib/glob/glob.h
@@ -35,6 +35,8 @@ extern int glob_pattern_p __P((const char *));
extern char **glob_vector __P((char *, char *, int));
extern char **glob_filename __P((char *, int));
+extern int extglob_pattern_p __P((const char *));
+
extern char *glob_error_return;
extern int noglob_dot_filenames;
extern int glob_ignore_case;
diff --git a/lib/glob/gmisc.c b/lib/glob/gmisc.c
index 683035a2..17e4265f 100644
--- a/lib/glob/gmisc.c
+++ b/lib/glob/gmisc.c
@@ -200,6 +200,24 @@ bad_bracket:
}
#endif
+int
+extglob_pattern_p (pat)
+ char *pat;
+{
+ switch (pat[0])
+ {
+ case '*':
+ case '+':
+ case '!':
+ case '@':
+ return (pat[1] == LPAREN);
+ default:
+ return 0;
+ }
+
+ return 0;
+}
+
/* Return 1 of the first character of STRING could match the first
character of pattern PAT. Used to avoid n2 calls to strmatch(). */
int
diff --git a/lib/glob/sm_loop.c b/lib/glob/sm_loop.c
index dfff06cf..7e7f538f 100644
--- a/lib/glob/sm_loop.c
+++ b/lib/glob/sm_loop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2006 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -22,7 +22,8 @@ static int GMATCH __P((CHAR *, CHAR *, CHAR *, CHAR *, int));
static CHAR *PARSE_COLLSYM __P((CHAR *, INT *));
static CHAR *BRACKMATCH __P((CHAR *, U_CHAR, int));
static int EXTMATCH __P((INT, CHAR *, CHAR *, CHAR *, CHAR *, int));
-static CHAR *PATSCAN __P((CHAR *, CHAR *, INT));
+
+/*static*/ CHAR *PATSCAN __P((CHAR *, CHAR *, INT));
int
FCT (pattern, string, flags)
@@ -144,8 +145,9 @@ fprintf(stderr, "gmatch: pattern = %s; pe = %s\n", pattern, pe);
if (EXTMATCH (c, newn, se, p, pe, flags) == 0)
return (0);
}
- /* We didn't match. If we have a `?(...)', that's failure. */
- return FNM_NOMATCH;
+ /* We didn't match. If we have a `?(...)', we can match 0
+ or 1 times. */
+ return 0;
}
#endif
else if (c == L('?'))
@@ -191,6 +193,18 @@ fprintf(stderr, "gmatch: pattern = %s; pe = %s\n", pattern, pe);
if (p == pe && (c == L('?') || c == L('*')))
return (0);
+ /* If we've hit the end of the string and the rest of the pattern
+ is something that matches the empty string, we can succeed. */
+#if defined (EXTENDED_GLOB)
+ if (n == se && ((flags & FNM_EXTMATCH) && (c == L('!') || c == L('?')) && *p == L('(')))
+ {
+ --p;
+ if (EXTMATCH (c, n, se, p, pe, flags) == 0)
+ return (c == L('!') ? FNM_NOMATCH : 0);
+ return (c == L('!') ? 0 : FNM_NOMATCH);
+ }
+#endif
+
/* General case, use recursion. */
{
U_CHAR c1;
@@ -290,7 +304,7 @@ BRACKMATCH (p, test, flags)
{
register CHAR cstart, cend, c;
register int not; /* Nonzero if the sense of the character class is inverted. */
- int brcnt;
+ int brcnt, forcecoll;
INT pc;
CHAR *savep;
@@ -311,6 +325,7 @@ BRACKMATCH (p, test, flags)
/* Initialize cstart and cend in case `-' is the last
character of the pattern. */
cstart = cend = c;
+ forcecoll = 0;
/* POSIX.2 equivalence class: [=c=]. See POSIX.2 2.8.3.2. Find
the end of the equivalence class, move the pattern pointer past
@@ -400,6 +415,7 @@ BRACKMATCH (p, test, flags)
range. If it is, we set cstart to one greater than `test',
so any comparisons later will fail. */
cstart = (pc == INVALID) ? test + 1 : pc;
+ forcecoll = 1;
}
if (!(flags & FNM_NOESCAPE) && c == L('\\'))
@@ -443,6 +459,7 @@ BRACKMATCH (p, test, flags)
range expression. If we get one, we set cend to one fewer
than the test character to make sure the range test fails. */
cend = (pc == INVALID) ? test - 1 : pc;
+ forcecoll = 1;
}
cend = FOLD (cend);
@@ -453,7 +470,7 @@ BRACKMATCH (p, test, flags)
the expression shall be treated as invalid.'' Note that this
applies to only the range expression; the rest of the bracket
expression is still checked for matches. */
- if (RANGECMP (cstart, cend) > 0)
+ if (RANGECMP (cstart, cend, forcecoll) > 0)
{
if (c == L(']'))
break;
@@ -462,7 +479,7 @@ BRACKMATCH (p, test, flags)
}
}
- if (RANGECMP (test, cstart) >= 0 && RANGECMP (test, cend) <= 0)
+ if (RANGECMP (test, cstart, forcecoll) >= 0 && RANGECMP (test, cend, forcecoll) <= 0)
goto matched;
if (c == L(']'))
@@ -517,7 +534,7 @@ matched:
because we're scanning a `patlist'. Otherwise, we scan until we see
DELIM. In all cases, we never scan past END. The return value is the
first character after the matching DELIM. */
-static CHAR *
+/*static*/ CHAR *
PATSCAN (string, end, delim)
CHAR *string, *end;
INT delim;
@@ -530,6 +547,9 @@ PATSCAN (string, end, delim)
cchar = 0;
bfirst = NULL;
+ if (string == end)
+ return (NULL);
+
for (s = string; c = *s; s++)
{
if (s >= end)
@@ -606,19 +626,32 @@ STRCOMPARE (p, pe, s, se)
{
int ret;
CHAR c1, c2;
+ int l1, l2;
+
+ l1 = pe - p;
+ l2 = se - s;
+ if (l1 != l2)
+ return (FNM_NOMATCH); /* unequal lengths, can't be identical */
+
c1 = *pe;
c2 = *se;
- *pe = *se = '\0';
+ if (c1 != 0)
+ *pe = '\0';
+ if (c2 != 0)
+ *se = '\0';
+
#if HAVE_MULTIBYTE || defined (HAVE_STRCOLL)
ret = STRCOLL ((XCHAR *)p, (XCHAR *)s);
#else
ret = STRCMP ((XCHAR *)p, (XCHAR *)s);
#endif
- *pe = c1;
- *se = c2;
+ if (c1 != 0)
+ *pe = c1;
+ if (c2 != 0)
+ *se = c2;
return (ret == 0 ? ret : FNM_NOMATCH);
}
diff --git a/lib/glob/smatch.c b/lib/glob/smatch.c
index 061142be..848610ab 100644
--- a/lib/glob/smatch.c
+++ b/lib/glob/smatch.c
@@ -43,15 +43,25 @@
#define STREQ(a, b) ((a)[0] == (b)[0] && strcmp(a, b) == 0)
#define STREQN(a, b, n) ((a)[0] == (b)[0] && strncmp(a, b, n) == 0)
+#ifndef GLOBASCII_DEFAULT
+# define GLOBASCII_DEFAULT 0
+#endif
+
+int glob_asciirange = GLOBASCII_DEFAULT;
+
/* We use strcoll(3) for range comparisons in bracket expressions,
even though it can have unwanted side effects in locales
other than POSIX or US. For instance, in the de locale, [A-Z] matches
- all characters. */
+ all characters. If GLOB_ASCIIRANGE is non-zero, and we're not forcing
+ the use of strcoll (e.g., for explicit collating symbols), we use
+ straight ordering as if in the C locale. */
#if defined (HAVE_STRCOLL)
/* Helper function for collating symbol equivalence. */
-static int rangecmp (c1, c2)
+static int
+rangecmp (c1, c2, forcecoll)
int c1, c2;
+ int forcecoll;
{
static char s1[2] = { ' ', '\0' };
static char s2[2] = { ' ', '\0' };
@@ -64,6 +74,9 @@ static int rangecmp (c1, c2)
if (c1 == c2)
return (0);
+ if (forcecoll == 0 && glob_asciirange)
+ return (c1 - c2);
+
s1[0] = c1;
s2[0] = c2;
@@ -72,7 +85,7 @@ static int rangecmp (c1, c2)
return (c1 - c2);
}
#else /* !HAVE_STRCOLL */
-# define rangecmp(c1, c2) ((int)(c1) - (int)(c2))
+# define rangecmp(c1, c2, f) ((int)(c1) - (int)(c2))
#endif /* !HAVE_STRCOLL */
#if defined (HAVE_STRCOLL)
@@ -80,7 +93,7 @@ static int
collequiv (c1, c2)
int c1, c2;
{
- return (rangecmp (c1, c2) == 0);
+ return (rangecmp (c1, c2, 1) == 0);
}
#else
# define collequiv(c1, c2) ((c1) == (c2))
@@ -214,14 +227,14 @@ is_cclass (c, name)
#define COLLSYM collsym
#define PARSE_COLLSYM parse_collsym
#define BRACKMATCH brackmatch
-#define PATSCAN patscan
+#define PATSCAN glob_patscan
#define STRCOMPARE strcompare
#define EXTMATCH extmatch
#define STRCHR(S, C) strchr((S), (C))
#define STRCOLL(S1, S2) strcoll((S1), (S2))
#define STRLEN(S) strlen(S)
#define STRCMP(S1, S2) strcmp((S1), (S2))
-#define RANGECMP(C1, C2) rangecmp((C1), (C2))
+#define RANGECMP(C1, C2, F) rangecmp((C1), (C2), (F))
#define COLLEQUIV(C1, C2) collequiv((C1), (C2))
#define CTYPE_T enum char_class
#define IS_CCLASS(C, S) is_cclass((C), (S))
@@ -244,8 +257,9 @@ is_cclass (c, name)
extern char *mbsmbchar __P((const char *));
static int
-rangecmp_wc (c1, c2)
+rangecmp_wc (c1, c2, forcecoll)
wint_t c1, c2;
+ int forcecoll;
{
static wchar_t s1[2] = { L' ', L'\0' };
static wchar_t s2[2] = { L' ', L'\0' };
@@ -253,6 +267,9 @@ rangecmp_wc (c1, c2)
if (c1 == c2)
return 0;
+ if (forcecoll == 0 && glob_asciirange && c1 <= UCHAR_MAX && c2 <= UCHAR_MAX)
+ return ((int)(c1 - c2));
+
s1[0] = c1;
s2[0] = c2;
@@ -263,7 +280,7 @@ static int
collequiv_wc (c, equiv)
wint_t c, equiv;
{
- return (!(c - equiv));
+ return (c == equiv);
}
/* Helper function for collating symbol. */
@@ -342,14 +359,14 @@ is_wcclass (wc, name)
#define COLLSYM collwcsym
#define PARSE_COLLSYM parse_collwcsym
#define BRACKMATCH brackmatch_wc
-#define PATSCAN patscan_wc
+#define PATSCAN glob_patscan_wc
#define STRCOMPARE wscompare
#define EXTMATCH extmatch_wc
#define STRCHR(S, C) wcschr((S), (C))
#define STRCOLL(S1, S2) wcscoll((S1), (S2))
#define STRLEN(S) wcslen(S)
#define STRCMP(S1, S2) wcscmp((S1), (S2))
-#define RANGECMP(C1, C2) rangecmp_wc((C1), (C2))
+#define RANGECMP(C1, C2, F) rangecmp_wc((C1), (C2), (F))
#define COLLEQUIV(C1, C2) collequiv_wc((C1), (C2))
#define CTYPE_T enum char_class
#define IS_CCLASS(C, S) is_wcclass((C), (S))
@@ -369,13 +386,7 @@ xstrmatch (pattern, string, flags)
wchar_t *wpattern, *wstring;
size_t plen, slen, mplen, mslen;
-#if 0
- plen = strlen (pattern);
- mplen = mbstrlen (pattern);
- if (plen == mplen && strlen (string) == mbstrlen (string))
-#else
if (mbsmbchar (string) == 0 && mbsmbchar (pattern) == 0)
-#endif
return (internal_strmatch ((unsigned char *)pattern, (unsigned char *)string, flags));
if (MB_CUR_MAX == 1)
diff --git a/lib/glob/xmbsrtowcs.c b/lib/glob/xmbsrtowcs.c
index c410e05a..11a4d1b9 100644
--- a/lib/glob/xmbsrtowcs.c
+++ b/lib/glob/xmbsrtowcs.c
@@ -1,6 +1,6 @@
/* xmbsrtowcs.c -- replacement function for mbsrtowcs */
-/* Copyright (C) 2002-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -166,7 +166,7 @@ xdupmbstowcs2 (destp, src)
do
{
end_or_backslash = strchrnul(p, '\\');
- nms = (end_or_backslash - p);
+ nms = end_or_backslash - p;
if (*end_or_backslash == '\0')
nms++;
@@ -283,6 +283,8 @@ xdupmbstowcs (destp, indicesp, src)
{
if (destp)
*destp = NULL;
+ if (indicesp)
+ *indicesp = NULL;
return (size_t)-1;
}
@@ -298,6 +300,8 @@ xdupmbstowcs (destp, indicesp, src)
if (wsbuf == NULL)
{
*destp = NULL;
+ if (indicesp)
+ *indicesp = NULL;
return (size_t)-1;
}
@@ -309,6 +313,7 @@ xdupmbstowcs (destp, indicesp, src)
{
free (wsbuf);
*destp = NULL;
+ *indicesp = NULL;
return (size_t)-1;
}
}
@@ -343,6 +348,8 @@ xdupmbstowcs (destp, indicesp, src)
free (wsbuf);
FREE (indices);
*destp = NULL;
+ if (indicesp)
+ *indicesp = NULL;
return (size_t)-1;
}
@@ -362,18 +369,22 @@ xdupmbstowcs (destp, indicesp, src)
free (wsbuf);
FREE (indices);
*destp = NULL;
+ if (indicesp)
+ *indicesp = NULL;
return (size_t)-1;
}
wsbuf = wstmp;
if (indicesp)
{
- idxtmp = (char **) realloc (indices, wsbuf_size * sizeof (char **));
+ idxtmp = (char **) realloc (indices, wsbuf_size * sizeof (char *));
if (idxtmp == NULL)
{
free (wsbuf);
free (indices);
*destp = NULL;
+ if (indicesp)
+ *indicesp = NULL;
return (size_t)-1;
}
indices = idxtmp;
diff --git a/lib/intl/Makefile.in b/lib/intl/Makefile.in
index c5245d4c..00fdb612 100644
--- a/lib/intl/Makefile.in
+++ b/lib/intl/Makefile.in
@@ -49,13 +49,15 @@ mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
l = @INTL_LIBTOOL_SUFFIX_PREFIX@
-AR = ar
+AR = @AR@
CC = @CC@
LIBTOOL = @LIBTOOL@
RANLIB = @RANLIB@
YACC = @INTLBISON@ -y -d
YFLAGS = --name-prefix=__gettext
+ARFLAGS = @ARFLAGS@
+
LOCAL_DEFS = @LOCAL_DEFS@
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
@@ -146,7 +148,7 @@ all-no-no:
libintl.a libgnuintl.a: $(OBJECTS)
rm -f $@
- $(AR) cru $@ $(OBJECTS)
+ $(AR) $(ARFLAGS) $@ $(OBJECTS)
$(RANLIB) $@
libintl.la libgnuintl.la: $(OBJECTS)
diff --git a/lib/intl/l10nflist.c b/lib/intl/l10nflist.c
index 9f024871..7556c8cd 100644
--- a/lib/intl/l10nflist.c
+++ b/lib/intl/l10nflist.c
@@ -272,7 +272,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
}
if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)
{
- /* This component can be part of both syntaces but has different
+ /* This component can be part of both syntaxes but has different
leading characters. For CEN we use `+', else `@'. */
*cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';
cp = stpcpy (cp, modifier);
diff --git a/lib/intl/localealias.c b/lib/intl/localealias.c
index d99a48d9..0d5ded71 100644
--- a/lib/intl/localealias.c
+++ b/lib/intl/localealias.c
@@ -305,7 +305,10 @@ read_alias_file (fname, fname_len)
if (nmap >= maxmap)
if (__builtin_expect (extend_alias_table (), 0))
- return added;
+ {
+ fclose (fp);
+ return added;
+ }
alias_len = strlen (alias) + 1;
value_len = strlen (value) + 1;
diff --git a/lib/malloc/getpagesize.h b/lib/malloc/getpagesize.h
index 7f323400..a59eabeb 100644
--- a/lib/malloc/getpagesize.h
+++ b/lib/malloc/getpagesize.h
@@ -32,7 +32,7 @@
#endif
#if !defined (getpagesize)
-# ifndef _MINIX
+# if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
# endif
# if defined (PAGESIZE)
diff --git a/lib/malloc/imalloc.h b/lib/malloc/imalloc.h
index 34df10af..82b09eba 100644
--- a/lib/malloc/imalloc.h
+++ b/lib/malloc/imalloc.h
@@ -45,11 +45,11 @@
# define NULL 0
#endif
-#if !defined (__STRING)
+#if !defined (CPP_STRING)
# if defined (HAVE_STRINGIZE)
-# define __STRING(x) #x
+# define CPP_STRING(x) #x
# else
-# define __STRING(x) "x"
+# define CPP_STRING(x) "x"
# endif /* !HAVE_STRINGIZE */
#endif /* !__STRING */
@@ -165,4 +165,9 @@ do { \
# define _(x) x
#endif
+#include <signal.h>
+
+extern void _malloc_block_signals __P((sigset_t *, sigset_t *));
+extern void _malloc_unblock_signals __P((sigset_t *, sigset_t *));
+
#endif /* _IMALLOC_H */
diff --git a/lib/malloc/malloc.c b/lib/malloc/malloc.c
index bca68e8a..cd987c0d 100644
--- a/lib/malloc/malloc.c
+++ b/lib/malloc/malloc.c
@@ -172,7 +172,7 @@ typedef union _malloc_guard {
#define ASSERT(p) \
do \
{ \
- if (!(p)) xbotch((PTR_T)0, ERR_ASSERT_FAILED, __STRING(p), file, line); \
+ if (!(p)) xbotch((PTR_T)0, ERR_ASSERT_FAILED, CPP_STRING(p), file, line); \
} \
while (0)
@@ -265,7 +265,7 @@ extern char *sbrk ();
#endif /* !HAVE_DECL_SBRK */
#ifdef SHELL
-extern int interrupt_immediately;
+extern int interrupt_immediately, running_trap;
extern int signal_is_trapped __P((int));
#endif
@@ -498,8 +498,8 @@ xsplit (mp, nu)
busy[nbuck] = 0;
}
-static void
-block_signals (setp, osetp)
+void
+_malloc_block_signals (setp, osetp)
sigset_t *setp, *osetp;
{
#ifdef HAVE_POSIX_SIGNALS
@@ -513,8 +513,8 @@ block_signals (setp, osetp)
#endif
}
-static void
-unblock_signals (setp, osetp)
+void
+_malloc_unblock_signals (setp, osetp)
sigset_t *setp, *osetp;
{
#ifdef HAVE_POSIX_SIGNALS
@@ -562,10 +562,14 @@ morecore (nu)
/* Block all signals in case we are executed from a signal handler. */
blocked_sigs = 0;
#ifdef SHELL
- if (interrupt_immediately || signal_is_trapped (SIGINT) || signal_is_trapped (SIGCHLD))
+# if defined (SIGCHLD)
+ if (interrupt_immediately || running_trap || signal_is_trapped (SIGINT) || signal_is_trapped (SIGCHLD))
+# else
+ if (interrupt_immediately || running_trap || signal_is_trapped (SIGINT))
+# endif
#endif
{
- block_signals (&set, &oset);
+ _malloc_block_signals (&set, &oset);
blocked_sigs = 1;
}
@@ -652,7 +656,7 @@ morecore (nu)
morecore_done:
if (blocked_sigs)
- unblock_signals (&set, &oset);
+ _malloc_unblock_signals (&set, &oset);
}
static void
@@ -901,10 +905,10 @@ internal_free (mem, file, line, flags)
if (mg.i != p->mh_nbytes)
xbotch (mem, ERR_ASSERT_FAILED, _("free: start and end chunk sizes differ"), file, line);
-#if 1
- if (nunits >= LESSCORE_MIN && ((char *)p + binsize(nunits) == memtop))
+#if GLIBC21
+ if (nunits >= LESSCORE_MIN && ((char *)p + binsize(nunits) == sbrk (0)))
#else
- if (((char *)p + binsize(nunits) == memtop) && nunits >= LESSCORE_MIN)
+ if (nunits >= LESSCORE_MIN && ((char *)p + binsize(nunits) == memtop))
#endif
{
/* If above LESSCORE_FRC, give back unconditionally. This should be set
diff --git a/lib/malloc/table.c b/lib/malloc/table.c
index cf89b3c0..dfa29e22 100644
--- a/lib/malloc/table.c
+++ b/lib/malloc/table.c
@@ -28,6 +28,11 @@
#include "imalloc.h"
#include "table.h"
+#ifdef SHELL
+extern int interrupt_immediately, running_trap;
+extern int signal_is_trapped __P((int));
+#endif
+
extern int malloc_register;
#ifdef MALLOC_REGISTER
@@ -168,6 +173,18 @@ mregister_alloc (tag, mem, size, file, line)
int line;
{
mr_table_t *tentry;
+ sigset_t set, oset;
+ int blocked_sigs;
+
+ /* Block all signals in case we are executed from a signal handler. */
+ blocked_sigs = 0;
+#ifdef SHELL
+ if (interrupt_immediately || running_trap || signal_is_trapped (SIGINT) || signal_is_trapped (SIGCHLD))
+#endif
+ {
+ _malloc_block_signals (&set, &oset);
+ blocked_sigs = 1;
+ }
tentry = find_entry (mem, FIND_ALLOC);
@@ -175,6 +192,8 @@ mregister_alloc (tag, mem, size, file, line)
{
/* oops. table is full. punt. */
fprintf (stderr, _("register_alloc: alloc table is full with FIND_ALLOC?\n"));
+ if (blocked_sigs)
+ _malloc_unblock_signals (&set, &oset);
return;
}
@@ -194,6 +213,9 @@ mregister_alloc (tag, mem, size, file, line)
if (tentry != &mem_overflow)
table_allocated++;
+
+ if (blocked_sigs)
+ _malloc_unblock_signals (&set, &oset);
}
void
@@ -204,6 +226,18 @@ mregister_free (mem, size, file, line)
int line;
{
mr_table_t *tentry;
+ sigset_t set, oset;
+ int blocked_sigs;
+
+ /* Block all signals in case we are executed from a signal handler. */
+ blocked_sigs = 0;
+#ifdef SHELL
+ if (interrupt_immediately || running_trap || signal_is_trapped (SIGINT) || signal_is_trapped (SIGCHLD))
+#endif
+ {
+ _malloc_block_signals (&set, &oset);
+ blocked_sigs = 1;
+ }
tentry = find_entry (mem, FIND_EXIST);
if (tentry == 0)
@@ -212,6 +246,8 @@ mregister_free (mem, size, file, line)
#if 0
fprintf (stderr, "register_free: %p not in allocation table?\n", mem);
#endif
+ if (blocked_sigs)
+ _malloc_unblock_signals (&set, &oset);
return;
}
if (tentry->flags & MT_FREE)
@@ -228,6 +264,9 @@ mregister_free (mem, size, file, line)
if (tentry != &mem_overflow)
table_allocated--;
+
+ if (blocked_sigs)
+ _malloc_unblock_signals (&set, &oset);
}
/* If we ever add more flags, this will require changes. */
diff --git a/lib/readline/Makefile.in b/lib/readline/Makefile.in
index 4387a54e..acccd021 100644
--- a/lib/readline/Makefile.in
+++ b/lib/readline/Makefile.in
@@ -4,7 +4,7 @@
# #
#############################################################################
-# Copyright (C) 1994-2009 Free Software Foundation, Inc.
+# Copyright (C) 1994-2012 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
@@ -83,21 +83,24 @@ CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
$(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
$(srcdir)/shell.c $(srcdir)/tilde.c $(srcdir)/savestring.c \
$(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
+ $(srcdir)/colors.c $(srcdir)/parse-colors.c \
$(srcdir)/mbutil.c $(srcdir)/xfree.c
# The header files for this library.
HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
ansi_stdlib.h rlstdc.h tcap.h xmalloc.h rlprivate.h rlshell.h \
- rltypedefs.h rlmbutil.h
+ rltypedefs.h rlmbutil.h colors.h parse-colors.h
HISTOBJ = history.o histexpand.o histfile.o histsearch.o shell.o savestring.o \
mbutil.o
TILDEOBJ = tilde.o
+COLORSOBJ = colors.o parse-colors.o
OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
rltty.o complete.o bind.o isearch.o display.o signals.o \
util.o kill.o undo.o macro.o input.o callback.o terminal.o \
- text.o nls.o misc.o $(HISTOBJ) $(TILDEOBJ) xmalloc.o xfree.o compat.o
+ text.o nls.o misc.o $(HISTOBJ) $(TILDEOBJ) $(COLORSOBJ) \
+ xmalloc.o xfree.o compat.o
# The texinfo files which document this library.
DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
@@ -176,6 +179,7 @@ compat.o: rlstdc.h
complete.o: ansi_stdlib.h posixdir.h posixstat.h
complete.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
complete.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+complete.o: colors.h
display.o: ansi_stdlib.h posixstat.h
display.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
display.o: tcap.h
@@ -264,6 +268,14 @@ vi_mode.o: history.h ansi_stdlib.h rlstdc.h
xmalloc.o: ${BUILD_DIR}/config.h ansi_stdlib.h
xfree.o: ${BUILD_DIR}/config.h ansi_stdlib.h
+colors.o: ${BUILD_DIR}/config.h colors.h
+colors.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+colors.o: rlconf.h
+colors.o: ansi_stdlib.h posixstat.h
+parse-colors.o: ${BUILD_DIR}/config.h colors.h parse-colors.h
+parse-colors.o: rldefs.h rlconf.h
+parse-colors.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
+
bind.o: rlshell.h
histfile.o: rlshell.h
nls.o: rlshell.h
@@ -293,6 +305,8 @@ text.o: rlprivate.h
undo.o: rlprivate.h
util.o: rlprivate.h
vi_mode.o: rlprivate.h
+colors.o: rlprivate.h
+parse-colors.o: rlprivate.h
bind.o: xmalloc.h
complete.o: xmalloc.h
@@ -320,6 +334,8 @@ util.o: xmalloc.h
vi_mode.o: xmalloc.h
xfree.o: xmalloc.h
xmalloc.o: xmalloc.h
+colors.o: xmalloc.h
+parse-colors.o: xmalloc.h
complete.o: rlmbutil.h
display.o: rlmbutil.h
@@ -332,6 +348,8 @@ readline.o: rlmbutil.h
search.o: rlmbutil.h
text.o: rlmbutil.h
vi_mode.o: rlmbutil.h
+colors.o: rlmbutil.h
+parse-colors.o: rlmbutil.h
# Rules for deficient makes, like SunOS and Solaris
bind.o: bind.c
@@ -364,6 +382,9 @@ vi_mode.o: vi_mode.c
xfree.o: xfree.c
xmalloc.o: xmalloc.c
+colors.o: colors.c
+parse-colors.o: parse-colors.c
+
histexpand.o: histexpand.c
histfile.o: histfile.c
history.o: history.c
diff --git a/lib/readline/bind.c b/lib/readline/bind.c
index 59e79643..8acf4ac4 100644
--- a/lib/readline/bind.c
+++ b/lib/readline/bind.c
@@ -1,6 +1,6 @@
/* bind.c -- key binding and startup file support for the readline library. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -72,11 +72,15 @@ extern char *strchr (), *strrchr ();
/* Variables exported by this file. */
Keymap rl_binding_keymap;
+static int _rl_skip_to_delim PARAMS((char *, int, int));
+
static char *_rl_read_file PARAMS((char *, size_t *));
static void _rl_init_file_error PARAMS((const char *));
static int _rl_read_init_file PARAMS((const char *, int));
static int glean_key_from_name PARAMS((char *));
+
static int find_boolean_var PARAMS((const char *));
+static int find_string_var PARAMS((const char *));
static char *_rl_get_string_variable_value PARAMS((const char *));
static int substring_member_of_array PARAMS((const char *, const char * const *));
@@ -567,6 +571,40 @@ rl_translate_keyseq (seq, array, len)
return (0);
}
+static int
+_rl_isescape (c)
+ int c;
+{
+ switch (c)
+ {
+ case '\007':
+ case '\b':
+ case '\f':
+ case '\n':
+ case '\r':
+ case TAB:
+ case 0x0b: return (1);
+ default: return (0);
+ }
+}
+
+static int
+_rl_escchar (c)
+ int c;
+{
+ switch (c)
+ {
+ case '\007': return ('a');
+ case '\b': return ('b');
+ case '\f': return ('f');
+ case '\n': return ('n');
+ case '\r': return ('r');
+ case TAB: return ('t');
+ case 0x0b: return ('v');
+ default: return (c);
+ }
+}
+
char *
rl_untranslate_keyseq (seq)
int seq;
@@ -618,9 +656,10 @@ rl_untranslate_keyseq (seq)
return kseq;
}
-static char *
-_rl_untranslate_macro_value (seq)
+char *
+_rl_untranslate_macro_value (seq, use_escapes)
char *seq;
+ int use_escapes;
{
char *ret, *r, *s;
int c;
@@ -644,9 +683,14 @@ _rl_untranslate_macro_value (seq)
else if (CTRL_CHAR (c))
{
*r++ = '\\';
- *r++ = 'C';
- *r++ = '-';
- c = _rl_to_lower (UNCTRL (c));
+ if (use_escapes && _rl_isescape (c))
+ c = _rl_escchar (c);
+ else
+ {
+ *r++ = 'C';
+ *r++ = '-';
+ c = _rl_to_lower (UNCTRL (c));
+ }
}
else if (c == RUBOUT)
{
@@ -1157,6 +1201,38 @@ handle_parser_directive (statement)
return (1);
}
+/* Start at STRING[START] and look for DELIM. Return I where STRING[I] ==
+ DELIM or STRING[I] == 0. DELIM is usually a double quote. */
+static int
+_rl_skip_to_delim (string, start, delim)
+ char *string;
+ int start, delim;
+{
+ int i, c, passc;
+
+ for (i = start,passc = 0; c = string[i]; i++)
+ {
+ if (passc)
+ {
+ passc = 0;
+ if (c == 0)
+ break;
+ continue;
+ }
+
+ if (c == '\\')
+ {
+ passc = 1;
+ continue;
+ }
+
+ if (c == delim)
+ break;
+ }
+
+ return i;
+}
+
/* Read the binding command from STRING and perform it.
A key binding command looks like: Keyname: function-name\0,
a variable binding command looks like: set variable value.
@@ -1172,7 +1248,7 @@ rl_parse_and_bind (string)
while (string && whitespace (*string))
string++;
- if (!string || !*string || *string == '#')
+ if (string == 0 || *string == 0 || *string == '#')
return 0;
/* If this is a parser directive, act on it. */
@@ -1192,31 +1268,16 @@ rl_parse_and_bind (string)
backslash to quote characters in the key expression. */
if (*string == '"')
{
- int passc = 0;
+ i = _rl_skip_to_delim (string, 1, '"');
- for (i = 1; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc++;
- continue;
- }
-
- if (c == '"')
- break;
- }
/* If we didn't find a closing quote, abort the line. */
if (string[i] == '\0')
{
_rl_init_file_error ("no closing `\"' in key binding");
return 1;
}
+ else
+ i++; /* skip past closing double quote */
}
/* Advance to the colon (:) or whitespace which separates the two objects. */
@@ -1236,6 +1297,7 @@ rl_parse_and_bind (string)
if (_rl_stricmp (string, "set") == 0)
{
char *var, *value, *e;
+ int s;
var = string + i;
/* Make VAR point to start of variable name. */
@@ -1243,25 +1305,37 @@ rl_parse_and_bind (string)
/* Make VALUE point to start of value string. */
value = var;
- while (*value && !whitespace (*value)) value++;
+ while (*value && whitespace (*value) == 0) value++;
if (*value)
*value++ = '\0';
while (*value && whitespace (*value)) value++;
- /* Strip trailing whitespace from values to boolean variables. Temp
- fix until I get a real quoted-string parser here. */
- i = find_boolean_var (var);
- if (i >= 0)
+ /* Strip trailing whitespace from values of boolean variables. */
+ if (find_boolean_var (var) >= 0)
{
/* remove trailing whitespace */
+remove_trailing:
e = value + strlen (value) - 1;
while (e >= value && whitespace (*e))
e--;
e++; /* skip back to whitespace or EOS */
+
if (*e && e >= value)
*e = '\0';
}
-
+ else if ((i = find_string_var (var)) >= 0)
+ {
+ /* Allow quoted strings in variable values */
+ if (*value == '"')
+ {
+ i = _rl_skip_to_delim (value, 1, *value);
+ value[i] = '\0';
+ value++; /* skip past the quote */
+ }
+ else
+ goto remove_trailing;
+ }
+
rl_variable_bind (var, value);
return 0;
}
@@ -1282,32 +1356,13 @@ rl_parse_and_bind (string)
the quoted string delimiter, like the shell. */
if (*funname == '\'' || *funname == '"')
{
- int delimiter, passc;
-
- delimiter = string[i++];
- for (passc = 0; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc = 1;
- continue;
- }
-
- if (c == delimiter)
- break;
- }
- if (c)
+ i = _rl_skip_to_delim (string, i+1, *funname);
+ if (string[i])
i++;
}
/* Advance to the end of the string. */
- for (; string[i] && !whitespace (string[i]); i++);
+ for (; string[i] && whitespace (string[i]) == 0; i++);
/* No extra whitespace at the end of the string. */
string[i] = '\0';
@@ -1367,7 +1422,7 @@ rl_parse_and_bind (string)
/* Get the actual character we want to deal with. */
kname = strrchr (string, '-');
- if (!kname)
+ if (kname == 0)
kname = string;
else
kname++;
@@ -1423,6 +1478,9 @@ static const struct {
{ "bind-tty-special-chars", &_rl_bind_stty_chars, 0 },
{ "blink-matching-paren", &rl_blink_matching_paren, V_SPECIAL },
{ "byte-oriented", &rl_byte_oriented, 0 },
+#if defined (COLOR_SUPPORT)
+ { "colored-stats", &_rl_colored_stats, 0 },
+#endif
{ "completion-ignore-case", &_rl_completion_case_fold, 0 },
{ "completion-map-case", &_rl_completion_case_map, 0 },
{ "convert-meta", &_rl_convert_meta_chars_to_ascii, 0 },
@@ -1447,6 +1505,7 @@ static const struct {
{ "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 },
+ { "show-mode-in-prompt", &_rl_show_mode_in_prompt, 0 },
{ "skip-completed-text", &_rl_skip_completed_text, 0 },
#if defined (VISIBLE_STATS)
{ "visible-stats", &rl_visible_stats, 0 },
@@ -1486,6 +1545,8 @@ hack_special_boolean_var (i)
else
_rl_bell_preference = AUDIBLE_BELL;
}
+ else if (_rl_stricmp (name, "show-mode-in-prompt") == 0)
+ _rl_reset_prompt ();
}
typedef int _rl_sv_func_t PARAMS((const char *));
@@ -1511,6 +1572,7 @@ 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 int sv_seqtimeout PARAMS((const char *));
static const struct {
const char * const name;
@@ -1526,6 +1588,7 @@ static const struct {
{ "history-size", V_INT, sv_histsize },
{ "isearch-terminators", V_STRING, sv_isrchterm },
{ "keymap", V_STRING, sv_keymap },
+ { "keyseq-timeout", V_INT, sv_seqtimeout },
{ (char *)NULL, 0, (_rl_sv_func_t *)0 }
};
@@ -1683,13 +1746,17 @@ static int
sv_histsize (value)
const char *value;
{
- int nval = 500;
+ int nval;
+ nval = 500;
if (value && *value)
{
nval = atoi (value);
if (nval < 0)
- return 1;
+ {
+ unstifle_history ();
+ return 0;
+ }
}
stifle_history (nval);
return 0;
@@ -1711,6 +1778,23 @@ sv_keymap (value)
}
static int
+sv_seqtimeout (value)
+ const char *value;
+{
+ int nval;
+
+ nval = 0;
+ if (value && *value)
+ {
+ nval = atoi (value);
+ if (nval < 0)
+ nval = 0;
+ }
+ _rl_keyseq_timeout = nval;
+ return 0;
+}
+
+static int
sv_bell_style (value)
const char *value;
{
@@ -2167,6 +2251,8 @@ rl_function_dumper (print_readably)
}
}
}
+
+ xfree (names);
}
/* Print all of the current functions and their bindings to
@@ -2199,7 +2285,7 @@ _rl_macro_dumper_internal (print_readably, map, prefix)
{
case ISMACR:
keyname = _rl_get_keyname (key);
- out = _rl_untranslate_macro_value ((char *)map[key].function);
+ out = _rl_untranslate_macro_value ((char *)map[key].function, 0);
if (print_readably)
fprintf (rl_outstream, "\"%s%s\": \"%s\"\n", prefix ? prefix : "",
@@ -2311,7 +2397,7 @@ _rl_get_string_variable_value (name)
{
if (_rl_isearch_terminators == 0)
return 0;
- ret = _rl_untranslate_macro_value (_rl_isearch_terminators);
+ ret = _rl_untranslate_macro_value (_rl_isearch_terminators, 0);
if (ret)
{
strncpy (numbuf, ret, sizeof (numbuf) - 1);
@@ -2329,6 +2415,11 @@ _rl_get_string_variable_value (name)
ret = rl_get_keymap_name_from_edit_mode ();
return (ret ? ret : "none");
}
+ else if (_rl_stricmp (name, "keyseq-timeout") == 0)
+ {
+ sprintf (numbuf, "%d", _rl_keyseq_timeout);
+ return (numbuf);
+ }
else
return (0);
}
diff --git a/lib/readline/callback.c b/lib/readline/callback.c
index 7682cd07..6bb2c3e0 100644
--- a/lib/readline/callback.c
+++ b/lib/readline/callback.c
@@ -62,8 +62,10 @@ _rl_callback_generic_arg *_rl_callback_data = 0;
whenever a complete line of input is ready. The user must then
call rl_callback_read_char() every time some input is available, and
rl_callback_read_char() will call the user's function with the complete
- text read in at each end of line. The terminal is kept prepped and
- signals handled all the time, except during calls to the user's function. */
+ text read in at each end of line. The terminal is kept prepped
+ all the time, except during calls to the user's function. Signal
+ handlers are only installed when the application calls back into
+ readline, so readline doesn't `steal' signals from the application. */
rl_vcpfunc_t *rl_linefunc; /* user callback function */
static int in_handler; /* terminal_prepped and signals set? */
@@ -80,10 +82,6 @@ _rl_callback_newline ()
if (rl_prep_term_function)
(*rl_prep_term_function) (_rl_meta_flag);
-
-#if defined (HANDLE_SIGNALS)
- rl_set_signals ();
-#endif
}
readline_internal_setup ();
@@ -102,6 +100,16 @@ rl_callback_handler_install (prompt, linefunc)
_rl_callback_newline ();
}
+#if defined (HANDLE_SIGNALS)
+#define CALLBACK_READ_RETURN() \
+ do { \
+ rl_clear_signals (); \
+ return; \
+ } while (0)
+#else
+#define CALLBACK_READ_RETURN() return
+#endif
+
/* Read one character, and dispatch to the handler if it ends the line. */
void
rl_callback_read_char ()
@@ -117,15 +125,24 @@ rl_callback_read_char ()
}
memcpy ((void *)olevel, (void *)_rl_top_level, sizeof (procenv_t));
+#if defined (HAVE_POSIX_SIGSETJMP)
+ jcode = sigsetjmp (_rl_top_level, 0);
+#else
jcode = setjmp (_rl_top_level);
+#endif
if (jcode)
{
(*rl_redisplay_function) ();
_rl_want_redisplay = 0;
memcpy ((void *)_rl_top_level, (void *)olevel, sizeof (procenv_t));
- return;
+ CALLBACK_READ_RETURN ();
}
+#if defined (HANDLE_SIGNALS)
+ /* Install signal handlers only when readline has control. */
+ rl_set_signals ();
+#endif
+
do
{
RL_CHECK_SIGNALS ();
@@ -135,12 +152,13 @@ rl_callback_read_char ()
if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
rl_callback_read_char ();
- return;
+ CALLBACK_READ_RETURN ();
}
else if (RL_ISSTATE (RL_STATE_NSEARCH))
{
eof = _rl_nsearch_callback (_rl_nscxt);
- return;
+
+ CALLBACK_READ_RETURN ();
}
#if defined (VI_MODE)
else if (RL_ISSTATE (RL_STATE_VIMOTION))
@@ -151,7 +169,7 @@ rl_callback_read_char ()
if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
_rl_internal_char_cleanup ();
- return;
+ CALLBACK_READ_RETURN ();
}
#endif
else if (RL_ISSTATE (RL_STATE_NUMERICARG))
@@ -163,7 +181,7 @@ rl_callback_read_char ()
else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
_rl_internal_char_cleanup ();
- return;
+ CALLBACK_READ_RETURN ();
}
else if (RL_ISSTATE (RL_STATE_MULTIKEY))
{
@@ -180,7 +198,7 @@ rl_callback_read_char ()
{
/* This allows functions that simply need to read an additional
character (like quoted-insert) to register a function to be
- called when input is available. _rl_callback_data is simply a
+ called when input is available. _rl_callback_data is a
pointer to a struct that has the argument count originally
passed to the registering function and space for any additional
parameters. */
@@ -230,6 +248,8 @@ rl_callback_read_char ()
}
}
while (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT));
+
+ CALLBACK_READ_RETURN ();
}
/* Remove the handler, and make sure the terminal is in its normal state. */
diff --git a/lib/readline/chardefs.h b/lib/readline/chardefs.h
index e76c34b0..1fa1b089 100644
--- a/lib/readline/chardefs.h
+++ b/lib/readline/chardefs.h
@@ -72,7 +72,7 @@
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
-#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT)
+#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT) && !defined (__cplusplus)
# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
#endif
diff --git a/lib/readline/colors.c b/lib/readline/colors.c
new file mode 100644
index 00000000..89d9035f
--- /dev/null
+++ b/lib/readline/colors.c
@@ -0,0 +1,251 @@
+/* `dir', `vdir' and `ls' directory listing programs for GNU.
+
+ Modified by Chet Ramey for Readline.
+
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 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 <http://www.gnu.org/licenses/>. */
+
+/* Written by Richard Stallman and David MacKenzie. */
+
+/* Color support by Peter Anvin <Peter.Anvin@linux.org> and Dennis
+ Flaherty <dennisf@denix.elk.miles.com> based on original patches by
+ Greg Lee <lee@uhunix.uhcc.hawaii.edu>. */
+
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+# include <config.h>
+#endif
+
+#include "rlconf.h"
+
+#include <stdio.h>
+
+#include "posixstat.h" // stat related macros (S_ISREG, ...)
+#include <fcntl.h> // S_ISUID
+
+// strlen()
+#if defined (HAVE_STRING_H)
+# include <string.h>
+#else /* !HAVE_STRING_H */
+# include <strings.h>
+#endif /* !HAVE_STRING_H */
+
+// abort()
+#if defined (HAVE_STDLIB_H)
+# include <stdlib.h>
+#else
+# include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include "readline.h"
+#include "rldefs.h"
+
+#ifdef COLOR_SUPPORT
+
+#include "xmalloc.h"
+#include "colors.h"
+
+static bool is_colored (enum indicator_no type);
+static void restore_default_color (void);
+
+COLOR_EXT_TYPE *_rl_color_ext_list = 0;
+
+/* Output a color indicator (which may contain nulls). */
+void
+_rl_put_indicator (const struct bin_str *ind) {
+ fwrite (ind->string, ind->len, 1, rl_outstream);
+}
+
+static bool
+is_colored (enum indicator_no colored_filetype)
+{
+ size_t len = _rl_color_indicator[colored_filetype].len;
+ char const *s = _rl_color_indicator[colored_filetype].string;
+ return ! (len == 0
+ || (len == 1 && strncmp (s, "0", 1) == 0)
+ || (len == 2 && strncmp (s, "00", 2) == 0));
+}
+
+static void
+restore_default_color (void)
+{
+ _rl_put_indicator (&_rl_color_indicator[C_LEFT]);
+ _rl_put_indicator (&_rl_color_indicator[C_RIGHT]);
+}
+
+void
+_rl_set_normal_color (void)
+{
+ if (is_colored (C_NORM))
+ {
+ _rl_put_indicator (&_rl_color_indicator[C_LEFT]);
+ _rl_put_indicator (&_rl_color_indicator[C_NORM]);
+ _rl_put_indicator (&_rl_color_indicator[C_RIGHT]);
+ }
+}
+
+/* Returns whether any color sequence was printed. */
+bool
+_rl_print_color_indicator (char *f)
+{
+ enum indicator_no colored_filetype;
+ COLOR_EXT_TYPE *ext; /* Color extension */
+ size_t len; /* Length of name */
+
+ const char* name;
+ char *filename;
+ struct stat astat;
+ mode_t mode;
+ int linkok;
+
+ int stat_ok;
+
+ name = f;
+
+ /* This should already have undergone tilde expansion */
+ filename = 0;
+ if (rl_filename_stat_hook)
+ {
+ filename = savestring (f);
+ (*rl_filename_stat_hook) (&filename);
+ name = filename;
+ }
+
+#if defined (HAVE_LSTAT)
+ stat_ok = lstat(name, &astat);
+#else
+ stat_ok = stat(name, &astat);
+#endif
+ if( stat_ok == 0 ) {
+ mode = astat.st_mode;
+ linkok = 1; //f->linkok;
+ }
+ else
+ linkok = -1;
+
+ /* Is this a nonexistent file? If so, linkok == -1. */
+
+ if (linkok == -1 && _rl_color_indicator[C_MISSING].string != NULL)
+ colored_filetype = C_MISSING;
+ else if(stat_ok != 0)
+ {
+ static enum indicator_no filetype_indicator[] = FILETYPE_INDICATORS;
+ colored_filetype = filetype_indicator[normal]; //f->filetype];
+ }
+ else
+ {
+ if (S_ISREG (mode))
+ {
+ colored_filetype = C_FILE;
+
+ if ((mode & S_ISUID) != 0 && is_colored (C_SETUID))
+ colored_filetype = C_SETUID;
+ else if ((mode & S_ISGID) != 0 && is_colored (C_SETGID))
+ colored_filetype = C_SETGID;
+ else if (is_colored (C_CAP) && 0) //f->has_capability)
+ colored_filetype = C_CAP;
+ else if ((mode & S_IXUGO) != 0 && is_colored (C_EXEC))
+ colored_filetype = C_EXEC;
+ else if ((1 < astat.st_nlink) && is_colored (C_MULTIHARDLINK))
+ colored_filetype = C_MULTIHARDLINK;
+ }
+ else if (S_ISDIR (mode))
+ {
+ colored_filetype = C_DIR;
+
+#if defined (S_ISVTX)
+ if ((mode & S_ISVTX) && (mode & S_IWOTH)
+ && is_colored (C_STICKY_OTHER_WRITABLE))
+ colored_filetype = C_STICKY_OTHER_WRITABLE;
+ else
+#endif
+ if ((mode & S_IWOTH) != 0 && is_colored (C_OTHER_WRITABLE))
+ colored_filetype = C_OTHER_WRITABLE;
+#if defined (S_ISVTX)
+ else if ((mode & S_ISVTX) != 0 && is_colored (C_STICKY))
+ colored_filetype = C_STICKY;
+#endif
+ }
+ else if (S_ISLNK (mode))
+ colored_filetype = ((linkok == 0
+ && (!strncmp (_rl_color_indicator[C_LINK].string, "target", 6)
+ || _rl_color_indicator[C_ORPHAN].string))
+ ? C_ORPHAN : C_LINK);
+ else if (S_ISFIFO (mode))
+ colored_filetype = C_FIFO;
+ else if (S_ISSOCK (mode))
+ colored_filetype = C_SOCK;
+ else if (S_ISBLK (mode))
+ colored_filetype = C_BLK;
+ else if (S_ISCHR (mode))
+ colored_filetype = C_CHR;
+ else
+ {
+ /* Classify a file of some other type as C_ORPHAN. */
+ colored_filetype = C_ORPHAN;
+ }
+ }
+
+ /* Check the file's suffix only if still classified as C_FILE. */
+ ext = NULL;
+ if (colored_filetype == C_FILE)
+ {
+ /* Test if NAME has a recognized suffix. */
+ len = strlen (name);
+ name += len; /* Pointer to final \0. */
+ for (ext = _rl_color_ext_list; ext != NULL; ext = ext->next)
+ {
+ if (ext->ext.len <= len
+ && strncmp (name - ext->ext.len, ext->ext.string,
+ ext->ext.len) == 0)
+ break;
+ }
+ }
+
+ free (filename); /* NULL or savestring return value */
+
+ {
+ const struct bin_str *const s
+ = ext ? &(ext->seq) : &_rl_color_indicator[colored_filetype];
+ if (s->string != NULL)
+ {
+ /* Need to reset so not dealing with attribute combinations */
+ if (is_colored (C_NORM))
+ restore_default_color ();
+ _rl_put_indicator (&_rl_color_indicator[C_LEFT]);
+ _rl_put_indicator (s);
+ _rl_put_indicator (&_rl_color_indicator[C_RIGHT]);
+ return 0;
+ }
+ else
+ return 1;
+ }
+}
+
+void
+_rl_prep_non_filename_text (void)
+{
+ if (_rl_color_indicator[C_END].string != NULL)
+ _rl_put_indicator (&_rl_color_indicator[C_END]);
+ else
+ {
+ _rl_put_indicator (&_rl_color_indicator[C_LEFT]);
+ _rl_put_indicator (&_rl_color_indicator[C_RESET]);
+ _rl_put_indicator (&_rl_color_indicator[C_RIGHT]);
+ }
+}
+#endif /* COLOR_SUPPORT */
diff --git a/lib/readline/colors.h b/lib/readline/colors.h
new file mode 100644
index 00000000..fc926e53
--- /dev/null
+++ b/lib/readline/colors.h
@@ -0,0 +1,122 @@
+/* `dir', `vdir' and `ls' directory listing programs for GNU.
+
+ Modified by Chet Ramey for Readline.
+
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 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 <http://www.gnu.org/licenses/>. */
+
+/* Written by Richard Stallman and David MacKenzie. */
+
+/* Color support by Peter Anvin <Peter.Anvin@linux.org> and Dennis
+ Flaherty <dennisf@denix.elk.miles.com> based on original patches by
+ Greg Lee <lee@uhunix.uhcc.hawaii.edu>. */
+
+#ifndef _COLORS_H_
+#define _COLORS_H_
+
+#include <stdio.h> // size_t
+
+#if defined(__TANDEM) && defined(HAVE_STDBOOL_H) && (__STDC_VERSION__ < 199901L)
+typedef int _Bool;
+#endif
+
+#if defined (HAVE_STDBOOL_H)
+# include <stdbool.h> // bool
+#else
+typedef int _rl_bool_t;
+
+#ifdef bool
+# undef bool
+#endif
+#define bool _rl_bool_t
+
+#ifndef true
+# define true 1
+# define false 0
+#endif
+
+#endif /* !HAVE_STDBOOL_H */
+
+/* Null is a valid character in a color indicator (think about Epson
+ printers, for example) so we have to use a length/buffer string
+ type. */
+struct bin_str
+ {
+ size_t len;
+ const char *string;
+ };
+
+/* file type indicators (dir, sock, fifo, ...)
+ Default value is initialized in parse-colors.c.
+ It is then modified from the values of $LS_COLORS. */
+extern struct bin_str _rl_color_indicator[];
+
+/* The LS_COLORS variable is in a termcap-like format. */
+typedef struct _color_ext_type
+ {
+ struct bin_str ext; /* The extension we're looking for */
+ struct bin_str seq; /* The sequence to output when we do */
+ struct _color_ext_type *next; /* Next in list */
+ } COLOR_EXT_TYPE;
+
+/* file extensions indicators (.txt, .log, .jpg, ...)
+ Values are taken from $LS_COLORS in rl_parse_colors(). */
+extern COLOR_EXT_TYPE *_rl_color_ext_list;
+
+#define FILETYPE_INDICATORS \
+ { \
+ C_ORPHAN, C_FIFO, C_CHR, C_DIR, C_BLK, C_FILE, \
+ C_LINK, C_SOCK, C_FILE, C_DIR \
+ }
+
+/* Whether we used any colors in the output so far. If so, we will
+ need to restore the default color later. If not, we will need to
+ call prep_non_filename_text before using color for the first time. */
+
+enum indicator_no
+ {
+ C_LEFT, C_RIGHT, C_END, C_RESET, C_NORM, C_FILE, C_DIR, C_LINK,
+ C_FIFO, C_SOCK,
+ C_BLK, C_CHR, C_MISSING, C_ORPHAN, C_EXEC, C_DOOR, C_SETUID, C_SETGID,
+ C_STICKY, C_OTHER_WRITABLE, C_STICKY_OTHER_WRITABLE, C_CAP, C_MULTIHARDLINK,
+ C_CLR_TO_EOL
+ };
+
+
+#if !S_IXUGO
+# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
+#endif
+
+enum filetype
+ {
+ unknown,
+ fifo,
+ chardev,
+ directory,
+ blockdev,
+ normal,
+ symbolic_link,
+ sock,
+ whiteout,
+ arg_directory
+ };
+
+extern void _rl_put_indicator (const struct bin_str *ind);
+extern void _rl_set_normal_color (void);
+extern bool _rl_print_color_indicator (char *f);
+extern void _rl_prep_non_filename_text (void);
+
+#endif /* !_COLORS_H_ */
diff --git a/lib/readline/complete.c b/lib/readline/complete.c
index e67cfeb3..cd9aebe8 100644
--- a/lib/readline/complete.c
+++ b/lib/readline/complete.c
@@ -1,6 +1,6 @@
/* complete.c -- filename completion for readline. */
-/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -31,6 +31,8 @@
# include <sys/file.h>
#endif
+#include <signal.h>
+
#if defined (HAVE_UNISTD_H)
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
@@ -64,6 +66,10 @@ extern int errno;
#include "xmalloc.h"
#include "rlprivate.h"
+#if defined (COLOR_SUPPORT)
+# include "colors.h"
+#endif
+
#ifdef __STDC__
typedef int QSFUNC (const void *, const void *);
#else
@@ -94,17 +100,27 @@ extern struct passwd *getpwent PARAMS((void));
longest string in that array. */
rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
-#if defined (VISIBLE_STATS)
+#if defined (VISIBLE_STATS) || defined (COLOR_SUPPORT)
# if !defined (X_OK)
# define X_OK 1
# endif
+#endif
+
+#if defined (VISIBLE_STATS)
static int stat_char PARAMS((char *));
#endif
+#if defined (COLOR_SUPPORT)
+static int colored_stat_start PARAMS((char *));
+static void colored_stat_end PARAMS((void));
+#endif
+
static int path_isdir PARAMS((const char *));
static char *rl_quote_filename PARAMS((char *, int, char *));
+static void _rl_complete_sigcleanup PARAMS((int, void *));
+
static void set_completion_defaults PARAMS((int));
static int get_y_or_n PARAMS((int));
static int _rl_internal_pager PARAMS((int));
@@ -189,6 +205,12 @@ int _rl_completion_columns = -1;
int rl_visible_stats = 0;
#endif /* VISIBLE_STATS */
+#if defined (COLOR_SUPPORT)
+/* Non-zero means to use colors to indicate file type when listing possible
+ completions. The colors used are taken from $LS_COLORS, if set. */
+int _rl_colored_stats = 0;
+#endif
+
/* If non-zero, when completing in the middle of a word, don't insert
characters from the match that match characters following point in
the word. This means, for instance, completing when the cursor is
@@ -206,6 +228,8 @@ rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+rl_icppfunc_t *rl_filename_stat_hook = (rl_icppfunc_t *)NULL;
+
/* If non-zero, this is the address of a function to call when reading
directory entries from the filesystem for completion and comparing
them to the partial word to be completed. The function should
@@ -457,6 +481,15 @@ _rl_reset_completion_state ()
rl_completion_quote_character = 0;
}
+static void
+_rl_complete_sigcleanup (sig, ptr)
+ int sig;
+ void *ptr;
+{
+ if (sig == SIGINT) /* XXX - for now */
+ _rl_free_match_list ((char **)ptr);
+}
+
/* Set default values for readline word completion. These are the variables
that application completion functions can change or inspect. */
static void
@@ -551,6 +584,8 @@ stat_char (filename)
{
struct stat finfo;
int character, r;
+ char *f;
+ const char *fn;
/* Short-circuit a //server on cygwin, since that will always behave as
a directory. */
@@ -559,10 +594,20 @@ stat_char (filename)
return '/';
#endif
+ f = 0;
+ if (rl_filename_stat_hook)
+ {
+ f = savestring (filename);
+ (*rl_filename_stat_hook) (&f);
+ fn = f;
+ }
+ else
+ fn = filename;
+
#if defined (HAVE_LSTAT) && defined (S_ISLNK)
- r = lstat (filename, &finfo);
+ r = lstat (fn, &finfo);
#else
- r = stat (filename, &finfo);
+ r = stat (fn, &finfo);
#endif
if (r == -1)
@@ -596,10 +641,29 @@ stat_char (filename)
if (access (filename, X_OK) == 0)
character = '*';
}
+
+ free (f);
return (character);
}
#endif /* VISIBLE_STATS */
+#if defined (COLOR_SUPPORT)
+static int
+colored_stat_start (filename)
+ char *filename;
+{
+ _rl_set_normal_color ();
+ return (_rl_print_color_indicator (filename));
+}
+
+static void
+colored_stat_end ()
+{
+ _rl_prep_non_filename_text ();
+ _rl_put_indicator (&_rl_color_indicator[C_CLR_TO_EOL]);
+}
+#endif
+
/* Return the portion of PATHNAME that should be output when listing
possible completions. If we are hacking filename completion, we
are only interested in the basename, the portion following the
@@ -679,7 +743,7 @@ fnwidth (string)
else
{
pos += clen;
- w = wcwidth (wc);
+ w = WCWIDTH (wc);
width += (w >= 0) ? w : 1;
}
#else
@@ -766,7 +830,7 @@ fnprint (to_print, prefix_bytes)
break;
else
{
- w = wcwidth (wc);
+ w = WCWIDTH (wc);
width = (w >= 0) ? w : 1;
}
fwrite (s, 1, tlen, rl_outstream);
@@ -796,13 +860,20 @@ print_filename (to_print, full_pathname, prefix_bytes)
char *s, c, *new_full_pathname, *dn;
extension_char = 0;
- printed_len = fnprint (to_print, prefix_bytes);
+#if defined (COLOR_SUPPORT)
+ /* Defer printing if we want to prefix with a color indicator */
+ if (_rl_colored_stats == 0 || rl_filename_completion_desired == 0)
+#endif
+ printed_len = fnprint (to_print, prefix_bytes);
+ if (rl_filename_completion_desired && (
#if defined (VISIBLE_STATS)
- if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories))
-#else
- if (rl_filename_completion_desired && _rl_complete_mark_directories)
+ rl_visible_stats ||
#endif
+#if defined (COLOR_SUPPORT)
+ _rl_colored_stats ||
+#endif
+ _rl_complete_mark_directories))
{
/* If to_print != full_pathname, to_print is the basename of the
path passed. In this case, we try to expand the directory
@@ -848,8 +919,28 @@ print_filename (to_print, full_pathname, prefix_bytes)
extension_char = stat_char (new_full_pathname);
else
#endif
- if (path_isdir (new_full_pathname))
- extension_char = '/';
+ if (_rl_complete_mark_directories)
+ {
+ dn = 0;
+ if (rl_directory_completion_hook == 0 && rl_filename_stat_hook)
+ {
+ dn = savestring (new_full_pathname);
+ (*rl_filename_stat_hook) (&dn);
+ free (new_full_pathname);
+ new_full_pathname = dn;
+ }
+ if (path_isdir (new_full_pathname))
+ extension_char = '/';
+ }
+
+#if defined (COLOR_SUPPORT)
+ if (_rl_colored_stats)
+ {
+ colored_stat_start (new_full_pathname);
+ printed_len = fnprint (to_print, prefix_bytes);
+ colored_stat_end ();
+ }
+#endif
xfree (new_full_pathname);
to_print[-1] = c;
@@ -862,8 +953,18 @@ print_filename (to_print, full_pathname, prefix_bytes)
extension_char = stat_char (s);
else
#endif
- if (path_isdir (s))
+ if (_rl_complete_mark_directories && path_isdir (s))
extension_char = '/';
+
+#if defined (COLOR_SUPPORT)
+ if (_rl_colored_stats)
+ {
+ colored_stat_start (s);
+ printed_len = fnprint (to_print, prefix_bytes);
+ colored_stat_end ();
+ }
+#endif
+
}
xfree (s);
@@ -1058,10 +1159,13 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
variable rl_attempted_completion_function. */
if (rl_attempted_completion_function)
{
- _rl_interrupt_immediately++;
matches = (*rl_attempted_completion_function) (text, start, end);
- if (_rl_interrupt_immediately > 0)
- _rl_interrupt_immediately--;
+ if (RL_SIG_RECEIVED())
+ {
+ _rl_free_match_list (matches);
+ matches = 0;
+ RL_CHECK_SIGNALS ();
+ }
if (matches || rl_attempted_completion_over)
{
@@ -1072,7 +1176,15 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
/* XXX -- filename dequoting moved into rl_filename_completion_function */
+ /* rl_completion_matches will check for signals as well to avoid a long
+ delay while reading a directory. */
matches = rl_completion_matches (text, our_func);
+ if (RL_SIG_RECEIVED())
+ {
+ _rl_free_match_list (matches);
+ matches = 0;
+ RL_CHECK_SIGNALS ();
+ }
return matches;
}
@@ -1147,9 +1259,11 @@ compute_lcd_of_matches (match_list, matches, text)
{
register int i, c1, c2, si;
int low; /* Count of max-matched characters. */
+ int lx;
char *dtext; /* dequoted TEXT, if needed */
#if defined (HANDLE_MULTIBYTE)
int v;
+ size_t v1, v2;
mbstate_t ps1, ps2;
wchar_t wc1, wc2;
#endif
@@ -1182,14 +1296,20 @@ compute_lcd_of_matches (match_list, matches, text)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
- mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+ v1 = mbrtowc(&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+ v2 = mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+ if (MB_INVALIDCH (v1) || MB_INVALIDCH (v2))
+ {
+ if (c1 != c2) /* do byte comparison */
+ break;
+ continue;
+ }
wc1 = towlower (wc1);
wc2 = towlower (wc2);
if (wc1 != wc2)
break;
- else if (v > 1)
- si += v - 1;
+ else if (v1 > 1)
+ si += v1 - 1;
}
else
#endif
@@ -1264,21 +1384,20 @@ compute_lcd_of_matches (match_list, matches, text)
qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
si = strlen (text);
- if (si <= low)
- {
- for (i = 1; i <= matches; i++)
- if (strncmp (match_list[i], text, si) == 0)
- {
- strncpy (match_list[0], match_list[i], low);
- break;
- }
- /* no casematch, use first entry */
- if (i > matches)
- strncpy (match_list[0], match_list[1], low);
- }
- else
- /* otherwise, just use the text the user typed. */
- strncpy (match_list[0], text, low);
+ lx = (si <= low) ? si : low; /* check shorter of text and matches */
+ /* Try to preserve the case of what the user typed in the presence of
+ multiple matches: check each match for something that matches
+ what the user typed taking case into account; use it up to common
+ length of matches if one is found. If not, just use first match. */
+ for (i = 1; i <= matches; i++)
+ if (strncmp (match_list[i], text, lx) == 0)
+ {
+ strncpy (match_list[0], match_list[i], low);
+ break;
+ }
+ /* no casematch, use first entry */
+ if (i > matches)
+ strncpy (match_list[0], match_list[1], low);
FREE (dtext);
}
@@ -1305,7 +1424,7 @@ postprocess_matches (matchesp, matching_filenames)
return 0;
/* It seems to me that in all the cases we handle we would like
- to ignore duplicate possiblilities. Scan for the text to
+ to ignore duplicate possibilities. Scan for the text to
insert being identical to the other completions. */
if (rl_ignore_completion_duplicates)
{
@@ -1463,7 +1582,7 @@ rl_display_match_list (matches, len, max)
/* Have we reached the end of this line? */
if (matches[i+1])
{
- if (i && (limit > 1) && (i % limit) == 0)
+ if (limit == 1 || (i && (limit > 1) && (i % limit) == 0))
{
rl_crlf ();
lines++;
@@ -1672,7 +1791,7 @@ append_to_match (text, delimiter, quote_char, nontrivial_match)
char *text;
int delimiter, quote_char, nontrivial_match;
{
- char temp_string[4], *filename;
+ char temp_string[4], *filename, *fn;
int temp_string_index, s;
struct stat finfo;
@@ -1691,6 +1810,13 @@ append_to_match (text, delimiter, quote_char, nontrivial_match)
if (rl_filename_completion_desired)
{
filename = tilde_expand (text);
+ if (rl_filename_stat_hook)
+ {
+ fn = savestring (filename);
+ (*rl_filename_stat_hook) (&fn);
+ xfree (filename);
+ filename = fn;
+ }
s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
? LSTAT (filename, &finfo)
: stat (filename, &finfo);
@@ -1710,8 +1836,7 @@ append_to_match (text, delimiter, quote_char, nontrivial_match)
#ifdef S_ISLNK
/* Don't add anything if the filename is a symlink and resolves to a
directory. */
- else if (s == 0 && S_ISLNK (finfo.st_mode) &&
- stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
+ else if (s == 0 && S_ISLNK (finfo.st_mode) && path_isdir (filename))
;
#endif
else
@@ -1831,10 +1956,8 @@ rl_complete_internal (what_to_do)
/* nontrivial_lcd is set if the common prefix adds something to the word
being completed. */
nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
-#if 1
if (what_to_do == '!' || what_to_do == '@')
tlen = strlen (text);
-#endif
xfree (text);
if (matches == 0)
@@ -1868,10 +1991,6 @@ rl_complete_internal (what_to_do)
case '!':
case '@':
/* Insert the first match with proper quoting. */
-#if 0
- if (*matches[0])
- insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
-#else
if (what_to_do == TAB)
{
if (*matches[0])
@@ -1886,7 +2005,6 @@ rl_complete_internal (what_to_do)
if (mlen >= tlen)
insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
}
-#endif
/* If there are more matches, ring the bell to indicate.
If we are in vi mode, Posix.2 says to not ring the bell.
@@ -1922,7 +2040,14 @@ rl_complete_internal (what_to_do)
break;
case '?':
+ if (rl_completion_display_matches_hook == 0)
+ {
+ _rl_sigcleanup = _rl_complete_sigcleanup;
+ _rl_sigcleanarg = matches;
+ }
display_matches (matches);
+ _rl_sigcleanup = 0;
+ _rl_sigcleanarg = 0;
break;
default:
@@ -1930,6 +2055,7 @@ rl_complete_internal (what_to_do)
rl_ding ();
FREE (saved_line_buffer);
RL_UNSETSTATE(RL_STATE_COMPLETING);
+ _rl_free_match_list (matches);
_rl_reset_completion_state ();
return 1;
}
@@ -1971,6 +2097,8 @@ rl_completion_matches (text, entry_function)
const char *text;
rl_compentry_func_t *entry_function;
{
+ register int i;
+
/* Number of slots in match_list. */
int match_list_size;
@@ -1988,18 +2116,36 @@ rl_completion_matches (text, entry_function)
match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
match_list[1] = (char *)NULL;
- _rl_interrupt_immediately++;
while (string = (*entry_function) (text, matches))
{
- if (matches + 1 == match_list_size)
+ if (RL_SIG_RECEIVED ())
+ {
+ /* Start at 1 because we don't set matches[0] in this function.
+ Only free the list members if we're building match list from
+ rl_filename_completion_function, since we know that doesn't
+ free the strings it returns. */
+ if (entry_function == rl_filename_completion_function)
+ {
+ for (i = 1; match_list[i]; i++)
+ xfree (match_list[i]);
+ }
+ xfree (match_list);
+ match_list = 0;
+ match_list_size = 0;
+ matches = 0;
+ RL_CHECK_SIGNALS ();
+ }
+
+ if (matches + 1 >= match_list_size)
match_list = (char **)xrealloc
(match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+ if (match_list == 0)
+ return (match_list);
+
match_list[++matches] = string;
match_list[matches + 1] = (char *)NULL;
}
- if (_rl_interrupt_immediately > 0)
- _rl_interrupt_immediately--;
/* If there were any matches, then look through them finding out the
lowest common denominator. That then becomes match_list[0]. */
@@ -2038,7 +2184,9 @@ rl_username_completion_function (text, state)
username = savestring (&text[first_char_loc]);
namelen = strlen (username);
+#if defined (HAVE_GETPWENT)
setpwent ();
+#endif
}
#if defined (HAVE_GETPWENT)
@@ -2075,8 +2223,9 @@ rl_username_completion_function (text, state)
/* Return non-zero if CONVFN matches FILENAME up to the length of FILENAME
(FILENAME_LEN). If _rl_completion_case_fold is set, compare without
- regard to the alphabetic case of characters. CONVFN is the possibly-
- converted directory entry; FILENAME is what the user typed. */
+ regard to the alphabetic case of characters. If
+ _rl_completion_case_map is set, make `-' and `_' equivalent. CONVFN is
+ the possibly-converted directory entry; FILENAME is what the user typed. */
static int
complete_fncmp (convfn, convlen, filename, filename_len)
const char *convfn;
@@ -2086,34 +2235,110 @@ complete_fncmp (convfn, convlen, filename, filename_len)
{
register char *s1, *s2;
int d, len;
+#if defined (HANDLE_MULTIBYTE)
+ size_t v1, v2;
+ mbstate_t ps1, ps2;
+ wchar_t wc1, wc2;
+#endif
+
+#if defined (HANDLE_MULTIBYTE)
+ memset (&ps1, 0, sizeof (mbstate_t));
+ memset (&ps2, 0, sizeof (mbstate_t));
+#endif
+
+ if (filename_len == 0)
+ return 1;
+ if (convlen < filename_len)
+ return 0;
+
+ len = filename_len;
+ s1 = (char *)convfn;
+ s2 = (char *)filename;
/* Otherwise, if these match up to the length of filename, then
it is a match. */
if (_rl_completion_case_fold && _rl_completion_case_map)
{
/* Case-insensitive comparison treating _ and - as equivalent */
- if (filename_len == 0)
- return 1;
- if (convlen < filename_len)
- return 0;
- s1 = (char *)convfn;
- s2 = (char *)filename;
- len = filename_len;
- do
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ {
+ do
+ {
+ v1 = mbrtowc (&wc1, s1, convlen, &ps1);
+ v2 = mbrtowc (&wc2, s2, filename_len, &ps2);
+ if (v1 == 0 && v2 == 0)
+ return 1;
+ else if (MB_INVALIDCH (v1) || MB_INVALIDCH (v2))
+ {
+ if (*s1 != *s2) /* do byte comparison */
+ return 0;
+ else if ((*s1 == '-' || *s1 == '_') && (*s2 == '-' || *s2 == '_'))
+ return 0;
+ s1++; s2++; len--;
+ continue;
+ }
+ wc1 = towlower (wc1);
+ wc2 = towlower (wc2);
+ s1 += v1;
+ s2 += v1;
+ len -= v1;
+ if ((wc1 == L'-' || wc1 == L'_') && (wc2 == L'-' || wc2 == L'_'))
+ continue;
+ if (wc1 != wc2)
+ return 0;
+ }
+ while (len != 0);
+ }
+ else
+#endif
{
- d = _rl_to_lower (*s1) - _rl_to_lower (*s2);
- /* *s1 == [-_] && *s2 == [-_] */
- if ((*s1 == '-' || *s1 == '_') && (*s2 == '-' || *s2 == '_'))
- d = 0;
- if (d != 0)
- return 0;
- s1++; s2++; /* already checked convlen >= filename_len */
+ do
+ {
+ d = _rl_to_lower (*s1) - _rl_to_lower (*s2);
+ /* *s1 == [-_] && *s2 == [-_] */
+ if ((*s1 == '-' || *s1 == '_') && (*s2 == '-' || *s2 == '_'))
+ d = 0;
+ if (d != 0)
+ return 0;
+ s1++; s2++; /* already checked convlen >= filename_len */
+ }
+ while (--len != 0);
}
- while (--len != 0);
+
return 1;
}
else if (_rl_completion_case_fold)
{
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ {
+ do
+ {
+ v1 = mbrtowc (&wc1, s1, convlen, &ps1);
+ v2 = mbrtowc (&wc2, s2, filename_len, &ps2);
+ if (v1 == 0 && v2 == 0)
+ return 1;
+ else if (MB_INVALIDCH (v1) || MB_INVALIDCH (v2))
+ {
+ if (*s1 != *s2) /* do byte comparison */
+ return 0;
+ s1++; s2++; len--;
+ continue;
+ }
+ wc1 = towlower (wc1);
+ wc2 = towlower (wc2);
+ if (wc1 != wc2)
+ return 0;
+ s1 += v1;
+ s2 += v1;
+ len -= v1;
+ }
+ while (len != 0);
+ return 1;
+ }
+ else
+#endif
if ((_rl_to_lower (convfn[0]) == _rl_to_lower (filename[0])) &&
(convlen >= filename_len) &&
(_rl_strnicmp (filename, convfn, filename_len) == 0))
@@ -2233,8 +2458,9 @@ rl_filename_completion_function (text, state)
}
directory = opendir (dirname);
- /* Now dequote a non-null filename. */
- if (filename && *filename && rl_completion_found_quote && rl_filename_dequoting_function)
+ /* Now dequote a non-null filename. FILENAME will not be NULL, but may
+ be empty. */
+ if (*filename && rl_completion_found_quote && rl_filename_dequoting_function)
{
/* delete single and double quotes */
temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
@@ -2598,6 +2824,11 @@ rl_menu_complete (count, ignore)
full_completion = 1;
return (0);
}
+ else if (_rl_menu_complete_prefix_first)
+ {
+ rl_ding ();
+ return (0);
+ }
}
else if (match_list_size <= 1)
{
diff --git a/lib/readline/display.c b/lib/readline/display.c
index e4105ee8..913e0da0 100644
--- a/lib/readline/display.c
+++ b/lib/readline/display.c
@@ -1,6 +1,6 @@
/* display.c -- readline redisplay facility. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 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.
@@ -41,6 +41,10 @@
#include <stdio.h>
+#ifdef __MSDOS__
+# include <pc.h>
+#endif
+
/* System-specific feature definitions and include files. */
#include "rldefs.h"
#include "rlmbutil.h"
@@ -63,6 +67,7 @@ static void update_line PARAMS((char *, char *, int, int, int, int));
static void space_to_eol PARAMS((int));
static void delete_chars PARAMS((int));
static void insert_some_chars PARAMS((char *, int, int));
+static void open_some_spaces PARAMS((int));
static void cr PARAMS((void));
/* State of visible and invisible lines. */
@@ -165,6 +170,7 @@ int _rl_last_v_pos = 0;
static int cpos_adjusted;
static int cpos_buffer_position;
+static int displaying_prompt_first_line;
static int prompt_multibyte_chars;
/* Number of lines currently on screen minus 1. */
@@ -176,7 +182,8 @@ int _rl_vis_botlin = 0;
static int last_lmargin;
/* A buffer for `modeline' messages. */
-static char msg_buf[128];
+static char *msg_buf = 0;
+static int msg_bufsiz = 0;
/* Non-zero forces the redisplay even if we thought it was unnecessary. */
static int forced_display;
@@ -232,6 +239,18 @@ static int saved_local_length;
static int saved_invis_chars_first_line;
static int saved_physical_chars;
+/* Return a character indicating the editing mode, for use in the prompt. */
+static int
+prompt_modechar ()
+{
+ if (rl_editing_mode == emacs_mode)
+ return '@';
+ else if (_rl_keymap == vi_insertion_keymap)
+ return '+'; /* vi insert mode */
+ else
+ return ':'; /* vi command mode */
+}
+
/* Expand the prompt string S and return the number of visible
characters in *LP, if LP is not null. This is currently more-or-less
a placeholder for expansion. LIP, if non-null is a place to store the
@@ -258,7 +277,16 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
/* Short-circuit if we can. */
if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
{
- r = savestring (pmt);
+ if (pmt == rl_prompt && _rl_show_mode_in_prompt)
+ {
+ l = strlen (pmt);
+ r = (char *)xmalloc (l + 2);
+ r[0] = prompt_modechar ();
+ strcpy (r + 1, pmt);
+ }
+ else
+ r = savestring (pmt);
+
if (lp)
*lp = strlen (r);
if (lip)
@@ -271,13 +299,20 @@ expand_prompt (pmt, lp, lip, niflp, vlp)
}
l = strlen (pmt);
- r = ret = (char *)xmalloc (l + 1);
+ r = ret = (char *)xmalloc (l + 2);
+
+ rl = physchars = 0; /* move up here so mode show can set them */
+ if (pmt == rl_prompt && _rl_show_mode_in_prompt)
+ {
+ *r++ = prompt_modechar ();
+ rl = physchars = 1;
+ }
invfl = 0; /* invisible chars in first line of prompt */
invflset = 0; /* we only want to set invfl once */
igstart = 0;
- for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++)
+ for (ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
{
/* This code strips the invisible character string markers
RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
@@ -366,6 +401,12 @@ _rl_strip_prompt (pmt)
return ret;
}
+void
+_rl_reset_prompt ()
+{
+ rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
+}
+
/*
* Expand the prompt string into the various display components, if
* necessary.
@@ -707,10 +748,9 @@ rl_redisplay ()
/* 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 == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line))
- : ((newlines == 0) ? wrap_offset : 0));
-
+ temp += (newlines == 0) ? prompt_invis_chars_first_line
+ : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line);
+
inv_lbreaks[++newlines] = temp;
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0)
@@ -761,7 +801,7 @@ rl_redisplay ()
break; /* Found '\0' */
else
{
- temp = wcwidth (wc);
+ temp = WCWIDTH (wc);
wc_width = (temp >= 0) ? temp : 1;
}
}
@@ -925,7 +965,7 @@ rl_redisplay ()
/* If we can move the cursor up and down, then use multiple lines,
otherwise, let long lines display in a single terminal line, and
horizontally scroll it. */
-
+ displaying_prompt_first_line = 1;
if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
{
int nleft, pos, changed_screen_line, tx;
@@ -1179,6 +1219,8 @@ rl_redisplay ()
else
lmargin = last_lmargin;
+ displaying_prompt_first_line = lmargin < nleft;
+
/* If the first character on the screen isn't the first character
in the display line, indicate this with a special character. */
if (lmargin > 0)
@@ -1204,7 +1246,8 @@ rl_redisplay ()
_rl_screenwidth + (lmargin ? 0 : wrap_offset),
0);
- if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && OLD_CPOS_IN_PROMPT())
+ if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+ displaying_prompt_first_line && OLD_CPOS_IN_PROMPT())
_rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */
/* If the visible new line is shorter than the old, but the number
@@ -1212,7 +1255,7 @@ rl_redisplay ()
the new line, we need to clear to eol. */
t = _rl_last_c_pos - M_OFFSET (lmargin, wrap_offset);
if ((M_OFFSET (lmargin, wrap_offset) > visible_wrap_offset) &&
- (_rl_last_c_pos == out) &&
+ (_rl_last_c_pos == out) && displaying_prompt_first_line &&
t < visible_first_line_len)
{
nleft = _rl_screenwidth - t;
@@ -1274,6 +1317,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
int current_invis_chars;
int col_lendiff, col_temp;
+ int bytes_to_insert;
#if defined (HANDLE_MULTIBYTE)
mbstate_t ps_new, ps_old;
int new_offset, old_offset;
@@ -1300,7 +1344,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
size_t ret;
/* This fixes only double-column characters, but if the wrapped
- character comsumes more than three columns, spaces will be
+ character consumes more than three columns, spaces will be
inserted in the string buffer. */
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]);
@@ -1315,7 +1359,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
else if (MB_NULLWCH (ret))
tempwidth = 0;
else
- tempwidth = wcwidth (wc);
+ tempwidth = WCWIDTH (wc);
if (tempwidth > 0)
{
@@ -1335,7 +1379,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
memcpy (old, new, bytes);
/* Fix up indices if we copy data from one line to another */
omax += bytes - ret;
- for (i = current_line+1; i < inv_botlin+1; i++)
+ for (i = current_line+1; i <= inv_botlin+1; i++)
vis_lbreaks[i] += bytes - ret;
}
}
@@ -1372,6 +1416,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
temp = (omax < nmax) ? omax : nmax;
if (memcmp (old, new, temp) == 0) /* adding at the end */
{
+ new_offset = old_offset = temp;
ofd = old + temp;
nfd = new + temp;
}
@@ -1382,6 +1427,8 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (omax == nmax && STREQN (new, old, omax))
{
+ old_offset = omax;
+ new_offset = nmax;
ofd = old + omax;
nfd = new + nmax;
}
@@ -1394,6 +1441,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
{
old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
+
ofd = old + old_offset;
nfd = new + new_offset;
}
@@ -1417,6 +1465,27 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (ofd == oe && nfd == ne)
return;
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_utf8locale)
+ {
+ wchar_t wc;
+ mbstate_t ps = { 0 };
+ int t;
+
+ /* If the first character in the difference is a zero-width character,
+ assume it's a combining character and back one up so the two base
+ characters no longer compare equivalently. */
+ t = mbrtowc (&wc, ofd, MB_CUR_MAX, &ps);
+ if (t > 0 && UNICODE_COMBINING_CHAR (wc) && WCWIDTH (wc) == 0)
+ {
+ old_offset = _rl_find_prev_mbchar (old, ofd - old, MB_FIND_ANY);
+ new_offset = _rl_find_prev_mbchar (new, nfd - new, MB_FIND_ANY);
+ ofd = old + old_offset; /* equal by definition */
+ nfd = new + new_offset;
+ }
+ }
+#endif
+
wsatend = 1; /* flag for trailing whitespace */
#if defined (HANDLE_MULTIBYTE)
@@ -1424,6 +1493,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
{
ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
+
while ((ols > ofd) && (nls > nfd))
{
memset (&ps_old, 0, sizeof (mbstate_t));
@@ -1540,10 +1610,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
o_cpos = _rl_last_c_pos;
/* When this function returns, _rl_last_c_pos is correct, and an absolute
- cursor postion in multibyte mode, but a buffer index when not in a
+ cursor position in multibyte mode, but a buffer index when not in a
multibyte locale. */
_rl_move_cursor_relative (od, old);
-#if 1
+
#if defined (HANDLE_MULTIBYTE)
/* 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
@@ -1553,11 +1623,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_last_c_pos == prompt_physical_chars)
cpos_adjusted = 1;
#endif
-#endif
/* if (len (new) > len (old))
- lendiff == difference in buffer
- col_lendiff == difference on screen
+ lendiff == difference in buffer (bytes)
+ col_lendiff == difference on screen (columns)
When not using multibyte characters, these are equal */
lendiff = (nls - nfd) - (ols - ofd);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1583,6 +1652,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
}
}
+ /* We use temp as a count of the number of bytes from the first difference
+ to the end of the new line. col_temp is the corresponding number of
+ screen columns. A `dumb' update moves to the spot of first difference
+ and writes TEMP bytes. */
/* Insert (diff (len (old), len (new)) ch. */
temp = ne - nfd;
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1590,6 +1663,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
else
col_temp = temp;
+ /* how many bytes from the new line buffer to write to the display */
+ bytes_to_insert = nls - nfd;
+
+ /* col_lendiff > 0 if we are adding characters to the line */
if (col_lendiff > 0) /* XXX - was lendiff */
{
/* Non-zero if we're increasing the number of lines. */
@@ -1603,11 +1680,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
if (lendiff < 0)
{
_rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += _rl_col_width (nfd, 0, temp, 1);
+ _rl_last_c_pos += col_temp; /* XXX - was _rl_col_width (nfd, 0, temp, 1); */
/* 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 (current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
@@ -1638,57 +1715,42 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
(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;
+ open_some_spaces (col_lendiff);
+ _rl_output_some_chars (nfd, bytes_to_insert);
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ _rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
+ else
+ _rl_last_c_pos += bytes_to_insert;
}
-#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
be "inserted". They can just be placed on the screen. */
- /* However, this screws up the rest of this block, which
- assumes you've done the insert because you can. */
- _rl_output_some_chars (nfd, lendiff);
- _rl_last_c_pos += col_lendiff;
+ _rl_output_some_chars (nfd, temp);
+ _rl_last_c_pos += col_temp;
+ return;
}
- else
+ else /* just write from first difference to end of new line */
{
_rl_output_some_chars (nfd, temp);
_rl_last_c_pos += col_temp;
/* 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))
+ if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
}
return;
}
- /* Copy (new) chars to screen from first diff to last match. */
- temp = nls - nfd;
- if ((temp - lendiff) > 0)
+
+ if (bytes_to_insert > lendiff)
{
- _rl_output_some_chars (nfd + lendiff, temp - lendiff);
- /* XXX -- this bears closer inspection. Fixes a redisplay bug
- reported against bash-3.0-alpha by Andreas Schwab involving
- multibyte characters and prompt strings with invisible
- characters, but was previously disabled. */
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff, 1);
- 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))
+ if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && current_line == 0 && displaying_prompt_first_line && wrap_offset && ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
@@ -1706,6 +1768,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
a physical character position. */
if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
current_line == prompt_last_screen_line && wrap_offset &&
+ displaying_prompt_first_line &&
wrap_offset != prompt_invis_chars_first_line &&
((nfd-new) < (prompt_last_invisible-(current_line*_rl_screenwidth))))
{
@@ -1723,32 +1786,47 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
prompt string, don't bother. It screws up the assumptions
about what's on the screen. */
if (_rl_horizontal_scroll_mode && _rl_last_c_pos == 0 &&
+ displaying_prompt_first_line &&
-lendiff == visible_wrap_offset)
col_lendiff = 0;
+ /* If we have moved lmargin and we're shrinking the line, we've
+ already moved the cursor to the first character of the new line,
+ so deleting -col_lendiff characters will mess up the cursor
+ position calculation */
+ if (_rl_horizontal_scroll_mode && displaying_prompt_first_line == 0 &&
+ col_lendiff && _rl_last_c_pos < -col_lendiff)
+ col_lendiff = 0;
+
if (col_lendiff)
delete_chars (-col_lendiff); /* delete (diff) characters */
- /* Copy (new) chars to screen from first diff to last match */
- temp = nls - nfd;
- if (temp > 0)
+ /* Copy (new) chars to screen from first diff to last match,
+ overwriting what is there. */
+ if (bytes_to_insert > 0)
{
/* If nfd begins at the prompt, or before the invisible
characters in the prompt, we need to adjust _rl_last_c_pos
in a multibyte locale to account for the wrap offset and
set cpos_adjusted accordingly. */
- _rl_output_some_chars (nfd, temp);
+ _rl_output_some_chars (nfd, bytes_to_insert);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- _rl_last_c_pos += _rl_col_width (nfd, 0, temp, 1);
- if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
+ _rl_last_c_pos += _rl_col_width (nfd, 0, bytes_to_insert, 1);
+ if (current_line == 0 && wrap_offset &&
+ displaying_prompt_first_line &&
+ _rl_last_c_pos > wrap_offset &&
+ ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
}
}
else
- _rl_last_c_pos += temp;
+ _rl_last_c_pos += bytes_to_insert;
+
+ if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+ goto clear_rest_of_line;
}
}
/* Otherwise, print over the existing material. */
@@ -1764,29 +1842,29 @@ update_line (old, new, current_line, omax, nmax, inv_botlin)
_rl_last_c_pos += col_temp; /* XXX */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
- if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
+ if (current_line == 0 && wrap_offset &&
+ displaying_prompt_first_line &&
+ _rl_last_c_pos > wrap_offset &&
+ ((nfd - new) <= prompt_last_invisible))
{
_rl_last_c_pos -= wrap_offset;
cpos_adjusted = 1;
}
}
}
+clear_rest_of_line:
lendiff = (oe - old) - (ne - new);
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
col_lendiff = _rl_col_width (old, 0, oe - old, 1) - _rl_col_width (new, 0, ne - new, 1);
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 && ((MB_CUR_MAX == 1 || rl_byte_oriented) || (_rl_last_c_pos < _rl_screenwidth)))
-#endif
{
if (_rl_term_autowrap && current_line < inv_botlin)
space_to_eol (col_lendiff);
@@ -1938,6 +2016,9 @@ _rl_move_cursor_relative (new, data)
else
dpos = _rl_col_width (data, 0, new, 1);
+ if (displaying_prompt_first_line == 0)
+ adjust = 0;
+
/* Use NEW when comparing against the last invisible character in the
prompt string, since they're both buffer indices and DPOS is a
desired display position. */
@@ -2056,9 +2137,18 @@ _rl_move_vert (to)
}
else
{ /* delta < 0 */
+#ifdef __DJGPP__
+ int row, col;
+
+ fflush (rl_outstream);
+ ScreenGetCursor (&row, &col);
+ ScreenSetCursor (row + delta, col);
+ i = -delta;
+#else
if (_rl_term_up && *_rl_term_up)
for (i = 0; i < -delta; i++)
tputs (_rl_term_up, 1, _rl_output_character_function);
+#endif /* !__DJGPP__ */
}
_rl_last_v_pos = to; /* Now TO is here */
@@ -2136,6 +2226,9 @@ rl_message (va_alist)
#if defined (PREFER_VARARGS)
char *format;
#endif
+#if defined (HAVE_VSNPRINTF)
+ int bneed;
+#endif
#if defined (PREFER_STDARG)
va_start (args, format);
@@ -2144,11 +2237,28 @@ rl_message (va_alist)
format = va_arg (args, char *);
#endif
+ if (msg_buf == 0)
+ msg_buf = xmalloc (msg_bufsiz = 128);
+
#if defined (HAVE_VSNPRINTF)
- vsnprintf (msg_buf, sizeof (msg_buf) - 1, format, args);
+ bneed = vsnprintf (msg_buf, msg_bufsiz - 1, format, args);
+ if (bneed >= msg_bufsiz - 1)
+ {
+ msg_bufsiz = bneed + 1;
+ msg_buf = xrealloc (msg_buf, msg_bufsiz);
+ va_end (args);
+
+#if defined (PREFER_STDARG)
+ va_start (args, format);
+#else
+ va_start (args);
+ format = va_arg (args, char *);
+#endif
+ vsnprintf (msg_buf, msg_bufsiz - 1, format, args);
+ }
#else
vsprintf (msg_buf, format, args);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
+ msg_buf[msg_bufsiz - 1] = '\0'; /* overflow? */
#endif
va_end (args);
@@ -2157,6 +2267,12 @@ rl_message (va_alist)
rl_save_prompt ();
msg_saved_prompt = 1;
}
+ else if (local_prompt != saved_local_prompt)
+ {
+ FREE (local_prompt);
+ FREE (local_prompt_prefix);
+ local_prompt = (char *)NULL;
+ }
rl_display_prompt = msg_buf;
local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
&prompt_last_invisible,
@@ -2173,8 +2289,11 @@ int
rl_message (format, arg1, arg2)
char *format;
{
+ if (msg_buf == 0)
+ msg_buf = xmalloc (msg_bufsiz = 128);
+
sprintf (msg_buf, format, arg1, arg2);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
+ msg_buf[msg_bufsiz - 1] = '\0'; /* overflow? */
rl_display_prompt = msg_buf;
if (saved_local_prompt == 0)
@@ -2182,6 +2301,12 @@ rl_message (format, arg1, arg2)
rl_save_prompt ();
msg_saved_prompt = 1;
}
+ else if (local_prompt != saved_local_prompt)
+ {
+ FREE (local_prompt);
+ FREE (local_prompt_prefix);
+ local_prompt = (char *)NULL;
+ }
local_prompt = expand_prompt (msg_buf, &prompt_visible_length,
&prompt_last_invisible,
&prompt_invis_chars_first_line,
@@ -2318,10 +2443,13 @@ void
_rl_clear_to_eol (count)
int count;
{
+#ifndef __MSDOS__
if (_rl_term_clreol)
tputs (_rl_term_clreol, 1, _rl_output_character_function);
- else if (count)
- space_to_eol (count);
+ else
+#endif
+ if (count)
+ space_to_eol (count);
}
/* Clear to the end of the line using spaces. COUNT is the minimum
@@ -2341,10 +2469,15 @@ space_to_eol (count)
void
_rl_clear_screen ()
{
+#ifndef __DJGPP__
if (_rl_term_clrpag)
tputs (_rl_term_clrpag, 1, _rl_output_character_function);
else
rl_crlf ();
+#else
+ ScreenClear ();
+ ScreenSetCursor (0, 0);
+#endif /* __DJGPP__ */
}
/* Insert COUNT characters from STRING to the output stream at column COL. */
@@ -2353,48 +2486,47 @@ insert_some_chars (string, count, col)
char *string;
int count, col;
{
-#if defined (__MSDOS__) || defined (__MINGW32__)
+ open_some_spaces (col);
_rl_output_some_chars (string, count);
-#else
- /* DEBUGGING */
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- if (count != col)
- _rl_ttymsg ("debug: insert_some_chars: count (%d) != col (%d)", count, col);
+}
+
+/* Insert COL spaces, keeping the cursor at the same position. We follow the
+ ncurses documentation and use either im/ei with explicit spaces, or IC/ic
+ by itself. We assume there will either be ei or we don't need to use it. */
+static void
+open_some_spaces (col)
+ int col;
+{
+#if !defined (__MSDOS__) && !defined (__MINGW32__)
+ char *buffer;
+ register int i;
/* If IC is defined, then we do not have to "enter" insert mode. */
if (_rl_term_IC)
{
- char *buffer;
-
buffer = tgoto (_rl_term_IC, 0, col);
tputs (buffer, 1, _rl_output_character_function);
- _rl_output_some_chars (string, count);
}
- else
+ else if (_rl_term_im && *_rl_term_im)
{
- register int i;
-
- /* If we have to turn on insert-mode, then do so. */
- if (_rl_term_im && *_rl_term_im)
- tputs (_rl_term_im, 1, _rl_output_character_function);
-
- /* If there is a special command for inserting characters, then
- use that first to open up the space. */
- if (_rl_term_ic && *_rl_term_ic)
- {
- for (i = col; i--; )
- tputs (_rl_term_ic, 1, _rl_output_character_function);
- }
-
- /* Print the text. */
- _rl_output_some_chars (string, count);
-
- /* If there is a string to turn off insert mode, we had best use
- it now. */
+ tputs (_rl_term_im, 1, _rl_output_character_function);
+ /* just output the desired number of spaces */
+ for (i = col; i--; )
+ _rl_output_character_function (' ');
+ /* If there is a string to turn off insert mode, use it now. */
if (_rl_term_ei && *_rl_term_ei)
tputs (_rl_term_ei, 1, _rl_output_character_function);
+ /* and move back the right number of spaces */
+ _rl_backspace (col);
+ }
+ else if (_rl_term_ic && *_rl_term_ic)
+ {
+ /* If there is a special command for inserting characters, then
+ use that first to open up the space. */
+ for (i = col; i--; )
+ tputs (_rl_term_ic, 1, _rl_output_character_function);
}
-#endif /* __MSDOS__ || __MINGW32__ */
+#endif /* !__MSDOS__ && !__MINGW32__ */
}
/* Delete COUNT characters from the display line. */
@@ -2599,10 +2731,8 @@ _rl_col_width (str, start, end, flags)
if (end <= start)
return 0;
if (MB_CUR_MAX == 1 || rl_byte_oriented)
-{
-_rl_ttymsg ("_rl_col_width: called with MB_CUR_MAX == 1");
+ /* this can happen in some cases where it's inconvenient to check */
return (end - start);
-}
memset (&ps, 0, sizeof (mbstate_t));
@@ -2676,7 +2806,7 @@ _rl_ttymsg ("_rl_col_width: called with MB_CUR_MAX == 1");
{
point += tmp;
max -= tmp;
- tmp = wcwidth(wc);
+ tmp = WCWIDTH(wc);
width += (tmp >= 0) ? tmp : 1;
}
}
diff --git a/lib/readline/doc/history.texi b/lib/readline/doc/history.texi
index 64945d86..a991fe5b 100644
--- a/lib/readline/doc/history.texi
+++ b/lib/readline/doc/history.texi
@@ -2,33 +2,25 @@
@c %**start of header (This is for running Texinfo on a region.)
@setfilename history.info
@settitle GNU History Library
-@c %**end of header (This is for running Texinfo on a region.)
-
@include version.texi
+@c %**end of header (This is for running Texinfo on a region.)
+
@copying
This document describes the GNU History library
(version @value{VERSION}, @value{UPDATED}),
a programming tool that provides a consistent user interface for
recalling lines of previously typed input.
-Copyright @copyright{} 1988--2011 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.
+Copyright @copyright{} 1988--2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 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) below. A copy of the license is
-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.''
+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 quotation
@end copying
@@ -50,12 +42,6 @@ developing GNU and promoting software freedom.''
@vskip 0pt plus 1filll
@insertcopying
-@sp 1
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111-1307 @*
-USA @*
-
@end titlepage
@contents
diff --git a/lib/readline/doc/hstech.texi b/lib/readline/doc/hstech.texi
index 4fc9e8ef..6487f20b 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-2011 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -377,7 +377,7 @@ if the returned line should be displayed, but not executed,
as with the @code{:p} modifier (@pxref{Modifiers}).
@end table
-If an error ocurred in expansion, then @var{output} contains a descriptive
+If an error occurred in expansion, then @var{output} contains a descriptive
error message.
@end deftypefun
diff --git a/lib/readline/doc/hsuser.texi b/lib/readline/doc/hsuser.texi
index 75df3ee4..69a50163 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--2011 Free Software Foundation, Inc.
+Copyright (C) 1988--2014 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
Permission is granted to make and distribute verbatim copies of this manual
@@ -84,17 +84,18 @@ file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
The file named by the value of @env{HISTFILE} is truncated, if
necessary, to contain no more than the number of lines specified by
the value of the @env{HISTFILESIZE} variable.
-When an interactive shell exits, the last
+When a shell with history enabled exits, the last
@env{$HISTSIZE} lines are copied from the history list to the file
named by @env{$HISTFILE}.
If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
the lines are appended to the history file,
otherwise the history file is overwritten.
If @env{HISTFILE}
-is unset, or if the history file is unwritable, the history is
-not saved. After saving the history, the history file is truncated
-to contain no more than @env{$HISTFILESIZE}
-lines. If @env{HISTFILESIZE} is not set, no truncation is performed.
+is unset, or if the history file is unwritable, the history is not saved.
+After saving the history, the history file is truncated
+to contain no more than @env{$HISTFILESIZE} lines.
+If @env{HISTFILESIZE} is unset, or set to null, a non-numeric value, or
+a numeric value less than zero, the history file is not truncated.
If the @env{HISTTIMEFORMAT} is set, the time stamp information
associated with each history entry is written to the history file,
@@ -141,8 +142,10 @@ history list and history file.
@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
@end example
-Fix Command. In the first form, a range of commands from @var{first} to
-@var{last} is selected from the history list. Both @var{first} and
+The first form selects a range of commands from @var{first} to
+@var{last} from the history list and displays or edits and re-executes
+them.
+Both @var{first} and
@var{last} may be specified as a string (to locate the most recent
command beginning with that string) or as a number (an index into the
history list, where a negative number is used as an offset from the
@@ -161,6 +164,7 @@ When editing is complete, the edited commands are echoed and executed.
In the second form, @var{command} is re-executed after each instance
of @var{pat} in the selected command is replaced by @var{rep}.
+@var{command} is intepreted the same as @var{first} above.
A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
that typing @samp{r cc} runs the last command beginning with @code{cc}
@@ -208,11 +212,11 @@ to the current history list. These are lines appended to the history
file since the beginning of the current Bash session.
@item -r
-Read the current history file and append its contents to
+Read the history file and append its contents to
the history list.
@item -w
-Write out the current history to the history file.
+Write out the current history list to the history file.
@item -p
Perform history substitution on the @var{arg}s and display the result
diff --git a/lib/readline/doc/rlman.texi b/lib/readline/doc/rlman.texi
index 1c9ac133..17a8292b 100644
--- a/lib/readline/doc/rlman.texi
+++ b/lib/readline/doc/rlman.texi
@@ -2,34 +2,26 @@
@comment %**start of header (This is for running Texinfo on a region.)
@setfilename readline.info
@settitle GNU Readline Library
+@include version.texi
+
@comment %**end of header (This is for running Texinfo on a region.)
@synindex vr fn
-@include version.texi
-
@copying
This manual describes the GNU Readline Library
(version @value{VERSION}, @value{UPDATED}), a library which aids in the
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2011 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.
+Copyright @copyright{} 1988--2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 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) below. A copy of the license is
-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.''
+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 quotation
@end copying
@@ -50,12 +42,6 @@ developing GNU and promoting software freedom.''
@vskip 0pt plus 1filll
@insertcopying
-@sp 1
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111-1307 @*
-USA @*
-
@end titlepage
@contents
@@ -67,6 +53,7 @@ USA @*
This document describes the GNU Readline Library, a utility which aids
in the consistency of user interface across discrete programs which
provide a command line interface.
+The Readline home page is @url{http://www.gnu.org/software/readline/}.
@menu
* Command Line Editing:: GNU Readline User's Manual.
diff --git a/lib/readline/doc/rltech.texi b/lib/readline/doc/rltech.texi
index dc272a21..40de49c4 100644
--- a/lib/readline/doc/rltech.texi
+++ b/lib/readline/doc/rltech.texi
@@ -7,7 +7,7 @@ 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--2011 Free Software Foundation, Inc.
+Copyright (C) 1988--2014 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
@@ -195,7 +195,7 @@ For Readline 4.2, for example, the value of
@node Readline Typedefs
@subsection Readline Typedefs
-For readabilty, we declare a number of new object types, all pointers
+For readability, we declare a number of new object types, all pointers
to functions.
The reason for declaring these new types is to make it easier to write
@@ -440,6 +440,35 @@ If non-zero, Readline will call indirectly through this pointer
to get a character from the input stream. By default, it is set to
@code{rl_getc}, the default Readline character input function
(@pxref{Character Input}).
+In general, an application that sets @var{rl_getc_function} should consider
+setting @var{rl_input_available_hook} as well.
+@end deftypevar
+
+@deftypevar {rl_hook_func_t *} rl_signal_event_hook
+If non-zero, this is the address of a function to call if a read system
+call is interrupted when Readline is reading terminal input.
+@end deftypevar
+
+@deftypevar {rl_hook_func_t *} rl_input_available_hook
+If non-zero, Readline will use this function's return value when it needs
+to determine whether or not there is available input on the current input
+source.
+The default hook checks @code{rl_instream}; if an application is using a
+different input source, it should set the hook appropriately.
+Readline queries for available input when implementing intra-key-sequence
+timeouts during input and incremental searches.
+This may use an application-specific timeout before returning a value;
+Readline uses the value passed to @code{rl_set_keyboard_input_timeout()}
+or the value of the user-settable @var{keyseq-timeout} variable.
+This is designed for use by applications using Readline's callback interface
+(@pxref{Alternate Interface}), which may not use the traditional
+@code{read(2)} and file descriptor interface, or other applications using
+a different input mechanism.
+If an application uses an input mechanism or hook that can potentially exceed
+the value of @var{keyseq-timeout}, it should increase the timeout or set
+this hook appropriately even when not using the callback interface.
+In general, an application that sets @var{rl_getc_function} should consider
+setting @var{rl_input_available_hook} as well.
@end deftypevar
@deftypevar {rl_voidfunc_t *} rl_redisplay_function
@@ -479,6 +508,19 @@ last key binding occurred.
This variable is set to the text of any currently-executing macro.
@end deftypevar
+@deftypevar int rl_executing_key
+The key that caused the dispatch to the currently-executing Readline function.
+@end deftypevar
+
+@deftypevar {char *} rl_executing_keyseq
+The full key sequence that caused the dispatch to the currently-executing
+Readline function.
+@end deftypevar
+
+@deftypevar int rl_key_sequence_length
+The number of characters in @var{rl_executing_keyseq}.
+@end deftypevar
+
@deftypevar {int} rl_readline_state
A variable with bit values that encapsulate the current Readline state.
A bit is set with the @code{RL_SETSTATE} macro, and unset with the
@@ -487,7 +529,7 @@ whether a particular state bit is set. Current state bits include:
@table @code
@item RL_STATE_NONE
-Readline has not yet been called, nor has it begun to intialize.
+Readline has not yet been called, nor has it begun to initialize.
@item RL_STATE_INITIALIZING
Readline is initializing its internal data structures.
@item RL_STATE_INITIALIZED
@@ -580,6 +622,7 @@ means that vi mode is active.
* Miscellaneous Functions:: Functions that don't fall into any category.
* Alternate Interface:: Using Readline in a `callback' fashion.
* A Readline Example:: An example Readline function.
+* Alternate Interface Example:: An example program using the alternate interface.
@end menu
@node Function Naming
@@ -908,7 +951,7 @@ Readline thinks the screen display is correct.
@deftypefun int rl_on_new_line (void)
Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
+usually after outputting a newline.
@end deftypefun
@deftypefun int rl_on_new_line_with_prompt (void)
@@ -1241,21 +1284,29 @@ use all of a terminal's capabilities, and this function will return
values for only those capabilities Readline uses.
@end deftypefun
+@deftypefun {void} rl_clear_history (void)
+Clear the history list by deleting all of the entries, in the same manner
+as the History library's @code{clear_history()} function.
+This differs from @code{clear_history} because it frees private data
+Readline saves in the history list.
+@end deftypefun
+
@node Alternate Interface
@subsection Alternate Interface
An alternate interface is available to plain @code{readline()}. Some
applications need to interleave keyboard I/O with file, device, or
window system I/O, typically by using a main loop to @code{select()}
-on various file descriptors. To accomodate this need, readline can
+on various file descriptors. To accommodate this need, readline can
also be invoked as a `callback' function from an event loop. There
are functions available to make this easy.
@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
Set up the terminal for readline I/O and display the initial
expanded value of @var{prompt}. Save the value of @var{lhandler} to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
+use as a handler function to call when a complete line of input has been
+entered.
+The handler function receives the text of the line as an argument.
@end deftypefun
@deftypefun void rl_callback_read_char (void)
@@ -1263,14 +1314,15 @@ Whenever an application determines that keyboard input is available, it
should call @code{rl_callback_read_char()}, which will read the next
character from the current input source.
If that character completes the line, @code{rl_callback_read_char} will
-invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
-to process the line.
+invoke the @var{lhandler} function installed by
+@code{rl_callback_handler_install} to process the line.
Before calling the @var{lhandler} function, the terminal settings are
reset to the values they had before calling
@code{rl_callback_handler_install}.
If the @var{lhandler} function returns,
+and the line handler remains installed,
the terminal settings are modified for Readline's use again.
-@code{EOF} is indicated by calling @var{lhandler} with a
+@code{EOF} is indicated by calling @var{lhandler} with a
@code{NULL} line.
@end deftypefun
@@ -1350,6 +1402,98 @@ invert_case_line (count, key)
@}
@end example
+@node Alternate Interface Example
+@subsection Alternate Interface Example
+
+Here is a complete program that illustrates Readline's alternate interface.
+It reads lines from the terminal and displays them, providing the
+standard history and TAB completion functions.
+It understands the EOF character or "exit" to exit the program.
+
+@example
+/* Standard include files. stdio.h is required. */
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Used for select(2) */
+#include <sys/types.h>
+#include <sys/select.h>
+
+#include <stdio.h>
+
+/* Standard readline include files. */
+#include <readline/readline.h>
+#include <readline/history.h>
+
+static void cb_linehandler (char *);
+
+int running;
+const char *prompt = "rltest$ ";
+
+/* Callback function called for each line when accept-line executed, EOF
+ seen, or EOF character read. This sets a flag and returns; it could
+ also call exit(3). */
+static void
+cb_linehandler (char *line)
+@{
+ /* Can use ^D (stty eof) or `exit' to exit. */
+ if (line == NULL || strcmp (line, "exit") == 0)
+ @{
+ if (line == 0)
+ printf ("\n");
+ printf ("exit\n");
+ /* This function needs to be called to reset the terminal settings,
+ and calling it from the line handler keeps one extra prompt from
+ being displayed. */
+ rl_callback_handler_remove ();
+
+ running = 0;
+ @}
+ else
+ @{
+ if (*line)
+ add_history (line);
+ printf ("input line: %s\n", line);
+ free (line);
+ @}
+@}
+
+int
+main (int c, char **v)
+@{
+ fd_set fds;
+ int r;
+
+ /* Install the line handler. */
+ rl_callback_handler_install (prompt, cb_linehandler);
+
+ /* Enter a simple event loop. This waits until something is available
+ to read on readline's input stream (defaults to standard input) and
+ calls the builtin character read callback to read it. It does not
+ have to modify the user's terminal settings. */
+ running = 1;
+ while (running)
+ @{
+ FD_ZERO (&fds);
+ FD_SET (fileno (rl_instream), &fds);
+
+ r = select (FD_SETSIZE, &fds, NULL, NULL, NULL);
+ if (r < 0)
+ @{
+ perror ("rltest: select");
+ rl_callback_handler_remove ();
+ break;
+ @}
+
+ if (FD_ISSET (fileno (rl_instream), &fds))
+ rl_callback_read_char ();
+ @}
+
+ printf ("rltest: Event loop has exited\n");
+ return 0;
+@}
+@end example
+
@node Readline Signal Handling
@section Readline Signal Handling
@@ -1365,6 +1509,7 @@ functions to do so manually.
Readline contains an internal signal handler that is installed for a
number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
+@code{SIGHUP},
@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
When one of these signals is received, the signal handler
will reset the terminal attributes to those that were in effect before
@@ -1397,19 +1542,28 @@ a signal handler, so Readline's internal signal state is not corrupted.
@deftypevar int rl_catch_signals
If this variable is non-zero, Readline will install signal handlers for
-@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM},
+@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGHUP}, @code{SIGALRM},
@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}.
The default value of @code{rl_catch_signals} is 1.
@end deftypevar
@deftypevar int rl_catch_sigwinch
-If this variable is non-zero, Readline will install a signal handler for
-@code{SIGWINCH}.
+If this variable is set to a non-zero value,
+Readline will install a signal handler for @code{SIGWINCH}.
The default value of @code{rl_catch_sigwinch} is 1.
@end deftypevar
+@deftypevar int rl_change_environment
+If this variable is set to a non-zero value,
+and Readline is handling @code{SIGWINCH}, Readline will modify the
+@var{LINES} and @var{COLUMNS} environment variables upon receipt of a
+@code{SIGWINCH}
+
+The default value of @code{rl_change_environment} is 1.
+@end deftypevar
+
If an application does not wish to have Readline catch any signals, or
to handle signals other than those Readline catches (@code{SIGHUP},
for example),
@@ -1477,7 +1631,7 @@ The following functions install and remove Readline's signal handlers.
@deftypefun int rl_set_signals (void)
Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
-@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
+@code{SIGTERM}, @code{SIGHUP}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of
@code{rl_catch_signals} and @code{rl_catch_sigwinch}.
@end deftypefun
@@ -1611,7 +1765,7 @@ This calls @code{rl_complete_internal()} with an argument of @samp{*}.
@end deftypefun
@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
-Returns the apppriate value to pass to @code{rl_complete_internal()}
+Returns the appropriate value to pass to @code{rl_complete_internal()}
depending on whether @var{cfunc} was called twice in succession and
the values of the @code{show-all-if-ambiguous} and
@code{show-all-if-unmodified} variables.
@@ -1728,29 +1882,45 @@ the directory portion of the pathname the user typed.
At the least, even if no other expansion is performed, this function should
remove any quote characters from the directory name, because its result will
be passed directly to @code{opendir()}.
+
The directory completion hook returns an integer that should be non-zero if
the function modifies its directory argument.
The function should not modify the directory argument if it returns 0.
@end deftypevar
-@ignore
-@deftypevar extern rl_icppfunc_t *rl_directory_rewrite_hook;
+@deftypevar {rl_icppfunc_t *} rl_directory_rewrite_hook;
If non-zero, this is the address of a function to call when completing
a directory name. This function takes the address of the directory name
to be modified as an argument. Unlike @code{rl_directory_completion_hook},
it only modifies the directory name used in @code{opendir}, not what is
displayed when the possible completions are printed or inserted. It is
called before rl_directory_completion_hook.
+At the least, even if no other expansion is performed, this function should
+remove any quote characters from the directory name, because its result will
+be passed directly to @code{opendir()}.
-I'm not happy with how this works yet, so it's undocumented.
+The directory rewrite hook returns an integer that should be non-zero if
+the function modfies its directory argument.
+The function should not modify the directory argument if it returns 0.
+@end deftypevar
+
+@deftypevar {rl_icppfunc_t *} rl_filename_stat_hook
+If non-zero, this is the address of a function for the completer to
+call before deciding which character to append to a completed name.
+This function modifies its filename name argument, and the modified value
+is passed to @code{stat()} to determine the file's type and characteristics.
+This function does not need to remove quote characters from the filename.
+
+The stat hook returns an integer that should be non-zero if
+the function modfies its directory argument.
+The function should not modify the directory argument if it returns 0.
@end deftypevar
-@end ignore
@deftypevar {rl_dequote_func_t *} rl_filename_rewrite_hook
If non-zero, this is the address of a function called when reading
directory entries from the filesystem for completion and comparing
them to the partial word to be completed. The function should
-perform any necesary application or system-specific conversion on
+perform any necessary application or system-specific conversion on
the filename, such as converting between character sets or converting
from a filesystem format to a character input format.
The function takes two arguments: @var{fname}, the filename to be converted,
diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi
index 8a69c993..0af6c02e 100644
--- a/lib/readline/doc/rluser.texi
+++ b/lib/readline/doc/rluser.texi
@@ -9,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--2011 Free Software Foundation, Inc.
+Copyright (C) 1988--2014 Free Software Foundation, Inc.
Authored by Brian Fox and Chet Ramey.
@@ -72,6 +72,8 @@ Line editing can be enabled at any time using the @option{-o emacs} or
a specific command.
* Programmable Completion Builtins:: Builtin commands to specify how to
complete arguments for a particular command.
+* A Programmable Completion Example:: An example shell function for
+ generating possible completions.
@end ifset
@end menu
@@ -425,6 +427,14 @@ If set to @samp{on}, Readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their Readline
equivalents.
+@item colored-stats
+@vindex colored-stats
+If set to @samp{on}, Readline displays possible completions using different
+colors to indicate their file type.
+The color definitions are taken from the value of the @env{LS_COLORS}
+environment variable.
+The default is @samp{off}.
+
@item comment-begin
@vindex comment-begin
The string to insert at the beginning of the line when the
@@ -521,8 +531,12 @@ 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.
+Set the maximum number of history entries saved in the history list.
+If set to zero, any existing history entries are deleted and no new entries
+are saved.
+If set to a value less than zero, the number of history entries is not
+limited.
+By default, the number of history entries is not limited.
@item horizontal-scroll-mode
@vindex horizontal-scroll-mode
@@ -565,6 +579,22 @@ equivalent to @code{emacs-standard}. The default value is @code{emacs}.
The value of the @code{editing-mode} variable also affects the
default keymap.
+@item keyseq-timeout
+Specifies the duration Readline will wait for a character when reading an
+ambiguous key sequence (one that can form a complete key sequence using
+the input read so far, or can take additional input to complete a longer
+key sequence).
+If no input is received within the timeout, Readline will use the shorter
+but complete key sequence.
+Readline uses this value to determine whether or not input is
+available on the current input source (@code{rl_instream} by default).
+The value is specified in milliseconds, so a value of 1000 means that
+Readline will wait one second for additional input.
+If this variable is set to a value less than or equal to zero, or to a
+non-numeric value, Readline will wait until another key is pressed to
+decide which key sequence to complete.
+The default value is @code{500}.
+
@item mark-directories
If set to @samp{on}, completed directory names have a slash
appended. The default is @samp{on}.
@@ -640,6 +670,13 @@ a common prefix) cause the matches to be listed immediately instead
of ringing the bell.
The default value is @samp{off}.
+@item show-mode-in-prompt
+@vindex show-mode-in-prompt
+If set to @samp{on}, add a character to the beginning of the prompt
+indicating the editing mode: emacs (@samp{@@}), vi command (@samp{:}),
+or vi insertion (@samp{+}).
+The default value is @samp{off}.
+
@item skip-completed-text
@vindex skip-completed-text
If set to @samp{on}, this alters the default completion behavior when
@@ -880,7 +917,7 @@ binding, variable assignment, and conditional syntax.
# You can re-read the inputrc file with C-x C-r.
# Lines beginning with '#' are comments.
#
-# First, include any systemwide bindings and variable
+# First, include any system-wide bindings and variable
# assignments from /etc/Inputrc
$include /etc/Inputrc
@@ -1100,13 +1137,30 @@ for a string supplied by the user.
@item history-search-forward ()
Search forward through the history for the string of characters
between the start of the current line and the point.
+The search string must match at the beginning of a history line.
This is a non-incremental search.
By default, this command is unbound.
@item history-search-backward ()
Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
+between the start of the current line and the point.
+The search string must match at the beginning of a history line.
+This is a non-incremental search.
+By default, this command is unbound.
+
+@item history-substr-search-forward ()
+Search forward through the history for the string of characters
+between the start of the current line and the point.
+The search string may match anywhere in a history line.
+This is a non-incremental search.
+By default, this command is unbound.
+
+@item history-substr-search-backward ()
+Search backward through the history for the string of characters
+between the start of the current line and the point.
+The search string may match anywhere in a history line.
+This is a non-incremental search.
+By default, this command is unbound.
@item yank-nth-arg (M-C-y)
Insert the first argument to the previous command (usually
@@ -1137,11 +1191,17 @@ as if the @samp{!$} history expansion had been specified.
@subsection Commands For Changing Text
@ftable @code
+
+@item @i{end-of-file} (usually C-d)
+The character indicating end-of-file as set, for example, by
+@code{stty}. If this character is read when there are no characters
+on the line, and point is at the beginning of the line, Readline
+interprets it as the end of input and returns @sc{eof}.
+
@item delete-char (C-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to @code{delete-char}, then
-return @sc{eof}.
+Delete the character at point. If this function is bound to the
+same character as the tty @sc{eof} character, as @kbd{C-d}
+commonly is, see above for the effects.
@item backward-delete-char (Rubout)
Delete the character behind the cursor. A numeric argument means
@@ -1435,6 +1495,10 @@ and save the definition.
Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
+@item print-last-kbd-macro ()
+Print the last keboard macro defined in a format suitable for the
+@var{inputrc} file.
+
@end ftable
@node Miscellaneous Commands
@@ -1693,10 +1757,11 @@ When the command or function is invoked, the @env{COMP_LINE},
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
+When the function or command is invoked, the first argument ($1) 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.
+second argument ($2) is the word being completed, and the third argument
+($3) 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.
@@ -1706,7 +1771,7 @@ The function may use any of the shell facilities, including the
@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.
+variable, one per array element.
Next, any command specified with the @option{-C} option is invoked
in an environment equivalent to command substitution.
@@ -1774,17 +1839,18 @@ completion function would load completions dynamically:
@example
_completion_loader()
@{
- . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
+ . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
@}
-complete -D -F _completion_loader
+complete -D -F _completion_loader -o bashdefault -o default
@end example
@node Programmable Completion Builtins
@section Programmable Completion Builtins
@cindex completion builtins
-Two builtin commands are available to manipulate the programmable completion
-facilities.
+Three builtin commands are available to manipulate the programmable completion
+facilities: one to specify how the arguments to a particular command are to
+be completed, and two to modify the completion as it is happening.
@table @code
@item compgen
@@ -1871,6 +1937,10 @@ quoting special characters, or suppressing trailing spaces).
This option is intended to be used with shell functions specified
with @option{-F}.
+@item noquote
+Tell Readline not to quote the completed words if they are filenames
+(quoting filenames is the default).
+
@item nospace
Tell Readline not to append a space (the default) to words completed at
the end of the line.
@@ -1970,6 +2040,10 @@ used as the possible completions.
@item -F @var{function}
The shell function @var{function} is executed in the current shell
environment.
+When it is executed, $1 is the name of the command whose arguments are
+being completed, $2 is the word being completed, and $3 is the word
+preceding the word being completed, as described above
+(@pxref{Programmable Completion}).
When it finishes, the possible completions are retrieved from the value
of the @env{COMPREPLY} array variable.
@@ -2034,4 +2108,122 @@ specification exists, or an output error occurs.
@end table
+@node A Programmable Completion Example
+@section A Programmable Completion Example
+
+The most common way to obtain additional completion functionality beyond
+the default actions @code{complete} and @code{compgen} provide is to use
+a shell function and bind it to a particular command using @code{complete -F}.
+
+The following function provides completions for the @code{cd} builtin.
+It is a reasonably good example of what shell functions must do when
+used for completion. This function uses the word passsed as @code{$2}
+to determine the directory name to complete. You can also use the
+@code{COMP_WORDS} array variable; the current word is indexed by the
+@code{COMP_CWORD} variable.
+
+The function relies on the @code{complete} and @code{compgen} builtins
+to do much of the work, adding only the things that the Bash @code{cd}
+does beyond accepting basic directory names:
+tilde expansion (@pxref{Tilde Expansion}),
+searching directories in @var{$CDPATH}, which is described above
+(@pxref{Bourne Shell Builtins}),
+and basic support for the @code{cdable_vars} shell option
+(@pxref{The Shopt Builtin}).
+@code{_comp_cd} modifies the value of @var{IFS} so that it contains only
+a newline to accommodate file names containing spaces and tabs --
+@code{compgen} prints the possible completions it generates one per line.
+
+Possible completions go into the @var{COMPREPLY} array variable, one
+completion per array element. The programmable completion system retrieves
+the completions from there when the function returns.
+
+@example
+# A completion function for the cd builtin
+# based on the cd completion function from the bash_completion package
+_comp_cd()
+@{
+ local IFS=$' \t\n' # normalize IFS
+ local cur _skipdot _cdpath
+ local i j k
+
+ # Tilde expansion, with side effect of expanding tilde to full pathname
+ case "$2" in
+ \~*) eval cur="$2" ;;
+ *) cur=$2 ;;
+ esac
+
+ # no cdpath or absolute pathname -- straight directory completion
+ if [[ -z "$@{CDPATH:-@}" ]] || [[ "$cur" == @@(./*|../*|/*) ]]; then
+ # compgen prints paths one per line; could also use while loop
+ IFS=$'\n'
+ COMPREPLY=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ # CDPATH+directories in the current directory if not in CDPATH
+ else
+ IFS=$'\n'
+ _skipdot=false
+ # preprocess CDPATH to convert null directory names to .
+ _cdpath=$@{CDPATH/#:/.:@}
+ _cdpath=$@{_cdpath//::/:.:@}
+ _cdpath=$@{_cdpath/%:/:.@}
+ for i in $@{_cdpath//:/$'\n'@}; do
+ if [[ $i -ef . ]]; then _skipdot=true; fi
+ k="$@{#COMPREPLY[@@]@}"
+ for j in $( compgen -d -- "$i/$cur" ); do
+ COMPREPLY[k++]=$@{j#$i/@} # cut off directory
+ done
+ done
+ $_skipdot || COMPREPLY+=( $(compgen -d -- "$cur") )
+ IFS=$' \t\n'
+ fi
+
+ # variable names if appropriate shell option set and no completions
+ if shopt -q cdable_vars && [[ $@{#COMPREPLY[@@]@} -eq 0 ]]; then
+ COMPREPLY=( $(compgen -v -- "$cur") )
+ fi
+
+ return 0
+@}
+@end example
+
+We install the completion function using the @option{-F} option to
+@code{complete}:
+
+@example
+# Tell readline to quote appropriate and append slashes to directories;
+# use the bash default completion for other arguments
+complete -o filenames -o nospace -o bashdefault -F _comp_cd cd
+@end example
+
+@noindent
+Since we'd like Bash and Readline to take care of some
+of the other details for us, we use several other options to tell Bash
+and Readline what to do. The @option{-o filenames} option tells Readline
+that the possible completions should be treated as filenames, and quoted
+appropriately. That option will also cause Readline to append a slash to
+filenames it can determine are directories (which is why we might want to
+extend @code{_comp_cd} to append a slash if we're using directories found
+via @var{CDPATH}: Readline can't tell those completions are directories).
+The @option{-o nospace} option tells Readline to not append a space
+character to the directory name, in case we want to append to it.
+The @option{-o bashdefault} option brings in the rest of the "Bash default"
+completions -- possible completion that Bash adds to the default Readline
+set. These include things like command name completion, variable completion
+for words beginning with @samp{@{}, completions containing pathname
+expansion patterns (@pxref{Filename Expansion}), and so on.
+
+Once installed using @code{complete}, @code{_comp_cd} will be called every
+time we attempt word completion for a @code{cd} command.
+
+Many more examples -- an extensive collection of completions for most of
+the common GNU, Unix, and Linux commands -- are available as part of the
+bash_completion project. This is installed by default on many GNU/Linux
+distributions. Originally written by Ian Macdonald, the project now lives
+at @url{http://bash-completion.alioth.debian.org/}. There are ports for
+other systems such as Solaris and Mac OS X.
+
+An older version of the bash_completion package is distributed with bash
+in the @file{examples/complete} subdirectory.
+
@end ifset
diff --git a/lib/readline/doc/rluserman.texi b/lib/readline/doc/rluserman.texi
index 3d545204..ba6b0ad8 100644
--- a/lib/readline/doc/rluserman.texi
+++ b/lib/readline/doc/rluserman.texi
@@ -2,33 +2,25 @@
@comment %**start of header (This is for running Texinfo on a region.)
@setfilename rluserman.info
@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-
@include version.texi
+@comment %**end of header (This is for running Texinfo on a region.)
+
@copying
This manual describes the end user interface of the GNU Readline Library
(version @value{VERSION}, @value{UPDATED}), a library which aids in the
consistency of user interface across discrete programs which provide
a command line interface.
-Copyright @copyright{} 1988--2011 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.
+Copyright @copyright{} 1988--2014 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 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) below. A copy of the license is
-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.''
+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 quotation
@end copying
@@ -49,12 +41,6 @@ developing GNU and promoting software freedom.''
@vskip 0pt plus 1filll
@insertcopying
-@sp 1
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111-1307 @*
-USA @*
-
@end titlepage
@contents
@@ -66,6 +52,7 @@ USA @*
This document describes the end user interface of the GNU Readline Library,
a utility which aids in the consistency of user interface across discrete
programs which provide a command line interface.
+The Readline home page is @url{http://www.gnu.org/software/readline/}.
@menu
* Command Line Editing:: GNU Readline User's Manual.
diff --git a/lib/readline/doc/version.texi b/lib/readline/doc/version.texi
index 3ee1c10e..70b66582 100644
--- a/lib/readline/doc/version.texi
+++ b/lib/readline/doc/version.texi
@@ -1,10 +1,10 @@
@ignore
-Copyright (C) 1988-2011 Free Software Foundation, Inc.
+Copyright (C) 1988-2014 Free Software Foundation, Inc.
@end ignore
-@set EDITION 6.2
-@set VERSION 6.2
-@set UPDATED September 6 2010
-@set UPDATED-MONTH September 2010
+@set EDITION 6.3
+@set VERSION 6.3
+@set UPDATED 6 January 2014
+@set UPDATED-MONTH January 2014
-@set LASTCHANGE Mon Sep 6 22:07:10 EDT 2010
+@set LASTCHANGE Mon Jan 6 16:26:51 EST 2014
diff --git a/lib/readline/examples/excallback.c b/lib/readline/examples/excallback.c
index 385492b1..4206acfc 100644
--- a/lib/readline/examples/excallback.c
+++ b/lib/readline/examples/excallback.c
@@ -40,13 +40,14 @@ Copyright (C) 1999 Jeff Solomon
#include <config.h>
#endif
-#include <stdio.h>
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdlib.h>
+#include <stdio.h>
#include <termios.h> /* xxx - should make this more general */
#ifdef READLINE_LIBRARY
@@ -55,6 +56,10 @@ Copyright (C) 1999 Jeff Solomon
# include <readline/readline.h>
#endif
+#ifndef STDIN_FILENO
+# define STDIN_FILENO 0
+#endif
+
/* This little examples demonstrates the alternate interface to using readline.
* In the alternate interface, the user maintains control over program flow and
* only calls readline when STDIN is readable. Using the alternate interface,
diff --git a/lib/readline/examples/rl-callbacktest.c b/lib/readline/examples/rl-callbacktest.c
new file mode 100644
index 00000000..a7e451c1
--- /dev/null
+++ b/lib/readline/examples/rl-callbacktest.c
@@ -0,0 +1,81 @@
+/* Standard include files. stdio.h is required. */
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Used for select(2) */
+#include <sys/types.h>
+#include <sys/select.h>
+
+#include <stdio.h>
+
+/* Standard readline include files. */
+#include <readline/readline.h>
+#include <readline/history.h>
+
+static void cb_linehandler (char *);
+
+int running;
+const char *prompt = "rltest$ ";
+
+/* Callback function called for each line when accept-line executed, EOF
+ seen, or EOF character read. This sets a flag and returns; it could
+ also call exit(3). */
+static void
+cb_linehandler (char *line)
+{
+ /* Can use ^D (stty eof) or `exit' to exit. */
+ if (line == NULL || strcmp (line, "exit") == 0)
+ {
+ if (line == 0)
+ printf ("\n");
+ printf ("exit\n");
+ /* This function needs to be called to reset the terminal settings,
+ and calling it from the line handler keeps one extra prompt from
+ being displayed. */
+ rl_callback_handler_remove ();
+
+ running = 0;
+ }
+ else
+ {
+ if (*line)
+ add_history (line);
+ printf ("input line: %s\n", line);
+ free (line);
+ }
+}
+
+int
+main (int c, char **v)
+{
+ fd_set fds;
+ int r;
+
+ /* Install the line handler. */
+ rl_callback_handler_install (prompt, cb_linehandler);
+
+ /* Enter a simple event loop. This waits until something is available
+ to read on readline's input stream (defaults to standard input) and
+ calls the builtin character read callback to read it. It does not
+ have to modify the user's terminal settings. */
+ running = 1;
+ while (running)
+ {
+ FD_ZERO (&fds);
+ FD_SET (fileno (rl_instream), &fds);
+
+ r = select (FD_SETSIZE, &fds, NULL, NULL, NULL);
+ if (r < 0)
+ {
+ perror ("rltest: select");
+ rl_callback_handler_remove ();
+ break;
+ }
+
+ if (FD_ISSET (fileno (rl_instream), &fds))
+ rl_callback_read_char ();
+ }
+
+ printf ("rltest: Event loop has exited\n");
+ return 0;
+}
diff --git a/lib/readline/funmap.c b/lib/readline/funmap.c
index 86e375f6..363507b8 100644
--- a/lib/readline/funmap.c
+++ b/lib/readline/funmap.c
@@ -98,6 +98,8 @@ static const FUNMAP default_funmap[] = {
{ "forward-word", rl_forward_word },
{ "history-search-backward", rl_history_search_backward },
{ "history-search-forward", rl_history_search_forward },
+ { "history-substring-search-backward", rl_history_substr_search_backward },
+ { "history-substring-search-forward", rl_history_substr_search_forward },
{ "insert-comment", rl_insert_comment },
{ "insert-completions", rl_insert_completions },
{ "kill-whole-line", rl_kill_full_line },
@@ -118,6 +120,7 @@ static const FUNMAP default_funmap[] = {
#endif
{ "possible-completions", rl_possible_completions },
{ "previous-history", rl_get_previous_history },
+ { "print-last-kbd-macro", rl_print_last_kbd_macro },
{ "quoted-insert", rl_quoted_insert },
{ "re-read-init-file", rl_re_read_init_file },
{ "redraw-current-line", rl_refresh_line},
@@ -236,7 +239,7 @@ rl_initialize_funmap ()
/* Produce a NULL terminated array of known function names. The array
is sorted. The array itself is allocated, but not the strings inside.
- You should free () the array when you done, but not the pointrs. */
+ You should free () the array when you done, but not the pointers. */
const char **
rl_funmap_names ()
{
diff --git a/lib/readline/histexpand.c b/lib/readline/histexpand.c
index 8fb3798b..4899b9d3 100644
--- a/lib/readline/histexpand.c
+++ b/lib/readline/histexpand.c
@@ -1,6 +1,6 @@
/* histexpand.c -- history expansion. */
-/* Copyright (C) 1989-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2012 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -272,6 +272,8 @@ get_history_event (string, caller_index, delimiting_quote)
if (local_index == 0 || substring_okay)
{
entry = current_history ();
+ if (entry == 0)
+ FAIL_SEARCH ();
history_offset = history_length;
/* If this was a substring search, then remember the
@@ -519,9 +521,9 @@ postproc_subst_rhs ()
the returned string. Returns the new index into string in
*END_INDEX_PTR, and the expanded specifier in *RET_STRING. */
static int
-history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
+history_expand_internal (string, start, qc, end_index_ptr, ret_string, current_line)
char *string;
- int start, *end_index_ptr;
+ int start, qc, *end_index_ptr;
char **ret_string;
char *current_line; /* for !# */
{
@@ -557,30 +559,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
event = current_line;
}
else
- {
- int quoted_search_delimiter = 0;
-
- /* If the character before this `!' is a double or single
- quote, then this expansion takes place inside of the
- quoted string. If we have to search for some text ("!foo"),
- allow the delimiter to end the search string. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int ch, l;
- l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
- ch = string[l];
- /* XXX - original patch had i - 1 ??? If i == 0 it would fail. */
- if (i && (ch == '\'' || ch == '"'))
- quoted_search_delimiter = ch;
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if (i && (string[i - 1] == '\'' || string[i - 1] == '"'))
- quoted_search_delimiter = string[i - 1];
-
- event = get_history_event (string, &i, quoted_search_delimiter);
- }
+ event = get_history_event (string, &i, qc);
if (event == 0)
{
@@ -854,7 +833,7 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
}
i += 2;
}
- /* Done with modfiers. */
+ /* Done with modifiers. */
/* Believe it or not, we have to back the pointer up by one. */
--i;
@@ -928,7 +907,7 @@ history_expand (hstring, output)
char **output;
{
register int j;
- int i, r, l, passc, cc, modified, eindex, only_printing, dquote, flag;
+ int i, r, l, passc, cc, modified, eindex, only_printing, dquote, squote, flag;
char *string;
/* The output string, and its length. */
@@ -991,7 +970,7 @@ history_expand (hstring, output)
/* `!' followed by one of the characters in history_no_expand_chars
is NOT an expansion. */
- for (i = dquote = 0; string[i]; i++)
+ for (i = dquote = squote = 0; string[i]; i++)
{
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
@@ -1022,6 +1001,13 @@ history_expand (hstring, output)
{
if (cc == 0 || member (cc, history_no_expand_chars))
continue;
+ /* DQUOTE won't be set unless history_quotes_inhibit_expansion
+ is set. The idea here is to treat double-quoted strings the
+ same as the word outside double quotes; in effect making the
+ double quote part of history_no_expand_chars when DQUOTE is
+ set. */
+ else if (dquote && cc == '"')
+ continue;
/* If the calling application has set
history_inhibit_expansion_function to a function that checks
for special cases that should not be history expanded,
@@ -1071,9 +1057,9 @@ history_expand (hstring, output)
}
/* Extract and perform the substitution. */
- for (passc = dquote = i = j = 0; i < l; i++)
+ for (passc = dquote = squote = i = j = 0; i < l; i++)
{
- int tchar = string[i];
+ int qc, tchar = string[i];
if (passc)
{
@@ -1130,8 +1116,14 @@ history_expand (hstring, output)
case '\'':
{
/* If history_quotes_inhibit_expansion is set, single quotes
- inhibit history expansion. */
- if (dquote == 0 && history_quotes_inhibit_expansion)
+ inhibit history expansion, otherwise they are treated like
+ double quotes. */
+ if (squote)
+ {
+ squote = 0;
+ ADD_CHAR (tchar);
+ }
+ else if (dquote == 0 && history_quotes_inhibit_expansion)
{
int quote, slen;
@@ -1146,6 +1138,11 @@ history_expand (hstring, output)
ADD_STRING (temp);
xfree (temp);
}
+ else if (dquote == 0 && squote == 0 && history_quotes_inhibit_expansion == 0)
+ {
+ squote = 1;
+ ADD_CHAR (string[i]);
+ }
else
ADD_CHAR (string[i]);
break;
@@ -1171,6 +1168,7 @@ history_expand (hstring, output)
characters in history_no_expand_chars, then it is not a
candidate for expansion of any kind. */
if (cc == 0 || member (cc, history_no_expand_chars) ||
+ (dquote && cc == '"') ||
(history_inhibit_expansion_function && (*history_inhibit_expansion_function) (string, i)))
{
ADD_CHAR (string[i]);
@@ -1196,8 +1194,8 @@ history_expand (hstring, output)
break;
}
#endif
-
- r = history_expand_internal (string, i, &eindex, &temp, result);
+ qc = squote ? '\'' : (dquote ? '"' : 0);
+ r = history_expand_internal (string, i, qc, &eindex, &temp, result);
if (r < 0)
{
*output = temp;
diff --git a/lib/readline/histfile.c b/lib/readline/histfile.c
index 30a61824..bb743156 100644
--- a/lib/readline/histfile.c
+++ b/lib/readline/histfile.c
@@ -125,14 +125,7 @@ history_filename (filename)
home = sh_get_env_value ("HOME");
if (home == 0)
- {
-#if 0
- home = ".";
- home_len = 1;
-#else
- return (NULL);
-#endif
- }
+ return (NULL);
else
home_len = strlen (home);
@@ -148,6 +141,21 @@ history_filename (filename)
return (return_val);
}
+static char *
+history_backupfile (filename)
+ const char *filename;
+{
+ char *ret;
+ size_t len;
+
+ len = strlen (filename);
+ ret = xmalloc (len + 2);
+ strcpy (ret, filename);
+ ret[len] = '-';
+ ret[len+1] = '\0';
+ return ret;
+}
+
/* Add the contents of FILENAME to the history list, a line at a time.
If FILENAME is NULL, then read from ~/.history. Returns 0 if
successful, or errno if not. */
@@ -403,14 +411,16 @@ history_truncate_file (fname, lines)
truncate to. */
if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
{
- write (file, bp, chars_read - (bp - buffer));
+ if (write (file, bp, chars_read - (bp - buffer)) < 0)
+ rv = errno;
#if defined (__BEOS__)
/* BeOS ignores O_TRUNC. */
ftruncate (file, chars_read - (bp - buffer));
#endif
- close (file);
+ if (close (file) < 0 && rv == 0)
+ rv = errno;
}
truncate_exit:
@@ -430,7 +440,7 @@ history_do_write (filename, nelements, overwrite)
int nelements, overwrite;
{
register int i;
- char *output;
+ char *output, *bakname;
int file, mode, rv;
#ifdef HISTORY_USE_MMAP
size_t cursize;
@@ -440,13 +450,22 @@ history_do_write (filename, nelements, overwrite)
mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
#endif
output = history_filename (filename);
+ bakname = (overwrite && output) ? history_backupfile (output) : 0;
+
+ if (output && bakname)
+ rename (output, bakname);
+
file = output ? open (output, mode, 0600) : -1;
rv = 0;
if (file == -1)
{
+ rv = errno;
+ if (output && bakname)
+ rename (bakname, output);
FREE (output);
- return (errno);
+ FREE (bakname);
+ return (rv);
}
#ifdef HISTORY_USE_MMAP
@@ -486,8 +505,11 @@ history_do_write (filename, nelements, overwrite)
{
mmap_error:
rv = errno;
- FREE (output);
close (file);
+ if (output && bakname)
+ rename (bakname, output);
+ FREE (output);
+ FREE (bakname);
return rv;
}
#else
@@ -495,8 +517,11 @@ mmap_error:
if (buffer == 0)
{
rv = errno;
- FREE (output);
close (file);
+ if (output && bakname)
+ rename (bakname, output);
+ FREE (output);
+ FREE (bakname);
return rv;
}
#endif
@@ -524,9 +549,16 @@ mmap_error:
#endif
}
- close (file);
+ if (close (file) < 0 && rv == 0)
+ rv = errno;
+
+ if (rv != 0 && output && bakname)
+ rename (bakname, output);
+ else if (rv == 0 && bakname)
+ unlink (bakname);
FREE (output);
+ FREE (bakname);
return (rv);
}
diff --git a/lib/readline/history.c b/lib/readline/history.c
index d7894cfd..1181e7cc 100644
--- a/lib/readline/history.c
+++ b/lib/readline/history.c
@@ -1,6 +1,6 @@
/* history.c -- standalone history library */
-/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2011 Free Software Foundation, Inc.
This file contains the GNU History Library (History), a set of
routines for managing the text of previously typed lines.
@@ -236,7 +236,7 @@ history_get_time (hist)
ts = hist->timestamp;
if (ts[0] != history_comment_char)
return 0;
- t = (time_t) atol (ts + 1); /* XXX - should use strtol() here */
+ t = (time_t) strtol (ts + 1, (char **)NULL, 10); /* XXX - should use strtol() here */
return t;
}
@@ -318,7 +318,7 @@ add_history_time (string)
{
HIST_ENTRY *hs;
- if (string == 0)
+ if (string == 0 || history_length < 1)
return;
hs = the_history[history_length - 1];
FREE (hs->timestamp);
@@ -394,7 +394,7 @@ replace_history_entry (which, line, data)
WHICH >= 0 means to replace that particular history entry's data, as
long as it matches OLD. */
void
-replace_history_data (which,old, new)
+replace_history_data (which, old, new)
int which;
histdata_t *old, *new;
{
diff --git a/lib/readline/history.h b/lib/readline/history.h
index 1257e66c..c8af47e5 100644
--- a/lib/readline/history.h
+++ b/lib/readline/history.h
@@ -216,7 +216,7 @@ extern int history_truncate_file PARAMS((const char *, int));
-1) If there was an error in expansion.
2) If the returned line should just be printed.
- If an error ocurred in expansion, then OUTPUT contains a descriptive
+ If an error occurred in expansion, then OUTPUT contains a descriptive
error message. */
extern int history_expand PARAMS((char *, char **));
diff --git a/lib/readline/input.c b/lib/readline/input.c
index b49af889..117dfe82 100644
--- a/lib/readline/input.c
+++ b/lib/readline/input.c
@@ -1,6 +1,6 @@
/* input.c -- character input functions for readline. */
-/* Copyright (C) 1994-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2013 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.
@@ -45,6 +45,8 @@
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
+#include <signal.h>
+
#include "posixselect.h"
#if defined (FIONREAD_IN_SYS_IOCTL)
@@ -78,6 +80,13 @@ extern int errno;
character input. */
rl_hook_func_t *rl_event_hook = (rl_hook_func_t *)NULL;
+/* A function to call if a read(2) is interrupted by a signal. */
+rl_hook_func_t *rl_signal_event_hook = (rl_hook_func_t *)NULL;
+
+/* A function to replace _rl_input_available for applications using the
+ callback interface. */
+rl_hook_func_t *rl_input_available_hook = (rl_hook_func_t *)NULL;
+
rl_getc_func_t *rl_getc_function = rl_getc;
static int _keyboard_input_timeout = 100000; /* 0.1 seconds; it's in usec */
@@ -104,6 +113,12 @@ _rl_any_typein ()
return any_typein;
}
+int
+_rl_pushed_input_available ()
+{
+ return (push_index != pop_index);
+}
+
/* Return the amount of space available in the buffer for stuffing
characters. */
static int
@@ -117,7 +132,7 @@ ibuffer_space ()
/* Get a key from the buffer of characters to be read.
Return the key in KEY.
- Result is KEY if there was a key, or 0 if there wasn't. */
+ Result is non-zero if there was a key, or 0 if there wasn't. */
static int
rl_get_char (key)
int *key;
@@ -154,12 +169,6 @@ _rl_unget_char (key)
return (0);
}
-int
-_rl_pushed_input_available ()
-{
- return (push_index != pop_index);
-}
-
/* If a character is available to be read, then read it and stuff it into
IBUFFER. Otherwise, just return. Returns number of characters read
(0 if none available) and -1 on error (EIO). */
@@ -291,6 +300,9 @@ _rl_input_available ()
#endif
int tty;
+ if (rl_input_available_hook)
+ return (*rl_input_available_hook) ();
+
tty = fileno (rl_instream);
#if defined (HAVE_SELECT)
@@ -411,8 +423,6 @@ rl_read_key ()
{
int c, r;
- rl_key_sequence_length++;
-
if (rl_pending_input)
{
c = rl_pending_input;
@@ -437,7 +447,7 @@ rl_read_key ()
rl_done = 1;
return ('\n');
}
- else if (r == 1) /* read something */
+ else if (r > 0) /* read something */
continue;
RL_CHECK_SIGNALS ();
@@ -450,6 +460,7 @@ rl_read_key ()
{
if (rl_get_char (&c) == 0)
c = (*rl_getc_function) (rl_instream);
+/* fprintf(stderr, "rl_read_key: calling RL_CHECK_SIGNALS: _rl_caught_signal = %d", _rl_caught_signal); */
RL_CHECK_SIGNALS ();
}
}
@@ -468,6 +479,8 @@ rl_getc (stream)
{
RL_CHECK_SIGNALS ();
+ /* We know at this point that _rl_caught_signal == 0 */
+
#if defined (__MINGW32__)
if (isatty (fileno (stream)))
return (getch ());
@@ -509,11 +522,23 @@ rl_getc (stream)
#undef X_EWOULDBLOCK
#undef X_EAGAIN
- /* If the error that we received was SIGINT, then try again,
- this is simply an interrupted system call to read ().
- Otherwise, some error ocurred, also signifying EOF. */
+/* fprintf(stderr, "rl_getc: result = %d errno = %d\n", result, errno); */
+
+ /* If the error that we received was EINTR, then try again,
+ this is simply an interrupted system call to read (). We allow
+ the read to be interrupted if we caught SIGHUP or SIGTERM (but
+ not SIGINT; let the signal handler deal with that), but if the
+ application sets an event hook, call it for other signals.
+ Otherwise (not EINTR), some error occurred, also signifying EOF. */
if (errno != EINTR)
return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
+ else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
+ else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
+ RL_CHECK_SIGNALS ();
+
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) ();
}
}
diff --git a/lib/readline/isearch.c b/lib/readline/isearch.c
index 712b9ea8..6f6a7a65 100644
--- a/lib/readline/isearch.c
+++ b/lib/readline/isearch.c
@@ -6,7 +6,7 @@
/* */
/* **************************************************************** */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -110,7 +110,7 @@ _rl_scxt_alloc (type, flags)
cxt->history_pos = 0;
cxt->direction = 0;
- cxt->lastc = 0;
+ cxt->prevc = cxt->lastc = 0;
cxt->sline = 0;
cxt->sline_len = cxt->sline_index = 0;
@@ -156,16 +156,16 @@ rl_forward_search_history (sign, key)
WHERE is the history list number of the current line. If it is
-1, then this line is the starting one. */
static void
-rl_display_search (search_string, reverse_p, where)
+rl_display_search (search_string, flags, where)
char *search_string;
- int reverse_p, where;
+ int flags, where;
{
char *message;
int msglen, searchlen;
searchlen = (search_string && *search_string) ? strlen (search_string) : 0;
- message = (char *)xmalloc (searchlen + 33);
+ message = (char *)xmalloc (searchlen + 64);
msglen = 0;
#if defined (NOTDEF)
@@ -178,7 +178,13 @@ rl_display_search (search_string, reverse_p, where)
message[msglen++] = '(';
- if (reverse_p)
+ if (flags & SF_FAILED)
+ {
+ strcpy (message + msglen, "failed ");
+ msglen += 7;
+ }
+
+ if (flags & SF_REVERSE)
{
strcpy (message + msglen, "reverse-");
msglen += 8;
@@ -215,7 +221,7 @@ _rl_isearch_init (direction)
cxt->search_terminators = _rl_isearch_terminators ? _rl_isearch_terminators
: default_isearch_terminators;
- /* Create an arrary of pointers to the lines that we want to search. */
+ /* Create an array of pointers to the lines that we want to search. */
hlist = history_list ();
rl_maybe_replace_line ();
i = 0;
@@ -312,13 +318,19 @@ _rl_search_getchar (cxt)
RL_UNSETSTATE(RL_STATE_MOREINPUT);
#if defined (HANDLE_MULTIBYTE)
+ /* This ends up with C (and LASTC) being set to the last byte of the
+ multibyte character. In most cases c == lastc == mb[0] */
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
c = cxt->lastc = _rl_read_mbstring (cxt->lastc, cxt->mb, MB_LEN_MAX);
#endif
+ RL_CHECK_SIGNALS ();
return c;
}
+#define ENDSRCH_CHAR(c) \
+ ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G')))
+
/* Process just-read character C according to isearch context CXT. Return
-1 if the caller should just free the context and return, 0 if we should
break out of the loop, and 1 if we should continue to read characters. */
@@ -344,13 +356,43 @@ _rl_isearch_dispatch (cxt, c)
incremental search, so we check */
if (c >= 0 && cxt->keymap[c].type == ISKMAP && strchr (cxt->search_terminators, cxt->lastc) == 0)
{
+ /* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued
+ takes microseconds, so multiply by 1000. If we don't get any
+ additional input and this keymap shadows another function, process
+ that key as if it was all we read. */
+ if (_rl_keyseq_timeout > 0 &&
+ RL_ISSTATE (RL_STATE_CALLBACK) == 0 &&
+ RL_ISSTATE (RL_STATE_INPUTPENDING) == 0 &&
+ _rl_pushed_input_available () == 0 &&
+ ((Keymap)(cxt->keymap[c].function))[ANYOTHERKEY].function &&
+ _rl_input_queued (_rl_keyseq_timeout*1000) == 0)
+ goto add_character;
+
+ cxt->okeymap = cxt->keymap;
cxt->keymap = FUNCTION_TO_KEYMAP (cxt->keymap, c);
cxt->sflags |= SF_CHGKMAP;
/* XXX - we should probably save this sequence, so we can do
- something useful if this doesn't end up mapping to a command. */
+ something useful if this doesn't end up mapping to a command we
+ interpret here. Right now we just save the most recent character
+ that caused the index into a new keymap. */
+ cxt->prevc = c;
+#if defined (HANDLE_MULTIBYTE)
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ {
+ if (cxt->mb[1] == 0)
+ {
+ cxt->pmb[0] = c; /* XXX should be == cxt->mb[0] */
+ cxt->pmb[1] = '\0';
+ }
+ else
+ memcpy (cxt->pmb, cxt->mb, sizeof (cxt->pmb));
+ }
+#endif
return 1;
}
+add_character:
+
/* Translate the keys we do something with to opcodes. */
if (c >= 0 && cxt->keymap[c].type == ISFUNC)
{
@@ -376,6 +418,54 @@ _rl_isearch_dispatch (cxt, c)
{
cxt->keymap = cxt->okeymap;
cxt->sflags &= ~SF_CHGKMAP;
+ /* If we indexed into a new keymap, but didn't map to a command that
+ affects the search (lastc > 0), and the character that mapped to a
+ new keymap would have ended the search (ENDSRCH_CHAR(cxt->prevc)),
+ handle that now as if the previous char would have ended the search
+ and we would have read the current character. */
+ /* XXX - should we check cxt->mb? */
+ if (cxt->lastc > 0 && ENDSRCH_CHAR (cxt->prevc))
+ {
+ rl_stuff_char (cxt->lastc);
+ rl_execute_next (cxt->prevc);
+ /* XXX - do we insert everything in cxt->pmb? */
+ return (0);
+ }
+ /* Otherwise, if the current character is mapped to self-insert or
+ nothing (i.e., not an editing command), and the previous character
+ was a keymap index, then we need to insert both the previous
+ character and the current character into the search string. */
+ else if (cxt->lastc > 0 && cxt->prevc > 0 &&
+ cxt->keymap[cxt->prevc].type == ISKMAP &&
+ (f == 0 || f == rl_insert))
+ {
+ /* Make lastc be the next character read */
+ /* XXX - do we insert everything in cxt->mb? */
+ rl_execute_next (cxt->lastc);
+ /* Dispatch on the previous character (insert into search string) */
+ cxt->lastc = cxt->prevc;
+#if defined (HANDLE_MULTIBYTE)
+ /* Have to overwrite cxt->mb here because dispatch uses it below */
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+ {
+ if (cxt->pmb[1] == 0)
+ {
+ cxt->mb[0] = cxt->lastc; /* == cxt->prevc */
+ cxt->mb[1] = '\0';
+ }
+ else
+ memcpy (cxt->mb, cxt->pmb, sizeof (cxt->mb));
+ }
+#endif
+ cxt->prevc = 0;
+ }
+ else if (cxt->lastc > 0 && cxt->prevc > 0 && f && f != rl_insert)
+ {
+ rl_stuff_char (cxt->lastc);
+ rl_execute_next (cxt->prevc);
+ /* XXX - do we insert everything in cxt->pmb? */
+ return (0);
+ }
}
/* The characters in isearch_terminators (set from the user-settable
@@ -393,14 +483,11 @@ _rl_isearch_dispatch (cxt, c)
XXX - since _rl_input_available depends on the application-
settable keyboard timeout value, this could alternatively
use _rl_input_queued(100000) */
- if (cxt->lastc == ESC && _rl_input_available ())
+ if (cxt->lastc == ESC && (_rl_pushed_input_available () || _rl_input_available ()))
rl_execute_next (ESC);
return (0);
}
-#define ENDSRCH_CHAR(c) \
- ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G')))
-
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
@@ -436,7 +523,7 @@ _rl_isearch_dispatch (cxt, c)
cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size);
strcpy (cxt->search_string, last_isearch_string);
cxt->search_string_index = last_isearch_string_len;
- rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), -1);
+ rl_display_search (cxt->search_string, cxt->sflags, -1);
break;
}
return (1);
@@ -544,12 +631,16 @@ _rl_isearch_dispatch (cxt, c)
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
{
int j, l;
- for (j = 0, l = strlen (cxt->mb); j < l; )
- cxt->search_string[cxt->search_string_index++] = cxt->mb[j++];
+
+ if (cxt->mb[0] == 0 || cxt->mb[1] == 0)
+ cxt->search_string[cxt->search_string_index++] = cxt->mb[0];
+ else
+ for (j = 0, l = RL_STRLEN (cxt->mb); j < l; )
+ cxt->search_string[cxt->search_string_index++] = cxt->mb[j++];
}
else
#endif
- cxt->search_string[cxt->search_string_index++] = c;
+ cxt->search_string[cxt->search_string_index++] = cxt->lastc; /* XXX - was c instead of lastc */
cxt->search_string[cxt->search_string_index] = '\0';
break;
}
@@ -606,6 +697,7 @@ _rl_isearch_dispatch (cxt, c)
/* We cannot find the search string. Ding the bell. */
rl_ding ();
cxt->history_pos = cxt->last_found_line;
+ rl_display_search (cxt->search_string, cxt->sflags, (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos);
return 1;
}
@@ -618,7 +710,7 @@ _rl_isearch_dispatch (cxt, c)
rl_replace_line (cxt->lines[cxt->history_pos], 0);
rl_point = cxt->sline_index;
cxt->last_found_line = cxt->history_pos;
- rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos);
+ rl_display_search (cxt->search_string, cxt->sflags, (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos);
}
return 1;
@@ -653,7 +745,7 @@ rl_search_history (direction, invoking_key)
RL_SETSTATE(RL_STATE_ISEARCH);
cxt = _rl_isearch_init (direction);
- rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), -1);
+ rl_display_search (cxt->search_string, cxt->sflags, -1);
/* If we are using the callback interface, all we do is set up here and
return. The key is that we leave RL_STATE_ISEARCH set. */
diff --git a/lib/readline/macro.c b/lib/readline/macro.c
index c2fac8ad..b99a1a69 100644
--- a/lib/readline/macro.c
+++ b/lib/readline/macro.c
@@ -121,6 +121,19 @@ _rl_next_macro_key ()
#endif
}
+int
+_rl_prev_macro_key ()
+{
+ if (rl_executing_macro == 0)
+ return (0);
+
+ if (executing_macro_index == 0)
+ return (0);
+
+ executing_macro_index--;
+ return (rl_executing_macro[executing_macro_index]);
+}
+
/* Save the currently executing macro on a stack of saved macros. */
void
_rl_push_executing_macro ()
@@ -234,7 +247,7 @@ rl_end_kbd_macro (count, ignore)
return -1;
}
- current_macro_index -= rl_key_sequence_length - 1;
+ current_macro_index -= rl_key_sequence_length;
current_macro[current_macro_index] = '\0';
RL_UNSETSTATE(RL_STATE_MACRODEF);
@@ -263,6 +276,29 @@ rl_call_last_kbd_macro (count, ignore)
return 0;
}
+int
+rl_print_last_kbd_macro (count, ignore)
+ int count, ignore;
+{
+ char *m;
+
+ if (current_macro == 0)
+ {
+ rl_ding ();
+ return 0;
+ }
+ m = _rl_untranslate_macro_value (current_macro, 1);
+ rl_crlf ();
+ printf ("%s", m);
+ fflush (stdout);
+ rl_crlf ();
+ FREE (m);
+ rl_forced_update_display ();
+ rl_display_fixed = 1;
+
+ return 0;
+}
+
void
rl_push_macro_input (macro)
char *macro;
diff --git a/lib/readline/mbutil.c b/lib/readline/mbutil.c
index eeb7e557..b036e0c3 100644
--- a/lib/readline/mbutil.c
+++ b/lib/readline/mbutil.c
@@ -64,6 +64,9 @@ int rl_byte_oriented = 0;
int rl_byte_oriented = 1;
#endif
+/* Ditto */
+int _rl_utf8locale = 0;
+
/* **************************************************************** */
/* */
/* Multibyte Character Utility Functions */
@@ -119,7 +122,7 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
point += tmp;
if (find_non_zero)
{
- if (wcwidth (wc) == 0)
+ if (WCWIDTH (wc) == 0)
continue;
else
count--;
@@ -132,7 +135,7 @@ _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 (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (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);
@@ -184,7 +187,7 @@ _rl_find_prev_mbchar_internal (string, seed, find_non_zero)
{
if (find_non_zero)
{
- if (wcwidth (wc) != 0)
+ if (WCWIDTH (wc) != 0)
prev = point;
}
else
@@ -263,7 +266,7 @@ _rl_compare_chars (buf1, pos1, ps1, buf2, pos2, ps2)
if point is invalied (point < 0 || more than string length),
it returns -1 */
int
-_rl_adjust_point(string, point, ps)
+_rl_adjust_point (string, point, ps)
char *string;
int point;
mbstate_t *ps;
diff --git a/lib/readline/misc.c b/lib/readline/misc.c
index 9f457736..da5c6964 100644
--- a/lib/readline/misc.c
+++ b/lib/readline/misc.c
@@ -1,6 +1,6 @@
/* misc.c -- miscellaneous bindable readline functions. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -56,6 +56,8 @@
static int rl_digit_loop PARAMS((void));
static void _rl_history_set_point PARAMS((void));
+extern int history_offset;
+
/* Forward declarations used in this file */
void _rl_free_history_entry PARAMS((HIST_ENTRY *));
@@ -483,6 +485,37 @@ _rl_revert_all_lines ()
xfree (lbuf);
}
+/* Free the history list, including private readline data and take care
+ of pointer aliases to history data. Resets rl_undo_list if it points
+ to an UNDO_LIST * saved as some history entry's data member. This
+ should not be called while editing is active. */
+void
+rl_clear_history ()
+{
+ HIST_ENTRY **hlist, *hent;
+ register int i;
+ UNDO_LIST *ul, *saved_undo_list;
+
+ saved_undo_list = rl_undo_list;
+ hlist = history_list (); /* direct pointer, not copy */
+
+ for (i = 0; i < history_length; i++)
+ {
+ hent = hlist[i];
+ if (ul = (UNDO_LIST *)hent->data)
+ {
+ if (ul == saved_undo_list)
+ saved_undo_list = 0;
+ _rl_free_undo_list (ul);
+ hent->data = 0;
+ }
+ _rl_free_history_entry (hent);
+ }
+
+ history_offset = history_length = 0;
+ rl_undo_list = saved_undo_list; /* should be NULL */
+}
+
/* **************************************************************** */
/* */
/* History Commands */
@@ -623,6 +656,10 @@ rl_emacs_editing_mode (count, key)
rl_editing_mode = emacs_mode;
_rl_set_insert_mode (RL_IM_INSERT, 1); /* emacs mode default is insert mode */
_rl_keymap = emacs_standard_keymap;
+
+ if (_rl_show_mode_in_prompt)
+ _rl_reset_prompt ();
+
return 0;
}
diff --git a/lib/readline/nls.c b/lib/readline/nls.c
index e3599eb7..d3b36344 100644
--- a/lib/readline/nls.c
+++ b/lib/readline/nls.c
@@ -43,6 +43,10 @@
# include <locale.h>
#endif
+#if defined (HAVE_LANGINFO_CODESET)
+# include <langinfo.h>
+#endif
+
#include <ctype.h>
#include "rldefs.h"
@@ -50,6 +54,8 @@
#include "rlshell.h"
#include "rlprivate.h"
+static int utf8locale PARAMS((char *));
+
#if !defined (HAVE_SETLOCALE)
/* A list of legal values for the LANG or LC_CTYPE environment variables.
If a locale name in this list is the value for the LC_ALL, LC_CTYPE,
@@ -72,9 +78,10 @@ static char *legal_lang_values[] =
};
static char *normalize_codeset PARAMS((char *));
-static char *find_codeset PARAMS((char *, size_t *));
#endif /* !HAVE_SETLOCALE */
+static char *find_codeset PARAMS((char *, size_t *));
+
static char *_rl_get_locale_var PARAMS((const char *));
static char *
@@ -91,7 +98,26 @@ _rl_get_locale_var (v)
return lspec;
}
-
+
+static int
+utf8locale (lspec)
+ char *lspec;
+{
+ char *cp;
+ size_t len;
+
+#if HAVE_LANGINFO_CODESET
+ cp = nl_langinfo (CODESET);
+ return (STREQ (cp, "UTF-8") || STREQ (cp, "utf8"));
+#else
+ cp = find_codeset (lspec, &len);
+
+ if (cp == 0 || len < 4 || len > 5)
+ return 0;
+ return ((len == 5) ? strncmp (cp, "UTF-8", len) == 0 : strncmp (cp, "utf8", 4) == 0);
+#endif
+}
+
/* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value
to decide the defaults for 8-bit character input and output. Returns
1 if we set eight-bit mode. */
@@ -116,6 +142,9 @@ _rl_init_eightbit ()
lspec = "";
t = setlocale (LC_CTYPE, lspec);
+ if (t && *t)
+ _rl_utf8locale = utf8locale (t);
+
if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0))
{
_rl_meta_flag = 1;
@@ -197,6 +226,7 @@ normalize_codeset (codeset)
return retval;
}
+#endif /* !HAVE_SETLOCALE */
/* Isolate codeset portion of locale specification. */
static char *
@@ -249,4 +279,3 @@ find_codeset (name, lenp)
return result;
}
-#endif /* !HAVE_SETLOCALE */
diff --git a/lib/readline/parse-colors.c b/lib/readline/parse-colors.c
new file mode 100644
index 00000000..98b2e9d1
--- /dev/null
+++ b/lib/readline/parse-colors.c
@@ -0,0 +1,440 @@
+/* `dir', `vdir' and `ls' directory listing programs for GNU.
+
+ Modified by Chet Ramey for Readline.
+
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 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 <http://www.gnu.org/licenses/>. */
+
+/* Written by Richard Stallman and David MacKenzie. */
+
+/* Color support by Peter Anvin <Peter.Anvin@linux.org> and Dennis
+ Flaherty <dennisf@denix.elk.miles.com> based on original patches by
+ Greg Lee <lee@uhunix.uhcc.hawaii.edu>. */
+
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+// strdup() / strcpy()
+#if defined (HAVE_STRING_H)
+# include <string.h>
+#else /* !HAVE_STRING_H */
+# include <strings.h>
+#endif /* !HAVE_STRING_H */
+
+// abort()
+#if defined (HAVE_STDLIB_H)
+# include <stdlib.h>
+#else
+# include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include "rldefs.h" // STREQ, savestring
+#include "readline.h"
+#include "rlprivate.h"
+#include "rlshell.h"
+#include "xmalloc.h"
+
+#include "colors.h"
+#include "parse-colors.h"
+
+#if defined (COLOR_SUPPORT)
+
+static bool get_funky_string (char **dest, const char **src, bool equals_end, size_t *output_count);
+
+struct bin_str _rl_color_indicator[] =
+ {
+ { LEN_STR_PAIR ("\033[") }, // lc: Left of color sequence
+ { LEN_STR_PAIR ("m") }, // rc: Right of color sequence
+ { 0, NULL }, // ec: End color (replaces lc+no+rc)
+ { LEN_STR_PAIR ("0") }, // rs: Reset to ordinary colors
+ { 0, NULL }, // no: Normal
+ { 0, NULL }, // fi: File: default
+ { LEN_STR_PAIR ("01;34") }, // di: Directory: bright blue
+ { LEN_STR_PAIR ("01;36") }, // ln: Symlink: bright cyan
+ { LEN_STR_PAIR ("33") }, // pi: Pipe: yellow/brown
+ { LEN_STR_PAIR ("01;35") }, // so: Socket: bright magenta
+ { LEN_STR_PAIR ("01;33") }, // bd: Block device: bright yellow
+ { LEN_STR_PAIR ("01;33") }, // cd: Char device: bright yellow
+ { 0, NULL }, // mi: Missing file: undefined
+ { 0, NULL }, // or: Orphaned symlink: undefined
+ { LEN_STR_PAIR ("01;32") }, // ex: Executable: bright green
+ { LEN_STR_PAIR ("01;35") }, // do: Door: bright magenta
+ { LEN_STR_PAIR ("37;41") }, // su: setuid: white on red
+ { LEN_STR_PAIR ("30;43") }, // sg: setgid: black on yellow
+ { LEN_STR_PAIR ("37;44") }, // st: sticky: black on blue
+ { LEN_STR_PAIR ("34;42") }, // ow: other-writable: blue on green
+ { LEN_STR_PAIR ("30;42") }, // tw: ow w/ sticky: black on green
+ { LEN_STR_PAIR ("30;41") }, // ca: black on red
+ { 0, NULL }, // mh: disabled by default
+ { LEN_STR_PAIR ("\033[K") }, // cl: clear to end of line
+ };
+
+/* Parse a string as part of the LS_COLORS variable; this may involve
+ decoding all kinds of escape characters. If equals_end is set an
+ unescaped equal sign ends the string, otherwise only a : or \0
+ does. Set *OUTPUT_COUNT to the number of bytes output. Return
+ true if successful.
+
+ The resulting string is *not* null-terminated, but may contain
+ embedded nulls.
+
+ Note that both dest and src are char **; on return they point to
+ the first free byte after the array and the character that ended
+ the input string, respectively. */
+
+static bool
+get_funky_string (char **dest, const char **src, bool equals_end, size_t *output_count) {
+ char num; /* For numerical codes */
+ size_t count; /* Something to count with */
+ enum {
+ ST_GND, ST_BACKSLASH, ST_OCTAL, ST_HEX, ST_CARET, ST_END, ST_ERROR
+ } state;
+ const char *p;
+ char *q;
+
+ p = *src; /* We don't want to double-indirect */
+ q = *dest; /* the whole darn time. */
+
+ count = 0; /* No characters counted in yet. */
+ num = 0;
+
+ state = ST_GND; /* Start in ground state. */
+ while (state < ST_END)
+ {
+ switch (state)
+ {
+ case ST_GND: /* Ground state (no escapes) */
+ switch (*p)
+ {
+ case ':':
+ case '\0':
+ state = ST_END; /* End of string */
+ break;
+ case '\\':
+ state = ST_BACKSLASH; /* Backslash scape sequence */
+ ++p;
+ break;
+ case '^':
+ state = ST_CARET; /* Caret escape */
+ ++p;
+ break;
+ case '=':
+ if (equals_end)
+ {
+ state = ST_END; /* End */
+ break;
+ }
+ /* else fall through */
+ default:
+ *(q++) = *(p++);
+ ++count;
+ break;
+ }
+ break;
+
+ case ST_BACKSLASH: /* Backslash escaped character */
+ switch (*p)
+ {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ state = ST_OCTAL; /* Octal sequence */
+ num = *p - '0';
+ break;
+ case 'x':
+ case 'X':
+ state = ST_HEX; /* Hex sequence */
+ num = 0;
+ break;
+ case 'a': /* Bell */
+ num = '\a';
+ break;
+ case 'b': /* Backspace */
+ num = '\b';
+ break;
+ case 'e': /* Escape */
+ num = 27;
+ break;
+ case 'f': /* Form feed */
+ num = '\f';
+ break;
+ case 'n': /* Newline */
+ num = '\n';
+ break;
+ case 'r': /* Carriage return */
+ num = '\r';
+ break;
+ case 't': /* Tab */
+ num = '\t';
+ break;
+ case 'v': /* Vtab */
+ num = '\v';
+ break;
+ case '?': /* Delete */
+ num = 127;
+ break;
+ case '_': /* Space */
+ num = ' ';
+ break;
+ case '\0': /* End of string */
+ state = ST_ERROR; /* Error! */
+ break;
+ default: /* Escaped character like \ ^ : = */
+ num = *p;
+ break;
+ }
+ if (state == ST_BACKSLASH)
+ {
+ *(q++) = num;
+ ++count;
+ state = ST_GND;
+ }
+ ++p;
+ break;
+
+ case ST_OCTAL: /* Octal sequence */
+ if (*p < '0' || *p > '7')
+ {
+ *(q++) = num;
+ ++count;
+ state = ST_GND;
+ }
+ else
+ num = (num << 3) + (*(p++) - '0');
+ break;
+
+ case ST_HEX: /* Hex sequence */
+ switch (*p)
+ {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ num = (num << 4) + (*(p++) - '0');
+ break;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ num = (num << 4) + (*(p++) - 'a') + 10;
+ break;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ num = (num << 4) + (*(p++) - 'A') + 10;
+ break;
+ default:
+ *(q++) = num;
+ ++count;
+ state = ST_GND;
+ break;
+ }
+ break;
+
+ case ST_CARET: /* Caret escape */
+ state = ST_GND; /* Should be the next state... */
+ if (*p >= '@' && *p <= '~')
+ {
+ *(q++) = *(p++) & 037;
+ ++count;
+ }
+ else if (*p == '?')
+ {
+ *(q++) = 127;
+ ++count;
+ }
+ else
+ state = ST_ERROR;
+ break;
+
+ default:
+ /* should we ? */
+ /* abort (); no, we should not */
+ state = ST_ERROR;
+ break;
+ }
+ }
+
+ *dest = q;
+ *src = p;
+ *output_count = count;
+
+ return state != ST_ERROR;
+}
+#endif /* COLOR_SUPPORT */
+
+void _rl_parse_colors()
+{
+#if defined (COLOR_SUPPORT)
+ const char *p; /* Pointer to character being parsed */
+ char *buf; /* color_buf buffer pointer */
+ int state; /* State of parser */
+ int ind_no; /* Indicator number */
+ char label[3]; /* Indicator label */
+ COLOR_EXT_TYPE *ext; /* Extension we are working on */
+
+ p = sh_get_env_value ("LS_COLORS");
+ if (p == 0 || *p == '\0')
+ {
+ _rl_color_ext_list = NULL;
+ return;
+ }
+
+ ext = NULL;
+ strcpy (label, "??");
+
+ /* This is an overly conservative estimate, but any possible
+ LS_COLORS string will *not* generate a color_buf longer than
+ itself, so it is a safe way of allocating a buffer in
+ advance. */
+ buf = color_buf = savestring (p);
+
+ state = 1;
+ while (state > 0)
+ {
+ switch (state)
+ {
+ case 1: /* First label character */
+ switch (*p)
+ {
+ case ':':
+ ++p;
+ break;
+
+ case '*':
+ /* Allocate new extension block and add to head of
+ linked list (this way a later definition will
+ override an earlier one, which can be useful for
+ having terminal-specific defs override global). */
+
+ ext = (COLOR_EXT_TYPE *)xmalloc (sizeof *ext);
+ ext->next = _rl_color_ext_list;
+ _rl_color_ext_list = ext;
+
+ ++p;
+ ext->ext.string = buf;
+
+ state = (get_funky_string (&buf, &p, true, &ext->ext.len)
+ ? 4 : -1);
+ break;
+
+ case '\0':
+ state = 0; /* Done! */
+ break;
+
+ default: /* Assume it is file type label */
+ label[0] = *(p++);
+ state = 2;
+ break;
+ }
+ break;
+
+ case 2: /* Second label character */
+ if (*p)
+ {
+ label[1] = *(p++);
+ state = 3;
+ }
+ else
+ state = -1; /* Error */
+ break;
+
+ case 3: /* Equal sign after indicator label */
+ state = -1; /* Assume failure... */
+ if (*(p++) == '=')/* It *should* be... */
+ {
+ for (ind_no = 0; indicator_name[ind_no] != NULL; ++ind_no)
+ {
+ if (STREQ (label, indicator_name[ind_no]))
+ {
+ _rl_color_indicator[ind_no].string = buf;
+ state = (get_funky_string (&buf, &p, false,
+ &_rl_color_indicator[ind_no].len)
+ ? 1 : -1);
+ break;
+ }
+ }
+ if (state == -1)
+ {
+ _rl_errmsg ("LS_COLORS: unrecognized prefix: %s", label);
+ /* recover from an unrecognized prefix */
+ while (p && *p && *p != ':')
+ p++;
+ if (p && *p == ':')
+ state = 1;
+ else if (p && *p == 0)
+ state = 0;
+ }
+ }
+ break;
+
+ case 4: /* Equal sign after *.ext */
+ if (*(p++) == '=')
+ {
+ ext->seq.string = buf;
+ state = (get_funky_string (&buf, &p, false, &ext->seq.len)
+ ? 1 : -1);
+ }
+ else
+ state = -1;
+ /* XXX - recover here as with an unrecognized prefix? */
+ if (state == -1 && ext->ext.string)
+ _rl_errmsg ("LS_COLORS: syntax error: %s", ext->ext.string);
+ break;
+ }
+ }
+
+ if (state < 0)
+ {
+ COLOR_EXT_TYPE *e;
+ COLOR_EXT_TYPE *e2;
+
+ _rl_errmsg ("unparsable value for LS_COLORS environment variable");
+ free (color_buf);
+ for (e = _rl_color_ext_list; e != NULL; /* empty */)
+ {
+ e2 = e;
+ e = e->next;
+ free (e2);
+ }
+ _rl_color_ext_list = NULL;
+ _rl_colored_stats = 0; /* can't have colored stats without colors */
+ }
+#else /* !COLOR_SUPPORT */
+ ;
+#endif /* !COLOR_SUPPORT */
+}
diff --git a/lib/readline/parse-colors.h b/lib/readline/parse-colors.h
new file mode 100644
index 00000000..aef86f78
--- /dev/null
+++ b/lib/readline/parse-colors.h
@@ -0,0 +1,46 @@
+/* `dir', `vdir' and `ls' directory listing programs for GNU.
+
+ Modified by Chet Ramey for Readline.
+
+ Copyright (C) 1985, 1988, 1990-1991, 1995-2010, 2012 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 <http://www.gnu.org/licenses/>. */
+
+/* Written by Richard Stallman and David MacKenzie. */
+
+/* Color support by Peter Anvin <Peter.Anvin@linux.org> and Dennis
+ Flaherty <dennisf@denix.elk.miles.com> based on original patches by
+ Greg Lee <lee@uhunix.uhcc.hawaii.edu>. */
+
+#ifndef _PARSE_COLORS_H_
+#define _PARSE_COLORS_H_
+
+#include "readline.h"
+
+#define LEN_STR_PAIR(s) sizeof (s) - 1, s
+
+void _rl_parse_colors (void);
+
+static const char *const indicator_name[]=
+ {
+ "lc", "rc", "ec", "rs", "no", "fi", "di", "ln", "pi", "so",
+ "bd", "cd", "mi", "or", "ex", "do", "su", "sg", "st",
+ "ow", "tw", "ca", "mh", "cl", NULL
+ };
+
+/* Buffer for color sequences */
+static char *color_buf;
+
+#endif /* !_PARSE_COLORS_H_ */
diff --git a/lib/readline/posixdir.h b/lib/readline/posixdir.h
index bd33694d..0921c5d7 100644
--- a/lib/readline/posixdir.h
+++ b/lib/readline/posixdir.h
@@ -1,6 +1,6 @@
/* posixdir.h -- Posix directory reading includes and defines. */
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
+/* Copyright (C) 1987,1991,2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -46,16 +46,26 @@
# define D_NAMLEN(d) ((d)->d_namlen)
#endif /* !HAVE_DIRENT_H */
+/* The bash code fairly consistenly uses d_fileno; make sure it's available */
#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO)
# define d_fileno d_ino
#endif
-#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO))
/* Posix does not require that the d_ino field be present, and some
systems do not provide it. */
+#if !defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO)
# define REAL_DIR_ENTRY(dp) 1
#else
# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
#endif /* _POSIX_SOURCE */
+#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (BROKEN_DIRENT_D_INO)
+# define D_INO_AVAILABLE
+#endif
+
+/* Signal the rest of the code that it can safely use dirent.d_fileno */
+#if defined (D_INO_AVAILABLE) || defined (HAVE_STRUCT_DIRENT_D_FILENO)
+# define D_FILENO_AVAILABLE 1
+#endif
+
#endif /* !_POSIXDIR_H_ */
diff --git a/lib/readline/posixjmp.h b/lib/readline/posixjmp.h
index 49bfecf3..98cf7185 100644
--- a/lib/readline/posixjmp.h
+++ b/lib/readline/posixjmp.h
@@ -30,11 +30,13 @@
# if !defined (__OPENNT)
# undef setjmp
# define setjmp(x) sigsetjmp((x), 1)
+# define setjmp_nosigs(x) sigsetjmp((x), 0)
# undef longjmp
# define longjmp(x, n) siglongjmp((x), (n))
# endif /* !__OPENNT */
#else
# define procenv_t jmp_buf
+# define setjmp_nosigs setjmp
#endif
#endif /* _POSIXJMP_H_ */
diff --git a/lib/readline/readline.c b/lib/readline/readline.c
index f2e4d933..03eefa6e 100644
--- a/lib/readline/readline.c
+++ b/lib/readline/readline.c
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 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.
@@ -82,6 +82,11 @@ extern int errno;
extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
+#if defined (COLOR_SUPPORT)
+extern void _rl_parse_colors PARAMS((void)); /* XXX */
+#endif
+
+
/* Forward declarations used in this file. */
static char *readline_internal PARAMS((void));
static void readline_initialize_everything PARAMS((void));
@@ -112,7 +117,6 @@ int rl_gnu_readline_p = 1;
By default, it is the standard emacs keymap. */
Keymap _rl_keymap = emacs_standard_keymap;
-
/* The current style of editing. */
int rl_editing_mode = emacs_mode;
@@ -238,13 +242,32 @@ int rl_erase_empty_line = 0;
character bound to accept-line. */
int rl_num_chars_to_read;
-/* Line buffer and maintenence. */
+/* Line buffer and maintenance. */
char *rl_line_buffer = (char *)NULL;
int rl_line_buffer_len = 0;
/* Key sequence `contexts' */
_rl_keyseq_cxt *_rl_kscxt = 0;
+int rl_executing_key;
+char *rl_executing_keyseq = 0;
+int _rl_executing_keyseq_size = 0;
+
+/* Timeout (specified in milliseconds) when reading characters making up an
+ ambiguous multiple-key sequence */
+int _rl_keyseq_timeout = 500;
+
+#define RESIZE_KEYSEQ_BUFFER() \
+ do \
+ { \
+ if (rl_key_sequence_length + 2 >= _rl_executing_keyseq_size) \
+ { \
+ _rl_executing_keyseq_size += 16; \
+ rl_executing_keyseq = xrealloc (rl_executing_keyseq, _rl_executing_keyseq_size); \
+ } \
+ } \
+ while (0);
+
/* Forward declarations used by the display, termcap, and history code. */
/* **************************************************************** */
@@ -279,6 +302,10 @@ int _rl_revert_all_at_newline = 0;
characters corresponding to keyboard-generated signals. */
int _rl_echo_control_chars = 1;
+/* Non-zero means to prefix the displayed prompt with a character indicating
+ the editing mode: @ for emacs, : for vi-command, + for vi-insert. */
+int _rl_show_mode_in_prompt = 0;
+
/* **************************************************************** */
/* */
/* Top Level Functions */
@@ -352,6 +379,11 @@ readline (prompt)
RL_SETSTATE (RL_STATE_CALLBACK);
#endif
+#if HAVE_DECL_AUDIT_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
+ if (value)
+ _rl_audit_tty (value);
+#endif
+
return (value);
}
@@ -369,9 +401,19 @@ readline_internal_setup ()
_rl_in_stream = rl_instream;
_rl_out_stream = rl_outstream;
+ /* Enable the meta key only for the duration of readline(), if this
+ terminal has one and the terminal has been initialized */
+ if (_rl_enable_meta & RL_ISSTATE (RL_STATE_TERMPREPPED))
+ _rl_enable_meta_key ();
+
if (rl_startup_hook)
(*rl_startup_hook) ();
+#if defined (VI_MODE)
+ if (rl_editing_mode == vi_mode)
+ rl_vi_insertion_mode (1, 'i'); /* don't want to reset last */
+#endif /* VI_MODE */
+
/* 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. */
@@ -394,11 +436,6 @@ readline_internal_setup ()
(*rl_redisplay_function) ();
}
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- rl_vi_insert_mode (1, 'i');
-#endif /* VI_MODE */
-
if (rl_pre_input_hook)
(*rl_pre_input_hook) ();
@@ -437,6 +474,11 @@ readline_internal_teardown (eof)
if (rl_undo_list)
rl_free_undo_list ();
+ /* Disable the meta key, if this terminal has one and we were told to use it.
+ The check whether or not we sent the enable string is in
+ _rl_disable_meta_key(); the flag is set in _rl_enable_meta_key */
+ _rl_disable_meta_key ();
+
/* Restore normal cursor, if available. */
_rl_set_insert_mode (RL_IM_INSERT, 0);
@@ -492,7 +534,11 @@ readline_internal_charloop ()
#endif
lk = _rl_last_command_was_kill;
+#if defined (HAVE_POSIX_SIGSETJMP)
+ code = sigsetjmp (_rl_top_level, 0);
+#else
code = setjmp (_rl_top_level);
+#endif
if (code)
{
@@ -511,6 +557,7 @@ readline_internal_charloop ()
/* Then initialize the argument and number of keys read. */
_rl_reset_argument ();
rl_key_sequence_length = 0;
+ rl_executing_keyseq[0] = 0;
}
RL_SETSTATE(RL_STATE_READCMD);
@@ -519,7 +566,8 @@ readline_internal_charloop ()
/* look at input.c:rl_getc() for the circumstances under which this will
be returned; punt immediately on read error without converting it to
- a newline. */
+ a newline; assume that rl_read_key has already called the signal
+ handler. */
if (c == READERR)
{
#if defined (READLINE_CALLBACKS)
@@ -531,7 +579,9 @@ readline_internal_charloop ()
#endif
}
- /* EOF typed to a non-blank line is a <NL>. */
+ /* EOF typed to a non-blank line is a <NL>. If we want to change this,
+ to force any existing line to be ignored when read(2) reads EOF,
+ for example, this is the place to change. */
if (c == EOF && rl_end)
c = NEWLINE;
@@ -743,9 +793,10 @@ _rl_dispatch_subseq (key, map, got_subseq)
{
if (RL_ISSTATE (RL_STATE_MACRODEF))
_rl_add_macro_char (ESC);
+ RESIZE_KEYSEQ_BUFFER ();
+ rl_executing_keyseq[rl_key_sequence_length++] = ESC;
map = FUNCTION_TO_KEYMAP (map, ESC);
key = UNMETA (key);
- rl_key_sequence_length += 2;
return (_rl_dispatch (key, map));
}
else
@@ -765,13 +816,19 @@ _rl_dispatch_subseq (key, map, got_subseq)
{
/* Special case rl_do_lowercase_version (). */
if (func == rl_do_lowercase_version)
+ /* Should we do anything special if key == ANYOTHERKEY? */
return (_rl_dispatch (_rl_to_lower (key), map));
rl_executing_keymap = map;
+ rl_executing_key = key;
+
+ RESIZE_KEYSEQ_BUFFER();
+ rl_executing_keyseq[rl_key_sequence_length++] = key;
+ rl_executing_keyseq[rl_key_sequence_length] = '\0';
rl_dispatching = 1;
RL_SETSTATE(RL_STATE_DISPATCHING);
- (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
+ r = (*func) (rl_numeric_arg * rl_arg_sign, key);
RL_UNSETSTATE(RL_STATE_DISPATCHING);
rl_dispatching = 0;
@@ -788,7 +845,10 @@ _rl_dispatch_subseq (key, map, got_subseq)
/* OK, there's no function bound in this map, but there is a
shadow function that was overridden when the current keymap
was created. Return -2 to note that. */
- _rl_unget_char (key);
+ if (RL_ISSTATE (RL_STATE_MACROINPUT))
+ _rl_prev_macro_key ();
+ else
+ _rl_unget_char (key);
return -2;
}
else if (got_subseq)
@@ -797,7 +857,10 @@ _rl_dispatch_subseq (key, map, got_subseq)
have a matching key, nor was one overridden. This means
we need to back up the recursion chain and find the last
subsequence that is bound to a function. */
- _rl_unget_char (key);
+ if (RL_ISSTATE (RL_STATE_MACROINPUT))
+ _rl_prev_macro_key ();
+ else
+ _rl_unget_char (key);
return -1;
}
else
@@ -820,13 +883,17 @@ _rl_dispatch_subseq (key, map, got_subseq)
check whether there's input in the queue, which there generally
will be if an arrow key has been pressed, and, if there's not,
just dispatch to (what we assume is) rl_vi_movement_mode right
- away. This is essentially an input test with a zero timeout. */
+ away. This is essentially an input test with a zero timeout (by
+ default) or a timeout determined by the value of `keyseq-timeout' */
+ /* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued
+ takes microseconds, so multiply by 1000 */
if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
- && _rl_input_queued (0) == 0)
+ && _rl_input_queued ((_rl_keyseq_timeout > 0) ? _rl_keyseq_timeout*1000 : 0) == 0)
return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
#endif
- rl_key_sequence_length++;
+ RESIZE_KEYSEQ_BUFFER ();
+ rl_executing_keyseq[rl_key_sequence_length++] = key;
_rl_dispatching_keymap = FUNCTION_TO_KEYMAP (map, key);
/* Allocate new context here. Use linked contexts (linked through
@@ -855,6 +922,18 @@ _rl_dispatch_subseq (key, map, got_subseq)
}
#endif
+ /* Tentative inter-character timeout for potential multi-key
+ sequences? If no input within timeout, abort sequence and
+ act as if we got non-matching input. */
+ /* _rl_keyseq_timeout specified in milliseconds; _rl_input_queued
+ takes microseconds, so multiply by 1000 */
+ if (_rl_keyseq_timeout > 0 &&
+ (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) &&
+ _rl_pushed_input_available () == 0 &&
+ _rl_dispatching_keymap[ANYOTHERKEY].function &&
+ _rl_input_queued (_rl_keyseq_timeout*1000) == 0)
+ return (_rl_subseq_result (-2, map, key, got_subseq));
+
newkey = _rl_subseq_getchar (key);
if (newkey < 0)
{
@@ -875,6 +954,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
case ISMACR:
if (map[key].function != 0)
{
+ rl_executing_keyseq[rl_key_sequence_length] = '\0';
macro = savestring ((char *)map[key].function);
_rl_with_macro_input (macro);
return 0;
@@ -884,6 +964,7 @@ _rl_dispatch_subseq (key, map, got_subseq)
#if defined (VI_MODE)
if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
key != ANYOTHERKEY &&
+ rl_key_sequence_length == 1 && /* XXX */
_rl_vi_textmod_command (key))
_rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
#endif
@@ -935,14 +1016,20 @@ _rl_subseq_result (r, map, key, got_subseq)
/* We didn't match (r is probably -1), so return something to
tell the caller that it should try ANYOTHERKEY for an
overridden function. */
- _rl_unget_char (key);
+ if (RL_ISSTATE (RL_STATE_MACROINPUT))
+ _rl_prev_macro_key ();
+ else
+ _rl_unget_char (key);
_rl_dispatching_keymap = map;
return -2;
}
else if (r && got_subseq)
{
/* OK, back up the chain. */
- _rl_unget_char (key);
+ if (RL_ISSTATE (RL_STATE_MACROINPUT))
+ _rl_prev_macro_key ();
+ else
+ _rl_unget_char (key);
_rl_dispatching_keymap = map;
return -1;
}
@@ -971,7 +1058,7 @@ rl_initialize ()
RL_SETSTATE(RL_STATE_INITIALIZED);
}
- /* Initalize the current line information. */
+ /* Initialize the current line information. */
_rl_init_line_state ();
/* We aren't done yet. We haven't even gotten started yet! */
@@ -1091,14 +1178,19 @@ readline_initialize_everything ()
/* Try to bind a common arrow key prefix, if not already bound. */
bind_arrow_keys ();
- /* Enable the meta key, if this terminal has one. */
- if (_rl_enable_meta)
- _rl_enable_meta_key ();
-
/* If the completion parser's default word break characters haven't
been set yet, then do so now. */
if (rl_completer_word_break_characters == (char *)NULL)
rl_completer_word_break_characters = (char *)rl_basic_word_break_characters;
+
+#if defined (COLOR_SUPPORT)
+ if (_rl_colored_stats)
+ _rl_parse_colors ();
+#endif
+
+ rl_executing_keyseq = malloc (_rl_executing_keyseq_size = 16);
+ if (rl_executing_keyseq)
+ rl_executing_keyseq[0] = '\0';
}
/* If this system allows us to look at the values of the regular
@@ -1159,6 +1251,20 @@ bind_arrow_keys_internal (map)
rl_bind_keyseq_if_unbound ("\340P", rl_get_next_history);
rl_bind_keyseq_if_unbound ("\340M", rl_forward_char);
rl_bind_keyseq_if_unbound ("\340K", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\340G", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\340O", rl_end_of_line);
+ rl_bind_keyseq_if_unbound ("\340S", rl_delete);
+ rl_bind_keyseq_if_unbound ("\340R", rl_overwrite_mode);
+
+ /* These may or may not work because of the embedded NUL. */
+ rl_bind_keyseq_if_unbound ("\\000H", rl_get_previous_history);
+ rl_bind_keyseq_if_unbound ("\\000P", rl_get_next_history);
+ rl_bind_keyseq_if_unbound ("\\000M", rl_forward_char);
+ rl_bind_keyseq_if_unbound ("\\000K", rl_backward_char);
+ rl_bind_keyseq_if_unbound ("\\000G", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\\000O", rl_end_of_line);
+ rl_bind_keyseq_if_unbound ("\\000S", rl_delete);
+ rl_bind_keyseq_if_unbound ("\\000R", rl_overwrite_mode);
#endif
_rl_keymap = xkeymap;
diff --git a/lib/readline/readline.h b/lib/readline/readline.h
index 0de168cd..08dcd2be 100644
--- a/lib/readline/readline.h
+++ b/lib/readline/readline.h
@@ -1,6 +1,6 @@
/* Readline.h -- the names of functions callable from within readline. */
-/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 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.
@@ -39,9 +39,9 @@ extern "C" {
#endif
/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0602 /* Readline 6.2 */
+#define RL_READLINE_VERSION 0x0603 /* Readline 6.3 */
#define RL_VERSION_MAJOR 6
-#define RL_VERSION_MINOR 2
+#define RL_VERSION_MINOR 3
/* Readline data structures. */
@@ -185,6 +185,7 @@ extern int rl_forward_search_history PARAMS((int, int));
extern int rl_start_kbd_macro PARAMS((int, int));
extern int rl_end_kbd_macro PARAMS((int, int));
extern int rl_call_last_kbd_macro PARAMS((int, int));
+extern int rl_print_last_kbd_macro PARAMS((int, int));
/* Bindable undo commands. */
extern int rl_revert_line PARAMS((int, int));
@@ -204,6 +205,8 @@ extern int rl_tty_status PARAMS((int, int));
/* Bindable commands for incremental and non-incremental history searching. */
extern int rl_history_search_forward PARAMS((int, int));
extern int rl_history_search_backward PARAMS((int, int));
+extern int rl_history_substr_search_forward PARAMS((int, int));
+extern int rl_history_substr_search_backward PARAMS((int, int));
extern int rl_noninc_forward_search PARAMS((int, int));
extern int rl_noninc_reverse_search PARAMS((int, int));
extern int rl_noninc_forward_search_again PARAMS((int, int));
@@ -339,6 +342,7 @@ extern Keymap rl_make_bare_keymap PARAMS((void));
extern Keymap rl_copy_keymap PARAMS((Keymap));
extern Keymap rl_make_keymap PARAMS((void));
extern void rl_discard_keymap PARAMS((Keymap));
+extern void rl_free_keymap PARAMS((Keymap));
extern Keymap rl_get_keymap_by_name PARAMS((const char *));
extern char *rl_get_keymap_name PARAMS((Keymap));
@@ -436,6 +440,10 @@ extern void rl_echo_signal_char PARAMS((int));
extern int rl_set_paren_blink_timeout PARAMS((int));
+/* History management functions. */
+
+extern void rl_clear_history PARAMS((void));
+
/* Undocumented. */
extern int rl_maybe_save_line PARAMS((void));
extern int rl_maybe_unsave_line PARAMS((void));
@@ -560,6 +568,13 @@ extern rl_hook_func_t *rl_pre_input_hook;
awaiting character input, or NULL, for no event handling. */
extern rl_hook_func_t *rl_event_hook;
+/* The address of a function to call if a read is interrupted by a signal. */
+extern rl_hook_func_t *rl_signal_event_hook;
+
+/* The address of a function to call if Readline needs to know whether or not
+ there is data available from the current input source. */
+extern rl_hook_func_t *rl_input_available_hook;
+
/* The address of the function to call to fetch a character from the current
Readline input stream */
extern rl_getc_func_t *rl_getc_function;
@@ -573,6 +588,10 @@ extern rl_voidfunc_t *rl_deprep_term_function;
extern Keymap rl_executing_keymap;
extern Keymap rl_binding_keymap;
+extern int rl_executing_key;
+extern char *rl_executing_keyseq;
+extern int rl_key_sequence_length;
+
/* Display variables. */
/* If non-zero, readline will erase the entire line, including any prompt,
if the only thing typed on an otherwise-blank line is something bound to
@@ -603,6 +622,10 @@ extern int rl_catch_signals;
to do that. */
extern int rl_catch_sigwinch;
+/* If non-zero, the readline SIGWINCH handler will modify LINES and
+ COLUMNS in the environment. */
+extern int rl_change_environment;
+
/* Completion variables. */
/* Pointer to the generator function for completion_matches ().
NULL means to use rl_filename_completion_function (), the default
@@ -686,6 +709,13 @@ extern rl_icppfunc_t *rl_directory_completion_hook;
it in bash to see how well it goes. */
extern rl_icppfunc_t *rl_directory_rewrite_hook;
+/* If non-zero, this is the address of a function for the completer to call
+ before deciding which character to append to a completed name. It should
+ modify the directory name passed as an argument if appropriate, and return
+ non-zero if it modifies the name. This should not worry about dequoting
+ the filename; that has already happened by the time it gets here. */
+extern rl_icppfunc_t *rl_filename_stat_hook;
+
/* If non-zero, this is the address of a function to call when reading
directory entries from the filesystem for completion and comparing
them to the partial word to be completed. The function should
diff --git a/lib/readline/rlconf.h b/lib/readline/rlconf.h
index 39f94dbc..1a40afce 100644
--- a/lib/readline/rlconf.h
+++ b/lib/readline/rlconf.h
@@ -1,6 +1,6 @@
/* rlconf.h -- readline configuration definitions */
-/* Copyright (C) 1992-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2012 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.
@@ -28,8 +28,12 @@
/* Define this to get an indication of file type when listing completions. */
#define VISIBLE_STATS
+/* Define this to get support for colors when listing completions and in
+ other places. */
+#define COLOR_SUPPORT
+
/* This definition is needed by readline.c, rltty.c, and signals.c. */
-/* If on, then readline handles signals in a way that doesn't screw. */
+/* If on, then readline handles signals in a way that doesn't suck. */
#define HANDLE_SIGNALS
/* Ugly but working hack for binding prefix meta. */
@@ -58,4 +62,8 @@
/* Define this if you want the cursor to indicate insert or overwrite mode. */
/* #define CURSOR_MODE */
+/* Define this if you want to enable code that talks to the Linux kernel
+ tty auditing system. */
+#define ENABLE_TTY_AUDIT_SUPPORT
+
#endif /* _RLCONF_H_ */
diff --git a/lib/readline/rldefs.h b/lib/readline/rldefs.h
index 02577546..dab1beba 100644
--- a/lib/readline/rldefs.h
+++ b/lib/readline/rldefs.h
@@ -2,7 +2,7 @@
for readline. This should be included after any files that define
system-specific constants like _POSIX_VERSION or USG. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 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.
@@ -79,8 +79,8 @@ extern char *strchr (), *strrchr ();
#define _rl_stricmp strcasecmp
#define _rl_strnicmp strncasecmp
#else
-extern int _rl_stricmp PARAMS((char *, char *));
-extern int _rl_strnicmp PARAMS((char *, char *, int));
+extern int _rl_stricmp PARAMS((const char *, const char *));
+extern int _rl_strnicmp PARAMS((const char *, const char *, int));
#endif
#if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE)
@@ -148,6 +148,10 @@ extern char *_rl_strpbrk PARAMS((const char *, const char *));
: ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
#endif
+#if !defined (RL_STRLEN)
+# define RL_STRLEN(s) (((s) && (s)[0]) ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0)
+#endif
+
#if !defined (FREE)
# define FREE(x) if (x) free (x)
#endif
diff --git a/lib/readline/rlmbutil.h b/lib/readline/rlmbutil.h
index 7716a70c..06d85ab3 100644
--- a/lib/readline/rlmbutil.h
+++ b/lib/readline/rlmbutil.h
@@ -123,6 +123,15 @@ extern int _rl_walphabetic PARAMS((wchar_t));
#define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2)
#define MB_NULLWCH(x) ((x) == 0)
+/* Unicode combining characters range from U+0300 to U+036F */
+#define UNICODE_COMBINING_CHAR(x) ((x) >= 768 && (x) <= 879)
+
+#if defined (WCWIDTH_BROKEN)
+# define WCWIDTH(wc) ((_rl_utf8locale && UNICODE_COMBINING_CHAR(wc)) ? 0 : wcwidth(wc))
+#else
+# define WCWIDTH(wc) wcwidth(wc)
+#endif
+
#else /* !HANDLE_MULTIBYTE */
#undef MB_LEN_MAX
diff --git a/lib/readline/rlprivate.h b/lib/readline/rlprivate.h
index 384ff67c..14a370d2 100644
--- a/lib/readline/rlprivate.h
+++ b/lib/readline/rlprivate.h
@@ -1,7 +1,7 @@
/* rlprivate.h -- functions and variables global to the readline library,
but not intended for use by applications. */
-/* Copyright (C) 1999-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 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.
@@ -42,6 +42,12 @@
if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
} while (0)
+#define RL_SIG_RECEIVED() (_rl_caught_signal != 0)
+#define RL_SIGINT_RECEIVED() (_rl_caught_signal == SIGINT)
+
+#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
+#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
+
/*************************************************************************
* *
* Global structs undocumented in texinfo manual and not in readline.h *
@@ -86,9 +92,11 @@ typedef struct __rl_search_context
int history_pos;
int direction;
+ int prevc;
int lastc;
#if defined (HANDLE_MULTIBYTE)
char mb[MB_LEN_MAX];
+ char pmb[MB_LEN_MAX];
#endif
char *sline;
@@ -156,6 +164,8 @@ typedef struct __rl_callback_generic_arg
typedef int _rl_callback_func_t PARAMS((_rl_callback_generic_arg *));
+typedef void _rl_sigcleanup_func_t PARAMS((int, void *));
+
/*************************************************************************
* *
* Global functions undocumented in texinfo manual and not in readline.h *
@@ -173,12 +183,14 @@ extern int rl_complete_with_tilde_expansion;
#if defined (VISIBLE_STATS)
extern int rl_visible_stats;
#endif /* VISIBLE_STATS */
+#if defined (COLOR_SUPPORT)
+extern int _rl_colored_stats;
+#endif
/* readline.c */
extern int rl_line_buffer_len;
extern int rl_arg_sign;
extern int rl_visible_prompt_length;
-extern int rl_key_sequence_length;
extern int rl_byte_oriented;
/* display.c */
@@ -189,7 +201,7 @@ extern int rl_blink_matching_paren;
/*************************************************************************
* *
- * Global functions and variables unsed and undocumented *
+ * Global functions and variables unused and undocumented *
* *
*************************************************************************/
@@ -240,6 +252,7 @@ extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *));
#endif /* READLINE_CALLBACKS */
/* bind.c */
+extern char *_rl_untranslate_macro_value PARAMS((char *, int));
/* complete.c */
extern void _rl_reset_completion_state PARAMS((void));
@@ -248,6 +261,7 @@ extern void _rl_free_match_list PARAMS((char **));
/* display.c */
extern char *_rl_strip_prompt PARAMS((char *));
+extern void _rl_reset_prompt PARAMS((void));
extern void _rl_move_cursor_relative PARAMS((int, const char *));
extern void _rl_move_vert PARAMS((int));
extern void _rl_save_prompt PARAMS((void));
@@ -282,6 +296,7 @@ extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
/* macro.c */
extern void _rl_with_macro_input PARAMS((char *));
extern int _rl_next_macro_key PARAMS((void));
+extern int _rl_prev_macro_key PARAMS((void));
extern void _rl_push_executing_macro PARAMS((void));
extern void _rl_pop_executing_macro PARAMS((void));
extern void _rl_add_macro_char PARAMS((int));
@@ -330,6 +345,7 @@ extern void _rl_release_sigwinch PARAMS((void));
/* terminal.c */
extern void _rl_get_screen_size PARAMS((int, int));
+extern void _rl_sigwinch_resize_terminal PARAMS((void));
extern int _rl_init_terminal_io PARAMS((const char *));
#ifdef _MINIX
extern void _rl_output_character_function PARAMS((int));
@@ -339,6 +355,7 @@ extern int _rl_output_character_function PARAMS((int));
extern void _rl_output_some_chars PARAMS((const char *, int));
extern int _rl_backspace PARAMS((int));
extern void _rl_enable_meta_key PARAMS((void));
+extern void _rl_disable_meta_key PARAMS((void));
extern void _rl_control_keypad PARAMS((int));
extern void _rl_set_cursor PARAMS((int, int));
@@ -360,6 +377,7 @@ extern int _rl_set_mark_at_pos PARAMS((int));
/* undo.c */
extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
+extern void _rl_free_undo_list PARAMS((UNDO_LIST *));
/* util.c */
#if defined (USE_VARARGS) && defined (PREFER_STDARG)
@@ -371,6 +389,7 @@ extern void _rl_ttymsg ();
extern void _rl_errmsg ();
extern void _rl_trace ();
#endif
+extern void _rl_audit_tty PARAMS((char *));
extern int _rl_tropen PARAMS((void));
@@ -441,6 +460,9 @@ extern int _rl_history_saved_point;
extern _rl_arg_cxt _rl_argcxt;
+/* nls.c */
+extern int _rl_utf8locale;
+
/* readline.c */
extern int _rl_echoing_p;
extern int _rl_horizontal_scroll_mode;
@@ -452,6 +474,7 @@ extern int _rl_output_meta_chars;
extern int _rl_bind_stty_chars;
extern int _rl_revert_all_at_newline;
extern int _rl_echo_control_chars;
+extern int _rl_show_mode_in_prompt;
extern char *_rl_comment_begin;
extern unsigned char _rl_parsing_conditionalized_out;
extern Keymap _rl_keymap;
@@ -461,6 +484,9 @@ extern int _rl_last_command_was_kill;
extern int _rl_eof_char;
extern procenv_t _rl_top_level;
extern _rl_keyseq_cxt *_rl_kscxt;
+extern int _rl_keyseq_timeout;
+
+extern int _rl_executing_keyseq_size;
/* search.c */
extern _rl_search_cxt *_rl_nscxt;
@@ -469,6 +495,9 @@ extern _rl_search_cxt *_rl_nscxt;
extern int _rl_interrupt_immediately;
extern int volatile _rl_caught_signal;
+extern _rl_sigcleanup_func_t *_rl_sigcleanup;
+extern void *_rl_sigcleanarg;
+
extern int _rl_echoctl;
extern int _rl_intr_char;
diff --git a/lib/readline/rlstdc.h b/lib/readline/rlstdc.h
index a6d23942..2aaa30ba 100644
--- a/lib/readline/rlstdc.h
+++ b/lib/readline/rlstdc.h
@@ -42,4 +42,16 @@
# endif
#endif
+/* Moved from config.h.in because readline.h:rl_message depends on these
+ defines. */
+#if defined (__STDC__) && defined (HAVE_STDARG_H)
+# define PREFER_STDARG
+# define USE_VARARGS
+#else
+# if defined (HAVE_VARARGS_H)
+# define PREFER_VARARGS
+# define USE_VARARGS
+# endif
+#endif
+
#endif /* !_RL_STDC_H_ */
diff --git a/lib/readline/rltty.c b/lib/readline/rltty.c
index d237b1c0..908bae18 100644
--- a/lib/readline/rltty.c
+++ b/lib/readline/rltty.c
@@ -121,7 +121,7 @@ static int set_tty_settings PARAMS((int, TIOTYPE *));
static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t));
+static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t *));
static void
save_tty_chars (tiop)
@@ -341,7 +341,7 @@ static int set_tty_settings PARAMS((int, TIOTYPE *));
static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t));
+static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t *));
static void _rl_bind_tty_special_chars PARAMS((Keymap, TIOTYPE));
#if defined (FLUSHO)
@@ -528,10 +528,10 @@ prepare_terminal_settings (meta_flag, oldtio, tiop)
#if defined (USE_XON_XOFF)
#if defined (IXANY)
- tiop->c_iflag &= ~(IXON | IXOFF | IXANY);
+ tiop->c_iflag &= ~(IXON | IXANY);
#else
/* `strict' Posix systems do not define IXANY. */
- tiop->c_iflag &= ~(IXON | IXOFF);
+ tiop->c_iflag &= ~IXON;
#endif /* IXANY */
#endif /* USE_XON_XOFF */
@@ -678,7 +678,7 @@ rl_deprep_terminal ()
/* Try to keep this function from being interrupted. */
_rl_block_sigint ();
- tty = rl_instream ? fileno (rl_instream) : fileno (stdout);
+ tty = rl_instream ? fileno (rl_instream) : fileno (stdin);
if (_rl_enable_keypad)
_rl_control_keypad (0);
diff --git a/lib/readline/rltypedefs.h b/lib/readline/rltypedefs.h
index 60f29a18..b113ee6e 100644
--- a/lib/readline/rltypedefs.h
+++ b/lib/readline/rltypedefs.h
@@ -1,6 +1,6 @@
/* rltypedefs.h -- Type declarations for readline functions. */
-/* Copyright (C) 2000-2009 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2011 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.
@@ -26,18 +26,6 @@
extern "C" {
#endif
-/* Old-style */
-
-#if !defined (_FUNCTION_DEF)
-# define _FUNCTION_DEF
-
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-
-#endif /* _FUNCTION_DEF */
-
/* New style. */
#if !defined (_RL_FUNCTION_TYPEDEF)
diff --git a/lib/readline/search.c b/lib/readline/search.c
index 04468fc4..028c2505 100644
--- a/lib/readline/search.c
+++ b/lib/readline/search.c
@@ -1,6 +1,6 @@
/* search.c - code for non-incremental searching in emacs and vi modes. */
-/* Copyright (C) 1992-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2013 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.
@@ -43,6 +43,7 @@
#include "readline.h"
#include "history.h"
+#include "histlib.h"
#include "rlprivate.h"
#include "xmalloc.h"
@@ -66,6 +67,8 @@ static char *prev_line_found = (char *) NULL;
static int rl_history_search_len;
static int rl_history_search_pos;
+static int rl_history_search_flags;
+
static char *history_search_string;
static int history_string_size;
@@ -74,7 +77,7 @@ static int noninc_search_from_pos PARAMS((char *, int, int));
static int noninc_dosearch PARAMS((char *, int));
static int noninc_search PARAMS((int, int));
static int rl_history_search_internal PARAMS((int, int));
-static void rl_history_search_reinit PARAMS((void));
+static void rl_history_search_reinit PARAMS((int));
static _rl_search_cxt *_rl_nsearch_init PARAMS((int, int));
static int _rl_nsearch_cleanup PARAMS((_rl_search_cxt *, int));
@@ -169,7 +172,8 @@ noninc_dosearch (string, dir)
oldpos = where_history ();
history_set_pos (noninc_history_pos);
- entry = current_history ();
+ entry = current_history (); /* will never be NULL after successful search */
+
#if defined (VI_MODE)
if (rl_editing_mode != vi_mode)
#endif
@@ -210,7 +214,7 @@ _rl_nsearch_init (dir, pchar)
rl_end = rl_point = 0;
p = _rl_make_prompt_for_search (pchar ? pchar : ':');
- rl_message ("%s", p, 0);
+ rl_message ("%s", p);
xfree (p);
RL_SETSTATE(RL_STATE_NSEARCH);
@@ -453,15 +457,19 @@ rl_history_search_internal (count, dir)
{
HIST_ENTRY *temp;
int ret, oldpos;
+ char *t;
rl_maybe_save_line ();
temp = (HIST_ENTRY *)NULL;
- /* Search COUNT times through the history for a line whose prefix
- matches history_search_string. When this loop finishes, TEMP,
- if non-null, is the history line to copy into the line buffer. */
+ /* Search COUNT times through the history for a line matching
+ history_search_string. If history_search_string[0] == '^', the
+ line must match from the start; otherwise any substring can match.
+ When this loop finishes, TEMP, if non-null, is the history line to
+ copy into the line buffer. */
while (count)
{
+ RL_CHECK_SIGNALS ();
ret = noninc_search_from_pos (history_search_string, rl_history_search_pos + dir, dir);
if (ret == -1)
break;
@@ -470,7 +478,7 @@ rl_history_search_internal (count, dir)
rl_history_search_pos = ret;
oldpos = where_history ();
history_set_pos (rl_history_search_pos);
- temp = current_history ();
+ temp = current_history (); /* will never be NULL after successful search */
history_set_pos (oldpos);
/* Don't find multiple instances of the same line. */
@@ -505,35 +513,49 @@ rl_history_search_internal (count, dir)
/* Copy the line we found into the current line buffer. */
make_history_line_current (temp);
- rl_point = rl_history_search_len;
+ if (rl_history_search_flags & ANCHORED_SEARCH)
+ rl_point = rl_history_search_len; /* easy case */
+ else
+ {
+ t = strstr (rl_line_buffer, history_search_string);
+ rl_point = t ? (int)(t - rl_line_buffer) + rl_history_search_len : rl_end;
+ }
rl_mark = rl_end;
return 0;
}
static void
-rl_history_search_reinit ()
+rl_history_search_reinit (flags)
+ int flags;
{
+ int sind;
+
rl_history_search_pos = where_history ();
rl_history_search_len = rl_point;
+ rl_history_search_flags = flags;
+
prev_line_found = (char *)NULL;
if (rl_point)
{
+ /* Allocate enough space for anchored and non-anchored searches */
if (rl_history_search_len >= history_string_size - 2)
{
history_string_size = rl_history_search_len + 2;
history_search_string = (char *)xrealloc (history_search_string, history_string_size);
}
- history_search_string[0] = '^';
- strncpy (history_search_string + 1, rl_line_buffer, rl_point);
- history_search_string[rl_point + 1] = '\0';
+ sind = 0;
+ if (flags & ANCHORED_SEARCH)
+ history_search_string[sind++] = '^';
+ strncpy (history_search_string + sind, rl_line_buffer, rl_point);
+ history_search_string[rl_point + sind] = '\0';
}
_rl_free_saved_history_line ();
}
/* Search forward in the history for the string of characters
from the start of the line to rl_point. This is a non-incremental
- search. */
+ search. The search is anchored to the beginning of the history line. */
int
rl_history_search_forward (count, ignore)
int count, ignore;
@@ -543,7 +565,7 @@ rl_history_search_forward (count, ignore)
if (rl_last_func != rl_history_search_forward &&
rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
+ rl_history_search_reinit (ANCHORED_SEARCH);
if (rl_history_search_len == 0)
return (rl_get_next_history (count, ignore));
@@ -562,7 +584,46 @@ rl_history_search_backward (count, ignore)
if (rl_last_func != rl_history_search_forward &&
rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
+ rl_history_search_reinit (ANCHORED_SEARCH);
+
+ if (rl_history_search_len == 0)
+ return (rl_get_previous_history (count, ignore));
+ return (rl_history_search_internal (abs (count), (count > 0) ? -1 : 1));
+}
+
+/* Search forward in the history for the string of characters
+ from the start of the line to rl_point. This is a non-incremental
+ search. The search succeeds if the search string is present anywhere
+ in the history line. */
+int
+rl_history_substr_search_forward (count, ignore)
+ int count, ignore;
+{
+ if (count == 0)
+ return (0);
+
+ if (rl_last_func != rl_history_substr_search_forward &&
+ rl_last_func != rl_history_substr_search_backward)
+ rl_history_search_reinit (NON_ANCHORED_SEARCH);
+
+ if (rl_history_search_len == 0)
+ return (rl_get_next_history (count, ignore));
+ return (rl_history_search_internal (abs (count), (count > 0) ? 1 : -1));
+}
+
+/* Search backward through the history for the string of characters
+ from the start of the line to rl_point. This is a non-incremental
+ search. */
+int
+rl_history_substr_search_backward (count, ignore)
+ int count, ignore;
+{
+ if (count == 0)
+ return (0);
+
+ if (rl_last_func != rl_history_substr_search_forward &&
+ rl_last_func != rl_history_substr_search_backward)
+ rl_history_search_reinit (NON_ANCHORED_SEARCH);
if (rl_history_search_len == 0)
return (rl_get_previous_history (count, ignore));
diff --git a/lib/readline/shell.c b/lib/readline/shell.c
index ac0fb360..6947295e 100644
--- a/lib/readline/shell.c
+++ b/lib/readline/shell.c
@@ -59,6 +59,8 @@
#include "rlstdc.h"
#include "rlshell.h"
+#include "rldefs.h"
+
#include "xmalloc.h"
#if defined (HAVE_GETPWUID) && !defined (HAVE_GETPW_DECLS)
@@ -120,31 +122,27 @@ sh_single_quote (string)
/* Set the environment variables LINES and COLUMNS to lines and cols,
respectively. */
+static char setenv_buf[INT_STRLEN_BOUND (int) + 1];
+static char putenv_buf1[INT_STRLEN_BOUND (int) + 6 + 1]; /* sizeof("LINES=") == 6 */
+static char putenv_buf2[INT_STRLEN_BOUND (int) + 8 + 1]; /* sizeof("COLUMNS=") == 8 */
+
void
sh_set_lines_and_columns (lines, cols)
int lines, cols;
{
- char *b;
-
#if defined (HAVE_SETENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", lines);
- setenv ("LINES", b, 1);
- xfree (b);
-
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", cols);
- setenv ("COLUMNS", b, 1);
- xfree (b);
+ sprintf (setenv_buf, "%d", lines);
+ setenv ("LINES", setenv_buf, 1);
+
+ sprintf (setenv_buf, "%d", cols);
+ setenv ("COLUMNS", setenv_buf, 1);
#else /* !HAVE_SETENV */
# if defined (HAVE_PUTENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
- sprintf (b, "LINES=%d", lines);
- putenv (b);
+ sprintf (putenv_buf1, "LINES=%d", lines);
+ putenv (putenv_buf1);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
- sprintf (b, "COLUMNS=%d", cols);
- putenv (b);
+ sprintf (putenv_buf2, "COLUMNS=%d", cols);
+ putenv (putenv_buf2);
# endif /* HAVE_PUTENV */
#endif /* !HAVE_SETENV */
}
@@ -159,15 +157,27 @@ sh_get_env_value (varname)
char *
sh_get_home_dir ()
{
- char *home_dir;
+ static char *home_dir = (char *)NULL;
struct passwd *entry;
+ if (home_dir)
+ return (home_dir);
+
home_dir = (char *)NULL;
#if defined (HAVE_GETPWUID)
+# if defined (__TANDEM)
+ entry = getpwnam (getlogin ());
+# else
entry = getpwuid (getuid ());
+# endif
if (entry)
- home_dir = entry->pw_dir;
+ home_dir = savestring (entry->pw_dir);
+#endif
+
+#if defined (HAVE_GETPWENT)
+ endpwent (); /* some systems need this */
#endif
+
return (home_dir);
}
diff --git a/lib/readline/signals.c b/lib/readline/signals.c
index 6a68d78c..61f02f9f 100644
--- a/lib/readline/signals.c
+++ b/lib/readline/signals.c
@@ -1,6 +1,6 @@
/* signals.c -- signal handling support for readline. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 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.
@@ -80,6 +80,7 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt
static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+static void rl_maybe_restore_sighandler PARAMS((int, sighandler_cxt *));
static RETSIGTYPE rl_signal_handler PARAMS((int));
static RETSIGTYPE _rl_handle_signal PARAMS((int));
@@ -87,7 +88,7 @@ static RETSIGTYPE _rl_handle_signal PARAMS((int));
/* Exported variables for use by applications. */
/* If non-zero, readline will install its own signal handlers for
- SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
+ SIGINT, SIGTERM, SIGHUP, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
int rl_catch_signals = 1;
/* If non-zero, readline will install a signal handler for SIGWINCH. */
@@ -118,7 +119,7 @@ static int sigwinch_set_flag;
/* */
/* **************************************************************** */
-static sighandler_cxt old_int, old_term, old_alrm, old_quit;
+static sighandler_cxt old_int, old_term, old_hup, old_alrm, old_quit;
#if defined (SIGTSTP)
static sighandler_cxt old_tstp, old_ttou, old_ttin;
#endif
@@ -126,6 +127,9 @@ static sighandler_cxt old_tstp, old_ttou, old_ttin;
static sighandler_cxt old_winch;
#endif
+_rl_sigcleanup_func_t *_rl_sigcleanup;
+void *_rl_sigcleanarg;
+
/* Readline signal handler functions. */
/* Called from RL_CHECK_SIGNALS() macro */
@@ -135,7 +139,21 @@ _rl_signal_handler (sig)
{
_rl_caught_signal = 0; /* XXX */
- _rl_handle_signal (sig);
+#if defined (SIGWINCH)
+ if (sig == SIGWINCH)
+ {
+ rl_resize_terminal ();
+ /* XXX - experimental for now */
+ /* Call a signal hook because though we called the original signal handler
+ in rl_sigwinch_handler below, we will not resend the signal to
+ ourselves. */
+ if (rl_signal_event_hook)
+ (*rl_signal_event_hook) ();
+ }
+ else
+#endif
+ _rl_handle_signal (sig);
+
SIGHANDLER_RETURN;
}
@@ -143,7 +161,7 @@ static RETSIGTYPE
rl_signal_handler (sig)
int sig;
{
- if (_rl_interrupt_immediately || RL_ISSTATE(RL_STATE_CALLBACK))
+ if (_rl_interrupt_immediately)
{
_rl_interrupt_immediately = 0;
_rl_handle_signal (sig);
@@ -181,6 +199,15 @@ _rl_handle_signal (sig)
rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
+ /* If there's a sig cleanup function registered, call it and `deregister'
+ the cleanup function to avoid multiple calls */
+ if (_rl_sigcleanup)
+ {
+ (*_rl_sigcleanup) (sig, _rl_sigcleanarg);
+ _rl_sigcleanup = 0;
+ _rl_sigcleanarg = 0;
+ }
+
switch (sig)
{
case SIGINT:
@@ -189,6 +216,7 @@ _rl_handle_signal (sig)
/* FALLTHROUGH */
case SIGTERM:
+ case SIGHUP:
#if defined (SIGTSTP)
case SIGTSTP:
case SIGTTOU:
@@ -232,7 +260,7 @@ _rl_handle_signal (sig)
# endif /* HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
- rl_reset_after_signal ();
+ rl_reset_after_signal ();
}
RL_UNSETSTATE(RL_STATE_SIGHANDLER);
@@ -257,7 +285,7 @@ rl_sigwinch_handler (sig)
#endif
RL_SETSTATE(RL_STATE_SIGHANDLER);
- rl_resize_terminal ();
+ _rl_caught_signal = sig;
/* If another sigwinch handler has been installed, call it. */
oh = (SigHandler *)old_winch.sa_handler;
@@ -317,6 +345,8 @@ rl_set_sighandler (sig, handler, ohandler)
return (ohandler->sa_handler);
}
+/* Set disposition of SIG to HANDLER, returning old state in OHANDLER. Don't
+ change disposition if OHANDLER indicates the signal was ignored. */
static void
rl_maybe_set_sighandler (sig, handler, ohandler)
int sig;
@@ -327,11 +357,29 @@ rl_maybe_set_sighandler (sig, handler, ohandler)
SigHandler *oh;
sigemptyset (&dummy.sa_mask);
+ dummy.sa_flags = 0;
oh = rl_set_sighandler (sig, handler, ohandler);
if (oh == (SigHandler *)SIG_IGN)
rl_sigaction (sig, ohandler, &dummy);
}
+/* Set the disposition of SIG to HANDLER, if HANDLER->sa_handler indicates the
+ signal was not being ignored. MUST only be called for signals whose
+ disposition was changed using rl_maybe_set_sighandler or for which the
+ SIG_IGN check was performed inline (e.g., SIGALRM below). */
+static void
+rl_maybe_restore_sighandler (sig, handler)
+ int sig;
+ sighandler_cxt *handler;
+{
+ sighandler_cxt dummy;
+
+ sigemptyset (&dummy.sa_mask);
+ dummy.sa_flags = 0;
+ if (handler->sa_handler != SIG_IGN)
+ rl_sigaction (sig, handler, &dummy);
+}
+
int
rl_set_signals ()
{
@@ -349,6 +397,7 @@ rl_set_signals ()
sigaddset (&bset, SIGINT);
sigaddset (&bset, SIGTERM);
+ sigaddset (&bset, SIGHUP);
#if defined (SIGQUIT)
sigaddset (&bset, SIGQUIT);
#endif
@@ -377,6 +426,7 @@ rl_set_signals ()
rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
+ rl_maybe_set_sighandler (SIGHUP, rl_signal_handler, &old_hup);
#if defined (SIGQUIT)
rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
#endif
@@ -434,25 +484,31 @@ rl_clear_signals ()
{
sigemptyset (&dummy.sa_mask);
- rl_sigaction (SIGINT, &old_int, &dummy);
- rl_sigaction (SIGTERM, &old_term, &dummy);
+ /* Since rl_maybe_set_sighandler doesn't override a SIG_IGN handler,
+ we should in theory not have to restore a handler where
+ old_xxx.sa_handler == SIG_IGN. That's what rl_maybe_restore_sighandler
+ does. Fewer system calls should reduce readline's per-line
+ overhead */
+ rl_maybe_restore_sighandler (SIGINT, &old_int);
+ rl_maybe_restore_sighandler (SIGTERM, &old_term);
+ rl_maybe_restore_sighandler (SIGHUP, &old_hup);
#if defined (SIGQUIT)
- rl_sigaction (SIGQUIT, &old_quit, &dummy);
+ rl_maybe_restore_sighandler (SIGQUIT, &old_quit);
#endif
#if defined (SIGALRM)
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
+ rl_maybe_restore_sighandler (SIGALRM, &old_alrm);
#endif
#if defined (SIGTSTP)
- rl_sigaction (SIGTSTP, &old_tstp, &dummy);
+ rl_maybe_restore_sighandler (SIGTSTP, &old_tstp);
#endif /* SIGTSTP */
#if defined (SIGTTOU)
- rl_sigaction (SIGTTOU, &old_ttou, &dummy);
+ rl_maybe_restore_sighandler (SIGTTOU, &old_ttou);
#endif /* SIGTTOU */
#if defined (SIGTTIN)
- rl_sigaction (SIGTTIN, &old_ttin, &dummy);
+ rl_maybe_restore_sighandler (SIGTTIN, &old_ttin);
#endif /* SIGTTIN */
signals_set_flag = 0;
@@ -540,21 +596,6 @@ _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;
}
@@ -565,19 +606,8 @@ _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;
+ RL_CHECK_SIGNALS ();
}
/* Cause SIGWINCH to not be delivered until the corresponding call to
@@ -588,6 +618,8 @@ _rl_block_sigwinch ()
if (sigwinch_blocked)
return;
+#if defined (SIGWINCH)
+
#if defined (HAVE_POSIX_SIGNALS)
sigemptyset (&sigwinch_set);
sigemptyset (&sigwinch_oset);
@@ -603,6 +635,8 @@ _rl_block_sigwinch ()
# endif /* !HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
+#endif /* SIGWINCH */
+
sigwinch_blocked = 1;
}
@@ -613,6 +647,8 @@ _rl_release_sigwinch ()
if (sigwinch_blocked == 0)
return;
+#if defined (SIGWINCH)
+
#if defined (HAVE_POSIX_SIGNALS)
sigprocmask (SIG_SETMASK, &sigwinch_oset, (sigset_t *)NULL);
#else
@@ -625,6 +661,8 @@ _rl_release_sigwinch ()
# endif /* !HAVE_BSD_SIGNALS */
#endif /* !HAVE_POSIX_SIGNALS */
+#endif /* SIGWINCH */
+
sigwinch_blocked = 0;
}
diff --git a/lib/readline/terminal.c b/lib/readline/terminal.c
index f8c2f6ed..1212ec46 100644
--- a/lib/readline/terminal.c
+++ b/lib/readline/terminal.c
@@ -55,6 +55,10 @@
# include <sys/ioctl.h>
#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
+#ifdef __MSDOS__
+# include <pc.h>
+#endif
+
#include "rltty.h"
#include "tcap.h"
@@ -77,22 +81,25 @@ static void _win_get_screensize PARAMS((int *, int *));
static void _emx_get_screensize PARAMS((int *, int *));
#endif
-#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
-#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
-
-/* If the calling application sets this to a non-zero value, readline will
- use the $LINES and $COLUMNS environment variables to set its idea of the
- window size before interrogating the kernel. */
+/* If the calling application sets this to a non-zero value, readline will
+ use the $LINES and $COLUMNS environment variables to set its idea of the
+ window size before interrogating the kernel. */
int rl_prefer_env_winsize = 0;
+/* If this is non-zero, readline will set LINES and COLUMNS in the
+ environment when it handles SIGWINCH. */
+int rl_change_environment = 1;
+
/* **************************************************************** */
/* */
/* Terminal and Termcap */
/* */
/* **************************************************************** */
+#ifndef __MSDOS__
static char *term_buffer = (char *)NULL;
static char *term_string_buffer = (char *)NULL;
+#endif
static int tcap_initialized;
@@ -264,7 +271,10 @@ _rl_get_screen_size (tty, ignore_env)
if (_rl_screenwidth <= 0)
_rl_screenwidth = wc;
-#if !defined (__DJGPP__)
+#if defined (__DJGPP__)
+ if (_rl_screenwidth <= 0)
+ _rl_screenwidth = ScreenCols ();
+#else
if (_rl_screenwidth <= 0 && term_string_buffer)
_rl_screenwidth = tgetnum ("co");
#endif
@@ -280,7 +290,10 @@ _rl_get_screen_size (tty, ignore_env)
if (_rl_screenheight <= 0)
_rl_screenheight = wr;
-#if !defined (__DJGPP__)
+#if defined (__DJGPP__)
+ if (_rl_screenheight <= 0)
+ _rl_screenheight = ScreenRows ();
+#else
if (_rl_screenheight <= 0 && term_string_buffer)
_rl_screenheight = tgetnum ("li");
#endif
@@ -296,7 +309,8 @@ _rl_get_screen_size (tty, ignore_env)
/* If we're being compiled as part of bash, set the environment
variables $LINES and $COLUMNS to new values. Otherwise, just
do a pair of putenv () or setenv () calls. */
- sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
+ if (rl_change_environment)
+ sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
if (_rl_term_autowrap == 0)
_rl_screenwidth--;
@@ -346,7 +360,13 @@ rl_reset_screen_size ()
{
_rl_get_screen_size (fileno (rl_instream), 0);
}
-
+
+void
+_rl_sigwinch_resize_terminal ()
+{
+ _rl_get_screen_size (fileno (rl_instream), 1);
+}
+
void
rl_resize_terminal ()
{
@@ -432,6 +452,23 @@ _rl_init_terminal_io (terminal_name)
if (term == 0)
term = "dumb";
+#ifdef __MSDOS__
+ _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
+ _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
+ _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
+ _rl_term_mm = _rl_term_mo = (char *)NULL;
+ _rl_terminal_can_insert = term_has_meta = _rl_term_autowrap = 0;
+ _rl_term_cr = "\r";
+ _rl_term_clreol = _rl_term_clrpag = _rl_term_backspace = (char *)NULL;
+ _rl_term_goto = _rl_term_pc = _rl_term_ip = (char *)NULL;
+ _rl_term_ks = _rl_term_ke =_rl_term_vs = _rl_term_ve = (char *)NULL;
+ _rl_term_kh = _rl_term_kH = _rl_term_at7 = _rl_term_kI = (char *)NULL;
+#if defined(HACK_TERMCAP_MOTION)
+ _rl_term_forward_char = (char *)NULL;
+#endif
+
+ _rl_get_screen_size (tty, 0);
+#else /* !__MSDOS__ */
/* I've separated this out for later work on not calling tgetent at all
if the calling application has supplied a custom redisplay function,
(and possibly if the application has supplied a custom input function). */
@@ -531,6 +568,7 @@ _rl_init_terminal_io (terminal_name)
term_has_meta = tgetflag ("km") != 0;
if (term_has_meta == 0)
_rl_term_mm = _rl_term_mo = (char *)NULL;
+#endif /* !__MSDOS__ */
/* Attempt to find and bind the arrow keys. Do not override already
bound keys in an overzealous attempt, however. */
@@ -628,10 +666,12 @@ _rl_backspace (count)
{
register int i;
+#ifndef __MSDOS__
if (_rl_term_backspace)
for (i = 0; i < count; i++)
tputs (_rl_term_backspace, 1, _rl_output_character_function);
else
+#endif
for (i = 0; i < count; i++)
putc ('\b', _rl_out_stream);
return 0;
@@ -663,7 +703,11 @@ rl_ding ()
case VISIBLE_BELL:
if (_rl_visible_bell)
{
+#ifdef __DJGPP__
+ ScreenVisualBell ();
+#else
tputs (_rl_visible_bell, 1, _rl_output_character_function);
+#endif
break;
}
/* FALLTHROUGH */
@@ -683,12 +727,29 @@ rl_ding ()
/* */
/* **************************************************************** */
+static int enabled_meta = 0; /* flag indicating we enabled meta mode */
+
void
_rl_enable_meta_key ()
{
#if !defined (__DJGPP__)
if (term_has_meta && _rl_term_mm)
- tputs (_rl_term_mm, 1, _rl_output_character_function);
+ {
+ tputs (_rl_term_mm, 1, _rl_output_character_function);
+ enabled_meta = 1;
+ }
+#endif
+}
+
+void
+_rl_disable_meta_key ()
+{
+#if !defined (__DJGPP__)
+ if (term_has_meta && _rl_term_mo && enabled_meta)
+ {
+ tputs (_rl_term_mo, 1, _rl_output_character_function);
+ enabled_meta = 0;
+ }
#endif
}
@@ -718,6 +779,7 @@ void
_rl_set_cursor (im, force)
int im, force;
{
+#ifndef __MSDOS__
if (_rl_term_ve && _rl_term_vs)
{
if (force || im != rl_insert_mode)
@@ -728,4 +790,5 @@ _rl_set_cursor (im, force)
tputs (_rl_term_ve, 1, _rl_output_character_function);
}
}
+#endif
}
diff --git a/lib/readline/text.c b/lib/readline/text.c
index 536e31af..f29adf81 100644
--- a/lib/readline/text.c
+++ b/lib/readline/text.c
@@ -240,7 +240,7 @@ rl_replace_line (text, clear_undo)
this is the same as rl_end.
Any command that is called interactively receives two arguments.
- The first is a count: the numeric arg pased to this command.
+ The first is a count: the numeric arg passed to this command.
The second is the key which invoked this command.
*/
@@ -826,7 +826,7 @@ _rl_insert_char (count, c)
pending characters that are bound to rl_insert, and insert
them all. Don't do this if we're current reading input from
a macro. */
- if ((RL_ISSTATE (RL_STATE_MACROINPUT) == 0) && _rl_any_typein ())
+ if ((RL_ISSTATE (RL_STATE_MACROINPUT) == 0) && _rl_pushed_input_available ())
_rl_insert_typein (c);
else
{
@@ -908,6 +908,9 @@ _rl_insert_next (count)
if (c < 0)
return -1;
+ if (RL_ISSTATE (RL_STATE_MACRODEF))
+ _rl_add_macro_char (c);
+
#if defined (HANDLE_SIGNALS)
if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
_rl_restore_tty_signals ();
diff --git a/lib/readline/undo.c b/lib/readline/undo.c
index eb042b29..e9369b1a 100644
--- a/lib/readline/undo.c
+++ b/lib/readline/undo.c
@@ -1,7 +1,7 @@
/* readline.c -- a general facility for reading lines of input
with emacs style editing and completion. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -101,23 +101,33 @@ rl_add_undo (what, start, end, text)
rl_undo_list = temp;
}
-/* Free the existing undo list. */
+/* Free an UNDO_LIST */
void
-rl_free_undo_list ()
+_rl_free_undo_list (ul)
+ UNDO_LIST *ul;
{
- UNDO_LIST *release, *orig_list;
+ UNDO_LIST *release;
- orig_list = rl_undo_list;
- while (rl_undo_list)
+ while (ul)
{
- release = rl_undo_list;
- rl_undo_list = rl_undo_list->next;
+ release = ul;
+ ul = ul->next;
if (release->what == UNDO_DELETE)
xfree (release->text);
xfree (release);
}
+}
+
+/* Free the existing undo list. */
+void
+rl_free_undo_list ()
+{
+ UNDO_LIST *release, *orig_list;
+
+ orig_list = rl_undo_list;
+ _rl_free_undo_list (rl_undo_list);
rl_undo_list = (UNDO_LIST *)NULL;
replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL);
}
@@ -168,6 +178,7 @@ rl_do_undo ()
{
UNDO_LIST *release;
int waiting_for_begin, start, end;
+ HIST_ENTRY *cur, *temp;
#define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
@@ -222,6 +233,18 @@ rl_do_undo ()
release = rl_undo_list;
rl_undo_list = rl_undo_list->next;
+
+ /* If we are editing a history entry, make sure the change is replicated
+ in the history entry's line */
+ cur = current_history ();
+ if (cur && cur->data && (UNDO_LIST *)cur->data == release)
+ {
+ temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list);
+ xfree (temp->line);
+ FREE (temp->timestamp);
+ xfree (temp);
+ }
+
replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list);
xfree (release);
diff --git a/lib/readline/util.c b/lib/readline/util.c
index 6c68ad8d..fa3a6671 100644
--- a/lib/readline/util.c
+++ b/lib/readline/util.c
@@ -1,6 +1,6 @@
/* util.c -- readline utility functions */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -108,7 +108,11 @@ _rl_abort_internal ()
_rl_pop_executing_macro ();
rl_last_func = (rl_command_func_t *)NULL;
+#if defined (HAVE_POSIX_SIGSETJMP)
+ siglongjmp (_rl_top_level, 1);
+#else
longjmp (_rl_top_level, 1);
+#endif
return (0);
}
@@ -369,11 +373,13 @@ _rl_strpbrk (string1, string2)
doesn't matter (strncasecmp). */
int
_rl_strnicmp (string1, string2, count)
- char *string1, *string2;
+ const char *string1;
+ const char *string2;
int count;
{
- register char *s1, *s2;
- int d;
+ register const char *s1;
+ register const char *s2;
+ register int d;
if (count <= 0 || (string1 == string2))
return 0;
@@ -389,7 +395,7 @@ _rl_strnicmp (string1, string2, count)
break;
s2++;
}
- while (--count != 0)
+ while (--count != 0);
return (0);
}
@@ -397,10 +403,12 @@ _rl_strnicmp (string1, string2, count)
/* strcmp (), but caseless (strcasecmp). */
int
_rl_stricmp (string1, string2)
- char *string1, *string2;
+ const char *string1;
+ const char *string2;
{
- register char *s1, *s2;
- int d;
+ register const char *s1;
+ register const char *s2;
+ register int d;
s1 = string1;
s2 = string2;
@@ -507,7 +515,7 @@ _rl_tropen ()
if (_rl_tracefp)
fclose (_rl_tracefp);
- sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid());
+ sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long)getpid());
unlink(fnbuf);
_rl_tracefp = fopen (fnbuf, "w+");
return _rl_tracefp != 0;
@@ -523,4 +531,61 @@ _rl_trclose ()
return r;
}
+void
+_rl_settracefp (fp)
+ FILE *fp;
+{
+ _rl_tracefp = fp;
+}
+#endif
+
+
+#if HAVE_DECL_AUDIT_USER_TTY && defined (ENABLE_TTY_AUDIT_SUPPORT)
+#include <sys/socket.h>
+#include <linux/audit.h>
+#include <linux/netlink.h>
+
+/* Report STRING to the audit system. */
+void
+_rl_audit_tty (string)
+ char *string;
+{
+ struct sockaddr_nl addr;
+ struct msghdr msg;
+ struct nlmsghdr nlm;
+ struct iovec iov[2];
+ size_t size;
+ int fd;
+
+ fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
+ if (fd < 0)
+ return;
+ size = strlen (string) + 1;
+
+ nlm.nlmsg_len = NLMSG_LENGTH (size);
+ nlm.nlmsg_type = AUDIT_USER_TTY;
+ nlm.nlmsg_flags = NLM_F_REQUEST;
+ nlm.nlmsg_seq = 0;
+ nlm.nlmsg_pid = 0;
+
+ iov[0].iov_base = &nlm;
+ iov[0].iov_len = sizeof (nlm);
+ iov[1].iov_base = string;
+ iov[1].iov_len = size;
+
+ addr.nl_family = AF_NETLINK;
+ addr.nl_pid = 0;
+ addr.nl_groups = 0;
+
+ msg.msg_name = &addr;
+ msg.msg_namelen = sizeof (addr);
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 2;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ msg.msg_flags = 0;
+
+ (void)sendmsg (fd, &msg, 0);
+ close (fd);
+}
#endif
diff --git a/lib/readline/vi_keymap.c b/lib/readline/vi_keymap.c
index ba5a27ba..60c925d9 100644
--- a/lib/readline/vi_keymap.c
+++ b/lib/readline/vi_keymap.c
@@ -309,7 +309,6 @@ KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
#endif /* KEYMAP_SIZE > 128 */
};
-
KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
/* The regular control keys come first. */
{ ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
diff --git a/lib/readline/vi_mode.c b/lib/readline/vi_mode.c
index 4408053f..0864192e 100644
--- a/lib/readline/vi_mode.c
+++ b/lib/readline/vi_mode.c
@@ -1,7 +1,7 @@
/* vi_mode.c -- A vi emulation mode for Bash.
Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 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.
@@ -108,9 +108,13 @@ static const char * const vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
/* Arrays for the saved marks. */
static int vi_mark_chars['z' - 'a' + 1];
+static void _rl_vi_replace_insert PARAMS((int));
+static void _rl_vi_save_replace PARAMS((void));
static void _rl_vi_stuff_insert PARAMS((int));
static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
+static void vi_save_insert_buffer PARAMS ((int, int));
+
static void _rl_vi_backup PARAMS((void));
static int _rl_vi_arg_dispatch PARAMS((int));
@@ -189,6 +193,22 @@ _rl_vi_textmod_command (c)
}
static void
+_rl_vi_replace_insert (count)
+ int count;
+{
+ int nchars;
+
+ nchars = strlen (vi_insert_buffer);
+
+ rl_begin_undo_group ();
+ while (count--)
+ /* nchars-1 to compensate for _rl_replace_text using `end+1' in call
+ to rl_delete_text */
+ _rl_replace_text (vi_insert_buffer, rl_point, rl_point+nchars-1);
+ rl_end_undo_group ();
+}
+
+static void
_rl_vi_stuff_insert (count)
int count;
{
@@ -207,7 +227,7 @@ rl_vi_redo (count, c)
{
int r;
- if (!rl_explicit_arg)
+ if (rl_explicit_arg == 0)
{
rl_numeric_arg = _rl_vi_last_repeat;
rl_arg_sign = _rl_vi_last_arg_sign;
@@ -224,6 +244,13 @@ rl_vi_redo (count, c)
if (rl_point > 0)
_rl_vi_backup ();
}
+ else if (_rl_vi_last_command == 'R' && vi_insert_buffer && *vi_insert_buffer)
+ {
+ _rl_vi_replace_insert (count);
+ /* And back up point over the last character inserted. */
+ 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)
@@ -679,6 +706,8 @@ rl_vi_insertion_mode (count, key)
{
_rl_keymap = vi_insertion_keymap;
_rl_vi_last_key_before_insert = key;
+ if (_rl_show_mode_in_prompt)
+ _rl_reset_prompt ();
return (0);
}
@@ -691,6 +720,43 @@ rl_vi_insert_mode (count, key)
}
static void
+vi_save_insert_buffer (start, len)
+ int start, len;
+{
+ /* Same code as _rl_vi_save_insert below */
+ if (len >= vi_insert_buffer_size)
+ {
+ vi_insert_buffer_size += (len + 32) - (len % 32);
+ vi_insert_buffer = (char *)xrealloc (vi_insert_buffer, vi_insert_buffer_size);
+ }
+ strncpy (vi_insert_buffer, rl_line_buffer + start, len - 1);
+ vi_insert_buffer[len-1] = '\0';
+}
+
+static void
+_rl_vi_save_replace ()
+{
+ int len, start, end;
+ UNDO_LIST *up;
+
+ up = rl_undo_list;
+ if (up == 0 || up->what != UNDO_END || vi_replace_count <= 0)
+ {
+ if (vi_insert_buffer_size >= 1)
+ vi_insert_buffer[0] = '\0';
+ return;
+ }
+ /* Let's try it the quick and easy way for now. This should essentially
+ accommodate every UNDO_INSERT and save the inserted text to
+ vi_insert_buffer */
+ end = rl_point;
+ start = end - vi_replace_count + 1;
+ len = vi_replace_count + 1;
+
+ vi_save_insert_buffer (start, len);
+}
+
+static void
_rl_vi_save_insert (up)
UNDO_LIST *up;
{
@@ -706,13 +772,8 @@ _rl_vi_save_insert (up)
start = up->start;
end = up->end;
len = end - start + 1;
- if (len >= vi_insert_buffer_size)
- {
- vi_insert_buffer_size += (len + 32) - (len % 32);
- vi_insert_buffer = (char *)xrealloc (vi_insert_buffer, vi_insert_buffer_size);
- }
- strncpy (vi_insert_buffer, rl_line_buffer + start, len - 1);
- vi_insert_buffer[len-1] = '\0';
+
+ vi_save_insert_buffer (start, len);
}
void
@@ -728,7 +789,10 @@ _rl_vi_done_inserting ()
on absolute indices into the line which may change (though they
probably will not). */
_rl_vi_doing_insert = 0;
- _rl_vi_save_insert (rl_undo_list->next);
+ if (_rl_vi_last_key_before_insert == 'R')
+ _rl_vi_save_replace (); /* Half the battle */
+ else
+ _rl_vi_save_insert (rl_undo_list->next);
vi_continued_command = 1;
}
else
@@ -762,6 +826,9 @@ rl_vi_movement_mode (count, key)
if (RL_ISSTATE (RL_STATE_VICMDONCE) == 0)
rl_free_undo_list ();
+ if (_rl_show_mode_in_prompt)
+ _rl_reset_prompt ();
+
RL_SETSTATE (RL_STATE_VICMDONCE);
return (0);
}
@@ -1940,14 +2007,20 @@ rl_vi_replace (count, key)
vi_replace_count = 0;
- if (!vi_replace_map)
+ if (vi_replace_map == 0)
{
vi_replace_map = rl_make_bare_keymap ();
+ for (i = 0; i < ' '; i++)
+ if (vi_insertion_keymap[i].type == ISFUNC)
+ vi_replace_map[i].function = vi_insertion_keymap[i].function;
+
for (i = ' '; i < KEYMAP_SIZE; i++)
vi_replace_map[i].function = rl_vi_overstrike;
vi_replace_map[RUBOUT].function = rl_vi_overstrike_delete;
+
+ /* Make sure these are what we want. */
vi_replace_map[ESC].function = rl_vi_movement_mode;
vi_replace_map[RETURN].function = rl_newline;
vi_replace_map[NEWLINE].function = rl_newline;
@@ -1960,7 +2033,12 @@ rl_vi_replace (count, key)
vi_replace_map[CTRL ('H')].function = rl_vi_overstrike_delete;
}
+
+ rl_vi_start_inserting (key, 1, rl_arg_sign);
+
+ _rl_vi_last_key_before_insert = key;
_rl_keymap = vi_replace_map;
+
return (0);
}
diff --git a/lib/sh/Makefile.in b/lib/sh/Makefile.in
index d97cd99b..36a83052 100644
--- a/lib/sh/Makefile.in
+++ b/lib/sh/Makefile.in
@@ -92,7 +92,7 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \
mktime.c strftime.c mbschr.c zcatfd.c zmapfd.c winsize.c eaccess.c \
wcsdup.c fpurge.c zgetline.c mbscmp.c uconvert.c ufuncs.c \
casemod.c dprintf.c input_avail.c mbscasecmp.c fnxform.c \
- strchrnul.c unicode.c wcswidth.c shmbchar.c
+ strchrnul.c unicode.c wcswidth.c wcsnwidth.c shmbchar.c strdup.c
# The header files for this library.
HSOURCES =
@@ -106,7 +106,8 @@ OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.o \
strtrans.o snprintf.o mailstat.o fmtulong.o \
fmtullong.o fmtumax.o zcatfd.o zmapfd.o winsize.o wcsdup.o \
fpurge.o zgetline.o mbscmp.o uconvert.o ufuncs.o casemod.o \
- input_avail.o mbscasecmp.o fnxform.o unicode.o shmbchar.o ${LIBOBJS}
+ input_avail.o mbscasecmp.o fnxform.o unicode.o shmbchar.o \
+ wcsnwidth.o ${LIBOBJS}
SUPPORT = Makefile
@@ -197,6 +198,7 @@ uconvert.o: uconvert.c
ufuncs.o: ufuncs.c
vprint.o: vprint.c
wcsdup.o: wcsdup.c
+wcsnwidth.o: wcsnwidth.c
wcswidth.o: wcswidth.c
mbschr.o: mbschr.c
zcatfd.o: zcatfd.c
@@ -269,6 +271,7 @@ uconvert.o: ${BUILD_DIR}/config.h
ufuncs.o: ${BUILD_DIR}/config.h
vprint.o: ${BUILD_DIR}/config.h
wcsdup.o: ${BUILD_DIR}/config.h
+wcsnwidth.o: ${BUILD_DIR}/config.h
wcswidth.o: ${BUILD_DIR}/config.h
mbschr.o: ${BUILD_DIR}/config.h
zcatfd.o: ${BUILD_DIR}/config.h
@@ -291,7 +294,7 @@ getenv.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
getenv.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
getenv.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
getenv.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
-getenv.o: ${BUILD_DIR}/version.h
+#getenv.o: ${BUILD_DIR}/version.h
inet_aton.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
inet_aton.o: ${BASHINCDIR}/stdc.h
@@ -303,7 +306,8 @@ itos.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdir
itos.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
itos.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
itos.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-itos.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+itos.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#itos.o: ${BUILD_DIR}/version.h
makepath.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
makepath.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
@@ -312,7 +316,8 @@ makepath.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${to
makepath.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
makepath.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
makepath.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-makepath.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+makepath.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#makepath.o: ${BUILD_DIR}/version.h
netconn.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
netconn.o: ${topdir}/bashtypes.h
@@ -324,8 +329,9 @@ netopen.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${top
netopen.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
netopen.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
netopen.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-netopen.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+netopen.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
netopen.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h
+#netopen.o: ${BUILD_DIR}/version.h
oslib.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
oslib.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
@@ -334,9 +340,10 @@ oslib.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${topdi
oslib.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
oslib.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
oslib.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-oslib.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+oslib.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
oslib.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
oslib.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+#oslib.o: ${BUILD_DIR}/version.h
pathcanon.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
pathcanon.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
@@ -345,9 +352,10 @@ pathcanon.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${t
pathcanon.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
pathcanon.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
pathcanon.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-pathcanon.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathcanon.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
pathcanon.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
pathcanon.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+#pathcanon.o: ${BUILD_DIR}/version.h
pathphys.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/maxpath.h
pathphys.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
@@ -356,9 +364,10 @@ pathphys.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${to
pathphys.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
pathphys.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
pathphys.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-pathphys.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+pathphys.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
pathphys.o: ${BASHINCDIR}/posixstat.h ${BASHINCDIR}/filecntl.h
pathphys.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
+#pathphys.o: ${BUILD_DIR}/version.h
rename.o: ${topdir}/bashtypes.h ${BASHINCDIR}/stdc.h
rename.o: ${BASHINCDIR}/posixstat.h
@@ -377,7 +386,8 @@ eaccess.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${top
eaccess.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
eaccess.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
eaccess.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-eaccess.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+eaccess.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#eaccess.o: ${BUILD_DIR}/version.h
shquote.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
shquote.o: ${BASHINCDIR}/ansi_stdlib.h ${topdir}/xmalloc.h
@@ -403,7 +413,8 @@ strerror.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${to
strerror.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
strerror.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
strerror.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+strerror.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#strerror.o: ${BUILD_DIR}/version.h
strcasestr.o: ${BASHINCDIR}/stdc.h ${topdir}/bashansi.h
strcasestr.o: ${BASHINCDIR}/ansi_stdlib.h ${BASHINCDIR}/chartypes.h
@@ -415,7 +426,8 @@ stringlist.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${
stringlist.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
stringlist.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
stringlist.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-stringlist.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+stringlist.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#stringlist.o: ${BUILD_DIR}/version.h
stringvec.o: ${topdir}/bashansi.h ${BASHINCDIR}/chartypes.h
stringvec.o: ${topdir}/shell.h ${topdir}/syntax.h ${topdir}/bashjmp.h ${BASHINCDIR}/posixjmp.h
@@ -424,7 +436,8 @@ stringvec.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${t
stringvec.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
stringvec.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
stringvec.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+stringvec.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#stringvec.o: ${BUILD_DIR}/version.h
strnlen.o: ${BASHINCDIR}/stdc.h
@@ -461,7 +474,8 @@ strtrans.o: ${topdir}/general.h ${topdir}/bashtypes.h ${topdir}/variables.h ${to
strtrans.o: ${topdir}/array.h ${topdir}/hashlib.h ${topdir}/quit.h
strtrans.o: ${topdir}/unwind_prot.h ${topdir}/dispose_cmd.h
strtrans.o: ${topdir}/make_cmd.h ${topdir}/subst.h ${topdir}/sig.h
-strtrans.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h ${BUILD_DIR}/version.h
+strtrans.o: ${BUILD_DIR}/pathnames.h ${topdir}/externs.h
+#strtrans.o: ${BUILD_DIR}/version.h
times.o: ${BASHINCDIR}/systimes.h
times.o: ${BASHINCDIR}/posixtime.h
@@ -510,6 +524,9 @@ wcsdup.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
wcsdup.o: ${BASHINCDIR}/stdc.h
wcsdup.o: ${topdir}/xmalloc.h
+wcsnwidth.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
+wcsnwidth.o: ${BASHINCDIR}/stdc.h
+
wcswidth.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h
wcswidth.o: ${BASHINCDIR}/stdc.h
diff --git a/lib/sh/casemod.c b/lib/sh/casemod.c
index 3127d8c4..bbcffa6f 100644
--- a/lib/sh/casemod.c
+++ b/lib/sh/casemod.c
@@ -36,8 +36,10 @@
#include <ctype.h>
#include <xmalloc.h>
+#include <shmbchar.h>
#include <shmbutil.h>
#include <chartypes.h>
+#include <typemax.h>
#include <glob/strmatch.h>
@@ -67,6 +69,10 @@
extern char *substring __P((char *, int, int));
+#ifndef UCHAR_MAX
+# define UCHAR_MAX TYPE_MAXIMUM(unsigned char)
+#endif
+
#if defined (HANDLE_MULTIBYTE)
static wchar_t
cval (s, i)
@@ -78,7 +84,7 @@ cval (s, i)
int l;
mbstate_t mps;
- if (MB_CUR_MAX == 1)
+ if (MB_CUR_MAX == 1 || is_basic (s[i]))
return ((wchar_t)s[i]);
l = strlen (s);
if (i >= (l - 1))
@@ -140,8 +146,10 @@ sh_modcase (string, pat, flags)
if (iswalnum (wc) == 0)
{
inword = 0;
+#if 0
ADVANCE_CHAR (ret, end, start);
continue;
+#endif
}
if (pat)
@@ -202,8 +210,11 @@ sh_modcase (string, pat, flags)
else
nop = flags;
- if (MB_CUR_MAX == 1 || isascii (wc))
+ /* Need to check UCHAR_MAX since wc may have already been converted to a
+ wide character by cval() */
+ if (MB_CUR_MAX == 1 || (wc <= UCHAR_MAX && is_basic ((int)wc)))
{
+singlebyte:
switch (nop)
{
default:
@@ -220,15 +231,18 @@ sh_modcase (string, pat, flags)
{
m = mbrtowc (&wc, string + start, end - start, &state);
if (MB_INVALIDCH (m))
- wc = (wchar_t)string[start];
+ {
+ wc = (unsigned char)string[start];
+ goto singlebyte;
+ }
else if (MB_NULLWCH (m))
wc = L'\0';
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_UPPER: nwc = _to_wupper (wc); break;
+ case CASE_LOWER: nwc = _to_wlower (wc); break;
case CASE_TOGGLEALL:
case CASE_TOGGLE: nwc = TOGGLE (wc); break;
}
diff --git a/lib/sh/clktck.c b/lib/sh/clktck.c
index 096ce06e..8b9b5b32 100644
--- a/lib/sh/clktck.c
+++ b/lib/sh/clktck.c
@@ -21,7 +21,9 @@
#include <config.h>
#include <bashtypes.h>
-#include <sys/param.h>
+#if defined (HAVE_SYS_PARAM_H)
+# include <sys/param.h>
+#endif
#if defined (HAVE_UNISTD_H)
# include <unistd.h>
diff --git a/lib/sh/eaccess.c b/lib/sh/eaccess.c
index 534c526b..8132a9ab 100644
--- a/lib/sh/eaccess.c
+++ b/lib/sh/eaccess.c
@@ -205,14 +205,16 @@ sh_eaccess (path, mode)
if (path_is_devfd (path))
return (sh_stataccess (path, mode));
-#if defined (HAVE_FACCESSAT) && defined (AT_EACCESS)
- return (faccessat (AT_FDCWD, path, mode, AT_EACCESS));
-#elif defined (HAVE_EACCESS) /* FreeBSD */
+#if (defined (HAVE_FACCESSAT) && defined (AT_EACCESS)) || defined (HAVE_EACCESS)
+# if defined (HAVE_FACCESSAT) && defined (AT_EACCESS)
+ ret = faccessat (AT_FDCWD, path, mode, AT_EACCESS);
+# else /* HAVE_EACCESS */ /* FreeBSD */
ret = eaccess (path, mode); /* XXX -- not always correct for X_OK */
-# if defined (__FreeBSD__)
+# endif /* HAVE_EACCESS */
+# if defined (__FreeBSD__) || defined (SOLARIS)
if (ret == 0 && current_user.euid == 0 && mode == X_OK)
return (sh_stataccess (path, mode));
-# endif
+# endif /* __FreeBSD__ || SOLARIS */
return ret;
#elif defined (EFF_ONLY_OK) /* SVR4(?), SVR4.2 */
return access (path, mode|EFF_ONLY_OK);
@@ -233,7 +235,6 @@ sh_eaccess (path, mode)
return (sh_stataccess (path, mode));
#endif
return ret;
-
}
return (sh_stataccess (path, mode));
diff --git a/lib/sh/fmtulong.c b/lib/sh/fmtulong.c
index 214b1466..0ccc22b4 100644
--- a/lib/sh/fmtulong.c
+++ b/lib/sh/fmtulong.c
@@ -1,6 +1,6 @@
/* fmtulong.c -- Convert unsigned long int to string. */
-/* Copyright (C) 1998-2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -98,8 +98,9 @@ fmtulong (ui, base, buf, len, flags)
if (base < 2 || base > 64)
{
#if 1
+ /* XXX - truncation possible with long translation */
strncpy (buf, _("invalid base"), len - 1);
- buf[len] = '\0';
+ buf[len-1] = '\0';
errno = EINVAL;
return (p = buf);
#else
diff --git a/lib/sh/getcwd.c b/lib/sh/getcwd.c
index 07eb8171..d7bd241b 100644
--- a/lib/sh/getcwd.c
+++ b/lib/sh/getcwd.c
@@ -48,7 +48,7 @@
#include <bashansi.h>
-#if defined (BROKEN_DIRENT_D_INO)
+#if !defined (D_FILENO_AVAILABLE)
# include "command.h"
# include "general.h"
# include "externs.h"
@@ -71,7 +71,7 @@ extern int errno;
/* 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)
+#if !defined (D_FILENO_AVAILABLE)
static int
_path_checkino (dotp, name, thisino)
char *dotp;
@@ -206,7 +206,7 @@ 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 defined (D_FILENO_AVAILABLE)
if (mount_point || d->d_fileno == thisino)
#else
if (mount_point || _path_checkino (dotp, d->d_name, thisino))
diff --git a/lib/sh/inet_aton.c b/lib/sh/inet_aton.c
index 4b48456f..e377178e 100644
--- a/lib/sh/inet_aton.c
+++ b/lib/sh/inet_aton.c
@@ -67,7 +67,9 @@ static char rcsid[] = "$Id: inet_addr.c,v 1.5 1996/08/14 03:48:37 drepper Exp $"
#if !defined (HAVE_INET_ATON) && defined (HAVE_NETWORK) && defined (HAVE_NETINET_IN_H) && defined (HAVE_ARPA_INET_H)
#include <sys/types.h>
+#if defined (HAVE_SYS_PARAM_H)
#include <sys/param.h>
+#endif
#include <netinet/in.h>
#include <arpa/inet.h>
diff --git a/lib/sh/itos.c b/lib/sh/itos.c
index 12e9398d..cd36ef33 100644
--- a/lib/sh/itos.c
+++ b/lib/sh/itos.c
@@ -50,6 +50,18 @@ itos (i)
return (savestring (p));
}
+/* Integer to string conversion. This conses the string using strdup;
+ caller should free it and be prepared to deal with NULL return. */
+char *
+mitos (i)
+ intmax_t i;
+{
+ char *p, lbuf[INT_STRLEN_BOUND(intmax_t) + 1];
+
+ p = fmtumax (i, 10, lbuf, sizeof(lbuf), 0);
+ return (strdup (p));
+}
+
char *
uinttostr (i, buf, len)
uintmax_t i;
diff --git a/lib/sh/mailstat.c b/lib/sh/mailstat.c
index 2b2ac0ea..79b431ae 100644
--- a/lib/sh/mailstat.c
+++ b/lib/sh/mailstat.c
@@ -28,7 +28,7 @@
#include <posixdir.h>
#include <bashansi.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
diff --git a/lib/sh/makepath.c b/lib/sh/makepath.c
index 43dbab20..ef01718b 100644
--- a/lib/sh/makepath.c
+++ b/lib/sh/makepath.c
@@ -94,7 +94,7 @@ sh_makepath (path, dir, flags)
MAKEDOT();
}
else if ((flags & MP_IGNDOT) && path[0] == '.' && (path[1] == '\0' ||
- path[1] == '/' && path[2] == '\0'))
+ (path[1] == '/' && path[2] == '\0')))
{
xpath = nullpath;
pathlen = 0;
diff --git a/lib/sh/mbschr.c b/lib/sh/mbschr.c
index 5143d64e..7730e46e 100644
--- a/lib/sh/mbschr.c
+++ b/lib/sh/mbschr.c
@@ -27,6 +27,8 @@
#include "bashansi.h"
#include "shmbutil.h"
+extern int locale_mb_cur_max;
+
#undef mbschr
/* In some locales, the non-first byte of some multibyte characters have
@@ -51,7 +53,7 @@ mbschr (s, c)
GBK, GB18030, SHIFT_JIS, and JOHAB. They exhibit the problem only
when c >= 0x30. We can therefore use the faster bytewise search if
c <= 0x30. */
- if ((unsigned char)c >= '0' && MB_CUR_MAX > 1)
+ if ((unsigned char)c >= '0' && locale_mb_cur_max > 1)
{
pos = (char *)s;
memset (&state, '\0', sizeof(mbstate_t));
@@ -59,9 +61,14 @@ mbschr (s, c)
while (strlength > 0)
{
- mblength = mbrlen (pos, strlength, &state);
- if (mblength == (size_t)-2 || mblength == (size_t)-1 || mblength == (size_t)0)
+ if (is_basic (*pos))
mblength = 1;
+ else
+ {
+ mblength = mbrlen (pos, strlength, &state);
+ if (mblength == (size_t)-2 || mblength == (size_t)-1 || mblength == (size_t)0)
+ mblength = 1;
+ }
if (mblength == 1 && c == (unsigned char)*pos)
return pos;
diff --git a/lib/sh/mktime.c b/lib/sh/mktime.c
index 72574008..7888ee15 100644
--- a/lib/sh/mktime.c
+++ b/lib/sh/mktime.c
@@ -41,8 +41,6 @@
#ifndef VMS
#include <sys/types.h> /* Some systems define `time_t' here. */
-#else
-#include <stddef.h>
#endif
#include <time.h>
diff --git a/lib/sh/oslib.c b/lib/sh/oslib.c
index b3470d16..65eb99d9 100644
--- a/lib/sh/oslib.c
+++ b/lib/sh/oslib.c
@@ -21,7 +21,7 @@
#include <config.h>
#include <bashtypes.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
@@ -124,7 +124,7 @@ dup2 (fd1, fd2)
/*
* Return the total number of available file descriptors.
*
- * On some systems, like 4.2BSD and its descendents, there is a system call
+ * On some systems, like 4.2BSD and its descendants, there is a system call
* that returns the size of the descriptor table: getdtablesize(). There are
* lots of ways to emulate this on non-BSD systems.
*
diff --git a/lib/sh/pathcanon.c b/lib/sh/pathcanon.c
index 98e41ced..f19bd55f 100644
--- a/lib/sh/pathcanon.c
+++ b/lib/sh/pathcanon.c
@@ -21,7 +21,7 @@
#include <config.h>
#include <bashtypes.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
#include <posixstat.h>
diff --git a/lib/sh/pathphys.c b/lib/sh/pathphys.c
index 15fcd250..26016b76 100644
--- a/lib/sh/pathphys.c
+++ b/lib/sh/pathphys.c
@@ -21,7 +21,7 @@
#include <config.h>
#include <bashtypes.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
#include <posixstat.h>
@@ -269,7 +269,7 @@ sh_realpath (pathname, resolved)
wd = get_working_directory ("sh_realpath");
if (wd == 0)
return ((char *)NULL);
- tdir = sh_makepath ((char *)pathname, wd, 0);
+ tdir = sh_makepath (wd, (char *)pathname, 0);
free (wd);
}
else
diff --git a/lib/sh/shmbchar.c b/lib/sh/shmbchar.c
index c5badc14..042c9f14 100644
--- a/lib/sh/shmbchar.c
+++ b/lib/sh/shmbchar.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009, 2010, 2012 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
@@ -89,4 +89,25 @@ mbsmbchar (s)
}
return 0;
}
+
+int
+sh_mbsnlen(src, srclen, maxlen)
+ const char *src;
+ size_t srclen;
+ int maxlen;
+{
+ int count;
+ int sind;
+ DECLARE_MBSTATE;
+
+ for (sind = count = 0; src[sind]; )
+ {
+ count++; /* number of multibyte characters */
+ ADVANCE_CHAR (src, srclen, sind);
+ if (sind > maxlen)
+ break;
+ }
+
+ return count;
+}
#endif
diff --git a/lib/sh/shquote.c b/lib/sh/shquote.c
index a1e9146b..31cce1c1 100644
--- a/lib/sh/shquote.c
+++ b/lib/sh/shquote.c
@@ -32,6 +32,50 @@
#include "syntax.h"
#include <xmalloc.h>
+/* Default set of characters that should be backslash-quoted in strings */
+static const char bstab[256] =
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 0, 0, 0, 0, 0, /* TAB, NL */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 1, 1, 1, 0, 1, 0, 1, 1, /* SPACE, !, DQUOTE, DOL, AMP, SQUOTE */
+ 1, 1, 1, 0, 1, 0, 0, 0, /* LPAR, RPAR, STAR, COMMA */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 0, 1, 1, /* SEMI, LESSTHAN, GREATERTHAN, QUEST */
+
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 1, 1, 0, /* LBRACK, BS, RBRACK, CARAT */
+
+ 1, 0, 0, 0, 0, 0, 0, 0, /* BACKQ */
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 1, 0, 0, /* LBRACE, BAR, RBRACE */
+
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+
/* **************************************************************** */
/* */
/* Functions for quoting strings to be re-read as input */
@@ -50,6 +94,15 @@ sh_single_quote (string)
result = (char *)xmalloc (3 + (4 * strlen (string)));
r = result;
+
+ if (string[0] == '\'' && string[1] == 0)
+ {
+ *r++ = '\\';
+ *r++ = '\'';
+ *r++ = 0;
+ return result;
+ }
+
*r++ = '\'';
for (s = string; s && (c = *s); s++)
@@ -163,53 +216,33 @@ sh_un_double_quote (string)
way to protect the CTLESC and CTLNUL characters. As I write this,
the current callers will never cause the string to be expanded without
going through the shell parser, which will protect the internal
- quoting characters. */
+ quoting characters. TABLE, if set, points to a map of the ascii code
+ set with char needing to be backslash-quoted if table[char]==1. FLAGS,
+ if 1, causes tildes to be quoted as well. */
+
char *
-sh_backslash_quote (string)
+sh_backslash_quote (string, table, flags)
char *string;
+ char *table;
+ int flags;
{
int c;
- char *result, *r, *s;
+ char *result, *r, *s, *backslash_table;
result = (char *)xmalloc (2 * strlen (string) + 1);
+ backslash_table = table ? table : (char *)bstab;
for (r = result, s = string; s && (c = *s); s++)
{
- switch (c)
- {
- case ' ': case '\t': case '\n': /* IFS white space */
- case '\'': case '"': case '\\': /* quoting chars */
- case '|': case '&': case ';': /* shell metacharacters */
- case '(': case ')': case '<': case '>':
- case '!': case '{': case '}': /* reserved words */
- case '*': case '[': case '?': case ']': /* globbing chars */
- case '^':
- case '$': case '`': /* expansion chars */
- case ',': /* brace expansion */
- *r++ = '\\';
- *r++ = c;
- break;
-#if 0
- case '~': /* tilde expansion */
- if (s == string || s[-1] == '=' || s[-1] == ':')
- *r++ = '\\';
- *r++ = c;
- break;
-
- case CTLESC: case CTLNUL: /* internal quoting characters */
- *r++ = CTLESC; /* could be '\\'? */
- *r++ = c;
- break;
-#endif
-
- case '#': /* comment char */
- if (s == string)
- *r++ = '\\';
- /* FALLTHROUGH */
- default:
- *r++ = c;
- break;
- }
+ if (backslash_table[c] == 1)
+ *r++ = '\\';
+ else if (c == '#' && s == string) /* comment char */
+ *r++ = '\\';
+ else if ((flags&1) && c == '~' && (s == string || s[-1] == ':' || s[-1] == '='))
+ /* Tildes are special at the start of a word or after a `:' or `='
+ (technically unquoted, but it doesn't make a difference in practice) */
+ *r++ = '\\';
+ *r++ = c;
}
*r = '\0';
diff --git a/lib/sh/snprintf.c b/lib/sh/snprintf.c
index d46b2d9c..87ca2173 100644
--- a/lib/sh/snprintf.c
+++ b/lib/sh/snprintf.c
@@ -9,7 +9,7 @@
Unix snprintf implementation.
derived from inetutils/libinetutils/snprintf.c Version 1.1
- Copyright (C) 2001,2006,2010 Free Software Foundation, Inc.
+ Copyright (C) 2001,2006,2010,2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -26,7 +26,7 @@
You should have received a copy of the GNU General Public License
along with Bash. If not, see <http://www.gnu.org/licenses/>.
- Revision History:
+ Original (pre-bash) Revision History:
1.1:
* added changes from Miles Bader
@@ -50,7 +50,6 @@
* Currently doesn't handle (and bash/readline doesn't use):
* * *M$ width, precision specifications
* * %N$ numbered argument conversions
- * * inf, nan floating values imperfect (if isinf(), isnan() not in libc)
* * support for `F' is imperfect with ldfallback(), since underlying
* printf may not handle it -- should ideally have another autoconf test
*/
@@ -303,11 +302,30 @@ static void dfallback __P((struct DATA *, const char *, const char *, double));
static char *groupnum __P((char *));
-#ifndef HAVE_ISINF_IN_LIBC
-static int isinf __P((double));
+#if defined (HAVE_LONG_DOUBLE)
+# define LONGDOUBLE long double
+#else
+# define LONGDOUBLE double
+#endif
+
+#ifndef isnan
+ static inline int isnan_f (float x) { return x != x; }
+ static inline int isnan_d (double x) { return x != x; }
+ static inline int isnan_ld (LONGDOUBLE x) { return x != x; }
+ # define isnan(x) \
+ (sizeof (x) == sizeof (LONGDOUBLE) ? isnan_ld (x) \
+ : sizeof (x) == sizeof (double) ? isnan_d (x) \
+ : isnan_f (x))
#endif
-#ifndef HAVE_ISNAN_IN_LIBC
-static int isnan __P((double));
+
+#ifndef isinf
+ static inline int isinf_f (float x) { return !isnan (x) && isnan (x - x); }
+ static inline int isinf_d (double x) { return !isnan (x) && isnan (x - x); }
+ static inline int isinf_ld (LONGDOUBLE x) { return !isnan (x) && isnan (x - x); }
+ # define isinf(x) \
+ (sizeof (x) == sizeof (LONGDOUBLE) ? isinf_ld (x) \
+ : sizeof (x) == sizeof (double) ? isinf_d (x) \
+ : isinf_f (x))
#endif
#ifdef DRIVER
@@ -371,7 +389,7 @@ static void xfree __P((void *));
while (0)
#define PUT_PLUS(d, p, zero) \
- if ((d) > zero && (p)->justify == RIGHT) \
+ if (((p)->flags & PF_PLUS) && (d) > zero) \
PUT_CHAR('+', p)
#define PUT_SPACE(d, p, zero) \
@@ -431,9 +449,9 @@ static void xfree __P((void *));
if (lv) \
{ \
if (lv->decimal_point && lv->decimal_point[0]) \
- (d) = lv->decimal_point[0]; \
+ (d) = lv->decimal_point[0]; \
if (lv->thousands_sep && lv->thousands_sep[0]) \
- (t) = lv->thousands_sep[0]; \
+ (t) = lv->thousands_sep[0]; \
(g) = lv->grouping ? lv->grouping : ""; \
if (*(g) == '\0' || *(g) == CHAR_MAX || (t) == -1) (g) = 0; \
} \
@@ -574,7 +592,7 @@ integral(real, ip)
/*
* return an ascii representation of the integral part of the number
* and set fract to be an ascii representation of the fraction part
- * the container for the fraction and the integral part or staticly
+ * the container for the fraction and the integral part or statically
* declare with fix size
*/
static char *
@@ -586,10 +604,9 @@ numtoa(number, base, precision, fract)
register int i, j;
double ip, fp; /* integer and fraction part */
double fraction;
- int digits = MAX_INT - 1;
+ int digits, sign;
static char integral_part[MAX_INT];
static char fraction_part[MAX_FRACT];
- double sign;
int ch;
/* taking care of the obvious case: 0.0 */
@@ -607,8 +624,12 @@ numtoa(number, base, precision, fract)
return integral_part;
}
+ /* -0 is tricky */
+ sign = (number == -0.) ? '-' : ((number < 0.) ? '-' : '+');
+ digits = MAX_INT - 1;
+
/* for negative numbers */
- if ((sign = number) < 0.)
+ if (sign == '-')
{
number = -number;
digits--; /* sign consume one digit */
@@ -643,7 +664,7 @@ numtoa(number, base, precision, fract)
integral_part[i] = '9';
/* put the sign ? */
- if (sign < 0.)
+ if (sign == '-')
integral_part[i++] = '-';
integral_part[i] = '\0';
@@ -682,9 +703,13 @@ number(p, d, base)
long sd;
int flags;
- /* An explicit precision turns off the zero-padding flag. */
+ /* An explicit precision turns off the zero-padding flag and sets the
+ pad character back to space. */
if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT))
- p->flags &= ~PF_ZEROPAD;
+ {
+ p->flags &= ~PF_ZEROPAD;
+ p->pad = ' ';
+ }
sd = d; /* signed for ' ' padding in base 10 */
flags = 0;
@@ -698,10 +723,11 @@ number(p, d, base)
{
GETLOCALEDATA(decpoint, thoussep, grouping);
if (grouping && (t = groupnum (tmp)))
- tmp = t;
+ tmp = t;
}
- p->width -= strlen(tmp);
+ /* need to add one for any `+', but we only add one in base 10 */
+ p->width -= strlen(tmp) + (base == 10 && d > 0 && (p->flags & PF_PLUS));
PAD_RIGHT(p);
if ((p->flags & PF_DOT) && p->precision > 0)
@@ -753,9 +779,13 @@ lnumber(p, d, base)
long long sd;
int flags;
- /* An explicit precision turns off the zero-padding flag. */
+ /* An explicit precision turns off the zero-padding flag and sets the
+ pad character back to space. */
if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT))
- p->flags &= ~PF_ZEROPAD;
+ {
+ p->flags &= ~PF_ZEROPAD;
+ p->pad = ' ';
+ }
sd = d; /* signed for ' ' padding in base 10 */
flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
@@ -768,10 +798,11 @@ lnumber(p, d, base)
{
GETLOCALEDATA(decpoint, thoussep, grouping);
if (grouping && (t = groupnum (tmp)))
- tmp = t;
+ tmp = t;
}
- p->width -= strlen(tmp);
+ /* need to add one for any `+', but we only add one in base 10 */
+ p->width -= strlen(tmp) + (base == 10 && d > 0 && (p->flags & PF_PLUS));
PAD_RIGHT(p);
if ((p->flags & PF_DOT) && p->precision > 0)
@@ -875,11 +906,11 @@ wstrings(p, tmp)
{
len = wcsrtombs (NULL, &ws, 0, &mbs);
if (len != (size_t)-1)
- {
+ {
memset (&mbs, '\0', sizeof (mbstate_t));
os = (char *)xmalloc (len + 1);
(void)wcsrtombs (os, &ws, len + 1, &mbs);
- }
+ }
}
if (len == (size_t)-1)
{
@@ -919,32 +950,6 @@ wchars (p, wc)
#ifdef FLOATING_POINT
-#ifndef HAVE_ISINF_IN_LIBC
-/* Half-assed versions, since we don't want to link with libm. */
-static int
-isinf(d)
- double d;
-{
-#ifdef DBL_MAX
- if (d < DBL_MIN)
- return -1;
- else if (d > DBL_MAX)
- return 1;
- else
-#endif
- return 0;
-}
-#endif
-
-#ifndef HAVE_ISNAN_IN_LIBC
-static int
-isnan(d)
- double d;
-{
- return 0;
-}
-#endif
-
/* Check for [+-]infinity and NaN. If MODE == 1, we check for Infinity, else
(mode == 2) we check for NaN. This does the necessary printing. Returns
1 if Inf or Nan, 0 if not. */
@@ -1002,19 +1007,35 @@ floating(p, d)
{
/* smash the trailing zeros unless altform */
for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
- tmp2[i] = '\0';
+ tmp2[i] = '\0';
if (tmp2[0] == '\0')
p->precision = 0;
}
/* calculate the padding. 1 for the dot */
p->width = p->width -
+ /* XXX - should this be d>0. && (p->flags & PF_PLUS) ? */
+#if 0
((d > 0. && p->justify == RIGHT) ? 1:0) -
+#else
+ ((d > 0. && (p->flags & PF_PLUS)) ? 1:0) -
+#endif
((p->flags & PF_SPACE) ? 1:0) -
strlen(tmp) - p->precision -
((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
- PAD_RIGHT(p);
- PUT_PLUS(d, p, 0.);
+
+ if (p->pad == ' ')
+ {
+ PAD_RIGHT(p);
+ PUT_PLUS(d, p, 0.);
+ }
+ else
+ {
+ if (*tmp == '-')
+ PUT_CHAR(*tmp++, p);
+ PUT_PLUS(d, p, 0.);
+ PAD_RIGHT(p);
+ }
PUT_SPACE(d, p, 0.);
while (*tmp)
@@ -1058,14 +1079,30 @@ exponent(p, d)
tmp = dtoa(d, p->precision, &tmp2);
/* 1 for unit, 1 for the '.', 1 for 'e|E',
- * 1 for '+|-', 2 for 'exp' */
+ * 1 for '+|-', 2 for 'exp' (but no `.' if precision == 0 */
/* calculate how much padding need */
p->width = p->width -
+ /* XXX - should this be d>0. && (p->flags & PF_PLUS) ? */
+#if 0
((d > 0. && p->justify == RIGHT) ? 1:0) -
- ((p->flags & PF_SPACE) ? 1:0) - p->precision - 6;
+#else
+ ((d > 0. && (p->flags & PF_PLUS)) ? 1:0) -
+#endif
+ (p->precision != 0 || (p->flags & PF_ALTFORM)) -
+ ((p->flags & PF_SPACE) ? 1:0) - p->precision - 5;
- PAD_RIGHT(p);
- PUT_PLUS(d, p, 0.);
+ if (p->pad == ' ')
+ {
+ PAD_RIGHT(p);
+ PUT_PLUS(d, p, 0.);
+ }
+ else
+ {
+ if (*tmp == '-')
+ PUT_CHAR(*tmp++, p);
+ PUT_PLUS(d, p, 0.);
+ PAD_RIGHT(p);
+ }
PUT_SPACE(d, p, 0.);
while (*tmp)
@@ -1163,7 +1200,7 @@ groupnum (s)
else if (*g == CHAR_MAX)
{
do
- *--re = *--se;
+ *--re = *--se;
while (se > s);
break;
}
@@ -1295,10 +1332,6 @@ vsnprintf_internal(data, string, length, format, args)
case '#':
data->flags |= PF_ALTFORM;
continue;
- case '0':
- data->flags |= PF_ZEROPAD;
- data->pad = '0';
- continue;
case '*':
if (data->flags & PF_DOT)
data->flags |= PF_STAR_P;
@@ -1322,13 +1355,25 @@ vsnprintf_internal(data, string, length, format, args)
if ((data->flags & PF_DOT) == 0)
{
data->flags |= PF_PLUS;
- data->justify = RIGHT;
+ if ((data->flags & PF_LADJUST) == 0)
+ data->justify = RIGHT;
}
continue;
case '\'':
data->flags |= PF_THOUSANDS;
continue;
+ case '0':
+ /* If we're not specifying precision (in which case we've seen
+ a `.') and we're not performing left-adjustment (in which
+ case the `0' is ignored), a `0' is taken as the zero-padding
+ flag. */
+ if ((data->flags & (PF_DOT|PF_LADJUST)) == 0)
+ {
+ data->flags |= PF_ZEROPAD;
+ data->pad = '0';
+ continue;
+ }
case '1': case '2': case '3':
case '4': case '5': case '6':
case '7': case '8': case '9':
@@ -1410,8 +1455,9 @@ conv_break:
else
{
/* reduce precision by 1 because of leading digit before
- decimal point in e format. */
- data->precision--;
+ decimal point in e format, unless specified as 0. */
+ if (data->precision > 0)
+ data->precision--;
exponent(data, d);
}
state = 0;
diff --git a/lib/sh/spell.c b/lib/sh/spell.c
index d0394c29..da78690c 100644
--- a/lib/sh/spell.c
+++ b/lib/sh/spell.c
@@ -30,7 +30,7 @@
#include <bashtypes.h>
#include <posixdir.h>
#include <posixstat.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
#include <sys/param.h>
#endif
diff --git a/lib/sh/strchrnul.c b/lib/sh/strchrnul.c
index 2e1608ec..00cb88c4 100644
--- a/lib/sh/strchrnul.c
+++ b/lib/sh/strchrnul.c
@@ -1,5 +1,5 @@
/* Searching in a string.
- Copyright (C) 2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2012 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
@@ -15,130 +15,21 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
+#include <stdio.h>
/* Specification. */
#include <string.h>
- /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
- long instead of a 64-bit uintmax_t tends to give better
- performance. On 64-bit hardware, unsigned long is generally 64
- bits already. Change this typedef to experiment with
- performance. */
- typedef unsigned long int longword;
-
/* Find the first occurrence of C in S or the final NUL byte. */
char *
strchrnul (s, c_in)
const char *s;
int c_in;
{
- const unsigned char *char_ptr;
- const longword *longword_ptr;
- longword repeated_one;
- longword repeated_c;
- unsigned char c;
-
- c = (unsigned char) c_in;
- if (c == 0) /* find final null byte */
- return (char *)(s ? (s + strlen (s)) : s);
-
- /* Handle the first few bytes by reading one byte at a time.
- Do this until CHAR_PTR is aligned on a longword boundary. */
- for (char_ptr = (const unsigned char *) s;
- (size_t) char_ptr % sizeof (longword) != 0;
- ++char_ptr)
- if (!*char_ptr || *char_ptr == c)
- return (char *) char_ptr;
-
- longword_ptr = (const longword *) char_ptr;
-
- /* All these elucidatory comments refer to 4-byte longwords,
- but the theory applies equally well to any size longwords. */
-
- /* Compute auxiliary longword values:
- repeated_one is a value which has a 1 in every byte.
- repeated_c has c in every byte. */
- repeated_one = 0x01010101;
- repeated_c = c | (c << 8);
- repeated_c |= repeated_c << 16;
- if (0xffffffffU < (longword) -1)
- {
- repeated_one |= repeated_one << 31 << 1;
- repeated_c |= repeated_c << 31 << 1;
- if (8 < sizeof (longword))
- {
- size_t i;
-
- for (i = 64; i < sizeof (longword) * 8; i *= 2)
- {
- repeated_one |= repeated_one << i;
- repeated_c |= repeated_c << i;
- }
- }
- }
-
- /* Instead of the traditional loop which tests each byte, we will
- test a longword at a time. The tricky part is testing if *any of
- the four* bytes in the longword in question are equal to NUL or
- c. We first use an xor with repeated_c. This reduces the task
- to testing whether *any of the four* bytes in longword1 or
- longword2 is zero.
-
- Let's consider longword1. We compute tmp =
- ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
- That is, we perform the following operations:
- 1. Subtract repeated_one.
- 2. & ~longword1.
- 3. & a mask consisting of 0x80 in every byte.
- Consider what happens in each byte:
- - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
- and step 3 transforms it into 0x80. A carry can also be propagated
- to more significant bytes.
- - If a byte of longword1 is nonzero, let its lowest 1 bit be at
- position k (0 <= k <= 7); so the lowest k bits are 0. After step 1,
- the byte ends in a single bit of value 0 and k bits of value 1.
- After step 2, the result is just k bits of value 1: 2^k - 1. After
- step 3, the result is 0. And no carry is produced.
- So, if longword1 has only non-zero bytes, tmp is zero.
- Whereas if longword1 has a zero byte, call j the position of the least
- significant zero byte. Then the result has a zero at positions 0, ...,
- j-1 and a 0x80 at position j. We cannot predict the result at the more
- significant bytes (positions j+1..3), but it does not matter since we
- already have a non-zero bit at position 8*j+7.
-
- The test whether any byte in longword1 or longword2 is zero is equivalent
- to testing whether tmp1 is nonzero or tmp2 is nonzero. We can combine
- this into a single test, whether (tmp1 | tmp2) is nonzero.
-
- This test can read more than one byte beyond the end of a string,
- depending on where the terminating NUL is encountered. However,
- this is considered safe since the initialization phase ensured
- that the read will be aligned, therefore, the read will not cross
- page boundaries and will not cause a fault. */
-
- while (1)
- {
- longword longword1 = *longword_ptr ^ repeated_c;
- longword longword2 = *longword_ptr;
-
- if (((((longword1 - repeated_one) & ~longword1)
- | ((longword2 - repeated_one) & ~longword2))
- & (repeated_one << 7)) != 0)
- break;
- longword_ptr++;
- }
-
- char_ptr = (const unsigned char *) longword_ptr;
-
- /* At this point, we know that one of the sizeof (longword) bytes
- starting at char_ptr is == 0 or == c. On little-endian machines,
- we could determine the first such byte without any further memory
- accesses, just by looking at the tmp result from the last loop
- iteration. But this does not work on big-endian machines.
- Choose code that works in both cases. */
+ char c;
+ register char *s1;
- char_ptr = (unsigned char *) longword_ptr;
- while (*char_ptr && (*char_ptr != c))
- char_ptr++;
- return (char *) char_ptr;
+ for (c = c_in, s1 = (char *)s; s1 && *s1 && *s1 != c; s1++)
+ ;
+ return (s1);
}
diff --git a/lib/sh/strdup.c b/lib/sh/strdup.c
new file mode 100644
index 00000000..90fa3532
--- /dev/null
+++ b/lib/sh/strdup.c
@@ -0,0 +1,42 @@
+/* strdup - return a copy of a string in newly-allocated memory. */
+
+/* Copyright (C) 2013 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 <http://www.gnu.org/licenses/>.
+*/
+
+
+#include <config.h>
+
+/* Get specification. */
+#include <string.h>
+#include <stdlib.h>
+
+/* Duplicate S, returning an identical malloc'd string. */
+char *
+strdup (s)
+ const char *s;
+{
+ size_t len;
+ void *new;
+
+ len = strlen (s) + 1;
+ if ((new = malloc (len)) == NULL)
+ return NULL;
+
+ memcpy (new, s, len);
+ return ((char *)new);
+}
diff --git a/lib/sh/strerror.c b/lib/sh/strerror.c
index 4081e9c1..bf639263 100644
--- a/lib/sh/strerror.c
+++ b/lib/sh/strerror.c
@@ -23,7 +23,7 @@
#if !defined (HAVE_STRERROR)
#include <bashtypes.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
diff --git a/lib/sh/strftime.c b/lib/sh/strftime.c
index aa3fc850..0ababc14 100644
--- a/lib/sh/strftime.c
+++ b/lib/sh/strftime.c
@@ -38,6 +38,7 @@
* Updated September, 2000
* Updated December, 2001
* Updated January, 2011
+ * Updated April, 2012
*
* Fixes from ado@elsie.nci.nih.gov,
* February 1991, May 1992
@@ -75,6 +76,7 @@
#define VMS_EXT 1 /* include %v for VMS date format */
#define HPUX_EXT 1 /* non-conflicting stuff in HP-UX date */
#define POSIX_SEMANTICS 1 /* call tzset() if TZ changes */
+#define POSIX_2008 1 /* flag and fw for C, F, G, Y formats */
#undef strchr /* avoid AIX weirdness */
@@ -96,27 +98,25 @@ static int iso8601wknum(const struct tm *timeptr);
#define range(low, item, hi) max(low, min(item, hi))
-#if !defined(OS2) && !defined(MSDOS) && defined(HAVE_TZNAME)
+/* Whew! This stuff is a mess. */
+#if !defined(OS2) && !defined(MSDOS) && !defined(__CYGWIN__) && defined(HAVE_TZNAME)
extern char *tzname[2];
extern int daylight;
#if defined(SOLARIS) || defined(mips) || defined (M_UNIX)
extern long int timezone, altzone;
#else
-# if defined (HPUX)
+# if defined (HPUX) || defined(__hpux)
extern long int timezone;
# else
+# if !defined(__CYGWIN__)
extern int timezone, altzone;
-# endif /* !HPUX */
-#endif /* !SOLARIS && !mips && !M_UNIX */
+# endif
+# endif
+#endif
#endif
#undef min /* just in case */
-/* format for %+ -- currently unused */
-#ifndef NATIONAL_FORMAT
-#define NATIONAL_FORMAT "%a %b %e %H:%M:%S %Z %Y"
-#endif
-
/* min --- return minimum of two numbers */
static inline int
@@ -135,6 +135,34 @@ max(int a, int b)
return (a > b ? a : b);
}
+#ifdef POSIX_2008
+/* iso_8601_2000_year --- format a year per ISO 8601:2000 as in 1003.1 */
+
+static void
+iso_8601_2000_year(char *buf, int year, size_t fw)
+{
+ int extra;
+ char sign = '\0';
+
+ if (year >= -9999 && year <= 9999) {
+ sprintf(buf, "%0*d", (int) fw, year);
+ return;
+ }
+
+ /* now things get weird */
+ if (year > 9999) {
+ sign = '+';
+ } else {
+ sign = '-';
+ year = -year;
+ }
+
+ extra = year / 10000;
+ year %= 10000;
+ sprintf(buf, "%c_%04d_%d", sign, extra, year);
+}
+#endif /* POSIX_2008 */
+
/* strftime --- produce formatted time */
size_t
@@ -155,12 +183,19 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
#ifndef HAVE_TM_ZONE
#ifndef HAVE_TM_NAME
#ifndef HAVE_TZNAME
+#ifndef __CYGWIN__
extern char *timezone();
struct timeval tv;
struct timezone zone;
+#endif /* __CYGWIN__ */
#endif /* HAVE_TZNAME */
#endif /* HAVE_TM_NAME */
#endif /* HAVE_TM_ZONE */
+#ifdef POSIX_2008
+ int pad;
+ size_t fw;
+ char flag;
+#endif /* POSIX_2008 */
/* various tables, useful in North America */
static const char *days_a[] = {
@@ -234,6 +269,40 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
*s++ = *format;
continue;
}
+#ifdef POSIX_2008
+ pad = '\0';
+ fw = 0;
+ flag = '\0';
+ switch (*++format) {
+ case '+':
+ flag = '+';
+ /* fall through */
+ case '0':
+ pad = '0';
+ format++;
+ break;
+
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ break;
+
+ default:
+ format--;
+ goto again;
+ }
+ for (; isdigit(*format); format++) {
+ fw = fw * 10 + (*format - '0');
+ }
+ format--;
+#endif /* POSIX_2008 */
+
again:
switch (*++format) {
case '\0':
@@ -285,8 +354,19 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
break;
case 'C':
+#ifdef POSIX_2008
+ if (pad != '\0' && fw > 0) {
+ size_t min_fw = (flag ? 3 : 2);
+
+ fw = max(fw, min_fw);
+ sprintf(tbuf, flag
+ ? "%+0*ld"
+ : "%0*ld", (int) fw,
+ (timeptr->tm_year + 1900L) / 100);
+ } else
+#endif /* POSIX_2008 */
century:
- sprintf(tbuf, "%02ld", (timeptr->tm_year + 1900L) / 100);
+ sprintf(tbuf, "%02ld", (timeptr->tm_year + 1900L) / 100);
break;
case 'd': /* day of the month, 01 - 31 */
@@ -307,7 +387,30 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
goto again;
case 'F': /* ISO 8601 date representation */
+ {
+#ifdef POSIX_2008
+ /*
+ * Field width for %F is for the whole thing.
+ * It must be at least 10.
+ */
+ char m_d[10];
+ strftime(m_d, sizeof m_d, "-%m-%d", timeptr);
+ size_t min_fw = 10;
+
+ if (pad != '\0' && fw > 0) {
+ fw = max(fw, min_fw);
+ } else {
+ fw = min_fw;
+ }
+
+ fw -= 6; /* -XX-XX at end are invariant */
+
+ iso_8601_2000_year(tbuf, timeptr->tm_year + 1900, fw);
+ strcat(tbuf, m_d);
+#else
strftime(tbuf, sizeof tbuf, "%Y-%m-%d", timeptr);
+#endif /* POSIX_2008 */
+ }
break;
case 'g':
@@ -329,8 +432,20 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
else
y = 1900L + timeptr->tm_year;
- if (*format == 'G')
- sprintf(tbuf, "%ld", y);
+ if (*format == 'G') {
+#ifdef POSIX_2008
+ if (pad != '\0' && fw > 0) {
+ size_t min_fw = 4;
+
+ fw = max(fw, min_fw);
+ sprintf(tbuf, flag
+ ? "%+0*ld"
+ : "%0*ld", (int) fw,
+ y);
+ } else
+#endif /* POSIX_2008 */
+ sprintf(tbuf, "%ld", y);
+ }
else
sprintf(tbuf, "%02ld", y % 100);
break;
@@ -455,7 +570,17 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
break;
case 'Y': /* year with century */
- fullyear:
+#ifdef POSIX_2008
+ if (pad != '\0' && fw > 0) {
+ size_t min_fw = 4;
+
+ fw = max(fw, min_fw);
+ sprintf(tbuf, flag
+ ? "%+0*ld"
+ : "%0*ld", (int) fw,
+ 1900L + timeptr->tm_year);
+ } else
+#endif /* POSIX_2008 */
sprintf(tbuf, "%ld", 1900L + timeptr->tm_year);
break;
@@ -496,12 +621,12 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr)
* Systems with tzname[] probably have timezone as
* secs west of GMT. Convert to mins east of GMT.
*/
-# ifdef HPUX
+# if defined(__hpux) || defined (HPUX) || defined(__CYGWIN__)
off = -timezone / 60;
# else
/* ADR: 4 August 2001, fixed this per gazelle@interaccess.com */
off = -(daylight ? altzone : timezone) / 60;
-# endif /* !HPUX */
+# endif
#else /* !HAVE_TZNAME */
gettimeofday(& tv, & zone);
off = -zone.tz_minuteswest;
diff --git a/lib/sh/stringvec.c b/lib/sh/stringvec.c
index b0ed4164..3bb4ab70 100644
--- a/lib/sh/stringvec.c
+++ b/lib/sh/stringvec.c
@@ -40,6 +40,14 @@ strvec_create (n)
return ((char **)xmalloc ((n) * sizeof (char *)));
}
+/* Allocate an array of strings with room for N members. */
+char **
+strvec_mcreate (n)
+ int n;
+{
+ return ((char **)malloc ((n) * sizeof (char *)));
+}
+
char **
strvec_resize (array, nsize)
char **array;
@@ -48,6 +56,14 @@ strvec_resize (array, nsize)
return ((char **)xrealloc (array, nsize * sizeof (char *)));
}
+char **
+strvec_mresize (array, nsize)
+ char **array;
+ int nsize;
+{
+ return ((char **)realloc (array, nsize * sizeof (char *)));
+}
+
/* Return the length of ARRAY, a NULL terminated array of char *. */
int
strvec_len (array)
diff --git a/lib/sh/strpbrk.c b/lib/sh/strpbrk.c
index 4439986a..8cce8308 100644
--- a/lib/sh/strpbrk.c
+++ b/lib/sh/strpbrk.c
@@ -29,7 +29,7 @@
#include <stdc.h>
-/* Find the first ocurrence in S of any character in ACCEPT. */
+/* Find the first occurrence in S of any character in ACCEPT. */
char *
strpbrk (s, accept)
register const char *s;
diff --git a/lib/sh/strtrans.c b/lib/sh/strtrans.c
index 2265782f..ae88e694 100644
--- a/lib/sh/strtrans.c
+++ b/lib/sh/strtrans.c
@@ -1,6 +1,6 @@
/* strtrans.c - Translate and untranslate strings with ANSI-C escape sequences. */
-/* Copyright (C) 2000-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -30,6 +30,9 @@
#include "shell.h"
+#include "shmbchar.h"
+#include "shmbutil.h"
+
#ifdef ESC
#undef ESC
#endif
@@ -74,7 +77,7 @@ ansicstr (string, len, flags, sawc, rlen)
case 'a': c = '\a'; break;
case 'v': c = '\v'; break;
#else
- case 'a': c = '\007'; break;
+ case 'a': c = (int) 0x07; break;
case 'v': c = (int) 0x0B; break;
#endif
case 'b': c = '\b'; break;
@@ -144,7 +147,7 @@ ansicstr (string, len, flags, sawc, rlen)
*r++ = '\\'; /* c remains unchanged */
break;
}
- else if (v <= UCHAR_MAX)
+ else if (v <= 0x7f) /* <= 0x7f translates directly */
{
c = v;
break;
@@ -208,6 +211,11 @@ ansic_quote (str, flags, rlen)
char *r, *ret, *s;
int l, rsize;
unsigned char c;
+ size_t clen;
+ int b;
+#if defined (HANDLE_MULTIBYTE)
+ wchar_t wc;
+#endif
if (str == 0 || *str == 0)
return ((char *)0);
@@ -219,10 +227,13 @@ ansic_quote (str, flags, rlen)
*r++ = '$';
*r++ = '\'';
- for (s = str, l = 0; *s; s++)
+ s = str;
+
+ for (s = str; c = *s; s++)
{
- c = *s;
- l = 1; /* 1 == add backslash; 0 == no backslash */
+ b = l = 1; /* 1 == add backslash; 0 == no backslash */
+ clen = 1;
+
switch (c)
{
case ESC: c = 'E'; break;
@@ -230,7 +241,7 @@ ansic_quote (str, flags, rlen)
case '\a': c = 'a'; break;
case '\v': c = 'v'; break;
#else
- case '\007': c = 'a'; break;
+ case 0x07: c = 'a'; break;
case 0x0b: c = 'v'; break;
#endif
@@ -243,7 +254,14 @@ ansic_quote (str, flags, rlen)
case '\'':
break;
default:
+#if defined (HANDLE_MULTIBYTE)
+ b = is_basic (c);
+ /* XXX - clen comparison to 0 is dicey */
+ if ((b == 0 && ((clen = mbrtowc (&wc, s, MB_CUR_MAX, 0)) < 0 || MB_INVALIDCH (clen) || iswprint (wc) == 0)) ||
+ (b == 1 && ISPRINT (c) == 0))
+#else
if (ISPRINT (c) == 0)
+#endif
{
*r++ = '\\';
*r++ = TOCHAR ((c >> 6) & 07);
@@ -254,9 +272,20 @@ ansic_quote (str, flags, rlen)
l = 0;
break;
}
+ if (b == 0 && clen == 0)
+ break;
+
if (l)
*r++ = '\\';
- *r++ = c;
+
+ if (clen == 1)
+ *r++ = c;
+ else
+ {
+ for (b = 0; b < (int)clen; b++)
+ *r++ = (unsigned char)s[b];
+ s += clen - 1; /* -1 because of the increment above */
+ }
}
*r++ = '\'';
@@ -266,6 +295,37 @@ ansic_quote (str, flags, rlen)
return ret;
}
+#if defined (HANDLE_MULTIBYTE)
+int
+ansic_wshouldquote (string)
+ const char *string;
+{
+ const wchar_t *wcs;
+ wchar_t wcc;
+
+ wchar_t *wcstr = NULL;
+ size_t slen;
+
+
+ slen = mbstowcs (wcstr, string, 0);
+
+ if (slen == -1)
+ slen = 0;
+ wcstr = (wchar_t *)xmalloc (sizeof (wchar_t) * (slen + 1));
+ mbstowcs (wcstr, string, slen + 1);
+
+ for (wcs = wcstr; wcc = *wcs; wcs++)
+ if (iswprint(wcc) == 0)
+ {
+ free (wcstr);
+ return 1;
+ }
+
+ free (wcstr);
+ return 0;
+}
+#endif
+
/* return 1 if we need to quote with $'...' because of non-printing chars. */
int
ansic_shouldquote (string)
@@ -278,8 +338,14 @@ ansic_shouldquote (string)
return 0;
for (s = string; c = *s; s++)
- if (ISPRINT (c) == 0)
- return 1;
+ {
+#if defined (HANDLE_MULTIBYTE)
+ if (is_basic (c) == 0)
+ return (ansic_wshouldquote (s));
+#endif
+ if (ISPRINT (c) == 0)
+ return 1;
+ }
return 0;
}
diff --git a/lib/sh/tmpfile.c b/lib/sh/tmpfile.c
index 0bbc2871..c06ad657 100644
--- a/lib/sh/tmpfile.c
+++ b/lib/sh/tmpfile.c
@@ -31,6 +31,8 @@
# include <unistd.h>
#endif
+#include <bashansi.h>
+
#include <stdio.h>
#include <errno.h>
@@ -135,7 +137,7 @@ sh_mktmpname (nameroot, flags)
filenum = (filenum << 1) ^
(unsigned long) time ((time_t *)0) ^
(unsigned long) dollar_dollar_pid ^
- (unsigned long) ((flags & MT_USERANDOM) ? get_random_number () : ntmpfiles++);
+ (unsigned long) ((flags & MT_USERANDOM) ? random () : ntmpfiles++);
sprintf (filename, "%s/%s-%lu", tdir, lroot, filenum);
if (tmpnamelen > 0 && tmpnamelen < 32)
filename[tdlen + 1 + tmpnamelen] = '\0';
@@ -184,7 +186,7 @@ sh_mktmpfd (nameroot, flags, namep)
filenum = (filenum << 1) ^
(unsigned long) time ((time_t *)0) ^
(unsigned long) dollar_dollar_pid ^
- (unsigned long) ((flags & MT_USERANDOM) ? get_random_number () : ntmpfiles++);
+ (unsigned long) ((flags & MT_USERANDOM) ? random () : ntmpfiles++);
sprintf (filename, "%s/%s-%lu", tdir, lroot, filenum);
if (tmpnamelen > 0 && tmpnamelen < 32)
filename[tdlen + 1 + tmpnamelen] = '\0';
diff --git a/lib/sh/unicode.c b/lib/sh/unicode.c
index d34fa08a..9ee7147d 100644
--- a/lib/sh/unicode.c
+++ b/lib/sh/unicode.c
@@ -1,6 +1,6 @@
/* unicode.c - functions to convert unicode characters */
-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -28,6 +28,7 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#include <stdio.h>
#include <limits.h>
#if HAVE_ICONV
@@ -61,6 +62,8 @@ static iconv_t localconv;
#endif
#ifndef HAVE_LOCALE_CHARSET
+static char charsetbuf[40];
+
static char *
stub_charset ()
{
@@ -68,32 +71,46 @@ stub_charset ()
locale = get_locale_var ("LC_CTYPE");
if (locale == 0 || *locale == 0)
- return "ASCII";
+ {
+ strcpy (charsetbuf, "ASCII");
+ return charsetbuf;
+ }
s = strrchr (locale, '.');
if (s)
{
- t = strchr (s, '@');
+ strcpy (charsetbuf, s+1);
+ t = strchr (charsetbuf, '@');
if (t)
*t = 0;
- return ++s;
+ return charsetbuf;
}
- else if (STREQ (locale, "UTF-8"))
- return "UTF-8";
- else
- return "ASCII";
+ strcpy (charsetbuf, locale);
+ return charsetbuf;
}
#endif
+void
+u32reset ()
+{
+#if defined (HAVE_ICONV)
+ if (u32init && localconv != (iconv_t)-1)
+ {
+ iconv_close (localconv);
+ localconv = (iconv_t)-1;
+ }
+#endif
+ u32init = 0;
+ utf8locale = 0;
+}
+
/* u32toascii ? */
int
-u32tochar (wc, s)
- wchar_t wc;
+u32tochar (x, s)
+ unsigned long x;
char *s;
{
- unsigned long x;
int l;
- x = wc;
l = (x <= UCHAR_MAX) ? 1 : ((x <= USHORT_MAX) ? 2 : 4);
if (x <= UCHAR_MAX)
@@ -115,31 +132,107 @@ u32tochar (wc, s)
}
int
-u32toutf8 (wc, s)
- wchar_t wc;
+u32tocesc (wc, s)
+ u_bits32_t wc;
char *s;
{
int l;
- l = (wc < 0x0080) ? 1 : ((wc < 0x0800) ? 2 : 3);
+ if (wc < 0x10000)
+ l = sprintf (s, "\\u%04X", wc);
+ else
+ l = sprintf (s, "\\u%08X", wc);
+ return l;
+}
+
+/* Convert unsigned 32-bit int to utf-8 character string */
+int
+u32toutf8 (wc, s)
+ u_bits32_t wc;
+ char *s;
+{
+ int l;
if (wc < 0x0080)
- s[0] = (unsigned char)wc;
+ {
+ s[0] = (char)wc;
+ l = 1;
+ }
else if (wc < 0x0800)
{
s[0] = (wc >> 6) | 0xc0;
s[1] = (wc & 0x3f) | 0x80;
+ l = 2;
}
- else
+ else if (wc < 0x10000)
{
+ /* Technically, we could return 0 here if 0xd800 <= wc <= 0x0dfff */
s[0] = (wc >> 12) | 0xe0;
s[1] = ((wc >> 6) & 0x3f) | 0x80;
s[2] = (wc & 0x3f) | 0x80;
+ l = 3;
+ }
+ else if (wc < 0x200000)
+ {
+ s[0] = (wc >> 18) | 0xf0;
+ s[1] = ((wc >> 12) & 0x3f) | 0x80;
+ s[2] = ((wc >> 6) & 0x3f) | 0x80;
+ s[3] = (wc & 0x3f) | 0x80;
+ l = 4;
}
+ /* Strictly speaking, UTF-8 doesn't have characters longer than 4 bytes */
+ else if (wc < 0x04000000)
+ {
+ s[0] = (wc >> 24) | 0xf8;
+ s[1] = ((wc >> 18) & 0x3f) | 0x80;
+ s[2] = ((wc >> 12) & 0x3f) | 0x80;
+ s[3] = ((wc >> 6) & 0x3f) | 0x80;
+ s[4] = (wc & 0x3f) | 0x80;
+ l = 5;
+ }
+ else if (wc < 0x080000000)
+ {
+ s[0] = (wc >> 30) | 0xf8;
+ s[1] = ((wc >> 24) & 0x3f) | 0x80;
+ s[2] = ((wc >> 18) & 0x3f) | 0x80;
+ s[3] = ((wc >> 12) & 0x3f) | 0x80;
+ s[4] = ((wc >> 6) & 0x3f) | 0x80;
+ s[5] = (wc & 0x3f) | 0x80;
+ l = 6;
+ }
+ else
+ l = 0;
+
s[l] = '\0';
return l;
}
+/* Convert a 32-bit unsigned int (unicode) to a UTF-16 string. Rarely used,
+ only if sizeof(wchar_t) == 2. */
+int
+u32toutf16 (c, s)
+ u_bits32_t c;
+ unsigned short *s;
+{
+ int l;
+
+ l = 0;
+ if (c < 0x0d800)
+ {
+ s[0] = (unsigned short) (c & 0xFFFF);
+ l = 1;
+ }
+ else if (c >= 0x0e000 && c <= 0x010ffff)
+ {
+ c -= 0x010000;
+ s[0] = (unsigned short)((c >> 10) + 0xd800);
+ s[1] = (unsigned short)((c & 0x3ff) + 0xdc00);
+ l = 2;
+ }
+ s[l] = 0;
+ return l;
+}
+
/* convert a single unicode-32 character into a multibyte string and put the
result in S, which must be large enough (at least MB_LEN_MAX bytes) */
int
@@ -148,6 +241,7 @@ u32cconv (c, s)
char *s;
{
wchar_t wc;
+ wchar_t ws[3];
int n;
#if HAVE_ICONV
const char *charset;
@@ -157,21 +251,23 @@ u32cconv (c, s)
size_t sn;
#endif
- wc = c;
-
#if __STDC_ISO_10646__
- if (sizeof (wchar_t) == 4)
- {
- n = wctomb (s, wc);
- return n;
- }
+ wc = c;
+ if (sizeof (wchar_t) == 4 && c <= 0x7fffffff)
+ n = wctomb (s, wc);
+ else if (sizeof (wchar_t) == 2 && c <= 0x10ffff && u32toutf16 (c, ws))
+ n = wcstombs (s, ws, MB_LEN_MAX);
+ else
+ n = -1;
+ if (n != -1)
+ return n;
#endif
#if HAVE_NL_LANGINFO
codeset = nl_langinfo (CODESET);
if (STREQ (codeset, "UTF-8"))
{
- n = u32toutf8 (wc, s);
+ n = u32toutf8 (c, s);
return n;
}
#endif
@@ -191,25 +287,23 @@ u32cconv (c, s)
{
localconv = iconv_open (charset, "UTF-8");
if (localconv == (iconv_t)-1)
- localconv = iconv_open (charset, "ASCII");
+ /* We assume ASCII when presented with an unknown encoding. */
+ localconv = iconv_open ("ASCII", "UTF-8");
}
u32init = 1;
}
+ /* If we have a UTF-8 locale, convert to UTF-8 and return converted value. */
+ n = u32toutf8 (c, s);
if (utf8locale)
- {
- n = u32toutf8 (wc, s);
- return n;
- }
+ return n;
+ /* If the conversion is not supported, even the ASCII requested above, we
+ bail now. Currently we return the UTF-8 conversion. We could return
+ u32tocesc(). */
if (localconv == (iconv_t)-1)
- {
- n = u32tochar (wc, s);
- return n;
- }
-
- n = u32toutf8 (wc, s);
-
+ return n;
+
optr = obuf;
obytesleft = sizeof (obuf);
iptr = s;
@@ -218,7 +312,15 @@ u32cconv (c, s)
iconv (localconv, NULL, NULL, NULL, NULL);
if (iconv (localconv, (ICONV_CONST char **)&iptr, &sn, &optr, &obytesleft) == (size_t)-1)
- return n; /* You get utf-8 if iconv fails */
+ {
+#if 1
+ /* You get ISO C99 escape sequences if iconv fails */
+ n = u32tocesc (c, s);
+#else
+ /* You get UTF-8 if iconv fails */
+#endif
+ return n;
+ }
*optr = '\0';
@@ -226,10 +328,14 @@ u32cconv (c, s)
checking */
strcpy (s, obuf);
return (optr - obuf);
-#endif
+#endif /* HAVE_ICONV */
- n = u32tochar (wc, s); /* fallback */
+ n = u32tocesc (c, s); /* fallback is ISO C99 escape sequences */
return n;
}
-
+#else
+void
+u32reset ()
+{
+}
#endif /* HANDLE_MULTIBYTE */
diff --git a/lib/sh/wcsnwidth.c b/lib/sh/wcsnwidth.c
new file mode 100644
index 00000000..9c7e7cc5
--- /dev/null
+++ b/lib/sh/wcsnwidth.c
@@ -0,0 +1,56 @@
+/* wcsnwidth.c - compute display width of wide character string, up to max
+ specified width, return length. */
+
+/* Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+
+#if defined (HANDLE_MULTIBYTE)
+
+#include <stdc.h>
+#include <wchar.h>
+#include <bashansi.h>
+
+/* Return the number of wide characters that will be displayed from wide string
+ PWCS. If the display width exceeds MAX, return the number of wide chars
+ from PWCS required to display MAX characters on the screen. */
+int
+wcsnwidth(pwcs, n, max)
+ const wchar_t *pwcs;
+ size_t n, max;
+{
+ wchar_t wc, *ws;
+ int len, l;
+
+ len = 0;
+ ws = (wchar_t *)pwcs;
+ while (n-- > 0 && (wc = *ws++) != L'\0')
+ {
+ l = wcwidth (wc);
+ if (l < 0)
+ return (-1);
+ else if (l == max - len)
+ return (ws - pwcs);
+ else if (l > max - len)
+ return (--ws - pwcs);
+ len += l;
+ }
+ return (ws - pwcs);
+}
+#endif
diff --git a/lib/sh/zgetline.c b/lib/sh/zgetline.c
index 33ac830d..9cef9752 100644
--- a/lib/sh/zgetline.c
+++ b/lib/sh/zgetline.c
@@ -50,7 +50,7 @@ typedef ssize_t creadfunc_t __P((int, char *));
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
+ (3) the addition of third 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.
diff --git a/lib/sh/zmapfd.c b/lib/sh/zmapfd.c
index 4000c4a5..e7208921 100644
--- a/lib/sh/zmapfd.c
+++ b/lib/sh/zmapfd.c
@@ -66,11 +66,10 @@ zmapfd (fd, ostr, fn)
}
else if (nr < 0)
{
- rval = -1;
free (result);
if (ostr)
*ostr = (char *)NULL;
- break;
+ return -1;
}
RESIZE_MALLOCED_BUFFER (result, rind, nr, rsize, 128);
diff --git a/lib/sh/zread.c b/lib/sh/zread.c
index 5db21a98..868f9705 100644
--- a/lib/sh/zread.c
+++ b/lib/sh/zread.c
@@ -26,6 +26,7 @@
# include <unistd.h>
#endif
+#include <signal.h>
#include <errno.h>
#if !defined (errno)
@@ -36,6 +37,9 @@ extern int errno;
# define SEEK_CUR 1
#endif
+extern void check_signals_and_traps (void);
+extern int signal_is_trapped (int);
+
/* Read LEN bytes from FD into BUF. Retry the read on EINTR. Any other
error causes the loop to break. */
ssize_t
@@ -46,8 +50,22 @@ zread (fd, buf, len)
{
ssize_t r;
+#if 0
+#if defined (HAVE_SIGINTERRUPT)
+ if (signal_is_trapped (SIGCHLD))
+ siginterrupt (SIGCHLD, 1);
+#endif
+#endif
+
while ((r = read (fd, buf, len)) < 0 && errno == EINTR)
- ;
+ check_signals_and_traps (); /* XXX - should it be check_signals()? */
+
+#if 0
+#if defined (HAVE_SIGINTERRUPT)
+ siginterrupt (SIGCHLD, 0);
+#endif
+#endif
+
return r;
}
@@ -148,6 +166,34 @@ zreadcintr (fd, cp)
return 1;
}
+/* Like zreadc, but read a specified number of characters at a time. Used
+ for `read -N'. */
+ssize_t
+zreadn (fd, cp, len)
+ int fd;
+ char *cp;
+ size_t len;
+{
+ ssize_t nr;
+
+ if (lind == lused || lused == 0)
+ {
+ if (len > sizeof (lbuf))
+ len = sizeof (lbuf);
+ nr = zread (fd, lbuf, len);
+ lind = 0;
+ if (nr <= 0)
+ {
+ lused = 0;
+ return nr;
+ }
+ lused = nr;
+ }
+ if (cp)
+ *cp = lbuf[lind++];
+ return 1;
+}
+
void
zreset ()
{
diff --git a/lib/tilde/shell.c b/lib/tilde/shell.c
index 40a95b63..fafb8619 100644
--- a/lib/tilde/shell.c
+++ b/lib/tilde/shell.c
@@ -55,15 +55,26 @@ get_env_value (varname)
return ((char *)getenv (varname));
}
+/* If we're not using $HOME, assume that the passwd file information won't
+ change while this shell instance is running. */
char *
get_home_dir ()
{
- char *home_dir;
+ static char *home_dir = (char *)NULL;
struct passwd *entry;
- home_dir = (char *)NULL;
+ if (home_dir)
+ return (home_dir);
+
+#if defined (HAVE_GETPWUID)
entry = getpwuid (getuid ());
if (entry)
- home_dir = entry->pw_dir;
+ home_dir = savestring (entry->pw_dir);
+#endif
+
+#if defined (HAVE_GETPWENT)
+ endpwent (); /* some systems need this */
+#endif
+
return (home_dir);
}
diff --git a/locale.c b/locale.c
index 722a7078..8dabc7d2 100644
--- a/locale.c
+++ b/locale.c
@@ -1,6 +1,6 @@
/* locale.c - Miscellaneous internationalization functions. */
-/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2009,2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -26,6 +26,10 @@
# include <unistd.h>
#endif
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+
#include "bashintl.h"
#include "bashansi.h"
#include <stdio.h>
@@ -39,6 +43,9 @@
extern int errno;
#endif
+int locale_utf8locale; /* unused for now */
+int locale_mb_cur_max; /* value of MB_CUR_MAX for current locale (LC_CTYPE) */
+
extern int dump_translatable_strings, dump_po_strings;
/* The current locale when the program begins */
@@ -61,6 +68,7 @@ static char *lang;
static int reset_locale_vars __P((void));
static void locale_setblanks __P((void));
+static int locale_isutf8 __P((char *));
/* Set the value of default_locale and make the current locale the
system default locale. This should be called very early in main(). */
@@ -74,6 +82,8 @@ set_default_locale ()
#endif /* HAVE_SETLOCALE */
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
+
+ locale_mb_cur_max = MB_CUR_MAX;
}
/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES, LC_NUMERIC and
@@ -92,6 +102,8 @@ set_default_locale_vars ()
{
setlocale (LC_CTYPE, lc_all);
locale_setblanks ();
+ locale_mb_cur_max = MB_CUR_MAX;
+ u32reset ();
}
# endif
@@ -126,10 +138,8 @@ set_default_locale_vars ()
{
FREE (default_domain);
default_domain = savestring (val);
-#if 0
- /* Don't want to override the shell's textdomain as the default */
- textdomain (default_domain);
-#endif
+ if (default_dir && *default_dir)
+ bindtextdomain (default_domain, default_dir);
}
val = get_string_value ("TEXTDOMAINDIR");
@@ -157,10 +167,8 @@ set_locale_var (var, value)
{
FREE (default_domain);
default_domain = value ? savestring (value) : (char *)NULL;
-#if 0
- /* Don't want to override the shell's textdomain as the default */
- textdomain (default_domain);
-#endif
+ if (default_dir && *default_dir)
+ bindtextdomain (default_domain, default_dir);
return (1);
}
else if (var[0] == 'T') /* TEXTDOMAINDIR */
@@ -194,6 +202,8 @@ set_locale_var (var, value)
internal_warning(_("setlocale: LC_ALL: cannot change locale (%s): %s"), lc_all, strerror (errno));
}
locale_setblanks ();
+ locale_mb_cur_max = MB_CUR_MAX;
+ u32reset ();
return r;
#else
return (1);
@@ -208,6 +218,8 @@ set_locale_var (var, value)
{
x = setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE"));
locale_setblanks ();
+ locale_mb_cur_max = MB_CUR_MAX;
+ u32reset ();
}
# endif
}
@@ -267,7 +279,7 @@ set_lang (var, value)
lang = (char *)xmalloc (1);
lang[0] = '\0';
}
-
+
return ((lc_all == 0 || *lc_all == 0) ? reset_locale_vars () : 0);
}
@@ -339,6 +351,8 @@ reset_locale_vars ()
# endif
locale_setblanks ();
+ locale_mb_cur_max = MB_CUR_MAX;
+ u32reset ();
#endif
return 1;
@@ -532,3 +546,18 @@ locale_setblanks ()
sh_syntaxtab[x] &= ~(CSHBRK|CBLANK);
}
}
+
+static int
+locale_isutf8 (lspec)
+ char *lspec;
+{
+ char *cp;
+
+#if HAVE_LANGINFO_CODESET
+ cp = nl_langinfo (CODESET);
+ return (STREQ (cp, "UTF-8") || STREQ (cp, "utf8"));
+#else
+ /* Take a shot */
+ return (strstr (lspec, "UTF-8") || strstr (lspec, "utf8"));
+#endif
+}
diff --git a/m4/stat-time.m4 b/m4/stat-time.m4
new file mode 100644
index 00000000..f5d67a19
--- /dev/null
+++ b/m4/stat-time.m4
@@ -0,0 +1,61 @@
+# Checks for stat-related time functions.
+
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 Free Software
+# Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+dnl Modified by Chet Ramey for bash.
+
+# st_atim.tv_nsec - Linux, Solaris, Cygwin
+# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE
+# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE
+# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
+
+# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway)
+# st_birthtim - Cygwin 1.7.0+
+
+AC_DEFUN([BASH_STAT_TIME],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+
+ AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec],
+ [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec],
+ [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [[
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_SYS_TIME_H
+ # include <sys/time.h>
+ #endif
+ #include <time.h>
+ struct timespec ts;
+ struct stat st;
+ ]],
+ [[
+ st.st_atim = ts;
+ ]])],
+ [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes],
+ [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])])
+ if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
+ AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1],
+ [Define to 1 if the type of the st_atim member of a struct stat is
+ struct timespec.])
+ fi],
+ [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [],
+ [AC_CHECK_MEMBERS([struct stat.st_atimensec], [],
+ [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])
+])
diff --git a/m4/timespec.m4 b/m4/timespec.m4
new file mode 100644
index 00000000..3643b470
--- /dev/null
+++ b/m4/timespec.m4
@@ -0,0 +1,71 @@
+# Configure checks for struct timespec
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2011, 2012 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Original written by Paul Eggert and Jim Meyering.
+# Modified by Chet Ramey for bash
+
+dnl Define HAVE_STRUCT_TIMESPEC if `struct timespec' is declared
+dnl in time.h, sys/time.h, or pthread.h.
+
+AC_DEFUN([BASH_CHECK_TYPE_STRUCT_TIMESPEC],
+[
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+ AC_CACHE_CHECK([for struct timespec in <time.h>],
+ [bash_cv_sys_struct_timespec_in_time_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <time.h>
+ ]],
+ [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+ [bash_cv_sys_struct_timespec_in_time_h=yes],
+ [bash_cv_sys_struct_timespec_in_time_h=no])])
+
+ HAVE_STRUCT_TIMESPEC=0
+ TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $bash_cv_sys_struct_timespec_in_time_h = yes; then
+ AC_DEFINE([HAVE_STRUCT_TIMESPEC])
+ AC_DEFINE([TIME_H_DEFINES_STRUCT_TIMESPEC])
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ AC_CACHE_CHECK([for struct timespec in <sys/time.h>],
+ [bash_cv_sys_struct_timespec_in_sys_time_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/time.h>
+ ]],
+ [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+ [bash_cv_sys_struct_timespec_in_sys_time_h=yes],
+ [bash_cv_sys_struct_timespec_in_sys_time_h=no])])
+ if test $bash_cv_sys_struct_timespec_in_sys_time_h = yes; then
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ AC_DEFINE([HAVE_STRUCT_TIMESPEC])
+ AC_DEFINE([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+ else
+ AC_CACHE_CHECK([for struct timespec in <pthread.h>],
+ [bash_cv_sys_struct_timespec_in_pthread_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ ]],
+ [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+ [bash_cv_sys_struct_timespec_in_pthread_h=yes],
+ [bash_cv_sys_struct_timespec_in_pthread_h=no])])
+ if test $bash_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ AC_DEFINE([HAVE_STRUCT_TIMESPEC])
+ AC_DEFINE([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+ fi
+ fi
+ fi
+ AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+
+])
diff --git a/mailcheck.c b/mailcheck.c
index bd95f0d6..c04d0fe2 100644
--- a/mailcheck.c
+++ b/mailcheck.c
@@ -23,7 +23,7 @@
#include <stdio.h>
#include "bashtypes.h"
#include "posixstat.h"
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
#if defined (HAVE_UNISTD_H)
@@ -267,7 +267,10 @@ file_mod_date_changed (i)
file = mailfiles[i]->name;
mtime = mailfiles[i]->mod_time;
- if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0))
+ if (mailstat (file, &finfo) != 0)
+ return (0);
+
+ if (finfo.st_size > 0)
return (mtime < finfo.st_mtime);
if (finfo.st_size == 0 && mailfiles[i]->file_size > 0)
@@ -288,7 +291,10 @@ file_access_date_changed (i)
file = mailfiles[i]->name;
atime = mailfiles[i]->access_time;
- if ((mailstat (file, &finfo) == 0) && (finfo.st_size > 0))
+ if (mailstat (file, &finfo) != 0)
+ return (0);
+
+ if (finfo.st_size > 0)
return (atime < finfo.st_atime);
return (0);
diff --git a/make_cmd.c b/make_cmd.c
index 2eb4fda1..3bc54085 100644
--- a/make_cmd.c
+++ b/make_cmd.c
@@ -280,7 +280,7 @@ make_arith_for_command (exprs, action, lineno)
ARITH_FOR_COM *temp;
WORD_LIST *init, *test, *step;
char *s, *t, *start;
- int nsemi;
+ int nsemi, i;
init = test = step = (WORD_LIST *)NULL;
/* Parse the string into the three component sub-expressions. */
@@ -292,10 +292,10 @@ make_arith_for_command (exprs, action, lineno)
s++;
start = s;
/* skip to the semicolon or EOS */
- while (*s && *s != ';')
- s++;
+ i = skip_to_delim (start, 0, ";", SD_NOJMP);
+ s = start + i;
- t = (s > start) ? substring (start, 0, s - start) : (char *)NULL;
+ t = (i > 0) ? substring (start, 0, i) : (char *)NULL;
nsemi++;
switch (nsemi)
@@ -324,6 +324,9 @@ make_arith_for_command (exprs, action, lineno)
else
parser_error (lineno, _("syntax error: `;' unexpected"));
parser_error (lineno, _("syntax error: `((%s))'"), exprs->word->word);
+ free (init);
+ free (test);
+ free (step);
last_command_exit_value = 2;
return ((COMMAND *)NULL);
}
@@ -790,7 +793,7 @@ make_function_def (name, command, lineno, lstart)
bind_function_def (name->word, temp);
#endif
- temp->source_file = 0;
+ temp->source_file = temp->source_file ? savestring (temp->source_file) : 0;
return (make_command (cm_function_def, (SIMPLE_COM *)temp));
}
diff --git a/mksyntax.c b/mksyntax.c
index 56ade2e4..03856866 100644
--- a/mksyntax.c
+++ b/mksyntax.c
@@ -380,7 +380,7 @@ main(argc, argv)
#if !defined (HAVE_STRERROR)
#include <bashtypes.h>
-#ifndef _MINIX
+#if defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
diff --git a/nojobs.c b/nojobs.c
index d43d1d49..0c9bd751 100644
--- a/nojobs.c
+++ b/nojobs.c
@@ -3,7 +3,7 @@
/* This file works under BSD, System V, minix, and Posix systems. It does
not implement job control. */
-/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -83,8 +83,8 @@ extern sigset_t top_level_mask;
extern procenv_t wait_intr_buf;
extern int wait_signal_received;
-pid_t last_made_pid = NO_PID;
-pid_t last_asynchronous_pid = NO_PID;
+volatile pid_t last_made_pid = NO_PID;
+volatile pid_t last_asynchronous_pid = NO_PID;
/* Call this when you start making children. */
int already_making_children = 0;
@@ -94,7 +94,10 @@ int shell_tty = -1;
/* If this is non-zero, $LINES and $COLUMNS are reset after every process
exits from get_tty_state(). */
-int check_window_size;
+int check_window_size = CHECKWINSIZE_DEFAULT;
+
+/* We don't have job control. */
+int job_control = 0;
/* STATUS and FLAGS are only valid if pid != NO_PID
STATUS is only valid if (flags & PROC_RUNNING) == 0 */
@@ -439,14 +442,21 @@ reap_zombie_children ()
WAIT status;
CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
while ((pid = waitpid (-1, (int *)&status, WNOHANG)) > 0)
set_pid_status (pid, status);
# endif /* WNOHANG */
CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
}
#endif /* WAITPID */
#if !defined (HAVE_SIGINTERRUPT) && defined (HAVE_POSIX_SIGNALS)
+
+#if !defined (SA_RESTART)
+# define SA_RESTART 0
+#endif
+
static int
siginterrupt (sig, flag)
int sig, flag;
@@ -491,11 +501,17 @@ make_child (command, async_p)
sync_buffered_stream (default_buffered_input);
#endif /* BUFFERED_INPUT */
+ /* XXX - block SIGTERM here and unblock in child after fork resets the
+ set of pending signals? */
+ RESET_SIGTERM;
+
/* Create the child, handle severe errors. Retry on EAGAIN. */
forksleep = 1;
while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX)
{
sys_error ("fork: retry");
+ RESET_SIGTERM;
+
#if defined (HAVE_WAITPID)
/* Posix systems with a non-blocking waitpid () system call available
get another chance after zombies are reaped. */
@@ -509,9 +525,13 @@ make_child (command, async_p)
forksleep <<= 1;
}
+ if (pid != 0)
+ RESET_SIGTERM;
+
if (pid < 0)
{
sys_error ("fork");
+ last_command_exit_value = EX_NOEXEC;
throw_to_top_level ();
}
@@ -597,6 +617,7 @@ wait_for_single_pid (pid)
while ((got_pid = WAITPID (pid, &status, 0)) != pid)
{
CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
if (got_pid < 0)
{
if (errno != EINTR && errno != ECHILD)
@@ -683,12 +704,12 @@ wait_sigint_handler (sig)
signal_is_trapped (SIGINT) &&
((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler))
{
- last_command_exit_value = EXECUTION_FAILURE;
+ last_command_exit_value = 128+SIGINT;
restore_sigint_handler ();
interrupt_immediately = 0;
trap_handler (SIGINT); /* set pending_traps[SIGINT] */
wait_signal_received = SIGINT;
- longjmp (wait_intr_buf, 1);
+ SIGRETURN (0);
}
if (interrupt_immediately)
@@ -751,6 +772,7 @@ wait_for (pid)
while ((got_pid = WAITPID (-1, &status, 0)) != pid) /* XXX was pid now -1 */
{
CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
if (got_pid < 0 && errno == ECHILD)
{
#if !defined (_POSIX_VERSION)
@@ -774,6 +796,9 @@ wait_for (pid)
reap_zombie_children ();
#endif /* HAVE_WAITPID */
+ CHECK_TERMSIG;
+ CHECK_WAIT_INTR;
+
if (interactive_shell == 0)
{
SigHandler *temp_handler;
@@ -801,13 +826,17 @@ wait_for (pid)
return_val = process_exit_status (status);
last_command_exit_signal = get_termsig (status);
-#if !defined (DONT_REPORT_SIGPIPE)
- if ((WIFSTOPPED (status) == 0) && WIFSIGNALED (status) &&
- (WTERMSIG (status) != SIGINT))
+#if defined (DONT_REPORT_SIGPIPE) && defined (DONT_REPORT_SIGTERM)
+# define REPORTSIG(x) ((x) != SIGINT && (x) != SIGPIPE && (x) != SIGTERM)
+#elif !defined (DONT_REPORT_SIGPIPE) && !defined (DONT_REPORT_SIGTERM)
+# define REPORTSIG(x) ((x) != SIGINT)
+#elif defined (DONT_REPORT_SIGPIPE)
+# define REPORTSIG(x) ((x) != SIGINT && (x) != SIGPIPE)
#else
- if ((WIFSTOPPED (status) == 0) && WIFSIGNALED (status) &&
- (WTERMSIG (status) != SIGINT) && (WTERMSIG (status) != SIGPIPE))
+# define REPORTSIG(x) ((x) != SIGINT && (x) != SIGTERM)
#endif
+
+ if ((WIFSTOPPED (status) == 0) && WIFSIGNALED (status) && REPORTSIG(WTERMSIG (status)))
{
fprintf (stderr, "%s", j_strsignal (WTERMSIG (status)));
if (WIFCORED (status))
@@ -822,6 +851,8 @@ wait_for (pid)
else
get_tty_state ();
}
+ else if (interactive_shell == 0 && subshell_environment == 0 && check_window_size)
+ get_new_window_size (0, (int *)0, (int *)0);
return (return_val);
}
diff --git a/parse.y b/parse.y
index db3348c3..82595de9 100644
--- a/parse.y
+++ b/parse.y
@@ -1,6 +1,6 @@
/* parse.y - Yacc grammar for bash. */
-/* Copyright (C) 1989-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -45,6 +45,7 @@
#define NEED_STRFTIME_DECL /* used in externs.h */
#include "shell.h"
+#include "typemax.h" /* SIZE_MAX if needed */
#include "trap.h"
#include "flags.h"
#include "parser.h"
@@ -270,9 +271,9 @@ int need_here_doc;
/* Where shell input comes from. History expansion is performed on each
line when the shell is interactive. */
static char *shell_input_line = (char *)NULL;
-static int shell_input_line_index;
-static int shell_input_line_size; /* Amount allocated for shell_input_line. */
-static int shell_input_line_len; /* strlen (shell_input_line) */
+static size_t shell_input_line_index;
+static size_t shell_input_line_size; /* Amount allocated for shell_input_line. */
+static size_t shell_input_line_len; /* strlen (shell_input_line) */
/* Either zero or EOF. */
static int shell_input_line_terminator;
@@ -1435,18 +1436,17 @@ yy_readline_get ()
old_sigint = (SigHandler *)IMPOSSIBLE_TRAP_HANDLER;
if (signal_is_ignored (SIGINT) == 0)
{
- interrupt_immediately++;
+ /* interrupt_immediately++; */
old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler);
}
- terminate_immediately = 1;
current_readline_line = readline (current_readline_prompt ?
current_readline_prompt : "");
- terminate_immediately = 0;
+ CHECK_TERMSIG;
if (signal_is_ignored (SIGINT) == 0)
{
- interrupt_immediately--;
+ /* interrupt_immediately--; */
if (old_sigint != IMPOSSIBLE_TRAP_HANDLER)
set_signal_handler (SIGINT, old_sigint);
}
@@ -1602,17 +1602,19 @@ yy_stream_get ()
result = EOF;
if (bash_input.location.file)
{
+#if 0
if (interactive)
- {
- interrupt_immediately++;
- terminate_immediately++;
- }
+ interrupt_immediately++;
+#endif
+
+ /* XXX - don't need terminate_immediately; getc_with_restart checks
+ for terminating signals itself if read returns < 0 */
result = getc_with_restart (bash_input.location.file);
+
+#if 0
if (interactive)
- {
- interrupt_immediately--;
- terminate_immediately--;
- }
+ interrupt_immediately--;
+#endif
}
return (result);
}
@@ -1790,6 +1792,10 @@ restore_token_state (ts)
* implement alias expansion on a per-token basis.
*/
+#define PSH_ALIAS 0x01
+#define PSH_DPAREN 0x02
+#define PSH_SOURCE 0x04
+
typedef struct string_saver {
struct string_saver *next;
int expand_alias; /* Value to set expand_alias to when string is popped. */
@@ -1797,7 +1803,9 @@ typedef struct string_saver {
#if defined (ALIAS)
alias_t *expander; /* alias that caused this line to be pushed. */
#endif
- int saved_line_size, saved_line_index, saved_line_terminator;
+ size_t saved_line_size, saved_line_index;
+ int saved_line_terminator;
+ int flags;
} STRING_SAVER;
STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL;
@@ -1823,8 +1831,11 @@ push_string (s, expand, ap)
temp->saved_line_size = shell_input_line_size;
temp->saved_line_index = shell_input_line_index;
temp->saved_line_terminator = shell_input_line_terminator;
+ temp->flags = 0;
#if defined (ALIAS)
temp->expander = ap;
+ if (ap)
+ temp->flags = PSH_ALIAS;
#endif
temp->next = pushed_string_list;
pushed_string_list = temp;
@@ -1835,7 +1846,7 @@ push_string (s, expand, ap)
#endif
shell_input_line = s;
- shell_input_line_size = strlen (s);
+ shell_input_line_size = STRLEN (s);
shell_input_line_index = 0;
shell_input_line_terminator = '\0';
#if 0
@@ -1909,6 +1920,34 @@ free_pushed_string_input ()
#endif
}
+int
+parser_expanding_alias ()
+{
+ return (expanding_alias ());
+}
+
+void
+parser_save_alias ()
+{
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ push_string ((char *)NULL, 0, (alias_t *)NULL);
+ pushed_string_list->flags = PSH_SOURCE; /* XXX - for now */
+#else
+ ;
+#endif
+}
+
+void
+parser_restore_alias ()
+{
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ if (pushed_string_list)
+ pop_string ();
+#else
+ ;
+#endif
+}
+
/* Return a line of text, taken from wherever yylex () reads input.
If there is no more input, then we return NULL. If REMOVE_QUOTED_NEWLINE
is non-zero, we remove unquoted \<newline> pairs. This is used by
@@ -2160,7 +2199,7 @@ shell_getc (remove_quoted_newline)
int remove_quoted_newline;
{
register int i;
- int c;
+ int c, truncating;
unsigned char uc;
QUIT;
@@ -2191,12 +2230,20 @@ shell_getc (remove_quoted_newline)
{
line_number++;
+ /* Let's not let one really really long line blow up memory allocation */
+ if (shell_input_line && shell_input_line_size >= 32768)
+ {
+ free (shell_input_line);
+ shell_input_line = 0;
+ shell_input_line_size = 0;
+ }
+
restart_read:
/* Allow immediate exit if interrupted during input. */
QUIT;
- i = 0;
+ i = truncating = 0;
shell_input_line_terminator = 0;
/* If the shell is interatctive, but not currently printing a prompt
@@ -2241,7 +2288,30 @@ shell_getc (remove_quoted_newline)
continue;
}
- RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256);
+ /* Theoretical overflow */
+ /* If we can't put 256 bytes more into the buffer, allocate
+ everything we can and fill it as full as we can. */
+ /* XXX - we ignore rest of line using `truncating' flag */
+ if (shell_input_line_size > (SIZE_MAX - 256))
+ {
+ size_t n;
+
+ n = SIZE_MAX - i; /* how much more can we put into the buffer? */
+ if (n <= 2) /* we have to save 1 for the newline added below */
+ {
+ if (truncating == 0)
+ internal_warning("shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%llu): line truncated", shell_input_line_size, SIZE_MAX);
+ shell_input_line[i] = '\0';
+ truncating = 1;
+ }
+ if (shell_input_line_size < SIZE_MAX)
+ {
+ shell_input_line_size = SIZE_MAX;
+ shell_input_line = xrealloc (shell_input_line, shell_input_line_size);
+ }
+ }
+ else
+ RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256);
if (c == EOF)
{
@@ -2255,7 +2325,8 @@ shell_getc (remove_quoted_newline)
break;
}
- shell_input_line[i++] = c;
+ if (truncating == 0 || c == '\n')
+ shell_input_line[i++] = c;
if (c == '\n')
{
@@ -2330,9 +2401,14 @@ shell_getc (remove_quoted_newline)
if (shell_input_line)
{
/* Lines that signify the end of the shell's input should not be
- echoed. */
+ echoed. We should not echo lines while parsing command
+ substitutions with recursive calls into the parsing engine; those
+ should only be echoed once when we read the word. That is the
+ reason for the test against shell_eof_token, which is set to a
+ right paren when parsing the contents of command substitutions. */
if (echo_input_at_read && (shell_input_line[0] ||
- shell_input_line_terminator != EOF))
+ shell_input_line_terminator != EOF) &&
+ shell_eof_token == 0)
fprintf (stderr, "%s\n", shell_input_line);
}
else
@@ -2348,7 +2424,7 @@ shell_getc (remove_quoted_newline)
not already end in an EOF character. */
if (shell_input_line_terminator != EOF)
{
- if (shell_input_line_len + 3 > shell_input_line_size)
+ if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
shell_input_line = (char *)xrealloc (shell_input_line,
1 + (shell_input_line_size += 2));
@@ -2371,8 +2447,13 @@ next_alias_char:
because we have fully consumed the result of the last alias expansion.
Do it transparently; just return the next character of the string popped
to. */
+ /* If pushed_string_list != 0 but pushed_string_list->expander == 0 (not
+ currently tested) and the flags value is not PSH_SOURCE, we are not
+ parsing an alias, we have just saved one (push_string, when called by
+ the parse_dparen code) In this case, just go on as well. The PSH_SOURCE
+ case is handled below. */
pop_alias:
- if (uc == 0 && (pushed_string_list != (STRING_SAVER *)NULL))
+ if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE)
{
pop_string ();
uc = shell_input_line[shell_input_line_index];
@@ -2412,6 +2493,28 @@ pop_alias:
if (uc == 0 && shell_input_line_terminator == EOF)
return ((shell_input_line_index != 0) ? '\n' : EOF);
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ /* We already know that we are not parsing an alias expansion because of the
+ check for expanding_alias() above. This knows how parse_and_execute
+ handles switching to st_string input while an alias is being expanded,
+ hence the check for pushed_string_list without pushed_string_list->expander
+ and the check for PSH_SOURCE as pushed_string_list->flags.
+ parse_and_execute and parse_string both change the input type to st_string
+ and place the string to be parsed and executed into location.string, so
+ we should not stop reading that until the pointer is '\0'.
+ The check for shell_input_line_terminator may be superfluous.
+
+ This solves the problem of `.' inside a multi-line alias with embedded
+ newlines executing things out of order. */
+ if (uc == 0 && bash_input.type == st_string && *bash_input.location.string &&
+ pushed_string_list && pushed_string_list->flags == PSH_SOURCE &&
+ shell_input_line_terminator == 0)
+ {
+ shell_input_line_index = 0;
+ goto restart_read;
+ }
+#endif
+
return (uc);
}
@@ -3212,7 +3315,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
}
RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
- if MBTEST(ch == CTLESC || ch == CTLNUL)
+ if MBTEST(ch == CTLESC)
ret[retind++] = CTLESC;
ret[retind++] = ch;
continue;
@@ -3266,6 +3369,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
treat single quotes as special when inside a double-quoted
${...}. This logic must agree with subst.c:extract_dollar_brace_string
since they share the same defines. */
+ /* FLAG POSIX INTERP 221 */
if (flags & P_DOLBRACE)
{
/* ${param%[%]word} */
@@ -3276,7 +3380,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
dolbrace_state = DOLBRACE_QUOTE;
/* ${param/[/]pat/rep} */
else if MBTEST(dolbrace_state == DOLBRACE_PARAM && ch == '/' && retind > 1)
- dolbrace_state = DOLBRACE_QUOTE;
+ dolbrace_state = DOLBRACE_QUOTE2; /* XXX */
/* ${param^[^]pat} */
else if MBTEST(dolbrace_state == DOLBRACE_PARAM && ch == '^' && retind > 1)
dolbrace_state = DOLBRACE_QUOTE;
@@ -3318,7 +3422,18 @@ parse_matched_pair (qc, open, close, lenp, flags)
ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen);
xfree (nestret);
- if ((rflags & P_DQUOTE) == 0)
+ /* If we're parsing a double-quoted brace expansion and we are
+ not in a place where single quotes are treated specially,
+ make sure we single-quote the results of the ansi
+ expansion because quote removal should remove them later */
+ /* FLAG POSIX INTERP 221 */
+ if ((shell_compatibility_level > 42) && (rflags & P_DQUOTE) && (dolbrace_state == DOLBRACE_QUOTE2) && (flags & P_DOLBRACE))
+ {
+ nestret = sh_single_quote (ttrans);
+ free (ttrans);
+ nestlen = strlen (nestret);
+ }
+ else if ((rflags & P_DQUOTE) == 0)
{
nestret = sh_single_quote (ttrans);
free (ttrans);
@@ -3511,10 +3626,10 @@ eof_error:
ret[retind++] = ch;
if ((tflags & LEX_INCOMMENT) && ch == '\n')
-{
+ {
/*itrace("parse_comsub:%d: lex_incomment -> 0 ch = `%c'", line_number, ch);*/
- tflags &= ~LEX_INCOMMENT;
-}
+ tflags &= ~LEX_INCOMMENT;
+ }
continue;
}
@@ -3531,7 +3646,7 @@ eof_error:
}
RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
- if MBTEST(ch == CTLESC || ch == CTLNUL)
+ if MBTEST(ch == CTLESC)
ret[retind++] = CTLESC;
ret[retind++] = ch;
continue;
@@ -3656,34 +3771,54 @@ eof_error:
else if MBTEST(lex_rwlen == 4 && shellbreak (ch))
{
if (STREQN (ret + retind - 4, "case", 4))
-{
- tflags |= LEX_INCASE;
+ {
+ tflags |= LEX_INCASE;
/*itrace("parse_comsub:%d: found `case', lex_incase -> 1 lex_reswdok -> 0", line_number);*/
-}
+ }
else if (STREQN (ret + retind - 4, "esac", 4))
-{
- tflags &= ~LEX_INCASE;
+ {
+ tflags &= ~LEX_INCASE;
/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0 lex_reswdok -> 0", line_number);*/
-}
+ }
tflags &= ~LEX_RESWDOK;
}
else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0)))
; /* don't modify LEX_RESWDOK if we're starting a comment */
+ /* Allow `do' followed by space, tab, or newline to preserve the
+ RESWDOK flag, but reset the reserved word length counter so we
+ can read another one. */
+ else if MBTEST(((tflags & LEX_INCASE) == 0) &&
+ (isblank(ch) || ch == '\n') &&
+ lex_rwlen == 2 &&
+ STREQN (ret + retind - 2, "do", 2))
+ {
+/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', found \"do\"", line_number, ch);*/
+ lex_rwlen = 0;
+ }
else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
/* If we can read a reserved word and we're in case, we're at the
point where we can read a new pattern list or an esac. We
handle the esac case above. If we read a newline, we want to
leave LEX_RESWDOK alone. If we read anything else, we want to
turn off LEX_RESWDOK, since we're going to read a pattern list. */
-{
- tflags &= ~LEX_RESWDOK;
+ {
+ tflags &= ~LEX_RESWDOK;
/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok -> 0", line_number, ch);*/
-}
+ }
else if MBTEST(shellbreak (ch) == 0)
-{
- tflags &= ~LEX_RESWDOK;
+ {
+ tflags &= ~LEX_RESWDOK;
/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/
-}
+ }
+#if 0
+ /* If we find a space or tab but have read something and it's not
+ `do', turn off the reserved-word-ok flag */
+ else if MBTEST(isblank (ch) && lex_rwlen > 0)
+ {
+ tflags &= ~LEX_RESWDOK;
+/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/
+ }
+#endif
}
/* Might be the start of a here-doc delimiter */
@@ -3721,10 +3856,10 @@ eof_error:
ch = peekc; /* fall through and continue XXX */
}
else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (((tflags & LEX_RESWDOK) && lex_rwlen == 0) || ((tflags & LEX_INWORD) && lex_wlen == 0)))
-{
+ {
/*itrace("parse_comsub:%d: lex_incomment -> 1 (%d)", line_number, __LINE__);*/
- tflags |= LEX_INCOMMENT;
-}
+ tflags |= LEX_INCOMMENT;
+ }
if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */
{
@@ -3738,15 +3873,15 @@ eof_error:
tflags &= ~LEX_INCASE; /* XXX */
#endif
else if MBTEST(ch == close && (tflags & LEX_INCASE) == 0) /* ending delimiter */
-{
- count--;
+ {
+ 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++;
+ {
+ count++;
/*itrace("parse_comsub:%d: found open: count = %d", line_number, count);*/
-}
+ }
/* Add this character. */
RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64);
@@ -3845,7 +3980,7 @@ xparse_dolparen (base, string, indp, flags)
{
sh_parser_state_t ps;
sh_input_line_state_t ls;
- int orig_ind, nc, sflags;
+ int orig_ind, nc, sflags, orig_eof_token;
char *ret, *s, *ep, *ostring;
/*yydebug = 1;*/
@@ -3858,12 +3993,14 @@ xparse_dolparen (base, string, indp, flags)
sflags |= SEVAL_NOLONGJMP;
save_parser_state (&ps);
save_input_line_state (&ls);
+ orig_eof_token = shell_eof_token;
/*(*/
parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/
shell_eof_token = ')';
parse_string (string, "command substitution", sflags, &ep);
+ shell_eof_token = orig_eof_token;
restore_parser_state (&ps);
reset_parser ();
/* reset_parser clears shell_input_line and associated variables */
@@ -3955,6 +4092,7 @@ parse_dparen (c)
else if (cmdtyp == 0) /* nested subshell */
{
push_string (wval, 0, (alias_t *)NULL);
+ pushed_string_list->flags = PSH_DPAREN;
if ((parser_state & PST_CASEPAT) == 0)
parser_state |= PST_SUBSHELL;
return (c);
@@ -4438,7 +4576,7 @@ read_token_word (character)
pop_delimiter (dstack);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
- RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
token[token_index++] = character;
@@ -4460,7 +4598,7 @@ read_token_word (character)
{
peek_char = shell_getc (1);
/* $(...), <(...), >(...), $((...)), ${...}, and $[...] constructs */
- if MBTEST(peek_char == '(' || \
+ if MBTEST(peek_char == '(' ||
((peek_char == '{' || peek_char == '[') && character == '$')) /* ) ] } */
{
if (peek_char == '{') /* } */
@@ -4480,7 +4618,7 @@ read_token_word (character)
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
- RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
token[token_index++] = character;
@@ -4531,7 +4669,7 @@ read_token_word (character)
ttrans = ttok;
}
- RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 1,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
strcpy (token + token_index, ttrans);
@@ -4545,17 +4683,13 @@ read_token_word (character)
shell's single-character parameter expansions, and set flags.*/
else if MBTEST(character == '$' && peek_char == '$')
{
- ttok = (char *)xmalloc (3);
- ttok[0] = ttok[1] = '$';
- ttok[2] = '\0';
RESIZE_MALLOCED_BUFFER (token, token_index, 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
- strcpy (token + token_index, ttok);
- token_index += 2;
+ token[token_index++] = '$';
+ token[token_index++] = peek_char;
dollar_present = 1;
all_digit_token = 0;
- FREE (ttok);
goto next_character;
}
else
@@ -4625,21 +4759,24 @@ read_token_word (character)
goto got_token;
}
- got_character:
+got_character:
if (character == CTLESC || character == CTLNUL)
- token[token_index++] = CTLESC;
+ {
+ RESIZE_MALLOCED_BUFFER (token, token_index, 2, token_buffer_size,
+ TOKEN_DEFAULT_GROW_SIZE);
+ token[token_index++] = CTLESC;
+ }
+ else
+got_escaped_character:
+ RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size,
+ TOKEN_DEFAULT_GROW_SIZE);
- got_escaped_character:
+ token[token_index++] = character;
all_digit_token &= DIGIT (character);
dollar_present |= character == '$';
- token[token_index++] = character;
-
- RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size,
- TOKEN_DEFAULT_GROW_SIZE);
-
next_character:
if (character == '\n' && SHOULD_PROMPT ())
prompt_again ();
@@ -4653,21 +4790,22 @@ read_token_word (character)
got_token:
+ /* Calls to RESIZE_MALLOCED_BUFFER ensure there is sufficient room. */
token[token_index] = '\0';
/* Check to see what thing we should return. If the last_read_token
is a `<', or a `&', or the character which ended this token is
a '>' or '<', then, and ONLY then, is this input token a NUMBER.
Otherwise, it is just a word, and should be returned as such. */
- if MBTEST(all_digit_token && (character == '<' || character == '>' || \
- last_read_token == LESS_AND || \
+ if MBTEST(all_digit_token && (character == '<' || character == '>' ||
+ last_read_token == LESS_AND ||
last_read_token == GREATER_AND))
{
if (legal_number (token, &lvalue) && (int)lvalue == lvalue)
- yylval.number = lvalue;
- else
- yylval.number = -1;
- return (NUMBER);
+ {
+ yylval.number = lvalue;
+ return (NUMBER);
+ }
}
/* Check for special case tokens. */
@@ -4717,7 +4855,11 @@ got_token:
the_word->flags |= W_ASSIGNMENT;
/* Don't perform word splitting on assignment statements. */
if (assignment_acceptable (last_read_token) || (parser_state & PST_COMPASSIGN) != 0)
- the_word->flags |= W_NOSPLIT;
+ {
+ the_word->flags |= W_NOSPLIT;
+ if (parser_state & PST_COMPASSIGN)
+ the_word->flags |= W_NOGLOB; /* XXX - W_NOBRACE? */
+ }
}
if (command_token_position (last_read_token))
@@ -4737,7 +4879,11 @@ got_token:
{
/* can use token; already copied to the_word */
token[token_index-1] = '\0';
+#if defined (ARRAY_VARS)
+ if (legal_identifier (token+1) || valid_array_reference (token+1))
+#else
if (legal_identifier (token+1))
+#endif
{
strcpy (the_word->word, token+1);
/*itrace("read_token_word: returning REDIR_WORD for %s", the_word->word);*/
@@ -4829,6 +4975,14 @@ find_reserved_word (tokstr)
return -1;
}
+/* An interface to let the rest of the shell (primarily the completion
+ system) know what the parser is expecting. */
+int
+parser_in_command_position ()
+{
+ return (command_token_position (last_read_token));
+}
+
#if 0
#if defined (READLINE)
/* Called after each time readline is called. This insures that whatever
@@ -5273,9 +5427,13 @@ decode_prompt_string (string)
#undef ROOT_PATH
#undef DOUBLE_SLASH_ROOT
else
- /* polite_directory_format is guaranteed to return a string
- no longer than PATH_MAX - 1 characters. */
- strcpy (t_string, polite_directory_format (t_string));
+ {
+ /* polite_directory_format is guaranteed to return a string
+ no longer than PATH_MAX - 1 characters. */
+ temp = polite_directory_format (t_string);
+ if (temp != t_string)
+ strcpy (t_string, temp);
+ }
temp = trim_pathname (t_string, PATH_MAX - 1);
/* If we're going to be expanding the prompt string later,
@@ -5988,6 +6146,8 @@ save_input_line_state (ls)
/* force reallocation */
shell_input_line = 0;
shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
+
+ return ls;
}
void
@@ -6013,7 +6173,8 @@ restore_input_line_state (ls)
static void
set_line_mbstate ()
{
- int i, previ, len, c;
+ int c;
+ size_t i, previ, len;
mbstate_t mbs, prevs;
size_t mbclen;
@@ -6031,7 +6192,7 @@ set_line_mbstate ()
c = shell_input_line[i];
if (c == EOF)
{
- int j;
+ size_t j;
for (j = i; j < len; j++)
shell_input_line_property[j] = 1;
break;
@@ -6054,7 +6215,7 @@ set_line_mbstate ()
else
{
/* XXX - what to do if mbrlen returns 0? (null wide character) */
- int j;
+ size_t j;
for (j = i; j < len; j++)
shell_input_line_property[j] = 1;
break;
diff --git a/parser-built b/parser-built
index 0de3853c..b280e409 100644
--- a/parser-built
+++ b/parser-built
@@ -142,7 +142,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 323 "/Users/chet/src/bash/src/parse.y"
+#line 324 "/usr/homes/chet/src/bash/src/parse.y"
{
WORD_DESC *word; /* the word that we read. */
int number; /* the number that we read. */
@@ -152,7 +152,7 @@ typedef union YYSTYPE
ELEMENT element;
PATTERN_LIST *pattern;
}
-/* Line 1489 of yacc.c. */
+/* Line 1529 of yacc.c. */
#line 157 "y.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/parser.h b/parser.h
index 50784567..8d396dff 100644
--- a/parser.h
+++ b/parser.h
@@ -45,7 +45,7 @@
#define PST_REGEXP 0x010000 /* parsing an ERE/BRE as a single word */
#define PST_HEREDOC 0x020000 /* reading body of here-document */
#define PST_REPARSE 0x040000 /* re-parsing in parse_string_to_word_list */
-#define PST_REDIRLIST 0x080000 /* parsing a list of redirctions preceding a simple command name */
+#define PST_REDIRLIST 0x080000 /* parsing a list of redirections preceding a simple command name */
/* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */
@@ -67,6 +67,7 @@ struct dstack {
#define DOLBRACE_OP 0x02
#define DOLBRACE_WORD 0x04
-#define DOLBRACE_QUOTE 0x40
+#define DOLBRACE_QUOTE 0x40 /* single quote is special in double quotes */
+#define DOLBRACE_QUOTE2 0x80 /* single quote is semi-special in double quotes */
#endif /* _PARSER_H_ */
diff --git a/patchlevel.h b/patchlevel.h
index d9598435..d3516b22 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -1,6 +1,6 @@
/* patchlevel.h -- current bash patch level */
-/* Copyright (C) 2001-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -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 45
+#define PATCHLEVEL 0
#endif /* _PATCHLEVEL_H_ */
diff --git a/pathexp.c b/pathexp.c
index f2399568..d7315e38 100644
--- a/pathexp.c
+++ b/pathexp.c
@@ -1,6 +1,6 @@
/* pathexp.c -- The shell interface to the globbing library. */
-/* Copyright (C) 1995-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2014 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -41,7 +41,7 @@
static int glob_name_is_acceptable __P((const char *));
static void ignore_globbed_names __P((char **, sh_ignore_func_t *));
static char *split_ignorespec __P((char *, int *));
-
+
#if defined (USE_POSIX_GLOB_LIBRARY)
# include <glob.h>
typedef int posix_glob_errfunc_t __P((const char *, int));
@@ -157,7 +157,7 @@ glob_char_p (s)
case '+':
case '@':
case '!':
- if (s[1] == '(') /*(*/
+ if (s[1] == '(') /*(*/
return 1;
break;
}
@@ -173,7 +173,9 @@ glob_char_p (s)
removal has not been done (for example, before attempting to match a
pattern while executing a case statement), flags should include
QGLOB_CVTNULL. If flags includes QGLOB_FILENAME, appropriate quoting
- to match a filename should be performed. */
+ to match a filename should be performed. QGLOB_REGEXP means we're
+ quoting for a Posix ERE (for [[ string =~ pat ]]) and that requires
+ some special handling. */
char *
quote_string_for_globbing (pathname, qflags)
const char *pathname;
@@ -181,8 +183,9 @@ quote_string_for_globbing (pathname, qflags)
{
char *temp;
register int i, j;
+ int brack, cclass, collsym, equiv, c, last_was_backslash;
- temp = (char *)xmalloc (strlen (pathname) + 1);
+ temp = (char *)xmalloc (2 * strlen (pathname) + 1);
if ((qflags & QGLOB_CVTNULL) && QUOTED_NULL (pathname))
{
@@ -190,12 +193,28 @@ quote_string_for_globbing (pathname, qflags)
return temp;
}
+ brack = cclass = collsym = equiv = last_was_backslash = 0;
for (i = j = 0; pathname[i]; i++)
{
- if (pathname[i] == CTLESC)
+ /* Fix for CTLESC at the end of the string? */
+ if (pathname[i] == CTLESC && pathname[i+1] == '\0')
+ {
+ temp[j++] = pathname[i++];
+ break;
+ }
+ /* If we are parsing regexp, turn CTLESC CTLESC into CTLESC. It's not an
+ ERE special character, so we should just be able to pass it through. */
+ else if ((qflags & QGLOB_REGEXP) && pathname[i] == CTLESC && pathname[i+1] == CTLESC)
+ {
+ i++;
+ temp[j++] = pathname[i];
+ continue;
+ }
+ else if (pathname[i] == CTLESC)
{
if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
continue;
+ /* What to do if preceding char is backslash? */
if (pathname[i+1] != CTLESC && (qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
continue;
temp[j++] = '\\';
@@ -203,15 +222,90 @@ quote_string_for_globbing (pathname, qflags)
if (pathname[i] == '\0')
break;
}
- else if (pathname[i] == '\\')
+ else if ((qflags & QGLOB_REGEXP) && (i == 0 || pathname[i-1] != CTLESC) && pathname[i] == '[') /*]*/
+ {
+ brack = 1;
+ temp[j++] = pathname[i++]; /* open bracket */
+ c = pathname[i++]; /* c == char after open bracket */
+ do
+ {
+ if (c == 0)
+ goto endpat;
+ else if (c == CTLESC)
+ {
+ /* skip c, check for EOS, let assignment at end of loop */
+ /* pathname[i] == backslash-escaped character */
+ if (pathname[i] == 0)
+ goto endpat;
+ temp[j++] = pathname[i++];
+ }
+ else if (c == '[' && pathname[i] == ':')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ cclass = 1;
+ }
+ else if (cclass && c == ':' && pathname[i] == ']')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ cclass = 0;
+ }
+ else if (c == '[' && pathname[i] == '=')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ if (pathname[i] == ']')
+ temp[j++] = pathname[i++]; /* right brack can be in equiv */
+ equiv = 1;
+ }
+ else if (equiv && c == '=' && pathname[i] == ']')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ equiv = 0;
+ }
+ else if (c == '[' && pathname[i] == '.')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ if (pathname[i] == ']')
+ temp[j++] = pathname[i++]; /* right brack can be in collsym */
+ collsym = 1;
+ }
+ else if (collsym && c == '.' && pathname[i] == ']')
+ {
+ temp[j++] = c;
+ temp[j++] = pathname[i++];
+ collsym = 0;
+ }
+ else
+ temp[j++] = c;
+ }
+ while ((c = pathname[i++]) != ']');
+ temp[j++] = c; /* closing right bracket */
+ i--; /* increment will happen above in loop */
+ continue; /* skip double assignment below */
+ }
+ else if (pathname[i] == '\\' && (qflags & QGLOB_REGEXP) == 0)
{
+ /* XXX - if not quoting regexp, use backslash as quote char. Should
+ we just pass it through without treating it as special? That is
+ what ksh93 seems to do. */
+
+ /* If we want to pass through backslash unaltered, comment out these
+ lines. */
temp[j++] = '\\';
+
i++;
if (pathname[i] == '\0')
break;
}
+ else if (pathname[i] == '\\' && (qflags & QGLOB_REGEXP))
+ last_was_backslash = 1;
temp[j++] = pathname[i];
}
+endpat:
temp[j] = '\0';
return (temp);
@@ -235,7 +329,7 @@ quote_globbing_chars (string)
*t++ = '\\';
/* Copy a single (possibly multibyte) character from s to t,
- incrementing both. */
+ incrementing both. */
COPY_CHAR_P (t, s, send);
}
*t = '\0';
diff --git a/pcomplete.c b/pcomplete.c
index e4f20590..a3327ed5 100644
--- a/pcomplete.c
+++ b/pcomplete.c
@@ -1,6 +1,6 @@
/* pcomplete.c - functions to generate lists of matches for programmable completion. */
-/* Copyright (C) 1999-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -37,6 +37,8 @@
# include <varargs.h>
#endif
+#include <sys/time.h>
+
#include <stdio.h>
#include "bashansi.h"
#include "bashintl.h"
@@ -56,8 +58,11 @@
# include "trap.h"
#endif
+#include "shmbutil.h"
+
#include "builtins.h"
#include "builtins/common.h"
+#include "builtins/builtext.h"
#include <glob/glob.h>
#include <glob/strmatch.h>
@@ -82,6 +87,7 @@ extern char *strpbrk __P((char *, char *));
extern int array_needs_making;
extern STRING_INT_ALIST word_token_alist[];
extern char *signal_names[];
+extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
#if defined (DEBUG)
#if defined (PREFER_STDARG)
@@ -99,6 +105,7 @@ static int it_init_disabled __P((ITEMLIST *));
static int it_init_enabled __P((ITEMLIST *));
static int it_init_exported __P((ITEMLIST *));
static int it_init_functions __P((ITEMLIST *));
+static int it_init_helptopics __P((ITEMLIST *));
static int it_init_hostnames __P((ITEMLIST *));
static int it_init_jobs __P((ITEMLIST *));
static int it_init_running __P((ITEMLIST *));
@@ -119,10 +126,13 @@ static STRINGLIST *gen_action_completions __P((COMPSPEC *, const char *));
static STRINGLIST *gen_globpat_matches __P((COMPSPEC *, const char *));
static STRINGLIST *gen_wordlist_matches __P((COMPSPEC *, const char *));
static STRINGLIST *gen_shell_function_matches __P((COMPSPEC *, const char *,
+ const char *,
char *, int, WORD_LIST *,
int, int, int *));
-static STRINGLIST *gen_command_matches __P((COMPSPEC *, const char *, char *,
- int, WORD_LIST *, int, int));
+static STRINGLIST *gen_command_matches __P((COMPSPEC *, const char *,
+ const char *,
+ char *, int, WORD_LIST *,
+ int, int));
static STRINGLIST *gen_progcomp_completions __P((const char *, const char *,
const char *,
@@ -136,7 +146,7 @@ static SHELL_VAR *bind_comp_words __P((WORD_LIST *));
#endif
static void bind_compfunc_variables __P((char *, int, WORD_LIST *, int, int));
static void unbind_compfunc_variables __P((int));
-static WORD_LIST *build_arg_list __P((char *, const char *, WORD_LIST *, int));
+static WORD_LIST *build_arg_list __P((char *, const char *, const char *, WORD_LIST *, int));
static WORD_LIST *command_line_to_word_list __P((char *, int, int, int *, int *));
#ifdef DEBUG
@@ -157,6 +167,7 @@ ITEMLIST it_enabled = { 0, it_init_enabled, (STRINGLIST *)0 };
ITEMLIST it_exports = { LIST_DYNAMIC, it_init_exported, (STRINGLIST *)0 };
ITEMLIST it_files = { LIST_DYNAMIC }; /* unused */
ITEMLIST it_functions = { 0, it_init_functions, (STRINGLIST *)0 };
+ITEMLIST it_helptopics = { 0, it_init_helptopics, (STRINGLIST *)0 };
ITEMLIST it_hostnames = { LIST_DYNAMIC, it_init_hostnames, (STRINGLIST *)0 };
ITEMLIST it_groups = { LIST_DYNAMIC }; /* unused */
ITEMLIST it_jobs = { LIST_DYNAMIC, it_init_jobs, (STRINGLIST *)0 };
@@ -368,6 +379,7 @@ it_init_aliases (itp)
#else
itp->slist = (STRINGLIST *)NULL;
#endif
+ free (alias_list);
return 1;
}
@@ -497,6 +509,24 @@ it_init_functions (itp)
return 0;
}
+/* Like it_init_builtins, but includes everything the help builtin looks at,
+ not just builtins with an active implementing function. */
+static int
+it_init_helptopics (itp)
+ ITEMLIST *itp;
+{
+ STRINGLIST *sl;
+ register int i, n;
+
+ sl = strlist_create (num_shell_builtins);
+ for (i = n = 0; i < num_shell_builtins; i++)
+ sl->list[n++] = shell_builtins[i].name;
+ sl->list[sl->list_len = n] = (char *)NULL;
+ itp->flags |= LIST_DONTFREEMEMBERS;
+ itp->slist = sl;
+ return 0;
+}
+
static int
it_init_hostnames (itp)
ITEMLIST *itp;
@@ -693,16 +723,29 @@ pcomp_filename_completion_function (text, state)
{
static char *dfn; /* dequoted filename */
int qc;
+ int iscompgen, iscompleting;
if (state == 0)
{
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
+ /* There are roughly three paths we can follow to get here:
+ 1. complete -f
+ 2. compgen -f "$word" from a completion function
+ 3. compgen -f "$word" from the command line
+ They all need to be handled.
+
+ In the first two cases, readline will run the filename dequoting
+ function in rl_filename_completion_function if it found a filename
+ quoting character in the word to be completed
+ (rl_completion_found_quote). We run the dequoting function here
+ if we're running compgen, we're not completing, and the
+ rl_filename_completion_function won't dequote the filename
+ (rl_completion_found_quote == 0). */
+ iscompgen = this_shell_builtin == compgen_builtin;
+ iscompleting = RL_ISSTATE (RL_STATE_COMPLETING);
+ if (iscompgen && iscompleting == 0 && rl_completion_found_quote == 0
+ && rl_filename_dequoting_function)
{
/* Use rl_completion_quote_character because any single or
double quotes have been removed by the time TEXT makes it
@@ -752,6 +795,7 @@ gen_action_completions (cs, text)
STRINGLIST *ret, *tmatches;
char **cmatches; /* from rl_completion_matches ... */
unsigned long flags;
+ int t;
ret = tmatches = (STRINGLIST *)NULL;
flags = cs->actions;
@@ -764,6 +808,7 @@ gen_action_completions (cs, text)
GEN_COMPS (flags, CA_ENABLED, &it_enabled, text, ret, tmatches);
GEN_COMPS (flags, CA_EXPORT, &it_exports, text, ret, tmatches);
GEN_COMPS (flags, CA_FUNCTION, &it_functions, text, ret, tmatches);
+ GEN_COMPS (flags, CA_HELPTOPIC, &it_helptopics, text, ret, tmatches);
GEN_COMPS (flags, CA_HOSTNAME, &it_hostnames, text, ret, tmatches);
GEN_COMPS (flags, CA_JOB, &it_jobs, text, ret, tmatches);
GEN_COMPS (flags, CA_KEYWORD, &it_keywords, text, ret, tmatches);
@@ -783,8 +828,15 @@ gen_action_completions (cs, text)
/* And lastly, the special case for directories */
if (flags & CA_DIRECTORY)
{
+ t = rl_filename_completion_desired;
rl_completion_mark_symlink_dirs = 1; /* override user preference */
cmatches = bash_directory_completion_matches (text);
+ /* If we did not want filename completion before this, and there are
+ no matches, turn off rl_filename_completion_desired so whatever
+ matches we get are not treated as filenames (it gets turned on by
+ rl_filename_completion_function unconditionally). */
+ if (t == 0 && cmatches == 0 && rl_filename_completion_desired == 1)
+ rl_filename_completion_desired = 0;
tmatches = completions_to_stringlist (cmatches);
ret = strlist_append (ret, tmatches);
strvec_dispose (cmatches);
@@ -833,7 +885,10 @@ gen_wordlist_matches (cs, text)
/* This used to be a simple expand_string(cs->words, 0), but that won't
do -- there's no way to split a simple list into individual words
that way, since the shell semantics say that word splitting is done
- only on the results of expansion. */
+ only on the results of expansion. split_at_delims also handles embedded
+ quoted strings and preserves the quotes for the expand_words_shellexp
+ function call that follows. */
+ /* XXX - this is where this function spends most of its time */
l = split_at_delims (cs->words, strlen (cs->words), (char *)NULL, -1, 0, (int *)NULL, (int *)NULL);
if (l == 0)
return ((STRINGLIST *)NULL);
@@ -891,6 +946,8 @@ bind_compfunc_variables (line, ind, lwords, cw, exported)
char ibuf[INT_STRLEN_BOUND(int) + 1];
char *value;
SHELL_VAR *v;
+ size_t llen;
+ int c;
/* Set the variables that the function expects while it executes. Maybe
these should be in the function environment (temporary_env). */
@@ -898,7 +955,12 @@ bind_compfunc_variables (line, ind, lwords, cw, exported)
if (v && exported)
VSETATTR(v, att_exported);
- value = inttostr (ind, ibuf, sizeof(ibuf));
+ /* Post bash-4.2: COMP_POINT is characters instead of bytes. */
+ c = line[ind];
+ line[ind] = '\0';
+ llen = MB_STRLEN (line);
+ line[ind] = c;
+ value = inttostr (llen, ibuf, sizeof(ibuf));
v = bind_int_variable ("COMP_POINT", value);
if (v && exported)
VSETATTR(v, att_exported);
@@ -953,11 +1015,12 @@ unbind_compfunc_variables (exported)
Functions can access all of the words in the current command line
with the COMP_WORDS array. External commands cannot; they have to
- make do with the COMP_LINE and COMP_POINT variables. */
+ make do with the COMP_LINE and COMP_POINT variables. */
static WORD_LIST *
-build_arg_list (cmd, text, lwords, ind)
+build_arg_list (cmd, cname, text, lwords, ind)
char *cmd;
+ const char *cname;
const char *text;
WORD_LIST *lwords;
int ind;
@@ -968,13 +1031,13 @@ build_arg_list (cmd, text, lwords, ind)
ret = (WORD_LIST *)NULL;
w = make_word (cmd);
- ret = make_word_list (w, (WORD_LIST *)NULL);
+ ret = make_word_list (w, (WORD_LIST *)NULL); /* $0 */
- w = (lwords && lwords->word) ? copy_word (lwords->word) : make_word ("");
+ w = make_word (cname); /* $1 */
cl = ret->next = make_word_list (w, (WORD_LIST *)NULL);
w = make_word (text);
- cl->next = make_word_list (w, (WORD_LIST *)NULL);
+ cl->next = make_word_list (w, (WORD_LIST *)NULL); /* $2 */
cl = cl->next;
/* Search lwords for current word */
@@ -999,8 +1062,9 @@ build_arg_list (cmd, text, lwords, ind)
variable, this does nothing if arrays are not compiled into the shell. */
static STRINGLIST *
-gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw, foundp)
+gen_shell_function_matches (cs, cmd, text, line, ind, lwords, nw, cw, foundp)
COMPSPEC *cs;
+ const char *cmd;
const char *text;
char *line;
int ind;
@@ -1041,7 +1105,7 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw, foundp)
1-based, while bash arrays are 0-based. */
bind_compfunc_variables (line, ind, lwords, cw - 1, 0);
- cmdlist = build_arg_list (funcname, text, lwords, cw);
+ cmdlist = build_arg_list (funcname, cmd, text, lwords, cw);
pps = &ps;
save_parser_state (pps);
@@ -1103,8 +1167,9 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw, foundp)
STRINGLIST from the results and return it. */
static STRINGLIST *
-gen_command_matches (cs, text, line, ind, lwords, nw, cw)
+gen_command_matches (cs, cmd, text, line, ind, lwords, nw, cw)
COMPSPEC *cs;
+ const char *cmd;
const char *text;
char *line;
int ind;
@@ -1118,7 +1183,7 @@ gen_command_matches (cs, text, line, ind, lwords, nw, cw)
STRINGLIST *sl;
bind_compfunc_variables (line, ind, lwords, cw, 1);
- cmdlist = build_arg_list (cs->command, text, lwords, cw);
+ cmdlist = build_arg_list (cs->command, cmd, text, lwords, cw);
/* Estimate the size needed for the buffer. */
n = strlen (cs->command);
@@ -1148,7 +1213,8 @@ gen_command_matches (cs, text, line, ind, lwords, nw, cw)
tw = command_substitute (cscmd, 0);
csbuf = tw ? tw->word : (char *)NULL;
- dispose_word_desc (tw);
+ if (tw)
+ dispose_word_desc (tw);
/* Now clean up and destroy everything. */
dispose_words (cmdlist);
@@ -1217,6 +1283,7 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
char *line;
int llen, nw, cw, found, foundf;
WORD_LIST *lwords;
+ WORD_DESC *lw;
COMPSPEC *tcs;
found = 1;
@@ -1288,6 +1355,14 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
line, llen, rl_point - start, &nw, &cw);
#endif
lwords = command_line_to_word_list (line, llen, rl_point - start, &nw, &cw);
+ /* If we skipped a NULL word at the beginning of the line, add it back */
+ if (lwords && lwords->word && cmd[0] == 0 && lwords->word->word[0] != 0)
+ {
+ lw = make_bare_word (cmd);
+ lwords = make_word_list (lw, lwords);
+ nw++;
+ cw++;
+ }
#ifdef DEBUG
if (lwords == 0 && llen > 0)
debug_printf ("ERROR: command_line_to_word_list returns NULL");
@@ -1306,7 +1381,7 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
if (cs->funcname)
{
foundf = 0;
- tmatches = gen_shell_function_matches (cs, word, line, rl_point - start, lwords, nw, cw, &foundf);
+ tmatches = gen_shell_function_matches (cs, cmd, word, line, rl_point - start, lwords, nw, cw, &foundf);
if (foundf != 0)
found = foundf;
if (tmatches)
@@ -1314,7 +1389,7 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
#ifdef DEBUG
if (progcomp_debug)
{
- debug_printf ("gen_shell_function_matches (%p, %s, %p, %d, %d) -->", cs, word, lwords, nw, cw);
+ debug_printf ("gen_shell_function_matches (%p, %s, %s, %p, %d, %d) -->", cs, cmd, word, lwords, nw, cw);
strlist_print (tmatches, "\t");
rl_on_new_line ();
}
@@ -1326,13 +1401,13 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
if (cs->command)
{
- tmatches = gen_command_matches (cs, word, line, rl_point - start, lwords, nw, cw);
+ tmatches = gen_command_matches (cs, cmd, word, line, rl_point - start, lwords, nw, cw);
if (tmatches)
{
#ifdef DEBUG
if (progcomp_debug)
{
- debug_printf ("gen_command_matches (%p, %s, %p, %d, %d) -->", cs, word, lwords, nw, cw);
+ debug_printf ("gen_command_matches (%p, %s, %s, %p, %d, %d) -->", cs, cmd, word, lwords, nw, cw);
strlist_print (tmatches, "\t");
rl_on_new_line ();
}
@@ -1388,6 +1463,7 @@ gen_compspec_completions (cs, cmd, word, start, end, foundp)
{
tcs = compspec_create ();
tcs->actions = CA_DIRECTORY;
+ FREE (ret);
ret = gen_action_completions (tcs, word);
compspec_dispose (tcs);
}
@@ -1415,6 +1491,10 @@ pcomp_set_readline_variables (flags, nval)
/* If the user doesn't want a space appended, tell readline. */
if (flags & COPT_NOSPACE)
rl_completion_suppress_append = nval;
+ /* The value here is inverted, since the default is on and the `noquote'
+ option is supposed to turn it off */
+ if (flags & COPT_NOQUOTE)
+ rl_filename_quoting_desired = 1 - nval;
}
/* Set or unset FLAGS in the options word of the current compspec.
@@ -1448,7 +1528,13 @@ gen_progcomp_completions (ocmd, cmd, word, start, end, foundp, retryp, lastcs)
cs = progcomp_search (ocmd);
if (cs == 0 || cs == *lastcs)
- return (NULL);
+ {
+#if 0
+ if (foundp)
+ *foundp = 0;
+#endif
+ return (NULL);
+ }
if (*lastcs)
compspec_dispose (*lastcs);
diff --git a/pcomplete.h b/pcomplete.h
index 6c1a664c..67f6393f 100644
--- a/pcomplete.h
+++ b/pcomplete.h
@@ -71,9 +71,10 @@ typedef struct compspec {
#define COPT_DEFAULT (1<<1)
#define COPT_FILENAMES (1<<2)
#define COPT_DIRNAMES (1<<3)
-#define COPT_NOSPACE (1<<4)
-#define COPT_BASHDEFAULT (1<<5)
-#define COPT_PLUSDIRS (1<<6)
+#define COPT_NOQUOTE (1<<4)
+#define COPT_NOSPACE (1<<5)
+#define COPT_BASHDEFAULT (1<<6)
+#define COPT_PLUSDIRS (1<<7)
/* List of items is used by the code that implements the programmable
completions. */
@@ -116,6 +117,7 @@ extern ITEMLIST it_exports;
extern ITEMLIST it_files;
extern ITEMLIST it_functions;
extern ITEMLIST it_groups;
+extern ITEMLIST it_helptopics;
extern ITEMLIST it_hostnames;
extern ITEMLIST it_jobs;
extern ITEMLIST it_keywords;
diff --git a/pcomplib.c b/pcomplib.c
index fe337e4a..7361bb17 100644
--- a/pcomplib.c
+++ b/pcomplib.c
@@ -37,7 +37,7 @@
#include "shell.h"
#include "pcomplete.h"
-#define COMPLETE_HASH_BUCKETS 32 /* must be power of two */
+#define COMPLETE_HASH_BUCKETS 128 /* must be power of two */
#define STRDUP(x) ((x) ? savestring (x) : (char *)NULL)
diff --git a/po/._bg.po b/po/._bg.po
new file mode 100644
index 00000000..8bfb9f72
--- /dev/null
+++ b/po/._bg.po
Binary files differ
diff --git a/po/LINGUAS b/po/LINGUAS
index 1d48d095..a97ac6a8 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,2 +1,2 @@
# Set of available languages.
-en@quot en@boldquot af bg ca cs de eo es et fi fr ga hu id ja lt nl pl pt_BR ro ru sk sv tr uk vi zh_CN zh_TW
+en@quot en@boldquot af bg ca cs da de el eo es et fi fr ga gl hr hu id it ja lt nl pl pt_BR ro ru sk sl sr sv tr uk vi zh_CN zh_TW
diff --git a/po/af.gmo b/po/af.gmo
index 338cbdd7..9bb144e8 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index a15e987d..bef026b6 100644
--- a/po/af.po
+++ b/po/af.po
@@ -6,98 +6,114 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2004-03-17 13:48+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
+"Language: af\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
#, fuzzy
msgid "bad array subscript"
msgstr "Os/2 Biskaart Skikking"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%s: illegal option -- %c\n"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr ""
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: kan nie %s skep nie"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%s: illegal option -- %c\n"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, fuzzy, c-format
msgid "%s: cannot read: %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, fuzzy, c-format
msgid "`%s': cannot unbind"
msgstr "%s: bevel nie gevind nie"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, fuzzy, c-format
msgid "`%s': unknown function name"
msgstr "%s: leesalleen-funksie"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -111,18 +127,23 @@ msgstr "Afteken"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr ""
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+#, fuzzy
+msgid "too many arguments"
+msgstr "te veel parameters"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr ""
@@ -131,7 +152,7 @@ msgstr ""
msgid "line %d: "
msgstr "3d modus"
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "besig om te skryf"
@@ -141,12 +162,7 @@ msgstr "besig om te skryf"
msgid "%s: usage: "
msgstr ""
-#: builtins/common.c:166 test.c:832
-#, fuzzy
-msgid "too many arguments"
-msgstr "te veel parameters"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, fuzzy, c-format
msgid "%s: option requires an argument"
msgstr "%s: option `%s' requires an argument\n"
@@ -161,7 +177,7 @@ msgstr ""
msgid "%s: not found"
msgstr "%s: bevel nie gevind nie"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, fuzzy, c-format
msgid "%s: invalid option"
msgstr "%s: illegal option -- %c\n"
@@ -171,7 +187,7 @@ msgstr "%s: illegal option -- %c\n"
msgid "%s: invalid option name"
msgstr "%s: illegal option -- %c\n"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, fuzzy, c-format
msgid "`%s': not a valid identifier"
msgstr "Die datum is nie geldige!"
@@ -186,7 +202,7 @@ msgstr "Die sein nommer wat was gevang het"
msgid "invalid hex number"
msgstr "Die sein nommer wat was gevang het"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
#, fuzzy
msgid "invalid number"
msgstr "Die sein nommer wat was gevang het"
@@ -201,7 +217,7 @@ msgstr ""
msgid "`%s': not a pid or valid job spec"
msgstr ""
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, fuzzy, c-format
msgid "%s: readonly variable"
msgstr "Veranderlike boom"
@@ -278,48 +294,58 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr "%s: dubbelsinnige herroetering"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr ""
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: leesalleen-funksie"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, fuzzy, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -348,24 +374,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: is 'n gids"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, fuzzy, c-format
msgid "%s: not a regular file"
msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
@@ -399,11 +424,11 @@ msgstr ""
msgid "no command found"
msgstr "%s: bevel nie gevind nie"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, fuzzy, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: kan nie %s skep nie"
@@ -448,18 +473,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, fuzzy, c-format
msgid "%s: cannot open: %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -479,7 +504,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, fuzzy, c-format
msgid "%s: history expansion failed"
msgstr "%s: heelgetal-uitdrukking is verwag\n"
@@ -493,17 +518,17 @@ msgstr "%s: heelgetal-uitdrukking is verwag\n"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
#, fuzzy
msgid "Unknown error"
msgstr "Onbekende fout %d"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
#, fuzzy
msgid "expression expected"
msgstr "Bools uitdrukking verwag"
@@ -513,65 +538,70 @@ msgstr "Bools uitdrukking verwag"
msgid "%s: not an indexed array"
msgstr "Veranderlike boom"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%s: illegal option -- %c\n"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%s: illegal option -- %c\n"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "Die sein nommer wat was gevang het"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "Veranderlike boom"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: illegal option -- %c\n"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -581,21 +611,26 @@ msgstr ""
msgid "no other directory"
msgstr "boonste lêergids."
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: illegal option -- %c\n"
+
+#: builtins/pushd.def:468
#, fuzzy
msgid "<no current directory>"
msgstr "Nuutste gebruik word werksaam gids"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
#, fuzzy
msgid "directory stack index"
msgstr "Stapel grootte verhoog"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -619,7 +654,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -644,7 +679,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -665,40 +700,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, fuzzy, c-format
msgid "read error: %d: %s"
msgstr "pypfout: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
-#: builtins/set.def:808
+#: builtins/set.def:826
#, fuzzy, c-format
msgid "%s: cannot unset"
msgstr "%s: kan nie %s skep nie"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, fuzzy, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, fuzzy, c-format
msgid "%s: not an array variable"
msgstr "Veranderlike boom"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, fuzzy, c-format
msgid "%s: not a function"
msgstr "%s: leesalleen-funksie"
@@ -708,11 +743,11 @@ msgstr "%s: leesalleen-funksie"
msgid "shift count"
msgstr "Shift"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -755,7 +790,7 @@ msgstr "%s: leesalleen-funksie"
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -765,47 +800,47 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, fuzzy, c-format
msgid "`%c': bad command"
msgstr "%s: illegal option -- %c\n"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, fuzzy, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
#, fuzzy
msgid "limit"
msgstr "Filter beperk:"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, fuzzy, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: kan nie %s skep nie"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
#, fuzzy
msgid "octal number"
msgstr "Die sein nommer wat was gevang het"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -819,316 +854,331 @@ msgstr "Bevelreël"
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
#, fuzzy
msgid "unknown command error"
msgstr "Onbekende fout %d"
-#: error.c:407
+#: error.c:441
#, fuzzy
msgid "bad command type"
msgstr "bevelnaam"
-#: error.c:408
+#: error.c:442
#, fuzzy
msgid "bad connector"
msgstr "foutiewe verbinder`%d'"
-#: error.c:409
+#: error.c:443
#, fuzzy
msgid "bad jump"
msgstr "Spring na:"
-#: error.c:447
+#: error.c:481
#, fuzzy, c-format
msgid "%s: unbound variable"
msgstr "Veranderlike boom"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr ""
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "pypfout: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr ""
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: bevel nie gevind nie"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, fuzzy, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: is 'n gids"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5404
#, fuzzy, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "kan nie fd %d na fd 0 dupliseer nie: %s"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr ""
-#: expr.c:280
+#: expr.c:283
#, fuzzy
msgid "recursion stack underflow"
msgstr "Stapel grootte verhoog"
-#: expr.c:422
+#: expr.c:431
#, fuzzy
msgid "syntax error in expression"
msgstr "Sintaks fout in patroon"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr ""
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
#, fuzzy
msgid "division by 0"
msgstr "devisie by nul."
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr ""
-#: expr.c:564
+#: expr.c:595
#, fuzzy
msgid "`:' expected for conditional expression"
msgstr "Soek die lêer vir 'n uitdrukking"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
#, fuzzy
msgid "missing `)'"
msgstr "Ontbrekende '>'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
#, fuzzy
msgid "syntax error: operand expected"
msgstr "Onverwagte einde van lêer tydens inlees van hulpbron."
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, fuzzy, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
"Hierdie is die fout boodskap van %1:\n"
"%2"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "waarde te groot vir basis"
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "%s: heelgetal-uitdrukking is verwag\n"
-#: general.c:61
+#: general.c:62
#, fuzzy
msgid "getcwd: cannot access parent directories"
msgstr "Kan nie die program uitvoer nie:"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, fuzzy, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "kan nie fd %d na fd 0 dupliseer nie: %s"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, fuzzy, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "E108: Geen veranderlike: \"%s\""
-#: jobs.c:1445
+#: jobs.c:1450
#, fuzzy, c-format
msgid "Signal %d"
msgstr "Sein kwaliteit:"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Klaar"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
#, fuzzy
msgid "Stopped"
msgstr "Op gehou"
-#: jobs.c:1468
+#: jobs.c:1473
#, fuzzy, c-format
msgid "Stopped(%s)"
msgstr "Op gehou"
-#: jobs.c:1472
+#: jobs.c:1477
#, fuzzy
msgid "Running"
msgstr "aktief"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Klaar(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Verlaat %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Onbekende status"
-#: jobs.c:1578
+#: jobs.c:1583
#, fuzzy, c-format
msgid "(core dumped) "
msgstr "Kern Ontwikkelaar"
-#: jobs.c:1597
+#: jobs.c:1602
#, fuzzy, c-format
msgid " (wd: %s)"
msgstr "Aktiveer nou dadelik"
-#: jobs.c:1805
+#: jobs.c:1819
#, fuzzy, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "Fout in die skryf van %s"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr ""
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, fuzzy, c-format
msgid "%s: job has terminated"
msgstr "Die bediener beëindig Die verbinding."
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "3d modus"
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, fuzzy, c-format
msgid " (core dumped)"
msgstr "Kern Ontwikkelaar"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, fuzzy, c-format
msgid "(wd now: %s)\n"
msgstr "Aktiveer nou dadelik"
-#: jobs.c:3609
+#: jobs.c:3782
#, fuzzy
msgid "initialize_job_control: getpgrp failed"
msgstr "Inisialisering van OpenGL het misluk."
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
#, fuzzy
msgid "initialize_job_control: setpgid"
msgstr "Inisialisering van OpenGL het misluk."
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "geen taakbeheer in hierdie dop nie"
@@ -1149,54 +1199,54 @@ msgstr ""
msgid "unknown"
msgstr "(onbekend)"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1219,37 +1269,37 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr ""
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
-#: mailcheck.c:433
+#: mailcheck.c:439
#, fuzzy
msgid "You have mail in $_"
msgstr "Bevestig Pos In"
-#: mailcheck.c:458
+#: mailcheck.c:464
#, fuzzy
msgid "You have new mail in $_"
msgstr "Wanneer nuwe pos arriveer in"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr ""
@@ -1269,122 +1319,122 @@ msgstr "Onverwagte einde van lêer tydens inlees van hulpbron."
msgid "syntax error: `((%s))'"
msgstr "sintaksfout"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr ""
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr ""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-#: parse.y:4034
+#: parse.y:4179
#, fuzzy
msgid "syntax error in conditional expression"
msgstr "Sintaks fout in patroon"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
#, fuzzy
msgid "expected `)'"
msgstr "')' is verwag\n"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, fuzzy, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "%s: binêre operator is verwag\n"
-#: parse.y:4198
+#: parse.y:4343
#, fuzzy
msgid "conditional binary operator expected"
msgstr "%s: binêre operator is verwag\n"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, fuzzy, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "Soek die lêer vir 'n uitdrukking"
-#: parse.y:4238
+#: parse.y:4383
#, fuzzy, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "Soek die lêer vir 'n uitdrukking"
-#: parse.y:4242
+#: parse.y:4387
#, fuzzy, c-format
msgid "unexpected token %d in conditional command"
msgstr "Soek die lêer vir 'n uitdrukking"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
-#: parse.y:5584
+#: parse.y:5755
#, fuzzy, c-format
msgid "syntax error near `%s'"
msgstr "Sintaks fout in patroon"
-#: parse.y:5594
+#: parse.y:5765
#, fuzzy
msgid "syntax error: unexpected end of file"
msgstr "Onverwagte einde van lêer tydens inlees van hulpbron."
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "sintaksfout"
-#: parse.y:5656
+#: parse.y:5827
#, fuzzy, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Gebruik Kaart na Los Tronk"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1394,134 +1444,134 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr ""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, fuzzy, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: dubbelsinnige herroetering"
-#: redir.c:182
+#: redir.c:181
#, fuzzy, c-format
msgid "%s: cannot overwrite existing file"
msgstr "Jy het gespesifiseer 'n bestaande lêer"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr ""
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
#, fuzzy
msgid "redirection error: cannot duplicate fd"
msgstr "Pypfout.\n"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, fuzzy, c-format
msgid "%c%c: invalid option"
msgstr "%s: illegal option -- %c\n"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Ek het nie 'n naam nie!"
-#: shell.c:1795
+#: shell.c:1827
#, fuzzy, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "bedryfstelselkernweergawe"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
msgstr ""
-#: shell.c:1798
+#: shell.c:1830
#, fuzzy
msgid "GNU long options:\n"
msgstr "Gnu C Saamsteller Opsies"
-#: shell.c:1802
+#: shell.c:1834
#, fuzzy
msgid "Shell options:\n"
msgstr "opneem opsies"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr ""
-#: shell.c:1818
+#: shell.c:1850
#, fuzzy, c-format
msgid "\t-%s or -o option\n"
msgstr ""
"Gebruik so: %s LÊER \n"
" of: %s OPSIE\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1727,237 +1777,247 @@ msgstr "Sein kwaliteit:"
msgid "Unknown Signal #%d"
msgstr "Sein kwaliteit:"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, fuzzy, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "--Geen reëls in buffer--"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr ""
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
#, fuzzy
msgid "cannot make pipe for process substitution"
msgstr "Woord Substitusie"
-#: subst.c:5027
+#: subst.c:5113
#, fuzzy
msgid "cannot make child for process substitution"
msgstr "Woord Substitusie"
-#: subst.c:5072
+#: subst.c:5158
#, fuzzy, c-format
msgid "cannot open named pipe %s for reading"
msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
-#: subst.c:5074
+#: subst.c:5160
#, fuzzy, c-format
msgid "cannot open named pipe %s for writing"
msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
-#: subst.c:5092
+#: subst.c:5178
#, fuzzy, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
-#: subst.c:5284
+#: subst.c:5376
#, fuzzy
msgid "cannot make pipe for command substitution"
msgstr "Woord Substitusie"
-#: subst.c:5322
+#: subst.c:5414
#, fuzzy
msgid "cannot make child for command substitution"
msgstr "Woord Substitusie"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr ""
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, fuzzy, c-format
msgid "%s: substring expression < 0"
msgstr "ongeldige uitdrukking"
-#: subst.c:7271
+#: subst.c:7506
#, fuzzy, c-format
msgid "%s: bad substitution"
msgstr "Woord Substitusie"
-#: subst.c:7347
+#: subst.c:7583
#, fuzzy, c-format
msgid "$%s: cannot assign in this way"
msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "--Geen reëls in buffer--"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
#, fuzzy
msgid "argument expected"
msgstr "argument verwag\n"
-#: test.c:155
+#: test.c:156
#, fuzzy, c-format
msgid "%s: integer expression expected"
msgstr "%s: heelgetal-uitdrukking is verwag\n"
-#: test.c:263
+#: test.c:264
#, fuzzy
msgid "`)' expected"
msgstr "')' is verwag\n"
-#: test.c:265
+#: test.c:266
#, fuzzy, c-format
msgid "`)' expected, found %s"
msgstr "')' is verwag, maar %s gevind\n"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, fuzzy, c-format
msgid "%s: unary operator expected"
msgstr "%s: unitêre operator is verwag\n"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, fuzzy, c-format
msgid "%s: binary operator expected"
msgstr "%s: binêre operator is verwag\n"
-#: test.c:816
+#: test.c:860
#, fuzzy
msgid "missing `]'"
msgstr "Ontbrekende '>'"
-#: trap.c:207
+#: trap.c:217
#, fuzzy
msgid "invalid signal number"
msgstr "Die sein nommer wat was gevang het"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr ""
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr ""
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr ""
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: kan nie %s skep nie"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, fuzzy, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "bedryfstelselkernweergawe"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1992,7 +2052,7 @@ msgstr "Volle Naam:"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -2018,7 +2078,7 @@ msgstr "/Opsies/Toets"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "init_cache_dir %s... "
#: builtins.c:66
@@ -2045,7 +2105,7 @@ msgstr "Gebruik so: %s [OPSIE] [BEVEL [ARG]...]\n"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "E418: Ongeldige waarde: %s"
#: builtins.c:78
@@ -2163,7 +2223,7 @@ msgstr "Gebruik so: %s [OPSIE]... [-] [GEBRUIKER [ARG]...]\n"
#: builtins.c:142
#, fuzzy
-msgid "unset [-f] [-v] [name ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "Volle Naam:"
#: builtins.c:144
@@ -2222,7 +2282,7 @@ msgstr "Tipe die naam van die %1 speler."
#: builtins.c:169
#, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "Grootte beperk (Kb):"
#: builtins.c:172
@@ -2232,12 +2292,12 @@ msgstr "Belmetode"
#: builtins.c:175
#, fuzzy
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr "Wag:"
#: builtins.c:179
#, fuzzy
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr "Wag:"
#: builtins.c:182
@@ -2424,12 +2484,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2440,7 +2502,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2451,7 +2513,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2465,7 +2527,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2481,7 +2543,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2504,13 +2566,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2518,7 +2588,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2534,7 +2604,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2544,7 +2614,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2552,7 +2622,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2560,7 +2630,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2579,7 +2649,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2599,6 +2669,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2614,17 +2685,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2635,15 +2707,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2655,6 +2729,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2670,7 +2745,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2683,7 +2758,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2710,7 +2785,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2722,7 +2797,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2763,7 +2838,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2786,7 +2861,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2794,7 +2869,7 @@ msgid ""
" is that of the last command executed."
msgstr ""
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2803,7 +2878,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2833,7 +2908,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2845,7 +2920,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2859,7 +2934,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2870,7 +2945,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2883,7 +2958,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2905,7 +2980,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2939,7 +3014,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2948,7 +3023,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2963,7 +3038,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2980,7 +3055,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3002,7 +3077,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3047,7 +3122,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3082,20 +3157,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3107,7 +3185,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3173,7 +3251,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3192,7 +3270,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3201,6 +3279,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3212,7 +3292,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3231,7 +3311,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3243,7 +3323,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3251,7 +3333,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3262,7 +3344,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3276,7 +3358,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3290,7 +3372,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3355,6 +3437,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3371,7 +3455,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3379,7 +3463,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3391,7 +3475,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3435,7 +3519,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3465,7 +3549,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3494,6 +3578,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3509,7 +3596,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3527,38 +3614,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3571,7 +3662,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3588,7 +3679,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3608,7 +3699,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3624,7 +3715,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3635,7 +3726,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3656,7 +3747,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3667,7 +3758,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3678,7 +3769,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3691,7 +3782,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3705,7 +3796,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3716,7 +3807,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3730,7 +3821,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3741,7 +3832,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3769,7 +3860,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3823,7 +3914,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3854,7 +3945,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3881,7 +3972,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3910,7 +4001,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3931,7 +4022,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3948,9 +4039,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3958,13 +4049,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3991,7 +4088,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4004,7 +4101,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4035,7 +4132,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4076,7 +4173,7 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -4084,6 +4181,10 @@ msgid ""
msgstr ""
#, fuzzy
+#~ msgid "wait [pid]"
+#~ msgstr "Wag:"
+
+#, fuzzy
#~ msgid " new current working directory."
#~ msgstr "Nuutste gebruik word werksaam gids"
diff --git a/po/bash.pot b/po/bash.pot
index e54dabd4..1ef12084 100644
--- a/po/bash.pot
+++ b/po/bash.pot
@@ -8,98 +8,114 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"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:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr ""
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr ""
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr ""
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr ""
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr ""
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr ""
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr ""
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr ""
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -112,18 +128,22 @@ msgstr ""
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr ""
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr ""
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr ""
@@ -132,7 +152,7 @@ msgstr ""
msgid "line %d: "
msgstr ""
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr ""
@@ -142,11 +162,7 @@ msgstr ""
msgid "%s: usage: "
msgstr ""
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr ""
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr ""
@@ -161,7 +177,7 @@ msgstr ""
msgid "%s: not found"
msgstr ""
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr ""
@@ -171,7 +187,7 @@ msgstr ""
msgid "%s: invalid option name"
msgstr ""
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr ""
@@ -184,7 +200,7 @@ msgstr ""
msgid "invalid hex number"
msgstr ""
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr ""
@@ -198,7 +214,7 @@ msgstr ""
msgid "`%s': not a pid or valid job spec"
msgstr ""
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr ""
@@ -270,48 +286,58 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr ""
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr ""
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr ""
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr ""
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -340,24 +366,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr ""
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr ""
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr ""
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr ""
@@ -390,11 +415,11 @@ msgstr ""
msgid "no command found"
msgstr ""
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr ""
@@ -439,18 +464,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr ""
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -470,7 +495,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr ""
@@ -484,16 +509,16 @@ msgstr ""
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr ""
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr ""
@@ -502,64 +527,69 @@ msgstr ""
msgid "%s: not an indexed array"
msgstr ""
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr ""
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr ""
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr ""
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr ""
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, c-format
msgid "`%c': invalid time format specification"
msgstr ""
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -568,19 +598,24 @@ msgstr ""
msgid "no other directory"
msgstr ""
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr ""
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr ""
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr ""
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -604,7 +639,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -629,7 +664,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -650,40 +685,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr ""
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr ""
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr ""
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr ""
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr ""
@@ -692,11 +727,11 @@ msgstr ""
msgid "shift count"
msgstr ""
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -738,7 +773,7 @@ msgstr ""
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -748,45 +783,45 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr ""
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr ""
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr ""
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr ""
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr ""
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -800,298 +835,313 @@ msgstr ""
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr ""
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr ""
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr ""
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr ""
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr ""
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr ""
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr ""
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr ""
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr ""
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr ""
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr ""
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr ""
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr ""
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr ""
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr ""
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr ""
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr ""
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr ""
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr ""
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr ""
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr ""
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr ""
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr ""
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr ""
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr ""
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr ""
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr ""
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr ""
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr ""
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr ""
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr ""
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr ""
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr ""
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr ""
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr ""
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr ""
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr ""
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr ""
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr ""
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr ""
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr ""
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr ""
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr ""
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr ""
@@ -1111,54 +1161,54 @@ msgstr ""
msgid "unknown"
msgstr ""
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1181,35 +1231,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr ""
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr ""
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr ""
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr ""
@@ -1227,118 +1277,118 @@ msgstr ""
msgid "syntax error: `((%s))'"
msgstr ""
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr ""
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr ""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr ""
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr ""
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr ""
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr ""
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr ""
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr ""
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr ""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr ""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr ""
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr ""
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1348,129 +1398,129 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr ""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr ""
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr ""
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr ""
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr ""
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr ""
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr ""
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr ""
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr ""
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
msgstr ""
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr ""
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr ""
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr ""
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr ""
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1644,229 +1694,239 @@ msgstr ""
msgid "Unknown Signal #%d"
msgstr ""
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr ""
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr ""
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr ""
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr ""
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr ""
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr ""
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr ""
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr ""
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr ""
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr ""
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr ""
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr ""
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr ""
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr ""
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr ""
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr ""
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr ""
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr ""
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr ""
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr ""
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr ""
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr ""
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr ""
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr ""
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr ""
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr ""
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1899,7 +1959,7 @@ msgstr ""
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1920,7 +1980,7 @@ msgid "caller [expr]"
msgstr ""
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr ""
#: builtins.c:66
@@ -1944,7 +2004,7 @@ msgid "command [-pVv] command [arg ...]"
msgstr ""
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr ""
#: builtins.c:78
@@ -2046,7 +2106,7 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr ""
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr ""
#: builtins.c:144
@@ -2094,7 +2154,7 @@ msgid "type [-afptP] name [name ...]"
msgstr ""
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr ""
#: builtins.c:172
@@ -2102,11 +2162,11 @@ msgid "umask [-p] [-S] [mode]"
msgstr ""
#: builtins.c:175
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr ""
#: builtins.c:179
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr ""
#: builtins.c:182
@@ -2284,12 +2344,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2300,7 +2362,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2311,7 +2373,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2325,7 +2387,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2341,7 +2403,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2364,13 +2426,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2378,7 +2448,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2394,7 +2464,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2404,7 +2474,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2412,7 +2482,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2420,7 +2490,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2439,7 +2509,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2459,6 +2529,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2474,17 +2545,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2495,15 +2567,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2515,6 +2589,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2530,7 +2605,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2543,7 +2618,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2570,7 +2645,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2582,7 +2657,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2623,7 +2698,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2646,7 +2721,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2654,7 +2729,7 @@ msgid ""
" is that of the last command executed."
msgstr ""
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2663,7 +2738,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2693,7 +2768,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2705,7 +2780,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2719,7 +2794,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2730,7 +2805,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2743,7 +2818,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2765,7 +2840,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2799,7 +2874,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2808,7 +2883,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2823,7 +2898,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2840,7 +2915,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2862,7 +2937,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -2907,7 +2982,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -2942,20 +3017,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -2967,7 +3045,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3033,7 +3111,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3052,7 +3130,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3061,6 +3139,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3072,7 +3152,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3091,7 +3171,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3103,7 +3183,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3111,7 +3193,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3122,7 +3204,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3136,7 +3218,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3150,7 +3232,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3215,6 +3297,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3231,7 +3315,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3239,7 +3323,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3251,7 +3335,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3295,7 +3379,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3325,7 +3409,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3354,6 +3438,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3369,7 +3456,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3387,38 +3474,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3431,7 +3522,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3448,7 +3539,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3468,7 +3559,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3484,7 +3575,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3495,7 +3586,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3516,7 +3607,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3527,7 +3618,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3538,7 +3629,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3551,7 +3642,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3565,7 +3656,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3576,7 +3667,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3590,7 +3681,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3601,7 +3692,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3629,7 +3720,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3683,7 +3774,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3714,7 +3805,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3741,7 +3832,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3770,7 +3861,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3791,7 +3882,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3808,9 +3899,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3818,13 +3909,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3851,7 +3948,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -3864,7 +3961,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -3895,7 +3992,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -3936,7 +4033,7 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
diff --git a/po/bg.gmo b/po/bg.gmo
index d6a7faf6..7721c82e 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 757a0343..1aa9f0cb 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,154 +1,172 @@
# Bulgarian translation of bash po-file.
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2010, 2012, 2013, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Alexander Shopov <ash@contact.bg>, 2007.
+# Alexander Shopov <ash@kambanaria.org>, 2007, 2010, 2012, 2013, 2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: bash 3.2\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2007-07-26 07:18+0300\n"
-"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"POT-Creation-Date: 2014-01-23 16:04-0500\n"
+"PO-Revision-Date: 2014-02-12 07:59+0200\n"
+"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
+"Language-Team: Bulgarian <dict@ludost.net>\n"
+"Language: bg\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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
-msgstr "неправилен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° маÑив"
+msgstr "грешен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° маÑив"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
-msgstr ""
+msgstr "%s: маÑивът не може да бъде преобразуван към речник"
-#: arrayfunc.c:480
-#, fuzzy, c-format
+#: arrayfunc.c:539
+#, c-format
msgid "%s: invalid associative array key"
-msgstr "%s: грешно име на дейÑтвие"
+msgstr "%s: грешно име на ключ в речник"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: не може да Ñе приÑвоÑва на нецифров индекÑ"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: при приÑвоÑване към речник Ñ‚Ñ€Ñбва да Ñе използва индекÑ"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: не може да Ñе Ñъздаде: %s"
-#: bashline.c:3498
+#: bashline.c:3971
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"изпълнение на команда на Ð®Ð½Ð¸ÐºÑ Ð¾Ñ‚ bash: не може да Ñе открие подредбата на\n"
"функциите на клавишите за командата"
-#: bashline.c:3584
+#: bashline.c:4058
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: първиÑÑ‚ непразен знак не е „\"“"
-#: bashline.c:3613
+#: bashline.c:4087
#, c-format
msgid "no closing `%c' in %s"
msgstr "в %2$s липÑва затварÑщ знак „%1$c“"
-#: bashline.c:3647
+#: bashline.c:4121
#, c-format
msgid "%s: missing colon separator"
-msgstr "%s: разделителÑÑ‚ двоеточие липÑва"
+msgstr "%s: разделителÑÑ‚ „:“ липÑва"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "замеÑтване на изразите Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð½Ð¸ Ñкоби: не може да Ñе задели памет за „%s“"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "замеÑтване на изразите Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð½Ð¸ Ñкоби: не може да Ñе задели памет за %d елемента"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "замеÑтване на изразите Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð½Ð¸ Ñкоби: не може да Ñе задели памет за „%s“"
#: builtins/alias.def:132
-#, fuzzy, c-format
+#, c-format
msgid "`%s': invalid alias name"
-msgstr "„%s“: грешно име на подредбата на функциите на клавишите"
+msgstr "„%s“: грешно име на Ñиноним"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
-msgstr ""
+msgstr "редактирането на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´ не е включено"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%s“: грешно име на подредбата на функциите на клавишите"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: не може да Ñе прочете: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "„%s“: не може да Ñе премахне приÑвоÑване"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
-msgstr "„%s“: непознато име на функциÑ"
+msgstr "„%s“: име на непозната функциÑ"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr "%s не може да Ñе зададе на никой клавиш.\n"
+msgstr "%s не е зададена на никой клавиш.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s може да Ñе извика чрез "
#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
-msgstr ""
+msgstr "брой цикли"
#: builtins/break.def:137
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "валидно Ñамо за циклите Ñ â€žfor“, „while“ и „until“"
-#: builtins/caller.def:133
-#, fuzzy
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
-msgstr "Връща контекÑта на текущото извикване на подпрограма."
+msgstr ""
+"Връща контекÑта на текущото извикване на функциÑ.\n"
+" \n"
+" Без ИЗРÐЗ връща "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
-msgstr "Променливата $HOME не зададена"
+msgstr "Променливата „HOME“ не е зададена"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:855
+msgid "too many arguments"
+msgstr "прекалено много аргументи"
-#: builtins/cd.def:247
+#: builtins/cd.def:338
msgid "OLDPWD not set"
-msgstr "Променливата $OLDPWD не е зададена"
+msgstr "Променливата „OLDPWD“ не е зададена"
#: builtins/common.c:101
#, c-format
msgid "line %d: "
-msgstr ""
+msgstr "ред %d: "
-#: builtins/common.c:139 error.c:261
-#, fuzzy, c-format
+#: builtins/common.c:139 error.c:265
+#, c-format
msgid "warning: "
-msgstr "%s: предупреждение: "
+msgstr "предупреждение: "
#: builtins/common.c:153
-#, fuzzy, c-format
+#, c-format
msgid "%s: usage: "
-msgstr "%s: предупреждение: "
-
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "прекалено много аргументи"
+msgstr "%s: употреба: "
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: опциÑта изиÑква аргумент"
@@ -163,7 +181,7 @@ msgstr "%s: изиÑква Ñе чиÑлов аргумент"
msgid "%s: not found"
msgstr "%s: не е открит"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: грешна опциÑ"
@@ -173,22 +191,20 @@ msgstr "%s: грешна опциÑ"
msgid "%s: invalid option name"
msgstr "%s: грешно име на опциÑ"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
#, c-format
msgid "`%s': not a valid identifier"
msgstr "„%s“: грешен идентификатор"
#: builtins/common.c:238
-#, fuzzy
msgid "invalid octal number"
-msgstr "неправилен номер на Ñигнал"
+msgstr "грешно оÑмично чиÑло"
#: builtins/common.c:240
-#, fuzzy
msgid "invalid hex number"
-msgstr "грешно чиÑло"
+msgstr "грешно шеÑтнайÑетично чиÑло"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "грешно чиÑло"
@@ -200,9 +216,9 @@ msgstr "%s: грешно указване на Ñигнал"
#: builtins/common.c:257
#, c-format
msgid "`%s': not a pid or valid job spec"
-msgstr "„%s“: неправилен идентификатор на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸Ð»Ð¸ задача"
+msgstr "„%s“: грешен идентификатор на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸Ð»Ð¸ задача"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: променлива Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене"
@@ -257,68 +273,78 @@ msgstr "грешка при запиÑ: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr ""
+msgstr "грешка при задаване на атрибутите на терминала: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr ""
+msgstr "грешка при получаване на атрибутите на терминала: %s"
#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: грешка при получаването на текущата директориÑ: %s: %s\n"
+msgstr "%s: грешка при получаване на текущата директориÑ: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
msgstr "%s: нееднозначно указана задача"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: грешно име на дейÑтвие"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: не е указано допиÑване"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "предупреждение: опциÑта „-F“ може да не работи Ñпоред очакваниÑта ви"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "предупреждение: опциÑта „-C“ може да не работи Ñпоред очакваниÑта ви"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr ""
+msgstr "в момента не Ñе изпълнÑва Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° допиÑване"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "може да Ñе използва Ñамо във функциÑ"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: променливата-указател не може да е маÑив"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: променливата-указател не може да Ñочи към Ñебе Ñи"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "„-f“ не може да Ñе използва за Ñъздаването на функции"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5349
#, c-format
msgid "%s: readonly function"
msgstr "%s: Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: променливите за маÑиви не могат да Ñе унищожават така"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
-msgstr ""
+msgstr "%s: речник не може да Ñе преобразува в маÑив"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
@@ -327,12 +353,12 @@ msgstr "липÑва възможноÑÑ‚ за динамично зарежда
#: builtins/enable.def:312
#, c-format
msgid "cannot open shared object %s: %s"
-msgstr "ÑподелениÑÑ‚ обект %s не може да бъде зареден: %s"
+msgstr "ÑподелениÑÑ‚ обект „%s“ не може да бъде зареден: %s"
#: builtins/enable.def:335
#, c-format
msgid "cannot find %s in shared object %s: %s"
-msgstr "не може да Ñе открие %s в ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ %s: %s"
+msgstr "„%s“ не може да Ñе открие в ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ %s: %s"
#: builtins/enable.def:459
#, c-format
@@ -344,24 +370,23 @@ msgstr "%s: не е зареден динамично"
msgid "%s: cannot delete: %s"
msgstr "%s: не може да Ñе изтрие: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5196
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: е директориÑ"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: не е обикновен файл"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: файлът е прекалено голÑм"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: двоичниÑÑ‚ файл не може да бъде изпълнен"
@@ -374,7 +399,7 @@ msgstr "%s: не може да Ñе изпълни: %s"
#: builtins/exit.def:65
#, c-format
msgid "logout\n"
-msgstr ""
+msgstr "изход\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
@@ -386,26 +411,26 @@ msgid "There are stopped jobs.\n"
msgstr "Има Ñпрени задачи.\n"
#: builtins/exit.def:122
-#, fuzzy, c-format
+#, c-format
msgid "There are running jobs.\n"
-msgstr "Има Ñпрени задачи.\n"
+msgstr "Има изпълнÑвани задачи.\n"
#: builtins/fc.def:262
msgid "no command found"
msgstr "не е открита команда"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "указване на иÑториÑта"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: не може да Ñе отвори временен файл: %s"
#: builtins/fg_bg.def:149 builtins/jobs.def:282
msgid "current"
-msgstr ""
+msgstr "текуща"
#: builtins/fg_bg.def:158
#, c-format
@@ -415,12 +440,12 @@ msgstr "задача %d е Ñтартирана без управление на
#: builtins/getopt.c:110
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: непозволена Ð¾Ð¿Ñ†Ð¸Ñ -- %c\n"
+msgstr "%s: непозволена Ð¾Ð¿Ñ†Ð¸Ñ â€” %c\n"
#: builtins/getopt.c:111
#, c-format
msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: опциÑта изиÑква аргумент -- %c\n"
+msgstr "%s: опциÑта изиÑква аргумент — %c\n"
#: builtins/hash.def:92
msgid "hashing disabled"
@@ -432,31 +457,30 @@ msgid "%s: hash table empty\n"
msgstr "%s: таблицата Ñ Ñ…ÐµÑˆÐ¾Ð²Ðµ е празна\n"
#: builtins/hash.def:245
-#, fuzzy, c-format
+#, c-format
msgid "hits\tcommand\n"
-msgstr "поÑледна команда: %s\n"
+msgstr "Ñъвпад.\tкоманда\n"
#: builtins/help.def:130
-#, fuzzy, c-format
+#, c-format
msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
msgstr[0] "Команди на обвивката, които напаÑват на ключовата дума „"
-msgstr[1] "Команди на обвивката, които напаÑват на ключовата дума „"
+msgstr[1] "Команди на обвивката, които напаÑват на ключовите думи „"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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 ""
"нÑма теми в помощта, които да отговарÑÑ‚ на „%s“. Опитайте Ñ\n"
"„help help“, „man -k %s“ или „info %s“."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: не може да Ñе отвори: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -471,134 +495,140 @@ msgstr ""
"Ðапишете „help“, за да видите ÑпиÑъка.\n"
"Ðапишете „help ИМЕ_ÐÐ_ФУÐКЦИЯ“ за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° Ñъответната функциÑ.\n"
"Ðапишете „info bash“ за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° обвивката като цÑло.\n"
-"Ðапишете „man -k“ или „info“ за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° командите извън "
-"ÑпиÑъка.\n"
+"Ðапишете „man -k“ или „info“ за повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° командите извън ÑпиÑъка.\n"
"\n"
"Знакът звездичка „*“ до името на команда означава, че Ñ‚Ñ Ðµ изключена.\n"
"\n"
#: builtins/history.def:154
msgid "cannot use more than one of -anrw"
-msgstr "не може да Ñе ползва едновременно повече от една от опциите -anrw"
+msgstr "не може да Ñе ползва едновременно повече от една от опциите „-anrw“"
#: builtins/history.def:186
msgid "history position"
msgstr "Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð² иÑториÑта"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: неуÑпешно замеÑтване чрез иÑториÑта"
#: builtins/inlib.def:71
-#, fuzzy, c-format
+#, c-format
msgid "%s: inlib failed"
-msgstr "%s: неуÑпешно замеÑтване чрез иÑториÑта"
+msgstr "%s: неуÑпешно извикване на inlib"
#: builtins/jobs.def:109
msgid "no other options allowed with `-x'"
msgstr "не е позволена друга Ð¾Ð¿Ñ†Ð¸Ñ Ñ â€ž-x“"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: аргументите Ñ‚Ñ€Ñбва да Ñа идентификатори на процеÑи или задачи"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "ÐеизвеÑтна грешка"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "очаква Ñе израз"
#: builtins/mapfile.def:172
-#, fuzzy, c-format
+#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: не е променлива за маÑив"
+msgstr "%s: не е маÑив"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: грешно указване на Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð´ÐµÑкриптор"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: грешен файлов деÑкриптор: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
-#, fuzzy, c-format
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
msgid "%s: invalid line count"
-msgstr "%s: грешна опциÑ"
+msgstr "%s: грешен номер на ред"
-#: builtins/mapfile.def:284
-#, fuzzy, c-format
+#: builtins/mapfile.def:287
+#, c-format
msgid "%s: invalid array origin"
-msgstr "%s: грешна опциÑ"
+msgstr "%s: грешен начален Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° маÑив"
-#: builtins/mapfile.def:301
-#, fuzzy, c-format
+#: builtins/mapfile.def:304
+#, c-format
msgid "%s: invalid callback quantum"
-msgstr "%s: грешно име на дейÑтвие"
+msgstr "%s: грешно количеÑтво редове за обработка"
-#: builtins/mapfile.def:333
-#, fuzzy
+#: builtins/mapfile.def:336
msgid "empty array variable name"
-msgstr "%s: не е променлива за маÑив"
+msgstr "празно име на променлива за маÑив"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
-msgstr ""
+msgstr "изиÑква Ñе поддръжка на променливи за маÑиви"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%s“: липÑва форматиращ знак"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: грешно указване на изтичането на времето"
+msgstr "„%c“: грешен формат на времето"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%c“: грешен форматиращ знак"
-#: builtins/printf.def:662
-#, fuzzy, c-format
+#: builtins/printf.def:684
+#, c-format
msgid "warning: %s: %s"
-msgstr "%s: предупреждение: "
+msgstr "предупреждение: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "неуÑпешен анализ на форма̀та: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "липÑва шеÑтнадеÑетична цифра за \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "липÑва шеÑтнадеÑетична цифра за \\x"
+msgstr "липÑва цифра за Уникод за \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "нÑма друга директориÑ"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: грешен аргумент"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "«нÑма текуща директориÑ»"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr ""
+msgstr "Ñтекът Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ е празен"
-#: builtins/pushd.def:508
-#, fuzzy
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "отрицателно препълване на Ñтека за рекурÑии"
+msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° Ñтека Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸"
-#: builtins/pushd.def:683
-#, fuzzy
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -613,39 +643,32 @@ msgid ""
" \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"
+" +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"
+" -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"
+"Извежда ÑпиÑъка Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¾ запомнените директории. СпиÑъкът Ñе попълва чрез\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
+"\n"
+" Опции:\n"
+" -c изчиÑтва Ñтека на директориите като изтрива вÑички елементи.\n"
+" -l кара командата „dirs“ да извежда пълните имена на директориите,\n"
+" а не Ñъкратените ÑÑŠÑ Ñ‚Ð¸Ð»Ð´Ð° „~“.\n"
+" -p поредово отпечатване на Ñтека на директориите.\n"
+" -v поредово отпечатване на Ñтека на директориите заедно Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° в\n"
+" Ñтека.\n"
+"\n"
+" Ðргументи: \n"
+" +N извежда N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ отлÑво в ÑпиÑъка отпечатан от командата „dirs“,\n"
+" когато е Ñтартирана без опции. Брои Ñе от 0.\n"
+"\n"
+" -N извежда N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ отдÑÑно в ÑпиÑъка отпечатан от командата „dirs“,\n"
+" когато е Ñтартирана без опции. Брои Ñе от 0."
+
+#: builtins/pushd.def:711
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"
@@ -669,28 +692,29 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
-" Ð”Ð¾Ð±Ð°Ð²Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² Ñтека на директориите или превърта Ñтека\n"
+"Ð”Ð¾Ð±Ð°Ð²Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² Ñтека на директориите или превърта Ñтека\n"
" като най-горна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ñтава текущата директориÑ. Без\n"
" аргументи ÑÐ¼ÐµÐ½Ñ Ð½Ð°Ð¹-горните две директории.\n"
" \n"
-" +N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои\n"
-" от лÑвата Ñтрана на ÑпиÑъка, показан от командата „dirs“\n"
-" като Ñе почва от 0) да е най-отгоре.\n"
-" \n"
-" -N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои\n"
-" от дÑÑната Ñтрана на ÑпиÑъка, показан от командата „dirs“\n"
-" като Ñе почва от 0) да е най-отгоре.\n"
-" \n"
-" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸\n"
-" добавÑнето на директории към Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
+" Опции:\n"
+" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ добавÑнето на\n"
+" директории към Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
"\n"
-" dir Ð´Ð¾Ð±Ð°Ð²Ñ Ð”Ð˜Ð  най-отгоре в Ñтека на директориите, като Ñ Ð¿Ñ€Ð°Ð²Ð¸\n"
-" новата текуща работна директориÑ.\n"
+" Ðргументи:\n"
+" +N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои от лÑвата\n"
+" Ñтрана на ÑпиÑъка, отпечатан от командата „dirs“ като Ñе почва от 0)\n"
+" да е най-отгоре.\n"
+" \n"
+" -N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои от дÑÑната\n"
+" Ñтрана на ÑпиÑъка, отпечатан от командата „dirs“ като Ñе почва от 0)\n"
+" да е най-отгоре.\n"
+"\n"
+" dir Ð”Ð¾Ð±Ð°Ð²Ñ Ð”Ð˜Ð  най-отгоре в Ñтека на директориите, като Ñ Ð¿Ñ€Ð°Ð²Ð¸ новата\n"
+" текуща работна директориÑ.\n"
" \n"
" Можете да изведете Ñтека на директориÑта Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“."
-#: builtins/pushd.def:730
-#, fuzzy
+#: builtins/pushd.def:736
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"
@@ -710,60 +734,58 @@ msgid ""
" \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 премахва N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ като Ñе брои отдÑÑно в ÑпиÑъка\n"
-" показван от командата „dirs“, като Ñе брои от 0. Ðапр.: „popd -0“\n"
-" премахва поÑледната директориÑ, „popd -1“ - предпоÑледната.\n"
+" Опции:\n"
+" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ махането на\n"
+" Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¾Ñ‚ Ñтека — Ñамо той Ñе променÑ.\n"
"\n"
-" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ добавÑнето "
-"на\n"
-" директории към Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
+" Ðргументи:\n"
+" +N премахва N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ като Ñе брои отлÑво в ÑпиÑъка отпечатан от\n"
+" командата „dirs“, като Ñе брои от 0. Ðапр.: „popd +0“ премахва\n"
+" първата директориÑ, „popd +1“ - втората.\n"
"\n"
-" Стекът Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸Ñ‚Ðµ Ñе визуализира Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“."
+" -N премахва N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ като Ñе брои отдÑÑно в ÑпиÑъка отпечатан от\n"
+" командата „dirs“, като Ñе брои от 0. Ðапр.: „popd -0“ премахва\n"
+" поÑледната директориÑ, „popd -1“ - предпоÑледната.\n"
+"\n"
+" Можете да изведете Ñтека на директориÑта Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: грешно указване на изтичането на времето"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "грешка при четене: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
-msgstr ""
-"„return“ е възможен Ñамо от Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ изпълнен в текущата обвивка Ñкрипт"
+msgstr "„return“ е възможен Ñамо от Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ изпълнен в текущата обвивка Ñкрипт"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
-"не може едновременно да Ñе премахват задаваниÑта на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸ променлива"
+msgstr "не може едновременно да Ñе премахват задаваниÑта на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸ променлива"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: не може да Ñе премахне"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: не може да Ñе премахне: %s е Ñамо за четене"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: не е променлива за маÑив"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: не е функциÑ"
@@ -772,12 +794,11 @@ msgstr "%s: не е функциÑ"
msgid "shift count"
msgstr "брой на премеÑтваниÑта"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
-msgstr ""
-"не може едновременно да Ñе задават и да Ñе премахват опции на обвивката"
+msgstr "не може едновременно да Ñе задават и да Ñе премахват опции на обвивката"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: грешно име на Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ð° обвивката"
@@ -807,7 +828,7 @@ msgstr "%s е Ñиноним на „%s“\n"
#: builtins/type.def:255
#, c-format
msgid "%s is a shell keyword\n"
-msgstr "%s в ключова дума на обвивката\n"
+msgstr "%s е ключова дума на обвивката\n"
#: builtins/type.def:274
#, c-format
@@ -819,7 +840,7 @@ msgstr "%s е функциÑ\n"
msgid "%s is a shell builtin\n"
msgstr "%s е вградена команда в обвивката\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s е %s\n"
@@ -829,47 +850,47 @@ msgstr "%s е %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s е хеширан (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
-msgstr "%s: неправилен аргумент за ограничение"
+msgstr "%s: грешен аргумент за ограничение"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "„%c“: неправилна команда"
+msgstr "„%c“: грешна команда"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: ограничението не може да бъде получено: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
-msgstr ""
+msgstr "ограничение"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: ограничението не може да бъде променено: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "оÑмично чиÑло"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "„%c“: неправилен оператор за опиÑателен режим"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%c“: неправилен знак за опиÑателен режим"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr ""
+msgstr " ред "
#: error.c:165
#, c-format
@@ -881,307 +902,317 @@ msgstr "поÑледна команда: %s\n"
msgid "Aborting..."
msgstr "ПреуÑтановÑване…"
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "неизвеÑтна грешка в команда"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
-msgstr "неправилен вид команда"
+msgstr "грешен вид команда"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
-msgstr "лоша връзка"
+msgstr "грешна връзка"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
-msgstr "неправилен преход"
+msgstr "грешен преход"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: променлива без ÑтойноÑÑ‚"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
-msgstr ""
-"^Gвремето за изчакване на вход изтече: Ñледва автоматично излизане от "
-"ÑиÑтемата\n"
+msgstr "\aвремето за изчакване на вход изтече: Ñледва автоматично излизане от ÑиÑтемата\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "ÑтандартниÑÑ‚ вход от /dev/null не може да бъде пренаÑочен: %s"
+msgstr "ÑтандартниÑÑ‚ вход не може да бъде пренаÑочен от „/dev/null“: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "в променливата $TIMEFORMAT: „%c“: грешен форматиращ знак"
-#: execute_cmd.c:2121
-#, fuzzy
+#: execute_cmd.c:2287
msgid "pipe error"
-msgstr "грешка при запиÑ: %s"
+msgstr "грешка в програмен канал"
+
+#: execute_cmd.c:4374
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: превишено е макÑималното ниво на влагане на функции (%d)"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4872
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
-msgstr ""
-"%s: ограничение: в имената на командите не може да приÑÑŠÑтва знакът „/“"
+msgstr "%s: ограничение: в имената на командите не може да приÑÑŠÑтва знакът „/“"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4961
#, c-format
msgid "%s: command not found"
msgstr "%s: командата не е открита"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5194
+#, c-format
msgid "%s: %s"
-msgstr "%s е %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5231
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: лош интерпретатор"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5268
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: двоичниÑÑ‚ файл не може да бъде изпълнен: %s"
+
+#: execute_cmd.c:5340
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "„%s“ е вградена команда в обвивката"
+
+#: execute_cmd.c:5392
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "файловиÑÑ‚ деÑкриптор %d не може да Ñе дублира като деÑкриптор %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "макÑималниÑÑ‚ брой нива за рекурÑÐ¸Ñ Ð² израз бÑха преминати"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "отрицателно препълване на Ñтека за рекурÑии"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "Ñинтактична грешка в израз"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "опит за приÑвоÑване на ÑтойноÑÑ‚ на нещо, което не е променлива"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "деление на 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "програмна грешка: неправилна лекÑема за приÑвоÑване на израз"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "за уÑловен израз Ñе изиÑква „:“"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "Ñтепента е по-малка от 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "очаква Ñе идентификатор Ñлед предварително увеличаване или намалÑване"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "липÑва „)“"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "Ñинтактична грешка: очаква Ñе оператор"
-#: expr.c:1284
-#, fuzzy
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
-msgstr "Ñинтактична грешка: изиÑква Ñе аритметичен израз"
+msgstr "Ñинтактична грешка: грешен аритметичен оператор"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr ""
+msgstr "%s%s%s: %s (грешната лекÑема е „%s“)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "грешна аритметична оÑнова на бройна ÑиÑтема"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "ÑтойноÑтта е прекалено голÑма за оÑновата"
-#: expr.c:1435
-#, fuzzy, c-format
+#: expr.c:1543
+#, c-format
msgid "%s: expression error\n"
-msgstr "%s: очаква Ñе целочиÑлен израз"
+msgstr "%s: грешка в израза\n"
#: general.c:61
msgid "getcwd: cannot access parent directories"
-msgstr "getcwd: родителÑките директории не могат да бъдат доÑтъпени"
+msgstr "getcwd: нÑма доÑтъп до родителÑките директории"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "не може да Ñе изчиÑти режимът без забавÑне на Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð´ÐµÑкриптор %d"
-#: input.c:260
+#: input.c:269
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
-"не може да Ñе задели нов файлов деÑкриптор за вход на bash от деÑкриптор %d"
+msgstr "не може да Ñе задели нов файлов деÑкриптор за вход на bash от деÑкриптор %d"
-#: input.c:268
+#: input.c:277
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
-"запазване на входа на bash: вече ÑъщеÑтвува буфер за Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² деÑкриптор "
-"%d"
+msgstr "запазване на входа на bash: вече ÑъщеÑтвува буфер за Ð½Ð¾Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² деÑкриптор %d"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
+"Ñтартиране на програмен канал: не може да Ñе комуникира Ñ Ð²Ð¾Ð´Ð°Ñ‡Ð° на канала\n"
+"(pgrp pipe)"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
-msgstr ""
+msgstr "ÑтартираниÑÑ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑ %d е в работещата задача %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "изтриване на ÑпрÑната задача %d в групата процеÑи %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr ""
+msgstr "добавÑне на процеÑ: процеÑÑŠÑ‚ %5ld (%s) е в Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
+msgstr "добавÑне на процеÑ: процеÑÑŠÑ‚ %5ld (%s) е отбелÑзан като още жив"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
-msgstr ""
-"опиÑателен идентификатор на процеÑ: %ld: нÑма такъв идентификатор на процеÑ"
+msgstr "опиÑателен идентификатор на процеÑ: %ld: нÑма такъв идентификатор на процеÑ"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
-msgstr ""
+msgstr "Сигнал %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
-msgstr ""
+msgstr "Завършен"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
-msgstr ""
+msgstr "СпрÑн"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
-msgstr ""
+msgstr "СпрÑн (%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
-msgstr ""
+msgstr "ИзпълнÑван"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
-msgstr ""
+msgstr "Завършен (%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
-msgstr ""
+msgstr "Изход %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
-msgstr ""
+msgstr "Ðепознато ÑÑŠÑтоÑние"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
-msgstr ""
+msgstr "(паметта е разтоварена)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
-msgstr ""
+msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "дъщерниÑÑ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñмени групата при изпълнение (от %ld на %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "изчакване: процеÑÑŠÑ‚ Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ %ld не е дъщерен на тази обвивка"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "изчакване: липÑват данни за Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "изчакване на задача: задачата %d е ÑпрÑна"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: задачата е приключила"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: задача %d вече е във фонов режим"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
+"изчакване на дъщерен процеÑ: включване на незабавното излизане от функциÑта\n"
+"чрез WNOHANG, за да Ñе избегне недефиниран блок"
-#: jobs.c:3538
-#, fuzzy, c-format
+#: jobs.c:3711
+#, c-format
msgid "%s: line %d: "
-msgstr "%s: предупреждение: "
+msgstr "%s: ред %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
-msgstr ""
+msgstr " (паметта е разтоварена)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
-msgstr ""
+msgstr "(работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ðµ: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
-msgstr ""
+msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° контрола на задачите: неуÑпешно изпълнение на getpgrp"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° контрола на задачите: диÑциплина на линиÑта"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ð° контрола на задачите: задаване на група при изпълнение (setpgid)"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr ""
+msgstr "групата на процеÑите на терминала не може да бъде зададена (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "в тази обвивка нÑма управление на задачите"
@@ -1200,66 +1231,61 @@ msgstr ""
"заделÑне на памет: %s:%d: предположението е отпечатано\r\n"
#: lib/malloc/malloc.c:313
-#, fuzzy
msgid "unknown"
-msgstr "%s: непознат хоÑÑ‚"
+msgstr "непознат"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
-msgstr ""
-"заделÑне на памет: блок в ÑпиÑъка ÑÑŠÑ Ñвободни блокове е зает или неподходÑщ"
+msgstr "заделÑне на памет: блок в ÑпиÑъка ÑÑŠÑ Ñвободни блокове е зает или неподходÑщ"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
-msgstr ""
-"изчиÑтване на памет: извикано е Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² аргумент, който вече е изчиÑтен"
+msgstr "изчиÑтване на памет: извикано е Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² аргумент, който вече е изчиÑтен"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "изчиÑтване на памет: извикано е Ñ Ð½ÐµÐ·Ð°Ð´ÐµÐ»ÐµÐ½ блоков аргумент"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
"изчиÑтване на памет: открито е отрицателно препълване Ñ mh_nbytes извън\n"
"допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
-msgstr ""
-"изчиÑтване на памет: къÑовете на началната и крайната облаÑти Ñе различават"
+msgstr "изчиÑтване на памет: къÑовете на началната и крайната облаÑти Ñе различават"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "презаделÑне: извикано е Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ Ñ Ð½ÐµÐ·Ð°Ð´ÐµÐ»ÐµÐ½ блок"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
"презаделÑне: открито е отрицателно препълване Ñ mh_nbytes извън допуÑтимиÑ\n"
"диапазон"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "презаделÑне: къÑовете на началната и крайната облаÑти Ñе различават"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
-"региÑтриране на презаделÑне: таблицата за заделÑниÑта е пълна Ñ FIND_ALLOC?\n"
+msgstr "региÑтриране на презаделÑне: таблицата за заделÑниÑта е пълна Ñ FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "региÑтриране на презаделÑне: %p вече е в таблицата като заделен?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "региÑтриране на Ñвободни: %p вече е в таблицата като Ñвободен?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "грешна оÑнова на бройна ÑиÑтема"
@@ -1282,35 +1308,35 @@ msgstr "%s: неправилно указан мрежов път"
msgid "network operations not supported"
msgstr "не Ñе поддържат мрежови операции"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: локалът не може да бъде Ñменен (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: локалът не може да бъде Ñменен (%s): %s"
-#: locale.c:247
-#, fuzzy, c-format
+#: locale.c:259
+#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "презаделÑне на памет: %s:%d: %lu байта не могат да Ñе заделÑÑ‚"
+msgstr "setlocale: %s: локалът не може да бъде Ñменен (%s)"
-#: locale.c:249
-#, fuzzy, c-format
+#: locale.c:261
+#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "презаделÑне на памет: %s:%d: %lu байта не могат да Ñе заделÑÑ‚"
+msgstr "setlocale: %s: локалът не може да бъде Ñменен (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Имате поща в $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Имате нова поща в $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Пощата в %s вече е прочетена\n"
@@ -1328,120 +1354,118 @@ msgstr "Ñинтактична грешка: неочакван знак „;“
msgid "syntax error: `((%s))'"
msgstr "Ñинтактична грешка: „((%s))“"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "вътрешен документ Ñ â€ž<<“: неправилен вид инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
+msgstr "вътрешниÑÑ‚ документ на ред %d е отделен ÑÑŠÑ Ð·Ð½Ð°Ðº за нов ред (а Ñ‚Ñ€Ñбва да е „%s“)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"пренаÑочване: инÑтрукциÑта за пренаÑочване „%d“ е извън допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
+msgstr "пренаÑочване: инÑтрукциÑта за пренаÑочване „%d“ е извън допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3273 parse.y:3556
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
-msgstr ""
-"неочакван знак за край на файл „EOF“, а Ñе очакваше ÑъответÑтващ знак „%c“"
+msgstr "неочакван знак за край на файл „EOF“, а Ñе очакваше ÑъответÑтващ знак „%c“"
-#: parse.y:4025
+#: parse.y:4163
msgid "unexpected EOF while looking for `]]'"
msgstr "неочакван знак за край на файл „EOF“, а Ñе очакваше „]]“"
-#: parse.y:4030
+#: parse.y:4168
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "Ñинтактична грешка в уÑловен израз: неочаквана лекÑема „%s“"
-#: parse.y:4034
+#: parse.y:4172
msgid "syntax error in conditional expression"
msgstr "Ñинтактична грешка в уÑловен израз"
-#: parse.y:4112
+#: parse.y:4250
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "неочаквана лекÑема „%s“, а Ñе очакваше знакът „)“"
-#: parse.y:4116
+#: parse.y:4254
msgid "expected `)'"
msgstr "очакваше Ñе „)“"
-#: parse.y:4144
+#: parse.y:4282
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "неочакван аргумент „%s“ за унарен уÑловен оператор"
-#: parse.y:4148
+#: parse.y:4286
msgid "unexpected argument to conditional unary operator"
msgstr "неочакван аргумент за унарен уÑловен оператор"
-#: parse.y:4194
+#: parse.y:4332
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "неочаквана лекÑема „%s“, очакваше Ñе бинарен уÑловен оператор"
-#: parse.y:4198
+#: parse.y:4336
msgid "conditional binary operator expected"
msgstr "очакваше Ñе бинарен уÑловен оператор"
-#: parse.y:4220
+#: parse.y:4358
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "неочакван аргумент „%s“ за бинарен уÑловен оператор"
-#: parse.y:4224
+#: parse.y:4362
msgid "unexpected argument to conditional binary operator"
msgstr "неочакван аргумент за бинарен уÑловен оператор"
-#: parse.y:4235
+#: parse.y:4373
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "неочаквана лекÑема „%c“ в уÑловна команда"
-#: parse.y:4238
+#: parse.y:4376
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "неочаквана лекÑема „%s“ в уÑловна команда"
-#: parse.y:4242
+#: parse.y:4380
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "неочаквана лекÑема %d в уÑловна команда"
-#: parse.y:5566
+#: parse.y:5730
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "Ñинтактична грешка в близоÑÑ‚ до неочакваната лекÑема „%s“"
-#: parse.y:5584
+#: parse.y:5748
#, c-format
msgid "syntax error near `%s'"
msgstr "Ñинтактична грешка в близоÑÑ‚ до „%s“"
-#: parse.y:5594
+#: parse.y:5758
msgid "syntax error: unexpected end of file"
msgstr "Ñинтактична грешка: неочакван край на файл"
-#: parse.y:5594
+#: parse.y:5758
msgid "syntax error"
msgstr "Ñинтактична грешка"
-#: parse.y:5656
+#: parse.y:5820
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Използвайте „%s“, за да излезете от обвивката.\n"
-#: parse.y:5818
+#: parse.y:5982
msgid "unexpected EOF while looking for matching `)'"
msgstr "неочакван знак за край на файл „EOF“, очакваше Ñе знакът „)“"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "допиÑване: функциÑта „%s“ не е открита"
@@ -1449,919 +1473,911 @@ msgstr "допиÑване: функциÑта „%s“ не е открита"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
-msgstr ""
-"вмъкване на завършване на команда: %s указване на команда, което е NULL"
+msgstr "вмъкване на завършване на команда: %s указване на команда, което е NULL"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "команда за печат: лош конектор „%d“"
-#: print_cmd.c:368
-#, fuzzy, c-format
+#: print_cmd.c:373
+#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "%d: грешен файлов деÑкриптор: %s"
+msgstr "xtrace_set: %d: грешен файлов деÑкриптор"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: указател към файл – NULL"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "отпечатване: „%c“: неправилен форматиращ знак"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "файловиÑÑ‚ деÑкриптор е извън допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: двуÑмиÑлено пренаÑочване"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: не може да Ñе презапише ÑъщеÑтвуващ файл"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: поради ограничение изходът не може да Ñе пренаÑочи"
-#: redir.c:192
-#, fuzzy, c-format
+#: redir.c:191
+#, c-format
msgid "cannot create temp file for here-document: %s"
-msgstr "не може да Ñе Ñъздаде временен файл за вътрешен документ Ñ â€ž<<“: %s"
+msgstr "не може да Ñе Ñъздаде временен файл за вътрешен документ: %s"
-#: redir.c:196
-#, fuzzy, c-format
+#: redir.c:195
+#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: на член от маÑив не може да Ñе приÑвои ÑпиÑък"
+msgstr "%s: на променлива не може да Ñе приÑвои файлов деÑкриптор"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr "/dev/(tcp|udp)/host/port не Ñе поддържа, ако нÑма поддръжка на мрежа"
+msgstr "„/dev/(tcp|udp)/host/port“ не Ñе поддържат, ако нÑма поддръжка на мрежа"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "грешка при пренаÑочване: файловиÑÑ‚ деÑкриптор не може да бъде дублиран"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
-msgstr "не е открита директориÑта /tmp. Създайте Ñ!"
+msgstr "не е открита директориÑта „/tmp“. Създайте Ñ!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
-msgstr "/tmp Ñ‚Ñ€Ñбва да е директориÑ"
+msgstr "„/tmp“ Ñ‚Ñ€Ñбва да е директориÑ"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: неправилна опциÑ"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Ðе може да Ñе получи името на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
-msgstr ""
+msgstr "GNU bash, верÑÐ¸Ñ %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, 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"
+"Употреба: %s [дълга Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ð° GNU] [опциÑ]…\n"
+" %s [дълга Ð¾Ð¿Ñ†Ð¸Ñ Ð½Ð° GNU] [опциÑ] файл-Ñкрипт…\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Дълги опции на GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Опции на обвивката:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
-" -irsD или -c команда, или -O къÑа_Ð¾Ð¿Ñ†Ð¸Ñ (Ñамо при Ñтартиране)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr " -ilrsD или -c команда, или -O къÑа_Ð¾Ð¿Ñ†Ð¸Ñ (Ñамо при Ñтартиране)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr " -%s или -o опциÑ\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° опциите на обвивката въведете „%s -c \"help set\"“.\n"
+msgstr "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° опциите на обвивката въведете „%s -c \"help set\"“.\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вградените в обвивката команди въведете „%s -c "
-"help“.\n"
+msgstr "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вградените в обвивката команди въведете „%s -c help“.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "За да докладвате грешки използвайте командата „bashbug“.\n"
+msgstr "За да докладвате грешки, използвайте командата „bashbug“.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
-msgstr "маÑка за обработката на Ñигнали: %d: невалидна операциÑ"
+msgstr "маÑка за обработката на Ñигнали: %d: грешна операциÑ"
#: siglist.c:48
msgid "Bogus signal"
-msgstr ""
+msgstr "Фалшив Ñигнал"
#: siglist.c:51
msgid "Hangup"
-msgstr ""
+msgstr "ПрекъÑване на връзката"
#: siglist.c:55
msgid "Interrupt"
-msgstr ""
+msgstr "ПрекъÑване"
#: siglist.c:59
msgid "Quit"
-msgstr ""
+msgstr "Спиране"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr ""
+msgstr "Ðеправилна инÑтрукциÑ"
#: siglist.c:67
msgid "BPT trace/trap"
-msgstr ""
+msgstr "Капан за авариен изход чрез BPT"
#: siglist.c:75
msgid "ABORT instruction"
-msgstr ""
+msgstr "ИнÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð·Ð° прекратÑване"
#: siglist.c:79
msgid "EMT instruction"
-msgstr ""
+msgstr "Капан Ñ EMT"
#: siglist.c:83
msgid "Floating point exception"
-msgstr ""
+msgstr "Изключение от плаваща запетаÑ"
#: siglist.c:87
msgid "Killed"
-msgstr ""
+msgstr "Убит"
#: siglist.c:91
-#, fuzzy
msgid "Bus error"
-msgstr "Ñинтактична грешка"
+msgstr "Грешка в шината"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr ""
+msgstr "Грешка в разделÑнето"
#: siglist.c:99
msgid "Bad system call"
-msgstr ""
+msgstr "Грешно ÑиÑтемно извикване"
#: siglist.c:103
msgid "Broken pipe"
-msgstr ""
+msgstr "ПрекъÑнат програмен канал"
#: siglist.c:107
msgid "Alarm clock"
-msgstr ""
+msgstr "Ðларма"
#: siglist.c:111
-#, fuzzy
msgid "Terminated"
-msgstr "ограничена обвивка"
+msgstr "Прекратен"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr ""
+msgstr "Спешно вх./изх. ÑÑŠÑтоÑние"
#: siglist.c:119
msgid "Stopped (signal)"
-msgstr ""
+msgstr "СпрÑн (Ñигнал)"
#: siglist.c:127
msgid "Continue"
-msgstr ""
+msgstr "Продължаване"
#: siglist.c:135
msgid "Child death or stop"
-msgstr ""
+msgstr "Смърт или Ñпиране на дъщерен процеÑ"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Спиране (вход от tty)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Спиране (изход към tty)"
#: siglist.c:147
msgid "I/O ready"
-msgstr ""
+msgstr "ГотовноÑÑ‚ за вх./изх."
#: siglist.c:151
msgid "CPU limit"
-msgstr ""
+msgstr "Ограничение на процеÑора"
#: siglist.c:155
msgid "File limit"
-msgstr ""
+msgstr "Ограничение на файловете"
#: siglist.c:159
msgid "Alarm (virtual)"
-msgstr ""
+msgstr "Ðларма (виртуална)"
#: siglist.c:163
msgid "Alarm (profile)"
-msgstr ""
+msgstr "Ðларма (по профил)"
#: siglist.c:167
msgid "Window changed"
-msgstr ""
+msgstr "Прозорецът е преоразмерен"
#: siglist.c:171
msgid "Record lock"
-msgstr ""
+msgstr "Заключен запиÑ"
#: siglist.c:175
msgid "User signal 1"
-msgstr ""
+msgstr "ПотребителÑки Ñигнал 1"
#: siglist.c:179
msgid "User signal 2"
-msgstr ""
+msgstr "ПотребителÑки Ñигнал 2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr ""
+msgstr "Идват данни по конзола HFT"
#: siglist.c:187
msgid "power failure imminent"
-msgstr ""
+msgstr "ПредÑтои Ñпиране на захранването"
#: siglist.c:191
msgid "system crash imminent"
-msgstr ""
+msgstr "ПредÑтои забиване на ÑиÑтемата"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr ""
+msgstr "ПремеÑтване на процеÑа на друг процеÑор"
#: siglist.c:199
msgid "programming error"
-msgstr ""
+msgstr "Програмна грешка"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "Дадено право за управление чрез конзола HFT"
#: siglist.c:207
msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "Отнето право за управление чрез конзола HFT"
#: siglist.c:211
msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "Завършена звукова поредица през HFT"
#: siglist.c:215
msgid "Information request"
-msgstr ""
+msgstr "ЗаÑвка за информациÑ"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr ""
+msgstr "Ðепознат Ñигнал #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr ""
+msgstr "Ðепознат Ñигнал #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "лошо замеÑтване: липÑва затварÑщ знак „%s“ в %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: на член от маÑив не може да Ñе приÑвои ÑпиÑък"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "не може да Ñе Ñъздаде програмен канал за замеÑтване на процеÑи"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "не може да Ñе Ñъздаде дъщерен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° замеÑтване на процеÑи"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "именуваниÑÑ‚ програмен канал %s не може да Ñе отвори за четене"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "именуваниÑÑ‚ програмен канал %s не може да Ñе отвори за запиÑ"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
"именуваниÑÑ‚ програмен канал %s не може да Ñе\n"
"дублира като Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð´ÐµÑкриптор %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "не може да Ñе Ñъздаде програмен канал за замеÑтване на команди"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "не може да Ñе Ñъздаде дъщерен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° замеÑтване на команди"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "замеÑтване на команди: каналът не може да Ñе дублира като fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: неправилно име за променлива-указател"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
-msgstr "%s: аргументът е null или не е зададен"
+msgstr "%s: аргументът е „null“ или не е зададен"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: изразът от подниза е < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: лошо замеÑтване"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: не може да Ñе задава по този начин"
-#: subst.c:7684
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
+#: subst.c:7917
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
msgstr ""
+"бъдещите верÑии на обвивката ще използват изчиÑлÑване като аритметично\n"
+"замеÑтване"
-#: subst.c:8149
-#, fuzzy, c-format
+#: subst.c:8421
+#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "лошо замеÑтване: липÑва затварÑщ знак „%s“ в %s"
+msgstr "лошо замеÑтване: липÑва затварÑщ знак „`“ в %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "нÑма Ñъвпадение: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "очаква Ñе аргумент"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: очаква Ñе целочиÑлен израз"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "очаква Ñе „)“"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "очаква Ñе „)“, а е получено %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:721 test.c:724
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: очаква Ñе унарен оператор"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:764
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: очаква Ñе бинарен оператор"
-#: test.c:816
+#: test.c:839
msgid "missing `]'"
msgstr "липÑва „]“"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "неправилен номер на Ñигнал"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-"Ñтартиране на предÑтоÑщите капани: неправилна ÑтойноÑÑ‚ в trap_list[%d]: %p"
+"Ñтартиране на предÑтоÑщите прихващаниÑ: неправилна ÑтойноÑÑ‚ в\n"
+"trap_list[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, 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 ""
-"Ñтартиране на предÑтоÑщите капани: обработката на Ñигнали е SIG_DFL.\n"
-"%d (%s) е преизпратено на текущата обвивка"
+"Ñтартиране на предÑтоÑщите прихващаниÑ: обработката на Ñигнали е SIG_DFL.\n"
+"%d (%s) е преизпратен на текущата обвивка"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
-msgstr "обработка на капани: неправилен Ñигнал %d"
+msgstr "обработка на прихващаниÑ: неправилен Ñигнал %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "грешка при внаÑÑнето на дефинициÑта на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð° „%s“"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "нивото на обвивката (%d) е прекалено голÑмо. Задава Ñе да е 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: цикъл в променливите-указатели"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-"Ñъздаване на локална променлива: липÑва контекÑÑ‚ на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð² текущата "
-"облаÑÑ‚\n"
+"Ñъздаване на локална променлива: липÑва контекÑÑ‚ на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð² текущата облаÑÑ‚\n"
"на видимоÑÑ‚"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: на тази променлива не може да Ñе приÑвои ÑтойноÑÑ‚"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
"вÑички локални променливи: липÑва контекÑÑ‚ на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð² текущата облаÑÑ‚ на\n"
"видимоÑÑ‚"
-#: variables.c:3427
-#, fuzzy, c-format
+#: variables.c:3891
+#, c-format
msgid "%s has null exportstr"
-msgstr "%s: аргументът е null или не е зададен"
+msgstr "%s: аргументът за низа за изнаÑÑне не Ñ‚Ñ€Ñбва да е „null“"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "неправилен знак на Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ %d в низа за изнаÑÑне за %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "липÑва „=“ в низа за изнаÑÑне за %s"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-"изваждане на контекÑÑ‚ на променливи: в началото на Ñтруктурата за променливи "
-"на\n"
+"изваждане на контекÑÑ‚ на променливи: в началото на Ñтруктурата за променливи на\n"
"обвивката (shell_variables) е нещо, което не е контекÑÑ‚ на функциÑ"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
"изваждане на контекÑÑ‚ на променливи: липÑва контекÑÑ‚ за глобални променливи\n"
"(global_variables)"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-"изваждане на облаÑÑ‚: поÑледниÑÑ‚ елемент Ñтруктурата за променливи на "
-"обвивката\n"
-"(shell_variables) не е временна облаÑÑ‚ в обкръжението"
+"изваждане на облаÑÑ‚: в началото на Ñтруктурата за променливи на обвивката\n"
+"(shell_variables) е нещо, което не е временна облаÑÑ‚ в обкръжението"
-#: variables.c:4786
-#, fuzzy, c-format
+#: variables.c:5257
+#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: не може да Ñе отвори: %s"
+msgstr "%s: %s не може да Ñе отвори като ФÐЙЛ"
-#: variables.c:4791
-#, fuzzy, c-format
+#: variables.c:5262
+#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%d: грешен файлов деÑкриптор: %s"
+msgstr "%s: %s: грешен файлов деÑкриптор за файла за траÑиране"
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: е извън допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½"
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "ÐвторÑки права (C) 2005 Free Software Foundation, Inc.\n"
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "ÐвторÑки права (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
+#: version.c:47 version2.c:47
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Лиценз GPLv3+: ОПЛ на GNU, верÑÐ¸Ñ 3 или по-виÑока <http://gnu.org/licenses/gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr ""
+msgstr "GNU bash, верÑÐ¸Ñ %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Това е Ñвободен Ñофтуер. Можете да го променÑте и разпроÑтранÑвате."
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "ÐÑма ÐИКÐКВИ ГÐРÐÐЦИИ до Ñтепента позволена от закона."
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "ÐвторÑки права (C) 2005 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "ÐвторÑки права (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
-"заделÑне на памет: %lu байта не могат да Ñе заделÑÑ‚ (заделени Ñа\n"
-"%lu байта)"
+msgstr "%s: не могат да Ñе заделÑÑ‚ %lu байта (заделени Ñа %lu байта)"
#: xmalloc.c:93
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "заделÑне на памет: %lu байта не могат да Ñе заделÑÑ‚"
+msgstr "%s: не могат да Ñе заделÑÑ‚ %lu байта"
#: xmalloc.c:163
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
-"заделÑне на памет: %s:%d: %lu байта не могат да Ñе заделÑÑ‚ (заделени Ñа\n"
-"%lu байта)"
+msgstr "%s: %s:%d: не могат да Ñе заделÑÑ‚ %lu байта (заделени Ñа %lu байта)"
#: xmalloc.c:165
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "заделÑне на памет: %s:%d: %lu байта не могат да Ñе заделÑÑ‚"
+msgstr "%s: %s:%d: не могат да Ñе заделÑÑ‚ %lu байта"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
-msgstr ""
+msgstr "alias [-p] [ИМЕ[=СТОЙÐОСТ]…]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr ""
+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]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
+"bind [-lpsvPSVX] [-m ПОДРЕДБÐ_ÐÐ_КЛÐВИÐТУРÐТÐ] [-f ИМЕ_ÐÐ_ФÐЙЛ]\n"
+" [-q ИМЕ] [-u ИМЕ] [-r ПОСЛЕДОВÐТЕЛÐОСТ_ОТ_КЛÐВИШИ]\n"
+" [-x ПОСЛЕДОВÐТЕЛÐОСТ_ОТ_КЛÐВИШИ:КОМÐÐДÐ_ÐÐ_ОБВИВКÐТÐ]\n"
+" [ПОСЛЕДОВÐТЕЛÐОСТ_ОТ_КЛÐВИШИ:КОМÐÐДÐ_ÐÐ_ОБВИВКÐТРили КОМÐÐДÐ_ÐÐ_READLINE]"
#: builtins.c:54
msgid "break [n]"
-msgstr ""
+msgstr "break [БРОЙ]"
#: builtins.c:56
msgid "continue [n]"
-msgstr ""
+msgstr "continue [БРОЙ]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [ВГРÐДЕÐÐ_КОМÐÐДР[ÐРГУМЕÐТ…]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr ""
+msgstr "caller [ИЗРÐЗ]"
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr ""
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [ДИРЕКТОРИЯ]"
#: builtins.c:66
msgid "pwd [-LP]"
-msgstr ""
+msgstr "pwd [-LP]"
#: builtins.c:68
msgid ":"
-msgstr ""
+msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr ""
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr ""
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] команда [ÐРГУМЕÐТ…]"
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr ""
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [ИМЕ[=СТОЙÐОСТ]…]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr ""
+msgstr "typeset [-aAfFgilrtux] [-p] [ИМЕ[=СТОЙÐОСТ]…]"
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [ОПЦИЯ] ИМЕ[=СТОЙÐОСТ]…"
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [ÐРГУМЕÐТ…]"
#: builtins.c:87
msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [ÐРГУМЕÐТ…]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f ФÐЙЛ] [ÐРГУМЕÐТ…]"
#: builtins.c:92
msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [ÐРГУМЕÐТ…]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts ÐИЗ_С_ОПЦИИ ИМЕ [ÐРГУМЕÐТ]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a ИМЕ] [КОМÐÐДР[ÐРГУМЕÐТИ…]] [ПРЕÐÐСОЧВÐÐЕ…]"
#: builtins.c:98
msgid "exit [n]"
-msgstr ""
+msgstr "exit [ЦИФРОВ_КОД]"
#: builtins.c:100
msgid "logout [n]"
-msgstr ""
+msgstr "logout [ЦИФРОВ_КОД]"
#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
+msgstr "fc [-e РЕДÐКТОР] [-lnr] [ПЪРВИ] [ПОСЛЕДЕÐ] или fc -s [ШÐБЛОÐ=ЗÐМЕСТИТЕЛ…] [КОМÐÐДÐ]"
#: builtins.c:107
msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [ЗÐДÐЧÐ]"
#: builtins.c:111
msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [ЗÐДÐЧÐ…]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p ПЪТ] [-dt] [ИМЕ…]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr ""
+msgstr "help [-dms] [ШÐБЛОÐ…]"
#: builtins.c:121
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
msgstr ""
+"history [-c] [-d ОТМЕСТВÐÐЕ] [БРОЙ] или \n"
+"history -anrw [ИМЕ_ÐÐ_ФÐЙЛ] или\n"
+"history -ps ÐРГ [ÐРГ…]"
#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [ЗÐДÐЧÐ…] или jobs -x КОМÐÐДР[ÐРГУМЕÐТИ]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [ЗÐДÐЧÐ…]"
#: builtins.c:132
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
msgstr ""
+"kill [-s СИГÐÐЛ | -n ÐОМЕР_ÐÐ_СИГÐÐЛ | -СИГÐÐЛ] ИДЕÐТИФИКÐТОР_ÐÐ_ПРОЦЕС\n"
+" | ИДЕÐТИФИКÐТОР_ÐÐ_ЗÐДÐЧÐ…\n"
+"или\n"
+"kill -l [СИГÐÐЛ]"
#: builtins.c:134
msgid "let arg [arg ...]"
-msgstr ""
+msgstr "let ÐРГУМЕÐТ [ÐРГУМЕÐТ…]"
#: builtins.c:136
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
+"read [-ers] [-a ÐœÐСИВ] [-d РÐЗДЕЛИТЕЛ] [-i ТЕКСТ] [-n БРОЙ_ЗÐÐЦИ]\n"
+" [-N БРОЙ_ЗÐÐЦИ] [-p ПОДСКÐЗКÐ] [-t БРОЙ_ЗÐÐЦИ] [-u ФÐЙЛОВ_ДЕСКРИПТОР]\n"
+" [ИМЕ…]"
#: builtins.c:138
msgid "return [n]"
-msgstr ""
+msgstr "return [ЦИФРОВ_КОД]"
#: builtins.c:140
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr ""
+msgstr "set [-abefhkmnptuvxBCHP] [-o ОПЦИЯ] [--] [ÐРГУМЕÐТИ…]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr ""
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [ИМЕ…]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [ИМЕ[=СТОЙÐОСТ]…] или export -p"
#: builtins.c:146
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [-aAf] [ИМЕ[=СТОЙÐОСТ]…] или readonly -p"
#: builtins.c:148
-#, fuzzy
msgid "shift [n]"
-msgstr "брой на премеÑтваниÑта"
+msgstr "shift [БРОЙ]"
#: builtins.c:150
-#, fuzzy
msgid "source filename [arguments]"
-msgstr "изиÑква Ñе аргумент име на файл"
+msgstr "source ФÐЙЛ [ÐРГУМЕÐТИ]"
#: builtins.c:152
-#, fuzzy
msgid ". filename [arguments]"
-msgstr "изиÑква Ñе аргумент име на файл"
+msgstr ". ФÐЙЛ [аргументи]"
#: builtins.c:155
msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr ""
+msgstr "test [ИЗРÐЗ]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr ""
+msgstr "[ ÐРГУМЕÐТ…]"
#: builtins.c:162
msgid "times"
-msgstr ""
+msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[ÐРГУМЕÐТ] СИГÐÐЛ…]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] ИМЕ [ИМЕ…]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr ""
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [ОГРÐÐИЧЕÐИЕ]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [ÐœÐСКÐ]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr ""
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [ИД…]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr ""
+msgid "wait [pid ...]"
+msgstr "wait [ИД_ПР…]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for ИМЕ [in ДУМИ…] ; do КОМÐÐДИ; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( ИЗРÐЗ_1; ИЗРÐЗ_2; ИЗРÐЗ_3 )); do КОМÐÐДИ; done"
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select ИМЕ [in ДУМИ…;] do КОМÐÐДИ; done"
#: builtins.c:188
msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] ПРОГРÐМЕÐ_КÐÐÐЛ"
#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case ДУМРin [ШÐБЛОР[| ШÐБЛОÐ]…) КОМÐÐДИ ;;]… esac"
#: builtins.c:192
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
+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 ""
+msgstr "while КОМÐÐДИ; do КОМÐÐДИ; done"
#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until КОМÐÐДИ; do КОМÐÐДИ; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr ""
+msgstr "coproc [ИМЕ] КОМÐÐДР[ПРЕÐÐСОЧВÐÐИЯ]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function name { КОМÐÐДИ ; } или name () { КОМÐÐДИ ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ КОМÐÐДИ ; }"
#: builtins.c:204
msgid "job_spec [&]"
-msgstr ""
+msgstr "%ЗÐДÐЧР[&]"
#: builtins.c:206
-#, fuzzy
msgid "(( expression ))"
-msgstr "очаква Ñе израз"
+msgstr "(( ИЗРÐЗ ))"
#: builtins.c:208
-#, fuzzy
msgid "[[ expression ]]"
-msgstr "очаква Ñе израз"
+msgstr "[[ ИЗРÐЗ ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "variables имена и значение на нÑкои от променливите на обвивката"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
-msgstr ""
+msgstr "pushd [-n] [+N | -N | ДИР]"
#: builtins.c:217
msgid "popd [-n] [+N | -N]"
-msgstr ""
+msgstr "popd [-n] [+N | -N]"
#: builtins.c:221
msgid "dirs [-clpv] [+N] [-N]"
-msgstr ""
+msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [ОПЦИЯ…]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v ПРОМЕÐЛИВÐ] ФОРМÐТ [ÐРГУМЕÐТИ]"
#: builtins.c:229
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
-"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o ОПЦИЯ] [-A ДЕЙСТВИЕ]\n"
+" [-G ШÐБЛОÐ] [-W ДУМИ] [-F ФУÐКЦИЯ] [-C КОМÐÐДÐ] [-X ФИЛТЪР]\n"
+" [-P ПРЕДСТÐВКÐ] [-S ÐÐСТÐВКÐ] [ИМЕ…]"
#: builtins.c:233
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+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 ОПЦИЯ] [-A ДЕЙСТВИЕ] [-G ШÐБЛОÐ]\n"
+" [-W ДУМИ] [-F ФУÐКЦИЯ] [-C КОМÐÐДÐ] [-X ФИЛТЪР] [-P ПРЕДСТÐВКÐ]\n"
+" [-S ÐÐСТÐВКÐ] [ДУМÐ]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o ОПЦИЯ] [-DE] [ИМЕ…]"
#: builtins.c:240
-msgid ""
-"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
+msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
msgstr ""
+"mapfile [-n БРОЙ] [-O ÐÐЧÐЛО] [-s БРОЙ] [-t] [-u ФÐЙЛ_ДЕСКР]\n"
+" [-C ФУÐКЦИЯ] [-c КВÐÐТ] [ÐœÐСИВ]"
#: builtins.c:242
-msgid ""
-"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
+msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
msgstr ""
+"readarray [-n БРОЙ] [-O ÐÐЧÐЛО] [-s БРОЙ] [-t] [-u ФÐЙЛ_ДЕСКР]\n"
+" [-C ФУÐКЦИЯ] [-c КВÐÐТ] [ÐœÐСИВ]"
#: builtins.c:254
-#, fuzzy
msgid ""
"Define or display aliases.\n"
" \n"
@@ -2376,22 +2392,26 @@ msgid ""
" -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"
+" 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"
-" когато Ñе зададе ИМЕ, за което не е дефиниран Ñиноним."
+"Дефиниране или извеждане на Ñиноними.\n"
+"\n"
+" „alias“ без аргументи или Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-p“ отпечатва ÑпиÑъка ÑÑŠÑ\n"
+" Ñинонимите във формат „ИМЕ=СТОЙÐОСТ“ на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´.\n"
+"\n"
+" Ð’ противен Ñлучай за вÑÑко ИМЕ, за което е зададена ÑтойноÑÑ‚, Ñе\n"
+" дефинира Ñиноним. Интервал в ÐºÑ€Ð°Ñ Ð½Ð° СТОЙÐОСТ-та предизвиква Ñинонимно\n"
+" замеÑтване на Ñледващата дума при замеÑтването на Ñинонима.\n"
+"\n"
+" Опции:\n"
+" -p Извежда вÑички Ñиноними във формат за поÑледващо използване\n"
+"\n"
+" Изходен код:\n"
+" alias връща 0, оÑвен в Ñлучаите, когато Ñе зададе ИМЕ, за което\n"
+" не е дефиниран Ñиноним."
#: builtins.c:276
-#, fuzzy
msgid ""
"Remove each NAME from the list of defined aliases.\n"
" \n"
@@ -2400,11 +2420,16 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
-" ИМЕната Ñе премахват от ÑпиÑъка Ñ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð¸Ñ‚Ðµ Ñиноними. Ðко е е дадена и\n"
-" опциÑта „-a“ тогава Ñе премахват вÑички Ñиноними."
+"Премахване на ИМЕната от ÑпиÑъка Ñ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð¸Ñ‚Ðµ Ñиноними.\n"
+"\n"
+" Опции:\n"
+" -a премахване на вÑички Ñиноними.\n"
+"\n"
+" Изходен код:\n"
+" Връща 0, оÑвен в Ñлучаите, когато Ñе зададе ИМЕ, за което\n"
+" не е дефиниран Ñиноним."
#: builtins.c:289
-#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2416,80 +2441,74 @@ msgid ""
" 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"
-" -S List key sequences that invoke macros and their "
-"values\n"
-" -s List key sequences that invoke macros and their "
-"values\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"
+" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\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"
+"Задаване на клавишни комбинации и променливи на readline.\n"
+"\n"
+" ПриÑвоÑване на поÑледователноÑÑ‚ от клавиши на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ Ð¼Ð°ÐºÑ€Ð¾Ñ Ð¾Ñ‚\n"
+" readline или задаване на променлива на 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"
+" Опции:\n"
+" -m ПОДРЕДБР\n"
+" Използване на ПОДРЕДБÐта като подредба на функциите на клавишите\n"
+" докато командата Ñе изпълнÑва. Валидни Ñа Ñледните имена:\n"
+" „emacs“, „emacs-standard“, „emacs-meta“, „emacs-ctlx“, „vi“,\n"
+" „vi-move“, „vi-command“ и „vi-insert“.\n"
+" -l СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на функциите.\n"
+" -P СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на функциите и приÑвоÑваниÑта.\n"
+" -p СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на функциите и приÑвоÑваниÑта във вид, който може\n"
+" да Ñе използва за вход.\n"
+" -S СпиÑък Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ½Ð¸Ñ‚Ðµ поÑледователноÑти, които извикват макроÑи и\n"
+" ÑтойноÑтите им.\n"
+" -s СпиÑък Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ½Ð¸Ñ‚Ðµ поÑледователноÑти, които извикват макроÑи и\n"
+" ÑтойноÑтите им във вид, който може да Ñе използва за вход.\n"
+" -V СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на променливите и ÑтойноÑтите им.\n"
+" -v СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на променливите и ÑтойноÑтите им във вид, който\n"
+" може да Ñе използва за вход.\n"
" -q ИМЕ_ÐÐ_ФУÐКЦИЯ\n"
-" Проверка кои клавиши извикват функциÑта Ñ Ñ‚Ð¾Ð²Ð° име.\n"
+" Проверка кои клавиши извикват функциÑта Ñ Ñ‚Ð¾Ð²Ð° име.\n"
" -u ИМЕ_ÐÐ_ФУÐКЦИЯ\n"
-" Премахване на приÑвоÑваниÑта към вÑички клавиши на\n"
-" функциÑта Ñ Ñ‚Ð¾Ð²Ð° име.\n"
-" -V СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на променливите и ÑтойноÑтите им.\n"
-" -v СпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на променливите и ÑтойноÑтите им във "
-"вид,\n"
-" който може да Ñе използва за вход.\n"
-" -S СпиÑък Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ½Ð¸Ñ‚Ðµ поÑледователноÑти, които извикват\n"
-" макроÑи и ÑтойноÑтите им.\n"
-" -s СпиÑък Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ½Ð¸Ñ‚Ðµ поÑледователноÑти, които извикват\n"
-" макроÑи и ÑтойноÑтите им във вид, който може да "
-"Ñе\n"
-" използва за вход."
-
-#: builtins.c:326
-#, fuzzy
+" Премахване на приÑвоÑваниÑта към вÑички клавиши на функциÑта Ñ\n"
+" това име.\n"
+" -r КЛÐВИШÐÐ_ПОСЛЕДОВÐТЕЛÐОСТ\n"
+" Премахване на приÑвоената Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ñ‚ КЛÐВИШÐÐта_ПОСЛЕДОВÐТЕЛÐОСТ.\n"
+" -f ФÐЙЛ\n"
+" Прочитане на приÑвоÑваниÑта на клавиши от ФÐЙЛа.\n"
+" -x КЛÐВИШÐÐ_ПОСЛЕДОВÐТЕЛÐОСТ:КОМÐÐДÐ_ÐÐ_ОБВИВКÐТÐ\n"
+" Изпълнение на КОМÐÐДÐта_ÐÐ_ОБВИВКÐТРпри въвеждането на\n"
+" КЛÐВИШÐÐта_ПОСЛЕДОВÐТЕЛÐОСТ.\n"
+" -X Извеждане на клавишните комбинации зададени Ñ â€ž-x“ и Ñвързаните Ñ Ñ‚ÑÑ…\n"
+" команди във форма, коÑто може да Ñе ползва и за вход\n"
+"\n"
+" Изходен код:\n"
+" bind връща 0, оÑвен когато е зададена непозната Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка."
+
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2499,11 +2518,15 @@ msgid ""
" 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-Ñ‚Ð¸Ñ Ð¾Ð±Ñ…Ð²Ð°Ñ‰Ð°Ñ‰ цикъл."
+"Изход от цикли чрез „for“, „while“ или „until“.\n"
+" \n"
+" Изход от цикли организирани чрез „for“, „while“ или „until“. Ðко е зададен\n"
+" БРОЙ Ñе излиза от толкова на БРОЙ обхващащи цикли.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададен БРОЙ, който е по-малък от 1."
-#: builtins.c:338
-#, fuzzy
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2513,25 +2536,39 @@ msgid ""
" 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-Ñ‚Ð¸Ñ Ð¾Ð±Ñ…Ð²Ð°Ñ‰Ð°Ñ‰ цикъл."
+"Продължаване на цикъл чрез „for“, „while“ или „until“.\n"
+"\n"
+" Продължаване ÑÑŠÑ Ñледващата Ð¸Ñ‚ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ цикъл, организиран Ñ â€žfor“, „while“\n"
+" или „until“. Ðко е зададен БРОЙ, Ñе продължава ÑÑŠÑ Ñледващата итерациÑ\n"
+" на Ð¾Ð±Ñ…Ð²Ð°Ñ‰Ð°Ñ‰Ð¸Ñ Ñ†Ð¸ÐºÑŠÐ» зададен Ñ Ñ‚Ð¾Ð·Ð¸ БРОЙ.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададен БРОЙ, който е по-малък от 1."
-#: builtins.c:350
+#: builtins.c:352
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"
+" 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 ""
+"Изпълнение на вградени команди.\n"
+"\n"
+" Изпълнение на ВГРÐДЕÐÐта_КОМÐÐÐ”Ð Ñ ÐРГУМЕÐТи, без да Ñе Ñ‚ÑŠÑ€Ñи нормална\n"
+" команда. Това е полезно в Ñлучаите, когато иÑкате да Ñъздадете вградена\n"
+" команда като Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката, но във функциÑта иÑкате да изпълните\n"
+" вградената команда.\n"
+"\n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на ВГРÐДЕÐÐта_КОМÐÐДРили лъжа, ако извиканата \n"
+" ВГРÐДЕÐÐ_КОМÐÐДРвÑъщноÑÑ‚ не е вградена команда."
-#: builtins.c:365
-#, fuzzy
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2546,69 +2583,87 @@ msgid ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
msgstr ""
-" Връща контекÑта на текущото извикване на подпрограма.\n"
+"Връщане на контекÑта на текущото извикване на подпрограма.\n"
" \n"
" Без ИЗРÐЗ връща „$line $filename“. С ИЗРÐЗ връща\n"
" „$line $subroutine $filename“. Допълнителната Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да Ñе\n"
" използва за получаване на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑÑŠÑтоÑнието на Ñтека.\n"
" \n"
-" СтойноÑтта на ИЗРÐЗа показва за колко рамки ÑпрÑмо текущата да Ñе "
-"изведе\n"
-" информациÑ. Ðай-горната рамка е 0."
+" СтойноÑтта на ИЗРÐЗа показва за колко рамки ÑпрÑмо текущата да Ñе изведе\n"
+" информациÑ. Ðай-горната рамка е 0.\n"
+" \n"
+" Изходен код:\n"
+" Връща 0, оÑвен ако обвивката изпълнÑва Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð° в обвивката или\n"
+" ИЗРÐЗът е грешен."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
-" Change the current directory to DIR. The default DIR is the value of "
-"the\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"
+" 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"
+" 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"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
-" Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
" -P is used; non-zero otherwise."
msgstr ""
-" СмÑна на текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð° е ДИРЕКТОРИЯ. Променливата $HOME е\n"
-" Ñтандартната директориÑ. Променливата $CDPATH Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¿ÑŠÑ‚Ñ Ð·Ð° Ñ‚ÑŠÑ€Ñене\n"
-" на директории, които могат да Ñъдържат ДИРЕКТОРИЯта. Директориите в "
-"$CDPATH\n"
-" Ñа разделени Ñ â€ž:“. ЛипÑващо име на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð° текущата\n"
-" директориÑ, Ñ‚.е. „.“. Ðко името на ДИРЕКТОРИЯта започва Ñ Ð½Ð°ÐºÐ»Ð¾Ð½ÐµÐ½Ð° "
-"черта\n"
-" „/“, $CDPATH не Ñе ползва. Ðко директориÑта не е открита, но е "
-"зададена\n"
-" опциÑта на обвивката „cdable_vars“, то думата Ñе пробва като име на\n"
-" променлива. Ðко променливата има ÑтойноÑÑ‚, то директориÑта Ñе ÑменÑ\n"
-" към ÑтойноÑтта на таи променлива. ОпциÑта „-P“ налага използването на\n"
-" фактичеÑката подредба на директориите, вмеÑто да Ñе Ñледват Ñимволните\n"
-" връзки. ОпциÑта „-L“ налага Ñледването на Ñимволните връзки."
-
-#: builtins.c:414
+"СмÑна на работната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° обвивката.\n"
+"\n"
+" СмÑна на текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð° е ДИРЕКТОРИЯ. Променливата „HOME“ е\n"
+" Ñтандартната директориÑ.\n"
+"\n"
+" Променливата „CDPATH“ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¿ÑŠÑ‚Ñ Ð·Ð° Ñ‚ÑŠÑ€Ñене на директории, които могат да\n"
+" Ñъдържат ДИРЕКТОРИЯта. Директориите в „CDPATH“ Ñа разделени Ñ â€ž:“. \n"
+" ЛипÑващо име на Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ð²Ð° текущата директориÑ, Ñ‚.е. „.“. Ðко името\n"
+" на ДИРЕКТОРИЯта започва Ñ Ð½Ð°ÐºÐ»Ð¾Ð½ÐµÐ½Ð° черта „/“, „CDPATH“ не Ñе ползва.\n"
+"\n"
+" Ðко директориÑта не е открита, но е зададена опциÑта на обвивката\n"
+" „cdable_vars“, то думата Ñе пробва като име на променлива. Ðко променливата\n"
+" има ÑтойноÑÑ‚, то директориÑта Ñе ÑÐ¼ÐµÐ½Ñ ÐºÑŠÐ¼ ÑтойноÑтта на тази променлива.\n"
+" \n"
+" Опции:\n"
+" -L налага Ñледването на Ñимволните връзки. Символните връзки в\n"
+" ДИРЕКТОРИЯта Ñе обработват Ñлед указателите към горна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž..“.\n"
+" -P налага използването на фактичеÑката подредба на директориите, вмеÑто\n"
+" да Ñе Ñледват Ñимволните връзки. Символните връзки в ДИРЕКТОРИЯта Ñе\n"
+" обработват Ñлед указателите към горна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž..“.\n"
+" -e ако е използвана опциÑта „-P“ и текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ може да бъде\n"
+" определена, командата завършва Ñ Ð½ÐµÐ½ÑƒÐ»ÐµÐ² изход.\n"
+" -@ на ÑиÑтемите Ñ Ð¿Ð¾Ð´Ð´Ñ€ÑŠÐ¶ÐºÐ° на разширени атрибути файлът Ñе предÑтавÑ\n"
+" като директориÑ, в коÑто Ñа атрибутите.\n"
+"\n"
+" Стандартно Ñимволните връзки Ñе Ñледват, вÑе едно е зададена опциÑта „-L“\n"
+"\n"
+" Изходен код:\n"
+" Връща 0 при ÑмÑна на директориÑта. Когато е зададена опциÑта „-P“, 0 Ñе\n"
+" връща при уÑпешно задаване на променливата „PWD„. Във вÑички оÑтанали\n"
+" Ñлучаи изходът е ненулев."
+
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2623,9 +2678,20 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
+"Извеждане на името на текущата работна директориÑ.\n"
+" \n"
+" Опции:\n"
+" -L извежда ÑтойноÑтта на променливата „PWD“, ако Ñ‚Ñ ÑъответÑтва на\n"
+" текущата директориÑ\n"
+" -P извежда физичеÑката Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð±ÐµÐ· Ñимволни връзки\n"
+" \n"
+" Стандартно поведението на „pwd“ без аргументи ÑъответÑтва на „-L“.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е подадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ текущата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ може да\n"
+" бъде прочетена."
-#: builtins.c:431
-#, fuzzy
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2633,31 +2699,44 @@ msgid ""
" \n"
" Exit Status:\n"
" Always succeeds."
-msgstr " Без ефект - командата нищо не прави. Връща Ñе изходен код 0."
+msgstr ""
+"Ðулева команда.\n"
+" \n"
+" Без ефект — командата нищо не прави.\n"
+" \n"
+" Изходен код:\n"
+" Винаги завършва уÑпешно."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Връщане на уÑпешен резултат.\n"
+" \n"
+" Изходен код:\n"
+" Винаги завършва уÑпешно."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
" Exit Status:\n"
" Always fails."
msgstr ""
+"Връщане на неуÑпешен резултат.\n"
+" \n"
+" Изходен код:\n"
+" Винаги завършва неуÑпешно."
-#: builtins.c:460
+#: builtins.c:468
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"
+" 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"
@@ -2669,9 +2748,23 @@ msgid ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
+"Изпълнение на нормална команда или извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° команди.\n"
+" \n"
+" Изпълнение на КОМÐÐДÐта Ñ ÐРГументи, без Ñ‚Ñ Ð´Ð° Ñе Ñ‚ÑŠÑ€Ñи като Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð°\n"
+" обвивката, или извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° указаните КОМÐÐДи. Може да Ñе\n"
+" използва за изпълнението на външни команди, дори когато ÑъщеÑтвува функциÑ\n"
+" ÑÑŠÑ Ñъщото име.\n"
+" \n"
+" Опции:\n"
+" -p използване на Ñтандартна ÑтойноÑÑ‚ на PATH. Така могат да Ñе откриÑÑ‚\n"
+" вÑички Ñтандартни инÑтрументи\n"
+" -v извежда опиÑание на КОМÐÐДÐта подобно на вградената команда „type“\n"
+" -V извежда по пълно опиÑание на вÑÑка КОМÐÐДÐ\n"
+" \n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на КОМÐÐДÐта или грешка, ако такава не е открита."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2691,6 +2784,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2701,52 +2795,64 @@ msgid ""
" 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"
+" When used in a function, `declare' makes NAMEs local, as with the `local'\n"
" command. The `-g' option suppresses this behavior.\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:517
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Задаване на ÑтойноÑти на променливите и атрибутите.\n"
+" \n"
+" Деклариране на променливи и задаване на атрибутите им. Ðко не Ñа дадени\n"
+" ИМЕна Ñе изобразÑват атрибутите и ÑтойноÑтите на вÑички променливи.\n"
+" \n"
+" Опции:\n"
+" -f Ограничаване на дейÑтвието или извеждането до имената и дефинициите\n"
+" на функциите\n"
+" -F Ограничаване на извеждането Ñамо до имената на функциите, заедно Ñ\n"
+" номерата на редовете и изходните файлове при изчиÑтване на грешките\n"
+" -g Създаване на глобална променлива, когато опциÑта е употребена във\n"
+" функциÑ. Ð’ противен Ñлучай Ñе пренебрегва\n"
+" -p Извеждане на атрибутите и ÑтойноÑтта на вÑÑко ИМЕ\n"
+" \n"
+" Опции за задаването на атрибути:\n"
+" -a ИМЕната да Ñа на индекÑирани маÑиви (ако Ñе поддържат)\n"
+" -A ИМЕната да Ñа аÑоциативни маÑиви (ако Ñе поддържат)\n"
+" -i ИМЕната да Ñа Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ „цÑло чиÑло“\n"
+" -l При приÑвоÑване на ÑтойноÑÑ‚ Ñ‚Ñ Ð´Ð° Ñе преобразува в малки букви\n"
+" -n ИМЕто да е указател към променливата Ñ Ð¸Ð¼Ðµ, което е дадено от\n"
+" ÑтойноÑтта\n"
+" -r ИМЕната да Ñа Ñамо за четене\n"
+" -t ИМЕната да Ñа Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ за траÑиране\n"
+" -u При приÑвоÑване на ÑтойноÑÑ‚ Ñ‚Ñ Ð´Ð° Ñе преобразува в главни букви\n"
+" -x ИМЕната да Ñе изнаÑÑÑ‚ към Ñредата\n"
+" \n"
+" При използването на „+“ вмеÑто „-“ атрибутът Ñе изключва.\n"
+" \n"
+" При приÑвоÑването на ÑтойноÑÑ‚ на променлива ÑÑŠÑ Ð·Ð°Ð´Ð°Ð´ÐµÐ½ атрибут за цÑло\n"
+" чиÑло Ñе извършва аритметично изчиÑлÑване (вижте командата „let“).\n"
+" the `let' command).\n"
+" \n"
+" Когато Ñе използва във функциÑ, командата „declare“ прави ИМЕната локални,\n"
+" вÑе едно Ñе изпълнÑва командата „local“. ОпциÑта „-g“ предотвратÑва това\n"
+" поведение.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка при задаването\n"
+" на ÑтойноÑÑ‚ на променлива."
+
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
+"Задаване на ÑтойноÑÑ‚ и атрибути на променливи.\n"
+" \n"
+" ОÑтарÑло. Виж „help declare“."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2757,16 +2863,27 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
+"Дефиниране на локални променливи.\n"
+" \n"
+" Създаване на локална променлива Ñ Ñ‚Ð¾Ð²Ð° ИМЕ и зададената СТОЙÐОСТ. ОПЦИЯта\n"
+" може да е вÑÑка приемана от вградената команда „declare“.\n"
+" \n"
+" Локалните променливи могат да Ñе използват Ñамо във функциÑ. Те Ñа видими\n"
+" Ñамо в Ð½ÐµÑ Ð¸ нейните наÑледници.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададена неправилна ОПЦИЯ, възникне грешка при задаването на\n"
+" ÑтойноÑÑ‚ на променлива, или в момента не Ñе изпълнÑва функциÑ."
-#: builtins.c:542
-#, fuzzy
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2778,6 +2895,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2792,27 +2910,40 @@ msgid ""
" 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:576
+"Извеждане на аргументите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´.\n"
+"\n"
+" Извеждане на ÐРГУМЕÐТите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´ разделени Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð»Ð¸ и\n"
+" поÑледвани от нов ред.\n"
+"\n"
+" Опции:\n"
+" -n не Ñе извежда знак за нов ред.\n"
+" -e включва Ñе интерпретирането на знаците, изброени по-долу, екранирани\n"
+" Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð° наклонена черта — „\\“\n"
+" -Е изрично Ñе Ñпира интерпретирането на долните знаци\n"
+"\n"
+" „echo“ поддържа Ñледните екранирани знаци:\n"
+" \\a ÑиÑтемен звънец\n"
+" \\b триене назад\n"
+" \\c пропуÑкане на знака за нов ред\n"
+" \\e знак за екраниране\n"
+" \\E знак за екраниране\n"
+" \\f знак „Завършване на формулÑра“ (form feed)\n"
+" \\n знак за нов ред\n"
+" \\r знак „Връщане на каретката“ (carriage return)\n"
+" \\t хоризонтална табулациÑ\n"
+" \\v вертикална табулациÑ\n"
+" \\\\ обратно наклонена черта\n"
+" \\0nnn\n"
+" знакът Ñ ÐºÐ¾Ð´ в ASCII NNN (в оÑмична бройна ÑиÑтема). NNN може да Ñе\n"
+" ÑÑŠÑтои от 1 до 3 оÑмични цифри.\n"
+" \\xHH\n"
+" знакът Ñ ÐºÐ¾Ð´ в ASCII HH (в шеÑтнайÑетична бройна ÑиÑтема). HH може\n"
+" да Ñе ÑÑŠÑтои от 1 до 2 шеÑтнайÑетични цифри.\n"
+"\n"
+" Изходен код:\n"
+" Връща 0, оÑвен ако не възникне грешка при извеждането."
+
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2824,8 +2955,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
+"Извеждане на аргументите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´.\n"
+" \n"
+" Извеждане на ÐРГументите на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´ поÑледвани от знак за нов ред.\n"
+" \n"
+" Опции:\n"
+" -n без извеждане на знак за нов ред\n"
+" \n"
+" Изходен код:\n"
+" Връща 0, оÑвен ако възникне грешка при извеждането."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2851,21 +2991,55 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
+"Включване и изключване на вградените в обвивката команди.\n"
+" \n"
+" Включване и изключване на командите вградени в обвивката. Изключването\n"
+" позволÑва извикването на външна команда ÑÑŠÑ Ñъщото име като вградена без\n"
+" използването на пълното име Ñ Ð¿ÑŠÑ‚Ñ.\n"
+" \n"
+" Опции:\n"
+" -a Извеждане на ÑпиÑъка Ñ Ð²Ð³Ñ€Ð°Ð´ÐµÐ½Ð¸Ñ‚Ðµ команди заедно Ñ Ñ‚Ð¾Ð²Ð° дали Ñа\n"
+" включени или не\n"
+" -n Изключване на вградените команди Ñ Ð¿Ð¾Ñочените ИМЕна. Ðко не Ñа\n"
+" дадени ИМЕна, Ñе извежда ÑпиÑъкът Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ‚Ðµ вътрешни команди\n"
+" -p Извеждане на ÑпиÑъка Ñ Ð²ÑŠÑ‚Ñ€ÐµÑˆÐ½Ð¸ команди във формат, който може да\n"
+" Ñе ползва като вход\n"
+" -s Извеждане Ñамо на имената на Ñпециалните вградени команди Ñпоред\n"
+" POSIX\n"
+" \n"
+" Опции за динамичното зареждане:\n"
+" -f Зареждане на вградена команда Ñ Ñ‚Ð¾Ð²Ð° ИМЕ от ÑÐ¿Ð¾Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÐµÐºÑ‚ в\n"
+" поÑÐ¾Ñ‡ÐµÐ½Ð¸Ñ Ð¤ÐЙЛ\n"
+" -d Премахване на вътрешна команда заредена Ñ â€ž-f“\n"
+" \n"
+" Ðко не Ñа зададени опции, вÑÑка от вътрешните команди Ñ Ñ‚Ð°ÐºÐ¾Ð²Ð° ИМЕ бива\n"
+" включена.\n"
+" \n"
+" За да ползвате командата „test“, коÑто Ñе намира в Ð¿ÑŠÑ‚Ñ Ð·Ð° изпълнение $PATH,\n"
+" вмеÑто Ð²Ð³Ñ€Ð°Ð´ÐµÐ½Ð¸Ñ Ð² обвивката вариант изпълнете: „enable -n test“.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако ИМЕто не е на вградена команда или не възникне грешка."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
-" Combine ARGs into a single string, use the result as input to the "
-"shell,\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 ""
+"Изпълнение на аргументите като команда на обвивката.\n"
+" \n"
+" Комбинира ÐРГументите в общ низ, който Ñе подава като вход на обвивка,\n"
+" коÑто изпълнÑва получените команди.\n"
+" \n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на командата или код за уÑпех, ако командата е нулева."
-#: builtins.c:631
-#, fuzzy
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2905,55 +3079,49 @@ msgid ""
" 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"
+" getopts Ñе използва от процедурите на обвивката за анализа на позиционните\n"
+" аргументи и опции.\n"
" \n"
-" ÐИЗът_С_ОПЦИИ Ñъдържа знаците, които Ñ‚Ñ€Ñбва да Ñе разпознават като "
-"опции.\n"
-" Ðко буквата е Ñледвана от двоеточие, очаква Ñе опциÑта да получава "
-"аргумент,\n"
+" ÐИЗът_С_ОПЦИИ Ñъдържа знаците, които Ñ‚Ñ€Ñбва да Ñе разпознават като опции.\n"
+" Ðко буквата е Ñледвана от двоеточие, очаква Ñе опциÑта да получава аргумент,\n"
" който да е разделен от Ð½ÐµÑ Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð»(и).\n"
" \n"
-" При вÑÑко извикване, „getopts“ поÑÑ‚Ð°Ð²Ñ Ñледващата Ð¾Ð¿Ñ†Ð¸Ñ Ð² променливата "
-"на\n"
-" обвивката $name, като Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð°, ако Ñ‚Ñ Ð½Ðµ ÑъщеÑтвува, а индекÑÑŠÑ‚ "
-"на\n"
-" ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, който Ñ‚Ñ€Ñбва да Ñе обработи, в променливата на "
-"обвивката\n"
-" $OPTIND. $OPTIND Ñе инициализира да е 1 при вÑÑко извикване на обвивка "
-"или\n"
-" Ñкрипт. Когато опциÑта Ñе нуждае от аргумент, той Ñе поÑÑ‚Ð°Ð²Ñ Ð² "
-"променливата\n"
-" на обвивката $OPTARG.\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:673
+" „OPTSTRING“ е двоеточие, „getopts“ използва тихо докладване. В този режим\n"
+" не Ñе извеждат никакви ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° грешка. Ðко Ñе Ñрещне неправилна опциÑ,\n"
+" „getopts“ Ñлага ÑÑ€ÐµÑ‰Ð½Ð°Ñ‚Ð¸Ñ Ð·Ð½Ð°Ðº за Ð¾Ð¿Ñ†Ð¸Ñ Ð² „OPTARG“. Ðко липÑва задължителен\n"
+" аргумент, „getopts“ Ñлага „:“ в променливата „ИМЕ“, а в „OPTARG“ — ÑрещнатиÑ\n"
+" знак за опциÑ. Когато „getopts“ не е в режим на тихо докладване и Ñе Ñрещне\n"
+" неправилна опциÑ, в променливата „ИМЕ“ Ñе Ñлага „?“, а „OPTARG“ Ñе премахва,\n"
+" а ако липÑва задължителен аргумент, допълнително Ñе изпиÑва диагноÑтично\n"
+" Ñъобщение.\n"
+" \n"
+" Ðко променливата на обвивката „OPTERR“ е ÑÑŠÑ ÑтойноÑÑ‚ 0, „getopts“ изключва\n"
+" извеждането на диагноÑтични ÑъобщениÑ, дори първиÑÑ‚ знак в „OPTSTRING“ да не\n"
+" е двоеточие. По подразбиране „OPTERR“ е ÑÑŠÑ ÑтойноÑÑ‚ 1.\n"
+" \n"
+" „getopts“ по принцип анализира позиционните аргументи ($0 — $9), но ако Ñа\n"
+" дадени повече аргументи, те биват анализирани вмеÑто това.\n"
+"\n"
+" Изходен код:\n"
+" Връща 0 при откриването на опциÑ. Връща друга ÑтойноÑÑ‚ при Ñтигането на\n"
+" поÑледната Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ при възникването на грешка."
+
+#: builtins.c:685
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"
+" ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,\n"
" any redirections take effect in the current shell.\n"
" \n"
" Options:\n"
@@ -2961,49 +3129,65 @@ msgid ""
" -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"
+" 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."
+" Returns success unless COMMAND is not found or a redirection error occurs."
msgstr ""
+"ЗамеÑтване на обвивката Ñ Ð´Ð°Ð´ÐµÐ½Ð°Ñ‚Ð° команда.\n"
+"\n"
+" ИзпълнÑване на КОМÐÐДÐта, като Ñ‚Ñ Ð·Ð°Ð¼ÐµÑтва текущата обвивка. ÐРГУМЕÐТите\n"
+" Ñе подават на КОМÐÐДÐта. Ðко не е дадена КОМÐÐДÐ, пренаÑочваниÑта Ñе\n"
+" извършват в текущата обвивка.\n"
+"\n"
+" Опции:\n"
+" -a ИМЕ ИМЕ-то Ñе подава като Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ на КОМÐÐДÐта\n"
+" -c изпълнÑване на КОМÐÐДÐта в нулева Ñреда\n"
+" -l поÑтавÑне на тире в Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ на КОМÐÐДÐта\n"
+"\n"
+" Ðко КОМÐÐДÐта не може да бъде изпълнена, Ñ‚Ñ€Ñбва да ÑъщеÑтвува неинтерактивна\n"
+" обвивка, оÑвен ако не е зададена опциÑта на обвивката „execfail“.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен когато КОМÐÐДÐта не е открита или възникне грешка при\n"
+" пренаÑочването."
-#: builtins.c:694
-#, fuzzy
+#: builtins.c:706
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"
-" поÑледната изпълнена команда."
+"Изход от обвивката.\n"
+" \n"
+" Изход от обвивката Ñ Ñ‚Ð¾Ð·Ð¸ ЦИФРОВ_КОД. Ðко той е изпуÑнат, то изходниÑÑ‚ код\n"
+" е този на поÑледната изпълнена команда."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
-" Exits a login shell with exit status N. Returns an error if not "
-"executed\n"
+" Exits a login shell with exit status N. Returns an error if not executed\n"
" in a login shell."
msgstr ""
+"Изход от входната обвивка.\n"
+" \n"
+" Изход от входната обвивка Ñ Ñ‚Ð¾Ð·Ð¸ ЦИФРОВ_КОД. Връща грешка, ако е изпълнена\n"
+" в обвивка, коÑто не е входна."
-#: builtins.c:713
-#, fuzzy
+#: builtins.c:725
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"
+" 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"
+" -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"
@@ -3017,37 +3201,36 @@ msgid ""
" the last command.\n"
" \n"
" Exit Status:\n"
-" Returns success or status of executed command; non-zero if an error "
-"occurs."
+" 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"
+" fc Ñе използва за изброÑването или редактирането и повторното изпълнение на\n"
+" команди от ÑпиÑъка на иÑториÑта.\n"
+" ПЪРВИ и ПОСЛЕДЕРÑа номера, които могат да указват допуÑÑ‚Ð¸Ð¼Ð¸Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½. Ðко\n"
+" е зададен Ñамо ПЪРВИÑÑ‚ аргумент, той задава низ, който е началото на\n"
+" команда.\n"
+" \n"
+" Опции:\n"
+" -e РЕДÐКТОР\n"
+" избор на текÑтов редактор, който да Ñе използва. Стандартно е\n"
+" указаниÑÑ‚ в променливата „FCEDIT“, Ñлед това Ñе проверÑва „EDITOR“ и\n"
+" в краен Ñлучай е „vi“.\n"
+" -l редовете да Ñе покажат вмеÑто редактират.\n"
+" -n номерата на редовете да не Ñе отпечатват.\n"
+" -r обратна подредба (отпред да е най-новиÑÑ‚ ред).\n"
+" \n"
+" При варианта „fc -s [ШÐБЛОÐ=ЗÐМЕСТИТЕЛ…] [КОМÐÐДÐ]“ командата Ñе изпълнÑва, като\n"
" вÑÑка поÑва на ШÐБЛона Ñе Ð·Ð°Ð¼ÐµÐ½Ñ ÑÑŠÑ Ð—ÐМЕСТителÑ.\n"
" \n"
-" Удобен за използване Ñиноним е „r='fc -s'“. По такъв начин, ако "
-"напишете\n"
-" „r cc“, ще Ñе изпълни поÑледната команда, коÑто започва Ñ â€žcc“, а "
-"когато\n"
-" Ñе въведе Ñамо „-r“, ще Ñе изпълни поÑледната команда."
+" Удобен за използване Ñиноним е „r='fc -s'“. По такъв начин, ако напишете\n"
+" „r cc“, ще Ñе изпълни поÑледната команда, коÑто започва Ñ â€žcc“, а когато\n"
+" Ñе въведе Ñамо „r“, ще Ñе изпълни поÑледната команда.\n"
+"\n"
+" Изходен код:\n"
+" Връща 0 или изхода от поÑледната команда, който не е 0 в Ñлучай на грешка."
-#: builtins.c:743
-#, fuzzy
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3058,38 +3241,45 @@ msgid ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-" Изважда ЗÐДÐЧРот фонов режим и Ñ Ð¿Ñ€Ð°Ð²Ð¸ текуща задача. Ðко липÑва\n"
-" аргумент ЗÐДÐЧÐ, Ñе използва текущата задача Ñпоред обвивката."
+"Задаване на задача да е текуща.\n"
+"\n"
+" Изважда ЗÐДÐЧРот фонов режим и Ñ Ð¿Ñ€Ð°Ð²Ð¸ текуща задача. Ðко липÑва\n"
+" аргумент ЗÐДÐЧÐ, Ñе използва текущата задача Ñпоред обвивката.\n"
+"\n"
+" Изходен код:\n"
+" Изходът от командата, коÑто е зададена да е текуща или грешка, ако при\n"
+" поÑтавÑнето на задачата от фонов към текущ режим възникне такава."
-#: builtins.c:758
-#, fuzzy
+#: builtins.c:770
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"
+" 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"
-" Ðко липÑва аргумент ЗÐДÐЧÐ, Ñе използва текущата задача Ñпоред обвивката."
+"ПоÑтавÑне на задачи във фонов режим.\n"
+"\n"
+" ПоÑÑ‚Ð°Ð²Ñ Ð²ÑÑка ЗÐДÐЧРвъв фонов режим, вÑе едно е била Ñтартирана Ñ â€ž&“.\n"
+" Ðко липÑва аргумент ЗÐДÐЧÐ, Ñе използва текущата задача Ñпоред обвивката.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако управлението на задачи е изключено или възникне грешка."
-#: builtins.c:772
+#: builtins.c:784
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"
+" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3101,8 +3291,28 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
+"ЗапомнÑне или извеждане на меÑтоположениÑта на програми.\n"
+" \n"
+" ОпределÑне и запомнÑне на пълното име Ñ Ð¿ÑŠÑ‚Ñ Ð½Ð° вÑÑко ИМЕ. Ðко не Ñа дадени\n"
+" аргументи, Ñе извежда Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вÑички запомнени команди.\n"
+" \n"
+" Опции:\n"
+" -d ЗабравÑне на запомненото меÑтоположение на вÑички ИМЕна\n"
+" -l Извеждане във формат за преизползване като вход\n"
+" -p ПЪТ\n"
+" Използване на поÑÐ¾Ñ‡ÐµÐ½Ð¸Ñ ÐŸÐªÐ¢ като пълен път за ИМЕто\n"
+" -r ЗабравÑне на вÑички запомнени меÑтоположениÑ\n"
+" -t Извеждане на запомнените меÑÑ‚Ð¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° вÑички ИМЕна. Ðко е\n"
+" поÑочено повече от едно ИМЕ, вÑÑко меÑтоположение Ñе предшеÑтва от\n"
+" ИМЕто\n"
+" Ðргументи:\n"
+" ИМЕ Ð’ÑÑко име Ñе Ñ‚ÑŠÑ€Ñи в Ð¿ÑŠÑ‚Ñ Ð·Ð° изпълнение „PATH“ и при намирането му\n"
+" Ñе Ð´Ð¾Ð±Ð°Ð²Ñ Ð² ÑпиÑъка ÑÑŠÑ Ð·Ð°Ð¿Ð¾Ð¼Ð½ÐµÐ½Ð¸ команди.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако ИМЕто не бъде открито или е дадена неправилна опциÑ."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3120,12 +3330,28 @@ msgid ""
" PATTERN\tPattern specifiying a help topic\n"
" \n"
" Exit Status:\n"
-" Returns success unless PATTERN is not found or an invalid option is "
-"given."
+" Returns success unless PATTERN is not found or an invalid option is given."
msgstr ""
+"Извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вградените команди.\n"
+" \n"
+" Извежда кратка Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вградените команди. Ðко е указан ШÐБЛОÐ, Ñе\n"
+" извежда Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° напаÑващите команди. Ð’ противен Ñлучай Ñе изважда\n"
+" Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вÑички команди.\n"
+" \n"
+" Опции:\n"
+" -d Извеждане на кратко опиÑание на вÑÑка тема\n"
+" -m Извеждане във формат наподобÑващ Ñтраница от ръководÑтвата\n"
+" -s Извеждане Ñамо на кратко обобщение за използването на вÑÑка команда,\n"
+" Ñъвпадаща Ñ Ð¨ÐБЛОÐа\n"
+" \n"
+" Ðргументи:\n"
+" ШÐБЛОРШаблон за имената на командите, за които да Ñе изведе информациÑ\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако Ð½Ð¸ÐºÐ¾Ñ Ð²Ð³Ñ€Ð°Ð´ÐµÐ½Ð° команда не Ñъвпада Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° или е дадена\n"
+" неправилна опциÑ."
-#: builtins.c:821
-#, fuzzy
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3152,48 +3378,44 @@ msgid ""
" \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"
+" 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"
" отбелÑзани ÑÑŠÑ Ð·Ð½Ð°ÐºÐ° „*“, Ñа били променени. Ðргументът N указва да Ñе\n"
-" извеждат Ñамо N на брой реда. ОпциÑта „-c“ предизвиква изчиÑтването на\n"
-" ÑпиÑъка, като Ñе изтриват вÑички елементи от него. ОпциÑта „-d“ "
-"изтрива\n"
-" елемента в иÑториÑта намиращ Ñе поÑочената ПОЗИЦИЯ. ОпциÑта „-w“ "
-"запиÑва\n"
-" текущата иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²ÑŠÐ² файла за иÑториÑта. ОпциÑта „-r“ означава ÑъщиÑÑ‚ "
-"файл\n"
-" да Ñе прочете, а Ñъдържанието му да Ñе добави към иÑториÑта. ОпциÑта „-"
-"a“\n"
-" Ð´Ð¾Ð±Ð°Ð²Ñ Ð¸ÑториÑта от текущата ÑеÑÐ¸Ñ ÐºÑŠÐ¼ файла Ñ Ð¸ÑториÑта. ОпциÑта „-n“\n"
-" предизвиква вÑички редове от файла Ñ Ð¸ÑториÑта, които вÑе още не Ñа\n"
-" прочетени от файла Ñ Ð¸ÑториÑта, да Ñе прочетат и добавÑÑ‚ към текущата\n"
-" иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ð° командите.\n"
+" извеждат Ñамо N на брой реда.\n"
+"\n"
+" Опции:\n"
+" -c изчиÑтване на ÑпиÑъка, като Ñе изтриват вÑички елементи от него.\n"
+" -d ПОЗИЦИЯ\n"
+" изтрива елемента в иÑториÑта намиращ Ñе поÑочената ПОЗИЦИЯ.\n"
+" -a Ð´Ð¾Ð±Ð°Ð²Ñ Ð¸ÑториÑта от текущата ÑеÑÐ¸Ñ ÐºÑŠÐ¼ файла Ñ Ð¸ÑториÑта.\n"
+" -n прочитане на непрочетените редове от файла Ñ Ð¸ÑториÑта.\n"
+" -r прочитане на файла Ñ Ð¸ÑториÑта и добавÑне на Ñъдържанието към текущата\n"
+" иÑториÑ.\n"
+" -w запиÑване на текущата иÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²ÑŠÐ² файла за иÑториÑта.\n"
+" -p извършване на иÑторичеÑко замеÑтване за вÑеки ÐРГУМЕÐТ, а резултатът да\n"
+" Ñе изведе, без нищо да Ñе запиÑва в иÑториÑта на командите.\n"
+" -s аргументите, които не Ñа опции, Ñе добавÑÑ‚ като един елемент към файла Ñ\n"
+" иÑториÑта.\n"
" \n"
" Ðко аргументът ИМЕ_ÐÐ_ФÐЙЛ е зададен, той Ñе използва като файл за\n"
" иÑториÑта. Ðко той липÑва, Ñе използва файлът Ñочен в променливата на\n"
-" Ñредата $HISTFILE. Ð’ противен Ñлучай Ñе ползва „~/.bash_history“. Ðко е\n"
-" зададена опциÑта „-s“, аргументите, които не Ñа опции, Ñе добавÑÑ‚ като "
-"един\n"
-" елемент към файла Ñ Ð¸ÑториÑта. ОпциÑта „-p“ означава да Ñе извърши\n"
-" иÑторичеÑко замеÑтване за вÑеки ÐРГУМЕÐТ, а резултатът да Ñе изведе, "
-"без\n"
-" нищо да Ñе запиÑва в иÑториÑта на командите.\n"
-" \n"
-" Ðко променливата $HISTTIMEFORMAT е зададена и не е „null“, ÑтойноÑтта Ñ "
-"Ñе\n"
-" използва като Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ð½Ð¸Ð· за функциÑта „strftime“, за да Ñе "
-"отбелÑзва\n"
-" времето Ñвързано Ñ Ð²Ñеки елемент от иÑториÑта. Ð’ противен Ñлучай "
-"времето не\n"
-" Ñе запиÑва."
-
-#: builtins.c:857
-#, fuzzy
+" Ñредата „HISTFILE“. Ð’ противен Ñлучай Ñе ползва „~/.bash_history“.\n"
+" \n"
+" Ðко променливата „HISTTIMEFORMAT“ е зададена и не е „null“, ÑтойноÑтта Ñ Ñе\n"
+" използва като Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ð½Ð¸Ð· за функциÑта „strftime“, за да Ñе отбелÑзва\n"
+" времето Ñвързано Ñ Ð²Ñеки елемент от иÑториÑта. Ð’ противен Ñлучай времето не\n"
+" Ñе запиÑва.\n"
+" \n"
+" Изходен код:\n"
+" 0. Ðко възникне грешка или е подадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ€ÑŠÑ‰Ð° грешка."
+
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3216,24 +3438,29 @@ msgid ""
" 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:884
+"Извежда ÑÑŠÑтоÑнието на задачите.\n"
+"\n"
+" Извежда ÑпиÑък Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ‚Ðµ задачи. ЗÐДÐЧÐта ограничава информациÑта до\n"
+" Ñебе Ñи. Без опции Ñе отпечатва ÑÑŠÑтоÑнието на вÑички активни задачи.\n"
+"\n"
+" Опции:\n"
+" -l включва и идентификатора на процеÑите заедно ÑÑŠÑ Ñтандартната\n"
+" информациÑ.\n"
+" -n извеждат Ñе Ñамо процеÑите Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½ÐµÐ½Ð¾ ÑÑŠÑтоÑние от поÑледното\n"
+" извеждане на тази информациÑ.\n"
+" -p извежда Ñамо идентификаторите на процеÑите.\n"
+" -r ограничаване на изхода Ñамо до работещите задачи.\n"
+" -s ограничаване на изхода Ñамо до Ñпрените задачи.\n"
+"\n"
+" Ðко е зададена опциÑта „-x“, КОМÐÐДÐта Ñе изпълнÑва, Ñлед като вÑички\n"
+" ЗÐДÐЧи, които Ñе поÑвÑват като ÐРГУМЕÐТи, Ñе заменÑÑ‚ Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð° на\n"
+" водача на групата процеÑи.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако не е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникни грешка. Ðко Ñе\n"
+" ползва „-x“, връща изходното ÑÑŠÑтоÑние на КОМÐÐДÐта."
+
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3249,9 +3476,21 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
+"Премахване на ЗÐДÐЧи от текущата обвивка.\n"
+" \n"
+" Премахва вÑеки аргумент-задача от таблицата на активните задачи. Ðко ЗÐДÐЧÐ\n"
+" не е указана, Ñе използва тази, коÑто обвивката Ñчита за текуща.\n"
+" \n"
+" Опции:\n"
+" -a премахване на вÑички задачи, когато не е дадена ЗÐДÐЧÐ\n"
+" -h предотвратÑване на препращането на Ñигнал SIGHUP към задачата,\n"
+" когато тази обвивка получи ÑÑŠÑ‰Ð¸Ñ Ñ‚Ð¾Ð·Ð¸ Ñигнал\n"
+" -r премахване Ñамо на Ñтартираните задачи.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен когато е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ неÑъщеÑтвуваща ЗÐДÐЧÐ."
-#: builtins.c:903
-#, fuzzy
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3272,26 +3511,37 @@ msgid ""
" 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:926
-#, fuzzy
+"Изпращане на Ñигнал към задача.\n"
+"\n"
+" Изпращане на СИГÐÐЛа на процеÑа Ñ Ñ‚Ð°ÐºÑŠÐ² ИДЕÐТИФИКÐТОР_ÐÐ_ПРОЦЕС (или\n"
+" задачата Ñ Ñ‚Ð°ÐºÑŠÐ² ИДЕÐТИФИКÐТОР_ÐÐ_ЗÐДÐЧÐ). Ðко Ñигнал Ñ Ñ‚Ð°ÐºÐ¾Ð²Ð° име или\n"
+" номер не ÑъщеÑтвува, Ñе използва SIGTERM.\n"
+"\n"
+" Опции:\n"
+" -s СИГÐÐЛ\n"
+" СИГÐÐЛ Ñе интерпретира като име на Ñигнал\n"
+" -n СИГÐÐЛ\n"
+" СИГÐÐЛ Ñе интерпретира като номер на Ñигнал\n"
+" -l изброÑва имената на Ñигналите. Ðко към командата Ñа добавени\n"
+" аргументи, те Ñе интерпретират като номера на Ñигналите чиито имена\n"
+" да Ñе изброÑÑ‚.\n"
+"\n"
+" „kill“ е команда вградена в обвивката поради две причини: позволÑва да Ñе\n"
+" използват и идентификатори на задачи оÑвен идентификатори на процеÑи, а и\n"
+" ако Ñте пуÑнали макÑимално Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð° Ð²Ð°Ñ Ð±Ñ€Ð¾Ð¹ процеÑи, нÑма да ви Ñе\n"
+" налага да пуÑнете още един процеÑ, за да убиете друг.\n"
+"\n"
+" Изходен код:\n"
+" 0. Ðко възникне грешка или е подадена неправилна опциÑ, връща грешка."
+
+#: builtins.c:938
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"
+" 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"
@@ -3327,61 +3577,58 @@ msgid ""
" Exit Status:\n"
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-" Ð’Ñеки аргумент е аритметичен израз, който Ñе бъде изчиÑлен. ИзчиÑлениÑта\n"
+"ИзчиÑлÑване на аритметичен израз.\n"
+"\n"
+" Ð’Ñеки ÐРГУМЕÐТ е аритметичен израз, който Ñе бъде изчиÑлен. ИзчиÑлениÑта\n"
" Ñе извършват в аритметика Ñ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñлени ÑтойноÑти Ñ Ð¿Ð¾ÑтоÑнна широчина\n"
" без проверка за препълване. Делението на 0 Ñе прихваща и Ñе отбелÑзва\n"
-" грешка. СледващиÑÑ‚ ÑпиÑък на оператори е разделен на групи Ñпоред\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:971
-#, fuzzy
+" id++, id-- поÑледващо увеличаване/намалÑване на променлива\n"
+" ++id, --id предварително увеличаване/намалÑване на променлива\n"
+" -, + унарни минуÑ, плюÑ\n"
+" !, ~ логичеÑко и побитово отрицаниÑ\n"
+" ** вдигане на Ñтепен\n"
+" *, /, % умножение, деление, целочиÑлен оÑтатък\n"
+" +, - Ñъбиране, изваждане\n"
+" <<, >> побитово меÑтене налÑво и надÑÑно\n"
+" <=, >=, <, > Ñравнение\n"
+" ==, != равно, различно\n"
+" & побитово И\n"
+" ^ побитово изключващо ИЛИ\n"
+" | побитово ИЛИ\n"
+" && логичеÑко И\n"
+" || логичеÑко ИЛИ\n"
+" ИЗРÐЗ ? ИЗРÐЗ : ИЗРÐЗ\n"
+" уÑловен оператор\n"
+" =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=\n"
+" приÑвоÑване\n"
+" \n"
+" Разрешено е ползването на променливи на обвивката като операнди. Името на\n"
+" променлива Ñе замеÑтва Ñ Ð½ÐµÐ¹Ð½Ð°Ñ‚Ð° ÑтойноÑÑ‚ (коÑто Ñе преобразува до цÑло\n"
+" чиÑло Ñ Ð¿Ð¾ÑтоÑнна широчина) в израза. Ðе е необходимо променливата да е Ñ\n"
+" атрибут за целочиÑленоÑÑ‚, за да Ñе използва в израз.\n"
+" \n"
+" Операторите Ñе изчиÑлÑват по приоритет. Подизразите в Ñкоби Ñе изчиÑлÑват\n"
+" първи и могат да променÑÑ‚ приоритета.\n"
+" \n"
+" Изходен код:\n"
+" Ðко поÑледниÑÑ‚ ÐРГУМЕÐТ Ñе изчиÑлÑва като 0, „let“ връща 1. Ð’ противен\n"
+" Ñлучай — връща 0."
+
+#: builtins.c:983
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"
+" 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"
+" 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"
+" 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"
@@ -3393,64 +3640,74 @@ msgid ""
" -n nchars\treturn after reading NCHARS characters rather than waiting\n"
" \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
" \t\tcharacters are read before the delimiter\n"
-" -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
" \t\tEOF is encountered or read times out, ignoring any delimiter\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 timeout\ttime out and return failure if a complete line of input is\n"
+" \t\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" The return code is zero, unless end-of-file is encountered, read times out\n"
+" (in which case it's greater than 128), a variable assignment error occurs,\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:1014
+"Изчитане на ред от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ и разделÑнето му по полета.\n"
+"\n"
+" От ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ или от Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¸Ñ Ð´ÐµÑкриптор ФД, ако е използвана опциÑта\n"
+" „-u“, Ñе прочита един ред. Редът Ñе Ñ€Ð°Ð·Ð´ÐµÐ»Ñ Ð½Ð° полета — думи. Първата дума\n"
+" Ñе приÑвоÑва на първото ИМЕ, втората дума на второто ИМЕ и Ñ‚.н., а на\n"
+" поÑледното ИМЕ Ñе приÑвоÑват оÑтаващите думи. Като разделители на думи Ñе\n"
+" използват Ñамо знаците указани в променливата „IFS“.\n"
+"\n"
+" Ðко не Ñа дадени ИМЕна, прочетениÑÑ‚ ред Ñе запазва в променливата „REPLY“.\n"
+"\n"
+" Опции:\n"
+" -a прочетените думи Ñе приÑвоÑват поÑледователно на елементите на ÐœÐСИВа,\n"
+" като индекÑÑŠÑ‚ му започва от 0.\n"
+" -d РÐЗДелител\n"
+" четенето продължава прочитането на Ð¿ÑŠÑ€Ð²Ð¸Ñ Ð·Ð½Ð°Ðº, който приÑÑŠÑтва в\n"
+" променливата „DELIM“, а не до минаването на нов ред.\n"
+" -e за четене на реда Ñе използва readline, когато обвивката е\n"
+" интерактивна.\n"
+" -i ТЕКСТ\n"
+" за първоначален текÑÑ‚ в readline Ñе ползва ТЕКСТ\n"
+" -n БРОЙ_ЗÐÐЦИ\n"
+" четенето завършва Ñлед прочитането на този БРОЙ_ЗÐÐЦИ, не Ñе чака за\n"
+" нов ред. Разделител в рамките на този БРОЙ_ЗÐÐЦИ Ñе зачита.\n"
+" -N БРОЙ_ЗÐÐЦИ\n"
+" четенето завършва Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½ÐµÑ‚Ð¾ на точно този БРОЙ_ЗÐÐЦИ, оÑвен ако\n"
+" не Ñе поÑви EOF или времето за изчакване на въвеждане не изтече.\n"
+" Ð’Ñички разделители Ñе пренебрегват.\n"
+" -p ПОДСКÐЗКÐ\n"
+" извежда низа ПОДСКÐЗКРбез минаване на нов ред, преди да започне\n"
+" четенето на знаци от входа.\n"
+" -r замеÑтването на екранираните Ñ â€ž\\“ знаци Ñе изключва.\n"
+" -s входът от терминал не Ñе отпечатва на екрана.\n"
+" -t БРОЙ_СЕКУÐДИ\n"
+" задава интервал от този БРОЙ_СЕКУÐДИ, в който Ñ‚Ñ€Ñбва да Ñе въведе цÑл\n"
+" ред. Ð’ противен Ñлучай read завършва Ñ Ð³Ñ€ÐµÑˆÐºÐ°. Ðко е зададена,\n"
+" ÑтойноÑтта на променливата „TMOUT“ обозначава времето, за което Ñ‚Ñ€Ñбва\n"
+" да Ñе въведе редът. За БРОЙ_СЕКУÐДИ може да Ñе ползва и нецÑло чиÑло.\n"
+" Ðко БРОЙ_СЕКУÐДИ e 0, read незабавно завършва работа, без да Ñе опитва\n"
+" да чете данни и връща код 0, Ñамо ако от ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² деÑкриптор\n"
+" могат да Ñе прочетат данни.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако не Ñе Ñрещне знак за край на файл EOF, изтече време повече от\n"
+" указаното в БРОЙ_СЕКУÐДИ, при което кодът за изход е над 128, възникне\n"
+" грешка при задаване на ÑтойноÑÑ‚ на променлива или е зададен неправилен\n"
+" файлов деÑкриптор като аргумент на -u."
+
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3461,9 +3718,17 @@ msgid ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
+"Връщане от Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката.\n"
+"\n"
+" Кара изпълнÑваната Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¸Ð»Ð¸ Ñкрипт да завършат работа ÑÑŠÑ Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¸Ñ\n"
+" изходен ЦИФРОВ_КОД. Ðко не е зададен ЦИФРОВ_КОД Ñе използва Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на\n"
+" поÑледно изпълнената команда във функциÑта или Ñкрипта.\n"
+"\n"
+" Изходен код:\n"
+" Връща ЦИФРОВиÑ_КОД или грешка, ако обвивката в момента не изпълнÑва функциÑ\n"
+" или Ñкрипт."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3506,8 +3771,7 @@ msgid ""
" 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"
+" 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"
@@ -3529,7 +3793,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3547,94 +3811,89 @@ msgid ""
" 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"
+"\n"
+" ПромÑна на ÑтойноÑтите на позиционните параметри и опции на обвивката,\n"
+" Извеждане на имената и ÑтойноÑтите на променливите на обвивката.\n"
+"\n"
+" Опции:\n"
+" -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"
+" 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:1112
+" posix промÑна на поведението на „bash“ да Ð¾Ñ‚Ð³Ð¾Ð²Ð°Ñ€Ñ Ð¿Ð¾-добре\n"
+" на Ñтандарта POSIX\n"
+" privileged Ñъщото като „-p“\n"
+" verbose Ñъщото като „-v“\n"
+" vi използване на Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð° редактиране подобен на „vi“\n"
+" xtrace Ñъщото като „-x“\n"
+" -p ОпциÑта e включена, когато реалниÑÑ‚ и ефективниÑÑ‚ идентификатори на\n"
+" процеÑи не Ñъвпадат. Изключва обработката на файла поÑочен в\n"
+" променливата „ENV“ и внаÑÑнето на функции на обвивката. Изключването\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"
+" -- ОÑтаващите аргументи да Ñе тълкуват като позиционни. Ðко нÑма повече\n"
+" аргументи, Ñе изтриват Ñъответните позиционни.\n"
+" - ОÑтаващите аргументи да Ñе тълкуват като позиционни. Опциите „-x“ и\n"
+" „-v“ Ñа изключени.\n"
+" \n"
+" Използването на „+“ вмеÑто „-“ изключва опциите. Тези опции могат да Ñе\n"
+" използват и при Ñтартирането на обвивката. Текущото им ÑÑŠÑтоÑние Ñе намира\n"
+" в променливата „-“ (получава Ñе Ñ â€ž$-“). ОÑтаналите ÐРГументи Ñа позиционни\n"
+" и Ñе приÑвоÑват Ñъответно на променливите Ñ Ð¸Ð¼ÐµÐ½Ð° „1“, „2“,… „n“ (получават\n"
+" Ñе Ñ â€ž$1“, „$2“,… „${n}“). Ðко не Ñа зададени ÐРГументи, Ñе извеждат\n"
+" вÑички променливи на Ñредата.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако не е зададена неправилна опциÑ."
+
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3643,9 +3902,10 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
-" Without options, unset first tries to unset a variable, and if that "
-"fails,\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"
@@ -3653,14 +3913,32 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
+"Изтриване на ÑтойноÑтите и атрибутите на променливите и функциите на обвивката.\n"
+" \n"
+" За вÑÑко ИМЕ изтрива Ñъответната променлива или функциÑ.\n"
+" \n"
+" Опции:\n"
+" -f вÑÑко ИМЕ Ñе тълкува като Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката\n"
+" -v вÑÑко ИМЕ Ñе тълкува като променлива на обвивката\n"
+" -n вÑÑко ИМЕ Ñе тълкува като променлива-указател — трие Ñе Ñамата\n"
+" променлива, а не тази, към коÑто Ñ‚Ñ Ñочи\n"
+" \n"
+" Ðко не Ñа подадени опции, командата unset първо Ñе опитва да изтрие\n"
+" променлива и Ñлед това Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ Ñ‚Ð¾Ð²Ð° ИМЕ.\n"
+" \n"
+" ÐÑкои променливи не могат да бъдат изтрити. Вижте вградената команда\n"
+" „readonly“ (Ñамо за четене).\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ нÑкое от ИМЕната е Ñамо за\n"
+" четене."
-#: builtins.c:1132
+#: builtins.c:1148
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"
+" executed commands. If VALUE is supplied, assign VALUE before exporting.\n"
" \n"
" Options:\n"
" -f\trefer to shell functions\n"
@@ -3672,8 +3950,24 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
+"Задаване на атрибута за изнаÑÑне на променливите на обвивката.\n"
+" \n"
+" Обозначава вÑÑко едно от ИМЕната за изнаÑÑне в Ñредата на изпълнение на\n"
+" поÑледващо изпълнените команди. Ðко е дадена СТОЙÐОСТ, Ñ‚Ñ Ñе приÑвоÑва на\n"
+" ИМЕто преди изнаÑÑнето.\n"
+" \n"
+" Опции:\n"
+" -f ИМЕто е на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката\n"
+" -n Премахване на атрибута за изнаÑÑне от вÑÑко от ИМЕната\n"
+" -p Извеждане на ÑпиÑък Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на вÑички променливи и функции за\n"
+" изнаÑÑне\n"
+" \n"
+" Ðргументът „--“ прекъÑва по нататъшната обработка на опции.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ нÑкое от ИМЕната е неправилно."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3685,15 +3979,33 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending on\n"
+" whether or not the -f option is given\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 ""
+"Задаване на променливи на обвивката като непроменливи конÑтанти.\n"
+" \n"
+" ОтбелÑзване на вÑÑко от ИМЕната Ñамо за четене. ТÑхната ÑтойноÑÑ‚ не може да\n"
+" бъде променÑна чрез поÑледващо приÑвоÑване. Ðко е дадена СТОЙÐОСТ, Ñ‚Ñ Ñе\n"
+" задава на името преди задаването му като конÑтантно.\n"
+" \n"
+" Опции:\n"
+" -a ИМЕната Ñа на променливи-маÑиви\n"
+" -A ИМЕната Ñа на променливи-аÑоциативни маÑиви\n"
+" -f ИМЕната Ñа на функции на обвивката\n"
+" -p Извеждане на имената на вÑички конÑтантни променливи или функции, в\n"
+" завиÑимоÑÑ‚ дали е зададена опциÑта „-f“\n"
+" \n"
+" Ðргументът „--“ прекъÑва по нататъшната обработка на опции.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ нÑкое от ИМЕната е неправилно."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3703,9 +4015,16 @@ msgid ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
msgstr ""
+"ИзмеÑтване на позиционните параметри.\n"
+"\n"
+" Преименуване на позиционните параметри „БРОЙ+1“, „БРОЙ+2“… на 1, 2…. Така\n"
+" те Ñтават доÑтъпни не като ${БРОЙ+1}…, като „$1“…. Ðко не е зададена\n"
+" ÑтойноÑÑ‚ БРОЙ, Ñе използва 1.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако БРОÑÑ‚ е отрицателно или по-голÑмо от ÑтойноÑтта „$#“."
-#: builtins.c:1184 builtins.c:1199
-#, fuzzy
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3718,14 +4037,18 @@ msgid ""
" Returns the status of the last command executed in FILENAME; fails if\n"
" FILENAME cannot be read."
msgstr ""
-" Изчитане и изпълнение на командите от ФÐЙЛа и изход. Директориите опиÑани "
-"в\n"
-" променливата $PATH Ñе използват за изпълнението на командите от ФÐЙЛа. "
-"Ðко\n"
+"ИзпълнÑване на команди от файл в текущата обвивка\n"
+"\n"
+" Изчитане и изпълнение на командите от ФÐЙЛа и изход. Директориите опиÑани в\n"
+" променливата „PATH“ Ñе използват за изпълнението на командите от ФÐЙЛа. Ðко\n"
" Ñа зададени ÐРГУМЕÐТИ, те Ñе превръщат в позиционни аргументи при\n"
-" изпълнението на ФÐЙЛа."
+" изпълнението на ФÐЙЛа.\n"
+"\n"
+" Изходен код:\n"
+" Връща ÑÑŠÑтоÑнието на поÑледно изпълнената команда във ФÐЙЛа. Ðко той не\n"
+" може да бъде открит, изходът е грешка."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3738,9 +4061,19 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
+"Временно Ñпиране на изпълнението на обвивката.\n"
+" \n"
+" Спиране на работата на тази обвивка докато обвивката не получи Ñигнал\n"
+" SIGCONT. ОÑвен ако изрично не Ñе зададе опциÑ, входните обвивки не могат да\n"
+" бъдат Ñпрени по този начин.\n"
+" \n"
+" Опции:\n"
+" -f Задължително Ñпиране, дори и ако обвивката е входÑща\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако не възникне грешка или управлението на задачи е изключено."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3774,8 +4107,7 @@ msgid ""
" -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 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"
@@ -3796,8 +4128,7 @@ msgid ""
" STRING1 != STRING2\n"
" True if the strings are not equal.\n"
" STRING1 < STRING2\n"
-" True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+" True if STRING1 sorts before STRING2 lexicographically.\n"
" STRING1 > STRING2\n"
" True if STRING1 sorts after STRING2 lexicographically.\n"
" \n"
@@ -3805,6 +4136,7 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name reference.\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"
@@ -3820,111 +4152,119 @@ msgid ""
" 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"
+" Изход Ñ ÐºÐ¾Ð´ 0 (иÑтина) или 1 (лъжа) в завиÑимоÑÑ‚ от ÑтойноÑтта на ИЗРÐЗа.\n"
+" Изразите могат да бъдат унарни или бинарни. Унарните най-чеÑто Ñе използват\n"
+" за проверка на ÑÑŠÑтоÑнието на файл. ОÑвен Ñ‚ÑÑ… има и оператори за чиÑлови\n"
" ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¸ низови оператори.\n"
" \n"
+" Поведението на теÑтовете завиÑи от Ð±Ñ€Ð¾Ñ Ð½Ð° аргументите. За цÑлоÑтно\n"
+" опиÑание прочетете Ñтраниците от ръководÑтвото на bash.\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"
+" -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"
+" -z ÐИЗ ИÑтина, ако ÐИЗът е празен.\n"
+" -n ÐИЗ ИÑтина, ако ÐИЗът не е празен.\n"
+" ÐИЗ ИÑтина, ако ÐИЗът не е празен.\n"
" \n"
-" ÐИЗ_1 = ÐИЗ_2 ИÑтина, ако низовете Ñа равни.\n"
-" ÐИЗ_1 != ÐИЗ_2 ИÑтина, ако низовете не Ñа равни.\n"
-" ÐИЗ_1 < ÐИЗ_2 ИÑтина, ако ÐИЗ_1 е лекÑикографÑки преди ÐИЗ_2.\n"
-" ÐИЗ_1 > ÐИЗ_2 ИÑтина, ако ÐИЗ_1 е лекÑикографÑки Ñлед ÐИЗ_2.\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:1311
-#, fuzzy
+" -o ОПЦИЯ ИÑтина, ако ОПЦИЯта на обвивката е зададена.\n"
+" -v ПРОМЕÐЛИВРИÑтина, ако ПРОМЕÐЛИВÐта на обвивката е зададена.\n"
+" -R ПРОМЕÐЛИВРИÑтина, ако ПРОМЕÐЛИВÐта е зададена като променлива-\n"
+" указател.\n"
+" ! ИЗРÐЗ ИÑтина, ако ИЗРÐЗът е лъжа.\n"
+" ИЗРÐЗ_1 -a ИЗРÐЗ_2 ИÑтина, ако и двата ИЗРÐЗа Ñа иÑтина.\n"
+" ИЗРÐЗ_1 -o ИЗРÐЗ_2 ИÑтина, ако поне един от ИЗРÐЗите е иÑтина.\n"
+" ÐРГ_1 ОПЕР ÐРГ_2 Ðритметични теÑтове. Те връщат иÑтина, ако Ñе\n"
+" изпълнÑва математичеÑкото уÑловие на ОПЕРатора,\n"
+" който е един от Ñледните (значението е в Ñкоби):\n"
+" „-eq“ (=), „-ne“ (!=), „-lt“ (<), „-le“ (<=),\n"
+" „-gt“ (>) , „-ge“ (>=).\n"
+" \n"
+" Ðритметичните изрази завършват иÑтинно, ако ÐРГумент_1 е Ñъответно равен,\n"
+" неравен, по-малък, по-малък или равен, по-голÑм, по-голÑм или равен на\n"
+" ÐРГумент_2.\n"
+" \n"
+" Изходен код:\n"
+" 0, ако ИЗРÐЗът е верен. Грешка, когато ИЗРÐЗът е неверен или е даден\n"
+" неправилен аргумент."
+
+#: builtins.c:1329
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"
-" задължително да е знакът „]“, който да ÑъответÑтва на отварÑщата Ñкоба "
-"„[“."
+"ИзчиÑлÑване на уÑловен израз.\n"
+"\n"
+" Това е Ñиноним на вградената команда „test“, но поÑледниÑÑ‚ аргумент Ñ‚Ñ€Ñбва\n"
+" задължително да е знакът „]“, който да ÑъответÑтва на отварÑщата квадратна\n"
+" Ñкоба „[“."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
-" Prints the accumulated user and system times for the shell and all of "
-"its\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 ""
+"Извеждане на времето на работа на процеÑите.\n"
+" \n"
+" Отпечатва общото потребителÑко и ÑиÑтемно време на работа на обвивката и\n"
+" вÑичките Ñ Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸ процеÑи.\n"
+" \n"
+" Изходен код:\n"
+" Винаги 0."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
-" Defines and activates handlers to be run when the shell receives "
-"signals\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"
@@ -3933,56 +4273,63 @@ msgid ""
" 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. "
-"If\n"
-" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-" script run by the . or source builtins finishes executing. A "
-"SIGNAL_SPEC\n"
-" of ERR means to execute ARG each time a command's failure would cause "
-"the\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. If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+" script run by the . or source builtins finishes executing. A SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause the\n"
" shell to exit when the -e option is enabled.\n"
" \n"
-" If no arguments are supplied, trap prints the list of commands "
-"associated\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 <signal.h> or a signal "
-"number.\n"
+" Each SIGNAL_SPEC is either a signal name in <signal.h> 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."
+" Returns success unless a SIGSPEC is invalid or an invalid option is given."
msgstr ""
-" Командата ÐРГУМЕÐТ ще бъде прочетена и изпълнена, когато обвивката получи\n"
+"Прихващане на Ñигналите и другите ÑъбитиÑ.\n"
+"\n"
+" Дефинира и задейÑтва функции за обработка, когато обвивката получи Ñигнал\n"
+" или възникне друго Ñъбитие.\n"
+"\n"
+" Командата ÐРГУМЕÐТ ще бъде прочетена и изпълнена, когато обвивката получи\n"
" УКÐЗÐÐиÑ_СИГÐÐЛ(и). Ðко ÐРГУМЕÐТът липÑва (и Ñе подава единичен\n"
-" УКÐЗÐÐ_СИГÐÐЛ) или е „-“, то вÑеки УКÐЗÐÐ_СИГÐÐЛ Ñе връща към "
-"първоначалната\n"
-" Ñи ÑтойноÑÑ‚. Ðко ÐРГУМЕÐТът е Ð½ÑƒÐ»ÐµÐ²Ð¸Ñ Ð½Ð¸Ð·, вÑеки УКÐЗÐÐ_СИГÐÐЛ Ñе\n"
-" пренебрегва от обвивката и командите, които Ñе Ñтартират през неÑ. Ðко\n"
-" УКÐЗÐÐиÑÑ‚_СИГÐÐЛ е „EXIT (0)“, то командата ÐРГУМЕÐТ Ñе изпълнÑва от\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:1368
+" изпълнÑва Ñлед вÑÑка проÑта команда. Ðко УКÐЗÐÐиÑÑ‚_СИГÐÐЛ е „RETURN“,\n"
+" ÐРГУМЕÐТът Ñе изпълнÑва Ñлед вÑÑко изпълнение на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÐºÐ°ÐºÑ‚Ð¾ и изпълнение\n"
+" на Ñкрипт чрез вградените команди „.“ и „source“. Ðко УКÐЗÐÐиÑÑ‚_СИГÐÐЛ е\n"
+" „ERR“, ÐРГУМЕÐТът Ñе изпълнÑва Ñлед вÑÑка грешка, коÑто би предизвикала\n"
+" изход от обвивката при Ñтартирането Ñ Ñ Ð¾Ð¿Ñ†Ð¸Ñта „-e“.\n"
+"\n"
+" Ðко не Ñа дадени аргументи, Ñе отпечатват командите приÑвоени на вÑички\n"
+" прихващаниÑ.\n"
+" \n"
+" Опции:\n"
+" -l отпечатва ÑпиÑъка Ñ Ð¸Ð¼ÐµÐ½Ð°Ñ‚Ð° на Ñигналите и ÑъответÑтващите им номера.\n"
+" -p извеждат Ñе командите Ñвързани Ñ Ð²Ñеки УКÐЗÐÐ_СИГÐÐЛ.\n"
+"\n"
+" Ð’Ñеки УКÐЗÐÐ_СИГÐÐЛ е или име на Ñигнал от файла „signal.h“ или номер на\n"
+" Ñигнал.\n"
+" ÐÑма разлика между главни и малки букви в имената на Ñигнали, а предÑтавката\n"
+" „SIG“ не е задължителна.\n"
+" Сигнал може да бъде изпратен на обвивката Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „kill -signal $$“.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако е зададен неправилен Ñигнал или опциÑ."
+
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4008,17 +4355,39 @@ msgid ""
" 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:1399
-#, fuzzy
+" Returns success if all of the NAMEs are found; fails if any are not found."
+msgstr ""
+"Извеждане на Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° вида на командата подадена като аргумент.\n"
+" \n"
+" За вÑÑко ИМЕ Ñе извежда как ще Ñе интерпретира, когато Ñе използва като\n"
+" команда.\n"
+" \n"
+" Опции:\n"
+" -a Извеждане на вÑички меÑтоположениÑ, които Ñъдържат изпълним файл Ñ\n"
+" това ИМЕ. Включва Ñинонимите, вградените команди и функции на\n"
+" обвивката, Ñамо когато не е използвана опциÑта „-p“\n"
+" -f Без Ñ‚ÑŠÑ€Ñене във функциите дефинирани в обвивката\n"
+" -P ТърÑене в Ð¿ÑŠÑ‚Ñ Ð·Ð° изпълнение указан в PATH, дори и ако ÑъщеÑтвува\n"
+" Ñиноним, вградена команда или Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð° в обвивката Ñ Ñ‚Ð¾Ð²Ð°\n"
+" ИМЕ\n"
+" -p Връща или името на файла, който ще бъде изпълнен или нищо в\n"
+" Ñлучаите, когато командата „type -t ИМЕ“ не би върнала „file“\n"
+" -t Извеждане на една от думите „alias“ (Ñиноним), „keyword“\n"
+" (резервирана лекÑема в обвивката), „function“ (Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°Ð½Ð° в\n"
+" обвивката), „builtin“ (вградена команда), „file“ (изпълним файл) или\n"
+" „“, ако ИМЕто не е открито\n"
+" \n"
+" Ðргументи:\n"
+" ИМЕ Името, за което да Ñе изведе информациÑ.\n"
+" \n"
+" Изходен код:\n"
+" 0, ако вÑички подадени ИМЕна Ñа открити, неуÑпех, ако нÑкое от Ñ‚ÑÑ… липÑва."
+
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
-" Provides control over the resources available to the shell and "
-"processes\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"
@@ -4042,6 +4411,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4056,42 +4428,54 @@ msgid ""
" 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"
+"\n"
+" Командата оÑъщеÑтвÑва контрол върху реÑурÑите, които Ñа доÑтъпни на\n"
+" процеÑите Ñтартирани през обвивката върху ÑиÑтемите, които поддържат такова\n"
+" управление.\n"
+"\n"
+" Опции:\n"
+" -S използване на „мекото“ ограничение на реÑурÑ\n"
+" -H използване на „твърдото“ ограничение на реÑурÑ\n"
+" -a извеждат Ñе вÑички текущи ограничениÑ\n"
+" -b размер на буфера за програмните гнезда\n"
+" -c макÑималниÑÑ‚ размер на Ñъздадените файлове ÑÑŠÑ Ñъдържание на\n"
+" паметта (core)\n"
+" -d макÑималниÑÑ‚ размер на Ñегмента на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° данни\n"
+" -e макÑималниÑÑ‚ приоритет (nice)\n"
+" -f макÑималниÑÑ‚ размер на файловете Ñъздадени от обвивката и дъщерните\n"
+" Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑи\n"
+" -i макÑималниÑÑ‚ брой на изчакващите Ñигнали\n"
+" -l макÑималниÑÑ‚ размер памет, коÑто Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ да заключи\n"
+" -m макÑималниÑÑ‚ поÑтоÑнно зареден в паметта Ñегмент\n"
+" -n макÑималниÑÑ‚ брой деÑкриптори на отворени файлове\n"
+" -p размер на буфера за програмни канали\n"
+" -q макÑималниÑÑ‚ брой байтове в опашките за ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ POSIX\n"
+" -r макÑималниÑÑ‚ приоритет за реално време\n"
+" -s макÑималниÑÑ‚ размер на Ñтека\n"
+" -t макÑималното процеÑорно време в Ñекунди\n"
+" -u макÑималниÑÑ‚ брой потребителÑки процеÑи\n"
+" -v размерът на виртуалната памет\n"
+" -x макÑималниÑÑ‚ брой Ð·Ð°ÐºÐ»ÑŽÑ‡Ð²Ð°Ð½Ð¸Ñ Ð½Ð° файлове\n"
+" -x макÑималниÑÑ‚ брой нишки\n"
+" \n"
+" Ðе вÑички Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñа налични на вÑички платформи.\n"
+"\n"
+" Ðко е зададено ОГРÐÐИЧЕÐИЕ, то това е новата ÑтойноÑÑ‚ на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ€ÐµÑурÑ.\n"
+" Специалните ÑтойноÑти „soft“, „hard“ и „unlimited“ означават текущите меко,\n"
" твърдо и никакво ограничение Ñъответно. Ð’ противен Ñлучай Ñе извежда\n"
-" текущата ÑтойноÑÑ‚ на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ€ÐµÑурÑ. СтойноÑтите Ñа в блокове от по "
-"1024\n"
-" байта, Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на:\n"
-" - опциÑта „-p“, при коÑто блоковете Ñа от по 512 байта;\n"
-" - опциÑта „-t“, при коÑто ÑтойноÑтта е в Ñекунди;\n"
-" - опциÑта „-u“, при коÑто ÑтойноÑтта е точниÑÑ‚ брой процеÑи."
-
-#: builtins.c:1444
+" текущата ÑтойноÑÑ‚ на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ€ÐµÑурÑ. Ðко не е зададена опциÑ, Ñе приема,\n"
+" че е зададена „-f“.\n"
+"\n"
+" СтойноÑтите Ñа в блокове от по 1024 байта, Ñ Ð¸Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ на:\n"
+" ⃠опциÑта „-t“, при коÑто ÑтойноÑтта е в Ñекунди;\n"
+" ⃠опциÑта „-p“, при коÑто блоковете Ñа от по 512 байта;\n"
+" ⃠опциÑта „-u“, при коÑто ÑтойноÑтта е точниÑÑ‚ брой процеÑи.<\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако не възникни грешка или е дадена неправилна опциÑ."
+
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4108,48 +4492,78 @@ msgid ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
+"Извеждане или промÑна на маÑката за доÑтъпа до новоÑъздадени файлове.\n"
+" \n"
+" Задава ÐœÐСКÐта за правата за доÑтъп до новоÑъздадени файлове. Ðко не е\n"
+" зададена ÐœÐСКÐ, Ñе извежда текущата Ñ ÑтойноÑÑ‚.\n"
+" \n"
+" Ðко ÐœÐСКÐта започва Ñ Ñ†Ð¸Ñ„Ñ€Ð°, Ñ‚Ñ Ñе тълкува като оÑмично чиÑло. Ð’ противен\n"
+" Ñлучай Ñ‚Ñ€Ñбва да е низ, който би бил приет от командата chmod(1).\n"
+" \n"
+" Опции:\n"
+" -p ако не е зададена ÐœÐСКÐ, изведениÑÑ‚ низ може да бъде ползван за вход\n"
+" -S изведената маÑка да е във вид на ÐИЗ. Без опциÑта изходът е оÑмично\n"
+" чиÑло\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако ÐœÐСКÐта или нÑÐºÐ¾Ñ Ð¾Ñ‚ зададените опции Ñа неправилни."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" status is zero. If ID is a a job specification, waits for all processes\n"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
+"Изчакване на завършването задача и връщане на Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´.\n"
+" \n"
+" Изчакване на вÑички указани ИДентификатори, които могат да Ñа номера на\n"
+" процеÑи или указатели на задачи, и докладване на Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´. Ðко не е\n"
+" зададен ИДентификатор, Ñе изчакват вÑички активни дъщерни процеÑи, а\n"
+" изходниÑÑ‚ код е 0. Ðко ИДентификаторът е указател на задача, Ñе изчакват\n"
+" вÑички процеÑи в конвейера на задачата.\n"
+"\n"
+" Ðко е зададена опциÑта „-n“ Ñе изчаква ÐºÑ€Ð°Ñ Ð½Ð° работата на Ñледващата задача\n"
+" и Ñе връща Ð½ÐµÐ¹Ð½Ð¸Ñ ÐºÐ¾Ð´.\n"
+" \n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на поÑледната задача или процеÑ. Ðко е зададена\n"
+" неправилна опциÑ, връща грешка."
-#: builtins.c:1482
-#, fuzzy
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an invalid\n"
+" option is given."
msgstr ""
-" Изчакване на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸ докладване за Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´. Ðко не е "
-"зададен N,\n"
-" вÑички текущо активни дъщерни процеÑи Ñе изчакват и изходниÑÑ‚ код е 0. "
-"N\n"
-" може да е идентификатор на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸Ð»Ð¸ задача. Ðко е задача, изчакват "
-"Ñе\n"
-" вÑички процеÑи в Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð» на задачата."
-
-#: builtins.c:1497
-#, fuzzy
+"Изчакване на ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸ докладване за Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´.\n"
+"\n"
+" Изчакване на вÑички указани процеÑи и докладване за Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´. Ðко не е\n"
+" зададен ИДентификатор_ПРоцeÑ, вÑички текущо активни дъщерни процеÑи Ñе\n"
+" изчакват и изходниÑÑ‚ код е 0. ИДентификатор_ПРоцeÑ Ñ‚Ñ€Ñбва да ÑъответÑтва на\n"
+" нÑкой процеÑ.\n"
+"\n"
+" Изходен код:\n"
+" Ð˜Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на процеÑа Ñ Ð¿Ð¾ÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€. Грешка, ако е даден\n"
+" неправилен идентификатор или е дадена неправилна опциÑ."
+
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4161,15 +4575,17 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" Цикълът „for“ изпълнÑва поÑледователноÑÑ‚ от команди за вÑеки член в ÑпиÑък "
-"от\n"
-" елементи. Ðко блокът „в ДУМИ …“ не приÑÑŠÑтва, използва Ñе „in \"$@\"“. "
-"За\n"
-" вÑеки елемент в ДУМИте, ИМЕто Ñе задава да е елементът и Ñе изпълнÑват\n"
-" КОМÐÐДИте."
-
-#: builtins.c:1511
-#, fuzzy
+"Изпълнение на команда за вÑеки член в ÑпиÑък от елементи\n"
+"\n"
+" Цикълът „for“ изпълнÑва поÑледователноÑÑ‚ от команди за вÑеки член в ÑпиÑък\n"
+" от елементи. Ðко блокът „в ДУМИ…“ не приÑÑŠÑтва, използва Ñе „in \"$@\"“.\n"
+" За вÑеки елемент в ДУМИте, ИМЕто Ñе задава да е елементът и Ñе изпълнÑват\n"
+" КОМÐÐДИте.\n"
+"\n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на поÑледно изпълнената команда."
+
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4185,18 +4601,20 @@ msgid ""
" 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:1529
-#, fuzzy
+"Ðритметичен цикъл чрез „for“\n"
+" Еквивалентно на:\n"
+" (( ИЗРÐЗ_1 ))\n"
+" while (( ИЗРÐЗ_2 )); do\n"
+" КОМÐÐДИ\n"
+" (( EXP_3 ))\n"
+" done\n"
+" ИЗРÐЗ_1, ИЗРÐЗ_2, и ИЗРÐЗ_3 Ñа аритметични изрази. Ð’Ñеки изпуÑнат израз Ñе\n"
+" изчиÑлÑва да е 1.\n"
+"\n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на поÑледно изпълнената команда."
+
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4215,26 +4633,24 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" ДУМИте биват замеÑтвани, което води до Ñъздаването на ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸.\n"
+"Избор на думи от ÑпиÑък и изпълнение на команди.\n"
+"\n"
+" ДУМИте биват замеÑтвани, което води до Ñъздаването на ÑпиÑък Ñ Ð´ÑƒÐ¼Ð¸.\n"
" Ðаборът от замеÑтените думи бива отпечатан на изхода за Ñтандартната\n"
-" грешка, като вÑÑка от Ñ‚ÑÑ… Ñе предшеÑтва от номер. Ðко клаузата „in "
-"ДУМИ“\n"
-" липÑва, използва Ñе „in \"$@\"“. Ð’ такива Ñлуча Ñе отпечатва "
-"подÑказката PS3\n"
-" и от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ Ñе прочита ред. Ðко редът Ñе ÑÑŠÑтои от номера, "
-"който\n"
-" ÑъответÑтва на нÑÐºÐ¾Ñ Ð¾Ñ‚ показаните думи, ИМЕто Ñе задава да е тази "
-"дума.\n"
-" Ðко редът е празен, отново Ñе отпечатват ДУМИте и подÑказката. Ðко Ñе\n"
-" прочете „EOF“, командата завършва. Ð’ÑÑка друга ÑтойноÑÑ‚ приÑвоÑва "
-"„null“ на\n"
-" ИМЕ. ПрочетениÑÑ‚ ред „null“ Ñе запазва в променливата REPLY. КОМÐÐДИте "
-"Ñе\n"
+" грешка, като вÑÑка от Ñ‚ÑÑ… Ñе предшеÑтва от номер. Ðко клаузата „in ДУМИ“\n"
+" липÑва, използва Ñе „in \"$@\"“. Ð’ такива Ñлучаи Ñе отпечатва подÑказката\n"
+" „PS3“ и от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ Ñе прочита ред. Ðко редът Ñе ÑÑŠÑтои от номера,\n"
+" който ÑъответÑтва на нÑÐºÐ¾Ñ Ð¾Ñ‚ изведените думи, ИМЕто Ñе задава да е тази\n"
+" дума. Ðко редът е празен, отново Ñе отпечатват ДУМИте и подÑказката. Ðко\n"
+" Ñе прочете „EOF“, командата завършва. Ð’ÑÑка друга ÑтойноÑÑ‚ приÑвоÑва „null“\n"
+" на ИМЕ. ПрочетениÑÑ‚ ред Ñе запазва в променливата REPLY. КОМÐÐДИте Ñе\n"
" изпълнÑват Ñлед вÑеки избор до изпълнÑването на команда за прекъÑване\n"
-" (break)."
+" (break).\n"
+"\n"
+" Изходен код:\n"
+" Връща Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на поÑледно изпълнената команда."
-#: builtins.c:1550
-#, fuzzy
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4249,16 +4665,22 @@ msgid ""
" Exit Status:\n"
" The return status is the return status of PIPELINE."
msgstr ""
-" Изпълнение на ПРОГРÐÐœÐиÑ_КÐÐÐЛ и отпечатване на обобщение за реалното,\n"
+"Отпечатване на времето за изпълнение на програмен канал.\n"
+"\n"
+" Изпълнение на ПРОГРÐÐœÐиÑ_КÐÐÐЛ и отпечатване на обобщение за реалното,\n"
" потребителÑкото и ÑиÑтемно процеÑорни времена, които изпълнението на\n"
-" ПРОГРÐÐœÐиÑ_КÐÐÐЛ отнема. ИзходниÑÑ‚ код е този на ПРОГРÐÐœÐиÑ_КÐÐÐЛ. "
-"ОпциÑта\n"
-" „-p“ води до извеждане на ÑтатиÑтиката за времето в различен формат - "
-"Ñпоред\n"
-" ÑтойноÑтта на променливата на Ñредата $TIMEFORMAT."
-
-#: builtins.c:1567
-#, fuzzy
+" ПРОГРÐÐœÐиÑ_КÐÐÐЛ отнема.\n"
+"\n"
+" Опции:\n"
+" -p: извеждане на ÑтатиÑтиката за времето във формат POSIX\n"
+"\n"
+" СтойноÑтта на променливата на Ñредата „TIMEFORMAT“ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ Ð¸Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ\n"
+" формат.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на ПРОГРÐÐœÐиÑ_КÐÐÐЛ."
+
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4268,48 +4690,45 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" Избирателно Ñе изпълнÑват КОМÐÐДИ на база ДУМÐ, коÑто напаÑва на ШÐБЛОÐ.\n"
-" Шаблоните Ñе разделÑÑ‚ ÑÑŠÑ Ð·Ð½Ð°ÐºÐ° „|“."
+"Изпълнение на команди на базата на напаÑване по шаблон.\n"
+"\n"
+" Избирателно Ñе изпълнÑват КОМÐÐДИ на база ДУМÐ, коÑто напаÑва на ШÐБЛОÐ.\n"
+" Шаблоните Ñе разделÑÑ‚ ÑÑŠÑ Ð·Ð½Ð°ÐºÐ° „|“.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на поÑледно изпълнената команда."
-#: builtins.c:1579
-#, fuzzy
+#: builtins.c:1603
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"
+" 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"
+" `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:1596
-#, fuzzy
+"Изпълнение на команда на базата на уÑловие.\n"
+"\n"
+" Първо Ñе изпълнÑват командите в блока „if КОМÐÐДИ“. Ðко изходниÑÑ‚ код е 0,\n"
+" то Ñе изпълнÑва блокът „then КОМÐÐДИ“. Ð’ противен Ñлучай поÑледователно Ñе\n"
+" изпълнÑва вÑеки блок „elif КОМÐÐДИ“ — ако изходниÑÑ‚ код е 0, то Ñе изпълнÑва\n"
+" ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ð±Ð»Ð¾Ðº „then КОМÐÐДИ“, Ñлед което завършва изпълнението на целиÑ\n"
+" блок „if“.\n"
+" Ðко изходниÑÑ‚ код на никой от блоковете „if“ и „elif“ не е бил 0,\n"
+" изпълнÑва Ñе блока „else КОМÐÐДИ“, Ñтига такъв да приÑÑŠÑтва. ИзходниÑÑ‚ код\n"
+" от цÑлата конÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ðµ този на поÑледната изпълнена команда или е 0, ако\n"
+" никое теÑтово уÑловие, не Ñе е оценило като иÑтина.<\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на поÑледно изпълнената команда."
+
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4319,12 +4738,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" ЗамеÑтване и изпълнение на КОМÐÐДИте докато поÑледната команда в блока "
-"„while“\n"
-" е Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код, който е 0."
+"Изпълнение на команда докато определен теÑÑ‚ е уÑпешен.\n"
+"\n"
+" ЗамеÑтване и изпълнение на КОМÐÐДИте докато поÑледната команда в блока\n"
+" „while“ е Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код, който е 0.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на поÑледно изпълнената команда."
-#: builtins.c:1608
-#, fuzzy
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4334,11 +4756,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" ЗамеÑтване и изпълнение на КОМÐÐДИте докато поÑледната команда в блока "
-"„until“\n"
-" е Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код, който не е 0."
+"Изпълнение на команда докато определен теÑÑ‚ е неуÑпешен.\n"
+"\n"
+" ЗамеÑтване и изпълнение на КОМÐÐДИте докато поÑледната команда в блока\n"
+" „until“ е Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код, който не е 0.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на поÑледно изпълнената команда."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4350,23 +4776,39 @@ msgid ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
msgstr ""
+"Създаване на ÐºÐ¾Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ Ð´Ð°Ð´ÐµÐ½Ð¾Ñ‚Ð¾ ИМЕ.\n"
+" \n"
+" ÐÑинхронно изпълнение на КОМÐÐДÐта, като Ñтандартните вход и изход Ñе\n"
+" пренаÑочват от и към файловите деÑкриптори, които Ñ‚Ñ€Ñбва да Ñа Ñ Ð¸Ð½Ð´ÐµÐºÑи\n"
+" Ñъответно 0 и 1 в променливата-маÑив ИМЕ в изпълнÑваната обвивка. Ðко не е\n"
+" дадено ИМЕ на променлива, Ñтандартно Ñе ползва „COPROC“.\n"
+" \n"
+" Изходен код:\n"
+" Ð˜Ð·Ñ…Ð¾Ð´Ð½Ð¸Ñ ÐºÐ¾Ð´ на КОМÐÐДÐта."
-#: builtins.c:1634
+#: builtins.c:1658
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"
+" 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 ""
+"Дефиниране на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката.\n"
+" \n"
+" Създаване на Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката ÑÑŠÑ Ð·Ð°Ð´Ð°Ð´ÐµÐ½Ð¾Ñ‚Ð¾ ИМЕ. Когато Ñе извика като\n"
+" обикновена команда, КОМÐÐДИте Ñе изпълнÑват в контекÑта на извикващата\n"
+" обвивка. При извикването на ИМЕто, аргументите подадени на функциÑта Ñа\n"
+" доÑтъпни като $1,… , $9, а името на функциÑта е доÑтъпно като $FUNCNAME.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен ако ИМЕто не е Ñамо за четене."
-#: builtins.c:1648
-#, fuzzy
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4376,12 +4818,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-" ИзпълнÑване на цÑл набор от команди в група. Това е един от начините да "
-"Ñе\n"
-" цÑл набор от команди."
+"Изпълнение на група от команди.\n"
+"\n"
+" ИзпълнÑване на цÑл набор от команди в група. Това е един от начините да Ñе\n"
+" пренаÑочи цÑл набор от команди.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този на поÑледно изпълнената команда."
-#: builtins.c:1660
-#, fuzzy
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4394,14 +4839,18 @@ msgid ""
" Exit Status:\n"
" Returns the status of the resumed job."
msgstr ""
-" Еквивалентно на аргумента ЗÐДÐЧРна командата „fg“. ВъзобновÑва ÑпрÑна\n"
+"ВъзобновÑване на заден фон на изпълнението на задача\n"
+"\n"
+" Еквивалентно на аргумента ЗÐДÐЧРна командата „fg“. ВъзобновÑва ÑпрÑна\n"
" задача или такава на заден фон. ЗÐДÐЧÐта може да указва или име, или\n"
" номер на задача. Ðко Ñлед ЗÐДÐЧÐта Ñе въведе знакът „&“, задачата\n"
" Ñе изпълнÑва във фонов режим, вÑе едно е била подадена като аргумент\n"
-" на командата „bg“."
+" на командата „bg“.\n"
+"\n"
+" Изходен код:\n"
+" ИзходниÑÑ‚ код е този възобновената задача."
-#: builtins.c:1675
-#, fuzzy
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4411,20 +4860,21 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-" ИЗРÐЗът Ñе изчиÑлÑва Ñпоред правилата на аритметичното оценÑване.\n"
-" Еквивалентно на „let ИЗРÐЗ“."
+"ИзчиÑлÑване на аритметичен израз\n"
+"\n"
+" ИЗРÐЗът Ñе изчиÑлÑва Ñпоред правилата на аритметичното оценÑване.\n"
+" Еквивалентно на „let ИЗРÐЗ“.\n"
+"\n"
+" Изходен код:\n"
+" 1, ако резултатът на ИЗРÐЗа е 0. Ð’ противен Ñлучай — 0."
-#: builtins.c:1687
-#, fuzzy
+#: builtins.c:1711
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"
+" 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"
@@ -4442,30 +4892,33 @@ msgid ""
" 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"
+" Връща ÑÑŠÑтоÑние 0 или 1 в завиÑимоÑÑ‚ от оценката на уÑÐ»Ð¾Ð²Ð½Ð¸Ñ Ð˜Ð—Ð ÐЗ.\n"
+" Изразите Ñа ÑÑŠÑтавени от Ñъщите примитиви, както вградената команда „test“\n"
+" и могат да Ñе Ñъчетават чрез Ñледните оператори:\n"
+" \n"
+" ( ИЗРÐЗ ) Връща ÑтойноÑтта на ИЗРÐЗа\n"
+" ! ИЗРÐЗ ИÑтина, ако ИЗРÐЗ Ñе Ð¾Ñ†ÐµÐ½Ñ Ð½Ð° лъжа, в оÑтаналите Ñлучаи е лъжа\n"
+" ИЗРÐЗ_1 && ИЗРÐЗ_2\n"
+" ИÑтина, ако едновременно ИЗРÐЗ_1 и ИЗРÐЗ_2 Ñа иÑтина, в\n"
+" оÑтаналите Ñлучаи е лъжа.\n"
+" ИЗРÐЗ_1 || ИЗРÐЗ_2\n"
+" ИÑтина, ако поне единиÑÑ‚ от ИЗРÐЗ_1 и ИЗРÐЗ_2 е иÑтина, в\n"
+" оÑтаналите Ñлучаи е лъжа.\n"
" \n"
" Когато Ñе използват операторите „==“ и „!=“, низът от дÑÑната Ñтрана на\n"
-" оператора Ñе използва като шаблон и Ñе извършва напаÑване. Операторите\n"
-" „&&“ и „||“ не оценÑÑ‚ ИЗРÐЗ2, ако ИЗРÐЗ1 е доÑтатъчен за определÑне на\n"
-" ÑтойноÑтта на израза."
+" оператора Ñе използва като шаблон и Ñе извършва напаÑване. Когато Ñе ползва\n"
+" операторът „=~“, изразът от дÑÑната му Ñтрана Ñе тълкува като регулÑрен\n"
+" израз.\n"
+"\n"
+" Операторите „&&“ и „||“ не оценÑÑ‚ ИЗРÐЗ_2, ако ИЗРÐЗ_1 е доÑтатъчен за\n"
+" определÑне на ÑтойноÑтта на израза.\n"
+"\n"
+" Изходен код:\n"
+" 0 или едно Ñпоред ÑтойноÑтта на ИЗРÐЗа."
-#: builtins.c:1713
-#, fuzzy
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4518,83 +4971,60 @@ msgid ""
" 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"
+"ЧеÑто използване промени на обвивката\n"
+"\n"
+" BASH_VERSION Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° верÑиÑта на 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"
+" Ñ‚ÑŠÑ€ÑÑÑ‚ като аргументи за командата „cd“\n"
+" GLOBIGNORE СпиÑък Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ на файлови имена, разделени Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ðµ,\n"
+" които да Ñе игнорират от замеÑтването на пътÑ\n"
+" HISTFILE Името на файла, в който Ñе ÑъхранÑва иÑториÑта на командите\n"
+" HISTFILESIZE МакÑималниÑÑ‚ брой редове, които горниÑÑ‚ файл може да Ñъдържа\n"
+" HISTSIZE МакÑималниÑÑ‚ брой редове, които една работеща обвивка може\n"
+" да доÑтъпи\n"
+" HOME ПълниÑÑ‚ път до домашната ви директориÑ\n"
+" HOSTNAME Името на текущата машина\n"
+" HOSTTYPE Видът на процеÑора, под който работи текущата обвивка\n"
+" IGNOREEOF УправлÑва дейÑтвието на обвивката при Ñрещането на единичен\n"
+" знак за край на файл „EOF“. Ðко променливата е зададена, Ñ‚Ñ\n"
+" указва Ð±Ñ€Ð¾Ñ Ð½Ð° знаците „EOF“, който могат да Ñе Ñрещнат\n"
+" ÑамоÑтоÑтелно на един ред, преди обвивката да завърши работа\n"
+" и излезе (Ñтандартно е 10). Когато променливата не е\n"
+" зададена, един „EOF“ означава край на входÑщите данни\n"
+" MACHTYPE Ðиз, който опиÑва текущата ÑиÑтема, на коÑто работи bash\n"
+" MAILCHECK Колко чеÑто bash да проверÑва за нови пиÑма (в Ñекунди)\n"
+" MAILPATH СпиÑък Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ðµ, които bash проверÑва за нови пиÑма\n"
+" OSTYPE ВерÑиÑта на ЮникÑ, на коÑто работи bash\n"
+" PATH СпиÑък Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸, които да Ñе претърÑват за команди\n"
+" PROMPT_COMMAND Команда, коÑто да Ñе изпълнÑва преди отпечатването на\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:1770
-#, fuzzy
+" двоеточие\n"
+" TERM Името на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð²Ð¸Ð´ терминал\n"
+" TIMEFORMAT ИзходниÑÑ‚ формат за ÑтатиÑтиката за времето за изпълнение на\n"
+" команда, който Ñе използва от запазената дума „time“\n"
+" auto_resume СтойноÑÑ‚, коÑто не е „null“, означава, че командна дума,\n"
+" коÑто Ñе поÑвÑва ÑамоÑтоÑтелно на ред, първо Ñе проверÑва в\n"
+" ÑпиÑъка Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¾ Ñпрените задачи. Ðко бъде открита там,\n"
+" задачата Ñе пуÑка и Ñе Ñлага на преден план. СтойноÑÑ‚\n"
+" „exact“ (Ñтрого Ñъвпадение) означава, че командната дума,\n"
+" Ñ‚Ñ€Ñбва точно да Ñъвпада Ñ Ð¸Ð¼ÐµÑ‚Ð¾ на команда в ÑпиÑъка ÑÑŠÑ\n"
+" Ñпрени задачи. СтойноÑÑ‚ „substring“ (Ñъвпадение на подниз)\n"
+" означава, че командната дума Ñ‚Ñ€Ñбва да е подниз на задачата.\n"
+" Ð’ÑÑка друга ÑтойноÑÑ‚ означава, че командата думата Ñ‚Ñ€Ñбва да\n"
+" е началото на ÑпрÑна задача\n"
+" histchars Знаци, които определÑÑ‚ бързото замеÑтване и това по иÑториÑ.\n"
+" ПървиÑÑ‚ знак е за замеÑтването по иÑториÑ, обикновено е „!“.\n"
+" ВториÑÑ‚ е за бързото замеÑтване, обикновено е „^“. ТретиÑÑ‚\n"
+" е за коментарите в иÑториÑта, обикновено е „#“\n"
+" HISTIGNORE СпиÑък Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸, разделени Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ðµ, които указват кои\n"
+" команди да не Ñе запазват в иÑториÑта\n"
+
+# CONTINUE
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -4624,28 +5054,35 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-" Ð”Ð¾Ð±Ð°Ð²Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² Ñтека на директориите или превърта Ñтека\n"
+"ДобавÑне на директории в Ñтека.\n"
+"\n"
+" Ð”Ð¾Ð±Ð°Ð²Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² Ñтека на директориите или превърта Ñтека\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“."
+" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ изваждането на\n"
+" Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÐºÑŠÐ¼ Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
+"\n"
+" Ðргументи:\n"
+" +N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои от лÑвата \n"
+" Ñтрана на ÑпиÑъка, изведен от командата „dirs“ като Ñе почва от 0)\n"
+" да е най-отгоре.\n"
+"\n"
+" -N Превърта Ñтека, така че N-тата Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ (като Ñе брои от дÑÑната\n"
+" Ñтрана на ÑпиÑъка, изведен от командата „dirs“ като Ñе почва от 0)\n"
+" да е най-отгоре.\n"
+"\n"
+"\n"
+" dir Ð”Ð¾Ð±Ð°Ð²Ñ Ð”Ð˜Ð ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñта най-отгоре в Ñтека, като Ñ Ð¿Ñ€Ð°Ð²Ð¸ новата текуща\n"
+" работна директориÑ.\n"
+"\n"
+" Можете да изведете Ñтека на директориÑта Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако е подаден неправилен аргумент или не може да Ñе премине към\n"
+" Ñъответната директориÑ."
-#: builtins.c:1804
-#, fuzzy
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -4671,26 +5108,32 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-" Маха директории от Ñтека Ñ Ñ‚ÑÑ…. Без аргументи\n"
-" премахва поÑледната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð² Ñтека и влиза в новата\n"
-" поÑледна директориÑ.\n"
+"Изваждане на директории от Ñтека.\n"
+"\n"
+" Маха директории от Ñтека Ñ Ñ‚ÑÑ…. Без аргументи премахва поÑледната директориÑ\n"
+" в Ñтека и влиза в новата поÑледна директориÑ.\n"
+"\n"
+" Опции:\n"
+" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ изваждането на\n"
+" Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÐºÑŠÐ¼ Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
+"\n"
+" Ðргументи:\n"
" \n"
-" +N премахва N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ като Ñе брои отлÑво в ÑпиÑъка\n"
-" показван от командата „dirs“, като Ñе брои от 0. Ðапр.: „popd +0“\n"
-" премахва първата директориÑ, „popd +1“ - втората.\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"
+" командата „dirs“, като Ñе брои от 0. Ðапр.: „popd -0“ премахва\n"
+" поÑледната директориÑ, „popd -1“ - предпоÑледната.\n"
"\n"
-" -n подтиÑкане на нормалното преминаване към Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ñ€Ð¸ добавÑнето "
-"на\n"
-" директории към Ñтека, така че Ñе Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ Ñамо той.\n"
+" Стекът Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸Ñ‚Ðµ Ñе визуализира Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“.\n"
"\n"
-" Стекът Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸Ñ‚Ðµ Ñе визуализира Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ‚Ð° „dirs“."
+" Изходен код:\n"
+" 0, оÑвен ако е подаден неправилен аргумент или не може да Ñе премине към\n"
+" Ñъответната директориÑ."
-#: builtins.c:1834
-#, fuzzy
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -4707,47 +5150,43 @@ msgid ""
" \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"
+" +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"
+" -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"
+"Извеждане на Ñтека на директориите.\n"
+"\n"
+" Отпечатва ÑпиÑъка Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¾ запомнените директории. СпиÑъкът Ñе попълва чрез\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:1863
+" Опции:\n"
+" -c изчиÑтване на Ñтека на директориите като изтрива вÑички елементи\n"
+" -l извеждане на пълните имена на директориите, а не Ñъкратените ÑпрÑмо\n"
+" домашната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° („/homes/pesho/bin“, а не „~/bin“)\n"
+" -p поредово отпечатване без Ð¿Ð¾Ñ€ÐµÐ´Ð½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€ в Ñтека\n"
+" -v поредово отпечатване заедно Ñ Ð¿Ð¾Ñ€ÐµÐ´Ð½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€ в Ñтека\n"
+"\n"
+" Ðргументи: \n"
+" +N извежда N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ отлÑво в ÑпиÑъка отпечатан от командата „dirs“,\n"
+" когато е Ñтартирана без опции. Брои Ñе от 0.\n"
+" -N извежда N-Ñ‚Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚ отдÑÑно в ÑпиÑъка отпечатан от командата „dirs“,\n"
+" когато е Ñтартирана без опции. Брои Ñе от 0.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка."
+
+#: builtins.c:1887
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"
+" arguments, list all shell options with an indication of whether or not each\n"
" is set.\n"
" \n"
" Options:\n"
@@ -4761,9 +5200,24 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
+"Включване и изключване на опции на обвивката.\n"
+" \n"
+" Превключване на ÑÑŠÑтоÑнието на вÑÑка от дадените ОПЦИи на обвивката. Ðко не\n"
+" не Ñа зададени аргументи-ОПЦИи, Ñе извежда ÑпиÑък от вÑички опции, като Ñе\n"
+" указва за вÑÑка дали и включена или не.\n"
+" \n"
+" Опции:\n"
+" -o ограничаване на опциите до определените за използване ÑÑŠÑ â€žset -o“\n"
+" -p извеждане на вÑÑка Ð¾Ð¿Ñ†Ð¸Ñ Ñ Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ дали е включена или не\n"
+" -q без извеждане на информациÑ\n"
+" -s включване на вÑÑка от ОПЦИИте\n"
+" -u изключване на вÑÑка от ОПЦИИте\n"
+" \n"
+" Изходен код:\n"
+" 0, ако ОПЦИЯта е включена, грешка, ако е зададена неправилна или изключена\n"
+" ОПЦИЯ."
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -4771,55 +5225,65 @@ msgid ""
" -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"
+" 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"
+" 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"
+" In addition to the standard format specifications described in printf(1),\n"
+" 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"
-" %(fmt)T output the date-time string resulting from using FMT as a "
-"format\n"
+" %(fmt)T output the date-time string resulting from using FMT as a format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is given or a write or "
-"assignment\n"
+" Returns success unless an invalid option is given or a write or assignment\n"
" error occurs."
msgstr ""
-" printf форматира и отпечатва ÐРГУМЕÐТИте Ñпоред управлението на ФОРМÐТа.\n"
+"Форматиране и отпечатване на ÐРГУМЕÐТИте Ñпоред управлението на ФОРМÐТа.\n"
+"\n"
+" Опции:\n"
+" -v ПРОМЕÐЛИВРизходът Ñе поÑÑ‚Ð°Ð²Ñ Ð² ПРОМЕÐЛИВÐта на обвивката, вмеÑто да\n"
+" Ñе извежда на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´.\n"
+"\n"
" ФОРМÐТът е поÑледователноÑÑ‚ от знаци, коÑто Ñъдържа три вида обекти:\n"
-" обикновени знаци, които биват отпечатани директно на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´;\n"
-" екраниращи знакови поÑледователноÑти, които биват преобразувани и "
-"отпечатани\n"
-" на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´; и форматиращи знакови поÑледователноÑти, вÑÑка от\n"
-" които предизвиква отпечатването на Ñледващ аргумент. ОÑвен "
-"Ñтандартните\n"
-" Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¾Ð¿Ð¸Ñани в ръководÑтвото на printf, „%b“ предизвиква "
-"замеÑтването\n"
-" на екранираниÑта Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ наклонени черти в ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, а „%"
-"q“\n"
-" предизвиква цитирането на аргумента, така че да може да бъде използван "
-"като\n"
-" вход за обвивката. Ðко е включена опциÑта „-v“, изходът Ñе поÑÑ‚Ð°Ð²Ñ Ð²\n"
-" променливата на обвивката VAR, вмеÑто да Ñе извежда на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´."
-
-#: builtins.c:1913
+" ⃠обикновени знаци, които биват отпечатани директно на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´;\n"
+" ⃠екраниращи знакови поÑледователноÑти, които биват преобразувани и\n"
+" отпечатани на ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð¸Ð·Ñ…Ð¾Ð´;\n"
+" ⃠форматиращи знакови поÑледователноÑти, вÑÑка от които предизвиква\n"
+" отпечатването на Ñледващ аргумент.\n"
+"\n"
+" ОÑвен Ñтандартните Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¾Ð¿Ð¸Ñани в ръководÑтвото на printf(1), printf\n"
+" приема и Ñледните инÑтрукции:\n"
+" %b предизвиква замеÑтването на екранираниÑта Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾ наклонени\n"
+" черти в ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
+" %q предизвиква цитирането на аргумента, така че да може да бъде\n"
+" използван като вход за обвивката\n"
+" %(fmt) отпечатване на низа при третиране на аргумента като дата и време\n"
+" Ñпоред strftime(3)\n"
+"\n"
+" Форматът Ñе преизползва до приемането на вÑички аргументи. Ðко има по-\n"
+" малко аргументи от поÑочените във формата, поведението на допълнителните е\n"
+" вÑе една е подаден за аргумент нулева ÑтойноÑÑ‚ или празен низ.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако не е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка при\n"
+" извеждането на резултата или при приÑвоÑването на ÑтойноÑтта."
+
+#: builtins.c:1942
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"
+" 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"
@@ -4838,38 +5302,56 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
+"Указване на начина на автоматичното допиÑване на аргументите от Readline.\n"
+" \n"
+" За вÑÑко ИМЕ Ñе извежда начина за допиÑване на аргументите. Ðко не Ñа\n"
+" дадени никакви опции, Ñе извеждат текущите инÑтрукции за автоматично\n"
+" допиÑване във формат, който може да Ñе използва за вход.\n"
+" \n"
+" Опции:\n"
+" -p Извеждане на текущите инÑтрукции за автоматично допиÑване във формат,\n"
+" който може да Ñе използва за вход\n"
+" -r Премахване на инÑтрукциите за автоматично допиÑване на вÑÑко ИМЕ,а\n"
+" когато такова не е указано — вÑички инÑтрукции\n"
+" -D Прилагане на допиÑваниÑта и дейÑтвиÑта като Ñтандартните за командите,\n"
+" без никакви Ñпецифични инÑтрукции\n"
+" -E Прилагане на допиÑваниÑта и дейÑтвиÑта като тези на „празната“\n"
+" команда — когато вÑе още нищо не е напиÑано на ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´\n"
+" \n"
+" При извършване на автоматично допиÑване, дейÑтвиÑта Ñе прилагат в реда на\n"
+" опциите Ñ Ð³Ð»Ð°Ð²Ð½Ð° буква дадени по-горе. ОпциÑта „-D“ е Ñ Ð¿Ð¾-виÑок приоритет\n"
+" от „-E“.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен когато е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка."
-#: builtins.c:1941
-#, fuzzy
+#: builtins.c:1970
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"
+" 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:1956
+"Извеждане на възможните допиÑваниÑ.\n"
+"\n"
+" Целта е да Ñе ползва в рамките Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ð° обвивката, коÑто генерира\n"
+" възможните допиÑваниÑ. Ðко е зададен незадължителниÑÑ‚ аргумент ДУМÐ,\n"
+" генерират Ñе напаÑваниÑта Ñ Ð½ÐµÐ³Ð¾.\n"
+"\n"
+" Изходен код:\n"
+" 0, оÑвен ако е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ възникне грешка."
+
+#: builtins.c:1985
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 being executed. If no OPTIONs are given, "
-"print\n"
-" the completion options for each NAME or the current completion "
-"specification.\n"
+" Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+" the completion currently being executed. If no OPTIONs are given, 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"
@@ -4890,29 +5372,49 @@ msgid ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
msgstr ""
+"ПроменÑне или извеждане на опциите за допиÑване.\n"
+" \n"
+" ПроменÑне на опциите допиÑване за вÑÑко ИМЕ, или когато не Ñа указани\n"
+" ИМЕна — допиÑването, което Ñе изпълнÑва в момента. Ðко не Ñа зададени\n"
+" ОПЦИи, извеждане на на опциите за допиÑване за вÑÑко име или за текущо\n"
+" изпълнÑваното допиÑване.\n"
+" \n"
+" Опции:\n"
+" \t-o ОПЦИЯ\n"
+" Задаване ОПЦИЯта за допиÑване за вÑÑко зададено ИМЕ\n"
+" \t-D Задаване на опциите за „Ñтандартното“ допиÑване на команда\n"
+" \t-E Задаване на опциите за допиÑването на „празната“ команда\n"
+" \n"
+" Използването на „+o“ вмеÑто „-o“ изключва дадената опциÑ.\n"
+" \n"
+" Ðргументи:\n"
+" \n"
+" Ð’ÑÑко ИМЕ указва команда, за коÑто Ñ‚Ñ€Ñбва предварително да е зададена\n"
+" ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð·Ð° допиÑване чрез вградената команда „complete“. Ðко не Ñа\n"
+" зададени ИМЕна, командата „compopt“ Ñ‚Ñ€Ñбва да бъде изпълнена от функциÑ,\n"
+" коÑто генерира Ñпецификациите за допиÑване. Ð’ този Ñлучай опциите за текущо\n"
+" изпълнÑÐ²Ð°Ð½Ð¸Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€ на допиÑÐ²Ð°Ð½Ð¸Ñ Ñе променÑÑ‚.\n"
+" \n"
+" Изходен код:\n"
+" 0, оÑвен когато е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ липÑват инÑтрукции към ИМЕто\n"
+" за автоматично допиÑване."
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
-" Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-" from file descriptor FD if the -u option is supplied. The variable "
-"MAPFILE\n"
+" Read lines from the standard input into the indexed array variable ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable MAPFILE\n"
" is 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"
+" -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"
+" -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"
+" -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"
@@ -4922,698 +5424,53 @@ msgid ""
" element to be assigned and the line to be assigned to that element\n"
" as additional arguments.\n"
" \n"
-" If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\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 "
-"or\n"
+" Returns success unless an invalid option is given or ARRAY is readonly or\n"
" not an indexed array."
msgstr ""
-
-#: builtins.c:2020
+"Изчитане на редове от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´ и запазване в променлива — индекÑиран\n"
+" низ.\n"
+" \n"
+" Прочитане на редове от ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð²Ñ…Ð¾Ð´, които Ñлед това Ñе запазват в\n"
+" променливата ÐœÐСИВ. Когато е дадена опциÑта „-u“, Ñе чете от\n"
+" ФÐЙЛов_ДЕСКРиптор. Стандартното име на променливата-маÑив е MAPFILE.\n"
+" \n"
+" Опции:\n"
+" -n ÐœÐКС_РЕДРИзчитане на не повече от ÐœÐКСимум РЕДа. Ðко е 0, Ñе\n"
+" прочитат вÑички редове\n"
+" -O ÐÐЧÐЛО ПриÑвоÑването да започне при Ð¸Ð½Ð´ÐµÐºÑ ÐÐЧÐЛО в ÐœÐСИВа\n"
+" Стандартната ÑтойноÑÑ‚ е 0\n"
+" -s БРОЙ_ПРОП ПреÑкачане на първите БРОЙ за ПРОПуÑкане прочетени реда\n"
+" -t Премахване на поÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð·Ð½Ð°Ðº за нов ред от вÑеки ред\n"
+" -u ФÐЙЛов_ДЕСКРиптор\n"
+" Изчитане на редовете от ФÐЙЛов_ДЕСКРиптор, а не ÑтандартниÑ\n"
+" вход\n"
+" -C ФУÐКЦИЯ ФункциÑ, коÑто Ñе извиква при изчитането на вÑеки БРОЙ_РЕДÐ\n"
+" -c БРОЙ_РЕДРРедове, които да Ñе изчетат преди да Ñе извика ФУÐКЦИЯта\n"
+" \n"
+" Ðргументи:\n"
+" ÐœÐСИВ Име на променливата-маÑив\n"
+" \n"
+" Ðко опциÑта „-C“ е зададена без „-c“, ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð‘Ð ÐžÐ™_РЕДРе 5000. При\n"
+" извикването на ФУÐКЦИЯта за аргументи Ñ Ñе подават индекÑа на ÑледващиÑ\n"
+" елемент от маÑива и реда, който Ñе Ñчита за ÑтойноÑÑ‚.\n"
+" \n"
+" Ðко не е дадено изрично ÐÐЧÐЛО, командата „mapfile“ изчиÑтва ÐœÐСИВа, преди\n"
+" да започне приÑвоÑването към него.\n"
+" \n"
+" Изходен код:\n"
+" Връща 0, оÑвен ако е дадена неправилна Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð»Ð¸ ако ÐœÐСИВът е променлива\n"
+" Ñамо за четене или не е индекÑиран маÑив."
+
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
-
-#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "презаделÑне на памет: %lu байта не могат да Ñе заделÑÑ‚ наново (заделени "
-#~ "Ñа\n"
-#~ "%lu байта)"
-
-#~ msgid "xrealloc: cannot allocate %lu bytes"
-#~ msgstr "презаделÑне на памет: %lu байта не могат да Ñе заделÑÑ‚"
-
-#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "презаделÑне на памет: %s:%d: %lu байта не могат да Ñе заделÑÑ‚ (заделени "
-#~ "Ñа %lu байта)"
-
-#~ 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"
-#~ " ИМЕ, а ако не е дадено такова - махат Ñе вÑички клаÑове."
+"Прочитане на редове от файл и поÑтавÑне в променлива – маÑив.\n"
+" \n"
+" Синоним на „mapfile“."
diff --git a/po/ca.gmo b/po/ca.gmo
index 2e1552b4..ef3ef376 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index a707980e..3ccc638d 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,97 +7,113 @@ msgid ""
msgstr ""
"Project-Id-Version: bash-2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2003-12-28 19:59+0100\n"
"Last-Translator: Montxo Vicente i Sempere <montxo@alacant.com>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "la matriu est? mal composta"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%c%c: opci? inv?lida"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, 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:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: no es pot crear: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%c%c: opci? inv?lida"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, fuzzy, c-format
msgid "%s: cannot read: %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, fuzzy, c-format
msgid "`%s': cannot unbind"
msgstr "%s: no s'ha trobat l'ordre"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, fuzzy, c-format
msgid "`%s': unknown function name"
msgstr "%s: funci? nom?s de lectura"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -111,18 +127,22 @@ msgstr "fi de sessi?"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr ""
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "nombre excessiu de par?metres"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr ""
@@ -131,7 +151,7 @@ msgstr ""
msgid "line %d: "
msgstr "encaix %3d:"
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "s'est? escrivint"
@@ -141,11 +161,7 @@ msgstr "s'est? escrivint"
msgid "%s: usage: "
msgstr ""
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "nombre excessiu de par?metres"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, fuzzy, c-format
msgid "%s: option requires an argument"
msgstr "cal un par?metre per a l'opci?: -"
@@ -160,7 +176,7 @@ msgstr ""
msgid "%s: not found"
msgstr "%s: no s'ha trobat l'ordre"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, fuzzy, c-format
msgid "%s: invalid option"
msgstr "%c%c: opci? inv?lida"
@@ -170,7 +186,7 @@ msgstr "%c%c: opci? inv?lida"
msgid "%s: invalid option name"
msgstr "%c%c: opci? inv?lida"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, fuzzy, c-format
msgid "`%s': not a valid identifier"
msgstr "'%s' no ?s un identificador v?lid"
@@ -185,7 +201,7 @@ msgstr "n?mero inv?lid de senyal"
msgid "invalid hex number"
msgstr "n?mero inv?lid de senyal"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
#, fuzzy
msgid "invalid number"
msgstr "n?mero inv?lid de senyal"
@@ -200,7 +216,7 @@ msgstr ""
msgid "`%s': not a pid or valid job spec"
msgstr ""
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: ?s una variable nom?s de lectura"
@@ -275,50 +291,60 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr "%s: Redirecci? ambigua"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
#, 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:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funci? nom?s de lectura"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, fuzzy, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "$%s: no es pot assignar d'aquesta manera"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -347,24 +373,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: ?s un directori"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, fuzzy, c-format
msgid "%s: not a regular file"
msgstr "%s: no es pot executar el fitxer binari"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: no es pot executar el fitxer binari"
@@ -398,11 +423,11 @@ msgstr ""
msgid "no command found"
msgstr "%s: no s'ha trobat l'ordre"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, fuzzy, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: no es pot crear: %s"
@@ -447,18 +472,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, fuzzy, c-format
msgid "%s: cannot open: %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -478,7 +503,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, fuzzy, c-format
msgid "%s: history expansion failed"
msgstr "%s: s'esperava una expressi? de nombre enter"
@@ -492,17 +517,17 @@ msgstr "%s: s'esperava una expressi? de nombre enter"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
#, fuzzy
msgid "Unknown error"
msgstr "Error desconegut %d"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "s'esperava una expressi?"
@@ -511,65 +536,70 @@ msgstr "s'esperava una expressi?"
msgid "%s: not an indexed array"
msgstr "%s: variable sense vincle"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%c%c: opci? inv?lida"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%c%c: opci? inv?lida"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "n?mero inv?lid de senyal"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: variable sense vincle"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%c%c: opci? inv?lida"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -579,21 +609,26 @@ msgstr ""
msgid "no other directory"
msgstr "seguent entrada de la pila (o sia, la nova primera entrada)."
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%c%c: opci? inv?lida"
+
+#: builtins/pushd.def:468
#, fuzzy
msgid "<no current directory>"
msgstr "\taquest ser? el nou directori actual de treball."
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
#, fuzzy
msgid "directory stack index"
msgstr "S'ha desbordat la base de la pila."
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -617,7 +652,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -642,7 +677,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -663,42 +698,42 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, fuzzy, c-format
msgid "read error: %d: %s"
msgstr "error del conducte: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
#, 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:808
+#: builtins/set.def:826
#, fuzzy, c-format
msgid "%s: cannot unset"
msgstr "%s: no es pot crear: %s"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, fuzzy, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, fuzzy, c-format
msgid "%s: not an array variable"
msgstr "%s: variable sense vincle"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, fuzzy, c-format
msgid "%s: not a function"
msgstr "%s: funci? nom?s de lectura"
@@ -708,11 +743,11 @@ msgstr "%s: funci? nom?s de lectura"
msgid "shift count"
msgstr "shift [n]"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -755,7 +790,7 @@ msgstr "%s: funci? nom?s de lectura"
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -765,47 +800,47 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, fuzzy, c-format
msgid "`%c': bad command"
msgstr "%c%c: opci? inv?lida"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, fuzzy, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
#, fuzzy
msgid "limit"
msgstr "L?mit de la UCP"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, fuzzy, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: no es pot crear: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
#, fuzzy
msgid "octal number"
msgstr "n?mero inv?lid de senyal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -819,159 +854,174 @@ msgstr "si s'escriu \"r\" s'executar? la darrera ordre."
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
#, fuzzy
msgid "unknown command error"
msgstr "Error desconegut %d"
-#: error.c:407
+#: error.c:441
#, fuzzy
msgid "bad command type"
msgstr "un nom d'una ordre."
-#: error.c:408
+#: error.c:442
#, fuzzy
msgid "bad connector"
msgstr "connector inv?lid '%d'"
-#: error.c:409
+#: error.c:443
#, fuzzy
msgid "bad jump"
msgstr "Salt incorrecte %d"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variable sense vincle"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "error del conducte: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: no s'ha trobat l'ordre"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, fuzzy, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: ?s un directori"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: no es pot executar el fitxer binari"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5404
#, 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:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "s'ha excedit el nivell de recursivitat de l'expressi?"
-#: expr.c:280
+#: expr.c:283
#, fuzzy
msgid "recursion stack underflow"
msgstr "S'ha desbordat la base de la pila."
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "error de sintaxi a l'expressi?"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "s'ha intentat assignar una variable inexistent"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "divisi? per 0"
-#: expr.c:517
+#: expr.c:542
#, fuzzy
msgid "bug: bad expassign token"
msgstr "error de programaci?: pas incorrecte del senyal %d per a expassing()."
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "s'esperava ':' per a l'expressi? condicional"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "falta algun ')'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
#, fuzzy
msgid "syntax error: operand expected"
msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, 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:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "valor massa gran per a la base de numeraci?"
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "%s: s'esperava una expressi? de nombre enter"
-#: general.c:61
+#: general.c:62
#, fuzzy
msgid "getcwd: cannot access parent directories"
msgstr "getwd: no s'ha pogut accedir als directoris pares"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, 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:260
+#: input.c:271
#, fuzzy, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
@@ -979,159 +1029,159 @@ msgstr ""
"bash\n"
"a partir del descriptor de fitxer %d: %s"
-#: input.c:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, 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:1445
+#: jobs.c:1450
#, fuzzy, c-format
msgid "Signal %d"
msgstr "Senyal desconeguda #%d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Fet"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Aturat"
-#: jobs.c:1468
+#: jobs.c:1473
#, fuzzy, c-format
msgid "Stopped(%s)"
msgstr "Aturat"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "S'est? executant"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Fet (%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Fi d'execuci? amb l'estat %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Estat desconegut"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(la imatge del nucli ha estat bolcada) "
-#: jobs.c:1597
+#: jobs.c:1602
#, fuzzy, c-format
msgid " (wd: %s)"
msgstr "(wd ara: %s)\n"
-#: jobs.c:1805
+#: jobs.c:1819
#, 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:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: s'ha finalitzat la tasca"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "encaix %3d:"
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (bolcat de la imatge del nucli)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd ara: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
#, fuzzy
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_jobs: getpgrp ha fallat: %s"
-#: jobs.c:3669
+#: jobs.c:3843
#, fuzzy
msgid "initialize_job_control: line discipline"
msgstr "initialize_jobs: disciplina de l?nia: %s"
-#: jobs.c:3679
+#: jobs.c:3853
#, fuzzy
msgid "initialize_job_control: setpgid"
msgstr "initialize_jobs: getpgrp ha fallat: %s"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "no hi ha cap tasca de control dins d'aquest int?rpret"
@@ -1152,54 +1202,54 @@ msgstr ""
msgid "unknown"
msgstr "<desconegut>"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1222,35 +1272,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Teniu correu en $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Teniu correu nou en $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "S'ha llegit el correu a %s\n"
@@ -1270,129 +1320,129 @@ msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
msgid "syntax error: `((%s))'"
msgstr "error de sintaxi"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: el tipus d'instrucci? %d ?s incorrecte"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, 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:4025
+#: parse.y:4170
#, 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:4030
+#: parse.y:4175
#, 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:4034
+#: parse.y:4179
#, fuzzy
msgid "syntax error in conditional expression"
msgstr "error de sintaxi a l'expressi?"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
#, fuzzy
msgid "expected `)'"
msgstr "s'esperava ')'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, fuzzy, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "%s: s'esperava un operador binari"
-#: parse.y:4198
+#: parse.y:4343
#, fuzzy
msgid "conditional binary operator expected"
msgstr "%s: s'esperava un operador binari"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, fuzzy, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "s'esperava ':' per a l'expressi? condicional"
-#: parse.y:4238
+#: parse.y:4383
#, fuzzy, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "s'esperava ':' per a l'expressi? condicional"
-#: parse.y:4242
+#: parse.y:4387
#, fuzzy, c-format
msgid "unexpected token %d in conditional command"
msgstr "s'esperava ':' per a l'expressi? condicional"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'"
-#: parse.y:5584
+#: parse.y:5755
#, fuzzy, c-format
msgid "syntax error near `%s'"
msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "error de sintaxi"
-#: parse.y:5656
+#: parse.y:5827
#, 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:5818
+#: parse.y:5989
#, 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:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1402,92 +1452,92 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: el connector '%d' ?s incorrecte"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, fuzzy, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: Redirecci? ambigua"
# No acabe d'entendre el significat de l'original "clobber"
-#: redir.c:182
+#: redir.c:181
#, fuzzy, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: No s'ha pogut sobreescriure el fitxer existent"
-#: redir.c:187
+#: redir.c:186
#, fuzzy, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres"
-#: redir.c:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: no es pot assignar la llista a un element de la matriu"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
#, fuzzy
msgid "redirection error: cannot duplicate fd"
msgstr "error de redirecci?"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, fuzzy, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: opci? inv?lida"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "No tinc cap nom d'usuari!"
-#: shell.c:1795
+#: shell.c:1827
#, fuzzy, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU %s, versi? %s\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1496,44 +1546,44 @@ msgstr ""
"Sintaxi:\t%s [opci?-format-llarg GNU] [opci?] ...\n"
"\t%s [opci?-format-llarg GNU] [opci?] fitxer_de_seq??ncies ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "opcions de formes llargues de GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Opcions de l'int?rpret d'ordres:\n"
-#: shell.c:1803
+#: shell.c:1835
#, fuzzy
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s o -o opci?\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1713,239 +1763,249 @@ msgstr "Senyal desconeguda #"
msgid "Unknown Signal #%d"
msgstr "Senyal desconeguda #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, fuzzy, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "substituci? inv?lida: no existeix '%s' en %s"
-#: subst.c:2795
+#: subst.c:2847
#, 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:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
#, 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:5027
+#: subst.c:5113
#, 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:5072
+#: subst.c:5158
#, 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:5074
+#: subst.c:5160
#, 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:5092
+#: subst.c:5178
#, 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:5284
+#: subst.c:5376
#, fuzzy
msgid "cannot make pipe for command substitution"
msgstr "no es poden establir conductes per a la substituci? de l'ordre: %s"
-#: subst.c:5322
+#: subst.c:5414
#, 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:5339
+#: subst.c:5433
#, 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:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: par?metre nul o no ajustat"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: la sub-cadena de l'expressi? ?s < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: substituci? inv?lida"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: no es pot assignar d'aquesta manera"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "substituci? inv?lida: no existeix '%s' en %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "s'esperava un par?metre"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: s'esperava una expressi? de nombre enter"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "s'esperava ')'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "mentre es buscava ?)?, s'ha trobat %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: s'esperava un operador unari"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: s'esperava un operador binari"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "s'ha perdut algun ']'"
-#: trap.c:207
+#: trap.c:217
#, fuzzy
msgid "invalid signal number"
msgstr "n?mero inv?lid de senyal"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, fuzzy, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: Senyal inv?lida %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "'%s': error en importar la definici? de la funci?"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: no es pot assignar la llista a un element de la matriu"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: par?metre nul o no ajustat"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: no es pot crear: %s"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, fuzzy, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU %s, versi? %s\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
-
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1980,7 +2040,7 @@ msgstr "unalias [-a] [nom ...]"
#: builtins.c:51
#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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?-"
@@ -2005,7 +2065,7 @@ msgstr "test [expressi?]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-PL] [directori]"
#: builtins.c:66
@@ -2031,7 +2091,7 @@ msgstr "command [-pVv] ordre [par?metre ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-afFrxi] [-p] nom[=valor] ..."
#: builtins.c:78
@@ -2160,7 +2220,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o opci?] [par?metres ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nom ...]"
#: builtins.c:144
@@ -2224,7 +2285,7 @@ msgstr "type [-apt] nom [nom ...]"
#: builtins.c:169
#, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdfmstpnuv] [l?mit]"
#: builtins.c:172
@@ -2234,12 +2295,12 @@ msgstr "umask [-S] [mode]"
#: builtins.c:175
#, fuzzy
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr "wait [n]"
#: builtins.c:179
#, fuzzy
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr "wait [n]"
#: builtins.c:182
@@ -2432,12 +2493,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
#, fuzzy
msgid ""
"Exit for, while, or until loops.\n"
@@ -2449,7 +2512,7 @@ msgid ""
" 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:338
+#: builtins.c:340
#, fuzzy
msgid ""
"Resume for, while, or until loops.\n"
@@ -2461,7 +2524,7 @@ msgid ""
" 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:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2475,7 +2538,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2491,7 +2554,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2514,13 +2577,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2528,7 +2599,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2544,7 +2615,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
#, fuzzy
msgid ""
"Null command.\n"
@@ -2555,7 +2626,7 @@ msgid ""
" Always succeeds."
msgstr "Cap efecte; no es fa res. Es retorna amb el codi zero com a eixida."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2563,7 +2634,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2571,7 +2642,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2590,7 +2661,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2610,6 +2681,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2625,17 +2697,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2646,15 +2719,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2666,6 +2741,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2681,7 +2757,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2694,7 +2770,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2721,7 +2797,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2733,7 +2809,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2774,7 +2850,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2797,7 +2873,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
#, fuzzy
msgid ""
"Exit the shell.\n"
@@ -2806,7 +2882,7 @@ msgid ""
" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2815,7 +2891,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2845,7 +2921,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
#, fuzzy
msgid ""
"Move job to the foreground.\n"
@@ -2858,7 +2934,7 @@ msgid ""
" 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:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2872,7 +2948,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2883,7 +2959,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2896,7 +2972,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2918,7 +2994,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2952,7 +3028,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2961,7 +3037,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2976,7 +3052,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2993,7 +3069,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3015,7 +3091,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3060,7 +3136,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3095,20 +3171,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3120,7 +3199,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3186,7 +3265,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3205,7 +3284,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3214,6 +3293,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3225,7 +3306,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3244,7 +3325,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3256,7 +3337,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3264,7 +3347,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3275,7 +3358,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3289,7 +3372,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3303,7 +3386,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3368,6 +3451,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3384,7 +3469,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -3395,7 +3480,7 @@ msgstr ""
"par?metre ha de ser el signe \"]\" perqu? es puga tancar l'expressi? que\n"
"comen?a pel signe \"[\"."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3407,7 +3492,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3451,7 +3536,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3481,7 +3566,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3510,6 +3595,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3525,7 +3613,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3543,38 +3631,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3587,7 +3679,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3604,7 +3696,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3624,7 +3716,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3640,7 +3732,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
#, fuzzy
msgid ""
"Execute commands based on pattern matching.\n"
@@ -3652,7 +3744,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr "Executa selectivament les ordres especificades en ORDRES seguint una "
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3673,7 +3765,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
#, fuzzy
msgid ""
"Execute commands as long as a test succeeds.\n"
@@ -3687,7 +3779,7 @@ msgstr ""
"Expandeix i executa les ordres especificades en ORDRES i els executa\n"
"de tal manera que la darrera ordre"
-#: builtins.c:1608
+#: builtins.c:1632
#, fuzzy
msgid ""
"Execute commands as long as a test does not succeed.\n"
@@ -3701,7 +3793,7 @@ msgstr ""
"Expandeix i executa les ordres especificades en ORDRES i els executa\n"
"de tal manera que la darrera ordre"
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3714,7 +3806,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3728,7 +3820,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
#, fuzzy
msgid ""
"Group commands as a unit.\n"
@@ -3740,7 +3832,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr "Executa un conjunt d'ordres en un grup. A?? ?s una manera de"
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3754,7 +3846,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3765,7 +3857,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3793,7 +3885,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3847,7 +3939,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3878,7 +3970,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3905,7 +3997,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3934,7 +4026,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3955,7 +4047,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3972,9 +4064,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3982,13 +4074,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -4015,7 +4113,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4028,7 +4126,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4059,7 +4157,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4100,13 +4198,17 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+#, fuzzy
+#~ msgid "wait [pid]"
+#~ msgstr "wait [n]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr ""
#~ "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)"
@@ -4383,8 +4485,8 @@ msgstr ""
#~ 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"
+#~ "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"
diff --git a/po/cs.gmo b/po/cs.gmo
index b2d64a08..e52fb513 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 25f40437..0e3c3bae 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,110 +1,127 @@
# 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 <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011.
+# Petr Pisar <petr.pisar@atlas.cz>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
#
# alias → alias
# subscript → podskript
# subroutine → podprogram
-# completition options → možnosti doplňování
+# completion options → možnosti doplňování
# shell option → pÅ™epínaÄ shellu (shopt)
# Názvy signálu a stavů procesu by měly souhlasit se signal(7).
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2011-01-05 13:03+0100\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-30 19:29+0100\n"
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"Language: cs\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "chybný podskript pole"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: Äíslované pole nezle pÅ™evést na pole asociativní"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: neplatný klÃ­Ä asociativního pole"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: pÅ™es neÄíselný indexu nelze dosadit"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, 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 podskript"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: nelze vytvořit: %s"
-#: bashline.c:3498
+#: bashline.c:3982
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:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: první nebílý znak není „\"“"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "ne zavírající „%c“ v %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: chybí dvojteÄkový oddÄ›lovaÄ"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "závorková expanze: nelze alokovat paměť pro %s"
+
+# TODO: pluralize
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "závorková expanze: alokace paměti pro %d prvků selhala"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "závorková expanze: alokace paměti pro „%s“ selhala"
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "„%s“: chybný název aliasu"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "upravování řádku není povoleno"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%s“: chybný název klávesové mapy"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: nelze Äíst: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "„%s“: nelze zrušit vazbu"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "„%s“: neznámé jméno funkce"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, 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
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s lze vyvolat přes "
@@ -117,7 +134,7 @@ msgstr "poÄet smyÄek"
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
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -127,11 +144,15 @@ msgstr ""
" \n"
" Bez VÃRAZU vrátí "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "není nestavena HOME"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "příliš mnoho argumentů"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "není nastaveno OLDPWD"
@@ -140,7 +161,7 @@ msgstr "není nastaveno OLDPWD"
msgid "line %d: "
msgstr "řádek %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "varování: "
@@ -150,11 +171,7 @@ msgstr "varování: "
msgid "%s: usage: "
msgstr "%s: užití: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "příliš mnoho argumentů"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: pÅ™epínaÄ vyžaduje argument"
@@ -169,7 +186,7 @@ msgstr "%s: vyžadován Äíselný argument"
msgid "%s: not found"
msgstr "%s: nenalezeno"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: chybný pÅ™epínaÄ"
@@ -179,7 +196,7 @@ msgstr "%s: chybný pÅ™epínaÄ"
msgid "%s: invalid option name"
msgstr "%s: chybný název pÅ™epínaÄe"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "„%s“: není platným identifikátorem"
@@ -192,7 +209,7 @@ msgstr "neplatné osmiÄkové Äíslo"
msgid "invalid hex number"
msgstr "chybné Å¡estnáctkové Äíslo"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "chybné Äíslo"
@@ -206,7 +223,7 @@ msgstr "%s: chybné urÄení signálu"
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:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: promÄ›nná pouze pro Ätení"
@@ -278,48 +295,58 @@ msgstr "%s: chyba pÅ™i zjiÅ¡Å¥ování souÄasného adresáře: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: nejednoznaÄné urÄení úlohy"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: neplatný název akce"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: žádné doplňování neurÄeno"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "doplňovací funkce se právě nevykonává"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "může být použito jen ve funkci"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: proměnná s odkazem nemůže být polem"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: proměnná s odkazem na název nemůže odkazovat sama na sebe"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "„-f“ nezle použít na výrobu funkce"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funkce jen pro Ätení"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: takto nelze likvidovat pole"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: asociativní pole nelze pÅ™evést na Äíslované pole"
@@ -348,24 +375,23 @@ msgstr "%s: není dynamicky nahráno"
msgid "%s: cannot delete: %s"
msgstr "%s: nelze smazat: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: je adresářem"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: není obyÄejný soubor"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: soubor je příliš velký"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: binární soubor nelze spustit"
@@ -400,11 +426,11 @@ msgstr "Jsou zde běžící úlohy.\n"
msgid "no command found"
msgstr "žádný příkaz nenalezen"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "urÄení historie"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: doÄasný soubor nelze otevřít: %s"
@@ -450,7 +476,7 @@ 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
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -458,12 +484,12 @@ 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
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: nelze otevřít: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -491,7 +517,7 @@ msgstr "nelze použít více jak jeden z -anrw"
msgid "history position"
msgstr "místo v historii"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: expanze historie selhala"
@@ -505,16 +531,16 @@ msgstr "%s: inlib selhala"
msgid "no other options allowed with `-x'"
msgstr "s „-x“ nejsou dovoleny další pÅ™epínaÄe"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, 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:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Neznámá chyba"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "oÄekáván výraz"
@@ -523,85 +549,95 @@ msgstr "oÄekáván výraz"
msgid "%s: not an indexed array"
msgstr "%s: není (proměnnou typu) indexované pole"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: chybné urÄení deskriptoru souboru"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: neplatný deskriptor souboru: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: chybný poÄet řádků"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: chybný poÄátek pole"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: neplatné množství mezi voláními"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "prázdný název proměnné typu pole"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "je vyžadována podpora proměnných typu pole"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%s“: postrádám formátovací znak"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: chybné urÄení Äasového limitu"
+msgstr "„%c“: chybné urÄení Äasového limitu"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%c“: neplatný formátovací znak"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "varování: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "potíže s rozebráním formátovacího řetězce: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "u \\x chybí Å¡estnáctková Äíslovka"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "u \\x chybí Å¡estnáctková Äíslovka"
+msgstr "u \\%c chybí unikódová Äíslovka"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "žádný další adresář"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: chybný argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<žádný aktuální adresář>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "prázdný zásobník adresářů"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "pořadí v zásobníku adresářů"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -643,7 +679,7 @@ msgstr ""
" -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
+#: builtins/pushd.def:711
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"
@@ -688,7 +724,7 @@ msgstr ""
" \n"
" Zásobník adresářů si můžete prohlédnout příkazem „dirs“."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -727,40 +763,40 @@ msgstr ""
" \n"
" Zásobník adresářů si můžete prohlédnout příkazem „dirs“."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: chybné urÄení Äasového limitu"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "chyba Ätení: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "funkci i promÄ›nnou nelze ruÅ¡it souÄasnÄ›"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: nelze zrušit"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: nelze zruÅ¡it: %s jen pro Ätení"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: není (proměnnou typu) pole"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: není funkcí"
@@ -769,11 +805,11 @@ msgstr "%s: není funkcí"
msgid "shift count"
msgstr "poÄet shiftů"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "pÅ™epínaÄ shellu nelze zároveň nastavit a zruÅ¡it"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: chybný název pÅ™epínaÄe shellu"
@@ -815,7 +851,7 @@ msgstr "%s je funkce\n"
msgid "%s is a shell builtin\n"
msgstr "%s je souÄást shellu\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s je %s\n"
@@ -825,45 +861,45 @@ msgstr "%s je %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s je zahashován (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: chybný argument s limitou"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "„%c“: chybný příkaz"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: limit nelze zjistit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limit"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: limit nelze změnit: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "osmiÄkové Äíslo"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "„%c“: chybný operátor symbolických práv"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%c“: chybný znak symbolický práv "
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " řádek "
@@ -877,300 +913,315 @@ msgstr "poslední příkaz: %s\n"
msgid "Aborting..."
msgstr "UkonÄuji…"
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "chyba neznámého příkazu"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "chybný druh příkazu"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "chybný konektor"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "chybný skok"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: nevázaná proměnná"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: „%c“: chybný formátovací znak"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "chyba v rouře"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximální úroveň zanoÅ™ení funkcí byla pÅ™ekroÄena (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: omezeno: v názvu příkazu nesmí být „/“"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: příkaz nenalezen"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s je %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: chybný interpretr"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: binární soubor nelze spustit: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "„%s“: je zvláštní vestavěný příkaz shellu"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "úroveň rekurze výrazu byla pÅ™ekroÄena"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "zásobník rekurze podtekl"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntaktická chyba ve výrazu"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "pokus o přiřazení do ne-proměnné"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "dělení nulou"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "chyba: chybný expassing token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "v podmínÄ›ném výrazu oÄekávána „:“"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "mocnitel menší než 0"
-#: expr.c:887
+#: expr.c:976
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:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "postrádám „)“"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntaktická chyba: oÄekáván operand"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntaktická chyba: chybný aritmetický operátor"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (chybný token je „%s“)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "chybný aritmetický základ"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "hodnot je pro základ příliš velká"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: chyba výrazu\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: rodiÄovské adresáře nejsou přístupné"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "na deskriptoru %d nelze resetovat režim nodelay"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp roury"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "forknutý PID %d se objevil v běžící úloze %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: proces %5ld (%s) do the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, 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:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: žádný takový PID"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signál %d"
# XXX: (úloha) dokonÄna. Používat ženský rod i unásledujících. Jedná se
# o výpis úloh.
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "DokonÄena"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Pozastavena"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Pozastavena (%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Běží"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "DokonÄena (%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "UkonÄena %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Stav neznámý"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core dumped [obraz paměti uložen]) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (cwd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid na potomku (z %ld na %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: PID %ld není potomkem tohoto shellu"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Žádný záznam o procesu %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: úloha %d je pozastavena"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: úloha skonÄila"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: úloha %d je již na pozadí"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: zapíná se WNOHANG, aby se zabránilo neurÄitému zablokování"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: řádek %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core dumped [obraz paměti uložen])"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(cwd nyní: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp selhalo"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: disciplína linky"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "nelze nastavit skupinu procesů terminálu (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "žádná správa úloh v tomto shellu"
@@ -1192,54 +1243,54 @@ msgstr ""
msgid "unknown"
msgstr "není známo"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: blok v seznamu uvolněných zbit"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: zavoláno s argumentem již uvolněného bloku"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: zavoláno s argumentem nenaalokovaného bloku"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
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
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: zavoláno s argumentem nenaalokovaného bloku"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
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
+#: lib/malloc/malloc.c:1026
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
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "chybný základ"
@@ -1262,35 +1313,35 @@ msgstr "%s: chybné urÄení síťové cesty"
msgid "network operations not supported"
msgstr "síťové operace nejsou podporovány"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: národní prostředí nelze změnit (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: národní prostředí nelze změnit (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: národní prostředí nelze změnit (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: národní prostředí nelze změnit (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "V $_ máte poštu"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "V $_ máte novou poštu"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "PoÅ¡ta v %s je pÅ™eÄtená\n"
@@ -1308,121 +1359,121 @@ msgstr "chyba syntaxe: neoÄekávaný „;“"
msgid "syntax error: `((%s))'"
msgstr "chyba syntaxe: „((%s))“"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: chybný druh instrukce %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: instrukce přesměrování „%d“ mimo rozsah"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, 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:4025
+#: parse.y:4170
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:4030
+#: parse.y:4175
#, 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:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "chyba syntaxe ve výrazu podmínky"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "neoÄekávaný token „%s“, oÄekávána „)“"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "oÄekávána „)“"
-#: parse.y:4144
+#: parse.y:4289
#, 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:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "neoÄekávaný argument u podmínkového unárního operátoru"
-#: parse.y:4194
+#: parse.y:4339
#, 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:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "oÄekáván podmínkový binární operátor"
-#: parse.y:4220
+#: parse.y:4365
#, 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:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "neoÄekávaný argument u podmínkového binárního operátoru"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "neoÄekávaný token „%c“ v podmínkovém příkazu"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "neoÄekávaný token „%s“ v podmínkovém příkazu"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "neoÄekávaný token %d v podmínkovém příkazu"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "chyba syntaxe poblíž neoÄekávaného tokenu „%s“"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "chyba syntaxe poblíž „%s“"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "chyba syntaxe: nenadálý konec souboru"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "chyba syntaxe"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Shell lze ukonÄit příkazem „%s“.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "nenadálý konec souboru při hledání odpovídající „)“"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "doplňování: funkce „%s“ nenalezena"
@@ -1432,91 +1483,91 @@ msgstr "doplňování: funkce „%s“ nenalezena"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULLOVÃ COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: chybná propojka „%d“"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: neplatný deskriptor souboru"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: nullový ukazatel na souboru"
# fd, fp a fileno jsou identifikátory v kódu
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace: fd (%d) != fileno fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: „%c“: chybný formátovací znak"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "deskriptor souboru mimo rozsah"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: nejednoznaÄné pÅ™esmÄ›rování"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: existující soubor nelze přepsat"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: omezeno: výstup nelze přesměrovat"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "pro „here“ dokument nelze vytvoÅ™it doÄasný soubor: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: deskriptor souboru nelze přiřadit do proměnné"
-#: redir.c:548
+#: redir.c:582
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:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "chyba přesměrování: deskriptor souboru nelze duplikovat"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "nelze nalézt /tmp, vytvořte jej, prosím!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp musí být platným názvem pro adresář"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: chybný pÅ™epínaÄ"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Nemám žádné jméno!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, verze %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1525,43 +1576,43 @@ 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Dlouhé GNU pÅ™epínaÄe:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "PÅ™epínaÄe shellu:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD nebo -c příkaz nebo -O shopt_pÅ™epínaÄ\t(pouze pÅ™i vyvolání)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s nebo -o pÅ™epínaÄ\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Chyby nahlásíte příkazem „bashbug“.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: neplatná operace"
@@ -1739,72 +1790,77 @@ msgstr "Neznámé Äíslo signálu"
msgid "Unknown Signal #%d"
msgstr "Neznámý signál Ä. %d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "chybná substituce: v %2$s chybí uzavírací „%1$s“"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: seznam nelze přiřadit do prvku pole"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "nelze vyrobit rouru za úÄelem substituce procesu"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "nelze vytvoÅ™it potomka za úÄelem substituce procesu"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "pojmenovanou rouru %s nelze otevřít pro Ätení"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "pojmenovanou rouru %s nelze otevřít pro zápis"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "pojmenovanou rouru %s nelze zdvojit jako deskriptor %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "nelze vytvořit rouru pro substituci příkazu"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "nelze vytvořit potomka pro substituci příkazu"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: rouru nelze zdvojit jako deskriptor 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: neplatný název proměnné pro odkaz na název"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametr null nebo nenastaven"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: výraz podřetězce < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: chybná substituce"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: takto nelze přiřazovat"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1812,129 +1868,143 @@ msgstr ""
"budoucá verze tohoto shellu budou vynucovat vyhodnocení jako aritmetickou "
"substituci"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "chybná substituce: v %s chybí uzavírací „`“"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "žádná shoda: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "oÄekáván argument"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: oÄekáván celoÄíselný výraz"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "oÄekávána „)“"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "oÄekávána „)“, nalezeno %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: oÄekáván unární operátor"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: oÄekáván binární operátor"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "postrádám „]“"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "neplatné Äíslo signálu"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: chybný signál %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "chyba při importu definice „%s“"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "úroveň shellu (%d) příliš vysoká, resetuji na 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: kruhový odkaz na název"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: žádný kontext funkce v aktuálním rozsahu"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: hodnotu nelze do proměnné přiřadit"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: žádný kontext funkce v aktuálním rozsahu"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s: má nullový exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "neplatný znak %d v exportstr pro %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "v exportstr pro %s chybí „=“"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr "pop_var_context: hlava shell_variables není kontextem funkce"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: chybí kontext global_variables"
-#: variables.c:3978
+#: variables.c:4431
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í"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: nelze otevřít jako SOUBOR"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: neplatná hodnota pro deskriptor trasovacího souboru"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: hodnota kompatibility je mimo rozsah"
+
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright © 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright © 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1942,34 +2012,22 @@ msgstr ""
"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, verze %s (%s)\n"
-#: version.c:91 version2.c:88
-#, 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:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Toto je svobodné programové vybavení: máte právo jej měnit a šířit."
-#: version.c:92 version2.c:89
-#, 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"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "VEÅ KERÉ ZÃRUKY chybí, jak jen zákon dovoluje."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licence GPLv2+: GNU GPL verze 2 nebo novější <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright © 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2001,10 +2059,10 @@ msgstr "unalias [-a] název [název…]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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 "
+"bind [-lpsvPSVX] [-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]"
@@ -2025,9 +2083,8 @@ msgid "caller [expr]"
msgstr "caller [výraz]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [adr]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [adresář]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2050,14 +2107,12 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] příkaz [argument…]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [název[=hodnota]…]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [název[=hodnota]…]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] název[=hodnota]…"
+msgstr "typeset [-aAfFgilrtux] [-p] název[=hodnota]…"
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2137,7 +2192,7 @@ 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]"
+"kill [-s sigspec | -n Äíssig | -sigspec] pid | úloha… nebo kill -l [sigspec]"
#: builtins.c:134
msgid "let arg [arg ...]"
@@ -2156,22 +2211,20 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o název_pÅ™epínaÄe] [argument…]"
+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…]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [jméno…]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr "export [-fn] [název[=hodnota] …] nebo export -p"
+msgstr "export [-fn] [název[=hodnota]…] nebo export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [název[=hodnota] …] nebo readonly -p"
+msgstr "readonly [-aAf] [název[=hodnota]…] nebo readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2210,20 +2263,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] název [název…]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mód]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id…]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid…]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2435,6 +2488,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2462,8 +2517,8 @@ msgstr ""
" -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"
+" který lze použít jako vstup.\n"
+" -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"
@@ -2476,12 +2531,16 @@ msgstr ""
" -x klávposl:příkaz-shellu\n"
" Způsobí, že bude vykonán PŘÃKAZ-SHELLU, když bude\n"
" zadána KLÃVPOSL.\n"
+" -X Vypíše posloupnosti kláves a příkazy přidružené "
+"přes\n"
+" pÅ™epínaÄ -x ve formátu, který lze použít jako "
+"vstup.\n"
" \n"
" Návratový kód:\n"
" bind vrací 0, pokud není zadán nerozpoznaný pÅ™epínaÄ nebo nedojde "
"k chybě."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2499,7 +2558,7 @@ msgstr ""
" Návratový kód:\n"
" Návratový kód je 0, pokud N je větší nebo rovno 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2516,7 +2575,7 @@ msgstr ""
" Návratový kód:\n"
" Návratový kód je 0, pokud N je větší nebo rovno 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2541,7 +2600,7 @@ msgstr ""
" 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:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2568,8 +2627,7 @@ msgstr ""
" Návratový kód:\n"
" Vrací 0, pokud shell provádí shellovou funkci a VÃRAZ je platný."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2592,13 +2650,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2623,16 +2689,25 @@ msgstr ""
" 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"
+" -L\tvynutí následování symbolických odkazů: vyhodnotí symbolické\n"
+" \todkazy v ADR po zpracování všech výskytů „..“\n"
" -P\tnařizuje použít fyzickou adresářovou strukturu namísto\n"
-" \tnásledování symbolických odkazů\n"
+" \tnásledování symbolických odkazů: vyhodnotí symbolické odkazy v ADR\n"
+" \tpřed zpracováním všech výskytů „..“\n"
+" -e\tje-li zadán pÅ™epínaÄ -P a souÄasný pracovní adresář nelze\n"
+" \tzdárnÄ› zjistit, skonÄí s nenulovým návratovým kódem\n"
+" -@ na systémech, které to podporují, vydává soubor s rozšířenými\n"
+" atributy jako adresář obsahující atributy souboru\n"
" \n"
" Symbolické odkazy se implicitně následují, jako by bylo zadáno „-L“.\n"
+" „..“ se zpracovávají tak, že se odstraní bezprostředně předcházející\n"
+" Äást cesty až k lomítku nebo zaÄátku ADR.\n"
" \n"
" Návratový kód:\n"
-" Vrací 0, byl-li adresář změněn, jinak nenulovou hodnotu."
+" Vrací 0, byl-li adresář změněn a, byl-li zadán -P, $PWD byla úspěšně\n"
+" nastavena. Jinak vrací nenulovou hodnotu."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2660,7 +2735,7 @@ msgstr ""
" Vrací 0, nebyl-li zadán neplatný pÅ™epínaÄ a mohl-li být souÄasný\n"
" adresář pÅ™eÄten."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2676,7 +2751,7 @@ msgstr ""
" Návratový kód:\n"
" Vždy uspěje."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2688,7 +2763,7 @@ msgstr ""
" Návratový kód:\n"
" Vždy uspěje."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2700,7 +2775,7 @@ msgstr ""
" Návratový kód:\n"
" Vždy selže."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2735,8 +2810,7 @@ msgstr ""
" Návratový kód:\n"
" Vrací návratový kód PŘÃKAZU, nebo selže, nebyl–li příkaz nalezen."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2756,6 +2830,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2771,7 +2846,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Nastaví hodnoty a atributy proměnných.\n"
" \n"
@@ -2779,16 +2855,19 @@ msgstr ""
" 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í akci 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"
+" -g\tvytváří globální proměnné, je-li voláno z funkce shellu,\n"
+" \tjinak ignorováno\n"
+" -p\tzobrazí 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"
+" -n\tuÄiní NÃZEV odkazem na promÄ›nnou pojmenovanou podle své hodnoty\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"
@@ -2801,12 +2880,13 @@ msgstr ""
" \n"
" Je-li použito uvnitÅ™ funkce, uÄiní „declare“ NÃZVY lokálními stejnÄ› "
"jako\n"
-" příkaz „local“.\n"
+" příkaz „local“. PÅ™epínaÄ â€ž-g“ toto chování potlaÄí.\n"
" \n"
" Návratový kód:\n"
-" Vrací úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nedoÅ¡lo k chybÄ›."
+" Vrací úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nedoÅ¡lo k chybÄ› pÅ™i\n"
+" přiřazování do proměnné."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2816,7 +2896,7 @@ msgstr ""
" \n"
" Příkaz je zastaralý. Vizte „help declare“."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2827,8 +2907,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Definuje lokální proměnné.\n"
" \n"
@@ -2841,14 +2921,16 @@ msgstr ""
" 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."
+" Vrací úspÄ›ch, nebyl-li zadán neplatný pÅ™epínaÄ, nenastala-li chyba pÅ™i\n"
+" přiřazování do proměnné a vykonává-li shell funkci."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2860,6 +2942,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2876,8 +2959,8 @@ msgid ""
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"
+" Zobrazí své ARGUMENTY oddÄ›lené jednou mezerou a zakonÄené novým řádkem\n"
+" na standardní výstup.\n"
" \n"
" PÅ™epínaÄe:\n"
" -n\tnepřipojuje nový řádek\n"
@@ -2890,6 +2973,7 @@ msgstr ""
" \\a\tpoplach (zvonek)\n"
" \\b\tbackspace\n"
" \\c\tpotlaÄí další výstup\n"
+" \\e\tznak escapu\n"
" \\E\tznak escapu\n"
" \\f\tposun formuláře (form feed)\n"
" \\n\tnový řádek\n"
@@ -2905,7 +2989,7 @@ msgstr ""
" Návratový kód:\n"
" Vrací úspěch, nedojde-li k chybě zápisu na výstup."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2926,7 +3010,7 @@ msgstr ""
" \n"
" Vrací úspěch, nedojte-li k chybě zápisu na výstup."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2980,7 +3064,7 @@ msgstr ""
" Vrací úspÄ›ch, je-li NÃZEV vestavÄ›ným příkazem shellu a nevyskytne-li\n"
" se chyba."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2998,7 +3082,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí návratový kód příkazu, nebo úspěch, byl-li příkaz prázdný."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3081,7 +3165,7 @@ msgstr ""
"dojde\n"
" na konec pÅ™epínaÄů nebo nastane-li chyba."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3122,7 +3206,7 @@ msgstr ""
" 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:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3134,7 +3218,7 @@ msgstr ""
" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3147,7 +3231,7 @@ msgstr ""
" 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:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3200,7 +3284,7 @@ msgstr ""
" Vrátí úspěch nebo kód provedeného příkazu. Nenulový kód, vyskytne-li se\n"
" chyba."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3221,7 +3305,7 @@ msgstr ""
" 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:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3243,7 +3327,7 @@ msgstr ""
" 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:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3254,7 +3338,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3287,7 +3371,7 @@ msgstr ""
" 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:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3328,7 +3412,7 @@ msgstr ""
" 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:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3393,7 +3477,8 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nedoÅ¡lo k chybÄ›."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3402,7 +3487,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3438,7 +3523,7 @@ msgstr ""
"chyba.\n"
" Byl-ly použit pÅ™epínaÄ -x, vrátí návratový kód PŘÃKAZU."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3468,7 +3553,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ nebo ÚLOHA."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3509,8 +3594,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nedoÅ¡lo k chybÄ›."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3597,7 +3681,7 @@ msgstr ""
" Pokud poslední ARGUMENT je vyhodnocen na 0, let vrátí 1. Jinak je\n"
" navrácena 0."
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3632,16 +3716,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\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 položky.\n"
@@ -3676,17 +3763,20 @@ msgstr ""
" -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. LIMIT smí být desetinné\n"
-" \t\tÄíslo. Je-li LIMIT 0, read vrátí úspÄ›ch, jen bude-li na zadaném\n"
+" \t\tÄíslo. Je-li LIMIT 0, read okamžitÄ› skonÄí, aniž by zkusil\n"
+" \t\tnaÄíst jakákoliv data, a vrátí úspÄ›ch, jen bude-li na zadaném\n"
" \t\tdeskriptoru souboru připraven vstup. Návratový kód bude větší než\n"
" \t\t128, pokud Äasový limit bude pÅ™ekroÄen.\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."
+" pro Ätení nevyprší (pak je vÄ›tší než 128), nedojde k chybÄ› pÅ™i\n"
+" přiřazování do proměnné, nebo není poskytnut neplatný deskriptor "
+"souboru\n"
+" jako argument -u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3708,8 +3798,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3775,7 +3864,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3860,10 +3949,13 @@ msgstr ""
" funkcí shellu.\n"
" -H Zapne ! způsob nahrazování historie. 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"
+" -P Je-li nastaveno, nebudou vyhodnocová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"
+" Neexistují-li žádné zbývající argumenty, poziÄní parametry budou\n"
+" odstraněny.\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"
@@ -3878,7 +3970,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspěch, pokud nebyl zadán neplatný argument."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3887,6 +3979,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3904,6 +3998,8 @@ msgstr ""
" 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\tpovažuje každé JMÉNO za odkaz na název a odstraní proměnnou samu\n"
+" \tnamísto proměnné, na kterou odkazuje\n"
" \n"
" Bez těchto dvou příznaků unset nejprve zkusí zrušit proměnnou a pokud "
"toto\n"
@@ -3915,7 +4011,7 @@ msgstr ""
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a JMÉNO není jen pro\n"
" Ätení."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3950,7 +4046,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ nebo NÃZEV."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3962,7 +4058,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3981,14 +4079,15 @@ msgstr ""
" -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"
+" -p\tzobrazí seznam vÅ¡ech promÄ›nných nebo funkcí jen pro Ätení\n"
+" \tv závislosti podle toho, zda-li byl zadán pÅ™epínaÄ -f\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:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4006,7 +4105,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspěch, pokud N není záporný a není větší než $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4030,7 +4129,7 @@ msgstr ""
" 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:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4054,8 +4153,7 @@ msgstr ""
" Návratový kód:\n"
" Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4120,6 +4218,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4142,6 +4242,9 @@ msgstr ""
" zjištění stavu souboru. Rovněž jsou k dispozici řetězcové operátory a\n"
" operátory Äíselného porovnání.\n"
" \n"
+" Chování testu závisí na poÄtu argumentů. Úplnou specifikaci si lze\n"
+" pÅ™eÄíst v manuálové stránce bashe.\n"
+" \n"
" Souborové operátory:\n"
" \n"
" -a SOUBOR Pravda, pokud soubor existuje.\n"
@@ -4200,6 +4303,9 @@ msgstr ""
" Další operátory:\n"
" \n"
" -o PŘEPÃNAÄŒ Pravda, pokud je pÅ™epínaÄ shellu PŘEPÃNAÄŒ zapnut.\n"
+" -v PROMĚNNà Pravda, pokud je proměnná shellu PROMĚNNà nastavena\n"
+" -R PROMĚNNà Pravda, pokud je proměnná shellu PROMĚNNà nastavena a\n"
+" jedná se odkaz na název.\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"
@@ -4217,7 +4323,7 @@ msgstr ""
" 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:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4229,7 +4335,7 @@ msgstr ""
" 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:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4249,8 +4355,7 @@ msgstr ""
" Návratový kód:\n"
" Vždy uspěje."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4310,7 +4415,12 @@ msgstr ""
" 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"
+" jednoduchým příkazem. Je-li SIGNAL_SPEC „RETURN“, bude ARGUMENT "
+"proveden\n"
+" vždy, když skonÄí bÄ›h funkce shellu nebo skriptu spuÅ¡tÄ›ného pÅ™es\n"
+" vestavěný příkaz „.“ nebo „source“. SIGNAL_SPEC „ERR“ znamená, že\n"
+" ARGUMENT bude proveden pokaždé, když by selhání příkazu způsobilo\n"
+" ukonÄení shellu (je-li zapnut pÅ™epínaÄ -e).\n"
" \n"
" Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů "
"navázaných\n"
@@ -4329,7 +4439,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud SIGSPEC a zadané pÅ™epínaÄe jsou platné."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4385,7 +4495,7 @@ msgstr ""
" Vrátí úspÄ›ch, pokud vÅ¡echny NÃZVY byly nalezeny. Selže, pokud nÄ›které\n"
" nalezeny nebyly."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4414,6 +4524,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4455,6 +4568,9 @@ msgstr ""
" -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"
+" -T\tmaximální poÄet vláken\n"
+" \n"
+" Ne vÅ¡echny pÅ™epínaÄe jsou dostupné na vÅ¡ech platformách.\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"
@@ -4469,7 +4585,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vrací úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nevyskytla se chyba."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4502,59 +4618,66 @@ msgstr ""
" Návratový kód\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný MÓD nebo pÅ™epínaÄ."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is 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"
+" PoÄká na každý 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"
+" identifikátorem úlohy, poÄká na vÅ¡echny procesy z kolony dané úlohy.\n"
+" \n"
+" Je-li zadán pÅ™epínaÄ -n, poÄká na ukonÄení další úlohy a vrátí její\n"
+" návratový kód.\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Ä."
+" Vrátí kód posledního ID. Selže, pokud ID není platný nebo byl zadán\n"
+" neplatný pÅ™epínaÄ."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+" PoÄká na každý proces urÄený PID a nahlásí jeho návratový kód. Není-li\n"
+" PID zadán, bude se Äekat na vÅ¡echny právÄ› aktivní procesy potomků a\n"
+" návratová hodnota 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Ä."
+" Vrátí kód posledního PID. Selže, pokud PID není platný nebo byl zadán\n"
+" neplatný pÅ™epínaÄ."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4578,7 +4701,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy provedeného příkazu."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4594,7 +4717,7 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Aritmetika smyÄek.\n"
+"Aritmetická smyÄka for.\n"
" \n"
" Ekvivalentní k\n"
" \t(( VÃR1 ))\n"
@@ -4607,7 +4730,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy vykonaného příkazu."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4649,7 +4772,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy prováděného příkazu."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4680,7 +4803,7 @@ msgstr ""
" Návratový kód:\n"
" Návratová hodnota je návratová hodnota KOLONY."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4698,7 +4821,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy provedeného příkazu."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4733,7 +4856,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy provedeného příkazu."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4752,7 +4875,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy provedeného příkazu."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4770,7 +4893,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy provedeného příkazu."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4792,7 +4915,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí návratový kód PŘÃKAZU."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4817,7 +4940,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud NÃZEV není jen pro Ätení."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4834,7 +4957,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód naposledy spuštěného příkazu."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4859,7 +4982,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí kód obnovené úlohy."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4881,7 +5004,7 @@ msgstr ""
# 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:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4933,7 +5056,7 @@ msgstr ""
" Návratový kód:\n"
" 0 nebo 1 podle hodnoty VÃRAZU."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5038,7 +5161,7 @@ msgstr ""
" \t\trozlišení, které příkazy by měly být uloženy do seznamu\n"
" \t\thistorie.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5095,7 +5218,7 @@ msgstr ""
" Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n"
" neselhala."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5145,7 +5268,7 @@ msgstr ""
" Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n"
" adresáře."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5196,7 +5319,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nevyskytla se chyba."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5234,8 +5357,7 @@ msgstr ""
" 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:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5252,9 +5374,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5262,6 +5384,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5282,18 +5410,27 @@ msgstr ""
"argumentu.\n"
" \n"
" Tento printf interpretuje vedle standardních formátovacích definic\n"
-" popsaných v printf(1) a printf(3) též:\n"
+" popsaných v printf(1) 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"
+" %(FORMÃT)T\tvypíše Å™etÄ›zec data-Äasu tak, jako by to byl výstup\n"
+" \t\tfunkce strftime(3) s formátovacím Å™etÄ›zcem FORMÃT\n"
+" \n"
+" FORMÃT lze znovu použít podle potÅ™eby ke zpracování vÅ¡ech argumentů. Je-"
+"li\n"
+" zde ménÄ› argumentů, než FORMÃT vyžaduje, nadbyteÄné formátovací znaky\n"
+" se budou chovat, jako by nulová hodnota nebo nulový řetězec, jak je "
+"třeba,\n"
+" byly zadány.\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:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5342,7 +5479,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nevyskytla se chyba."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5363,8 +5500,7 @@ msgstr ""
" Návratový kód:\n"
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ a nevyskytla se chyba."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5422,8 +5558,7 @@ msgstr ""
"definováno\n"
" pravidlo doplňování."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5488,8 +5623,9 @@ msgstr ""
" POLE\t\tNázev proměnné typu pole, do které budou přiřazena data.\n"
" \n"
" Je-li uvedeno -C bez -c, implicitní množství bude 5000. Vyhodnocovanému\n"
-" VOLÃNà bude jako dodateÄný argument pÅ™edán index prvku pole, do kterého\n"
-" se bude vzápětí přiřazovat.\n"
+" VOLÃNà budou jako dodateÄné argumenty pÅ™edány index prvku pole, do\n"
+" kterého se má vzápětí přiřazovat, a řádek, který má být přiřazen do\n"
+" tohoto prvku.\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"
@@ -5498,7 +5634,7 @@ msgstr ""
" Vrátí úspÄ›ch, pokud nebyl zadán neplatný pÅ™epínaÄ, POLE nebylo jen pro\n"
" Ätení a bylo indexovaným polem."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5508,6 +5644,16 @@ msgstr ""
" \n"
" Synonymum pro „mapfile“."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licence GPLv2+: GNU GPL verze 2 nebo novější <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
diff --git a/po/da.gmo b/po/da.gmo
new file mode 100644
index 00000000..24a3ccd0
--- /dev/null
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 00000000..07807bf0
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,5795 @@
+# Danish translation of bash.
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+#
+# Kenneth Nielsen <k.nielsen81@gmail.com>, 2009-2011.
+#
+# Oversættelseskonventioner:
+# keymap -> tastetildeling
+# child -> underproces
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bash 4.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2011-03-18 01:36+0100\n"
+"Last-Translator: Kenneth Nielsen <k.nielsen81@gmail.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\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"
+
+# Den er jeg altså ikke helt sikker på
+#: arrayfunc.c:51
+msgid "bad array subscript"
+msgstr "ugyldigt arrayindeks"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: kan ikke konvertere indekseret til associativt array"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: ugyldig nøgle til associativt array"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: kan ikke tildele til ikkenumerisk indeks"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: et indeks skal bruges ved tildeling til associativt array"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: kan ikke oprette %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: kan ikke finde tastetildeling for kommando"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: første ikke-blank-tegn er ikke '\"'"
+
+# Kønnet her er et gæt, hvis det er parenteser eller anførselstegn passer det
+# FEJLRAPPORT
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "ingen afsluttende \"%c\" i %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: manglende kolonseparator"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, fuzzy, c-format
+msgid "`%s': invalid alias name"
+msgstr "\"%s\": ugyldigt tastetildelingsnavn"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "linjeredigering ikke slået til"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "\"%s\": ugyldigt tastetildelingsnavn"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: kan ikke læse: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "\"%s\": kan ikke løsne"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "\"%s\": ukendt funktionsnavn"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s er ikke bundet til nogen taster.\n"
+
+#: builtins/bind.def:316
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s kan kaldes via "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "løkketæller"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "kun meningsfuld i en \"for\"-, \"while\"- eller \"until\"-løkke"
+
+#: builtins/caller.def:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Returnerer konteksten af det nuværende underrutinekald.\n"
+" \n"
+" NÃ¥r UDTRYK udelades returneres "
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME ikke indstillet"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "for mange argumenter"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD ikke indstillet"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "linje %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "advarsel: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: brug: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: tilvalg kræver et argument"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: numerisk argument påkrævet"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: ikke fundet"
+
+#: builtins/common.c:214 shell.c:801
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: ugyldigt tilvalg"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: ugyldigt tilvalgsnavn"
+
+#: builtins/common.c:228 general.c:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "\"%s\": ikke et gyldigt identificeringsnavn"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "ugyldigt oktaltal"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "ugyldigt heksadecimalt tal"
+
+#: builtins/common.c:242 expr.c:1470
+msgid "invalid number"
+msgstr "ugyldigt tal"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: ugyldig signalspecifikation"
+
+#: builtins/common.c:257
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "\"%s\": ikke en pid eller gyldig job-spec"
+
+#: builtins/common.c:264 error.c:488
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: skrivebeskyttet variabel"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s udenfor rækkevidde"
+
+#: 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 udenfor rækkevidde"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: intet sådant job"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: ingen jobkontrol"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "ingen jobkontrol"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: begrænset"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "begrænset"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: ikke indbygget i skallen"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "skrivefejl: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "fejl ved indstilling af terminalattribut: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "fejl ved indhentning af terminalattribut: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: fejl ved indhentning af nuværende mappe: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: tvetydig job-spec"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: ugyldigt handlingsnavn"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: ingen fuldførselsspecifikation"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "advarsel: tilvalget -F vil måske ikke virke, som du forventer"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "advarsel: tilvalget -C vil måske ikke virke, som du forventer"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "ikke i gang med at eksekvere fuldførelsesfunktion"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "kan kun bruges i en funktion"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "kan ikke bruge \"-f\" til at lave funktioner"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: skrivebeskyttet funktion"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: kan ikke destruere arrayvariabel på denne måde"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: kan ikke konvertere associativt til indekseret array"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "dynamisk indlæsning ikke tilgængelig"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "kan ikke åbne delt objekt %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "kan ikke finde %s i delt objekt %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: ikke dynamisk indlæst"
+
+#: builtins/enable.def:474
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: kan ikke slette: %s"
+
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: er en mappe"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: ikke en regulær fil"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: fil er for stor"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: kan ikke eksekvere binær fil"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: kan ikke eksekvere: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "log ud\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "ikke en logind-skal: brug \"exit\""
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Der er stoppede job.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Der er kørende job.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "ingen kommando fundet"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "historikspecifikation"
+
+#: builtins/fc.def:390
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: kan ikke åbne midl. fil: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "nuværende"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "job %d startet uden jobkontrol"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: et argument er påkrævet til tilvalget -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "hashing slået fra"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: hash-tabel tom\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "hits\tkommando\n"
+
+# Jeg antager at det sidste ` er det første af et sæt af anførselstegn og
+# det er derfor oversat til "
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Skalkommandoer som matcher nøgleordet \""
+msgstr[1] "Skal-kommandoer som matcher nøgleordene \""
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"ingen hjælpeemner matcher \"%s\". Prøv \"help help\" eller \"man -k %s\" "
+"eller \"info %s\"."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: kan ikke åbne: %s"
+
+#: builtins/help.def:485
+#, 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 ""
+"Disse skalkommandoer er defineret internt. Skriv \"help\" for at se denne "
+"liste.\n"
+"Skriv \"help navn\" for at finde ud af mere om kommandoen \"navn\".\n"
+"Brug \"info bash\" for at få mere generel information om skallen.\n"
+"Brug \"man -k\" eller \"info\" for at finde ud af mere om kommandoer som "
+"ikke er \n"
+"på listen.\n"
+"\n"
+"En stjerne (*) ved siden af et navn betyder at kommandoen er slået fra.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "kan ikke bruge mere end en af -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "historikposition"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: historikudvidelse fejlede"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: inlib fejlede"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "ingen andre tilvalg er tilladt sammen med \"-x\""
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: argumenter skal være processer eller job-id'er"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Ukendt fejl"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "forventede et udtryk"
+
+#: builtins/mapfile.def:172
+#, fuzzy, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: ikke en arrayvariabel"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: ugyldig filbeskrivelsesspecifikation"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+# -c Specify the number of lines read between each call to callback.
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: ugyldigt antal linjer"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: ugyldig array-startindeks"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: ugyldigt tilbagekaldskvantum"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "tomt arrayvariabelnavn"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "understøttelse af arrayvariabel påkrævet"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "\"%s\": manglende formattegn"
+
+#: builtins/printf.def:456
+#, fuzzy, c-format
+msgid "`%c': invalid time format specification"
+msgstr "%s: ugyldig specifikation af tidsudløb"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "\"%c\": ugyldigt formattegn"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "advarsel: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "manglende heksciffer for \\x"
+
+#: builtins/printf.def:880
+#, fuzzy, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "manglende heksciffer for \\x"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "ingen anden mappe"
+
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: ugyldigt grænseargument"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<ingen nuværende mappe>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "mappestak tom"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "mappestakindeks"
+
+#: builtins/pushd.def:689
+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 ""
+"Viser listen af huskede mapper. Mapper tilføjes til listen med\n"
+" \"pushd\"-kommandoen. Du kan komme tilbage i listen med \"popd\"-\n"
+" kommandoen.\n"
+"\n"
+" Valgmuligheder:\n"
+" -c\tryd mappestakken ved at slette alle elementerne\n"
+" -l\tvis ikke \"tildepræfiksede\" versioner af mapper relativt\n"
+" til din hjemmemappe\n"
+" -p\tvis mappestakken med et element per linje\n"
+" -v\tvis mappestakken med et element per linje, præfikset med\n"
+" med dets position i stakken\n"
+" \n"
+" Argumenter:\n"
+" +N\tViser det N'te element, talt fra venstre af og vist mappevis\n"
+" når der ikke angives nogle valgmuligheder, startende fra 0.\n"
+" \n"
+" -N\tViser det N'te element, talt fra venstre af og vist mappevis\n"
+" når der ikke angives nogle valgmuligheder, startende fra 0."
+
+# Jeg tror der er en fejl i den engelske, fejlrapport
+#: builtins/pushd.def:711
+#, 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 ""
+"Tilføjer en mappe til toppen af mappestakken, eller roterer stakken\n"
+" således at den nye top bliver den aktuelle mappe. Uden\n"
+" argumenter ombyttes de to øverste mapper.\n"
+" \n"
+" Valgmuligheder:\n"
+" -n\tUndertrykker det normale mappeskift ved tilføjelse\n"
+" \taf mapper til stakken, således at kun stakken manipuleres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tRoterer stakken således at det N'te element (talt\n"
+" \tfra venstre af listen som vist af \"dirs\", startende med nul)\n"
+" \tbliver placeret i toppen.\n"
+" \n"
+" -N\tRoterer stakken således at det N'te element (talt\n"
+" \tfra højre af listen som vist af \"dirs\", startende med nul)\n"
+" \tbliver placeret i toppen.\n"
+" \n"
+" dir\tTilføjer DIR til toppen af mappestakken, således at den\n"
+" \tbliver den nye aktive mappe.\n"
+" \n"
+"Den indbyggede funktion \"dirs\" viser mappestakken."
+
+#: builtins/pushd.def:736
+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 ""
+"Fjerner en mappe fra toppen af mappestakken. Uden argumenter fjernes\n"
+" den øverste mappe fra stakken og der skiftes til den nye øverste mappe.\n"
+" \n"
+" Valgmuligheder:\n"
+" -n\tUndertrykker det normale mappeskift ved fjernelse\n"
+" \taf mapper fra stakken, således at kun stakken manipuleres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tFjerner det N'te element, talt fra venstre af listen\n"
+" \tsom vist af \"dirs\", startende med nul. F.eks: vil \"popd +0\"\n"
+" \tfjerne det øverste argument og \"popd +1\" det andet.\n"
+" \n"
+" -N\tFjerner det N'te element, talt fra højre af listen\n"
+" \tsom vist af \"dirs\", startende med nul. F.eks: vil \"popd -0\"\n"
+" \tfjerne det sidste argument og \"popd -1\" det andetsidste.\n"
+" \n"
+"Den indbyggede funktion \"dirs\" viser mappestakken."
+
+#: builtins/read.def:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: ugyldig specifikation af tidsudløb"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "læsefejl: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr "kan kun udføre \"return\" fra en funktion eller indlæst skript"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "kan ikke fjerne en funktion og en variabel samtidig"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: kan ikke fjerne"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: kan ikke fjerne: skrivebeskyttet %s"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: ikke en arrayvariabel"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: ikke en funktion"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "skifttæller"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "kan ikke indstille og fjerne skaltilvalg samtidig"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: ugyldigt navn for skaltilvalg"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "filnavnsargument påkrævet"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: fil ikke fundet"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "kan ikke sætte i hvile"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "kan ikke sætte en logindskal i hvile"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s er aliasset til \"%s\"\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s er et skalnøgleord\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s er en funktion\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s er indbygget i skallen\n"
+
+#: builtins/type.def:317 builtins/type.def:393
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s er %s\n"
+
+#: builtins/type.def:337
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "%s er hashet (%s)\n"
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: ugyldigt grænseargument"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "\"%c\": ugyldig kommando"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: kan ikke indhente grænse: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "grænse"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: kan ikke modificere grænse: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "oktalt tal"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "\"%c\": ugyldig symbolsk tilstandsoperator"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "\"%c\": ugyldigt symbolsk tilstandstegn"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " linje "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "sidste kommando: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Afbryder..."
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "ukendt kommandofejl"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "ugyldig kommandotype"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "dårligt mellemled"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "dårligt hop"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: ubundet variabel"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\atidsudløb mens der ventedes på input: auto-logud\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "kan ikke videresende standardinput fra /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: \"%c\": ugyldigt formateringstegn"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "datakanalfejl (pipe error)"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: begrænset: kan ikke specificere \"/\" i kommandonavne"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: kommando ikke fundet"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: dårlig fortolker"
+
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan ikke eksekvere binær fil"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s er indbygget i skallen\n"
+
+# Process Substitution
+# Process substitution is supported on systems that support named pipes
+# (FIFOs) or the /dev/fd method of naming open files. It takes the form
+# of <(list) or >(list). The process list is run with its input or outâ€
+# put connected to a FIFO or some file in /dev/fd. The name of this file
+# is passed as an argument to the current command as the result of the
+# expansion. If the >(list) form is used, writing to the file will proâ€
+# vide input for list. If the <(list) form is used, the file passed as
+# an argument should be read to obtain the output of list.
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "kan ikke duplikere fd %d til fd %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "grænse for rekursion af udtryk overskredet"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "underløb i rekursionsstak"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "syntaksfejl i udtryk"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "forsøgte tildeling til ikke-variabel"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "division med 0"
+
+# denne her streng er dårlig på så mange måder at det fatter man slet ikke. Skal bug oversætter og hvad er expassign. Jeg laver et bud og har fejlmeldt den
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "bug: dårligt expassign-udtryk"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "\":\" forventet for betingede udtryk"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "eksponent mindre end 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "identifikator forventet efter præforøgelse eller -formindskelse"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "manglende \")\""
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "syntaksfejl: operand forventet"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "syntaksfejl: ugyldig aritmetisk operator"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (fejlelement er \"%s\")"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "ugyldig aritmetisk grundtal"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "værdi for stor til grundtal"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: fejl i udtryk\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: kan ikke tilgå overliggende mapper"
+
+# Har ladet nodelay stå, idet jeg gætter på at det er et navn
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "kan ikke nulstille \"nodelay\"-tilstand for fd %d"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "kan ikke allokere ny fildeskriptor til bash-input fra fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: buffer eksisterer allerede til ny fd %d"
+
+# ??
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: pgrp-datakanal (pipe)"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "forgrenet pid %d figurerer i kørende job %d"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "sletter stoppet job %d med procesgruppe %ld"
+
+# ??
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: proces %5ld (%s) i the_pipeline"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: pid %5ld (%s) markeret som stadig i live"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: ingen process med det pid"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Signal %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Færdig"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "Stoppet"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Stoppet(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "Kører"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Færdig(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Afslut %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Ukendt status"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(smed kerne) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "underproces setpgid (%ld til %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: pid %ld er ikke en underproces af denne skal"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Ingen optegnelse af proces %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: job %d er stoppet"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: job er afbrudt"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: job %d er allerede i baggrunden"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr ""
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: linje %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (smed kerne)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(wd nu: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: getpgrp fejlede"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: linjedisciplin"
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "kan ikke indstille terminal-procesgruppe (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "ingen jobkontrol i denne skal"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: forfejlet hævdelse: %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: hævdelse forkludret\r\n"
+
+#: lib/malloc/malloc.c:313
+msgid "unknown"
+msgstr "ukendt"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: blok i fri liste tværet ud"
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: kaldt med blokargument som allerede er fri"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: kaldt med ikke-allokeret blokargument"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: underløb detekteret, mh_nbytes uden for interval"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr "free: størrelse på start- og slut-bid afviger"
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: kaldt med ikke-allokeret blokargument"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: underløb detekteret, mh_nbytes uden for interval"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: størrelse på start- og slut-bid afviger"
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: alloc-tabel er fyldt med FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p allerede i tabel som allokeret?\n"
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p allerede i tabel som fri?\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "ugyldig base"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: vært ukendt"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: ugyldig tjeneste"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: dårlig specifikation for netværkssti"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "netværksoperation ikke understøttet"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr ""
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr ""
+
+#: locale.c:259
+#, fuzzy, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: locale.c:261
+#, fuzzy, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Du har post i $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Du har ny post i $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "Posten i %s er blevet læst\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "syntaksfejl: aritmetisk udtryk påkrævet"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "syntaksfejl: \";\" uventet"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "syntaksfejl: \"((%s))\""
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: dårlig instruktionstype %d"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr ""
+"here-document ved linje %d er adskilt af slut-på-linje (ønskede \"%s\")"
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_direction: videresendelsesinstruktion \"%d\" uden for interval"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "uventet EOF mens der ledtes efter samhørende \"%c\""
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "uventet EOF mens der ledtes efter \"]]\""
+
+# word A sequence of characters considered as a single unit by the
+# shell. Also known as a token.
+# Jeg har valgt udtryk
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "syntaksfejl i betingelsesudtryk: uventet element \"%s\""
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "syntaksfejl i betingelsesudtryk"
+
+# word A sequence of characters considered as a single unit by the
+# shell. Also known as a token.
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "uventet element \"%s\", forventede \")\""
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "forventede \")\""
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "uventet argument \"%s\" til unær betingelsesoperator"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "uventet argument til unær betingelsesoperator"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "uventet udtryk \"%s\", ventede binær betingelsesoperator"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "ventedet binær betingelsesoperator"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "uventet argument \"%s\" til binær betingelsesoperator"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "uventet argument til binær betingelsesoperator"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "uventet udtryk \"%c\" i betingelseskommando"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "uventet udtryk \"%s\" i betingelseskommando"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "uventet udtryk \"%d\" i betingelseskommando"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "syntaksfejl nær uventet udtryk \"%s\""
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "syntaksfejl nær \"%s\""
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "syntaksfejl: uventet slutning på fil"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "syntaksfejl"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Brug \"%s\" for at forlade skallen.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "uventet EOF mens der ledtes efter samhørende \")\""
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: funktion \"%s\" ikke fundet"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: dårligt mellemled \"%d\""
+
+#: print_cmd.c:373
+#, fuzzy, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr ""
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr ""
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: \"%c\": ugyldigt formateringstegn"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "fil-deskriptor uden for interval"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: tvetydig videresendelse"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: kan ikke overskrive eksisterende fil"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: begrænset: kan ikke videresende output"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "kan ikke danne midlertidig fil til here-dokument: %s"
+
+#: redir.c:195
+#, fuzzy, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: kan ikke tildele liste til arrayelementer"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/vært/port ikke understøttet uden netværk"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "videresendelsesfejl: kan ikke duplikere fd"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "kan ikke finde /tmp, opret venligst mappen!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp skal være et gyldigt mappenavn"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: ugyldigt tilvalg"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Jeg har ikke noget navn!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, version %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Brug:\t%s [langt GNU-tilvalg] [tilvalg] ...\n"
+"\t%s [langt GNU-tilvalg] [tilvalg] skript-fil ...\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "Lange GNU-tilvalg:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Skal-tilvalg:\n"
+
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD eller -c kommando eller -O shopt_option\t\t(kun programkald)\n"
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\tTilvalg -%s eller -o\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+"Skriv \"%s -c \"help set\"\" for at få mere information om skaltilvalg.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+"Skriv \"%s -c help\" for at få mere information om indbyggede "
+"skalkommandoer.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Brug kommandoen \"bashbug\" til at rapportere fejl.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: ugyldig handling"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Falsk signal"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Læg på"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Afbryd"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Afslut"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Ugyldig instruktion"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT-spor/fang"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "ABORT-instruktion"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "EMT-instruktion"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Kommatalsundtagelse"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Slået ihjel"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Bus-fejl"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Segmenteringsfejl"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Ugyldigt systemkald"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Ødelagt datakanal"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Alarmklokke"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Afsluttet"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Presserende IO-forhold"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Stoppet (signal)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Fortsæt"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Død eller stop af underproces"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Stoppet (tty-input)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Stoppet (tty-output)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "I/O klar"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "CPU-grænse"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "Filgrænse"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Alarm (virtuel)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Alarm (profil)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Vindue ændret"
+
+# I fejlrapport for at få meningen
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Optag lås"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "Brugersignal 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "Brugersignal 2"
+
+# Fejlrapport
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "HFT-inputdata afventer"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "strømsvigt nært forestående"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "systemnedbrud nært forestående"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "flyt proces til en anden CPU"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "programmeringsfejl"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "HFT-skærmtilstand tildelt"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "HFT-skærmtilstand trukket tilbage"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "HFT-lydsekvens er afsluttet"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Informationsforespørgsel"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Ukendt signal #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Ukendt signal #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "dårlig udskiftning: ingen lukkende \"%s\" i %s"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: kan ikke tildele liste til arrayelementer"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "kan ikke lave datakanal (pipe) til procesudskiftning"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "kan ikke danne underproces til procesudskiftning"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "kan ikke åbne navngiven datakanal (pipe) %s til læsning"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "kan ikke åbne navngiven datakanal (pipe) %s til skrivning"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "kan ikke duplikere navngiven datakanal (pipe) %s som %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "kan ikke danne datakanal (pipe) til kommandoudskiftning"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "kan ikke danne underproces til kommandoudskiftning"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: kan ikke duplikere datakanal (pipe) som fd 1"
+
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parameter null eller ikke indstillet"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: understreng-udtryk < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: dårlig udskiftning"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: kan ikke tildele på denne måde"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "dårlig udskiftning: ingen lukkende \"`\" i %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "intet match: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "argument forventet"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: heltalsudtryk forventet"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "\")\" forventet"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "\")\" forventet, fandt %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: unær operator forventet"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: binær operator forventet"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "manglende \"]\""
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "ugyldigt signalnummer"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: dårlig værdi i trap_list[%d]: %p"
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signalhåndtering er SIG_DFL, gensender %d (%s) til mig "
+"selv"
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: ugyldigt signal %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "fejl under importering af funktionsdefinition for \"%s\""
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "skalniveau (%d) for højt, genindstiller til 1"
+
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: ingen funktionskontekst ved nuværende navneområde"
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: kan ikke tildele liste til arrayelementer"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: ingen funktionskontekst ved nuværende navneområde"
+
+#: variables.c:3891
+#, fuzzy, c-format
+msgid "%s has null exportstr"
+msgstr "%s: parameter null eller ikke indstillet"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "ugyldigt tegn %d i exportstr for %s"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "intet \"=\" i exportstr for %s"
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: hoved af shell_variables er ikke en funktionskontekst"
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: ingen global_variables-kontekst"
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+"pop_scope: hoved af shell_variables er ikke et midlertidigt miljønavnerum"
+
+#: variables.c:5257
+#, fuzzy, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: kan ikke åbne: %s"
+
+#: variables.c:5262
+#, fuzzy, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s udenfor rækkevidde"
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Ophavsret (C) 2009 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl."
+"html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, version %s (%s)\n"
+
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Dette er fri software; du kan frit ændre eller redistribuere det.\n"
+
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Der er INGEN GARANTI i det omfang loven tillader.\n"
+
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Ophavsret (C) 2009 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, fuzzy, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#: xmalloc.c:93
+#, fuzzy, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "xmalloc: kan ikke allokere %lu bytes"
+
+#: xmalloc.c:163
+#, fuzzy, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: %s:%d: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#: xmalloc.c:165
+#, fuzzy, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "xmalloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [navn[=værdi] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] navn [navn ...]"
+
+#: builtins.c:51
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m tastetildeling] [-f filnavn] [-q navn] [-u navn] [-r "
+"nøglesek] [-x nøglesek:skalkommando] [nøglesek: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 [shell-builtin [arg ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [expr]"
+
+#: builtins.c:64
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|-P] [mappe]"
+
+#: 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
+#, fuzzy
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFilrtux] [-p] [navn[=værdi] ...]"
+
+#: builtins.c:78
+#, fuzzy
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFilrtux] [-p] navn[=værdi] ..."
+
+#: builtins.c:80
+msgid "local [option] name[=value] ..."
+msgstr "local [tilvalg] navn[=værdi] ..."
+
+#: 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 filnavn] [navn ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [arg ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts tilvalgsstreng navn [arg]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a navn] [kommando [argumenter ...]] [videresendelse ...]"
+
+#: builtins.c:98
+msgid "exit [n]"
+msgstr "exit [n]"
+
+#: builtins.c:100
+msgid "logout [n]"
+msgstr "logout [n]"
+
+# pat=rep betyder højst sandsynligt mønster=regulært udtryk, men jeg kan ikke finde på nogen 3-bogstavsudtryk som jeg man bruge for de to ting, som jeg synes er let forståelige derfor har jeg ladet dem stå
+#: builtins.c:103
+msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
+msgstr ""
+"fc [-e ename] [-lnr] [første] [sidste] eller fc -s [pat=rep] [kommando]"
+
+#: 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 stinavn] [-dt] [navn ...]"
+
+#: builtins.c:117
+#, fuzzy
+msgid "help [-dms] [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 forskydning] [n] eller history -anrw [filnavn] eller "
+"history -ps arg [arg...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [jobspec ...] eller jobs -x kommando [arger]"
+
+#: 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 ... eller kill -l "
+"[sigspec]"
+
+#: builtins.c:134
+msgid "let arg [arg ...]"
+msgstr "let arg [arg ...]"
+
+#: builtins.c:136
+#, fuzzy
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d adskil] [-i tekst] [-n ntegn] [-p prompt] [-t "
+"tidsgrænse] [-u fd] [navn ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+#, fuzzy
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [--abefhkmnptuvxBCHP] [-o tilvalgsnavn] [arg ...]"
+
+#: builtins.c:142
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [navn ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [navn[=værdi] ...] eller export -p"
+
+#: builtins.c:146
+#, fuzzy
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-af] [navn[=værdi] ...] eller readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source filnavn [argumenter]"
+
+#: builtins.c:152
+msgid ". filename [arguments]"
+msgstr ". filnavn [argumenter]"
+
+#: builtins.c:155
+msgid "suspend [-f]"
+msgstr "suspend [-f]"
+
+#: builtins.c:158
+msgid "test [expr]"
+msgstr "test [udtryk]"
+
+#: 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] navn [navn ...]"
+
+#: builtins.c:169
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [grænse]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [tilstand]"
+
+#: builtins.c:175
+#, fuzzy
+msgid "wait [-n] [id ...]"
+msgstr "wait [id]"
+
+#: builtins.c:179
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for NAVN [in ORD ... ] ; do KOMMANDOER; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( udtryk1; udtryk2; udtryk3 )); do KOMMANDOER; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select NAVN [in ORD ... ;] do KOMMANDOER; done"
+
+#: builtins.c:188
+msgid "time [-p] pipeline"
+msgstr "time [-p] datakanal"
+
+#: builtins.c:190
+msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
+msgstr "case ORD in [MØNSTER [| MØNSTER]...) KOMMANDOER ;;]... esac"
+
+#: builtins.c:192
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if KOMMANDOER; then KOMMANDOER; [ elif KOMMANDOER; then KOMMANDOER; ]... "
+"[ else KOMMANDOER; ] fi"
+
+#: builtins.c:194
+msgid "while COMMANDS; do COMMANDS; done"
+msgstr "while KOMMANDOER; do KOMMANDOER; done"
+
+#: builtins.c:196
+msgid "until COMMANDS; do COMMANDS; done"
+msgstr "until KOMMANDOER; do KOMMANDOER; done"
+
+#: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NAVN] kommando [videresendelser]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function navn { KOMMANDOER ; } eller navn () { KOMMANDOER ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ KOMMANDOER ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( udtryk ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ udtryk ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variables - Navn og betydning af nogle skalvariable"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | mappe]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [indstnavn ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v var] format [argumenter]"
+
+#: builtins.c:229
+#, fuzzy
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-o valgmuligheder] [-A handling] [-G "
+"globmønst] [-W ordliste] [-F funktion] [-C kommando] [-X filtermønst] [-P "
+"præfiks] [-S suffiks] [navn ...]"
+
+#: builtins.c:233
+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 valgmuligheder] [-A handling] [-G globmønst] [-"
+"W ordliste] [-F funktion] [-C kommando] [-X filtermønst] [-P præfiks] [-S "
+"suffiks] [ord]"
+
+#: builtins.c:237
+#, fuzzy
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o valgmulighed] [navn ...]"
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C tilbagekald] "
+"[-c kvantum] [array]"
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C "
+"tilbagekald] [-c kvantum] [array]"
+
+#: builtins.c:254
+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 ""
+"Definer eller vis aliasser.\n"
+" \n"
+" Uden argumenter vil \"alias\" udskrive en liste af aliasser på den\n"
+" genanvendelige form alias NAVN=VÆRDI til standardoutput.\n"
+" \n"
+" Ellers vil der blive defineret et alias for hvert NAVN, som der er an-\n"
+" givet en VÆRDI til. Et efterfølgende mellemrum i VÆRDI vil medføre,\n"
+" at det næste ord vil blive kontrolleret for alias-udskiftning, når\n"
+" aliasset udvides.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tUdskriver alle definerede aliasser i et genanvendelig format\n"
+" \n"
+" Afslutningsstatus:\n"
+" alias returnerer sand med mindre der gives et NAVN som der ikke er\n"
+" defineret noget alias for."
+
+#: builtins.c:276
+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 ""
+"Fjern hvert NAVN fra listen af definerede aliasser.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tfjern alle aliasdefinitioner.\n"
+" \n"
+" Returner succes med mindre et NAVN ikke er et eksisterende alias."
+
+#: builtins.c:289
+#, 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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"Indstil Readline-tastebindinger og variable.\n"
+"\n"
+" Bind en tastsekvens til en Readline-funktion eller en makro, eller "
+"indstil\n"
+" en Readline-variabel. Syntaksen uden tilvalg er ækvivalent til den som\n"
+" bruges i ~/.inputrc, men skal gives som et enkelt argument:\n"
+" f.eks. bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" Tilvalg:\n"
+" -m tastetildel Brug TASTETILDEL som tastetildeling for hele \n"
+" varigheden af denne kommando. Accepterede "
+"tastetildel-\n"
+" ingsnavne er emacs, emacs-standard, emacs-meta,\n"
+" emacs-ctlx, vi, vi-move, vi-command og vi-insert.\n"
+" -l Vis liste af funktioner.\n"
+" -P Vis liste af funktionsnavne og bindinger.\n"
+" -p Vis liste af funktionsnavne og bindinger på en "
+"form\n"
+" som kan genbruges som input.\n"
+" -S Vis tastesekvenser som udfører makroer og deres "
+"værdier\n"
+" -s Vis tastesekvenser som udfører makroer og deres "
+"værdier\n"
+" på en form som kan genbruges som inddata.<\n"
+" -V Vis variabelnavne og -værdier\n"
+" -v Vis variabelnavne og -værdier på en form som kan \n"
+" genbruges som inddata.\n"
+" -q funktionsnavn Forespørg hvilke taster der udfører den navngivne \n"
+" funktion.\n"
+" -u funktionsnavn Løsn alle taster som er bundet til den navngivne\n"
+" funktion.\n"
+" -r tastesekv Fjern bindingen for TASTESEKV.\n"
+" -f filnavn Indlæs tastetildeling fra FILNAVN.\n"
+" -x tastesekv:skalkommando\tMedfører at SKALKOMMANDO udføres når \n"
+" \t\t\t\tTASTESEKV trykkes.\n"
+" \n"
+" Afslutningsstatus:\n"
+" bind returnerer 0 med mindre et ugenkendt tilvalg angives, eller hvis "
+"der\n"
+" opstår en fejl."
+
+#: builtins.c:328
+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 ""
+"Afslut for-, while- eller until-løkker.\n"
+" \n"
+" Afslut en FOR, WHILE eller UNTIL-løkke. Hvis N er angivet, afbrydes N\n"
+" indlejrede løkker.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med "
+"1."
+
+#: builtins.c:340
+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 ""
+"Genoptag for-, while- eller until-løkke.\n"
+" \n"
+" Genoptager den næste iteration af den omsluttende FOR-, WHILE- eller \n"
+" UNTIL-løkke. Hvis N er angivet, genoptages fra den N'te indesluttende "
+"løkke.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med "
+"1."
+
+#: builtins.c:352
+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 ""
+"Eksekver en skal-indbygget funktion.\n"
+" \n"
+" Eksekver en SKAL-INDBYGGET med argumenterne ARGer uden at udføre "
+"kommando-\n"
+" opslag. Dette er nyttigt, hvis du ønsker et reimplementere en skal-\n"
+" indbygget som en skalfunktion, men har brug for at eksekvere den "
+"indbyggede\n"
+" inden i funktionen.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for den SKAL-INDBYGGEDE, eller falsk "
+"hvis\n"
+" SKAL-INDBYGGET ikke er en skal-indbygget.."
+
+#: builtins.c:367
+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 ""
+"Returnerer konteksten af det nuværende underrutinekald.\n"
+"\n"
+" Uden UDTRYK returneres \"$line $filename\". Med UDTRYK returneres\n"
+" \"$line $subroutine $filename\". Den ekstra information\n"
+" kan bruges til at give at stakspor.\n"
+"\n"
+" Værdien af UDTRYK angiver hvor mange kalderammer der skal gås tilbage\n"
+" fra den nuværende. Toprammen er ramme 0.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 0 med mindre skallen ikke eksekverer en skalfunktion eller "
+"hvis\n"
+" UDTRYK er ugyldigt."
+
+#: builtins.c:385
+#, 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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+"Ændrer skallens aktuelle mappe.\n"
+" \n"
+" Ændrer den nuværende mappe til MAPPE. Variablen HOME er standardmappen.\n"
+" Variablen CDPATH definerer søgestien for mappen som indeholder DIR.\n"
+" \n"
+" Variablen CDPATH definerer søgestien for den mappe som indeholder "
+"MAPPE.\n"
+" Alternative mappenavne i CDPATH er separeret af et kolon (:). Et\n"
+" null-mappenavn er det samme som den nuværende mappe. Hvis MAPPE "
+"begynder\n"
+" med en skråstreg (/) bruges CDPATH ikke.\n"
+"\n"
+" Hvis mappen ikke findes og skalvariablen \"cdabel_vars\" er indstillet,\n"
+" vil det blive antaget at ordet er et variabelnavn. Hvis variablen har "
+"en\n"
+" værdi, så bruges denne som MAPPE.\n"
+"\n"
+" Tilvalg:\n"
+" -L\tgennemtving at symbolske lænker følges\n"
+" -P\tbrug den fysiske mappestruktur uden at følge symbolske lænker\n"
+" \n"
+" Som standard følges symbolske lænker, som om \"-L\" var valgt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 0 hvis mappen ændres, ellers noget forskellig fra 0."
+
+#: builtins.c:422
+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 ""
+"Udskriver navnet for den aktuelle mappe.\n"
+" \n"
+" Tilvalg:\n"
+" -L\tudskriv værdien af $PWD hvis den indeholder den aktuelle mappe\n"
+" -P\tudskriv den fysiske mappe uden nogen symbolske lænker\n"
+" \n"
+" Som standard vil \"pwd\" opføre sig som om \"-L\" var angivet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 0 med mindre der er angivet et ugyldigt tilvalg, eller hvis "
+"den\n"
+" aktuelle mappe ikke kan læses."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Null-kommando.\n"
+" \n"
+" Ingen effekt, kommandoen gør intet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid succesfuldt."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Returnerer et succesfuldt resultat.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid succesfuldt."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Returnerer et mislykket resultat.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid mislykket."
+
+#: builtins.c:468
+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 ""
+"Eksekverer en simpel kommando eller viser information om kommandoer.\n"
+" \n"
+" Kører KOMMANDO med ARGer med undertrykkelse af skalfunktionsopslag, "
+"eller\n"
+" vis information om de angivne KOMMANDOER. Kan bruges til at køre "
+"kommandoer\n"
+" fra disken, når en funktion af samme navn eksisterer.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tbrug en standardværdi for PATH som med garanti vil finde alle\n"
+" \tstandardværktøjerne\n"
+" -v\tudskriv en beskrivelse af KOMMANDO, i stil med den skal-\n"
+" \tindbyggede \"type\"\n"
+" -V\tUdskriv en større beskrivelse af hver kommando\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatus fra KOMMANDO eller mislykket hvis KOMMANDO\n"
+" ikke findes."
+
+#: builtins.c:487
+#, 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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Indstil variabelværdier og -attributter\n"
+" \n"
+" Erklær variable og giv dem attributter. Hvis der ikke angives nogen "
+"NAVNE,\n"
+" så angives attributter og værdier for alle variable.\n"
+" \n"
+" Tilvalg:\n"
+" -f\tbegræns handling eller visning til funktionsnavne og\n"
+" \tdefinitioner\n"
+" -F\tbegræns visning til funktionsnavne (inklusive linjenummer og\n"
+" \tkildekodefil under fejlsøgning)\n"
+" -p\tvis attributter og værdi for hvert NAVN\n"
+" \n"
+" Tilvalg som indstiller attributter:\n"
+" -a\tfor at gøre NAVNE til indekserede arrays (hvis understøttet)\n"
+" -A\tfor at gøre NAVNE til associerede arrays (hvis understøttet)\n"
+" -i\tfor at give NAVNE \"integer\"-attributten\n"
+" -l\tkonverter NAVNE til små bogstaver ved tildeling\n"
+" -t\tfor at give NAVNE \"trace\"-attributten\n"
+" -u\tkonverter NAVNE til store bogstaver ved tildeling\n"
+" -x\tfor at eksportere NAVNE\n"
+" \n"
+" Brug \"+\" i stedet for \"-\" for at slå den pågældende attribut fra.\n"
+" \n"
+" Der vil blive udført en aritmetisk evaluering (se \"let\"-kommandoen) "
+"af \n"
+" variable med integer-attributten, når de tildeles en værdi.\n"
+" \n"
+" Når de bliver brugt i en funktion, kan \"declare\" bruges til at gøre "
+"NAVNE\n"
+" lokale, ligesom med \"local\"-kommandoen.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Indstil variabelværdier og -attributter.\n"
+" \n"
+" Forældet. Læs i \"help declare\"."
+
+#: builtins.c:535
+#, fuzzy
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"Definer lokale variable.\n"
+" \n"
+" Opret en lokal variabel med navnet NAVN og tildel den en værdi. TILVALG "
+"kan\n"
+" være alle tilvalg som accepteres af \"declare\".\n"
+" \n"
+" Lokale variable kan kun bruges inden i en funktion; de er kun synlige, "
+"for\n"
+" den funktion de er defineret i og dens underfunktioner.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, hvis der\n"
+" opstår en fejl, eller hvis skallen ikke eksekverer en funktion."
+
+#: builtins.c:552
+#, fuzzy
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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 argumenter til standardoutput.\n"
+" \n"
+" Vis ARGer fra standardoutput, efterfulgt af et nylinjetegn.\n"
+" \n"
+" Tilvalg:\n"
+" -n vedhæft ikke nylinjetegn\n"
+" -e aktiver fortolkning af de følgende undvigesekvenser med\n"
+" omvendt skråstreg\n"
+" -E\tundertryk eksplicit fortolkningen af undvigesekvenser med\n"
+" \tomvendt skråstreg\n"
+"\n"
+" \"echo\" fortolker følgende undvigesekvenser med omvendt skråstreg\n"
+" \\a\talarm (klokke)\n"
+" \\b\ttilbageryk (backspace)\n"
+" \\c\tundertryk yderligere output\n"
+" \\e\tescape-tegn\n"
+" \\f\tsideskift (form feed)\n"
+" \\n\tny linje\n"
+" \\r\tlinjeskift (carrige return)\n"
+" \\t\thorisontalt tab\n"
+" \\v\tvertikalt tab\n"
+" \\\\\tomvendt skråstreg\n"
+" \\0nnn\tdet tegn hvis ASCII-kode er NNN (oktalt). NNN kan have 0-3\n"
+" \toktale cifre\n"
+" \\xHH\tdet 8 bit tegn hvis værdi er HH (heksadecimalt). HH kan have\n"
+" \tet eller to heksadecimale cifre\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der opstår en skrivefejl."
+
+#: builtins.c:588
+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 argumenter til standardoutput.\n"
+" \n"
+" Vis ARGer til standard output, efterfulgt af et nylinjetegn.\n"
+" \n"
+" Tilvalg:\n"
+" -n\tvedhæft ikke et nylinjetegn\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der opstår en skrivefejl."
+
+#: builtins.c:603
+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 ""
+"Aktiver og deaktiver skal-indbyggede.\n"
+" \n"
+" Aktiverer og deaktiverer indbyggede skalkommandoer. Deaktivering "
+"tillader\n"
+" dig at udføre diskkommandoer, som har det sammen navn som en skal-"
+"indbygget\n"
+" uden at bruge et fuldt stinavn.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tudskriver en liste over indbyggede, uanset om de er slået til\n"
+" -n\tdeaktiver hvert NAVN eller vis en liste af deaktiverede funk-\n"
+" \ttioner\n"
+" -p\tudskriv en liste over indbyggede i et genanvendeligt format\n"
+" -s\tudskriv kun navne for \"specielle\" Posix-indbyggede\n"
+" \n"
+" Tilvalg som kontrollerer dynamisk indlæsning:\n"
+" -f\tIndlæs indbygget NAVN fra det delte objekt FILNAVN\n"
+" -d\tFjern en indbygget indlæst med -f\n"
+" \n"
+" Uden tilvalg bliver hvert NAVN aktiveret. \n"
+" \n"
+" Skriv \"enable -n test\" for at bruge den \"test\" som findes i $PATH, i "
+"stedet\n"
+" for den indbyggede version.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre NAVN ikke er en skal-indbygget eller hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:631
+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 ""
+"Eksekver argumenter som en skalkommando.\n"
+" \n"
+" Kombinerer ARGer til en enkelt streng, brug resultatet som input til "
+"skallen\n"
+" og udfør den resulterende kommando.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer kommandoens afslutningsstatus eller succes hvis kommandoen "
+"er\n"
+" null."
+
+#: builtins.c:643
+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 ""
+"Fortolkning af tilvalgsargumenter\n"
+" \n"
+" Getopts bruges af skalprocedurer til at tolke positionsparametre og\n"
+" tilvalg.\n"
+" \n"
+" OPTSTRING indeholder de tilvalg, som skal genkendes. Hvis et bogstav\n"
+" følges af et kolon, forventes det at tilvalget har et argument, som\n"
+" skal adskilles fra tilvalget med et mellemrum.\n"
+" \n"
+" Hver gang getopts kaldes, vil den placere det næste tilvalg i skal-\n"
+" variablen $name, og initialisere $name, hvis den ikke eksisterer, og\n"
+" putte indekset for det næste argument, som skal behandles, ind i\n"
+" skalvariablen OPTIND. OPTIND initialiseres til 1 hver gang skallen\n"
+" eller et skalskript kaldes. Hvis tilvalget kræver et argument, vil\n"
+" getopts placere argumentet i skalvariablen OPTARG.\n"
+" \n"
+" getopts rapporterer fejl på en af to forskellige måder. Hvis det\n"
+" første tegn i OPTSTRENG er et kolon, vil getopts bruge stille fejl-\n"
+" rapportering. I denne tilstand vil fejlbeskeder ikke blive\n"
+" udskrevet. Hvis der angives et ugyldigt tilvalg, vil getopts placere\n"
+" tilvalgstegnet i OPTARG. Hvis et påkrævet argument ikke bliver\n"
+" fundet, vil getopts placere et \":\" i NAVN og sætte OPTARG til det\n"
+" fundne tilvalgstegn. Hvis getopts ikke er i stille tilstand og der\n"
+" angives et ugyldigt tilvalg, vil getopts placere \"?\" i NAVN og\n"
+" fjerne (unset) OPTARG. Hvis et påkrævet argument ikke findes, vil\n"
+" der blive placeret et \"?\" i NAVN og OPTARG vil blive fjernet\n"
+" (unset) og en diagnosebesked vil blive udskrevet.\n"
+" \n"
+" Hvis skalvariablen OPTERR har værdien 0, vil udskrivningen af fejl-\n"
+" beskeder blive slået fra i getopts, også selv om det første tegn i\n"
+" OPTSTRING ikke er et kolon. OPTERR har værdien 1 som standard.\n"
+" \n"
+" Normalt vil getopts tolke de positionelle parametre ($0 - $9), men\n"
+" hvis der angives flere argumenter end dette, vil de blive tolket i\n"
+" stedet for.\n"
+" \n"
+" Afslutningsstatus\n"
+" Returnerer succes hvis et tilvalg findes, fejler hvis afslutningen\n"
+" af tilvalgene nås eller hvis der opstår en fejl."
+
+#: builtins.c:685
+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 ""
+"Erstat skallen med den angivne kommando.\n"
+" \n"
+" Eksekver KOMMANDO og erstat derved skallen med det angivne program.\n"
+" ARGUMENTER bliver argumenter til KOMMANDO. Hvis KOMMANDO ikke angives "
+"vil\n"
+" alle omdirigeringer træde i kraft i den aktuelle skal.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tnavn\tangiv NAVN som det nulte argument til KOMMANDO\n"
+" -c\t\teksekver KOMMANDO i et tomt miljø\n"
+" -l\t\tbrug en bindestreg som det nulte argument til KOMMANDO\n"
+" \n"
+" Hvis kommandoen ikke kan eksekveres, vil ikke-interaktive skaller "
+"afsluttes,\n"
+" med mindre skal-tilvalget \"execfail\" angives\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt med mindre KOMMANDO ikke kan findes, eller hvis "
+"der\n"
+" opstår en omdirigeringsfejl."
+
+#: builtins.c:706
+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 ""
+"Afslut skallen.\n"
+" \n"
+" Afslut skallen med status N. Hvis N udelades vil afslutningsstatus\n"
+" blive den samme som sidst eksekverede kommando."
+
+#: builtins.c:715
+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 ""
+"Afslut en logindskal.\n"
+" \n"
+" Afslutter en logindskal med afslutningsstatus N. Returnerer en fejl, "
+"hvis\n"
+" den ikke eksekveres i en logindskal."
+
+#: builtins.c:725
+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 ""
+"Vis og eksekver kommandoer fra historiklisten.\n"
+" \n"
+" fc bruges til at vise, redigere og geneksekvere kommandoer fra "
+"historikken.\n"
+" FØRSTE og SIDSTE kan være numre som specificerer et interval, eller "
+"FØRSTE\n"
+" kan være en streng, hvilket vil resultere i den nyeste kommando som\n"
+" begynder med den streng.\n"
+" \n"
+" Tilvalg: \n"
+" -e ENAVN\tvælger hvilket tekstredigeringsprogram, der vil bliver "
+"brugt.\n"
+" Forvalget er FCEDIT, herefter EDITOR og til sidst \"vi\".\n"
+" -l \tbetyder vis linjer i stedet for at redigere dem.\n"
+" -n\tbetyder at linjenumre ikke vises.\n"
+" -r\tbetyder at rækkefølgen af linjer vendes (så nye er først).\n"
+" \n"
+" Med \"fc -s [pat=rep ...] [command]\"-formatet vil kommandoen blive "
+"gen-\n"
+" eksekveret efter substitutionen GAMMEL=NY er foretaget.\n"
+" \n"
+" Et nyttigt alias er r=\\\"fc -s\\\", som vil medføre at den sidste "
+"kommando\n"
+" der begynder med \\\"cc\\\" vil afvikles, når der skrives \\\"r cc\\\", "
+"og at\n"
+" den seneste kommando afvikles, når der skrives \\\"r\\\".\n"
+"\n"
+" Afslutningsstatus.\n"
+" Returnerer succes eller status af den eksekverede kommando, ikke-nul "
+"hvis\n"
+" der opstod en fejl."
+
+#: builtins.c:755
+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 ""
+"Flyt jobs til forgrunden.\n"
+" \n"
+" Placer JOB_SPEC i forgrunden og gør det til det aktuelle job. Hvis\n"
+" JOB_SPEC ikke findes, vil skallens opfattelse af, hvad der er det "
+"nuværende\n"
+" job, blive brugt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Status af den kommando der placeres i forgrunden eller mislykket hvis "
+"der\n"
+" opstår fejl."
+
+#: builtins.c:770
+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 ""
+"Flyt jobs til baggrunden\n"
+" \n"
+" Placer hvert enkelt JOB_SPEC i baggrunden, som om de var startet med \n"
+" \"&\". Hvis JOB_SPEC ikke findes, vil skallen opfattelse af, hvad der "
+"er\n"
+" det nuværende job, blive brugt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt medmindre jobkontrol ikke er slået til, eller "
+"hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:784
+#, fuzzy
+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 as 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 ""
+"Husk og vis programplaceringer.\n"
+" \n"
+" Afgør og husker det fulde stinavn for hver kommando-NAVN. Hvis der ikke\n"
+" gives noget argument, vil information om huskede kommandoer blive vist.\n"
+" \n"
+" Tilvalg:\n"
+" -d\t\tglem den huskede placering for hvert NAVN\n"
+" -l\t\tvis i et format som kan genanvendes\n"
+" -p stinavn\tbrug STINAVN som det fulde stinavn for NAVN\n"
+" -r\t\tglem alle huskede placeringer\n"
+" -t\t\tudskriv den huskede placering for hvert NAVN, med NAVNet\n"
+" \t\tudskrevet foran placeringen hvis flere NAVNe er angivet.\n"
+" Argumenter:\n"
+" NAVN\t\tDer søges efter hvert navn i $PATH og de tilføjes til\n"
+" \t\tlisten af huskede kommandoer.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt med mindre NAVN ikke kan findes, eller hvis der "
+"angives\n"
+" et ugyldig tilvalg."
+
+#: builtins.c:809
+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 ""
+"Vis information om indbyggede kommandoer.\n"
+" \n"
+" Viser korte sammendrag om indbyggede kommandoer. Hvis MØNSTER er "
+"angivet,\n"
+" vil der blive givet en detaljeret hjælp, om alle de kommandoer som "
+"matcher\n"
+" MØNSTER, ellers vil der blive udskrevet en liste over hjælpeemner.\n"
+" \n"
+" Tilvalg:\n"
+" -d\tudskriver kort beskrivelse for hvert emne\n"
+" -m\tviser brugsinformation i pseudo-mansideformat\n"
+" -s\tvis kun en kort synopsis for hvert emne som matcher MØNSTER\n"
+" \n"
+" Argumenter:\n"
+" MØNSTER\tMønster som specificerer et hjælpeemne\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre MØNSTER ikke kan findes, eller hvis der\n"
+" angives et ugyldigt tilvalg."
+
+#: builtins.c:833
+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 ""
+"Vis eller manipuler med historiklisten.\n"
+"\n"
+" Vis historikken med linjenumre. Linjer som vises med \"*\" er blevet\n"
+" ændret. Argumentet N gør at kun de N sidste linjer bliver vist.\n"
+" \n"
+" Tilvalg:\n"
+" -c\trydder historiklisten ved at slette alle elementer i den.\n"
+" -d forskydning\tsletter historik-elementet ved position FORSKYDNING.\n"
+" -a\tvedhæfter historiklinjer fra denne session til historikfilen.\n"
+" -n\tindlæser alle linjer fra historikfilen, som ikke allerede er\n"
+" \tindlæst\n"
+" -r\tindlæser historikfilen og føjer dens indhold til historiklisten\n"
+" -w\tskriver den nuværende historik til historikfilen og vedhæft dem\n"
+" \ttil historiklisten\n"
+" \n"
+" -p\tudfør en historikudvidelse på hvert enkelt ARG og udskriv\n"
+" \tresultatet uden at tilføje det til historikken\n"
+" -s\tvedhæft ARGer til historiklisten som et enkelt element\n"
+" \n"
+" Hvis FILENAVN er angivet, vil den blive brugt som historikfil,\n"
+" ellers vil $HISTFILE blive brugt, hvis den har en værdi og ellers\n"
+" vil ~/.bash_history blive brugt.\n"
+" \n"
+" Hvis variablen $HISTTIMEFORMAT er indstillet og ikke er \"null\", vil "
+"dens\n"
+" værdi blive brugt som formatstreng til strftime(3) til formatering af\n"
+" tidspunkt for hvert historikelement. Ellers vil ingen tidsstempler "
+"blive\n"
+" skrevet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der er angivet et ugyldig tilvalg, eller "
+"hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:869
+#, 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\tlists 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 ""
+"Viser status af jobs.\n"
+" \n"
+" Viser de aktive jobs. JOBSPEC begrænser output til dette job. Uden "
+"tilvalg\n"
+" vil status for alle aktive jobs blive vist.\n"
+" \n"
+" Tilvalg:\n"
+" \n"
+" -l\tvis også proces-id'er ud over den normale information\n"
+" -n\tviser kun de processer, som har ændret status siden sidste\n"
+" \tpåmindelse\n"
+" -p\tviser udelukkende proces-id'er\n"
+" -r\tbegrænser uddata til kørende jobs\n"
+" -s\tbegrænser uddata til stoppede jobs\n"
+" \n"
+" Hvis -x er givet, vil KOMMANDO blive kørt efter at alle "
+"jobspecifikationer\n"
+" som står i ARGer er blevet erstattet med proces-id'et for dette jobs "
+"proces-\n"
+" gruppeleder.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis "
+"der\n"
+" opstår en fejl. Hvis -x bruges returneres afslutningsstatus for KOMMANDO."
+
+#: builtins.c:896
+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 ""
+"Fjern jobs fra den aktuelle skal.\n"
+" \n"
+" Fjerner hvert JOBSPEC-argument, fra tabellen over aktive jobs. Hvis der "
+"ikke\n"
+" angives nogen JOBSPEC bruges skallens opfattelse af det aktuelle job.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tfjern alle jobs hvis JOBSPEC ikke er angivet\n"
+" -h\tmarker hvert JOBSPEC således at SIGHUP ikke sendes til jobbet\n"
+" \thvis skallen modtager SIGHUP\n"
+" -r\tfjern kun kørende jobs\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre et ugyldigt tilvalg eller JOBSPEC angives."
+
+#: builtins.c:915
+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 et signal til et job.\n"
+" \n"
+" Send signalet SIGSPEC eller SIGNUM til processen, som er angivet ved "
+"PID\n"
+" eller JOBSPEC. Hvis hverken SIGSPEC eller SIGNUM er angivet antages "
+"SIGTERM.\n"
+" \n"
+" -s sig\tSIG er et signalnavn\n"
+" -n sig\tSIG er et signalnummer\n"
+" -l\tudskriver signalnavnene. Hvis der står argumenter efter \"-l\",\n"
+" \tantages det, at de er signalnumre hvis tilhørende signalnavne skal\n"
+" udskrives.\n"
+" \n"
+" Der er to grunde til at kill er en indbygget skal-kommando: Det "
+"tillader\n"
+" at der kan bruges job-id'er i stedet for proces-id'er og tillader at "
+"stoppe\n"
+" processer, selvom du har nået grænsen for, hvor mange processer du\n"
+" kan oprette.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis "
+"der\n"
+" opstår en fejl."
+
+#: builtins.c:938
+#, 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 ""
+"Evaluer aritmetiske udtryk.\n"
+" \n"
+" Hvert ARG er et aritmetisk udtryk som skal evalueres. Evalueringen\n"
+" bliver foretaget i heltal med fast-bredde, uden check for overløb,\n"
+" dog vil division med 0 blive fanget og markeret som en fejl. Den\n"
+" følgende liste af operatorer er vist i grupper med samme evaluerings-\n"
+" prioritet. Grupperne er vist med faldende prioritet.\n"
+" \n"
+" \tid++, id--\tpost-forøgelse og -formindskelse af variabel\n"
+" \t++id, --id\tpræ-forøgelse og -formindskelse af variabel\n"
+" \t-, +\t\tunær minus og plus\n"
+" \t!, ~\t\tlogisk og bitvis negation\n"
+" \t**\t\teksponentiering\n"
+" \t*, /, %\t\tmultiplikation, division, rest\n"
+" \t+, -\t\taddition, subtraktion\n"
+" \t<<, >>\t\tvenstre og højre bitvis skift\n"
+" \t<=, >=, <, >\tsammenligning\n"
+" \t==, !=\t\tlighed, ulighed\n"
+" \t&\t\tbitvis AND (OG)\n"
+" \t^\t\tbitvis XOR (EKSKLUSIVT ELLER)\n"
+" \t|\t\tbitvis OR (ELLER)\n"
+" \t&&\t\tlogisk AND (OG)\n"
+" \t||\t\tlogisk OR (ELLER)\n"
+" \texpr ? expr : expr\n"
+" \t\t\tbetingelsesoperator\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\ttildeling\n"
+" \n"
+" Skalvariable er tilladt som operander. Variablens navn vil blive\n"
+" erstattet af dens værdi (tilpasset så den er et heltal med fast-bredde)\n"
+" indeni udtrykket. Variablen skal have sin heltals-attribut slået til\n"
+" for, at den kan bruges i et udtryk.\n"
+" \n"
+" Operatorer vil blive evalueret efter prioritet. Underoperatorer i\n"
+" parenteser bliver evalueret først og kan tilsidesætte de ovenstående\n"
+" prioriteter.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Hvis det sidste ARG evalueres til 0, vil \"let\" returnere 1, ellers\n"
+" returneres 0."
+
+#: builtins.c:983
+#, 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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+"Læs en linje fra standardinput og del den op i felter.\n"
+" \n"
+" En linje vil blive læst fra standardinput, eller fra fildeskriptor FD "
+"hvis\n"
+" tilvalget -u er givet. Linjen vil blive delt ind i felter som med ord-\n"
+" opdeling Det første ord blive tildelt det første NAVN, det andet ord "
+"til \n"
+" det andet NAVN osv. og de tilbageblivende ord vil blive tildelt det "
+"sidste\n"
+" NAVN. Kun de tegn som findes i $IFS vil blive genkendt som "
+"ordadskillere.\n"
+"\n"
+" Hvis der ikke er angivet nogle NAVNe, vil linjen blive gemt i REPLY-\n"
+" variablen.\n"
+"\n"
+" Tilvalg:\n"
+" -a array\tde indlæste ord blive tildelt fortløbende indeks i\n"
+" \t\tARRAY startende ved 0\n"
+" -d adskil\tfortsæt indtil det første tegn i ADSKIL bliver læst, i "
+"stedet\n"
+" \t\tfor ved nylinjetegn\n"
+" -e\tbrug Readline til at indhente linje fra en interaktiv skal\n"
+" -i tekst\tBrug TEKST som den indledende tekst til Readline\n"
+" -n ntegn\treturnerer efter at have læst NTEGN tegn i stedet for at "
+"vente\n"
+" \t\tpå et nylinjetegn\n"
+" -p prompt\tudskriv strengen PROMPT, uden et nylinjetegn, før der "
+"forsøges på\n"
+" \t\tat læse\n"
+" -r\ttillad ikke at omvendte skråstreger undviger tegn\n"
+" -s\tudskriv (echo) ikke input som kommer fra en terminal\n"
+" -t tidsgrænse\tindstil tidsudløb og returner fejl, hvis der ikke kan\n"
+" \t\t\tlæses en komplet linje indenfor TIDSGRÆNSE sekunder.\n"
+" \t\t\tVærdien af variablen TMOUT er standardtidsudløbet.\n"
+" \t\t\tTIDSGRÆNSE kan være et kommatal. Hvis TIDSGRÆNSE er 0,\n"
+" \t\t\tvil read kun returnere succes hvis der er input\n"
+" \t\t\ttilgængelig ved den angivne fildeskriptor. Fejlstatus\n"
+" \t\t\tvil være større end 128 hvis tidsudløb indtræffer.\n"
+" -u fd\tlæs fra fildeskriptoren FD i stedet for standardinput\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returkoden vil være nul, med mindre slut-på-fil nås, tidsudløb "
+"indtræffer,\n"
+" eller hvis en ugyldig fildeskriptor gives som argument til -u."
+
+#: builtins.c:1028
+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 ""
+"Returner fra en skalfunktion.\n"
+" \n"
+" Gør at en funktion eller et kildeskript afslutter med en returværdi, som "
+"er\n"
+" angivet med N. Hvis N udelades, vil returstatussen være den samme som "
+"værdien\n"
+" fra sidste kommande, som blev eksekveret inde i funktionen eller "
+"skriptet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer N, eller fejl hvis skallen ikke er i færd med at eksekvere "
+"en\n"
+" funktion eller et skript."
+
+#: builtins.c:1041
+#, 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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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 ""
+"Indstiller eller afinitialiserer (unset) skaltilvalg og positionsparametre.\n"
+" \n"
+" Ændr værdien af skalattributter og positionsparametre, eller vis navne "
+"og\n"
+" værdier af skalvariable.\n"
+"\n"
+" Tilvalg:\n"
+" -a Marker variable som er ændret eller oprettet til eksport.\n"
+" -b Underret om jobafslutning øjeblikkeligt.\n"
+" -e Afslut øjeblikkeligt hvis en kommando afslutter med en\n"
+" afslutningsstatus som ikke er nul.\n"
+" -f Slå filnavngenerering fra (globbing).\n"
+" -h Husk kommandoers positionen mens de slås op.\n"
+" -k Overfør alle opgavens argumenter til kommandoens miljø, ikke kun "
+"de\n"
+" som kommer før kommandonavnet.\n"
+" -m Slå jobkontrol til.\n"
+" -n Læs kommandoer men eksekver dem ikke.\n"
+" -o tilvalgsnavn\n"
+" Indstil variablen så den passer til tilvalgsnavn:\n"
+" allexport samme som -a\n"
+" braceexpand samme som -B\n"
+" emacs brug en linjeredigerings-grænseflade som i emacs\n"
+" errexit samme som -e\n"
+" errtrace samme som -E\n"
+" functrace samme som -T\n"
+" hashall samme som -h\n"
+" histexpand samme som -H\n"
+" history slå kommandohistorik til\n"
+" ignoreeof skallen vil ikke afslutte ved læsning af\n"
+" slut-på-fil (EOF)\n"
+" interactive-comments\n"
+" vis også kommentarerer ved interaktive "
+"kommandoer\n"
+" keyword samme som -k\n"
+" monitor samme som -m\n"
+" noclobber samme som -C\n"
+" noexec samme som -n\n"
+" noglob samme som -f\n"
+" nolog accepteres på nuværende tidspunkt men har ingen\n"
+" virkning\n"
+" notify samme som -b\n"
+" nounset samme som -u\n"
+" onecmd samme som -t\n"
+" physical samme som -P\n"
+" pipefail returværdien af en datakanal (pipeline) er\n"
+" status af den sidste kommando, som afsluttedes "
+"med en\n"
+" status som er forskellig fra nul, eller nul hvis\n"
+" ingen kommando afsluttedes med en status "
+"forskellig\n"
+" fra nul\n"
+" posix ændrer den måde bash opfører sig på de steder "
+"hvor\n"
+" opførslen afviger fra 1003.2-standarden således "
+"at\n"
+" standarden følges\n"
+" privileged samme som -p\n"
+" verbose samme som -v\n"
+" vi brug en linjeredigerings-grænseflade som i \"vi"
+"\"\n"
+" xtrace samme som -x\n"
+" -p Slået til når den reelle og den faktiske brugers id'er ikke er "
+"ens.\n"
+" Deaktiverer behandling af $ENV-filen og import af skalfunktioner.\n"
+" Deaktivering af denne valgmulighed vil sætte de faktiske\n"
+" uid og gid til de reelle uid og gid.\n"
+" -t Afslut efter af have læst og eksekveret en kommando.\n"
+" -u Behandl afinitialiserede (unset) variable som en fejl ved "
+"substitution.\n"
+" -v Udskriv skal-inputlinjer når de læses.\n"
+" -x Udskriv kommandoer og deres argumenter når de eksekveres.\n"
+" -B Lad skallen udføre klammeudvidelse\n"
+" -C Med dette tilvalg vil det ikke tillades at eksisterende regulære "
+"filer\n"
+" overskrives pga. videreførsel af output.\n"
+" -E Med dette tilvalg vil ERR-fælden (trap) arves af skalfunktioner.\n"
+" -H Aktiver !-stilhistoriksubstitution. Dette flag er aktiveret som\n"
+" standard, når skallen er interaktiv.\n"
+" -P Med dette tilvalg følges symbolske lænker ikke ved eksekvering af\n"
+" kommandoer, som f.eks. cd, der ændrer den aktuelle mappe.\n"
+" -T Med dette tilvalg vil DEBUG-fælden (trap) arves af "
+"skalfunktioner.\n"
+" - Tildel alle tilbageblevne argumenter til positionsparametrene.\n"
+" Tilvalgene -x og -v er slået fra.\n"
+" \n"
+" Bruges + i stedet for - vil disse flag blive slået fra. Flagene kan "
+"også\n"
+" bruges ved kald af skallen. Flagene det aktuelt er i brug kan findes i "
+"$-.\n"
+" De tilbageblevne n ARGer er positionsparametre og vil blive tildelt i "
+"række-\n"
+" følge til $1, $2, .. $n. Hvis der ikke angives nogen ARGer, vil alle "
+"skal-\n"
+" variable blive udskrevet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg."
+
+#: builtins.c:1126
+#, fuzzy
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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 ""
+"Afinitialiserer (unset) værdier og attributter for skalvariable og "
+"funktioner.\n"
+" \n"
+" Fjerner den tilsvarende variabel eller funktion for hvert NAVN.\n"
+" \n"
+" Tilvalg:\n"
+" -f\tbehandl ethvert NAVN som en skalfunktion\n"
+" -v\tbehandl ethvert NAVN som en skalvariable\n"
+" \n"
+" Uden tilvalg vil unset først prøve at afinitialisere en variabel og "
+"hvis\n"
+" det mislykkes, vil den prøve med en funktion.\n"
+" \n"
+" Nogle variable kan ikke afinitialiseres; læs under \"readonly\".\n"
+" \n"
+" Afslutningstatus:\n"
+" Returnerer succes med mindre der gives et ugyldigt tilvalg eller hvis "
+"et\n"
+" givent navn er skrivebeskyttet."
+
+#: builtins.c:1148
+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 ""
+"Indstil eksportattributten for skalvariable.\n"
+" \n"
+" Marker hvert NAVN til automatisk eksport til miljøet for de kommandoer "
+"som\n"
+" eksekveres efterfølgende. Hvis VÆRDI er angivet, vil den blive tildelt\n"
+" variablen før eksportering.\n"
+" \n"
+" Tilvalg:\n"
+" -f\treferer til skalfunktioner\n"
+" -n\tfjern eksportegenskaben fra hvert NAVN\n"
+" -p\tvis en liste over alle eksporterede variable og funktioner\n"
+" \n"
+" Argumentet \"--\" slår al efterfølgende behandling fra.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
+" NAVN er ugyldig."
+
+#: builtins.c:1167
+#, fuzzy
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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 ""
+"Marker skalvariable som skrivebeskyttet.\n"
+" \n"
+" Marker hvert NAVN som skrivebeskyttet. Værdierne af disse navne kan\n"
+" herefter ikke ændres ved efterfølgende tildeling. Hvis VÆRDI angives, "
+"vil\n"
+" denne blive tildelt variablen, før den markeres som skrivebeskyttet.\n"
+" \n"
+" Tilvalg:\n"
+" -a\treferer til indekserede arrays\n"
+" -A\treferer til associative arrayvariable\n"
+" -f\treferer til skalfunktioner\n"
+" -p\tvis en liste af alle skrivebeskyttede variable og funktioner\n"
+" \n"
+" Argumentet \"--\" slår al efterfølgende fra.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
+" NAVN er ugyldigt."
+
+#: builtins.c:1189
+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 ""
+"Skift positionsparametre.\n"
+" \n"
+" Omdøb positionsparametrene $N+1,$N+2 ... til $1,$2 ... Hvis N ikke "
+"angives,\n"
+" antages værdien 1.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre N er negativ eller større end $#."
+
+#: builtins.c:1201 builtins.c:1216
+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 ""
+"Eksekver kommandoer fra en fil i den aktuelle skal.\n"
+" \n"
+" Læs og eksekver kommandoer fra FILNAVN i den aktuelle skal. Elementerne "
+"i\n"
+" $PATH bruges til at finde den mappe som FILNAVN ligger i. Hvis der "
+"angives\n"
+" ARGUMENTER, omdannes de til positionsparametre når FILNAVN eksekveres.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer status fra den sidst eksekverede kommando i FILNAVN; fejler "
+"hvis\n"
+" FILNAVN ikke kan læses."
+
+#: builtins.c:1232
+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 ""
+"Suspender skaleksekvering.\n"
+" \n"
+" Suspender eksekvering af denne skal indtil den modtager et SIGCONT-"
+"signal.\n"
+" Med mindre det gennemtvinges, kan en logindskal ikke suspenderes.\n"
+" \n"
+" Tilvalg:\n"
+" -f\tgennemtving suspendering selvom skallen er en logindskal\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre jobkontrol ikke er slået til, eller hvis "
+"der\n"
+" opstår en fejl."
+
+#: builtins.c:1248
+#, 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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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 ""
+"Evaluer betingelsesudtryk.\n"
+" \n"
+" Afslutter med status 0 (sand) eller 1 (falsk) afhængigt af evalueringen "
+"af\n"
+" UDTRYK. Udtrykket kan være unært eller binært. Unære udtryk bruges ofte "
+"til\n"
+" at undersøge filers status. Der findes også strengoperatorer såvel som\n"
+" operatorer til numeriske sammenligninger.\n"
+" \n"
+" Filoperatorer:\n"
+" \n"
+" -a FIL Sand hvis filen eksisterer.\n"
+" -b FIL Sand hvis filen er blokspeciel.\n"
+" -c FIL Sand hvis filen er tegnspecial.\n"
+" -d FIL Sand hvis filen er en mappe.\n"
+" -e FIL Sand hvis filen eksisterer.\n"
+" -f FIL Sand hvis filen eksisterer og er en regulær fil.\n"
+" -g FIL Sand hvis filen er sæt-gruppe-id.\n"
+" -h FIL Sand hvis filen er en symbolsk lænke.\n"
+" -L FIL Sand hvis filen er en symbolsk lænke.\n"
+" -k FIL Sand hvis filens klæbebit (sticky bit) er indstillet.\n"
+" -p FIL Sand hvis filen er en navngiven datakanal (pipe).\n"
+" -r FIL Sand hvis du kan læse filen.\n"
+" -s FIL Sand hvis filen eksisterer og ikke er tom.\n"
+" -S FIL Sand hvis filen er en sokkel.\n"
+" -t FD Sand hvis FD blev åbnet på en terminal.\n"
+" -u FIL Sand hvis filen er sæt-bruger-id.\n"
+" -w FIL Sand hvis du kan skrive til filen.\n"
+" -x FIL Sand hvis du kan eksekvere filen.\n"
+" -O FIL Sand hvis filen effektivt er ejet af dig.\n"
+" -G FIL Sand hvis filen effektivt er ejet af din gruppe.\n"
+" -N FIL Sand hvis filen er blevet ændret siden den sidst blev "
+"læst.\n"
+" \n"
+" FIL1 -nt FIL2 Sand hvis fil1 er nyere end fil2 (ifølge "
+"modificerings-\n"
+" datoen)\n"
+" \n"
+" FIL1 -ot FIL2 Sand hvis fil1 er ældre en fil2.\n"
+" \n"
+" FIL1 -ef FIL2 Sand hvis fil1 er en hård lænke til fil2.\n"
+" \n"
+" Strengoperatorer:\n"
+" \n"
+" -z STRENG Sand hvis strengen er tom.\n"
+" \n"
+" -n STRENG\n"
+" STRENG Sand hvis strengen ikke er tom.\n"
+" \n"
+" STRENG1 = STRENG2\n"
+" Sand hvis strengene er ens.\n"
+" STRENG1 != STRENG2\n"
+" Sand hvis strengene ikke er ens.\n"
+" STRENG1 < STRENG2\n"
+" Sand hvis STRENG1 sorteres før STRENG2 leksikografisk.\n"
+" STRENG1 > STRENG2\n"
+" Sand hvis STRENG1 sorteres efter STRENG2 "
+"leksikografisk.\n"
+" \n"
+" Andre operatorer:\n"
+" \n"
+" -o TILVALG Sand hvis skaltilvalget TILVALG er slået til.\n"
+" ! UDTRYK Sand hvis udtryk er falsk.\n"
+" UDTR1 -a UDTR2 Sand hvis både udtr1 og udtr2 er sande.\n"
+" UDTR1 -o UDTR2 Sand hvis enten udtr1 eller udtr2 er sand.\n"
+" \n"
+" arg1 OP arg2 Aritmetiske tests. OP er en af følgende: -eq, -ne,\n"
+" -lt, -le, -gt, eller -ge.\n"
+" \n"
+" Binære aritmetiske operatorer returnerer sand hvis ARG1 er henholdsvis "
+"lig,\n"
+" ikke-lig, mindre-end, mindre-end-eller-lig, større-end, større-end-eller-"
+"lig\n"
+" ARG2.\n"
+"\n"
+" Afslutningsstatus:\n"
+" Returnerer succes hvis UDTRYK evalueres til sand, og fejler hvis UDTRYK\n"
+" evalueres til falsk eller hvis der gives et ugyldigt argument."
+
+#: builtins.c:1329
+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 ""
+"Evaluer betingelsesudtryk.\n"
+" \n"
+" Dette er et synonym for den indbyggede funktion \"test\", dog skal det "
+"sidste\n"
+" argument skal være \"]\", for at den passer til den åbnende \"[\"."
+
+#: builtins.c:1338
+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 ""
+"Vis procestid.\n"
+" \n"
+" Udskriver den akkumulerede bruger- og systemtid for skallen og alle "
+"dens\n"
+" underprocesser.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Lykkes altid."
+
+#: builtins.c:1350
+#, 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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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 ""
+"Indfanger signaler og andre begivenheder.\n"
+" \n"
+" Definerer og aktiverer håndteringsenheder, som skal køres når skallen\n"
+" modtager signaler eller under andre omstændigheder.\n"
+" \n"
+" ARG er en kommando som skal læses og eksekveres, når skallen modtager\n"
+" signalet SIGNAL_SPEC. Hvis ARG ikke er angivet (og hvis der angives en\n"
+" enkelt SIGNAL_SPEC) eller \"-\", vil hvert angivet signal blive "
+"nulstillet\n"
+" til dets oprindelige værdi. Hvis ARG er null-strengen, vil hvert\n"
+" SIGNAL_SPEC bliver ignoreret af skallen og af de kommandoer som den\n"
+" starter.\n"
+" \n"
+" Hvis en SIGNAL_SPEC er EXIT (0), vil ARG blive eksekveret ved "
+"afslutning\n"
+" af skallen. Hvis SIGNAL_SPEC er DEBUG, vil ARG blive eksekveret før "
+"hver\n"
+" simpel kommando.\n"
+" \n"
+" Hvis der ikke er angivet nogen argumenter, vil trap udskrive en liste "
+"af\n"
+" kommandoer som er associeret med hvert signal.\n"
+" \n"
+" Tilvalg:\n"
+" -l\tudskriver en liste af signalnavne og deres tilhørende numre\n"
+" -p\tvis de trap-kommandoer som er associeret med hvert SIGNAL_SPEC\n"
+" \n"
+" Hver SIGNAL_SPEC er enten et signalnavn i <signal.h> eller et signal-\n"
+" nummer. Signalnavne er ikke versalfølsomme og præfikset SIG er "
+"valgfrit.\n"
+" Et signal kan sendes til skallen med \"kill -signal $$\".\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre SIGSPEC er ugyldig eller hvis der er "
+"angivet\n"
+" et ugyldigt tilvalg."
+
+#: builtins.c:1386
+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 ""
+"Vis information om kommandoers type.\n"
+" \n"
+" Oplys for hvert NAVN, hvordan det ville blive tolket, hvis det blev "
+"brugt\n"
+" som en kommando.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tvis alle placeringer som indeholder en eksekverbar ved navn NAVN;\n"
+" \tinkluder aliasser, indbyggede og funktioner, hvis og kun hvis "
+"tilvalget\n"
+" \t\"-p\" ikke også bruges\n"
+" -f\tundertryk søgning efter skalfunktioner\n"
+" -P\tgennemtving en stisøgning for hvert NAVN, selvom det er et\n"
+" \talias, en indbygget eller en funktion og returner samme navne som den\n"
+" \tdiskfil der ville blive eksekveret\n"
+" -p\treturnerer enten navnet på den diskfil, som ville blive\n"
+" \teksekveret, eller ingenting hvis \"type -t NAVN\" ikke ville have\n"
+" \treturneret \"file\".\n"
+" -t\treturner et enkelt ord, enten \"alias\", \"keyword\", \"function"
+"\",\n"
+" \t\"builtin\", \"file\" eller \"\", hvis NAVN er henholdsvis et alias,\n"
+" skalreserveret ord, skalfunktion, skalindbygget, diskfil eller ikke "
+"blev\n"
+" fundet.\n"
+" \n"
+" Argumenter:\n"
+" NAVN\tNavnet på den kommando der skal fortolkes.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes hvis alle NAVNe kan findes, og fejler hvis bare et "
+"enkelt\n"
+" ikke findes."
+
+#: builtins.c:1417
+#, 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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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 ""
+"Modificer grænser for skalressourcer.\n"
+" \n"
+" Giver kontrol over de ressourcer som er tilgængelige for skallen og de\n"
+" processer den starter på systemer som tillader den slags kontrol.\n"
+" \n"
+" Tilvalg:\n"
+" -S\tbrug den \"bløde\" ressourcegrænse\n"
+" -H\tbrug den \"hårde\" ressourcegrænse\n"
+" -a\talle aktuelle grænser rapporteres\n"
+" -b\tstørrelse af sokkelbuffer\n"
+" -c\tmaksimale størrelse af oprettede kernefiler\n"
+" -d\tmaksimale størrelse af en proces' datasegment\n"
+" -e\tmaksimale planlægningsprioritet (`nice')\n"
+" -f\tmaksimale størrelse af filer skrevet af skallen og dens\n"
+" \tunderprocesser\n"
+" -i\tmaksimale antal af ventende signaler\n"
+" -l\tmaksimale størrelse en proces må låse i hukommelse\n"
+" -m\tmaksimale indstillede område (resident size)\n"
+" -n\tmaksimale antal åbne fildeskriptorer\n"
+" -p\tbufferstørrelse for datakanal (pipe)\n"
+" -q\tmaksimale antal bytes i POSIX-beskedkøer\n"
+" -r\tmaksimale realtids-planlægningsprioritet\n"
+" -s\tmaksimal stakstørrelse\n"
+" -t\tmaksimale mængde cpu-tid i sekunder\n"
+" -u\tmaksimale antal brugerprocesser\n"
+" -v\tstørrelsen af virtuel hukommelse\n"
+" -x\tmaksimale antal fillåse\n"
+" \n"
+" Hvis GRÆNSE angives, er det den nye grænse for den specificerede "
+"ressource\n"
+" De specielle grænser, \"soft\", hard\" og \"unlimited\" står for "
+"henholdsvis den\n"
+" aktuelle bløde grænse, hårde grænse og ingen grænse. Ellers vil den\n"
+" aktuelle grænse for den specificerede ressource blive udskrevet. Hvis "
+"der\n"
+" ikke angives noget tilvalg, antages \"-f\".\n"
+" \n"
+" Værdier angives i forøgelser af 1024 bytes, bortset fra -t som er i "
+"sekunder,\n"
+" -p som er i forøgelser af 512 bytes og -u som er et uskaleret antal af\n"
+" processer.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis "
+"der\n"
+" opstår en fejl."
+
+#: builtins.c:1465
+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 ""
+"Vis eller indstil filmasketilstand.\n"
+" \n"
+" Indstiller brugeres filoprettelsesmaske til TILSTAND. Hvis TILSTAND "
+"udelades,\n"
+" udskrives den nuværende værdi af masken.\n"
+" \n"
+" Hvis TILSTAND begynder med et ciffer, bliver det fortolket som et "
+"oktalt\n"
+" tal, ellers er det en symbolsk tilstandsstreng, ligesom dem der angives\n"
+" til chmod(1).\n"
+" \n"
+" Tilvalg:\n"
+" -p\thvis TILSTAND udelades, udskrives der i en form der kan bruges\n"
+" \tsom input\n"
+" -S\tgør outputtet symbolsk, eller vil output være et oktalt tal\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre TILSTAND er ugyldig, eller hvis et "
+"ugyldigt\n"
+" tilvalg angives."
+
+#: builtins.c:1485
+#, fuzzy
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"Vent på færdiggørelse af job og returner afslutningsstatus.\n"
+" \n"
+" Venter på processen ID. ID kan enten være et proces-id eller en job-\n"
+" specifikation, og rapporterer dets afslutningstatus. Hvis ID ikke "
+"angives\n"
+" ventes på alle aktuelle underprocesser og afslutningsstatussen vil være "
+"0.\n"
+" Hvis ID er en jobspecifikation ventes på alle processer i dette jobs\n"
+" datakanal (pipe).\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer status af ID, fejler hvis ID er ugyldigt eller hvis der "
+"angives\n"
+" et ugyldigt tilvalg."
+
+#: builtins.c:1506
+#, fuzzy
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"Venter på færdiggørelse af proces og returnerer dens afslutningsstatus.\n"
+" \n"
+" Venter på den angivne proces og rapporterer dens afslutningsstatus. "
+"Hvis\n"
+" der ikke angives noget PID ventes på alle aktuelle underprocesser og\n"
+" afslutningsstatussen er 0. PID skal være et proces-id.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen for ID, fejler hvis ID er ugyldig eller hvis der\n"
+" angives et ugyldigt tilvalg."
+
+#: builtins.c:1521
+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 ""
+"Eksekver kommandoer hvor hvert element i en liste.\n"
+" \n"
+" \"for\"-løkken eksekverer en sekvens af kommandoer for hvert element i "
+"en\n"
+" angivet liste af elementer. Hvis \"in ORD ...;\" ikke er tilstede, så "
+"antages\n"
+" \"in \"$@\"\". For hvert element i ORD, vil NAVN blive sat til det "
+"element og\n"
+" KOMMANDOER vil blive eksekveret.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen for den sidst eksekverede kommando."
+
+#: builtins.c:1535
+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-løkke.\n"
+" \n"
+" Ækvivalent til\n"
+" \t(( UDTRYK ))\n"
+" \twhile (( UDTRYK )); do\n"
+" \t\tKOMMANDOER\n"
+" \t\t(( UDTRYK3 ))\n"
+" \tdone\n"
+" UDTRYK1, UDTRYK2 og UDTRYK3 er aritmetisk udtryk. Hvis et af udtrykkene\n"
+" mangler, vil resultatet være som om det evalueredes til 1.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for den sidst eksekverede kommando."
+
+#: builtins.c:1553
+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ælg ord fra en liste og eksekver kommandoer.\n"
+" \n"
+" ORD vil blive udvidet, således at der genereres en liste af ord. Denne\n"
+" liste af udvidede ord vil blive skrevet til standardfejl, hvert af dem\n"
+" med at nummer hæftet foran. Hvis \"in ORD\" ikke er angivet, antages "
+"\"in $@\".\n"
+" Derefter vil en PS3-prompt blive vist og der vil blive læst en linje "
+"fra\n"
+" standardinput. Hvis linje består af et tal, som svarer til et af de\n"
+" viste ord, så vil NAVN blive sat til det ord. Hvis linjen er tom, vil "
+"ORD\n"
+" og prompten blive vist igen. Hvis EOF bliver læst afsluttes kommandoen.\n"
+" Hvis der læses en hvilken som helst anden værdi, vil NAVN blive sat til\n"
+" null. Den læste linje vil bliver gemt i variablen REPLY. KOMMANDOER vil\n"
+" blive eksekveret efter hvert valg indtil en break-kommando eksekveres.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1574
+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 ""
+"Rapporterer tid brugt ved en datakanals (pipe) eksekvering.\n"
+" \n"
+" Eksekverer DATAKANAL og udskriv den brugte realtid, bruger-CPU-tid\n"
+" og system-CPU-tid, når den er færdig.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tudskriver timingssammendrag i det flytbare (portable)\n"
+" POSIX-format\n"
+" \n"
+" Værdien af variablen TIMEFORMAT bruges som outputformatet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatus er afslutningsstatus for DATAKANAL."
+
+#: builtins.c:1591
+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 ""
+"Eksekver kommandoer baseret på mønstersammenligning.\n"
+" \n"
+" Eksekver selektivt KOMMANDOER når ORD passer til MØNSTER. \"|\" bruges "
+"til at\n"
+" adskille flere mønstre.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1603
+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 ""
+"Eksekverer kommandoer baseret på betingelse.\n"
+" \n"
+" Listen \"if KOMMANDOER\" bliver eksekveret. Hvis dens afslutningsstatus "
+"er\n"
+" nul, så vil listen \"then KOMMANDOER\" blive eksekveret. Ellers vil "
+"hver\n"
+" \"elif KOMMANDOER\"-liste blive eksekveret og hvis de returnerer nul "
+"vil\n"
+" deres tilhørende \"then KOMMANDER\"-liste blive eksekveret og if-"
+"kommandoen\n"
+" fuldføres. Ellers vil \"else KOMMANDOER\"-listen blive eksekveret, hvis "
+"en\n"
+" sådan findes. Afslutningsstatus for hele strukturen er afslutnings-\n"
+" statussen for den sidste kommando, eller nul hvis ingen betingelse var\n"
+" sand.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1620
+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 ""
+"Eksekver kommandoer så længe en test evaluerer til sad.\n"
+" \n"
+" Udvid og eksekver KOMMANDOER så længe den sidste kommando i \"while\"\n"
+" KOMMANDOER har en afslutningsstatus på nul.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1632
+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 ""
+"Eksekver kommandoer så længe en test ikke evaluerer til falsk.\n"
+" \n"
+" Udvid og eksekver KOMMANDOER så længe den sidste kommando i \"untill\"\n"
+" KOMMANDOER har en afslutningsstatus som ikke er nul.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Opret en coproces ved navn NAVN.\n"
+" \n"
+" Eksekver KOMMANDO asynkront, med standardoutput og standardinput\n"
+" for kommandoen forbundet via en datakanal (pipe), til fildeskriptorerne\n"
+" tildelt til indeks 0 og 1 i en arrayvariabel NAVN i den eksekverende "
+"skal.\n"
+" Standardnavnet NAVN er \"COPROC\".\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for KOMMANDO."
+
+#: builtins.c:1658
+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 ""
+"Definer skalfunktion.\n"
+" \n"
+" Opret en skalfunktion ved navn NAVN. Når den køres som en simpel "
+"kommando,\n"
+" NAVN kører KOMMANDOer i den kaldende skals kontekst. Når NAVN kaldes, "
+"bliver\n"
+" argumenter sendt videre som $1..$n, og funktionens navn som $FUNCNAME.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre NAVN er skrivebeskyttet."
+
+#: builtins.c:1672
+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 ""
+"Grupper kommandoer som en enhed.\n"
+" \n"
+" Kør et sæt af kommandoer i en gruppe. Dette er en måde at videresende\n"
+" et sæt af kommandoer på.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1684
+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 ""
+"Genoptag job i forgrunden.\n"
+" \n"
+" Ækvivalent til JOB_SPEC-argumentet til \"fg\"-kommandoen. Genoptag et "
+"stoppet\n"
+" job eller et job som ligger i baggrunden. JOB_SPEC kan specificere enten "
+"et\n"
+" jobnavn eller et jobnummer. Hvis JOB_SPEC efterfølges af en \"&\", vil "
+"jobbet\n"
+" blive placeret i baggrunden, som om jobspecifikationen var givet som et\n"
+" argument til \"bg\".\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen af det genoptagede job."
+
+#: builtins.c:1699
+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 ""
+"Evaluer aritmetisk udtryk.\n"
+" \n"
+" UDTRYK evalueres ifølge reglerne for aritmetisk evaluering. Ækvivalent "
+"til\n"
+" \"let UDTRYK\".\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 1 hvis udtrykket evalueres til 0, ellers returneres 0."
+
+#: builtins.c:1711
+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 ""
+"Eksekver betingelseskommando.\n"
+" \n"
+" Returnerer status 0 eller 1 afhængigt af evalueringen af betingelses-\n"
+" udtrykket UDTRYK. Udtryk består af de samme primære elementer som "
+"bliver\n"
+" brugt i den indbyggede funktion \"test\" og kan kombineres ved brug af "
+"følgende\n"
+" operatorer:\n"
+" \n"
+" ( UDTRYK )\tReturnerer værdien af UDTRYK\n"
+" ! UDTRYK\t\tSand hvis UDTRYK er falsk, ellers falsk\n"
+" UDTR1 && UDTR2\tSand hvis både UDTR1 og UDTR2 er sande, ellers falsk\n"
+" UDTR1 && UDTR2\tSand hvis enten UDTR1 eller UDTR2 er sand, ellers "
+"falsk\n"
+" \n"
+" Når operatorerne \"==\" og \"!=\" bruges, vil strengen til højre for "
+"operatoren\n"
+" blive brugt som et mønster og der vil blive udført strengmatching. Når\n"
+" operatoren \"=~\" bliver brugt, vil strengen til højre for operatoren "
+"blive\n"
+" matchet som et regulært udtryk.\n"
+" \n"
+" Operatorerne && og || vil ikke evaluere UDTR2, hvis UDTR1 er nok til at\n"
+" afgøre udtrykkets værdi.\n"
+"\n"
+" Afslutningsstatus:\n"
+" 0 eller 1 afhængigt af udtrykkets værdi."
+
+#: builtins.c:1737
+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 ""
+"Navnene på almindelige skalvariable og deres brug.\n"
+" \n"
+" BASH_VERSION\tVersionsinformation for denne Bash.\n"
+" CDPATH\tEn kolonsepareret liste af mapper som kan gennemsøges for at\n"
+" \t\tfinde mapper som er givet som argument til cd.\n"
+" GLOBIGNORE\tEn kolonsepareret liste af mønstre som beskriver filnavne "
+"som\n"
+" \t\tskal ignoreres ved stinavnsudvidelse.\n"
+" HISTFILE\tNavnet på den fil hvori din kommandohistorik gemmes.\n"
+" HISTFILESIZE\tDet maksimale antal linjer denne fil kan indeholde.\n"
+" HISTSIZE\tDet maksimale antal linjer som en kørende skal kan tilgå.\n"
+" HOME\tDet komplette stinavn til din logindmappe.\n"
+" HOSTNAME\tNavnet på den aktuelle vært.\n"
+" HOSTTYPE\tDen type af CPU som denne version af Bash kører under.\n"
+" IGNOREEOF\tKontrollerer skallens handlinger hvis den modtager et EOF-"
+"tegn\n"
+" \t\tsom eneste input. Hvis den er indstillet, angiver den det antal\n"
+" \t\tEOF-tegn som skal følge lige efter hinanden på en tom linje,\n"
+" \t\tfør skallen afslutter (standardværdien er 10). Hvis den ikke er\n"
+" indstillet vil EOF betyde slutningen af input.\n"
+" MACHTYPE\tEn streng som beskriver det aktuelle system som Bash kører "
+"på.\n"
+" MAILCHECK\tHvor ofte Bash tjekker for ny post, i sekunder.\n"
+" MAILPATH\tEn kolonsepareret liste af filnavne som Bash tjekker for ny\n"
+" \t\tpost.\n"
+" OSTYPE\tDen version af Unix som denne version af Bash kører på.\n"
+" PATH\tEn kolonsepareret liste af mapper som der søges i efter "
+"kommandoer.\n"
+" PROMPT_COMMAND\tEn kommando som skal eksekveres før hver primære prompt\n"
+" \t\tudskrives.\n"
+" PS1\t\tStreng for den primære prompt.\n"
+" PS2\t\tStreng for den sekundære prompt.\n"
+" PWD\t\tDet fulde stinavn for den aktuelle mappe.\n"
+" SHELLOPTS\tEn kolonsepareret liste af aktiverede skaltilvalg.\n"
+" TERM\tNavnet på den aktuelle skaltype.\n"
+" TIMEFORMAT\tOutputformatet for timingstatistik som vises ved hjælp af "
+"det\n"
+" \t\treserverede ord \"time\".\n"
+" auto_resume\tIkke-null betyder at for et kommandoord, som optræder for "
+"sig selv\n"
+" \t\tpå en linje, vil der først blive kigget efter det i listen over\n"
+" \t\taktuelt stoppede jobs. Hvis det findes der, vil dette job blive\n"
+" bragt i forgrunden. Værdien \"exact\" betyder at "
+"kommandoordet\n"
+" skal matche et ord fra listen over stoppede jobs præcist.\n"
+" Værdien \"substring\" betyder at kommandoordet skal matche "
+"en\n"
+" delstreng af jobbet. Enhver anden værdi betyder at "
+"kommandoen\n"
+" skal være et præfiks for et stoppet job.\n"
+" histchars\tTegn som kontrollerer historikudvidelse og hurtig "
+"substitution\n"
+" \t\ti historik. Det første tegn er historik-substitutionstegnet, som\n"
+" regel \"!\". Det andet tegn er hurtigsubstitutionstegnet, "
+"som\n"
+" \t\tregel \"^\". Det tredje tegn er historik-kommentartegnet, som\n"
+" \t\tregel \"#\".\n"
+" HISTIGNORE\tEn kolonsepareret liste af mønstre som bliver brugt til at\n"
+" \t\tbestemme hvilke kommandoer der skal gemmes i historikken.\n"
+
+#: builtins.c:1794
+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 ""
+"Tilføjer mapper til stakken.\n"
+" \n"
+" Tilføjer en mappe til toppen af stakken, eller roterer stakken, således\n"
+" at den nye top af stakken bliver den aktuelle mappe. Uden argumenter\n"
+" ombyttes de to øverste mapper.\n"
+" \n"
+" Tilvalg:\n"
+" -n\tUndertrykker det mappeskift der normalt følger med tilføjelse\n"
+" \taf mapper til stakken, således at kun stakken ændres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tRoterer stakken således at den N'te mappe (talt fra venstre i\n"
+" \tlisten som vises af \"dirs\", startende med nul) vil blive placeret i\n"
+" \ttoppen.\n"
+" \n"
+" -N\tRoterer stakken således at den N'te mappe (talt fra højre i\n"
+" \tlisten som vises af \"dirs\", startende med nul) vil blive placeret i\n"
+" \ttoppen.\n"
+" \n"
+" mappe\tTilføjer MAPPE til toppen af mappestakken, således at den\n"
+" \tbliver den aktuelle mappe.\n"
+" \n"
+" Den indbyggede \"dirs\" viser mappestakken.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" mappeskiftet mislykkes."
+
+#: builtins.c:1828
+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 ""
+"Fjerner mapper fra stakken.\n"
+" \n"
+" Fjerner en mappe fra stakken. Uden argumenter fjernes den øverste mappe "
+"fra\n"
+" stakken og der skiftes til den nye aktuelle mappe.\n"
+" \n"
+" Tilvalg:\n"
+" -n\tUndertrykker det mappeskift der normalt følger med fjernelse\n"
+" \taf mapper fra stakken, således at kun stakken ændres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tFjerner den N'te mappe, talt fra venstre i listen som vises af\n"
+" \t\"dirs\", startende med nul. F.eks: vil \"popd +0\" fjerne den første "
+"mappe\n"
+" \tog \"popd +1\" den anden.\n"
+" \n"
+" -N\tFjerner den N'te mappe, talt fra højre i listen som vises af\n"
+" \t\"dirs\", startende med nul. F.eks: vil \"popd -0\" fjerne den sidste "
+"mappe\n"
+" \tog \"popd -1\" den andensidste.\n"
+" \n"
+" Den indbyggede \"dirs\" viser mappestakken.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" mappeskiftet mislykkes."
+
+#: builtins.c:1858
+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 ""
+"Vis mappestakken.\n"
+" \n"
+" Vis listen af huskede mapper. Mapper tilføjes denne liste ved hjælp\n"
+" af \"pushd\"-kommandoen. Du kan komme tilbage gennem listen med \"popd"
+"\"-\n"
+" kommandoen.\n"
+" \n"
+" Tilvalg:\n"
+" -c\tryd mappestakken ved at slette alle dens elementer\n"
+" -l\tudskriv ikke mapper relativt til din hjemmemappe med et\n"
+" foranstillet tildetegn\n"
+" -p\tudskriv mappestakken med et element per linje\n"
+" -v\tudskriv mappestakken med et element per linje, med dets\n"
+" \tposition i stakken foranstillet\n"
+" \n"
+" Argumenter:\n"
+" +N\tViser det N'te element, talt fra venstre i listen som den vises\n"
+" af \"dirs\" kørt uden argumenter, talt fra nul.\n"
+" -N\tViser det N'te element, talt fra højre i listen som den vises af\n"
+" \t\"dirs\" kørt uden argumenter, talt fra nul.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis "
+"der\n"
+" opstår en fejl."
+
+#: builtins.c:1887
+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 ""
+"Indstil og afindstil (unset) skalvariable.\n"
+" \n"
+" Ændr indstillinger for hver skalvariabel INDSTNAVN. Uden argumenter "
+"vises\n"
+" en liste af skalvariable, sammen med information om hvorvidt de er\n"
+" indstillet.\n"
+" \n"
+" Tilvalg:\n"
+" -o\tbegræns INDSTNAVN til dem som er defineret til brug med \"set -o"
+"\"\n"
+" -p\tudskriv alle skalvariable sammen med en indikation af deres\n"
+" \tstatus\n"
+" -q\tundertryk output\n"
+" -s\taktiver (set) hvert INDSTNAVN\n"
+" -u\tdeaktiver (unset) hvert INDSTNAVN\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes hvis INDSTNAVN er aktiveret; fejler hvis der angives "
+"et\n"
+" ugyldigt tilvalg eller hvis INDSTNAVN er deaktiveret."
+
+#: builtins.c:1908
+#, 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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+"Formaterer og udskriver ARGUMENTER formateret efter FORMAT.\n"
+" \n"
+" Tilvalg:\n"
+" -v var\tsend output til skalvariablen VAR i stedet for at vise det "
+"via\n"
+" \t\tstandardoutput\n"
+" \n"
+" FORMAT er en tegnstreng som indeholder 3 typer af objekter: Almindelige "
+"tegn,\n"
+" som kopieres til standardoutput som de er; undvigetegn, som konverteres "
+"og\n"
+" kopieres til standardoutput; og formatspecifikationer, som hver især "
+"fører\n"
+" til udskrivningen af det næste argument.\n"
+" \n"
+" Ud over de standardformatspecifikationer som er beskrevet i printf(1) "
+"og\n"
+" printf(3), fortolker printf også følgende:\n"
+" \n"
+" %b\tudvid undvigesekvenser med omvendt skråstreg i det tilsvarende\n"
+" \targument\n"
+" %q\tciter argumenter på en måde så de kan genbruges som skalinput\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" der opstår en skrive- eller tildelingsfejl."
+
+#: builtins.c:1942
+#, fuzzy
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Specificer hvordan argumenter fuldføres af Readline.\n"
+" \n"
+" Specificer hvordan argumenter skal fuldføres for hvert NAVN. Hvis der\n"
+" ikke er angivet nogen tilvalg, vil de eksisterende fuldførsels-\n"
+" specifikationer blive udskrevet på en form der tillader dem at blive\n"
+" genbrugt som input.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tudskriv eksisterende fuldførselsspecifikationer i et format\n"
+" \tsom kan genbruges\n"
+" -r\tfjern en fuldførselsspecifikation for hvert NAVN, eller,\n"
+" \thvis der ikke er angivet nogle NAVNe, alle fuldførselsspecifikationer\n"
+" \n"
+" Når fuldførsel forsøges, vil handlinger blive anvendt i den rækkefølge,\n"
+" som de tilvalg som har store bogstaver, står i.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:1970
+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 ""
+"Vis mulige fuldførsler afhængigt af indstillingerne.\n"
+" \n"
+" Beregnet til brug i skalfunktioner som genererer de mulige "
+"fuldførelser.\n"
+" Hvis det valgfrie ORD angives, vil der blive genereret fuldførsler som\n"
+" matcher ORD.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" der opstår en fejl."
+
+# Fejlrapport
+#: builtins.c:1985
+#, 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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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 ""
+"Ændr eller vis indstillinger for fuldførsel.\n"
+" \n"
+" Ændr fuldførselsindstillinger for hvert NAVN, eller, hvis der ikke er\n"
+" angivet nogle NAVNe, fuldførslen der bliver eksekveret nu. Hvis der "
+"ikke\n"
+" er angivet nogle tilvalg, vil fuldførslen for hvert navn eller den\n"
+" aktuelle fuldførsel blive udskrevet.\n"
+" \n"
+" Tilvalg:\n"
+" \t-o indstilling\tIndstil fuldførselsindstillingen INDSTILLING for\n"
+" \t\t\thvert NAVN.\n"
+" Ved brug af \"+o\" i stedet for \"-o\" vil den specificerede indstilling "
+"blive\n"
+" slået fra.\n"
+" \n"
+" Argumenter:\n"
+" \n"
+" Hvert NAVN refererer til en kommando, for hvilken der tidligere er "
+"blevet\n"
+" angivet en fuldførselsspecifikation med den indbyggede \"complete\". "
+"Hvis\n"
+" der ikke er angivet nogle NAVNe, så skal compopt kaldes af den funktion "
+"som\n"
+" genererer fuldførsler nu og så vil indstillingerne for den aktuelt\n"
+" kørende fuldførselsgenerator blive modificeret.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
+" der ikke er defineret en fuldførselsspecifikation for NAVN."
+
+#: builtins.c:2015
+#, fuzzy
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+"Læs linjer ind i en arrayvariabel fra standardinput.\n"
+" \n"
+" Læs linjer ind i en arrayvariabel ARRAY fra standardinput, eller fra en\n"
+" fildeskriptor FD, hvis tilvalget -u er givet. Variablen MAPFIL er "
+"forvalgt\n"
+" som ARRAY.\n"
+" \n"
+" Tilvalg:\n"
+" -n antal\tKopier højst ANTAL linjer. Hvis ANTAL er 0 kopieres alle "
+"linjer.\n"
+" -O start\tBegynd at skrive til ARRAY ved indeks START. Standardværdien "
+"er\n"
+" \t0.\n"
+" -s antal\tSmid de første ANTAL læste linjer væk.\n"
+" -t \tFjern et efterfølgende nylinjetegn fra slutningen af hver linje.\n"
+" -u fd\tLæs linjer fra fildeskriptoren FD i stedet for fra standard-\n"
+" \t\tinput.\n"
+" -C tilbagekald\tEvaluer TILBAGEKALD hver gang KVANTUM linjer er læst.\n"
+" -c kvantum\tSpecificer antallet af linjer imellem hvert kald til\n"
+" \t\t\tTILBAGEKALD\n"
+" \n"
+" Argumenter:\n"
+" ARRAY\t\tNavn for arrayvariabel som skal bruges til fildata.\n"
+" \n"
+" Hvis -C er angivet uden -c er standardkvantum 5000. NÃ¥r TILBAGEKALD\n"
+" kaldes, vil den få det næste arrayindeks, som vil blive brugt som et "
+"ekstra\n"
+" argument.\n"
+" \n"
+" Med mindre et startpunkt i arrayet eksplicit angives, vil mapfile rydde\n"
+" ARRAY, inden skrivning til den påbegyndes.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives at ugyldigt tilvalg, eller "
+"hvis\n"
+" ARRAY er skrivebeskyttet."
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Læs linjer fra en fil ind i en arrayvariabel.\n"
+" \n"
+" Et synonym for \"mapfile\"."
+
+#, fuzzy
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Ophavsret (C) 2009 Free Software Foundation, Inc."
+
+#, fuzzy
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
+#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+#~ msgstr "xrealloc: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#~ msgid "xrealloc: cannot allocate %lu bytes"
+#~ msgstr "xrealloc: kan ikke allokere %lu bytes"
+
+#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
+#~ msgstr ""
+#~ "xrealloc: %s:%d: kan ikke reallokere %lu bytes (%lu bytes allokeret)"
diff --git a/po/de.gmo b/po/de.gmo
index 61eb8bcc..c381b93a 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5e97c333..0d280400 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,107 +1,123 @@
-# German language file for GNU Bash 4.1
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# German language file for GNU Bash 4.3
+# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Nils Naumann <nnau@gmx.net>, 1996, 2009, 2010.
+# Nils Naumann <nau@gmx.net>, 1996-2013.
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-05-18 20:21+0200\n"
-"Last-Translator: Nils Naumann <nnau@gmx.net>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-02 18:23+0100\n"
+"Last-Translator: Nils Naumann <nau@gmx.net>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "Falscher Feldbezeichner."
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: Kann nicht das indizierte in ein assoziatives Array umwandeln."
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: Ungültiger Schlüssel für das assoziative Array."
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen."
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
"%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays "
"benötigt."
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: Kann die Datei %s nicht erzeugen."
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando "
"finden."
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
-msgstr " %s: Das erste nicht Leerzeichen ist nicht `\\'."
+msgstr " %s: Das erste Zeichen ist nicht `\\'."
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "fehlende schließende `%c' in %s."
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: Fehlender Doppelpunkt."
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "`%s': Ungültiger Alias Name."
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "Zeileneditierung ist nicht aktiviert."
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "`%s': Ungültiger KEYMAP Name."
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: Nicht lesbar: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "`%s': Bindung kann nicht gelöst werden."
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "%s: Unbekannter Funktionsname."
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s ist keiner Taste zugeordnet.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s kann aufgerufen werden durch "
@@ -115,18 +131,22 @@ msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "nur in einer `for', `while' oder `until' Schleife sinnvoll."
# Problem mit Extraktion des Strings
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME ist nicht zugewiesen."
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "Zu viele Argumente."
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD ist nicht zugewiesen."
@@ -136,7 +156,7 @@ msgstr "OLDPWD ist nicht zugewiesen."
msgid "line %d: "
msgstr "Zeile %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "Warnung: "
@@ -146,11 +166,7 @@ msgstr "Warnung: "
msgid "%s: usage: "
msgstr "%s: Gebrauch: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "Zu viele Argumente."
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: Ein numerischer Paremeter ist erforderlich."
@@ -165,7 +181,7 @@ msgstr "%s: Ein numerischer Parameter ist erforderlich."
msgid "%s: not found"
msgstr "%s: Nicht gefunden."
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: Ungültige Option"
@@ -175,7 +191,7 @@ msgstr "%s: Ungültige Option"
msgid "%s: invalid option name"
msgstr "%s: Ungültiger Optionsname."
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': Ist kein gültiger Bezeichner."
@@ -188,7 +204,7 @@ msgstr "Ungültige Oktalzahl."
msgid "invalid hex number"
msgstr "Ungültige hexadezimale Zahl."
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "Ungültige Zahl."
@@ -202,7 +218,7 @@ msgstr "%s: Ungültige Signalbezeichnung."
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung."
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: Schreibgeschützte Variable."
@@ -267,55 +283,65 @@ msgstr "Fehler beim Ermitteln der Terminalattribute: %s"
#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n"
+msgstr "%s: Kann das aktuelle Verzeichnis nicht wiederfinden: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
msgstr "%s: Mehrdeutige Job Bezeichnung."
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: Ungültige Methode."
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: Keine Komplettierung angegeben."
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern."
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern."
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "Gegenwärtig wird keine Komplettierungsfunktion ausgeführt."
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "kann nur innerhalb einer Funktion benutzt werden."
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "Mit `-f' können keine Funktionen erzeugt werden."
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: Schreibgeschützte Funktion."
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen."
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -345,24 +371,23 @@ msgstr "%s: Ist nicht dynamisch geladen."
msgid "%s: cannot delete: %s"
msgstr "%s: Kann nicht löschen: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: ist ein Verzeichnis."
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: Ist keine normale Datei."
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: Die Datei ist zu groß."
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: Kann die Datei nicht ausführen."
@@ -379,7 +404,7 @@ msgstr "Abgemeldet\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
-msgstr "Keine Login Shell: Mit exit abmelden."
+msgstr "Keine Login Shell: Mit `exit' abmelden!"
#: builtins/exit.def:120
#, c-format
@@ -395,11 +420,11 @@ msgstr "Es gibt noch laufende Prozesse.\n"
msgid "no command found"
msgstr "Kein Kommando gefunden."
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: Kann die tempräre Datei nicht öffnen: %s"
@@ -444,7 +469,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Shell Kommandos auf die das Schlüsselwort zutrifft `"
msgstr[1] "Shell Kommandos auf die die Schlüsselwörter zutreffen `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -452,12 +477,12 @@ msgstr ""
"Auf `%s' trifft kein Hilfethema zu. Probieren Sie `help help', `man -k %s' "
"oder `info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: Kann die Datei nicht öffnen: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -485,7 +510,7 @@ msgstr "Es darf nur eine Option aus -anrw angegeben werden."
msgid "history position"
msgstr "Kommandostapelposition."
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: Kommandoersetzung gescheitert."
@@ -499,16 +524,16 @@ msgstr "%s: inlib gescheitert."
msgid "no other options allowed with `-x'"
msgstr "Keine weiteren Optionen mit `-x' erlaubt."
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein."
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Unbekannter Fehler."
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "Ausdruck erwartet."
@@ -517,86 +542,95 @@ msgstr "Ausdruck erwartet."
msgid "%s: not an indexed array"
msgstr "%s: Ist kein indiziertes Array."
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr ""
+msgstr "%s: Ungültige Datei-Deskriptor Angabe."
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr "%d: Ungültiger Dateibezeichner: %s"
+msgstr "%d: Ungültiger Datei-Deskriptor: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: Ungültige Zeilenanzahlangabe."
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: Ungültiger Zeilenindex für den Array Beginn."
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr ""
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "Fehlender Name für die Array Variable."
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "Die Array Variablen Unterstützung ist in dieser Shell nicht vorhanden."
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': Fehlendes Formatierungszeichen."
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: Ungültige Wartezeitangebe."
+msgstr "`%c': Ungültige Zeitformatangabe."
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': Ungültiges Formatierungszeichen."
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "Warnung: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "Fehlende hexadezimale Ziffer nach \\x."
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "Fehlende hexadezimale Ziffer nach \\x."
+msgstr "Fehlendes Unicode Zeichen für \\%c."
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "kein anderes Verzeichnis"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: Ungültiges Argument."
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<kein aktuelles Verzeichnis>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "Der Verzeichnisstapel ist leer."
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "Verzeichnisstapelindex"
-#: builtins/pushd.def:683
-#, fuzzy
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -619,17 +653,26 @@ msgid ""
"by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
-"Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an.\n"
-" Gespeichert werden die Verzeichnisse durch das `popd' Kommando und\n"
-" können durch das `pushd' Kommando wieder vom Stapel entfernt\n"
+"Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an. Durch\n"
+" das »pushd« Kommando werden die Verzeichnisse auf den Stapel gelegt\n"
+" und können durch das »popd« Kommando wieder vom Stapel entfernt\n"
" werden.\n"
"\n"
" Optionen:\n"
-" -c Verzeichnisstapel durch Löschen aller Einträge bereinigen.\n"
-" -l Das Heimatverzeichnis wird nicht mit vorangestellter Tilde\n"
-" ausgegeben"
+"\t-c\tVerzeichnisstapel durch Löschen aller Einträge bereinigen.\n"
+"\t-l\tDas Heimatverzeichnis wird nicht mit vorangestellter Tilde\n"
+"\tausgegeben\n"
+"\t-p\tDen Verzeichnisstapel zeilenweise ausgeben.\n"
+"\t-v\tDen Verzeichnisstapel zeilenweise mit vorangestellter\n"
+"\tPositionsnummer auseben.\n"
+"\n"
+" Argumente:\n"
+"\t+N\tZeigt den N'ten Eintrag von links an, der von »dirs« ausgegeben\n"
+"\twird, wenn es ohne Optionen aufgerufen wird, beginnend mit Null.\n"
+"\t-N\tZeigt den N'ten Eintrag von rechts an, der von »dirs« ausgegeben\n"
+"\twird, wenn es ohne Optionen aufgerufen wird, beginnend mit Null."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -675,7 +718,7 @@ msgstr ""
" \n"
" Das `dirs' Kommando zeigt den Verueichnisstapel an."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -716,41 +759,43 @@ msgstr ""
" \n"
" Das `dirs' Kommando zeigt den Verzeichnisstapel an."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: Ungültige Wartezeitangebe."
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "Lesefehler: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
+"»Return« ist nur aus einer Funktion oder einem mit »source« ausgefühten "
+"Skript möglich."
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
"Gleichzeitiges `unset' einer Funktion und einer Variable ist nicht möglich."
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: `unset' nicht möglich."
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: `unset' nicht möglich: Schreibgeschützt %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: Ist keine Feldvariable."
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: Ist keine Funktion."
@@ -759,11 +804,11 @@ msgstr "%s: Ist keine Funktion."
msgid "shift count"
msgstr "Verschiebezähler"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "Kann nicht Shell Optinen gleichzeitig aktivieren und deaktivieren."
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: Ungültiger Shell Optionen Name."
@@ -804,9 +849,9 @@ msgstr "%s ist eine Funktion.\n"
#: builtins/type.def:296
#, c-format
msgid "%s is a shell builtin\n"
-msgstr ""
+msgstr "%s ist eine von der Shell mitgelieferte Funktion.\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s ist %s\n"
@@ -816,45 +861,45 @@ msgstr "%s ist %s\n"
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
-msgstr ""
+msgstr "%s: Ungültiges Grenzwertargument."
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': Falsches Kommando."
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: Kann die nicht Grenze setzen: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "Grenze"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: Kann die Grenze nicht ändern: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "Oktalzahl"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr ""
+msgstr "`%c': Ungültiger Operator für den symbolischen Modus."
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr ""
+msgstr "`%c': Ungültiges Zeichen im symbolischen Modus."
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " Zeile "
@@ -868,307 +913,322 @@ msgstr "Letztes Kommando: %s\n"
msgid "Aborting..."
msgstr "Abbruch..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "Unbekanntes Kommando"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr ""
# Programmierfehler
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr ""
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "Falscher Sprung"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s ist nicht gesetzt."
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen."
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "Pipe-Fehler"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: Verboten: `/' ist in Kommandonamen unzulässig."
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: Kommando nicht gefunden."
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s ist %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: Defekter Interpreter"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: Kann die Binärdatei nicht ausführen: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "`%s' ist eine spezielle eingebaute Funktion."
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "Kann fd %d nicht auf fd %d verdoppeln."
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "Zu viele Rekursionen in Ausdruck."
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "Rekursionsstapel leer."
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "Syntaxfehler im Ausdruck."
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
-msgstr "Zuweisung zu einer Nicht-Variablen versucht."
+msgstr "Versuchte Zuweisung zu keiner Variablen."
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "Division durch 0."
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "Fehler: Falscher Zuweisungsoperator."
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
-msgstr "`:' erwartet für ein bedingten Ausdruck."
+msgstr "`:' für ein bedingten Ausdruck erwaret."
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "Der Exponent ist kleiner als 0."
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "Fehlende `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "Syntax Fehler: Operator erwartet."
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "Syntaxfehler: Ungültiger arithmetischer Operator."
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (Fehlerverursachendes Zeichen ist \\\"%s\\\")."
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "Ungültige Basis."
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
-msgstr "Der Wert ist zu groß für die aktuelle Basis."
+msgstr "Der Wert ist für die aktuelle Basis zu groß."
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: Fehler im Ausdruck.\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
-msgstr "getwd: Kann nicht auf das übergeordnete Verzeichnis zugreifen."
+msgstr "getwd: Kann auf das übergeordnete Verzeichnis nicht zugreifen."
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, 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:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: Es existiert bereits ein Puffer für den neuen fd %d."
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
-msgstr ""
+msgstr "Die geforkte PID %d erscheint im laufenden Prozess %d."
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
-msgstr ""
+msgstr "Lösche den gestoppten Prozess %d der Prozessgruppe %ld."
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
# Programmierfehler
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: Prozeßnummer existiert nicht."
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Fertig"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Angehalten"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Angehalten(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Läuft"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Fertig(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Exit %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Unbekannter Status"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(Speicherabzug geschrieben) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
# interner Fehler
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: Programm ist beendet."
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
# Debug Ausgabe
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: Zeile %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (Speicherabzug geschrieben)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n"
# interner Fehler
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_jobs: getpgrp war nicht erfolgreich."
# interner Fehler
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: line discipline"
# interner Fehler
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "Kann die Prozessgruppe des Terminals nicht setzen (%d)."
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "Keine Job Steuerung in dieser Shell."
@@ -1190,61 +1250,61 @@ msgstr ""
msgid "unknown"
msgstr "Unbekannt"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
"Malloc: Ein frei gekennzeichneter Speicherbereich wurde überschrieben."
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: Wurde für bereits freigegebenen Speicherbereich aufgerufen."
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: Wurde für nicht zugeordneten Speicherbereich aufgerufen."
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: Beginn und Ende Segmentgrößen sind unterschiedlich."
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: Mit nicht zugewiesenen Argument aufgerufen."
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
"realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: Beginn und Ende Segmentgrößen sind unterschiedlich.<"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
"register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
"register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt "
"gekennzeichnet?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
"register_free: %p ist bereits in der Speicherzuordnungstabelle als frei "
"gekennzeichnet?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "Ungültige Basis"
@@ -1267,43 +1327,43 @@ msgstr "%s: Fehlerhafte Netzwerkspfadangabe."
msgid "network operations not supported"
msgstr "Der Netzwerkbetrieb ist nicht unterstützt."
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s)."
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: Kann die Standorteinstellungen nicht ändern (%s)."
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: Kann nicht die Locale ändern (%s): %s"
# Du oder Sie?
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Sie haben Post in $_."
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Sie haben neue Post in $_."
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Die Post in %s wurde bereits gelesen.\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr "Syntaxfehler: Ein arithmetischer Ausdruck wird verlangt."
+msgstr "Syntaxfehler: Es wird ein arithmetischer Ausdruck benötigt."
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
@@ -1315,119 +1375,121 @@ msgid "syntax error: `((%s))'"
msgstr "Syntax Fehler: `((%s))'."
# interner Fehler
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: Falscher Befehlstyp %d."
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
+"Das in der Zeile %d beginnende Here-Dokument geht bis zum Dateiende "
+"(erwartet wird `%s')."
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "Dateiende beim Suchen nach `%c' erreicht."
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "Dateiende beim Suchen nach `]]' erreicht."
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "Syntaxfehler im bedingten Ausdruck: Unerwartetes Zeichen `%s'."
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "Syntaxfehler im bedingen Ausdruck."
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "Unerwartetes Zeichen: `%s' anstatt von `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "`)' erwartet."
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr ""
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr ""
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr ""
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr ""
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "Syntax Fehler: Unerwartetes Dateiende."
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "Syntax Fehler"
# Du oder Sie?
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Benutze \"%s\" um die Shell zu verlassen.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "Dateiende beim Suchen nach passender `)' erreicht."
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1437,90 +1499,90 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: Falsches Verbindungszeichen `%d'."
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: Ungültige Dateibeschreibung."
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: Mehrdeutige Umlenkung."
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: Kann existierende Datei nicht überschreiben."
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: Gesperrt: Die Ausgabe darf nicht umgeleitet werden."
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: Kann fd keiner Variable zuweisen."
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port Wird ohne Netzwerk nicht unterstützt"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr ""
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "Konnte das /tmp Verzeichnis nicht finden, bitte anlegen."
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp muß ein gültiger Verzeichnisname sein."
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: Ungültige Option"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Ich habe keinen Benutzernamen!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, Version %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1529,39 +1591,40 @@ msgstr ""
"Benutzung:\t%s [Lange GNU Option] [Option] ...\n"
"\t\t%s [Lange GNU Option] [Option] Script-Datei ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Lange GNU Optionen:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Shell-Optionen:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr ""
+"\t-ilrsD oder -c Kommando\toder -O shopt_option (Nur Aufruf)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s oder Option -o\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: Ungültige Operation"
@@ -1735,203 +1798,224 @@ msgstr "Unbekannte Signalnummer."
msgid "Unknown Signal #%d"
msgstr "Unbekanntes Signal Nr.: %d."
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten."
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: Kann einem Feldelement keine Liste zuweisen."
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen."
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "Kann den Kindsprozess für die Prozeßersetzung nicht erzeugen."
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen."
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen."
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "Kann die benannte Pipe %s nicht auf fd %d."
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "Kann keine Pipes für Kommandoersetzung erzeugen."
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen."
# interner Fehler
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren."
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: Parameter ist Null oder nicht gesetzt."
# interner Fehler
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: Teilstring-Ausdruck < 0."
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: Falsche Variablenersetzung."
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: Kann so nicht zuweisen."
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
+"Zukünftige Versionen dieser Shell werden das Auswerten arithmetischer "
+"Ersetzungen erzwingen."
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s."
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "Keine Entsprechung: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "Argument erwartet."
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: Ganzzahliger Ausdruck erwartet."
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "`)' erwartet."
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "`)' erwartet, %s gefunden."
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: Einstelliger (unärer) Operator erwartet."
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: Zweistelliger (binärer) Operator erwartet."
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "Fehlende `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "Ungültige Signalnummer."
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
# Programmierfehler
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: Falsches Signal %d."
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'."
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: Der Variable könnte kein Wert zugewiesen sein."
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr ""
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: Kann nicht als Datei geöffnet werden."
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: Kompatibilitätswert außerhalb des Gültigkeitsbereiches."
+
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1939,54 +2023,44 @@ msgstr ""
"Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, Version %s (%s)\n"
-#: version.c:91 version2.c:88
-#, 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:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Dies ist freie Software. Sie darf verändert und verteilt werden."
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "Für dieses Programm besteht keinerlei Garantie.\n"
-
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-"Lizenz GPLv2+: GNU GPL Version 2 oder jünger <http://gnu.org/licenses/gpl."
-"html>\n"
+"Für den größtmöglichen gesetzlich zulässigen Umfang wird jede Haftung "
+"ausgeschlossen."
+
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)."
+msgstr "%s: Konnte nicht %lu Bytes reservieren (%lu bytes reserviert)."
#: xmalloc.c:93
#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "%s: Kann nicht %lu Bytes reservieren."
+msgstr "%s: Konnte nicht %lu Bytes reservieren."
#: xmalloc.c:163
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)."
+msgstr "%s: %s:%d: Konnte nicht %lu Bytes reservieren (%lu bytes reserviert)."
#: xmalloc.c:165
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "%s: %s:%d: Kann nicht %lu Bytes reservieren."
+msgstr "%s: %s:%d: Konnte nicht %lu Bytes reservieren."
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
@@ -1998,11 +2072,12 @@ msgstr "unalias [-a] Name [Name ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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]"
+"bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u\n"
+"Name] [-r Tastenfolge] [-x Tastenfolge:Shell Kommando] [Tastenfolge:readline "
+"Funktion oder Kommando]"
#: builtins.c:54
msgid "break [n]"
@@ -2021,9 +2096,8 @@ msgid "caller [expr]"
msgstr "caller [Ausdruck]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [Verzeichnis]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [Verzeichnis]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2035,26 +2109,24 @@ msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr "Wahr"
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr "Falsch"
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] Kommando [Argument ...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [Name[=Wert] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrntux] [-p] Variable[=Wert] ..."
#
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] Name[=Wert] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] Name[=Wert] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2155,22 +2227,20 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o Option] [ARG ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o Option] [--] [Argument ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [NAME ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [NAME ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [Name[=Wert] ...] oder export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [Name[=Wert] ...] oder readonly -p"
+msgstr "readonly [-aAf] [Name[=Wert] ...] oder readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2209,20 +2279,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] Name [Name ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [Grenzwert]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [Grenzwert]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [Modus]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2336,13 +2406,18 @@ msgid ""
"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"mapfile [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C Callback] [-c "
+"Menge] [Feldvariable]"
#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"readarray [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd] [-C Callback] [-c "
+"Menge] [Feldvariable]"
+# alias
#: builtins.c:254
msgid ""
"Define or display aliases.\n"
@@ -2364,20 +2439,20 @@ msgid ""
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"
+" Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form\n"
+" `alias Name=Wert' auf die Standardausgabe ausgegeben.\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"
+" Sonst wird ein Alias für jeden angegebenen Namen definiert, für\n"
+" den ein Wert angegeben wurde. Wenn `Wert' mit einem Leerzeichen\n"
+" abschließt, dann wird auch das folgende Wort auf Aliase überprüft.\n"
+"\n"
+" Optionen:\n"
+" -p\tGibt alle definierten Aliase aus.\n"
" \n"
" Rückgabewert:\n"
-" Meldet Erfolg, außer wenn NAME nicht existiert."
+" Meldet Erfolg, außer wenn `Name' nicht existiert."
+# unalias
#: builtins.c:276
msgid ""
"Remove each NAME from the list of defined aliases.\n"
@@ -2387,16 +2462,15 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
-"Entferne jeden Namen von der Aliasliste.\n"
+"Entferne jeden angegebenen Namen von der Aliasliste.\n"
" \n"
" Optionen:\n"
" -a\tEnferne alle Alias Definitionen.\n"
" \n"
-" Gibt immer Erfolg zurück, wenn der Name existiert."
+" Gibt immer 0 zurück wenn der Alias existierte."
# bind
#: builtins.c:289
-#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2430,6 +2504,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2437,9 +2513,9 @@ msgstr ""
"Konfiguriert Readline Tastenzuordnungen und Variablen.\n"
" \n"
" Weist eine Tastensequenz einer Readline Funktion oder einem Makro\n"
-" zu oder setzt eine Readline Variable. The non-option argument\n"
-" syntax is equivalent to that found in ~/.inputrc, but must be\n"
-" passed as a single argument: e.g., bind '\"\\C-x\\C-r\":\n"
+" zu oder setzt eine Readline Variable. Der Argument syntax ist zu\n"
+" den Einträgen in ~/.inputrc äquivalent, aber sie müssen als\n"
+" einzelnes Argument übergeben werden. Z.B: bind '\"\\C-x\\C-r\":\n"
" re-read-init-file'.\n"
" \n"
" Optionen:\n"
@@ -2449,34 +2525,49 @@ msgstr ""
"emacs,\n"
" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
"move,\n"
-" vi-command, und vi-insert.\n"
+" vi-command und vi-insert.\n"
" -l Listet Funktionsnamen auf.\n"
" -P Listet Funktionsnamen und Tastenzuordnungen auf.\n"
" -p Listet Funktionsnamen und Tastenzuordnungen so "
"auf,\n"
" dass sie direkt als Eingabe verwendet werden "
"können.\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"
+" -S Listet Tastenfolgen und deren Werte auf, die "
+"Makros \n"
+" aufrufen.\n"
+" -s Listet Tastenfolgen und deren Werte auf, die "
+"Makros \n"
+" aufrufen, dass sie als Eingabe wiederverwendet "
+"werden\n"
+" können.\n"
+" -V Listet Variablennamen und Werte auf.\n"
+" -v Listet Variablennamen und Werte so auf, dass sie "
+"als\n"
+" Eingabe verwendet werden können.\n"
+" -q Funktionsname Sucht die Tastenfolgen, welche die angegebene\n"
+" Funktion aufrufen.\n"
+" -u Funktionsname Entfernt alle der Funktion zugeordneten "
+"Tastenfolgen.\n"
+" -r Tastenfolge Entfernt die Zuweisungen der angegebeben "
+"Tastenfolge.\n"
+" -f Dateiname Liest die Tastenzuordnungen aus der angegebenen "
+"Datei.\n"
+" -x Tastenfolge:Shellkommando\tWeist der Tastenfolge das "
+"Shellkommando\n"
+" \t\t\t\t\tzu.\n"
+" -X Listet mit -x erzeugte\n"
+" Tastenfolgen und deren Werte\n"
+" auf, die Makros aufrufen, dass\n"
+" sie als Eingabe wiederverwendet "
+"werden\n"
+" können.\n"
" \n"
" Rückgabewert: \n"
" Bind gibt 0 zurück, wenn keine unerkannte Option angegeben wurde\n"
" oder ein Fehler eintrat."
-#: builtins.c:326
+# break
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2488,14 +2579,15 @@ msgid ""
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"
+" Break beendet eine »for«, »while« oder »until« Schleife. Wenn »n«\n"
+" angegeben ist, werden entsprechend viele geschachtelte Schleifen\n"
+" beendet.\n"
" \n"
" Rückgabewert:\n"
-" Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1."
+" Der Rückgabewert ist 0, außer »n« ist nicht größer oder gleich 1."
-#: builtins.c:338
+# continue
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2507,15 +2599,15 @@ msgid ""
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"
+" Springt zum Schleifenanfang der aktuellen »for«, »while« oder »until«\n"
+" Schleife. Wenn »n« angegeben ist, 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."
+" Der Rückgabewert ist 0, außer wenn »n« nicht größer oder gleich 1 ist."
-#: builtins.c:350
+# builtin
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2528,18 +2620,19 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
-"Führt eine eingebeute Shell Funktionen aus.\n"
+"Führt eine in der Shell definierts Kommando aus.\n"
" \n"
-" Führt die eingebaute Shell Funktionen mit den angegebenen\n"
-" Argumenten aus, ohne das Kommando nachzuschlagen. Diese Funktion\n"
-" ist dann nützlich, wenn eine eingebaute Shell Funktion\n"
-" überschrieben wurde, diese aber trotzdem ausgeführt werden soll.\n"
+" Führt eine in der Shell definertes Kommando aus. Dies ist dann\n"
+" nützlich, wenn es mit gleichem Namen als Funktion reimplementiert\n"
+" werden soll, aber die Funktionalität des eingebauten Kommandos\n"
+" innerhalb der neuen Funktion benötigt wird.\n"
" \n"
" Rückgabewert: \n"
-" Der Rückgabewert der eingebauten Schellfunkrion oder Falsch, wenn\n"
-" diese nicht existiert."
+" Der Rückgabewert des aufgerufenen Kommandos oder »falsch«, wenn\n"
+" dieses nicht existiert."
-#: builtins.c:365
+# caller
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2555,8 +2648,8 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
-#, fuzzy
+# cd
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2579,13 +2672,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2594,30 +2695,48 @@ msgid ""
msgstr ""
"Wechselt das Arbeitsverzeichnis.\n"
" \n"
-" Wechselt das aktuelle Abeitsverzeichnis zu DIR. Ohne Angabe eines\n"
-" Verzeichnisses wird in das Heimatverzeichnis gewechselt. \n"
+" Wechselt in das angegebene Abeitsverzeichnis. Ohne Angabe eines\n"
+" Verzeichnisses wird in das Heimatverzeichnis gewechselt.\n"
" \n"
-" Die Variable CDPATH enthält den Suchpfad für das in DIR\n"
-" spezifizierte Verzeichnis. Die Pfadnamen werden durch Doppelpunkte\n"
-" (:) getrennt. Ein leerer Pfadname bezeichnet das aktuelle\n"
-" Verzeichnis. Wenn DIR mit einem Schrägsrtich (/) beginnt, wird der\n"
-" CDPATH nicht durchsucht.\n"
+" Die Variable CDPATH gibt eine Liste von Orten an, in denen nach\n"
+" dem angegebeben Verzeichnisnamen gesucht wird. Die Pfadnamen\n"
+" werden durch Doppelpunkte »:« getrennt. Ein leerer Pfadname\n"
+" bezeichnet das aktuelle Verzeichnis. Wenn ein vollständiger\n"
+" Pfadname angegeben ist, wird der CDPATH nicht durchsucht.\n"
" \n"
" Wenn kein entsprechendes Verzeichnis gefunden wurde und die Shell\n"
-" Option `cdable_vars' gesetzt ist, dann wird angenommen, dass DIR\n"
-" einen Variablennamen enthält. Wenn dann noch diese Variable ein\n"
-" Wert besitzt, wird dieser als Inhalt von DIR verwendet.\n"
+" Option `cdable_vars' gesetzt ist, dann wird angenommen, dass der\n"
+" Verzeichnisname einen Variablennamen enthält. Wenn diese ein Wert\n"
+" besitzt, wird dieser als Verzeichnisname verwendet.\n"
" \n"
" Optionen:\n"
-" -L\tErzwingt das Folgen symbolischer Verweise.\n"
-" -P\tSymbolische Verweise werden ignoriert.\n"
-" \n"
-" Standardmäßig wird symbolischen Verweisen gefolgt.\n"
+" -L\tErzwingt das symbolischen Verweisen gefolgt wird.\n"
+" Symbolische Links im aktuellen Verzeichnis werden nach\n"
+" dem übergeordneten Verzeichnis aufgelöst.\n"
+" -P\tSymbolische Verweise werden ignoriert. Symbolische\n"
+" Links im aktuellen Verzeichnis werden vor dem\n"
+" übergeordneten Verzeichnis aufgelöst.\n"
+" -e\tWenn mit der »-P« das aktuelle Arbeitsverzeichns nicht\n"
+" ermittelt werden kann, wird ein Rückgabwert ungleich 0\n"
+" geliefert.\n"
+" -@ Wenn es das System Unterstützt wird eine Datei mit \n"
+" erweiterten Attributen als ein Verzeichnis angezeigt,\n"
+" welches die erweiterten Attribute enthält.\n"
+" \n"
+" Standardmäßig wird symbolischen Verweisen gefolgt (Option -L).\n"
+" Das übergeordnete Verzeichnis wird ermittelt, indem der\n"
+" Dateiname am letzten Schrägstrich gekürzt wird oder es wird der\n"
+" Anfang von DIR verwendet.\n"
" \n"
-" Rückgabewert:\n"
-" Wenn das Verzeichnic gewechselt wurde 0; sonst ungleich Null."
+" Rückgabewert: \n"
+" Der Rückgabewert ist 0, wenn das Verzeichnis gewechselt wurde,\n"
+" sonst ungleich 0.\n"
+" Mit den Optionen »-P -e« wird ein Rückgabewert ungleich 0 auch\n"
+" dann gesetzt, wenn das neue aktuelle Verzeichnis nicht ermittelt\n"
+" werden konnte."
-#: builtins.c:414
+# pwd
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2631,10 +2750,22 @@ msgid ""
" Exit Status:\n"
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
-msgstr " be a literal `]', to match the opening `['.<"
+msgstr ""
+"Gibt den Namen des aktuellen Arbeitsverzeichnisses aus.\n"
+" \n"
+" Optionen:\n"
+" -L\tGibt den Inhalt der Variable $PWD aus.\n"
+" -P\tGibt den physischen Verzeichnispfad aus, ohne\n"
+" symbolische Verweise.\n"
+" \n"
+" Standardmäßig wird immer die Option »-L« gesetzt.\n"
+" \n"
+" Rückgabewert:\n"
+" Ist 0 außer wenn eine ungültige Option angegeben oder das aktuelle\n"
+" Verzeichnis nicht lesbar ist."
# colon
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2648,25 +2779,35 @@ msgstr ""
" Leeranweisung; das Kommando hat keine Wirkung.\n"
"\n"
" Rückgabewert:\n"
-" Das Kommando ist immer erfolgreich."
+" Das Kommando ist immer »wahr«."
-#: builtins.c:442
+# true
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Gibt »wahr« zurück.\n"
+" \n"
+" Rückgabewert:\n"
+" Immer »wahr«."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
" Exit Status:\n"
" Always fails."
msgstr ""
+"Gibt »falsch« zurück.\n"
+" \n"
+" Rückgabewert:\n"
+" Immer »falsch«."
-#: builtins.c:460
+# command
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2684,8 +2825,28 @@ msgid ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
+"Führt ein einfaches Kommando aus oder zeigt Informationen über Kommandos "
+"an.\n"
+"\n"
+" Führt das Kommando mit den angegebeneb Argumenten aus, ohne\n"
+" Shell-Funktion nachzuschlagen oder zeigt Informationen über die\n"
+" Kommandos an. Dadurch können auch dann Kommandos ausgeführt\n"
+" werden, wenn eine Shell-Funktion gleichen Namens existiert.\n"
+" \n"
+" Optionen:\n"
+" -p\tStandardwert für PATH verwenden. Dies garantiert, dass alle\n"
+" \t\tStandard-Dienstprogramme gefunden werden.\n"
+" -v\tBeschreibung des Kommandos ausgeben.\n"
+" \t\tÄhnlich dem eingebauten Kommando »type«.\n"
+" -V\tEine ausführlichere Beschreibung jedes Kommandos ausgeben.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt den Rückgabewert des Kommandos zurück, oder eine Fehlermeldung, "
+"wenn\n"
+" das Kommando nicht gefunden wird."
-#: builtins.c:479
+# declare
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2705,6 +2866,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2720,10 +2882,49 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
+"Setzt Variablenwerte und deren Attribute.\n"
+" \n"
+" Deklariert Variablen und weist ihnen Attribute zu. Wenn keine\n"
+" Namen angegeben sind, werden die Attribute und Werte aller\n"
+" Variablen ausgegeben.\n"
+" \n"
+" Optionen:\n"
+" -f\tZeigt nur Funktionsnamen und Definitionen an.\n"
+" -F\tZeigt nur Funktionsnamen an (inklusive Zeilennummer\n"
+" \t\tund Quelldatei beim debuggen).\n"
+" -g\tDeklariert innerhalb ener Shellfunktion globale\n"
+" Variablen; wird sonst ignoriert.\n"
+" -p\tZeigt die Attribute und Werte jeder angegebenen\n"
+" Variable an.\n"
+" \n"
+" Attribute setzen:\n"
+" -a\tDeklariert ein indiziertes Feld (wenn unterstützt).\n"
+" -A\tDeklariert ein assoziatives Feld (wenn unterstützt).\n"
+" -i\tDeklariert eine Integer Variable.\n"
+" -l\tKonvertiert die Variabennmamen in Kleinbuchstaben.\n"
+" -r\tDeklariert nur lesbare Variablen.\n"
+" -t\tWeist das »trace« Attibut zu.\n"
+" -u\tKonvertiert die Variablennamen in Großbuchstaben.\n"
+" -x\tExportiert die Variablen über die aktuelle Shell\n"
+" Umgebung hinaus.\n"
+" \n"
+" Das Voranstellen von »+« anstelle von »-« schaltet die gegebenen\n"
+" Attribute ab.\n"
+" \n"
+" Für Integer Variablen werden bei der Zuweisung arithmetische\n"
+" Berechnungen durchgeführt (siehe `help let').\n"
+" \n"
+" Innerhalb einer Funktion werden lokale Variablen erzeugt. Die\n"
+" Option »-g« unterdrückt dieses Verhalten.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt »Erfolg« zurück, außer eine ungültige Option wurde angegeben,\n"
+" oder ein Fehler trat auf."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2733,7 +2934,7 @@ msgstr ""
"\n"
" Veraltet. Siehe `help declare'."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2744,29 +2945,31 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Definiert lokale Variablen.\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"
+" Erzeugt eine Lokale Variable NAME und weist ihr den Wert VALUE zu.\n"
+" OPTION 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"
+" Lokale Variablen können nur innerhalb einer Funktion benutzt\n"
+" werden. Sie sind nur in der sie erzeugenden Funktion und ihren\n"
+" 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."
+" Rückgabewert: \n"
+" Liefert 0 außer bei Angabe einer ungültigen Option, einer\n"
+" fehlerhaften Variablenzuweisung oder dem Aufruf außerhalb einer\n"
+" Funktion."
-#: builtins.c:542
+# echo
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2778,6 +2981,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2792,8 +2996,37 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
+"Ausgabe der Argumente auf die Standardausgabe.\n"
+" \n"
+" Zeigt die Argumente auf der Standardausgabe gefolgt von einem\n"
+" Zeilenumbruch an.\n"
+" \n"
+" Optionen:\n"
+" -n\tKeinen Zeilenumbruch anfügen\n"
+" -e\tInterpretation der folgenden Escape-Sequenzen zulassen\n"
+" -E\tKeine Interpretation der Escape-Sequenzen.\n"
+" \n"
+" »echo« interpretiert die folgenden Escape-Sequenzen:\n"
+" \\a\tAlarm (Glocke)\n"
+" \\b\tRücktaste (Backspace)\n"
+" \\c\tweitere Ausgabe unterdrücken\n"
+" \\e\tEscape-Zeichen\n"
+" \\E Escape Zeichen\n"
+" \\f\tSeitenvorschub\n"
+" \\n\tZeilenvorschub\n"
+" \\r\tWagenrücklauf\n"
+" \\t\tHorizontaler Tabulator\n"
+" \\v\tVertikaler Tabulator\n"
+" \\\\ umgekehrter Schrägstrich (Backslash)\n"
+" \\0nnn\tZeichen mit dem ASCII-Code »NNN« (oktal). »NNN« kann null\n"
+" \t\tbis drei oktale Ziffern haben.\n"
+" \\xHH\tAcht-Bit-Zeichen mit dem Wert »HH« (hexadezimal). »HH«\n"
+" \t\tkann ein oder zwei hexadezimale Ziffern haben.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt »Erfolg« zurück, außer ein Ausgabefehler tritt auf."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2806,7 +3039,8 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+# enable
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2832,8 +3066,37 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
+"Eingebaute Shell-Kommandos aktivieren und deaktivieren.\n"
+" \n"
+" Aktiviert und deaktiviert eingebaute Shell-Kommandos. Die Deaktivierung\n"
+" erlaubt Ihnen, eigene Kommandos mit demselben Namen wie die eingebauten\n"
+" Kommandos zu nutzen, ohne den kompletten Pfad angeben zu müssen.\n"
+" \n"
+" Optionen:\n"
+" -a\tGibt eine Liste der eingebauten Kommandos aus inklusive der\n"
+" \t\tInformation, ob sie aktiv sind oder nicht.\n"
+"\n"
+" -n\tdeaktiviert jedes angegebene Kommando oder gibt eine\n"
+" Liste der deaktivierten eingebauten Kommandos aus.\n"
+" -p\tGibt eine Liste der eingebauten Kommandos in einem\n"
+" \t\twiederverwendbaren Format aus.\n"
+" -s\tGibt nur die Namen der »speziellen« in POSIX eingebauten\n"
+" \t\tKommandos aus.\n"
+" \n"
+" Optionen zum Beeinflussen des dynamischen Ladens:\n"
+" -f\tLade eingebautes Kommando aus der angegebenen Datei.\n"
+" -d\tEntfernt ein mit »-f« geladenes Kommando.\n"
+" \n"
+" Ohne Optionen wird jedes angegebe Kommando aktiviert.\n"
+" \n"
+" Um das unter $PATH liegende Kommando »test« anstelle der eingebauten\n"
+" Version zu nutzen, geben Sie »enable -n test« ein.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt »Erfolg« zurück, außer NAME ist kein eingebautes Kommando \n"
+" oder ein Fehler tritt auf."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2844,8 +3107,17 @@ msgid ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
msgstr ""
+"Führe die Argumente als Shell Kommando aus.\n"
+" \n"
+" Fügt die Argumente zu einer Zeichenkette zusammen und verwendet\n"
+" das Ergebnis als Eingebe in eine Shell, welche die enthaltenen\n"
+" Kommandos ausführt.\n"
+" \n"
+" Rückgabewert:\n"
+" Der Status des Kommandoe oder Erfolg wenn das Kommando leer war."
-#: builtins.c:631
+# getopts
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2885,8 +3157,48 @@ msgid ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
msgstr ""
+"Analysieren von Optionsargumenten.\n"
+" \n"
+" Getopts wird von Shell-Prozeduren verwendet, um die\n"
+" Kommandozeilenoptionen auszuwerten.\n"
+" \n"
+" \"Optionen\" enthält die auszuwertenden Buchstaben. Ein Doppelpunkt\n"
+" nach dem Buchstaben zeigt an, dass ein Argument erwartet wird,\n"
+" welches durch ein Leerzeichen von der Option getrennt ist.\n"
+" \n"
+" Bei jedem Aufruf von »getopts« wird die nächste Option der\n"
+" $Variable zugewiesen. Diese wird angelegt, falls sie noch\n"
+" nicht existiert. Weiterhin wird der Indes Index des nächsten zu\n"
+" verarbeitenden Arguments der Shell-Variablen OPTIND\n"
+" zugewiesen. OPTIND wird bei jedem Aufruf einer Shell oder eines\n"
+" Shell-Skripts mit 1 initialisiert. Wenn eine Option ein Argument\n"
+" benötigt, wird dieses OPTARG zugewiesen.\n"
+" \n"
+" Für Fehlermeldungen gibt es zwei Varianten. Wenn das erste\n"
+" Zeichen des Optionsstrings ein Doppelpunkt ist, wird der stille\n"
+" Fehlermodus von »getopts« verwendet. In diesem Modus wird keine\n"
+" Fehlermeldung ausgegeben. Wenn eine ungültige Option erkannt wird,\n"
+" wird das gefundene Optionenzeichen OPTARG zugewiesen. Wenn ein\n"
+" benötigtes Argument fehlt, wird ein »:« der Variable zugewiesen\n"
+" und OPTARG auf das gefundene Optionenzeichen gesetzt. Im anderen\n"
+" Fehlermodus wird ein »?« der Variable zugewiesen, OPTARG geleert\n"
+" und eine Fehlermeldung ausgegeben.\n"
+" \n"
+" Wenn die Shell-Variable OPTERR den Wert »0« hat, werden durch getopts \n"
+" keine Fehlermeldungen ausgegeben, auch wenn das erste Zeichen \n"
+" von OPTSTRING kein Doppelpunkt ist. OPTERR hat den Vorgabewert »1«.\n"
+" \n"
+" Getopts analysiert normalerweise die von der Position abhängigen\n"
+" Parameter ($0 - $9). Aber wenn mehr Argumente angegeben sind,\n"
+" werden stattdessen diese analysiert.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt »Erfolg« zurück wenn eine Option gefunden wird und\n"
+" »gescheitert«, wenn das Ende der Optionen erreicht oder ein Fehler\n"
+" aufgetreten ist."
-#: builtins.c:673
+# exec
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2908,9 +3220,27 @@ msgid ""
" Returns success unless COMMAND is not found or a redirection error "
"occurs."
msgstr ""
+"Ersetzt die Shell durch das angegebene Kommando.\n"
+" \n"
+" Führt das angebebene Kommando einschließlich dessen Optionen aus\n"
+" und ersetzt durch dieses die Shell. Wenn kein Kommando angegeben\n"
+" ist, wirken alle Weiterleitungen für die aktuellen Shell.\n"
+" \n"
+" Optionen:\n"
+" -a Name\tSetzt den Namen als nulltes Argument für das Kommando.\n"
+" -c\tFührt das Kommando in einer leeren Umgebung aus.\n"
+" -l\tSetzt einen Strich als nulltes Argument für das Kommando.\n"
+" \n"
+" Wenn das Kommando nicht ausgeführt werden kann, wird eine nicht\n"
+" interaktive Shell beendet, außer die Shell-Option »execfail« ist\n"
+" gesetzt.\n"
+" \n"
+" Rückgabewert:\n"
+" Gibt »Erfolg« zurück, außer das Kommando wurde nicht gefunden oder\n"
+" ein Weiterleitungsfehler trat auf."
# exit
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2923,7 +3253,8 @@ msgstr ""
"angegeben ist,\n"
" wird der Rückgabewert des letzten ausgeführten Kommandos übernommen."
-#: builtins.c:703
+# logout
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2931,8 +3262,14 @@ msgid ""
"executed\n"
" in a login shell."
msgstr ""
+" Beendet eine Login-Shell.\n"
+" \n"
+" Beendet eine Login-Shell mit dem Rückgabewert »n«. Wenn logout\n"
+" nicht von einer Login-Shell aus ausgeführt wurde, wird ein Fehler\n"
+" zurückgegeben."
-#: builtins.c:713
+# fc
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2962,7 +3299,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2973,8 +3310,16 @@ msgid ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
+"Bringt einen Job in den Vordergrund.\n"
+" \n"
+" Bringt den mit JOB_SPEC bezeichneten Prozess als aktuellen Job\n"
+" in den Vordergrund. Wenn JOB_SPEC nicht angegeben ist, wird\n"
+" der zuletzt angehaltene Job verwendet.\n"
+" \n"
+" Rückgabewert:\n"
+" Status des in den Vordergrund geholten Jobs oder Fehler."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2987,8 +3332,16 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
+"Bringt einen Job in den Hintergrund.\n"
+" \n"
+" Bringt den mit JOB_SPEC bezeichneten Job in den Hintergrund,\n"
+" als ob er mit »&« gestartet wurde.\n"
+" \n"
+" Rückgabewert:\n"
+" Immer Erfolg, außer wenn die Jobsteuerung nicht verfügbar ist\n"
+" oder ein Fehler auftritt."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2999,7 +3352,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3012,7 +3365,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3034,7 +3387,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3068,7 +3421,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3077,7 +3430,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3092,7 +3445,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3109,7 +3462,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3131,7 +3484,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3176,7 +3529,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3211,20 +3564,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3236,7 +3592,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3302,7 +3658,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3321,7 +3677,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3330,6 +3686,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3341,7 +3699,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3360,7 +3718,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3372,7 +3730,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3380,7 +3740,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3391,7 +3751,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3405,7 +3765,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3419,7 +3779,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3484,6 +3844,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3500,7 +3862,8 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+# [
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3509,10 +3872,12 @@ msgid ""
msgstr ""
"Wertet einen bedingen Ausdruck aus.\n"
" \n"
-" Dieses Kommando entspricht dem \"test\" Kommando, aber das letzte "
-"Argument muss ein `]' sein."
+" Dieses Kommando entspricht dem »test« Kommando. Jedoch muss das\n"
+" letzte Argument ein »]« sein, welches die öffnende Klammer »[«\n"
+" schließt."
-#: builtins.c:1320
+# times
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3523,8 +3888,15 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Zeigt den Zeitverbrauch an.\n"
+" \n"
+" Gibt den kumulierte Nutzer- und Sysemzeitverbrauch der Shell und\n"
+" aller von ihr gestarteten Prozesse aus.\n"
+" \n"
+" Rückgabewert:\n"
+" Immer 0."
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3568,7 +3940,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3598,7 +3970,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3627,6 +3999,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3642,7 +4017,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3660,38 +4035,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3704,7 +4083,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3721,7 +4100,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3741,7 +4120,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3757,7 +4136,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3768,7 +4147,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3789,7 +4168,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3800,7 +4179,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3811,7 +4190,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3824,7 +4203,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3838,7 +4217,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3849,7 +4228,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3863,7 +4242,8 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+# (( ))
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3873,8 +4253,17 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
+"Wertet arithmetische Ausdrücke aus.\n"
+"\n"
+" Der Ausdruck wird nach den Regeln für arithmetische\n"
+" Berechnungen ausgewertet. Diese Schreibweise entspricht \"let\n"
+" Ausdruck\".\n"
+"\n"
+" Rückgabewert: \n"
+" Gibt »1« zurück, wenn die Auswertung des letzten Arguments Null\n"
+" ergibt, sonst »0«."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3902,7 +4291,8 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+# variable_help
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3955,8 +4345,66 @@ 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\tVersionsnummer der Bash.\n"
+" CDPATH\tEine durch Doppelpunkte getrennte Liste von\n"
+" Verzeichnissen, die durchsucht werden, wenn das\n"
+" Argument von `cd' nicht im aktuellen Verzeichnis\n"
+" gefunden wird.\n"
+" GLOBIGNORE Eine durch Doppelpunkte getrennte Liste von\n"
+" Dateinamenmustern, die für die Dateinamensergänzung\n"
+" ignoriert werden.\n"
+" HISTFILE\tDatei, die den Kommandozeilenspeicher enthält.\n"
+" HISTFILESIZE\tMaximale Zeilenanzahl, dieser Datei.\n"
+" HISTSIZE\tMaximale Anzahl von Zeilen, auf die der\n"
+" Historymechanismus der Shell zurückgreifen kann.\n"
+" HOME\tHeimatverzeichnis des aktuellen Benutzers.\n"
+" HOSTNAME Der aktuelle Rechnername.\n"
+" HOSTTYPE\tCPU-Typ des aktuellen Rechners.\n"
+" IGNOREEOF\tLegt die Reaktion der Shell auf ein EOF-Zeichen fest.\n"
+" Wenn die Variable eine ganze Zahl enthält, wird diese\n"
+" Anzahl EOF Zeichen (Ctrl-D) abgewartet, bis die Shell\n"
+" verlassen wird. Der Vorgabewert ist 10. Ist IGNOREEOF\n"
+" nicht gesetzt, signalisiert EOF das Ende der Eingabe.\n"
+" MACHTYPE Eine Zeichenkette die das aktuell laufende System "
+"beschreibt.\n"
+" MAILCHECK\tZeit in s, nach der nach E-Mail gesehen wird.\n"
+" MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateinamen,\n"
+" die nach E-Mail durchsucht werden.\n"
+" OSTYPE\tUnix Version, auf der die Bash gegenwärtig läuft.\n"
+" PATH\tDurch Doppelpunkt getrennte Liste von Verzeichnissen,\n"
+" die nach Kommandos durchsucht werden.\n"
+" PROMPT_COMMAND\tKommando, das vor der Anzeige einer primären\n"
+" Eingabeaufforderung (PS1) ausgeführt wird.\n"
+" PS1 Zeichenkette, die die primäre\n"
+" Eingabeaufforderung enthält.\n"
+" PS2 Zeichenkette, die die sekundäre\n"
+" Eingabeaufforderung enthält.\n"
+" PWD Der vollständige aktuelle Verzeichnisname.\n"
+" SHELLOPTS Durch Doppelpunkt getrennte Liste der aktiven\n"
+" Shell Optionen.\n"
+" TERM\tName des aktuellen Terminaltyps.\n"
+" auto_resume Ein Wert ungleich Null bewirkt, daß ein einzelnes\n"
+" Kommando auf einer Zeile zunächst in der Liste\n"
+" gegenwärtig gestoppter Jobs gesucht und dieser in den\n"
+" Vordergrund geholt wird. `exact' bewirkt, daß das\n"
+" Kommando genau dem Kommando in der Liste der\n"
+" gestoppten Jobs entsprechen muß. Wenn die Variable den\n"
+" Wert `substring' enthält, muß das Kommando einem\n"
+" Substring der Jobbezeichnung entsprechen. Bei einem\n"
+" anderen Wert müssen die ersten Zeichen übereinstimmen.\n"
+" histchars Zeichen, die die Befehlswiederholung und die\n"
+" Schnellersetzung steuern. An erster Stelle steht\n"
+" das Befehlswiederholungszeichen (normalerweise\n"
+" `!'); an zweiter das `Schnell-Ersetzen-Zeichen'\n"
+" (normalerweise `^'). Das dritte Zeichen ist das\n"
+" `Kommentarzeichen' (normalerweise `#').\n"
+" HISTIGNORE Eine durch Doppelpunkt getrennte Liste von\n"
+" Mustern, welche die in der\n"
+" Befehlswiederholungsliste zu speichernden\n"
+" Kommandos angibt.\n"
-#: builtins.c:1770
+# pushd
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3986,8 +4434,39 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
+"Fügt ein Verzeichnis dem Stapel hinzu.\n"
+"\n"
+" Legt ein Verzeichnisnamen auf den Verzeichnisstapel oder rotiert\n"
+" diesen so,daß das Arbeitsverzeichnis auf der Spitze des Stapels\n"
+" liegt. Ohne angegebene Argumente werden die obersten zwei\n"
+" Verzeichnisse auf dem Stapel getauscht.\n"
+"\n"
+" Optionen:\n"
+" -n\tunterdrückt das Wechseln in das Verzeichnis beim Hinzufügen\n"
+" zum Stapel, so daß nur der Stapel verändert wird.\n"
+"\n"
+" Argumente:\n"
+" +N\tRotiert den Stapel so, daß das N'te Verzeichnis\n"
+" (angezeigt von `dirs',gezählt von links) sich an der Spitze des\n"
+" Stapels befindet.\n"
+"\n"
+" -N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von\n"
+" -`dirs',gezählt von rechts) sich an der Spitze des Stapels\n"
+" -befindet.\n"
+" \n"
+"\n"
+" DIR\tLegt DIR auf die Spitze des Verzeichnisstapels und wechselt "
+"dorthin.\n"
+"\n"
+" Der Verzeichnisstapel kann mit dem Kommando `dirs' angezeigt\n"
+" werden.\n"
+"\n"
+" Rückgabewert: \n"
+" Gibt Erfolg zurück, außer wenn ein ungültiges Argument angegeben\n"
+" wurde oder der Verzeichniswechsel nicht erfolgreich war."
-#: builtins.c:1804
+# popd
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -4013,9 +4492,35 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
+"Entfernt Einträge vom Verzeichnisstapel.\n"
+"\n"
+" Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die\n"
+" Spitze des Stapels entfernt und in das Verzeichnis gewechselt, das\n"
+" dann an der Spitze steht.\n"
+"\n"
+" Optionen:\n"
+" -n\tEntfernt nur den Verzeichniseintrag und wechselt nicht\n"
+" \tdas Verzeichnis.\n"
+" \n"
+" Argumente:\n"
+" +N\tEntfernt den N-ten Eintrag von links, gezählt von \t\n"
+" Null, aus der von »dirs« anzeigten Liste. Beispielsweise\n"
+" entfernen »popd +0« den ersten und »popd +1« den zweiten\n"
+" Verzeichniseintrag.\n"
+"\n"
+" -N\tEntfernt den N-ten Eintrag von rechts, gezählt von Null,\n"
+" \taus der von »dirs« angeigten Liste. Beispielsweise entfernen\n"
+" »popd -0« den letzten und »popd -1« den vorletzten\n"
+" Verzeichniseintrag.\n"
+"\n"
+" Mit »dirs« kann der Verzeichnisstapel angezeigt werden.\n"
+"\n"
+" Rückgabewert:\n"
+" Gibt 0 zurück, außer wenn ein ungültiges Argument angegeben\n"
+" wurde oder der Verzeichniswechsel nicht erfolgreich war."
# dirs
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -4043,8 +4548,33 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
+"Zeigt den Verzeichnisstapel an.\n"
+"\n"
+" Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse.\n"
+" Diese werden mit dem `pushd' Kommando eingetragen und mit dem\n"
+" `popd' Kommando ausgelesen.\n"
+"\n"
+" Optionen:\n"
+" -c Löscht den Verzeichnisstapel.\n"
+" -l Keine Abkürzung für das Heimatverzeichnis durch die\n"
+" Tilde (~).\n"
+" -p Ausgabe von einem Eintrag pro Zeile.\n"
+" -v Ausgabe von einem Eintrag pro Zeile mit Angabe der\n"
+" Position im Stapel<\n"
+"\n"
+" Argumente:\n"
+" +N Gibt das N'te Element von links der Liste aus, die\n"
+" ohne Argumente ausgegeben wird. Die Zählung beginnt\n"
+" bei 0.\n"
+" -N Gibt das N'te Element von rechts der Liste aus, die\n"
+" ohne Argumente ausgegeben wird. Die Zählung beginnt\n"
+" bei 0.\n"
+"\n"
+" Rückgabewert:\n"
+" Gibt Erfolg zurück, außer bei einer ungültigen Option oder wenn\n"
+" ein Fehler auftritt."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -4064,8 +4594,27 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
+"Setzt oder löscht Shell Optionen.\n"
+"\n"
+" Ändert die in `Optionsname' genannten Shell Optionen. Ohne\n"
+" Argumente wird eine Liste der Shell Optionen un deren Stati\n"
+" ausgegeben.\n"
+"\n"
+" Optionen:\n"
+" -o Beschränkt die Optionsmanen auf die, welche mit \n"
+" `set -o' definiert werden müssen.\n"
+" -p Gibt alle Shelloptionen und deren Stati aus.\n"
+" -q Unterdrückt Ausgaben.\n"
+" -s Setzt jede Option in `Optionsname.'\n"
+" -u Deaktiviert jede Option in `Optionsname'.\n"
+"\n"
+" Rückgabewert:\n"
+" Gibt Erfolg zurück, wenn eine Option gesetzt worden ist. Wenn\n"
+" eine ungültige Option angegeben wurde oder eine Option deaktiviert\n"
+" worden ist, wird Fehler zurückgegeben."
-#: builtins.c:1884
+# formatf
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -4082,9 +4631,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -4092,13 +4641,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -4125,7 +4680,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4138,7 +4693,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4169,7 +4724,8 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+# mapfile
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4210,7 +4766,8 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+# readarray
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -4219,2433 +4776,3 @@ msgstr ""
"Liest Zeilen einer Datei in eine Array Variable.\n"
"\n"
" Ist ein Synonym für `mapfile'."
-
-#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)."
-
-#~ msgid "xrealloc: cannot allocate %lu bytes"
-#~ msgstr "xrealloc: Kann nicht %lu Bytes reservieren."
-
-#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)."
-
-#~ 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 "<unknown>"
-#~ msgstr "<unbekannt>"
-
-#~ 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 <signal.h>"
-#~ 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."
diff --git a/po/el.gmo b/po/el.gmo
new file mode 100644
index 00000000..8ea8d43f
--- /dev/null
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..bb88959e
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,4104 @@
+# translation of bash to Greek
+# Copyright (C) 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+#
+# Lefteris Dimitroulakis <ledimitro@gmail.com>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: bash-4.3-pre2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2013-11-15 10:37+0200\n"
+"Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
+"Language-Team: Greek <team@lists.gnome.gr>\n"
+"Language: el\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"
+"X-Generator: Lokalize 1.5\n"
+
+#: arrayfunc.c:51
+msgid "bad array subscript"
+msgstr ""
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr ""
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr ""
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr ""
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr ""
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: αδυναμία δημιουÏγίας: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: δεν μποÏÏŽ να βÏω keymap για εντολή"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: ο Ï€Ïώτος μη-λευκό διάστημα χαÏακτήÏας δεν είναι «\"»"
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr ""
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr ""
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "«%s»: μη έγκυÏο ψευδώνημο"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "μη ενεÏγοποιημένο line editing"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "«%s»: μη έγκυÏο όνομα keymap"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: αδυναμία ανάγνωσης: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "«%s»: αδυναμία αποσÏνδεσης"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "«%s»: άγνωστο όνομα συνάÏτησης"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s δεν έχει συνδεθεί με κανένα πλήκτÏο.\n"
+
+#: builtins/bind.def:316
+#, 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:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME δεν έχει οÏιστεί"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "πάÏα πολλά οÏίσματα"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD δεν έχει οÏιστεί"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "γÏαμμή %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "Ï€Ïοειδοποίηση: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: χÏήση: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, 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:801
+#, 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:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr ""
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "μη έγκυÏος οκταδικός αÏιθμός"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "μη έγκυÏος εξαδικός αÏιθμός"
+
+#: builtins/common.c:242 expr.c:1470
+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 ή έγκυÏο job spec"
+
+#: builtins/common.c:264 error.c:488
+#, 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 ""
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr ""
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr ""
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr ""
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr ""
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "σφάλμα εγγÏαφής: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr ""
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr ""
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: ασαφείς Ï€ÏοδιαγÏαφές εÏγασίας"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: μη έγκυÏο όνομα ενέÏγειας"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: δεν υπάÏχει Ï€ÏοδιαγÏαφή συμπλήÏωσης"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "Ï€Ïοειδοποίηση: η επιλογή -F μποÏεί να μη δουλέψει όπως πεÏιμένεις"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "Ï€Ïοειδοποίηση: η επιλογή -C ίσως δεν δουλέψει όπως αναμένετε"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr ""
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "μποÏεί να χÏησιμοποιηθεί μόνο μέσα σε συνάÏτηση"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr ""
+"η επιλογή «-f» δεν μποÏεί να χÏησιμοποιηθεί για τη δημιουÏγία συναÏτήσεων"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: συνάÏτηση μόνο για ανάγνωση"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr ""
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, 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:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: είναι κατάλογος"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: όχι κανονικό αÏχείο"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: αÏχείο Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: αδυναμία εκτέλεσης Î´Ï…Î±Î´Î¹ÎºÎ¿Ï Î±Ïχείου"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: αδυναμία εκτέλεσης: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "logout\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "όχι login shell: χÏησιμοποίησε «exit»"
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "ΥπάÏχουν σταματημένες εÏγασίες.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "ΥπάÏχουν εÏγασίες που Ï„Ïέχουν.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "δεν βÏέθηκε εντολή"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "history specification"
+
+#: builtins/fc.def:390
+#, 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
+#, 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 ""
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "hits\tcommand\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:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"ουδεμία βοήθεια ταιÏιάζει με «%s». Δοκιμάστε «help help» ή «man -k %s» ή "
+"«info %s»."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: αδυναμία ανοίγματος: %s"
+
+#: builtins/help.def:485
+#, 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 "δεν μποÏÏŽ να χÏησιμοποιήσω πεÏισσότεÏες της μιας από τις -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "θέση στο ιστοÏικό"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr ""
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: αποτυχία inlib"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "δεν επιτÏέπονται άλλες επιλογές με την «-x»"
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: οÏίσματα Ï€Ïέπει να είναι ID διεÏγασιών ή εÏγασιών"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Άγνωστο σφάλμα"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "αναμενόταν έκφÏαση"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: μη δικτοδοτημένος πίνακας"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: μη έγκυÏη Ï€ÏοδιαγÏαφή πεÏιγÏαφέα αÏχείου"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: μη έγκυÏος πεÏιγÏαφέας αÏχείου: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: μη έγκυÏος αÏιθμός γÏαμμής"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr ""
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr ""
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr ""
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "απαιτείται υποστήÏιξη μεταβλητής πίνακος"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "«%s»: απουσία χαÏακτήÏα φοÏμαÏίσματος "
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "«%c»: μη έγκυÏη Ï€ÏοδιαγÏαφή για φοÏμά χÏόνου"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "«%c»: μη έγκυÏος χαÏακτήÏας φοÏμαÏίσματος"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "Ï€Ïοειδοποίηση: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "απουσία hex ψηφίου για \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "απουσία ψηφίου unicode για \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "όχι άλλος κατάλογος"
+
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: μη έγκυÏο ÏŒÏισμα"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<όχι Ï„Ïέχων κατάλογος>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "κενή στίβα καταλόγου"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "δείκτης στοίβας καταλόγου"
+
+#: builtins/pushd.def:689
+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:711
+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:736
+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:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr ""
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "σφάλμα ανάγνωσης: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr ""
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "«unset» δεν μποÏεί να εφαÏμοστεί συγχÏόνως σε συνάÏτηση και μεταβλητή"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: αδυναμία «unset»"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: αδυναμία unset: %s μόνο για ανάγνωση"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: δεν είναι μεταβλητή πίνακα"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: δεν είναι συνάÏτηση"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr ""
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr ""
+"οι επιλογές κελÏφους δεν είναι δυνατόν συγχÏόνως να ενεÏγοποιηθοÏν και "
+"απενεÏγοποιηθοÏν"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: μη έγκυÏο όνομα επιλογής"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "απαιτείται όνομα αÏχείου για ÏŒÏισμα"
+
+#: builtins/source.def:155
+#, 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 ""
+
+#: builtins/type.def:317 builtins/type.def:393
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s είναι %s\n"
+
+#: builtins/type.def:337
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr ""
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: μη έγκυÏο ÏŒÏισμα οÏίου"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "«%c»: λάθος διαταγή"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr ""
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "ÏŒÏιο"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: αδυναμία μεταβολής οÏίου: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "οκταδικός αÏιθμός"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr ""
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr ""
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " γÏαμμή "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "τελευταία εντολή: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr ""
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "άγνωστο σφάλμα εντολής"
+
+#: error.c:441
+msgid "bad command type"
+msgstr ""
+
+#: error.c:442
+msgid "bad connector"
+msgstr ""
+
+#: error.c:443
+msgid "bad jump"
+msgstr ""
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr ""
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\aη αναμονή για δεδομένα έληξε: αυτόματη αποσÏνδεση\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "αδυναμία ανακατεÏθυνσης τυπικής εισόδου από /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: «%c»: μη έγκυÏος χαÏακτήÏας μοÏφοποίησης"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "pipe error"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: πεÏιοÏισμός: δεν μποÏεί να πεÏιέχεται «/» σε όνομα εντολής"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: εντολή δεν βÏέθηκε"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr ""
+
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: αδυναμία εκτέλεσης Î´Ï…Î±Î´Î¹ÎºÎ¿Ï Î±Ïχείου: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "«%s»: είναι ειδικό builtin"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "αδυναμία αντιγÏαφής του fd %d στον fd %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr ""
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr ""
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "συντακτικό σφάλμα στην έκφÏαση"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "απόπειÏα ανάθεσης σε μη-μεταβλητή"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "διαίÏεση διά 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr ""
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr ""
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "εκθέτης μικÏότεÏος του 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr ""
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "λείπει «)»"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "syntax error: αναμενόταν τελεστέος"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "syntax error: μη έγκυÏος αÏιθμητικός τελεστής"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (το λανθασμένο σÏμβολο είναι \"%s\")"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "μη έγκυÏη αÏιθμητική βάση"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "τιμή Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î· για βάση"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: σφάλμα έκφÏασης\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: αδυναμία Ï€Ïόσβασης στο γονικό κατάλογο"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "αδυναμία επανάταξης nodelay mode για fd %d"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr ""
+"αδυναμία εκχώÏησης νέου πεÏιγÏαφέα αÏχείου για είσοδο του bash από fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr ""
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: pgrp pipe"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr ""
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr ""
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr ""
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr ""
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: δεν υπάÏχει τέτοιο pid"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Σήμα %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Done"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "σταματημένο"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "σταματημένο(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr ""
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Done(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Έξοδος %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Άγνωστη κατάσταση"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(core dumped) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "child setpgid (%ld to %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: διεÏγασία %ld δεν αποτελεί θυγατÏική Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… κελÏφους"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Δεν υπάÏχουν στοιχεία για διεÏγασία %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: η εÏγασία %d είναι σταματημένη"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: η εÏγασία τεÏματίστηκε"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: εÏγασία %d ήδη στο παÏασκήνιο"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr ""
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: γÏαμμή %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (core dumped)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(Ï„ÏŽÏα wd: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: αποτυχία getpgrp"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr ""
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr ""
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "δεν υπάÏχει job control σ'αυτό το κέλυφος"
+
+#: 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 "άγνωστο"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr ""
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr ""
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr ""
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr ""
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr ""
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p ήδη στον πίνακα ως ελεÏθεÏος;\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "μη έγκυÏη βάση"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: άγνωστος host"
+
+#: 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 ""
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "μη υποστηÏιζόμενες δικτιακές υπηÏεσίες"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL: αδυναμία μεταβολής locale (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr "setlocale: LC_ALL: αδυναμία μεταβολής locale (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: αδυναμία μεταβολής locale (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: αδυναμία μεταβολής locale (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Έχεις μήνυμα στο $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Έχεις νέο μήνυμα στο $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "Το μήνυμα στο %s διαβάστηκε\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "syntax error: απαιτείται αÏιθμητική έκφÏαση"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "συντακτικό σφάλμα: δεν αναμενόταν «;»"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "συντακτικό σφάλμα: «((%s))»"
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr ""
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr ""
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: η οδηγία της ανακατεÏθυνσης «%d» εκτός οÏίων"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "μη αναμενόμενο EOF κατά την αναζήτηση «%c»"
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "μη αναμενόμενο EOF ενώ έψαχνα για «]]»"
+
+#: parse.y:4175
+#, fuzzy, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "syntax error in conditional expression: μη αναμενόμενο σÏμβολο «%s»"
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr ""
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "μη αναμενόμενο σÏμβολο «%s», αναμενόταν «)»"
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "αναμενόταν «)»"
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr ""
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr ""
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr ""
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr ""
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr ""
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr ""
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr ""
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr ""
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr ""
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "συντακτικό σφάλμα κοντά στο μη αναμενόμενο σÏμβολο «%s»"
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "συντακτικό σφάλμα κοντά σε «%s»"
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "syntax error: μη αναμενόμενο τέλος αÏχείου"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "συντακτικό σφάλμα"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "ΧÏήση «%s» για έξοδο από το κέλυφος.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "μη αναμενόμενο EOF ενώ έψαχνα «)»"
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: η συνάÏτηση «%s» δεν βÏέθηκε"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr ""
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: μη έγκυÏος πεÏιγÏαφέας αÏχείου"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: NULL file pointer"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: «%c»: μη έγκυÏη μοÏφή χαÏακτήÏα"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "πεÏιγÏαφέας αÏχείου εκτός οÏίων"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: ασαφής ανακατεÏθυνση"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: αδυναμία εγγÏαφής πάνω σε υπάÏχον αÏχείο"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: restricted: αδυναμία ανακατεÏθυνσης εξόδου"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "αδυναμία δημιουÏγίας Ï€ÏοσωÏÎ¹Î½Î¿Ï Î±Ïχείου για here-document: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: αδυναμία ανάθεσης fd σε μεταβλητή"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port δεν υποστηÏίζεται χωÏίς δικτÏωση"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr ""
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "δεν μπόÏεσα να βÏω /tmp, παÏακαλώ να τον δημιουÏγήσετε!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp Ï€Ïέπει να είναι ένα έγκυÏο όνομα αÏχείου"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: μη έγκυÏη επιλογή"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Δεν έχω όνομα!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, έκδοση %s-(%s)\n"
+
+#: shell.c:1828
+#, 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:1830
+msgid "GNU long options:\n"
+msgstr "ΜακÏές επιλογές GNU:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Επιλογές κελÏφους:\n"
+
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr ""
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t-%s ή επιλογή -o\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+"ΠληκτÏολόγησε «%s -c \"help set\"» για πληÏοφοÏίες επί των επιλογών "
+"κελÏφους.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+"ΠληκτÏολόγησε «%s -c help» για πεÏισσότεÏες πληÏοφοÏίες σχετικά με τις "
+"ενσωματομένες στο κέλυφος εντολές.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "ΧÏησιμοποίησε την εντολή «bashbug» για αναφοÏά σφαλμάτων.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: μη έγκυÏη λειτουÏγία"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr ""
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Hangup"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Διακοπή"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Quit"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Μη έγκυÏη οδηγία"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT trace/trap"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "οδηγία ABORT"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "οδηγία EMT"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "ΕξαίÏεση κινητής υποδιαστολής"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr ""
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr ""
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr ""
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr ""
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr ""
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Ρολόι συναγεÏμοÏ"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr ""
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Επείγουσα κατάσταση IO"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr ""
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Συνέχεια"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr ""
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr ""
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr ""
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "I/O ready"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "ÏŒÏιο CPU"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "ÎŒÏιο αÏχείου"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Alarm (virtual)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Alarm (profile)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "ΠαÏάθυÏο άλλαξε"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr ""
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr ""
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr ""
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "Δεδομένα εισόδου HFT στην αναμονή"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "επικείμενη έλλειψη ÏεÏματος"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "επικείμενη πτώση συστήματος"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "μετανάστευση διεÏγασίας σε άλλη CPU"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "Ï€ÏογÏαμματιστικό σφάλμα"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr ""
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr ""
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr ""
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Αίτηση για πληÏοφοÏίες"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Άγνωστο σήμα #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Άγνωστο σήμα #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr ""
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr ""
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr ""
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr ""
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "αδυναμία ανοίγματοε επώνυμης σωλήνας %s Ï€Ïος ανάγνωση"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "αδυναμία ανοίγματος επώνυμης σωλήνας %s Ï€Ïος εγγÏαφή"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr ""
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr ""
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr ""
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr ""
+
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: παÏάμετÏος κενή ή δεν έχει οÏιστεί"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: έκφÏαση αÏνητική < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: κακή αντικατάσταση"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: αδÏνατη ανάθεση κατ' αυτόν τον Ï„Ïόπο"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "κακή αντικατάσταση: δεν υπάÏχει «`» που κλείνει στο %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr ""
+
+#: test.c:147
+msgid "argument expected"
+msgstr "αναμενόταν ÏŒÏισμα"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: αναμενόταν ως έκφÏαση ακέÏαιος αÏιθμός"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "αναμενόταν «)»"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "σναμενόταν «)», βÏέθηκε %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr ""
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: αναμενόταν δυαδικός τελεστής"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "αποÏσα «]»"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "μη έγκυÏος αÏιθμός σήματος"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr ""
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: κακό σήμα %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr ""
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "επίπεδο κελÏφους (%d) Ï€Î¿Î»Ï Ï…ÏˆÎ·Î»ÏŒ, επαναφοÏά στο 1"
+
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: no function context at current scope"
+
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr ""
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: no function context at current scope"
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s έχει κενό exportstr"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "ο χαÏακτήÏας %d δεν έίναι έγκυÏος στην exportstr για %s"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "απουσία «=» στην exportstr για %s"
+
+#: variables.c:4344
+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:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: no global_variables context"
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: head of shell_variables not a temporary environment scope"
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: αδυναμία ανοίγματος ως ΑΡΧΕΙΟ"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr ""
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"License GPLv3+: GNU GPL έκδοση 3 ή νεώτεÏη <http://gnu.org/licenses/gpl."
+"html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, έκδοση %s (%s)\n"
+
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "This is free software; you are free to change and redistribute it."
+
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "There is NO WARRANTY, to the extent permitted by law."
+
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: αδυναμία εκχώÏησης %lu bytes (%lu bytes εκχωÏήθηκαν)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: αδυναμία εκχώÏησης %lu bytes"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: αδυναμία εκχώÏησης %lu bytes (%lu bytes εκχωÏήθηκαν)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: αδυναμία εκχώÏησης %lu bytes"
+
+#: 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 [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function ή 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
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [dir]"
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: 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] command [arg ...]"
+
+#: builtins.c:76
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-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 [-dms] [pattern ...]"
+msgstr "help [-dms] [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] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-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] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [name ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [name[=value] ...] ή export -p"
+
+#: builtins.c:146
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [name[=value] ...] ή 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 ". όνομα αÏχείου [οÏίσματα]"
+
+#: 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 [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [mode]"
+
+#: builtins.c:175
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [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 "coproc [NAME] command [redirections]"
+msgstr "coproc [NAME] command [redirections]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function name { COMMANDS ; } ή name () { COMMANDS ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ COMMANDS ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( expression ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ expression ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variables - Ονόματα και σημασία οÏισμένων μεταβλητών του κελÏφους"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | dir]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [optname ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v var] format [οÏίσματα]"
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+
+#: builtins.c:233
+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:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o option] [-DE] [name ...]"
+
+#: builtins.c:240
+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:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+
+#: builtins.c:254
+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:276
+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"
+" \n"
+" Επιλογές:\n"
+" -a\tαφαίÏεση όλων των ψευδωνήμων.\n"
+" \n"
+" ΕπιστÏέφει επιτυχία εκτός αν το ΟÎΟΜΑ δεν είναι υπάÏχον ψευδώνημο."
+
+#: builtins.c:289
+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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+
+#: builtins.c:328
+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:340
+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:352
+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:367
+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:385
+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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+
+#: builtins.c:422
+#, fuzzy
+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 ""
+"Εμφάνιση του ονόματος του Ï„Ïέχοντος καταλόγου εÏγασίας.\n"
+" \n"
+" Επιλογές:\n"
+" -L\tεμφάνιση της τιμής της $PWD if it names the current working\n"
+" \tdirectory\n"
+" -P\tεμφάνιση του Ï†Ï…ÏƒÎ¹ÎºÎ¿Ï ÎºÎ±Ï„Î±Î»ÏŒÎ³Î¿Ï…, χωÏίς συμβολικοÏÏ‚ συνδέσμους\n"
+" \n"
+" Από Ï€Ïοεπιλογή, η «pwd» συμπεÏιφέÏεται σαν να είχε δωθεί «-L» .\n"
+" \n"
+" Κατάσταση εξόδου:\n"
+" ΕπιστÏέφει 0 εκτός αν δίνεται μη έγκυÏη επιλογή ή ο Ï„Ïέχων κατάλογος\n"
+" δεν μποÏεί να διαβαστεί."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Εντολή Null.\n"
+" \n"
+" Κανένα αποτέλεσμα, η εντολή δεν κάνει τίποτα.\n"
+" \n"
+" Κατάσταση εξόδου:\n"
+" Πάντα επιτυχία."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+
+#: builtins.c:468
+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:487
+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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+
+#: builtins.c:535
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+
+#: builtins.c:552
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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:588
+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:603
+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:631
+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:643
+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:685
+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:706
+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:715
+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:725
+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:755
+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:770
+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:784
+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 as 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:809
+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:833
+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:869
+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\tlists 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:896
+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:915
+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:938
+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:983
+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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+
+#: builtins.c:1028
+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:1041
+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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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:1126
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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:1148
+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:1167
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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:1189
+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:1201 builtins.c:1216
+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:1232
+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:1248
+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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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:1329
+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:1338
+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:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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:1386
+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:1417
+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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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:1465
+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:1485
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+
+#: builtins.c:1506
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+
+#: builtins.c:1521
+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:1535
+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:1553
+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:1574
+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:1591
+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:1603
+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:1620
+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:1632
+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:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1658
+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:1672
+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:1684
+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:1699
+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:1711
+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:1737
+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:1794
+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:1828
+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:1858
+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:1887
+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:1908
+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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+
+#: builtins.c:1970
+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:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Ανάγνωση γÏαμμών από αÏχείο σε μεταβλητή Ï„Ïπου πίνακα.\n"
+" \n"
+" Συνώνημο του «mapfile»."
diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo
index d8813f82..5dd2d584 100644
--- a/po/en@boldquot.gmo
+++ b/po/en@boldquot.gmo
Binary files differ
diff --git a/po/en@boldquot.po b/po/en@boldquot.po
index 9fd27a06..05e6b8b5 100644
--- a/po/en@boldquot.po
+++ b/po/en@boldquot.po
@@ -1,7 +1,7 @@
# English translations for GNU bash package.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the GNU bash package.
-# Automatically generated, 2011.
+# Automatically generated, 2014.
#
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
@@ -30,100 +30,116 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU bash 4.2-release\n"
+"Project-Id-Version: GNU bash 4.3-release\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-11 11:19-0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
+"Language: en\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "bad array subscript"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: cannot convert indexed to associative array"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: invalid associative array key"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: cannot assign to non-numeric index"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: must use subscript when assigning associative array"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: cannot create: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: cannot find keymap for command"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: first non-whitespace character is not ‘\"’"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "no closing ‘%c’ in %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: missing colon separator"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "brace expansion: cannot allocate memory for %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "brace expansion: failed to allocate memory for %d elements"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "brace expansion: failed to allocate memory for ‘%s’"
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "‘%s’: invalid alias name"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "line editing not enabled"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "‘%s’: invalid keymap name"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: cannot read: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "‘%s’: cannot unbind"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "‘%s’: unknown function name"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s is not bound to any keys.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s can be invoked via "
@@ -136,7 +152,7 @@ msgstr "loop count"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -146,11 +162,15 @@ msgstr ""
" \n"
" Without EXPR, returns "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME not set"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD not set"
@@ -159,7 +179,7 @@ msgstr "OLDPWD not set"
msgid "line %d: "
msgstr "line %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "warning: "
@@ -169,11 +189,7 @@ msgstr "warning: "
msgid "%s: usage: "
msgstr "%s: usage: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "too many arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: option requires an argument"
@@ -188,7 +204,7 @@ msgstr "%s: numeric argument required"
msgid "%s: not found"
msgstr "%s: not found"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: invalid option"
@@ -198,7 +214,7 @@ msgstr "%s: invalid option"
msgid "%s: invalid option name"
msgstr "%s: invalid option name"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "‘%s’: not a valid identifier"
@@ -211,7 +227,7 @@ msgstr "invalid octal number"
msgid "invalid hex number"
msgstr "invalid hex number"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "invalid number"
@@ -225,7 +241,7 @@ msgstr "%s: invalid signal specification"
msgid "`%s': not a pid or valid job spec"
msgstr "‘%s’: not a pid or valid job spec"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: readonly variable"
@@ -297,48 +313,58 @@ msgstr "%s: error retrieving current directory: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: ambiguous job spec"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: invalid action name"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: no completion specification"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "warning: -F option may not work as you expect"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "warning: -C option may not work as you expect"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "not currently executing completion function"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "can only be used in a function"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: reference variable cannot be an array"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: nameref variable self references not allowed"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "cannot use ‘-f’ to make functions"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: readonly function"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: cannot destroy array variables in this way"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: cannot convert associative to indexed array"
@@ -367,24 +393,23 @@ msgstr "%s: not dynamically loaded"
msgid "%s: cannot delete: %s"
msgstr "%s: cannot delete: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: is a directory"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: not a regular file"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: file is too large"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: cannot execute binary file"
@@ -417,11 +442,11 @@ msgstr "There are running jobs.\n"
msgid "no command found"
msgstr "no command found"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "history specification"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: cannot open temp file: %s"
@@ -466,7 +491,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Shell commands matching keyword `"
msgstr[1] "Shell commands matching keywords `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -474,12 +499,12 @@ msgstr ""
"no help topics match ‘%s’. Try ‘help help’ or ‘man -k %s’ "
"or ‘info %s’."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: cannot open: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -508,7 +533,7 @@ msgstr "cannot use more than one of -anrw"
msgid "history position"
msgstr "history position"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: history expansion failed"
@@ -522,16 +547,16 @@ msgstr "%s: inlib failed"
msgid "no other options allowed with `-x'"
msgstr "no other options allowed with ‘-x’"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: arguments must be process or job IDs"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Unknown error"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "expression expected"
@@ -540,64 +565,69 @@ msgstr "expression expected"
msgid "%s: not an indexed array"
msgstr "%s: not an indexed array"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: invalid file descriptor specification"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: invalid file descriptor: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: invalid line count"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: invalid array origin"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: invalid callback quantum"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "empty array variable name"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "array variable support required"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "‘%s’: missing format character"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, c-format
msgid "`%c': invalid time format specification"
msgstr "‘%c’: invalid time format specification"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "‘%c’: invalid format character"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "warning: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "format parsing problem: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "missing hex digit for \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr "missing unicode digit for \\%c"
@@ -606,19 +636,24 @@ msgstr "missing unicode digit for \\%c"
msgid "no other directory"
msgstr "no other directory"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: invalid argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<no current directory>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "directory stack empty"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "directory stack index"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -663,7 +698,7 @@ msgstr ""
"by\n"
"\tdirs when invoked without options, starting with zero."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -709,7 +744,7 @@ msgstr ""
" \n"
" The ‘dirs’ builtin displays the directory stack."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -738,51 +773,51 @@ msgstr ""
" \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"
+" \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"
-"[0m’\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:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: invalid timeout specification"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "read error: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "can only ‘return’ from a function or sourced script"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "cannot simultaneously unset a function and a variable"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: cannot unset"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: cannot unset: readonly %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: not an array variable"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: not a function"
@@ -791,11 +826,11 @@ msgstr "%s: not a function"
msgid "shift count"
msgstr "shift count"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "cannot set and unset shell options simultaneously"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: invalid shell option name"
@@ -837,7 +872,7 @@ msgstr "%s is a function\n"
msgid "%s is a shell builtin\n"
msgstr "%s is a shell builtin\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s is %s\n"
@@ -847,45 +882,45 @@ msgstr "%s is %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s is hashed (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: invalid limit argument"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "‘%c’: bad command"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: cannot get limit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limit"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: cannot modify limit: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "octal number"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "‘%c’: invalid symbolic mode operator"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "‘%c’: invalid symbolic mode character"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " line "
@@ -899,298 +934,313 @@ msgstr "last command: %s\n"
msgid "Aborting..."
msgstr "Aborting..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "unknown command error"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "bad command type"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "bad connector"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "bad jump"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: unbound variable"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\atimed out waiting for input: auto-logout\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "cannot redirect standard input from /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: ‘%c’: invalid format character"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "pipe error"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximum function nesting level exceeded (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: restricted: cannot specify ‘/’ in command names"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: command not found"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: bad interpreter"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: cannot execute binary file: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "‘%s’: is a special builtin"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "cannot duplicate fd %d to fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "expression recursion level exceeded"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "recursion stack underflow"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntax error in expression"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "attempted assignment to non-variable"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "division by 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bug: bad expassign token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "‘:’ expected for conditional expression"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponent less than 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "identifier expected after pre-increment or pre-decrement"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "missing ‘)’"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntax error: operand expected"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntax error: invalid arithmetic operator"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (error token is “%sâ€)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "invalid arithmetic base"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "value too great for base"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: expression error\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: cannot access parent directories"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "cannot reset nodelay mode for fd %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "forked pid %d appears in running job %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "deleting stopped job %d with process group %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: process %5ld (%s) in the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) marked as still alive"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: no such pid"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Done"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stopped"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Stopped(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Running"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Done(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Exit %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Unknown status"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core dumped) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "child setpgid (%ld to %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: No record of process %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: job %d is stopped"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: job has terminated"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: job %d already in background"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: turning on WNOHANG to avoid indefinite block"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: line %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core dumped)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd now: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp failed"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: line discipline"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "cannot set terminal process group (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "no job control in this shell"
@@ -1212,54 +1262,54 @@ msgstr ""
msgid "unknown"
msgstr "unknown"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: block on free list clobbered"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: called with already freed block argument"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: called with unallocated block argument"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: underflow detected; mh_nbytes out of range"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: start and end chunk sizes differ"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: called with unallocated block argument"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: underflow detected; mh_nbytes out of range"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: start and end chunk sizes differ"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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:184
+#: lib/malloc/table.c:203
#, 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:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p already in table as free?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "invalid base"
@@ -1282,35 +1332,35 @@ msgstr "%s: bad network path specification"
msgid "network operations not supported"
msgstr "network operations not supported"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: cannot change locale (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: cannot change locale (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: cannot change locale (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: cannot change locale (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "You have mail in $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "You have new mail in $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "The mail in %s has been read\n"
@@ -1328,118 +1378,118 @@ msgstr "syntax error: ‘;’ unexpected"
msgid "syntax error: `((%s))'"
msgstr "syntax error: ‘((%s))’"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: bad instruction type %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: redirection instruction ‘%d’ out of range"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "unexpected EOF while looking for matching ‘%c’"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "unexpected EOF while looking for ‘]]’"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "syntax error in conditional expression: unexpected token ‘%s’"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "syntax error in conditional expression"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "unexpected token ‘%s’, expected ‘)’"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "expected ‘)’"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "unexpected argument ‘%s’ to conditional unary operator"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "unexpected argument to conditional unary operator"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "unexpected token ‘%s’, conditional binary operator expected"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "conditional binary operator expected"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "unexpected argument ‘%s’ to conditional binary operator"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "unexpected argument to conditional binary operator"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "unexpected token ‘%c’ in conditional command"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "unexpected token ‘%s’ in conditional command"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "unexpected token %d in conditional command"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "syntax error near unexpected token ‘%s’"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "syntax error near ‘%s’"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "syntax error: unexpected end of file"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "syntax error"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Use “%s†to leave the shell.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "unexpected EOF while looking for matching ‘)’"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: function ‘%s’ not found"
@@ -1449,90 +1499,90 @@ msgstr "completion: function ‘%s’ not found"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: bad connector ‘%d’"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: invalid file descriptor"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: NULL file pointer"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: ‘%c’: invalid format character"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "file descriptor out of range"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: ambiguous redirect"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: cannot overwrite existing file"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restricted: cannot redirect output"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "cannot create temp file for here-document: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: cannot assign fd to variable"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port not supported without networking"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "redirection error: cannot duplicate fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "could not find /tmp, please create!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp must be a valid directory name"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: invalid option"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "I have no name!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, version %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1541,42 +1591,42 @@ msgstr ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU long options:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Shell options:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s or -o option\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Use the ‘bashbug’ command to report bugs.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: invalid operation"
@@ -1750,72 +1800,77 @@ msgstr "Unknown Signal #"
msgid "Unknown Signal #%d"
msgstr "Unknown Signal #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "bad substitution: no closing ‘%s’ in %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: cannot assign list to array member"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "cannot make pipe for process substitution"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "cannot make child for process substitution"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "cannot open named pipe %s for reading"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "cannot open named pipe %s for writing"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "cannot duplicate named pipe %s as fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "cannot make pipe for command substitution"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "cannot make child for command substitution"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: cannot duplicate pipe as fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: invalid variable name for name reference"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parameter null or not set"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: substring expression < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: bad substitution"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: cannot assign in this way"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1823,129 +1878,144 @@ msgstr ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "bad substitution: no closing “`†in %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "no match: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argument expected"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: integer expression expected"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "‘)’ expected"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "‘)’ expected, found %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: unary operator expected"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: binary operator expected"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "missing ‘]’"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "invalid signal number"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: bad signal %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "error importing function definition for ‘%s’"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "shell level (%d) too high, resetting to 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: circular name reference"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: no function context at current scope"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: variable may not be assigned value"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: no function context at current scope"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s has null exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "invalid character %d in exportstr for %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "no ‘=’ in exportstr for %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: no global_variables context"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: head of shell_variables not a temporary environment scope"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: cannot open as FILE"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: invalid value for trace file descriptor"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: compatibility value out of range"
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1953,34 +2023,22 @@ msgstr ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, version %s (%s)\n"
-#: version.c:91 version2.c:88
-#, 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 version2.c:89
-#, 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"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "This is free software; you are free to change and redistribute it."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "There is NO WARRANTY, to the extent permitted by law."
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2012,10 +2070,10 @@ msgstr "unalias [-a] name [name ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
#: builtins.c:54
@@ -2035,8 +2093,8 @@ msgid "caller [expr]"
msgstr "caller [expr]"
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [dir]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2059,8 +2117,8 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] command [arg ...]"
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
@@ -2167,8 +2225,8 @@ 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 ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [name ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
@@ -2215,20 +2273,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] name [name ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mode]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2439,6 +2497,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2475,11 +2535,13 @@ msgstr ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2497,7 +2559,7 @@ msgstr ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2515,7 +2577,7 @@ msgstr ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2539,7 +2601,7 @@ msgstr ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2568,7 +2630,7 @@ msgstr ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2591,13 +2653,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2625,21 +2695,29 @@ msgstr ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of ‘..’\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof ‘..’\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if ‘-L’ were "
"specified.\n"
+" ‘..’ is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; non-zero otherwise."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2667,7 +2745,7 @@ msgstr ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2683,7 +2761,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2695,7 +2773,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2707,7 +2785,7 @@ msgstr ""
" Exit Status:\n"
" Always fails."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2742,7 +2820,7 @@ msgstr ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2762,6 +2840,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2777,7 +2856,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Set variable values and attributes.\n"
" \n"
@@ -2797,6 +2877,7 @@ msgstr ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2813,9 +2894,10 @@ msgstr ""
" command. The ‘-g’ option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2825,7 +2907,7 @@ msgstr ""
" \n"
" Obsolete. See ‘help declare’."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2836,8 +2918,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Define local variables.\n"
" \n"
@@ -2848,14 +2930,16 @@ msgstr ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2867,6 +2951,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2883,7 +2968,9 @@ msgid ""
msgstr ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2895,6 +2982,7 @@ msgstr ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2909,7 +2997,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless a write error occurs."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2931,7 +3019,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless a write error occurs."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2981,7 +3069,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3001,7 +3089,7 @@ msgstr ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3082,7 +3170,7 @@ msgstr ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3124,7 +3212,7 @@ msgstr ""
" Returns success unless COMMAND is not found or a redirection error "
"occurs."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3136,7 +3224,7 @@ msgstr ""
" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3150,7 +3238,7 @@ msgstr ""
"executed\n"
" in a login shell."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3198,8 +3286,8 @@ msgstr ""
" 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"
+" 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"
@@ -3208,7 +3296,7 @@ msgstr ""
" Returns success or status of executed command; non-zero if an error "
"occurs."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3228,7 +3316,7 @@ msgstr ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3252,7 +3340,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3263,7 +3351,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3284,7 +3372,7 @@ msgstr ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3296,7 +3384,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3336,7 +3424,7 @@ msgstr ""
" Returns success unless PATTERN is not found or an invalid option is "
"given."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3401,7 +3489,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3410,7 +3498,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3431,7 +3519,7 @@ msgstr ""
" \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"
+" -n\tlists 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"
@@ -3445,7 +3533,7 @@ msgstr ""
" 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:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3475,7 +3563,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option or JOBSPEC is given."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3515,7 +3603,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3601,7 +3689,7 @@ msgstr ""
" Exit Status:\n"
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3636,16 +3724,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Read a line from the standard input and split it into fields.\n"
@@ -3681,19 +3772,22 @@ msgstr ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3713,7 +3807,7 @@ msgstr ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3779,7 +3873,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3861,7 +3955,7 @@ msgstr ""
" -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"
+" -P If set, do not resolve 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"
@@ -3879,7 +3973,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3888,6 +3982,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3905,6 +4001,8 @@ msgstr ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3915,7 +4013,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3949,7 +4047,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3961,7 +4059,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3978,14 +4078,16 @@ msgstr ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\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:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4003,7 +4105,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4027,7 +4129,7 @@ msgstr ""
" Returns the status of the last command executed in FILENAME; fails if\n"
" FILENAME cannot be read."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4051,7 +4153,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4116,6 +4218,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4194,6 +4298,8 @@ msgstr ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4209,7 +4315,7 @@ msgstr ""
" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
" false or an invalid argument is given."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4222,7 +4328,7 @@ msgstr ""
"must\n"
" be a literal ‘]’, to match the opening ‘[’."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4242,7 +4348,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4327,7 +4433,7 @@ msgstr ""
" Returns success unless a SIGSPEC is invalid or an invalid option is "
"given."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4371,8 +4477,8 @@ msgstr ""
" \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\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"
@@ -4385,7 +4491,7 @@ msgstr ""
" Returns success if all of the NAMEs are found; fails if any are not "
"found."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4414,6 +4520,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4455,6 +4564,9 @@ msgstr ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\n"
" \n"
" If LIMIT is given, it is the new value of the specified resource; the\n"
" special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ "
@@ -4470,7 +4582,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4502,61 +4614,69 @@ msgstr ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is 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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4580,7 +4700,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4610,7 +4730,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4633,8 +4753,8 @@ msgstr ""
" \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"
+" 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"
@@ -4647,7 +4767,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4675,7 +4795,7 @@ msgstr ""
" Exit Status:\n"
" The return status is the return status of PIPELINE."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4693,7 +4813,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4731,7 +4851,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4749,7 +4869,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4767,7 +4887,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4789,7 +4909,7 @@ msgstr ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4813,7 +4933,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is readonly."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4831,7 +4951,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4856,7 +4976,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the resumed job."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4874,7 +4994,7 @@ msgstr ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4928,7 +5048,7 @@ msgstr ""
" Exit Status:\n"
" 0 or 1 depending on value of EXPRESSION."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5032,7 +5152,7 @@ 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:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5090,7 +5210,7 @@ msgstr ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5127,13 +5247,13 @@ msgstr ""
" \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"
+" \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"
-"[0m’\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"
@@ -5142,7 +5262,7 @@ msgstr ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5197,7 +5317,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5235,7 +5355,7 @@ msgstr ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5252,9 +5372,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5262,6 +5382,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5282,9 +5408,9 @@ msgstr ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5292,12 +5418,18 @@ msgstr ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5347,7 +5479,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5369,7 +5501,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5428,7 +5560,7 @@ msgstr ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5506,7 +5638,7 @@ msgstr ""
"or\n"
" not an indexed array."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
diff --git a/po/en@quot.gmo b/po/en@quot.gmo
index 46cb2bc6..322bbd64 100644
--- a/po/en@quot.gmo
+++ b/po/en@quot.gmo
Binary files differ
diff --git a/po/en@quot.po b/po/en@quot.po
index ec46fb14..a0c939d0 100644
--- a/po/en@quot.po
+++ b/po/en@quot.po
@@ -1,7 +1,7 @@
# English translations for GNU bash package.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the GNU bash package.
-# Automatically generated, 2011.
+# Automatically generated, 2014.
#
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
@@ -27,100 +27,116 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU bash 4.2-release\n"
+"Project-Id-Version: GNU bash 4.3-release\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-11 11:19-0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
+"Language: en\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "bad array subscript"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: cannot convert indexed to associative array"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: invalid associative array key"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: cannot assign to non-numeric index"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: must use subscript when assigning associative array"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: cannot create: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: cannot find keymap for command"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: first non-whitespace character is not ‘\"’"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "no closing ‘%c’ in %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: missing colon separator"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "brace expansion: cannot allocate memory for %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "brace expansion: failed to allocate memory for %d elements"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "brace expansion: failed to allocate memory for ‘%s’"
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "‘%s’: invalid alias name"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "line editing not enabled"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "‘%s’: invalid keymap name"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: cannot read: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "‘%s’: cannot unbind"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "‘%s’: unknown function name"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s is not bound to any keys.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s can be invoked via "
@@ -133,7 +149,7 @@ msgstr "loop count"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -143,11 +159,15 @@ msgstr ""
" \n"
" Without EXPR, returns "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME not set"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD not set"
@@ -156,7 +176,7 @@ msgstr "OLDPWD not set"
msgid "line %d: "
msgstr "line %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "warning: "
@@ -166,11 +186,7 @@ msgstr "warning: "
msgid "%s: usage: "
msgstr "%s: usage: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "too many arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: option requires an argument"
@@ -185,7 +201,7 @@ msgstr "%s: numeric argument required"
msgid "%s: not found"
msgstr "%s: not found"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: invalid option"
@@ -195,7 +211,7 @@ msgstr "%s: invalid option"
msgid "%s: invalid option name"
msgstr "%s: invalid option name"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "‘%s’: not a valid identifier"
@@ -208,7 +224,7 @@ msgstr "invalid octal number"
msgid "invalid hex number"
msgstr "invalid hex number"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "invalid number"
@@ -222,7 +238,7 @@ msgstr "%s: invalid signal specification"
msgid "`%s': not a pid or valid job spec"
msgstr "‘%s’: not a pid or valid job spec"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: readonly variable"
@@ -294,48 +310,58 @@ msgstr "%s: error retrieving current directory: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: ambiguous job spec"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: invalid action name"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: no completion specification"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "warning: -F option may not work as you expect"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "warning: -C option may not work as you expect"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "not currently executing completion function"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "can only be used in a function"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: reference variable cannot be an array"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: nameref variable self references not allowed"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "cannot use ‘-f’ to make functions"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: readonly function"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: cannot destroy array variables in this way"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: cannot convert associative to indexed array"
@@ -364,24 +390,23 @@ msgstr "%s: not dynamically loaded"
msgid "%s: cannot delete: %s"
msgstr "%s: cannot delete: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: is a directory"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: not a regular file"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: file is too large"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: cannot execute binary file"
@@ -414,11 +439,11 @@ msgstr "There are running jobs.\n"
msgid "no command found"
msgstr "no command found"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "history specification"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: cannot open temp file: %s"
@@ -463,19 +488,19 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Shell commands matching keyword `"
msgstr[1] "Shell commands matching keywords `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: cannot open: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -502,7 +527,7 @@ msgstr "cannot use more than one of -anrw"
msgid "history position"
msgstr "history position"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: history expansion failed"
@@ -516,16 +541,16 @@ msgstr "%s: inlib failed"
msgid "no other options allowed with `-x'"
msgstr "no other options allowed with ‘-x’"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: arguments must be process or job IDs"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Unknown error"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "expression expected"
@@ -534,64 +559,69 @@ msgstr "expression expected"
msgid "%s: not an indexed array"
msgstr "%s: not an indexed array"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: invalid file descriptor specification"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: invalid file descriptor: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: invalid line count"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: invalid array origin"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: invalid callback quantum"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "empty array variable name"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "array variable support required"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "‘%s’: missing format character"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, c-format
msgid "`%c': invalid time format specification"
msgstr "‘%c’: invalid time format specification"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "‘%c’: invalid format character"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "warning: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "format parsing problem: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "missing hex digit for \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr "missing unicode digit for \\%c"
@@ -600,19 +630,24 @@ msgstr "missing unicode digit for \\%c"
msgid "no other directory"
msgstr "no other directory"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: invalid argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<no current directory>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "directory stack empty"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "directory stack index"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -656,7 +691,7 @@ msgstr ""
"by\n"
"\tdirs when invoked without options, starting with zero."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -702,7 +737,7 @@ msgstr ""
" \n"
" The ‘dirs’ builtin displays the directory stack."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -740,40 +775,40 @@ msgstr ""
" \n"
" The ‘dirs’ builtin displays the directory stack."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: invalid timeout specification"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "read error: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "can only ‘return’ from a function or sourced script"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "cannot simultaneously unset a function and a variable"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: cannot unset"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: cannot unset: readonly %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: not an array variable"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: not a function"
@@ -782,11 +817,11 @@ msgstr "%s: not a function"
msgid "shift count"
msgstr "shift count"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "cannot set and unset shell options simultaneously"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: invalid shell option name"
@@ -828,7 +863,7 @@ msgstr "%s is a function\n"
msgid "%s is a shell builtin\n"
msgstr "%s is a shell builtin\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s is %s\n"
@@ -838,45 +873,45 @@ msgstr "%s is %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s is hashed (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: invalid limit argument"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "‘%c’: bad command"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: cannot get limit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limit"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: cannot modify limit: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "octal number"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "‘%c’: invalid symbolic mode operator"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "‘%c’: invalid symbolic mode character"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " line "
@@ -890,298 +925,313 @@ msgstr "last command: %s\n"
msgid "Aborting..."
msgstr "Aborting..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "unknown command error"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "bad command type"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "bad connector"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "bad jump"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: unbound variable"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\atimed out waiting for input: auto-logout\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "cannot redirect standard input from /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: ‘%c’: invalid format character"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "pipe error"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximum function nesting level exceeded (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: restricted: cannot specify ‘/’ in command names"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: command not found"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: bad interpreter"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: cannot execute binary file: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "‘%s’: is a special builtin"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "cannot duplicate fd %d to fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "expression recursion level exceeded"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "recursion stack underflow"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntax error in expression"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "attempted assignment to non-variable"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "division by 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bug: bad expassign token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "‘:’ expected for conditional expression"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponent less than 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "identifier expected after pre-increment or pre-decrement"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "missing ‘)’"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntax error: operand expected"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntax error: invalid arithmetic operator"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (error token is “%sâ€)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "invalid arithmetic base"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "value too great for base"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: expression error\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: cannot access parent directories"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "cannot reset nodelay mode for fd %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "forked pid %d appears in running job %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "deleting stopped job %d with process group %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: process %5ld (%s) in the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) marked as still alive"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: no such pid"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Done"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stopped"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Stopped(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Running"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Done(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Exit %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Unknown status"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core dumped) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "child setpgid (%ld to %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: No record of process %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: job %d is stopped"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: job has terminated"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: job %d already in background"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: turning on WNOHANG to avoid indefinite block"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: line %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core dumped)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd now: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp failed"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: line discipline"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "cannot set terminal process group (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "no job control in this shell"
@@ -1203,54 +1253,54 @@ msgstr ""
msgid "unknown"
msgstr "unknown"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: block on free list clobbered"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: called with already freed block argument"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: called with unallocated block argument"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: underflow detected; mh_nbytes out of range"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: start and end chunk sizes differ"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: called with unallocated block argument"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: underflow detected; mh_nbytes out of range"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: start and end chunk sizes differ"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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:184
+#: lib/malloc/table.c:203
#, 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:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p already in table as free?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "invalid base"
@@ -1273,35 +1323,35 @@ msgstr "%s: bad network path specification"
msgid "network operations not supported"
msgstr "network operations not supported"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: cannot change locale (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: cannot change locale (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: cannot change locale (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: cannot change locale (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "You have mail in $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "You have new mail in $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "The mail in %s has been read\n"
@@ -1319,118 +1369,118 @@ msgstr "syntax error: ‘;’ unexpected"
msgid "syntax error: `((%s))'"
msgstr "syntax error: ‘((%s))’"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: bad instruction type %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: redirection instruction ‘%d’ out of range"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "unexpected EOF while looking for matching ‘%c’"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "unexpected EOF while looking for ‘]]’"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "syntax error in conditional expression: unexpected token ‘%s’"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "syntax error in conditional expression"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "unexpected token ‘%s’, expected ‘)’"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "expected ‘)’"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "unexpected argument ‘%s’ to conditional unary operator"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "unexpected argument to conditional unary operator"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "unexpected token ‘%s’, conditional binary operator expected"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "conditional binary operator expected"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "unexpected argument ‘%s’ to conditional binary operator"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "unexpected argument to conditional binary operator"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "unexpected token ‘%c’ in conditional command"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "unexpected token ‘%s’ in conditional command"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "unexpected token %d in conditional command"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "syntax error near unexpected token ‘%s’"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "syntax error near ‘%s’"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "syntax error: unexpected end of file"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "syntax error"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Use “%s†to leave the shell.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "unexpected EOF while looking for matching ‘)’"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: function ‘%s’ not found"
@@ -1440,90 +1490,90 @@ msgstr "completion: function ‘%s’ not found"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: bad connector ‘%d’"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: invalid file descriptor"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: NULL file pointer"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: ‘%c’: invalid format character"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "file descriptor out of range"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: ambiguous redirect"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: cannot overwrite existing file"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restricted: cannot redirect output"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "cannot create temp file for here-document: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: cannot assign fd to variable"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port not supported without networking"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "redirection error: cannot duplicate fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "could not find /tmp, please create!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp must be a valid directory name"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: invalid option"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "I have no name!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, version %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1532,39 +1582,39 @@ msgstr ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU long options:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Shell options:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s or -o option\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Use the ‘bashbug’ command to report bugs.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: invalid operation"
@@ -1738,72 +1788,77 @@ msgstr "Unknown Signal #"
msgid "Unknown Signal #%d"
msgstr "Unknown Signal #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "bad substitution: no closing ‘%s’ in %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: cannot assign list to array member"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "cannot make pipe for process substitution"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "cannot make child for process substitution"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "cannot open named pipe %s for reading"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "cannot open named pipe %s for writing"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "cannot duplicate named pipe %s as fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "cannot make pipe for command substitution"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "cannot make child for command substitution"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: cannot duplicate pipe as fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: invalid variable name for name reference"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parameter null or not set"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: substring expression < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: bad substitution"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: cannot assign in this way"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1811,129 +1866,144 @@ msgstr ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "bad substitution: no closing “`†in %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "no match: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argument expected"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: integer expression expected"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "‘)’ expected"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "‘)’ expected, found %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: unary operator expected"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: binary operator expected"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "missing ‘]’"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "invalid signal number"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: bad signal %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "error importing function definition for ‘%s’"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "shell level (%d) too high, resetting to 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: circular name reference"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: no function context at current scope"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: variable may not be assigned value"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: no function context at current scope"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s has null exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "invalid character %d in exportstr for %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "no ‘=’ in exportstr for %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: no global_variables context"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: head of shell_variables not a temporary environment scope"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: cannot open as FILE"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: invalid value for trace file descriptor"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: compatibility value out of range"
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1941,34 +2011,22 @@ msgstr ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, version %s (%s)\n"
-#: version.c:91 version2.c:88
-#, 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:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "This is free software; you are free to change and redistribute it."
-#: version.c:92 version2.c:89
-#, 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"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "There is NO WARRANTY, to the extent permitted by law."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2000,10 +2058,10 @@ msgstr "unalias [-a] name [name ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
#: builtins.c:54
@@ -2023,8 +2081,8 @@ msgid "caller [expr]"
msgstr "caller [expr]"
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [dir]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2047,8 +2105,8 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] command [arg ...]"
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
@@ -2155,8 +2213,8 @@ 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 ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [name ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
@@ -2203,20 +2261,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] name [name ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mode]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2426,6 +2484,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2462,11 +2522,13 @@ msgstr ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2484,7 +2546,7 @@ msgstr ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2502,7 +2564,7 @@ msgstr ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2526,7 +2588,7 @@ msgstr ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2554,7 +2616,7 @@ msgstr ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2577,13 +2639,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2611,20 +2681,28 @@ msgstr ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of ‘..’\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof ‘..’\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if ‘-L’ were specified.\n"
+" ‘..’ is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; non-zero otherwise."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2652,7 +2730,7 @@ msgstr ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2668,7 +2746,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2680,7 +2758,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2692,7 +2770,7 @@ msgstr ""
" Exit Status:\n"
" Always fails."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2726,7 +2804,7 @@ msgstr ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2746,6 +2824,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2761,7 +2840,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Set variable values and attributes.\n"
" \n"
@@ -2781,6 +2861,7 @@ msgstr ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2796,9 +2877,10 @@ msgstr ""
" command. The ‘-g’ option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2808,7 +2890,7 @@ msgstr ""
" \n"
" Obsolete. See ‘help declare’."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2819,8 +2901,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Define local variables.\n"
" \n"
@@ -2831,14 +2913,16 @@ msgstr ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2850,6 +2934,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2866,7 +2951,9 @@ msgid ""
msgstr ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2878,6 +2965,7 @@ msgstr ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2892,7 +2980,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless a write error occurs."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2914,7 +3002,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless a write error occurs."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2964,7 +3052,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2984,7 +3072,7 @@ msgstr ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3062,7 +3150,7 @@ msgstr ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3104,7 +3192,7 @@ msgstr ""
" Returns success unless COMMAND is not found or a redirection error "
"occurs."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3116,7 +3204,7 @@ msgstr ""
" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3130,7 +3218,7 @@ msgstr ""
"executed\n"
" in a login shell."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3186,7 +3274,7 @@ msgstr ""
" Returns success or status of executed command; non-zero if an error "
"occurs."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3206,7 +3294,7 @@ msgstr ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3230,7 +3318,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3241,7 +3329,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3262,7 +3350,7 @@ msgstr ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3274,7 +3362,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3314,7 +3402,7 @@ msgstr ""
" Returns success unless PATTERN is not found or an invalid option is "
"given."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3378,7 +3466,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3387,7 +3475,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3408,7 +3496,7 @@ msgstr ""
" \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"
+" -n\tlists 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"
@@ -3422,7 +3510,7 @@ msgstr ""
" 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:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3452,7 +3540,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option or JOBSPEC is given."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3492,7 +3580,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3578,7 +3666,7 @@ msgstr ""
" Exit Status:\n"
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3613,16 +3701,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Read a line from the standard input and split it into fields.\n"
@@ -3658,19 +3749,22 @@ msgstr ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3690,7 +3784,7 @@ msgstr ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3756,7 +3850,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3838,7 +3932,7 @@ msgstr ""
" -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"
+" -P If set, do not resolve 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"
@@ -3856,7 +3950,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3865,6 +3959,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3882,6 +3978,8 @@ msgstr ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3892,7 +3990,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3926,7 +4024,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3938,7 +4036,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3955,14 +4055,16 @@ msgstr ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\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:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3980,7 +4082,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4004,7 +4106,7 @@ msgstr ""
" Returns the status of the last command executed in FILENAME; fails if\n"
" FILENAME cannot be read."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4028,7 +4130,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4093,6 +4195,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4171,6 +4275,8 @@ msgstr ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4186,7 +4292,7 @@ msgstr ""
" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
" false or an invalid argument is given."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4198,7 +4304,7 @@ msgstr ""
" This is a synonym for the “test†builtin, but the last argument must\n"
" be a literal ‘]’, to match the opening ‘[’."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4218,7 +4324,7 @@ msgstr ""
" Exit Status:\n"
" Always succeeds."
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4302,7 +4408,7 @@ msgstr ""
" Returns success unless a SIGSPEC is invalid or an invalid option is "
"given."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4358,7 +4464,7 @@ msgstr ""
" Returns success if all of the NAMEs are found; fails if any are not "
"found."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4387,6 +4493,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4428,6 +4537,9 @@ msgstr ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4442,7 +4554,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4474,61 +4586,69 @@ msgstr ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is 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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4550,7 +4670,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4580,7 +4700,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4616,7 +4736,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4644,7 +4764,7 @@ msgstr ""
" Exit Status:\n"
" The return status is the return status of PIPELINE."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4662,7 +4782,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4700,7 +4820,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4718,7 +4838,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4736,7 +4856,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4758,7 +4878,7 @@ msgstr ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4782,7 +4902,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless NAME is readonly."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4800,7 +4920,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the last command executed."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4824,7 +4944,7 @@ msgstr ""
" Exit Status:\n"
" Returns the status of the resumed job."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4842,7 +4962,7 @@ msgstr ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4894,7 +5014,7 @@ msgstr ""
" Exit Status:\n"
" 0 or 1 depending on value of EXPRESSION."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4998,7 +5118,7 @@ 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:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5056,7 +5176,7 @@ msgstr ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5106,7 +5226,7 @@ msgstr ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5160,7 +5280,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5198,7 +5318,7 @@ msgstr ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5215,9 +5335,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5225,6 +5345,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5245,9 +5371,9 @@ msgstr ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5255,12 +5381,18 @@ msgstr ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5310,7 +5442,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5332,7 +5464,7 @@ msgstr ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5390,7 +5522,7 @@ msgstr ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5468,7 +5600,7 @@ msgstr ""
"or\n"
" not an indexed array."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
diff --git a/po/eo.gmo b/po/eo.gmo
index c1367bca..4c35a7d6 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index ec26269f..c75a151e 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,118 +1,146 @@
-# -*- eval: (po-consider-source-path "../builtins/"); -*-
# Esperanto language file for GNU Bash.
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Sergio Pokrovskij <sergio.pokrovskij@gmail.com>, 1998, 2006, 2009.
+# Sergio Pokrovskij <sergio.pokrovskij@gmail.com>, 1998, 2006, 2009, 2011, 2014.
#
+# -*- eval: (po-consider-source-path "~/Documents/Eo/Work/i18n/bash-4.3-rc2/builtins"); -*-
+# -*- eval: (po-consider-source-path "~/Documents/Eo/Work/i18n/bash-4.3-rc2"); -*-
# Stilaj notoj:
-# Angulaj citiloj limigas «plurajn vortojn»,
+# La angulaj citiloj limigas «plurajn vortojn»,
# 99-66 estas la citiloj de „unuvortaĵo‟
#
-# La mesaÄojn pri internaj eraroj (markitaj per XXX) probable malnecesas
-# traduki.
+# La mesaÄojn pri internaj eraroj (markitajn per XXX) probable malnecesas traduki.
#
-# Glosaro:
-# callback retrovoko
-# to force ... pre superforto
-# granted jesigita
-# here-document tuj-dokumento (info "(bash)Redirections")
+# ---- Glosaro:
+# associative array asocitabelo (info "(bash)Arrays")
+# brace expansion vinkulmalvolvo
+# callback retrovoko
+# extended file attributes kromatributoj (de dosiero)
+# to force ... per superforto
+# granted jesigita
+# here-document tuj-dokumento (info "(bash)Redirections")
+# indexed array entjerindica tabelo (info "(bash)Arrays")
+# positional parameter numerparametro ($1 ...) (info "(bash)Positional Parameters")
+# resolve (symbolic links) elnodigi
+# special builtin speciala komando (info "(coreutils)Special built-in utilities")
+# substitution anstataÅ­igo (info "(bash)Shell Expansions")
+# unset malvalorizi (variablon); malaktivigi, malÅalti (opcion, nomon)
msgid ""
msgstr ""
-"Project-Id-Version: GNU bash 4.0\n"
+"Project-Id-Version: GNU bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2009-06-01 00:31+0600\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-31 20:06+0700\n"
"Last-Translator: Sergio Pokrovskij <sergio.pokrovskij@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "Misa tabel-indico"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: Maleblas konverti pozician tabelon en asocitabelon"
+msgstr "%s: Maleblas konverti entjerindican tabelon en asocitabelon"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: Misa asocitabela Ålosilo"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: Valorizato havu nombran indicon"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: Valorizante per asocitabelo uzu indicon"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: Ne prosperis krei: %s"
# XXX: internal_error
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: Mankas klavartabelo por komando"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: La unua ne-blankspaca signo ne estas „\"‟"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "Mankas ferma „%c‟ en %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: Mankas disiga dupunkto"
+# XXX: internal_error
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "vinkulmalvolvo: Maleblas memorhavigo por %s"
+
+# XXX: internal_error
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "vinkulmalvolvo: Fiaskis memorhavigo por %d elementoj"
+
+# XXX: internal_error
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "vinkulmalvolvo: Fiaskis memorhavigo por %s"
+
#: builtins/alias.def:132
-#, fuzzy, c-format
+#, c-format
msgid "`%s': invalid alias name"
-msgstr "„%s‟: Misa nomo por klavartabelo"
+msgstr "%s: MaltaÅ­gas por uzi kiel alinomon"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "liniredaktado ne estas ebligita"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%s‟: Misa nomo por klavartabelo"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: Ne eblas legi: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "%s: Ne eblas malligi"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "%s: Nekonata funkcinomo"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s malhavas klavligon\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s vokeblas per "
@@ -125,7 +153,7 @@ msgstr "iteracinombrilo"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "Sencas nur en iteracio „for‟, „while‟ aŭ „until‟"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -135,11 +163,15 @@ msgstr ""
"\n"
" Sen ESPR liveras "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME malhavas valoron"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "Tro multe da argumentoj"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD malhavas valoron"
@@ -148,7 +180,7 @@ msgstr "OLDPWD malhavas valoron"
msgid "line %d: "
msgstr "linio %dª: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "Averto: "
@@ -158,11 +190,7 @@ msgstr "Averto: "
msgid "%s: usage: "
msgstr "%s: Uzmaniero: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "Tro multe da argumentoj"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: La opcio bezonas argumenton"
@@ -177,7 +205,7 @@ msgstr "%s: Necesas nombra argumento"
msgid "%s: not found"
msgstr "%s: Ne trovita"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: Misa opcio"
@@ -187,7 +215,7 @@ msgstr "%s: Misa opcio"
msgid "%s: invalid option name"
msgstr "%s: Misa opcinomo"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "„%s‟ ne estas taŭga nomo"
@@ -200,7 +228,7 @@ msgstr "Misa okuma nombro"
msgid "invalid hex number"
msgstr "Misa 16uma nombro"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "Misa nombro"
@@ -214,7 +242,7 @@ msgstr "%s: Misa signalindiko"
msgid "`%s': not a pid or valid job spec"
msgstr "„%s‟: Nek proceznumero, nek taŭga laborindiko"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: Nurlega variablo"
@@ -286,51 +314,61 @@ msgstr "%s: Eraro ĉe provo determini la kurantan dosierujon: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: Ambigua laborindiko"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: Misa nomo de ago"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: Kompletigo ne estas specifita"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "Ni ne estas en plenumado de kompletiga funkcio"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "Uzeblas nur ene de funkcio"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: Referenca variablo ne povas esti tabelo"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: Nomreferenca variablo ne referencu sin mem"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "„-f‟ ne estas uzebla por fari funkciojn"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: Nurlega funkcio"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
-msgstr "$%s: ĉi tiel ne eblas neniigi variablojn"
+msgstr "%s: Ĉi tiel ne eblas neniigi tabelvariablojn"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
-msgstr "%s: Ne eblas konverti asocitabelon en pozician tabelon"
+msgstr "%s: Ne eblas konverti asocitabelon en entjerindican tabelon"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
@@ -356,24 +394,23 @@ msgstr "%s: Ne Åargita dinamike"
msgid "%s: cannot delete: %s"
msgstr "%s: Ne eblas forigi: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s estas dosierujo"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: Ne ordinara dosiero"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: Tro granda dosiero"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: Neplenumebla duuma dosiero"
@@ -406,11 +443,11 @@ msgstr "Restas rulataj laboroj.\n"
msgid "no command found"
msgstr "Komando ne trovita"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "Historia indiko"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: Ne malfermiÄis labordosiero: %s"
@@ -456,7 +493,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Åœelaj komandoj kongruaj kun la Ålosilvorto '"
msgstr[1] "Åœelaj komandoj kongruaj kun la Ålosilvortoj '"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -464,12 +501,12 @@ msgstr ""
"Helpaĵo pri „%s‟ malestas.\n"
"Provu «help help» aŭ «man -k %s» aŭ «info %s»."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: Fiaskis malfermo de %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -496,7 +533,7 @@ msgstr "Ne pli ol unu el -anrw estas uzebla"
msgid "history position"
msgstr "pozicio en la historio"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: Historia malvolvo fiaskis"
@@ -510,105 +547,116 @@ msgstr "%s: inlib fiaskis"
msgid "no other options allowed with `-x'"
msgstr "La uzo de „-x‟ malebligas aliajn opciojn"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: Argumento estu proceznumero aÅ­ laborindiko"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Nekonata eraro"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "Mankas esprimo"
#: builtins/mapfile.def:172
-#, fuzzy, c-format
+#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: Ne tabela variablo"
+msgstr "%s: Äi ne estas entjerindica tabelo"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: Misa indiko de dosiernumero"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: Misa dosiernumero: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: Misa lininombro"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: Misa tabelbazo"
# Supozeble callback => retrovoko ??
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: Misa kvanto ĉe retrovoko"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "Mankas nomo de tabelvariablo"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "necesas subteno de tabelvariabloj"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%s‟: Mankas formata signo"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: Misa indiko de atendotempo"
+msgstr "%c: Misa tempoformato"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%c‟: Misa signo formata"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "Averto: %s: %s"
-#: builtins/printf.def:840
+# XXX: internal_error
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "Miso ĉe analizado de formato: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "Mankas 16uma cifero por \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "Mankas 16uma cifero por \\x"
+msgstr "Post „%c‟ mankas unikoda cifero"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "Ne estas alia dosierujo"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: MaltaÅ­ga argumento"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<mankas kuranta dosierujo>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "Dosierujstako malplenas"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "indico de dosierujstako"
# dirs [-clpv] [+N] [-N]
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -651,7 +699,7 @@ msgstr ""
"\tper „dirs‟ sen opcioj, numerante ekde 0."
# pushd [dir | +N | -N] [-n]
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -697,7 +745,7 @@ msgstr ""
" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟."
# popd [+N | -N] [-n]
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -736,41 +784,41 @@ msgstr ""
"\n"
" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: Misa indiko de atendotempo"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "Lega (read) eraro: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
"„return‟ sencas nur en funkcio aŭ punkte vokita („.‟, „source‟) skripto"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "Ne eblas samtempe malaktivigi funkcion kaj variablon"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: Malaktivigo fiaskis"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: Malaktivigo fiaskis: nurlega %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: Ne tabela variablo"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: Ne funkcio"
@@ -779,11 +827,11 @@ msgstr "%s: Ne funkcio"
msgid "shift count"
msgstr "Nombrilo de „shift‟"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "Maleblas samtempe Åalti kaj malÅalti Åelan opcion"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: Misa nomo de Åela opcio"
@@ -825,7 +873,7 @@ msgstr "%s estas funkcio\n"
msgid "%s is a shell builtin\n"
msgstr "„%s‟ estas primitiva komando de la Åelo\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "„%s‟ estas „%s‟\n"
@@ -835,47 +883,47 @@ msgstr "„%s‟ estas „%s‟\n"
msgid "%s is hashed (%s)\n"
msgstr "„%s‟ estas metita en hakettabelon (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: MaltaÅ­ga argumento por limo"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "„%c‟: Misa komando"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: Fiaskis provo legi limon: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limo"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: Malprosperis ÅanÄi limon: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "Okuma nombro"
# Misa modifilo: «umask Z-w» aŭ «umask aZw»
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, 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
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%c‟: La signo ne estas simbolo de atingorajta kategorio"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " linio "
@@ -889,303 +937,320 @@ msgstr "La ĵusa komando: %s\n"
msgid "Aborting..."
msgstr "Ĉesigado ..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "Nekonata komand-eraro"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "Misa komandotipo"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "Misa stir-operacio"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "Misa salto"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: Neligita variablo"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: „%c‟: Misa formatsigno"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "Eraro en dukto"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: La ingado de funkcioj superis sian maksimumon (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: Malpermesitas uzi „/‟ en komandonomoj"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: Komando ne trovita"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+# XXX: internal error:
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "„%s‟ estas „%s‟\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: Misa interpretilo"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: Neplenumebla duuma dosiero: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "„%s‟ estas primitiva komando speciala"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "Ne eblas kunnomumi al dosiernumero %d la dosiernumeron %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "Tro profunda rekursio en esprimo"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "Rekursistako elĉerpita"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "Sintaksa eraro en esprimo"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "Provo valorizi ne-variablon"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "Divido per 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "CIMO: Misa operacisigno en kombinita valorizsimbolo"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "„:‟ mankas kondiĉa esprimo"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "Negativa eksponento"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "Post antaÅ­kremento aperu nomo de variablo"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "Mankas „)‟"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "Sintaksa eraro: Mankas operando"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "Sintaksa eraro: Misa operacisimbolo aritmetika"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (misa simbolo estas „%s‟)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "MaltaÅ­ga bazo nombrosistema"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "Tro granda valoro por bazo de nombrosistemo"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: Misa esprimo\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getwd: Ne eblas atingi patrajn dosierujojn"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "Ne eblas reÅalti senprokrastan reÄimon por dosiernumero %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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"
# ZZZ: sys_error (_("start_pipeline: pgrp pipe"));
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: procezgrupo dukto"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "Forke farita proceznumero %d aperas en rulata laboro %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "Haltigita laboro %d kun procezgrupo %ld estas forigata"
# ifdef DEBUG ... internal_warning():
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: process %5ld (%s) in the_pipeline"
# ifdef DEBUG ... internal_warning():
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) marked as still alive"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: Ne estas tia proceznumero (%ld)!"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signalo %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Farite"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Haltigita"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Haltigita(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Rulata"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Farite(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Eliro %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Nekonata stato"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(nekropsio elÅutita)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (labordosierujo: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "provo atribui (setpgid) procezgrupon %2$ld de la procezido %1$ld"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Malestas informoj pri procezo %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: La laboro %d estas haltigita"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: La laboro finiÄis"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: La laboro %d jam estas fona"
-#: jobs.c:3089
+# XXX: internal warning:
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
+msgstr "waitchld: WNOHANG iÄas Åaltita por eviti nedifintan pendiÄon"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: linio %dª: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr "(nekropsio elÅutita)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(nun labordosierujo estas: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp fiaskis"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: liniaranÄo"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid()"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "ne prosperis atribui grupon (%d) de terminala procezo"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "Ĉi tiu Åelo ne disponigas laborregadon"
@@ -1210,64 +1275,64 @@ msgid "unknown"
msgstr "nekonata"
# XXX: debug?
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: Skribdifektita bloko en malokupa listo (free list)"
# XXX: debug?
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: La argumento montras blokon jam malokupitan"
# XXX: debug?
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: La argumento ne montras generitan memoron"
# XXX: debug?
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
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
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: La argumento ne montras generitan memoron"
# XXX: debug?
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
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
+#: lib/malloc/malloc.c:1026
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
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "Misa bazo nombrosistema"
@@ -1294,37 +1359,39 @@ msgstr "%s: Misa retvojo-indiko"
msgid "network operations not supported"
msgstr "Reta funkciado ne disponeblas"
-#: locale.c:192
+# XXX: internal warning:
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: Maleblas ÅanÄi lokaĵaron (%s)"
-#: locale.c:194
+# XXX: internal warning:
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: Maleblas ÅanÄi lokaĵaron (%s): %s"
# XXX: fatal_error
-#: locale.c:247
-#, fuzzy, c-format
+#: locale.c:259
+#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn"
+msgstr "setlocale: %s: ne eblas ÅanÄi la lokaĵaron (%s)"
# XXX: fatal_error
-#: locale.c:249
-#, fuzzy, c-format
+#: locale.c:261
+#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn"
+msgstr "setlocale: %s: ne eblas ÅanÄi la lokaĵaron (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Vi havas poÅton en $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Nova poÅto en $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "La poÅto en %s estas jam legita\n"
@@ -1342,121 +1409,121 @@ msgstr "Sintaksa eraro: Neatendita „;‟"
msgid "syntax error: `((%s))'"
msgstr "Sintaksa eraro: „((%s))‟"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: Misa ordontipo %d"
# internal_warning():
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr "Tuj-dokumenton de linio %d limigas dosierfino (mankas „%s‟)"
# XXX: programming_error
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: Alidirektada komando „%d‟ ekster sia variejo"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "Neatendita dosierfino dum serĉo de responda „%c‟"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "Neatendita dosierfino dum serĉo de „]]‟"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "Sintaksa eraro en kondiĉa esprimo: Neatendita simbolo „%s‟"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "Sintaksa eraro en kondiĉa esprimo"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "Nekonvena simbolo „%s‟ anstataŭ „)‟"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "Mankas „)‟"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "La argumento „%s‟ ne konvenas por unuloka kondiĉa operacisimbolo"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "Maltaŭga argumento por unuloka kondiĉa operacisimbolo"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "Misa simbolo „%s‟ anstataŭ duloka kondiĉa operacisigno"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "ĉi tie devas esti duloka kondiĉa operacisigno"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "La argumento „%s‟ ne konvenas por duloka kondiĉa operacisimbolo"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "<maltaŭga argumento por duloka kondiĉa operacisimbolo"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "Misa simbolo „%c‟ en kondiĉa komando"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "Misa simbolo „%s‟ en kondiĉa komando"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "Misa simbolo „%d‟ en kondiĉa komando"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "Sintaksa eraro apud neatendita simbolo „%s‟"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "Sintaksa eraro apud „%s‟"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "Sintaksa eraro: Neatendita dosierfino"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "Sintaksa eraro"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Uzu «%s» por eliri el la Åelo.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "Neatendita dosierfino dum serĉo de responda „)‟"
# XXX: internal_error
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
@@ -1467,96 +1534,98 @@ msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: Misa stir-operacio „%d‟"
-#: print_cmd.c:368
-#, fuzzy, c-format
+#: print_cmd.c:373
+#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "%d: Misa dosiernumero: %s"
+msgstr "xtrace_set: %d: Misa dosiernumero"
-#: print_cmd.c:373
+# XXX: internal error:
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: dosierreferenco == NULL"
-#: print_cmd.c:377
+# XXX: internal error:
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
# XXX: programming_error
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: „%c‟: Misa formatsigno"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
-msgstr "Ekstervarieja dosiernomo"
+msgstr "Ekstervarieja dosiernumero"
# XXX: internal_error
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: Ambigua alidirektado"
# XXX: internal_error
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: Maleblas surskribi ekzistantan dosieron"
# XXX: internal_error
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: Limigita Åelo: malpermesitas alidirekti eligon"
# XXX: internal_error
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "Malprosperis krei labordosieron por tuj-dokumento: %s"
-#: redir.c:196
-#, fuzzy, c-format
+#: redir.c:195
+#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: Maleblas valorizi tabelanon per listo"
+msgstr "%s: Maleblas konservi la dosiernumeron en la variablo"
# XXX: internal_warning
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "«/dev/(tcp|udp)/host/port» ne disponeblas ekster retumado"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "Alidirektada eraro: Fiaskis kunnomumo al dosiernumero"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "Mankas «/tmp», bv krei Äin!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "«/tmp» devas esti valida dosierujo"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: Misa opcio"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Mi ne havas nomon!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNUa «bash», versio %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1565,41 +1634,41 @@ msgstr ""
"Uzo:\t%s [GNUa opcio longforma] [opcio] ...\n"
"\t%s [GNUa opcio longforma] [opcio] SKRIPTODOSIERO ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNUaj opcioj longformaj:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Åœelaj opcioj:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr "\t-irsD aÅ­ -c komando aÅ­ -O shopt_opcio\t\t(nur voko)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD aŭ -c KOMANDO aŭ -O SHOPT_OPCIO\t\t(nur ĉe voko)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s aÅ­ -o opcio\n"
# bash --help
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr "Por pluaj informoj pri la opcioj tajpu: «%s -c \"help set\"»\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr "Por scii pli pri la primitivaj Åelkomandoj tajpu: „%s -c help‟\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Por raporti pri eraroj uzu la komandon „bashbug‟\n"
# XXX: internal_error
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: Misa operacio"
@@ -1812,211 +1881,236 @@ msgstr "Nekonata signalnumero"
msgid "Unknown Signal #%d"
msgstr "Nekonata signalo n-ro %d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "Misa anstataŭigo: Mankas ferma „%s‟ en %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: Maleblas valorizi tabelanon per listo"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "Ne prosperis fari dukton por proceza anstataÅ­igo"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "Ne prosperis krei idon por proceza anstataÅ­igo"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "Ne prosperis malfermi nomitan dukton %s porlegan"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "Ne prosperis malfermi nomitan dukton %s por skribado"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "Ne prosperis kunnomumi nomhavan dukton %s kiel dosiernumeron %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "Ne prosperis fari dukton por komanda anstataÅ­igo"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "Ne prosperis krei procezidon por komanda anstataÅ­igo"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: Ne prosperis kunnomumi la dosiernumeron 1 al dukto"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: Misa variablonomo por nomreferenco"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: Parametro estas NUL aÅ­ malaktiva"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: subĉeno-esprimo < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: Misa anstataÅ­igo"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: ĉi tiel ne valorizebla"
-#: subst.c:7684
+# XXX: internal warning:
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
+"Ontaj versioj de la Åelo plenumos komputon kiel aritmetikan anstataÅ­igon"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "Misa anstataŭigo: Mankas ferma „`‟ en %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "Nenio kongrua: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "Mankas argumento"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: Mankas entjera esprimo"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "Mankas „)‟"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "AnstataÅ­ „)‟ troviÄas %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: Tie devas esti unuloka operacisigno"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: Tie devas esti duloka operacisigno"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "Mankas „]‟"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "Misa signalnumero"
# XXX: internal_warning
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: Misa valoro en trap_list[%d]: %p"
# XXX: internal_warning
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr "run_pending_traps: Signaltraktilo SIG_DFL resendas %d (%s) al mi mem"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: Misa signalnumero %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "Eraro ĉe importo de funkcidifino por „%s‟"
# XXX: internal_warning
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "%d estas tro granda Åelnivelo; mallevita Äis 1"
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: Cikla nomreferenco"
+
# XXX: internal_error
-#: variables.c:1932
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: Malestas funkcia kunteksto en ĉi-regiono"
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: Variablo ne valorizebla"
+
# XXX: internal_error
-#: variables.c:3182
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: Malestas funkcia kunteksto en ĉi-regiono"
-#: variables.c:3427
-#, fuzzy, c-format
+# XXX: internal_error
+#: variables.c:3891
+#, c-format
msgid "%s has null exportstr"
-msgstr "%s: Parametro estas NUL aÅ­ malaktiva"
+msgstr "«exportstr» de %s estas NUL"
# XXX: internal_error
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "Misa signo %d en eksporta signoĉeno por „%s‟"
# XXX: internal_error
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "Mankas „=‟ en eksporta signoĉeno por „%s‟"
# XXX: internal_error
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
"pop_var_context: La kapo de „shell_variables‟ ne estas funkcia kunteksto"
# XXX: internal_error
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: Mankas kunteksto de „global_variables‟"
# XXX: internal_error
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: La kapo de „shell_variables‟ ne estas provizora regiono"
-#: variables.c:4786
-#, fuzzy, c-format
+# XXX: internal_error
+#: variables.c:5257
+#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: Fiaskis malfermo de %s"
+msgstr "%s: %s: Ne malfermeblas kiel DOSIERO"
-#: variables.c:4791
-#, fuzzy, c-format
+# XXX: internal_error
+#: variables.c:5262
+#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%d: Misa dosiernumero: %s"
+msgstr "%s: %s: Misa valoro por spurada dosiernumero (trace file descriptor)"
+
+# # XXX: internal_error
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s kongruo-nivelo estas ekster sia variejo"
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 ĉe «Free Software Foundation, Inc.»"
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 ĉe «Free Software Foundation, Inc.»"
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -2024,58 +2118,44 @@ msgstr ""
"La permesilo estas GPLv3+; t.e. GNU GPL, versio 3ª aŭ pli nova.\n"
"La tekston vd ĉe <http://gnu.org/licenses/gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNUa «bash», versio %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
-"Ĉi tiu programo estas libera; vi rajtas libere Äin ÅanÄi kaj pludoni.\n"
-
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
-"NENIA GARANTIO estas donita, tiom kiom tion permesas la koncerna leÄo.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Ĉi tiu programo estas libera; vi rajtas libere Äin ÅanÄi kaj pludoni."
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 ĉe «Free Software Foundation, Inc.»"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "NENIA GARANTIO estas donita, tiom kiom tion permesas la leÄo."
-#: version2.c:87
-#, fuzzy, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"La permesilo estas GPLv3+; t.e. GNU GPL, versio 3ª aŭ pli nova.\n"
-"La tekston vd ĉe <http://gnu.org/licenses/gpl.html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 ĉe «Free Software Foundation, Inc.»"
#: xmalloc.c:91
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc(): Ne povas okupi %lu bajtojn (%lu bajtoj disponigitaj)"
+msgstr "%s: Malsukcesis okupi %lu bajtojn (%lu bajtoj disponigitaj)"
#: xmalloc.c:93
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "xmalloc: Ne prosperis okupi %lu bajtojn"
+msgstr "%s: Malsukcesis okupi %lu bajtojn"
# XXX: fatal_error
#: xmalloc.c:163
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %s:%d: ne eblas okupi %lu bajtojn (%lu bajtoj disponigitaj)"
+msgstr "%s: %s:%d: Malsukcesis okupi %lu bajtojn (%lu bajtoj disponigitaj)"
# XXX: fatal_error
#: xmalloc.c:165
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "xmalloc: %s:%d: ne eblas okupi %lu bajtojn"
+msgstr "%s: %s:%d: Malsukcesis okupi %lu bajtojn"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
@@ -2087,10 +2167,10 @@ msgstr "unalias [-a] NOMO [NOMO ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
-"bind [-lpvsPVS] [-m KLAVARTABELO] [-f DOSIERNOMO] [-q NOMO]\n"
+"bind [-lpsvPSVX] [-m KLAVARTABELO] [-f DOSIERNOMO] [-q NOMO]\n"
" [-u NOMO] [-r KLAVAÄ´O] [-x KLAVAÄ´O:ÅœELKOMANDO]\n"
" [KLAVAĴO:READLINE-FUNKCIO AŬ READLINE-KOMANDO] "
@@ -2111,9 +2191,8 @@ msgid "caller [expr]"
msgstr "caller [ESPRIMO]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [DOSIERUJO]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [DOSIERUJO]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2136,14 +2215,12 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] KOMANDO [ARG ...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [NOMO[=VALORO] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [NOMO[=VALORO] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] NOMO[=VALORO] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] NOMO[=VALORO] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2200,9 +2277,8 @@ msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
msgstr "hash [-lr] [-p VOJNOMO] [-dt] [NOMO ...]"
#: builtins.c:117
-#, fuzzy
msgid "help [-dms] [pattern ...]"
-msgstr "help [-ds] [ÅœABLONO ...]"
+msgstr "help [-dms] [ÅœABLONO ...]"
#: builtins.c:121
msgid ""
@@ -2236,35 +2312,33 @@ msgid "let arg [arg ...]"
msgstr "let ARG [ARG ...]"
#: builtins.c:136
-#, fuzzy
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
-"read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO] [-n NSIGN] [-p INVIT] [-t "
-"TLIM] [-u DN] [NOMO ...]"
+"read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO]\n"
+" [-n NSIGN] [-N NSIGN] [-p INVIT] [-t TLIM]\n"
+" [-u DN] [NOMO ...]"
#: builtins.c:138
msgid "return [n]"
msgstr "return [N]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o OPCINOMO] [ARG ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o OPCINOMO] [--] [ARG ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [NOMO ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [NOMO ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [NOMO[=VALORO] ...] aÅ­ export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-aAf] [NOMO[=VALORO] ...] aÅ­ readonly -p"
+msgstr "readonly [-aAf] [NOMO[=VALORO] ...] aÅ­ readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2303,20 +2377,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] NOMO [NOMO ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [LIMO]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [LIMO]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [REÄœIMO]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [IND]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [IND ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [PN]"
+msgid "wait [pid ...]"
+msgstr "wait [PN ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2405,44 +2479,43 @@ msgid "printf [-v var] format [arguments]"
msgstr "printf [-v VAR] FORMATO [ARGUMENTOJ]"
#: builtins.c:229
-#, fuzzy
msgid ""
"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-o OPCIO] [-A AGO] [-G GLOBÅœAB] [-W "
-"VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB] [-P PREFIKSO] [-S "
-"SUFFIKSO] [NOMO ...]"
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o OPCIO] [-A AGO] [-G GLOBÅœAB]\n"
+" [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]\n"
+" [-P PREFIKSO] [-S SUFIKSO] [NOMO ...]"
#: builtins.c:233
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 OPCIO] [-A AGO] [-G GLOBÅœAB] [-W vORTLISTO] [-"
-"F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB] [-P PREFIKSO] [-S SUFFIKSO] [VORTO]"
+"compgen [-abcdefgjksuv] [-o OPCIO] [-A AGO] [-G GLOBÅœAB]\n"
+" [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]\n"
+" [-P PREFIKSO] [-S SUFIKSO] [VORTO]"
#: builtins.c:237
-#, fuzzy
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr "compopt [-o|+o OPCIO] [NOMO ...]"
+msgstr "compopt [-o|+o OPCIO] [-DE] [NOMO ...]"
#: builtins.c:240
msgid ""
"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
-"mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO] "
-"[-c KVANTO] [TABELO]"
+"mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN]\n"
+" [-C RETROVOKO] [-c KVANTO] [TABELO]"
#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
-"readarray [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C "
-"RETROVOKO] [-c KVANTO] [TABELO]"
+"readarray [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN]\n"
+" [-C RETROVOKO] [-c KVANTO] [TABELO]"
# alias:
#: builtins.c:254
@@ -2481,6 +2554,7 @@ msgstr ""
" alinome."
# unalias [-a] name [name ...]
+# unalias [-a] NOMO [NOMO ...]
#: builtins.c:276
msgid ""
"Remove each NAME from the list of defined aliases.\n"
@@ -2490,7 +2564,7 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
-"Forigu la nomojn name ... el la listo de difinitaj alinomoj.\n"
+"Forigu la NOMOjn el la listo de difinitaj alinomoj.\n"
"\n"
" Opcioj:\n"
" -a\tSe enestas la opcio „-a‟, ĉiujn alinomojn forigu.\n"
@@ -2534,6 +2608,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2565,12 +2641,14 @@ msgstr ""
" -r KLAVAÄ´O Forigu la ligon de la klavsekvenco KLAVAÄ´O\n"
" -f DOSIERNOMO Legu klavligojn el DOSIERNOMO\n"
" -x KLAVAÄ´O:ÅœELKOMANDO La ÅœELKOMANDO plenumiÄu ĉe enigo de KLAVAÄ´O.\n"
-"\n"
+" -X Listigu klavosekvencojn ligitajn per „-x‟ kaj la\n"
+" koncernajn komandojn en formo reuzebla por enigo.\n"
+" \n"
" Elirstato:\n"
" 0, krom se nekonata opcio estas donita aÅ­ eraro okazis."
# exit:
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2589,7 +2667,7 @@ msgstr ""
" Ĝi estas 0, kondiĉe ke N estas pli granda ol aŭ egala al 1."
# continue:
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2610,7 +2688,7 @@ msgstr ""
# builtin [shell-builtin [arg ...]]
# builtin [ÅœELAÄ´O [ARG ...]]
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2636,7 +2714,7 @@ msgstr ""
# caller [expr] =>
# caller [ESPRIMO]
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2665,8 +2743,7 @@ msgstr ""
" estas valida."
# cd:
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2689,13 +2766,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2704,30 +2789,38 @@ msgid ""
msgstr ""
"ÅœanÄu la kurantan laboran dosierujon de la Åelo.\n"
"\n"
-" La kuranta dosierujo iÄu dir aÅ­, se dir malestas, la valoro\n"
-" de la variablo $HOME.\n"
+" La kuranta dosierujo iÄu DOSIERUJO -- aÅ­, se DOSIERUJO malestas,\n"
+" la valoro de la variablo $HOME.\n"
"\n"
" La variablo $CDPATH difinas la serĉvojon por la dosierujo\n"
-" entenanta dir-on. En $CDPATH, dupunkto „:‟ apartigas alternativajn\n"
-" dosierujojn, vakua dosiernomo egalas la kurantan (t.e. „.‟). Se dir\n"
-" komenciÄas per „/‟, la variablo $CDPATH ne estas uzata.\n"
+" entenanta DOSIERUJOn. En $CDPATH, dupunkto „:‟ apartigas\n"
+" alternativajn dosierujojn, vakua dosierujnomo egalas la kurantan.\n"
+" Se DOSIERUJO komenciÄas per „/‟, la variablo $CDPATH ne estas uzata.\n"
"\n"
" Se la dosierujo ne troviÄas, kaj la Åela opcio „cdable_vars‟ estas\n"
-" Åaltita, la vorto estas interpretata kiel variablo. Se la\n"
-" variablo havas valoron, plenumiÄas „cd‟ al tiu valoro.\n"
+" Åaltita, la vorto estas interpretata kiel variablonomo. Se tiu\n"
+" variablo havas valoron, tiu valoro estas uzata kiel DOSIERUJO.\n"
"\n"
" Opcioj:\n"
-" -L\tsekvu simbolajn ligilojn.\n"
-" -P\tuzu la fizikan strukturon de dosierujoj sen iri laÅ­\n"
-"\tsimbolaj ligiloj\n"
-"\n"
-" Defaŭlte la simbolaj ligiloj estas sekvataj, kvazaŭ „-L‟ ĉeestus.\n"
+" -L\tlaÅ­u simbolajn Ligilojn: en DOSIERUJO, traktu la aperojn de\n"
+"\t„..“ antaŭ ol elnodigi la simbolajn ligilojn\n"
+" -P\tuzu la Fizikan strukturon de dosierujoj, elnodiginte simbolajn\n"
+"\tligilojn de DOSIERUJO antaŭ ol trakti la aperojn de „..“\n"
+" -e\teliru kun nenula elirstato se „-P‟ ĉeestas kaj la\n"
+"\tkuranta dosierujo ne estas determinebla\n"
+" -@\tse la operaciumo tion ebligas, prezentu dosieron posedantan\n"
+"\tkromatributojn kiel dosierujon entenatan la dosieratributojn\n"
+"\n"
+" Defaŭlte la simbolaj ligiloj estas laŭataj, kvazaŭ „-L‟ ĉeestus.\n"
+" La traktado de „..“ konsistas en forigo de la ĵus-antaŭa vojnoma\n"
+" ero retrodirekte Äis la oblikvo „/“ aÅ­ la komenco de DOSIERUJO.\n"
"\n"
" Elirstato:\n"
-" Äœi estas 0, se la dosierujÅanÄo sukcesis; nenulo aliokaze."
+" Äœi estas 0, se la dosierujÅanÄo sukcesis, kaj se, ĉeeste de „-P‟,\n"
+" $PWD sukcese valoriziÄis; nenulo aliokaze."
# pwd [-LP]
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2756,7 +2849,7 @@ msgstr ""
" 0, krom se aperas misa opcio aÅ­ la kuranta dosierujo estas\n"
" nelegebla."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2773,7 +2866,7 @@ msgstr ""
" Ĉiam sukcesa."
# true
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2786,7 +2879,7 @@ msgstr ""
" Ĉiam sukcesa."
# false:
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2800,7 +2893,7 @@ msgstr ""
# command [-pVv] command [arg ...]
# command [-pVv] KOMANDO [ARG ...]
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2834,10 +2927,9 @@ msgstr ""
" Elirstato:\n"
" Tiu de KOMANDO; aÅ­ malsukceso, se KOMANDO ne troveblas."
-# declare [-afFirtx] [-p] [name[=value] ...]
-# declare [-aAfFilrtux] [-p] [NOMO[=VALORO] ...]
-#: builtins.c:479
-#, fuzzy
+# declare [-aAfFgilnrtux] [-p] [name[=value] ...]
+# declare [-aAfFgilnrtux] [-p] [NOMO[=VALORO] ...]
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2857,6 +2949,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2872,41 +2965,47 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-"Difinu valorojn aÅ­ atributojn de variabloj\n"
+"Difinu valorojn aÅ­ atributojn de variabloj.\n"
"\n"
-" Deklaru variablojn aÅ­ valorizu ilin per atributoj.\tSe NOMOj\n"
+" Deklaru variablojn aÅ­ atribuu al ili atributojn.\tSe NOMOj\n"
" mankas, anstataŭe eligu la valoron de ĉiuj variabloj.\n"
"\n"
" Opcioj:\n"
" -f\tla ago aÅ­ eligo koncernu nur la funkciajn NOMOjn kaj difinojn\n"
" -F\teligu nur funkcinomojn (ĉe erarserĉo, ankaŭ lininumeron kaj\n"
"\tfontodosieran nomon) sen difinoj\n"
+" -g se uzita en Åelfunkcio, kreu mallokan variablon;\n"
+" aliokaze, ignoru\n"
" -p\teligu la atributojn kaj la valorojn de ĉiu NOMO\n"
"\n"
" Opcioj atributdonaj:\n"
-" -a\tfaru la NOMOjn poziciaj tabeloj (se realigite)\n"
-" -A\tfaru la NOMOjn asocitabeloj (se realigite)\n"
+" -a\tla NOMOj estu entjerindicaj tabeloj (se realigite)\n"
+" -A\tla NOMOj estu asocitabeloj (se realigite)\n"
" -i\thavigu al la variabloj NOMOj la atributon „integer‟ (entjera)\n"
" -l\tminuskligu la NOMOjn ĉe valorizo\n"
-" -r\tfaru la variablojn NOMOj nurlegaj\n"
+" -n NOMO estu referenco al variablo nomata per Äia valoro\n"
+" -r\tla variabloj NOMOj estu nurlegaj\n"
" -t\thavigu al la NOMOj la atributon „trace‟ (spurata)\n"
" -u\tmajuskligu la NOMOjn ĉe valorizo\n"
" -x\teksportu la variablojn NOMOj\n"
"\n"
" La uzo de „+‟ anstataÅ­ „-‟ malÅaltas la koncernan attributon.\n"
-" Uzite en funkcio, „declare‟ faras la NOMOjn lokaj, samkiel la\n"
-" komando „local‟.\n"
"\n"
-" Ĉe valorizo de variablo havanta atributon „integer‟ (entjera)\n"
-" okazas aritmetika komputado (vd „let‟).\n"
+" Por la variabloj posedantaj la atributon entjera, ĉe ĉiu valorizo\n"
+" okazas aritmetika komputado (vd la komandon „let‟).\n"
+" \n"
+" Uzite en funkcio, „declare‟ faras la NOMOjn lokaj, samkiel la\n"
+" komando „local‟. La opcio „-g‟ ĉi tiun efikon abolas.\n"
"\n"
" Eliistato:\n"
-" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro."
+" Sukceso, krom se aperas misa opcio aŭ okazas eraro ĉe valorizo de "
+"variablo."
-# typeset [-aAfFilrtux] [-p] name[=value] ...
-#: builtins.c:517
+# typeset [-aAfFgilrtux] [-p] name[=value] ...
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2918,7 +3017,7 @@ msgstr ""
# local [option] name[=value] ...
# local [OPCIO] NOMO[=VALORO] ...
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2929,8 +3028,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Difinu lokajn variablojn\n"
"\n"
@@ -2941,15 +3040,17 @@ msgstr ""
" en la funkcio kie ili estas difinitaj kaj en Äiaj idoj.\n"
"\n"
" Elirstato:\n"
-" Sukceso, krom se aperas misa opcio, okazas eraro, aÅ­ la Åelo ne\n"
-" estas plenumanta funkcion."
+" Sukceso, krom se aperas misa opcio, okazas valoriza eraro, aÅ­ la\n"
+" Åelo ne estas plenumanta funkcion."
# echo:
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2961,6 +3062,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2977,12 +3079,13 @@ msgid ""
msgstr ""
"Eligu la argumentojn en la ĉefeligujon\n"
"\n"
-" Eligu la ARGojn en la ĉefeligujon, postmetu linirompon.\n"
+" Eligu en la ĉefeligujon la ARGojn disigante ilin per po unu\n"
+" spaceto, postmetu linirompon.\n"
"\n"
" Opcioj:\n"
" -n\tne aldonu la finan linirompon\n"
-" -e\taktivigu interpretadon de la ĉi-subaj deklivaĵoj\n"
-" -E\tmalaktivigu interpretadon de la ĉi-subaj deklivaĵoj\n"
+" -e\taktivigu interpretadon de la ĉi-subaj eskapaj deklivaĵoj\n"
+" -E\tmalaktivigu interpretadon de la ĉi-subaj espapaj deklivaĵoj\n"
"\n"
" „echo‟ povas interpreti la sekvajn literojn prefiksitajn per\n"
" deklivo (per la signo „\\‟):\n"
@@ -2990,6 +3093,7 @@ msgstr ""
"\t\\b\tretropaÅo\n"
"\t\\c\tĉesigu pluan eligon\n"
"\t\\e\teskapsigno\n"
+"\t\\E\teskapsigno\n"
"\t\\f\tpaÄ-avanco\n"
"\t\\n\tlinifino\n"
"\t\\r\tĉaretreveno\n"
@@ -2998,14 +3102,14 @@ msgstr ""
"\t\\\\\tdeklivo „\\‟\n"
"\t\\0CCC\tla signo kies Askia kodono estas CCC (okume). CCC\n"
"\t\tpovas enteni 0, 1, 2 aÅ­ 3 okumajn ciferojn\n"
-"\t\\0xHH\tla signo kies 8-bita kodono estas HH (16-ume). HH\n"
+"\t\\xHH\tla signo kies 8-bita kodono estas HH (16-ume). HH\n"
"\t\tpovas enteni unu aÅ­ du 16-umajn ciferojn\n"
"\n"
" Elirstato:\n"
" Sukcesa, krom se okazas elig-eraro."
# echo [-n] [ARG ...]
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -3029,7 +3133,7 @@ msgstr ""
# enable [-a] [-dnps] [-f filename] [name ...]
# enable [-a] [-dnps] [-f DOSIERNOMO] [NOMO ...]
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -3081,7 +3185,7 @@ msgstr ""
" eraro."
# eval [ARG ...]
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3102,7 +3206,7 @@ msgstr ""
# getopts optstring name [arg] =>
# getopts OPCIĈENO NOMO [ARG]
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3182,7 +3286,7 @@ msgstr ""
# exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
# exec [-cl] [-a NOMO] [KOMANDO [ARGUMENTOJ ...]] [ALIDIREKTADO ...]
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3224,7 +3328,7 @@ msgstr ""
" alirektado."
# exit [n]
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3237,7 +3341,7 @@ msgstr ""
" estas tiu de la plej ĵuse plenumita komando."
# logout [N]
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3254,7 +3358,7 @@ msgstr ""
# fc -s [pat=rep] [command] =>
# fc [-e REDAKTILO] [-lnr] [UNUA] [LASTA] aÅ­
# fc -s [ÅœABLONO=ANST] [KOMANDO]
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3309,7 +3413,7 @@ msgstr ""
" eraro."
# fg [job_spec] => fg [LABORINDIKO]
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3330,7 +3434,7 @@ msgstr ""
" Tiu de la dialogigita komando; aÅ­ malsukceso, se okazis eraro."
# bg [job_spec] => bg [LABORINDIKO]
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3354,7 +3458,7 @@ msgstr ""
" eraro."
# hash [-lr] [-p VOJNOMO] [-dt] [NOMO ...]
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3365,7 +3469,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3400,7 +3504,7 @@ msgstr ""
# help [-ds] [pattern ...]
# help [-ds] [ÅœABLONO ...]
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3445,7 +3549,7 @@ msgstr ""
# history [-c] [-d DEÅœOVO] [n] aÅ­
# history -awr [DOSIERNOMO] aÅ­
# history -ps ARG [ARG...]
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3478,19 +3582,19 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-"Eligu aÅ­ redaktu la historiliston\n"
+"Eligu aÅ­ redaktu la historiliston.\n"
"\n"
" Eligu la liston de enigitaj komandoj kun lininumeroj. La ÅanÄitajn\n"
" liniojn marku per „*‟. Kun argumento n, eligu nur la ĵusajn\n"
" n liniojn.\n"
"\n"
" Opcioj:\n"
-" -c\tforviÅu la tutan historion (forigu ĉiujn eroj el la listo)\n"
+" -c forviÅu la tutan historion (forigu ĉiujn erojn el la listo)\n"
" -d forviÅu la linion kies numero estas DEÅœOVO\n"
"\n"
-" -a\taldonu la historiliniojn de la kuranta seanco al la\n"
+" -a aldonu la historiliniojn de la kuranta seanco al la\n"
" historidosiero\n"
-" -n\tlegu ĉiujn ankoraŭ ne legitajn liniojn el la historidosiero\n"
+" -n legu ĉiujn ankoraŭ ne legitajn liniojn el la historidosiero\n"
" kaj aldonu ilin en la historiliston\n"
" -r legu la dosieron kaj aldonu Äian enhavon al la kuranta\n"
" historilisto\n"
@@ -3518,7 +3622,8 @@ msgstr ""
# jobs -x command [args] =>
# jobs [-lnprs] [LABORINDIKO ...] aÅ­
# jobs -x KOMANDO [ARGS]
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3527,7 +3632,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3564,7 +3669,7 @@ msgstr ""
" Ĉe „-x‟, la elirstato de la KOMANDO."
# disown [-h] [-ar] [jobspec ...]
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3600,7 +3705,7 @@ msgstr ""
# kill -l [sigspec] =>
# kill [-s SIGSNOM | -n SIGNUM | -SIGNOM] PN | LABORINDIKO ... aÅ­
# kill -l [SIGNOM]
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3643,8 +3748,8 @@ msgstr ""
" Sukceso, krom se enestas misa opcio aÅ­ okazis eraro."
# let arg [arg ...]
-#: builtins.c:926
-#, fuzzy
+# let ARG [ARG ...]
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3690,11 +3795,11 @@ msgid ""
msgstr ""
"Komputu aritmetikan esprimon\n"
"\n"
-" Ĉiu arg estas komputenda aritmetika esprimo. La komputado uzas\n"
-" fikslongajn 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 ligforto.\n"
+" Ĉiu arg estas komputenda aritmetika esprimo. La komputado uzas\n"
+" fikslongajn entjerojn sen kontrolo pri trooj; tamen divido per 0\n"
+" estas kaptata kaj raportata kiel eraro. En la sekvanta listo da\n"
+" operacioj la samprioritataj operacisimboloj aperas kune. La\n"
+" grupoj estas aranÄitaj laÅ­ malkresko de ligforto.\n"
"\n"
"\tnomo++, nomo--\tpostkrementoj de variablo\n"
"\t++nomo, --nomo\tantaÅ­krementoj de variablo\n"
@@ -3720,22 +3825,21 @@ msgstr ""
" Åœelvariabloj uzeblas kiel operandoj. En esprimo la nomon de\n"
" variablo anstataÅ­as Äia valoro (altipigita al fikslonga entjero).\n"
" Por tia uzo en esprimo variablo ne bezonas havi Åaltita sian\n"
-" atributon „integer‟ (entjera).\n"
+" atributon „entjera‟.\n"
"\n"
" La operacioj plenumiÄas laÅ­ la ligforto de siaj operacisignoj. La\n"
" enkrampigitaj subesprimoj plenumiÄas unue, kaj tio ebligas\n"
" ĉirkaŭiri la supre priskribitajn regulojn pri la ligfortoj.\n"
"\n"
" Elirstato:\n"
-" Se la komputo de la lasta arg donas 0, la komando „let‟\n"
+" Se la komputo de la lasta ARG donas 0, la komando „let‟\n"
" liveras 1; alie Äi liveras 0."
-# read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt]
-# [-t timeout] [-u fd] [name ...]
-# read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO] [-n NSIGN] [-p INVIT]
-# [-t TLIM] [-u DN] [NOMO ...]
-#: builtins.c:971
-#, fuzzy
+# read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars]
+# [-p prompt] [-t timeout] [-u fd] [name ...]
+# read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO] [-n NSIGN] [-N NSIGN]
+# [-p INVIT] [-t TLIM] [-u DN] [NOMO ...]
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3770,16 +3874,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Legu linion el la ĉefenigujo kaj disigu Äin en kampojn\n"
@@ -3802,8 +3909,10 @@ msgstr ""
" -e\t\tuzu Readline por akiri la linion en dialoga Åelo\n"
" -i TEKSTO\tuzu TEKSTOn kiel komencan tekston por Readline\n"
" -n NSIGN\tĉesu leginte NSIGN da signoj (anstataÅ­ legi Äis\n"
-"\t\tlinifino)\n"
-" -p INVIT\teligu de la invitĉenon\tINVIT sen liniavanco antaŭ la\n"
+"\t\tlinifino), krom se disigilo aperas pli frue\n"
+" -N NSIGN\tlegu ekzakte NSIGN da signoj (tra ĉiuj disigiloj), krom\n"
+" se la dosierfino aÅ­ la tempolimo atingiÄos pli frue\n"
+" -p INVIT\teligu la invitĉenon INVIT sen liniavanco antaŭ la\n"
"\t\tatendata enigo\n"
" -r\t\tla deklivo „\\‟ estu ordinara signo (ne eskapsigno)\n"
" -s\t\tsilentigu la eĥon de la terminala enigo\n"
@@ -3811,19 +3920,20 @@ msgstr ""
"\t\tkompleta linio da enigaĵo ne estas ricevita dum\t TLIM\n"
"\t\tda sekundoj. Se la variablo TMOUT havas valoron, ĉi\n"
"\t\ttiu estas uzata kiel defaÅ­lta atendolimo. TLIM povas\n"
-"\t\testi frakcio. Se TLIM estas 0,\t read sukcesas nur se\n"
-"\t\tla engaĵo pretas ĉe la indikita dosiernumero. La\n"
-"\t\telirstato estas pli granda ol 128 se la atendotempo\n"
-"\t\testas atingita\n"
+"\t\testi frakcio. Se TLIM estas 0,\t read tuj finiÄas sen\n"
+" provi ion legi, sed sukcesas nur se engaĵo pretas\n"
+" ĉe la indikita dosiernumero. La elirstato estas pli\n"
+" granda ol 128 se la atendotempo estas atingita\n"
" -u DN\tlegu per la dosiernunero DN anstataŭ el la ĉefenigujo\n"
"\n"
" Elirstato:\n"
" Äœi estas 0, krom se renkontiÄas dosierfino, aÅ­ atendolimo estas\n"
-" atingita, aÅ­ -u indikas nevalidan dosiernumeron."
+" atingita (tiuokaze Äi superas 128), aÅ­ okazas valoriza eraro, aÅ­\n"
+" -u indikas nevalidan dosiernumeron."
# return [n]
# return [N]
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3843,10 +3953,9 @@ msgstr ""
" Elirstato:\n"
" N, aÅ­ malsukceso se la Åelo ne plenumas Åelfunkcion aÅ­ skripton."
-# set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]
-# set [--abefhkmnptuvxBCHP] [-o OPCINOMO] [ARG ...]
-#: builtins.c:1027
-#, fuzzy
+# set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
+# set [-abefhkmnptuvxBCHP] [-o OPCINOMO] [--] [ARG ...]
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3912,7 +4021,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3995,12 +4104,15 @@ msgstr ""
"\tfunkcioj\n"
" -H\tEbligu atingi la historion !-stile. DefaÅ­lte la opcio estas\n"
"\taktiva en la dialogaj Åeloj.\n"
-" -P\tNe sekvu simbolajn ligilojn plenumante komandojn ÅanÄantajn\n"
-"\tla kurantan dosierujon („cd‟ ktp)\n"
+" -P\tLa simbolaj ligiloj estu travideblaj ĉe plenumo de komandoj\n"
+"\tkiuj ÅanÄas la kurantan dosierujon („cd‟ ktp uzu «fizikan»\n"
+"\tinterpreton de vojnomo).\n"
" -T\tSe aktiva, la DEBUG-kaptilon (DEBUG trap) heredas la Åelaj\n"
"\tfunkcioj\n"
-" -\tLa restantajn argumentojn uzu por valorizi la\n"
-" numerparametrojn. La opcioj -x kaj -v malaktiviÄas.\n"
+" --\tLa restantajn argumentojn uzu por valorizi la numerparametrojn.\n"
+"\tSe tiaj argumentoj mankas, malvalorizu la numerparametrojn.\n"
+" -\tLa restantajn argumentojn uzu por valorizi la numerparametrojn.\n"
+"\tLa opcioj -x kaj -v malaktiviÄas.\n"
"\n"
" Uzante la signon + anstataÅ­ - vi povas malÅalti la opcion. La\n"
" opciojn ankaÅ­ eblas uzi ĉe la voko de la Åelo. La kuranta aro da\n"
@@ -4013,7 +4125,7 @@ msgstr ""
# unset [-f] [-v] [name ...]
# unset [-f] [-v] [NOMO ...]
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -4022,6 +4134,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -4032,26 +4146,27 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-"Forigu valorojn kaj atributojn de Åelaj funkcioj kaj variabloj\n"
+"ForviÅu valorojn kaj atributojn de Åelaj funkcioj kaj variabloj\n"
"\n"
-" Por ĉiu NOMO, forigu la respondan variablon aŭ funkcion.\n"
+" Por ĉiu NOMO, forviÅu la respondan variablon aÅ­ funkcion.\n"
"\n"
" Opcioj:\n"
" -f\ttraktu ĉiun NOMOn kiel funkcion\n"
" -v traktu ĉiun NOMOn kiel variablon\n"
-"\n"
+" -n traktu ĉiun NOMOn kiel nomreferencon, kaj senvalorigu Äin mem\n"
+" (kaj ne la referencatan variablon)\n"
+" \n"
" Se neniu el la du opcioj estas indikita, „unset‟ unue provos\n"
-" forigi variablon, kaj se tia ne troviÄos, funkcion.\n"
+" forviÅi variablon, kaj se tia ne troviÄos, funkcion.\n"
"\n"
-" Iujn variablojn ne eblas forigi. Vd ankaÅ­ la helpon pri\n"
-" „readonly‟.\n"
+" Iujn variablojn ne eblas forviÅi. Vd ankaÅ­ la helpon pri „readonly‟.\n"
"\n"
" Elirstato:\n"
" Sukceso, krom se aperis misa opcio aÅ­ NOMO estas nurlega."
# export [-fn] [name[=value] ...] or export -p
# export [-fn] [NOMO[=VALORO] ...] aÅ­ export -p
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -4085,9 +4200,9 @@ msgstr ""
" Elirstato:\n"
" Sukceso, krom se aperis nevalida NOMO aÅ­ misa opcio."
-# readonly [-af] [name[=value] ...] or readonly -p
+# readonly [-aAf] [name[=value] ...] or readonly -p
# readonly [-aAf] [NOMO[=VALORO] ...] aÅ­ readonly -p
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -4099,7 +4214,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -4113,10 +4230,11 @@ msgstr ""
" valorizi la NOMOn antaÅ­ ol fari Äin nurlega.\n"
"\n"
" Opcioj:\n"
-" -a\ttemas pri pozicitabela signifo de plursignifa NOMO\n"
-" -A\ttemas pri asocitabela signifo de plursignifa NOMO\n"
-" -f\ttemas pri Åelfunkcia signifo de plursignifa NOMO\n"
-" -p\teligu ĉiujn nurlegajn variablojn kaj funkciojn\n"
+" -a\ttemas pri entjerindica tabelo indikita per plursignifa NOMO\n"
+" -A\ttemas pri la asocitabela signifo de plursignifa NOMO\n"
+" -f\ttemas pri la Åelfunkcia signifo de plursignifa NOMO\n"
+" -p\teligu ĉiujn nurlegajn variablojn aŭ funkciojn, depende je\n"
+" tio, ĉu la opcio „-f“ estas aldonita\n"
"\n"
" La opcio „--‟ ĉesigas pluan opcitraktadon.\n"
"\n"
@@ -4124,7 +4242,7 @@ msgstr ""
" Sukceso, krom se aperas nevalida nomo aÅ­ misa opcio."
# shift [n]
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4141,7 +4259,7 @@ msgstr ""
# source filename [arguments]
# source DOSIERNOMO [ARGUMENTOJ]
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4166,7 +4284,7 @@ msgstr ""
" DOSIERNOMO ne legeblas."
# suspend [-f]
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4192,8 +4310,7 @@ msgstr ""
# test [expr]
# test [ESPRIMO]
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4258,6 +4375,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4277,10 +4396,13 @@ msgstr ""
"\n"
" Liveru elirstaton 0 (vera) aÅ­ 1 (malvera) laÅ­ la rezulto de\n"
" komputado de la ESPRIMO. La esprimoj povas esti unulokaj aÅ­\n"
-" dulokaj. La unulokaj plejparte servas por determini la \n"
-" statuson de dosiero. Krome, estas operacioj super ĉenoj kaj la\n"
+" dulokaj. La unulokaj plejparte servas por determini la statuson\n"
+" de dosiero. Krome, estas operacioj super ĉenoj kaj la\n"
" nombrokomparaj operacioj.\n"
"\n"
+" La konduto de test-komando dependas je la kiomo de Äiaj argumentoj.\n"
+" Plenan priskribon donas «man bash».\n"
+"\n"
" Operacioj super dosieroj:\n"
"\n"
"\t-a DOSIERO\tVera se DOSIERO ekzistas\n"
@@ -4325,7 +4447,10 @@ msgstr ""
" Diversaj operacioj:\n"
"\n"
" -o OPCIO Vera se la Åelopcio OPCIO estas Åaltita\n"
-"\t! ESPR\t\tVera se la esprimo ESPR estas falsa\n"
+" -v VAR Vera se la Åelvariablo VAR havas valoron\n"
+" -R VAR Vera se la Åelvariablo VAR havas valoron kaj\n"
+" estas nomreferenco\n"
+"\t! ESPR\t\tVera se la esprimo ESPR estas malvera\n"
"\tESPR1 -a ESPR2\tVera se ambaÅ­ esprimoj estas veraj\n"
"\tESPR1 -o ESPR2\tVera se ajna el la esprimoj estas vera\n"
"\n"
@@ -4342,7 +4467,7 @@ msgstr ""
" argumento."
# [ arg... ]
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4352,7 +4477,7 @@ msgstr ""
"Ĉi tiu estas sinonimo de la primitivo „test‟; tamen la lasta\n"
" argumento devas esti „]‟ fermanta la esprimon komencitan per „[‟."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4373,8 +4498,7 @@ msgstr ""
# trap [-lp] [[arg] signal_spec ...]
# trap [-lp] [[ARG] SIGNALINDIKO ...]
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4431,7 +4555,11 @@ msgstr ""
"\n"
" Se inter la signaloj SIGNALINDIKO estas „EXIT‟ (aŭ 0), tiam ARG de\n"
" la komando plenumiÄos ĉe la eliro el la Åelo. Se en SIGNALINDIKO\n"
-" estas „DEBUG‟, ARG plenumiÄos post ĉiu komando.\n"
+" estas „DEBUG‟, ARG plenumiÄos post ĉiu komando. Se en\n"
+" SIGNALINDIKO estas „RETURN“, ARG plenumiÄos ĉiufoje kiam finiÄas\n"
+" skripto rulata per komando „.“ aŭ „source“. La SIGNALINDIKO „ERR“\n"
+" igas ARGon plenumiÄi ĉiufoje kiam malsukceso de komando kaÅ­zus\n"
+" eliron el la Åelo havanta la opcion „-e“ Åaltita.\n"
"\n"
" Senargumente trap listigas komandojn plenumotajn laŭ ĉiu signalo.\n"
"\n"
@@ -4449,7 +4577,7 @@ msgstr ""
# type [-afptP] name [name ...]
# type [-afptP] NOMO [NOMO ...]
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4507,7 +4635,7 @@ msgstr ""
# ulimit [-SHacdefilmnpqrstuvx] [limit]
# ulimit [-SHacdefilmnpqrstuvx] [LIMO]
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4536,6 +4664,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4550,31 +4681,35 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"ÅœanÄu risurcolimaĵojn de la Åelo\n"
+"ÅœanÄu risurcolimaĵojn de la Åelo.\n"
"\n"
" La komando „ulimit‟ ebligas mastrumi la risurcojn disponeblajn al\n"
-" la procezoj lanĉataj el la Åelo (se la operaciumo ebligas tian\n"
-" mastrumadon).\n"
+" la procezoj lanĉataj el la Åelo (se la operaciumo ebligas tion).\n"
"\n"
" Opcioj:\n"
-" -S\tÅanÄebla („soft‟) limo\n"
-" -H\tfirma („hard‟) limo\n"
-" -a\teligu ĉiujn kurantajn risurcolimaĵojn\n"
-" -c\tmaksimuma longo de nekropsia dosiero („core‟)\n"
-" -d\tmaksimuma longo de datumsegmento de procezo\n"
-" -e\tmaksimuma viciga prioritato („nice‟)\n"
-" -f\tmaksimuma longo de dosieroj skribataj de la Åelo kaj Äiaj idoj\n"
-" -l\tmaksimuma longo de Ålosebla procezmemoro (mlock)\n"
-" -m\tmaksimuma longo de rezida procezmemoro\n"
-" -n\tmaksimuma nombro de malfermitaj dosiernumeroj\n"
-" -p\tlongo de dukta bufro (pipe)\n"
-" -q\tmaksimuma nombro da bajtoj en atendovicoj de Poziksaj mesaÄoj\n"
-" -r\tmaksimuma prioritato realtempa\n"
-" -s\tmaksimuma longo de stako\n"
-" -t\tmaksimuma tempo ĉefprocesora (en sekundoj)\n"
-" -u\tmaksimuma nombro de procezoj de la uzanto\n"
-" -v\tlongo de la virtuala memoro\n"
-" -x\tmaksimuma nombro de dosierÅlosoj\n"
+" -S ÅanÄebla („soft‟) limo\n"
+" -H firma („hard‟) limo\n"
+" -a eligu ĉiujn kurantajn risurcolimaĵojn\n"
+" -b la kontaktoskatola bufrolongo\n"
+" -c maksimuma longo de nekropsia dosiero („core‟)\n"
+" -d maksimuma longo de datumsegmento de procezo\n"
+" -e maksimuma viciga prioritato („nice‟)\n"
+" -i maksimuma longo de pendaj signaloj\n"
+" -f maksimuma longo de dosieroj skribataj de la Åelo kaj Äiaj idoj\n"
+" -l maksimuma longo de Ålosebla procezmemoro (mlock)\n"
+" -m maksimuma longo de rezida procezmemoro\n"
+" -n maksimuma nombro de malfermitaj dosiernumeroj\n"
+" -p longo de dukta bufro (pipe)\n"
+" -q maksimuma nombro da bajtoj en atendovicoj de Poziksaj mesaÄoj\n"
+" -r maksimuma prioritato realtempa\n"
+" -s maksimuma longo de stako\n"
+" -t maksimuma tempo ĉefprocesora (en sekundoj)\n"
+" -u maksimuma nombro de procezoj de la uzanto\n"
+" -v longo de la virtuala memoro\n"
+" -x maksimuma nombro de dosierÅlosoj\n"
+" -T maksimuma nombro de fadenoj\n"
+"\n"
+" Ne ĉiuj opcioj disponeblas sur ĉiuj komputilaj platformoj.\n"
"\n"
" Se LIMO estas indikita, Äia valoro limigas la koncernan risurcon;\n"
" la specialaj vortoj por LIMO: „soft‟, „hard‟, „unlimited‟\n"
@@ -4591,7 +4726,7 @@ msgstr ""
# umask [-p] [-S] [mode]
# umask [-p] [-S] [REÄœIMO]
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4624,64 +4759,71 @@ msgstr ""
" Elirstato:\n"
" Sukceso, krom se REÄœIMO estas nevalida aÅ­ aperas misa opcio."
-# wait [id]
-# wait [IND]
-#: builtins.c:1464
+# wait [-n] [id ...]
+# wait [-n] [IND ...]
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-"Atendu ke laboro finiÄu, kaj liveru elirstaton\n"
+"Atendu ke laboroj finiÄu, kaj liveru elirstaton.\n"
"\n"
-" Atendu finiÄon de la procezo indikita per IND (kiu povas esti\n"
+" Atendu finiÄon de ĉiu procezo indikita per IND (kiu povas esti\n"
" proceznumero aÅ­ laborindiko) kaj liveru Äian elirstaton. Se IND\n"
" malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru la \n"
" elirstaton 0. Se IND estas laborindiko, atendu ĉiujn procezojn en\n"
" la dukto de la laboro.\n"
"\n"
+" Kun la opcio „-n“: atendi finiÄon de la sekva laboro kaj liveru\n"
+" Äian elirstaton.\n"
+"\n"
" Elirstato:\n"
-" Tiu de IND; malsukceso, se IND estas nevalida aÅ­ se renkontiÄas\n"
-" nevalida opcio.<"
+" Tiu de la lasta IND; malsukceso, se IND estas nevalida aÅ­ se\n"
+" renkontiÄas nevalida opcio.<"
-# wait [pid]
-# wait [PN]
-#: builtins.c:1482
+# wait [pid ...]
+# wait [PN ...]
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-"Atendu ke procezo finiÄu, kaj liveru elirstaton\n"
+"Atendu ke procezoj finiÄu, kaj liveru elirstaton\n"
"\n"
-" Atendu finiÄon de la indikita procezo kaj liveru Äian elirstaton.\n"
+" Atendu finiÄon de ĉiu indikita procezoj kaj liveru Äian elirstaton.\n"
" Se PN malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru la\n"
" elirstaton 0. PN devas esti proceznumero.\n"
"\n"
" Elirstato:\n"
-" Tiu de PN; malsukceso, se PN estas nevalida aÅ­ se renkontiÄas\n"
-" nevalida opcio."
+" Tiu de la lasta PN; malsukceso, se PN estas nevalida aÅ­ se\n"
+" renkontiÄas nevalida opcio."
# for NAME [in WORDS ... ] ; do COMMANDS; done
# for NOMO [in VORTOJ ... ] ; do KOMANDOJ; done
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4705,7 +4847,7 @@ msgstr ""
# for (( exp1; exp2; exp3 )); do COMMANDS; done
# for (( ESPR1; ESPR2; ESPR3 )); do KOMANDOJ; done
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4737,7 +4879,7 @@ msgstr ""
# select NAME [in WORDS ... ;] do COMMANDS; done
# select NONO [in VORTOJ ... ;] do KOMANDOJ; done
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4774,7 +4916,7 @@ msgstr ""
# time [-p] PIPELINE
# time [-p] DUKTO
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4805,7 +4947,7 @@ msgstr ""
# case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
# case VORTO in [ÅœABLONO [| ÅœABLONO]...) KOMANDOJ ;;]... esac
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4827,7 +4969,7 @@ msgstr ""
# [ else COMMANDS; ] fi
# if KOMANDOJ; then KOMANDOJ;[ elif KOMANDOJ; then KOMANDOJ; ]...
# [ else KOMANDOJ; ] fi
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4859,7 +5001,7 @@ msgstr ""
# while COMMANDS; do COMMANDS; done
# while KOMANDOJ; do KOMANDOJ; done
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4879,7 +5021,7 @@ msgstr ""
# until COMMANDS; do COMMANDS; done
# until KOMANDOJ; do KOMANDOJ; done
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4899,7 +5041,7 @@ msgstr ""
# coproc [NAME] command [redirections]
# coproc [NOMO] KOMANDO [ALIDIREKTADOJ]
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4923,7 +5065,7 @@ msgstr ""
# function name { COMMANDS ; } or name () { COMMANDS ; }
# function NOMO { KOMANDOJ ; } aÅ­ NOMO () { KOMANDOJ ; }
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4948,7 +5090,7 @@ msgstr ""
# grouping_braces: { COMMANDS ; }
# { KOMANDOJ ; }
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4968,7 +5110,7 @@ msgstr ""
# job_spec [&]
# LABORINDIKO [&]
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4993,7 +5135,7 @@ msgstr ""
# (( expression ))
# (( ESPRIMO ))
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -5013,7 +5155,7 @@ msgstr ""
# [[ expression ]]
# [[ ESPRIMO ]]
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -5064,7 +5206,7 @@ msgstr ""
# help var
# variables - Names and meanings of some shell variables
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5171,7 +5313,7 @@ msgstr ""
# pushd [-n] [+N | -N | dir]
# pushd [-n] [+N | -N | DOSIERUJO]
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5230,7 +5372,7 @@ msgstr ""
" Sukceso, krom se aperas misa argumento aÅ­ se cd malsukcesas."
# popd [-n] [+N | -N]
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5279,7 +5421,7 @@ msgstr ""
" Sukceso, krom se aperas misa argumento aÅ­ se cd malsukcesas."
# dirs [-clpv] [+N] [-N]
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5333,7 +5475,7 @@ msgstr ""
# shopt [-pqsu] [-o] [optname ...]
# shopt [-pqsu] [-o] [OPCINOMO ...]
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5368,13 +5510,11 @@ msgstr ""
"\n"
" Elirstato:\n"
" Sukceso, se OPCINOMO estas Åaltita; malsukceso, se aperas misa\n"
-" opcio, aÅ­ se OPCINOMO estas malÅaltita.\n"
-" "
+" opcio, aÅ­ se OPCINOMO estas malÅaltita."
# printf [-v var] format [arguments]
# printf [-v VAR] FORMATO [ARGUMENTOJ]
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5391,9 +5531,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5401,12 +5541,18 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-"AranÄu kaj eligu argumentojn argumentojn laÅ­ formato\n"
+"AranÄu kaj eligu ARGUMENTOJn laÅ­ FORMATO.\n"
"\n"
" Opcio:\n"
" -v VAR eligu en Åelvariablon VAR anstataÅ­ en la ĉefeligujon\n"
@@ -5416,19 +5562,26 @@ msgstr ""
" eskapsekvencoj por signo, konvertataj kaj kopiataj en la ĉefeligujon; \n"
" kaj formataj specifoj, ĉiu el kiuj kaŭzas eligon de vica argumento.\n"
"\n"
-" Aldone al la normaj specifiloj laŭ „printf(1)‟ kaj „printf(3)‟,\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"
+" Aldone al la normaj specifiloj laŭ „printf(1)‟, printf komprenas:\n"
+"\n"
+" „%b‟ igas malvolvi deklivajn (\\) eskapsekvencojn en sia argumento;\n"
+" „%q‟ encitiligu la argumenton en formon taÅ­gan por Åela re-enigo;\n"
+" „%(fmt)T‟ servas por eligi data-tempan signoĉenon kiel farus\n"
+" „strftime(3)‟ laŭ la formatoĉeno fmt.\n"
+"\n"
+" La formato estas iteracie reuzata kiom necesas por konsumi ĉiujn\n"
+" argumentojn. Se estas malpli da argumentoj ol la formato\n"
+" bezonas, la kromaj specifoj estas interpretataj tiel, kvazaÅ­ la\n"
+" mankantaj argumentoj estus nuloj aŭ vakuaj signoĉenoj (laŭokaze).\n"
"\n"
" Elirstato:\n"
" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro pri skribo aÅ­\n"
" valorizo."
-# complete [-abcdefgjksuv] [-pr] [-o OPCIO] [-A AGO] [-G GLOBÅœAB]
-# [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]
-# [-P PREFIKSO] [-S SUFFIKSO] [NOMO ...]
-#: builtins.c:1913
-#, fuzzy
+# complete [-abcdefgjksuv] [-pr] [-DE] [-o OPCIO] [-A AGO] [-G GLOBÅœAB]
+# [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]
+# [-P PREFIKSO] [-S SUFIKSO] [NOMO ...]
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5454,19 +5607,23 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"Difinu, kiel Readline kompletigu argumentojn\n"
+"Difinu, kiel Readline kompletigu argumentojn.\n"
"\n"
" Por ĉiu NOMO difinu, kiel la argumentoj estu kompletigotaj. Se\n"
" nenia opcio estas donita, eligu la aktualajn \n"
" kompletigoregulojn en formo reuzebla por enigo en la Åelon.\n"
"\n"
" Opcioj:\n"
-" -p\tkompletigoregulojn en formo reuzebla por enigo en la Åelon\n"
+" -p\teligu kompletigoregulojn en formo uzebla por enigo en la Åelon\n"
" -r\tforigu la kompletigoregulon por ĉiu NOMO, aŭ, se nenia NOMO\n"
"\testas donita, ĉiujn kompletigoregulojn\n"
+" -D apliku la indikitajn kompletigojn kaj agojn DefaÅ­lte por la\n"
+" komandoj sen specifa kompletigo-difino\n"
+" -E apliku la indikitajn kompletigojn kaj agojn al vakuaj (Empty)\n"
+" komandoj (la kompletigoj provotaj en vakua komandolinio)\n"
"\n"
" Ĉe provo kompletigi la agoj aplikiÄas laÅ­ la ordo de majusklaj\n"
-" opcioj en la ĉi-supre listo.\n"
+" opcioj en la ĉi-supre listo. La opcio -D superregas la opcion -E.\n"
"\n"
" Elirstato:\n"
" Sukceso, krom se misa opcio estas donita, aÅ­ eraro okazis."
@@ -5475,9 +5632,9 @@ msgstr ""
# [-W wordlist] [-P prefix] [-S suffix] [-X filterpat]
# [-F function] [-C command] [word]
# compgen [-abcdefgjksuv] [-o OPCIO] [-A AGO] [-G GLOBÅœAB]
-# [-W vORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]
-# [-P PREFIKSO] [-S SUFFIKSO] [VORTO]
-#: builtins.c:1941
+# [-W VORTLISTO] [-F FUNKCIO] [-C KOMANDO] [-X FILTROÅœAB]
+# [-P PREFIKSO] [-S SUFIKSO] [VORTO]
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5497,10 +5654,8 @@ msgstr ""
" Elirstato:\n"
" Sukceso, krom se aperas misa opcio aÅ­ okazas eraro."
-# compopt [-o|+o option] [name ...]
-# compopt [-o|+o OPCIO] [NOMO ...]
-#: builtins.c:1956
-#, fuzzy
+# compopt [-o|+o OPCIO] [-DE] [NOMO ...]
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5539,8 +5694,10 @@ msgstr ""
"\n"
" Opcioj:\n"
" -o OPCIO Ŝaltu kompletigan OPCIOn por ĉiu NOMO\n"
+" -D ÅœanÄu opciojn por la DefaÅ­lta komandokompletigo\n"
+" -E ÅœanÄu opciojn por la vakua (Empty) komandokompletigo.\n"
"\n"
-" Uzante «+o» anstataÅ­ «-o» oni povas malÅalti la indikitan OPCIOn.\n"
+" Uzante «+o» anstataÅ­ «-o» oni malÅaltas la indikitan OPCIOn.\n"
"\n"
" Argumentoj:\n"
" Ĉiu NOMO indikas komandon, por kiu kompletiga regulo devas esti\n"
@@ -5557,8 +5714,7 @@ msgstr ""
# [-c quantum] [array]
# mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO]
# [-c KVANTO] [TABELO]
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5600,9 +5756,9 @@ msgid ""
msgstr ""
"Legu liniojn el la ĉefenigujo en tabelvariablon\n"
"\n"
-" Legu liniojn el la ĉefenigujo en la variablon TABELO, aŭ el la\n"
-" dosiernumero DN, se ĉeestas la opcio „-u‟. La defaŭlta tabelo\n"
-" estas la variablo MAPFILE.\n"
+" Legu liniojn el la ĉefenigujo en la entjerindican variablon\n"
+" TABELO, aŭ el la dosiernumero DN, se ĉeestas la opcio „-u‟.\n"
+" DefaÅ­lte TABELO estas la variablo MAPFILE.\n"
"\n"
" Opcioj:\n"
" -n NOMBRILO Kopiu maksimume NOMBRILOn da linioj. Se NOMBRILO\n"
@@ -5620,17 +5776,19 @@ msgstr ""
"\n"
" Se „-C‟ aperas sen „-c‟, la defaŭlta kvanto estas 5000. Ĉe\n"
" komputo de RETROVOKO ĉi tiu ricevas la indicon de la sekva\n"
-" elemento de la tabelo kiel kroman argumenton.\n"
+" valorizota tabelano kaj la en Äin skribotan linion kiel kromajn\n"
+" argumentojn.\n"
"\n"
" Se mankas malimplica ORIGINO, mapfile viÅos la TABELOn antaÅ­\n"
" valorizi Äin.\n"
"\n"
" Elirstato:\n"
-" Sukceso, krom se aperas misa opcio aÅ­ TABELO estas nurlega."
+" Sukceso, krom se aperas misa opcio aÅ­ TABELO estas nurlega aÅ­\n"
+" Äi ne estas entjerindica tabelo."
# readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback]
# [-c quantum] [array]
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5639,14 +5797,3 @@ msgstr ""
"Legu liniojn el la ĉefenigujo en tabelvariablon\n"
"\n"
" Sinonimo de „mapfile‟."
-
-#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc(): Ne povas reokupi %lu bajtojn (%lu bajtoj disponigitaj)."
-
-#~ msgid "xrealloc: cannot allocate %lu bytes"
-#~ msgstr "xrealloc: Ne eblas reokupi %lu bajtojn."
-
-# XXX: fatal_error
-#~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xrealloc: %s:%d: ne eblas reokupi %lu bajtojn (%lu bajtoj disponigitaj)"
diff --git a/po/es.gmo b/po/es.gmo
index 309e9975..4799cda2 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 34789338..f07cda76 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,109 +1,125 @@
-# Mensajes en español para GNU bash-4.1.
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Mensajes en español para GNU bash-4.2.
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010.
+# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU bash 4.1\n"
+"Project-Id-Version: GNU bash 4.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-01-04 12:56-0600\n"
-"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2011-08-14 11:55-0500\n"
+"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
-msgstr "subíndice de matriz incorrecto"
+msgstr "subíndice de matriz incorrecto"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: no se puede convertir la matriz de indizada a asociativa"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
-msgstr "%s: índice de matriz asociativa inválido"
+msgstr "%s: índice de matriz asociativa inválido"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
-msgstr "%s: no se puede asignar a un índice que no es numérico"
+msgstr "%s: no se puede asignar a un índice que no es numérico"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: se debe usar un subíndice al asignar a una matriz asociativa"
+msgstr "%s: %s: se debe usar un subíndice al asignar a una matriz asociativa"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: no se puede crear: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-"bash_execute_unix_command: no se puede encontrar la combinación de teclas "
+"bash_execute_unix_command: no se puede encontrar la combinación de teclas "
"para la orden"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
-msgstr "%s: el primer carácter que no es espacio en blanco no es `\"'"
+msgstr "%s: el primer carácter que no es espacio en blanco no es `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "no hay un `%c' que cierre en %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: falta un `:' separador"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
-msgstr "`%s': nombre de alias inválido"
+msgstr "`%s': nombre de alias inválido"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
-msgstr "no se activó la edición de línea"
+msgstr "no se activó la edición de línea"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
-msgstr "`%s': nombre de combinación de teclas inválido"
+msgstr "`%s': nombre de combinación de teclas inválido"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: no se puede leer: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
-msgstr "%s: no se puede borrar la asignación"
+msgstr "%s: no se puede borrar la asignación"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
-msgstr "`%s': nombre de función desconocido"
+msgstr "`%s': nombre de función desconocido"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr "%s no está asignado a ninguna tecla.\n"
+msgstr "%s no está asignado a ninguna tecla.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
-msgstr "%s se puede invocar a través de "
+msgstr "%s se puede invocar a través de "
#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
@@ -111,9 +127,9 @@ msgstr "cuenta de ciclo"
#: 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'"
+msgstr "sólo tiene significado en un ciclo `for', `while' o `until'"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -123,20 +139,24 @@ msgstr ""
" \n"
" Sin EXPR, devuelve "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
-msgstr "HOME no está definido"
+msgstr "HOME no está definido"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "demasiados argumentos"
-#: builtins/cd.def:247
+#: builtins/cd.def:338
msgid "OLDPWD not set"
-msgstr "OLDPWD no está definido"
+msgstr "OLDPWD no está definido"
#: builtins/common.c:101
#, c-format
msgid "line %d: "
-msgstr "línea %d: "
+msgstr "línea %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "aviso: "
@@ -146,66 +166,62 @@ msgstr "aviso: "
msgid "%s: usage: "
msgstr "%s: uso: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "demasiados argumentos"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
-msgstr "%s: la opción requiere un argumento"
+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"
+msgstr "%s: se requiere un argumento numérico"
#: builtins/common.c:205
#, c-format
msgid "%s: not found"
-msgstr "%s: no se encontró"
+msgstr "%s: no se encontró"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
-msgstr "%s: opción inválida"
+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"
+msgstr "%s: nombre de opción inválido"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
-msgstr "`%s': no es un identificador válido"
+msgstr "`%s': no es un identificador válido"
#: builtins/common.c:238
msgid "invalid octal number"
-msgstr "número octal inválido"
+msgstr "número octal inválido"
#: builtins/common.c:240
msgid "invalid hex number"
-msgstr "número hexadecimal inválido"
+msgstr "número hexadecimal inválido"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
-msgstr "número inválido"
+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"
+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"
+msgstr "`%s': no es un pid o una especificación válida de trabajo"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
-msgstr "%s: variable de sólo lectura"
+msgstr "%s: variable de sólo lectura"
#: builtins/common.c:272
#, c-format
@@ -272,59 +288,69 @@ msgstr "%s: error al obtener el directorio actual: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
-msgstr "%s: especificación de trabajo ambigua"
+msgstr "%s: especificación de trabajo ambigua"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
-msgstr "%s: nombre de acción inválido"
+msgstr "%s: nombre de acción inválido"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
-msgstr "%s: no hay completado de especificación"
+msgstr "%s: no hay completado de especificación"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
-msgstr "aviso: es posible que la opción -F no funcione como se espera"
+msgstr "aviso: es posible que la opción -F no funcione como se espera"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
-msgstr "aviso: es posible que la opción -C no funcione como se espera"
+msgstr "aviso: es posible que la opción -C no funcione como se espera"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr "no se está ejecutando la función de completado"
+msgstr "no se está ejecutando la función de completado"
-# sólo se puede usar. sv
+# sólo se puede usar. sv
# De acuerdo. cfuga
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
-msgstr "sólo se puede usar dentro de una función"
+msgstr "sólo se puede usar dentro de una función"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
-#: builtins/declare.def:366
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "no se puede usar `-f' para hacer funciones"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
-msgstr "%s: función de sólo lectura"
+msgstr "%s: función de sólo lectura"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, 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:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: no se puede convertir una matriz asociativa a indizada"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
-msgstr "la carga dinámica no está disponible"
+msgstr "la carga dinámica no está disponible"
#: builtins/enable.def:312
#, c-format
@@ -339,33 +365,32 @@ 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"
+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:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: es un directorio"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: no es un fichero regular"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, 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:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: no se puede ejecutar el fichero binario"
@@ -392,17 +417,17 @@ msgstr "Hay trabajos detenidos.\n"
#: builtins/exit.def:122
#, c-format
msgid "There are running jobs.\n"
-msgstr "Hay trabajos en ejecución.\n"
+msgstr "Hay trabajos en ejecución.\n"
#: builtins/fc.def:262
msgid "no command found"
-msgstr "no se encontró la orden"
+msgstr "no se encontró la orden"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
-msgstr "especificación de historia"
+msgstr "especificación de historia"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: no se puede abrir el fichero temporal: %s"
@@ -414,26 +439,26 @@ msgstr "actual"
#: builtins/fg_bg.def:158
#, c-format
msgid "job %d started without job control"
-msgstr "el trabajo %d inició sin control de trabajo"
+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"
+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"
+msgstr "%s: la opción requiere un argumento -- %c\n"
#: builtins/hash.def:92
msgid "hashing disabled"
-msgstr "asociación desactivada"
+msgstr "asociación desactivada"
#: builtins/hash.def:138
#, c-format
msgid "%s: hash table empty\n"
-msgstr "%s: tabla de asociación vacía\n"
+msgstr "%s: tabla de asociación vacía\n"
#: builtins/hash.def:245
#, c-format
@@ -445,22 +470,22 @@ msgstr "coinc\torden\n"
msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
msgstr[0] "Orden del shell que coinciden con la palabra `"
-msgstr[1] "Órdenes del shell que coinciden con la palabra `"
+msgstr[1] "Órdenes del shell que coinciden con la palabra `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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'."
+"no hay temas de ayuda que coincidan con `%s'. Pruebe `help help' o `man -k "
+"%s' o `info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: no se puede abrir: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -471,136 +496,146 @@ msgid ""
"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"
+"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"
+"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á "
+"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"
+msgstr "no se puede usar más de uno de -anrw"
#: builtins/history.def:186
msgid "history position"
-msgstr "posición en la historia"
+msgstr "posición en la historia"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
-msgstr "%s: falló la expansión de la historia"
+msgstr "%s: falló la expansión de la historia"
#: builtins/inlib.def:71
#, c-format
msgid "%s: inlib failed"
-msgstr "%s: falló inlib"
+msgstr "%s: falló inlib"
#: builtins/jobs.def:109
msgid "no other options allowed with `-x'"
msgstr "no se permiten otras opciones con `-x'"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, 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:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Error desconocido"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
-msgstr "se esperaba una expresión"
+msgstr "se esperaba una expresión"
#: builtins/mapfile.def:172
#, c-format
msgid "%s: not an indexed array"
msgstr "%s: no es una matriz indizada"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr "%s: especificación de descriptor de fichero inválida"
+msgstr "%s: especificación de descriptor de fichero inválida"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr "%d: descriptor de fichero inválido: %s"
+msgstr "%d: descriptor de fichero inválido: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
-msgstr "%s: cuenta de líneas inválida"
+msgstr "%s: cuenta de líneas inválida"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
-msgstr "%s: origen de matriz inválido"
+msgstr "%s: origen de matriz inválido"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
-msgstr "%s: quantum de llamada inválido"
+msgstr "%s: quantum de llamada inválido"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
-msgstr "nombre de variable de matriz vacío"
+msgstr "nombre de variable de matriz vacío"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "se requiere el soporte de variable de matriz"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
-msgstr "`%s': falta el carácter de formato"
+msgstr "`%s': falta el carácter de formato"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: especificación de tiempo de expiración inválida"
+msgstr "`%c': especificación de formato de tiempo inválida"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
-msgstr "`%c': carácter de formato inválido"
+msgstr "`%c': carácter de formato inválido"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "aviso: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
-msgstr "falta el dígito hexadecimal para \\x"
+msgstr "falta el dígito hexadecimal para \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "falta el dígito hexadecimal para \\x"
+msgstr "falta el dígito unicode para \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "no hay otro directorio"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: límite de argumento inválido"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<no hay directorio actual>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr "la pila de directorios está vacía"
+msgstr "la pila de directorios está vacía"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "índice de la pila de directorios"
+msgstr "índice de la pila de directorios"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -631,20 +666,20 @@ msgstr ""
" -c\tlimpia la pila de directorios, eliminando todos los elementos\n"
" -l\tno muestra las versiones con prefijo de tilde de los directorios\n"
" \trelativos a su directorio inicial\n"
-" -p\tmuestra la pila de directorios con una entrada por línea\n"
-" -v\tmuestra la pila de directorios con una entrada por línea con\n"
-" \tsu posición en la pila como prefijo\n"
+" -p\tmuestra la pila de directorios con una entrada por línea\n"
+" -v\tmuestra la pila de directorios con una entrada por línea con\n"
+" \tsu posición en la pila como prefijo\n"
" \n"
" Argumentos:\n"
-" +N\tMuestra la N-ésima entrada contando desde la izquierda de\n"
+" +N\tMuestra la N-ésima entrada contando desde la izquierda de\n"
" \tla lista mostrada por dirs cuando se llama sin opciones,\n"
" \tempezando desde cero.\n"
" \n"
-" -N\tMuestra la N-ésima entrada contando desde la derecha de\n"
+" -N\tMuestra la N-ésima entrada contando desde la derecha de\n"
"\tla lista mostrada por dirs cuando se llama sin opciones,\n"
"\tempezando desde cero."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -674,19 +709,19 @@ msgstr ""
" los dos directorios del tope.\n"
" \n"
" Argumentos:\n"
-" +N\tRota la pila para que el N-ésimo directorio (contando\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"
+" \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"
+" \tcomenzando desde cero) esté en el tope.\n"
" \n"
" dir\tagrega DIR a la pila de directorios en el tope,\n"
-" \thaciéndolo el nuevo directorio de trabajo actual.\n"
+" \thaciéndolo el nuevo directorio de trabajo actual.\n"
" \n"
" La orden interna `dirs' muestra la pila de directorios."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -711,72 +746,72 @@ msgstr ""
" \n"
" Opciones:\n"
" -n\tsuprime el cambio normal de directorio cuando se borran\n"
-" \tdirectorios de la pila, así sólo se manipula la pila.\n"
+" \tdirectorios de la pila, así sólo se manipula la pila.\n"
" \n"
" Argumentos:\n"
-" +N\tBorra la N-ésima entrada contando de la izquierda de\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"
+" -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"
+" \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n"
+" \tel penúltimo.\n"
" \n"
" La orden interna `dirs' muestra la pila de directorios."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
-msgstr "%s: especificación de tiempo de expiración inválida"
+msgstr "%s: especificación de tiempo de expiración inválida"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "error de lectura: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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'"
+"sólo se puede usar `return' en una función o un guión leído con `source'"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
-msgstr "no se puede borrar al mismo tiempo una función y una variable"
+msgstr "no se puede borrar al mismo tiempo una función y una variable"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: no se puede borrar"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: no se puede borrar: %s es de solo lectura"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: no es una variable de matriz"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
-msgstr "%s: no es una función"
+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:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
-msgstr "no se pueden activar y desactivar opciones del shell simultáneamente"
+msgstr "no se pueden activar y desactivar opciones del shell simultáneamente"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
-msgstr "%s: nombre de opción del shell inválido"
+msgstr "%s: nombre de opción del shell inválido"
#: builtins/source.def:130
msgid "filename argument required"
@@ -785,7 +820,7 @@ msgstr "se requiere un argumento de nombre de fichero"
#: builtins/source.def:155
#, c-format
msgid "%s: file not found"
-msgstr "%s: no se encontró el fichero"
+msgstr "%s: no se encontró el fichero"
#: builtins/suspend.def:101
msgid "cannot suspend"
@@ -808,14 +843,14 @@ 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"
+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
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s is %s\n"
@@ -823,207 +858,224 @@ msgstr "%s is %s\n"
#: builtins/type.def:337
#, c-format
msgid "%s is hashed (%s)\n"
-msgstr "%s está asociado (%s)\n"
+msgstr "%s está asociado (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
-msgstr "%s: límite de argumento inválido"
+msgstr "%s: límite de argumento inválido"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "`%c': orden errónea"
+msgstr "`%c': orden errónea"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
-msgstr "%s: no se puede obtener el límite: %s"
+msgstr "%s: no se puede obtener el límite: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
-msgstr "límite"
+msgstr "límite"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
-msgstr "%s: no se puede modificar el límite: %s"
+msgstr "%s: no se puede modificar el límite: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
-msgstr "número octal"
+msgstr "número octal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr "`%c': operador de modo simbólico inválido"
+msgstr "`%c': operador de modo simbólico inválido"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr "`%c': carácter de modo simbólico inválido"
+msgstr "`%c': carácter de modo simbólico inválido"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr " línea "
+msgstr " línea "
#: error.c:165
#, c-format
msgid "last command: %s\n"
-msgstr "última orden: %s\n"
+msgstr "última orden: %s\n"
#: error.c:173
#, c-format
msgid "Aborting..."
msgstr "Abortando..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "error de orden desconocido"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
-msgstr "tipo de orden erróneo"
+msgstr "tipo de orden erróneo"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
-msgstr "conector erróneo"
+msgstr "conector erróneo"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
-msgstr "salto erróneo"
+msgstr "salto erróneo"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variable sin asignar"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "no se puede redirigir la salida estándar desde /dev/null: %s"
+msgstr "no se puede redirigir la salida estándar desde /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "TIMEFORMAT: `%c': carácter de formato inválido"
+msgstr "TIMEFORMAT: `%c': carácter de formato inválido"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
-msgstr "error de tubería"
+msgstr "error de tubería"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes"
+msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
-msgstr "%s: no se encontró la orden"
+msgstr "%s: no se encontró la orden"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s is %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
-msgstr "%s: %s: intérprete erróneo"
+msgstr "%s: %s: intérprete erróneo"
+
+# file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
+# De acuerdo. Corregido en todo el fichero. cfuga
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: no se puede ejecutar el fichero binario"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s es una orden interna del shell\n"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "no se puede duplicar el df %d al df %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
-msgstr "se ha excedido el nivel de recursión de la expresión"
+msgstr "se ha excedido el nivel de recursión de la expresión"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
-msgstr "desbordamiento de la base de la pila de recursión"
+msgstr "desbordamiento de la base de la pila de recursión"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
-msgstr "error sintáctico en la expresión"
+msgstr "error sintáctico en la expresión"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
-msgstr "se intentó asignar a algo que no es una variable"
+msgstr "se intentó asignar a algo que no es una variable"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
-msgstr "división por 0"
+msgstr "división por 0"
-# token en bison fue traducido como terminal. ¿Lo traducimos igual aquí
+# token en bison fue traducido como terminal. ¿Lo traducimos igual aquí
# o lo dejamos como 'unidad' o 'elemento'? cfuga
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
-msgstr "bicho: elemento de asignación de expresión erróneo"
+msgstr "bicho: elemento de asignación de expresión erróneo"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
-msgstr "se esperaba `:' para la expresión condicional"
+msgstr "se esperaba `:' para la expresión condicional"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponente menor que 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-"se esperaba un identificador después del pre-incremento o pre-decremento"
+"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:910
+# mmmh, puede faltar más de un paréntesis cfuga
+# tiene razón Enrique, es singular. cfuga
+#: expr.c:1002
msgid "missing `)'"
msgstr "falta un `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
-msgstr "error sintáctico: se esperaba un operando"
+msgstr "error sintáctico: se esperaba un operando"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
-msgstr "error sintáctico: operador aritmético inválido"
+msgstr "error sintáctico: operador aritmético inválido"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (el elemento de error es \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
-msgstr "base aritmética inválida"
+msgstr "base aritmética inválida"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "valor demasiado grande para la base"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
-msgstr "%s: error de expresión\n"
+msgstr "%s: error de expresión\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: no se puede acceder a los directorios padre"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "no se puede reestablecer el modo nodelay para el df %d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
@@ -1033,162 +1085,162 @@ msgstr ""
# buffer: espacio intermedio , alojamiento intermedio ( me gusta menos )
# em+
# almacenamiento intermedio. cfuga
-#: input.c:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
-msgstr "start_pipeline: tubería de pgrp"
+msgstr "start_pipeline: tubería de pgrp"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
-msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d"
+msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "borrando el trabajo detenido %d con grupo de proceso %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: el proceso %5ld (%s) en the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr "add_process: pid %5ld (%s) se marca como vivo aún"
+msgstr "add_process: pid %5ld (%s) se marca como vivo aún"
-# Cambiaría 'hay' por 'existe' em+
-#: jobs.c:1430
+# Cambiaría 'hay' por 'existe' em+
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: no existe tal pid"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
-msgstr "Señal %d"
+msgstr "Señal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Hecho"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Detenido"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Detenido(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Ejecutando"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Hecho(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Salida %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Estado desconocido"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(`core' generado) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (dir ahora: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid hijo (%ld a %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: No hay un registro del proceso %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
-msgstr "wait_for_job: el trabajo %d está detenido"
+msgstr "wait_for_job: el trabajo %d está detenido"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: el trabajo ha terminado"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
-msgstr "%s: el trabajo %d ya está en segundo plano"
+msgstr "%s: el trabajo %d ya está en segundo plano"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: se activa WNOHANG para evitar el bloque indefinido"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
-msgstr "%s: línea %d: "
+msgstr "%s: línea %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (`core' generado)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(dir ahora: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
-msgstr "initialize_jobs_control: falló getpgrp"
+msgstr "initialize_jobs_control: falló getpgrp"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
-msgstr "initialize_jobs_control: disciplina de línea"
+msgstr "initialize_jobs_control: disciplina de línea"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_jobs_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "no se puede establecer el grupo de proceso de terminal (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
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"
+msgstr "malloc: falló la aserción: %s\n"
#: lib/malloc/malloc.c:312
#, c-format
@@ -1197,408 +1249,409 @@ msgid ""
"malloc: %s:%d: assertion botched\r\n"
msgstr ""
"\r\n"
-"malloc: %s:%d: aserción arruinada\r\n"
+"malloc: %s:%d: aserción arruinada\r\n"
#: lib/malloc/malloc.c:313
msgid "unknown"
msgstr "desconocido"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: bloque en la lista libre sobreescrito"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
-msgstr "free: se llamó con un argumento de bloque previamente liberado"
+msgstr "free: se llamó con un argumento de bloque previamente liberado"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
-msgstr "free: se llamó con un argumento de bloque sin asignar"
+msgstr "free: se llamó con un argumento de bloque sin asignar"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-"free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+"free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
-msgstr "free: los tamaños de los pedazos de inicio y fin son diferentes"
+msgstr "free: los tamaños de los pedazos de inicio y fin son diferentes"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
-msgstr "realloc: se llamó con un argumento de bloque sin asignar"
+msgstr "realloc: se llamó con un argumento de bloque sin asignar"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-"realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+"realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
-msgstr "realloc: los tamaños de los pedazos de inicio y fin son diferentes"
+msgstr "realloc: los tamaños de los pedazos de inicio y fin son diferentes"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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"
+msgstr "register_alloc: ¿la tabla alloc está llena con FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
-msgstr "register_alloc: ¿%p ya está en la tabla como asignado?\n"
+msgstr "register_alloc: ¿%p ya está en la tabla como asignado?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: ¿%p ya está en la tabla como libre?\n"
+msgstr "register_free: ¿%p ya está en la tabla como libre?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
-msgstr "base inválida"
+msgstr "base inválida"
#: lib/sh/netopen.c:168
#, c-format
msgid "%s: host unknown"
-msgstr "%s: anfitrión desconocido"
+msgstr "%s: anfitrión desconocido"
#: lib/sh/netopen.c:175
#, c-format
msgid "%s: invalid service"
-msgstr "%s: servicio inválido"
+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"
+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"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: no se puede cambiar el local (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: no se puede cambiar el local (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Tiene correo en $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Tiene correo nuevo en $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
-msgstr "El correo en %s fue leído\n"
+msgstr "El correo en %s fue leído\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr "error sintáctico: se requiere una expresión aritmética"
+msgstr "error sintáctico: se requiere una expresión aritmética"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr "error sintáctico: `;' inesperado"
+msgstr "error sintáctico: `;' inesperado"
#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
-msgstr "error sintáctico: `((%s))'"
+msgstr "error sintáctico: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: tipo de instrucción %d erróneo"
+msgstr "make_here_document: tipo de instrucción %d erróneo"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-"el documento-aquí en la línea %d está delimitado por fin-de-fichero (se "
+"el documento-aquí en la línea %d está delimitado por fin-de-fichero (se "
"esperaba `%s')"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, 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"
+"make_redirection: la instrucción de redirección `%d' está fuera de rango"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "EOF inesperado mientras se buscaba un `%c' coincidente"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "EOF inesperado mientras se buscaba `]]'"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'"
+msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
-msgstr "error sintáctico en la expresión condicional"
+msgstr "error sintáctico en la expresión condicional"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "elemento inesperado `%s', se esperaba `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "se esperaba `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "argumento inesperado `%s' para el operador unario condicional"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "argumento inesperado para el operador unario condicional"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "elemento inesperado `%s', se esperaba un operador binario condicional"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "se esperaba un operador binario condicional"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "argumento inesperado `%s' para el operador binario condicional"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "argumento inesperado para el operador binario condicional"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "elemento inesperado `%c' en la orden condicional"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "elemento inesperado `%s' en la orden condicional"
-#: parse.y:4242
+#: parse.y:4387
#, 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
+# 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:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
-msgstr "error sintáctico cerca del elemento inesperado `%s'"
+msgstr "error sintáctico cerca del elemento inesperado `%s'"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
-msgstr "error sintáctico cerca de `%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
+# 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:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
-msgstr "error sintáctico: no se esperaba el final del fichero"
+msgstr "error sintáctico: no se esperaba el final del fichero"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
-msgstr "error sintáctico"
+msgstr "error sintáctico"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Use \"%s\" para dejar el shell.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "EOF inesperado mientras se buscaba un `)' coincidente"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
-msgstr "completion: no se encuentra la función `%s'"
+msgstr "completion: no se encuentra la función `%s'"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: COMPSPEC nulo"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
-msgstr "print_command: conector erróneo `%d'"
+msgstr "print_command: conector erróneo `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "xtrace_set: %d: descriptor de fichero inválido"
+msgstr "xtrace_set: %d: descriptor de fichero inválido"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: puntero a fichero NULL"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
-msgstr "cprintf: `%c': carácter de formato inválido"
+msgstr "cprintf: `%c': carácter de formato inválido"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "descriptor de fichero fuera de rango"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: redireccionamiento ambiguo"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: no se puede sobreescribir un fichero existente"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restringido: no se puede redirigir la salida"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
-msgstr "no se puede crear un fichero temporal para el documento-aquí: %s"
+msgstr "no se puede crear un fichero temporal para el documento-aquí: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: no se puede asignar el fd a la variable"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "no se admite /dev/(tcp|udp)/anfitrion/puerto sin red"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
-msgstr "error de redirección: no se puede duplicar el df"
+msgstr "error de redirección: no se puede duplicar el df"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
-msgstr "¡no se puede encontrar /tmp, crear por favor!"
+msgstr "¡no se puede encontrar /tmp, crear por favor!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
-msgstr "/tmp debe ser un nombre de directorio válido"
+msgstr "/tmp debe ser un nombre de directorio válido"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
-msgstr "%c%c: opción inválida"
+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
+# 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:1652
+#: shell.c:1682
msgid "I have no name!"
-msgstr "¡No tengo nombre de usuario!"
+msgstr "¡No tengo nombre de usuario!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
-msgstr "GNU bash, versión %s-(%s)\n"
+msgstr "GNU bash, versión %s-(%s)\n"
-# En la lista spanglish se discutió mucho sobre script,
-# no sé en que quedó, ni puedo decirte ahora cómo lo hemos
+# 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:1796
+# como guión del shell , eso es seguro ... así que puede estar
+# bien así , ya lo verán otros em+
+#: shell.c:1828
#, 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"
+"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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Opciones GNU largas:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Opciones del shell:\n"
-#: shell.c:1803
-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:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
-msgstr "\t-%s o -o opción\n"
+msgstr "\t-%s o -o opción\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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 "
+"Teclee `%s -c \"help set\"' para más información sobre las opciones del "
"shell.\n"
-#: shell.c:1825
+#: shell.c:1857
#, 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 "
+"Teclee `%s -c help' para más información sobre las órdenes internas del "
"shell.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Use la orden `bashbug' para reportar bichos.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
-msgstr "sigprocmask: %d: operación inválida"
+msgstr "sigprocmask: %d: operación inválida"
#: siglist.c:48
msgid "Bogus signal"
-msgstr "Señal ambigua"
+msgstr "Señal ambigua"
#: siglist.c:51
msgid "Hangup"
@@ -1614,7 +1667,7 @@ msgstr "Salir"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr "Instrucción ilegal"
+msgstr "Instrucción ilegal"
#: siglist.c:67
msgid "BPT trace/trap"
@@ -1622,15 +1675,15 @@ msgstr "BPT rastreo/captura"
#: siglist.c:75
msgid "ABORT instruction"
-msgstr "instrucción ABORT"
+msgstr "instrucción ABORT"
#: siglist.c:79
msgid "EMT instruction"
-msgstr "instrucción EMT"
+msgstr "instrucción EMT"
#: siglist.c:83
msgid "Floating point exception"
-msgstr "Excepción de coma flotante"
+msgstr "Excepción de coma flotante"
#: siglist.c:87
msgid "Killed"
@@ -1642,22 +1695,22 @@ msgstr "Error en el bus"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr "Violación de segmento"
+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
+# 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:99
msgid "Bad system call"
-msgstr "Llamada al sistema errónea"
+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
+# (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:103
msgid "Broken pipe"
-msgstr "Tubería rota"
+msgstr "Tubería rota"
#: siglist.c:107
msgid "Alarm clock"
@@ -1669,19 +1722,19 @@ msgstr "Terminado"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr "Condición de E/S urgente"
+msgstr "Condición de E/S urgente"
#: siglist.c:119
msgid "Stopped (signal)"
-msgstr "Detenido (señal)"
+msgstr "Detenido (señal)"
#: siglist.c:127
msgid "Continue"
-msgstr "Continúa"
+msgstr "Continúa"
#: siglist.c:135
msgid "Child death or stop"
-msgstr "El proceso hijo ha muerto o está parado"
+msgstr "El proceso hijo ha muerto o está parado"
#: siglist.c:139
msgid "Stopped (tty input)"
@@ -1697,11 +1750,11 @@ msgstr "E/S listas"
#: siglist.c:151
msgid "CPU limit"
-msgstr "Límite de CPU"
+msgstr "Límite de CPU"
#: siglist.c:155
msgid "File limit"
-msgstr "Límite de ficheros"
+msgstr "Límite de ficheros"
#: siglist.c:159
msgid "Alarm (virtual)"
@@ -1717,15 +1770,15 @@ msgstr "Ventana cambiada"
#: siglist.c:171
msgid "Record lock"
-msgstr "Bloqueo de grabación"
+msgstr "Bloqueo de grabación"
#: siglist.c:175
msgid "User signal 1"
-msgstr "Señal de usuario 1"
+msgstr "Señal de usuario 1"
#: siglist.c:179
msgid "User signal 2"
-msgstr "Señal de usuario 2"
+msgstr "Señal de usuario 2"
#: siglist.c:183
msgid "HFT input data pending"
@@ -1733,15 +1786,15 @@ 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
+# 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:187
msgid "power failure imminent"
-msgstr "fallo de energía inminente"
+msgstr "fallo de energía inminente"
#: siglist.c:191
msgid "system crash imminent"
-msgstr "caída del sistema inminente"
+msgstr "caída del sistema inminente"
#: siglist.c:195
msgid "migrate process to another CPU"
@@ -1749,7 +1802,7 @@ msgstr "migrando el proceso a otra CPU"
#: siglist.c:199
msgid "programming error"
-msgstr "error de programación"
+msgstr "error de programación"
#: siglist.c:203
msgid "HFT monitor mode granted"
@@ -1765,260 +1818,271 @@ msgstr "la secuencia de sonido HFT ha sido completado"
#: siglist.c:215
msgid "Information request"
-msgstr "Solicitud de información"
+msgstr "Solicitud de información"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr "Señal Desconocida #"
+msgstr "Señal Desconocida #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr "Señal Desconocida #%d"
+msgstr "Señal Desconocida #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr "sustitución errónea: no hay un `%s' que cierre en %s"
+msgstr "sustitución errónea: no hay un `%s' que cierre en %s"
-#: subst.c:2795
+#: subst.c:2847
#, 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:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
-msgstr "no se puede crear la tubería para la sustitución del proceso"
+msgstr "no se puede crear la tubería para la sustitución del proceso"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
-msgstr "no se puede crear un proceso hijo para la sustitución del proceso"
+msgstr "no se puede crear un proceso hijo para la sustitución del proceso"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
-msgstr "no se puede abrir la tubería llamada %s para lectura"
+msgstr "no se puede abrir la tubería llamada %s para lectura"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr "no se puede abrir la tubería llamada %s para escritura"
+msgstr "no se puede abrir la tubería llamada %s para escritura"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "no se puede duplicar la tubería llamada %s como df %d"
+msgstr "no se puede duplicar la tubería llamada %s como df %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
-msgstr "no se pueden crear la tubería para la sustitución de la orden"
+msgstr "no se pueden crear la tubería para la sustitución de la orden"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
-msgstr "no se puede crear un proceso hijo para la sustitución de la orden"
+msgstr "no se puede crear un proceso hijo para la sustitución de la orden"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr "command_substitute: no se puede duplicar la tubería como df 1"
+msgstr "command_substitute: no se puede duplicar la tubería como df 1"
+
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
-#: subst.c:5859
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
-msgstr "%s: parámetro nulo o no establecido"
+msgstr "%s: parámetro nulo o no establecido"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
-msgstr "%s: expresión de subcadena < 0"
+msgstr "%s: expresión de subcadena < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
-msgstr "%s: sustitución errónea"
+msgstr "%s: sustitución errónea"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: no se puede asignar de esta forma"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-"versiones futuras del intérprete obligarán la evaluación como una "
-"sustitución aritmética"
+"versiones futuras del intérprete obligarán la evaluación como una "
+"sustitución aritmética"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "sustitución errónea: no hay una \"`\" que cierre en %s"
+msgstr "sustitución errónea: no hay una \"`\" que cierre en %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "no hay coincidencia: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "se esperaba un argumento"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
-msgstr "%s: se esperaba una expresión entera"
+msgstr "%s: se esperaba una expresión entera"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "se esperaba `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
-msgstr "se esperaba `)', se encontró %s"
+msgstr "se esperaba `)', se encontró %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: se esperaba un operador unario"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: se esperaba un operador binario"
# Singular em+
-# Puede faltar más de un ] cfuga
+# 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:816
+# Abreviando "falta [al menos] un `]'" saldría: "falta un `]'".
+# ¿No es mejor "falta algún `]'"? cfuga
+# Tiene razón Enrique: singular. cfuga
+#: test.c:860
msgid "missing `]'"
msgstr "falta un `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
-msgstr "número de señal inválido"
+msgstr "número de señal inválido"
-#: trap.c:337
+#: trap.c:371
#, 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"
+msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, 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í "
+"run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí "
"mismo"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
-msgstr "trap_handler: señal errónea %d"
+msgstr "trap_handler: señal errónea %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
-msgstr "error al importar la definición de la función para `%s'"
+msgstr "error al importar la definición de la función para `%s'"
-#: variables.c:755
+#: variables.c:780
#, 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:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
-msgstr "make_local_variable: no hay contexto de función en el ámbito actual"
+msgstr "make_local_variable: no hay contexto de función en el ámbito actual"
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: no se puede asignar el fd a la variable"
-#: variables.c:3182
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
-msgstr "all_local_variables: no hay contexto de función en el ámbito actual"
+msgstr "all_local_variables: no hay contexto de función en el ámbito actual"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s tiene exportstr nulo"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
-msgstr "carácter inválido %d en exportstr para %s"
+msgstr "carácter inválido %d en exportstr para %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "no hay `=' en exportstr para %s"
-#: variables.c:3891
+#: variables.c:4344
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"
+"pop_var_context: la cabeza de shell_variables no es un contexto de función"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: no es un contexto global_variables"
-#: variables.c:3978
+#: variables.c:4431
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"
+"pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: no se puede abrir como FICHERO"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
+msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s fuera de rango"
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-"Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/"
+"Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/"
"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr "GNU bash, versión %s (%s)\n"
+msgstr "GNU bash, versión %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
"Esto es software libre; usted es libre de cambiarlo y redistribuirlo.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "NO hay GARANTÍA, a la extensión permitida por la ley.\n"
-
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "NO hay GARANTÃA, a la extensión permitida por la ley.\n"
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licencia GPLv2+: GPL de GNU versión 2 o posterior <http://gnu.org/licenses/"
-"gpl.html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2049,12 +2113,13 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] nombre [nombre ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
"bind [-lpvsPVS] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r "
-"secteclas] [-x secteclas:orden-shell] [secteclas:función-readline u orden-"
+"secteclas] [-x secteclas:orden-shell] [secteclas:función-readline u orden-"
"readline]"
#: builtins.c:54
@@ -2071,12 +2136,12 @@ msgstr "builtin [orden-interna-shell [arg ...]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr "caller [expresión]"
+msgstr "caller [expresión]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [directorio]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [directorio]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2100,17 +2165,16 @@ msgstr "command [-pVv] orden [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] nombre[=valor] ..."
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] nombre[=valor] ..."
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] nombre[=valor] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] nombre[=valor] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr "local [opción] nombre[=valor] ..."
+msgstr "local [opción] nombre[=valor] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
@@ -2134,7 +2198,7 @@ msgstr "getopts cadena_opciones nombre [arg]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr "exec [-cl] [-a nombre] [orden [argumentos ...]] [redirección ...]"
+msgstr "exec [-cl] [-a nombre] [orden [argumentos ...]] [redirección ...]"
#: builtins.c:98
msgid "exit [n]"
@@ -2146,7 +2210,7 @@ msgstr "logout [n]"
#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e nombre_e] [-lnr] [primero] [último] ó fc -s [pat=rep] [orden]"
+msgstr "fc [-e nombre_e] [-lnr] [primero] [último] ó fc -s [pat=rep] [orden]"
#: builtins.c:107
msgid "fg [job_spec]"
@@ -2162,23 +2226,23 @@ msgstr "hash [-lr] [-p ruta] [-dt] [nombre ...]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr "help [-dms] [patrón ...]"
+msgstr "help [-dms] [patrón ...]"
#: builtins.c:121
msgid ""
"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
"[arg...]"
msgstr ""
-"history [-c] [-d despl] [n] ó history -anrw [fichero] ó history -ps arg "
+"history [-c] [-d despl] [n] ó history -anrw [fichero] ó history -ps arg "
"[arg...]"
-# jobspec no es sólo el pid del proceso, puede ser tambien
+# 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
+# mucho. ¿Sugerencias? cfuga
#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr "jobs [-lnprs] [idtrabajo ...] ó jobs -x orden [args]"
+msgstr "jobs [-lnprs] [idtrabajo ...] ó jobs -x orden [args]"
# lo mismo em+
#: builtins.c:129
@@ -2190,8 +2254,8 @@ 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 | idtrabajo ... ó kill -l "
-"[id_señal]"
+"kill [-s id_señal | -n num_señal | -id_señal] pid | idtrabajo ... ó kill -l "
+"[id_señal]"
#: builtins.c:134
msgid "let arg [arg ...]"
@@ -2210,22 +2274,21 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o nombre-opción] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o nombre-opción] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nombre ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr "export [-fn] [nombre[=valor] ...] ó export -p"
+msgstr "export [-fn] [nombre[=valor] ...] ó export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [nombre[=valor] ...] ó readonly -p"
+msgstr "readonly [-aAf] [nombre[=valor] ...] ó readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2245,13 +2308,13 @@ msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr "test [expresión]"
+msgstr "test [expresión]"
#: builtins.c:160
msgid "[ arg... ]"
msgstr "[ arg... ]"
-# Esto podría ser "veces". Mirar el contexto. sv
+# 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"
@@ -2259,63 +2322,66 @@ msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr "trap [-lp] [[arg] id_señal ...]"
+msgstr "trap [-lp] [[arg] id_señal ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] nombre [nombre ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [modo]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr "for NOMBRE [in PALABRAS ... ] ; do ÓRDENES; done"
+msgstr "for NOMBRE [in PALABRAS ... ] ; do ÓRDENES; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr "for (( exp1; exp2; exp3 )); do ÓRDENES; done"
+msgstr "for (( exp1; exp2; exp3 )); do ÓRDENES; done"
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr "select NOMBRE [in PALABRAS ... ;] do ÓRDENES; done"
+msgstr "select NOMBRE [in PALABRAS ... ;] do ÓRDENES; done"
#: builtins.c:188
msgid "time [-p] pipeline"
-msgstr "time [-p] tubería"
+msgstr "time [-p] tubería"
#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ÓRDENES ;;]... esac"
+msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) Ó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"
+"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"
+msgstr "while ÓRDENES; do ÓRDENES; done"
#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
-msgstr "until ÓRDENES; do ÓRDENES; done"
+msgstr "until ÓRDENES; do ÓRDENES; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
@@ -2323,11 +2389,11 @@ msgstr "coproc [NOMBRE] orden [redirecciones]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr "function nombre { ÓRDENES ; } ó nombre () { ÓRDENES ; }"
+msgstr "function nombre { ÓRDENES ; } ó nombre () { ÓRDENES ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr "{ ÓRDENES ; }"
+msgstr "{ ÓRDENES ; }"
#: builtins.c:204
msgid "job_spec [&]"
@@ -2335,11 +2401,11 @@ msgstr "id_trabajo [&]"
#: builtins.c:206
msgid "(( expression ))"
-msgstr "(( expresión ))"
+msgstr "(( expresión ))"
#: builtins.c:208
msgid "[[ expression ]]"
-msgstr "[[ expresión ]]"
+msgstr "[[ expresión ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
@@ -2359,7 +2425,7 @@ msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr "shopt [-pqsu] [-o] [nombre_opción...]"
+msgstr "shopt [-pqsu] [-o] [nombre_opción...]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
@@ -2371,8 +2437,8 @@ msgid ""
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
-"W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
+"W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
"sufijo] [nombre ...]"
#: builtins.c:233
@@ -2380,13 +2446,13 @@ 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 opción] [-A acción] [-G patglob] [-W "
-"listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
+"compgen [-abcdefgjksuv] [-o opción] [-A acción] [-G patglob] [-W "
+"listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
"sufijo] [palabra]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr "compopt [-o|+o opción] [-DE] [nombre ...]"
+msgstr "compopt [-o|+o opción] [-DE] [nombre ...]"
#: builtins.c:240
msgid ""
@@ -2404,9 +2470,9 @@ msgstr ""
"readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c "
"quantum] [matriz]"
-# Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv
+# 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
+# no alias -> ningún alias. sv
# De acuerdo. cfuga
#: builtins.c:254
msgid ""
@@ -2430,11 +2496,11 @@ msgstr ""
"Define o muestra aliases.\n"
" \n"
" `alias' sin argumentos muestra la lista de aliases en la forma\n"
-" reutilizable `alias NOMBRE=VALOR' en la salida estándar.\n"
+" reutilizable `alias NOMBRE=VALOR' en la salida estándar.\n"
" \n"
" De otra manera, se define un alias por cada NOMBRE cuyo VALOR se\n"
" proporcione. Un espacio final en VALOR causa que se revise\n"
-" la siguiente palabra para sustitución de alias cuando se expande\n"
+" la siguiente palabra para sustitución de alias cuando se expande\n"
" el alias.\n"
" \n"
" Opciones:\n"
@@ -2442,7 +2508,7 @@ msgstr ""
" \n"
" Estado de salida:\n"
" alias devuelve verdadero a menos que se de un NOMBRE para el cual\n"
-" no se haya definido ningún alias."
+" no se haya definido ningún alias."
#: builtins.c:276
msgid ""
@@ -2460,8 +2526,9 @@ msgstr ""
" Devuelve verdadero a menos que un NOMBRE no sea un alias existente."
# lee 'la'... em+
-# Corregido. Además, es plural: lee las asignaciones... cfuga
+# Corregido. Además, es plural: lee las asignaciones... cfuga
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2495,13 +2562,15 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
"Establece secuencias de teclas Readline y variables.\n"
"\n"
-" Asigna una secuencia de teclas a una función Readline o a una macro, o\n"
+" 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\n"
" no son opciones es equivalente a la que se encuentra en ~/.inputrc,\n"
" pero se debe pasar como un solo argumento:\n"
@@ -2509,9 +2578,9 @@ msgstr ""
" \n"
" Opciones:\n"
" \n"
-" -m comb_teclas Usa COMB_TECLAS como la combinación de teclas por "
+" -m comb_teclas Usa COMB_TECLAS como la combinación de teclas por "
"la\n"
-" duración de esta orden. Los nombres de "
+" duración de esta orden. Los nombres de "
"combinaciones\n"
" de teclas aceptables son emacs, emacs-standard,\n"
" emacs-meta, emacs-ctlx, vi, vi-move, vi-command y\n"
@@ -2533,19 +2602,19 @@ msgstr ""
" -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"
-" -q nombre-funcion Pregunta qué teclas invocan la función nombrada.\n"
-" -u nombre-función Borra todas las teclas que están ligadas a\n"
-" la función nombrada.\n"
-" -r secteclas Borra la asignación para la SECTECLAS.\n"
+" -q nombre-funcion Pregunta qué teclas invocan la función nombrada.\n"
+" -u nombre-función Borra todas las teclas que están ligadas a\n"
+" la función nombrada.\n"
+" -r secteclas Borra la asignación para la SECTECLAS.\n"
" -f fichero Lee las asignaciones de teclas del FICHERO.\n"
" -x secteclas:orden-shell\tCausa que se ejecute la ORDEN-SHELL cuando\n"
" \t\t\t\tse introduce la SECTECLAS.\n"
" \n"
" Estado de salida:\n"
-" bind devuelve 0 a menos que se presente una opción desconocida o suceda\n"
+" bind devuelve 0 a menos que se presente una opción desconocida o suceda\n"
" un error."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2563,7 +2632,7 @@ msgstr ""
" Estado de salida:\n"
" El estado de salida es 0 a menos que N no sea mayor o igual a 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2573,16 +2642,16 @@ msgid ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-"Continúa iteraciones for, while o until\n"
+"Continúa iteraciones for, while o until\n"
" \n"
-" Continúa la siguiente iteración del ciclo FOR, WHILE o UNTIL\n"
-" circundante. Si se especifica N, retoma en el N-ésimo ciclo "
+" Continúa la siguiente iteración del ciclo FOR, WHILE o UNTIL\n"
+" circundante. Si se especifica N, retoma en el N-ésimo ciclo "
"circundante.\n"
" \n"
" Estado de Salida:\n"
" El estado de salida es 0 a menos que N no sea mayor o igual a 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2595,19 +2664,19 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
-"Ejecuta órdenes internas del shell\n"
+"Ejecuta órdenes internas del shell\n"
" \n"
" Ejecuta la ORDEN-INTERNA-SHELL con los argumentos ARGs sin realizar\n"
-" la búsqueda interna de órdenes. Esto es útil cuando desea "
+" la búsqueda interna de órdenes. Esto es útil cuando desea "
"reimplementar\n"
-" una orden interna del shell como una función de shell, pero necesita\n"
-" ejecutar la orden interna dentro de la función.\n"
+" una orden interna del shell como una función de shell, pero necesita\n"
+" ejecutar la orden interna dentro de la función.\n"
" \n"
" Estado de Salida:\n"
" Devuelve el estado de salida de la ORDEN-INTERNA-SHELL, o falso si la\n"
" ORDEN-INTERNA-SHELL no es una orden interna de shell."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2625,20 +2694,20 @@ msgstr ""
"Devuelve el contexto de la llamada a subrutina actual.\n"
" \n"
" Sin EXPR, devuelve \"$linea $nombrefichero\". Con EXPR, devuelve\n"
-" \"$linea $subrutina $nombrefichero\"; esta información adicional\n"
+" \"$linea $subrutina $nombrefichero\"; esta información adicional\n"
" 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"
+" El valor de EXPR indica cuántos marcos de llamada se debe retroceder\n"
" antes del actual; el marco inicial es el marco 0.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve 0 a menos que el shell no esté ejecutando una función de shell\n"
-" o EXPR sea inválida."
+" Devuelve 0 a menos que el shell no esté ejecutando una función de shell\n"
+" o EXPR sea inválida."
# Slash lo venimos traduciendo por barra inclinada , y backslash
# por barra invertida em++
-# Corregido en toda la traducción. cfuga
-#: builtins.c:383
+# Corregido en toda la traducción. cfuga
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2662,13 +2731,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2679,27 +2756,32 @@ msgstr ""
" \n"
" Cambia el directorio actual a DIR. DIR por defecto es el valor de la\n"
" variable de shell HOME.\n"
-" La variable CDPATH define la ruta de búsqueda por el directorio que\n"
+" \n"
+" La variable CDPATH define la ruta de búsqueda por el directorio que\n"
" contiene DIR. Los nombres alternativos de directorio en CDPATH se\n"
" separan con dos puntos (:). Un nombre de directorio nulo es igual que\n"
-" el directorio actual Si DIR comienza con una barra inclinada (/),\n"
+" el directorio actual. Si DIR comienza con una barra inclinada (/),\n"
" entonces no se usa CDPATH.\n"
-" Si no se encuentra el directorio, y la opción del shell `cdable_vars'\n"
-" está activa, entonces se trata la palabra como un nombre de variable.\n"
+" \n"
+" Si no se encuentra el directorio, y la opción del shell `cdable_vars'\n"
+" está activa, entonces se trata la palabra como un nombre de variable.\n"
" Si esa variable tiene un valor, se utiliza su valor como DIR.\n"
" \n"
" Opciones:\n"
-" -L\tfuerza a seguir los enlaces simbólicos\n"
-" -P\tusar la estructura física de directorios sin seguir los enlaces\n"
-" \tsimbólicos\n"
+" -L\tfuerza a seguir los enlaces simbólicos\n"
+" -P\tusa la estructura física de directorios sin seguir los enlaces\n"
+" \tsimbólicos\n"
+" -e\tsi se da la opción -P, y el directorio actual de trabajo no se\n"
+" \tpuede determinar con éxito, termina con un estado diferente de cero.\n"
" \n"
-" La acción por defecto es seguir los enlaces simbólicos, como si se\n"
+" La acción por defecto es seguir los enlaces simbólicos, como si se\n"
" especificara `-L'.\n"
" \n"
" Estado de salida:\n"
-" Devuelve 0 si se cambia el directorio; de otra forma es diferente a cero."
+" Devuelve 0 si se cambia el directorio, y si $PWD está definido con\n"
+" éxito cuando se usa -P; de otra forma es diferente a cero."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2719,15 +2801,15 @@ msgstr ""
" Opciones:\n"
" -L\tmuestra el valor de $PWD si nombra al directorio de\n"
" \ttrabajo actual\n"
-" -P\tmuestra el directorio físico, sin enlaces simbólicos\n"
+" -P\tmuestra el directorio físico, sin enlaces simbólicos\n"
" \n"
" Por defecto, `pwd' se comporta como si se especificara `-L'.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve 0 a menos que se de una opción inválida o no se pueda leer\n"
+" Devuelve 0 a menos que se de una opción inválida o no se pueda leer\n"
" el directorio actual."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2741,33 +2823,33 @@ msgstr ""
" Sin efecto; la orden no hace nada.\n"
" \n"
" Estado de Salida:\n"
-" Siempre con éxito."
+" Siempre con éxito."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
" Exit Status:\n"
" Always succeeds."
msgstr ""
-"Devuelve un resultado con éxito.\n"
+"Devuelve un resultado con éxito.\n"
" \n"
" Estado de salida:\n"
-" Siempre con éxito."
+" Siempre con éxito."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
" Exit Status:\n"
" Always fails."
msgstr ""
-"Devuelve un resultado sin éxito.\n"
+"Devuelve un resultado sin éxito.\n"
" \n"
" Estado de salida:\n"
" Siempre falla."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2785,27 +2867,27 @@ msgid ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-"Ejecuta una orden simple o muestra información sobre órdenes.\n"
+"Ejecuta una orden simple o muestra información sobre órdenes.\n"
" \n"
-" Ejecuta la ORDEN con ARGumentos, suprimiendo la búsqueda de funciones\n"
-" de shell, o muestra información sobre las ÓRDENes especificadas. Se "
+" Ejecuta la ORDEN con ARGumentos, suprimiendo la búsqueda de funciones\n"
+" de shell, o muestra información sobre las ÓRDENes especificadas. Se "
"puede\n"
-" usar para invocar órdenes en disco cuando existe una función con el "
+" usar para invocar órdenes en disco cuando existe una función con el "
"mismo\n"
" nombre.\n"
" \n"
" Opciones:\n"
" -p\tusa un valor por defecto para PATH para garantizar que\n"
-" \tencuentre todas las utilidades estándar\n"
-" -v\tmuestra una descripción de la ORDEN similar a la orden\n"
+" \tencuentre todas las utilidades estándar\n"
+" -v\tmuestra una descripción de la ORDEN similar a la orden\n"
" \tinterna `type'\n"
-" -V\tmuestra una descripción más detallada de cada ORDEN\n"
+" -V\tmuestra una descripción más detallada de cada ORDEN\n"
" \n"
" Estado de Salida:\n"
" Devuelve el estado de salida de la ORDEN, o falla si no se encuentra\n"
" la ORDEN."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2826,6 +2908,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2841,43 +2924,47 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Establece valores de variable y atributos.\n"
" \n"
-" Declara variables y les da atributos. Si no se da ningún NOMBRE,\n"
+" Declara variables y les da atributos. Si no se da ningún NOMBRE,\n"
" muestra los atributos y valores de todas las variables.\n"
" \n"
" Opciones:\n"
-" -f\trestringe la acción o muestra a nombres y definiciones\n"
+" -f\trestringe la acción o muestra a nombres y definiciones\n"
" \tde funciones\n"
-" -F\trestringe la muestra a nombres de funciones (con número de\n"
-" \tlínea y fichero fuente al depurar)\n"
+" -F\trestringe la muestra a nombres de funciones (con número de\n"
+" \tlínea y fichero fuente al depurar)\n"
+" -g\tcrea variables globales cuando se usa en una función de shell;\n"
+" \tde otra forma se descarta\n"
" -p\tmuestra los atributos y valor de cada NOMBRE\n"
" \n"
" Opciones que establecen atributos:\n"
" -a\testablece NOMBREs como matrices indizadas (si se admiten)\n"
" -A\testablece NOMBREs como matrices asociativas (si se admiten)\n"
" -i\testablece NOMBREs con el atributo `integer'\n"
-" -l\tconvierte NOMBREs a minúsculas en la asignación\n"
-" -r\testablece NOMBREs como de sólo lectura\n"
+" -l\tconvierte NOMBREs a minúsculas en la asignación\n"
+" -r\testablece NOMBREs como de sólo lectura\n"
" -t\testablece NOMBREs con el atributo `trace'\n"
-" -u\tconvierte NOMBREs a mayúsculas en la asignación\n"
+" -u\tconvierte NOMBREs a mayúsculas en la asignación\n"
" -x\testablece NOMBREs para exportar\n"
" \n"
" Si usa `+' en lugar de `-' desactiva el atributo dado.\n"
" \n"
-" Las variables con el atributo integer realizan evaluación aritmética\n"
+" Las variables con el atributo integer realizan evaluación aritmética\n"
" (vea la orden `let') cuando se asigna un valor a la variable.\n"
" \n"
-" Cuando se usa en una función, `declare' hace locales a los NOMBREs,\n"
-" como sucede con la orden `local'.\n"
+" Cuando se usa en una función, `declare' hace locales a los NOMBREs,\n"
+" como sucede con la orden `local'. La opción `-g' suprime esta\n"
+" conducta.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se de una opción inválida o\n"
+" Devuelve con éxito a menos que se de una opción inválida o\n"
" suceda un error."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2887,7 +2974,8 @@ msgstr ""
" \n"
" Obsoleto. Consulte `help declare'."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2898,26 +2986,29 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Define variables locales.\n"
" \n"
-" Crea una variable local llamada NOMBRE, y le da un VALOR. OPCIÓN puede\n"
-" ser cualquier opción aceptada por `declare'.\n"
+" Crea una variable local llamada NOMBRE, y le da un VALOR. OPCIÓN puede\n"
+" ser cualquier opción aceptada por `declare'.\n"
" \n"
-" Las variables locales sólo se pueden usar en una función; son visibles\n"
-" sólo en la función donde se definen y sus hijos.\n"
+" Las variables locales sólo se pueden usar en una función; son visibles\n"
+" sólo en la función donde se definen y sus hijos.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se de una opción inválida, suceda\n"
-" un error, o el shell no esté ejecutando una función."
+" Devuelve con éxito a menos que se de una opción inválida, suceda\n"
+" un error, o el shell no esté ejecutando una función."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2929,6 +3020,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2943,38 +3035,38 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
-"Escribe argumentos en la salida estándar.\n"
+"Escribe argumentos en la salida estándar.\n"
" \n"
-" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
-" de fin de línea.\n"
+" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
+" de fin de línea.\n"
" Opciones:\n"
-" -n\tno agrega un carácter de fin de línea\n"
-" -e\tactiva la interpretación de caracteres de escape de\n"
+" -n\tno agrega un carácter de fin de línea\n"
+" -e\tactiva la interpretación de caracteres de escape de\n"
" \tde barra invertida\n"
-" -E\tdesactiva explícitamente la interpretación de caracteres de\n"
+" -E\tdesactiva explícitamente la interpretación de caracteres de\n"
" \tde escape de barra invertida\n"
" \n"
" `echo' interpreta los siguientes caracteres de escape de barra "
"invertida:\n"
" \\a\talerta (timbre)\n"
-" \\b\tespacio hacia atrás\n"
-" \\c\tsuprime toda salida a continuación\n"
-" \\E\tcarácter de escape\n"
-" \\f\talimentación de papel\n"
-" \\n\tlínea nueva\n"
+" \\b\tespacio hacia atrás\n"
+" \\c\tsuprime toda salida a continuación\n"
+" \\E\tcarácter de escape\n"
+" \\f\talimentación de papel\n"
+" \\n\tlínea nueva\n"
" \\r\tretorno de carro\n"
" \\t\ttabulador horizontal\n"
" \\v\ttabulador vertical\n"
" \\\\\tbarra invertida\n"
-" \\0nnn\tel carácter cuyo código ASCII es NNN (octal). NNN puede ser\n"
-" \tde 0 a 3 dígitos octales\n"
-" \\xHH\tel carácter de ocho bits cuyo valor es HH (hexadecimal). HH\n"
-" \tpuede ser de uno o dos dígitos hexadecimales\n"
+" \\0nnn\tel carácter cuyo código ASCII es NNN (octal). NNN puede ser\n"
+" \tde 0 a 3 dígitos octales\n"
+" \\xHH\tel carácter de ocho bits cuyo valor es HH (hexadecimal). HH\n"
+" \tpuede ser de uno o dos dígitos hexadecimales\n"
" \n"
" Estado de salida:\n"
-" Devuelve con éxito a menos que suceda un error de escritura."
+" Devuelve con éxito a menos que suceda un error de escritura."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2986,17 +3078,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
-"Escribe argumentos en la salida estándar.\n"
+"Escribe argumentos en la salida estándar.\n"
" \n"
-" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
-" de fin de línea.\n"
+" Muestra los ARGumentos en la salida estándar seguidos por un carácter\n"
+" de fin de línea.\n"
" Opciones:\n"
-" -n\tno agrega un carácter de fin de línea\n"
+" -n\tno agrega un carácter de fin de línea\n"
" \n"
" Estado de salida:\n"
-" Devuelve con éxito a menos que suceda un error de escritura."
+" Devuelve con éxito a menos que suceda un error de escritura."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -3022,22 +3114,22 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-"Activa y desactiva las órdenes internas del shell.\n"
+"Activa y desactiva las órdenes internas del shell.\n"
" \n"
-" Activa y desactiva las órdenes internas del shell. El desactivar le\n"
+" Activa y desactiva las órdenes internas del shell. El desactivar le\n"
" permite ejecutar una orden del disco que tenga el mismo nombre que\n"
" la orden interna del shell, sin usar el nombre de ruta completo.\n"
" \n"
" Opciones:\n"
-" -a\tmuestra la lista de órdenes internas indicando si están activas o "
+" -a\tmuestra la lista de órdenes internas indicando si están activas o "
"no\n"
-" -n\tdesactiva cada NOMBRE o muestra la lista de órdenes internas\n"
+" -n\tdesactiva cada NOMBRE o muestra la lista de órdenes internas\n"
" \tdesactivadas\n"
-" -p\tmuestra la lista de órdenes internas en una forma reusable\n"
-" -s\tmuestra sólo los nombres de las órdenes internas `especiales' "
+" -p\tmuestra la lista de órdenes internas en una forma reusable\n"
+" -s\tmuestra sólo los nombres de las órdenes internas `especiales' "
"Posix\n"
" \n"
-" Opciones que controlan la carga dinámica:\n"
+" Opciones que controlan la carga dinámica:\n"
" -f\tcarga la orden interna NOMBRE del objeto compartido FICHERO\n"
" -d\tborra una orden interna cargada con -f\n"
" \n"
@@ -3047,11 +3139,11 @@ msgstr ""
" del shell, ejecute `enable -n test'.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que NOMBRE no sea una orden interna del "
+" Devuelve con éxito a menos que NOMBRE no sea una orden interna del "
"shell\n"
" o suceda un error."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3066,17 +3158,17 @@ msgstr ""
" \n"
" Combina los ARGumentos en una sola cadena, usa el resultado como "
"entrada\n"
-" para el shell, y ejecuta las órdenes resultantes.\n"
+" para el shell, y ejecuta las órdenes resultantes.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de salida de la orden o éxito si la orden es nula."
+" Devuelve el estado de salida de la orden o éxito si la orden es nula."
-# "a ser reconocidas" no está en español.
-# Yo pondría "las letras de opción que se reconocen". sv
+# "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:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3116,47 +3208,47 @@ msgid ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
msgstr ""
-"Decodifica argumentos de opción.\n"
+"Decodifica argumentos de opción.\n"
"\n"
-" Getopts se usa en procedimientos del shell para decodificar parámetros\n"
+" Getopts se usa en procedimientos del shell para decodificar parámetros\n"
" posicionales como opciones.\n"
" \n"
-" CADENA_OPCIONES contiene las letras de opción para reconocer; si\n"
-" una letra es seguida por dos puntos, se espera que la opción tenga\n"
+" CADENA_OPCIONES contiene las letras de opción para reconocer; si\n"
+" una letra es seguida por dos puntos, se espera que la opción tenga\n"
" un 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"
+" Cada vez que se invoca, getopts colocará la siguiente opción en la\n"
" variable de shell $nombre, inicializando nombre si no existe, y el\n"
-" índice del siguiente argumento a ser procesado en la variable de\n"
+" índice del siguiente argumento a ser procesado en la variable de\n"
" shell OPTIND. OPTIND se inicializa a 1 cada vez que se invoca el\n"
-" shell, o un guión de shell. Cuando una opción requiere un argumento,\n"
+" shell, o un guión de shell. Cuando una opción requiere un argumento,\n"
" getopts coloca ese argumento en la variable de shell 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"
+" 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"
+" 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 el argumento necesario, getopts coloca ':' en NOMBRE y\n"
-" define OPTARG con 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"
+" define OPTARG con 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 NOMBRE y borra OPTARG. Si no se encuentra un argumento\n"
" necesario, se coloca '?' en NOMBRE, se borra OPTARG, y se muestra\n"
-" un mensaje de diagnóstico.\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"
+" 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"
+" 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.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito si se encuentra una opción; falla si se encuentra\n"
+" Devuelve con éxito si se encuentra una opción; falla si se encuentra\n"
" el final de las opciones o sucede un error."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3182,22 +3274,22 @@ msgstr ""
" \n"
" Ejecuta la ORDEN, reemplazando este shell con el programa especificado.\n"
" Los ARGUMENTOS se vuelven los argumentos de la ORDEN. Si no se\n"
-" especifica la ORDEN, cualquir redirección toma efecto en el shell "
+" especifica la ORDEN, cualquir redirección toma efecto en el shell "
"actual.\n"
" \n"
" Opciones:\n"
" -a nombre\tpasa el NOMBRE como el argumento cero de la ORDEN\n"
-" -c\t\tejecuta la ORDEN en un ambiente vacío\n"
-" -l\t\tcoloca un guión en el argumento cero de la ORDEN\n"
+" -c\t\tejecuta la ORDEN en un ambiente vacío\n"
+" -l\t\tcoloca un guión en el argumento cero de la ORDEN\n"
" \n"
" Si la orden no se puede ejecutar, termina un shell no interactivo,\n"
-" a menos que la opción de shell `execfail' esté activa.\n"
+" a menos que la opción de shell `execfail' esté activa.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve éxito a menos que no se encuentre la ORDEN o que suceda un\n"
-" error de redirección."
+" Devuelve éxito a menos que no se encuentre la ORDEN o que suceda un\n"
+" error de redirección."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3208,9 +3300,9 @@ msgstr ""
" \n"
" 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."
+" es el mismo de la última orden ejecutada."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3223,7 +3315,7 @@ msgstr ""
" Termina un shell de entrada con un estado de salida de N. Devuelve un\n"
" error si no se ejecuta en un shell de entrada."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3252,34 +3344,34 @@ msgid ""
" Returns success or status of executed command; non-zero if an error "
"occurs."
msgstr ""
-"Muestra o ejecuta órdenes de la lista de historia.\n"
+"Muestra o ejecuta órdenes de la lista de historia.\n"
" \n"
-" fc se usa para listar o editar y reejecutar órdenes de la lista de\n"
-" historia. PRIMERO y ÚLTIMO pueden ser números que especifican el "
+" fc se usa para listar o editar y reejecutar órdenes de la lista de\n"
+" historia. PRIMERO y ÚLTIMO pueden ser números que especifican el "
"rango,\n"
-" o PRIMERO puede ser una cadena, que significa la orden más reciente que\n"
+" o PRIMERO puede ser una cadena, que significa la orden más reciente que\n"
" comience con esa cadena.\n"
" \n"
" -e NOMBRE_E selecciona el editor a usar. Por defecto es FCEDIT,\n"
-" \t\tdespués EDITOR, después vi\n"
-" -l lista líneas en lugar de editar\n"
-" -n omite los números de línea al listar\n"
-" -r inverte el orden de las líneas (muestra primero las más "
+" \t\tdespués EDITOR, después vi\n"
+" -l lista líneas en lugar de editar\n"
+" -n omite los números de línea al listar\n"
+" -r inverte el orden de las líneas (muestra primero 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 la sustitución ANT=NUEVO.\n"
+" ejecuta de nuevo después de realizar la 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.\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.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito o el estado de la orden ejecutada; si sucede un "
+" Devuelve con éxito o el estado de la orden ejecutada; si sucede un "
"error\n"
" es diferente de cero."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3293,14 +3385,14 @@ msgstr ""
"Mueve el trabajo al primer plano.\n"
" \n"
" Ubica al trabajo identificado con IDTRABAJO en el primer plano, y\n"
-" lo hace el trabajo actual. Si IDTRABAJO no está presente, se usa\n"
-" la noción del shell del trabajo actual.\n"
+" lo hace el trabajo actual. Si IDTRABAJO no está presente, se usa\n"
+" la noción del shell del trabajo actual.\n"
" \n"
" Estado de Salida:\n"
" El estado del comando ubicado en primer plano, o falla si sucede un "
"error."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3316,14 +3408,15 @@ msgstr ""
"Mueve trabajos al segundo plano.\n"
" \n"
" Coloca los trabajos identificados por cada IDTRABAJO en segundo plano,\n"
-" como si se hubieran iniciado con `&'. Si IDTRABAJO no está presente,\n"
-" se usa la noción del shell del trabajo actual.\n"
+" como si se hubieran iniciado con `&'. Si IDTRABAJO no está presente,\n"
+" se usa la noción del shell del trabajo actual.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve éxito a menos que el control de trabajos no esté activado o\n"
+" Devuelve éxito a menos que el control de trabajos no esté activado o\n"
" suceda un error."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3334,7 +3427,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3346,29 +3439,29 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-"Almacena o muestra la ubicación de los programas.\n"
+"Almacena o muestra la ubicación de los programas.\n"
" \n"
-" Determina y almacena la ruta completa de cada órden NOMBRE. Si\n"
-" no se proporcionan argumentos, se muestra la información de las\n"
-" órdenes almacenadas.\n"
+" Determina y almacena la ruta completa de cada órden NOMBRE. Si\n"
+" no se proporcionan argumentos, se muestra la información de las\n"
+" órdenes almacenadas.\n"
" \n"
" Opciones:\n"
-" -d\t\tolvida la ubicación almacenada de cada NOMBRE\n"
+" -d\t\tolvida la ubicación almacenada de cada NOMBRE\n"
" -l\t\tmuestra en un formato que se puede reusar como entrada\n"
" -p ruta\tusa RUTA como la ruta completa de NOMBRE\n"
" -r\t\tolvida todas las ubicaciones almacenadas\n"
-" -t\t\tmuestra la ubicación almacenada de cada NOMBRE,\n"
-" \t\tcada ubicación con el NOMBRE correspondiente\n"
+" -t\t\tmuestra la ubicación almacenada de cada NOMBRE,\n"
+" \t\tcada ubicación con el NOMBRE correspondiente\n"
" \t\tse dan varios NOMBREs\n"
" Argumentos:\n"
" NOMBRE\t\tCada NOMBRE se busca en $PATH y se agrega a la lista\n"
-" \t\tde órdenes almacenadas.\n"
+" \t\tde órdenes almacenadas.\n"
" \n"
" Estado de Salida\n"
-" Devuelve con éxito a menos que no se encuentre NOMBRE o se proporcione\n"
-" una opción inválida."
+" Devuelve con éxito a menos que no se encuentre NOMBRE o se proporcione\n"
+" una opción inválida."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3389,27 +3482,27 @@ msgid ""
" Returns success unless PATTERN is not found or an invalid option is "
"given."
msgstr ""
-"Muestra información sobre órdenes internas.\n"
+"Muestra información sobre órdenes internas.\n"
" \n"
-" Muestra un resumen breve de las órdenes internas. Si se especifica\n"
-" un PATRÓN, da ayuda detallada sobre todas las órdenes que\n"
-" coincidan con el PATRÓN, de otra forma se muestra la lista de\n"
-" tópicos de ayuda.\n"
+" Muestra un resumen breve de las órdenes internas. Si se especifica\n"
+" un PATRÓN, da ayuda detallada sobre todas las órdenes que\n"
+" coincidan con el PATRÓN, de otra forma se muestra la lista de\n"
+" tópicos de ayuda.\n"
" \n"
" Opciones:\n"
-" -d\tmuestra una descripción corta para cada tópico\n"
-" -m\tmuestra el uso en un formato similar a página man\n"
-" -s\tmuestra sólo una sinopsis breve de uso para cada tópico que\n"
-" \tcoincida con el PATRÓN\n"
+" -d\tmuestra una descripción corta para cada tópico\n"
+" -m\tmuestra el uso en un formato similar a página man\n"
+" -s\tmuestra sólo una sinopsis breve de uso para cada tópico que\n"
+" \tcoincida con el PATRÓN\n"
" \n"
" Argumentos:\n"
-" PATRÓN\tPatrón que especifica un tópico de ayuda\n"
+" PATRÓN\tPatrón que especifica un tópico de ayuda\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que no se encuentre PATRÓN o se proporcione\n"
-" una opción inválida."
+" Devuelve con éxito a menos que no se encuentre PATRÓN o se proporcione\n"
+" una opción inválida."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3443,36 +3536,37 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
"Muestra o manipula la lista de la historia. \n"
-" Muestra la lista de la historia con números de línea, mostrando\n"
-" cada línea modificada con un `*' como prefijo. El argumento N\n"
-" muestra solamente las últimas N entradas.\n"
+" Muestra la lista de la historia con números de línea, mostrando\n"
+" cada línea modificada con un `*' como prefijo. El argumento N\n"
+" muestra solamente las últimas N entradas.\n"
" \n"
" Opciones:\n"
" -c\tborra la lista de historia eliminando todas las entradas\n"
-" -d despl\tborra la entrada de la histora en la posición DESPL\n"
+" -d despl\tborra la entrada de la histora en la posición DESPL\n"
" \n"
-" -a\tagrega las líneas de histora de esta sesión al fichero de "
+" -a\tagrega las líneas de histora de esta sesión al fichero de "
"historia\n"
-" -n\tlee todas las líneas de historia que no se han leído del fichero\n"
+" -n\tlee todas las líneas de historia que no se han leído del fichero\n"
" \tde historia\n"
" -r\tlee el fichero de historia y agrega el contenido al fichero\n"
" \tde historia\n"
" -w\tescribe la historia actual en el fichero de historia\n"
" \n"
-" -p\thace expansión de historia en cada ARGumento y muestra el\n"
+" -p\thace expansión de historia en cada ARGumento y muestra el\n"
" \tresultado, sin guardarlo en la lista de historia\n"
" -s\tagrega los ARGumentos a la lista de historia como\n"
" \tuna sola entrada\n"
" Si se proporciona FICHERO, entonces se usa como el fichero de\n"
-" historia. Si no, si $HISTFILE tien un valor, éste se usa, en otro caso\n"
+" historia. Si no, si $HISTFILE tien un valor, éste se usa, en otro caso\n"
" ~/.bash_history.\n"
" \n"
-" Si la variable $HISTTIMEFORMAT está definida y no es nula, se usa su\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:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3481,7 +3575,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3502,23 +3596,23 @@ msgstr ""
" activos.\n"
" \n"
" Opciones:\n"
-" -l\tmuestra los id's de los procesos, además de\n"
-" \tla información normal\n"
+" -l\tmuestra los id's de los procesos, además de\n"
+" \tla información normal\n"
" -n\tsolo muestra los procesos que han cambia de estado desde\n"
-" \tla última notificación\n"
+" \tla última notificación\n"
" -p\tsolo muestra los id's de los procesos -r\trestringe la salida "
-"a los trabajos en ejecución\n"
+"a los trabajos en ejecución\n"
" -s\trestringe la salida a los trabajos detenidos\n"
" \n"
-" Si se especifica -x, la ORDEN se ejecuta después de que todas las\n"
+" Si se especifica -x, la ORDEN 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.\n"
+" con el ID de proceso del líder del grupo de procesos de dicho trabajo.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se de una opción inválida o suceda un\n"
+" Devuelve con éxito a menos que se de una opción inválida o suceda un\n"
" error. Si se usa -x, devuelve el estado de salida de la ORDEN."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3537,19 +3631,19 @@ msgstr ""
"Borra trabajos del shell actual.\n"
" \n"
" Borra cada argumento IDTRABAJO de la tabla de trabajos activos. Sin\n"
-" algún IDTRABAJO, el shell utiliza su noción del trabajo actual.\n"
+" algún IDTRABAJO, el shell utiliza su noción del trabajo actual.\n"
" \n"
" Opciones:\n"
" -a\tborra todos los trabajos si no se proporciona IDTRABAJO\n"
-" -h\tmarca cada IDTRABAJO para no se envíe SIGHUP al trabajo si\n"
+" -h\tmarca cada IDTRABAJO para no se envíe SIGHUP al trabajo si\n"
" \tel shell recibe un SIGHUP\n"
-" -r\tborra solo los trabajos en ejecución\n"
+" -r\tborra solo los trabajos en ejecución\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcionen una opción o un\n"
-" IDTRABAJO inválidos."
+" Devuelve con éxito a menos que se proporcionen una opción o un\n"
+" IDTRABAJO inválidos."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3570,37 +3664,36 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-"Envía una señal a un trabajo.\n"
+"Envía una señal a un trabajo.\n"
" \n"
-" Envía a los procesos nombrados por PID (o IDTRABAJO) la señal ID_SEÑAL\n"
-" o NUM_SEÑAL. Si no están presentes ni ID_SEÑAL o NUM_SEÑAL, se asume\n"
+" Envía a los procesos nombrados por PID (o IDTRABAJO) la señal ID_SEÑAL\n"
+" o NUM_SEÑAL. Si no están presentes ni ID_SEÑAL o NUM_SEÑAL, se asume\n"
" SIGTERM.\n"
" \n"
" Opciones:\n"
-" -s sig\tSIG es un nombre de señal\n"
-" -n sig\tSIG es un número de señal\n"
-" -l\tenlista los nombres de señales; si hay argumentos a continuación\n"
-" \tde `-l', se asume que son números de señal para las cuales se debe\n"
+" -s sig\tSIG es un nombre de señal\n"
+" -n sig\tSIG es un número de señal\n"
+" -l\tenlista los nombres de señales; si hay argumentos a continuación\n"
+" \tde `-l', se asume que son números de señal para las cuales se debe\n"
" mostrar el nombre.\n"
" \n"
" Kill es una orden interna del shell por dos razones: permite que se\n"
" puedan usar IDs de trabajo en lugar de IDs de proceso, y permite matar\n"
-" procesos si ha alcanzado el límite de procesos que puede crear.\n"
+" procesos si ha alcanzado el límite de procesos que puede crear.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se de una opción inválida o suceda un "
+" Devuelve con éxito a menos que se de una opción inválida o suceda un "
"error."
-# "a ser evaluada" no está en español. sv
-# Cierto. ¿Así está mejor? cfuga
+# "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
+# 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:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3644,50 +3737,51 @@ msgid ""
" Exit Status:\n"
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-"Evalúa expresiones aritméticas.\n"
+"Evalúa expresiones aritméticas.\n"
" \n"
-" Evalúa cada ARG como una expresión aritmética. La evaluación se hace\n"
+" Evalúa cada ARG como una expresión aritmética. La evaluación se hace\n"
" con enteros de longitud fija, sin revisar desbordamientos, aunque la\n"
-" la división por 0 se captura y se marca como un error. La siguiente\n"
-" lista de operadores está agrupada en niveles de operadores de la misma\n"
+" la división por 0 se captura y se marca como un error. La siguiente\n"
+" lista de operadores está agrupada en niveles de operadores de la misma\n"
" prioridad. Se muestran los niveles 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\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<=, >=, <, >\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"
+" \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"
+" \t&=, ^=, |=\tasignación\n"
" \n"
" Se permiten las variables de shell como operandos. Se reemplaza\n"
" el nombre de la variable por su valor (coercionado a un entero\n"
-" de longitud fija) dentro de una expresión. La variable no\n"
+" de longitud fija) dentro de una expresión. La variable no\n"
" necesita tener activado su atributo integer para ser usada en\n"
-" una expresión.\n"
+" una expresión.\n"
" \n"
-" Los operadores se evalúan en orden de prioridad. Primero se\n"
-" evalúan las sub-expresiones en paréntesis y pueden sobrepasar\n"
+" Los operadores se evalúan en orden de prioridad. Primero se\n"
+" evalúan las sub-expresiones en paréntesis y pueden sobrepasar\n"
" las reglas de prioridad anteriores.\n"
" \n"
" Estado de salida:\n"
-" Si el último ARGumento se evalúa como 0, let devuelve 1; de otra\n"
+" Si el último ARGumento se evalúa como 0, let devuelve 1; de otra\n"
" forma, let devuelve 0."
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3722,63 +3816,66 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-"Lee una línea de la salida estándar y la divide en campos.\n"
+"Lee una línea de la salida estándar y la divide en campos.\n"
" \n"
-" Lee una sola línea de la entrada estándar, o del descriptor de\n"
-" fichero FD si se proporciona la opción -u. La línea se divide en "
+" Lee una sola línea de la entrada estándar, o del descriptor de\n"
+" fichero FD si se proporciona la opción -u. La línea se divide en "
"campos\n"
-" con separación de palabras, y la primera palabra se asigna al primer\n"
-" NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente, con\n"
-" las palabras restantes asignadas al último NOMBRE. Sólo los caracteres\n"
+" con separación de palabras, y la primera palabra se asigna al primer\n"
+" NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente, con\n"
+" las palabras restantes asignadas al último NOMBRE. Sólo los caracteres\n"
" que se encuentran en $IFS se reconocen como delimitadores de palabras.\n"
" \n"
-" Si no se proporciona ningún NOMBRE, la línea leída se guarda en la\n"
+" Si no se proporciona ningún NOMBRE, la línea leída se guarda en la\n"
" variable REPLY.\n"
" \n"
" Opciones:\n"
-" -a matriz\tasigna las palabras leídas a índices secuenciales de\n"
+" -a matriz\tasigna las palabras leídas a índices secuenciales de\n"
" \tla variable de matriz MATRIZ, empezando en cero\n"
-" -d delim\tcontinúa hasta que se lea el primer carácter de DELIM,\n"
-" \t\ten lugar de línea nueva\n"
-" -e\t\tusa Readline para obtener la línea en un shell interactivo\n"
+" -d delim\tcontinúa hasta que se lea el primer carácter de DELIM,\n"
+" \t\ten lugar de línea nueva\n"
+" -e\t\tusa Readline para obtener la línea en un shell interactivo\n"
" -i texto\tUsa el TEXTO como el texto inicial para Readline\n"
-" -n ncars\tregresa después de leer NCARS caracteres en lugar de\n"
-" \t\tesperar una línea nueva, pero honra a un delimitador si\n"
+" -n ncars\tregresa después de leer NCARS caracteres en lugar de\n"
+" \t\tesperar una línea nueva, pero honra a un delimitador si\n"
" \t\tse leen menos de NCARS caracteres antes del delimitador\n"
-" -N ncars\tdevuelve sólo después de leer exactamente NCARS\n"
+" -N ncars\tdevuelve sólo después de leer exactamente NCARS\n"
" \t\tcaracteres, a menos que se encuentre el fin del fichero\n"
" \t\to expire la lectura, descartando cualquier delimitador\n"
-" -p prompt\tmuestra la cadena PROMPT sin un caractér de línea nueva\n"
+" -p prompt\tmuestra la cadena PROMPT sin un caractér de línea nueva\n"
" \t\tal final antes de intentar leer\n"
" -r\t\tno permite que las barras invertidas escapen caracteres\n"
" -s\t\tno muestra la salida que proviene de una terminal\n"
-" -t tiempo\texpira y devuelve fallo si no se lee una línea completa\n"
+" -t tiempo\texpira y devuelve fallo si no se lee una línea completa\n"
" \t\tde entrada en TIEMPO segundos. El valor de la variable TMOUT\n"
-" \t\tes el tiempo de expiración por defecto. TIEMPO puede ser un\n"
-" \t\tnúmero fraccionario. Si TIEMPO es 0, read devuelve con éxito\n"
-" \t\tsólo si hay entrada disponible en el descriptor de fichero\n"
+" \t\tes el tiempo de expiración por defecto. TIEMPO puede ser un\n"
+" \t\tnúmero fraccionario. Si TIEMPO es 0, read devuelve con éxito\n"
+" \t\tsólo si hay entrada disponible en el descriptor de fichero\n"
" \t\tespecificado. El estado de salida es mayor que 128 si se excede\n"
-" \t\tel tiempo de expiración.\n"
+" \t\tel tiempo de expiración.\n"
" -u df\t\tlee del descriptor de fichero DF en lugar de la entrada\n"
-" \t\testándar \n"
+" \t\testándar \n"
" Estado de Salida:\n"
-" El código de devolución es cero, a menos que se encuentre un final de\n"
-" línea, el tiempo de read expire, o se proporcione un descriptor de\n"
-" fichero inválido como el argumento de -u."
+" El código de devolución es cero, a menos que se encuentre un final de\n"
+" línea, el tiempo de read expire, o se proporcione un descriptor de\n"
+" fichero inválido como el argumento de -u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3789,18 +3886,18 @@ msgid ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-"Devuelve de una función de shell.\n"
+"Devuelve de una función de shell.\n"
" \n"
-" Causa que una función o un guión leído termine con el valor de "
-"devolución\n"
-" especificado por N. Si se omite N, el estado de devolución es el de\n"
-" la última orden ejecutada dentro de la función o guión.\n"
+" Causa que una función o un guión leído termine con el valor de "
+"devolución\n"
+" especificado por N. Si se omite N, el estado de devolución es el de\n"
+" la última orden ejecutada dentro de la función o guión.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve N, o falla si el shell no está ejecutando una función o un "
-"guión."
+" Devuelve N, o falla si el shell no está ejecutando una función o un "
+"guión."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3867,7 +3964,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3885,36 +3982,40 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given."
msgstr ""
-"Establece o borra los valores de las opciones de shell y los parámetros\n"
+"Establece o borra los valores de las opciones de shell y los parámetros\n"
"posicionales.\n"
" \n"
+" Cambia el valor de los atributos de shell y los parámetros "
+"posicionales,\n"
+" o muestra los nombres y valores de las variables de shell.\n"
+" \n"
" Opciones:\n"
-" -a Marca las variables que se modifican o crean para exportación.\n"
-" -b Notifica el término de trabajos inmediatamente.\n"
+" -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 se localizaron.\n"
-" -k Todos los argumentos de asignación se colocan en el ambiente para "
+" -f Desactiva la generación de nombres de ficheros (englobamiento).\n"
+" -h Recuerda la ubicación de las órdenes como se localizaron.\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"
+" -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 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"
+" 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 "
+" permite que haya comentarios en órdenes "
"interactivas\n"
" keyword igual que -k\n"
" monitor igual que -m\n"
@@ -3926,55 +4027,60 @@ msgstr ""
" 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 "
+" pipefail el valor de devolución de una tubería es el "
"estado\n"
-" del último comando en salir con un estado "
+" 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 defecto difiere del estándar Posix para que\n"
-" coincida con el estándar\n"
+"operación\n"
+" por defecto difiere del estándar Posix para que\n"
+" coincida con el estándar\n"
" privileged igual que -p\n"
" verbose igual que -v\n"
-" vi usa una interfaz de edición de línea estilo vi\n"
+" vi usa una interfaz de edición de línea estilo vi\n"
" xtrace igual que -x\n"
" -p Activo 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 "
+" 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 se sustituyen.\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"
+" -t Termina después de leer y ejecutar una orden.\n"
+" -u Trata las variables sin definir como un error al sustituir.\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"
+" 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"
+" -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"
+" -P Si se activa, no sigue enlaces simbólicos cuando se ejecutan "
+"órdenes\n"
" como cd, que cambian 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 "
+" -- Asigna cualquier argumento restante a los parámetros "
+"posicionales.\n"
+" Si no restan argumentos, se desactivan los parámetros "
+"posicionales.\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 "
+" 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 "
+" 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.\n"
+" se proporciona ningún ARG, se muestran todas las variables del shell.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida."
+" Devuelve con éxito a menos que se proporcione una opción inválida."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3983,6 +4089,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3995,22 +4103,22 @@ msgid ""
msgstr ""
"Desactiva valores y atributos de las variables y funciones del shell.\n"
" \n"
-" Por cada NOMBRE, borra la función o variable correspondiente.\n"
+" Por cada NOMBRE, borra la función o variable correspondiente.\n"
" \n"
" Opciones:\n"
-" -f\ttrata cada NOMBRE como una función de shell\n"
+" -f\ttrata cada NOMBRE como una función de shell\n"
" -v\ttrata cada NOMBRE como una variable de shell\n"
" \n"
" Sin opciones, unset primero trata de borrar una variable, y si falla,\n"
-" trata de borrar una función.\n"
+" trata de borrar una función.\n"
" \n"
-" Algunas variables no se pueden borrar; también consulte `readonly'.\n"
+" Algunas variables no se pueden borrar; también consulte `readonly'.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
-" un NOMBRE sea de sólo lectura."
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" un NOMBRE sea de sólo lectura."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -4028,25 +4136,26 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-"Establece el atributo de exportación para las variables de shell.\n"
+"Establece el atributo de exportación para las variables de shell.\n"
" \n"
-" Marca cada NOMBRE para exportación automática al ambiente para las "
-"órdenes\n"
+" Marca cada NOMBRE para exportación automática al ambiente para las "
+"órdenes\n"
" ejecutadas subsecuentemente. Si se proporciona un VALOR, se asigna el\n"
" VALOR antes de exportar.\n"
" \n"
" Opciones:\n"
" -f\tse refiere a funciones de shell\n"
-" -n\tborra la propiedad de exportación para cada NOMBRE\n"
+" -n\tborra la propiedad de exportación para cada NOMBRE\n"
" -p\tmuestra una lista de todas las variables y funciones exportadas\n"
" \n"
" El argumento `--' desactiva el procesamiento posterior de opciones.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o que\n"
-" NOMBRE sea inválido."
+" Devuelve con éxito a menos que se proporcione una opción inválida o que\n"
+" NOMBRE sea inválido."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -4058,34 +4167,36 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\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 ""
-"Marca las variables de shell para evitar su modificación.\n"
+"Marca las variables de shell para evitar su modificación.\n"
" \n"
-" Marca cada NOMBRE como de sólo lectura; los valores de esos NOMBREs\n"
+" Marca cada NOMBRE como de sólo lectura; los valores de esos NOMBREs\n"
" no se pueden modificar por asignaciones subsecuentes. Si se "
"proporciona\n"
-" un VALOR, se asigna el VALOR antes de marcar como de sólo lectura.\n"
+" un VALOR, se asigna el VALOR antes de marcar como de sólo lectura.\n"
" \n"
" Opciones:\n"
" -a\tse refiere a variables de matriz indizada\n"
" -A\tse refiere a variables de matriz asociativa\n"
" -f\tse refiere a funciones de shell\n"
-" -p\tmuestra una lista de todas las variables y funciones de sólo "
+" -p\tmuestra una lista de todas las variables y funciones de sólo "
"lectura\n"
" \n"
" El argumento `--' desactiva el procesamiento posterior de opciones.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
-" el NOMBRE sea inválido."
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" el NOMBRE sea inválido."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4095,15 +4206,15 @@ msgid ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
msgstr ""
-"Desplaza los parámetros posicionales.\n"
+"Desplaza los parámetros posicionales.\n"
" \n"
-" Renombra los parámetros posicionales $N+1,$N+2 ... a $1,$2 ... Si no\n"
+" Renombra los parámetros posicionales $N+1,$N+2 ... a $1,$2 ... Si no\n"
" se proporciona N, se asume que es 1.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que N sea negativo o mayor que $#."
+" Devuelve con éxito a menos que N sea negativo o mayor que $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4116,18 +4227,18 @@ msgid ""
" Returns the status of the last command executed in FILENAME; fails if\n"
" FILENAME cannot be read."
msgstr ""
-"Ejecuta órdenes de un fichero en el shell actual.\n"
+"Ejecuta órdenes de un fichero en el shell actual.\n"
" \n"
-" Lee y ejecuta órdenes del FICHERO en el shell actual. Se utilizan las\n"
+" Lee y ejecuta órdenes del FICHERO en el shell actual. Se utilizan las\n"
" entradas en $PATH para encontrar el directorio que contiene el FICHERO.\n"
-" Si se proporciona ARGUMENTOS, se convierten en los parámetros "
+" Si se proporciona ARGUMENTOS, se convierten en los parámetros "
"posicionales\n"
" cuando se ejecuta el FICHERO.\n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada del FICHERO; falla si\n"
+" Devuelve el estado de la última orden ejecutada del FICHERO; falla si\n"
" no se puede leer el FICHERO."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4140,20 +4251,20 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-"Suspende la ejecución del shell.\n"
+"Suspende la ejecución del shell.\n"
" \n"
-" Suspende la ejecución de este shell hasta que recibe una señal SIGCONT.\n"
+" Suspende la ejecución de este shell hasta que recibe una señal SIGCONT.\n"
" Los shells de entrada no se pueden suspender, a menos que sean "
"forzados.\n"
" \n"
" Opciones:\n"
-" -f\tfuerza la suspensión, aún si el shell es un shell de entrada\n"
+" -f\tfuerza la suspensión, aún si el shell es un shell de entrada\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que no esté activo el control de trabajos o\n"
+" Devuelve con éxito a menos que no esté activo el control de trabajos o\n"
" suceda un error."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4219,6 +4330,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4234,13 +4347,16 @@ msgid ""
" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
" false or an invalid argument is given."
msgstr ""
-"Evalúa expresiones condicionales.\n"
+"Evalúa expresiones condicionales.\n"
" \n"
" 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"
+" 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"
+" de un fichero. Hay también operadores de cadenas, y operadores de\n"
+" comparación numérica.\n"
+" \n"
+" La conducta de test depende del número de arcumentos. Lea la página\n"
+" de manual de bash para la especificación completa.\n"
" \n"
" Operadores de fichero:\n"
" \n"
@@ -4253,36 +4369,36 @@ msgstr ""
"regular.\n"
" -g FICHERO Verdadero si el fichero tiene activado el set-group-"
"id.\n"
-" -h FICHERO Verdadero si el fichero es un enlace simbólico.\n"
-" -L FICHERO Verdadero si el fichero es un enlace simbólico.\n"
+" -h FICHERO Verdadero si el fichero es un enlace simbólico.\n"
+" -L FICHERO Verdadero si el fichero es un enlace simbólico.\n"
" -k FICHERO Verdadero si el fichero tiene el bit `sticky' "
"activado.\n"
-" -p FICHERO Verdadero si el fichero es una tubería nombrada.\n"
+" -p FICHERO Verdadero si el fichero es una tubería nombrada.\n"
" -r FICHERO Verdadero si el fichero es legible para usted.\n"
-" -s FICHERO Verdadero si el fichero existe y no está vacío.\n"
+" -s FICHERO Verdadero si el fichero existe y no está vacío.\n"
" -S FICHERO Verdadero si el fichero es un `socket'.\n"
-" -t DF Verdadero si el DF está abierto en una terminal.\n"
+" -t DF Verdadero si el DF está abierto en una terminal.\n"
" -u FICHERO Verdadero si el fichero tiene activado el set-user-id.\n"
" -w FICHERO Verdadero si usted puede escribir en el fichero.\n"
" -x FICHERO Verdadero si usted puede ejecutar el fichero.\n"
" -O FICHERO Verdadero si usted efectivamente posee el fichero.\n"
" -G FICHERO Verdadero si su grupo efectivamente posee el fichero.\n"
-" -N FICHERO Verdadero si el fichero se modificó desde la última "
+" -N FICHERO Verdadero si el fichero se modificó desde la última "
"lectura.\n"
" \n"
-" FICH1 -nt FICH2 Verdadero si fich1 es más reciente que fich2\n"
-" (de acuerdo a la fecha de modificación).\n"
+" FICH1 -nt FICH2 Verdadero si fich1 es más reciente que fich2\n"
+" (de acuerdo a la fecha de modificación).\n"
" \n"
-" FICH1 -ot FICH2 Verdadero si fich1 es más antiguo que fich2.\n"
+" FICH1 -ot FICH2 Verdadero si fich1 es más antiguo que fich2.\n"
" \n"
" FICH1 -ef FICH2 Verdadero si fich1 es un enlace duro a fich2.\n"
" \n"
" Operadores de cadenas:\n"
" \n"
-" -z CADENA Verdadero si la cadena está vacía.\n"
+" -z CADENA Verdadero si la cadena está vacía.\n"
" \n"
" -n CADENA\n"
-" CADENA Verdadero si la cadena no está vacía.\n"
+" CADENA Verdadero si la cadena no está vacía.\n"
" \n"
" CADENA1 = CADENA2\n"
" Verdadero si las cadenas son iguales.\n"
@@ -4290,41 +4406,42 @@ msgstr ""
" Verdadero si las cadenas no son iguales.\n"
" CADENA1 < CADENA2\n"
" Verdadero si STRING1 se ordena antes que STRING2\n"
-" lexicográficamente.\n"
+" lexicográficamente.\n"
" CADENA1 > CADENA2\n"
-" Verdadero si STRING1 se ordena después que STRING2\n"
-" lexicográficamente.\n"
+" Verdadero si STRING1 se ordena después que STRING2\n"
+" lexicográficamente.\n"
" \n"
" Otros operadores:\n"
" \n"
-" -o OPCIÓN Verdadero si la opción del shell OPCIÓN está activada.\n"
+" -o OPCIÓN Verdadero si la opción del shell OPCIÓN está activada.\n"
+" -v VAR Verdadero si la variable de shell VAR 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"
+" 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"
+" Los operadores binarios aritméticos devuelven verdadero si ARG1 es\n"
" igual, no igual, menor, menor o igual, mayor, mayor o igual que ARG2.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito si EXPR evalúa a verdadero; falla si EXPR evalúa a\n"
-" falso o se proporciona un argumento inválido."
+" Devuelve con éxito si EXPR evalúa a verdadero; falla si EXPR evalúa a\n"
+" falso o se proporciona un argumento inválido."
-#: builtins.c:1311
+#: builtins.c:1329
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 ""
-"Evalúa una expresión condicional.\n"
+"Evalúa una expresión condicional.\n"
" \n"
-" Este es un sinónimo para la orden interna \"test\", pero el último\n"
+" 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:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4342,10 +4459,9 @@ msgstr ""
" sus procesos hijos.\n"
" \n"
" Estado de salida:\n"
-" Siempre con éxito."
+" Siempre con éxito."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4388,41 +4504,46 @@ msgid ""
" Returns success unless a SIGSPEC is invalid or an invalid option is "
"given."
msgstr ""
-"Atrapa señales y otros eventos.\n"
+"Atrapa señales y otros eventos.\n"
" \n"
-" Define y activa manejadores a ejecutar cuando el shell recibe señales\n"
+" Define y activa manejadores a ejecutar cuando el shell recibe señales\n"
" u otras condiciones.\n"
" \n"
" ARG es una orden para leer y ejecutar cuando el shell recibe la(s)\n"
-" señal(es) ID_SEÑAL. Si ARG no está presente (y sólo se proporciona\n"
-" una sola ID_SEÑAL) o se proporciona `-', cada señal especificada se\n"
+" señal(es) ID_SEÑAL. Si ARG no está presente (y sólo se proporciona\n"
+" una sola ID_SEÑAL) o se proporciona `-', cada señal especificada se\n"
" reestablece a su valor original. Si ARG es la cadena nula, el shell\n"
-" y las órdenes que invoque ignoran cada ID_SEÑAL.\n"
+" y las órdenes que invoque ignoran cada ID_SEÑAL.\n"
" \n"
-" Si una ID_SEÑAL es EXIT (0) se ejecuta la orden ARG al salir del\n"
-" shell. Si una ID_SEÑAL es DEBUG, se ejecuta ARG después de cada\n"
-" orden simple.\n"
+" Si una ID_SEÑAL es EXIT (0) se ejecuta la orden ARG al salir del\n"
+" shell. Si una ID_SEÑAL es DEBUG, se ejecuta ARG después de cada\n"
+" orden simple. Si una ID_SEÑAL es RETURN, se ejecuta ARG cada vez\n"
+" que una función de shell o un guión ejecutado por las órdenes internas\n"
+" . o source termina su ejecución. Una ID_SEÑAL de ERR significa que\n"
+" se ejecuta ARG cada vez que la falla de una orden causa que el shell\n"
+" termine cuando la opción -e está activada.\n"
" \n"
-" Si no se proporcionan argumentos, trap muestra la lista de órdenes\n"
-" asociadas con cada señal.\n"
+" Si no se proporcionan argumentos, trap muestra la lista de órdenes\n"
+" asociadas con cada señal.\n"
" \n"
" Opciones:\n"
-" -l\tmuestra una lista de nombres de señal con su número "
+" -l\tmuestra una lista de nombres de señal con su número "
"correspondiente\n"
-" -p\tmuestra las órdenes trap asociadas con cada ID_SEÑAL\n"
+" -p\tmuestra las órdenes trap asociadas con cada ID_SEÑAL\n"
" \n"
-" Cada ID_SEÑAL es un nombre de señal en <signal.h> o un número de señal.\n"
-" Los nombres de señal no son sensibles a mayúsculas y minúsculas y el\n"
-" prefijo SIG es opcional. Se puede enviar una señal al shell con\n"
+" Cada ID_SEÑAL es un nombre de señal en <signal.h> o un número de señal.\n"
+" Los nombres de señal no son sensibles a mayúsculas y minúsculas y el\n"
+" prefijo SIG es opcional. Se puede enviar una señal al shell con\n"
" \"kill -signal $$\". \n"
+" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que una ID_SEÑAL sea inválida o se "
+" Devuelve con éxito a menos que una ID_SEÑAL sea inválida o se "
"proporcione\n"
-" una opción inválida."
+" una opción inválida."
# No he visto que este fichero incluya la posibilidad de traducir las
-# palabras que muestra `type -t'. Por esta razón, se dejan en inglés. cfuga
-#: builtins.c:1368
+# palabras que muestra `type -t'. Por esta razón, se dejan en inglés. cfuga
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4451,36 +4572,37 @@ msgid ""
" Returns success if all of the NAMEs are found; fails if any are not "
"found."
msgstr ""
-"Muestra información sobre el tipo de orden.\n"
+"Muestra información sobre el tipo de orden.\n"
" \n"
-" Por cada NOMBRE, indica cómo se interpretaría si se usa como un nombre\n"
+" Por cada NOMBRE, indica cómo se interpretaría si se usa como un nombre\n"
" de orden.\n"
" \n"
" Opciones:\n"
" -a\tmuestra todas las ubicaciones que contienen un ejecutable llamado\n"
-" \tNOMBRE; incluye aliases, órdenes internas, y funciones, solo y solo "
+" \tNOMBRE; incluye aliases, órdenes internas, y funciones, solo y solo "
"si\n"
-" \tno se usó también la opción `-p'\n"
-" -f\tsuprime la búsqueda de funciones de shell\n"
-" -P\tfuerza una búsqueda en PATH por cada nombre, aún si hay un alias,\n"
-" \torden interna, o función, y devuelve el nombre del fichero en el "
+" \tno se usó también la opción `-p'\n"
+" -f\tsuprime la búsqueda de funciones de shell\n"
+" -P\tfuerza una búsqueda en PATH por cada nombre, aún si hay un alias,\n"
+" \torden interna, o función, y devuelve el nombre del fichero en el "
"disco\n"
-" \tque se ejecutaría\n"
-" -p\tdevuelve ya sea el nombre del fichero en disco que se ejecutaría,\n"
+" \tque se ejecutaría\n"
+" -p\tdevuelve ya sea el nombre del fichero en disco que se ejecutaría,\n"
" \to nada si `type -t NOMBRE' no devuelve `fichero'.\n"
" -t\tmuestra una sola palabra, que es una de `alias', `keyword',\n"
" \t`function', `builtin', `file' o `', si el NOMBRE es un alias,\n"
-" \tpalabra reservada del shell, función del shell, orden interna del\n"
+" \tpalabra reservada del shell, función del shell, orden interna del\n"
" \tshell, fichero de disco, o no se encuentra, respectivamente.\n"
" \n"
" Argumentos:\n"
" NOMBRE\tNombre de orden a interpretar.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito si se encuentran todos los NOMBREs; falla si no se\n"
+" Devuelve con éxito si se encuentran todos los NOMBREs; falla si no se\n"
" encuentra alguno."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4509,6 +4631,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4523,53 +4648,53 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"Modifica los límites de recursos del shell.\n"
+"Modifica los límites de recursos del shell.\n"
" \n"
" Provee control sobre los recursos disponibles para el shell y los\n"
" procesos que crea, en sistemas que permiten tal control.\n"
" \n"
" Opciones:\n"
" \n"
-" -S\tusa el límite de recurso `soft'\n"
-" -H\tusa el límite de recurso `hard'\n"
-" -a\tmuestra todos los límites actuales\n"
-" -b\tel tamaño del almacenamiento intermedio del `socket'\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 sus "
+" -S\tusa el límite de recurso `soft'\n"
+" -H\tusa el límite de recurso `hard'\n"
+" -a\tmuestra todos los límites actuales\n"
+" -b\tel tamaño del almacenamiento intermedio del `socket'\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 sus "
"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 del 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 LÍMITE, éste es el nuevo valor del recurso "
+" -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 del 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 LÃMITE, éste es el nuevo valor del recurso "
"especificado;\n"
-" los valores especiales de LÍMITE `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"
+" los valores especiales de LÃMITE `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.\n"
" \n"
" Los valores son en incrementos de 1024 bytes, excepto para -t, el cual\n"
" es en segundos, -p, el cual es en incrementos de 512 bytes, y -u, el\n"
-" cual es un número de procesos sin escala.\n"
+" cual es un número de procesos sin escala.\n"
" \n"
" Estado de salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o "
+" Devuelve con éxito a menos que se proporcione una opción inválida o "
"suceda\n"
" un error."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4586,75 +4711,81 @@ msgid ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-"Muestra o establece la máscara de modo de ficheros.\n"
+"Muestra o establece la máscara de modo de ficheros.\n"
" \n"
-" Establece la máscara de creación de ficheros del usuario a MODO. Si se\n"
-" omite el MODO, muestra el valor actual de la máscara.\n"
+" Establece la máscara de creación de ficheros del usuario a MODO. Si se\n"
+" omite el MODO, muestra el valor actual de la máscara.\n"
" \n"
-" Si el MODO empieza con un dígito, se interpreta como un número octal;\n"
-" de otra forma es una cadena de modo simbólico como la que acepta chmod "
+" Si el MODO empieza con un dígito, se interpreta como un número octal;\n"
+" de otra forma es una cadena de modo simbólico como la que acepta chmod "
"(1).\n"
" \n"
" Opciones:\n"
" -p\tsi se omite el MODO, muestra en una forma reusable como entrada\n"
-" -S\tsalida simbólica; de otra forma muestra el modo como número octal\n"
+" -S\tsalida simbólica; de otra forma muestra el modo como número octal\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que el MODO sea inválido o se proporcione\n"
-" una opción inválida."
+" Devuelve con éxito a menos que el MODO sea inválido o se proporcione\n"
+" una opción inválida."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-"Espera la terminación del trabajo y devuelve el estado de salida.\n"
+"Espera la terminación del trabajo y devuelve el estado de salida.\n"
" \n"
" Espera al proceso identificado por ID, el cual puede ser un ID de\n"
-" proceso o una especificación de trabajo, y reporta su estado de salida.\n"
+" proceso o una especificación de trabajo, y reporta su estado de salida.\n"
" Si no se proporciona un ID, espera a todos los procesos hijo activos,\n"
-" y el estado de devolución es cero. Si ID es una especificación de\n"
+" y el estado de devolución es cero. Si ID es una especificación de\n"
" trabajo, espera a todos los procesos en la cola de trabajos.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
-" opción inválida."
+" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
+" opción inválida."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-"Espera la terminación del trabajo y devuelve el estado de salida.\n"
+"Espera la terminación del trabajo y devuelve el estado de salida.\n"
" \n"
" Espera al proceso especificado y reporta su estado de salida. Si\n"
" no se proporciona un PID, espera a todos los procesos hijo activos,\n"
-" y el código de devolución es cero. PID debe ser un ID de proceso.\n"
+" y el código de devolución es cero. PID debe ser un ID de proceso.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
-" opción inválida."
+" Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
+" opción inválida."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4666,17 +4797,17 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Ejecuta órdenes por cada miembro en una lista.\n"
+"Ejecuta órdenes por cada miembro en una lista.\n"
" \n"
-" El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en\n"
-" una lista de elementos. Si `in PALABRAS ...;' no está presente,\n"
+" El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en\n"
+" una lista de elementos. Si `in PALABRAS ...;' no está presente,\n"
" entonces se asume `in \"$@\"'. Para cada elemento en PALABRAS,\n"
-" se define NOMBRE como ese elemento, y se ejecutan las ÓRDENES.\n"
+" se define NOMBRE como ese elemento, y se ejecutan las ÓRDENES.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4692,21 +4823,21 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Aritmética para un ciclo.\n"
+"Aritmética para un ciclo.\n"
" \n"
" Equivalente a\n"
" \t(( EXP1 ))\n"
" \twhile (( EXP2 )); do\n"
-" \t\tÓRDENES\n"
+" \t\tÓRDENES\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.\n"
+" EXP1, EXP2, y EXP3 son expresiones aritméticas. Si se omite\n"
+" cualquier expresión, se comporta como si se evaluara a 1.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4725,25 +4856,25 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Selecciona palabras de una lista y ejecuta órdenes.\n"
+"Selecciona palabras de una lista y ejecuta órdenes.\n"
" \n"
" Se expanden las PALABRAS, generando una lista de palabras. El\n"
" conjunto de palabras expandidas se muestra en la salida de error\n"
-" estándar, cada una precedida por un número. Si `in PALABRAS' no\n"
-" está presente, se asume `in \"$@\"'. Entonces se muestra el\n"
-" prompt PS3 y se lee una línea de la entrada estándar. Si la\n"
-" línea consiste en el número correspondiente a una de las palabras\n"
+" estándar, cada una precedida por un número. Si `in PALABRAS' no\n"
+" está presente, se asume `in \"$@\"'. Entonces se muestra el\n"
+" prompt PS3 y se lee una línea de la entrada estándar. Si la\n"
+" línea consiste en el número correspondiente a una de las palabras\n"
" mostradas, entonces se define NOMBRE como esa palabra. Si la\n"
-" línea está vacía, PALABRAS y el prompt se muestran de nuevo. Si\n"
-" se lee EOF, se completa la orden. Cualquier otro valor leído\n"
-" causa que NOMBRE se defina como nulo. La línea leída se guarda\n"
-" en la variable REPLY. Se ejecutan las ÓRDENES después de cada\n"
-" selección hasta que se ejecuta una orden break.\n"
+" línea está vacía, PALABRAS y el prompt se muestran de nuevo. Si\n"
+" se lee EOF, se completa la orden. Cualquier otro valor leído\n"
+" causa que NOMBRE se defina como nulo. La línea leída se guarda\n"
+" en la variable REPLY. Se ejecutan las ÓRDENES después de cada\n"
+" selección hasta que se ejecuta una orden break.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4758,19 +4889,19 @@ msgid ""
" Exit Status:\n"
" The return status is the return status of PIPELINE."
msgstr ""
-"Reporta el tiempo consumido por la ejecución de la tubería.\n"
+"Reporta el tiempo consumido por la ejecución de la tubería.\n"
" \n"
-" Ejecuta la TUBERÍA y muestra un resumen del tiempo real, el tiempo de\n"
+" Ejecuta la TUBERÃA 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 la TUBERÍA cuando termina.\n"
+" la ejecución de la TUBERÃA cuando termina.\n"
" \n"
" Opciones:\n"
" -p\tmuestra el resumen de tiempos en el formato Posix transportable\n"
" \n"
" Estado de Salida:\n"
-" El estado de devolución es el estado de devolución de la TUBERÍA."
+" El estado de devolución es el estado de devolución de la TUBERÃA."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4780,15 +4911,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Ejecuta órdenes en base a la coincidencia de patrones.\n"
+"Ejecuta órdenes en base a la coincidencia de patrones.\n"
" \n"
-" Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA\n"
-" con el PATRÓN. Se utiliza `|' para separar patrones múltiples.\n"
+" Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA\n"
+" con el PATRÓN. Se utiliza `|' para separar patrones múltiples.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4810,21 +4941,21 @@ msgid ""
msgstr ""
"Ejecuta comandos en base a condicionales.\n"
" \n"
-" Se ejecuta la lista `if ÓRDENES'. Si su estado de salida es cero,\n"
-" entonces se ejecuta la lista `then ÓRDENES`. De otra forma, cada lista\n"
-" `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es "
+" Se ejecuta la lista `if ÓRDENES'. Si su estado de salida es cero,\n"
+" entonces se ejecuta la lista `then ÓRDENES`. De otra forma, cada lista\n"
+" `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es "
"cero,\n"
-" se ejecuta la lista `then ÓRDENES' correspondiente y se completa la\n"
-" orden if. De otra forma, se ejecuta la lista `else ÓRDENES', 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"
+" se ejecuta la lista `then ÓRDENES' correspondiente y se completa la\n"
+" orden if. De otra forma, se ejecuta la lista `else ÓRDENES', 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.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4834,15 +4965,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Ejecuta órdenes mientras una prueba tenga éxito.\n"
+"Ejecuta órdenes mientras una prueba tenga éxito.\n"
" \n"
-" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
+" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
" `while' tenga un estado de salida de cero.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4852,15 +4983,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Ejecuta órdenes mientras una prueba no tenga éxito.\n"
+"Ejecuta órdenes mientras una prueba no tenga éxito.\n"
" \n"
-" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
+" Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n"
" `until' tengan un estado de salida que no sea cero.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4874,17 +5005,17 @@ msgid ""
msgstr ""
"Crea un coproceso llamado NOMBRE.\n"
" \n"
-" Ejecuta la ORDEN asíncronamente, con la salida estándar y la entrada\n"
-" estándar de la orden contectada a través de una tubería a los "
+" Ejecuta la ORDEN asíncronamente, con la salida estándar y la entrada\n"
+" estándar de la orden contectada a través de una tubería a los "
"descriptores\n"
-" de fichero asignados a los índices 0 y 1 de una variable de matriz "
+" de fichero asignados a los índices 0 y 1 de una variable de matriz "
"NOMBRE\n"
-" en el shell en ejecución. El nombre por defecto es \"COPROC\".\n"
+" en el shell en ejecución. El nombre por defecto es \"COPROC\".\n"
" \n"
" Estado de Salida:\n"
" Devuelve el estado de salida de la ORDEN."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4897,17 +5028,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is readonly."
msgstr ""
-"Define una función de shell.\n"
+"Define una función de shell.\n"
" \n"
-" Crea una función de shell llamada NOMBRE. Cuando se invoca como una\n"
-" orden simple, NOMBRE ejecuta ÓRDENES en el contexto del shell que lo\n"
-" llamó. Cuando se invoca NOMBRE, los argumentos se pasan a la función\n"
-" como $1...$n, y el nombre de la función está en $FUNCNAME.\n"
+" Crea una función de shell llamada NOMBRE. Cuando se invoca como una\n"
+" orden simple, NOMBRE ejecuta ÓRDENES en el contexto del shell que lo\n"
+" llamó. Cuando se invoca NOMBRE, los argumentos se pasan a la función\n"
+" como $1...$n, y el nombre de la función está en $FUNCNAME.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que NOMBRE sea de sólo lectura"
+" Devuelve con éxito a menos que NOMBRE sea de sólo lectura"
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4917,15 +5048,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Agrupa órdenes como una unidad.\n"
+"Agrupa órdenes como una unidad.\n"
" \n"
-" Ejecuta un conjunto de órdenes en un grupo. Esta es una forma de\n"
-" redirigir un conjunto completo de órdenes.\n"
+" Ejecuta un conjunto de órdenes en un grupo. Esta es una forma de\n"
+" redirigir un conjunto completo de órdenes.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve el estado de la última orden ejecutada."
+" Devuelve el estado de la última orden ejecutada."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4942,15 +5073,15 @@ msgstr ""
" \n"
" Equivalente al argumento IDTRABAJO de la orden `fg'. Reinicia un\n"
" trabajo detenido o en segundo plano. IDTRABAJO puede especificar\n"
-" un nombre de trabajo o un número de trabajo. Un `&' a continuación\n"
+" un nombre de trabajo o un número de trabajo. Un `&' a continuación\n"
" de IDTRABAJO coloca al trabajo en segundo plano, como si la\n"
-" especificación del trabajo se hubiera proporcionado como\n"
+" especificación del trabajo se hubiera proporcionado como\n"
" un argumento de `bg'.\n"
" \n"
" Estado de Salida:\n"
" Devuelve el estado del trabajo reiniciado."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4960,15 +5091,15 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-"Evalúa una expresión aritmética.\n"
+"Evalúa una expresión aritmética.\n"
" \n"
-" Se evalua la EXPRESIÓN de acuerdo a las reglas de evaluación\n"
-" aritmética. Equivalente a \"let EXPRESIÓN\".\n"
+" Se evalua la EXPRESIÓN de acuerdo a las reglas de evaluación\n"
+" aritmética. Equivalente a \"let EXPRESIÓN\".\n"
" \n"
" Estado de Salida:\n"
-" Devuelve 1 si la EXPRESIÓN evalúa a 0; devuelve 0 de otra manera."
+" Devuelve 1 si la EXPRESIÓN evalúa a 0; devuelve 0 de otra manera."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4997,14 +5128,14 @@ msgid ""
msgstr ""
"Ejecuta una orden condicional.\n"
" \n"
-" Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la "
-"expresión\n"
-" condicional EXPRESIÓN. Las expresiones se componen de los mismos\n"
+" Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la "
+"expresión\n"
+" condicional EXPRESIÓN. 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"
-" ( EXPRESIÓN )\tDevuelve el valor de la EXPRESIÓN\n"
-" ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es "
+" ( EXPRESIÓN )\tDevuelve el valor de la EXPRESIÓN\n"
+" ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es "
"falso\n"
" EXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n"
" \t\totra forma es falso\n"
@@ -5012,16 +5143,16 @@ msgstr ""
" \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"
+" derecha del operador como un patrón y se realiza una coincidencia de\n"
" patrones. Cuando se usa el operador `=~', la cadena a la derecha del\n"
-" operador coincide como una expresión regular.\n"
+" operador coincide como una expresión regular.\n"
" \n"
-" Los operadores && y || no evalúan EXPR2 si EXPR1 es suficiente para\n"
-" determinar el valor de una expresión. \n"
+" Los operadores && y || no evalúan EXPR2 si EXPR1 es suficiente para\n"
+" determinar el valor de una expresión. \n"
" Estado de Salida:\n"
-" 0 o 1 dependiendo del valor de la EXPRESIÓN."
+" 0 o 1 dependiendo del valor de la EXPRESIÓN."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5076,37 +5207,37 @@ msgid ""
msgstr ""
"Nombres de variables de shell comunes y su uso.\n"
" \n"
-" BASH_VERSION\tInformación de versión para este Bash.\n"
+" 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\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\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"
+" 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"
+" 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"
+" 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"
+" 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"
+" \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"
@@ -5115,28 +5246,28 @@ msgstr ""
" 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"
+" 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\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"
+" 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\tpara decidir cuáles órdenes se deben guardar en la lista de\n"
" \t\thistoria.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5175,27 +5306,27 @@ msgstr ""
" \n"
" Opciones:\n"
" -n\tsuprime el cambio normal de directorio cuando se agregan\n"
-" \tdirectorios a la pila, así sólo se manipula la pila.\n"
+" \tdirectorios a la pila, así sólo se manipula la pila.\n"
" \n"
" Argumentos:\n"
-" +N\tRota la pila para que el N-ésimo directorio (contando\n"
+" +N\tRota la pila para que el N-ésimo directorio (contando\n"
" \tde la izquierda de la lista mostrada por `dirs',comenzando\n"
-" \tdesde cero) esté en el tope.\n"
+" \tdesde cero) esté en el tope.\n"
" \n"
-" -N\tRota la pila para que el N-ésimo directorio (contando\n"
+" -N\tRota la pila para que el N-ésimo directorio (contando\n"
" \tde la derecha de la lista mostrada por `dirs', comenzando\n"
-" \tdesde cero) esté en el tope.\n"
+" \tdesde cero) esté en el tope.\n"
" \n"
" dir\tagrega DIR a la pila de directorios en el tope,\n"
-" \thaciéndolo el nuevo directorio de trabajo actual.\n"
+" \thaciéndolo el nuevo directorio de trabajo actual.\n"
" \n"
" La orden interna `dirs' muestra la pila de directorios.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
+" Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
" falle el cambio de directorio."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5229,27 +5360,27 @@ msgstr ""
" \n"
" Opciones:\n"
" -n\tsuprime el cambio normal de directorio cuando se borran\n"
-" \tdirectorios de la pila, así sólo se manipula la pila.\n"
+" \tdirectorios de la pila, así sólo se manipula la pila.\n"
" \n"
" Argumentos:\n"
" \n"
-" +N\tBorra la N-ésima entrada contando de la izquierda de\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"
+" -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"
+" \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n"
+" \tel penúltimo.\n"
" \n"
" La orden interna `dirs' muestra el contenido de la pila.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
+" Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
" falle el cambio de directorio."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5288,24 +5419,24 @@ msgstr ""
" -c\tlimpia la pila de directorios, eliminando todos sus elementos.\n"
" -l\tno muestra versiones con prefijo de tilde de los directorios\n"
" \trelativos a su directorio inicial.\n"
-" -p\tmuestra la pila de directorios con una entrada por línea\n"
-" -v\tmuestra la pila de directorios con una entrada por línea con\n"
-" \tsu posición en la pila como prefijo\n"
+" -p\tmuestra la pila de directorios con una entrada por línea\n"
+" -v\tmuestra la pila de directorios con una entrada por línea con\n"
+" \tsu posición en la pila como prefijo\n"
" \n"
-" Argumentos: +N\tmuestra la N-ésima entrada contando desde la "
+" Argumentos: +N\tmuestra la N-ésima entrada contando desde la "
"izquierda de la lista\n"
" \tmostrada por dirs cuando se invoca sin opciones,\n"
" \tempezando de cero.\n"
" \n"
-" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n"
+" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n"
" \tmostrada por dirs cuando se invoca sin opciones,\n"
" \tempezando de cero.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito, a menos que se proporcione una opción inválida o\n"
+" Devuelve con éxito, a menos que se proporcione una opción inválida o\n"
" suceda un error."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5327,22 +5458,22 @@ msgid ""
msgstr ""
"Activa y desactiva opciones de shell.\n"
" \n"
-" Cambia la configuración de cada opción de shell NOMBRE_OPCIÓN. Sin\n"
-" alguna opción como argumento, muestra todas las opciones de shell con\n"
-" una indicación si está activa o no.\n"
+" Cambia la configuración de cada opción de shell NOMBRE_OPCIÓN. Sin\n"
+" alguna opción como argumento, muestra todas las opciones de shell con\n"
+" una indicación si está activa o no.\n"
" \n"
" Opciones:\n"
-" -o\trestringe NOMBRE_OPCIÓN a aquellos definidos con `set -o'\n"
-" -p\tmuestra cada opción de shell con un indicador de su estado\n"
+" -o\trestringe NOMBRE_OPCIÓN a aquellos definidos con `set -o'\n"
+" -p\tmuestra cada opción de shell con un indicador de su estado\n"
" -q\tsuprime la salida\n"
-" -s\tactiva (establece) cada NOMBRE_OPCIÓN\n"
-" -u\tdesactiva (borra) cada NOMBRE_OPCIÓN\n"
+" -s\tactiva (establece) cada NOMBRE_OPCIÓN\n"
+" -u\tdesactiva (borra) cada NOMBRE_OPCIÓN\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito si se activa NOMBRE_OPCIÓN; falla si se proporciona\n"
-" una opción inválida o NOMBRE_OPCIÓN está desactivado."
+" Devuelve con éxito si se activa NOMBRE_OPCIÓN; falla si se proporciona\n"
+" una opción inválida o NOMBRE_OPCIÓN está desactivado."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5360,9 +5491,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5370,6 +5501,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5379,27 +5516,31 @@ msgstr ""
" \n"
" Opciones:\n"
" -v var\tasigna la salida a la variable de shell VAR en lugar\n"
-" \t\tde mostrarla en la salida estándar\n"
+" \t\tde mostrarla en la salida estándar\n"
" \n"
" FORMATO es una cadena de caracteres la cual contiene tres tipos de\n"
-" objetos caracteres simples, los cuales solamente se copian a la salida\n"
-" salida estándar; secuencias de escape de caracteres, las cuales\n"
-" se convierten y se copian a la salida estándar; y especificaciones de\n"
+" objetos: caracteres simples, los cuales solamente se copian a la salida\n"
+" salida estándar; secuencias de escape de caracteres, las cuales\n"
+" se convierten y se copian a la salida estándar; y especificaciones de\n"
" formato, cada una de las cuales causa la muestra del siguiente "
"argumento\n"
" consecutivo.\n"
" \n"
-" Además de las especificaciones de formato estándar descritas en\n"
+" Además de las especificaciones de formato estándar descritas en\n"
" printf(1) y printf(3), printf interpreta:\n"
+" \n"
" %b\texpande las secuencias de escape de barra invertida en\n"
-" \t\tel argumento correspondiente\n"
+" el argumento correspondiente\n"
" %q\tcita el argumento de tal forma que se puede reusar como\n"
-" \t\tentrada del shell.\n"
+" entrada del shell.\n"
+" %(fmt)T muestra la cadena fecha hora resultante de usar FMT como\n"
+" una cadena de formato para strftime(3)\n"
+" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
-" suceda un error de escritura o de asignación."
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" suceda un error de escritura o de asignación."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5425,9 +5566,9 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"Especifica cuántos argumentos deben ser completados por Readline.\n"
+"Especifica cuántos argumentos deben ser completados por Readline.\n"
" \n"
-" Por cada NOMBRE, especifica cuántos argumentos se deben completar. Si\n"
+" Por cada NOMBRE, especifica cuántos argumentos se deben completar. Si\n"
" no se proporcionan opciones, se muestran las especificaciones de\n"
" completado existentes en una forma que permite que se reusen como "
"entrada.\n"
@@ -5435,23 +5576,23 @@ msgstr ""
" Opciones:\n"
" -p\tmuestra las especificaciones de completado existentes en formato\n"
" \treusable\n"
-" -r\tborra una especificación de completado para cada NOMBRE,\n"
+" -r\tborra una especificación de completado para cada NOMBRE,\n"
" \to, si no se proporcionan NOMBREs, todas las especificaciones\n"
" \tde completado\n"
-" -D\taplica los completados y acciones por defecto para las órdenes\n"
-" \tsin ninguna especificación de completado definida\n"
-" -E\taplica los completados y acciones para órdenes \"vacías\" --\n"
-" \tcuando se intenta completar en una línea en blanco\n"
+" -D\taplica los completados y acciones por defecto para las órdenes\n"
+" \tsin ninguna especificación de completado definida\n"
+" -E\taplica los completados y acciones para órdenes \"vacías\" --\n"
+" \tcuando se intenta completar en una línea en blanco\n"
" \n"
" Cuando se intenta el completado, las acciones se aplican en el orden en\n"
-" que se enlistan las opciones de letra mayúscula antes indicadas. La\n"
-" opción -D tiene precedencia sobre -E.\n"
+" que se enlistan las opciones de letra mayúscula antes indicadas. La\n"
+" opción -D tiene precedencia sobre -E.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
" suceda un error."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5465,16 +5606,15 @@ msgid ""
msgstr ""
"Muestra los posibles complementos dependiendo de las opciones.\n"
" \n"
-" Sirve para usarse desde una función de shell que genere complementos\n"
+" Sirve para usarse desde una función de shell que genere complementos\n"
" posibles. Si se proporciona el argumento opcional PALABRA, se generan\n"
" las coincidencias contra PALABRA.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
" suceda un error."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5507,32 +5647,31 @@ msgstr ""
"Modifica o muestra las opciones de completado.\n"
" \n"
" Modifica las opciones de completado para cada NOMBRE, o, si no se\n"
-" proporcionan NOMBREs, el completado actualmente en ejecución. Si no se\n"
+" proporcionan NOMBREs, el completado actualmente en ejecución. Si no se\n"
" proporcionan OPCIONes, muestra las opciones de completado para cada\n"
-" NOMBRE o la especificación de completado actual. \n"
+" NOMBRE o la especificación de completado actual.\n"
" Opciones:\n"
-" \t-o opción\tEstablece la opción de completado OPCIÓN\n"
+" \t-o opción\tEstablece la opción de completado OPCIÓN\n"
" \t\tpara cada NOMBRE\n"
" \t-D\t\tCambia las opciones para el completado de orden \"por defecto\"\n"
-" \t-E\t\tCambia las opciones para el completado de orden \"vacía\"\n"
+" \t-E\t\tCambia las opciones para el completado de orden \"vacía\"\n"
" \n"
-" Si usa `+o' en lugar de `-o' desactiva la opción especificada.\n"
+" Si usa `+o' en lugar de `-o' desactiva la opción especificada.\n"
" \n"
" Argumentos:\n"
" \n"
-" Cada NOMBRE se refiere a una orden para la cual se definió previamente\n"
-" una especificación de completado usando la orden interna `complete'.\n"
+" Cada NOMBRE se refiere a una orden para la cual se definió previamente\n"
+" una especificación de completado usando la orden interna `complete'.\n"
" Si no se proporcionan NOMBREs, se debe llamar a compopt desde una "
-"función\n"
+"función\n"
" que genere completados, y se modifican las opciones para ese generador\n"
-" de completados en ejecución.\n"
+" de completados en ejecución.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
-" el NOMBRE no tenga una especificación de completado definida."
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" el NOMBRE no tenga una especificación de completado definida."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5572,48 +5711,61 @@ msgid ""
"or\n"
" not an indexed array."
msgstr ""
-"Lee líneas de un fichero y las guarda en una variable de matriz indizada.\n"
+"Lee líneas de un fichero y las guarda en una variable de matriz indizada.\n"
" \n"
-" Lee líneas de la entrada estándar y las guarda en la variable de matriz\n"
+" Lee líneas de la entrada estándar y las guarda en la variable de matriz\n"
" indizada MATRIZ, o desde el descriptor de fichero DF si se proporciona\n"
-" la opción -u. La variable MAPFILE es la MATRIZ por defecto.\n"
+" la opción -u. La variable MAPFILE es la MATRIZ por defecto.\n"
" \n"
" Opciones:\n"
-" -n cuenta\tCopia hasta CUENTA líneas. Si CUENTA es 0, se copian\n"
-" \ttodas las líneas.\n"
-" -O origen\tComienza a asignar a MATRIZ en el índice ORIGEN. El\n"
-" \tíndice por defecto es 0.\n"
-" -s cuenta \tDescarta las primeras CUENTA líneas leídas.\n"
-" -t\t\tBorra la nueva línea final de cada línea leída.\n"
-" -u df\t\tLee líneas del descriptor de fichero DF en lugar de la\n"
-" \tentrada estándar.\n"
-" -C llamada\tEvalúa LLAMADA cada vez que se leen QUANTUM líneas.\n"
-" -c quantum\tEspecifica el número de líneas a leer entre cada\n"
+" -n cuenta\tCopia hasta CUENTA líneas. Si CUENTA es 0, se copian\n"
+" \ttodas las líneas.\n"
+" -O origen\tComienza a asignar a MATRIZ en el índice ORIGEN. El\n"
+" \tíndice por defecto es 0.\n"
+" -s cuenta \tDescarta las primeras CUENTA líneas leídas.\n"
+" -t\t\tBorra la nueva línea final de cada línea leída.\n"
+" -u df\t\tLee líneas del descriptor de fichero DF en lugar de la\n"
+" \tentrada estándar.\n"
+" -C llamada\tEvalúa LLAMADA cada vez que se leen QUANTUM líneas.\n"
+" -c quantum\tEspecifica el número de líneas a leer entre cada\n"
" \tllamada a LLAMADA.\n"
" \n"
" Argumentos:\n"
" MATRIZ\t\tNombre de variable de matriz a usar para guardar datos.\n"
" \n"
" Si se proporciona -C sin -c, el quantum por defecto es 5000. Cuando\n"
-" se evalúa LLAMADA, se proporciona el índice del siguiente elemento\n"
+" se evalúa LLAMADA, se proporciona el índice del siguiente elemento\n"
" de la matriz a asignar como un argumento adicional.\n"
" \n"
-" Si no se proporciona un origen explícito, mapfile borrará la MATRIZ\n"
-" antes de usarla para asignación.\n"
+" Si no se proporciona un origen explícito, mapfile borrará la MATRIZ\n"
+" antes de usarla para asignación.\n"
" \n"
" Estado de Salida:\n"
-" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
-" la MATRIZ sea de sólo lectura."
+" Devuelve con éxito a menos que se proporcione una opción inválida o\n"
+" la MATRIZ sea de sólo lectura o no sea una matriz indizada."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
-"Lee líneas de un fichero en una variable de matriz.\n"
+"Lee líneas de un fichero en una variable de matriz.\n"
" \n"
-" Un sinónimo de `mapfile'."
+" Un sinónimo de `mapfile'."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licencia GPLv2+: GPL de GNU versión 2 o posterior <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
#~ msgid ""
#~ ". With EXPR, returns\n"
@@ -5630,10 +5782,10 @@ msgstr ""
#~ "the\n"
#~ " current one; the top frame is frame 0."
#~ msgstr ""
-#~ "; esta información adicional se puede usar para\n"
+#~ "; esta información adicional se puede usar para\n"
#~ " proveer un rastreo de pila.\n"
#~ " \n"
-#~ " El valor de EXPR indica cuántos marcos de llamada retroceder antes "
+#~ " El valor de EXPR indica cuántos marcos de llamada retroceder antes "
#~ "del\n"
#~ " marco actual; el marco superior es el marco 0."
@@ -5654,7 +5806,7 @@ msgstr ""
#~ 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"
+#~ 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."
@@ -5662,16 +5814,16 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ msgstr "%s: número inválido"
#~ msgid "Shell commands matching keywords `"
-#~ msgstr "Órdenes del shell que coinciden con las palabras `"
+#~ msgstr "Órdenes del shell que coinciden con las palabras `"
#~ msgid "Display the list of currently remembered directories. Directories"
#~ msgstr ""
@@ -5686,7 +5838,7 @@ msgstr ""
#~ 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"
+#~ "La opción -l especifica que `dirs' no debe mostrar versiones abreviadas"
#~ msgid ""
#~ "of directories which are relative to your home directory. This means"
@@ -5695,29 +5847,29 @@ msgstr ""
#~ "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"
+#~ 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,"
+#~ "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"
+#~ "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."
+#~ 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."
+#~ "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"
+#~ "+N muestra la N-ésima entrada contando desde la izquierda de la lista"
#~ msgid " dirs when invoked without options, starting with zero."
#~ msgstr ""
@@ -5726,7 +5878,7 @@ msgstr ""
#~ 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"
+#~ "-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"
@@ -5739,17 +5891,17 @@ 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"
+#~ 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."
+#~ 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"
+#~ 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 ""
@@ -5760,10 +5912,10 @@ 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."
+#~ 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"
+#~ 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."
@@ -5782,7 +5934,7 @@ msgstr ""
#~ 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"
+#~ "+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 ""
@@ -5792,14 +5944,14 @@ msgstr ""
#~ 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"
+#~ 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."
+#~ msgstr " borra el último directorio, `popd -1' el penúltimo."
#~ msgid ""
#~ "-n suppress the normal change of directory when removing directories"
@@ -5807,7 +5959,7 @@ 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."
+#~ msgstr " de la pila, así sólo se manipula la pila."
#~ msgid "allocated"
#~ msgstr "asignado"
@@ -5816,16 +5968,16 @@ msgstr ""
#~ msgstr "liberado"
#~ msgid "requesting resize"
-#~ msgstr "solicitando cambio de tamaño"
+#~ msgstr "solicitando cambio de tamaño"
#~ msgid "just resized"
-#~ msgstr "terminó cambio de tamaño"
+#~ msgstr "terminó cambio de tamaño"
#~ msgid "bug: unknown operation"
-#~ msgstr "bicho: operación desconocida"
+#~ msgstr "bicho: operación desconocida"
#~ msgid "malloc: watch alert: %p %s "
-#~ msgstr "malloc: alerta de observación: %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"
@@ -5839,26 +5991,26 @@ msgstr ""
#~ " 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 "
+#~ "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."
+#~ " 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."
+#~ "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
+# "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"
@@ -5873,14 +6025,14 @@ msgstr ""
#~ 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"
+#~ " 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ándar. 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."
+#~ " estándar. 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."
# apaga -> desactiva em+
-# Corregido en toda la traducción. cfuga
+# Corregido en toda la traducción. cfuga
#~ 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"
@@ -5910,37 +6062,37 @@ msgstr ""
#~ " used in a function, makes NAMEs local, as with the `local' command."
#~ 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"
+#~ " 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"
+#~ " -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"
+#~ " -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"
+#~ " 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"
+#~ " 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"
+#~ " usa en una función, hace a los NAMEs locales, como sucede con la\n"
#~ " orden `local'."
#~ 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+
+# 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"
@@ -5948,20 +6100,20 @@ msgstr ""
#~ " 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."
+#~ " 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."
+#~ "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
+# 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"
@@ -5979,28 +6131,28 @@ msgstr ""
#~ " `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"
+#~ "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 "
+#~ " 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á "
+#~ " 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 "
+#~ " 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 "
+#~ " 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."
+#~ " 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)."
@@ -6019,12 +6171,12 @@ msgstr ""
#~ 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"
+#~ " 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"
+#~ " 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"
+#~ " entonces el shell termina, a menos que esté activa la opción\n"
#~ " `execfail'."
#~ msgid "Logout of a login shell."
@@ -6048,18 +6200,18 @@ msgstr ""
#~ "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 "
+#~ " 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"
+#~ " 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."
+#~ "información\n"
+#~ " de las órdenes grabadas."
#~ msgid ""
#~ "Display helpful information about builtin commands. If PATTERN is\n"
@@ -6068,11 +6220,11 @@ msgstr ""
#~ " 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"
+#~ "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 ""
@@ -6087,20 +6239,20 @@ msgstr ""
#~ 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, "
+#~ " 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"
+#~ " 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 "
+#~ "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."
+#~ " 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"
@@ -6109,13 +6261,13 @@ msgstr ""
#~ " 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 "
+#~ "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 "
+#~ " una función. Algunas variables no se pueden borrar; vea también "
#~ "readonly."
#~ msgid ""
@@ -6127,12 +6279,12 @@ msgstr ""
#~ " 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"
+#~ "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 "
+#~ " la propiedad de exportación para los NAMEs subsecuentes. Un "
#~ "argumento\n"
#~ " `--' desactiva el procesamiento posterior de opciones."
@@ -6146,20 +6298,20 @@ msgstr ""
#~ " 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"
+#~ "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 "
+#~ " 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"
+#~ " `-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"
+#~ "Los parámetros posicionales de $N+1 ... se renombran a $1 ... Si no se\n"
#~ " proporciona N, se asume que es 1."
#~ msgid ""
@@ -6167,7 +6319,7 @@ msgstr ""
#~ " 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"
+#~ "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."
@@ -6207,28 +6359,28 @@ msgstr ""
#~ "would\n"
#~ " be executed."
#~ msgstr ""
-#~ "Para cada NAME, se indica cómo se interpretaría se se usara como\n"
+#~ "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"
+#~ " 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"
+#~ " 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 "
+#~ " 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"
+#~ " 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"
+#~ " 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 "
+#~ " 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."
@@ -6244,16 +6396,16 @@ msgstr ""
#~ "string\n"
#~ " like that accepted by chmod(1)."
#~ msgstr ""
-#~ "La máscara de creación de ficheros se establece a MODE. Si se omite "
+#~ "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. "
+#~ " 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"
+#~ " 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 "
+#~ " 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)."
+#~ " de modo simbólico como la que acepta chmod(1)."
#~ msgid ""
#~ "Wait for the specified process and report its termination status. If\n"
@@ -6263,7 +6415,7 @@ msgstr ""
#~ 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"
+#~ " 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 ""
@@ -6272,7 +6424,7 @@ msgstr ""
#~ " 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"
+#~ " Se pasan a la función los argumentos en la línea de órdenes\n"
#~ " junto con NAME como $0 .. $n."
#~ msgid ""
@@ -6286,12 +6438,12 @@ msgstr ""
#~ " 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."
+#~ " 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"
@@ -6304,24 +6456,24 @@ msgstr ""
#~ " 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"
+#~ "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."
+#~ " 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> "
+#~ 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
+# ¿ 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
+# 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"
@@ -6329,13 +6481,13 @@ msgstr ""
#~ msgstr "Comunique esto a %s\n"
#~ msgid "Stopping myself..."
-#~ msgstr "Deteniéndome..."
+#~ msgstr "Deteniéndome..."
#~ msgid "Tell %s to fix this someday.\n"
-#~ msgstr "Decir a %s que arregle esto algún día.\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'"
+#~ msgstr "execute_command: tipo de orden erróneo `%d'"
#~ msgid "real\t"
#~ msgstr "real\t"
@@ -6359,26 +6511,26 @@ msgstr ""
#~ 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"
+#~ msgstr "%s: la redirección de salida está restringida"
#~ msgid "Out of memory!"
-#~ msgstr "¡Memoria agotada!"
+#~ msgstr "¡Memoria agotada!"
#~ msgid "You have already added item `%s'\n"
-#~ msgstr "Ya se había añadido el elemento `%s'\n"
+#~ msgstr "Ya se había añadido el elemento `%s'\n"
-# Han sido introducidos o quizá , Vd, introdujo em+
+# 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"
+#~ msgstr "Introdujo %d (%d) elementos. La distribución es:\n"
#~ msgid "%s: bg background job?"
-#~ msgstr "%s: ¿bg trabajo en background?"
+#~ 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"
+#~ "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."
@@ -6389,21 +6541,21 @@ msgstr ""
# algo por el estilo em+
#~ msgid "syntax error near unexpected token `%c'"
-#~ msgstr "error sintáctico cerca del elemento inesperado `%c'"
+#~ msgstr "error sintáctico cerca del elemento inesperado `%c'"
-# Por consistencia con mensajes anteriores, sería erróneo (el tipo). sv
+# 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"
+#~ msgstr "print_command: tipo de dato de orden `%d' erróneo"
#~ msgid "cprintf: bad `%%' argument (%c)"
-#~ msgstr "cprintf: argumento `%%' erróneo (%c)"
+#~ msgstr "cprintf: argumento `%%' erróneo (%c)"
#~ msgid "option `%s' requires an argument"
-#~ msgstr "la opción `%s' requiere un argumento"
+#~ msgstr "la opción `%s' requiere un argumento"
#~ msgid "%s: unrecognized option"
-#~ msgstr "%s: la opción no es reconocida"
+#~ msgstr "%s: la opción no es reconocida"
#~ msgid "`-c' requires an argument"
#~ msgstr "`-c' requiere un argumento"
@@ -6412,18 +6564,18 @@ msgstr ""
#~ msgstr "%s: no se pueden ejecutar directorios"
#~ msgid "Bad code in sig.c: sigprocmask"
-#~ msgstr "Código erróneo en 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"
+#~ msgstr "sustitución errónea: no hay `}' final en %s"
#~ msgid "%s: bad array subscript"
-#~ msgstr "%s: subíndice de matriz erróneo"
+#~ 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"
+#~ "no se pueden crear las tuberías (pipes) para la sustitución del proceso: "
+#~ "%s"
#~ msgid "reading"
#~ msgstr "leyendo"
@@ -6433,49 +6585,49 @@ msgstr ""
# del proceso em+
#~ msgid "process substitution"
-#~ msgstr "sustitución de proceso"
+#~ msgstr "sustitución de proceso"
#~ msgid "command substitution"
-#~ msgstr "sustitución de la orden"
+#~ 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"
+#~ "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"
+#~ 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"
+#~ msgstr "%s[%s: subíndice erróneo"
#~ msgid "[%s: bad subscript"
-#~ msgstr "[%s: subíndice erróneo"
+#~ msgstr "[%s: subíndice erróneo"
-# Yo pondría "hay dígitos en dos elementos diferentes de argv". sv
+# 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"
+#~ msgstr "hay dígitos en dos elementos diferentes de argv.\n"
#~ msgid "option %c\n"
-#~ msgstr "opción %c\n"
+#~ msgstr "opción %c\n"
#~ msgid "option a\n"
-#~ msgstr "opción a\n"
+#~ msgstr "opción a\n"
#~ msgid "option b\n"
-#~ msgstr "opción b\n"
+#~ msgstr "opción b\n"
#~ msgid "option c with value `%s'\n"
-#~ msgstr "opción c con el valor `%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"
+#~ 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: "
@@ -6496,22 +6648,22 @@ msgstr ""
#~ msgstr "%s encontrado antes de $END"
#~ msgid "%s already has a function (%s)"
-#~ msgstr "%s ya tiene una función (%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)"
+#~ msgstr "% ya tiene documentación corta (%s)"
-# Si traducimos con la gramática española, probablemente sería:
-# ...una definición %s". sv
+# 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"
+#~ msgstr "%s ya tiene una definición %s"
#~ msgid "mkbuiltins: Out of virtual memory!\n"
-#~ msgstr "mkbuiltins: ¡Memoria agotada!\n"
+#~ msgstr "mkbuiltins: ¡Memoria agotada!\n"
#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]"
#~ msgstr "read [-r] [-p prompt] [-a matriz] [-e] [nombre ...]"
@@ -6520,18 +6672,18 @@ msgstr ""
#~ msgstr ". fichero"
#~ msgid "%[DIGITS | WORD] [&]"
-#~ msgstr "%[DÍGITOS | PALABRAS] [&]"
+#~ 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"
+#~ 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."
+#~ 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
+# 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 ""
@@ -6544,13 +6696,13 @@ msgstr ""
# 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"
+#~ msgstr "la sustitución del alias cuando el alias se expande. Alias devuelve"
-# no alias -> ningún alias. sv
+# 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 "
+#~ "verdadero a menos que para un NOMBRE dado no se haya definido ningún "
#~ "alias."
#~ msgid "then remove all alias definitions."
@@ -6558,7 +6710,7 @@ msgstr ""
#~ 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"
+#~ "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 ""
@@ -6606,16 +6758,16 @@ msgstr ""
#~ msgstr " puede reusarse como entrada."
#~ msgid " -r keyseq Remove the binding for KEYSEQ."
-#~ msgstr " -r sec_teclas Borra la asignación para SEC_TECLAS"
+#~ 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."
+#~ 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 "
+#~ " -q nombre-función Pregunta sobre qué teclas invocan la función "
#~ "nombrada."
#~ msgid " -V List variable names and values"
@@ -6653,23 +6805,23 @@ msgstr ""
#~ 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."
+#~ 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"
+#~ 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"
+#~ "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."
+#~ 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"
+#~ 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 ""
@@ -6692,7 +6844,7 @@ msgstr ""
#~ 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"
+#~ "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 ""
@@ -6702,25 +6854,25 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ 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."
+#~ 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"
+#~ "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"
+#~ 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."
+#~ msgstr "hace que pwd siga los enlaces simbólicos."
#~ msgid ""
#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell"
@@ -6728,57 +6880,57 @@ msgstr ""
#~ 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',"
+#~ "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 "
+#~ "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
+# 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."
+#~ "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
+# "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."
+#~ "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."
+#~ 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"
+#~ 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."
+#~ 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)"
+#~ 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"
+#~ 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"
+#~ msgstr " -r\thacer los NOMBREs de sólo lectura"
#~ msgid " -x\tto make NAMEs export"
#~ msgstr " -x\thacer los NOMBREs exportables"
@@ -6787,7 +6939,7 @@ msgstr ""
#~ 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"
+#~ 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."
@@ -6796,10 +6948,10 @@ msgstr ""
#~ 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"
+#~ 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."
+#~ msgstr "solamente el nombre de la función."
# apaga -> desactiva em+
#~ msgid ""
@@ -6809,43 +6961,43 @@ msgstr ""
#~ 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'."
+#~ "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+
+# 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."
+#~ 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"
+#~ 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"
+#~ "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:"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ msgstr "\t\\E\tcarácter de escape"
#~ msgid "\t\\f\tform feed"
-#~ msgstr "\t\\f\talimentación de papel"
+#~ msgstr "\t\\f\talimentación de papel"
#~ msgid "\t\\n\tnew line"
-#~ msgstr "\t\\n\tnueva línea"
+#~ msgstr "\t\\n\tnueva línea"
#~ msgid "\t\\r\tcarriage return"
#~ msgstr "\t\\r\tretorno de carro"
@@ -6860,17 +7012,17 @@ msgstr ""
#~ 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)."
+#~ 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"
+#~ msgstr "Puede desactivar explícitamente la interpretación de los siguientes"
#~ msgid "with the -E option."
-#~ msgstr "caracteres con la opción -E ."
+#~ 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"
+#~ 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 ""
@@ -6884,77 +7036,77 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ 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."
+#~ 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"
+#~ 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 "
+#~ "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
+# 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"
+#~ "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"
+#~ 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"
+#~ 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."
+#~ 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."
+#~ "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
+# "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"
+#~ "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 "
+#~ "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"
+#~ 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"
+#~ "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"
+#~ 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,"
+#~ 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."
@@ -6963,7 +7115,7 @@ msgstr ""
#~ 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"
+#~ "primer carácter"
#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In"
#~ msgstr ""
@@ -6972,46 +7124,46 @@ msgstr ""
#~ 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"
+#~ "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."
+#~ 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"
+#~ 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,"
+#~ "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,"
+#~ 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"
+#~ 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."
+#~ 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"
+#~ "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."
+#~ "si se especifican más argumentos, se comparan en lugar de los primeros."
#~ msgid "Exec FILE, replacing this shell with the specified program."
#~ msgstr ""
@@ -7022,15 +7174,15 @@ 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"
+#~ 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"
+#~ "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'"
+#~ 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."
@@ -7042,18 +7194,18 @@ msgstr ""
#~ msgstr "entonces el shell termina, a menos que la variable"
#~ msgid "is set."
-#~ msgstr "\"no_exit_on_failed_exec\" esté activada."
+#~ msgstr "\"no_exit_on_failed_exec\" esté activada."
#~ msgid "is that of the last command executed."
-#~ msgstr "es el del último comando ejecutado."
+#~ 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"
+#~ "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"
+#~ msgstr "puede ser una cadena, que representa el comando más reciente que"
#~ msgid "string."
#~ msgstr "comience con dicha cadena."
@@ -7061,45 +7213,45 @@ msgstr ""
#~ 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"
+#~ " -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"
+#~ 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."
+#~ 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."
+#~ 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."
+#~ 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)."
+#~ " -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."
+#~ "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'"
+#~ "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"
+#~ "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 IDTRABAJO no se encuentra, se usa la noción del shell de trabajo"
+#~ "Si el IDTRABAJO no se encuentra, se usa la noción del shell de trabajo"
#~ msgid "used."
#~ msgstr "actual."
@@ -7109,7 +7261,7 @@ msgstr ""
#~ "Ubica al IDTRABAJO 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 IDTRABAJO no se encuentra, se usa la noción del shell"
+#~ msgstr "`&'. Si el IDTRABAJO no se encuentra, se usa la noción del shell"
#~ msgid "job is used."
#~ msgstr "de trabajo actual."
@@ -7118,37 +7270,37 @@ msgstr ""
#~ 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"
+#~ 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."
+#~ "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."
+#~ " 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."
+#~ " 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"
+#~ 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"
+#~ "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."
+#~ "ó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 "
+#~ "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"
@@ -7157,13 +7309,13 @@ msgstr ""
#~ 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 "
+#~ "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 "
+#~ "sea borrada eliminando todas las entradas. La opción `-w' escribe la "
#~ "historia"
#~ msgid ""
@@ -7175,14 +7327,14 @@ msgstr ""
#~ 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."
+#~ 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"
+#~ 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."
+#~ "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 ""
@@ -7195,17 +7347,17 @@ msgstr ""
#~ 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"
+#~ "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 "
+#~ "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 "
+#~ "una expansión de historia en cada ARGumento y muestra el resultado, sin "
#~ "guardar"
#~ msgid "anything in the history list."
@@ -7213,12 +7365,12 @@ msgstr ""
#~ 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"
+#~ "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 "
+#~ "de la información normal; la opción -p solamente muestra los id's de los "
#~ "procesos."
#~ msgid ""
@@ -7229,12 +7381,12 @@ msgstr ""
#~ 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 "
+#~ "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 "
+#~ "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"
@@ -7243,7 +7395,7 @@ msgstr ""
#~ 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 "
+#~ "trabajos activos. Si se especifica -x, la ORDEN se ejecuta después de "
#~ "que todas las especificaciones de trabajos"
#~ msgid ""
@@ -7251,14 +7403,14 @@ msgstr ""
#~ 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."
+#~ 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"
+#~ "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'"
@@ -7267,11 +7419,11 @@ msgstr ""
#~ 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"
+#~ "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 "
+#~ "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"
@@ -7280,55 +7432,55 @@ msgstr ""
#~ "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"
+#~ 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
+# "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"
+#~ "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"
+#~ "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
+# 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."
+#~ "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"
+#~ 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"
+#~ 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"
+#~ msgstr "\t*, /, %\t\tmultiplicación, división, residuo"
#~ msgid "\t+, -\t\taddition, subtraction"
-#~ msgstr "\t+, -\t\tadición, sustracción"
+#~ 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"
+#~ msgstr "\t<=, >=, <, >\tcomparación"
#~ msgid "\t==, !=\t\tequality, inequality"
#~ msgstr "\t==, !=\t\tequivalencia, inequivalencia"
@@ -7343,16 +7495,16 @@ msgstr ""
#~ msgstr "\t|\t\tOR de bits"
#~ msgid "\t&&\t\tlogical AND"
-#~ msgstr "\t&&\t\tAND lógico"
+#~ msgstr "\t&&\t\tAND lógico"
#~ msgid "\t||\t\tlogical OR"
-#~ msgstr "\t||\t\tOR lógico"
+#~ 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"
+#~ msgstr "\t\t\texpresión condicional"
#~ msgid "\t=, *=, /=, %=,"
#~ msgstr "\t=, *=, /=, %=,"
@@ -7367,39 +7519,39 @@ msgstr ""
#~ 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"
+#~ 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."
+#~ 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"
+#~ "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"
+#~ 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"
+#~ 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"
+#~ 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í"
+#~ "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 "
+#~ "con las palabras restantes asignadas al último NOMBRE. Solo los "
#~ "caracteres"
#~ msgid "found in $IFS are recognized as word delimiters. The return code is"
@@ -7409,50 +7561,50 @@ msgstr ""
#~ 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. "
+#~ "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 "
+#~ "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 "
+#~ "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',"
+#~ 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 "
+#~ "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 "
+#~ "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."
+#~ 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."
+#~ 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."
+#~ " -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."
+#~ msgstr " -b Notifica el término de trabajos inmediatamente."
#~ msgid " -e Exit immediately if a command exits with a non-zero status."
#~ msgstr ""
@@ -7461,11 +7613,11 @@ msgstr ""
#~ msgid " -f Disable file name generation (globbing)."
#~ msgstr ""
-#~ " -f Desactiva la generación de nombres de ficheros (englobamiento)."
+#~ " -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."
+#~ " -h Recuerda la ubicación de las órdenes como fueron localizadas."
#~ msgid ""
#~ " -i Force the shell to be an \"interactive\" one. Interactive shells"
@@ -7477,24 +7629,24 @@ msgstr ""
#~ 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 "
+#~ " -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."
+#~ " 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."
+#~ msgstr " -n Lee órdenes pero no las ejecuta."
#~ msgid " -o option-name"
-#~ msgstr " -o nombre-opción"
+#~ msgstr " -o nombre-opción"
#~ msgid " Set the variable corresponding to option-name:"
-#~ msgstr " Establece la variable correspondiente a nombre-opción:"
+#~ msgstr " Establece la variable correspondiente a nombre-opción:"
#~ msgid " allexport same as -a"
#~ msgstr " allexport igual que -a"
@@ -7504,7 +7656,7 @@ msgstr ""
#~ msgid " emacs use an emacs-style line editing interface"
#~ msgstr ""
-#~ " emacs usa una interfaz de edición de línea estilo emacs"
+#~ " emacs usa una interfaz de edición de línea estilo emacs"
#~ msgid " errexit same as -e"
#~ msgstr " errexit igual que -e"
@@ -7516,7 +7668,7 @@ msgstr ""
#~ 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"
+#~ msgstr " ignoreeof el shell no terminará después de leer EOF"
#~ msgid " interactive-comments"
#~ msgstr " interactive-comments"
@@ -7525,7 +7677,7 @@ msgstr ""
#~ " allow comments to appear in interactive commands"
#~ msgstr ""
#~ " permite que los comentarios se muestren en "
-#~ "órdenes interactivas"
+#~ "órdenes interactivas"
#~ msgid " keyword same as -k"
#~ msgstr " keyword igual que -k"
@@ -7557,15 +7709,15 @@ msgstr ""
#~ msgid ""
#~ " posix change the behavior of bash where the default"
#~ msgstr ""
-#~ " posix cambia la conducta de bash donde por omisión"
+#~ " 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ándar 1003.2 para"
+#~ " la operación difiere del estándar 1003.2 para"
#~ msgid " match the standard"
-#~ msgstr " cumplir el estándar"
+#~ msgstr " cumplir el estándar"
#~ msgid " privileged same as -p"
#~ msgstr " privileged igual que -p"
@@ -7575,7 +7727,7 @@ msgstr ""
#~ msgid " vi use a vi-style line editing interface"
#~ msgstr ""
-#~ " vi usa una interfaz de edición de línea estilo vi"
+#~ " vi usa una interfaz de edición de línea estilo vi"
#~ msgid " xtrace same as -x"
#~ msgstr " xtrace igual que -x"
@@ -7588,52 +7740,52 @@ msgstr ""
# 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 "
+#~ " 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"
+#~ 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."
+#~ 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."
+#~ "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."
+#~ 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."
+#~ 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"
+#~ 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"
+#~ " -H Activa el estilo ! de sustitución de la historia. Este indicador"
#~ msgid " by default."
-#~ msgstr " está activado por omisión."
+#~ 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 "
+#~ " -C Si está establecido, evita que los ficheros regulares existentes "
#~ "sean sobreescritos"
#~ msgid " by redirection of output."
-#~ msgstr " por una redirección de salida."
+#~ 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"
+#~ " -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."
@@ -7644,14 +7796,14 @@ msgstr ""
#~ 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 "
+#~ "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"
+#~ "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"
@@ -7662,14 +7814,14 @@ msgstr ""
#~ 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"
+#~ "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',"
+#~ 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"
+#~ "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 ""
@@ -7678,17 +7830,17 @@ msgstr ""
#~ 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"
+#~ "función. Algunas variables (como PATH e IFS) no se pueden borrar; vea"
#~ msgid "see readonly."
-#~ msgstr "también 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"
+#~ 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,"
+#~ "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 ""
@@ -7702,7 +7854,7 @@ msgstr ""
#~ 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"
+#~ "exportación"
#~ msgid "from subsequent NAMEs. An argument of `--' disables further option"
#~ msgstr ""
@@ -7714,7 +7866,7 @@ msgstr ""
#~ 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 "
+#~ "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,"
@@ -7724,7 +7876,7 @@ msgstr ""
#~ msgid "then functions corresponding to the NAMEs are so marked. If no"
#~ msgstr ""
-#~ "entonces también se marcan las funciones correspondientes a los NOMBREs. "
+#~ "entonces también se marcan las funciones correspondientes a los NOMBREs. "
#~ "Si no"
#~ msgid ""
@@ -7736,11 +7888,11 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ msgstr "de los NOMBREs subsecuentes. La opción `-a' trata cada NOMBRE como"
#~ msgid "an array variable. An argument of `--' disables further option"
#~ msgstr ""
@@ -7751,14 +7903,14 @@ msgstr ""
#~ 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"
+#~ 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"
+#~ 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"
@@ -7767,11 +7919,11 @@ msgstr ""
#~ 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"
+#~ 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. "
+#~ "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"
@@ -7780,7 +7932,7 @@ msgstr ""
#~ msgid "are string operators as well, and numeric comparison operators."
#~ msgstr ""
-#~ "Hay operadores de cadenas también, y operadores de comparación numérica."
+#~ "Hay operadores de cadenas también, y operadores de comparación numérica."
#~ msgid "File operators:"
#~ msgstr "Operadores de fichero:"
@@ -7808,11 +7960,11 @@ msgstr ""
#~ 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 "
+#~ " -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."
+#~ msgstr " -L FICHERO Verdadero si el fichero es un enlace simbólico."
#~ msgid " -k FILE True if file has its \"sticky\" bit set."
#~ msgstr ""
@@ -7820,19 +7972,19 @@ msgstr ""
#~ "activado."
#~ msgid " -p FILE True if file is a named pipe."
-#~ msgstr " -p FICHERO Verdadero si el fichero es una tubería nombrada."
+#~ 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."
+#~ 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."
+#~ msgstr " -t DF Verdadero si DF está abierto en una terminal."
#~ msgid " -u FILE True if the file is set-user-id."
#~ msgstr ""
@@ -7855,13 +8007,13 @@ msgstr ""
#~ 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"
+#~ " 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."
+#~ 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."
+#~ 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."
@@ -7870,13 +8022,13 @@ msgstr ""
#~ msgstr "Operadores de cadenas:"
#~ msgid " -z STRING True if string is empty."
-#~ msgstr " -z CADENA Verdadero si la cadena está vacía."
+#~ 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."
+#~ msgstr " CADENA Verdadero si la cadena no está vacía."
#~ msgid " STRING1 = STRING2"
#~ msgstr " CADENA1 = CADENA2"
@@ -7897,7 +8049,7 @@ msgstr ""
#~ " True if STRING1 sorts before STRING2 lexicographically"
#~ msgstr ""
#~ " Verdadero si la CADENA1 se ordena antes que la CADENA2 "
-#~ "lexicográficamente"
+#~ "lexicográficamente"
#~ msgid " STRING1 > STRING2"
#~ msgstr " CADENA1 > CADENA2"
@@ -7905,8 +8057,8 @@ msgstr ""
#~ msgid ""
#~ " True if STRING1 sorts after STRING2 lexicographically"
#~ msgstr ""
-#~ " Verdadero si la CADENA1 se ordena después que la "
-#~ "CADENA2 lexicográficamente"
+#~ " Verdadero si la CADENA1 se ordena después que la "
+#~ "CADENA2 lexicográficamente"
#~ msgid "Other operators:"
#~ msgstr "Otros operadores:"
@@ -7922,25 +8074,25 @@ 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,"
+#~ msgstr " arg1 OP arg2 Pruebas aritméticas. OP es uno de -eq, -ne,"
#~ msgid " -lt, -le, -gt, or -ge."
-#~ msgstr " -lt, -le, -gt, ó -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, "
+#~ "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"
+#~ 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"
+#~ msgstr "Es un sinónimo para la orden interna \"test\", pero el último"
#~ msgid "the shell."
#~ msgstr "ejecutados desde el shell."
@@ -7950,64 +8102,64 @@ msgstr ""
#~ 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"
+#~ "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."
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ "sólo se proporciona `-p', trap muestra la lista de órdenes asociadas"
#~ msgid ""
#~ "each signal number. SIGNAL_SPEC is either a signal name in <signal.h>"
#~ msgstr ""
-#~ "con cada número de señal. ID_SEÑAL es un nombre de señal en <signal.h>"
+#~ "con cada número de señal. ID_SEÑAL es un nombre de señal en <signal.h>"
#~ 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 "
+#~ "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"
+#~ "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"
+#~ 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"
+#~ 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"
+#~ "`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 "
+#~ "alias, palabra reservada del shell, función del shell, orden interna del "
#~ "shell, fichero del disco,"
#~ msgid "or unfound, respectively."
@@ -8018,7 +8170,7 @@ 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'."
+#~ 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 ""
@@ -8030,7 +8182,7 @@ 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."
+#~ 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,"
@@ -8047,50 +8199,50 @@ 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:"
+#~ 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'"
+#~ 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'"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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"
+#~ 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 "
+#~ "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."
@@ -8099,14 +8251,14 @@ msgstr ""
#~ 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 "
+#~ "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"
+#~ msgstr "incrementos de 512 bytes, y -u, que es un número no escalado de"
#~ msgid "processes."
#~ msgstr "procesos."
@@ -8114,29 +8266,29 @@ msgstr ""
#~ 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 "
+#~ "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"
+#~ "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 "
+#~ "`-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,"
+#~ "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)."
+#~ "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"
@@ -8148,20 +8300,20 @@ msgstr ""
#~ 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"
+#~ "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 "
+#~ "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."
+#~ 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 "
+#~ "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."
@@ -8169,7 +8321,7 @@ msgstr ""
#~ 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"
+#~ "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"
@@ -8184,25 +8336,25 @@ msgstr ""
#~ "elemento y"
#~ msgid "the COMMANDS are executed."
-#~ msgstr "se ejecutan las ÓRDENES."
+#~ 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ándar"
+#~ "conjunto de palabras expandidas se muestra en la salida de error estándar"
#~ 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 "
+#~ "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"
+#~ 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ándar. Si la línea consiste del número"
+#~ msgstr "la entrada estándar. Si la línea consiste del número"
#~ msgid "corresponding to one of the displayed words, then NAME is set"
#~ msgstr ""
@@ -8210,7 +8362,7 @@ msgstr ""
#~ "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"
+#~ 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 ""
@@ -8218,68 +8370,68 @@ msgstr ""
#~ "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"
+#~ 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"
+#~ "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."
+#~ msgstr "hasta que se ejecute una orden break ó return."
#~ msgid "`|' is used to separate multiple patterns."
-#~ msgstr "`|' se usa para separar plantillas múltiples."
+#~ 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"
+#~ "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"
+#~ "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 "
+#~ "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"
+#~ "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"
+#~ "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."
+#~ 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."
+#~ 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."
+#~ 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."
+#~ "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"
+#~ "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."
+#~ msgstr "función como $0 .. $n."
#~ msgid "entire set of commands."
-#~ msgstr "conjunto completo de órdenes"
+#~ msgstr "conjunto completo de órdenes"
#~ msgid "This is similar to the `fg' command. Resume a stopped or background"
#~ msgstr ""
@@ -8287,7 +8439,7 @@ msgstr ""
#~ 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 "
+#~ "background. Si especifica DÃGITOS, entonces se usa ese trabajo. Si "
#~ "proporciona"
#~ msgid ""
@@ -8297,11 +8449,11 @@ msgstr ""
#~ 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 "
+#~ "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."
+#~ 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"
@@ -8316,18 +8468,18 @@ msgstr ""
#~ "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."
+#~ "ó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 "
+#~ "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"
+#~ 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."
+#~ msgstr "\t\ten ejecución puede acceder."
#~ msgid "HOME The complete pathname to your login directory."
#~ msgstr ""
@@ -8336,27 +8488,27 @@ msgstr ""
#~ 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."
+#~ "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"
+#~ "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"
+#~ 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"
+#~ "\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"
+#~ "\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 "
+#~ "\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."
@@ -8373,7 +8525,7 @@ msgstr ""
#~ 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."
+#~ "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 ""
@@ -8381,7 +8533,7 @@ msgstr ""
#~ "buscar"
#~ msgid "\t\tlooking for commands."
-#~ msgstr "\t\tcuando se requieren órdenes."
+#~ 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"
@@ -8401,14 +8553,14 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ 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."
+#~ "\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"
@@ -8435,28 +8587,28 @@ msgstr ""
#~ 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"
+#~ " 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."
+#~ 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"
+#~ "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"
+#~ 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"
+#~ 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"
+#~ 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 `#'."
+#~ "\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 ""
@@ -8464,13 +8616,13 @@ msgstr ""
#~ "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"
+#~ 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"
+#~ 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 ""
@@ -8482,7 +8634,7 @@ msgstr ""
#~ "significa"
#~ msgid "\t\tall lines on the history list."
-#~ msgstr "\t\tguardar todas las líneas en la lista de la historia."
+#~ msgstr "\t\tguardar todas las líneas en la lista de la historia."
#~ msgid "Toggle the values of variables controlling optional behavior."
#~ msgstr ""
@@ -8490,25 +8642,25 @@ msgstr ""
#~ 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"
+#~ "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"
+#~ "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"
+#~ 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"
+#~ "-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"
+#~ "`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"
+#~ 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
index f020fcbe..da10b86f 100644
--- a/po/et.gmo
+++ b/po/et.gmo
Binary files differ
diff --git a/po/et.po b/po/et.po
index 7b2961ca..204a1696 100644
--- a/po/et.po
+++ b/po/et.po
@@ -6,97 +6,113 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 3.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2006-11-11 16:38+0200\n"
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
+"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "vigane massiivi indeks"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%s: vigane tegevuse nimi"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: mitte-numbrilisele indeksile ei saa omistada"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: ei saa luua: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: esimine mitte-tühemik sümbol pole `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "sulgev `%c' puudub %s sees"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: puudub eraldav koolon"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%s: vigane tegevuse nimi"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: ei saa lugeda: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "`%s': ei saa lahti siduda"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': tundmatu funktsiooni nimi"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s ei ole seotud ühegi klahviga.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s saab kasutada läbi "
@@ -109,7 +125,7 @@ msgstr ""
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
+#: builtins/caller.def:134
#, fuzzy
msgid ""
"Returns the context of the current subroutine call.\n"
@@ -117,11 +133,15 @@ msgid ""
" Without EXPR, returns "
msgstr "Tagastab jooksva alamprotseduuri konteksti."
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME pole seatud"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "liiga palju argumente"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD pole seatud"
@@ -130,7 +150,7 @@ msgstr "OLDPWD pole seatud"
msgid "line %d: "
msgstr ""
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "%s: hoiatus: "
@@ -140,11 +160,7 @@ msgstr "%s: hoiatus: "
msgid "%s: usage: "
msgstr "%s: hoiatus: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "liiga palju argumente"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: võti nõuab argumenti"
@@ -159,7 +175,7 @@ msgstr "%s: nõutakse numbrilist argumenti"
msgid "%s: not found"
msgstr "%s: ei leitud"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: vigane võti"
@@ -169,7 +185,7 @@ msgstr "%s: vigane võti"
msgid "%s: invalid option name"
msgstr "%s: vigane võtme nimi"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': ei ole lubatud identifikaator"
@@ -184,7 +200,7 @@ msgstr "vigane signaali number"
msgid "invalid hex number"
msgstr "vigane number"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "vigane number"
@@ -198,7 +214,7 @@ msgstr "%s: vigane signaali spetsifikatsioon"
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': ei ole pid ega korrektne töö spetsifikatsioon"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: mittemuudetav muutuja"
@@ -270,48 +286,58 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr "%s: segane töö"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: vigane tegevuse nimi"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "saab kasutada ainult funktsioonis"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "võtit `-f' ei saa funktsiooni loomiseks kasutada"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funktsioon ei ole muudetav"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: masiivi muutujaid ei saa nii kustutada"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -340,24 +366,23 @@ msgstr "%s: pole dünaamiliselt laetud"
msgid "%s: cannot delete: %s"
msgstr "%s: ei saa kustutada: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: on kataloog"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ei ole tavaline fail"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: fail on liiga suur"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: kahendfaili ei õnnestu käivitada"
@@ -390,11 +415,11 @@ msgstr "Teil on peatatud töid.\n"
msgid "no command found"
msgstr "käsku ei ole"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: ajutist faili ei saa avada: %s"
@@ -439,18 +464,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: ei saa avada: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -470,7 +495,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr ""
@@ -484,16 +509,16 @@ msgstr "%s: vigane teenus"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Tundmatu viga"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "oodati avaldist"
@@ -502,65 +527,70 @@ msgstr "oodati avaldist"
msgid "%s: not an indexed array"
msgstr "%s: pole massiiv"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%s: vigane võti"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%s: vigane võti"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: vigane tegevuse nimi"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: pole massiiv"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: vigane signaali spetsifikatsioon"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, fuzzy, c-format
msgid "warning: %s: %s"
msgstr "%s: hoiatus: "
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -569,19 +599,24 @@ msgstr ""
msgid "no other directory"
msgstr "teist kataloogi pole"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: vigane number"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<jooksev kataloog puudub>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr ""
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -605,7 +640,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -630,7 +665,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -651,40 +686,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "viga lugemisel: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: ei saa eemaldada"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: ei saa eemaldada: %s on ainult lugemiseks"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: pole massiiv"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ei ole funktsioon"
@@ -693,11 +728,11 @@ msgstr "%s: ei ole funktsioon"
msgid "shift count"
msgstr "shift arv"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -739,7 +774,7 @@ msgstr "%s: on funktsioon\n"
msgid "%s is a shell builtin\n"
msgstr "%s on shelli sisekäsk\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s on %s\n"
@@ -749,45 +784,45 @@ msgstr "%s on %s\n"
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': halb käsklus"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: ei õnnestu lugeda piirangut: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr ""
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: ei õnnestu muuta piirangut: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "kaheksandnumber"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -801,299 +836,314 @@ msgstr "viimane käsklus: %s\n"
msgid "Aborting..."
msgstr "Katkestan..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "tundmatu viga käsus"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr ""
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr ""
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr ""
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: sidumata muutuja"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr ""
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "kirjutamise viga: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: piiratud: käskudes ei saa kasutada sümboleid `/'"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: käsku ei ole"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "%s on %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: halb interpretaator"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kahendfaili ei õnnestu käivitada"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s on shelli sisekäsk\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr ""
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "avaldise rekursioon on liiga sügav"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr ""
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "süntaksi viga avaldises"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "üritati omistada mitte-muutujale"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "nulliga jagamine"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr ""
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr ""
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "eksponent on väiksem kui 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "puudub `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "süntaksi viga: oodati operandi"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "süntaksi viga: vigane aritmeetiline operaator"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "vigane aritmeetiline baas"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "väärtus on baasiks liiga suur"
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "%s: oodati täisarvude avaldist"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: vanemkataloogidele ei ole juurdepääsu"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr ""
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: pid puudub"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr ""
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr ""
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr ""
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr ""
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr ""
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr ""
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr ""
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr ""
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr ""
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr ""
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr ""
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: töö %d on peatatud"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: töö on lõpetatud"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: töö %d on juba taustal"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "%s: hoiatus: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr ""
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr ""
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr ""
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr ""
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr ""
@@ -1114,54 +1164,54 @@ msgstr ""
msgid "unknown"
msgstr "%s: tundmatu masin"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "vigane baas"
@@ -1184,35 +1234,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr ""
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Teil on kiri kaustas $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Teil on uus kiri kaustas $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Kiri kaustas %s on loetud\n"
@@ -1230,118 +1280,118 @@ msgstr "süntaksi viga: ootamatu `;'"
msgid "syntax error: `((%s))'"
msgstr "süntaksi viga: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr ""
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr ""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "süntaksi viga tingimuslikus avaldises"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "ootamatu märk `%s', oodati `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "oodati `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr ""
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr ""
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr ""
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr ""
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "süntaksi viga kohal `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "süntaksi viga: ootamatu faililõpp"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "süntaksi viga"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Käsuinterpretaatorist väljumiseks kasutage \"%s\".\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1351,90 +1401,90 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr ""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "faili deskriptor on piiridest väljas"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: segane ümbersuunamine"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: fail on olemas, ei kirjuta üle"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: piiratud: väljundit ei saa ümber suunata"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "$%s: sedasi ei saa omistada"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "viga ümbersuunamisel: fd duplikaadi loomine ei õnnestu"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "/tmp puudub, palun looge see!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp peab olema kataloogi nimi"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: vigane võti"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Mul ei ole nime!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr ""
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1443,39 +1493,40 @@ msgstr ""
"Kasuta:\t%s [GNU pikk võti] [võti] ...\n"
"\t%s [GNU pikk võti] [võti] skript-fail ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU pikad võtmed:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Käsuinterpretaatori võtmed:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s või -o võti\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Vigadest teatamiseks kasutage käsku `bashbug'.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: vigane operatsioon"
@@ -1651,233 +1702,244 @@ msgstr ""
msgid "Unknown Signal #%d"
msgstr ""
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr ""
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr ""
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr ""
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr ""
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr ""
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr ""
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr ""
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parameeter on null või pole seatud"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr ""
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: halb asendus"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: sedasi ei saa omistada"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "sulgev `%c' puudub %s sees"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "ei leitud: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "oodati argumenti"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: oodati täisarvude avaldist"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "oodati `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "oodati `)', saadi %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: eeldati unaarset operaatorit"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: eeldati binaarset operaatorit"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "puudub `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "vigane signaali number"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: vigane signaal %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr ""
-#: variables.c:755
+#: variables.c:780
#, 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:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: praegune skoop pole funktsiooni kontekst"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "$%s: sedasi ei saa omistada"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: praegune skoop pole funktsiooni kontekst"
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: parameeter on null või pole seatud"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: pole global_variables kontekst"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: ei saa avada: %s"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s on piiridest väljas"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Autoriõigus © 2006 Free Software Foundation, Inc.\n"
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr ""
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr "Autoriõigus © 2006 Free Software Foundation, Inc.\n"
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-
#: xmalloc.c:91
#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
@@ -1908,7 +1970,7 @@ msgstr ""
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1929,7 +1991,7 @@ msgid "caller [expr]"
msgstr ""
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr ""
#: builtins.c:66
@@ -1953,7 +2015,7 @@ msgid "command [-pVv] command [arg ...]"
msgstr ""
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr ""
#: builtins.c:78
@@ -2055,7 +2117,7 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr ""
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr ""
#: builtins.c:144
@@ -2105,7 +2167,7 @@ msgid "type [-afptP] name [name ...]"
msgstr ""
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr ""
#: builtins.c:172
@@ -2113,11 +2175,11 @@ msgid "umask [-p] [-S] [mode]"
msgstr ""
#: builtins.c:175
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr ""
#: builtins.c:179
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr ""
#: builtins.c:182
@@ -2297,12 +2359,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2313,7 +2377,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2324,7 +2388,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2338,7 +2402,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2354,7 +2418,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2377,13 +2441,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2391,7 +2463,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2407,7 +2479,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2417,7 +2489,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2425,7 +2497,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2433,7 +2505,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2452,7 +2524,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2472,6 +2544,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2487,17 +2560,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2508,15 +2582,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2528,6 +2604,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2543,7 +2620,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2556,7 +2633,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2583,7 +2660,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2595,7 +2672,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2636,7 +2713,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2659,7 +2736,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2667,7 +2744,7 @@ msgid ""
" is that of the last command executed."
msgstr ""
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2676,7 +2753,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2706,7 +2783,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2718,7 +2795,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2732,7 +2809,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2743,7 +2820,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2756,7 +2833,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2778,7 +2855,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2812,7 +2889,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2821,7 +2898,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2836,7 +2913,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2853,7 +2930,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2875,7 +2952,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -2920,7 +2997,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -2955,20 +3032,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -2980,7 +3060,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3046,7 +3126,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3065,7 +3145,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3074,6 +3154,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3085,7 +3167,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3104,7 +3186,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3116,7 +3198,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3124,7 +3208,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3135,7 +3219,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3149,7 +3233,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3163,7 +3247,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3228,6 +3312,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3244,7 +3330,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3252,7 +3338,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3264,7 +3350,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3308,7 +3394,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3338,7 +3424,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3367,6 +3453,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3382,7 +3471,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3400,38 +3489,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3444,7 +3537,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3461,7 +3554,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3481,7 +3574,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3497,7 +3590,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3508,7 +3601,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3529,7 +3622,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3540,7 +3633,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3551,7 +3644,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3564,7 +3657,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3578,7 +3671,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3589,7 +3682,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3603,7 +3696,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3614,7 +3707,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3642,7 +3735,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3696,7 +3789,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3727,7 +3820,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3754,7 +3847,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3783,7 +3876,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3804,7 +3897,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3821,9 +3914,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3831,13 +3924,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3864,7 +3963,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -3877,7 +3976,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -3908,7 +4007,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -3949,18 +4048,19 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+#, fuzzy
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Autoriõigus © 2006 Free Software Foundation, Inc.\n"
+
#~ msgid " "
#~ msgstr " "
-#~ msgid "%s: invalid number"
-#~ msgstr "%s: vigane number"
-
#~ msgid "freed"
#~ msgstr "vabastatud"
diff --git a/po/fi.gmo b/po/fi.gmo
index 3d35b85f..4390eac1 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index b6e67a7c..81599a2b 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -9,101 +9,117 @@ msgid ""
msgstr ""
"Project-Id-Version: bash-4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2009-05-09 15:13+0300\n"
"Last-Translator: Pekka Niemi <pekka.niemi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\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"
"X-Generator: Lokalize 0.3\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "virheellinen taulukkoindeksi"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: indeksoitua taulukkoa ei voi muuttaa assosiatiiviseksi"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: virheellinen assosiatiivinen indeksi"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: ei voida sijoittaa epänumeeriseen indeksiin"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
"%s: %s: assosiatiiviseen taulukkoon sijoitettaessa täytyy käyttää "
"avainindeksiä"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: ei voida luoda: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: komennolle ei löydy näppäinkarttaa"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: ensimmäinen ei-tyhjä merkki ei ole â€\"â€"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "ei loppumerkkiä â€%c†rivissä %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: puuttuva kaksoispiste-erotin"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "â€%sâ€: virheellinen näppäinkartan nimi"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "rivieditointi ei ole käytössä"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "â€%sâ€: virheellinen näppäinkartan nimi"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: ei voida lukea: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "â€%sâ€: ei voida irrottaa"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "â€%sâ€: tuntematon funktio"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s ei ole sidottu mihinkään näppäimeen.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s voidaan käynnistää näppäinkomennolla "
@@ -116,7 +132,7 @@ msgstr "toistolaskuri"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "voidaan käyttää vain â€forâ€-, â€whileâ€- tai â€untilâ€-silmukoissa"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -126,11 +142,15 @@ msgstr ""
" \n"
" Ilman LAUSEKETTA palauttaa"
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME-ympäristömuuttujaa ei ole asetettu"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "liian monta argumenttia"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD-ympäristömuuttujaa ei ole asetettu"
@@ -139,7 +159,7 @@ msgstr "OLDPWD-ympäristömuuttujaa ei ole asetettu"
msgid "line %d: "
msgstr "rivi %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "varoitus: "
@@ -149,11 +169,7 @@ msgstr "varoitus: "
msgid "%s: usage: "
msgstr "%s: käyttö: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "liian monta argumenttia"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: valitsin vaatii argumentin"
@@ -168,7 +184,7 @@ msgstr "%s: vaaditaan numeerinen argumentti"
msgid "%s: not found"
msgstr "%s: ei löytynyt"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: virheellinen valitsin"
@@ -178,7 +194,7 @@ msgstr "%s: virheellinen valitsin"
msgid "%s: invalid option name"
msgstr "%s: virheellinen valitsimen nimi"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "â€%sâ€: virheellinen tunniste"
@@ -191,7 +207,7 @@ msgstr "virheellinen oktaaliluku"
msgid "invalid hex number"
msgstr "virheellinen heksadesimaaliluku"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "virheellinen luku"
@@ -205,7 +221,7 @@ msgstr "%s: virheellinen signaalimääritys"
msgid "`%s': not a pid or valid job spec"
msgstr "â€%sâ€: ei ole prosessitunnus eikä kelvollinen työtunniste"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: kirjoitussuojattu muuttuja"
@@ -277,48 +293,58 @@ msgstr "%s: nykyhakemistoa luettaessa tapahtui virhe: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: ei ole yksiselitteinen työtunniste"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: virheellinen toiminnon nimi"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: ei lavennusmääritystä"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "varoitus: -F -valitsin ei ehkä toimi odotetusti"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "varoitus: -C -valitsin ei ehkä toimi odotetusti"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "tällä hetkellä komennon lavennusfunktiota ei suoriteta"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "voidaan käyttää ainoastaan funktiossa"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "â€-fâ€:ää ei voida käyttää funktioiden luomiseen"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: kirjoitussuojattu funktio"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: taulukkomuuttujia ei voi tuhota näin"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: assosiatiivista taulukkoa ei voi muuttaa indeksoiduksi"
@@ -347,24 +373,23 @@ msgstr "%s: ei dynaamisesti ladattu"
msgid "%s: cannot delete: %s"
msgstr "%s: ei voida poistaa: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: on hakemisto"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ei tavallinen tiedosto"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: tiedosto on liian iso"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: binääritiedostoa ei voida suorittaa"
@@ -397,11 +422,11 @@ msgstr "Töitä on ajossa.\n"
msgid "no command found"
msgstr "ei löytynyt komentoa"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "komentohistoriamääritys"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: väliaikaistiedostoa ei voitu avata: %s"
@@ -446,7 +471,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Sopivat komennot avainsanaan `"
msgstr[1] "Sopivat komennot avainsanoihin `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -454,12 +479,12 @@ msgstr ""
"Ohjeita kohteelle â€%s†ei löydy. Kokeile â€help helpâ€, â€man -k %s†tai \n"
"â€info %sâ€."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: ei voida avata: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -488,7 +513,7 @@ msgstr "valitsimista -anrw voidaan käyttää vain yhtä"
msgid "history position"
msgstr "sijainti komentohistoriassa"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: historiaviittaus epäonnistui"
@@ -502,16 +527,16 @@ msgstr "%s: inlib epäonnistui"
msgid "no other options allowed with `-x'"
msgstr "â€-xâ€:n kanssa ei voida käyttää muita valitsimia"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argumenttien pitää olla prosessi- tai työtunnisteita"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Tuntematon virhe"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "odotettiin lauseketta"
@@ -520,64 +545,69 @@ msgstr "odotettiin lauseketta"
msgid "%s: not an indexed array"
msgstr "%s: ei ole taulukkomuuttuja"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: virheellinen tiedostokahvamääritys"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: virheellinen tiedostokahva: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: virheellinen rivimäärä"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: virheellinen taulukkoindeksi"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: virheellinen paluukutsumäärä"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "tyhjä taulukkomuuttujan nimi"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "vaaditaan tukea taulukkomuuttujille"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "â€%sâ€: puuttuva muotoilumerkki"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: virheellinen aikakatkaisumääritys"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "â€%câ€: virheellinen muotoilumerkki"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "varoitus: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "\\x:stä puuttuu heksadesimaalinumero"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, fuzzy, c-format
msgid "missing unicode digit for \\%c"
msgstr "\\x:stä puuttuu heksadesimaalinumero"
@@ -586,19 +616,24 @@ msgstr "\\x:stä puuttuu heksadesimaalinumero"
msgid "no other directory"
msgstr "ei toista hakemistoa"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: virheellinen rajoitusargumentti"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<ei nykyhakemistoa>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "hakemistopino on tyhjä"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "hakemistopinon indeksi"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -640,7 +675,7 @@ msgstr ""
" -N\tNäyttää listan N:nnen alkion (laskien oikealta dirs-komennon\n"
" \tantamasta listasta). Valitsimetta kutsuttaessa aloitetaan nollasta."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -682,7 +717,7 @@ msgstr ""
" \n"
" Sisäänrakennettu â€dirsâ€-komento näyttää hakemistopinon."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -720,40 +755,40 @@ msgstr ""
" \n"
" Sisäänrakennettu â€dirsâ€-komento näyttää hakemistopinon sisällön."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: virheellinen aikakatkaisumääritys"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "lukuvirhe: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "â€return†on käytettävissä vain funktiossa tai ladatussa skriptissä"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "funktiota ja muuttujaa ei voi poistaa yhtä aikaa"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: ei voida poistaa"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: ei voida poistaa: kirjoitussuojattu %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: ei ole taulukkomuuttuja"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ei ole funktio"
@@ -762,13 +797,13 @@ msgstr "%s: ei ole funktio"
msgid "shift count"
msgstr "siirtolaskuri"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
"komentotulkin valitsimia ei voida laittaa päällä ja ottaa pois päältä "
"samanaikaisesti"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: virheellinen komentotulkin valitsimen nimi"
@@ -810,7 +845,7 @@ msgstr "%s on funktio\n"
msgid "%s is a shell builtin\n"
msgstr "%s on komentotulkin sisäänrakennettu komento\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s on %s\n"
@@ -820,45 +855,45 @@ msgstr "%s on %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s on hajautettu (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: virheellinen rajoitusargumentti"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "â€%câ€: virheellinen komento"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: rajoitusta ei saada: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "rajoitus"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: rajoitusta ei voida muokata: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "oktaaliluku"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "â€%câ€: virheellinen symbolisen tilan operaattori"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "â€%câ€: virheellinen symbolisen tilan merkki"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " rivi "
@@ -872,298 +907,313 @@ msgstr "viimeinen komento: %s\n"
msgid "Aborting..."
msgstr "Keskeytetään..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "tuntematon komentovirhe"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "virheellinen komentotyyppi"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "virheellinen liittäjä"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "virheellinen hyppy"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: sitomaton muuttuja"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aaikakatkaisu: automaattinen uloskirjautuminen\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "syötettä ei voida lukea tiedostosta /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "AJAN MUOTOMÄÄRITYS: â€%câ€: virheellinen muotoilumerkki"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "putkitusvirhe"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: rajoitettu: komentojen nimissä ei voi käyttää â€/â€-merkkiä"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: komentoa ei löydy"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "%s on %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: virheellinen tulkki"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: binääritiedostoa ei voida suorittaa"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s on komentotulkin sisäänrakennettu komento\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "tiedostokahvaa %d ei voida kopioida kahvaksi %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "lausekkeen rekursiomäärä ylittyi"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "rekursiopinon alivuoto"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "lauseoppivirhe lausekkeessa"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "yritettiin sijoittaa objektiin, joka ei ole muuttuja"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "jako nollalla"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bugi: virheellinen sijoitusavainsana"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "â€:â€:ttä odotettiin ehdolliseen lausekkeeseen"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "eksponentti on pienempi kuin 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "odotettiin muuttujaa ++:n tai --:n jälkeen"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "puuttuva â€)â€"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "lauseoppivirhe: odotettiin operandia"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "lauseoppivirhe: virheellinen aritmetiikkaoperaattori"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (virheellinen avainsana on â€%sâ€)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "virheellinen lukujärjestelmä"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "liian iso luku lukujärjestelmälle"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: virhe lausekkeessa\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: ylempiin hakemistoihin ei päästä"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "nodelay-tilaa ei voida asettaa tiedostokahvalle %d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr "bashin syötteeksi ei voida avata uutta tiedostokahvaa kahvasta %d"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: uudella tiedostokahvalla %d on jo puskuri"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp-putki"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "haarautettu prosessi-id %d on ajossa olevalla työllä %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "poistetaan pysäytetty työ %d prosessiryhmästä %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: prosessi %5ld (%s) putkijonossa"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: prosessi %5ld (%s) on merkattu vielä toimivaksi"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: prosessitunnusta ei löydy."
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signaali %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Valmis"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Pysäytetty"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Pysäytetty(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Ajossa"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Valmis(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Poistui %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Tuntematon tila"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(luotiin core-tiedosto)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (työhakemisto: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "lapsiprosessin setpgid (%ld => %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: prosessi %ld ei ole tämän komentotulkin lapsiprosessi"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Prosessista %ld ei ole tietoja"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: työ %d on pysäytetty"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: työ on lopetettu"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: työ %d on jo taustalla"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: rivi %d:"
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (luotiin core-tiedosto)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(työhakemisto nyt: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp epäonnistui"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: vuonhallinta"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "päätteen prosessiryhmää ei voitu asettaa (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "tällä komentotulkilla ei ole työnohjausta"
@@ -1185,54 +1235,54 @@ msgstr ""
msgid "unknown"
msgstr "tuntematon"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: vapaitten listan lohko ylikirjoittui"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: kutsuttiin argumenttina jo vapautettu lohko"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: kutsuttuun argumenttina varaamaton lohko"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: havaittiin alivuoto; mh_nbytes rajojen ulkopuolella"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: alku- ja loppulohkojen koot eroavat"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: kutsuargumentti on varaamaton lohko"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: havaittiin alivuoto; mh_nbytes rajojen ulkopuolella"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: alku- ja loppulohkojen koot eroavat"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr "register_alloc: varaustaulukko on täynnä FIND_ALLOCeja?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "register_alloc: %p on merkitty taulukossa jo varatuksi?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p on jo taulukossa vapaana?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "virheellinen lukujärjestelmä"
@@ -1255,35 +1305,35 @@ msgstr "%s: virheellinen verkkopolkumääritys"
msgid "network operations not supported"
msgstr "verkko-operaatioita ei ole tuettu"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: %s:%d: ei voida varata %lu tavua"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: %s:%d: ei voida varata %lu tavua"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Sinulle on postia laatikossa $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Sinulla on uutta postia laatikossa $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Posti laatikossa %s on luettu\n"
@@ -1301,120 +1351,120 @@ msgstr "lauseoppivirhe: odottamaton â€;â€"
msgid "syntax error: `((%s))'"
msgstr "lauseoppivirhe: â€((%s))â€"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: virheellinen käskytyyppi %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
"here-dokumentti rivillä %d päättyi tiedoston loppumiseen (haluttiin â€%sâ€)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: uudelleenohjaus â€%d†rajojen ulkopuolella"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "odottamaton EOF (tiedostonloppu) odotettaessa sulkevaa â€%câ€"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "odottamaton EOF odotettaessa â€]]â€"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "lauseoppivirhe ehdollisessa lausekkeessa: odottamaton avainsana â€%sâ€"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "lauseoppivirhe ehdollisessa lausekkeessa"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "odottamaton avainsana â€%sâ€, odotettiin â€)â€"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "odototettiin â€)â€"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "odottamaton argumentti â€%s†ehdolliselle unaariselle operaattorille"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "odottamaton argumentti ehdolliselle unaariselle operaattorille"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
"odottamaton avainsana â€%sâ€, odotettiin ehdollista binääristä operaattoria"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "odotettiin ehdollista binääristä operaattoria"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "odottamaton argumentti â€%s†ehdolliselle binääriselle operaattorille"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "odottamaton argumentti ehdolliselle binääriselle operaattorille"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "odottamaton avainsana â€%c†ehdollisessa komennossa"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "odottamaton avainsana â€%s†ehdollisessa komennossa"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "odottamaton avainsana %d ehdollisessa komennossa"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "lauseoppivirhe lähellä odottamatonta avainsanaa â€%sâ€"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "lauseoppivirhe lähellä â€%sâ€"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "lauseoppivirhe: odottamaton tiedostonloppu"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "lauseoppivirhe"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Kirjoita â€%s†poistuaksesi komentotulkista.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "Odottamaton EOF odotettaessa vastaavaa â€)â€"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "täydennys: funktiota â€%s†ei löytynyt"
@@ -1424,90 +1474,90 @@ msgstr "täydennys: funktiota â€%s†ei löytynyt"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: tyhjä COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: virheellinen yhdistin â€%dâ€"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, fuzzy, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "%d: virheellinen tiedostokahva: %s"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: â€%câ€: virheellinen muotoilumerkki"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "tiedostokahva rajojen ulkopuolella"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: epämääräinen uudelleenohjaus"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: olemassa olevan tiedoston päälle ei voida kirjoittaa"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: rajoitettu: tulostusta ei voida uudelleenohjata"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "here-dokumentille ei voida luoda väliaikaistiedostoa: %s"
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: listaa ei voida sijoittaa taulukon alkioon"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port-muotoa ei tueta ilman tietoliikennettä"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "virhe uudelleenohjauksessa: tiedostokahvaa ei voida kopioida"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "/tmp-hakemistoa ei löytynyt, luo se!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp:n pitää olla kelvollinen hakemiston nimi"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: virheellinen valitsin"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Minulla ei ole nimeä!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, versio %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1516,44 +1566,45 @@ msgstr ""
"Käyttö:\t%s[GNU:n pitkä valitsin] [valitsin] ...\n"
"\t%s [GNU:n pitkä valitsin] [valitsin] komentotiedosto ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU:n pitkät valitsimet:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Komentotulkin valitsimet:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr ""
"\t-irsD tai -c komento tai -O shopt_option (ainoastaan käynnistettäessä)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s tai -o -valitsin\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"Kirjoita â€%s -c 'help set'†saadaksesi lisätietoja komentotulkin "
"valitsimista.\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
"Kirjoita â€%s -c help†saadaksesi lisätietoja komentotulkin "
"sisäänrakennetuista komennoista.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Raportoi virheet komennolla â€bashbugâ€.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: virheellinen operaatio"
@@ -1727,129 +1778,134 @@ msgstr "Tuntematon signaali #"
msgid "Unknown Signal #%d"
msgstr "Tuntematon signaali #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "virheellinen korvaus: ei sulkevaa â€%s†jonossa %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: listaa ei voida sijoittaa taulukon alkioon"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "putkea ei voida luoda prosessin korvaamista varten"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "lapsiprosessia ei voida luoda prosessin korvaamista varten"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "nimettyä putkea %s ei voida avata lukemista varten"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "nimettyä putkea %s ei voida avata kirjoitusta varten"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "nimettyä putkea %s ei voida kopioida tiedostokahvaksi %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "putkea ei voida luoda komennon korvaamista varten"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "ei voida luoda lapsiprosessia komennon korvaamista varten"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: putkea ei voida kopioida tiedostokahvaksi 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%d: virheellinen tiedostokahva: %s"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametria ei ole tai sitä ei ole asetettu"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: alimerkkijonolauseke < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: virheellinen korvaus"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: ei voida asettaa näin"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "virheellinen korvaus: ei sulkevaa â€`†jonossa %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "ei osumia: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "odotettiin argumenttia"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: odotettiin kokonaislukuilmaisua"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "odotettiin â€)â€"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "odotettiin â€)â€, löydettiin %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: odotettiin unaarista operaattoria"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: odotettiin binääristä operaattoria"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "puuttuva â€]â€"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "virheellinen signaalinumero"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: virheellinen arvo trap_list[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1857,74 +1913,89 @@ msgstr ""
"run_pending_traps: signaalikäsittelijä on SIG_DFL, lähetän %d (%s) uudelleen "
"itselleni"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: virheellinen signaali %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "virhe tuotaessa â€%sâ€:n funktiomääritystä"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "komentotulkkitaso (%d) liian korkea, palautetaan 1:ksi"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%d: virheellinen tiedostokahva: %s"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: ei funktiokontekstia nykytilassa"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: listaa ei voida sijoittaa taulukon alkioon"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: ei funktiokontekstia nykytilassa"
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: parametria ei ole tai sitä ei ole asetettu"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "virheellinen merkki %d %s:n exportstr:ssä"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "ei =:ä kohteen %s exportstr:ssä"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr "pop_var_context: shell_variablesin alku ei ole funktiokonteksti"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: ei global_variables-kontekstia"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
"pop_scope: shell_variablesin alku ei väliaikaisten ympäristömuuttujien "
"ympäristössä"
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: ei voida avata: %s"
-#: variables.c:4791
+#: variables.c:5262
#, fuzzy, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%d: virheellinen tiedostokahva: %s"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s rajojen ulkopuolella"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Copyright © 2009 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1932,35 +2003,26 @@ msgstr ""
"Lisenssi GPLv3+: GNU GPL versio 3 tai uudempi <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, versio %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr "Tämä on vapaa ohjelma; saat muutella ja levittää sitä vapaasti.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "Takuuta ei ole lain määräämissä rajoissa.\n"
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr "Copyright © 2009 Free Software Foundation, Inc."
-#: version2.c:87
-#, fuzzy, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Lisenssi GPLv3+: GNU GPL versio 3 tai uudempi <http://gnu.org/licenses/gpl."
-"html>\n"
-
#: xmalloc.c:91
#, fuzzy, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
@@ -1990,8 +2052,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] nimi [nimi ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
"bind [-lpvsPVS] [-m näppäinkartta] [-f tiedostonimi] [-q nimi] [-u nimi] [-r "
@@ -2016,7 +2079,7 @@ msgstr "caller [expr]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|-P] [dir]"
#: builtins.c:66
@@ -2041,7 +2104,7 @@ msgstr "command [-pVv] komento [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFilrtux] [-p] [niemi[=arvo] ...]"
#: builtins.c:78
@@ -2154,7 +2217,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o valitsinnimi] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nimi ...]"
#: builtins.c:144
@@ -2203,7 +2267,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] nimi [nimi ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [raja]"
#: builtins.c:172
@@ -2211,12 +2276,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [tila]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2398,6 +2465,7 @@ msgstr ""
" ei ole."
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2431,6 +2499,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2473,7 +2543,7 @@ msgstr ""
"tapahtuu \n"
" virhe."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2491,7 +2561,7 @@ msgstr ""
" Paluuarvo:\n"
" Paluuarvo on 0 jollei N ole suurempi tai yhtäsuuri kuin 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2509,7 +2579,7 @@ msgstr ""
" Paluuarvo:\n"
" Paluuarvo on 0 ellei N ole suurempi tai yhtäsuuri kuin 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2532,7 +2602,7 @@ msgstr ""
" Palauttaa KOMENNON paluuarvon, tai epätoden jos KOMENTO ei ole\n"
" sisäänrakennettu komento."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2561,7 +2631,7 @@ msgstr ""
" Palauttaa 0 ellei komentotulkki ole funktion ulkopuolella tai parametri\n"
" on virheellinen."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2585,13 +2655,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2625,7 +2703,7 @@ msgstr ""
" Palauttaa 0, jos hakemistoa vaihdettiin, nollasta poikkeavan muussa \n"
" tapauksessa."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2653,7 +2731,7 @@ msgstr ""
" Palauttaa 0 ellei ole annettu virheellistä valitsinta tai nykyistä \n"
" hakemistoa ei voida lukea."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2669,7 +2747,7 @@ msgstr ""
" Paluuarvo:\n"
" Onnistuu aina."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2681,7 +2759,7 @@ msgstr ""
" Paluuarvo:\n"
" Onnistuu aina."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2693,7 +2771,7 @@ msgstr ""
" Paluuarvo:\n"
" Epäonnistuu aina."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2728,7 +2806,7 @@ msgstr ""
" Palauttaa KOMENNON paluuarvon, tai epäonnistumisen jos KOMENTOA ei \n"
" löytynyt."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2749,6 +2827,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2764,7 +2843,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Asettaa muuttujien arvot ja attribuutit.\n"
" \n"
@@ -2802,7 +2882,7 @@ msgstr ""
"tule \n"
" virhetilannetta."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2812,7 +2892,8 @@ msgstr ""
" \n"
" Vanhentunut. Katso â€help declareâ€."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2823,8 +2904,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Määrittele paikallisia muuttujia.\n"
" \n"
@@ -2839,11 +2920,14 @@ msgstr ""
" Palauttaa onnistuneen, ellei ole annettu virheellistä valitsinta,\n"
" tapahtuu virhe tai komentotulkki ei ole suorittamassa funktiota."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2855,6 +2939,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2898,7 +2983,7 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa onnistuneen ellei tapahdu virhettä."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2920,7 +3005,7 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa onnistuneen ellei tapahdu virhettä."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2974,7 +3059,7 @@ msgstr ""
"sisäänrakennettu\n"
" komento tai tapahtuu virhe."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2993,7 +3078,7 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa komennon paluuarvon tai onnistuneen jos komento on tyhjä."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3073,7 +3158,7 @@ msgstr ""
"valitsimet\n"
" loppuvat tai tapahtuu virhe."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3115,7 +3200,7 @@ msgstr ""
"uudelleenohjauksessa\n"
" tapahtuu virhe."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3127,7 +3212,7 @@ msgstr ""
" Poistuu komentotulkista paluuarvolla N. Jos N:ää ei anneta, paluuarvo\n"
" on viimeisen komennon paluuarvo."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3140,7 +3225,7 @@ msgstr ""
" Poistuu sisäänkirjautumiskomentotulkista paluuarvolla N. Palauttaa\n"
" virheen jos ei olla sisäänkirjautumiskomentotulkissa."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3194,7 +3279,7 @@ msgstr ""
" Palauttaa onnistuneen tai suoritetun komennon paluuarvon; nollasta\n"
" poikkeava virhetilanteessa."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3215,7 +3300,7 @@ msgstr ""
" Paluuarvo:\n"
" Edustalle tuodun työn paluuarvo, tai epäonnistuminen virhetilanteessa."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3241,7 +3326,8 @@ msgstr ""
"tapahtuu\n"
" virhe."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3252,7 +3338,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3286,7 +3372,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos NIMEÄ ei löydy tai on annettu "
"virheellinen valitsin."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3327,7 +3413,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos MALLINETTA ei löydy tai valitsin on\n"
" virheellinen."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3392,7 +3478,8 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin "
"tai tapahtuu virhe."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3401,7 +3488,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3436,7 +3523,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai \n"
" tapahtuu virhe. Jos -x:ää on käytetty, palauttaa KOMENNON paluuarvon."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3468,7 +3555,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos jokin valitsin tai TYÖTUNNISTE on "
"virheellinen."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3510,7 +3597,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai "
"tapahtuu virhe."
-#: builtins.c:926
+#: builtins.c:938
#, fuzzy
msgid ""
"Evaluate arithmetic expressions.\n"
@@ -3599,7 +3686,7 @@ msgstr ""
" Jos viimeinen ARGUMENTTI evaluoituu nollaksi, let palauttaa 1, muussa\n"
" tapauksessa 0."
-#: builtins.c:971
+#: builtins.c:983
#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
@@ -3635,16 +3722,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Lukee rivin vakiosyötteestä ja jakaa sen kenttiin.\n"
@@ -3686,7 +3776,7 @@ msgstr ""
" Paluuarvo on nolla, ellei törmätä tiedoston loppumiseen, aikarajan\n"
" ylitykseen tai mikäli -u:lle annetaan virheellinen tiedostokahva."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3710,7 +3800,7 @@ msgstr ""
"suorittamassa\n"
" funktiota tai skriptiä."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3777,7 +3867,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3880,7 +3970,8 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa onnistumisen ellei ole annettu virheellistä valitsinta."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3889,6 +3980,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3916,7 +4009,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
" tai NIMI on kirjoitussuojattu."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3950,7 +4043,8 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
" tai NIMI on virheellinen."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3962,7 +4056,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3987,7 +4083,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
" tai NIMI on virheellinen."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4006,7 +4102,7 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa onnistuneen ellei N ole negatiivinen tai suurempi kuin $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4031,7 +4127,7 @@ msgstr ""
"epäonnistuu\n"
" mikäli TIEDOSTOA ei voida lukea."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4058,7 +4154,7 @@ msgstr ""
"tapahtuu\n"
" virhe."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4124,6 +4220,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4219,7 +4317,7 @@ msgstr ""
" Palauttaa onnistumisen jos LAUSEKE evaluoituu todeksi; epäonnistuu jos\n"
" LAUSEKE evaluoituu vääräksi tai on annettu virheellinen argumentti."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4231,7 +4329,7 @@ msgstr ""
" Tämä on sisäänrakennetun â€testâ€-komennon synonyymi, mutta viimeisen\n"
" argumentin pitää olla â€]â€, joka sulkee avaavan â€[â€:n."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4251,7 +4349,7 @@ msgstr ""
" Paluuarvo:\n"
" Onnistuu aina."
-#: builtins.c:1332
+#: builtins.c:1350
#, fuzzy
msgid ""
"Trap signals and other events.\n"
@@ -4333,7 +4431,7 @@ msgstr ""
"annettu\n"
" virheellinen valitsin."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4389,7 +4487,8 @@ msgstr ""
" Palauttaa onnistuneen mikäli kaikki NIMET löytyivät, muussa tapauksessa\n"
" epäonnistuu."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4418,6 +4517,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4474,7 +4576,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
" tai tapahtuu virhe."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4509,21 +4611,25 @@ msgstr ""
" Palauttaa onnistuneen ellei TILA ole virheellinen tai on annettu \n"
" virheellinen valitsin."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"Odottaa työn valmistumista ja palauttaa paluuarvon.\n"
" \n"
@@ -4539,18 +4645,20 @@ msgstr ""
" Palauttaa ID:n tilan; epäonnistuu jos ID on virheellinen tai on annettu\n"
" virheellinen valitsin."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"Odottaa työn valmistumista ja palauttaa paluuarvon.\n"
" \n"
@@ -4563,7 +4671,7 @@ msgstr ""
" Palauttaa ID:n tilan; epäonnistuu jos ID on virheellinen tai on annettu\n"
" virheellinen valitsin."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4585,7 +4693,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4617,7 +4725,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4654,7 +4762,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4683,7 +4791,7 @@ msgstr ""
" Paluuarvo:\n"
" KOMENTOKETJUN paluuarvo."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4702,7 +4810,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4736,7 +4844,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4754,7 +4862,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen komennon paluuarvo."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4772,7 +4880,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4794,7 +4902,7 @@ msgstr ""
" Paluuarvo:\n"
" KOMENNON paluuarvo."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4817,7 +4925,7 @@ msgstr ""
" Paluuarvo:\n"
" Onnistuu, ellei NIMI ole kirjoitussuojattu."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4836,7 +4944,7 @@ msgstr ""
" Paluuarvo:\n"
" Viimeisen suoritetun komennon paluuarvo."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4862,7 +4970,7 @@ msgstr ""
" Paluuarvo:\n"
" Työn tila."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4880,7 +4988,7 @@ msgstr ""
" Paluuarvo:\n"
" Palauttaa 1, jos LAUSEKKEEN arvo on 0; muuten palauttaa 0."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4934,7 +5042,7 @@ msgstr ""
" Paluuarvo:\n"
" 0 tai 1 riippuen LAUSEKKEEN arvosta."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5037,7 +5145,7 @@ msgstr ""
" HISTIGNORE\tKaksoispistein eroteltu lista mallineista, joita käytetään\n"
" \t\tpäätettäessä komentojen tallentamisesta historialistaan.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5095,7 +5203,7 @@ msgstr ""
"tai\n"
" hakemiston vaihtaminen epäonnistuu."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5142,7 +5250,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen argumentti tai\n"
" hakemiston vaihto epäonnistuu."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5196,7 +5304,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
" tai tapahtuu virhe."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5234,7 +5342,7 @@ msgstr ""
" Palauttaa onnistuneen, mikäli VALITSIN on käytössä, epäonnistuu jos on\n"
" annettu virheellinen VALITSIN tai VALITSIN ei ole käytössä."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5252,9 +5360,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5262,6 +5370,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5288,7 +5402,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
" tapahtuu kirjoitus- tai sijoitusvirhe."
-#: builtins.c:1913
+#: builtins.c:1942
#, fuzzy
msgid ""
"Specify how arguments are to be completed by Readline.\n"
@@ -5336,7 +5450,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai \n"
" tapahtuu virhe."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5359,7 +5473,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
" tapahtuu virhe."
-#: builtins.c:1956
+#: builtins.c:1985
#, fuzzy
msgid ""
"Modify or display completion options.\n"
@@ -5413,7 +5527,7 @@ msgstr ""
" Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
" NIMELLE ei ole määritetty täydennysmääritystä."
-#: builtins.c:1986
+#: builtins.c:2015
#, fuzzy
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
@@ -5486,7 +5600,7 @@ msgstr ""
" tai TAULUKKO on kirjoitussuojattu."
# Changed " characters into â€...
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5496,6 +5610,21 @@ msgstr ""
" \n"
" â€mapfileâ€:n synonyymi."
+#, fuzzy
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2009 Free Software Foundation, Inc."
+
+#, fuzzy
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Lisenssi GPLv3+: GNU GPL versio 3 tai uudempi <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr "xrealloc: ei voida uudelleenvarata %lu tavua (varattiin %lu tavua)"
diff --git a/po/fr.gmo b/po/fr.gmo
index a6025a63..95c30ea0 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index e209fb03..2e4b6e01 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,107 +2,123 @@
# Copyright © 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2004
-# Christophe Combelles <ccomb@free.fr>, 2008, 2009, 2010
+# Christophe Combelles <ccomb@free.fr>, 2008, 2009, 2010, 2011
#
msgid ""
msgstr ""
-"Project-Id-Version: bash-4.1\n"
+"Project-Id-Version: bash-4.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-04-10 13:44+0100\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2012-07-07 21:52+0100\n"
"Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "mauvais indice de tableau"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s : impossible de convertir un tableau indexé en associatif"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s : clé non valable pour le tableau associatif"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s : impossible d'assigner à un index non numérique"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
"%s : %s : l'assignation d'un tableau associatif doit se faire avec un indice"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s : impossible de créer : %s"
-#: bashline.c:3498
+#: bashline.c:3982
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:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s : le premier caractère non vide n'est pas « \" »"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "pas de « %c » de fermeture dans %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s : virgule de séparation manquante"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "« %s » : nom d'alias non valable"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "édition de ligne non activée"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "« %s » : nom du mappage clavier invalide"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s : impossible de lire : %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "%s : impossible à délier"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "%s : nom de fonction inconnu"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s n'est lié à aucune touche.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s peut être appelé via "
@@ -115,7 +131,7 @@ msgstr "nombre de boucles"
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
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -125,11 +141,15 @@ msgstr ""
" \n"
" Sans EXPR, renvoie"
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "« HOME » non défini"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "trop d'arguments"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "« OLDPWD » non défini"
@@ -138,7 +158,7 @@ msgstr "« OLDPWD » non défini"
msgid "line %d: "
msgstr "ligne %d : "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "avertissement :"
@@ -148,11 +168,7 @@ msgstr "avertissement :"
msgid "%s: usage: "
msgstr "%s : utilisation :"
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "trop d'arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s : l'option nécessite un argument"
@@ -167,7 +183,7 @@ msgstr "%s : argument numérique nécessaire"
msgid "%s: not found"
msgstr "%s : non trouvé"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s : option non valable"
@@ -177,20 +193,20 @@ msgstr "%s : option non valable"
msgid "%s: invalid option name"
msgstr "%s : nom d'option non valable"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "« %s » : identifiant non valable"
#: builtins/common.c:238
msgid "invalid octal number"
-msgstr "Nombre octal non valable"
+msgstr "nombre octal non valable"
#: builtins/common.c:240
msgid "invalid hex number"
msgstr "nombre hexadécimal non valable"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "nombre non valable"
@@ -203,9 +219,10 @@ msgstr "%s : indication de signal non valable"
#, 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"
+"« %s » : ce n'est pas un n° de processus ou une spécification de tâche "
+"valable"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s : variable en lecture seule"
@@ -277,52 +294,62 @@ msgstr "%s : erreur de détermination du répertoire actuel : %s : %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s : spécification de tâche ambiguë"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s : nom d'action non valable"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s : pas d'indication de complètement"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "fonction de completion actuellement non en cours d'exécution"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "utilisable seulement dans une fonction"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "« -f » ne peut pas être utilisé pour fabriquer des fonctions"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s : fonction en lecture seule"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, 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:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s : impossible de convertir un tableau indexé en tableau associatif"
@@ -351,24 +378,23 @@ msgstr "%s : non chargé dynamiquement"
msgid "%s: cannot delete: %s"
msgstr "%s : impossible d'effacer : %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s : ceci est un répertoire"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s : ceci n'est pas un fichier régulier"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s : le fichier est trop grand"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s : fichier binaire impossible à lancer"
@@ -401,11 +427,11 @@ msgstr "Il y a des tâches en cours d'exécution.\n"
msgid "no command found"
msgstr "aucune commande trouvée"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "indication d'historique"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s : impossible d'ouvrir le fichier temporaire : %s"
@@ -450,20 +476,20 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Commandes du shell correspondant au mot-clé « "
msgstr[1] "Commandes du shell correspondant aux mots-clés « "
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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 »."
+"Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -"
+"k %s » ou « info %s »."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s : impossible d'ouvrir : %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -474,9 +500,10 @@ msgid ""
"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"
+"Ces commandes de shell sont définies de manière interne. Saisissez « 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"
@@ -492,7 +519,7 @@ msgstr "impossible d'utiliser plus d'une option parmi « -anrw »"
msgid "history position"
msgstr "position dans l'historique"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s : l'expansion de l'historique a échoué"
@@ -506,17 +533,17 @@ msgstr "%s : « inlib » a échoué"
msgid "no other options allowed with `-x'"
msgstr "pas d'autre option permise avec « -x »"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, 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:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Erreur inconnue"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "une expression est attendue"
@@ -525,85 +552,95 @@ msgstr "une expression est attendue"
msgid "%s: not an indexed array"
msgstr "%s : n'est pas un tableau indexé"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s : spécification de descripteur de fichier non valable"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d : descripteur de fichier non valable : %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s : nombre de lignes non valable"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s : origine de tableau non valable"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s : quantum de callback non valable"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "nom de variable tableau vide"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "nécessité de prise en charge des variables tableaux"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "« %s » : caractère de format manquant"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s : spécification de délai d'expiration non valable"
+msgstr "`%c' : spécification de format d'heure incorrecte"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "« %c » : caractère de format non permis"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "avertissement : %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "chiffre hexadécimal manquant pour \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "chiffre hexadécimal manquant pour \\x"
+msgstr "chiffre unicode manquant pour \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "pas d'autre répertoire"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s : argument de limite non valable"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<aucun répertoire courant>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "pile de répertoire vide"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "indice de pile de répertoire"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -648,7 +685,7 @@ msgstr ""
"la\n"
" liste affichée par « dirs » lorsque celle-ci est appelée sans option."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -683,10 +720,12 @@ msgstr ""
" \n"
" Arguments :\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"
+" \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"
+" \ten comptant de zéro depuis la droite de la liste fournie par « dirs "
+"».\n"
" \n"
" dir\tajoute le répertoire DIR en haut de la pile, et en fait le "
"nouveau\n"
@@ -694,7 +733,7 @@ msgstr ""
" \n"
" Vous pouvez voir la pile des répertoires avec la commande « dirs »."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -733,44 +772,44 @@ msgstr ""
" \n"
" Vous pouvez voir la pile des répertoires avec la commande « dirs »."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s : spécification de délai d'expiration non valable"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "Erreur de lecture : %d : %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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 »"
+"« return » n'est possible que depuis une fonction ou depuis un script "
+"exécuté par « source »"
-#: builtins/set.def:771
+#: builtins/set.def:782
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:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s : « unset » impossible"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s : « unset » impossible : %s est en lecture seule"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s : n'est pas une variable tableau"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s : n'est pas une fonction"
@@ -779,13 +818,13 @@ msgstr "%s : n'est pas une fonction"
msgid "shift count"
msgstr "nombre de « shift »"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
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:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s : nom d'option du shell non valable"
@@ -827,7 +866,7 @@ msgstr "%s est une fonction\n"
msgid "%s is a shell builtin\n"
msgstr "%s est une primitive du shell\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s est %s\n"
@@ -837,47 +876,47 @@ msgstr "%s est %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s est haché (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s : argument de limite non valable"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "« %c » : mauvaise commande"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s : impossible d'obtenir la limite : %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limite"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s : impossible de modifier la limite : %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
-msgstr "Nombre octal"
+msgstr "nombre octal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "« %c » : opérateur de mode symbolique non valable"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "« %c » : caractère de mode symbolique non valable"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr " ligne"
+msgstr " ligne "
#: error.c:165
#, c-format
@@ -889,301 +928,316 @@ msgstr "dernière commande : %s\n"
msgid "Aborting..."
msgstr "Annulation..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "erreur de commande inconnue"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "mauvais type de commande"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "mauvais connecteur"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "mauvais saut"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s : variable sans liaison"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT : « %c » : caractère de format non valable"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "erreur de tube"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, 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:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s : commande introuvable"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s est %s\n"
+msgstr "%s : %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s : %s : mauvais interpréteur"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s : fichier binaire impossible à lancer"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s est une primitive du shell\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "Impossible de dupliquer le fd %d vers le fd %d"
+msgstr "impossible de dupliquer le fd %d vers le fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
-msgstr "Dépassement du niveau de récursivité dans l'expression"
+msgstr "dépassement du niveau de récursivité dans l'expression"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
-msgstr "Débordement négatif de la pile de récursivité"
+msgstr "débordement négatif de la pile de récursivité"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "erreur de syntaxe dans l'expression"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "tentative d'affectation à une non-variable"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "division par 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bogue : mauvais symbole pour expassign"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "« : » attendu pour une expression conditionnelle."
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exposant négatif"
-#: expr.c:887
+#: expr.c:976
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:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "« ) » manquante"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "erreur de syntaxe : opérande attendue"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "erreur de syntaxe : opérateur arithmétique non valable"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s : %s (le symbole erroné est \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "base arithmétique non valable"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "valeur trop grande pour la base"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s : erreur d'expression\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd : ne peut accéder aux répertoires parents"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "Impossible de réinitialiser le mode « nodelay » pour le fd %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline : pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, 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:1007
+#: jobs.c:1012
#, 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:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process : processus %5ld (%s) dans le_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process : pid %5ld (%s) signalé toujours en vie"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid : %ld : n° de processus inexistant"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Fini"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stoppé"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Stoppé(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "En cours d'exécution"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Fini(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Termine %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "État inconnu"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core dumped)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd : %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "fils setpgid (%ld à %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for : aucun enregistrement du processus n°%ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job : la tâche %d est stoppée"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s : la tâche s'est terminée"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s : la tâche %d est déjà en arrière plan"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld : activation de WNOHANG pour éviter un blocage définitif"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s : ligne %d : "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core dumped)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(maintenant, wd : %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control : getpgrp a échoué"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control : discipline de ligne"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control : setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "impossible de régler le groupe de processus du terminlal (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "pas de contrôle de tâche dans ce shell"
@@ -1205,55 +1259,55 @@ msgstr ""
msgid "unknown"
msgstr "inconnu"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc : bloc écrasé sur liste libre"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
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
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free : appelé avec un bloc non alloué comme argument"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
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
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc : appelé avec un bloc non alloué comme argument"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
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
+#: lib/malloc/malloc.c:1026
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
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "base non valable"
@@ -1276,175 +1330,175 @@ msgstr "%s : mauvaise spécification de chemin réseau"
msgid "network operations not supported"
msgstr "opérations sur le réseau non prises en charge"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale : LC_ALL : impossible de changer le paramètre de langue (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
"setlocale : LC_ALL : impossible de changer le paramètre de langue (%s) : %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale : %s : impossible de changer le paramètre de langue (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
"setlocale : %s : impossible de changer le paramètre de langue (%s) : %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Vous avez du courrier dans $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Vous avez du nouveau courrier dans $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Le courrier dans %s a été lu.\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr "Erreur de syntaxe : expression arithmétique nécessaire"
+msgstr "erreur de syntaxe : expression arithmétique nécessaire"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr "Erreur de syntaxe : « ; » non attendu"
+msgstr "erreur de syntaxe : « ; » non attendu"
#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
-msgstr "Erreur de syntaxe : « ((%s)) »"
+msgstr "erreur de syntaxe : « ((%s)) »"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document : le type d'instruction %d est incorrect"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-"« here-document » à la ligne %d délimité par la fin du fichier (au lieu de « %"
-"s »)"
+"« here-document » à la ligne %d délimité par la fin du fichier (au lieu de « "
+"%s »)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection : l'instruction de redirection « %d » est hors plage"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, 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 » "
+"caractère de fin de fichier (EOF) prématuré lors de la recherche du « %c » "
"correspondant"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-"Caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »"
+"caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-"Erreur de syntaxe dans une expression conditionnelle : symbole « %s » "
+"erreur de syntaxe dans une expression conditionnelle : symbole « %s » "
"inattendu"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
-msgstr "Erreur de syntaxe dans une expression conditionnelle"
+msgstr "erreur de syntaxe dans une expression conditionnelle"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
-msgstr "Symbole inattendu « %s » au lieu de « ) »"
+msgstr "symbole inattendu « %s » au lieu de « ) »"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "« ) » attendu"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "argument inattendu « %s » pour l'opérateur conditionnel à un argument"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "argument inattendu pour l'opérateur conditionnel à un argument"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "Symbole « %s » trouvé à la place d'un opérateur binaire conditionnel"
+msgstr "symbole « %s » trouvé à la place d'un opérateur binaire conditionnel"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "opérateur binaire conditionnel attendu"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "argument « %s » inattendu pour l'opérateur binaire conditionnel"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "argument inattendu pour l'opérateur binaire conditionnel"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
-msgstr "Symbole « %c » inattendu dans la commande conditionnelle"
+msgstr "symbole « %c » inattendu dans la commande conditionnelle"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
-msgstr "Symbole « %s » inattendu dans la commande conditionnelle"
+msgstr "symbole « %s » inattendu dans la commande conditionnelle"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
-msgstr "Symbole « %d » inattendu dans la commande conditionnelle"
+msgstr "symbole « %d » inattendu dans la commande conditionnelle"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
-msgstr "Erreur de syntaxe près du symbole inattendu « %s »"
+msgstr "erreur de syntaxe près du symbole inattendu « %s »"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
-msgstr "Erreur de syntaxe près de « %s »"
+msgstr "erreur de syntaxe près de « %s »"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
-msgstr "Erreur de syntaxe : fin de fichier prématurée"
+msgstr "erreur de syntaxe : fin de fichier prématurée"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
-msgstr "Erreur de syntaxe"
+msgstr "erreur de syntaxe"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Utilisez « %s » pour quitter le shell.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-"Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » "
+"caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » "
"correspondant"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "complètement : fonction « %s » non trouvée"
@@ -1454,92 +1508,92 @@ msgstr "complètement : fonction « %s » non trouvée"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert : %s : NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command : mauvais connecteur « %d »"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set : %d : descripteur de fichier non valable"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set : pointeur de fichier NULL"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf : « %c » : caractère de format invalide"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "descripteur de fichier hors plage"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s : redirection ambiguë"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s : impossible d'écraser le fichier existant"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s : restreint : impossible de rediriger la sortie"
-#: redir.c:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s : impossible d'affecter le descripteur de fichier à la variable"
-#: redir.c:548
+#: redir.c:582
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:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr ""
-"Erreur de redirection : impossible de dupliquer le descripteur de fichier"
+"erreur de redirection : impossible de dupliquer le descripteur de fichier"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "« /tmp » introuvable, veuillez le créer !"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "« /tmp » doit être un nom de répertoire correct"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c : option non valable"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Je n'ai pas de nom !"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, version %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1548,41 +1602,43 @@ msgstr ""
"Utilisation :\t%s [option longue GNU] [option] ...\n"
"\t%s [option longue GNU] [option] fichier-script ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Options longues GNU :\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Options du shell :\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ou -o option\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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"
+"Pour en savoir plus sur les options du shell, saisissez « %s -c \"help set\" "
+"».\n"
-#: shell.c:1825
+#: shell.c:1857
#, 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"
+"Pour en savoir plus sur les primitives du shell, saisissez « %s -c help ».\n"
-#: shell.c:1826
+#: shell.c:1858
#, 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:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask : %d : operation non valable"
@@ -1713,19 +1769,19 @@ msgstr "Signal utilisateur 2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr "Données d'entrée HFT en attente"
+msgstr "données d'entrée HFT en attente"
#: siglist.c:187
msgid "power failure imminent"
-msgstr "Coupure d'alimentation imminente"
+msgstr "coupure d'alimentation imminente"
#: siglist.c:191
msgid "system crash imminent"
-msgstr "Panne système imminente"
+msgstr "panne système imminente"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr "Migration processus vers un autre CPU"
+msgstr "migration processus vers un autre CPU"
#: siglist.c:199
msgid "programming error"
@@ -1756,73 +1812,78 @@ msgstr "N° de signal inconnu"
msgid "Unknown Signal #%d"
msgstr "Signal n°%d inconnu"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s : impossible d'affecter une liste à un élément de tableau"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
-msgstr "Impossible de fabriquer un tube pour une substitution de processus"
+msgstr "impossible de fabriquer un tube pour une substitution de processus"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
-msgstr "Impossible de fabriquer un fils pour une substitution de processus"
+msgstr "impossible de fabriquer un fils pour une substitution de processus"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
-msgstr "Impossible d'ouvrir le tube nommé « %s » en lecture"
+msgstr "impossible d'ouvrir le tube nommé « %s » en lecture"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr "Impossible d'ouvrir le tube nommé « %s » en écriture"
+msgstr "impossible d'ouvrir le tube nommé « %s » en écriture"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "Impossible de dupliquer le tube nommé « %s » vers le fd %d"
+msgstr "impossible de dupliquer le tube nommé « %s » vers le fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
-msgstr "Impossible de fabriquer un tube pour une substitution de commande"
+msgstr "impossible de fabriquer un tube pour une substitution de commande"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-"Impossible de fabriquer un processus fils pour une substitution de commande"
+"impossible de fabriquer un processus fils pour une substitution de commande"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute : impossible de dupliquer le tube vers le fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s : %s : valeur non valable pour un descripteur de fichier de trace"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s : paramètre vide ou non défini"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s : expression de sous-chaîne négative"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s : mauvaise substitution"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s : affectation impossible de cette façon"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1830,58 +1891,58 @@ msgstr ""
"Les versions futures du shell forceront l'évaluation comme une substitution "
"arithmétique"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "Mauvais remplacement : pas de « ` » de fermeture dans %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
-msgstr "Pas de correspondance : %s"
+msgstr "pas de correspondance : %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argument attendu"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s : nombre entier attendu comme expression"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "« ) » attendue"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "« ) » attendu au lieu de %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s : opérateur unaire attendu"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s : opérateur binaire attendu"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "« ] » manquant"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
-msgstr "Numéro de signal non valable"
+msgstr "numéro de signal non valable"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1889,80 +1950,95 @@ msgstr ""
"run_pending_traps : le gestionnaire de signal est SIG_DFL, %d (%s) renvoyé à "
"moi-même"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler : mauvais signal %d"
-#: variables.c:363
+#: variables.c:382
#, 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:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "niveau de shell trop élevé (%d), initialisation à 1"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s : %s : valeur non valable pour un descripteur de fichier de trace"
+
+#: variables.c:2228
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:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s : impossible d'affecter le descripteur de fichier à la variable"
+
+#: variables.c:3646
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:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s a un « exportstr » vide"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "caractère %d non valable dans « exportstr » pour %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "Pas de « = » dans « exportstr » pour %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context : aucun contexte à « global_variables »"
-#: variables.c:3978
+#: variables.c:4431
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"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s : %s : impossible d'ouvrir comme FILE"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s : %s : valeur non valable pour un descripteur de fichier de trace"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s : %s hors plage"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1970,37 +2046,28 @@ msgstr ""
"Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/"
"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, version %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
"Ceci est un logiciel libre ; vous être libre de le modifier et de le "
"redistribuer.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
"Aucune garantie n'est fournie, dans la mesure de ce que la loi autorise.\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licence GPLv2+ : GNU GPL version 2 ou ultérieure <http://gnu.org/licenses/"
-"gpl.html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2031,8 +2098,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] nom [nom ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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 nomfichier] [-q nom] [-u nom] [-r seqtouche] "
@@ -2057,8 +2125,8 @@ msgstr "caller [expr]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [rép]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [rép]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2082,13 +2150,12 @@ msgstr "command [-pVv] commande [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [nom[=valeur] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [nom[=valeur] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] nom[=valeur] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] nom[=valeur] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2188,12 +2255,12 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o nom-option] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o nom-option] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nom ...]"
#: builtins.c:144
@@ -2201,9 +2268,8 @@ msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [nom[=valeur] ...] ou export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [nom[=valeur] ...] ou readonly -p"
+msgstr "readonly [-aAf] [nom[=valeur] ...] ou readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2242,7 +2308,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] nom [nom ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [limite]"
#: builtins.c:172
@@ -2250,11 +2317,13 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mode]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
msgstr "wait [pid]"
#: builtins.c:182
@@ -2405,7 +2474,7 @@ msgstr ""
"réutilisable\n"
" « alias NOM=VALEUR » sur la sortie standard.\n"
" \n"
-" Sinon, un alias est définit pour chaque NOM dont la VALEUR est donnée.\n"
+" Sinon, un alias est défini pour chaque NOM dont la VALEUR est donnée.\n"
" Une espace à la fin de la VALEUR entraine le remplacement d'alias dans "
"le mot\n"
" suivant, lorsque l'alias est développé.\n"
@@ -2435,6 +2504,7 @@ msgstr ""
" Renvoie le code de succès à moins que NOM ne soit pas un alias existant."
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2468,6 +2538,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2486,7 +2558,8 @@ msgstr ""
" 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"
+" « 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"
@@ -2499,8 +2572,8 @@ msgstr ""
" -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. -r seqtouche Enlève l'association pour « "
-"seqtouche ».\n"
+"utilisée comme entrée. -r seqtouche Enlève l'association pour "
+"« seqtouche ».\n"
" -V Affiche les noms et valeurs des variables\n"
" -v Affiche les noms et valeurs des variables dans une "
"forme qui peut\n"
@@ -2516,10 +2589,10 @@ msgstr ""
" \t\t\t\tlorsque « seqtouche » est entrée.\n"
" \n"
" Code de sortie :\n"
-" « bind » renvoie 0 à moins qu'une option non reconnue ne soit donnée ou "
-"qu'une erreur ne survienne."
+" « bind » renvoie 0 à moins qu'une option non reconnue ne soit donnée "
+"ou qu'une erreur ne survienne."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2538,7 +2611,7 @@ msgstr ""
" Code de retour :\n"
" Le code de retour est 0 à moins que N ne soit pas supérieur ou égal à 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2557,7 +2630,7 @@ msgstr ""
" Code de sortie :\n"
" Le code de sortie est 0 à moins que N ne soit pas supérieur ou égale à 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2585,7 +2658,7 @@ msgstr ""
"n'est\n"
" pas une commande intégrée.."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2616,7 +2689,7 @@ msgstr ""
"fonction ou que EXPR\n"
" ne soit pas valable."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2640,13 +2713,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2655,10 +2736,8 @@ msgid ""
msgstr ""
"Change le répertoire de travail du shell.\n"
" \n"
-" Change le répertoire actuel vers DIR. La variable « $HOME » est le "
-"répertoire\n"
-" DIR par défaut.\n"
-" \n"
+" Change le répertoire actuel vers DIR. Le répertoire DIR par défaut\n"
+" est donné par la variable « $HOME ». \n"
" La variable CDPATH définit le chemin de recherche du répertoire "
"contenant\n"
" DIR. Les noms de répertoires alternatifs dans CDPATH sont séparés par un "
@@ -2674,17 +2753,23 @@ msgstr ""
" alors cette valeur est utilisée pour DIR.\n"
" \n"
" Options :\n"
-" -L\tforcer le suivi des liens symboliques. -P\tutiliser la "
-"structure physique des répertoires sans suivre\n"
+" -L\tforcer le suivi des liens symboliques.\n"
+" -P\tutiliser la structure physique des répertoires sans suivre\n"
" les liens symboliques\n"
+" -e\tsi l'option -P est fournie et que le répertoire de travail "
+"actuel ne peut pas\n"
+" \têtre déterminé avec succès, alors sortir avec un code de retour non "
+"nul\n"
" \n"
" Le comportement par défaut est de suivre les liens symboliques, comme si "
-"« -f » était précisé.\n"
+"« -L » était précisé.\n"
" \n"
" Code de sortie :\n"
-" Renvoie 0 si le répertoire est changé, sinon autre chose que 0."
+" Renvoie 0 si le répertoire est changé et si $PWD est correctement "
+"défini\n"
+" quand -P est utilisé ; sinon autre chose que 0."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2714,7 +2799,7 @@ msgstr ""
"répertoire\n"
" courant ne peut pas être lu."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2730,7 +2815,7 @@ msgstr ""
" Code de retour :\n"
" Renvoie toujours le code de succès."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2742,7 +2827,7 @@ msgstr ""
" Code de retour :\n"
" Succès."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2754,7 +2839,7 @@ msgstr ""
" Code de sortie :\n"
" Toujours l'échec."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2792,7 +2877,7 @@ msgstr ""
" Renvoie le code de sortie de la COMMANDE, ou le code d'échec si la "
"COMMANDE est introuvable."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2813,6 +2898,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2828,7 +2914,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Définit les valeurs et les attributs des variables.\n"
" \n"
@@ -2842,6 +2929,8 @@ msgstr ""
" -F\trestreint l'affichage aux noms des fonctions uniquement (avec le "
"numéro de ligne\n"
" \tet le fichier source lors du débogage)\n"
+" -g\tcrée des variables globales lorsqu'utilisée dans une fonction "
+"shell ; ignoré sinon\n"
" -p\taffiche les attributs et la valeur de chaque NOM\n"
" \n"
" Options qui définissent des attributs :\n"
@@ -2856,20 +2945,21 @@ msgstr ""
" \n"
" Utiliser « + » au lieu de « - » permet de désactiver l'attribut donné.\n"
" \n"
-" Les variables avec l'attribut « integer » ont une évaluation arithmétique "
-"(voir\n"
+" Les variables avec l'attribut « integer » ont une évaluation "
+"arithmétique (voir\n"
" la commande « let ») effectuée lorsqu'un valeur est affectée à la "
"variable.\n"
" \n"
" Lorsqu'utilisée dans une fonction, « declare » permet aux NOMs d'être "
"locaux,\n"
-" comme avec la commande « local ».\n"
+" comme avec la commande « local ». L'option « -g » supprime ce "
+"comportement.\n"
" \n"
" Code de retour :\n"
" Renvoie le code de succès à moins qu'un option non valable soit fournie "
"ou qu'une erreur ne survienne."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2879,7 +2969,8 @@ msgstr ""
" \n"
" Obsolète. Essayez « help declare »."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2890,8 +2981,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Définit des variables locales.\n"
" \n"
@@ -2909,11 +3000,14 @@ msgstr ""
"fournie, qu'une erreur ne survienne,\n"
" ou que l'inteprète ne soit pas dans une fonction."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2925,6 +3019,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2971,7 +3066,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de succès à moins qu'une erreur ne survienne."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2993,7 +3088,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de succès à moins qu'une erreur ne survienne."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -3033,7 +3128,8 @@ msgstr ""
" -n\tdésactive chaque NOM ou affiche la liste des commandes "
"désactivées\n"
" -p\taffiche la liste des commandes dans un format réutilisable\n"
-" -s\taffiche seulement les noms des commandes Posix de type « special »\n"
+" -s\taffiche seulement les noms des commandes Posix de type « special "
+"»\n"
" \n"
" Options contrôlant le chargement dynamique :\n"
" -f\tCharge la commande intégrée NOM depuis la bibliothèque partagée "
@@ -3044,13 +3140,13 @@ msgstr ""
" \n"
" Pour utiliser le « test » trouvé dans $PATH au lieu de celui intégré au "
"shell,\n"
-" tapez « enable -n test ».\n"
+" saisissez « enable -n test ».\n"
" \n"
" Code de sortie :\n"
" Renvoie le code de succès à moins que NOM ne soit pas une commande "
"intégrée ou qu'une erreur ne survienne."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3071,7 +3167,7 @@ msgstr ""
" Renvoie le même code de sortie que la commande, ou le code de succès si "
"la commande est vide."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3141,8 +3237,8 @@ msgstr ""
"d'option\n"
" trouvé. Si un argument nécessaire n'est pas trouvé, « getopts » place un "
"« : »\n"
-" dans NOM et place dans OPTARG le caractère d'option trouvé. Si « getopts "
-"»\n"
+" dans NOM 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 "
@@ -3166,7 +3262,7 @@ msgstr ""
"la fin des options\n"
" est rencontrée ou si une erreur survient."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3208,7 +3304,7 @@ msgstr ""
" Renvoie le code de succès à moins que la COMMANDE ne soit pas trouvée ou "
"qu'une erreur de redirection ne survienne."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3220,7 +3316,7 @@ msgstr ""
" Termine 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3234,7 +3330,7 @@ msgstr ""
"erreur s'il n'est pas exécuté\n"
" dans un shell de connexion."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3286,15 +3382,15 @@ msgstr ""
" après avoir effectué le remplacement ANCIEN=NOUVEAU.\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"
+" 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.\n"
" \n"
" Code de sortie :\n"
" Renvoie le code de succès ou le code de sortie de la commande exécutée ; "
"autre chose que 0 si une erreur survient."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3315,7 +3411,7 @@ msgstr ""
" celui de la commande placée au premier plan ou le code d'échec si une "
"erreur survient."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3330,8 +3426,8 @@ msgid ""
msgstr ""
"Déplace des tâches vers l'arrière plan.\n"
" \n"
-" Place chaque JOB_SPEC en arrière plan comme s'il avait été démarré avec « "
-"& ».\n"
+" 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.\n"
" \n"
@@ -3339,7 +3435,8 @@ msgstr ""
" Renvoie le code de succès à moins que le contrôle de tâche ne soit pas "
"activé ou qu'une erreur ne survienne."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3350,7 +3447,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3384,7 +3481,7 @@ msgstr ""
" Renvoie le code de succès à moins que le NOM ne soit pas trouvé ou "
"qu'une option non valable ne soit donnée."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3408,24 +3505,24 @@ msgstr ""
"Affiche des informations sur les commandes intégrées.\n"
" \n"
" Affiche de courts résumés des commandes intégrées. Si MOTIF est\n"
-" spécifié, une aide détaillée de toutes les commandes correspondantes au "
-"MOTIF sont affichées,\n"
-" sinon la liste des sujets d'aide est affichée.\n"
+" spécifié, une aide détaillée de toutes les commandes correspondantes\n"
+" au MOTIF est affichée, sinon la liste des sujets d'aide est affichée.\n"
" \n"
" Options :\n"
" -d\tafficher une courte description pour chaque sujet\n"
" -m\tafficher l'aide dans un format proche des pages de man(uel)\n"
" -s\tn'afficher qu'une courte aide pour chaque sujet correspondant au\n"
-" \tMOTIF\n"
+" \t\tMOTIF\n"
" \n"
" Arguments :\n"
" MOTIF\tMotif spécifiant un sujet d'aide\n"
" \n"
" Code de retour :\n"
" Renvoie le code de succès à moins que le MOTIF ne soit pas trouvé ou "
-"qu'une option non valable ne soit donnée."
+"qu'une\n"
+" option non valable ne soit donnée."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3498,7 +3595,8 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable soit donnée "
"ou qu'une erreur ne survienne."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3507,7 +3605,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3548,7 +3646,7 @@ msgstr ""
"donnée ou qu'une erreur ne survienne.\n"
" Si « -x » est utilisée, le code de sortie de la COMMANDE est renvoyé."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3580,7 +3678,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option ou un JOBSPEC non "
"valable ne soit donné."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3610,8 +3708,8 @@ msgstr ""
" Options :\n"
" -s sig\tSIG est un nom de signal\n"
" -n sig\tSIG est un numéro de signal\n"
-" -l\tafficher la liste des noms de signaux ; si des arguments suivent « -"
-"l », ils sont supposés être\n"
+" -l\tafficher la liste des noms de signaux ; si des arguments suivent « "
+"-l », ils sont supposés être\n"
" \tdes numéro de signaux pour lesquels les noms doivent être affichés\n"
" \n"
" « kill » est une commande intégrée pour deux raisons : elle permet aux "
@@ -3624,8 +3722,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable soit donnée "
"ou qu'une erreur ne survienne."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3680,7 +3777,7 @@ msgstr ""
" \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\n"
+" \t-, +\t\tmoins unaire, plus unaire\n"
" \t!, ~\t\tnégations logique et binaire\n"
" \t**\t\tmise en exposant\n"
" \t*, /, %\t\tmultiplication, division, reste de la division\n"
@@ -3715,7 +3812,8 @@ msgstr ""
" Code de sortie :\n"
" Si le dernier ARG est évalué à 0, « let » renvoie 1, sinon 0 est renvoyé."
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3750,16 +3848,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Lit une ligne depuis l'entrée standard et la découper en morceaux.\n"
@@ -3819,7 +3920,7 @@ msgstr ""
" ou qu'un descripteur de fichier non valable ne soit fourni comme "
"argument à « -u »."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3842,7 +3943,7 @@ msgstr ""
" Renvoie N ou le code d'échec si le shell n'est pas en train d'exécuter "
"une fonction ou un script."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3909,7 +4010,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3928,7 +4029,8 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
"Définit ou invalide des valeurs d'options et des paramètres de position du "
-"shell \n"
+"shell.\n"
+" \n"
" Change la valeur des attributs du shell et des paramètres de position, "
"ou\n"
" affiche les noms et valeurs des variables du shell.\n"
@@ -3957,8 +4059,8 @@ msgstr ""
" 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"
+" 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"
@@ -4012,16 +4114,19 @@ msgstr ""
" 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"
+" -- Affecte tous les arguments restants aux paramètres de position.\n"
+" S'il n'y a plus d'argument, les paramètres de position sont "
+"indéfinis.\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"
+" 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 « $- ». 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. \n"
@@ -4029,7 +4134,8 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"donnée."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -4038,6 +4144,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -4066,7 +4174,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"donnée ou que NOM soit en lecture seule."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -4102,7 +4210,8 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"données ou que NOM ne soit pas valable."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -4114,7 +4223,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -4142,7 +4253,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une options non valable ne soit "
"données ou que NOM ne soit pas valable."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4161,7 +4272,7 @@ msgstr ""
" Code de retour :\n"
" Renvoie le code de succès à moins que N soit négatif ou supérieur à $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4189,7 +4300,7 @@ msgstr ""
"code\n"
" d'échec si NOMFICHIER ne peut pas être lu."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4216,7 +4327,7 @@ msgstr ""
" Renvoie le code de succès à moins que le contrôle de tâche ne soit pas "
"activé ou qu'une erreur survienne."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4282,6 +4393,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4304,6 +4417,10 @@ msgstr ""
" 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"
+" Le comportement de test dépend du nombre d'arguments. Consultez la "
+"page\n"
+" de manuel de bash pour connaître les spécifications complètes.\n"
". \n"
" Opérateurs sur des fichiers : \n"
" \n"
@@ -4332,11 +4449,13 @@ msgstr ""
"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 "
+"\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"
@@ -4358,6 +4477,7 @@ msgstr ""
" Autres opérateurs :\n"
" \n"
" -o OPTION Vrai si l'OPTION du shell est activée\n"
+" -v VAR\t Vrai si la variable de shell VAR est définie\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"
@@ -4374,7 +4494,7 @@ msgstr ""
"fausse ou si\n"
" un argument non valable est donné."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4386,7 +4506,7 @@ 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:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4405,8 +4525,7 @@ msgstr ""
" Code de retour :\n"
" Toujours le code de succès."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4464,7 +4583,13 @@ msgstr ""
" \n"
" Si SIGNAL_SPEC 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"
+" SIGNAL_SPEC est DEBUG, ARG est exécuté après chaque commande simple. Si\n"
+" un SIGNAL_SPEC est RETURN, ARG est exécuté à chaque fois qu'une fonction "
+"shell ou\n"
+" qu'un script lancé avec . ou source se termine. Un SIGNAL_SPEC\n"
+" valant ERR permet d'exécuter ARG à chaque fois qu'un échec d'une "
+"commande engendrerait\n"
+" la sortie du shell lorsque l'option -e est activée.\n"
" \n"
" Si aucun argument n'est fourni, « trap » affiche la liste des commandes "
"associées\n"
@@ -4484,7 +4609,7 @@ msgstr ""
" Renvoie le code de succès à moins que SIGSPEC ne soit pas valable ou "
"qu'une option non valable ne soit donnée."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4532,8 +4657,8 @@ msgstr ""
" -p\trenvoie soir le nom du fichier du disque qui serait exécuté,\n"
" \tsoit rien si « type -t NOM » ne renvoyait pas « file ».\n"
" -t\taffiche un mot unique parmi « alias », « keyword »,\n"
-" \t« function », « builtin », « file » or « », si NOM est respectivement un "
-"alias,\n"
+" \t« function », « builtin », « file » or « », si NOM est respectivement "
+"un alias,\n"
" \tun mot réservé du shell, une fonction du shell, une commande "
"intégrée,\n"
" \tun fichier du disque ou un nom inconnu\n"
@@ -4545,7 +4670,8 @@ msgstr ""
" Renvoie le code de succès si tous les NOMs sont trouvés, le code d'échec "
"si l'un d'entre eux n'est pas trouvé."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4574,6 +4700,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4626,16 +4755,17 @@ msgstr ""
"affichée\n"
" Si aucune option n'est donnée, « -f » est supposée.\n"
" \n"
-" Les valeurs sont 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"
+" Les valeurs sont 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"
" de processus sans unité.\n"
" \n"
" Code de sortie :\n"
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"fournie ou qu'une erreur ne survienne."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4660,8 +4790,8 @@ msgstr ""
" \n"
" Si MODE commence par un chiffre, il est interprété comme un nombre "
"octal ;\n"
-" sinon comme une chaîne de symboles de mode comme ceux acceptés par chmod"
-"(1).\n"
+" sinon comme une chaîne de symboles de mode comme ceux acceptés par "
+"chmod(1).\n"
" \n"
" Options :\n"
" -p\tsi MODE est omis, afficher sous une forme réutilisable comme une "
@@ -4673,21 +4803,25 @@ msgstr ""
" Renvoie le code de succès à moins que MODE ne soit pas valable ou qu'une "
"option non valable ne soit donnée."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"Attend la fin d'une tâche et renvoie le code de retour.\n"
" \n"
@@ -4705,18 +4839,20 @@ msgstr ""
" Renvoie le même code que celui d'ID, ou le code d'échec si ID n'est pas "
"valable ou en cas d'option non valable."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"Attend la fin d'un processus et renvoie le code de sortie.\n"
" \n"
@@ -4729,7 +4865,7 @@ msgstr ""
"non valable\n"
" est donnée."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4745,14 +4881,15 @@ msgstr ""
" \n"
" La boucle « for » exécute une suite de commandes pour chaque membre "
"d'une\n"
-" liste d'éléments. Si « in MOTS ...; » n'est pas fourni, « in \"$@\" » est\n"
+" liste d'éléments. Si « in MOTS ...; » n'est pas fourni, « in \"$@\" » "
+"est\n"
" utilisé. Pour chaque élément dans MOTS, NOM est défini à cet élément,\n"
" et les COMMANDES sont exécutées.\n"
" \n"
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4783,7 +4920,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4819,7 +4956,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4850,7 +4987,7 @@ msgstr ""
" Code de sortie :\n"
" Le code de retour est celui du PIPELINE."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4870,7 +5007,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4908,7 +5045,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4928,7 +5065,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4948,7 +5085,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4972,7 +5109,7 @@ msgstr ""
" Code de retour :\n"
" Renvoie le même code de retour que la COMMANDE."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4998,7 +5135,7 @@ msgstr ""
" Code de retour :\n"
" Renvoie le code de succès à moins que NOM ne soit en lecture seule."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -5016,7 +5153,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la dernière commande exécutée."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -5034,7 +5171,8 @@ 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"
+" 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 ».\n"
@@ -5042,7 +5180,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie le code de la commande reprise."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -5060,7 +5198,7 @@ msgstr ""
" Code de sortie :\n"
" Renvoie 1 si EXPRESSION est évaluée à 0, sinon renvoie 0."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -5101,8 +5239,8 @@ msgstr ""
" \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 à droite "
-"de l'opérateur\n"
+" Lorsque les opérateurs « == » et « != » sont utilisés, la chaîne à "
+"droite de l'opérateur\n"
" est utilisée comme motif, et une mise en correspondance est effectuée.\n"
" Lorsque l'opérateur « =~ » est utilisé, la chaîne à droite de "
"l'opérateur\n"
@@ -5114,7 +5252,7 @@ msgstr ""
" Code de sortie :\n"
" 0 ou 1 selon la valeur de l'EXPRESSION."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5184,8 +5322,8 @@ msgstr ""
" 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"
+" 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"
@@ -5238,7 +5376,7 @@ msgstr ""
" \t\tdécider quelles commandes doivent être conservées dans la liste "
"d'historique.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5281,10 +5419,12 @@ msgstr ""
" \n"
" Arguments :\n"
" +N\tPermuter 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"
+" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs "
+"».\n"
" \n"
" -N\tPermuter 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"
+" \ten comptant de zéro depuis la droite de la liste fournie par « dirs "
+"».\n"
" \n"
" dir\tajouter le répertoire DIR en haut de la pile, et en faire le "
"nouveau\n"
@@ -5297,7 +5437,7 @@ msgstr ""
"fourni\n"
" ou que le changement de répertoire n'échoue."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5347,7 +5487,7 @@ msgstr ""
"donné\n"
" ou que le changement de répertoire n'échoue."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5404,7 +5544,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"fournie ou qu'une erreur ne survienne."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5445,7 +5585,7 @@ msgstr ""
"valable\n"
" est donnée ou si NOMOPT est inactive."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5463,9 +5603,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5473,6 +5613,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5481,7 +5627,7 @@ msgstr ""
"Formatte et affiche des ARGUMENTS en contrôlant le FORMAT.\n"
" \n"
" Options :\n"
-" -v var\taffecte la sortie à la vairable VAR du shell plutôt que de "
+" -v var\taffecte la sortie à la variable VAR du shell plutôt que de "
"l'afficher\n"
" \t\tsur la sortie standard\n"
" \n"
@@ -5496,18 +5642,21 @@ msgstr ""
" En plus des formats standards décrits dans printf(1) et printf(3), « "
"printf » interprète :\n"
" \n"
-" %b\tdéveloppe les séquences d'échappement à contre-oblique dans "
+" %b\tdéveloppe les séquences d'échappement à contre-oblique dans "
"l'argument correspondant\n"
-" %q\tprotège les arguments par guillemets de façon qu'ils puissent être "
+" %q\tprotège les arguments par guillemets de façon qu'ils puissent être "
"réutilisés\n"
-" comme entrée du shell.\n"
+" comme entrée du shell.\n"
+" %(fmt)T renvoie la chaîne date-heure résultant de l'utilisation de FMT "
+"comme une\n"
+" chaîne de format pour strftime(3)\n"
" \n"
" Code de sortie :\n"
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"donnée ou qu'une\n"
" erreur d'écriture ou d'affectation ne survienne."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5555,15 +5704,15 @@ msgstr ""
" \n"
" Lorsqu'un auto-complètement est tenté, les actions sont appliquées dans "
"l'ordre\n"
-" dans lequel les options en majuscule ci-dessus sont listées. L'option « -"
-"D » est prioritaire\n"
+" dans lequel les options en majuscule ci-dessus sont listées. L'option « "
+"-D » est prioritaire\n"
" sur « -E ».\n"
" \n"
" Code de retour :\n"
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"fournie ou qu'une erreur ne survienne."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5585,8 +5734,7 @@ msgstr ""
" Renvoie le code de succès à moins qu'une option non valable ne soit "
"fournie ou qu'une erreur ne survienne."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5620,8 +5768,8 @@ msgstr ""
" \n"
" Modifie les options d'auto-complètement pour chaque NOM ou, si aucun NOM "
"n'est fourni,\n"
-" l'auto-complètement actuellement exécuté. si aucune OPTION n'est "
-"données, affiche\n"
+" pour l'auto-complètement actuellement exécuté. si aucune OPTION n'est "
+"donnée, affiche\n"
" les options d'auto-complètement de chaque NOM ou le réglage actuel "
"d'auto-complètement.\n"
" \n"
@@ -5638,8 +5786,8 @@ msgstr ""
" \n"
" Chaque NOM correspond à une commande pour laquelle un réglage d'auto-"
"complètement\n"
-" doit déjà avoir été défini grâce à la commande intégrée « complete ». Si "
-"aucun NOM\n"
+" doit déjà avoir été défini grâce à la commande intégrée « complete ». "
+"Si aucun NOM\n"
" n'est fourni, « compopt » doit être appelée par une fonction générant "
"actuellement\n"
" des auto-complètements ; ainsi les options de ce générateur d'auto-"
@@ -5651,8 +5799,7 @@ msgstr ""
"fournie\n"
" ou que NOM n'ait aucun réglage d'auto-complètement."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5705,7 +5852,7 @@ msgstr ""
"les lignes sont copiées.\n"
" -O origine\tCommence l'affectation au TABLEAU à l'indice ORIGINE. "
"L'indice par défaut est 0.\n"
-" -s nombre\tSaute les NOMBRE premères lignes lues.\n"
+" -s nombre\tSaute les NOMBRE premières lignes lues.\n"
" -t\t\tRetire les retours à la ligne de chaque ligne lue.\n"
" -u fd\t\tLit les lignes depuis le descripteur de fichier FD au lieu de "
"l'entrée standard.\n"
@@ -5732,7 +5879,7 @@ msgstr ""
"donnée ou que\n"
" le TABLEAU soit en lecture seule ou ne soit pas un tableau indexé."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5742,6 +5889,16 @@ msgstr ""
" \n"
" Synonyme de « mapfile »."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licence GPLv2+ : GNU GPL version 2 ou ultérieure <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
@@ -5816,8 +5973,8 @@ msgstr ""
#~ 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 »"
+#~ "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,"
@@ -5825,8 +5982,8 @@ msgstr ""
#~ 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"
+#~ "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."
@@ -5834,7 +5991,8 @@ msgstr ""
#~ 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."
+#~ "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"
@@ -5894,7 +6052,8 @@ msgstr ""
#~ 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"
+#~ "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."
@@ -6013,12 +6172,12 @@ msgstr ""
#~ "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"
+#~ " 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"
+#~ " 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."
@@ -6129,12 +6288,12 @@ msgstr ""
#~ "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"
+#~ " 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"
+#~ " « -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 "
@@ -6195,10 +6354,10 @@ msgstr ""
#~ "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"
+#~ " 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é. "
@@ -6235,14 +6394,14 @@ msgstr ""
#~ 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"
+#~ " 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"
+#~ " 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 ""
@@ -6294,8 +6453,8 @@ msgstr ""
#~ "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"
+#~ " 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"
@@ -6305,16 +6464,16 @@ msgstr ""
#~ "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"
+#~ " à 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"
+#~ " « 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"
+#~ " 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 "
@@ -6362,7 +6521,8 @@ 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"
+#~ " 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 "
@@ -6388,8 +6548,8 @@ msgstr ""
#~ "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"
+#~ " 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."
@@ -6452,8 +6612,10 @@ msgstr ""
#~ "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"
+#~ " 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"
@@ -6466,8 +6628,8 @@ msgstr ""
#~ " \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"
+#~ " 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 "
diff --git a/po/ga.gmo b/po/ga.gmo
index d9152837..eb114a3e 100644
--- a/po/ga.gmo
+++ b/po/ga.gmo
Binary files differ
diff --git a/po/ga.po b/po/ga.po
index 00ff6938..ca42ada3 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,102 +7,118 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2009-09-24 23:08+0100\n"
"Last-Translator: Séamus Ó Ciardhuáin <seoc@iolfree.ie>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\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==1 ? 0 : n==2 ? 1 : 2;\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "droch-fhoscript eagair"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
"%s: ní féidir eagar innéacsaithe a thiontú go heagar comhthiomsaitheach"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: eochair neamhbhailí eagair chomhthiomsaithigh"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: ní féidir sannadh go hinnéacs neamhuimhriúil."
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
"%s: %s: caithfear foscript a úsáid le sannadh chuig eagar comhthiomsaitheach"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: ní féidir cruthú: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command: ní féidir mapa eochrach an ordaithe a aimsiú"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: ní \" é an chéad charachtar nach spás bán é."
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "Níl \"%c\" dúnta i %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: deighilteoir idirstaid ar iarraidh"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "\"%s\": ainm neamhbhailí ar mhapa eochrach "
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "níl eagarthóireacht líne cumasaithe"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "\"%s\": ainm neamhbhailí ar mhapa eochrach "
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: ní féidir léamh: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "\"%s\": ní féidir dícheangail"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "\"%s\": ainm feidhme neamhaithnid"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "Níl %s ceangailte le heochair ar bith.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "Is féidir %s a ghlaoigh trí "
@@ -115,7 +131,7 @@ msgstr "comhaireamh lúibe"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "Gan chiall ach i lúb \"for\", \"while\" nó \"until\""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -125,11 +141,15 @@ msgstr ""
" \n"
" Gan SLONN, aischuirtear "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "Níl HOME socruithe"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "An iomarca argóintí"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "Níl OLDPWD socruithe"
@@ -138,7 +158,7 @@ msgstr "Níl OLDPWD socruithe"
msgid "line %d: "
msgstr "líne %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "rabhadh: "
@@ -148,11 +168,7 @@ msgstr "rabhadh: "
msgid "%s: usage: "
msgstr "%s: úsáid: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "An iomarca argóintí"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: tá argóint riachtanach don rogha"
@@ -167,7 +183,7 @@ msgstr "%s: argóint uimhriúil de dhíth"
msgid "%s: not found"
msgstr "%s: gan aimsiú"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: rogha neamhbhailí"
@@ -177,7 +193,7 @@ msgstr "%s: rogha neamhbhailí"
msgid "%s: invalid option name"
msgstr "%s: ainm neamhbhailí rogha"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "\"%s\": ní aitheantóir bailí é"
@@ -190,7 +206,7 @@ msgstr "uimhir ochtnártha neamhbhailí"
msgid "invalid hex number"
msgstr "uimhir heicsidheachúlach neamhbhailí"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "uimhir neamhbhailí"
@@ -204,7 +220,7 @@ msgstr "%s: sonrú neamhbhailí comhartha"
msgid "`%s': not a pid or valid job spec"
msgstr "\"%s\": ní aitheantas próisis nó sonrú jab bailí é"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: athróg inléite amháin"
@@ -276,50 +292,60 @@ msgstr "%s: earráid ag fáil na comhadlainne reatha: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: sonrú jab athbhríoch"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: ainm neamhbhailí gnímh"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: níl sonrú iomlánaithe ann."
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
"Rabhadh: b'fhéidir nach n-oibríonn an rogha -F mar a bheifeá ag súil leis."
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
"Rabhadh: b'fhéidir nach n-oibríonn an rogha -C mar a bheifeá ag súil leis."
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "níl an fheidhm chomhlánaithe á rith faoi láthair"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "Inúsáidte i bhfeidhmeanna amháin. "
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "Ní féidir \"-f\" a úsáid chun feidhmeanna a dhéanamh"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: feidhm inléite amháin"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: ní féidir athróga eagair a scrios mar seo."
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -349,24 +375,23 @@ msgstr "%s: níl sé luchtaithe go dinimiciúil"
msgid "%s: cannot delete: %s"
msgstr "%s: ní féidir scrios: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: is comhadlann é"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ní gnáthchomhad é"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: tá an comhad ró-mhór"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: ní féidir comhad dénártha a rith"
@@ -399,11 +424,11 @@ msgstr "Tá jabanna ag rith.\n"
msgid "no command found"
msgstr "Níor aimsíodh ordú"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "Sonrú staire"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: ní féidir comhad sealadach a oscailt: %s"
@@ -449,7 +474,7 @@ msgstr[0] "Ordaithe blaoisce a mheaitseálann an lorgfhocal \""
msgstr[1] "Ordaithe blaoisce a mheaitseálann na lorgfhocail \""
msgstr[2] "Ordaithe blaoisce a mheaitseálann na lorgfhocail '"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -457,12 +482,12 @@ msgstr ""
"Ní mheaitseálann ábhar cabhrach ar bith \"%s\". Bain triail as \"help help\" "
"nó \"man -k %s\" nó \"info %s\"."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: ní féidir oscailt: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -490,7 +515,7 @@ msgstr "Ní féidir níos mó ná ceann amháin as -anrw a úsáid."
msgid "history position"
msgstr "suíomh staire"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: theip ar fhairsingiú staire."
@@ -504,16 +529,16 @@ msgstr "%s: theip ar inlib"
msgid "no other options allowed with `-x'"
msgstr "Níl roghanna eile ceadaithe le \"-x\""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: is gá le argóintí bheith ina aitheantais phróisis nó jab"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Earráid neamhaithnid"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "Ag súil le slonn"
@@ -522,64 +547,69 @@ msgstr "Ag súil le slonn"
msgid "%s: not an indexed array"
msgstr "%s: ní athróg eagair é"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: sonrú neamhbhailí tuairisceora comhaid"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: comhaireamh neamhbhailí línte"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: bunphointe neamhbhailí eagair"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: candam neamhbhailí aisghlaoigh"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "ainm folamh athróga eagair"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "tacaíocht le hathróga eagair de dhíth"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "\"%s\": carachtar formáide ar iarraidh."
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: sonrú neamhbhailí teorann ama"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "\"%c\": carachtar formáide neamhbhailí."
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "rabhadh: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, fuzzy, c-format
msgid "missing unicode digit for \\%c"
msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
@@ -588,19 +618,24 @@ msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
msgid "no other directory"
msgstr "Níl comhadlann eile ann"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: argóint teorann neamhbhailí"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<níl comhadlann reatha ann>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "cruach fholamh chomhadlainne"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "innéacs cruaiche comhadlainne"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -624,7 +659,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -649,7 +684,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -670,41 +705,41 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: sonrú neamhbhailí teorann ama"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "earráid léite: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
"ní féidir \"return\" a dhéanamh ach ó fheidhm nó ó script rite le \"source\""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "Ní féidir feidhm agus athróg a dhíshocrú ag an am céanna."
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: ní féidir díshocrú"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: ní féidir díshocrú: %s inléite amháin"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: ní athróg eagair é"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ní feidhm é."
@@ -713,11 +748,11 @@ msgstr "%s: ní feidhm é."
msgid "shift count"
msgstr "comhaireamh iomlaoide"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "Ní féidir roghanna blaoisce a shocrú agus a dhíshocrú ag an am céanna."
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: ainm neamhbhailí ar rogha blaoisce"
@@ -759,7 +794,7 @@ msgstr "Is feidhm é %s.\n"
msgid "%s is a shell builtin\n"
msgstr "Is ordú ionsuite blaoisce é %s\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "Tá %s %s\n"
@@ -769,45 +804,45 @@ msgstr "Tá %s %s\n"
msgid "%s is hashed (%s)\n"
msgstr "Tá %s haiseáilte (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: argóint teorann neamhbhailí"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "\"%c\": droch-ordú"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: ní féidir teorainn a fháil: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "teorainn"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: ní féidir teorainn a athrú: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "uimhir ochtnártha"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "\"%c\": oibreoir neamhbhailí móid shiombalaigh"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "\"%c\": carachtar neamhbhailí móid shiombalaigh"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " líne "
@@ -821,305 +856,320 @@ msgstr "Ordú deireanach: %s\n"
msgid "Aborting..."
msgstr "Ag tobscor..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "earráid ordaithe neamhaithnid"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "droch-chineál ordaithe"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "drochnascóir"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "drochléim"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: athróg neamhcheangailte"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aimithe thar am ag feitheamh le hionchur: logáil amach uathoibríoch\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "Ní féidir an ionchur caighdeánach a atreorú ó /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "FORMÃID_AMA: \"%c\": carachtar formáide neamhbhaií."
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "earráid phíopa"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: srianta: ní féidir \"/\" a shonrú in ainmneacha ordaithe"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: níor aimsíodh an t-ordú"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "Tá %s %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: drochléirmhínitheoir"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ní féidir comhad dénártha a rith"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "Is ordú ionsuite blaoisce é %s\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr ""
"Ní féidir an tuairisceoir comhaid %d a dhúbailt mar thuairisceoir comhaid %d."
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "imithe thar leibhéal athchursála sloinn"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "gannsreabhadh na cruaiche athchúrsála"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "Earráid chomhréire sa slonn."
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "Deineadh iarracht sannadh go rud nach athróg é."
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "roinnt ar 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "fabht: droch-chomhartha expassign"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "Bhíothas ag súil le \":\" le haghaidh sloinn choinníollaigh."
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "Easpónant níos lú ná 0."
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "ag súil le aitheantóir tar éis réamhincriminte nó réamhdeicriminte"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "\")\" ar iarraidh"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "Earráid chomhréire: bhíothas ag súil le hoibreann."
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "earráid chomhréire: oibreoir neamhbhailí uimhríochta"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (comhartha earráide \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "Bonnuimhir uimhríochtúil neamhbhailí."
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "Tá an luach rómhór don bhonnuimhir."
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: earráid sloinn\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: ní féidir na máthairchomhadlanna a rochtain."
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr ""
"ní féidir an mód gan mhoill a athshocrú le haghaidh an tuairisceora chomhaid "
"%d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
"Ní féidir tuairisceoir comhaid nua a leithdháileadh le haghaidh ionchur bash "
"ón tuairisceoir comhaid %d."
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
"save_bash_input: tá an maolán ann cheana le haghaidh an tuairisceoir comhaid "
"nua %d"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp píopa"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "tá an aitheantas an phróisis ghabhlaithe %d sa jab %d atá ag rith"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "Tá an jab stoptha %d leis an ngrúpa próisis %ld á scrios."
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: próiseas %5ld (%s) sa phíblíne"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: próiseas %5ld (%s) marcáilte mar fós beo"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: níl an aitheantóir próisis sin ann."
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Comhartha %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Déanta"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stoptha"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Stoptha(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Ag Rith"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Déanta(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Scoir %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Stádas neamhaithnid"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(cuimhne dumpáilte)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (comhadlann oibre: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid macphróisis (%ld go %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: níl an próiseas %ld ina mhacphróiseas den bhlaosc seo."
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: níl taifead den phróiseas %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: tá an jab %d stoptha."
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: tá an jab críochnaithe."
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: tá an jab %d sa chúlra cheana."
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: líne %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (cuimhne dumpáilte)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(comhadlann oibre anois: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: theip ar getpgrp"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: araíonacht líne"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "ní féidir grúpa próisis teirminéil a shocrú (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "Níl rialú jabanna sa bhlaosc seo."
@@ -1141,55 +1191,55 @@ msgstr ""
msgid "unknown"
msgstr "neamhaithnid"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: bloc ar an liosta saor scriosta"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: glaoite le argóint bhloic á saoradh cheana"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: glaoite le argóint bhloic nár leithdháileadh"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: gannsreabhadh; tá mh_nbytes as raon"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: ní ionann méid na smután túis agus deiridh"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: glaoite le argóint bhloic nár leithdháileadh"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: gannsreabhadh; tá mh_nbytes as raon"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: ní ionann méideanna na smután túis agus deiridh"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr "register_alloc: an bhfuil an tábla leithdháilte lán le FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
"register_alloc: an bhfuil %p sa tábla mar atá sé leithdháilte cheana?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: an bhfuil %p sa tábla cheana mar ceann saor?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "Bonn neamhbhailí"
@@ -1212,35 +1262,35 @@ msgstr "%s: drochshonrú conaire líonra"
msgid "network operations not supported"
msgstr "Ní thacaítear le oibríochtaí líonra."
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: %s:%d: ní féidir %lu beart a leithdháileadh"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: %s:%d: ní féidir %lu beart a leithdháileadh"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Tá ríomhphost agat i $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Tá ríomhphost nua agat i $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Tá an ríomhphost i %s léite\n"
@@ -1258,124 +1308,124 @@ msgstr "Earráid chomhréire: \";\" gan súil leis."
msgid "syntax error: `((%s))'"
msgstr "Earráid chomhréire: \"((%s))\""
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: drochchineál ordaithe %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
"cáipéis leabaithe ag líne %d teormharcáilte le deireadh comhaid (\"%s\" á "
"lorg)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: ordú atreoraithe \"%d\" as raon."
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "Deireadh comhaid gan súil leis agus \"%c\" a mheaitseálann á lorg."
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "Deireadh comhaid gan súil leis agus \"]]\" á lorg."
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
"Earráid chomhréire i slonn coinníollach: comhartha \"%s\" gan suil leis."
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "Earráid chomhréire i slonn coinníollach."
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "Comhartha \"%s\" gan súil leis; ag súil le \")\"."
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "Ag súil le \")\""
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "Argóint \"%s\" gan súil lei go hoibreoir aonártha coinníollach."
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "Argóint gan súil lei go hoibreoir coinníollach aonártha ."
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
"Comhartha \"%s\" gan súil leis. Bhíothas ag súil le hoibreoir coinníollach "
"dénártha."
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "Bhíothas ag súil le hoibreoir coinníollach dénártha."
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "Argóint \"%s\" gan súil lei go hoibreoir dénártha coinníollach."
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "Argóint gan súil lei go hoibreoir dénártha coinníollach."
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "Comhartha \"%c\" gan súil leis in ordú coinníollach."
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "Comhartha \"%s\" gan súil leis in ordú coinníollach."
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "Comhartha %d gan súil leis in ordú coinníollach."
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
"Earráid chomhréire in aice comhartha \"%s\" nach rabhthas ag súil leis."
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "Earráid chomhréire in aice \"%s\""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "Earráid chomhréire: deireadh comhaid gan súil leis."
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "Earráid chomhréire"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Úsáid \"%s\" le scoir den mblaosc.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "Deireadh comhaid gan súil leis agus \")\" á lorg le meaitseáil."
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "Iomlánú: níor aimsíodh an fheidhm \"%s\"."
@@ -1385,90 +1435,90 @@ msgstr "Iomlánú: níor aimsíodh an fheidhm \"%s\"."
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: tá COMPSPEC neamhnitheach"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: drochnascóir \"%d\""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, fuzzy, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: \"%c\": carachtar formáide neamhbhailí"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "tuairisceoir comhaid as raon"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: atreorú athbhríoch"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: ní féidir comhad atá ann cheana a fhorscríobh."
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: srianta: ní féidir aschur a atreorú."
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "ní féidir cáipéis shealadach a chruthú don cháipéis leabaithe: %s"
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: ní féidir liosta a shannadh go ball eagair."
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "Ní thacaítear le /dev/(tcp|udp)/óstríomhaire/port gan líonrú."
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "Earráid atreoraithe: ní féidir an tuairisceoir comhaid a dhúbailt."
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "Níorbh fhéidir /tmp a aimsiú. Cruthaigh é le do thoil!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "Caithfidh /tmp bheith ina ainm comhadlainne bailí."
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: rogha neamhbhailí"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Níl ainm orm!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, leagan %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1477,43 +1527,44 @@ msgstr ""
"Úsáid:\t%s [rogha fada GNU] [rogha] ...\n"
"\t%s [rogha fada GNU] [rogha] comhad_scripte ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Roghanna fada GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Roghanna blaoisce:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD nó -c ordú nó -O rogha_shopt\t\t(glaoch amháin)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s nó -o rogha\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"Úsáid %s -c \"help set\" le haghaidh tuilleadh eolais faoi roghanna "
"blaoisce.\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
"Úsáid \"%s -c help\" le haghaidh tuilleadh eolais faoi orduithe ionsuite "
"blaoisce.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Úsáid an t-ordú \"bashbug\" le tuarascáil a sheoladh faoi fhabht.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: oibríocht neamhbhailí"
@@ -1687,132 +1738,137 @@ msgstr "Comhartha neamhaithnid #"
msgid "Unknown Signal #%d"
msgstr "Comhartha neamhaithnid #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "Drochionadú: níl \"%s\" dúnta i %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: ní féidir liosta a shannadh go ball eagair."
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadaíocht próisis."
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadaíocht próisis."
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "Ní féidir píopa ainmnithe %s a oscailt le haghaidh léamh."
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "Ní féidir píopa ainmnithe %s a oscailt le haghaidh scríofa."
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
"Ní féidir an píopa ainmnithe %s a dhúbailt mar thuairisceoir comhaid %d."
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadú ordaithe."
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadú ordaithe."
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
"command_substitute: ní feidir an píopa a dhúbailt mar thuairisceoir comhaid "
"1."
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: slonn fotheaghráin < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: drochionadú"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: ní féidir sannadh mar seo."
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "drochionadú: níl \"`\" dúnta i %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "gan meaitseáil: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "Bhíothas ag súil le hargóint."
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: ag súil le slonn slánuimhreach."
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "Ag súil le \")\""
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "Ag súil le \")\", ach fuarthas %s."
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: ag súil le hoibreoir aonártha."
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: ag súil le hoibreoir dénártha."
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "\"]\" ar iarraidh"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "Uimhir chomhartha neamhbhailí"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: drochluach sa liosta_gaistí[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1820,72 +1876,87 @@ msgstr ""
"run_pending_traps: is SIG_DFL an láimhseálaí comharthaí; %d (%s) á "
"athsheoladh chugam féin."
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: droch-chomhartha %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "Earráid agus sainmhíniú na feidhme \"%s\" á iompórtáil."
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "Tá an leibhéal blaoisce (%d) ró-ard; á athshocrú go 1."
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: níl comhthéacs feidhme sa scóip reatha."
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: ní féidir liosta a shannadh go ball eagair."
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: níl comhthéacs feidhme sa scóip reatha"
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "Carachtar neamhbhailí %d sa teaghrán easpórtála le haghaidh %s."
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "Níl \"=\" sa teaghrán easpórtála le haghaidh %s."
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr "pop_var_context: ní comhthéacs feidhme é ceann shell_variables"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: níl comhthéacs global_variables ann"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: ní scóip shealadach thimpeallachta é ceann shell_variables"
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: ní féidir oscailt: %s"
-#: variables.c:4791
+#: variables.c:5262
#, fuzzy, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s as raon"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Cóipcheart © 2009 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1893,37 +1964,28 @@ msgstr ""
"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/"
"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, leagan %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr "Is saorbhogearra é seo; tá cead agat é a athrú agus a dháileadh.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
"Ní ghabhann baránta ar bith leis, sa mhéid is atá sin ceadaithe de réir "
"dlí.\n"
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr "Cóipcheart © 2009 Free Software Foundation, Inc."
-#: version2.c:87
-#, fuzzy, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/"
-"gpl.html>\n"
-
#: xmalloc.c:91
#, fuzzy, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
@@ -1955,7 +2017,7 @@ msgstr "unalias [-a] ainm [ainm ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1977,7 +2039,7 @@ msgstr "caller [SLONN]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|-P] [comhadlann]"
#: builtins.c:66
@@ -2002,7 +2064,7 @@ msgstr "command [-pVv] ORDÚ [ARGÓINT ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFilrtux] [-p] [ainm[=luach] ...]"
#: builtins.c:78
@@ -2115,7 +2177,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o ainm-rogha] [argóint ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [ainm ...]"
#: builtins.c:144
@@ -2164,7 +2227,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] ainm [ainm ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [teorainn]"
#: builtins.c:172
@@ -2172,12 +2236,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mód]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [aitheantas]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [aitheantas_próisis]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [aitheantas]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2385,12 +2451,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2408,7 +2476,7 @@ msgstr ""
" Stádas Scortha:\n"
" Is é 0 an stádas scortha mura bhfuil N níos lú ná 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2427,7 +2495,7 @@ msgstr ""
" Stádas Scortha:\n"
" Is é 0 an stádas scortha mura bhfuil N níos lú ná 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2452,7 +2520,7 @@ msgstr ""
"bhfuil\n"
" ORDÚ-IONSUITE-BLAOISCE ina ordú ionsuite blaoisce."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2482,7 +2550,7 @@ msgstr ""
"blaoisce, nó\n"
" sa chás go bhfuil SLONN neamhbhailí."
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2505,13 +2573,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2519,7 +2595,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2547,7 +2623,7 @@ msgstr ""
" Aischuirtear luach de 0 mura thugtar rogha neamhbhailí nó mura féidir\n"
" an chomhadlann reatha a léamh."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2563,7 +2639,7 @@ msgstr ""
" Stadas Scortha:\n"
" Éiríonn leis i gcónaí."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2575,7 +2651,7 @@ msgstr ""
" Stádas Scortha:\n"
" Éiríonn leis i gcónaí."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2587,7 +2663,7 @@ msgstr ""
" Stádas Scortha:\n"
" Teipeann air i gcónaí."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2623,7 +2699,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear an stádas scortha ó ORDÚ, nó teip mura aimsítear ORDÚ."
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2643,6 +2719,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2658,10 +2735,11 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2671,7 +2749,8 @@ msgstr ""
" \n"
" Imithe i léig. Feic \"help declare\"."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2682,8 +2761,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Sainigh athróga logánta.\n"
" \n"
@@ -2701,11 +2780,14 @@ msgstr ""
"earráid,\n"
" nó mura bhfuil an bhlaosc ag rith feidhme."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2717,6 +2799,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2760,7 +2843,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear rath ach i gcás earráide scríofa."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2782,7 +2865,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear rath ach i gcás earráide scríofa."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2809,7 +2892,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2829,7 +2912,7 @@ msgstr ""
" Aischuirtear stádas scortha an ordaithe, nó rath más ordú neamhnitheach "
"é."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2870,7 +2953,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2893,7 +2976,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2905,7 +2988,7 @@ msgstr ""
" Scoireann den bhlaosc le stádas N. Má fhágtar N ar lár, is é stádas\n"
" an chéad ordaithe deireanaigh an stádas scortha."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2918,7 +3001,7 @@ msgstr ""
" Scoireann de bhlaosc logála isteach le stádas scortha N. Aischuirtear\n"
" earráid má ritear é i mblaosc nach blaosc logála isteach í."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2973,7 +3056,7 @@ msgstr ""
" Stádas Scortha:n\\ Aischuirtear rath nó stádas an ordaithe rite; "
"neamh-nialas má tharlaíonn earráid."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2994,7 +3077,7 @@ msgstr ""
" Stádas Scortha:\n"
" Stádas an ordaithe curtha sa tulra, nó teip má tharlaíonn earráid."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3018,7 +3101,7 @@ msgstr ""
" Aischuirtear rath ach má tharlaíonn earráid nó mura bhfuil\n"
" rialú jabanna cumasaithe."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3029,7 +3112,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3042,7 +3125,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3083,7 +3166,7 @@ msgstr ""
" Aischuirtear rath ach sa chás nach n-aimsítear PATRÚN nó go dtugtar\n"
" rogha neamhbhailí."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3117,7 +3200,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3126,7 +3209,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3141,7 +3224,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3172,7 +3255,7 @@ msgstr ""
" Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí\n"
" nó SONRÚ_JAB neamhbhailí."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3194,7 +3277,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3239,7 +3322,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3274,20 +3357,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3309,7 +3395,7 @@ msgstr ""
" Aischuirtear N, nó teip sa chás nach bhfuil an bhlaosc ag rith feidhme "
"nó scripte."
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3375,7 +3461,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3394,7 +3480,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3403,6 +3489,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3414,7 +3502,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3433,7 +3521,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3445,7 +3533,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3453,7 +3543,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3464,7 +3554,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3478,7 +3568,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3492,7 +3582,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3557,6 +3647,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3573,7 +3665,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3586,7 +3678,7 @@ msgstr ""
" caithfear \"]\" go díreach a bheith ann mar an argóint\n"
" dheireanach, le bheith comhoiriúnach leis an \"[\" ag an tús."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3606,7 +3698,7 @@ msgstr ""
" Stádas Scortha:\n"
" Éiríonn leis i gcónaí."
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3650,7 +3742,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3680,7 +3772,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3709,6 +3801,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3724,7 +3819,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3742,38 +3837,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3786,7 +3885,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3817,7 +3916,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3837,7 +3936,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3853,7 +3952,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3864,7 +3963,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3885,7 +3984,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3896,7 +3995,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3907,7 +4006,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3920,7 +4019,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3944,7 +4043,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear rath mura bhfuil AINM inléite amháin."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3962,7 +4061,7 @@ msgstr ""
" Stádas Scortha:\n"
" Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3976,7 +4075,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3987,7 +4086,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4015,7 +4114,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4069,7 +4168,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -4100,7 +4199,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -4127,7 +4226,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -4156,7 +4255,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -4177,7 +4276,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -4194,9 +4293,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -4204,13 +4303,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -4237,7 +4342,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4260,7 +4365,7 @@ msgstr ""
" Aischuirtear rath mura thugtar rogha neamhbhailí agus mura tharlaíonn "
"earráid."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4291,7 +4396,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4332,7 +4437,7 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -4342,6 +4447,21 @@ msgstr ""
" \n"
" Comhchiallach le \"mapfile\"."
+#, fuzzy
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Cóipcheart © 2009 Free Software Foundation, Inc."
+
+#, fuzzy
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos déanaí <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [aitheantas_próisis]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr ""
#~ "xrealloc: ní féidir %lu beart a athleithdháileadh (%lu beart leithdháilte)"
diff --git a/po/gl.gmo b/po/gl.gmo
new file mode 100644
index 00000000..a0e98882
--- /dev/null
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 00000000..2b9e530f
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,4488 @@
+# Galician translation for bash package.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+#
+# Leandro Regueiro <leandro.regueiro@gmail.com>, 2011.
+# Francisco Diéguez <frandieguez@ubuntu.com>, 2012.
+# Fran Dieguez <frandieguez@gnome.org>, 2012.
+#
+# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas
+# colaborar connosco, podes atopar máis información en <http://trasno.net>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bash 4.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2012-02-23 14:38+0100\n"
+"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"Language: gl\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:51
+msgid "bad array subscript"
+msgstr "subíndice de matriz incorrecto"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: non é posíbel converter a matriz de indizada a asociativa"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: índice de matriz asociativa non válido"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: non é posíbel asignar a un índice que non é numérico"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: se debe usar un subíndice ao asignar a unha matriz asociativa"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: non foi posíbel crear: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr ""
+"bash_execute_unix_command: non foi posíbel atopar a combinación de teclas "
+"para a orde"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: o primeiro carácter que non é espazo en branco non é `\"'"
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "no hai un `%c' que peche en %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: falta un `:' separador"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "`%s': nome de alias non válido"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "no se activó a edición de liña"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "`%s': nome de combinación de teclas non válido"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: non se pode leer: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "%s: non se pode borrar a asignación"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "`%s': nome de función descoñecido"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s non está asignado a ningunha tecla.\n"
+
+#: builtins/bind.def:316
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s pódese invocar a través de "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "contía de ciclo"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "só ten significado nun ciclo `for', `while' ou `until'"
+
+#: builtins/caller.def:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Devolve o contexto da chamada a subrutina actual.\n"
+" \n"
+" Sen EXPR, devovle "
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME non está definido"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "demasiados argumentos"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD non está definido"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "liña %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "aviso: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: uso: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: a opción require un argumento"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: requírese un argumento numérico"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: non se atopou"
+
+#: builtins/common.c:214 shell.c:801
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: opción non válida"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: nome de opción non válido"
+
+#: builtins/common.c:228 general.c:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "`%s': non é un identificador válido"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "número octal non válido"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "número hexadecimal non válido"
+
+#: builtins/common.c:242 expr.c:1470
+msgid "invalid number"
+msgstr "número non válido"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: especificación de sinal non válida"
+
+#: builtins/common.c:257
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "`%s': no é un pid ou unha especificación válida de traballo"
+
+#: builtins/common.c:264 error.c:488
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: variábel de só lectura"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s fóra 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 fóra de rango"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: non existe ese traballo"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: no hai control de traballos"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "no ha control de traballos"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: restrinxido"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "restrinxido"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: no é una orde interna do shell"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "erro de escritura: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "erro ao estabelecer os atributos da terminal: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "erro ao obtener os atributos da terminal: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: erro ao obtener o directorio actual: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: especificación de traballo ambigüa"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: nome de acción non válido"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: non hai completado de especificación"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "aviso: é posíbel que a opción -F non funcione como se espera"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "aviso: é posíbel que a opción -C non funcione como se espera"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "non se está executando a función de completado"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "só se pode usar dentro dunha función"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "non se pode use `-f' para facer funcións"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: función de só lectura"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: non é posíbel destruír variábeis de matriz desta forma"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: non é posíbel converter unha matriz asociativa a indizada"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "a carga dinámica non está dispoñíbel"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "non é posíbel abrir o obxecto compartido %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "non é posíbel atopar %s no obxecto compartido %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: non foi cargado dinamicamente"
+
+#: builtins/enable.def:474
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: non foi posíbel eliminar: %s"
+
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: é un directorio"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: non é un ficheiro regular"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: o ficheiro é demasiado grande"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: non é posíbel executar o ficheiro binario"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: non foi posíbel executar: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "logout\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "non é un shell de entrada: use `exit'"
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Hai traballos pendentes.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Hay traballos en execución.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "non foi posíbel atopar a orde"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "especificación de historial"
+
+#: builtins/fc.def:390
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: non é posíbel abrir o ficheiro temporal: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "actual"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "o traballo %d iniciou sen control de traballo"
+
+#: 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: a opción require un argumento -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "asociación desactivada"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: táboa de asociación baleira\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "coinc\torde\n"
+
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Orde do shell que coincide coa palabra `"
+msgstr[1] "Orde do shell que coincide coas palabras `"
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"non hai temas de axuda que coincidan con «%s». Probe «help help» ou «man -k "
+"%s» ou «info %s»"
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: non foi posíbel abrir: %s"
+
+#: builtins/help.def:485
+#, 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 ordes do shell están definidas internamente. Teclee `help' para\n"
+"ver esta lista.\n"
+"Teclee `help nome' para saber máis sobre a función `nome'.\n"
+"Use `info bash' para saber máis sobre o shell en xeral.\n"
+"Use `man -k' o `info' para saber máis sobre as órdenes que non están nesta "
+"lista.\n"
+"\n"
+"Un asterisco (*) xunto a un nome significa que a orde está desactivada.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "non foi posíbel usar máis dun de -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "posición no historial"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: fallou a expansión do historial"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: fallou inlib"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "non se permiten outras opcións con «-x»"
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: os argumentos deben ser procesos ou IDs de traballos"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Erro descoñecido"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "agardábase unha expresión"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: non é unha matriz indizada"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: especificación de descritor de ficheiro non válida"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: descritor de ficheiro non válido: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: conta de liñas non válida"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: orixe de matriz non válido"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: quantum de chamada non válido"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "nome de variábel de matriz baleiro"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "requírese a compatibilidade de variábel de matriz"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "`%s': falta o carácter de formato"
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "`%c': especificación de formato de tempo non válida"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "`%c': carácter de formato non válido"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "aviso: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "falta o díxito hexadecimal para \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "falta o díxito unicode para \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "non hai outro directorio"
+
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: límite de argumento non válido"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<non hai directorio actual>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "a pila de directorios está baleira"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "índice da pila de directorios"
+
+#: builtins/pushd.def:689
+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 ""
+"Mostra a lista de directorios actualmente gravados. Os directorios\n"
+" gárdanse na lista coa orde `pushd'; pode ir saíndo da\n"
+" lista coa orde `popd'.\n"
+" \n"
+" Opcións:\n"
+" -c\tlimpa a pila de directorios, eliminando todos os elementos\n"
+" -l\tnon mostra as versións con prefixo de til dos directorios\n"
+" \trelativos ao seu directorio inicial\n"
+" -p\tmostra a pila de directorios cunha entrada por liña\n"
+" -v\tmuestra a pila de directorios cunha entrada por liña coa\n"
+" \tsúa posición na pila como prefixo\n"
+" \n"
+" Argumentos:\n"
+" +N\tMostra a N-ésima entrada contando desde a esquerda da\n"
+" \tlista mostrada por dirs cando se chama sen opcións,\n"
+" \tcomezando desde cero.\n"
+" \n"
+" -N\tMostra a N-ésima entrada contando desde a dereita da\n"
+"\tlista mostrada por dirs cando se chama sen opcións,\n"
+"\tcomezando desde cero."
+
+#: builtins/pushd.def:711
+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 ""
+"Engade un directorio ao tope da rima de directorios, ou rota\n"
+" a pila, facendo que o novo tope da rima sexa o\n"
+" directorio de trabajo actual. Sen argumentos, intercambia\n"
+" os dous directorios do tope.\n"
+" \n"
+" Argumentos:\n"
+" +N\tRota a pila para que o N-ésimo directorio (contando\n"
+" \tda izquierda da lista mostrada por `dirs',\n"
+" \tcomezando desde cero) estea no tope.\n"
+" -N\tRota a pila para que o N-ésimo directorio (contando\n"
+" \tda derecha da lista mostrada por `dirs',\n"
+" \tcomezando desde cero) estea no tope.\n"
+" \n"
+" dir\tagrega DIR á rima de directorios no tope,\n"
+" \tfacéndoo o novo directorio de traballo actual.\n"
+" \n"
+" A orde interna `dirs' mostra a rima de directorios."
+
+#: builtins/pushd.def:736
+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 da pila de directorios. Sen argumentos, borra\n"
+" directorio do tope da pila, e cambia ao novo directorio tope.\n"
+" \n"
+" Opcións:\n"
+" -n\tsuprime o cambio normal de directorio cando se borra\n"
+" \tdirectorios da pila, así só se manipula a pila.\n"
+" \n"
+" Argumentos:\n"
+" +N\tBorra a N-ésima entrada contando da esquerda da\n"
+" \tlista mostrada por `dirs', comenzando desde cero.\n"
+" \tPor exemplo: `popd +0' borra o primeiro directorio, `popd +1'\n"
+" \to segundo.\n"
+" \n"
+" -N\tBorra a N-ésima entrada contando da derecha da\n"
+" \tlista mostrada por `dirs', comezando desde cero.\n"
+" \tPor exemplo: `popd -0' borra o último directorio, `popd -1'\n"
+" \to penúltimo.\n"
+" \n"
+" A orde interna `dirs' mostra a pila de directorios."
+
+#: builtins/read.def:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: especificación de tempo de expiración non válida"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "erro de lectura: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr "só se pode usar «return» nunha función ou guión lido con «source»"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "non é posíbel borrar ao mesmo tempo unha función e unha variábel"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: non é posíbel borrar"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: non é posíbel borrar: %s é de só lectura"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: non é unha variábel de matriz"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: non é unha función"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "conta de shift"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "non é posíbel activar e desactivar opcións do shell simultaneamente"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: nome de opción do shell non válido"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "requírese un argumento de nome de ficheiro"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: non se atopou o ficheiro"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "non é posíbel suspender"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "non é posíbel suspender un shell de entrada"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s é un alias de `%s'\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s é unha palabra chave do shell\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s é unha función\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s é unha orde interna do shell\n"
+
+#: builtins/type.def:317 builtins/type.def:393
+#, 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 está asociado (%s)\n"
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: límite de argumento non válido"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "`%c': orde errónea"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: non é posíbel obter o límite: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "límite"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: non é posíbel modificar o límite: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "número octal"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "`%c': operador de modo simbólico non válido"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "`%c': carácter de modo simbólico non válido"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " liña "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "última orde: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Abortando…"
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "erro de orde descoñecido"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "tipo de orde erróneo"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "conector erróneo"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "salto erróneo"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: variable sen asignar"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\aexpirou mentres agardaba algunha entrada: auto-logout\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "non é posíbel redirixir a saída estándar desde /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: `%c': carácter de formato non válido"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "erro de canalización"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: restrinxido: non se pode especificar `/' en nomes de ordes"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: non se atopou a orde"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: intérprete erróneo"
+
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: non é posíbel executar o ficheiro binario"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s é unha orde interna do shell\n"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "no se pode duplicar o df %d ao df %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "excedeuse o nivel de recursión da expresión"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "desbordamento da base da pila de recursión"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "erro de sintaxe na expresión"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "tentouse asignar a algo que non é unha variábel"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "división entre 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "erro: elemento de asignación de expresión erróneo"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "agardábase `:' para a expresión condicional"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "expoñente menor que 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr ""
+"agardábase un identificador despois do pre-incremento ou pre-decremento"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "falta un `)'"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "erro de sintaxe: agardábase un operando"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "erro de sintaxe: operador aritmético non válido"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (o elemento de erro é \"%s\")"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "base aritmética non válida"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "valor demasiado grande para a base"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: erro de expresión\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: non é posíbel acceder aos directorios pai"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "non é posíbel restabelecer o modo nodelay para o df %d"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr ""
+"non é posíbel asignar un novo descritor de ficheiros para a entrada de bash "
+"desde o fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr ""
+"save_bash_input: o almacenamento intermedio xa existe para o novo fd %d"
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: tubería de pgrp"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "o pid `forked' %d aparece no traballo en execución %d"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "borrando o trabajo detido %d con grupo de proceso %ld"
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: o proceso %5ld (%s) en the_pipeline"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: pid %5ld (%s) márcase como vivo aínda"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: non existe tal pid"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Sinal %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Feito"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "Detido"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Detido(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "En execución"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Feito(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Saída %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Estado descoñecido"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(«core» xerado) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (dir agora: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "setpgid fillo (%ld a %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: pid %ld non é un proceso fillo desta shell"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Non hai un rexistro do proceso %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: o traballo %d está detido"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: o traballo rematou"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: o trabajo %d xa está en segundo plano"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr "waitchld: actívase WNOHANG para evitar o bloque indefinido"
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: liña %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " («core» generado)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(dir agora: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_jobs_control: fallou getpgrp"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_jobs_control: disciplina de liña"
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_jobs_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "non é posíbel estabelecer o grupo de procesos de terminal (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "non hai control de trabalos nesta shell"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: fallou a 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
+msgid "unknown"
+msgstr "descoñecido"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: bloque na lista libre sobreescrito"
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: chamouse cun argumento de bloque previamente liberado"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: chamouse cun argumento de bloque sen asignar"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr "free: os tamaños dos anacos de inicio e fin son diferentes"
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: chamouse cun argumento de bloque sen asignar"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr ""
+"realloc: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: os tamaños dos anacos de inicio e fin son diferentes"
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: a táboa alloc está chea con FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p xa está na táboa como asignado?\n"
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p xa está na táboa como libre?\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "base non válida"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: anfitrión descoñecido"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: servizo non válido"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: especificación de ruta de rede errónea"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "non hai compatibilidade para operacións de rede"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL non se pode cambiar a configuración rexional (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr ""
+"setlocale: LC_ALL: non se pode cambiar a configuración rexional (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Ten mensaxes en $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Ten unha nova mensaxe en $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "O correo en %s foi lido\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "error de sintaxe: requírese unha expresión aritmética"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "error sintáctico: `;' non esperado"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "erro de sintaxe: `((%s))'"
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: tipo de instrución %d erróneo"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr ""
+"o documento-aquí na liña %d está delimitado por fin-de-fichero (agardábase `"
+"%s')"
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: a instrucción de redirección `%d' está fóra de rango"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "EOF inesperado mentres se buscaba un `%c' coincidente"
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "EOF inesperado mentres se buscaba `]]'"
+
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "error de sintaxe na expresión condicional: elemento inesperado `%s'"
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "error sintáctico na expresión condicional"
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "elemento inesperado `%s', agardábase `)'"
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "agardábase `)'"
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "argumento inesperado `%s' para o operador unario condicional"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "argumento inesperado para o operador unario condicional"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "elemento inesperado `%s', agardábase un operador binario condicional"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "agardábase un operador binario condicional"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "argumento inesperado `%s' para o operador binario condicional"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "argumento inesperado para o operador binario condicional"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "elemento inesperado `%c' na orde condicional"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "elemento inesperado `%s' na orde condicional"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "elemento inesperado %d na orde condicional"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "error de sintaxe perto do elemento inesperado `%s'"
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "erro de sintaxe cerca de «%s»"
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "error de sintaxe: non se agardaba o final do fichero"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "erro de sintaxe"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Use «%s» para deixar o shell.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "EOF non agardado mentres se buscaba un «)» coincidente"
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: non se atopa a función `%s'"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: COMPSPEC nulo"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: conector erróneo `%d'"
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: descriptor de fichero non válido"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: punteiro a ficheiro NULL"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: `%c': carácter de formato non válido"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "descritor de ficheiro fóra de rango"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: redireccionamento ambigüo"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: non se pode sobreescribir un fichero existente"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: restrinxido: no se pode redirixir a saída"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "non se pode crear un fichero temporal para o documento-aquí: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: non é posíbel asignar o gd á variábel"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "non se admite /dev/(tcp|udp)/anfitrion/porto sen rede"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "erro de redirección: non é posíbel duplicar o fd"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "non é posíbel atopar /tmp, por favor creeo!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp debe ser un nome de directorio válido"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: opción non válida"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Non teño nome!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, versión %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Uso:\t%s [opción GNU longa] [opción] ...\n"
+"\t%s [opción GNU longa] [opción] guión-do-shell\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "Opcións GNU longas:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Opcións do shell:\n"
+
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD o -c orde ou -O opcion_shopt\t\t(só invocación)\n"
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t-%s ou -o opción\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+"Escriba `%s -c \"help set\"' para máis información sobre as opcións do "
+"shell.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+"Escriba `%s -c help' para máis información sobre as ordes internas do "
+"shell.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Use a orden `bashbug' para reportar erros.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: operación non válida"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Sinal ambigüa"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Colgar"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Interromper"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Saír"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Instrución ilegal"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT rastreo/captura"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "instrución ABORT"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "instrución EMT"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Excepción de coma flotante"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Matado"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Erro no bus"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Violación de segmento"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Chamada ao sistema errónea"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Tubería rota"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Temporizador"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Rematado"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Condicón de E/s urxente"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Detido (sinal)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Continúa"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "O proceso fillo morreu ou está parado"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Detido (entrada pola terminal)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Detido (saída pola terminal)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "E/S listas"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "Límite de CPU"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "Límite de ficheiros"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Alarma (virtual)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Alarma (contorno)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Xanela cambiada"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Bloqueo de gravación"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "Sinal de usuario 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "Sinal de usuario 2"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "entrada de datos HFT pendente"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "fallo de enerxía inminente"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "caída do sistema inminente"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "migrando o proceso a outra CPU"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "erro de programación"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "o modo monitor HFT foi concedido"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "o modo monitor HTF foi retirado"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "a secuencia de son HFT foi completada"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Solicitude de información"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Sinal descoñecido #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Sinal descoñecido #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "susbtitución errónea: non hai un `%s' que peche en %s"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: no é posíbel asignar unha lista a un membro da matriz"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "non é posíbel crear a tubería para a sustitución do proceso"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "non é posíbel crear un proceso fillo para a substitución do proceso"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "non é posíbel abrir a tubería chamada %s para lectura"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "non é posíbel abrir a tubería chamada %s para escritura"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "non é posíbel duplicar a tubería chamada %s como df %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "non é posíble crear a tubería para a substitución da orde"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "non é posíbel crear un proceso fillo para a substitución da orde"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: non é posíbel duplicar a tubería como fd 1"
+
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parámetro nulo ou non estabelecido"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: expresión de subcadea < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: substitución errónea"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: non é posíbel asignar de esta forma"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"versiones futuras do intérprete obligarán a evaluación como unha "
+"substitución aritmética"
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "substitución errónea: non hai unha \"`\" que peche en %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "non hai concidencia: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "agardábase un argumento"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: agardábase unha expresión enteira"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "agardábase `)'"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "`)' agardábase, atopouse %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: agardábase un operador unario"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: agardábase un operador binario"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "falta un «]»"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "número de sinal non válido"
+
+#: trap.c:371
+#, 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:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: o manexador de sinal é SIG_DFL, reenviando %d (%s) a sí "
+"mesmo"
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: sinal errónea %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "erro ao importar a definición da función para «%s»"
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "o nivel de shell (%d) é demasiado alto, restabelécese a 1"
+
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: non hai contexto de función no ámbito actual"
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: non é posíbel asignar o gd á variábel"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: non hai contexto de función no ámbito actual"
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s ten exportstr nulo"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "carácter non válido %d en exportsrt para %s"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "non hai «=» en exportstr para %s"
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr ""
+"pop_var_context: a cabezak de shell_variables non é un contexto de función"
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: non é un contexto global_variables "
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+"pop_scope: a cabeza de shell_variables non é un ámbito de ambiente temporal"
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: non é posíbel abrir como FICHEIRO"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s fóra de rango"
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv3+: GPL de GNU versión 3 ou posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, versión %s (%s)\n"
+
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Isto é software libre; vostede é libre de cambialo e redistribuilo.\n"
+
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Non hai GARANTÃA, á extensión permitida pola ley.\n"
+
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: non é posíbel asignar %lu bytes (%lu bytes asignados)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: non é posíbel asignar %lu bytes"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: non é posíbel asignar %lu bytes (%lu bytes asignados)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: non é posíbel asignar %lu bytes"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [nome[=valor] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] nome [nome ...]"
+
+#: builtins.c:51
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m comb_teclas] [-f ficheiro] [-q nome] [-u nome] [-r "
+"secteclas] [-x secteclas:orde-shell] [keyseq:función-readline ou 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 [orde-interna-shell [arg ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [expresión]"
+
+#: builtins.c:64
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [directorio]"
+
+#: 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] orde [arg ...]"
+
+#: builtins.c:76
+#, fuzzy
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [nome[=valor] ...]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] nome[=valor] ..."
+
+#: builtins.c:80
+msgid "local [option] name[=value] ..."
+msgstr "local [option] 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
+msgid "enable [-a] [-dnps] [-f filename] [name ...]"
+msgstr "enable [-a] [-dnps] [-f nomeficheiro] [nome ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [arg ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts cadena_opcións nome [arg]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a ome] [orde [argumentos ...]] [redirecció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 nome_e] [-lnr] [primeiro] [último] ou fc -s [pat=rep] [orde]"
+
+#: builtins.c:107
+msgid "fg [job_spec]"
+msgstr "fg [id_traballo]"
+
+#: builtins.c:111
+msgid "bg [job_spec ...]"
+msgstr "bg [id_traballo ...]"
+
+#: builtins.c:114
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p ruta] [-dt] [nome ...]"
+
+#: builtins.c:117
+msgid "help [-dms] [pattern ...]"
+msgstr "help [-dms] [patrón ...]"
+
+#: builtins.c:121
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d desprazamento] [n] ou history -anrw [ficheiro] ou history -"
+"ps arg [arg...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [idtraballo ...] ou jobs -x orde [args]"
+
+#: builtins.c:129
+msgid "disown [-h] [-ar] [jobspec ...]"
+msgstr "disown [-h] [-ar] [id_traballo ...]"
+
+#: builtins.c:132
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s id_sinal | -n num_sinal | -id_sinal] pid | id_traballo ... ou kill -"
+"l [id_sinal]"
+
+#: 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] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
+"prompt] [-t timeout] [-u fd] [nome ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o nome-opción] [--] [arg ...]"
+
+#: builtins.c:142
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [nome ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [nome[=valor] ...] ou export -p"
+
+#: builtins.c:146
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [nome[=valor] ...] ou readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source ficheiro [arguments]"
+
+#: builtins.c:152
+msgid ". filename [arguments]"
+msgstr ". ficheiro [argumentos]"
+
+#: 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... ]"
+
+#: builtins.c:162
+msgid "times"
+msgstr "times"
+
+#: builtins.c:164
+msgid "trap [-lp] [[arg] signal_spec ...]"
+msgstr "trap [-lp] [[arg] id_sinal ...]"
+
+#: builtins.c:166
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] nome [nome ...]"
+
+#: builtins.c:169
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [modo]"
+
+#: builtins.c:175
+#, fuzzy
+msgid "wait [-n] [id ...]"
+msgstr "wait [id]"
+
+#: builtins.c:179
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for NOME [in PALABRAS ... ] ; do ORDES; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( exp1; exp2; exp3 )); do ORDES; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select NOME [in PALABRAS ... ;] do ORDES; 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 PALABRA in [PATRÓN [| PATRÓN]...) ORDES ;;]... esac"
+
+#: builtins.c:192
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr "if ORDES; then ORDES; [ elif ORDES; then ORDES; ]...[ else ORDES; ] fi"
+
+#: builtins.c:194
+msgid "while COMMANDS; do COMMANDS; done"
+msgstr "while ORDES; do ORDES; done"
+
+#: builtins.c:196
+msgid "until COMMANDS; do COMMANDS; done"
+msgstr "until ORDES; do ORDES; done"
+
+#: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NOME] orden [redireccións]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function nome { ORDES ; } ou nome () { ORDES ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ ORDES ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( expresión ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ expresión ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variables - Nomes e significados de algunhas variábeis de shell"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | dir]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [nome_opción ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v var] formato [argumentos]"
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
+"W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
+"sufixo] [nome ...]"
+
+#: builtins.c:233
+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 opción] [-A acción] [-G patglob] [-W "
+"listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
+"sufixo] [palabra]"
+
+#: builtins.c:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o opción] [-DE] [nome ...]"
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
+"quantum] [matriz]"
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
+"quantum] [matriz]"
+
+#: builtins.c:254
+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 ""
+"Define ou mostra aliases.\n"
+" \n"
+" `alias' sen argumentos mostra a lista de aliases na forma\n"
+" reutilizábel `alias NOMBRE=VALOR' na saída estándar.\n"
+" \n"
+" De outra maneira, defínese un alias por cada NOME cuxo VALOR se\n"
+" forneza. Un espazo final en VALOR causa que se revise\n"
+" a seguinte palabra para substitución de alias cando se expande\n"
+" o alias.\n"
+" \n"
+" Opciones:\n"
+" -p\tMuestra todos los aliases definidos en un formato reusable\n"
+" \n"
+" Estado de salida:\n"
+" alias devuelve verdadero a menos que se de un NOMBRE para el cual\n"
+" no se haya definido ningún alias."
+
+#: builtins.c:276
+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 cada NOME da lista de alias definidos.\n"
+" \n"
+" Opcións:\n"
+" -a\telimina todas as definicións de alias.\n"
+" Devovle verdadero a menos que un NOME non sexa un alias existente."
+
+#: builtins.c:289
+#, 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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"Estabelece secuencias de teclas Readline e variábeis.\n"
+"\n"
+" Asigna unha secuencia de teclas a unha función Readline ou a unha macro, "
+"ou\n"
+" estabelece unha variábel Readline. A sintaxe dos argumentos que\n"
+" non son opcións é equivalente á que se encontra en ~/.inputrc,\n"
+" pero débese pasar como un só argumento:\n"
+" p.e., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" opcións:\n"
+" \n"
+" -m comb_teclas Usa COMB_TECLAS como a combinación de teclas pola\n"
+" duración desta orde. Os nomes de combinacións\n"
+" de teclas aceptábeis son emacs, emacs-standard,\n"
+" emacs-meta, emacs-ctlx, vi, vi-move, vi-command e\n"
+" vi-insert.\n"
+" -l Enlista os nomes das funcións.\n"
+" -P Enlista os nomes das funcións e asignacións.\n"
+" -p Enlista as funcións e asignacións nunha forma que\n"
+" se pode reusar como entrada.\n"
+" -S Enlista as secuencias de teclas que invocan macros\n"
+" e os seus valores.\n"
+" -s Enlista as secuencias de teclas que invocan macros\n"
+" e os seus valores nunha forma que se poden reusar "
+"como\n"
+" entrada.\n"
+" -V Enlista os nomes de variábeis e valores.\n"
+" -v Enlista os nomes de variábeis e valores nunha\n"
+" forma que se pode reusar como entrada.\n"
+" -q nome-funcion Pregunta qué teclas invocan a función nomeada.\n"
+" -u nome-función Borra todas as teclas que están ligadas\n"
+" á función nomeada.\n"
+" -r secteclas Borra a asignación para a SECTECLAS.\n"
+" -f fichero Lee as asignacións de teclas do FICHERO.\n"
+" -x secteclas:orde-shell\tCausa que se execute a ORDE-SHELL cando\n"
+" \t\t\t\tse introduce a SECTECLAS.\n"
+" \n"
+" Estado de saída:\n"
+" bind devolve 0 a menos que se presente unha opción descoñecida ou se\n"
+" se produza un erro."
+
+#: builtins.c:328
+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 ""
+"Termina ciclos for, while o until.\n"
+" \n"
+" Termina un ciclo FOR, WHILE o UNTIL. Se se especifica N, remata\n"
+" N ciclos anidados.\n"
+" \n"
+" Estado de saída:\n"
+" O estado de saída é 0 a menos que N non sexa maior ou igual a 1."
+
+#: builtins.c:340
+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 ""
+"Continúa iteracións for, while o until\n"
+" \n"
+" Continúa a seguinte iteración do ciclo FOR, WHILE ou UNTIL\n"
+" circundante. Se se especifica N, retoma no N-ésimo ciclo circundante.\n"
+" \n"
+" Estado de Saída:\n"
+" O estado de salida é 0 a menos que N non sexa maior ou igual a 1."
+
+#: builtins.c:352
+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 ""
+"Executa ordes internas do shell\n"
+" \n"
+" Executa a ORDEN-INTERNA-SHELL cos argumentos ARGs sen realizar\n"
+" a busca interna de ordes. Isto é útil cando desexa reimplementar\n"
+" unha orde interna do shell como unha función de shell, pero necesita\n"
+" executar a orde interna dentro da función.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de saída da ORDE-INTERNA-SHELL, ou falso se a\n"
+" ORDE-INTERNA-SHELL non é unha orde interna de shell."
+
+#: builtins.c:367
+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 ""
+"Devolve o contexto da chamada a subrutina actual.\n"
+" \n"
+" Sen EXPR, devolve \"$liña $nomeficheiro\". Con EXPR, devolve\n"
+" \"$liña $subrutina $nomeficheiro\"; esta información adicional\n"
+" pódese usar para fornecer un volcado de pila.\n"
+" \n"
+" O valor de EXPR indica cantos marcos de chamada se debe retroceder\n"
+" antes do actual; o marco inicial é o marco 0.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 0 a menos que o shell non estea executando unha función de "
+"shell\n"
+" ou EXPR sexa non válida."
+
+#: builtins.c:385
+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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+
+#: builtins.c:422
+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 ""
+"Mostra o nome do directorio de traballo actual.\n"
+" \n"
+" Opcións:\n"
+" -L\tmostra o valor de $PWD se nomea ao directorio de\n"
+" \ttraballo actual\n"
+" -P\tmostra o directorio físico, sen ligazóns simbólicas\n"
+" \n"
+" Por defecto, `pwd' comportase como se se especificara `-L'.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 0 a menos que se dea unha opción non válida ou non se poida "
+"leer\n"
+" o directorio actual."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Orde nula.\n"
+" \n"
+" Sen efecto; a orde non fai nada.\n"
+" \n"
+" Estado de Saída:\n"
+" Sempre con éxito."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Devolve un resultado con éxito.\n"
+" \n"
+" Estado de salida:\n"
+" Sempre con éxito."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Devolve un resultado sen éxito.\n"
+" \n"
+" Estado de saída:\n"
+" Sempre falla."
+
+#: builtins.c:468
+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:487
+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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Estabelece valores de variábeis e atributos.\n"
+" \n"
+" Obsoleto. Consulte `help declare'."
+
+#: builtins.c:535
+#, fuzzy
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"Define variábeis locais.\n"
+" \n"
+" Crea unha variábel local chamada NOME, e dalle un VALOR. OPCIÓN pode\n"
+" ser calquera opción aceptada por `declare'.\n"
+" \n"
+" As variábeis locais só se pueden usar nunha función; son visibles\n"
+" só na función onde se definen e os seus fillos.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que se dea unha opción non válida, se produza\n"
+" un erro, ou o shell non estea executando unha función."
+
+#: builtins.c:552
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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:588
+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:603
+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:631
+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 ""
+"Executa argumentos como unha orde de shell.\n"
+" \n"
+" Combina os ARGumentos nunha soa cadena, usa o resultado como entrada\n"
+" para o shell, e executa as órdenes resultantes.\n"
+" \n"
+" Estado de saída:\n"
+" Devolve o estado de saida da orde ou éxito se a orde é nula."
+
+#: builtins.c:643
+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:685
+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:706
+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 ""
+"Remata a shell.\n"
+" \n"
+" Termina o shell cun estado de N. Se se omite N, o estado de saída\n"
+" é o mismo da última orde executada."
+
+#: builtins.c:715
+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 ""
+"Termina un shell de entrada.\n"
+" \n"
+" Termina un shell de entrada cun estado de saída de N. Devolve un\n"
+" erro se non se executa nunha shell de entrada."
+
+#: builtins.c:725
+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:755
+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 o trabañño ao primeiro plano.\n"
+" \n"
+" Localiza o traballo identificado con IDTRABALLO no primeiro plano, e\n"
+" faino o traballo actual. Se IDTRABALLO non está presente, úsase\n"
+" a noción do shell do traballo actual.\n"
+" \n"
+" Estado de Saída:\n"
+" O estado da orde localizada en primeiro plano, ou falla se sucede un "
+"erro."
+
+#: builtins.c:770
+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:784
+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 as 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:809
+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:833
+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:869
+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\tlists 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:896
+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:915
+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:938
+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:983
+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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+
+#: builtins.c:1028
+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:1041
+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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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:1126
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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:1148
+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:1167
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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:1189
+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:1201 builtins.c:1216
+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:1232
+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 ""
+"Suspende a execución do shell.\n"
+" \n"
+" Suspende a execución deste shell até que recibe un sinal SIGCONT.\n"
+" Os shells de entrada non se poden suspender, a menos que sexan "
+"forzados.\n"
+" \n"
+" Opcións:\n"
+" -f\tforza a suspensión, aínda se o shell é un shell de entrada\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que non estea activo o control de traballos o\n"
+" se produza un erro."
+
+#: builtins.c:1248
+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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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:1329
+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 ""
+"Evalúa unha expresión condicional.\n"
+" \n"
+" Este é un sinónimo para a orde interna \"test\", pero o último\n"
+" argumento debe ser un `]' literal, que coincida co `[' inicial."
+
+#: builtins.c:1338
+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 ""
+"Mostra os tempos de proceso.\n"
+" \n"
+" Mostra os tempos de usuario e sistema acumulados polo shell e todos\n"
+" os seus procesos fillos.\n"
+" \n"
+" Estado de saída:\n"
+" Sempre con éxito."
+
+#: builtins.c:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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:1386
+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:1417
+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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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:1465
+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:1485
+#, fuzzy
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"Agarda a terminación do traballo e devolve o estado de saída.\n"
+" \n"
+" Espera ao proceso especificado e reporta o seu estado de saída. Se\n"
+" non se fornece un PID, agarda a todos os procesos fillo activos,\n"
+" e o código de devolución é cero. PID debe ser un ID de proceso.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
+" opción non válida."
+
+#: builtins.c:1506
+#, fuzzy
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"Agarda a terminación do traballo e devolve o estado de saída.\n"
+" \n"
+" Espera ao proceso especificado e reporta o seu estado de saída. Se\n"
+" non se fornece un PID, agarda a todos os procesos fillo activos,\n"
+" e o código de devolución é cero. PID debe ser un ID de proceso.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
+" opción non válida."
+
+#: builtins.c:1521
+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 ""
+"Executa ordes por cada membro nunha lista.\n"
+" \n"
+" O ciclo `for' executa unha secuencia de ordes para cada membro nunha\n"
+" lista de elementos. Se `in PALABRAS ...;' non está presente,\n"
+" entón asúmese `in \"$@\"'. Para cada elemento en PALABRAS,\n"
+" defínese NOME como ese elemento, e execútanse as ÓRDENES.\n"
+" \n"
+" Estado de Saída:\n"
+" Devuelve o estado da última orden executada."
+
+#: builtins.c:1535
+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 ""
+"Aritmética para un ciclo.\n"
+" \n"
+" Equivalente a\n"
+" \t(( EXP1 ))\n"
+" \twhile (( EXP2 )); do\n"
+" \t\tORDES\n"
+" \t\t(( EXP3 ))\n"
+" \tdone\n"
+" EXP1, EXP2, e EXP3 son expresións aritméticas. Se se omite\n"
+" calquera expresión, compórtase como se se evaluara a 1.\n"
+" \n"
+" Estado de saída:\n"
+" Devolve o estado da última orde executada."
+
+#: builtins.c:1553
+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:1574
+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:1591
+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 ordes en base á coincidencia de patróns.\n"
+" \n"
+" Executa ÓRDENES selectivamente baseado en coincidencias da PALABRA\n"
+" co PATRÓN. Emprégase `|' para separar patróns múltiples.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
+
+#: builtins.c:1603
+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:1620
+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 ""
+"Ejecuta ordes mentres unha proba teña éxito.\n"
+" \n"
+" Expande e executa ORDES mentres a orde final nas ÓRDENES\n"
+" `while' teña un estado de saída de cero.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
+
+#: builtins.c:1632
+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 ""
+"Executa ordes mentres unha proba non teña éxito.\n"
+" \n"
+" Expande e executa ORDES mentres a orde final nas ORDES\n"
+" `until' teña un estado de saída que non sexa cero.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
+
+#: builtins.c:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Crea un coproceso chamado NOME.\n"
+" \n"
+" Executa a ORDE asíncronamente, coa saída estándar e a entrada\n"
+" estándar da orde contectada a través dunha tubería aos descritores\n"
+" de ficheiro asignados aos índices 0 e 1 dunha variábel de matriz NOME\n"
+" no shell en execución. O nome por omisión é \"COPROC\".\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de saída da ORDE."
+
+#: builtins.c:1658
+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:1672
+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 ""
+"Agrupa ordes como unha unidade.\n"
+" \n"
+" Executa un conxunto de ordes nun grupo. Esta é unha forma de\n"
+" redirixir un conxunto completo de ordes.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
+
+#: builtins.c:1684
+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:1699
+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 ""
+"Avalí unha expresión aritmética.\n"
+" \n"
+" Avalíase a EXPRESIÓN de acordo ás regras de evaluación\n"
+" aritmética. Equivalente a \"let EXPRESIÓN\".\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 1 se a EXPRESIÓN avalía a 0; devovle 0 de outra maneira."
+
+#: builtins.c:1711
+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:1737
+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:1794
+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:1828
+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:1858
+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:1887
+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 ""
+"Activa e desactiva opcións de shell.\n"
+" \n"
+" Cambia a configuración de cada opción de shell NOME_OPCIÓN. Sen\n"
+" algunha opción como argumento, mostra todas as opcións de shell cunha\n"
+" indicación se está activa ou non.\n"
+" \n"
+" Opcións:\n"
+" -o\trestrinxe NOME_OPCIÓN a aqueles definidos con `set -o'\n"
+" -p\tmostra cada opción de shell cun indicador do seu estado\n"
+" -q\tsuprime a saída\n"
+" -s\tactiva (estabelece) cada NOME_OPCIÓN\n"
+" -u\tdesactiva (borra) cada NOME_OPCIÓN\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito se se activa NOME_OPCIÓN; falla se se fornece\n"
+" unha opción non válida ou NOME_OPCIÓN está desactivado."
+
+#: builtins.c:1908
+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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+
+#: builtins.c:1970
+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 ""
+"Mostra os posíbeis completados dependendo das opcións.\n"
+" \n"
+" Serve para usarse desde unha función de shell que xere completados\n"
+" posíbeis. Se se fornece o argumento opcional PALABRA, xéranse\n"
+" as coincidencias contra PALABRA.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que se forneza unha opción non válida o\n"
+" se produza un erro."
+
+#: builtins.c:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Lee liñas dun fichero nunha variábel de matriz.\n"
+" \n"
+" Un sinónimo de `mapfile'."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licenza GPLv2+: GPL de GNU versión 2 ou posterior <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
diff --git a/po/hr.gmo b/po/hr.gmo
new file mode 100644
index 00000000..40d6910f
--- /dev/null
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 00000000..99f2d670
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,4125 @@
+# Translation of bash to Croatian.
+# Copyright © 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bash 4.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2013-04-18 01:00+0200\n"
+"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
+"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\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%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#: arrayfunc.c:51
+msgid "bad array subscript"
+msgstr "neispravan indeks polja"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: ne mogu pretvoriti indeksirano u asocijativno polje"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: neispravan kljuÄ asocijativnog polja"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: ne mogu pridružiti nenumeriÄkom indeksu"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: mora koristiti indeks pri pridruživanju asocijativnog polja"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: ne mogu napraviti: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: ne mogu pronaći tipkovniÄku mapu za naredbu"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: prvi znak razliÄit od praznine nije „\"â€"
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "nema zatvorene „%c†u %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: nedostaje dvotoÄje za razdvajanje"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "„%sâ€: neispravno drugo ime"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "uređivanje redaka nije omogućeno"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "„%sâ€: neispravno ime tipkovniÄke mape"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: ne mogu Äitati: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "„%sâ€: ne mogu ukloniti vezu"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "„%sâ€: nepoznato ime funkcije"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s nije pridružen nijednoj tipki.\n"
+
+#: builtins/bind.def:316
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s se može pozvati pomoću "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "broj ponavljanja"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "ima znaÄenje samo u petljama „forâ€, „while†ili „untilâ€"
+
+#: builtins/caller.def:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Vraća kontekst poziva trenutnog potprograma.\n"
+" \n"
+" Bez IZRAZA vraća "
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME nije postavljen"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "previše argumenata"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD nije postavljen"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "redak %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "upozorenje: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: uporaba: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: opcija zahtijeva argument"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: potreban je numeriÄki argument"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: nije pronađen"
+
+#: builtins/common.c:214 shell.c:801
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: neispravna opcija"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: neispravno ime opcije"
+
+#: builtins/common.c:228 general.c:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "„%sâ€: nije ispravan identifikator"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "neispravan oktalni broj"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "neispravan heksadekadski broj"
+
+#: builtins/common.c:242 expr.c:1470
+msgid "invalid number"
+msgstr "neispravan broj"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: neispravno naveden signal"
+
+#: builtins/common.c:257
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "„%sâ€: nije pid ili ispravno naveden zadatak"
+
+#: builtins/common.c:264 error.c:488
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: varijabla samo za Äitanje"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s je izvan granica"
+
+#: 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 je izvan granica"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: nema takvog zadatka"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: nema kontrole zadataka"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "nema kontrole zadataka"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: ograniÄeno"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "ograniÄeno"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: nije ugrađen u ljusku"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "greška pisanja: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "greška pri postavljanju svojstava terminala: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "greška pri preuzimanju svojstava terminala: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: greška pri otkrivanju trenutnog direktorija: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: viÅ¡eznaÄan navod zadatka"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: neispravno ime radnje"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: nije navedeno nadopunjavanje"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "upozorenje: opcija -F možda neće raditi kako želite"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "upozorenje: opcija -C možda neće raditi kako želite"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "trenutno ne izvršavam funkciju nadopunjavanja"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "može se koristiti samo u funkciji"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "ne mogu koristiti „-f†za izradu funkcija"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: funkcija samo za Äitanje"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: ne mogu uniÅ¡titi varijable polja na ovaj naÄin"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: ne mogu pretvoriti asocijativno u indeksirano polje"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "dinamiÄko uÄitavanje nije dostupno"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "ne mogu otvoriti dijeljeni objekt %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "ne mogu pronaći %s u dijeljenom objektu %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: nije dinamiÄki uÄitan"
+
+#: builtins/enable.def:474
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: ne mogu ukloniti: %s"
+
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: to je direktorij"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: nije obiÄna datoteka"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: datoteka je prevelika"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: ne mogu izvršiti binarnu datoteku"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: ne mogu izvršiti: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "odjava\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "nije prijavna ljuska: koristite „exitâ€"
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Ima zaustavljenih zadataka.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Ima pokrenutih zadataka.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "naredba nije pronađena"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "specifikacija povijesti"
+
+#: builtins/fc.def:390
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: ne mogu otvoriti privremenu datoteku: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "trenutno"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "zadatak %d pokrenut bez kontrole zadataka"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: nedozvoljena opcija -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija zahtijeva argument -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "raspršivanje onemogućeno"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: tablica raspršivanja prazna\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "pogoci\tnaredba\n"
+
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Naredbe ljuske koje odgovaraju kljuÄnoj rijeÄi „"
+msgstr[1] "Naredbe ljuske koje odgovaraju kljuÄnim rijeÄima „"
+msgstr[2] "Naredbe ljuske koje odgovaraju kljuÄnim rijeÄima „"
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"nisu pronaÄ‘ene teme pomoći za „%sâ€. PokuÅ¡ajte „help helpâ€, „man -k %s†ili "
+"„info %sâ€."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: ne mogu otvoriti: %s"
+
+#: builtins/help.def:485
+#, 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 ""
+"Ove naredbe ljuske su interno definirane. Upišite „help†za prikaz popisa.\n"
+"UpiÅ¡ite „help ime†za viÅ¡e podataka o funkciji „imeâ€.\n"
+"Koristite „info bash†za više općenitih podataka o ljusci.\n"
+"Koristite „man -k†ili „info†za više podataka o naredbama izvan ovog "
+"popisa.\n"
+"\n"
+"Zvjezdica (*) pokraj imena oznaÄava onemogućenu naredbu.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "ne mogu koristiti više od jedne od opcija -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "mjesto u povijesti"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: proširenje povijesti nije uspjelo"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: inlib nije uspio"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "nisu dozvoljene druge opcije uz „-xâ€"
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: argumenti moraju biti identifikatori procesa ili zadataka"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Nepoznata greška"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "oÄekujem izraz"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: nije indeksirano polje"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: neispravno naveden opisnik datoteke"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: neispravan opisnik datoteke: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: neispravan broj redaka"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: neispravan izvor polja"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: neispravan element povratnog poziva"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "prazno ime varijable polja"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "potrebna je podrška varijable polja"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "„%sâ€: nedostaje znak oblika"
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "„%câ€: neispravno naveden oblik vremena"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "„%câ€: neispravan znak oblika"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "upozorenje: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "nedostaje heksadekadska znamenka za \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "nedostaje unicode znamenka za \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "nema drugog direktorija"
+
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: neispravan argument ograniÄenja"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<nema trenutnog direktorija>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "stog direktorija je prazan"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "indeks stoga direktorija"
+
+#: builtins/pushd.def:689
+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 ""
+"Prikaži popis trenutno zapamćenih direktorija. Direktoriji se dodaju\n"
+" na popis naredbom „pushdâ€, kroz popis se možete vraćati naredbom\n"
+" „popdâ€.\n"
+" \n"
+" Opcije:\n"
+" -c\toÄisti stog direktorija uklanjanjem svih elemenata\n"
+" -l\tne ispisuj tildom prefiksirane inaÄice direktorija\n"
+" \trelativno u odnosu na poÄetni direktorij\n"
+" -p\tispiši stog direktorija jednu stavku po retku\n"
+" -v\tispiši stog direktorija jednu stavku po retku\n"
+" \tprefiksiranu položajem u stogu\n"
+" \n"
+" Argumenti:\n"
+" +N\tPrikazuje N-tu stavku s lijeve strane popisa koju prikazuje "
+"naredba\n"
+" \t„dirs†pozvana bez opcija, poÄevÅ¡i od nule.\n"
+" \n"
+" -N\tPrikazuje N-tu stavku s desne strane popisa koju prikazuje "
+"naredba\n"
+"\t„dirs†pozvana bez opcija, poÄevÅ¡i od nule."
+
+#: builtins/pushd.def:711
+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:736
+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:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: neispravno navedeno vremensko ograniÄenje"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "greÅ¡ka Äitanja: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr "pozivanje „return†je moguće samo iz funkcije ili pokrenute skripte"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "ne mogu istovremeno poništiti funkciju i varijablu"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: ne mogu poništiti"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: ne mogu poniÅ¡titi: %s je samo za Äitanje"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: nije varijabla polja"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: nije funkcija"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "broj pomaka"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "ne mogu istovremeno postaviti i poništiti opcije ljuske"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: neispravno ime opcije ljuske"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "potrebno je ime datoteke kao argument"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: datoteka nije pronađena"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "ne mogu zaustaviti"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "ne mogu zaustaviti prijavnu ljusku"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s je drugo ime za „%sâ€\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s je kljuÄna rijeÄ ljuske\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s je funkcija\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s je ugrađen u ljusku\n"
+
+#: builtins/type.def:317 builtins/type.def:393
+#, 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 raspršen (%s)\n"
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: neispravan argument ograniÄenja"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "„%câ€: neispravna naredba"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: ne mogu otkriti ograniÄenje: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "ograniÄenje"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: ne mogu urediti ograniÄenje: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "oktalni broj"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "„%câ€: neispravan operator simboliÄkog naÄina"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "„%câ€: neispravan znak simboliÄkog naÄina"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " redak "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "posljednja naredba: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Prekidam..."
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "nepoznata greška naredbe"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "neispravna vrsta naredbe"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "neispravno spajanje"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "neispravan skok"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: nepovezana varijabla"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\avrijeme Äekanja ulaza je isteklo: automatska-odjava\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "ne mogu preusmjeriti standardni ulaz iz /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: „%câ€: neispravan znak oblika"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "greška cjevovoda"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: ograniÄeno: ne možete navesti „/†u imenu naredbe"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: naredba nije pronađena"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: neispravan tumaÄ"
+
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ne mogu izvršiti binarnu datoteku"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je ugrađen u ljusku\n"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "ne mogu udvostruÄiti opisnik datoteke %d u opisnik datoteke %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "razina rekurzije izraza je prekoraÄena"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "podljev stoga rekurzije"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "sintaksna greška u izrazu"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "pokušaj pridruživanja ne-varijabli"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "dijeljenje s 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "greška: neispravan simbol expassign"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "oÄekujem „:†za uvjetni izraz"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "eksponent je manji od 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "oÄekujem identifikator nakon pred-povećanja ili pred-smanjenja"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "nedostaje „)â€"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "sintaksna greÅ¡ka: oÄekujem operand"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "sintaksna greÅ¡ka: neispravan aritmetiÄki operator"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (simbol greÅ¡ke je „%sâ€)"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "neispravna aritmetiÄka baza"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "vrijednost baze je prevelika"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: greška izraza\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: ne mogu pristupiti nadređenim direktorijima"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr ""
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "ne mogu alocirati novi datoteÄni opisnik za bash ulaz iz fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: međuspremnik već postoji za novi fd %d"
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: pgrp pipe"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "razdvojen pid %d se javlja u pokrenutom zadatku %d"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "uklanjam zaustavljeni zadatak %d s grupom procesa %ld"
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: proces %5ld (%s) u the_pipeline"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: pid %5ld (%s) oznaÄen kao joÅ¡ živ"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: ne postoji takav pid"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Signal %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Gotovo"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "Zaustavljen"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Zaustavljen(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "Pokrenut"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Gotovo(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Izlaz %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Nepoznato stanje"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(jezgra izbaÄena) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr ""
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: pid %ld nije dijete ove ljuske"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Ne postoji zapis o procesu %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: zadatak %d je zaustavljen"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: zadatak je dovršen"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: zadatak %d je već u pozadini"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr ""
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: redak %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (jezgra izbaÄena)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(sadašnji wd: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: getpgrp nije uspio"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr ""
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "ne mogu postaviti grupu procesa terminala (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "nema kontrole zadataka u ovoj ljusci"
+
+#: 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 "nepoznato"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr ""
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: pozvan s argumentom već oslobođenog bloka"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: pozvan s argumentom nealociranog bloka"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: otkriven podljev, mh_nbytes izvan granica"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: pozvan s argumentom nealociranog bloka"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: otkriven podljev, mh_nbytes izvan granica"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr ""
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr ""
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr ""
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: %p već u tablici kao oslobođen?\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "neispravna baza"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: nepoznato raÄunalo"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: neispravna usluga"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: neispravno navedena mrežna putanja"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "mrežne operacije nisu podržane"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL: ne mogu promijeniti lokal (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr "setlocale: LC_ALL: ne mogu promijeniti lokal (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: ne mogu promijeniti lokal (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: ne mogu promijeniti lokal (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Imate poštu u $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Imate novu poštu u $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "PoÅ¡ta u %s je proÄitana\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "sintaksna greÅ¡ka: potreban aritmetiÄki izraz"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "sintaksna greÅ¡ka: neoÄekivana „;â€"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "sintaksna greÅ¡ka: „((%s))â€"
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: neispravna vrsta instrukcije %d"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr ""
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr ""
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "neoÄekivani EOF pri traženju odgovarajućeg „%câ€"
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "neoÄekivani EOF pri traženju „]]â€"
+
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "sintaksna greÅ¡ka u uvjetnom izrazu: neoÄekivani simbol „%sâ€"
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "sintaksna greška u uvjetnom izrazu"
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "neoÄekivani simbol „%sâ€, oÄekujem „)â€"
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "oÄekujem „)â€"
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "neoÄekivani argument „%s†uvjetnom unarnom operatoru"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "neoÄekivani argument uvjetnom unarnom operatoru"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "neoÄekivani simbol „%sâ€, oÄekujem uvjetni binarni operator"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "oÄekujem uvjetni binarni operator"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "neoÄekivani argument „%s†uvjetnom binarnom operatoru"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "neoÄekivani argument uvjetnom binarnom operatoru"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "neoÄekivani simbol „%c†u uvjetnoj naredbi"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "neoÄekivani simbol „%s†u uvjetnoj naredbi"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "neoÄekivani simbol %d u uvjetnoj naredbi"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "sintaksna greÅ¡ka kod neoÄekivanog simbola „%sâ€"
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "sintaksna greÅ¡ka kod „%sâ€"
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "sintaksna greÅ¡ka: neoÄekivani kraj datoteke"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "sintaksna greška"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Koristite „%s†za napuštanje ljuske.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "neoÄekivani EOF pri traženju odgovarajuće „)â€"
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: funkcija „%s†nije pronađena"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr ""
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: neispravan opisnik datoteke"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: NULL pokazivaÄ na datoteku"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr ""
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr ""
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "opisnik datoteke izvan granica"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: viÅ¡eznaÄno preusmjeravanje"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: ne mogu pisati preko postojeće datoteke"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: ograniÄeno: ne mogu preusmjeriti izlaz"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "ne mogu napraviti privremenu datoteku za here-document: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: ne mogu pridružiti opisnik datoteke varijabli"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port nije podržan bez umrežavanja"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "greÅ¡ka preusmjeravanja: ne mogu udvostruÄiti opisnik datoteke"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "ne mogu pronaći /tmp, molim, napravite ga!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp mora biti ispravno ime direktorija"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: neispravna opcija"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Nemam ime!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, inaÄica %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Uporaba: %s [GNU dugaÄka opcija] [opcija] ...\n"
+"\t %s [GNU dugaÄka opcija] [opcija] skripta ...\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "GNU dugaÄke opcije:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Opcije ljuske:\n"
+
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr ""
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr ""
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Koristite naredbu „bashbug†za prijavljivanje grešaka.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr ""
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Lažan signal"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Završetak"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Prekid"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Izlaz"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Nedozvoljena instrukcija"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT praćenje/zamka"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "ABORT instrukcija"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "EMT instrukcija"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Iznimka pomiÄnog zareza"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Prekinut"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "SabirniÄka greÅ¡ka"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Segmentacijska greška"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Neispravan poziv sustava"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Prekinut cjevovod"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Budilica"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Završen"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Hitno U/I stanje"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Zaustavljen (signalom)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Nastavi"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Dijete je umrlo ili zaustavljeno"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Zaustavljen (tty ulaz)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Zaustavljen (tty izlaz)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "U/I spreman"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "OgraniÄenje procesora"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "OgraniÄenje datoteke"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Budilica (virtualna)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr ""
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Promijenjen prozor"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr ""
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "KorisniÄki signal 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "KorisniÄki signal 2"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr ""
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "prekid napajanja je neizbježan"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "rušenje sustava je neizbježno"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "preseli proces na drugi procesor"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "greška programiranja"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr ""
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr ""
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr ""
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Zahtjev za informacijom"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Nepoznat signal #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Nepoznat signal #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "neispravna zamjena: nema zatvorene „%s†u %s"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: ne mogu pridružiti popis elementu polja"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "ne mogu napraviti cjevovod za zamjenu procesa"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "ne mogu napraviti dijete za zamjenu procesa"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "ne mogu otvoriti imenovani cjevovod %s za Äitanje"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "ne mogu otvoriti imenovani cjevovod %s za pisanje"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "ne mogu udvostruÄiti imenovani cjevovod %s kao opisnik datoteke %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "ne mogu napraviti cjevovod za zamjenu naredbi"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "ne mogu napraviti dijete za zamjenu naredbi"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr ""
+"command_substitute: ne mogu udvostruÄiti cjevovod kao opisnik datoteke 1"
+
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parametar prazan ili nije postavljen"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: izraz podniza < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: neispravna zamjena"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: ne mogu pridružiti na ovaj naÄin"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr "buduće inaÄice ljuske će prisiliti procjenu kao aritmetiÄku zamjenu"
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "neispravna zamjena: nema zatvorenog „`†u %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "nema podudaranja: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "oÄekujem argument"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: oÄekujem cjelobrojni izraz"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "oÄekujem „)â€"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "oÄekujem „)â€, naÅ¡ao %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: oÄekujem unarni operator"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: oÄekujem binarni operator"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "nedostaje „]â€"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "neispravan broj signala"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr ""
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: neispravan signal %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "greÅ¡ka pri uvozu definicije funkcije za „%sâ€"
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "razina ljuske (%d) je previsoka, vraćam na 1"
+
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr ""
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: ne mogu pridružiti opisnik datoteke varijabli"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr ""
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s ima prazan exportstr"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr ""
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr ""
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr ""
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr ""
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: ne mogu otvoriti kao DATOTEKU"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr ""
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s je izvan granica"
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright © 2011 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenca GPLv3+: GNU GPL inaÄica 3 ili novija <http://gnu.org/licenses/gpl."
+"html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, inaÄica %s (%s)\n"
+
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Ovo je slobodan softver, slobodno ga smijete mijenjati i dijeliti.\n"
+
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "NEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n"
+
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright © 2011 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: ne mogu alocirati %lu bajtova (alocirano %lu bajtova)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: ne mogu alocirati %lu bajtova"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: ne mogu alocirati %lu bajtova (alocirano %lu bajtova)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: ne mogu alocirati %lu bajtova"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [ime[=vrijednost] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] ime [ime ...]"
+
+#: builtins.c:51
+msgid ""
+"bind [-lpsvPSVX] [-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 [-e]] [-@]] [dir]"
+msgstr ""
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: 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
+#, fuzzy
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "alias [-p] [ime[=vrijednost] ... ]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-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 [-dms] [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] [-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
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unalias [-a] ime [ime ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr ""
+
+#: builtins.c:146
+msgid "readonly [-aAf] [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 [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr ""
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr ""
+
+#: builtins.c:175
+msgid "wait [-n] [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 "coproc [NAME] command [redirections]"
+msgstr ""
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr ""
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr ""
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr ""
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( izraz ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ izraz ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr ""
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | direktorij]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr ""
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr ""
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr ""
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+
+#: builtins.c:233
+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:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr ""
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+
+#: builtins.c:254
+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:276
+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:289
+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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+
+#: builtins.c:328
+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:340
+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:352
+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:367
+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:385
+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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+
+#: builtins.c:422
+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:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Prazna naredba.\n"
+" \n"
+" Nema efekta, ova naredba ne radi ništa.\n"
+" \n"
+" Izlazno stanje:\n"
+" Uvijek uspješno."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Vrati uspješan rezultat.\n"
+" \n"
+" Izlazno stanje:\n"
+" Uvijek uspješno."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Vrati neuspješan rezultat.\n"
+" \n"
+" Izlazno stanje:\n"
+" Uvijek neuspješno."
+
+#: builtins.c:468
+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:487
+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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Postavi vrijednosti i svojstva varijabli.\n"
+" \n"
+" Zastarjelo. Pogledajte „help declareâ€."
+
+#: builtins.c:535
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+
+#: builtins.c:552
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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:588
+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:603
+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:631
+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:643
+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:685
+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:706
+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 ""
+"Izađi iz ljuske.\n"
+" \n"
+" Izlazi iz ljuske sa stanjem N. Ako N nije naveden, izlazno stanje je\n"
+" isto kao i stanje zadnje izvršene naredbe."
+
+#: builtins.c:715
+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 ""
+"Izađi iz prijavne ljuske.\n"
+" \n"
+" Izlazi iz prijavne ljuske s izlaznim stanjem N. Vraća grešku ako nije\n"
+" izvršeno u prijavnoj ljusci."
+
+#: builtins.c:725
+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:755
+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:770
+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:784
+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 as 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:809
+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:833
+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:869
+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\tlists 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:896
+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:915
+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:938
+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:983
+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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+
+#: builtins.c:1028
+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:1041
+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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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:1126
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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:1148
+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:1167
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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:1189
+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:1201 builtins.c:1216
+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:1232
+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:1248
+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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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:1329
+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:1338
+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:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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:1386
+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:1417
+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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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:1465
+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:1485
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+
+#: builtins.c:1506
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+
+#: builtins.c:1521
+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:1535
+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:1553
+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:1574
+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:1591
+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:1603
+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:1620
+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:1632
+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:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+
+#: builtins.c:1658
+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:1672
+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:1684
+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:1699
+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:1711
+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:1737
+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:1794
+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:1828
+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:1858
+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:1887
+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:1908
+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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+
+#: builtins.c:1970
+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:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"UÄitaj retke iz datoteke u varijablu polja.\n"
+" \n"
+" Sinonim za „mapfileâ€."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licenca GPLv2+: GNU GPL inaÄica 2 ili novija <http://gnu.org/licenses/gpl."
+#~ "html>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index c3f005a7..9309181a 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index c9e96371..a49d913e 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,99 +7,115 @@ msgid ""
msgstr ""
"Project-Id-Version: bash-4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2010-08-06 17:44+0200\n"
"Last-Translator: Mate Ory <orymate@ubuntu.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"Language: hu\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "Hibás tömbindex"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: nem lehetséges az indexelt tömb asszociatívvá alakítása"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: érvénytelen asszociatívtömb-index"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: a nem-szám indexnek való értékadás nem lehetséges"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: asszociatív tömbhöz való értékadásnál meg kell adni az indexet"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: nem hozható létre: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command: nem található billentyűkiosztás a parancshoz"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: az elsÅ‘ nem szóközkarakter nem „\"â€"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "nincs záró „%c†a következőben: %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: hiányzó kettőspont-elválasztó"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "„%sâ€: érvénytelen alias-név"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "nincs engedélyezve a sorszerkesztés"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%sâ€: érvénytelen billentyűkiosztás-név"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: nem olvasható a következő: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "„%sâ€: nem lehetséges a kötés megszüntetése"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "„%sâ€: ismeretlen függvénynév"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s nincs kötve egy billentyűhöz sem.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s a következő módon hajtható végre: "
@@ -113,7 +129,7 @@ msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "csak „forâ€, „while†és „until†ciklusokban értelmezhetÅ‘"
# see $ help caller
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -123,11 +139,15 @@ msgstr ""
" \n"
" EXPR nélkül a "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "Nincs beállítva HOME"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "túl sok argumentum"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "Nincs beállítva OLDPWD"
@@ -136,7 +156,7 @@ msgstr "Nincs beállítva OLDPWD"
msgid "line %d: "
msgstr "%d. sor: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "figyelmeztetés: "
@@ -146,11 +166,7 @@ msgstr "figyelmeztetés: "
msgid "%s: usage: "
msgstr "%s: használat: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "túl sok argumentum"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: a kapcsolónak kötelező argumentuma van"
@@ -165,7 +181,7 @@ msgstr "%s: a kötelező argumentum egy szám"
msgid "%s: not found"
msgstr "%s: nem található"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: érvénytelen kapcsoló"
@@ -175,7 +191,7 @@ msgstr "%s: érvénytelen kapcsoló"
msgid "%s: invalid option name"
msgstr "%s: érvénytelen kapcsolónév"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "„%sâ€: érvénytelen azonosító"
@@ -188,7 +204,7 @@ msgstr "érvénytelen oktális szám"
msgid "invalid hex number"
msgstr "érvénytelen hexadecimális szám"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "érvénytelen szám"
@@ -202,7 +218,7 @@ msgstr "%s: érvénytelen szignálmegadás"
msgid "`%s': not a pid or valid job spec"
msgstr "„%sâ€: nem pid vagy munkaazonosító"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: csak olvasható változó"
@@ -274,48 +290,58 @@ msgstr "%s: hiba a munkakönyvtár lekérdezésekor: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: kétértelmű munkamegadás"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: érvénytelen műveletnév"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: nincs kiegészítés meghatározva"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "figyelmeztetés: a -F kapcsoló nem a várt módon működhet"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "figyelmeztetés: a -C kapcsoló nem a várt módon működhet"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "jelenleg nincs kiegészítési függvény végrehajtás alatt"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "csak függvényben használható"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "nem használható a „-f†függvény létrehozására"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: csak olvasható függvény"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: ilyen módon nem lehet tömböt megszüntetni"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: nem lehetséges az asszociatív tömb indexeltté alakítása"
@@ -344,24 +370,23 @@ msgstr "%s: nem dinamikusan van betöltve"
msgid "%s: cannot delete: %s"
msgstr "%s: nem törölhető: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s egy könyvtár"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: nem normál fájl"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: a fájl túl nagy"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: bináris nem hajtható végre"
@@ -394,11 +419,11 @@ msgstr "Vannak futó munkák.\n"
msgid "no command found"
msgstr "nincs ilyen parancs"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "előzményválasztás"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: az átmeneti fájl nem nyitható meg: %s"
@@ -444,7 +469,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "A következő kifejezésre illeszkedő parancsok: „"
msgstr[1] "A következő kifejezésekre illeszkedő parancsok: „"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -452,12 +477,12 @@ msgstr ""
"nem illeszkedik egy szócikk sem a következÅ‘re: „%sâ€.\n"
"A „help helpâ€, „man -k '%s'†vagy „info '%s'†parancsok segíthetnek."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: nem nyitható meg: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -484,7 +509,7 @@ msgstr "a következő kapcsolók kizárják egymást: -anrw"
msgid "history position"
msgstr "előzménypozíció"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: sikertelen előzményből való kiegészítés"
@@ -498,16 +523,16 @@ msgstr "%s: sikertelen inlib"
msgid "no other options allowed with `-x'"
msgstr "a „-x†mellett nem használható más kapcsoló"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: az argumentumok folyamat- vagy munkaazonosítók lehetnek"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Ismeretlen hiba"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "az értelmező kifejezést várt"
@@ -516,64 +541,69 @@ msgstr "az értelmező kifejezést várt"
msgid "%s: not an indexed array"
msgstr "%s: nem egy indexelt tömb"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: érvénytelen fájlleíró-megadás"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: érvénytelen fájlleíró: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: sorok száma érvénytelen"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: érvénytelen tömbkezdet"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: érvénytelen parancshívási távolság"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "üres tömbváltozó-név"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "a tömbök használata nincs támogatva"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%sâ€: hiányzó formátumkarakter"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: érvénytelen időkorlát-megadás"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%câ€: érvénytelen formátumkarakter"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "figyelmeztetés: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "hiányzó hexadecimális számjegy a következőhöz: \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, fuzzy, c-format
msgid "missing unicode digit for \\%c"
msgstr "hiányzó hexadecimális számjegy a következőhöz: \\x"
@@ -582,19 +612,24 @@ msgstr "hiányzó hexadecimális számjegy a következőhöz: \\x"
msgid "no other directory"
msgstr "nincs másik könyvtár"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: érvénytelen korlátérték"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<nincs munkakönyvtár>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "a könyvtárverem üres"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "könyvtárveremindex"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -632,7 +667,7 @@ msgstr ""
" által megjelenített listán balról számolva, nullától kezdve\n"
" -N N darab bejegyzést jelenít meg a listából jobbról számolva"
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -678,7 +713,7 @@ msgstr ""
" \n"
" A „dirs†beépített parancs listázza a könyvtárvermet."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -715,42 +750,42 @@ msgstr ""
" \n"
" A „dirs†beépített parancs listázza a könyvtárvermet."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: érvénytelen időkorlát-megadás"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "olvasási hiba: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
"csak függvénybÅ‘l vagy source-olt parancsfájlból lehet „returnâ€-nel "
"visszatérni"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "nem lehet egyszerre függvényt és változót megszüntetni"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: nem szüntethető meg"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: nem szüntethető meg: csak olvasható %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: nem egy tömbváltozó"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: nem függvény"
@@ -759,12 +794,12 @@ msgstr "%s: nem függvény"
msgid "shift count"
msgstr "shift-szám"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
"nem lehet egyszerre beállítani és törölni parancsértelmező-beállításokat"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: érvénytelen parancsértelmezőkapcsoló-név"
@@ -806,7 +841,7 @@ msgstr "%s egy függvény\n"
msgid "%s is a shell builtin\n"
msgstr "%s egy beépített parancs\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s egy %s\n"
@@ -816,45 +851,45 @@ msgstr "%s egy %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s hashelve van (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: érvénytelen korlátérték"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "„%câ€: érvénytelen parancs"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: nem kérdezhető le a korlát: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "korlát"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: nem módosítható a korlát: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "oktális szám"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "„%câ€: érvénytelen szimbolikus módoperátor"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%câ€: érvénytelen szimbolikus módkarakter"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " sor: "
@@ -868,299 +903,314 @@ msgstr "utolsó parancs: %s\n"
msgid "Aborting..."
msgstr "Megszakítás..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "hiba: érvénytelen parancs"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "hibás parancstípus"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "hibás csatlakozó"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "hibás ugrás"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: kötetlen változó"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aidőtúllépés bemenetre várva: automatikus kijelentkezés\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "szabványos bemenet /dev/null-ra állítása sikertelen: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "IDÅFORMÃTUM: „%câ€: érvénytelen formátumkarakter"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "hibás csővezeték"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: korlátozott: nem adható meg „/†a parancsok nevében"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: parancs nem található"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "%s egy %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: rossz parancsértelmező"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: bináris nem hajtható végre"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s egy beépített parancs\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "nem lehet duplikálni a(z) %d. fájlleírót a(z) %d. helyre"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "a kifejezés rekurziókorlátot"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "alulcsordult a rekurziós verem"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "szintaktikai hiba a kifejezésben"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "nem változóhoz próbált értéket rendelni"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "0-val osztás"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bug: rossz expassign token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "„:†egy feltételkifejezés szükséges"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "0-nál kisebb kitevő"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "prefix növelés vagy csökkentés után azonosító kell következzen"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "hiányzó „)â€"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "szintaktikai hiba: operandus kell következzen"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "szintaktikai hiba: érvénytelen aritmetikai operátor"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (hibás token: „%sâ€)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "érvénytelen számrendszer"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "túl nagy érték a számrendszerhez"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: hibás kifejezés\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: nem érhetőek el a szülőkönyvtárak"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "nem lehet újraindítani a nodelay módot a(z) %d. fájlleíróhoz"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
"nem lehet új fájlleírót foglalni a bash bemenetéhez a(z) %d. fájlleíróból"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: már van puffer a(z) %d. fájlleíróhoz"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp csővezeték"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "a(z) %d számú forkolt pid a(z) %d számú munkában jelent meg"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "%d. számú megállított munka törlése a %ld számú folyamatcsoporttal"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: %5ld. folyamat (%s) a the_pipeline-ban"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: %5ld. folyamat (%s) még élőként van jelölve"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: nincs ilyen pid"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "%d. szignál"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Kész"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Megállítva"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Megállítva(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Fut"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Kész(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Kilépett(%d)"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Ismeretlen állapot"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core készült) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (mk: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "gyermek setpgid (innen: %ld ide: %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: %ld. számú folyamat nem gyermeke ennek a parancsértelmezőnek"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Nincs bejegyzés %ld. számú folyamatról"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: %d. számú munka le lett állítva"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: a munka be lett fejezve"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: %d. számú munka már a háttérben van"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: WNOHANG bekapcsolása a korlátlan blokk elkerülésére"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: %d. sor: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core készült)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(mk most: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp sikertelen"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: line discipline"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "nem állítható be a terminál folyamatcsoportja (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "nincsen munkakezelés ebben a parancsértelmezőben"
@@ -1182,54 +1232,54 @@ msgstr ""
msgid "unknown"
msgstr "ismeretlen"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: a szabadlistán lévő blokk felülírva"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: már felszabadított blokkal lett hívva"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: nem lefoglalt blokkal lett hívva"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: alulcsordulást érzékelt; mh_nbytes kívül esik a tartományon"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: kezdő- és záródarab mérete eltér"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: nem lefoglalt blokkal lett hívva"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: alulcsordulást érzékelt; mh_nbytes kívül esik a tartományon"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: kezdő- és záródarab mérete eltér"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr "register_alloc: foglalótábla tele van FIND_ALLOC-kal?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "register_alloc: %p már a táblában lefoglaltként?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p már a táblában szabadként?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "érvénytelen számrendszer"
@@ -1252,35 +1302,35 @@ msgstr "%s: hibás hálózatiútvonal-megadás"
msgid "network operations not supported"
msgstr "a hálózati műveletek nincsenek támogatva"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: nem lehet területi beállításokat váltani (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: nem lehet területi beállításokat váltani (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: nem lehet területi beállításokat váltani (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: nem lehet területi beállításokat váltani (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Levél a következőben: $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Új levél a következőben: $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "A(z) „%s†helyen lévő levél el van olvasva\n"
@@ -1298,118 +1348,118 @@ msgstr "szintaktikai hiba: váratlan „;â€"
msgid "syntax error: `((%s))'"
msgstr "szintaktikai hiba: „((%s))â€"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: hibás utasítástípus: %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr "a(z) %d. sorban kezdett heredocot EOF zárja („%s†helyett)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: %d. átirányító utasítás kívül esik a tartományon"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "váratlan EOF „%c†helyett"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "váratlan EOF „]]†helyett"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "szintaktikai hiba a feltételben: váratlan token: „%sâ€"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "szintaktikai hiba a feltételben"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "váratlan token (%s) „)†helyett"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "„)†szükséges"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "váratlan argumentum (%s) feltételes egyoperandusú operátorhoz"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "váratlan argumentum feltételes egyoperandusú operátorhoz"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "váratlan token (%s), feltételes kétoperandusú operátor szükséges"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "feltételes kétoperandusú operátor szükséges"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "váratlan argumentum (%s) feltételes kétoperandusú operátorhoz"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "váratlan argumentum feltételes kétoperandusú operátorhoz"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "váratlan token (%c) feltételes parancsban"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "váratlan token (%s) feltételes parancsban"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "váratlan token (%d) feltételes parancsban"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "szintaktikai hiba „%s†váratlan token közelében"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "szintaktikai hiba „%s†közelében"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "szintaktikai hiba: váratlan fájlvége"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "szintaktikai hiba"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "„%s†használatával lehet elhagyni a parancsértelmezőt.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "váratlan EOF „)†helyett"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "kiegészítés: nem található „%s†függvény"
@@ -1419,90 +1469,90 @@ msgstr "kiegészítés: nem található „%s†függvény"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: hibás csatlakozó (%d)"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: érvénytelen fájlleíró"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: NULL fájlmutató"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: „%câ€: érvénytelen formátumkarakter"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "fájlleíró kívül esik a tartományon"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: kétértelmű átirányítás"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: nem lehet felülírni létező fájlt"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: korlátozott: nem lehet átirányítani a kimenetet"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "nem lehet a heredocnak átmeneti fájlt létrehozni: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: nem lehet változóhoz fájlleírót rendelni"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port nincs támogatva hálózat nélkül"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "átirányítási hiba: nem lehet duplikálni a fájlleírót"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "nem található /tmp, hozza létre!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp érvényes könyvtárnév kell legyen"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: érvénytelen kapcsoló"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Nincs nevem!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, %s-(%s) verzió\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1511,41 +1561,42 @@ msgstr ""
"Használat: %s [GNU hosszú kapcsoló] [kapcsoló] ...\n"
" %s [GNU hosszú kapcsoló] [kapcsoló] parancsfájl ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU hosszú kapcsolók:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Parancsértelmező-kapcsolók:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD vagy -c parancs vagy -O shopt_option\t\t(csak hívás)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s vagy -o kapcsoló\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"A „%s -c \"help set\"†további információt ad a parancsértelmező-"
"beállításokról.\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr "A „%s -c help†további információt ad a beépített parancsokról.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "A „bashbug†paranccsal jelenthet hibákat.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: érvénytelen művelet"
@@ -1719,72 +1770,77 @@ msgstr "Ismeretlen szignál #"
msgid "Unknown Signal #%d"
msgstr "%d. számú ismeretlen szignál"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "hibás helyettesítés: nincs záró „%s†a következőben: %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: lista nem adható tömbelemnek értékül"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "nem hozható létre a csővezeték a folyamatbehelyettesítéshez"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "nem hozható létre a gyermek a folyamatbehelyettesítéshez"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "nem nyitható meg olvasásra a(z) %s csővezeték"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "nem nyitható meg írásra a(z) %s csővezeték"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "nem duplikálható a(z) %s csővezeték %d. fájlleíróként"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "nem hozható létre csővezeték a parancsbehelyettesítéshez"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "nem hozható létre gyermek a parancsbehelyettesítéshez"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: nem duplikálható a csővezeték 1. fájlleíróként"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: érvénytelen érték a trace fájlleíróhoz"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: a paraméter null vagy nincs beállítva"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: részkarakterlánc-kifejezés < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: rossz helyettesítés"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: nem lehet így értéket adni"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1792,130 +1848,145 @@ msgstr ""
"a parancsértelmező későbbi verziói kötelezővé teszik majd az aritmetikai "
"kiértékelést"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "hibás helyettesítés: nincs záró „`†a következőben: %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "nincs találat: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argumentum szükséges"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: egész kifejezés szükséges"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "„)†szükséges"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "„)†szükséges %s helyett"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: egyoperandusú operátor szükséges"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: kétoperandusú operátor szükséges"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "hiányzó „]â€"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "érvénytelen szignálszám"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: rossz érték a trap_list[%d]-ban: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
"run_pending_traps: szignálkezelő a SIG_DFL, %d (%s) újraküldése önmagunknak"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: rossz szignál: %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "hiba a függvénydefiníció betöltésekor: „%sâ€"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "a parancsértelmező szintje (%d) túl magas, visszaállítás 1-re"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: érvénytelen érték a trace fájlleíróhoz"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: nincs függvénykörnyezet az aktuális látókörben"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: nem lehet változóhoz fájlleírót rendelni"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: nincs függvénykörnyezet az aktuális látókörben"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s exportstr-je null"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "érvénytelen karakter (%d) %s exportstr-jében"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "nincs „=†%s exportstr-jében"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr "pop_var_context: shell_variables feje nem egy függvénykörnyezet"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: nincs global_variables környezet"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: shell_variables feje nem egy átmeneti környezeti látókör"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: nem nyitható meg FILE-ként"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: érvénytelen érték a trace fájlleíróhoz"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s kívül esik a tartományon"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Copyright © 2009 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1923,34 +1994,25 @@ msgstr ""
"A licenc GPLv3+: a GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/"
"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, %s (%s) verzió\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr "Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "NINCS GARANCIA, a törvény által engedélyezett mértékig.\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"A licenc GPLv2+: a GNU GPL 2. vagy újabb változata <http://gnu.org/licenses/"
-"gpl.html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright © 2009 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -1981,8 +2043,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] név [név ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
"bind [-lpvsPVS] [-m kiosztás] [-f fájlnév] [-q név] [-u név] [-r billkomb] [-"
@@ -2006,7 +2069,7 @@ msgstr "caller [kif]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|-P] [ktár]"
#: builtins.c:66
@@ -2031,7 +2094,7 @@ msgstr "command [-pVv] parancs [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFilrtux] [-p] [név[=érték] ...]"
#: builtins.c:78
@@ -2142,7 +2205,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o beállításnév] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [név ...]"
#: builtins.c:144
@@ -2191,7 +2255,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] név [név ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [korlát]"
#: builtins.c:172
@@ -2199,12 +2264,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mód]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2380,6 +2447,7 @@ msgstr ""
" Sikeresen tér vissza, kivéve ha nincs megadott NÉV nevű alias."
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2413,6 +2481,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2453,7 +2523,7 @@ msgstr ""
" Kilépési kód:\n"
" a bind 0-val tér vissza, ha nincs ismeretlen kapcsoló vagy hiba."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2471,7 +2541,7 @@ msgstr ""
" Kilépési kód:\n"
" A kilépési kód 0, ha N >= 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2490,7 +2560,7 @@ msgstr ""
" Kilépési kód:\n"
" A kilépési kód 0, ha N >= 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2513,7 +2583,7 @@ msgstr ""
" Továbbadja a SHELL-BUILTIN kilépési kódját vagy hamissal tér vissza,\n"
" ha nincs ilyen parancs."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2541,7 +2611,7 @@ msgstr ""
" 0-val tér vissza, ha érvényes KIF és valóban függvényt hajt végre a pa-\n"
" rancsértelmező."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2565,13 +2635,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2603,7 +2681,7 @@ msgstr ""
" Kilépési kód:\n"
" 0-val tér vissza, ha könyvtárat váltott; más értéket különben."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2632,7 +2710,7 @@ msgstr ""
" 0-val tér vissza, kivéve ha érvénytelen kapcsolót kapott vagy nem le-\n"
" het olvasni a munkakönyvtárat."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2648,7 +2726,7 @@ msgstr ""
" Kilépési kód:\n"
" Mindig sikeres."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2660,7 +2738,7 @@ msgstr ""
" Kilépési kód:\n"
" Mindig sikeres."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2672,7 +2750,7 @@ msgstr ""
" Kilépési kód:\n"
" Mindig sikertelen."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2708,7 +2786,7 @@ msgstr ""
" PARANCS kilépési kódjával tér vissza, vagy hibát jelez, ha nem talál-\n"
" ható PARANCS."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2729,6 +2807,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2744,7 +2823,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Változóértékeket és jellemzőket állít be.\n"
" \n"
@@ -2780,7 +2860,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, vagy hiba\n"
" történt."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2790,7 +2870,8 @@ msgstr ""
" \n"
" Elavult. Lásd „help declareâ€."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2801,8 +2882,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Helyi változók definiálása.\n"
" \n"
@@ -2816,11 +2897,14 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, hiba\n"
" történt, vagy nem függvényben lett hívva."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2832,6 +2916,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2874,7 +2959,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve írási hiba esetén."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2896,7 +2981,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve írási hiba esetén."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2949,7 +3034,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha NÉV nem egy beépített parancs, vagy hi-\n"
" ba történt."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2969,7 +3054,7 @@ msgstr ""
" A parancs kilépési kódjával tér vissza, vagy sikerrel, ha üres a pa-\n"
" rancs."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3043,7 +3128,7 @@ msgstr ""
" Sikerrel tér vissza, ha kapcsolót talált, sikertelenül, ha elfogytak a\n"
" kapcsolók vagy hiba történt."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3083,7 +3168,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve, ha PARANCS nem található vagy sikertelen\n"
" az átirányítás."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3095,7 +3180,7 @@ msgstr ""
" Kilép a parancsértelmezőből N kilépési kóddal. Ha N hiányzik, az utol-\n"
" só parancs kilépési kódjával lép ki."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3108,7 +3193,7 @@ msgstr ""
" Kilép a bejelentkező parancsértelmezőből N kilépési kóddal. Hibával\n"
" tér vissza, ha nem bejelentkező parancsértelmezőből hívják."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3162,7 +3247,7 @@ msgstr ""
" Sikert vagy a végrehajtott parancs kilépési kódját adja; nullától el-\n"
" térőt hiba esetén."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3183,7 +3268,7 @@ msgstr ""
" Az előtérbe hozott parancs állapota (annak kilépésekor), vagy nemnulla\n"
" hiba esetén."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3206,7 +3291,8 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha a munkakezelés le van tiltva, vagy hi-\n"
" ba történt."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3217,7 +3303,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3249,7 +3335,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve, ha NÉV nem található vagy érvénytelen kap-\n"
" csolót kap."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3287,7 +3373,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha nincs találat vagy hibás kapcsolót kap."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3350,7 +3436,8 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, vagy hiba\n"
" történik."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3359,7 +3446,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3394,7 +3481,7 @@ msgstr ""
" Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót és nem történik\n"
" hiba. -x használata esetén PARANCS kilépési kódjával tér vissza."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3426,7 +3513,7 @@ msgstr ""
" Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót vagy MUNKASZÃM-\n"
" ot."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3467,7 +3554,7 @@ msgstr ""
" Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót és nem történik\n"
" hiba."
-#: builtins.c:926
+#: builtins.c:938
#, fuzzy
msgid ""
"Evaluate arithmetic expressions.\n"
@@ -3551,7 +3638,8 @@ msgstr ""
" Kilépési kód:\n"
" Ha az utolsó argumentum 0, a let 1-gyel tér vissza, különben 0-val."
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3586,16 +3674,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Beolvas egy sort a szabványos bemenetről és mezőkre osztja.\n"
@@ -3634,7 +3725,7 @@ msgstr ""
" A kilépési kód nulla, kivéve ha EOF-ot ér a beolvasás, időtúllépéskor\n"
" vagy érvénytelen fájlleíró megadásakor."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3655,7 +3746,7 @@ msgstr ""
" N-nel tér vissza, kivéve ha nem függvényből vagy parancsfájlból akar\n"
" visszatérni – ekkor sikertelenséget jelez."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3722,7 +3813,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3818,7 +3909,8 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3827,6 +3919,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3854,7 +3948,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha hibás kapcsolót kap, vagy egy NÉV csak\n"
" olvasható."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3888,7 +3982,8 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót vagy NEV-et kap."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3900,7 +3995,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3924,7 +4021,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót vagy NEV-et kap."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3942,7 +4039,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha N negatív vagy nagyobb mint $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3965,7 +4062,7 @@ msgstr ""
" Az utolsó FÃJLNÉV-beli parancs kilépési kódjával tér vissza; sikerte-\n"
" lenül, ha FÃJLNÉV nem olvasható."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3991,7 +4088,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha a munkakezelés nem támogatott vagy hiba\n"
" történt."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4057,6 +4154,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4144,7 +4243,7 @@ msgstr ""
" Sikerrel tér vissza, ha KIF igaz; sikertelenséggel, ha KIF hamis vagy\n"
" érvénytelen argumentumokat kap."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4157,7 +4256,7 @@ msgstr ""
" hogy az utolsó argumentuma „]†kell legyen – a nyitó „]â€-lel összhang-\n"
" ban."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4175,7 +4274,7 @@ msgstr ""
" Kilépési kód:\n"
" Mindig sikeres."
-#: builtins.c:1332
+#: builtins.c:1350
#, fuzzy
msgid ""
"Trap signals and other events.\n"
@@ -4248,7 +4347,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha SZIGNÃL érvénytelen vagy érvénytelen\n"
" kapcsolót kap."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4300,7 +4399,8 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel lép ki, ha minden NÉV megtalálható, sikertelenül, ha nem."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4329,6 +4429,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4383,7 +4486,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve érvénytelen kapcsoló és hiba esetében."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4418,21 +4521,25 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel lép ki, kivéve ha MÓD vagy egy kapcsoló érvénytelen."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"Munka befejezésének megvárása és a kilépési kód visszaadása.\n"
" \n"
@@ -4445,18 +4552,20 @@ msgstr ""
" ID kilépési kódjával tér vissza; érvénytelen ID vagy kapcsoló esetén\n"
" sikertelenül."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"Munka befejezésének megvárása és a kilépési kód visszaadása.\n"
" \n"
@@ -4467,7 +4576,7 @@ msgstr ""
" ID kilépési kódjával tér vissza; érvénytelen ID vagy kapcsoló esetén\n"
" sikertelenül."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4489,7 +4598,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsó parancs kilépési kódját adja vissza."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4519,7 +4628,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsó parancs kilépési kódját adja."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4555,7 +4664,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsó parancs kilépési kódját adja vissza."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4585,7 +4694,7 @@ msgstr ""
" Kilépési kód:\n"
" A kilépési kód a CSÅVEZETÉK kilépési kódja lesz."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4604,7 +4713,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsó parancs kilépési kódját adja vissza."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4637,7 +4746,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utoljára végrehajtott parancs kilépési kódja."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4655,7 +4764,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsónak végrehajtott parancs kilépési kódja."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4673,7 +4782,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsónak végrehajtott parancs kilépési kódja."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4695,7 +4804,7 @@ msgstr ""
" Kilépési kód:\n"
" A PARANCS kilépési kódjával tér vissza."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4718,7 +4827,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve ha NÉV csak olvasható."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4736,7 +4845,7 @@ msgstr ""
" Kilépési kód:\n"
" Az utolsó parancs kilépési kódját adja vissza."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4758,7 +4867,7 @@ msgstr ""
" Kilépési kód:\n"
" A visszaállított parancs kilépési kódjával lép ki."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4776,7 +4885,7 @@ msgstr ""
" Kilépési kód:\n"
" 1-gyel tér vissza, ha KIFEJEZÉS értéke 0, különben 0-val."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4825,7 +4934,7 @@ msgstr ""
" Kilépési kód:\n"
" 0 vagy 1 a KIFEJEZÉS-től függően."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4926,7 +5035,7 @@ msgstr ""
" HISTIGNORE Kettőspontokkal elválasztott mintalista, amely mintákra\n"
" illeszkedő parancsok nem kerülnek az előzmények közé\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -4983,7 +5092,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve érvénytelen argumentum vagy könyvtárváltás\n"
" során történő hiba esetén."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5031,7 +5140,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve érvénytelen argumentum vagy könyvtárváltás\n"
" során történő hiba esetén."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5080,7 +5189,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve érvénytelen argumentum vagy hiba esetén."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5117,7 +5226,7 @@ msgstr ""
" Sikerrel tér vissza, ha OPTNÉV engedélyezve van; sikertelenül, ha hi-\n"
" bás kapcsolókat kap vagy OPTNÉV tiltva van."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5135,9 +5244,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5145,6 +5254,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5173,7 +5288,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve ha hibás kapcsolókat kap, vagy az írás/ér-\n"
" tékadás hibával járt."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5221,7 +5336,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel tér vissza, kivéve érvénytelen kapcsoló és hiba esetén."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5242,7 +5357,7 @@ msgstr ""
" Kilépési kód:\n"
" Sikerrel lép ki, kivéve érvénytelen kapcsoló vagy hiba esetén."
-#: builtins.c:1956
+#: builtins.c:1985
#, fuzzy
msgid ""
"Modify or display completion options.\n"
@@ -5300,7 +5415,7 @@ msgstr ""
" Sikerrel lép ki, kivéve ha érvénytelen kapcsolókat kap, vagy NÉV nincs\n"
" még megadva."
-#: builtins.c:1986
+#: builtins.c:2015
#, fuzzy
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
@@ -5370,7 +5485,7 @@ msgstr ""
" Sikerrel tér vissza, kivéve érvénytelen kapcsoló vagy csak olvasható,\n"
" vagy nem indexelt TÖMB megadása esetén."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5380,6 +5495,19 @@ msgstr ""
" \n"
" „mapfile†szinonimája."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "A licenc GPLv2+: a GNU GPL 2. vagy újabb változata <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
diff --git a/po/id.gmo b/po/id.gmo
index d8d80c88..50b72ed9 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index aaa0e5fa..8ff1d1ff 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,98 +7,114 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2010-01-16 12:45+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "array subscript buruk"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: tidak dapat mengubah index ke array yang berassosiasi"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: kunci array assosiasi tidak valid"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: tidak dapat mengassign ke index tidak-numeric"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: harus menggunakan subscript ketika memberikan assosiasi array"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: tidak dapat membuat: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: tidak dapat menemukan keymap untuk perintah"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: bukan karakter whitespace (spasi) pertama ditemukan `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "tidak menutup '%c' dalam %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: hilang pemisah colon"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "`%s': nama alias tidak valid"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "pengubahan baris tidak aktif"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "'%s': nama keymap tidak valid"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: tidak dapat membaca: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "'%s': tidak dapat melepaskan"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "'%s': nama fungsi tidak dikenal"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s tidak terikat ke kunci apapun.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s dapat dipanggil melalui "
@@ -111,7 +127,7 @@ msgstr "jumlah loop"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "hanya berarti dalam sebuah `for', `while', atau `until'loop"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -121,11 +137,15 @@ msgstr ""
" \n"
" Tanpa EXPR, kembali "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME tidak diset"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "terlalu banyak argumen"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD tidak diset"
@@ -134,7 +154,7 @@ msgstr "OLDPWD tidak diset"
msgid "line %d: "
msgstr "baris %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "peringatan: "
@@ -144,11 +164,7 @@ msgstr "peringatan: "
msgid "%s: usage: "
msgstr "%s: penggunaan: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "terlalu banyak argumen"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: pilihan membutuhkan sebuah argumen"
@@ -163,7 +179,7 @@ msgstr "%s: argumen numeric dibutuhkan"
msgid "%s: not found"
msgstr "%s: tidak ditemukan"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: pilihan tidak valid"
@@ -173,7 +189,7 @@ msgstr "%s: pilihan tidak valid"
msgid "%s: invalid option name"
msgstr "%s: nama pilihan tidak valid"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': bukan sebuah identifier yang valid"
@@ -186,7 +202,7 @@ msgstr "nomor oktal tidak valid"
msgid "invalid hex number"
msgstr "nomor hexa tidak valid"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "nomor tidak valid"
@@ -200,7 +216,7 @@ msgstr "%s: spesifikasi sinyal tidak valid"
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:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: variabel baca-saja"
@@ -272,50 +288,60 @@ msgstr "%s: error mengambil direktori saat ini: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: spesifikasi pekerjaan ambigu"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: nama aksi tidak valid"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: tidak ada spesifikasi completion"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
"peringatan: pilihan -F mungkin tidak bekerja seperti yang anda harapkan"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
"peringatan: pilihan -C mungkin tidak bekerja seperti yang anda harapkan"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "saat ini sedang tidak menjalankan fungsi completion"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "hanya dapat digunakan dalam sebuah fungsi"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "tidak dapat menggunakan `-f' untuk membuat fungsi"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: fungsi baca-saja"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: tidak dapat menghapus variabel array secara ini"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: tidak dapat mengubah assosiasi ke array index"
@@ -344,24 +370,23 @@ msgstr "%s: bukan dinamically loaded"
msgid "%s: cannot delete: %s"
msgstr "%s: tidak dapat menghapus: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: bukan sebuah direktori"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: bukan sebuah file umum"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: file terlalu besar"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: tidak dapat menjalankan berkas binary"
@@ -394,11 +419,11 @@ msgstr "Ada pekerjaan yang sedang berjalan.\n"
msgid "no command found"
msgstr "perintah tidak ditemukan"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "spesifikasi sejarah"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: tidak dapat membuka file sementara: %s"
@@ -443,7 +468,7 @@ 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
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -451,12 +476,12 @@ msgstr ""
"tidak ada topik bantuan yang cocok dengan `%s'. Coba `help help' atau 'man -"
"k %s' atau `info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: tidak dapat membuka: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -487,7 +512,7 @@ msgstr "tidak dapat menggunakan lebih dari satu pilihan dari -anrw"
msgid "history position"
msgstr "posisi sejarah"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: expansi sejarah gagal"
@@ -501,16 +526,16 @@ msgstr "%s: inlib gagal"
msgid "no other options allowed with `-x'"
msgstr "tidak ada pilihan lain yang diperbolehkan dengan `-x'"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argumen harus diproses atau ID pekerjaan"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Kesalahan tidak diketahui"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "diduga sebuah ekspresi"
@@ -519,64 +544,69 @@ msgstr "diduga sebuah ekspresi"
msgid "%s: not an indexed array"
msgstr "%s: bukan sebuah indeks array"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: spesifikasi file deskripsi tidak valid"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: file deskriptor %s tidak valid"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: jumlah baris tidak valid"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: asal array tidak valid"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: nama aksi tidak valid"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "nama variabel array kosong"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "bantuan array variabel dibutuhkan"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': hilang karakter format"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: spesifikasi timeout tidak valid"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': karakter format tidak valid"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "peringatan: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "hilang digit hexa untuk \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, fuzzy, c-format
msgid "missing unicode digit for \\%c"
msgstr "hilang digit hexa untuk \\x"
@@ -585,19 +615,24 @@ msgstr "hilang digit hexa untuk \\x"
msgid "no other directory"
msgstr "tidak ada direktori lain"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: argumen limit tidak valid"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<direktori saat ini>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "direktori stack kosong"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "index direktori stack"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -642,7 +677,7 @@ msgstr ""
"ditampilkan oleh\n"
" \tdirs ketika dipanggil tanpa pilihan, dimulai dari nol."
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -689,7 +724,7 @@ msgstr ""
" \n"
" Builtin `dirs' menampilkan direktori stack."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -725,40 +760,40 @@ msgstr ""
" \n"
" Builtin `dirs' menampilkan direktori stack."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: spesifikasi timeout tidak valid"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "error baca: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "hanya dapat `return' dari sebuah fungsi atau script yang disource"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "tidak dapat secara simultan unset sebuah fungsi dan sebuah variable"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: tidak dapat unset"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: tidak dapat unset: baca-saja %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: bukan sebuah variabel array"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: bukan sebuah fungsi"
@@ -767,11 +802,11 @@ msgstr "%s: bukan sebuah fungsi"
msgid "shift count"
msgstr "shift terhitung"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "tidak dapat menset dan menunset pilihan shell secara bersamaan"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: nama pilihan shell tidak valid"
@@ -813,7 +848,7 @@ msgstr "%s adalah sebuah fungsi\n"
msgid "%s is a shell builtin\n"
msgstr "%s adalah sebuah shell builtin\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s adalah %s\n"
@@ -823,45 +858,45 @@ msgstr "%s adalah %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s memiliki hash (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: argumen limit tidak valid"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': perintah buruk"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: tidak dapat get limit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "batas"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: tidak dapat memodifikasi batas: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "nomor oktal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "`%c': operator mode symbolic tidak valid"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "`%c': mode karakter symbolic tidak valid"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " baris "
@@ -875,301 +910,316 @@ msgstr "perintah terakhir: %s\n"
msgid "Aborting..."
msgstr "membatalkan..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "perintah error tidak diketahui"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "tipe perintah buruk"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "konektor buruk"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "lompat buruk"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variabel tidak terikat"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "kehabisan waktu menunggu masukan: otomatis-keluar\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "tidak dapat menyalurkan masukan standar dari /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: `%c': karakter format tidak valid"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "pipe error"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr ""
"%s: dibatasi: tidak dapat menspesifikasikan '/' dalam nama nama perintah"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: perintah tidak ditemukan"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "%s adalah %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: interpreter buruk"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: tidak dapat menjalankan berkas binary"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s adalah sebuah shell builtin\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "tidak dapat menduplikasikan fd %d ke fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "expresi level rekursi terlewati"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "rekursi stack underflow"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntax error dalam expresi"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "mencoba menempatkan ke bukan sebuah variabel"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "dibagi oleh 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bug: tanda expassign buruk"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "`:' diharapkan untuk sebuah pernyataan kondisional"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "eksponen kurang dari 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "idenfier diharapkan setelah pre-increment atau pre-decrement"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "hilang `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntax error: operand diharapkan"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntax error: operator arithmetic tidak valid"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (error token adalah \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "basis arithmetic tidak valid"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "nilai terlalu besar untuk basis"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: expresi error\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: tidak dapat mengakses direktori orang tua"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "tidak dapat mereset mode nodelay untuk fd %d"
-#: input.c:260
+#: input.c:271
#, 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"
+"tidak dapat mengalokasikan berkas deskripsi bari untuk masukan bash dari fd "
+"%d"
-#: input.c:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "forked pid %d terlihat dalam pekerjaan yang sedang berjalan %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "menghapus pekerjaan yang terhenti %d dengan proses grup %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: process %5ld (%s) dalam the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) ditandai dengan tetap hidup"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: tidak ada pid seperti itu"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "sinyal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Selesai"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Terhenti"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Terhenti(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Berjalan"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Selesai(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Keluar %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Status tidak diketahui"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core didump) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "anak setpgid (%ld ke %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Tidak ada catatan untuk proses %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: pekerjaan %d terhenti"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: pekerjaan telah selesai"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: pekerjaan %d sudah berjalan di belakang (background)"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: mengaktifkan WNOHANG untuk menghindari blok tak terhingga"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: baris %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core didump)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd sekarang: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp gagal"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: baris disiplin"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "tidak dapat menset terminal proses grup (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "tidak ada pengontrol pekerjaan dalam shell ini"
@@ -1191,55 +1241,55 @@ msgstr ""
msgid "unknown"
msgstr "tidak diketahui"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: blok dalam daftar bebas clobbered"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: dipanggil dengan argumen blok yang sudah dibebaskan"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: dipanggil dengan argumen blok yang tidak dialokasikan"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: underflow terdeteksi; mh_nbytes diluar dari jangkauan"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: awal dan akhir dari ukuran potongan berbeda"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: dipanggil dengan argumen blok yang tidak teralokasikan"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: underflow terdeteksi; my_nbytes diluar dari jangkauan"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: awal dan akhir dari ukuran potongan berbeda"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "basis tidak valid"
@@ -1262,35 +1312,35 @@ msgstr "%s: spesifikasi jalur network buruk"
msgid "network operations not supported"
msgstr "operasi jaringan tidak dilayani"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: tidak dapat mengubah lokal (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: tidak dapat mengubah local (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: tidak dapat mengubah lokal (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: tidak dapat mengubah lokal (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Anda memiliki surat dalam $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Anda memiliki surat baru dalam $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Surat dalam %s telah dibaca\n"
@@ -1308,119 +1358,119 @@ msgstr "syntax error: `;' tidak terduga"
msgid "syntax error: `((%s))'"
msgstr "syntax error: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: tipe instruksi buruk %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: instruksi redireksi `%d' diluar dari jangkauan"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "EOF tidak terduga ketika mencari untuk pencocokan `%c'"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "EOF tidak terduga ketika mencari untuk `]]'"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "syntax error dalam ekspresi kondisional: tanda `%s' tidak terduga"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "syntax error dalam ekspresi kondisional"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "tanda `%s' tidak terduga, diduga `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "diduga `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "argumen tidak terduga `%s' ke operator kondisional unary"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "argumen tidak terduga untuk operasi unary kondisional"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "tanda `%s' tidak terduga, operator binary kondisional diduga"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "operator binary kondisional diduga"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "argumen `%s' tidak terduga ke operator binary kondisional"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "argumen tidak terduga ke operasi binary kondisional"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "tanda `%c' tidak terduga dalam perintah kondisional"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "tanda `%s' tidak terduga dalam perintah kondisional"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "tanda %d tidak terduga dalam perintah kondisional"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "syntax error didekat tanda `%s' yang tidak terduga"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "syntax error didekat `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "syntax error: tidak terduga diakhir dari berkas"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "syntax error"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Gunakan \"%s\" untuk meninggalkan shell.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "EOF tidak terduga ketika mencari untuk pencocokan ')'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: fungsi `%s' tidak ditemukan"
@@ -1430,90 +1480,90 @@ msgstr "completion: fungsi `%s' tidak ditemukan"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: konektor buruk `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: berkas pendeskripsi tidak valid"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: berkas penunjuk KOSONG"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: '%c': format karakter tidak valid"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "berkas deskripsi diluar dari jangkauan"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: redirect ambigu"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: tidak dapat menulis berkas yang sudah ada"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restricted: tidak dapat meredirect keluaran"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "tidak dapat membuat berkas sementara untuk dokumen disini: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: tidak dapat meng-'assign' fd ke variabel"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port tidak dilayani tanpa jaringan"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "redirection error: tidak dapat menduplikasi fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "tidak dapat menemukan /tmp, tolong buat!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp harus berupa sebuah nama direktori yang valid"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: pilihan tidak valid"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Aku tidak memiliki nama!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, versi %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1522,43 +1572,44 @@ msgstr ""
"Penggunaan:\t%s [GNU pilihan panjang] [pilihan] ...\n"
"\t%s [GNU pilihan panjang] [pilihan] berkas-script ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU pilihan panjang:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Pilihan shell:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s atau pilihan -o\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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 pilihan "
"shell.\n"
-#: shell.c:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Gunakan perintah 'bashbug' untuk melaporkan bugs.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: operasi tidak valid"
@@ -1732,72 +1783,77 @@ msgstr "Sinyal tidak diketahui #"
msgid "Unknown Signal #%d"
msgstr "Sinyal tidak diketahui #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "substitusi buruk: tidak ada penutupan `%s' dalam %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: tidak dapat meng-assign daftar kedalam anggoya array"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "tidak dapat membuat pipe untuk proses substitusi"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "tidak dapat membuat anak untuk proses substitusi"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "tidak dapat membuka named pipe %s untuk membaca"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "tidak dapat membukan named pipe %s untuk menulis"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "tidak dapat menduplikasi nama pipe %s sebagai fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "tidak dapat membuat pipe untuk perintah substitusi"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "tidak dapat membuat anak untuk perintah substitusi"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: tidak dapat menduplikasikan pipe sebagi fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: nilai dari berkas pendeskripsi penelusur tidak valid"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parameter kosong atau tidak diset"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: substring expresi < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: substitusi buruk"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: tidak dapat meng-assign dengan cara ini"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1805,134 +1861,149 @@ msgstr ""
"versi selanjutnya dari shell akan memaksa evaluasi dari sebuah penggantian "
"aritmetika"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "substitusi buruk: tidak ada penutupan \"\" dalam %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "tidak cocok: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argumen diharapkan"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: expresi integer diduga"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "')' diduga"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "`)' diduga, ditemukan %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: operator unary diduga"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: operator binary diduga"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "hilang `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "nomor sinyal tidak valid"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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"
+"run_pending_traps: sinyal handler adalah SIG_DFL, mengirimkan kembali %d "
+"(%s) kediri sendiri"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: sinyal buruk %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "error mengimpor definisi fungsi untuk `%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "level shell (%d) terlalu tinggi, mereset ke 1"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: nilai dari berkas pendeskripsi penelusur tidak valid"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: tidak ada context fungsi di scope ini"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: tidak dapat meng-'assign' fd ke variabel"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: tidak ada context fungsi dalam scope ini"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s memiliki exportstr kosong"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "karakter %d tidak valid dalam exporstr untuk %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "bukan `=' dalam exportstr untuk %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: bukan global_variable context"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
"pop_scope: kepala dari shell_variables bukan sebuah scope lingkungan "
"sementara"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: tidak dapat membuka sebagai BERKAS"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: nilai dari berkas pendeskripsi penelusur tidak valid"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s diluar jangkauan"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1940,36 +2011,27 @@ msgstr ""
"Lisensi GPLv3+: GNU GPL versi 3 atau sesudahnya <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, versi %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
"Ini adalah perangkat lunak bebas; anda bebas untuk mengubah dan "
"mendistribusikannya.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "TIDAK ADA GARANSI, selama masih diijinkan oleh hukum yang berlaku.\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Lisensi GPLv2+: GNU GPL versi 2 atau sesudahnya <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2000,8 +2062,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] name [nama ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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] "
@@ -2025,7 +2088,7 @@ msgstr "pemanggil [expr]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|-P] [direktori]"
#: builtins.c:66
@@ -2050,7 +2113,7 @@ msgstr "perintah [-pVv] perintah [argumen ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFilrtux] [-p] [name[=nilai] ...]"
#: builtins.c:78
@@ -2161,7 +2224,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [-abefhkmnptuvxBCHP] [-o nama-pilihan] [argumen ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [name ...]"
#: builtins.c:144
@@ -2210,7 +2274,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] nama [name ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [batas]"
#: builtins.c:172
@@ -2218,12 +2283,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mode]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2403,6 +2470,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah NAMA bukan alias yang sudah ada."
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2436,6 +2504,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2483,7 +2553,7 @@ msgstr ""
" bind memberikan kembalian 0 kecuali sebuah pilihan tidak dikenal "
"diberikan atau sebuah error terjadi."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2502,7 +2572,7 @@ msgstr ""
" Status Keluar:\n"
" Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2521,7 +2591,7 @@ msgstr ""
" Status Keluar:\n"
" Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2548,7 +2618,7 @@ msgstr ""
"BUILTIN adalah\n"
" bukan sebuah shell builtin.."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2577,7 +2647,7 @@ msgstr ""
"shell atau EXPR\n"
" tidak valid."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2601,13 +2671,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2642,7 +2720,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan 0 jika direktori berubah; bukan nol jika tidak."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2672,7 +2750,7 @@ msgstr ""
"direktori sekarang\n"
" tidak bisa dibaca."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2688,7 +2766,7 @@ msgstr ""
" Status Keluar:\n"
" Selalu sukses."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2700,7 +2778,7 @@ msgstr ""
" Status Keluar:\n"
" Selalu sukses."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2712,7 +2790,7 @@ msgstr ""
" Status Keluar:\n"
" Selalu gagal."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2750,7 +2828,7 @@ msgstr ""
" Mengembalikan status keluar dari PERINTAH, atau gagal jika PERINTAH "
"tidak ditemukan."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2771,6 +2849,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2786,7 +2865,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Menset nilai variabel dan atribut.\n"
" \n"
@@ -2822,7 +2902,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2832,7 +2912,8 @@ msgstr ""
" \n"
" Kadaluarsa. Lihat `help declare'."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2843,8 +2924,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Mendefinisikan variabel lokal.\n"
" \n"
@@ -2860,11 +2941,14 @@ msgstr ""
"sebuah error terjadi.\n"
" atau shell tidak menjalankan sebuah fungsi."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2876,6 +2960,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2918,7 +3003,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan sukses kecuali sebuah penulisan error terjadi."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2940,7 +3025,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan sukses kecuali sebuah penulisan error terjadi."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2996,7 +3081,7 @@ msgstr ""
" Mengembalikan sukses kecuali NAMA bukan sebuah shell builtin atau sebuah "
"error terjadi."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3017,7 +3102,7 @@ msgstr ""
" Mengembalikan status keluar dari perintah atau sukses jika perintah "
"adalah kosong."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3103,7 +3188,7 @@ msgstr ""
"dari pilihan\n"
" ditemui atau sebuah error terjadi."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3146,7 +3231,7 @@ msgstr ""
" Mengembalikan sukses kecuali PERINTAH tidak ditemukan atau sebuah "
"redireksi error terjadi."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3159,7 +3244,7 @@ msgstr ""
"keluaran\n"
" adalah status dari perintah terakhir yang dijalankan."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3173,7 +3258,7 @@ msgstr ""
"error jika tidak dijalankan\n"
" dalam sebuah login shell."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3232,7 +3317,7 @@ msgstr ""
" Mengembalikan sukses atau status dari perintah yang dijalankan; tidak-"
"nol jika sebuah error terjadi."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3253,7 +3338,7 @@ msgstr ""
" Status dari perintah yang ditempatkan di foreground, atau gagal jika "
"sebuah error terjadi."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3277,7 +3362,8 @@ msgstr ""
" Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
"sebuah error terjadi."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3288,7 +3374,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3323,7 +3409,7 @@ msgstr ""
" Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah pilihan "
"tidak valid telah diberikan."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3364,7 +3450,7 @@ msgstr ""
" Mengembalikan sukses kecuali POLA tidak ditemukan atau pilihan tidak "
"valid diberikan."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3439,7 +3525,8 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3448,7 +3535,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3487,7 +3574,7 @@ msgstr ""
"sebuah error terjadi.\n"
" Jika -x digunakan, mengembalikan status keluar dari PERINTAH."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3519,7 +3606,7 @@ msgstr ""
" Mengembalikan sukses kecuali ada sebuah pilihan tidak valid atau JOBSPEC "
"diberikan."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3562,7 +3649,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:926
+#: builtins.c:938
#, fuzzy
msgid ""
"Evaluate arithmetic expressions.\n"
@@ -3651,7 +3738,8 @@ msgstr ""
" Jika ARG terakhir dievaluasi ke 0, membiarkan kembali ke 1; 0 "
"dikembalikan Jika tidak."
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3686,16 +3774,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Membaca sebuah baris dari standar masukan dan membaginya dalam bagian "
@@ -3749,7 +3840,7 @@ msgstr ""
" atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke pilihan -"
"u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3771,7 +3862,7 @@ msgstr ""
" Mengembalikan N, atau gagal jika shell tidak menjalan sebuah fungsi atau "
"script."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3838,7 +3929,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3947,7 +4038,8 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3956,6 +4048,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3984,7 +4078,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah NAMA adalah baca-saja."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -4019,7 +4113,8 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"NAMA tidak valid."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -4031,7 +4126,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -4058,7 +4155,7 @@ msgstr ""
" Mengembalikan sukses kecual sebuah pilihan tidak valid diberikan atau "
"NAMA tidak valid."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4076,7 +4173,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan sukses kecuali N adalah negatif atau lebih besar dari $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4102,7 +4199,7 @@ msgstr ""
"BERKAS; gagal jika\n"
" NAMA BERKAS tidak dapat dibaca."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4128,7 +4225,7 @@ msgstr ""
" Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
"sebuah error terjadi."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4194,6 +4291,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4293,7 +4392,7 @@ msgstr ""
"EXPR mengevaluasi ke\n"
" salah atau sebuah argumen tidak valid diberikan."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4305,7 +4404,7 @@ msgstr ""
" Ini sinonim untuk \"test\" builtin, tetapi argumen terakhir\n"
" harus berupa sebuah literal `]', untuk mencocokan dengan pembukaan `['."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4325,7 +4424,7 @@ msgstr ""
" Status Keluar:\n"
" Selalu sukses."
-#: builtins.c:1332
+#: builtins.c:1350
#, fuzzy
msgid ""
"Trap signals and other events.\n"
@@ -4407,7 +4506,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah SIGSPEC adalah tidak valid atau "
"sebuah pilihan tidak valid diberikan."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4469,7 +4568,8 @@ msgstr ""
" Mengembalikan sukses jika seluruh dari NAMA ditemukan; gagal jika ada "
"yang tidak ditemukan."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4498,6 +4598,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4557,7 +4660,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4595,21 +4698,25 @@ msgstr ""
" Mengembalikan sukses kecuali MODE tidak valid atau sebuah pilihan tidak "
"valid diberikan."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"Tunggu untuk penyelesaian pekerjaan dan kembalikan status keluar.\n"
" \n"
@@ -4627,18 +4734,20 @@ msgstr ""
"pilihan tidak\n"
" valid diberikan."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"Tunggu untuk penyelesaian proses dan kembalikan status keluar.\n"
" \n"
@@ -4652,7 +4761,7 @@ msgstr ""
"pilihan tidak valid\n"
" diberikan."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4676,7 +4785,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4706,7 +4815,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4743,7 +4852,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4771,7 +4880,7 @@ msgstr ""
" Status Keluar:\n"
" Status kembali adalah status kembali dari PIPELINE."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4789,7 +4898,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan setatus dari perintah terakhir yang dijalankan."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4827,7 +4936,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4845,7 +4954,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4862,7 +4971,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dijalankan."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4885,7 +4994,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status keluar dari PERINTAH."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4910,7 +5019,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan sukses kecuali NAMA adalah baca-saja."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4929,7 +5038,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari perintah terakhir yang dieksekusi."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4956,7 +5065,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan status dari pekerjaan yang dilanjutkan."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4974,7 +5083,7 @@ msgstr ""
" Status Keluar:\n"
" Mengembalikan 1 jika EXPRESI dievaluasi ke 0; mengembalikan 0 jika tidak."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -5031,7 +5140,7 @@ msgstr ""
" Status Keluar:\n"
" 0 atau 1 tergantun dari nilai dari EKSPRESI."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5145,7 +5254,7 @@ msgstr ""
"digunakan untuk menentukan dimana\n"
" \t\tperintah seharusnya disimpan dalam daftar sejarah.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5205,7 +5314,7 @@ msgstr ""
"atau pemindahan\n"
" direktori gagal."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5249,8 +5358,8 @@ msgstr ""
" \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"
+" \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"
@@ -5260,7 +5369,7 @@ msgstr ""
"atau pemindahan\n"
" direktori gagal."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5316,7 +5425,7 @@ msgstr ""
" Mengembalikan sukses kecuali ada sebuah pilihan tidak valid diberikan "
"atau sebuah error terjadi."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5355,7 +5464,7 @@ msgstr ""
"tidak valid diberikan\n"
" atau OPTNAME dinonaktifkan."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5373,9 +5482,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5383,6 +5492,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5414,7 +5529,7 @@ msgstr ""
"sebuah penulisan atau penempatan\n"
" error terjadi."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5467,7 +5582,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5490,7 +5605,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"sebuah error terjadi."
-#: builtins.c:1956
+#: builtins.c:1985
#, fuzzy
msgid ""
"Modify or display completion options.\n"
@@ -5553,7 +5668,7 @@ msgstr ""
"NAMA tidak memiliki\n"
" spesifikasi penyelesaian yang terdefinisi."
-#: builtins.c:1986
+#: builtins.c:2015
#, fuzzy
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
@@ -5630,7 +5745,7 @@ msgstr ""
" Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
"ARRAY adalah baca-saja."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5640,6 +5755,19 @@ msgstr ""
" \n"
" Sebuah sinonim untuk `mapfile'."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Hak Cipta (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Lisensi GPLv2+: GNU GPL versi 2 atau sesudahnya <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
diff --git a/po/it.gmo b/po/it.gmo
new file mode 100644
index 00000000..8f61a381
--- /dev/null
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 00000000..9e7f1445
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,5853 @@
+# Italian translation for bash
+# Copyright (C) 2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+# Sergio Zanchetta <primes2h@ubuntu.com>, 2010, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bash-4.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2011-10-17 09:14+0200\n"
+"Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\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:51
+msgid "bad array subscript"
+msgstr "indice dell'array errato"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: impossibile convertire un array indicizzato in uno associativo"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: chiave dell'array associativo non valida"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: impossibile assegnare a un indice non numerico"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr ""
+"%s: %s: deve essere usato un indice nell'assegnazione di un array associativo"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: impossibile creare: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr ""
+"bash_execute_unix_command: impossibile trovare una mappatura per il comando"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: il primo carattere non spazio non è \"\"\""
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "carattere di chiusura \"%c\" non presente in %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: separatore di tipo due punti mancante"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "\"%s\": nome alias non valido"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "modifica delle righe non abilitata"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "\"%s\": nome della mappatura non valido"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: impossibile leggere: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "\"%s\": impossibile eliminare l'associazione"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "\"%s\" nome della funzione sconosciuto"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s non è associato ad alcun tasto.\n"
+
+#: builtins/bind.def:316
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s può essere invocato tramite "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "numero di cicli"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "significativo solo in un ciclo \"for\", \"while\" o \"until\""
+
+#: builtins/caller.def:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Restituisce il contesto della chiamata alla subroutine corrente.\n"
+" \n"
+" Senza ESPR, restituisce "
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME non impostata"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "troppi argomenti"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD non impostata"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "riga %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "attenzione: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: uso: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: l'opzione richiede un argomento"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: è necessario un argomento numerico"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: non trovata"
+
+#: builtins/common.c:214 shell.c:801
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: opzione non valida"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: nome dell'opzione non valido"
+
+#: builtins/common.c:228 general.c:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "\"%s\": non è un identificatore valido"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "numero ottale non valido"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "numero esadecimale non valido"
+
+#: builtins/common.c:242 expr.c:1470
+msgid "invalid number"
+msgstr "numero non valido"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: specifica di segnale non valida"
+
+#: builtins/common.c:257
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "\"%s\": non è un pid o un numero di job valido"
+
+#: builtins/common.c:264 error.c:488
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: variabile in sola lettura"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s fuori dall'intervallo"
+
+#: builtins/common.c:272 builtins/common.c:274
+msgid "argument"
+msgstr "argomento"
+
+#: builtins/common.c:274
+#, c-format
+msgid "%s out of range"
+msgstr "%s fuori dall'intervallo"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: job inesistente"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: nessun controllo dei job"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "nessun controllo dei job"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: limitato"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "limitato"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: non è un comando interno di shell"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "errore in scrittura: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "errore nell'impostazione degli attributi del terminale: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "errore nel recupero degli attributi del terminale: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: errore nel recupero della directory corrente: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: specifica di job ambigua"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: nome azione non valido"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: nessun completamento specificato"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "attenzione: l'opzione -F potrebbe non funzionare come previsto"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "attenzione: l'opzione -C potrebbe non funzionare come previsto"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "funzione di completamento attualmente non in esecuzione"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "può essere usato solo in una funzione"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "impossibile usare \"-f\" per creare funzioni"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: funzione in sola lettura"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: impossibile eliminare variabili array in questo modo"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: impossibile convertire un array associativo in uno indicizzato"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "caricamento dinamico non disponibile"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "impossibile aprire l'oggetto condiviso %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "impossibile trovare %s nell'oggetto condiviso %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: non caricato dinamicamente"
+
+#: builtins/enable.def:474
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: impossibile eliminare: %s"
+
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: è una directory"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: non è un file regolare"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: file troppo grande"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: impossibile eseguire il file binario"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: impossibile eseguire: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "logout\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "non è una shell di login: utilizzare \"exit\""
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Sono presenti job interrotti.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Ci sono job in esecuzione.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "nessun comando trovato"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "specifica della cronologia"
+
+#: builtins/fc.def:390
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: impossibile aprire il file temp: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "attuale"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "job %d avviato senza controllo dei job"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opzione illecita -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'opzione richiede un argomento -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "hashing disabilitato"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s tabella di hash vuota\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "rich.\tcomando\n"
+
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Comandi di shell corrispondenti alla parola chiave \""
+msgstr[1] "Comandi di shell corrispondenti alle parole chiave \""
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"nessun argomento della guida corrisponde a \"%s\". Provare \"help help\" o "
+"\"man -k %s\" o \"info %s\"."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: impossibile aprire: %s"
+
+#: builtins/help.def:485
+#, 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 ""
+"Questi comandi della shell sono definiti internamente. Digitare \"help\" per "
+"consultare questa lista.\n"
+"Digitare \"help nome\" per saperne di più sulla funzione \"nome\".\n"
+"Usare \"info bash\" per saperne di più sulla shell in generale.\n"
+"Usare \"man -k\" o \"info\" per saperne di più su comandi non presenti nella "
+"lista.\n"
+"\n"
+"Un asterisco (*) vicino a un nome significa che il comando è disabilitato.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "impossibile usare più di uno tra -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "posizione nella cronologia"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: espansione della cronologia non riuscita"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: inlib non riuscito"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "nessuna altra opzione permessa con \"-x\""
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: gli argomenti devono essere ID di processo o di job"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Errore sconosciuto"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "attesa espressione"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: non è un array indicizzato"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: specifica di descrittore di file non valida"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: descrittore di file non valido: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: numero di righe non valido"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: origine dell'array non valida"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: quantum di callback non valido"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "nome della variabile array vuoto"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "necessario il supporto alla variabile array"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "\"%s\": manca il carattere di formato"
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "\"%c\": specifica di formato dell'orario non valida"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "\"%c\": carattere di formato non valido"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "attenzione: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "cifra esadecimale mancante in \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "cifra unicode mancante in \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "nessun'altra directory"
+
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: argomento di limite non valido"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<nessuna directory corrente>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "stack delle directory vuoto"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "indice dello stack delle directory"
+
+#: builtins/pushd.def:689
+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 ""
+"Visualizza l'elenco delle directory attualmente in memoria. Le directory\n"
+" vengono inserite nell'elenco con il comando \"pushd\"; è possibile\n"
+" andare a ritroso nell'elenco con il comando \"popd\".\n"
+" \n"
+" Opzioni:\n"
+" -c\tPulisce lo stack delle directory eliminandone tutti gli elementi\n"
+" -l\tNon stampa la tilde come prefisso per le directory relative alla\n"
+" \tpropria directory home\n"
+" -p\tStampa lo stack delle directory una voce per riga\n"
+" -v\tStampa lo stack delle directory una voce per riga usando la\n"
+" \tposizione nello stack stesso come prefisso\n"
+" \n"
+" Argomenti:\n"
+" +N\tVisualizza l'N-sima voce contando a partire da sinistra "
+"dell'elenco\n"
+" \tmostrato da dirs quando invocato senza opzioni, iniziando da zero.\n"
+" \n"
+" -N\tVisualizza l'N-sima voce contando a partire da destra dell'elenco\n"
+"\tmostrato da dirs quando invocato senza opzioni, iniziando da zero."
+
+#: builtins/pushd.def:711
+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 ""
+"Aggiunge una directory in cima allo stack delle directory o ruota lo\n"
+" stack stesso, mettendo come primo elemento l'attuale directory\n"
+" di lavoro. Senza argomenti scambia le prime due directory in cima.\n"
+" \n"
+" Opzioni:\n"
+" -n\tEvita il normale cambio di directory quando vengono aggiunte\n"
+" \tdirectory allo stack, così da manipolare solo lo stack stesso.\n"
+" \n"
+" Argomenti:\n"
+" +N\tRuota lo stack in modo che l'N-sima directory (contando\n"
+" \ta partire da sinistra dell'elenco mostrato da \"dirs\", iniziando da\n"
+" \tzero) sia in cima.\n"
+" \n"
+" -N\tRuota lo stack in modo che l'N-sima directory (contando\n"
+" \ta partire da destra dell'elenco mostrato da \"dirs\", iniziando da\n"
+" \tzero) sia in cima.\n"
+" \n"
+" dir\tAggiunge DIR in cima allo stack delle directory, facendone la\n"
+" \tdirectory di lavoro corrente.\n"
+" \n"
+" Il comando interno \"dirs\" visualizza lo stack delle directory."
+
+#: builtins/pushd.def:736
+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 ""
+"Rimuove voci dallo stack delle directory. Senza argomenti, rimuove\n"
+" la directory in cima allo stack e passa alla nuova prima directory.\n"
+" \n"
+" Opzioni:\n"
+" -n\tEvita il normale cambio di directory quando vengono rimosse\n"
+" \tdirectory dallo stack, così da manipolare solo lo stack stesso.\n"
+" \n"
+" Argomenti:\n"
+" +N\tRimuove l'N-sima voce contando a partire da sinistra dell'elenco\n"
+" \tmostrato da \"dirs\", iniziando da zero. Per esempio: \"popd +0\"\n"
+" \trimuove la prima directory, \"popd +1\" la seconda.\n"
+" \n"
+" -N\tRimuove l'N-sima voce contando a partire da destra dell'elenco\n"
+" \tmostrato da \"dirs\", iniziando da zero. Per esempio: \"popd -0\"\n"
+" \trimuove l'ultima directory, \"popd -1\" la penultima.\n"
+" \n"
+" Il comando interno \"dirs\" visualizza lo stack delle directory."
+
+#: builtins/read.def:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: specifica di timeout non valida"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "errore in lettura: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr ""
+"è possibile eseguire \"return\" solo da una funzione o da uno script chiamato"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "impossibile azzerare contemporaneamente una funzione e una variabile"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: impossibile azzerare"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: impossibile azzerare: %s in sola lettura"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: non è una variabile array"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: non è una funzione"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "numero di scorrimenti"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "impossibile impostare e azzerare opzioni di shell contemporaneamente"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: nome dell'opzione di shell non valido"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "necessario un nome file come argomento"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: file non trovato"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "impossibile sospendere"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "impossibile sospendere una shell di login"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s ha \"%s\" come alias\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s è una parola chiave di shell\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s è una funzione\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s è un comando interno di shell\n"
+
+#: builtins/type.def:317 builtins/type.def:393
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s è %s\n"
+
+#: builtins/type.def:337
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "hash effettuato su %s (%s)\n"
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: argomento di limite non valido"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "\"%c\": comando errato"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: impossibile recuperare il limite: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "limite"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: impossibile modificare il limite: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "numero ottale"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "\"%c\": operatore di modo simbolico non valido"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "\"%c\": carattere di modo simbolico non valido"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " riga "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "ultimo comando: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Interruzione..."
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "errore di comando sconosciuto"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "tipo di comando errato"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "connettore errato"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "salto errato"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: variabile non assegnata"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\atempo di attesa scaduto per l'input: auto-logout\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "impossibile redirigere lo standard input da /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: \"%c\": carattere di formato non valido"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "errore della pipe"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: limitato: impossibile specificare \"/\" nei nomi dei comandi"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: comando non trovato"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: interprete errato"
+
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: impossibile eseguire il file binario"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s è un comando interno di shell\n"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "impossibile duplicare fd %d su fd %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "superato il livello di ricorsione dell'espressione"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "underflow dello stack di ricorsione"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "errore di sintassi nell'espressione"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "tentata un'assegnazione a una non variabile"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "divisione per 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "bug: token di expassign errato"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "atteso \":\" per l'espressione condizionale"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "esponente minore di 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "atteso identificatore dopo un pre-incremento o un pre-decremento"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "\")\" mancante"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "errore di sintassi: atteso un operando"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "errore di sintassi: operatore aritmetico non valido"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (il token dell'errore è \"%s\")"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "base aritmetica non valida"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "valore troppo grande per la base"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: errore di espressione\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: impossibile accedere alle directory padre"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "impossibile reimpostare il modo nodelay per fd %d"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr ""
+"impossibile allocare un nuovo descrittore di file per l'input della bash da "
+"fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: buffer già esistente per il nuovo fd %d"
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: pipe pgrp"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "il pid %d del fork appare nel job in esecuzione %d"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "eliminazione del job %d interrotto con il gruppo di processi %ld"
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: processo %5ld (%s) in the_pipeline"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: pid %5ld (%s) segnato come ancora in vita"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: pid inesistente"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Segnale %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Completato"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "Fermato"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Fermato(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "In esecuzione"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Eseguito(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Uscita %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Stato sconosciuto"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(core dump creato) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (dir: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "setpgid del figlio (%ld a %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: il pid %ld non è un figlio di questa shell"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: nessun record del processo %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: il job %d è fermo"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: il job è terminato"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: il job %d è già in background"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr "waitchld: attivato WNOHANG per evitare blocchi indefiniti"
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: riga %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (core dump creato)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(dir ora: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: getpgrp non riuscita"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: disciplina di linea"
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "impossibile impostare il gruppo di processi del terminale (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "nessun controllo dei job in questa shell"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: asserzione non riuscita: %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: asserzione non riuscita\r\n"
+
+#: lib/malloc/malloc.c:313
+msgid "unknown"
+msgstr "sconosciuto"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: blocco eliminato nell'elenco dei disponibili"
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: chiamata con un argomento di blocco già liberato"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: chiamata con un argomento di blocco non allocato"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: riscontrato un underflow; mh_nbytes fuori intervallo"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr "free: dimensioni diverse dei blocchi di inizio e di fine"
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: chiamata con un argomento di blocco non allocato"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: riscontrato un underflow; mh_nbytes fuori intervallo"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: dimensioni diverse dei blocchi di inizio e di fine"
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr ""
+"register_alloc: forse la tavola di allocazione è piena con FIND_ALLOC\n"
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: forse %p è già come allocato nella tabella\n"
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_alloc: forse %p è già come libero nella tabella\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "base non valida"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: host sconosciuto"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: servizio non valido"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: specifica del percorso di rete errata"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "operazione di rete non supportata"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL: impossibile cambiare la localizzazione (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr "setlocale: LC_ALL: impossibile cambiare la localizzazione (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: impossibile cambiare la localizzazione (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: impossibile cambiare la localizzazione (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "EÌ€ presente della posta in $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "EÌ€ presente della nuova posta in $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "La posta in %s è stata letta\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "errore di sintassi: richiesta espressione aritmetica"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "errore di sintassi: \";\" non atteso"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "errore di sintassi: \"((%s))\""
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: tipo di istruzione errata %d"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr ""
+"here-document alla riga %d è delimitato da un EOF (era richiesto \"%s\")"
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr ""
+"make_redirection: istruzione di reindirizzamento \"%d\" fuori dell'intervallo"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "EOF non atteso durante la ricerca di \"%c\""
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "EOF non atteso durante la ricerca di \"]]\""
+
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr ""
+"errore di sintassi nell'espressione condizionale: token non atteso \"%s\""
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "errore di sintassi nell'espressione condizionale"
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "token non atteso \"%s\", era atteso \")\""
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "atteso \")\""
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "argomento non atteso \"%s\" per l'operatore unario condizionale"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "argomento non atteso per l'operatore unario condizionale"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "token non atteso \"%s\", era atteso un operatore binario condizionale"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "atteso operatore binario condizionale"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "argomento non atteso \"%s\" per l'operatore binario condizionale"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "argomento non atteso per l'operatore binario condizionale"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "token non atteso \"%c\" nel comando condizionale"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "token non atteso \"%s\" nel comando condizionale"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "token non atteso %d nel comando condizionale"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "errore di sintassi vicino al token non atteso \"%s\""
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "errore di sintassi vicino a \"%s\""
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "errore di sintassi: EOF non atteso"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "errore di sintassi"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Usare \"%s\" per uscire dalla shell.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "EOF non atteso durante la ricerca di \")\""
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: funzione \"%s\" non trovata"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: COMPSPEC NULL"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: connettore errato \"%d\""
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: descrittore di file non valido"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: puntatore a file NULL"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != numfile xtrace fp (%d)"
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: \"%c\": carattere di formato non valido"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "descrittore di file fuori dell'intervallo"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: redirezione ambigua"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: impossibile sovrascrivere il file esistente"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: limitato: impossibile redirigere l'output"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "impossibile creare un file temporaneo per here-document: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: impossibile assegnare fd a una variabile"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port non supportata senza rete"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "errore di reindirizzamento: impossibile duplicare fd"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "impossibile trovare /tmp, è necessario crearla"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp deve essere un nome di directory valido"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: opzione non valida"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Manca il nome"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, versione %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Uso:\t%s [opzione lunga GNU] [opzione] ...\n"
+"\t%s [opzione lunga GNU] [opzione] file-script ...\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "Opzioni lunghe GNU:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Opzioni di shell:\n"
+
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD o -c comando o -O opzione_shopt\t\t(solo invocazione)\n"
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\topzione -%s oppure -o\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr ""
+"Digitare «%s -c \"help set\"» per ulteriori informazioni sulle opzioni di "
+"shell.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr ""
+"Digitare \"%s -c help\" per ulteriori informazioni sui comandi interni di "
+"shell.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Usare il comando \"bashbug\" per segnalare i bug.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: operazione non valida"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Segnale inesistente"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Chiusura"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Interruzione"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Uscita (con core dump)"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Istruzione non consentita"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "Rilevato trace/breakpoint"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "Istruzione ABORT"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "Istruzione EMT"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Eccezione in virgola mobile"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Ucciso"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Errore di bus"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Errore di segmentazione"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Chiamata di sistema errata"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Pipe interrotta"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Sveglia"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Terminato"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Condizione di I/O urgente"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Fermato (segnale)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Continuato"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Processo figlio concluso o fermato"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Fermato (input da terminale)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Fermato (output da terminale)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "I/O pronto"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "Limite di CPU"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "Limite di file"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Timer (virtuale)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Timer (profilo)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Finestra modificata"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Blocco del record"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "Segnale 1 dell'utente"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "Segnale 2 dell'utente"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "Dati di input HTF in sospeso"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "mancanza di alimentazione imminente"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "crash di sistema imminente"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "processo spostato su un'altra CPU"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "errore di programmazione"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "Modalità di monitoraggio HFT concessa"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "Modalità di monitoraggio HFT revocata"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "la sequenza sonora HFT è stata completata"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Richiesta di informazioni"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Numero di segnale sconosciuto"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Segnale sconosciuto n° %d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "sostituzione errata: nessuna chiusura di \"%s\" in %s"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: impossibile assegnare una lista a un membro di un array"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "impossibile creare una pipe per la sostituzione del processo"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "impossibile creare un figlio per la sostituzione del processo"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "impossibile aprire la pipe con nome %s in lettura"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "impossibile aprire la pipe con nome %s in scrittura"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "impossibile duplicare una pipe con nome %s come fd %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "impossibile creare una pipe per la sostituzione del comando"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "impossibile creare un figlio per la sostituzione del comando"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: impossibile duplicare la pipe come fd 1"
+
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: valore non valido per il descrittore del file di traccia"
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parametro nullo o non impostato"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: expressione di sottostringa < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: sostituzione errata"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: impossibile assegnare in questo modo"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"le versioni future della shell forzeranno la valutazione come fosse una "
+"sostituzione aritmetica"
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "sostituzione errata: manca «\"» di chiusura in %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "nessuna corrispondenza: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "atteso argomento"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: attesa espressione intera"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "atteso \")\""
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "atteso \")\", trovato %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: atteso operatore unario"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: atteso operatore binario"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "\"]\" mancante"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "numero di segnale non valido"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: valore errato in trap_list[%d]: %p"
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: il gestore dei segnali è SIG_DFL, viene inviato "
+"nuovamente %d (%s)"
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: segnale errato %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "errore nell'importazione della definizione di funzione per \"%s\""
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "livello di shell (%d) troppo alto, reimpostato a 1"
+
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: valore non valido per il descrittore del file di traccia"
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: nessun contesto di funzione nell'ambito corrente"
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: impossibile assegnare fd a una variabile"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: nessun contesto di funzione nell'ambito corrente"
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s ha exportstr null"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "carattere non valido %d in exportstr per %s"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "nessun \"=\" in exportstr per %s"
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr ""
+"pop_var_context: la prima parte di shell_variables non è un contesto di "
+"funzione"
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: nessun contesto global_variables"
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr ""
+"pop_scope: la prima parte di shell_variables non è un ambito temporaneo "
+"d'ambiente"
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: impossibile aprire come FILE"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%s: %s: valore non valido per il descrittore del file di traccia"
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s fuori dall'intervallo"
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright © 2011 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl."
+"html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, versione %s (%s)\n"
+
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Questo è software libero; è possibile modificarlo e ridistribuirlo.\n"
+
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Non c'è ALCUNA GARANZIA, nei limiti permessi dalla legge.\n"
+
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright © 2011 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: impossibile allocare %lu byte (%lu byte allocati)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: impossibile allocare %lu byte"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: impossibile allocare %lu byte (%lu byte allocati)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: impossibile allocare %lu byte"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [nome[=valore] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] nome [nome ...]"
+
+#: builtins.c:51
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m mappatura] [-f nomefile] [-q nome] [-u nome] [-r "
+"seqtasti] [-x seqtasti:comando-shell] [seqtasti:funzione-readline o comando-"
+"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 [comandoint-shell [arg ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [espr]"
+
+#: builtins.c:64
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [dir]"
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: builtins.c:68
+msgid ":"
+msgstr ":"
+
+#: builtins.c:70
+msgid "true"
+msgstr "vero"
+
+#: builtins.c:72
+msgid "false"
+msgstr "falso"
+
+#: builtins.c:74
+msgid "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] comando [arg ...]"
+
+#: builtins.c:76
+#, fuzzy
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [nome[=valore] ...]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] nome[=valore] ..."
+
+#: builtins.c:80
+msgid "local [option] name[=value] ..."
+msgstr "local [opzione] nome[=valore] ..."
+
+#: 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 nome_file] [nome ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [arg ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts stringaopz nome [arg]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a nome] [comando [argomenti ...]] [redirezione ...]"
+
+#: 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] [primo] [ultimo] oppure fc -s [pat=rep] [comando]"
+
+#: builtins.c:107
+msgid "fg [job_spec]"
+msgstr "fg [spec_job]"
+
+#: builtins.c:111
+msgid "bg [job_spec ...]"
+msgstr "bg [spec_job ...]"
+
+#: builtins.c:114
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p nomepercorso] [-dt] [nome ...]"
+
+#: builtins.c:117
+msgid "help [-dms] [pattern ...]"
+msgstr "help [-dms] [modello ...]"
+
+#: builtins.c:121
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d posiz] [n] oppure history -anrw [nomefile] oppure history -"
+"ps arg [arg...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [specjob ...] oppure jobs -x comando [argomenti]"
+
+#: builtins.c:129
+msgid "disown [-h] [-ar] [jobspec ...]"
+msgstr "disown [-h] [-ar] [specjob ...]"
+
+#: builtins.c:132
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s specsegn | -n numsegn | -specsegn] pid | specjob ... oppure kill -l "
+"[specsegn]"
+
+#: 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] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d delim] [-i testo] [-n ncaratt] [-N ncaratt] [-p "
+"stringa] [-t secondi] [-u fd] [nome ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o nome-opzione] [--] [arg ...]"
+
+#: builtins.c:142
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [nome ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [nome[=valore] ...] oppure export -p"
+
+#: builtins.c:146
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [nome[=valore] ...] oppure readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source nomefile [argomenti]"
+
+#: builtins.c:152
+msgid ". filename [arguments]"
+msgstr ". nomefile [argomenti]"
+
+#: builtins.c:155
+msgid "suspend [-f]"
+msgstr "suspend [-f]"
+
+#: builtins.c:158
+msgid "test [expr]"
+msgstr "test [espr]"
+
+#: 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] spec_segnale ...]"
+
+#: builtins.c:166
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] nome [nome ...]"
+
+#: builtins.c:169
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [limite]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [modo]"
+
+#: builtins.c:175
+#, fuzzy
+msgid "wait [-n] [id ...]"
+msgstr "wait [id]"
+
+#: builtins.c:179
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for NOME [in PAROLE ... ] ; do COMANDI; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( espr1; espr2; espr3 )); do COMANDI; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select NOME [in PAROLE ... ;] do COMANDI; 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 PAROLA in [MODELLO [| MODELLO]...) COMANDI ;;]... esac"
+
+#: builtins.c:192
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if COMANDI; then COMANDI; [ elif COMANDI; then COMANDI; ]... [ else "
+"COMANDI; ] fi"
+
+#: builtins.c:194
+msgid "while COMMANDS; do COMMANDS; done"
+msgstr "while COMANDI; do COMANDI; done"
+
+#: builtins.c:196
+msgid "until COMMANDS; do COMMANDS; done"
+msgstr "until COMANDI; do COMANDI; done"
+
+#: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NOME] comando [redirezioni]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function name { COMANDI ; } oppure name () { COMANDI ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ COMANDI ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "spec_job [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( espressione ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ espressione ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variabili - nomi e significati di alcune variabili di shell"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | dir]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [nomeopz ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v var] formato [argomenti]"
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opzione] [-A azione] [-G modglob] [-"
+"W elencoparole] [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S "
+"suffisso] [nome ...]"
+
+#: builtins.c:233
+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 opzione] [-A azione] [-G modglob] [-W "
+"elencoparole] [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S "
+"suffisso] [parola]"
+
+#: builtins.c:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o opzione] [-DE] [nome ...]"
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-c "
+"quantità] [array]"
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-"
+"c quantità] [array]"
+
+#: builtins.c:254
+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 ""
+"Definisce o visualizza alias.\n"
+" \n"
+" Senza argomenti, \"alias\" stampa l'elenco degli alias nella forma\n"
+" riusabile \"alias NOME=VALORE\" sullo standard output.\n"
+" \n"
+" Altrimenti, un alias è definito per ogni NOME a cui è fornito un "
+"VALORE.\n"
+" Uno spazio finale in VALORE determina un controllo della parola "
+"successiva\n"
+" che andrà a sostituire l'alias quando viene espanso.\n"
+" \n"
+" Opzioni:\n"
+" -p\tStampa tutti gli alias definiti in un formato riusabile\n"
+" \n"
+" Stato di uscita:\n"
+" alias restituisce vero a meno che non venga fornito un NOME per il "
+"quale\n"
+" non sia stato definito alcun alias."
+
+#: builtins.c:276
+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 ""
+"Rimuove ogni NOME dall'elenco degli alias definiti.\n"
+" \n"
+" Opzioni:\n"
+" -a\tRimuove tutte le definizioni di alias.\n"
+" \n"
+" Restituisce successo a meno che NOME non sia un alias esistente."
+
+#: builtins.c:289
+#, 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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"Imposta le associazioni di tasti e le variabili di Readline.\n"
+" \n"
+" Associa una sequenza di tasti a una funzione o a una macro Readline, "
+"oppure imposta una\n"
+" variabile di Readline. La sintassi di argomento senza opzione è "
+"equivalente a quella\n"
+" trovata in ~/.inputrc, ma deve essere passata come singolo argomento:\n"
+" es., bind '\"\\C-x\\C-r\": ri-leggi-file-init'.\n"
+" \n"
+" Opzioni:\n"
+" -m mappatura Usa MAPPATURA come la mappatura per la durata di "
+"questo\n"
+" comando. Nomi accettabili per la mappatura sono "
+"emacs,\n"
+" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
+" vi-command e vi-insert.\n"
+" -l Elenca i nomi delle funzioni.\n"
+" -P Elenca i nomi delle funzioni e le associazioni.\n"
+" -p Elenca le funzioni e le associazioni in una forma "
+"che\n"
+" possa essere riusata come input.\n"
+" -S Elenca le sequenze di tasti che invocano le macro e "
+"i loro valori.\n"
+" -s Elenca le sequenze di tasti che invocano le macro e "
+"i loro valori\n"
+" in una forma che possa essere riusata come input.\n"
+" -V Elenca i nomi e i valori delle variabili.\n"
+" -v Elenca i nomi e i valori delle variabili in una "
+"forma che possa\n"
+" essere riusata come input.\n"
+" -q nome-funzione Identifica il tasto che invoca la funzione "
+"nominata.\n"
+" -u nome-funzione Rimuove l'associazione tra la funzione nominata e "
+"tutti i tasti associati.\n"
+" -r seqtasti Rimuove l'associazione per la SEQTASTI.\n"
+" -f nomefile Legge le associazioni di tasti da NOMEFILE.\n"
+" -x seqtasti:comando-shell\tEsegue il COMANDO-SHELL quando viene "
+"inserita\n"
+" \t\t\t\t\tla SEQTASTI.\n"
+" \n"
+" Stato di uscita:\n"
+" bind restituisce 0 a meno che non sia fornita una opzione non "
+"riconosciuta o si riscontri un errore."
+
+#: builtins.c:328
+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 ""
+"Esce da cicli for, while o until.\n"
+" \n"
+" Esce da un ciclo FOR, WHILE o UNTIL. Se è specificato N, interrompe N "
+"cicli\n"
+" racchiusi.\n"
+" \n"
+" Stato di uscita:\n"
+" Lo stato di uscita è 0 a meno che N non sia maggiore o uguale a 1."
+
+#: builtins.c:340
+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 ""
+"Riprende cicli for, while o until.\n"
+" \n"
+" Riprende l'iterazione successiva del ciclo chiuso FOR, WHILE o UNTIL.\n"
+" Se è specificato N, riprende l'N-simo ciclo chiuso.\n"
+" \n"
+" Stato di uscita:\n"
+" Lo stato di uscita è 0 a meno che N non sia maggiore o uguale a 1."
+
+#: builtins.c:352
+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 ""
+"Esegue comandi interni di shell.\n"
+" \n"
+" Esegue il COMINTERNO-SHELL con ARGOMENTI senza portare a termine una "
+"ricerca\n"
+" comandi. Ciò è utile quando si desidera reimplementare un comando "
+"interno come una\n"
+" funzione di shell, ma è necessario eseguire il comando all'interno della "
+"funzione.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato di uscita del COMINTERNO-SHELL, o falso se il "
+"COMINTERNO-SHELL\n"
+" non è un comando interno di shell."
+
+#: builtins.c:367
+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 ""
+"Restituisce il contesto della chiamata alla subroutine corrente.\n"
+" \n"
+" Senza ESPR, restituisce \"$riga $nomefile\". Con ESPR, restituisce\n"
+" \"$riga $subroutine $nomefile\"; questa informazione aggiuntiva può "
+"essere usata\n"
+" per fornire uno stack trace.\n"
+" \n"
+" Il valore dell'ESPR indica di quanti frame di chiamata tornare indietro "
+"rispetto\n"
+" a quello attuale; in cima c'è il frame 0.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce 0 a meno che non sia in esecuzione una funzione di shell o "
+"che l'ESPR\n"
+" non sia valida."
+
+#: builtins.c:385
+#, 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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+"Cambia la directory di lavoro della shell.\n"
+" \n"
+" Cambia la directory corrente a DIR. La DIR predefinita è il valore della "
+"variabile\n"
+" HOME della shell.\n"
+" \n"
+" La variabile CDPATH definisce il percorso di ricerca per la directory "
+"che contiene\n"
+" DIR. I nomi di directory alternative in CDPATH sono separati da un due "
+"punti (:).\n"
+" Una nome nullo di directory corrisponde alla directory corrente. Se DIR "
+"inizia\n"
+" con uno slash (/), CDPATH non viene usato.\n"
+" \n"
+" Se la directory non viene trovata e l'opzione di shell \"cdable_vars\" è "
+"impostata,\n"
+" si assume che la parola sia un nome di variabile. Se questa variabile ha "
+"un valore,\n"
+" viene usato per DIR.\n"
+" \n"
+" Opzioni:\n"
+" -L\tForza a seguire i collegamenti simbolici\n"
+" -P\tUsa la struttura fisica della directory senza seguire i "
+"collegamenti\n"
+" \tsimbolici\n"
+" -e\tSe viene fornita l'opzione -P e non può essere determinata con "
+"successo\n"
+" \tla directory di lavoro corrente, esce con uno stato diverso da zero\n"
+" \n"
+" Il valore predefinito è seguire i collegamenti simbolici, come se fosse "
+"specificato \"-L\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce 0 se viene cambiata la directory o se $PWD è impostata con "
+"successo quando\n"
+" viene usato -P; altrimenti un valore diverso da zero."
+
+#: builtins.c:422
+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 ""
+"Stampa il nome della directory di lavoro corrente.\n"
+" \n"
+" Opzioni:\n"
+" -L\tStampa il valore di $PWD se contiene il nome della directory\n"
+" \tdi lavoro corrente\n"
+" -P\tStampa la directory fisica senza alcun collegamento simbolico\n"
+" \n"
+" In maniera predefinita \"pwd\" si comporta come se fosse specificato \"-L"
+"\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce 0 a meno che non venga fornita una opzione non valida o che "
+"la\n"
+" directory corrente non possa essere letta."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Comando nullo.\n"
+" \n"
+" Nessun effetto; il comando non esegue nulla.\n"
+" \n"
+" Stato di uscita:\n"
+" ha sempre successo."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Restituisce successo come risultato.\n"
+" \n"
+" Stato di uscita:\n"
+" ha sempre successo."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Restituisce un risultato di insuccesso.\n"
+" \n"
+" Stato di uscita:\n"
+" Sempre un insuccesso."
+
+#: builtins.c:468
+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 ""
+"Esegue un comando semplice o visualizza informazioni sui comandi.\n"
+" \n"
+" Esegue il COMANDO con gli ARGOMENTI ignorando la ricerca delle funzioni "
+"di shell o\n"
+" visualizza informazioni sui COMANDI specificati. Può essere usato per "
+"invocare comandi\n"
+" sul disco quando esiste una funzione con lo stesso nome.\n"
+" \n"
+" Opzioni:\n"
+" -p\tUsa un valore predefinito per il PERCORSO che garantisce che "
+"vengano trovate tutte\n"
+" \tle utilità standard\n"
+" -v\tStampa una descrizione del COMANDO simile al comando interno \"type"
+"\"\n"
+" -V\tStampa una descrizione più prolissa di ciascun COMANDO\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato di uscita del COMANDO o insuccesso se il COMANDO "
+"non viene trovato."
+
+#: builtins.c:487
+#, 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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Imposta i valori e gli attributi delle variabili.\n"
+" \n"
+" Dichiara le variabili e fornisce loro attributi. Se non vengono forniti "
+"NOMI,\n"
+" visualizza gli attributi e i valori di tutte le variabili.\n"
+" \n"
+" Opzioni:\n"
+" -f\tLimita l'azione o la visualizzazione ai nomi e alle definizioni di "
+"funzione\n"
+" -F\tLimita la visualizzazione ai soli nomi di funzione (più numero di "
+"riga e\n"
+" \tfile sorgente durante il debug)\n"
+" -g\tCrea variabili globali quando usato in una funzione di shell; "
+"altrimenti\n"
+" \tè ignorato\n"
+" -p\tVisualizza gli attributi e i valori di ciascun NOME\n"
+" \n"
+" Opzioni che impostano gli attributi:\n"
+" -a\tRende i NOMI array indicizzati (se supportata)\n"
+" -A\tRende i NOMI array associativi (se supportata)\n"
+" -i\tFornisce ai NOMI l'attributo \"integer\"\n"
+" -l\tConverte i NOMI in lettere minuscole in fase di assegnazione\n"
+" -r\tImposta i NOMI in sola lettura\n"
+" -t\tFornisce ai NOMI l'attributo \"trace\"\n"
+" -u\tConverte i NOMI in lettere maiuscole in fase di assegnazione\n"
+" -x\tImposta i NOMI come esportabili\n"
+" \n"
+" Usando \"+\" al posto di \"-\" disattiva l'attributo fornito.\n"
+" \n"
+" Le variabili con attributo intero vengono valutate aritmeticamente "
+"(vedere\n"
+" il comando \"let\") quando alla variabile è assegnato un valore.\n"
+" \n"
+" Quando viene usato in una funzione, \"declare\" rende locali i NOMI, "
+"come con\n"
+" il comando \"local\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Imposta valori e attributi di variabile.\n"
+" \n"
+" Obsoleto. Vedere \"help declare\"."
+
+#: builtins.c:535
+#, fuzzy
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"Definisce variabili locali.\n"
+" \n"
+" Crea una variabile locale chiamata NOME fornendogli un VALORE. L'OPZIONE "
+"può\n"
+" essere una qualsiasi opzione accettata da \"declare\".\n"
+" \n"
+" Le variabili locali possono essere usate solo all'interno di una "
+"funzione; sono\n"
+" visibili solo alla funzione nella quale sono definite e ai relativi "
+"figli.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita un'opzione non valida, "
+"non si\n"
+" riscontri un errore o la shell non stia eseguendo una funzione."
+
+#: builtins.c:552
+#, fuzzy
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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 ""
+"Scrive argomenti sullo standard output.\n"
+" \n"
+" Visualizza gli ARG sullo standard output seguiti da un ritorno a capo.\n"
+" \n"
+" Opzioni:\n"
+" -n\tNon accoda un carattere di ritorno a capo\n"
+" -e\tAbilita l'interpretazione dei seguenti caratteri backslash di "
+"escape\n"
+" -E\tDisabilita esplicitamente l'interpretazione dei caratteri "
+"backslash di escape\n"
+" \n"
+" \"echo\" interpreta i seguenti caratteri backslash di escape:\n"
+" \\a\tavviso (campanello)\n"
+" \\b\tbackspace\n"
+" \\c\telimina ulteriore output\n"
+" \\e\tcarattere di escape\n"
+" \\f\tavanzamento pagina\n"
+" \\n\tritorno a capo\n"
+" \\r\tritorno carrello\n"
+" \\t\ttabulazione orizzontale\n"
+" \\v\ttabulazione verticale\n"
+" \\\\\tbackslash\n"
+" \\0nnn\til carattere il cui codice ASCII è NNN (ottale). NNN può "
+"avere\n"
+" \tda 0 a 3 cifre ottali\n"
+" \\xHH\til carattere otto bit il cui valore è HH (esadecimale). HH "
+"può\n"
+" \tavere una o due cifre esadecimali\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga riscontrato un errore di "
+"scrittura."
+
+#: builtins.c:588
+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 ""
+"Scrive argomenti sullo standard output.\n"
+" \n"
+" Visualizza gli ARG sullo standard output seguiti da un ritorno a capo.\n"
+" \n"
+" Opzioni:\n"
+" -n\tNon accoda un ritorno a capo\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga riscontrato un errore di "
+"scrittura."
+
+#: builtins.c:603
+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 ""
+"Abilita o disabilita comandi interni di shell.\n"
+" \n"
+" Abilita o disabilita comandi interni di shell. La disabilitazione "
+"permette di\n"
+" eseguire un comando su disco che abbia lo stesso nome del comando "
+"interno\n"
+" di shell senza dover usare un nome di percorso completo.\n"
+" \n"
+" Opzioni:\n"
+" -a\tStampa un elenco di comandi interni mostrando se sono abilitati o "
+"meno\n"
+" -n\tDisabilita ogni NOME o visualizza un elenco di comandi interni "
+"disabilitati\n"
+" -p\tStampa l'elenco dei comandi interni in un formato riusabile\n"
+" -s\tStampa solo i nomi dei comandi interni \"speciali\" Posix\n"
+" \n"
+" Opzioni che controllano il caricamento dinamico:\n"
+" -f\tCarica il comando interno NOME dall'oggetto condiviso NOMEFILE\n"
+" -d\tRimuove un comando interno caricato con -f\n"
+" \n"
+" Senza opzioni viene abilitato ogni NOME.\n"
+" \n"
+" Per usare il comando \"test\" trovato in $PATH invece di quello interno "
+"della\n"
+" shell, digitare \"enable -n test\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che NOME non sia un comando interno di shell "
+"o si riscontri un errore."
+
+#: builtins.c:631
+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 ""
+"Esegue argomenti come un comando di shell.\n"
+" \n"
+" Combina gli ARGOMENTI dentro una singola stringa usando il risultato\n"
+" come input per la shell ed esegue i comandi risultanti.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato di uscita del comando o successo se il comando è "
+"nullo."
+
+#: builtins.c:643
+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 ""
+"Analizza gli argomenti di opzione.\n"
+" \n"
+" Getopts è usato dalle procedure di shell per analizzare i parametri\n"
+" posizionali come opzioni.\n"
+" \n"
+" STRINGAOPZ contiene le lettere di opzione da riconoscere; se una "
+"lettera\n"
+" è seguita da un due punti, ci si aspetta che l'opzione abbia un "
+"argomento,\n"
+" che dovrebbe essere separato da uno spazio.\n"
+" \n"
+" Ogni volta che viene evocato getopts posiziona l'opzione successiva\n"
+" nella variabile di shell $nome inizializzando il nome, se non esiste,\n"
+" e l'indice dell'argomento successivo da elaborare nella variabile di\n"
+" shell OPTIND. OPTIND è inizializzata a 1 ogni volta che viene invocata\n"
+" la shell o uno script di shell. Quando una opzione richiede un "
+"argomento,\n"
+" getopts posiziona tale argomento nella variabile di shell OPTARG.\n"
+" \n"
+" getopts riporta gli errori in uno o due modi. Se il primo carattere "
+"della\n"
+" STRINGAOPZ è un due punti, riporta gli errori in silenzio. In questa\n"
+" modalità non vengono stampati messaggi di errore. Se viene riscontrata "
+"una\n"
+" opzione non valida, getopts posiziona il carattere di opzione trovato "
+"in\n"
+" ARGOPZ. Se un argomento richiesto non viene trovato, getopts posiziona\n"
+" un \":\" nel NOME e imposta ARGOPZ al carattere di opzione trovato. Se "
+"getopts\n"
+" non è in modalità silenziosa e viene riscontrata una opzione non valida, "
+"getopts\n"
+" posiziona \"?\" nel NOME e azzera ARGOPZ. Se un argomento richiesto non "
+"viene\n"
+" trovato, viene posizionato un \"?\" nel NOME, ARGOPZ viene azzerato e "
+"viene stampato\n"
+" un messaggio diagnostico.\n"
+" \n"
+" Se il valore della variabile di shell ERROPZ è pari a 0, getopts "
+"disabilita\n"
+" la stampa dei messaggi di errore anche se il primo carattere della "
+"STRINGAOPZ\n"
+" non è un due punti. Il valore predefinito di ERROPZ è pari a 1.\n"
+" \n"
+" Getopts normalmente analizza i parametri posizionali ($0 - $9), ma se\n"
+" vengono forniti più argomenti, vengono analizzati questi ultimi.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo se viene trovata una opzione, insuccesso se viene "
+"raggiunta\n"
+" la fine delle opzioni o viene riscontrato un errore."
+
+#: builtins.c:685
+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 ""
+"Sostituisce la shell con il comando fornito.\n"
+" \n"
+" Esegue il COMANDO, sostituendo questa shell con il programma "
+"specificato.\n"
+" Gli ARGOMENTI diventano gli argomenti per il COMANDO. Se il COMANDO non "
+"è specificato,\n"
+" ogni redirezione avrà effetto nella shell corrente.\n"
+" \n"
+" Opzioni:\n"
+" -a nome\tPassa NOME come l'argomento zero per il COMANDO\n"
+" -c\t\tEsegue il COMANDO con un ambiente vuoto\n"
+" -l\t\tPosiziona un trattino nell'argomento zero per il COMANDO\n"
+" \n"
+" Se il comando non può essere eseguito una shell non interattiva esce, a "
+"meno che\n"
+" non venga impostata l'opzione di shell \"execfail\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia trovato il COMANDO o si "
+"riscontri un errore di ridirezione."
+
+#: builtins.c:706
+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 ""
+"Esce dalla shell.\n"
+" \n"
+" Esce dalla shell con uno stato N. Se N è omesso lo stato di uscita\n"
+" è quello dell'ultimo comando eseguito."
+
+#: builtins.c:715
+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 ""
+"Esce da una shell di login.\n"
+" \n"
+" Esce da una shell di login con stato di uscita N. Restituisce un errore "
+"se non eseguito\n"
+" in una shell di login."
+
+#: builtins.c:725
+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 ""
+"Visualizza o esegue comandi dall'elenco della cronologia.\n"
+" \n"
+" fc è usato per elencare, modificare e rieseguire comandi dall'elenco "
+"della cronologia.\n"
+" PRIMO e ULTIMO possono essere numeri che specificano l'intervallo oppure "
+"PRIMO può\n"
+" essere una stringa, nel qual caso significa il comando più recente che "
+"inizia con\n"
+" quella stringa.\n"
+" \n"
+" Opzioni:\n"
+" -e EDITOR\tSeleziona l'editor da usare. Il predefinito è FCEDIT, "
+"quindi EDITOR,\n"
+" \t\tinfine vi\n"
+" -l \tElenca le righe invece di modificarle\n"
+" -n\tOmette i numeri di riga nell'elencare i comandi\n"
+" -r\tInverte l'ordine delle righe (elenca prima le più recenti)\n"
+" \n"
+" Con il formato \"fc -s [pat=rep ...] [comando]\", il COMANDO è\n"
+" rieseguito dopo aver effettuato la sostituzione VECCHIO=NUOVO.\n"
+" \n"
+" Un alias utile da usare insieme è r=\"fc -s\", in modo che digitando \"r "
+"cc\"\n"
+" viene eseguito l'ultimo comando che inizia con \"cc\" e digitando \"r\" "
+"riesegue\n"
+" l'ultimo comando.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo o lo stato del comando eseguito, non zero se si "
+"riscontra un errore."
+
+#: builtins.c:755
+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 ""
+"Sposta i job in primo piano.\n"
+" \n"
+" Mette il job identificato da SPEC_JOB in primo piano, rendendolo il\n"
+" job corrente. Se SPEC_JOB non è presente, viene usata la nozione di\n"
+" job corrente della shell.\n"
+" \n"
+" Stato di uscita:\n"
+" Stato del comando messo in primo piano, o insuccesso se si riscontra un "
+"errore."
+
+#: builtins.c:770
+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 ""
+"Sposta i job sullo sfondo.\n"
+" \n"
+" Mette il jobs identificato da ogni SPEC_JOB sullo sfondo, come se "
+"fossero\n"
+" stati avviati con \"&\". Se SPEC_JOB non è presente, viene usata la "
+"nozione\n"
+" di job corrente della shell.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che il controllo dei job non sia abilitato o "
+"si riscontri un errore."
+
+#: builtins.c:784
+#, fuzzy
+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 as 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 ""
+"Ricorda o visualizza le posizioni dei programmi.\n"
+" \n"
+" Determina e ricorda il nome completo di percorso per ogni comando NOME. "
+"Se non\n"
+" viene fornito alcun argomento, sono visualizzate le informazioni sui "
+"comandi memorizzati.\n"
+" \n"
+" Opzioni:\n"
+" -d\t\tDimentica la posizione memorizzata di ogni NOME\n"
+" -l\t\tVisualizza in un formato che può essere riusato come input\n"
+" -p nomepercorso\tUsa NOMEPERCORSO come il nome completo di percorso "
+"per NOME\n"
+" -r\t\tDimentica tutte le posizioni memorizzate\n"
+" -t\t\tStampa la posizione memorizzata di ogni NOME, facendo\n"
+" \t\tprecedere ciascuna posizione con il NOME corrispondente se vengono\n"
+" \t\tforniti valori NOME multipli\n"
+" Argomenti:\n"
+" NOME\t\tOgni NOME è ricercato in $PATH e aggiunto all'elenco\n"
+" \t\tdei comandi memorizzati.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia trovato NOME o sia fornita una "
+"opzione non valida."
+
+#: builtins.c:809
+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 ""
+"Visualizza informazioni sui comandi interni.\n"
+" \n"
+" Visualizza un breve sommario dei comandi interni. Se viene specificato "
+"il\n"
+" MODELLO fornisce un aiuto dettagliato su tutti i comandi corrispondenti "
+"al\n"
+" MODELLO, altrimenti viene stampato l'elenco degli argomenti di aiuto.\n"
+" \n"
+" Opzioni:\n"
+" -d\tVisualizza una breve descrizione per ciascun argomento\n"
+" -m\tVisualizza l'uso in formato pseudo manpage\n"
+" -s\tVisualizza solo una breve sintassi sull'uso per ciascun argomento "
+"che\n"
+" \tcorrisponde al MODELLO\n"
+" \n"
+" Argomenti:\n"
+" MODELLO\tModello che specifica un argomento di aiuto\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga trovato il MODELLO o sia "
+"fornita una opzione non valida."
+
+#: builtins.c:833
+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 ""
+"Visualizza o manipola l'elenco della cronologia.\n"
+" \n"
+" Visualizza l'elenco della cronologia con i numeri di riga, aggiungendo a "
+"ciascuna voce\n"
+" modificata il prefisso \"*\". Un argomento pari a N elenca solo le "
+"ultime N voci.\n"
+" \n"
+" Opzioni:\n"
+" -c\tPulisce la cronologia eliminando tutte le voci\n"
+" -d posiz\tElimina la voce della cronologia alla posizione POSIZ.\n"
+" \n"
+" -a\tAccoda righe al file della cronologia relative alla sessione "
+"attuale\n"
+" -n\tLegge tutte le righe non ancora lette dal file della cronologia\n"
+" -r\tLegge il file della cronologia e ne accoda il contenuto all'elenco "
+"della\n"
+" \t\tcronologia\n"
+" -w\tScrive la cronologia corrente nel file della cronologia\n"
+" \t\te ne accoda le voci all'elenco della cronologia\n"
+" \n"
+" -p\tEffettua l'espansione della cronologia su ciascun ARG e visualizza "
+"il\n"
+" \t\trisultato senza memorizzarlo nell'elenco della cronologia\n"
+" -s\tAccoda gli ARG all'elenco della cronologia come una voce singola\n"
+" \n"
+" Se viene fornito il NOMEFILE, viene usato come file della cronologia. "
+"Altrimenti,\n"
+" se presente, viene usato il valore di $HISTFILE, in alternativa ~/."
+"bash_history.\n"
+" \n"
+" Se la variabile $HISTTIMEFORMAT è impostata e non è nulla, il suo valore "
+"viene usato\n"
+" come una stringa di formato per strftime(3) per stampare l'orario "
+"associato a ciascuna\n"
+" voce di cronologia visualizzata. Altrimenti non viene stampato alcun "
+"orario.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:869
+#, 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\tlists 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 ""
+"Visualizza lo stato dei job.\n"
+" \n"
+" Elenca i job attivi. SPECJOB limita l'output a quei job.\n"
+" Senza opzioni, è visualizzato lo stato di tutti i job attivi.\n"
+" \n"
+" Opzioni:\n"
+" -l\tElenca gli ID dei processi in aggiunta alle normali informazioni\n"
+" -n\tElenca solo i processi che hanno cambiato stato dall'ultima\n"
+" \tnotifica\n"
+" -p\tElenca solo l'ID dei processi\n"
+" -r\tLimita l'output ai job in esecuzione\n"
+" -s\tLimita l'output ai processi fermati\n"
+" \n"
+" Se viene fornito -x, il COMANDO è eseguito dopo che tutte le specifiche "
+"dei job che\n"
+" appaiono in ARGOMENTI sono state rimpiazzate con l'ID del processo "
+"leader nel gruppo di\n"
+" quel job.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore.\n"
+" Se viene usato -x, restituisce lo stato di uscita del COMANDO."
+
+#: builtins.c:896
+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 ""
+"Rimuove job dalla shell corrente.\n"
+" \n"
+" Rimuove ciascun argomento SPECJOB dalla tabella dei job attivi. Senza "
+"alcun\n"
+" SPECJOB, la shell usa la sua nozione del job corrente.\n"
+" \n"
+" Opzioni:\n"
+" -a\tRimuove tutti i job se non viene fornito uno SPECJOB\n"
+" -h\tMarca ciascun SPECJOB in modo che non venga inviato un SIGHUP al "
+"job se la\n"
+" \tshell lo riceve\n"
+" -r\tRimuove solo i job in esecuzione\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida "
+"o uno SPECJOB."
+
+#: builtins.c:915
+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 ""
+"Invia un segnale a un job.\n"
+" \n"
+" Invia il segnale chiamato dallo SPECSEGN o dal NUMSEGN ai processi "
+"identificati\n"
+" dal PID o dallo SPECJOB. Se non è presente né lo SPECSEGN né il "
+"NUMSEGN, viene\n"
+" allora considerato SIGTERM.\n"
+" \n"
+" Opzioni:\n"
+" -s segn\tSEGN è il nome di un segnale\n"
+" -n segn\tSEGN è il numero di un segnale\n"
+" -l\tElenca i nomi dei segnali; Se ci sono argomenti dopo \"-l\"\n"
+" \tvengono valutati come numeri di segnale di cui elencare i nomi\n"
+" \n"
+" Kill è un comando interno di shell per due ragioni: permette di usare "
+"gli ID\n"
+" dei job invece degli ID dei processi e permette di uccidere quei "
+"processi che\n"
+" abbiano raggiunto un numero limite prefissato di processi creabili.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:938
+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 ""
+"Valuta espressioni aritmetiche.\n"
+" \n"
+" Valuta ciascun ARG come una espressione aritmetica. La valutazione è "
+"effettuata con\n"
+" interi a larghezza fissa senza alcun controllo per overflow, sebbene la "
+"divisione\n"
+" per 0 sia bloccata e contrassegnata come un errore. Il seguente elenco "
+"di operatori\n"
+" è raggruppato per livelli di operatore di uguale precedenza. I livelli "
+"sono elencati\n"
+" in ordine di precedenza decrescente.\n"
+" \n"
+" \tid++, id--\tIncremento e decremento successivo di variabile\n"
+" \t++id, --id\tIncremento e decremento precedente di variabile\n"
+" \t-, +\t\tMeno e più unari\n"
+" \t!, ~\t\tNegazione logica e bit a bit\n"
+" \t**\t\tEsponenziazione\n"
+" \t*, /, %\t\tMoltiplicazione, divisione, resto\n"
+" \t+, -\t\tAddizione, sottrazione\n"
+" \t<<, >>\t\tScorrimento bit a bit sinistro e destro\n"
+" \t<=, >=, <, >\tComparazione\n"
+" \t==, !=\t\tUguaglianza, disuguaglianza\n"
+" \t&\t\tAND bit a bit\n"
+" \t^\t\tXOR bit a bit\n"
+" \t|\t\tOR bit a bit\n"
+" \t&&\t\tAND logico\n"
+" \t||\t\tOR logico\n"
+" \tespr ? espr : espr\n"
+" \t\t\tOperatore condizionale\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tAssegnazione\n"
+" \n"
+" Le variabili di shell sono ammesse come operandi. Il nome della "
+"variabile è\n"
+" sostituito dal suo valore (forzato a un intero a larghezza fissa) "
+"all'interno\n"
+" di una espressione. Non è necessario che la variabile abbia il proprio "
+"attributo\n"
+" intero abilitato per essere usata in una espressione.\n"
+" \n"
+" Gli operatori sono valutati in ordine di precedenza. Le "
+"sottoespressioni tra\n"
+" parentesi sono valutate per prime e possono avere la precedenza sulle "
+"regole\n"
+" sopradescritte.\n"
+" \n"
+" Stato di uscita:\n"
+" Se l'ultimo ARG viene valutato pari a 0 restituisce 1, altrimenti "
+"restituisce 0."
+
+#: builtins.c:983
+#, 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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+"Legge una riga dallo standard input e la divide in campi.\n"
+" \n"
+" Legge una singola riga dallo standard input o, se viene fornita "
+"l'opzione -u,\n"
+" dal descrittore di file FD. La riga è divisa in campi corrispondenti a\n"
+" parole dove la prima parola è assegnata al primo NOME, la seconda "
+"parola\n"
+" al secondo NOME e così via, con ciascuna parola rimanente assegnata al\n"
+" corrispondente ultimo NOME. Sono riconosciuti come delimitatori di "
+"parola\n"
+" solo quelli presenti in $IFS.\n"
+" \n"
+" Se non viene fornito alcun NOME, la riga letta è memorizzata nella "
+"variabile REPLY.\n"
+" \n"
+" Opzioni:\n"
+" -a array\tAssegna le parole lette agli indici sequenziali della "
+"variabile\n"
+" \t\tdi ARRAY, iniziando da zero\n"
+" -d delim\tContinua fino alla lettura del primo carattere di DELIM, "
+"invece\n"
+" \t\tdi un ritorno a capo \n"
+" -e\t\tUsa Readline per ottenere la riga in una shell interattiva\n"
+" -i testo\tUsa TESTO come testo iniziale per Readline\n"
+" -n ncarat\tRitorna dopo la lettura di NCARAT caratteri invece di "
+"attendere\n"
+" \t\tun a capo, ma rispetta un delimitatore se vengono letti meno di\n"
+" \t\tNCARAT caratteri prima del delimitatore stesso\n"
+" -N ncarat\tRitorna solo dopo la lettura di NCARAT caratteri esatti, a "
+"meno che non si\n"
+" \t\triscontri un EOF o un time out di lettura, ignorando qualsiasi "
+"delimitatore\n"
+" -p stringa\tVisualizza la stringa PROMPT senza un a capo finale prima\n"
+" \t\tdel tentativo di lettura\n"
+" -r\t\tNon ammette backslash per fare l'escape dei caratteri\n"
+" -s\t\tNon fa l'echo dell'input proveniente da un terminale\n"
+" -t secondi\tVa in timeout e restituisce insuccesso se non viene letta "
+"una\n"
+" \t\triga di input completa entro i SECONDI forniti. Il valore della\n"
+" \t\tvariabile TMOUT è il timeout predefinito. SECONDI può essere\n"
+" \t\tuna frazione. Se SECONDI è pari a 0, la lettura restituisce "
+"successo\n"
+" \t\tsolo se l'input è disponibile sul descrittore di file specificato. "
+"Lo\n"
+" \t\tstato di uscita è maggiore di 128 se viene superato il timeout\n"
+" -u fd\t\tLegge dal descrittore di file FD invece che dallo standard "
+"input\n"
+" \n"
+" Stato di uscita:\n"
+" Il codice restituito è zero a meno che non sia riscontrato un EOF, un "
+"timeout in lettura\n"
+" o venga fornito un descrittore di file non valido come argomento per -u."
+
+#: builtins.c:1028
+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 ""
+"Ritorna da una funzione di shell.\n"
+" \n"
+" Causa l'uscita da una funzione o da uno script sorgente con il valore "
+"di\n"
+" ritorno specificato da N. Se N è omesso, lo stato di ritorno è quello\n"
+" dell'ultimo comando eseguito all'interno della funzione o dello script.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce N, oppure insuccesso se la shell non sta eseguendo una "
+"funzione o uno script."
+
+#: builtins.c:1041
+#, 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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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 ""
+"Imposta o azzera i valori delle opzioni di shell e dei parametri "
+"posizionali.\n"
+" \n"
+" Cambia il valore degli attributi di shell e dei parametri posizionali, "
+"o\n"
+" visualizza i nomi e i valori delle variabili di shell.\n"
+" \n"
+" Opzioni:\n"
+" -a Marca le variabili che sono modificate o create per "
+"l'esportazione.\n"
+" -b Notifica immediatamente della terminazione di un job.\n"
+" -e Esce immediatamente se un comando esce con uno stao diverso da "
+"zero.\n"
+" -f Disabilita la generazione dei nomi file (globbing).\n"
+" -h Ricorda la posizione dei comandi quando vengono cercati.\n"
+" -k Tutte le assegnazioni degli argomenti sono posizionate "
+"nell'ambiente per un\n"
+" comando, non solo quelle che precedono il nome del comando "
+"stesso.\n"
+" -m Abilita il controllo dei job.\n"
+" -n Legge i comandi senza eseguirli.\n"
+" -o nome-opzione\n"
+" Imposta la variabile corrispondente al nome dell'opzione:\n"
+" allexport Uguale a -a\n"
+" braceexpand Uguale a -B\n"
+" emacs Usa una interfaccia di modifica righe di stile "
+"emacs\n"
+" errexit Uguale a -e\n"
+" errtrace Uguale a -E\n"
+" functrace Uguale a -T\n"
+" hashall Uguale a -h\n"
+" histexpand Uguale a -H\n"
+" history Abilita la cronologia comandi\n"
+" ignoreeof Non esce dalla shell dopo aver raggiunto EOF\n"
+" interactive-comments\n"
+" Permette ai commenti di comparire nei comandi "
+"interattivi\n"
+" keyword Uguale a -k\n"
+" monitor Uguale a -m\n"
+" noclobber Uguale a -C\n"
+" noexec Uguale a -n\n"
+" noglob Uguale a -f\n"
+" nolog Accettato al momento ma ignorato\n"
+" notify Uguale a -b\n"
+" nounset Uguale a -u\n"
+" onecmd Uguale a -t\n"
+" physical Uguale a -P\n"
+" pipefail Il valore restituito da una pipeline è lo stato\n"
+" dell'ultimo comando che esce con uno stato "
+"diverso da zero,\n"
+" oppure zero se nessun comando esce con uno stato "
+"diverso da zero\n"
+" posix Modifica il comportamento di bash dove "
+"l'operazione\n"
+" predefinita è diversa dallo standard Posix per "
+"rispettare\n"
+" lo standard stesso\n"
+" privileged Uguale a -p\n"
+" verbose Uguale a -v\n"
+" vi Usa un'editor di riga stile vi\n"
+" xtrace Uguale a -x\n"
+" -p Abilitato ogni qualvolta gli id utente reali non corrispondono a "
+"quelli effettivi.\n"
+" Disabilita l'analisi del file $ENV e l'importazione delle funzioni "
+"di\n"
+" shell. Disabilitare questa opzione comporta l'impostazione degli\n"
+" uid e gid effettivi a uid e gid reali.\n"
+" -t Esce dopo la lettura e l'esecuzione di un comando.\n"
+" -u Tratta le variabili non impostate come un errore durante la "
+"sostituzione.\n"
+" -v Stampa le righe di input della shell mentre vengono lette.\n"
+" -x Stampa i comandi e i loro argomenti mentre vengono eseguiti.\n"
+" -B La shell effettua l'espansione delle parentesi graffe\n"
+" -C Se impostata, non permette la sovrascrittura dei file regolari "
+"esistenti\n"
+" da parte della redirezione dell'output.\n"
+" -E Se impostata, la trap ERR è ereditata dalle funzioni di shell.\n"
+" -H Abilita la sostituzione per la cronologia stile !. Questo flag è "
+"abilitato\n"
+" in modo predefinito quando la shell è interattiva.\n"
+" -P Se impostata, non segue i link simbolici quando vengono eseguiti "
+"dei comandi\n"
+" come cd, il quale cambia la directory corrente.\n"
+" -T Se impostata, la trap DEBUG è ereditata dalle funzioni di shell.\n"
+" -- Assegna tutti gli argomenti rimasti ai parametri posizionali.\n"
+" Se non sono rimasti argomenti, i parametri posizionali\n"
+" vengono azzerati.\n"
+" - Assegna tutti gli argomenti rimasti ai parametri posizionali.\n"
+" Le opzioni -x e -v sono disabilitate.\n"
+" \n"
+" Usando + al posto di - questi flag vengono disabilitati. I\n"
+" flag possono anche essere usati subito dopo l'invocazione della shell. "
+"Il set corrente\n"
+" dei flag può essere trovato in $-. I restanti n ARG sono parametri\n"
+" posizionali e vengono assegnati, in ordine, a $1, $2, .. $n. Se non\n"
+" vengono forniti ARG, vengono stampate tutte le variabili di shell.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida."
+
+#: builtins.c:1126
+#, fuzzy
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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 ""
+"Azzera i valori e gli attributi delle variabili e delle funzioni di shell.\n"
+" \n"
+" Per ciascun NOME, rimuove la corrispondente variabile o funzione.\n"
+" \n"
+" Opzioni:\n"
+" -f\tConsidera ciascun NOME come una funzione di shell\n"
+" -v\tConsidera ciascun NOME come una variabile di shell\n"
+" \n"
+" Senza opzioni, unset prova prima ad azzerare una variabile e, in caso di "
+"insuccesso,\n"
+" prova ad azzerare una funzione.\n"
+" \n"
+" Alcune variabili non possono essere azzerate; vedere anche \"readonly"
+"\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"NOME sia in sola lettura."
+
+#: builtins.c:1148
+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 ""
+"Imposta l'attributo di esportazione per le variabili di shell.\n"
+" \n"
+" Marca ciascun NOME per l'esportazione automatica all'ambiente dei "
+"comandi\n"
+" eseguiti successivi. Se è fornito un VALORE, lo assegna prima "
+"dell'esportazione.\n"
+" \n"
+" Opzioni:\n"
+" -f\tRimanda alle funzioni di shell\n"
+" -n\tRimuove la proprietà di esportazione da ciascun NOME\n"
+" -p\tVisualizza un elenco di tutte le variabili e funzioni esportate\n"
+" \n"
+" L'argomento \"--\" disabilita l'elaborazione di ulteriori opzioni.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"il NOME non sia valido."
+
+#: builtins.c:1167
+#, fuzzy
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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 ""
+"Marca la variabili di shell come non modificabili.\n"
+" \n"
+" Marca ciascun NOME in sola lettura; i valori di questi NOMI non possono\n"
+" essere modificati da un assegnamento successivo. Se viene fornito il\n"
+" VALORE, lo assegna prima di marcarlo in sola lettura.\n"
+" \n"
+" Opzioni:\n"
+" -a\tRimanda alle variabili degli array indicizzati\n"
+" -A\tRimanda alle variabili degli array associativi\n"
+" -f\tRimanda alle funzioni di shell\n"
+" -p\tVisualizza un elenco di tutte le variabili e le funzioni in sola "
+"lettura\n"
+" \n"
+" Un argomento pari a \"--\" disabilita ulteriori analisi delle opzioni.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida "
+"o NOME non sia valido."
+
+#: builtins.c:1189
+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 ""
+"Sposta i parametri posizionali.\n"
+" \n"
+" Rinomina i parametri posizionali $N+1,$N+2 ... a $1,$2 ... Se N non\n"
+" è fornito, viene assunto a 1.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che N non sia negativo o maggiore di $#."
+
+#: builtins.c:1201 builtins.c:1216
+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 ""
+"Esegue comandi da un file nella shell corrente.\n"
+" \n"
+" Legge ed esegue comandi da NOMEFILE nella shell corrente. Le voci\n"
+" in $PATH sono usate per trovare la directory contenente il NOMEFILE.\n"
+" Se vengono forniti ARGOMENTI, essi diventano i parametri di posizione\n"
+" quando viene eseguito NOMEFILE.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito in NOMEFILE; "
+"insuccesso se\n"
+" il NOMEFILE non può essere letto."
+
+#: builtins.c:1232
+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 ""
+"Sospende l'esecuzione della shell.\n"
+" \n"
+" Sospende l'esecuzione di questa shell fino a che non riceve un segnale "
+"SIGCONT.\n"
+" A meno di forzature, le shell di login non possono essere sospese.\n"
+" \n"
+" Opzioni:\n"
+" -f\tForza la sospensione, anche se in presenza di una shell di login\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia abilitato il controllo job o si "
+"riscontri un errore."
+
+#: builtins.c:1248
+#, 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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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 ""
+"Analizza espressioni condizionali.\n"
+" \n"
+" Esce con stato 0 (vero) o 1 (falso) in base all'analisi\n"
+" dell'ESPR. Le espressioni possono essere unarie o binarie. Le\n"
+" espressioni unarie sono spesso usate per esaminare lo stato di un file.\n"
+" Esistono anche operatori di stringa e di comparazione numerica.\n"
+" \n"
+" Il comportamento del test dipende dal numero degli argomenti. Leggere\n"
+" la pagina di manuale di bash per le specifiche complete.\n"
+" \n"
+" Operatori su file:\n"
+" \n"
+" -a FILE Vero se il file esiste.\n"
+" -b FILE Vero se è un file speciale a blocchi.\n"
+" -c FILE Vero se è un file speciale a caratteri.\n"
+" -d FILE Vero se il file è una directory.\n"
+" -e FILE Vero se il file esiste.\n"
+" -f FILE Vero se il file esiste ed è un file regolare.\n"
+" -g FILE Vero se il file è un set-group-id.\n"
+" -h FILE Vero se il file è un link simbolico.\n"
+" -L FILE Vero se il file è un link simbolico.\n"
+" -k FILE Vero se il file ha il suo bit \"sticky\" impostato.\n"
+" -p FILE Vero se il file è una pipe con nome.\n"
+" -r FILE Vero se il file è leggibile dall' utente corrente.\n"
+" -s FILE Vero se il file esiste e non è vuoto.\n"
+" -S FILE Vero se il file è un socket.\n"
+" -t FD Vero se il descrittore di file è aperto su un "
+"terminale.\n"
+" -u FILE Vero se il file è un set-user-id.\n"
+" -w FILE Vero se il file è scrivibile dall'utente corrente.\n"
+" -x FILE Vero se il file è eseguibile dall'utente corrente.\n"
+" -O FILE Vero se l'utente corrente è il reale proprietario del "
+"file.\n"
+" -G FILE Vero se il gruppo dell'utente corrente è il reale "
+"proprietario del file.\n"
+" -N FILE Vero se il file è stato modificato dall'ultima volta "
+"che è stato letto.\n"
+" \n"
+" FILE1 -nt FILE2 Vero se il file1 è più recente del file2 (in accordo "
+"con la\n"
+" data di modifica).\n"
+" \n"
+" FILE1 -ot FILE2 Vero se il file1 è più vecchio del file2.\n"
+" \n"
+" FILE1 -ef FILE2 Vero se il file1 è un link hardware al file2.\n"
+" \n"
+" Operatori di stringa:\n"
+" \n"
+" -z STRINGA Vero se la stringa e vuota.\n"
+" \n"
+" -n STRINGA\n"
+" STRINGA Vero se la stringa non è vuota.\n"
+" \n"
+" STRINGA1 = STRINGA2\n"
+" Vero se le stringhe sono uguali.\n"
+" STRINGA1 != STRINGA2\n"
+" Vero se le stringhe non sono uguali.\n"
+" STRINGA1 < STRINGA2\n"
+" Vero se la STRINGA1 viene ordinata lessicograficamente "
+"prima della STRINGA2.\n"
+" STRINGA1 > STRINGA2\n"
+" Vero se la STRINGA1 viene ordinata lessicograficamente "
+"dopo la STRINGA2.\n"
+" \n"
+" Altri operatori:\n"
+" \n"
+" -o OPZIONE Vero se l'OPZIONE di shell è abilitata.\n"
+" -v VAR\t Vero se la variabile di shell VAR è impostata.\n"
+" ! ESPR Vero se l'ESPR è falsa.\n"
+" ESPR1 -a ESPR2 Vero se entrambe le espressioni espr1 E espr2 sono "
+"vere.\n"
+" ESPR1 -o ESPR2 Vero se sono vere le espressioni espr1 O espr2.\n"
+" \n"
+" arg1 OP arg2 Test aritmetici. OP è uno tra -eq, -ne,\n"
+" -lt, -le, -gt oppure -ge.\n"
+" \n"
+" Gli operatori aritmetici binari restituiscono vero se ARG1 è uguale, non "
+"uguale,\n"
+" più piccolo di, più piccolo o uguale, più grande di o più grande o "
+"uguale\n"
+" ad ARG2.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo se l'ESPR viene valutata vera; insuccesso se l'ESPR "
+"viene valutata\n"
+" falsa o viene fornito un argomento non valido."
+
+#: builtins.c:1329
+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 ""
+"Valuta l'espressione condizionale.\n"
+" \n"
+" Questo è un sinonimo del comando interno \"test\", ma l'ultimo argomento "
+"deve\n"
+" essere un \"]\" letterale per corrispondere al \"[\" di apertura."
+
+#: builtins.c:1338
+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 ""
+"Visualizza le durate dei processi.\n"
+" \n"
+" Stampa i tempi utente e di sistema accumulati per la shell e per tutti "
+"i\n"
+" relativi processi figli.\n"
+" \n"
+" Stato di uscita:\n"
+" Sempre successo."
+
+#: builtins.c:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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 ""
+"Esegue il trap dei segnali e di altri eventi.\n"
+" \n"
+" Definisce e attiva i gestori da eseguire quando la shell riceve segnali\n"
+" o altre condizioni.\n"
+" \n"
+" ARG è un comando da leggere ed eseguire quando la shell riceve il o i\n"
+" segnali SPEC_SEGNALE. Se ARG o \"-\" non sono presenti (e viene "
+"fornito\n"
+" un singolo SPEC_SEGNALE), ciascun segnale specificato è riportato\n"
+" al suo valore originario. Se ARG è pari a null, ogni SPEC_SEGNALE è\n"
+" ignorato dalla shell e dai comandi che invoca.\n"
+" \n"
+" Se uno SPEC_SEGNALE è EXIT (0) ARG viene eseguito all'uscita dalla "
+"shell. Se\n"
+" lo SPEC_SEGNALE è DEBUG, ARG viene eseguito prima di ogni comando "
+"semplice. Se\n"
+" uno SPEC_SEGNALE è RETURN, ARG viene eseguito al termine di ogni "
+"esecuzione\n"
+" di una funzione di shell o di uno script avviato dai comandi interni . o "
+"source.\n"
+" Un SPEC_SEGNALE di ERR significa eseguire ARG ogni volta che un errore "
+"di comando\n"
+" causi l'uscita della shell quando è abilitata l'opzione -e.\n"
+" \n"
+" Se non vengono forniti argomenti, trap stampa l'elenco di comandi "
+"associati\n"
+" a ciascun segnale.\n"
+" \n"
+" Ozioni:\n"
+" -l\tStampa un elenco di nomi di segnale e i loro corrispondenti "
+"numeri\n"
+" -p\tVisualizza i comandi trap associati a ciascun SPEC_SEGNALE\n"
+" \n"
+" Ciascun SPEC_SEGNALE è un nome di segnale in <signal.h> oppure un numero "
+"di segnale.\n"
+" I nomi di segnale sono case insensitive e il prefisso SIG è opzionale. "
+"Per\n"
+" inviare un segnale alla shell usare \"kill -signal $$\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che SPEC_SEGNALE non sia valido o si "
+"fornisca una opzione non valida."
+
+#: builtins.c:1386
+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 ""
+"Visualizza informazioni sul tipo di comando.\n"
+" \n"
+" Per ciascun NOME, indica come sarebbe interpretato se fosse usato come\n"
+" un nome di comando.\n"
+" \n"
+" Opzioni:\n"
+" -a\tVisualizza tutte le posizioni contenenti un eseguibile chiamato "
+"NOME,\n"
+" \tincludendo alias, comandi interni e funzioni se e solo se\n"
+" \tnon viene usata anche l'opzione \"-p\"\n"
+" -f\tNon esegue la ricerca delle funzioni di shell\n"
+" -P\tForza una ricerca del PERCORSO per ciascun NOME anche se è un "
+"alias,\n"
+" \tun comando interno o una funzione, e restituisce il nome del file su "
+"disco\n"
+" \tche sarebbe eseguito\n"
+" -p\tRestituisce o il nome del file su disco che sarebbe eseguito,\n"
+" \toppure niente se \"type -t NOME\" non restituisce \"file\".\n"
+" -t\tVisualizza una singola parola che è una tra \"alias\", \"keyword"
+"\",\n"
+" \t\"function\", \"builtin\", \"file\" or \"\", se il NOME è "
+"rispettivamente un alias,\n"
+" \tuna parola riservata di shell, una funzione di shell, un comando "
+"interno di shell,\n"
+" \tun file su disco o non trovato\n"
+" \n"
+" Argomenti:\n"
+" NOME\tIl nome del comando da interpretare.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo se tutti i NOMI vengono trovati; insuccesso in caso "
+"contrario."
+
+#: builtins.c:1417
+#, 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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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 ""
+"Modifica i limiti delle risorse di shell.\n"
+" \n"
+" Fornisce il controllo sulle risorse disponibili per la shell e per i "
+"processi\n"
+" che crea, sui sistemi che permettono tale controllo.\n"
+" \n"
+" Opzioni:\n"
+" -S\tUsa il limite di risorse \"leggero\"\n"
+" -H\tUsa il limite di risorse \"pesante\"\n"
+" -a\tRiporta tutti i limiti correnti\n"
+" -b\tLa dimensione del buffer del socket\n"
+" -c\tLa dimensione massima dei file di core creati\n"
+" -d\tLa dimensione massima di un segmento di dati di processo\n"
+" -e\tLa priorità massima di scheduling (\"nice\")\n"
+" -f\tLa dimensione massima dei file scritti dalla shell e dai suoi "
+"figli\n"
+" -i\tIl numero massimo di segnali pendenti\n"
+" -l\tLa dimensione massima di memoria che un processo può impegnare\n"
+" -m\tIl numero massimo di set residenti\n"
+" -n\tIl numero massimo di descrittori di file aperti\n"
+" -p\tLa dimensione del buffer della pipe\n"
+" -q\tIl numero massimo di byte nelle code messaggi POSIX\n"
+" -r\tLa priorità massima di scheduling in tempo reale\n"
+" -s\tLa dimensione massima dello stack\n"
+" -t\tLa quantità massima di tempo CPU in secondi\n"
+" -u\tIl numero massimo di processi utente\n"
+" -v\tLa dimensione della memoria virtuale\n"
+" -x\tIl numero massimo di lock dei file\n"
+" \n"
+" Se viene fornito un LIMITE, sarà il nuovo valore della risorsa "
+"specificata;\n"
+" I valori LIMITE speciali \"soft\", \"hard\" e \"unlimited\" "
+"corrispondono\n"
+" rispettivamente agli attuali limiti leggero, pesante e senza limite.\n"
+" Altrimenti viene stampato il valore attuale della risorsa specificata. "
+"Se\n"
+" non viene fornita alcuna opzione, viene assunta -f.\n"
+" \n"
+" I valori sono ad incrementi di 1024-byte, ad eccezione di -t che è in "
+"secondi,\n"
+" -p che è ad incrementi di 512 byte e -u che è un numero di processi non\n"
+" scalato.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida "
+"o venga riscontrato un errore."
+
+#: builtins.c:1465
+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 ""
+"Visualizza o imposta la maschera del modo file.\n"
+" \n"
+" Imposta la maschera di creazione file dell'utente su MODO. Se MODO "
+"viene omesso, stampa\n"
+" il valore corrente della maschera.\n"
+" \n"
+" Se MODO inizia con una cifra, è interpretato con un numero ottale;\n"
+" altrimenti come una stringa di modo simbolico come quella accettata da "
+"chmod(1).\n"
+" \n"
+" Opzioni:\n"
+" -p\tSe MODO viene omesso, mostra in una forma che possa essere riusata "
+"come input\n"
+" -S\tRende simbolico l'output; altrimenti viene mostrato un numero "
+"ottale\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che MODO non sia valido o venga fornita una "
+"opzione non valida."
+
+#: builtins.c:1485
+#, fuzzy
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"Attende il completamento del job restituendo lo stato di uscita.\n"
+" \n"
+" Attende il processo identificato dall'ID, che può essere un ID di "
+"processo o\n"
+" una specifica di job, riportando il suo stato di termine. Se non è\n"
+" fornito un ID, attende tutti i processi figlio correntemente attivi, "
+"restituendo\n"
+" zero come stato. Se l'ID è una specifica di job, attende tutti i "
+"processi\n"
+" presenti nella pipeline del job.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene "
+"fornita una\n"
+" opzione non valida."
+
+#: builtins.c:1506
+#, fuzzy
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"Attende il completamento del processo e restituisce lo stato di uscita.\n"
+" \n"
+" Attende per il processo specificato e riporta il suo stato di "
+"terminazione. Se non\n"
+" viene fornito il PID, l'attesa comprende tutti i processi figlio "
+"correntemente attivi\n"
+" e il codice restituito è zero. Il PID deve essere un ID di processo.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene "
+"fornita una opzione non\n"
+" valida."
+
+#: builtins.c:1521
+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 ""
+"Esegue comandi per ciascun membro di un elenco.\n"
+" \n"
+" Il ciclo \"for\" esegue una sequenza di comandi per ciascun membro di "
+"un\n"
+" elenco di voci. Se \"in PAROLE ...;\" non è presente, allora viene "
+"assunto\n"
+" \"in \"$@\"\". Per ciascun elemento in PAROLE, NOME è impostato a "
+"quell'elemento e\n"
+" i COMANDI vengono eseguiti.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1535
+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 ""
+"Ciclo \"for\" aritmetico.\n"
+" \n"
+" Equivalente a\n"
+" \t(( ESPR1 ))\n"
+" \twhile (( ESPR2 )); do\n"
+" \t\tCOMANDI\n"
+" \t\t(( ESPR3 ))\n"
+" \tdone\n"
+" ESPR1, ESPR2 e ESPR3 sono espressioni aritmetiche. Se viene omessa "
+"qualche\n"
+" espressione, si comporta come se valesse 1.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1553
+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 ""
+"Seleziona le parole da un elenco ed esegue i comandi.\n"
+" \n"
+" Le PAROLE vengono estese, generando un elenco di parole. L'insieme\n"
+" di parole estese viene stampato sullo standard error, ognuna delle\n"
+" quali preceduta da un numero. Se non è presente \"in PAROLE\", viene\n"
+" assunto `in \"$@\". Viene poi visualizzato il prompt PS3 e viene letta\n"
+" una riga dallo standard input. Se la riga è composta dal numero che\n"
+" corrisponde a una delle parole visualizzate, NOME è impostato a quella\n"
+" parola. Se la riga è vuota, Le PAROLE e il prompt vengono "
+"rivisualizzati.\n"
+" Se viene letto EOF, il comando termina. Se vengono letti altri valori\n"
+" NOME viene impostato a null. La riga letta viene salvata nella "
+"variabile\n"
+" REPLY. I COMANDI vengono eseguiti dopo ogni selezione finché non viene\n"
+" eseguito un comando di interruzione.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato di uscita dell'ultimo comando eseguito."
+
+#: builtins.c:1574
+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 ""
+"Riporta il tempo speso nell'esecuzione della pipeline.\n"
+" \n"
+" Esegue la PIPELINE e stampa, quando termina, un sommario del tempo "
+"reale, tempo utente della CPU\n"
+" e tempo di sistema della CPU dedicato all'esecuzione della PIPELINE.\n"
+" \n"
+" Opzioni:\n"
+" -p\tStampa il riepilogo dei tempi nel formato portabile Posix format\n"
+" \n"
+" Il valore della variabile TIMEFORMAT è usato come formato di output.\n"
+" \n"
+" Stato di uscita:\n"
+" Viene restituito lo stato della PIPELINE."
+
+#: builtins.c:1591
+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 ""
+"Esegue comandi basati sulla corrispondenza di modello.\n"
+" \n"
+" Esegue in modo selettivo COMANDI basati sulla PAROLA corrispondente al "
+"MODELLO. Il\n"
+" carattere \"|\" è usato per separare modelli multipli.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1603
+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 ""
+"Esegue comandi basati su condizioni.\n"
+" \n"
+" Viene eseguito l'elenco degli \"if COMANDI\". Se lo stato di uscita è "
+"zero\n"
+" viene eseguito l'elenco \"then COMANDI\", altrimenti viene eseguito "
+"l'elenco\n"
+" degli \"elif COMANDI\" e, se il loro stato è zero, viene eseguito "
+"l'elenco dei\n"
+" \"then COMANDI\" corrispondente e viene completato l'\"if COMANDO\". "
+"Altrimenti,\n"
+" viene eseguito l'elenco \"else COMANDI\", se presente. Lo stato di "
+"uscita\n"
+" dell'intero costrutto corrisponde a quello dell'ultimo comando eseguito, "
+"o\n"
+" zero se nessuna condizione provata è vera.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1620
+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 ""
+"Esegue i comandi finché un test ha successo.\n"
+" \n"
+" Espande ed esegue i COMANDI fino a quando il comando finale nei\n"
+" COMANDI \"while\" ha uno stato di uscita pari a zero.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1632
+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 ""
+"Esegue i comandi finché un test non ha successo.\n"
+" \n"
+" Espande ed esegue i COMANDI fino a quando il comando finale nei\n"
+" COMANDI \"until\" ha uno stato di uscita diverso da zero.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Crea un coprocesso chiamato NOME.\n"
+" \n"
+" Esegue il COMANDO in modo asincrono, con lo standard output e lo "
+"standard\n"
+" input del comando connessi attraverso una pipe ai descrittori di file "
+"assegnati\n"
+" agli indici 0 e 1 di una variabile di array NOME nella shell in "
+"esecuzione.\n"
+" Il NOME predefinito è \"COPROC\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato di uscita del COMANDO."
+
+#: builtins.c:1658
+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 ""
+"Definisce una funzione di shell.\n"
+" \n"
+" Crea una funzione di shell chiamata NOME. Quando invocato come un "
+"semplice comando,\n"
+" NOME esegue i COMANDI nel contesto delle chiamate di shell. Quando "
+"viene invocato NOME,\n"
+" gli argomenti sono passati alla funzione come $1...$n e il nome della "
+"funzione si trova\n"
+" in $FUNCNAME.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che il NOME non sia in sola lettura."
+
+#: builtins.c:1672
+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 ""
+"Raggruppa i comandi come un'unità.\n"
+" \n"
+" Esegue un set di comandi in un gruppo. Questo è un modo per "
+"reindirizzare un\n"
+" intero set di comandi.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato dell'ultimo comando eseguito."
+
+#: builtins.c:1684
+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 ""
+"Ripristina un job in primo piano.\n"
+" \n"
+" Equivale all'argomento SPEC_JOB per il comando \"fg\". Ripristina\n"
+" un job fermato o sullo sfondo. SPEC_JOB può specificare un nome\n"
+" job o un numero di job. SPEC_JOB seguito da \"&\" mette il job\n"
+" sullo sfondo, come se la specifica del job fosse stata fornita\n"
+" come argomento per \"bg\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce lo stato del job ripristinato."
+
+#: builtins.c:1699
+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 ""
+"Valuta espressioni aritmetiche.\n"
+" \n"
+" L'ESPRESSIONE è valutata seguendo le regole di valutazione\n"
+" aritmetica. Equivalente a \"let ESPRESSIONE\".\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce 1 se ESPRESSIONE è valutata 0, altrimenti restituisce 0."
+
+#: builtins.c:1711
+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 ""
+"Esegue comandi condizionali.\n"
+" \n"
+" Resituisce uno stato di 0 o 1 a seconda della valutazione "
+"dell'espressione\n"
+" condizionale ESPRESSIONE. Le espressioni sono composte dalle stesse "
+"basilari usate\n"
+" dal comando interno \"test\", e possono essere combinate usando i "
+"seguenti operatori:\n"
+" \n"
+" ( ESPRESSIONE )\tRestituisce il valore dell'ESPRESSIONE\n"
+" ! ESPRESSIONE\t\tVero se l'ESPRESSIONE è falsa; falso in caso "
+"contrario\n"
+" ESPR1 && ESPR2\tVero se sia ESPR1 che ESPR2 sono vere; falso in caso "
+"contrario\n"
+" ESPR1 || ESPR2\tVero se una tra ESPR1 ed ESPR2 è vera; falso in caso "
+"contrario\n"
+" \n"
+" Quando vengono usati gli operatori \"==\" e \"!=\", la stringa a destra "
+"dell'operatore\n"
+" è usata come un modello e ne viene effettuata la corrispondenza.\n"
+" Quando viene usato l'operatore \"=~\", la stringa a destra "
+"dell'operatore è valutata\n"
+" corrispondente a un'espressione regolare.\n"
+" \n"
+" Gli operatori && e || non valutano ESPR2 se ESPR1 è sufficiente a\n"
+" determinare il valore dell'espressione.\n"
+" \n"
+" Stato di uscita:\n"
+" 0 o 1 a seconda del valore dell'ESPRESSIONE."
+
+#: builtins.c:1737
+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 ""
+"Nomi e usi comuni delle variabili di shell.\n"
+" \n"
+" BASH_VERSION\tInformazioni sulla versione di Bash.\n"
+" CDPATH\tUn elenco di directory da cercare separate da un due punti\n"
+" \tfornite come argomenti per \"cd\".\n"
+" GLOBIGNORE\tUn elenco di modelli separato da un due punti che descrivono "
+"i nomi\n"
+" \t\tdi file che devono essere ignorati dall'espansione di percorso.\n"
+" HISTFILE\tIl nome del file in cui è memorizzata la cronologia dei "
+"comandi.\n"
+" HISTFILESIZE\tIl numero massimo di righe che può contenere questo file.\n"
+" HISTSIZE\tIl numero massimo di righe di cronologia a cui può accedere\n"
+" \t\tuna shell in esecuzione.\n"
+" HOME\tIl nome completo del percorso della propria directory di login.\n"
+" HOSTNAME\tIl nome dell'host corrente.\n"
+" HOSTTYPE\tIl tipo di CPU sulla quale è in esecuzione questa versione di "
+"bash.\n"
+" IGNOREEOF\tControlla il comportamento della shell quando riceve un "
+"carattere EOF\n"
+" \t\tcome unico input. Se impostato, il suo valore corrisponde al "
+"numero\n"
+" \t\tdi caratteri EOF che si possono trovare in una fila in una riga "
+"vuota\n"
+" \t\tprima che la shell esca (predefinito 10). Quando viene azzerato, "
+"EOF\n"
+" \t\tindica la fine dell'input.\n"
+" MACHTYPE\tUna stringa che descrive l'attuale sistema dove è in "
+"esecuzione bash.\n"
+" MAILCHECK\tQuanto spesso, in secondi, Bash controlla la presenza di "
+"nuova posta.\n"
+" MAILPATH\tUn elenco di nomi di file separati da un due punti usati da "
+"Bash per\n"
+" \t\tcontrollare la presenza di nuova posta.\n"
+" OSTYPE\tLa versione di Unix sulla quale è in esecuzione questa versione "
+"di bash.\n"
+" PATH\tUn elenco di directory, separato da un due punti, da analizzare "
+"quando\n"
+" \t\tsi cercano i comandi.\n"
+" PROMPT_COMMAND\tUn comando da eseguire prima della stampa di ciascun "
+"prompt\n"
+" \t\tprimario.\n"
+" PS1\t\tLa stringa del prompt primario.\n"
+" PS2\t\tLa stringa del prompt secondario.\n"
+" PWD\t\tIl nome completo del percorso della directory corrente.\n"
+" SHELLOPTS\tUn elenco di opzioni di shell abilitate, separate da un due "
+"punti.\n"
+" TERM\tIl nome del tipo di terminale corrente.\n"
+" TIMEFORMAT\tIl formato di output per le statistiche temporali "
+"visualizzato dalla\n"
+" \t\tparola riservata \"time\".\n"
+" auto_resume\tNon null significa che una parola di un comando che compare "
+"da\n"
+" \t\taol in una riga viene prima cercata nell'elenco dei job correnti\n"
+" \t\tfermati. Se trovato, questo job viene messo in primo piano.\n"
+" \t\tUn valore pari a \"exact\" significa che la parola del comando deve\n"
+" \t\tcorrispondere esattamente a un comando nell'elenco dei job fermati. "
+"Un\n"
+" \t\tvalore pari a \"substring\" significa che la parola del comando "
+"deve\n"
+" \t\tcorrispondere a una sottostringa del job. Qualsiasi altro valore "
+"significa\n"
+" \t\tche il comando deve essere un prefisso di un lavoro fermato.\n"
+" histchars\tCaratteri che controllano l'espansione della cronologia e la "
+"sostituzione\n"
+" \t\trapida. Il primo carattere è quello di sostituzione della "
+"cronologia,\n"
+" \t\tsolitamente \"!\". Il secondo è il carattere di \"sostituzione "
+"rapida\",\n"
+" \t\tsolitamente \"^\". Il terzo è il carattere di \"commento della "
+"cronologia\",\n"
+" \t\tsolitamente \"#\".\n"
+" HISTIGNORE\tUn elenco di modelli separato da un due punti usato per "
+"decidere quale\n"
+" \t\tcomando dovrebbe essere salvato nell'elenco della cronologia.\n"
+
+#: builtins.c:1794
+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 ""
+"Aggiunge directory allo stack.\n"
+" \n"
+" Aggiunge una directory in cima allo stack delle directory o ruota lo\n"
+" stack stesso, mettendo come primo elemento la directory di lavoro\n"
+" corrente. Senza argomenti scambia le prime due directory in cima.\n"
+" \n"
+" Opzioni:\n"
+" -n\tEvita il normale cambio di directory quando vengono aggiunte\n"
+" \tdirectory allo stack, così da manipolare solo lo stack stesso.\n"
+" \n"
+" Argomenti:\n"
+" +N\tRuota lo stack in modo che l'N-sima directory (contando\n"
+" \ta partire da sinistra dell'elenco mostrato da \"dirs\", iniziando da\n"
+" \tzero) sia in cima.\n"
+" \n"
+" -N\tRuota lo stack in modo che l'N-sima directory (contando\n"
+" \ta partire da destra dell'elenco mostrato da \"dirs\", iniziando da\n"
+" \tzero) sia in cima.\n"
+" \n"
+" dir\tAggiunge DIR in cima allo stack delle directory, facendone la\n"
+" \tdirectory di lavoro corrente.\n"
+" \n"
+" Il comando interno \"dirs\" mostra lo stack delle directory.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornito un argomento valido o "
+"non abbia\n"
+" successo il cambio di directory."
+
+#: builtins.c:1828
+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 ""
+"Rimuove directory dallo stack.\n"
+" \n"
+" Rimuove voci dallo stack delle directory. Senza argomenti, rimuove\n"
+" la directory in cima allo stack e cambia alla nuova prima directory.\n"
+" \n"
+" Opzioni:\n"
+" -n\tEvita il normale cambio di directory quando vengono rimosse\n"
+" \tdirectory dallo stack, così da manipolare solo lo stack stesso.\n"
+" \n"
+" Argomenti:\n"
+" +N\tRimuove l'N-sima voce contando a partire da sinistra dell'elenco\n"
+" \tmostrato da \"dirs\", iniziando da zero. Per esempio: \"popd +0\"\n"
+" \trimuove la prima directory, \"popd +1\" la seconda.\n"
+" \n"
+" -N\tRimuove l'N-sima voce contando a partire da destra dell'elenco\n"
+" \tmostrato da \"dirs\", iniziando da zero. Per esempio: \"popd -0\"\n"
+" \trimuove l'ultima directory, \"popd -1\" la penultima.\n"
+" \n"
+" Il comando interno \"dirs\" mostra lo stack delle directory.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornito un argomento non "
+"valido o non\n"
+" abbia successo il cambio di directory."
+
+#: builtins.c:1858
+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 ""
+"Visualizza lo stack delle directory.\n"
+" \n"
+" Visualizza l'elenco delle directory ricordate attualmente. Le directory\n"
+" vengono inserite nell'elenco con il comando \"pushd\"; è possibile\n"
+" andare a ritroso nell'elenco con il comando \"popd\".\n"
+" \n"
+" Opzioni:\n"
+" -c\tPulisce lo stack delle directory eliminandone tutti gli elementi\n"
+" -l\tNon stampa le directory con prefisso tilde relative alla propria\n"
+" \tdirectory home\n"
+" -p\tStampa lo stack delle directory una voce per riga\n"
+" -v\tStampa lo stack delle directory una voce per riga usando come\n"
+" \tprefisso la posizione nello stack\n"
+" \n"
+" Argomenti:\n"
+" +N\tMostra l'N-sima voce contando a partire da sinistra dell'elenco\n"
+" \tmostrato da dirs quando invocato senza opzioni, iniziando da zero.\n"
+" \n"
+" -N\tMostra l'N-sima voce contando a partire da destro dell'elenco\n"
+" \tmostrato da dirs quando invocato senza opzioni, iniziando da zero.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita un'opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:1887
+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 ""
+"Imposta le opzioni della shell.\n"
+" \n"
+" Cambia le impostazioni di ciascuna opzione di shell NOMEOPZ. Senza "
+"argomenti\n"
+" per le opzioni, elenca tutte le opzioni di shell indicando se sono o non "
+"sono\n"
+" impostate.\n"
+" \n"
+" Opzioni:\n"
+" -o\tLimita i NOMEOPZ a quelli definiti per essere usati con \"set -o"
+"\"\n"
+" -p\tStampa ogni opzione di shell indicando il relativo stato\n"
+" -q\tNon stampa l'output\n"
+" -s\tAbilita (imposta) ciascun NOMEOPZ\n"
+" -u\tDisabilita (elimina) ciascun NOMEOPZ\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo se NOMEOPZ è abilitato; insuccesso se viene "
+"fornita\n"
+" una opzione non valida o NOMEOPZ è disabilitato."
+
+#: builtins.c:1908
+#, 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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+"Formatta e stampa gli ARGOMENTI come indicato dal FORMATO.\n"
+" \n"
+" Opzioni:\n"
+" -v var\tAssegna l'output alla variabile di shell VAR invece\n"
+" \t\tdi visualizzarlo sullo standard output\n"
+" \n"
+" FORMATO è una stringa di caratteri che contiene tre tipi di oggetto: "
+"caratteri\n"
+" semplici, che sono semplicemente copiati sullo standard output; sequenze "
+"di escape\n"
+" dei caratteri, che sono convertite e copiate sullo standard output;\n"
+" specifiche di formato, ognuna delle quali provoca la stampa del "
+"successivo argomento\n"
+" consecutivo.\n"
+" \n"
+" In aggiunta alle specifiche di formato standard descritte in printf(1)\n"
+" e printf(3), printf interpreta:\n"
+" \n"
+" %b\tEspande le sequenze di escape di backslash nell'argomento "
+"corrispondente\n"
+" %q\tQuota l'argomento in modo che possa essere riusato come input per "
+"la shell\n"
+" %(fmt)T Visualizza la stringa della data/ora risultante dall'uso di "
+"FMT come stringa\n"
+" di formato per strftime(3)\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida "
+"o si riscontri\n"
+" un errore di scrittura o assegnazione."
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Specifica come gli argomenti debbano essere completati da Readline.\n"
+" \n"
+" Per ciascun NOME, specifica come gli argomenti debbano essere "
+"completati. Se non\n"
+" vengono fornite opzioni, le specifiche di completamento esistenti sono "
+"stampate in modo\n"
+" che possano essere riusate come input.\n"
+" \n"
+" Opzioni:\n"
+" -p\tStampa le specifiche di completamento esistenti in un formato "
+"riusabile\n"
+" -r\tRimuove una specifica di completamento per ciascun NOME, oppure "
+"tutte\n"
+" \tse non viene fornito alcun NOME\n"
+" -D\tApplica i completamenti e le azioni come predefiniti per i "
+"comandi\n"
+" \tsenza alcun completamento definito specifico\n"
+" -E\tApplica i completamenti e le azioni ai comandi \"vuoti\" --\n"
+" \tcompletamenti tentati su una riga vuota\n"
+" \n"
+" Quando viene tentato un completamento, le azioni sono applicate "
+"nell'ordine\n"
+" in cui sono sopra elencate le opzioni a lettera maiuscola.\n"
+" L'opzione -D ha precedenza su -E.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:1970
+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 ""
+"Visualizza i possibili completamenti a seconda delle opzioni.\n"
+" \n"
+" È pensata per essere usata all'interno di una funzione di shell per "
+"generare\n"
+" dei possibili completamenti. Se viene fornito l'argomento opzionale "
+"PAROLA,\n"
+" vengono generate le corrispondenze relative a PAROLA.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
+
+#: builtins.c:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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 ""
+"Modifica o visualizza le opzioni di completamento.\n"
+" \n"
+" Modifica le opzioni di completamento per ciascun NOME, oppure, se non "
+"viene fornito alcun NOME,\n"
+" il completamento attualmente in esecuzione. Con nessuna OPZIONE "
+"fornita, stampa\n"
+" le opzioni di completamento per ciascun NOME o le specifiche di "
+"completamento correnti.\n"
+" \n"
+" Opzioni:\n"
+" \t-o opzione\tImposta l'OPZIONE di completamento per ciascun NOME\n"
+" \t-D\t\tCambia le opzioni per il completamento di comando \"predefinito"
+"\"\n"
+" \t-E\t\tCambia le opzioni per il completamento di comando \"vuoto\"\n"
+" \n"
+" Usando \"+o\" al posto di \"-o\" disabilita l'opzione specificata.\n"
+" \n"
+" Argomenti:\n"
+" \n"
+" Ciascun NOME si riferisce a un comando per il quale deve essere stata "
+"precedentemente\n"
+" definita una specifica di completamento con il comando interno \"complete"
+"\". Se non viene fornito\n"
+" alcun NOME, compopt deve essere richiamato da una funzione che generi "
+"attualmente\n"
+" completamenti, e le opzioni per questo generatore di completamenti "
+"attualmente\n"
+" in esecuzione sono modificate\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non valida "
+"o NOME non\n"
+" abbia una specifica di completamento definita."
+
+#: builtins.c:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+"Legge righe dallo standard input in una variabile di array indicizzato.\n"
+" \n"
+" Legge righe dallo standard input nella variabile di ARRAY indicizzato, "
+"oppure\n"
+" dal descrittore di file FD se viene fornita l'opzione -u. La variabile "
+"MAPFILE\n"
+" è l'ARRAY predefinito.\n"
+" \n"
+" Opzioni:\n"
+" -n numero\t\tCopia al massimo un NUMERO di righe. Se NUMERO è 0, "
+"vengono copiate tutte.\n"
+" -O origine\tInizia assegnando all'ARRAY all'indice ORIGINE. L'indice "
+"predefinito è 0.\n"
+" -s numero \tScarta le prime NUMERO righe lette.\n"
+" -t\t\tRimuove un ritorno a capo finale da ciascuna riga letta.\n"
+" -u fd\t\tLegge le righe da un descrittore di file FD invece che dallo "
+"standard input.\n"
+" -C callback\tEsamina CALLBACK ogni volta che vengono lette un numero "
+"QUANTO di righe.\n"
+" -c quantità\tSpecifica il numero di righe lette tra ciascuna chiamata "
+"a CALLBACK.\n"
+" \n"
+" Argomenti:\n"
+" ARRAY\t\tNome della variabile di array da usare per i dati dei file.\n"
+" \n"
+" Se viene fornito -C senza -c, il quanto predefinito è 5000. Quando\n"
+" viene analizzata CALLBACK, viene fornito l'indice dell'elemento di\n"
+" array successivo da assegnare e la riga da attribuire a quell'elemento\n"
+" come argomenti aggiuntivi.\n"
+" \n"
+" Se non viene fornito con una origine esplicita, il file di mappa "
+"azzererà l'ARRAY\n"
+" prima della relativa assegnazione.\n"
+" \n"
+" Stato di uscita:\n"
+" Restituisce successo a meno che non venga fornita una opzione non "
+"valida, ARRAY sia\n"
+" in sola lettura oppure non indicizzato."
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Legge le righe da un file in una variabile di array.\n"
+" \n"
+" Sinonimo per \"mapfile\"."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licenza GPLv2+: GNU GPL versione 2 o successive <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
diff --git a/po/ja.gmo b/po/ja.gmo
index f1d41c31..cd8526d4 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index d6abbcdf..080720aa 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,104 +1,122 @@
# Japanese messages for GNU bash
-# Copyright (C) 1999, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2010, 2011, 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Kyoichi Ozaki <k@afromania.org>, 2000.
-# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010.
+# Yasuaki Taniguchi <yasuakit@gmail.com>, 2011.
+# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: GNU bash 4.1\n"
+"Project-Id-Version: GNU bash 4.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-10-17 19:38+0900\n"
-"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2013-03-12 19:44+0900\n"
+"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"Language: Japanese\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: Poedit 1.5.4\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "誤ã£ãŸé…列ã®æ·»å­—"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: インデックスé…列ã‹ã‚‰é€£æƒ³é…列ã«å¤‰æ›ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: 無効ãªé€£æƒ³é…列ã®ã‚­ãƒ¼ã§ã™"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: é…列ã®æ·»å­—ã«éžæ•°å­—を設定ã§ãã¾ã›ã‚“"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: 連想é…列を設定ã™ã‚‹ã¨ãã«ã¯æ·»å­—ã‚’ã¤ã‘ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: %s を作æˆã§ãã¾ã›ã‚“"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: コマンドã®ã‚­ãƒ¼ãƒžãƒƒãƒ—ãŒã‚ã‚Šã¾ã›ã‚“"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: 最åˆã®éžç©ºç™½é¡žæ–‡å­—㌠`\"' ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "é–‰ã˜ã‚‹ `%c' ㌠%s ã«ã‚ã‚Šã¾ã›ã‚“"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: 区切り文字コロン(:)ãŒã‚ã‚Šã¾ã›ã‚“"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "`%s': 無効ãªã‚¨ã‚¤ãƒªã‚¢ã‚¹åã§ã™"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "行編集ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ã¾ã›ã‚“"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "`%s': 無効ãªã‚­ãƒ¼ãƒžãƒƒãƒ—åã§ã™"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: %s を読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "`%s': 割り当ã¦è§£é™¤ã§ãã¾ã›ã‚“"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': ä¸æ˜Žãªé–¢æ•°åã§ã™"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s ã¯ã©ã®ã‚­ãƒ¼ã«ã‚‚割り当ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“。\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s ã¯æ¬¡ã‚’通ã—ã¦èµ·å‹•ã—ã¾ã™ "
@@ -111,7 +129,7 @@ msgstr "ループ回数"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "`for'ã€`while' ã¾ãŸã¯ `until' ループã§ã®ã¿æ„味ãŒã‚ã‚Šã¾ã™"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -121,11 +139,15 @@ msgstr ""
" \n"
" EXPR ãŒç„¡ã„å ´åˆã€æ¬¡ã‚’è¿”ã—ã¾ã™ "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "引数ãŒå¤šã™ãŽã¾ã™"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
@@ -134,7 +156,7 @@ msgstr "OLDPWD ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "line %d: "
msgstr "%d 行: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "警告: "
@@ -144,11 +166,7 @@ msgstr "警告: "
msgid "%s: usage: "
msgstr "%s: 使用法: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "引数ãŒå¤šã™ãŽã¾ã™"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: オプションã«ã¯å¼•æ•°ãŒå¿…è¦ã§ã™"
@@ -163,7 +181,7 @@ msgstr "%s: æ•°å­—ã®å¼•æ•°ãŒå¿…è¦ã§ã™"
msgid "%s: not found"
msgstr "%s: 見ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: 無効ãªã‚ªãƒ—ションã§ã™"
@@ -173,7 +191,7 @@ msgstr "%s: 無効ãªã‚ªãƒ—ションã§ã™"
msgid "%s: invalid option name"
msgstr "%s: 無効ãªã‚ªãƒ—ションåã§ã™"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': 有効ãªè­˜åˆ¥å­ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -186,7 +204,7 @@ msgstr "無効ãªå…«é€²æ•°ã§ã™"
msgid "invalid hex number"
msgstr "無効ãªå六進数ã§ã™"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "無効ãªæ•°å­—ã§ã™"
@@ -200,7 +218,7 @@ msgstr "%s: 無効ãªã‚·ã‚°ãƒŠãƒ«æŒ‡å®šã§ã™"
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': pid ã¾ãŸã¯æœ‰åŠ¹ãªã‚¸ãƒ§ãƒ–指定ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: 読ã¿å–り専用ã®å¤‰æ•°ã§ã™"
@@ -272,48 +290,58 @@ msgstr "%s: カレントディレクトリã®å–得時ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã
msgid "%s: ambiguous job spec"
msgstr "%s: 曖昧ãªã‚¸ãƒ§ãƒ–指定ã§ã™"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: 無効ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³åã§ã™"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: 補完指定ãŒã‚ã‚Šã¾ã›ã‚“"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "警告: -F オプションã¯æœŸå¾…通りã«å‹•ä½œã—ãªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "警告: -C オプションã¯æœŸå¾…通りã«å‹•ä½œã—ãªã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "補完機能ã¯ç¾åœ¨å®Ÿè¡Œã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "関数ã®ä¸­ã§ã®ã¿ä½¿ç”¨ã§ãã¾ã™"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "関数作æˆæ™‚ã« `-f' を使用ã§ãã¾ã›ã‚“"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: 読ã¿å–り専用関数ã§ã™"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: ã“ã®æ–¹æ³•ã§é…列変数を消去ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: 連想é…列ã‹ã‚‰ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹é…列ã«å¤‰æ›ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
@@ -342,24 +370,23 @@ msgstr "%s: å‹•çš„ã«ãƒ­ãƒ¼ãƒ‰ã•ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "%s: cannot delete: %s"
msgstr "%s: 削除ã§ãã¾ã›ã‚“: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: ディレクトリã§ã™"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: 通常ファイルã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: ファイルãŒå¤§ãã™ãŽã¾ã™"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã‚’実行ã§ãã¾ã›ã‚“"
@@ -392,11 +419,11 @@ msgstr "動作中ã®ã‚¸ãƒ§ãƒ–ãŒã‚ã‚Šã¾ã™ã€‚\n"
msgid "no command found"
msgstr "コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "ヒストリ指定"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: 一時ファイルを開ãã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
@@ -440,7 +467,7 @@ msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
msgstr[0] "キーワードã«ä¸€è‡´ã—ãŸã‚·ã‚§ãƒ«ã‚³ãƒžãƒ³ãƒ‰ `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -448,12 +475,12 @@ msgstr ""
"`%s' ã«ä¸€è‡´ã™ã‚‹ãƒ˜ãƒ«ãƒ—é …ç›®ãŒã‚ã‚Šã¾ã›ã‚“。`help help'ã€`man -k %s' ã¾ãŸã¯ `info "
"%s' を試ã—ã¦ãã ã•ã„"
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -483,7 +510,7 @@ msgstr "-anrw ã‚’2ã¤ä»¥ä¸Šä¸€ç·’ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
msgid "history position"
msgstr "ヒストリä½ç½®"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: ヒストリã®å±•é–‹ã«å¤±æ•—ã—ã¾ã—ãŸ"
@@ -497,16 +524,16 @@ msgstr "%s: inlib ãŒå¤±æ•—ã—ã¾ã—ãŸ"
msgid "no other options allowed with `-x'"
msgstr "`-x' ã¯ä»–ã®ã‚ªãƒ—ションをåŒæ™‚ã«ä½¿ç”¨ã§ãã¾ã›ã‚“"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: 引数ã¯ãƒ—ロセスIDã‹ã‚¸ãƒ§ãƒ–IDã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "ä¸æ˜Žãªã‚¨ãƒ©ãƒ¼ã§ã™"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "å¼ãŒäºˆæœŸã•ã‚Œã¾ã™"
@@ -515,85 +542,95 @@ msgstr "å¼ãŒäºˆæœŸã•ã‚Œã¾ã™"
msgid "%s: not an indexed array"
msgstr "%s: インデックスé…列ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: 無効ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­æŒ‡å®šã§ã™"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr "%d: %s ã¯ç„¡åŠ¹ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ã§ã™"
+msgstr "%d: 無効ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: 無効ãªè¡Œæ•°ã§ã™"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: 無効ãªé…列ã®åŽŸç‚¹ã§ã™"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: コールãƒãƒƒã‚¯ã® quantum ãŒç„¡åŠ¹ã§ã™"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "空ã®é…列変数åã§ã™"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "é…列変数ã®ã‚µãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': 書å¼æŒ‡å®šæ–‡å­—ãŒã‚ã‚Šã¾ã›ã‚“"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: 無効ãªã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæŒ‡å®šã§ã™"
+msgstr "`%c': 無効ãªæ™‚間書å¼æŒ‡å®šã§ã™"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': 無効ãªæ›¸å¼æŒ‡å®šæ–‡å­—ã§ã™"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "警告: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
-msgstr "\\x ã«å六進数字ãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr "\\x 用ã®å六進数字ãŒã‚ã‚Šã¾ã›ã‚“"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "\\x ã«å六進数字ãŒã‚ã‚Šã¾ã›ã‚“"
+msgstr "\\%c 用ã®ãƒ¦ãƒ‹ã‚³ãƒ¼ãƒ‰æ•°å€¤ãŒã‚ã‚Šã¾ã›ã‚“"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "ä»–ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯ã‚ã‚Šã¾ã›ã‚“"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: limit ã®ç„¡åŠ¹ãªå¼•æ•°ã§ã™"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<カレントディレクトリãŒã‚ã‚Šã¾ã›ã‚“>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "ディレクトリスタックãŒç©ºã§ã™"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "ディレクトリスタックã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -635,7 +672,7 @@ msgstr ""
" -N\tオプションãªã—ã§èµ·å‹•ã•ã‚ŒãŸå ´åˆã«ãƒªã‚¹ãƒˆã®æœ«å°¾ã‹ã‚‰æ•°ãˆã¦\n"
"\tN番目ã®è¦ç´ ã‚’表示ã—ã¾ã™ã€‚開始番å·ã¯0ã§ã™ã€‚"
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -679,7 +716,7 @@ msgstr ""
" \n"
" `dirs' ビルトインコマンドã§ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¹ã‚¿ãƒƒã‚¯ã‚’表示ã—ã¾ã™ã€‚"
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -717,40 +754,40 @@ msgstr ""
" \n"
" `dirs' ビルトインコマンドã§ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¹ã‚¿ãƒƒã‚¯ã‚’表示ã—ã¾ã™ã€‚"
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: 無効ãªã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæŒ‡å®šã§ã™"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "読ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "`return' ã¯é–¢æ•°ã¾ãŸã¯ source ã•ã‚ŒãŸã‚¹ã‚¯ãƒªãƒ—ト内ã®ã¿ã§åˆ©ç”¨ã§ãã¾ã™"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "変数ã¨é–¢æ•°ã‚’åŒæ™‚ã«æ¶ˆåŽ»ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: 消去ã§ãã¾ã›ã‚“"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: 消去ã§ãã¾ã›ã‚“: %s ã¯èª­ã¿å–り専用ã§ã™"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: é…列変数ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: 関数ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
@@ -759,11 +796,11 @@ msgstr "%s: 関数ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "shift count"
msgstr "シフト回数"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "シェルオプションをåŒæ™‚ã«æœ‰åŠ¹ã‹ã¤ç„¡åŠ¹ã«ã§ãã¾ã›ã‚“"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: 無効ãªã‚·ã‚§ãƒ«ã‚ªãƒ—ションåã§ã™"
@@ -805,7 +842,7 @@ msgstr "%s ã¯é–¢æ•°ã§ã™\n"
msgid "%s is a shell builtin\n"
msgstr "%s ã¯ã‚·ã‚§ãƒ«çµ„ã¿è¾¼ã¿é–¢æ•°ã§ã™\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s 㯠%s ã§ã™\n"
@@ -815,45 +852,45 @@ msgstr "%s 㯠%s ã§ã™\n"
msgid "%s is hashed (%s)\n"
msgstr "%s ã¯ãƒãƒƒã‚·ãƒ¥ã•ã‚Œã¦ã„ã¾ã™ (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: limit ã®ç„¡åŠ¹ãªå¼•æ•°ã§ã™"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': 誤ã£ãŸã‚³ãƒžãƒ³ãƒ‰ã§ã™"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: limit ã‚’å–å¾—ã§ãã¾ã›ã‚“: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limit"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: limit を変更ã§ãã¾ã›ã‚“ : %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "八進数"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "`%c': 無効ãªã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ¢ãƒ¼ãƒ‰æ¼”ç®—å­ã§ã™"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "`%c': 無効ãªã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒ¢ãƒ¼ãƒ‰æ–‡å­—ã§ã™"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " 行 "
@@ -867,298 +904,313 @@ msgstr "最後ã®ã‚³ãƒžãƒ³ãƒ‰: %s\n"
msgid "Aborting..."
msgstr "中止ã—ã¦ã„ã¾ã™..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "ä¸æ˜Žãªã‚³ãƒžãƒ³ãƒ‰ã‚¨ãƒ©ãƒ¼ã§ã™"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "誤ã£ãŸã‚³ãƒžãƒ³ãƒ‰ã‚¿ã‚¤ãƒ—ã§ã™"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "誤ã£ãŸæŽ¥ç¶šã§ã™"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "誤ã£ãŸã‚¸ãƒ£ãƒ³ãƒ—ã§ã™"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: 未割り当ã¦ã®å¤‰æ•°ã§ã™"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\a入力待ã¡ãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸ: 自動ログアウト\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "/dev/null ã‹ã‚‰æ¨™æº–入力ã«å¯¾ã—ã¦ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã§ãã¾ã›ã‚“: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: `%c': 無効ãªæ›¸å¼æ–‡å­—ã§ã™"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "パイプエラー"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: 制é™ã•ã‚Œã¦ã„ã¾ã™: `/' をコマンドåã®ä¸­ã«æŒ‡å®šã§ãã¾ã›ã‚“"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s 㯠%s ã§ã™\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: 誤ã£ãŸã‚¤ãƒ³ã‚¿ãƒ—リタã§ã™"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«ã‚’実行ã§ãã¾ã›ã‚“"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s ã¯ã‚·ã‚§ãƒ«çµ„ã¿è¾¼ã¿é–¢æ•°ã§ã™\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "fd %d ã‚’ fd %d ã«è¤‡è£½ã§ãã¾ã›ã‚“"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "å¼ã®å†å¸°å¯èƒ½ãƒ¬ãƒ™ãƒ«ã‚’越ãˆã¾ã—ãŸ"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "å†å¸°ã‚¹ã‚¿ãƒƒã‚¯ãŒã‚¢ãƒ³ãƒ€ãƒ¼ãƒ•ãƒ­ãƒ¼ã—ã¾ã—ãŸ"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "å¼ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "éžå¤‰æ•°ã«å‰²ã‚Šå½“ã¦ã‚’è¡ŒãŠã†ã¨ã—ã¦ã¾ã™"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "0 ã«ã‚ˆã‚‹é™¤ç®—ã§ã™"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "ãƒã‚°: 誤ã£ãŸå¼ã®ãƒˆãƒ¼ã‚¯ãƒ³ã§ã™"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "æ¡ä»¶å¼ã«ã¯ `:' ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "0よりå°ã•ã„指数部ã§ã™"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "識別å­ã¯å‰ç½®ã‚¤ãƒ³ã‚¯ãƒªãƒ¡ãƒ³ãƒˆã¾ãŸã¯å‰ç½®ãƒ‡ã‚¯ãƒªãƒ¡ãƒ³ãƒˆãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "`)' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "構文エラー: オペランドãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "構文エラー: 無効ãªè¨ˆç®—演算å­ã§ã™"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (エラーã®ã‚るトークン㯠\"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "無効ãªåŸºåº•ã®æ•°å€¤ã§ã™"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "基底ã®å€¤ãŒå¤§ãã™ãŽã¾ã™"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: å¼ã®ã‚¨ãƒ©ãƒ¼\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: 親ディレクトリã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "ファイル記述å­(fd) %d ã‚’ç„¡é…延モードã«å†è¨­å®šã§ãã¾ã›ã‚“"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr "æ–°è¦ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­(fd) %d ã‚’ bash ã®å…¥åŠ›ã¨ã—ã¦å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¾ã›ã‚“"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: æ–°è¦ fd %d ã®ãƒãƒƒãƒ•ã‚¡ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "実行中ã®ã‚¸ãƒ§ãƒ– %2$d 㧠fork ã—㟠pid %1$d ãŒå‡ºç¾ã—ã¾ã—ãŸ"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "プロセスグループ %2$ld ã®ã‚¸ãƒ§ãƒ– %1$d を削除ã—ã¦ã„ã¾ã™"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: プロセス %5ld (%s) ㌠the_pipeline ã«ã‚ã‚Šã¾ã™"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: pid %5ld (%s) ã¯ã¾ã å­˜åœ¨ã—ã¦ã„ã‚‹ã¨ãƒžãƒ¼ã‚¯ã•ã‚Œã¦ã„ã¾ã™"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: ãã®ã‚ˆã†ãª pid ã¯å­˜åœ¨ã—ã¾ã›ã‚“"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "シグナル %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "終了"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "åœæ­¢"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "åœæ­¢ (%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "実行中"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "終了(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "終了 %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "ä¸æ˜Žãªã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(コアダンプ) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "å­ãƒ—ロセス setpgid (%ld ã‹ã‚‰ %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: pid %ld ã¯ã“ã®ã‚·ã‚§ãƒ«ã®å­ãƒ—ロセスã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: プロセス %ld ã®è¨˜éŒ²ãŒã‚ã‚Šã¾ã›ã‚“"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: ジョブ %d ã¯åœæ­¢ã—ã¦ã„ã¾ã™"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: ジョブã¯çµ‚了ã—ã¾ã—ãŸ"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: ジョブ %d ã¯ã™ã§ã«ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å‹•ä½œã—ã¦ã„ã¾ã™"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: ä¸å®šã®ãƒ–ロックをé¿ã‘ã‚‹ãŸã‚ã« WNOHANG をオンã«ã—ã¾ã—ãŸã€‚"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: %d 行: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (コアダンプ)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd now: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp ãŒå¤±æ•—ã—ã¾ã—ãŸ"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: line discipline"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "端末プロセスグループを設定ã§ãã¾ã›ã‚“ (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "ã“ã®ã‚·ã‚§ãƒ«ã§ã¯ã‚¸ãƒ§ãƒ–制御ãŒç„¡åŠ¹ã«ãªã£ã¦ã„ã¾ã™"
@@ -1180,54 +1232,54 @@ msgstr ""
msgid "unknown"
msgstr "ä¸æ˜Ž"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: free ブロックリストãŒå£Šã‚Œã¦ã„ã¾ã™"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: 既㫠free ã•ã‚ŒãŸãƒ–ロックを引数ã¨ã—ã¦å‘¼ã³å‡ºã•ã‚Œã¾ã—ãŸ"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: 未割当ã®ãƒ–ロックを引数ã¨ã—ã¦å‘¼ã³å‡ºã•ã‚Œã¾ã—ãŸ"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
-msgstr "free: アンダーフローを検出ã—ã¾ã—ãŸã€‚ mh_nbytes ãŒç¯„囲外ã§ã™ã€‚"
+msgstr "free: アンダーフローを検出ã—ã¾ã—ãŸã€‚ mh_nbytes ãŒç¯„囲外ã§ã™"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: 開始ã¨çµ‚了ã®å¡Šã®å¤§ãã•ãŒç•°ãªã£ã¦ã„ã¾ã™"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: 未割当ã®ãƒ–ロックを引数ã¨ã—ã¦å‘¼ã³å‡ºã•ã‚Œã¾ã—ãŸ"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: アンダーフローを検出ã—ã¾ã—ãŸã€‚ mh_nbytes ãŒç¯„囲外ã§ã™ã€‚<"
+msgstr "realloc: アンダーフローを検出ã—ã¾ã—ãŸã€‚ mh_nbytes ãŒç¯„囲外ã§ã™"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: 開始ã¨çµ‚了ã®å¡Šã®å¤§ãã•ãŒç•°ãªã£ã¦ã„ã¾ã™"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr "register_alloc: FIND_ALLOC ã§å‰²ã‚Šå½“ã¦ãƒ†ãƒ¼ãƒ–ルãŒã„ã£ã±ã„ã§ã™\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "register_alloc: %p æ—¢ã«ãƒ†ãƒ¼ãƒ–ル上ã§ã¯å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p テーブル上ã§ã¯æ—¢ã«è§£æ”¾ã•ã‚Œã¦ã„ã¾ã™\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "無効ãªåŸºåº•"
@@ -1250,38 +1302,38 @@ msgstr "%s: ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒ‘ス指定ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™"
msgid "network operations not supported"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æ“作ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: ロケールを変更ã§ãã¾ã›ã‚“ (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: ロケールを変更ã§ãã¾ã›ã‚“ (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: ロケールを変更ã§ãã¾ã›ã‚“ (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: ロケールを変更ã§ãã¾ã›ã‚“ (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "メール㌠$_ ã«ã‚ã‚Šã¾ã™"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "æ–°ã—ã„メール㌠$_ ã«ã‚ã‚Šã¾ã™"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
-msgstr "%s ã®ãƒ¡ãƒ¼ãƒ«ã¯æ—¢ã«èª­ã¾ã‚Œã¦ã¾ã™\n"
+msgstr "%s ã®ãƒ¡ãƒ¼ãƒ«ã¯æ—¢èª­ã§ã™\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
@@ -1296,119 +1348,119 @@ msgstr "構文エラー: 予期ã—ãªã„ `;' ã§ã™"
msgid "syntax error: `((%s))'"
msgstr "構文エラー: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: 誤ã£ãŸæŒ‡å®šã®ç¨®é¡ž %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
"ヒアドキュメント㮠%d 行目ã§ãƒ•ã‚¡ã‚¤ãƒ«çµ‚了 (EOF) ã«é”ã—ã¾ã—㟠(`%s' ãŒå¿…è¦)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: リダイレクト指定 `%d' ã¯ç¯„囲外ã§ã™"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
-msgstr "一致ã™ã‚‹ `%c' を探索中ã«äºˆæœŸã—ãªã„ファイル終了 (EOF) ã§ã™"
+msgstr "対応ã™ã‚‹ `%c' を探索中ã«äºˆæœŸã—ãªã„ファイル終了 (EOF) ã§ã™"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "`]]' を探索中ã«äºˆæœŸã—ãªã„ファイル終了 (EOF) ã§ã™"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "æ¡ä»¶å¼ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼: 予期ã—ãªã„トークン `%s' ã§ã™"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "æ¡ä»¶å¼ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "予期ã—ãªã„トークン `%s' ã§ã™ã€‚`)' ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "`)' ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "æ¡ä»¶å˜é …演算å­ã«äºˆæœŸã—ãªã„引数 `%s' ã§ã™"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "æ¡ä»¶å˜é …演算å­ã«äºˆæœŸã—ãªã„引数ã§ã™"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "`%s` ã¯äºˆæœŸã—ãªã„トークンã§ã™ã€‚æ¡ä»¶äºŒé …演算å­ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "æ¡ä»¶äºŒé …演算å­ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "æ¡ä»¶äºŒé …演算å­ã«äºˆæœŸã—ãªã„引数 `%s' ã§ã™"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "æ¡ä»¶äºŒé …演算å­ã«äºˆæœŸã—ãªã„引数ã§ã™"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "æ¡ä»¶ã‚³ãƒžãƒ³ãƒ‰ã«äºˆæœŸã—ãªã„トークン `%c' ãŒã‚ã‚Šã¾ã™"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "æ¡ä»¶ã‚³ãƒžãƒ³ãƒ‰ã«äºˆæœŸã—ãªã„トークン `%s' ãŒã‚ã‚Šã¾ã™"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "æ¡ä»¶ã‚³ãƒžãƒ³ãƒ‰ã«äºˆæœŸã—ãªã„トークン %d ãŒã‚ã‚Šã¾ã™"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "予期ã—ãªã„トークン `%s' 周辺ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "`%s' 周辺ã«æ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "構文エラー: 予期ã—ãªã„ファイル終了 (EOF) ã§ã™"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "構文エラー"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "シェルã‹ã‚‰è„±å‡ºã™ã‚‹ã«ã¯ \"%s\" を使用ã—ã¦ãã ã•ã„。\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "対応ã™ã‚‹ `)' を探索中ã«äºˆæœŸã—ãªã„ファイル終了(EOF)ã§ã™"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: 関数 `%s' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
@@ -1418,90 +1470,90 @@ msgstr "completion: 関数 `%s' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: 誤ã£ãŸæŽ¥ç¶š `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: 無効ãªãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ã§ã™"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: NULL ファイルãƒã‚¤ãƒ³ã‚¿ã§ã™"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: `%c': 無効ãªæ›¸å¼æ–‡å­—ã§ã™"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "ファイル記述å­ãŒç¯„囲外ã§ã™"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: 曖昧ãªãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã§ã™"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: 存在ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’上書ãã§ãã¾ã›ã‚“"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: 制é™ã•ã‚Œã¦ã„ã¾ã™: 出力をリダイレクト出æ¥ã¾ã›ã‚“"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "ヒアドキュメント用一時ファイルを作æˆã§ãã¾ã›ã‚“: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ (fd) を変数ã«è¨­å®šã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãŒç„¡åŠ¹ãªå ´åˆ /dev/(tcp|udp)/host/port ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "リダイレクトエラー: ファイル記述å­ã‚’複製ã§ãã¾ã›ã‚“"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "/tmp ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。作æˆã—ã¦ãã ã•ã„!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp ã¯æœ‰åŠ¹ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã§ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: 無効ãªã‚ªãƒ—ション"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "ç§ã¯åå‰ãŒã‚ã‚Šã¾ã›ã‚“!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1510,40 +1562,41 @@ msgstr ""
"使用法:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU å½¢å¼ã®é•·ã„オプション:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "シェルオプション:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD ã¾ãŸã¯ -c command ã¾ãŸã¯ -O shopt_option\t\t(起動時ã®ã¿)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ã¾ãŸã¯ -o option\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"シェルオプションã®è©³ç´°ã«ã¤ã„ã¦ã¯ `%s -c \"help set\"'ã¨å…¥åŠ›ã—ã¦ãã ã•ã„。\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr "シェル組ã¿è¾¼ã¿ã‚³ãƒžãƒ³ãƒ‰ã«ã¤ã„ã¦ã¯ `%s -c help' ã¨å…¥åŠ›ã—ã¦ãã ã•ã„。\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "ãƒã‚°å ±å‘Šã‚’ã™ã‚‹å ´åˆã¯ `bashbug' コマンドを使用ã—ã¦ãã ã•ã„。\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: 無効ãªæ“作ã§ã™"
@@ -1694,7 +1747,7 @@ msgstr "プログラミングエラー"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr "HTF monitorモードãŒä¸Žãˆã‚‰ã‚Œã¾ã—ãŸ"
+msgstr "HFT monitorモードãŒä¸Žãˆã‚‰ã‚Œã¾ã—ãŸ"
#: siglist.c:207
msgid "HFT monitor mode retracted"
@@ -1717,129 +1770,134 @@ msgstr "ä¸æ˜Žãªã‚·ã‚°ãƒŠãƒ«ç•ªå·"
msgid "Unknown Signal #%d"
msgstr "ä¸æ˜Žãªã‚·ã‚°ãƒŠãƒ«ç•ªå· %d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "誤ã£ãŸä»£å…¥: é–‰ã˜ã‚‹ `%s' ㌠%s ã«å­˜åœ¨ã—ã¾ã›ã‚“"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: リストをé…列è¦ç´ ã«å‰²ã‚Šå½“ã¦ã§ãã¾ã›ã‚“"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "プロセス代入ã§ã¯ãƒ‘イプを作æˆã§ãã¾ã›ã‚“"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "プロセス代入ã§ã¯å­ãƒ—ロセスを作æˆã§ãã¾ã›ã‚“"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "åå‰ä»˜ãパイプ %s を読ã¿è¾¼ã¿ç”¨ã«é–‹ã‘ã¾ã›ã‚“"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "åå‰ä»˜ãパイプ %s を書ãè¾¼ã¿ç”¨ã«é–‹ã‘ã¾ã›ã‚“"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "åå‰ä»˜ãパイプ %s をファイル記述å­(fd) %d ã¨ã—ã¦è¤‡è£½ã§ãã¾ã›ã‚“"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "コマンド代入ã§ã¯ãƒ‘イプを作æˆã§ãã¾ã›ã‚“"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "コマンド代入ã§ã¯å­ãƒ—ロセスを作æˆã§ãã¾ã›ã‚“"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: パイプを fd 1 ã¨ã—ã¦è¤‡è£½ã§ãã¾ã›ã‚“"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: トレースファイル記述å­ã¨ã—ã¦ç„¡åŠ¹ãªå€¤ã§ã™"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: パラメータ㌠null ã¾ãŸã¯è¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: substring expression < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: 誤ã£ãŸä»£å…¥ã§ã™"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: ã“ã®æ–¹æ³•ã§å‰²å½“ã¯ã§ãã¾ã›ã‚“"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr "å°†æ¥ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚·ã‚§ãƒ«ã§ã¯å¼·åˆ¶çš„ã«æ•°å€¤ä»£å…¥ã¨ã—ã¦è©•ä¾¡ã•ã‚Œã¾ã™"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "誤ã£ãŸä»£å…¥: %s ã«é–‰ã˜ã‚‹ \"`\" ãŒã‚ã‚Šã¾ã›ã‚“"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "一致ã—ã¾ã›ã‚“: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "引数ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: æ•´æ•°ã®å¼ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "`)' ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "`)' ãŒäºˆæœŸã•ã‚Œã¾ã™ãŒã€è¦‹ã¤ã‹ã£ãŸã®ã¯ %s ã§ã™"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: å˜é …演算å­ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: 二項演算å­ãŒäºˆæœŸã•ã‚Œã¾ã™"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "`]'ãŒã‚ã‚Šã¾ã›ã‚“"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "無効ãªã‚·ã‚°ãƒŠãƒ«ç•ªå·"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: trap_list[%d] ã«èª¤ã£ãŸå€¤ãŒã‚ã‚Šã¾ã™: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1847,73 +1905,88 @@ msgstr ""
"run_pending_traps: シグナルãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã¯ SIG_DFLã§ã™ã€‚, %d (%s) を自身ã«å†é€ã—"
"ã¾ã™ã€‚"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: 誤ã£ãŸã‚·ã‚°ãƒŠãƒ« %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "`%s' ã®é–¢æ•°å®šç¾©ã‚’インãƒãƒ¼ãƒˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "シェルレベル (%d) ã¯é«˜ã™ãŽã¾ã™ã€‚1ã«å†è¨­å®šã•ã‚Œã¾ã—ãŸ"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: ç¾åœ¨ã®ã‚¹ã‚³ãƒ¼ãƒ—ã¯é–¢æ•°ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: ãƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ (fd) を変数ã«è¨­å®šã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: ç¾åœ¨ã®ã‚¹ã‚³ãƒ¼ãƒ—ã¯é–¢æ•°ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s 㯠null ã® exportstr ã‚’æŒã£ã¦ã„ã¾ã™"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "%2$s ã«å¯¾ã™ã‚‹ exportstr 㧠%1$d ã¯ç„¡åŠ¹ãªæ–‡å­—ã§ã™"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "%s ã«å¯¾ã™ã‚‹ exportstr ã« `=' ãŒã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
"pop_var_context: shell_variables ã®å…ˆé ­ã§ã™ã€‚関数コンテキストã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: global_variables コンテキストã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: shell_variables ã®å…ˆé ­ã§ã™ã€‚一時環境スコープã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: ファイルã¨ã—ã¦é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: トレースファイル記述å­ã¨ã—ã¦ç„¡åŠ¹ãªå€¤ã§ã™"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s ãŒç¯„囲外ã§ã™"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1921,34 +1994,25 @@ msgstr ""
"ライセンス GPLv3+: GNU GPL ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3 ã¾ãŸã¯ãã‚Œä»¥é™ <http://gnu.org/"
"licenses/gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr "This is free software; you are free to change and redistribute it.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "There is NO WARRANTY, to the extent permitted by law.\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"ライセンス GPLv2+: GNU GPL ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2 ã¾ãŸã¯ãã‚Œä»¥é™ <http://gnu.org/"
-"licenses/gpl.html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -1979,8 +2043,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] name [name ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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] [-"
@@ -2004,8 +2069,8 @@ msgstr "caller [expr]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [dir]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2029,13 +2094,12 @@ msgstr "command [-pVv] command [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] name[=value] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2134,12 +2198,12 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [name ...]"
#: builtins.c:144
@@ -2147,9 +2211,8 @@ msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [name[=value] ...] ã¾ãŸã¯ export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [name[=value] ...] ã¾ãŸã¯ readonly -p"
+msgstr "readonly [-aAf] [name[=value] ...] ã¾ãŸã¯ readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2188,7 +2251,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] name [name ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
#: builtins.c:172
@@ -2196,11 +2260,13 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [mode]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
msgstr "wait [pid]"
#: builtins.c:182
@@ -2379,6 +2445,7 @@ msgstr ""
" åå‰ãŒã‚¨ã‚¤ãƒªã‚¢ã‚¹ã«å­˜åœ¨ã—ãªã„å ´åˆã‚’除ã true ã‚’è¿”ã—ã¾ã™ã€‚"
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2412,6 +2479,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2424,20 +2493,20 @@ msgstr ""
" 例: bind '\"\\C-x\\C-r\": re-read-init-file'\n"
" \n"
" オプション:\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"
+" -m keymap ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã®é–“ã®ã‚­ãƒ¼ãƒžãƒƒãƒ—ã¨ã—㦠KEYMAP を使用ã™"
+"る。\n"
+" 利用å¯èƒ½ãªã‚­ãƒ¼ãƒžãƒƒãƒ—㯠emacs, emacs-standard, emacs-"
+"meta,\n"
+" emacs-ctlx, vi, vi-move, vi-command, ãŠã‚ˆã³ vi-"
+"insert。\n"
" -l 関数å一覧を表示ã—ã¾ã™ã€‚\n"
" -P 関数åãŠã‚ˆã³ã‚­ãƒ¼ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚\n"
" -p 関数åã¨ã‚­ãƒ¼ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’入力ã¨ã—ã¦å†åˆ©ç”¨å¯èƒ½ãª\n"
" å½¢å¼ã§ä¸€è¦§è¡¨ç¤ºã—ã¾ã™ã€‚\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"
+" -S マクロを起動ã™ã‚‹ã‚­ãƒ¼ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ãã®å€¤ã‚’一覧表示ã™"
+"ã‚‹\n"
+" -s 入力ã¨ã—ã¦å†åˆ©ç”¨å¯èƒ½ãªå½¢å¼ã§ã€ãƒžã‚¯ãƒ­ã‚’èµ·å‹•ã™ã‚‹\n"
+" キーシーケンスã¨ãã®å€¤ã‚’一覧表示ã™ã‚‹\n"
" -V 変数åã¨å€¤ã®ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚\n"
" -v 変数åã¨å€¤ã‚’入力ã¨ã—ã¦å†åˆ©ç”¨å¯èƒ½ãªå½¢å¼ã§ä¸€è¦§\n"
" 表示ã—ã¾ã™ã€‚\n"
@@ -2452,7 +2521,7 @@ msgstr ""
" bind ã¯è§£é‡ˆã§ããªã„オプションãŒæ¸¡ã•ã‚ŒãŸå ´åˆãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆ\n"
" を除ã 0 ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2471,7 +2540,7 @@ msgstr ""
" 終了ステータス:\n"
" N ãŒ1未満ã®å ´åˆã‚’除ãã€çµ‚了ステータス㯠0 ã§ã™ã€‚"
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2489,7 +2558,7 @@ msgstr ""
" 終了ステータス:\n"
" N ãŒ1未満ã®å ´åˆã‚’除ãã€çµ‚了ステータス㯠0 ã§ã™ã€‚"
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2512,7 +2581,7 @@ msgstr ""
" シェル組ã¿è¾¼ã¿ã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚シェル組ã¿è¾¼ã¿ã‚³ãƒž\n"
" ンドãŒç„¡ã„å ´åˆã¯ false ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2540,7 +2609,7 @@ msgstr ""
" 終了ステータス:\n"
" シェルãŒé–¢æ•°ã‚’実行ã§ããªã„ã‹å¼ EXPR ãŒç„¡åŠ¹ãªå ´åˆã‚’除ã 0 ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2564,30 +2633,38 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; non-zero otherwise."
msgstr ""
-"シェルã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’変更ã—ã¾ã™ã€‚\n"
+"シェルã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’変更ã—ã¾ã™ã€‚\n"
" \n"
-" カレントディレクトリを`ディレクトリ'ã«å¤‰æ›´ã—ã¾ã™ã€‚`ディレクトリ'ã®\n"
-" デフォルト㯠HOME シェル変数ã§ã™ã€‚\n"
+" カレントディレクトリを DIR ã¸å¤‰æ›´ã—ã¾ã™ã€‚DIR ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã¯ HOME シェル\n"
+" 変数ã®å€¤ã§ã™ã€‚\n"
" \n"
-" CDPATH ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå«ã¾ã‚Œã‚‹æ¤œç´¢ãƒ‘スを定義ã—ã¾ã™ã€‚CDPATH ã«ã¯ã‚³ãƒ­ãƒ³"
+" 変数 CDPATH 㯠DIR ã‚’å«ã‚“ã§ã„る検索パスを定義ã—ã¾ã™ã€‚CDPATH ã«ã¯ã‚³ãƒ­ãƒ³"
"(:)\n"
-" ã§åŒºåˆ‡ã‚‰ã‚ŒãŸä»£æ›¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã—ã¾ã™ã€‚\n"
-" NULL ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨åŒç¾©ã§ã™ã€‚ディレクトリãŒ\n"
-" スラッシュ (/) ã‹ã‚‰å§‹ã¾ã‚‹å ´åˆã¯ CDPATH ã¯åˆ©ç”¨ã•ã‚Œã¾ã›ã‚“。\n"
-" \n"
+" ã§åŒºåˆ‡ã‚‰ã‚ŒãŸä»£æ›¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåを指定ã—ã¾ã™ã€‚\n"
+" NULL ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨åŒç¾©ã§ã™ã€‚ DIR ãŒ\n"
+" スラッシュ (/) ã‹ã‚‰å§‹ã¾ã‚‹å ´åˆã¯ CDPATH ã¯ä½¿ç”¨ã•ã‚Œã¾ã›ã‚“。\n"
+"\n"
" ディレクトリãŒè¦‹ã¤ã‹ã‚‰ãªãã€ã‹ã¤ `cdabl_vars' シェルオプションãŒè¨­å®šã•ã‚Œ"
"ã¦\n"
" ã„ã‚‹å ´åˆã€å¼•æ•°ã¯å¤‰æ•°åã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚ãã®å¤‰æ•°ã«å€¤ãŒã‚ã‚‹å ´åˆã€ãã®å€¤"
@@ -2597,14 +2674,18 @@ msgstr ""
" オプション:\n"
" -L\tシンボリックリンクを強制的ã«ãŸã©ã‚Šã¾ã™\n"
" -P\tシンボリックリンクをãŸã©ã‚‰ãšç‰©ç†æ§‹é€ ã‚’利用ã—ã¾ã™\n"
+" -e\t-P オプションãŒä¸Žãˆã‚‰ã‚Œã€ã‹ã¤ã€ç¾åœ¨ã®ä½œæ¥­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒæ­£ã—ã\n"
+" \t決定ã§ããªã„å ´åˆã€çµ‚了ステータス㌠0 以外ã§çµ‚了ã—ã¾ã™\n"
" \n"
" デフォルトã§ã¯ `-L' ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã¨åŒæ§˜ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã‚’ãŸã©ã‚Šã¾"
"ã™\n"
" \n"
" 終了ステータス:\n"
-" ディレクトリを変更ã—ãŸå ´åˆã¯ 0ã€ãã†ã§ãªã‘れ㰠0 以外ã§ã™ã€‚"
+" ディレクトリを変更ã—ãŸå ´åˆã€ãŠã‚ˆã³ -P ãŒä½¿ç”¨ã•ã‚Œã¦ã„る時㫠$PWD ãŒæ­£ã—"
+"ã\n"
+" 設定ã•ã‚ŒãŸå ´åˆã¯ 0ã€ãれ以外㯠0 以外ã®å€¤ã§ã™ã€‚"
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2623,8 +2704,8 @@ msgstr ""
" \n"
" オプション:\n"
" -L\t$PWD ãŒã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®åå‰ã‚’指ã—ã¦ã„ã‚‹å ´åˆã¯ $PWD\n"
-" \tを表示ã—ã¾ã™ã€‚\n"
-" -P\tシンボリックリンクを辿ã£ãŸç‰©ç†çš„ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’表示ã—ã¾ã™ã€‚\n"
+" \tを表示ã™ã‚‹\n"
+" -P\tシンボリックリンクを辿ã£ãŸç‰©ç†çš„ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’表示ã™ã‚‹\n"
" \n"
" デフォルトã§ã¯ `pwd' 㯠`-L' ãŒæŒ‡å®šã•ã‚ŒãŸã‚ˆã†ã«å‹•ä½œã—ã¾ã™ã€‚\n"
" \n"
@@ -2632,7 +2713,7 @@ msgstr ""
" 無効ãªã‚ªãƒ—ションã¾ãŸã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’読ã¿è¾¼ã‚ãªã„å ´åˆã‚’除ã\n"
" 0ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2648,7 +2729,7 @@ msgstr ""
" 終了ステータス:\n"
" 常ã«æˆåŠŸã§ã™ã€‚"
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2660,7 +2741,7 @@ msgstr ""
" 終了ステータス:\n"
" 常ã«æˆåŠŸã§ã™ã€‚"
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2672,7 +2753,7 @@ msgstr ""
" 終了ステータス:\n"
" 常ã«å¤±æ•—ã§ã™ã€‚"
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2697,16 +2778,16 @@ msgstr ""
" ãŒãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã«å­˜åœ¨ã™ã‚‹æ™‚ã«ä½¿ç”¨ã—ã¾ã™ã€‚\n"
" \n"
" オプション:\n"
-" -p\tuse a default value for PATH that is guaranteed to find all of\n"
-" \tthe standard utilities\n"
-" -v\t`type'組ã¿è¾¼ã¿é–¢æ•°ã¨åŒæ§˜ã« COMMAND ã®èª¬æ˜Žã‚’表示ã—ã¾ã™ã€‚\n"
-" -V\tCOMMAND ã«å¯¾ã—ã¦ã‚ˆã‚Šå†—é•·ãªèª¬æ˜Žã‚’表示ã—ã¾ã™ã€‚\n"
+" -p\tå…¨ã¦ã®æ¨™æº–ユーティリティãŒè¦‹ã¤ã‹ã‚‹ã¨ä¿è¨¼ã•ã‚Œã‚‹ PATH ã‚’\n"
+" \tデフォルトã®å€¤ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹\n"
+" -v\t`type'組ã¿è¾¼ã¿é–¢æ•°ã¨åŒæ§˜ã« COMMAND ã®èª¬æ˜Žã‚’表示ã™ã‚‹\n"
+" -V\tCOMMAND ã«å¯¾ã—ã¦ã‚ˆã‚Šå†—é•·ãªèª¬æ˜Žã‚’表示ã™ã‚‹\n"
" \n"
" 終了ステータス:\n"
" COMMAND ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚ã¾ãŸã¯ COMMAND ãŒè¦‹ã¤ã‹ã‚‰ãªã„時ã«å¤±æ•—"
"ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2727,6 +2808,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2742,28 +2824,31 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"変数ã®å€¤ãŠã‚ˆã³å±žæ€§ã‚’設定ã—ã¾ã™ã€‚\n"
" \n"
" 変数を宣言ã—ã€ãã‚Œã«å±žæ€§ã‚’与ãˆã¾ã™ã€‚NAME を指定ã—ãªã„å ´åˆ\n"
-" ã™ã¹ã¦ã®å¤‰æ•°ã«å¯¾ã™ã‚‹å±žæ€§ã¨å€¤ã‚’表示ã—ã¾ã™ã€‚\n"
+" ã™ã¹ã¦ã®å¤‰æ•°ã«é–¢ã™ã‚‹å±žæ€§ã¨å€¤ã‚’表示ã—ã¾ã™ã€‚\n"
" \n"
" オプション:\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"
+" -f\t関数åã¨é–¢æ•°å®šç¾©ã«ãªã‚‹ã‚ˆã†ã«å‹•ä½œã¨è¡¨ç¤ºã‚’制é™ã™ã‚‹\n"
+" -F\t関数åã®ã¿è¡¨ç¤ºã™ã‚‹ã‚ˆã†ã«åˆ¶é™ã™ã‚‹ (デãƒãƒƒã‚°ä¸­ã¯è¡Œç•ªå·ã¨\n"
+" \tソースファイルも追加ã•ã‚Œã‚‹)\n"
+" -g\tシェル関数内ã§ä½¿ç”¨ã•ã‚ŒãŸæ™‚ã«å¤§åŸŸå¤‰æ•°ã‚’作æˆã™ã‚‹ã€‚ãれ以\n"
+" \t外ã®å ´åˆã¯ç„¡è¦–ã•ã‚Œã‚‹\n"
+" -p\tå„ NAME ã®å±žæ€§ã¨å€¤ã‚’表示ã™ã‚‹\n"
" \n"
" 属性を設定ã™ã‚‹ã‚ªãƒ—ション:\n"
-" -a\tNAME をインデックス型é…列ã«ã—ã¾ã™(サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆ)\n"
-" -A\tNAME を連想é…列ã«ã—ã¾ã™(サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆ)\n"
-" -i\tNAME ã«`æ•´æ•°åž‹'ã®å±žæ€§ã‚’設定ã—ã¾ã™ã€‚\n"
-" -l\tNAME ã®è¨­å®šæ™‚ã«å€¤ã‚’å°æ–‡å­—ã«å¤‰æ›ã—ã¾ã™\n"
-" -r\tNAME を読ã¿å–り専用ã«ã—ã¾ã™\n"
-" -t\tNAME ã« `trace' 属性を設定ã—ã¾ã™\n"
-" -u\tNAME 設定時ã«å€¤ã‚’大文字ã«è¨­å®šã—ã¾ã™\n"
-" -x\tNAME をエクスãƒãƒ¼ãƒˆã—ã¾ã™\n"
+" -a\tNAME をインデックス型é…列ã«ã™ã‚‹(サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆ)\n"
+" -A\tNAME を連想é…列ã«ã™ã‚‹(サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆ)\n"
+" -i\tNAME ã«`æ•´æ•°åž‹'ã®å±žæ€§ã‚’設定ã™ã‚‹\n"
+" -l\tNAME ã®è¨­å®šæ™‚ã«å€¤ã‚’å°æ–‡å­—ã«å¤‰æ›ã™ã‚‹\n"
+" -r\tNAME を読ã¿å–り専用ã«ã™ã‚‹\n"
+" -t\tNAME ã« `trace' 属性を設定ã™ã‚‹\n"
+" -u\tNAME 設定時ã«å€¤ã‚’大文字ã«è¨­å®šã™ã‚‹\n"
+" -x\tNAME をエクスãƒãƒ¼ãƒˆã™ã‚‹\n"
" \n"
" `-' ã®ä»£ã‚ã‚Šã« `+' を使用ã™ã‚‹ã¨ä¸Žãˆã‚‰ã‚ŒãŸå±žæ€§ã‚’無効ã«ã—ã¾ã™ã€‚\n"
" \n"
@@ -2772,12 +2857,12 @@ msgstr ""
" \n"
" 関数内ã§ä½¿ç”¨ã•ã‚ŒãŸå ´åˆã¯ `local' コマンドを使用ã—ãŸæ™‚ã¨åŒæ§˜ã« "
"`declare' \n"
-" 㯠NAME をローカル変数ã«ã—ã¾ã™ã€‚\n"
+" 㯠NAME をローカル変数ã«ã—ã¾ã™ã€‚`-g' オプションã¯ã“ã®å‹•ä½œã‚’抑止ã—ã¾ã™ã€‚\n"
" \n"
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚ŒãŸã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2787,7 +2872,8 @@ msgstr ""
" \n"
" æ—§å¼ã§ã™ã€‚`help declare'ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2798,8 +2884,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"ローカル変数を定義ã—ã¾ã™ã€‚\n"
" \n"
@@ -2816,11 +2902,14 @@ msgstr ""
"ã§ããªã„\n"
" å ´åˆã‚’除ãæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2832,6 +2921,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2872,7 +2962,7 @@ msgstr ""
" 終了ステータス:\n"
" 書ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2894,7 +2984,7 @@ msgstr ""
" 終了ステータス:\n"
" 書ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2946,7 +3036,7 @@ msgstr ""
" 終了ステータス:\n"
" NAME ãŒçµ„ã¿è¾¼ã¿é–¢æ•°ã§ã¯ãªã„ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2966,7 +3056,7 @@ msgstr ""
" コマンドã®çµ‚了ステータスを返ã—ã¾ã™ã€‚コマンド㌠null ã®å ´åˆã¯æˆåŠŸã‚’\n"
" è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3043,7 +3133,7 @@ msgstr ""
" オプションãŒè¦‹ã¤ã‹ã£ãŸå ´åˆã«æˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚オプションã®çµ‚ã‚ã‚Š\n"
" ã«åˆ°é”ã™ã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸæ™‚ã«å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3085,7 +3175,7 @@ msgstr ""
" COMMAND ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾"
"ã™ã€‚"
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3097,7 +3187,7 @@ msgstr ""
" 終了ステータス N ã§ã‚·ã‚§ãƒ«ã‚’終了ã—ã¾ã™ã€‚ N を指定ã—ãªã„å ´åˆã¯\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了ステータスã«ãªã‚Šã¾ã™ã€‚"
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3111,7 +3201,7 @@ msgstr ""
"ル\n"
" 内ã§ç„¡ã„å ´åˆã¯ã‚¨ãƒ©ãƒ¼ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3171,7 +3261,7 @@ msgstr ""
"0 \n"
" 以外ã®å€¤ã«ãªã‚Šã¾ã™ã€‚"
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3196,7 +3286,7 @@ msgstr ""
"ãŒ\n"
" 発生ã—ãŸæ™‚ã«å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3220,7 +3310,8 @@ msgstr ""
" 終了ステータス:\n"
" ジョブ制御ãŒæœ‰åŠ¹ã«ãªã£ã¦ã„ãªã„ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3231,7 +3322,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3263,7 +3354,7 @@ msgstr ""
" 終了ステータス:\n"
" NAME ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹ã€ç„¡åŠ¹ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3303,7 +3394,7 @@ msgstr ""
" PATTERN ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹ç„¡åŠ¹ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾"
"ã™ã€‚"
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3369,7 +3460,8 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3378,7 +3470,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3400,22 +3492,22 @@ msgstr ""
"ã™ã€‚\n"
" \n"
" オプション:\n"
-" -l\t通常ã®æƒ…å ±ã«åŠ ãˆã¦ãƒ—ロセスIDを一覧表示ã—ã¾ã™\n"
+" -l\t通常ã®æƒ…å ±ã«åŠ ãˆã¦ãƒ—ロセスIDを一覧表示ã™ã‚‹\n"
" -n\t最後ã®é€šçŸ¥ã‹ã‚‰ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãŒå¤‰æ›´ã«ãªã£ãŸãƒ—ロセスã®ã¿ä¸€è¦§è¡¨ç¤º\n"
-" \tã—ã¾ã™\n"
-" -p\tプロセスIDã®ã¿ã‚’一覧表示ã—ã¾ã™\n"
-" -r\t実行中ã®ã‚¸ãƒ§ãƒ–ã®å‡ºåŠ›ã‚’制é™ã—ã¾ã™\n"
-" -s\tåœæ­¢ä¸­ã®ã‚¸ãƒ§ãƒ–ã®å‡ºåŠ›ã‚’制é™ã—ã¾ã™\n"
+" \tã™ã‚‹\n"
+" -p\tプロセスIDã®ã¿ã‚’一覧表示ã™ã‚‹\n"
+" -r\t実行中ã®ã‚¸ãƒ§ãƒ–ã®å‡ºåŠ›ã‚’制é™ã™ã‚‹\n"
+" -s\tåœæ­¢ä¸­ã®ã‚¸ãƒ§ãƒ–ã®å‡ºåŠ›ã‚’制é™ã™ã‚‹\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"
+" -x ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã€ COMMAND 㯠ARGS ã«ç¾ã‚Œã‚‹ã‚¸ãƒ§ãƒ–をプロセスグルー\n"
+" プリーダーã®ãƒ—ロセス ID ã«ç½®ãæ›ãˆãŸå…¨ã¦ã®ã‚¸ãƒ§ãƒ–指定ã®å¾Œã«å®Ÿè¡Œã•ã‚Œã¾"
+"ã™ã€‚\n"
" \n"
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚\n"
" ã‚‚ã— -x ãŒä½¿ç”¨ã•ã‚ŒãŸå ´åˆã€COMMAND ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚"
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3435,19 +3527,19 @@ msgstr ""
" \n"
" アクティブãªã‚¸ãƒ§ãƒ–ã®ãƒ†ãƒ¼ãƒ–ルã‹ã‚‰å„引数㮠JOBSPEC を削除ã—ã¾ã™ã€‚JOBSPEC ãŒ"
"指定\n"
-" ã•ã‚Œãªã„å ´åˆã€ã‚·ã‚§ãƒ«ãŒç¾åœ¨ã®ã‚¸ãƒ§ãƒ–ã¨è€ƒãˆã¦ã„る物ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
+" ã•ã‚Œãªã„å ´åˆã€ã‚·ã‚§ãƒ«ãŒç¾åœ¨ã®ã‚¸ãƒ§ãƒ–ã¨è€ƒãˆã¦ã„ã‚‹ã‚‚ã®ãŒä½¿ç”¨ã•ã‚Œã¾ã™ã€‚\n"
" \n"
" オプション:\n"
-" -a\tJOBSPEC ãŒä¸Žãˆã‚‰ã‚Œãªã„時ã«å…¨ã¦ã®ã‚¸ãƒ§ãƒ–を削除ã—ã¾ã™\n"
+" -a\tJOBSPEC ãŒä¸Žãˆã‚‰ã‚Œãªã„時ã«å…¨ã¦ã®ã‚¸ãƒ§ãƒ–を削除ã™ã‚‹\n"
" -h\tシェル㌠SIGHUP ã‚’å—ã‘å–ã£ãŸæ™‚ã«å„ JOBSPEC ã®ã‚¸ãƒ§ãƒ–ã«å¯¾ã—㦠"
"SIGHUP \n"
-" \tãŒé€ã‚‰ã‚Œãªã„よã†ã«ãƒžãƒ¼ã‚¯ã—ã¾ã™\n"
-" -r\t実行中ã®ã‚¸ãƒ§ãƒ–ã®ã¿å‰Šé™¤ã—ã¾ã™\n"
+" \tãŒé€ã‚‰ã‚Œãªã„よã†ã«ãƒžãƒ¼ã‚¯ã™ã‚‹\n"
+" -r\t実行中ã®ã‚¸ãƒ§ãƒ–ã®ã¿å‰Šé™¤ã™ã‚‹\n"
" \n"
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ション㋠JOBSPEC ãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3477,10 +3569,10 @@ msgstr ""
" ã¨è¦‹ãªã•ã‚Œã¾ã™ã€‚\n"
" \n"
" オプション:\n"
-" -s sig\tSIG ã¯ã‚·ã‚°ãƒŠãƒ«åã§ã™\n"
-" -n sig\tSIG ã¯ã‚·ã‚°ãƒŠãƒ«ç•ªå·ã§ã™\n"
-" -l\tシグナルåを一覧表示ã—ã¾ã™ã€‚-l ã®å¾Œã«å¼•æ•°ãŒç¶šã„ãŸå ´åˆã€\n"
-" \tãれらã¯ä¸€è¦§è¡¨ç¤ºã•ã‚Œã‚‹ã¹ãシグナル番å·ã§ã‚ã‚‹ã¨è¦‹ãªã•ã‚Œã¾ã™\n"
+" -s sig\tSIG をシグナルåã¨ã™ã‚‹\n"
+" -n sig\tSIG をシグナル番å·ã¨ã™ã‚‹\n"
+" -l\tシグナルåを一覧表示ã™ã‚‹ã€‚-l ã®å¾Œã«å¼•æ•°ãŒç¶šã„ãŸå ´åˆã€\n"
+" \tãれらã¯ä¸€è¦§è¡¨ç¤ºã•ã‚Œã‚‹ã¹ãシグナル番å·ã§ã‚ã‚‹ã¨è¦‹ãªã•ã‚Œã‚‹\n"
" \n"
" Kill ã¯æ¬¡ã®2ã¤ã®ç†ç”±ã‹ã‚‰ã‚·ã‚§ãƒ«çµ„ã¿è¾¼ã¿é–¢æ•°ã§ã™ã€‚一ã¤ã¯ãƒ—ロセスIDã®ä»£ã‚ã‚Š"
"ã«\n"
@@ -3491,8 +3583,7 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3536,15 +3627,12 @@ msgid ""
" Exit Status:\n"
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-"æ•°å¼è¡¨ç¾ã‚’評価ã—ã¾ã™ã€‚\n"
+"æ•°å¼ã‚’評価ã—ã¾ã™ã€‚\n"
" \n"
-" ARG ã‚’æ•°å¼è¡¨ç¾ã¨ã—ã¦è©•ä¾¡ã—ã¾ã™ã€‚評価ã¯å›ºå®šé•·ã®æ•´æ•°ã¨ã—ã¦è©•ä¾¡ã•ã‚Œã€æ¡æº¢ã‚Œ"
-"ã¯\n"
-" 確èªã•ã‚Œã¾ã›ã‚“。ã—ã‹ã—ã€0 ã§å‰²ã‚Šç®—ã‚’ã—ãŸå ´åˆã¯æ•æ‰ã•ã‚Œã‚¨ãƒ©ãƒ¼ã¨ã—ã¦ãƒ•ãƒ©ã‚°"
-"ãŒ\n"
-" ç«‹ã¡ã¾ã™ã€‚下記ã®æ¼”ç®—å­ä¸€è¦§ã¯åŒä¸€å„ªå…ˆé †ä½ã®æ¼”ç®—å­æ¯Žã«ã‚°ãƒ«ãƒ¼ãƒ—化ã•ã‚Œã¦ã„ã¾"
-"ã™ã€‚\n"
-" 優先順ä½ã¯é™é †ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
+" å„ ARG ã‚’æ•°å¼ã¨ã—ã¦è©•ä¾¡ã—ã¾ã™ã€‚評価ã¯å›ºå®šé•·ã®æ•´æ•°ã¨ã—ã¦è¡Œã‚ã‚Œã€æ¡æº¢ã‚Œã¯\n"
+" 検査ã•ã‚Œã¾ã›ã‚“。ã—ã‹ã—ã€0 ã«ã‚ˆã‚‹é™¤ç®—ã¯æ•æ‰ã•ã‚Œã‚¨ãƒ©ãƒ¼ã¨ã—ã¦ãƒ•ãƒ©ã‚°ãŒ\n"
+" ç«‹ã¡ã¾ã™ã€‚次ã®æ¼”ç®—å­ä¸€è¦§ã¯åŒä¸€å„ªå…ˆé †ä½ã®æ¼”ç®—å­ã”ã¨ã«ã‚°ãƒ«ãƒ¼ãƒ—化ã•ã‚Œã¦ã„\n"
+" ã¾ã™ã€‚優先順ä½ã¯é™é †ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
" \n"
" \tid++, id--\t変数ã®å¾Œç½®ã‚¤ãƒ³ã‚¯ãƒªãƒ¡ãƒ³ãƒˆã€ãƒ‡ã‚¯ãƒªãƒ¡ãƒ³ãƒˆ\n"
" \t++id, --id\t変数ã®å‰ç½®ã‚¤ãƒ³ã‚¯ãƒªãƒ¡ãƒ³ãƒˆã€ãƒ‡ã‚¯ãƒªãƒ¡ãƒ³ãƒˆ\n"
@@ -3565,22 +3653,23 @@ msgstr ""
" \t\t\tæ¡ä»¶æ¼”ç®—å­\n"
" \t=, *=, /=, %=,\n"
" \t+=, -=, <<=, >>=,\n"
-" \t&=, ^=, |=\t値ã®å‰²å½“\n"
+" \t&=, ^=, |=\t代入\n"
" \n"
-" シェル変数ã¯ã‚ªãƒšãƒ©ãƒ³ãƒ‰ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚変数åã¯æ•°å¼å†…㧠(強制的ã«\n"
-" 固定長整数ã®) 値ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚変数ã¯æ•°å¼å†…ã§ä½¿ç”¨ã™ã‚‹æ™‚ã«ã¯å¿…ãšã—"
-"ã‚‚\n"
+" シェル変数ã¯è¢«æ¼”ç®—å­ã¨ã—ã¦ä½¿ç”¨ã§ãã¾ã™ã€‚変数åã¯æ•°å¼å†…㧠(強制的ã«å›ºå®š"
+"é•·\n"
+" æ•´æ•°ã®) 値ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚変数ã¯æ•°å¼å†…ã§ä½¿ç”¨ã™ã‚‹æ™‚ã«ã¯å¿…ãšã—ã‚‚\n"
" 整数属性をæŒã£ã¦ã„ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“。\n"
-" \n"
+"\n"
" 演算å­ã¯å„ªå…ˆé †ä½ã®é †ã«è©•ä¾¡ã•ã‚Œã¾ã™ã€‚å°æ‹¬å¼§ã§ããられãŸæ•°å¼ã¯å…ˆã«è©•ä¾¡ã•"
"ã‚Œã€\n"
" 上記ã®å„ªå…ˆé †ä½ã‚’上書ãã™ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。\n"
" \n"
" 終了ステータス:\n"
-" ARG ã®è©•ä¾¡å€¤ãŒ 0 ã®å ´åˆ let 㯠1 ã‚’è¿”ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã¯ let 㯠0 ã‚’"
-"è¿”ã—ã¾ã™ã€‚"
+" ARG ã®æœ€çµ‚çš„ãªè©•ä¾¡å€¤ãŒ 0 ã®å ´åˆ let 㯠1 ã‚’è¿”ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã¯\n"
+" let 㯠0 ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3615,16 +3704,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"標準入力ã‹ã‚‰ä¸€è¡Œèª­ã¿è¾¼ã¿ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰æ¯Žã«åˆ†å‰²ã—ã¾ã™ã€‚\n"
@@ -3673,7 +3765,7 @@ msgstr ""
"ãˆ\n"
" られãŸå ´åˆã‚’除ã0ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3697,7 +3789,7 @@ msgstr ""
"ã‚’\n"
" è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3764,7 +3856,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3788,17 +3880,17 @@ msgstr ""
" を表示ã—ã¾ã™ã€‚\n"
" \n"
" オプション:\n"
-" -a 変数を変更ã¾ãŸã¯å¤‰æ›´ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹ã‚ˆã†ã«ãƒžãƒ¼ã‚¯ã—ã¾ã™ã€‚\n"
-" -b ジョブ終了をå³æ™‚通知ã—ã¾ã™ã€‚\n"
-" -e コマンドã®çµ‚了ステータス㌠0 以外ã®å ´åˆã¯å³æ™‚終了ã—ã¾ã™ã€‚ \n"
-" -f ファイルåç”Ÿæˆ (globbing) を無効ã«ã—ã¾ã™ã€‚\n"
-" -h 検索ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ä½ç½®ã‚’記憶ã—ã¾ã™ã€‚\n"
-" -k All assignment arguments are placed in the environment for a\n"
-" command, not just those that precede the command name.\n"
-" -m ジョブ制御を有効ã«ã—ã¾ã™ã€‚\n"
-" -n コマンドを読ã¿è¾¼ã¿ã¾ã™ãŒå®Ÿè¡Œã—ã¾ã›ã‚“。\n"
+" -a 変数を変更ã¾ãŸã¯å¤‰æ›´ã—ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã™ã‚‹ã‚ˆã†ã«ãƒžãƒ¼ã‚¯ã™ã‚‹\n"
+" -b ジョブ終了をå³æ™‚通知ã™ã‚‹\n"
+" -e コマンドã®çµ‚了ステータス㌠0 以外ã®å ´åˆã¯å³æ™‚終了ã™ã‚‹\n"
+" -f ファイルåç”Ÿæˆ (globbing) を無効ã«ã™ã‚‹\n"
+" -h 検索ã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ä½ç½®ã‚’記憶ã™ã‚‹\n"
+" -k å…¨ã¦ã®å€¤ã‚’設定ã™ã‚‹å¼•æ•°ãŒã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œæ™‚ã®ç’°å¢ƒã«é…ç½®ã•ã‚Œã‚‹ã€‚コ\n"
+" マンドåã®å‰ã«ã‚ã‚‹ã‚‚ã®ã«é™ã‚‰ãªã„\n"
+" -m ジョブ制御を有効ã«ã™ã‚‹\n"
+" -n コマンドを読ã¿è¾¼ã‚€ãŒå®Ÿè¡Œã—ãªã„\n"
" -o option-name\n"
-" option-name ã«å¯¾å¿œã—ãŸå¤‰æ•°ã‚’設定ã—ã¾ã™:\n"
+" option-name ã«å¯¾å¿œã—ãŸå¤‰æ•°ã‚’設定ã™ã‚‹:\n"
" allexport -a ã¨åŒæ§˜\n"
" braceexpand -B ã¨åŒæ§˜\n"
" emacs emacs スタイルã®è¡Œç·¨é›†ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’使用\n"
@@ -3830,38 +3922,40 @@ msgstr ""
" Posix ã¨ä¸€è‡´ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹\n"
" privileged -p ã¨åŒæ§˜\n"
" verbose -v ã¨åŒæ§˜\n"
-" vi vi スタイルã®è¡Œç·¨é›†ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’使用\n"
+" vi vi スタイルã®è¡Œç·¨é›†ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’使用ã™ã‚‹\n"
" xtrace -x ã¨åŒæ§˜\n"
-" -p 実 uid ã¨å®ŸåŠ¹ uid ãŒç•°ãªã‚‹æ™‚ã«å¸¸ã«ã‚ªãƒ³ã«ãªã‚Šã¾ã™ã€‚$ENV ファイル\n"
-" ã®å‡¦ç†ãŠã‚ˆã³ã‚·ã‚§ãƒ«é–¢æ•°ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆãŒç„¡åŠ¹ã«ãªã‚Šã¾ã™ã€‚ã“ã®ã‚ªãƒ—ショ\n"
-" ンをオフã«ã™ã‚‹ã¨å®ŸåŠ¹ uid, gid ãŒå®Ÿ uid, gid ã¨åŒã˜ã«è¨­å®šã•ã‚Œã¾"
-"ã™ã€‚\n"
-" -t 一ã¤ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’読ã¿è¾¼ã¿ã€å®Ÿè¡Œã—ãŸå¾Œã«çµ‚了ã—ã¾ã™ã€‚\n"
-" -u 代入時ã«å¤‰æ•°ã‚’未設定ã«ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã¨ã—ã¦æ‰±ã„ã¾ã™ã€‚\n"
-" -v シェルã®å…¥åŠ›è¡Œã‚’読ã¿è¾¼ã‚“ã ã¨ãŠã‚Šã«è¡¨ç¤ºã—ã¾ã™ã€‚\n"
-" -x 実行ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã¨å¼•æ•°ã‚’ãã®é€šã‚Šã«è¡¨ç¤ºã—ã¾ã™ã€‚\n"
-" -B 中括弧ã®å±•é–‹ã‚’シェルã§è¡Œã„ã¾ã™ã€‚\n"
+" -p 実 uid ã¨å®ŸåŠ¹ uid ãŒç•°ãªã‚‹æ™‚ã«å¸¸ã«ã‚ªãƒ³ã«ãªã‚‹ã€‚$ENV ファイルã®å‡¦ç†\n"
+" ãŠã‚ˆã³ã‚·ã‚§ãƒ«é–¢æ•°ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆãŒç„¡åŠ¹ã«ãªã‚‹ã€‚ã“ã®ã‚ªãƒ—ションをオフã«\n"
+" ã™ã‚‹ã¨å®ŸåŠ¹ uid, gid ãŒå®Ÿ uid, gid ã¨åŒã˜ã«è¨­å®šã•ã‚Œã‚‹\n"
+" -t 一ã¤ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’読ã¿è¾¼ã¿ã€å®Ÿè¡Œã—ãŸå¾Œã«çµ‚了ã™ã‚‹\n"
+" -u 代入時ã«å¤‰æ•°ã‚’未設定ã«ã™ã‚‹ã¨ã‚¨ãƒ©ãƒ¼ã¨ã—ã¦æ‰±ã†\n"
+" -v シェルã®å…¥åŠ›è¡Œã‚’読ã¿è¾¼ã‚“ã é€šã‚Šã«è¡¨ç¤ºã™ã‚‹\n"
+" -x 実行ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã¨å¼•æ•°ã‚’ãã®é€šã‚Šã«è¡¨ç¤ºã™ã‚‹\n"
+" -B 中括弧ã®å±•é–‹ã‚’シェルã§è¡Œã†\n"
" -C 設定ã—ãŸå ´åˆã€ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã§æ—¢å­˜ã®é€šå¸¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’上書ãã™ã‚‹ã“ã¨ã‚’\n"
-" ç¦æ­¢ã—ã¾ã™ã€‚\n"
-" -E 設定ã—ãŸå ´åˆ ERR トラップãŒã‚·ã‚§ãƒ«é–¢æ•°ã«ç¶™æ‰¿ã•ã‚Œã¾ã™ã€‚\n"
-" -H ! スタイルã®ãƒ’ストリ置æ›ã‚’有効ã«ã—ã¾ã™ã€‚ã“ã®ãƒ•ãƒ©ã‚°ã¯å¯¾è©±çš„シェル\n"
-" ã§ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã‚ªãƒ³ã«ãªã£ã¦ã„ã¾ã™ã€‚\n"
+" ç¦æ­¢ã™ã‚‹\n"
+" -E 設定ã—ãŸå ´åˆ ERR トラップãŒã‚·ã‚§ãƒ«é–¢æ•°ã«ç¶™æ‰¿ã•ã‚Œã‚‹\n"
+" -H ! スタイルã®ãƒ’ストリ置æ›ã‚’有効ã«ã™ã‚‹ã€‚ã“ã®ãƒ•ãƒ©ã‚°ã¯å¯¾è©±çš„シェルã§\n"
+" ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã‚ªãƒ³ã«ãªã‚‹\n"
" -P 設定ã—ãŸå ´åˆã€ cd ãªã©ã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’\n"
-" 実行ã—ãŸæ™‚ã«ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã‚’辿りã¾ã›ã‚“。\n"
-" -T 設定ã—ãŸå ´åˆã€ DEBUG トラップãŒã‚·ã‚§ãƒ«é–¢æ•°ã«ç¶™æ‰¿ã•ã‚Œã¾ã™ã€‚\n"
-" - ã“れ以é™ã®å¼•æ•°ã‚’ä½ç½®ãƒ‘ラメーターã¨ã—ã¦å‰²ã‚Šå½“ã¦ã¾ã™ã€‚-x 㨠-v \n"
-" オプションã¯ã‚ªãƒ•ã«ãªã‚Šã¾ã™ã€‚\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"
+" -T 設定ã—ãŸå ´åˆã€ DEBUG トラップãŒã‚·ã‚§ãƒ«é–¢æ•°ã«ç¶™æ‰¿ã•ã‚Œã‚‹\n"
+" -- ã“れ以é™ã®å¼•æ•°ã‚’ä½ç½®ãƒ‘ラメーターã¨ã—ã¦å‰²ã‚Šå½“ã¦ã‚‹ã€‚ã‚‚ã—ã“れ以é™ã®\n"
+" 引数ãŒç„¡ã„å ´åˆã¯ä½ç½®ãƒ‘ラメーターã¯è¨­å®šè§£é™¤ã•ã‚Œã‚‹\n"
+" - ã“れ以é™ã®å¼•æ•°ã‚’ä½ç½®ãƒ‘ラメーターã¨ã—ã¦å‰²ã‚Šå½“ã¦ã‚‹ã€‚-x 㨠-v \n"
+" オプションã¯ã‚ªãƒ•ã«ãªã‚‹\n"
+" \n"
+" - ã®ä»£ã‚ã‚Šã« + を使用ã™ã‚‹ã¨ã€ãƒ•ãƒ©ã‚°ãŒã‚ªãƒ•ã«ãªã‚Šã¾ã™ã€‚フラグã¯ã‚·ã‚§ãƒ«ã®èµ·\n"
+" 動時ã«ã‚‚使用ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ç¾åœ¨ã®è¨­å®šã•ã‚Œã¦ã„るフラグã®çµ„㯠$- ã§\n"
+" 得られã¾ã™ã€‚残り㮠n 個ã®å¼•æ•° ARG ã¯ä½ç½®ãƒ‘ラメータã¨ã—ã¦$1, $2, .. $n\n"
+" ã®é †ã«è¨­å®šã•ã‚Œã¾ã™ã€‚ã‚‚ã—引数 ARG ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã€å…¨ã¦ã®ã‚·ã‚§ãƒ«å¤‰æ•°ãŒ\n"
+" 表示ã•ã‚Œã¾ã™ã€‚\n"
" \n"
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3870,6 +3964,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3898,7 +3994,7 @@ msgstr ""
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ NAME ãŒèª­ã¿å–り専用ã®å ´åˆã‚’除ãæˆåŠŸã‚’è¿”ã—"
"ã¾ã™ã€‚"
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3933,7 +4029,8 @@ msgstr ""
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã€ç„¡åŠ¹ãª NAME ãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸ\n"
" ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3945,7 +4042,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3970,7 +4069,7 @@ msgstr ""
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã€ä¸Žãˆã‚‰ã‚ŒãŸ NAME ãŒç„¡åŠ¹ãªå ´åˆã‚’除ãæˆåŠŸ\n"
" ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3988,7 +4087,7 @@ msgstr ""
" 終了ステータス:\n"
" NãŒè² ã®å€¤ã¾ãŸã¯ $# より大ãã„å ´åˆã‚’除ãæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4012,7 +4111,7 @@ msgstr ""
" FILENAME ã§æœ€å¾Œã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚FILENAME ãŒ\n"
" 読ã¿è¾¼ã‚ãªã‹ã£ãŸå ´åˆã¯å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4031,12 +4130,12 @@ msgstr ""
" オプションãŒç„¡ã„é™ã‚Šãƒ­ã‚°ã‚¤ãƒ³ã‚·ã‚§ãƒ«ã¯ä¸€æ™‚åœæ­¢ã§ãã¾ã›ã‚“。\n"
" \n"
" オプション:\n"
-" -f\tシェルãŒãƒ­ã‚°ã‚¤ãƒ³ã‚·ã‚§ãƒ«ã ã¨ã—ã¦ã‚‚強制的ã«ä¸€æ™‚åœæ­¢ã—ã¾ã™\n"
+" -f\tシェルãŒãƒ­ã‚°ã‚¤ãƒ³ã‚·ã‚§ãƒ«ã ã¨ã—ã¦ã‚‚強制的ã«ä¸€æ™‚åœæ­¢ã™ã‚‹\n"
" \n"
" 終了ステータス:\n"
" ジョブ制御ãŒæœ‰åŠ¹ã§ãªã„ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4102,6 +4201,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4121,70 +4222,70 @@ msgstr ""
" \n"
" å¼ EXPR ã®çµæžœã«å¿œã˜ã¦ 0 (真ã€true) ã¾ãŸã¯ 1 (å½ã€false) ã‚’è¿”ã—ã¾ã™ã€‚\n"
" å¼ã¯å˜é …演算å­ã¾ãŸã¯äºŒé …演算å­ã§ã™ã€‚å˜é …演算å­ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹\n"
-" を評価ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚文字列演算å­ã«åŠ ãˆã¦æ•°å€¤æ¯”較演算å­ã‚‚\n"
+" を評価ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚文字列演算å­ã¨æ•°å€¤æ¯”較演算å­ã‚‚加ãˆã¦\n"
" 存在ã—ã¾ã™ã€‚\n"
" \n"
" ファイル演算å­:\n"
" \n"
-" -a FILE ファイルãŒå­˜åœ¨ã™ã‚‹æ™‚ã«çœŸ(true)。\n"
-" -b FILE ファイルãŒãƒ–ロック特殊デãƒã‚¤ã‚¹ã®æ™‚ã«çœŸ(true)。\n"
-" -c FILE ファイルãŒã‚­ãƒ£ãƒ©ã‚¯ã‚¿ç‰¹æ®Šãƒ‡ãƒã‚¤ã‚¹ã®æ™‚ã«çœŸ(true)。\n"
-" -d FILE ファイルãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®æ™‚ã«çœŸ(true)。\n"
-" -e FILE ファイルãŒå­˜åœ¨ã™ã‚‹æ™‚ã«çœŸ(true)。\n"
-" -f FILE ファイルãŒå­˜åœ¨ã—ã€é€šå¸¸ãƒ•ã‚¡ã‚¤ãƒ«ã®æ™‚ã«çœŸ(true)。\n"
-" -g FILE ファイル㫠setgid ãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)。\n"
-" -h FILE ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)。\n"
-" -L FILE ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)。\n"
-" -k FILE ファイル㫠sticky ビットãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)。\n"
-" -p FILE ファイルãŒåå‰ä»˜ãパイプã®æ™‚ã«çœŸ(true)。\n"
-" -r FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦èª­ã¿è¾¼ã¿å¯èƒ½ãªæ™‚ã«çœŸ(true)。\n"
-" -s FILE ファイルãŒå­˜åœ¨ã—ã€ã‹ã¤ç©ºãƒ•ã‚¡ã‚¤ãƒ«ã§ãªã„å ´åˆã«çœŸ(true)。\n"
-" -S FILE ファイルãŒã‚½ã‚±ãƒƒãƒˆã®å ´åˆã«çœŸ(true)。\n"
-" -t FD FD(ファイル識別å­) ãŒç«¯æœ«ã«é–‹ã„ã¦ã„る時ã«çœŸ(true)。\n"
-" -u FILE ファイル㫠setuid ãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)。\n"
-" -w FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦æ›¸ãè¾¼ã¿å¯èƒ½ãªæ™‚ã«çœŸ(true)。\n"
-" -x FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦å®Ÿè¡Œå¯èƒ½ãªæ™‚ã«çœŸ(true)。\n"
-" -O FILE ファイルをユーザãŒå®ŸåŠ¹çš„ã«æ‰€æœ‰ã•ã‚Œã¦ã„る時ã«çœŸ(true)。\n"
+" -a FILE ファイルãŒå­˜åœ¨ã™ã‚‹æ™‚ã«çœŸ(true)\n"
+" -b FILE ファイルãŒãƒ–ロック特殊デãƒã‚¤ã‚¹ã®æ™‚ã«çœŸ(true)\n"
+" -c FILE ファイルãŒã‚­ãƒ£ãƒ©ã‚¯ã‚¿ç‰¹æ®Šãƒ‡ãƒã‚¤ã‚¹ã®æ™‚ã«çœŸ(true)\n"
+" -d FILE ファイルãŒãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®æ™‚ã«çœŸ(true)\n"
+" -e FILE ファイルãŒå­˜åœ¨ã™ã‚‹æ™‚ã«çœŸ(true)\n"
+" -f FILE ファイルãŒå­˜åœ¨ã—ã€é€šå¸¸ãƒ•ã‚¡ã‚¤ãƒ«ã®æ™‚ã«çœŸ(true)\n"
+" -g FILE ファイル㫠setgid ãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)\n"
+" -h FILE ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)\n"
+" -L FILE ファイルãŒã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)\n"
+" -k FILE ファイル㫠sticky ビットãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)\n"
+" -p FILE ファイルãŒåå‰ä»˜ãパイプã®æ™‚ã«çœŸ(true)\n"
+" -r FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦èª­ã¿è¾¼ã¿å¯èƒ½ãªæ™‚ã«çœŸ(true)\n"
+" -s FILE ファイルãŒå­˜åœ¨ã—ã€ã‹ã¤ç©ºãƒ•ã‚¡ã‚¤ãƒ«ã§ãªã„å ´åˆã«çœŸ(true)\n"
+" -S FILE ファイルãŒã‚½ã‚±ãƒƒãƒˆã®å ´åˆã«çœŸ(true)\n"
+" -t FD FD(ファイル識別å­) ãŒç«¯æœ«ã«é–‹ã„ã¦ã„る時ã«çœŸ(true)\n"
+" -u FILE ファイル㫠setuid ãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)\n"
+" -w FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦æ›¸ãè¾¼ã¿å¯èƒ½ãªæ™‚ã«çœŸ(true)\n"
+" -x FILE ファイルãŒãƒ¦ãƒ¼ã‚¶ã«å¯¾ã—ã¦å®Ÿè¡Œå¯èƒ½ãªæ™‚ã«çœŸ(true)\n"
+" -O FILE ファイルをユーザãŒå®ŸåŠ¹çš„ã«æ‰€æœ‰ã•ã‚Œã¦ã„る時ã«çœŸ(true)\n"
" -G FILE ファイルã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ãƒ¦ãƒ¼ã‚¶ãŒå®ŸåŠ¹çš„ã«æ‰€å±žã—ã¦ã„る時ã«çœŸ"
-"(true)。\n"
+"(true)\n"
" -N FILE ファイルを最後ã«èª­ã¿è¾¼ã‚“ã ä»¥é™ã«å¤‰æ›´ã•ã‚Œã¦ã„る時ã«çœŸ"
-"(true)。\n"
+"(true)\n"
" \n"
" FILE1 -nt FILE2 file1 ㌠file2 より新ã—ã„時(更新時間ã«åŸºã¥ã)ã«çœŸ"
-"(true)。\n"
+"(true)\n"
" \n"
" \n"
-" FILE1 -ot FILE2 file1 ㌠file2 よりå¤ã„時ã«çœŸ(true)。\n"
+" FILE1 -ot FILE2 file1 ㌠file2 よりå¤ã„時ã«çœŸ(true)\n"
" \n"
-" FILE1 -ef FILE2 file1 ㌠file2 ã«å¯¾ã™ã‚‹ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)。\n"
+" FILE1 -ef FILE2 file1 ㌠file2 ã«å¯¾ã™ã‚‹ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã®æ™‚ã«çœŸ(true)\n"
" \n"
" 文字列演算å­:\n"
" \n"
-" -z STRING 文字列ãŒç©ºã®æ™‚ã«çœŸ(true)。\n"
+" -z STRING 文字列ãŒç©ºã®æ™‚ã«çœŸ(true)\n"
" \n"
" -n STRING\n"
-" STRING 文字列ãŒç©ºã§ãªã„時ã«çœŸ(true)。\n"
+" STRING 文字列ãŒç©ºã§ãªã„時ã«çœŸ(true)\n"
" \n"
" STRING1 = STRING2\n"
-" 文字列ãŒåŒä¸€ã®æ™‚ã«çœŸ(true)。\n"
+" 文字列ãŒåŒä¸€ã®æ™‚ã«çœŸ(true)\n"
" STRING1 != STRING2\n"
-" 文字列ãŒåŒä¸€ã§ãªã„時ã«çœŸ(true)。\n"
+" 文字列ãŒåŒä¸€ã§ãªã„時ã«çœŸ(true)\n"
" STRING1 < STRING2\n"
-" 辞書順㧠STRING1 ㌠STRING2 よりå‰ã®æ™‚ã«çœŸ(true)。\n"
+" 辞書順㧠STRING1 ㌠STRING2 よりå‰ã®æ™‚ã«çœŸ(true)\n"
" STRING1 > STRING2\n"
-" 辞書順㧠STRING1 ㌠STRING2 より後ã®æ™‚ã«çœŸ(true)。\n"
+" 辞書順㧠STRING1 ㌠STRING2 より後ã®æ™‚ã«çœŸ(true)\n"
" \n"
" ãã®ä»–演算å­:\n"
" \n"
-" -o OPTION シェルオプション OPTION ãŒæœ‰åŠ¹ãªæ™‚ã«çœŸ(true)。\n"
-" ! EXPR å¼ expr ãŒå½(fales)ã®æ™‚ã«çœŸ(true)。\n"
-" EXPR1 -a EXPR2 å¼ expr1 ãŠã‚ˆã³ expr2 ã®ä¸¡æ–¹ã¨ã‚‚真(true)ã®æ™‚ã«çœŸ"
-"(true)。\n"
+" -o OPTION シェルオプション OPTION ãŒæœ‰åŠ¹ãªæ™‚ã«çœŸ(true)\n"
+" -v VAR シェル変数 VAR ãŒè¨­å®šã•ã‚Œã¦ã„る時ã«çœŸ(true)\n"
+" ! EXPR å¼ expr ãŒå½(fales)ã®æ™‚ã«çœŸ(true)\n"
+" EXPR1 -a EXPR2 å¼ expr1 ãŠã‚ˆã³ expr2 ã®ä¸¡æ–¹ã¨ã‚‚真(true)ã®æ™‚ã«çœŸ(true)\n"
" EXPR1 -o EXPR2 å¼ expr1 ã¾ãŸã¯ expr2 ã®ã„ãšã‚Œã‹ãŒçœŸ(true)ã®æ™‚ã«çœŸ"
-"(true)。\n"
+"(true)\n"
" \n"
-" arg1 OP arg2 数値比較演算を行ã„ã¾ã™ã€‚OP 㯠-eq, -ne, -lt, -le, -gt,\n"
-" ã¾ãŸã¯ -ge ã®ã„ãšã‚Œã‹ã§ã™ã€‚\n"
+" arg1 OP arg2 数値比較演算を行ãªã†ã€‚OP 㯠-eq, -ne, -lt, -le, -gt,\n"
+" ã¾ãŸã¯ -ge ã®ã„ãšã‚Œã‹ã¨ãªã‚‹ã€‚\n"
" \n"
" 数値演算二項演算å­ã¯ ARG1 㨠ARG2 ã®é–¢ä¿‚ãŒãã‚Œãžã‚Œã€ç­‰ã—ã„(-eq)ã€\n"
" ç­‰ã—ããªã„(-ne)ã€ã‚ˆã‚Šå°ã•ã„(-lt)ã€ä»¥ä¸‹(-le)ã€ã‚ˆã‚Šå¤§ãã„(-gt)ã€ã¾ãŸã¯\n"
@@ -4195,7 +4296,7 @@ msgstr ""
"ã¾ãŸã¯\n"
" 引数ãŒç„¡åŠ¹ãªå ´åˆã«å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4208,7 +4309,7 @@ msgstr ""
"致\n"
" ã™ã‚‹ã‚ˆã†ã«æ–‡å­—`]'を与ãˆãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“。"
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4228,8 +4329,7 @@ msgstr ""
" 終了ステータス:\n"
" 常ã«æˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4287,8 +4387,14 @@ msgstr ""
" \n"
" ã‚‚ã— SIGNAL_SPEC ㌠EXIT (0) ã®å ´åˆã€ARG ãŒã‚·ã‚§ãƒ«ã®çµ‚了時ã«å®Ÿè¡Œã•ã‚Œã¾"
"ã™ã€‚\n"
-" ã‚‚ã— SIGNAL_SPEC ㌠DEBUGã®å ´åˆ ARG ã¯å˜ã«æ¯Žå›žã‚³ãƒžãƒ³ãƒ‰ã®å‰ã«å®Ÿè¡Œã•ã‚Œã¾"
+" ã‚‚ã— SIGNAL_SPEC ㌠DEBUG ã®å ´åˆ ARG ã¯å˜ã«æ¯Žå›žã‚³ãƒžãƒ³ãƒ‰ã®å‰ã«å®Ÿè¡Œã•ã‚Œã¾"
"ã™ã€‚\n"
+" ã‚‚ã— SIGNAL_SPEC ㌠RETURN ã®å ´åˆ ARG ã¯ã‚·ã‚§ãƒ«é–¢æ•°ã¾ãŸã¯ . ã‹ source ã«\n"
+" よã£ã¦å®Ÿè¡Œã•ã‚ŒãŸã‚¹ã‚¯ãƒªãƒ—トãŒçµ‚了ã—ãŸæ™‚ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚ SIGNAL_SPEC ㌠"
+"ERR\n"
+" ã®å ´åˆã€-e オプションãŒæœ‰åŠ¹ãªå ´åˆã«ã‚·ã‚§ãƒ«ãŒçµ‚了ã™ã‚‹ã‚ˆã†ãªã‚³ãƒžãƒ³ãƒ‰å¤±æ•—ãŒ"
+"発\n"
+" 生ã™ã‚‹ãŸã³ã«å®Ÿè¡Œã•ã‚Œã¾ã™ã€‚\n"
" \n"
" ã‚‚ã—引数ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã€ trap ã¯å„シグナルã«å‰²ã‚Šå½“ã¦ã‚‰ã‚ŒãŸã‚³ãƒžãƒ³ãƒ‰"
"ã®\n"
@@ -4305,7 +4411,7 @@ msgstr ""
" 終了ステータス:\n"
" SIGSPEC ãŒç„¡åŠ¹ã‹ã€ç„¡åŠ¹ãªã‚ªãƒ—ションを与ãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4363,7 +4469,8 @@ msgstr ""
"åˆ\n"
" ã¯å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4392,6 +4499,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4447,7 +4557,7 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4481,21 +4591,25 @@ msgstr ""
" 終了ステータス:\n"
" MODE ãŒç„¡åŠ¹ã‹ã€ç„¡åŠ¹ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"ジョブã®å®Ÿè¡Œå®Œäº†ã‚’å¾…ã¡ã€çµ‚了ステータスを返ã—ã¾ã™ã€‚\n"
" \n"
@@ -4508,18 +4622,20 @@ msgstr ""
" ID ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚IDãŒç„¡åŠ¹ã§ã‚ã‚‹ã‹ã€ç„¡åŠ¹ãªã‚ªãƒ—ションãŒ\n"
" 与ãˆã‚‰ã‚ŒãŸå ´åˆã«ã¯å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"プロセスã®å®Ÿè¡Œå®Œäº†ã‚’å¾…ã¡ã€çµ‚了ステータスを返ã—ã¾ã™ã€‚\n"
" \n"
@@ -4531,7 +4647,7 @@ msgstr ""
" IDã®çµ‚了ステータスを返ã—ã¾ã™ã€‚IDãŒç„¡åŠ¹ã‹ã€ç„¡åŠ¹ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚ŒãŸ\n"
" å ´åˆã¯ã‚¨ãƒ©ãƒ¼ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4552,7 +4668,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4582,7 +4698,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4601,24 +4717,23 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"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"
+"一覧ã‹ã‚‰é …目をé¸æŠžã—ã€COMMANDS を実行ã—ã¾ã™ã€‚\n"
+" \n"
+" WORDS ãŒå±•é–‹ã•ã‚Œã€é …ç›®ã®ä¸€è¦§ãŒç”Ÿæˆã•ã‚Œã¾ã™ã€‚展開ã•ã‚ŒãŸé …ç›®\n"
+" ã®çµ„ã¯æ¨™æº–エラー出力ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚å„é …ç›®ã®å‰ã«ã¯æ•°å€¤ãŒä»˜ã‘\n"
+" られã¾ã™ã€‚`in WORDS' ãŒå­˜åœ¨ã—ãªã„å ´åˆã€`in \"$@\"' ã¨ä»®å®šã•ã‚Œã¾ã™ã€‚\n"
+" 次㫠PS3 プロンプトãŒè¡¨ç¤ºã•ã‚Œã€æ¨™æº–入力ã‹ã‚‰ 1 行読ã¿è¾¼ã¾ã‚Œã¾ã™ã€‚\n"
+" è¡ŒãŒè¡¨ç¤ºã—ãŸé …ç›®ã®ä¸€ã¤ã«é–¢é€£ã¥ã‘られãŸæ•°å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ãŸå ´åˆã€\n"
+" NAME ã«é …ç›®ãŒè¨­å®šã•ã‚Œã¾ã™ã€‚空行ã®å ´åˆã€ãƒ—ロンプトãŒå†åº¦è¡¨ç¤ºã•ã‚Œ\n"
+" ã¾ã™ã€‚ファイル終了(EOF) ãŒèª­ã¿è¾¼ã¾ã‚ŒãŸå ´åˆã€ã‚³ãƒžãƒ³ãƒ‰ãŒçµ‚了ã—ã¾ã™ã€‚\n"
+" ãれ以外ã®å ´åˆã¯ NAME ã« null ãŒè¨­å®šã•ã‚Œã¾ã™ã€‚読ã¿è¾¼ã‚“ã è¡Œã¯å¤‰æ•°\n"
+" REPLY ã«ä¿å­˜ã•ã‚Œã¾ã™ã€‚è¡ŒãŒèª­ã¿è¾¼ã¾ã‚Œã‚‹ã”ã¨ã« break コマンドãŒå®Ÿ\n"
+" è¡Œã•ã‚Œã‚‹ã¾ã§ COMMANDS ãŒç¹°ã‚Šè¿”ã—実行ã•ã‚Œã¾ã™ã€‚\n"
" \n"
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4646,7 +4761,7 @@ msgstr ""
" 終了ステータス:\n"
" PIPELINE ã®æˆ»ã‚Šå€¤ãŒçµ‚了ステータスã¨ãªã‚Šã¾ã™ã€‚"
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4665,7 +4780,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4690,8 +4805,7 @@ msgstr ""
" `if COMMANDS' を実行ã—ã¾ã™ã€‚ã“ã®çµ‚了ステータス㌠0 ã®å ´åˆã€`then "
"COMMANDS'\n"
" を実行ã—ã¾ã™ã€‚ãã†ã§ãªã„å ´åˆã¯ã€å„ `elif COMMANDS' を順番ã«å®Ÿè¡Œã—ã€ãã®\n"
-" 終了ステータス㌠0 ã®ã®å ´åˆã«ã€é–¢é€£ã—㟠`then COMMANDS' を実行ã—ã€if æ–‡"
-"ãŒ\n"
+" 終了ステータス㌠0 ã®å ´åˆã«ã€é–¢é€£ã—㟠`then COMMANDS' を実行ã—ã€if æ–‡ãŒ\n"
" 完了ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã€ `else COMMANDS' ãŒå­˜åœ¨ã™ã‚‹å ´åˆã«ã¯å®Ÿè¡Œã•ã‚Œ\n"
" ã¾ã™ã€‚文全体ã®çµ‚了ステータスã¯ã€æœ€å¾Œã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了ステータス"
"ã‹ã€\n"
@@ -4700,7 +4814,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚"
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4718,7 +4832,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4736,7 +4850,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4758,7 +4872,7 @@ msgstr ""
" 終了ステータス:\n"
" COMMAND ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚"
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4783,7 +4897,7 @@ msgstr ""
" 終了ステータス:\n"
" NAME ãŒèª­ã¿å–り専用ã§ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4801,7 +4915,7 @@ msgstr ""
" 終了ステータス:\n"
" 最後ã«å®Ÿè¡Œã—ãŸã‚³ãƒžãƒ³ãƒ‰ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4824,7 +4938,7 @@ msgstr ""
" 終了ステータス:\n"
" å†é–‹ã•ã‚ŒãŸã‚¸ãƒ§ãƒ–ã®çµ‚了ステータスを返ã—ã¾ã™ã€‚"
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4842,7 +4956,7 @@ msgstr ""
" 終了ステータス:\n"
" EXPRESSION ã®è©•ä¾¡å€¤ãŒ 0 ã®å ´åˆã¯ 1ã€ãれ以外㯠0 ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4897,7 +5011,7 @@ msgstr ""
" 終了ステータス:\n"
" EXPRESSION ã®å€¤ã«åŸºã¥ã„㦠0 ã¾ãŸã¯ 1 ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4998,7 +5112,7 @@ msgstr ""
" HISTIGNORE\tヒストリ一覧ã«ä¿å­˜ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’決ã‚る時ã«ä½¿ç”¨ã•ã‚Œã‚‹\n"
" \t\tコロン (:) ã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒ‘ターンã®ä¸€è¦§ã€‚\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5057,7 +5171,7 @@ msgstr ""
" 無効ãªå¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå¤‰æ›´ãŒå¤±æ•—ã—ãªã„é™ã‚ŠæˆåŠŸã‚’\n"
" è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5108,7 +5222,7 @@ msgstr ""
" 無効ãªå¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå¤‰æ›´ãŒå¤±æ•—ã—ãªã„é™ã‚ŠæˆåŠŸã‚’\n"
" è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5160,7 +5274,7 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5196,7 +5310,7 @@ msgstr ""
" OPTNAME ãŒæœ‰åŠ¹ãªå ´åˆã¯æˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆ\n"
" ã¾ãŸã¯ OPTNAME ãŒç„¡åŠ¹ãªå ´åˆã¯å¤±æ•—ã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5214,9 +5328,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5224,6 +5338,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5246,14 +5366,16 @@ msgstr ""
"ã¯\n"
" 次ã®æ–‡å­—を解釈ã—ã¾ã™ã€‚\n"
" \n"
-" %b\t対応ã™ã‚‹å¼•æ•°ã®ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—文字を展開ã—ã¾ã™\n"
-" %q\tシェル入力ã¨ã—ã¦å¼•æ•°ã‚’クオートã—ã¾ã™\n"
+" %b\t対応ã™ã‚‹å¼•æ•°ã®ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—文字を展開ã™ã‚‹\n"
+" %q\tシェル入力ã¨ã—ã¦å¼•æ•°ã‚’クオートã™ã‚‹\n"
+" %(fmt)T FMT ã‚’ strftime(3) 用ã®æ›¸å¼æ–‡å­—列ã¨ã—ã¦æ—¥ä»˜ã¨æ™‚é–“ã®æ–‡å­—列を出"
+"力ã™ã‚‹\n"
" \n"
" 終了ステータス:\n"
" 無効ãªå¼•æ•°ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã€æ›¸ãè¾¼ã¿ã€ä»£å…¥ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—"
"ã¾ã™ã€‚"
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5288,13 +5410,13 @@ msgstr ""
" \n"
" \n"
" オプション:\n"
-" -p\t既存ã®è£œå®ŒæŒ‡å®šã‚’å†åˆ©ç”¨å¯èƒ½ãªå½¢å¼ã§è¡¨ç¤ºã—ã¾ã™\n"
+" -p\t既存ã®è£œå®ŒæŒ‡å®šã‚’å†åˆ©ç”¨å¯èƒ½ãªå½¢å¼ã§è¡¨ç¤ºã™ã‚‹\n"
" -r\t補完指定 NAME を削除ã—ã¾ã™ã€‚NAME ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã€å…¨ã¦ã®\n"
-" \t補完指定を削除ã—ã¾ã™ã€‚\n"
+" \t補完指定を削除ã™ã‚‹\n"
" -D\t補完指定ãŒå®šç¾©ã•ã‚Œã¦ã„ãªã„時ã®ã‚³ãƒžãƒ³ãƒ‰ã«å¯¾ã™ã‚‹ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®\n"
-" \t補完ã¨å‹•ä½œã‚’é©ç”¨ã—ã¾ã™\n"
+" \t補完ã¨å‹•ä½œã‚’é©ç”¨ã™ã‚‹\n"
" -E\t\"空\" コマンドã«å¯¾ã™ã‚‹è£œå®Œ (空行ã«å¯¾ã™ã‚‹è£œå®Œã®è©¦ã¿) ã¨å‹•ä½œ\n"
-" \tã‚’é©ç”¨ã—ã¾ã™\n"
+" \tã‚’é©ç”¨ã™ã‚‹\n"
" \n"
" 補完ãŒè©¦ã¿ã‚‰ã‚ŒãŸæ™‚ã€ä¸Šè¨˜ã‚ªãƒ—ションã®ã†ã¡å¤§æ–‡å­—ã®ã‚ªãƒ—ションã®å‹•ä½œãŒ\n"
" è¡Œã‚ã‚Œã¾ã™ã€‚-D オプション㯠-E オプションより優先ã•ã‚Œã¾ã™ã€‚\n"
@@ -5302,7 +5424,7 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5316,7 +5438,7 @@ msgid ""
msgstr ""
"オプションã«åŸºã¥ã„ãŸè£œå®Œå€™è£œã‚’表示ã—ã¾ã™ã€‚\n"
" \n"
-" シェル関数ã®ä¸­ã§è£œå®Œå€™è£œã‚’を生æˆã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã‚ˆã†ã«æ„図ã•ã‚Œã¦ã„ã¾"
+" シェル関数ã®ä¸­ã§è£œå®Œå€™è£œã‚’生æˆã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã‚ˆã†ã«æ„図ã•ã‚Œã¦ã„ã¾"
"ã™ã€‚\n"
" オプション引数 WORD ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã€WORD ã«å¯¾ã—ã¦ä¸€è‡´ã—ãŸå€™è£œãŒç”Ÿæˆ\n"
" ã•ã‚Œã¾ã™ã€‚\n"
@@ -5324,8 +5446,7 @@ msgstr ""
" 終了ステータス:\n"
" 無効ãªã‚ªãƒ—ションãŒä¸Žãˆã‚‰ã‚Œã‚‹ã‹ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãªã„é™ã‚ŠæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5362,9 +5483,9 @@ msgstr ""
" ã¾ãŸã¯ç¾åœ¨ã®è£œå®Œã«å¯¾ã™ã‚‹è£œå®Œã‚ªãƒ—ションを表示ã—ã¾ã™ã€‚\n"
" \n"
" オプション:\n"
-" \t-o option\tå„ NAME ã«å¯¾ã—ã¦è£œå®Œã‚ªãƒ—ション OPTION を設定ã—ã¾ã™\n"
-" \t-D\t\t\"デフォルト\" コマンド補完オプションを変更ã—ã¾ã™\n"
-" \t-E\t\t\"空\" コマンド補完オプションを変更ã—ã¾ã™\n"
+" \t-o option\tå„ NAME ã«å¯¾ã—ã¦è£œå®Œã‚ªãƒ—ション OPTION を設定ã™ã‚‹\n"
+" \t-D\t\t\"デフォルト\" コマンド補完オプションを変更ã™ã‚‹\n"
+" \t-E\t\t\"空\" コマンド補完オプションを変更ã™ã‚‹\n"
" \n"
" `-o' ã®ä»£ã‚ã‚Šã« `+o' を使用ã™ã‚‹ã¨æŒ‡å®šã—ãŸã‚ªãƒ—ションをオフã«ã—ã¾ã™ã€‚\n"
" \n"
@@ -5381,8 +5502,7 @@ msgstr ""
"åˆ\n"
" を除ãã€æˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5431,22 +5551,23 @@ msgstr ""
" ã§ã™ã€‚\n"
" \n"
" オプション:\n"
-" -n count\t最大 COUNT 行をコピーã—ã¾ã™ã€‚COUNT ㌠0 ã®å ´åˆã€å…¨ã¦ã®è¡Œã‚’コ"
-"ピーã—ã¾ã™ã€‚\n"
-" -O origin\té…列ã®é–‹å§‹ç•ªå·ã‚’ ORIGIN ã«ã—ã¾ã™ã€‚デフォルト㯠0 ã§ã™ã€‚\n"
-" -s count \t最åˆã® COUNT è¡Œã®èª­ã¿è¾¼ã¿ã‚’破棄ã—ã¾ã™ã€‚\n"
-" -t\t\tå„行を読ã¿è¾¼ã‚“ã æ™‚ã«æœ€å¾Œã®æ”¹è¡Œã‚’削除ã—ã¾ã™ã€‚\n"
-" -u fd\t\t標準入力ã§ã¯ãªããƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ FD ã‹ã‚‰è¡Œã‚’読ã¿è¾¼ã¿ã¾ã™\n"
-" -C callback\tQUANTUM 行を読ã¿è¾¼ã‚€æ¯Žã« CALLBACK を評価ã—ã¾ã™ã€‚\n"
-" -c quantum\tCALLBACK を何行読ã¿è¾¼ã‚€æ¯Žã«å®Ÿè¡Œã™ã‚‹ã‹ã‚’指定ã—ã¾ã™ã€‚\n"
+" -n count\t最大 COUNT 行をコピーã™ã‚‹ã€‚COUNT ㌠0 ã®å ´åˆã€å…¨ã¦ã®è¡Œã‚’コ"
+"ピーã™ã‚‹\n"
+" -O origin\té…列ã®é–‹å§‹ç•ªå·ã‚’ ORIGIN ã«ã™ã‚‹ã€‚デフォルト㯠0\n"
+" -s count \t最åˆã® COUNT è¡Œã®èª­ã¿è¾¼ã¿ã‚’破棄ã™ã‚‹\n"
+" -t\t\tå„行を読ã¿è¾¼ã‚“ã æ™‚ã«æœ€å¾Œã®æ”¹è¡Œã‚’削除ã™ã‚‹\n"
+" -u fd\t\t標準入力ã§ã¯ãªããƒ•ã‚¡ã‚¤ãƒ«è¨˜è¿°å­ FD ã‹ã‚‰è¡Œã‚’読ã¿è¾¼ã‚€\n"
+" -C callback\tQUANTUM 行を読ã¿è¾¼ã‚€æ¯Žã« CALLBACK を評価ã™ã‚‹\n"
+" -c quantum\tCALLBACK を何行読ã¿è¾¼ã‚€æ¯Žã«å®Ÿè¡Œã™ã‚‹ã‹ã‚’指定ã™ã‚‹\n"
" \n"
" 引数:\n"
" ARRAY\t\tデータをä¿å­˜ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹é…列変数å\n"
" \n"
" ã‚‚ã— -c ãŒæŒ‡å®šã•ã‚Œãšã« -C ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã® quantum 㯠5000 "
"ã§ã™ã€‚\n"
-" CALLBACK ãŒè©•ä¾¡ã•ã‚ŒãŸæ™‚ã€è¿½åŠ ã®å¼•æ•°ã¨ã—ã¦é…列ã®æ¬¡è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒæ¸¡ã•"
-"ã‚Œã¾ã™ã€‚\n"
+" CALLBACK ãŒè©•ä¾¡ã•ã‚ŒãŸæ™‚ã€ä»£å…¥ã•ã‚Œã‚‹é…列ã®æ¬¡è¦ç´ ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã€è¦ç´ ã«ä»£"
+"å…¥ã•\n"
+" れる行ãŒè¿½åŠ ã®å¼•æ•°ã¨ã—ã¦æ¸¡ã•ã‚Œã¾ã™ã€‚\n"
" \n"
" 明示的ã«é–‹å§‹ç•ªå·ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã€mapfile ã¯ä»£å…¥å‰ã« ARRAY を空ã«ã—ã¾"
"ã™ã€‚\n"
@@ -5456,7 +5577,7 @@ msgstr ""
"列ã§ç„¡ã„\n"
" å ´åˆã‚’除ãæˆåŠŸã‚’è¿”ã—ã¾ã™ã€‚"
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5466,6 +5587,16 @@ msgstr ""
" \n"
" `mapfile'ã®åˆ¥åã§ã™ã€‚"
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "ライセンス GPLv2+: GNU GPL ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2 ã¾ãŸã¯ãã‚Œä»¥é™ <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
@@ -5487,191 +5618,3 @@ msgstr ""
#~ " EXPR ã®å€¤ã¯ç¾åœ¨ã®ãƒ•ãƒ¬ãƒ¼ãƒ ã«æˆ»ã‚‹ã¾ã§ã«ä½•å›žãƒ•ãƒ¬ãƒ¼ãƒ ãŒå‘¼ã³å‡ºã•ã‚Œã¦ã„ã‚‹ã‹"
#~ "ã‚’\n"
#~ " æ„味ã—ã¾ã™ã€‚最上ä½ã®ãƒ•ãƒ¬ãƒ¼ãƒ ã¯ 0 ã§ã™ã€‚"
-
-#~ 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
index ea188361..aceaa712 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 058c614e..9f53f350 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,100 +7,116 @@ msgid ""
msgstr ""
"Project-Id-Version: bash-4.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2009-03-25 16:49+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"Language: lt\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"
+"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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "blogas masyvo indeksas"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%s: netaisyklingas veiksmo pavadinimas"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: nepavyko priskirti prie neskaitinio indekso"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: nepavyko sukurti: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: nepavyko rasti keymapo komandai"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: pirmas ne tarpo simbolis nėra „\"“"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "nÄ—ra uždaranÄiojo „%c“ %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: trūksta dvitaškio skirtuko"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "„%s“: netaisyklingas keymap'o pavadinimas"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "eilutės redagavimas neįgalintas"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%s“: netaisyklingas keymap'o pavadinimas"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: nepavyko perskaityti: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "„%s“: nepavyko atjungti (unbind)"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "„%s“: nežinomas funkcijos pavadinimas"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s nėra priskirtas jokiam klavišui.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s gali būti iškviestas su "
@@ -113,7 +129,7 @@ msgstr ""
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "prasminga tik „for“, „while“ arba „until“ cikle"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
#, fuzzy
msgid ""
"Returns the context of the current subroutine call.\n"
@@ -121,11 +137,15 @@ msgid ""
" Without EXPR, returns "
msgstr "Grąžina esamos procedūros kontekstą."
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME nenustatytas"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "per daug argumentų"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD nenustatytas"
@@ -134,7 +154,7 @@ msgstr "OLDPWD nenustatytas"
msgid "line %d: "
msgstr "eilutÄ— %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "įspėjimas: "
@@ -144,11 +164,7 @@ msgstr "įspėjimas: "
msgid "%s: usage: "
msgstr "%s: naudojimas: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "per daug argumentų"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: parametrui reikia argumento"
@@ -163,7 +179,7 @@ msgstr "%s: reikia skaitinio argumento"
msgid "%s: not found"
msgstr "%s: nerasta"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: negalimas parametras"
@@ -173,7 +189,7 @@ msgstr "%s: negalimas parametras"
msgid "%s: invalid option name"
msgstr "%s: netaisyklingas parametro vardas"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': netaisyklingas identifikatorius"
@@ -186,7 +202,7 @@ msgstr "netaisyklingas aÅ¡tuonetainis skaiÄius"
msgid "invalid hex number"
msgstr "netaisyklingas Å¡eÅ¡ioliktainis skaiÄius"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "netaisyklingas skaiÄius"
@@ -200,7 +216,7 @@ msgstr "%s: netaisyklinga signalo specifikacija"
msgid "`%s': not a pid or valid job spec"
msgstr "„%s“: ne pid'as ar taisyklinga darbo specifikacija"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: kintamasis tik skaitymui"
@@ -272,48 +288,58 @@ msgstr "%s: klaida skaitant esamÄ… aplankÄ…: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: dviprasmis darbo aprašymas"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: netaisyklingas veiksmo pavadinimas"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: nÄ—ra baigimo specifikacijos"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "įspėjimas: parametras -C gali neveikti taip, kaip tikitės"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "galima naudoti tik funkcijoje"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "negalima naudoti „-f“ funkcijoms kurti"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funkcija tik skaitymui"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: negalima tokiu būdu sunaikinti masyvų kintamųjų"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -342,24 +368,23 @@ msgstr "%s: nedinamiškai įkrauta"
msgid "%s: cannot delete: %s"
msgstr "%s: nepavyko ištrinti: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: aplankas"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ne paprastas failas"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: failas per didelis"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: negalima vykdyti dvejetainių failų"
@@ -392,11 +417,11 @@ msgstr "Yra veikianÄių darbų.\n"
msgid "no command found"
msgstr "komandų nerasta"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "istorijos specifikacija"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: nepavyko atverti laikinojo failo: %s"
@@ -442,7 +467,7 @@ 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
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -450,12 +475,12 @@ msgstr ""
"nÄ—ra žinyno temų, atitinkanÄių „%s“. Bandykite „help help“, „man -k %s“ arba "
"„info %s“."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: nepavyko atverti: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -484,7 +509,7 @@ msgstr "negalima naudoti daugiau negu vieno parametro iš -anrw"
msgid "history position"
msgstr "istorijos pozicija"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: istorijos išskleidimas nesėkmingas"
@@ -498,16 +523,16 @@ msgstr "%s: istorijos išskleidimas nesėkmingas"
msgid "no other options allowed with `-x'"
msgstr "su „-x“ neleidžiama naudoti kitų parametrų"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argumentai turi būti procesų arba darbų ID"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Nežinoma klaida"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "tikėtasi išraiškos"
@@ -516,65 +541,70 @@ msgstr "tikėtasi išraiškos"
msgid "%s: not an indexed array"
msgstr "%s: ne masyvo kintamasis"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: netaisyklinga failo deskriptoriaus specifikacija"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: netaisyklingas failo deskriptorius: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%s: nesamas parametras"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%s: nesamas parametras"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: netaisyklingas veiksmo pavadinimas"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: ne masyvo kintamasis"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%s“: trūksta formato simbolio"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: klaidinga laiko ribos (timeout) specifikacija"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%c“: netaisyklingas formato simbolis"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "įspėjimas: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x"
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, fuzzy, c-format
msgid "missing unicode digit for \\%c"
msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x"
@@ -583,20 +613,25 @@ msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x"
msgid "no other directory"
msgstr "nÄ—ra kito aplanko"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: netaisyklingas limito argumentas"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<nÄ—ra esamo aplanko>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
#, fuzzy
msgid "directory stack index"
msgstr "rekursijos steko atvirkštinis perpildymas"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -620,7 +655,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -645,7 +680,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -666,40 +701,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: klaidinga laiko ribos (timeout) specifikacija"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "skaitymo klaida: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr "galima grįžti (return) tik iš funkcijos ar scenarijaus"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "negalima kartu ištrinti funkcijos ir kintamojo"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: nepavyko ištrinti"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: nepavyko ištrinti: %s tik skaitymui"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: ne masyvo kintamasis"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ne funkcija"
@@ -708,11 +743,11 @@ msgstr "%s: ne funkcija"
msgid "shift count"
msgstr "postÅ«mių skaiÄius"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "negalima aplinkos nuostatos vienu metu įjungti ir išjungti"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: netaisyklingas aplinkos nuostatos pavadinimas"
@@ -754,7 +789,7 @@ msgstr "%s yra funkcija\n"
msgid "%s is a shell builtin\n"
msgstr "%s yra aplinkos vidinÄ— komanda\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s yra %s\n"
@@ -764,45 +799,45 @@ msgstr "%s yra %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s yra hešuotas (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: netaisyklingas limito argumentas"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': bloga komanda"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: nepavyko gauti limito: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "riba"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: nepavyko pakeisti limito: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "aÅ¡tuntainis skaiÄius"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "„%c“: netaisyklingas simbolinės veiksenos operatorius"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%c“: netaisyklingas simbolinės veiksenos simbolis"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " eilutÄ— "
@@ -816,300 +851,315 @@ msgstr "paskutinÄ— komanda: %s\n"
msgid "Aborting..."
msgstr "Nutraukiama..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "nežinoma komandos klaida"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "blogas komandos tipas"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "blogas jungtukas"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "blogas Å¡uolis"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: nepriskirtas kintamasis"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\alaukiant įvedimo baigėsi laikas: automatiškai atsijungta\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "nepavyko peradresuoti standartinio įvedimo iš /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: „%c“: netaisyklingas formato simbolis"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "rašymo klaida: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: komanda nerasta"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, fuzzy, c-format
msgid "%s: %s"
msgstr "%s yra %s\n"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: blogas interpretatorius"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: negalima vykdyti dvejetainių failų"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s yra aplinkos vidinÄ— komanda\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "nepavyko dublikuoti fd %d į fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "viršytas išraiškos rekursijos lygis"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "rekursijos steko atvirkštinis perpildymas"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "sintaksės klaida išraiškoje"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "bandymas priskirti ne kintamajam"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "dalyba iš 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "klaida: bloga expassign leksema"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "sąlygos išraiškoje tikėtasi „:“"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "eksponentė mažesnis už 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
"po prieš-didinimo ar prieš-mažinimo operatoriaus tikėtasi identifikatoriaus"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "Trūksta „)“"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "sintaksÄ—s klaida: tikÄ—tasi operando"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "sintaksÄ—s klaida: netaisyklingas aritmetinis operatorius"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "netaisyklingas aritmetinis pagrindas"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "per didelė pagrindo reikšmė"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: išraiškos klaida\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: nepavyko pasiekti aukštesnių aplankų"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, fuzzy, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "nepavyko dublikuoti fd %d į fd %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "trinamas sustabdytas darbas %d procesų grupėje %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: tokio pid nÄ—ra"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signalas %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Atlikta"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr ""
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr ""
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr ""
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Atlikta(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr ""
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Nežinoma būsena"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr ""
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr ""
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: nėra proceso %ld įrašo"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: darbas %d yra sustabdytas"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: darbas užsibaigė"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: darbas %d jau fone"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: %d eilutÄ—: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr ""
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr ""
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr ""
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr ""
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "šioje aplinkoje nėra darbų valdymo"
@@ -1131,54 +1181,54 @@ msgstr ""
msgid "unknown"
msgstr "nežinoma"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: blokas iš laisvų blokų sąrašo sugadintas"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: iškviestas su jau atlaisvintu bloku"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: iškviestas su nerezervuotu bloku"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: atvirkštinis perpildymas (underflow); mh_nbytes už ribos"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: pradžios ir pabaigos blokų (chunk) dydžiai skiriasi"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: iškviestas su nerezervuotu bloku"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: atvirkštinis perpildymas (underflow); mh_nbytes už ribos"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: pradžios ir pabaigos blokų (chunk) dydžiai skiriasi"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "netaisyklingas pagrindas"
@@ -1201,35 +1251,35 @@ msgstr "%s: netaisyklingas tinklo kelias"
msgid "network operations not supported"
msgstr "tinklo operacijos nepalaikomos"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: %s:%d: nepavyko išskirti %lu baitų"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: %s:%d: nepavyko išskirti %lu baitų"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Turite laiškų $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Turite naujų laiškų $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Paštas %s perskaitytas\n"
@@ -1247,118 +1297,118 @@ msgstr "sintaksės klaida: netikėtas „;“"
msgid "syntax error: `((%s))'"
msgstr "sintaksės klaida: „((%s))“"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: blogas instrukcijos tipas %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: nukreipimo instrukcija „%d“ už ribų"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "netikėta failo pabaiga ieškant atitinkamo „%c“"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "netikėta failo pabaiga ieškant „]]“"
-#: parse.y:4030
+#: parse.y:4175
#, 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:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "sintaksės klaida sąlygos išraiškoje"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "netikėta leksema „%s“, tikėtasi „)“"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "tikėtasi „)“"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "netikėtas argumentas „%s“ sąlygos unariniam operatoriui"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "netikÄ—tas argumentas sÄ…lygos unariniam operatoriui"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "netikėta leksema „%s“, tikėtasi sąlyginio binarinio operatoriaus"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "tikÄ—tasi sÄ…lygos binarinio operatoriaus"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "netikėtas argumentas „%s“ sąlygos binariniam operatoriui"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "netikÄ—tas argumentas sÄ…lygos binariniam operatoriui"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "netikėta leksema „%c“ sąlygos komandoje"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "netikėta leksema „%s“ sąlygos komandoje"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "netikÄ—ta leksema %d sÄ…lygos komandoje"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "sintaksės klaida prie netikėtos leksemos: „%s“"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "sintaksės klaida prie „%s“"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "sintaksÄ—s klaida: netikÄ—ta failo pabaiga"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "sintaksÄ—s klaida"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Naudokite „%s“, jei norite išeiti iš ap.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "netikėta failo pabaiga ieškant atitinkamo „)“"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: funkcija „%s“ nerasta"
@@ -1368,90 +1418,90 @@ msgstr "completion: funkcija „%s“ nerasta"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: blogas jungtukas  „%d“"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, fuzzy, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "%d: netaisyklingas failo deskriptorius: %s"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: „%c“: netaisyklingas formato simbolis"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "failo deskriptorius už ribų"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: ambiguous redirect"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: negalima perraÅ¡yti egzistuojanÄio failo"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: apribota: negalima peradresuoti išvedimo"
-#: redir.c:192
+#: redir.c:191
#, fuzzy, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s"
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: negalima priskirti sąrašo masyvo elementui"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/serveris/prievadas nepalaikoma be tinklo"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "nukreipimo klaida: nepavyko dublikuoti fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "nepavyko rasti /tmp, sukurkite šį aplanką!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp turi būti taisyklingas aplanko pavadinimas"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: netaisyklingas parametras"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Neturiu vardo!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, versija %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1460,42 +1510,43 @@ msgstr ""
"Naudojimas:\t%s [GNU ilgas parametras] [parametras] ...\n"
"\t%s [GNU ilgas parametras] [parametras] scenarijaus-failas ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU ilgi parametrai:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Aplinkos parametrai:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s arba -o nustatymas\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Naudokite komandą „bashbug“ klaidoms pranešti.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: netaisyklinga operacija"
@@ -1670,200 +1721,220 @@ msgstr "Nežinomas signalas #"
msgid "Unknown Signal #%d"
msgstr "Nežinomas signalas #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "blogas keitinys: trūksta „%s“ %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: negalima priskirti sąrašo masyvo elementui"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr ""
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr ""
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr ""
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr ""
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr ""
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%d: netaisyklingas failo deskriptorius: %s"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametras tuÅ¡Äias arba nenustatytas"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: posekio išraiška < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: blogas keitinys"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: negalima tokiu būdu priskirti"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "blogas keitinys: trūksta „%s“ %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "nėra atitikmenų: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "tikÄ—tasi argumento"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: tikėtasi skaitinės išraiškos"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "tikėtasi „)“"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "tikėtasi „)“, rasta %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: tikÄ—tasi unarinio operatoriaus"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: tikÄ—tasi binarinio operatoriaus"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "trūksta „]“"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "netaisyklingas signalo numeris"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: blogas signalas %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "klaida importuojant funkcijos apibrėžimą „%s“"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "aplinkos lygmuo (%d) per aukštas, nustatoma į 1"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%d: netaisyklingas failo deskriptorius: %s"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: negalima priskirti sąrašo masyvo elementui"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: parametras tuÅ¡Äias arba nenustatytas"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "netaisyklingas simbolis %d %s exportstr'e"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "%s exportstr'e trūksta „=“"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: nÄ—ra global_variables konteksto"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: nepavyko atverti: %s"
-#: variables.c:4791
+#: variables.c:5262
#, fuzzy, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%d: netaisyklingas failo deskriptorius: %s"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s išėjo už ribų"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr "AutorinÄ—s teisÄ—s (C) 2009 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1871,36 +1942,27 @@ msgstr ""
"Licencija GPLv3+: GNU GPL versija 3 arba naujesnÄ— <http://gnu.org/licenses/"
"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, versija %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
"Tai yra laisva programinė įranga; jūs esate laisvas keisti ir platinti ją.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr "Nėra JOKIOS GARANTIJOS, kiek tik tą leidžia įstatymas.\n"
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr "AutorinÄ—s teisÄ—s (C) 2009 Free Software Foundation, Inc."
-#: version2.c:87
-#, fuzzy, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licencija GPLv3+: GNU GPL versija 3 arba naujesnÄ— <http://gnu.org/licenses/"
-"gpl.html>\n"
-
#: xmalloc.c:91
#, fuzzy, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
@@ -1931,7 +1993,7 @@ msgstr "unalias [-a] pavadinimas [pavadinimas ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1953,7 +2015,7 @@ msgstr "caller [išraiška]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-L|-P] [aplankas]"
#: builtins.c:66
@@ -1978,7 +2040,7 @@ msgstr "command [-pVv] komanda [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-aAfFilrtux] [-p] [pavadinimas[=reikšmė] ...]"
#: builtins.c:78
@@ -2086,7 +2148,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o nustatymas] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [pavadinimas ...]"
#: builtins.c:144
@@ -2135,7 +2198,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] pavadinimas [pavadinimas ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [riba]"
#: builtins.c:172
@@ -2143,12 +2207,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [režimas]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2340,12 +2406,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2356,7 +2424,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
#, fuzzy
msgid ""
"Resume for, while, or until loops.\n"
@@ -2370,7 +2438,7 @@ msgstr ""
"Tęsti kitą FOR, WHILE arba UNTIL ciklo iteraciją.\n"
" Jei N nurodytas, tęsti ciklą, esantį N lygmenų virš esamo."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2384,7 +2452,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
#, fuzzy
msgid ""
"Return the context of the current subroutine call.\n"
@@ -2409,7 +2477,7 @@ msgstr ""
" IŠRAIŠKOS reikšmė nurodo, per kiek kvietimo freimų grįžti nuo\n"
" esamo; viršutinis freimas yra 0."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2433,13 +2501,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2458,7 +2534,7 @@ msgstr ""
" užuot sekus simbolines nuorodas; parametras -L nurodo, kad turi būti\n"
" sekama simbolinÄ—mis nuorodomis."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2474,7 +2550,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
#, fuzzy
msgid ""
"Null command.\n"
@@ -2485,7 +2561,7 @@ msgid ""
" Always succeeds."
msgstr "Jokio efekto; komanda nieko nedaro. Grąžinamas klaidos kodas 0."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2493,7 +2569,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
#, fuzzy
msgid ""
"Return an unsuccessful result.\n"
@@ -2502,7 +2578,7 @@ msgid ""
" Always fails."
msgstr "Grąžinti nesėkmingą rezultatą."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2521,7 +2597,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2541,6 +2617,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2556,17 +2633,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2577,15 +2655,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2597,6 +2677,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2612,7 +2693,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2625,7 +2706,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2652,7 +2733,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2664,7 +2745,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2705,7 +2786,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2728,7 +2809,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
#, fuzzy
msgid ""
"Exit the shell.\n"
@@ -2740,7 +2821,7 @@ msgstr ""
"nustatomas\n"
" paskutinÄ—s vykdytos komandos klaidos kodas."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2749,7 +2830,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2779,7 +2860,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2791,7 +2872,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2805,7 +2886,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2816,7 +2897,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2829,7 +2910,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2851,7 +2932,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2885,7 +2966,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2894,7 +2975,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2909,7 +2990,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2926,7 +3007,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2948,7 +3029,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -2993,7 +3074,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3028,20 +3109,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3053,7 +3137,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3119,7 +3203,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3138,7 +3222,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3147,6 +3231,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3158,7 +3244,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3177,7 +3263,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3189,7 +3275,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3197,7 +3285,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3208,7 +3296,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
#, fuzzy
msgid ""
"Execute commands from a file in the current shell.\n"
@@ -3227,7 +3315,7 @@ msgstr ""
" Jei nurodyta ARGUMENTŲ, jie tampa poziciniais parametrais iškvietus\n"
" FAILÄ„."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3241,7 +3329,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3306,6 +3394,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3322,7 +3412,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3330,7 +3420,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3342,7 +3432,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3386,7 +3476,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3416,7 +3506,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3445,6 +3535,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3460,7 +3553,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3478,38 +3571,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3522,7 +3619,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3539,7 +3636,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3559,7 +3656,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3575,7 +3672,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3586,7 +3683,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3607,7 +3704,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
#, fuzzy
msgid ""
"Execute commands as long as a test succeeds.\n"
@@ -3621,7 +3718,7 @@ msgstr ""
"Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
" „while“ komandų grąžina klaidos kodą 0."
-#: builtins.c:1608
+#: builtins.c:1632
#, fuzzy
msgid ""
"Execute commands as long as a test does not succeed.\n"
@@ -3635,7 +3732,7 @@ msgstr ""
"Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
" „until“ komandų grąžina klaidos kodą, nelygų 0."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3648,7 +3745,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3662,7 +3759,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
#, fuzzy
msgid ""
"Group commands as a unit.\n"
@@ -3676,7 +3773,7 @@ msgstr ""
"Vykdyti eilę komandų grupėje. Tai yra vienas iš būdų nukreipti\n"
" visos eilės komandų įvedimą/išvedimą."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3690,7 +3787,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3701,7 +3798,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3729,7 +3826,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3783,7 +3880,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3814,7 +3911,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3841,7 +3938,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3870,7 +3967,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3891,7 +3988,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -3909,9 +4006,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3919,6 +4016,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -3936,7 +4039,7 @@ msgstr ""
" Jei pateiktas parametras -v, išvedimas įrašomas į aplinkos kintamąjį\n"
" KINT, užuot spausdinus į standartinį išvedimą."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3963,7 +4066,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
#, fuzzy
msgid ""
"Display possible completions depending on the options.\n"
@@ -3981,7 +4084,7 @@ msgstr ""
" Jei pateiktas nebūtinasis ŽODŽIO argumentas, išvedami įrašai,\n"
" atitinkantys ŽODĮ."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4012,7 +4115,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4053,13 +4156,28 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+#, fuzzy
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "AutorinÄ—s teisÄ—s (C) 2009 Free Software Foundation, Inc."
+
+#, fuzzy
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licencija GPLv3+: GNU GPL versija 3 arba naujesnÄ— <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr "xrealloc: nepavyko išskirti %lu baitų (išskirta %lu baitų)"
diff --git a/po/nl.gmo b/po/nl.gmo
index 2530a125..93aa543f 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 0f87ec65..86a20260 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,11 +1,13 @@
-# Dutch translations for bash.
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Dutch translations for GNU bash.
+# Copyright (C) 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
#
+# "Sokol gore na nebu."
+#
# De vertaling van de ruim 70 laatste hulpteksten (65%) in dit bestand
# volgt niet helemaal het normale stramien van "onbepaalde wijs voor
# elke functieomschrijvende tekst". De hoofddocstring gebruikt wel
-# de onbepaalde wijs, maar het begin de gedetailleerdere omschrijving
+# de onbepaalde wijs, maar het begin van de gedetailleerde omschrijving
# stapt over op de derde persoon, om daarna een passieve vorm te
# gebruiken voor de rest van de preciseringen en uitzonderingen.
#
@@ -13,110 +15,126 @@
# 'Stopped' wordt consequent vertaald met "Gepauzeerd", omdat "Gestopt"
# te veel zou doen denken aan "Beëindigd", terwijl het alleen maar gaat
# om stilstaan en niet om finale opgave. Een alternatieve vertaling
-# zou "Stilstand" kunnen zijn.
+# zou dus "Stilstand" kunnen zijn.
#
-# Erick Branderhorst <branderh@iaehv.nl>, 1996.
-# Julie Vermeersch <julie@lambda1.be>, 2004.
+# Benno Schulenberg <benno@vertaalt.nl>, 2006, 2008, 2010, 2011, 2013, 2014.
# Erwin Poeze <erwin.poeze@gmail.com>, 2009.
-# Benno Schulenberg <benno@vertaalt.nl>, 2006, 2008, 2010.
+# Julie Vermeersch <julie@lambda1.be>, 2004.
+# Erick Branderhorst <branderh@iaehv.nl>, 1996.
msgid ""
msgstr ""
-"Project-Id-Version: bash-4.1\n"
+"Project-Id-Version: bash-4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-04-20 21:06+0200\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-30 21:31+0100\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "ongeldige array-index"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: kan geïndexeerd array niet omzetten naar associatief array"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: ongeldige sleutel voor associatief array"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: niet-numerieke index is niet mogelijk"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, 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:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "Kan %s niet aanmaken: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command(): kan voor opdracht geen toetsenkaart vinden"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: eerste teken dat geen witruimte is is niet '\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "geen sluit-'%c' in %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: ontbrekend scheidingsteken (dubbele punt)"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "accoladevervanging: onvoldoende geheugen beschikbaar voor %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "accoladevervanging: onvoldoende geheugen beschikbaar voor %d elementen"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "accoladevervanging: onvoldoende geheugen beschikbaar voor '%s'"
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "'%s': ongeldige naam voor alias"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "regelbewerking is niet ingeschakeld"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "'%s': ongeldige naam voor toetsenkaart"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "Kan %s niet lezen: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "Kan %s niet losmaken"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "'%s': onbekende functienaam"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s is aan geen enkele toets gebonden\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s kan worden aangeroepen via "
@@ -129,7 +147,7 @@ msgstr "herhalingsaantal"
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
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -139,11 +157,15 @@ msgstr ""
"\n"
" Zonder EXPR, resulteert "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME is niet gedefinieerd"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "te veel argumenten"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD is niet gedefinieerd"
@@ -152,7 +174,7 @@ msgstr "OLDPWD is niet gedefinieerd"
msgid "line %d: "
msgstr "regel %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "waarschuwing: "
@@ -162,11 +184,7 @@ msgstr "waarschuwing: "
msgid "%s: usage: "
msgstr "%s: Gebruik: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "te veel argumenten"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: optie vereist een argument"
@@ -181,7 +199,7 @@ msgstr "%s: vereist een numeriek argument"
msgid "%s: not found"
msgstr "%s: niet gevonden"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: ongeldige optie"
@@ -191,7 +209,7 @@ msgstr "%s: ongeldige optie"
msgid "%s: invalid option name"
msgstr "%s: ongeldige optienaam"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "'%s': is geen geldige naam"
@@ -204,7 +222,7 @@ msgstr "ongeldig octaal getal"
msgid "invalid hex number"
msgstr "ongeldig hexadecimaal getal"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "ongeldig getal"
@@ -218,7 +236,7 @@ msgstr "%s: ongeldige signaalaanduiding"
msgid "`%s': not a pid or valid job spec"
msgstr "'%s': is geen PID en geen geldige taakaanduiding"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: is een alleen-lezen variabele"
@@ -290,48 +308,58 @@ msgstr "%s: fout tijdens bepalen van huidige map: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: taakaanduiding is niet eenduidig"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: ongeldige actienaam"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: is geen completerings-aanduiding"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "waarschuwing: optie -F functioneert mogelijk niet zoals verwacht"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "waarschuwing: optie -C functioneert mogelijk niet zoals verwacht"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "er wordt momenteel geen completeringsfunctie uitgevoerd"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "kan alleen worden gebruikt binnen een functie"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: verwijzingsvariabele mag geen array zijn"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: zelfverwijzing door naamsverwijzingsvariabele is niet toegestaan"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "'-f' kan niet gebruikt worden om een functie te definiëren"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: is een alleen-lezen functie"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: kan array-variabelen niet op deze manier verwijderen"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: kan associatief array niet omzetten naar geïndexeerd array"
@@ -360,27 +388,26 @@ msgstr "%s: is niet dynamisch geladen"
msgid "%s: cannot delete: %s"
msgstr "Kan %s niet verwijderen: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: is een map"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: is geen normaal bestand"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: bestand is te groot"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
-msgstr "%s: kan een binair bestand niet uitvoeren"
+msgstr "%s: kan binair bestand niet uitvoeren"
#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
@@ -410,11 +437,11 @@ msgstr "Er zijn nog draaiende taken.\n"
msgid "no command found"
msgstr "geen opdracht gevonden"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "geschiedenisaanduiding"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "Kan tijdelijk bestand '%s' niet openen: %s"
@@ -459,7 +486,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Shell-opdrachten die overeenkomen met '"
msgstr[1] "Shell-opdrachten die overeenkomen met '"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -467,12 +494,12 @@ msgstr ""
"Er is geen hulptekst voor '%s'.\n"
"Probeer 'help help' of 'man -k %s' of 'info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "Kan %s niet openen: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -502,7 +529,7 @@ msgstr "slechts één van '-a', '-n', '-r' of '-w' is mogelijk"
msgid "history position"
msgstr "geschiedenispositie"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: geschiedenisexpansie is mislukt"
@@ -516,16 +543,16 @@ msgstr "%s: 'inlib' is mislukt"
msgid "no other options allowed with `-x'"
msgstr "bij '-x' zijn geen andere opties toegestaan"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argumenten moeten proces-IDs of taak-IDs zijn"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Onbekende fout"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "uitdrukking werd verwacht"
@@ -534,87 +561,97 @@ msgstr "uitdrukking werd verwacht"
msgid "%s: not an indexed array"
msgstr "%s: is geen geïndexeerd array"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: ongeldige aanduiding van bestandsdescriptor"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: ongeldige bestandsdescriptor: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: ongeldig regelaantal"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, 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:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: ongeldige hoeveelheid"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "lege naam van array-variabele"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "ondersteuning van arrayvariabelen is vereist"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "'%s': ontbrekend opmaakteken"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: ongeldige aanduiding van tijdslimiet"
+msgstr "'%c': ongeldige aanduiding van tijdsopmaak"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "'%c': ongeldig opmaakteken"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "waarschuwing: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "probleem bij ontleden van opmaak: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "ontbrekend hexadecimaal cijfer bij \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "ontbrekend hexadecimaal cijfer bij \\x"
+msgstr "ontbrekend Unicode-cijfer bij \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "geen andere map"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: ongeldig argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<geen huidige map>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "mappenstapel is leeg"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "mappenstapelindex"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -654,7 +691,7 @@ msgstr ""
" -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
+#: builtins/pushd.def:711
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"
@@ -691,12 +728,12 @@ msgstr ""
" 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"
+" MAP Voegt deze map toe aan de top van de mappenstapel, en maakt het\n"
+" de nieuwe werkmap.\n"
"\n"
" De opdracht 'dirs' toont de huidige mappenstapel."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -734,42 +771,42 @@ msgstr ""
"\n"
" De opdracht 'dirs' toont de huidige mappenstapel."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: ongeldige aanduiding van tijdslimiet"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "leesfout: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "kan niet tegelijk een functie en een variabele verwijderen"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "Kan '%s' niet verwijderen"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "Kan '%s' niet verwijderen: %s is alleen-lezen"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: is geen array-variabele"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: is geen functie"
@@ -778,11 +815,11 @@ msgstr "%s: is geen functie"
msgid "shift count"
msgstr "shift-aantal"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "kan shell-opties niet tegelijk inschakelen en uitschakelen"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: ongeldige shell-optienaam"
@@ -824,7 +861,7 @@ msgstr "%s is een functie\n"
msgid "%s is a shell builtin\n"
msgstr "%s is een ingebouwde shell-functie\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s is %s\n"
@@ -834,45 +871,45 @@ msgstr "%s is %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s is gehasht (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: ongeldige limietwaarde"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "'%c': ongeldige opdracht"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: kan de limiet niet bepalen: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limiet"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: kan de limiet niet wijzigen: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "octaal getal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "'%c': ongeldige operator in symbolische modus"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "'%c': ongeldig teken in symbolische modus"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " regel "
@@ -886,303 +923,318 @@ msgstr "laatste opdracht: %s\n"
msgid "Aborting..."
msgstr "Afbreken..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "onbekende opdrachtfout"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "ongeldig opdrachttype"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "ongeldige verbinder"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "ongeldige sprong"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: ongebonden variabele"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\awachten op invoer duurde te lang -- automatisch afgemeld\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "kan standaardinvoer niet omleiden vanaf /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: '%c': ongeldig opmaakteken"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "pijpfout"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximum functie-nestingsniveau is overschreden (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: beperkte modus: '/' in opdrachtnamen is niet toegestaan"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: opdracht niet gevonden"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s is %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: ongeldige interpreter"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan binair bestand %s niet uitvoeren"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "'%s' is een speciale ingebouwde shell-functie"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "kan bestandsdescriptor %d niet dupliceren naar bestandsdescriptor %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "recursieniveau van expressies is overschreden"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "recursiestapel-onderloop"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntaxfout in expressie"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "poging tot toewijzing aan een niet-variabele"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "deling door nul"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "**interne fout**: onjuist symbool in toewijzingsexpressie"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "':' werd verwacht voor een voorwaardelijke expressie"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponent is kleiner dan 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "naam verwacht na pre-increment of pre-decrement"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "ontbrekend ')'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntaxfout: operator verwacht"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntaxfout: ongeldige rekenkundige operator"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (het onjuiste symbool is \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "ongeldige rekenkundige basis"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "waarde is te groot voor basis"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: expressiefout\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getwd(): kan geen geen toegang verkrijgen tot bovenliggende mappen"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "kan 'nodelay'-modus niet uitschakelen voor bestandsdescriptor %d"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline(): procesgroep van pijp"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "afgesplitst PID %d hoort bij draaiende taak %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "verwijderen van gepauzeerde taak %d met procesgroep %ld..."
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process(): proces %5ld (%s) in de pijplijn"
-#: jobs.c:1115
+#: jobs.c:1120
#, 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:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid(): PID %ld bestaat niet"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signaal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Klaar"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Gepauzeerd"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Gepauzeerd(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Wordt uitgevoerd"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Klaar(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Exit %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Onbekende afsluitwaarde"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(geheugendump gemaakt) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (werkmap: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "instellen van procesgroep %2$ld van dochter %1$ld"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for(): proces %ld is nergens geregistreerd"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job(): taak %d is gepauzeerd"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: taak is afgesloten"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: taak %d draait al op de achtergrond"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
"waitchld(): WNOHANG wordt ingeschakeld om een onbegrensde blokkering te "
"vermijden"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: regel %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (geheugendump gemaakt)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(werkmap is nu: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp() is mislukt"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: lijnprotocol"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid()"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "kan procesgroep (%d) van terminal niet instellen"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "er is geen taakbesturing in deze shell"
@@ -1204,54 +1256,54 @@ msgstr ""
msgid "unknown"
msgstr "onbekend"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc(): een pointer op de lijst van vrije blokken is overschreven"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
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
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free(): aangeroepen met als argument een ongebruikt blok"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free(): onderloop: 'mh_nbytes' valt buiten bereik"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free(): blokgroottes van begin en eind zijn verschillend"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc(): aangeroepen met als argument een ongebruikt blok"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc(): onderloop: 'mh_nbytes' valt buiten bereik"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc(): blokgroottes van begin en eind zijn verschillend"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "ongeldige basis"
@@ -1274,35 +1326,35 @@ msgstr "%s: ongeldige aanduiding van netwerkpad"
msgid "network operations not supported"
msgstr "netwerkoperaties worden niet ondersteund"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale(): LC_ALL: kan niet van taalregio veranderen (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale(): LC_ALL: kan niet van taalregio veranderen (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale(): %s: kan niet van taalregio veranderen (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale(): %s: kan niet van taalregio veranderen (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "U hebt post in $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "U hebt nieuwe post in $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "De post in %s is gelezen.\n"
@@ -1320,121 +1372,121 @@ msgstr "syntaxfout: onverwachte ';'"
msgid "syntax error: `((%s))'"
msgstr "syntaxfout: '((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document(): ongeldig instructietype %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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')"
+"regel %d van \"hier\"-document eindigt met einde van bestand (verwachtte "
+"'%s')"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection(): omleidingsinstructie '%d' valt buiten bereik"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende '%c'"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "onverwacht bestandseinde tijdens zoeken naar ']]'"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "syntaxfout in conditionele expressie: onverwacht symbool '%s'"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "syntaxfout in conditionele expressie"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "onverwacht symbool '%s'; ')' werd verwacht"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "')' werd verwacht"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "onverwacht argument '%s' bij eenzijdige conditionele operator"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "onverwacht argument bij eenzijdige conditionele operator"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
"onverwacht symbool '%s'; tweezijdige conditionele operator werd verwacht"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "tweezijdige conditionele operator werd verwacht"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "onverwacht argument '%s' bij tweezijdige conditionele operator"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "onverwacht argument bij tweezijdige conditionele operator"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "onverwacht symbool '%c' in conditionele opdracht"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "onverwacht symbool '%s' in conditionele opdracht"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "onverwacht symbool %d in conditionele opdracht"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "syntaxfout nabij onverwacht symbool '%s'"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "syntaxfout nabij '%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "syntaxfout: onverwacht bestandseinde"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "syntaxfout"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Gebruik \"%s\" om de shell te verlaten.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende ')'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion(): functie '%s' niet gevonden"
@@ -1444,92 +1496,92 @@ msgstr "completion(): functie '%s' niet gevonden"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert(): %s: lege COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command(): ongeldige verbinder '%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set(): %d: ongeldige bestandsdescriptor"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set(): bestandspointer is NIL"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
"xtrace-bestandsdescriptor (%d) != bestandsnummer van xtrace-bestandspointer "
"(%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf(): '%c': ongeldig opmaakteken"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "bestandsdescriptor valt buiten bereik"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: omleiding is niet eenduidig"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: kan bestaand bestand niet overschrijven"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: beperkte modus: omleiden van uitvoer is niet toegestaan"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "kan geen tijdelijk bestand maken voor \"hier\"-document: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: kan bestandsdescriptor niet toewijzen aan variabele"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port is niet mogelijk zonder netwerk"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "omleidingsfout: kan bestandsdescriptor niet dupliceren"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "Kan /tmp niet vinden; maak deze aan!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp dient een geldige mapnaam te zijn"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: ongeldige optie"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Ik heb geen naam!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, versie %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1538,40 +1590,40 @@ msgstr ""
"Gebruik: %s [opties]\n"
" %s [opties] scriptbestand...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Lange opties:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Korte opties:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD, of -c OPDRACHT, of -O SHOPT-OPTIE (enkel bij aanroep)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s, of -o optie (veranderbaar via 'set')\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, 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:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask(): %d: ongeldige operatie"
@@ -1590,9 +1642,10 @@ msgstr "Opgehangen"
msgid "Interrupt"
msgstr "Onderbroken"
+# Verleden tijd, "Afgesloten", net als de andere actiesignaalnamen.
#: siglist.c:59
msgid "Quit"
-msgstr "Afsluiten"
+msgstr "Afgesloten"
#: siglist.c:63
msgid "Illegal instruction"
@@ -1612,7 +1665,7 @@ msgstr "EMT-instructie"
#: siglist.c:83
msgid "Floating point exception"
-msgstr "Drijvende-komma-berekeningsfout"
+msgstr "Drijvendekomma-berekeningsfout"
#: siglist.c:87
msgid "Killed"
@@ -1636,15 +1689,15 @@ msgstr "Gebroken pijp"
#: siglist.c:107
msgid "Alarm clock"
-msgstr "Alarmklok"
+msgstr "Wekker"
#: siglist.c:111
msgid "Terminated"
-msgstr "Afgesloten"
+msgstr "Beëindigd"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr "Spoedeisende I/O-toestand"
+msgstr "Urgente in-/uitvoertoestand"
#: siglist.c:119
msgid "Stopped (signal)"
@@ -1660,11 +1713,11 @@ msgstr "Dochter is geëlimineerd of gestopt"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr "Gepauzeerd (tty-invoer)"
+msgstr "Gepauzeerd (terminalinvoer)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr "Gepauzeerd (tty-uitvoer)"
+msgstr "Gepauzeerd (terminaluitvoer)"
#: siglist.c:147
msgid "I/O ready"
@@ -1747,73 +1800,78 @@ msgstr "Onbekend signaalnummer"
msgid "Unknown Signal #%d"
msgstr "Onbekend signaal #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "ongeldige vervanging: geen sluit-'%s' in %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: kan geen lijst toewijzen aan een array-element"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "kan geen pijp maken voor procesvervanging"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "kan geen dochterproces maken voor procesvervanging"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "kan pijp genaamd %s niet openen om te lezen"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "kan pijp genaamd %s niet openen om te schrijven"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "kan pijp genaamd %s niet dupliceren als bestandsdescriptor %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "kan geen pijp maken voor opdrachtvervanging"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "kan geen dochterproces maken voor opdrachtvervanging"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
"command_substitute(): kan pijp niet dupliceren als bestandsdescriptor 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: ongeldige variabelenaam voor naamsverwijzing"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: lege parameter, of niet ingesteld"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: resultaat van deeltekenreeks is kleiner dan nul"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: ongeldige vervanging"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: kan niet op deze manier toewijzen"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1821,58 +1879,58 @@ msgstr ""
"toekomstige versies van de shell zullen dit als een rekenkundige vervanging "
"evalueren"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "ongeldige vervanging: geen afsluitende '`' in %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "geen overeenkomst: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argument werd verwacht"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: een geheel-getaluitdrukking werd verwacht"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "')' werd verwacht"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "')' werd verwacht; %s gevonden"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "eenzijdige operator werd verwacht, %s gevonden"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "tweezijdige operator werd verwacht, %s gevonden"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "ontbrekende ']'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "ongeldig signaalnummer"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1880,75 +1938,89 @@ msgstr ""
"run_pending_traps: signaalverwerker is SIG_DFL, herzenden van %d (%s) aan "
"mezelf..."
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler(): ongeldig signaal %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "fout tijdens importeren van functiedefinitie voor '%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "shell-niveau is te hoog (%d); teruggezet op 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: circulaire naamsverwijzing"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
"make_local_variable(): er is geen functiecontext in huidige geldigheidsbereik"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: aan variabele mag geen waarde toegewezen worden"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
"all_local_variables(): er is geen functiecontext in huidige geldigheidsbereik"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "*** %s heeft lege export-tekenreeks"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "*** ongeldig teken '%d' in export-tekenreeks voor %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "*** geen '=' in export-tekenreeks voor %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context(): er is geen 'global_variables'-context"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
"pop_scope(): top van 'shell_variables' is geen tijdelijk geldigheidsbereik"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: Kan %s niet openen als BESTAND"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: ongeldige waarde %s voor 'trace'-bestandsdescriptor"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: compatibiliteitswaarde valt buiten bereik"
+
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1956,35 +2028,23 @@ 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 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, versie %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-"Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden.\n"
-
-#: version.c:92 version2.c:89
-#, 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"
+"Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Er is GEEN GARANTIE, voor zover de wet dit toestaat."
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"De licentie is GPLv2+: GNU GPL versie 2 of later.\n"
-"Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -2016,10 +2076,10 @@ msgstr "unalias [-a] NAAM [NAAM...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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"
+"bind [-lpvsPSVX] [-m TOETSENKAART] [-f BESTANDSNAAM] [-q NAAM] [-u NAAM]\n"
" [-r TOETSENREEKS] [-x TOETSENREEKS:SHELL-OPDRACHT]\n"
" [TOETSENREEKS:READLINE-FUNCTIE | TOETSENREEKS:READLINE-OPDRACHT]"
@@ -2039,10 +2099,11 @@ msgstr "builtin [INGEBOUWDE_SHELLFUNCTIE [ARGUMENT...]]"
msgid "caller [expr]"
msgstr "caller [EXPRESSIE]"
+# XXX FIXME is this right?
+# can -@ only combine with -P, not with -L?
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [MAP]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|(-P [-e])] [-@] [MAP]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2052,27 +2113,27 @@ msgstr "pwd [-LP]"
msgid ":"
msgstr ":"
+# Dit is een commandonaam.
#: builtins.c:70
msgid "true"
-msgstr "waar"
+msgstr "true"
+# Dit is een commandonaam.
#: builtins.c:72
msgid "false"
-msgstr "onwaar"
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] OPDRACHT [ARGUMENT...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [NAAM[=WAARDE]...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [NAAM[=WAARDE] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] NAAM[=WAARDE]..."
+msgstr "typeset [-aAfFgilrtux] [-p] NAAM[=WAARDE]..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2113,8 +2174,8 @@ 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]"
+"fc [-e EDITORNAAM] [-lnr] [EERSTE] [LAATSTE] of: fc -s [PATROON=VERVANGING] "
+"[OPDRACHT]"
#: builtins.c:107
msgid "fg [job_spec]"
@@ -2137,14 +2198,12 @@ 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..."
+"history [-c] [-d POSITIE] [N] of: history -anrw [BESTANDSNAAM] 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...]"
+msgstr "jobs [-lnprs] [TAAKAANDUIDING...] of: jobs -x OPDRACHT [ARGUMENT...]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
@@ -2167,31 +2226,29 @@ msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
-"read [-ers] [-a ARRAY] [-d SCHEIDINGSTEKEN] [-i TEKST]\n"
-" [-n AANTAL_TEKENS] [-N AANTAL_TEKENS] [-p PROMPT]\n"
-" [-t TIJDSLIMIET] [-u BESTANDSDESCRIPTOR] [NAAM...]"
+"read [-ers] [-a ARRAY] [-d SCHEIDINGSTEKEN] [-i TEKST] [-p PROMPT]\n"
+" [-n AANTAL_TEKENS] [-N AANTAL_TEKENS] [-t TIJDSLIMIET]\n"
+" [-u BESTANDSDESCRIPTOR] [NAAM...]"
#: builtins.c:138
msgid "return [n]"
msgstr "return [N]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o OPTIENAAM] [ARGUMENT...]"
+msgstr "set [--abefhkmnptuvxBCHP] [-o OPTIENAAM] [--] [ARGUMENT...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [NAAM...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [NAAM...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [NAAM[=WAARDE] ...] of export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [NAAM[=WAARDE] ...] of readonly -p"
+msgstr "readonly [-aAf] [NAAM[=WAARDE] ...] of readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2215,7 +2272,7 @@ msgstr "test [EXPRESSIE]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr "[ ARGUMENT... ]"
+msgstr "[ EXPRESSIE... ]"
#: builtins.c:162
msgid "times"
@@ -2230,20 +2287,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] NAAM..."
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [GRENSWAARDE]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [GRENSWAARDE]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [MODUS]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [ID]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [ID ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [PID]"
+msgid "wait [pid ...]"
+msgstr "wait [-n] [PID ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2270,9 +2327,8 @@ 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"
+"if OPDRACHTEN; then OPDRACHTEN; [elif OPDRACHTEN; then OPDRACHTEN;]... [else "
+"OPDRACHTEN;] fi"
#: builtins.c:194
msgid "while COMMANDS; do COMMANDS; done"
@@ -2336,19 +2392,18 @@ msgid ""
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-o OPTIE] [-A ACTIE]\n"
-" [-C OPDRACHT] [-F FUNCTIE] [-G PATROON] [-P PREFIX]\n"
-" [-S SUFFIX] [-W WOORDENLIJST] [-X FILTERPATROON] "
-"[NAAM...]"
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o OPTIE] [-A ACTIE] [-C OPDRACHT]\n"
+" [-F FUNCTIE] [-G PATROON] [-P PREFIX] [-S SUFFIX]\n"
+" [-W WOORDENLIJST] [-X FILTERPATROON] [NAAM...]"
#: builtins.c:233
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 OPTIE] [-A ACTIE] [-C OPDRACHT]\n"
-" [-F FUNCTIE] [-G PATROON] [-P PREFIX] [-S SUFFIX]\n"
-" [-W WOORDENLIJST] [-X FILTERPATROON] [WOORD]"
+"compgen [-abcdefgjksuv] [-o OPTIE] [-A ACTIE] [-C OPDRACHT] [-F FUNCTIE]\n"
+" [-G PATROON] [-P PREFIX] [-S SUFFIX]\n"
+" [-W WOORDENLIJST] [-X FILTERPATROON] [WOORD]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
@@ -2451,6 +2506,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2474,26 +2531,30 @@ msgstr ""
" -P functienamen en hun bindingen tonen\n"
" -p functienamen en hun bindingen tonen, in een vorm "
"die\n"
-" kan worden hergebruikt als invoer\n"
+" hergebruikt kan worden 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"
+" vorm die hergebruikt kan worden 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 "
+" hergebruikt kan worden als invoer\n"
+" -x TOETSENREEKS:SHELL-OPDRACHT deze shell-opdracht uitvoeren als "
"deze\n"
-" toetsenreeks ingevoerd wordt \n"
+" toetsenreeks ingevoerd wordt\n"
+" -X met '-x' gebonden toetsenreeksen en opdrachten "
+"tonen\n"
+" in een vorm die hergebruikt kan worden als "
+"invoer\n"
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
"een\n"
" fout optrad."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2504,11 +2565,12 @@ msgid ""
" 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"
+"\n"
" Als N gegeven is, dan worden N niveaus van lussen beëindigd.\n"
"\n"
" De afsluitwaarde is 0, tenzij N kleiner dan 1 is."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2523,7 +2585,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij N kleiner dan 1 is."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2547,7 +2609,7 @@ msgstr ""
" De afsluitwaarde is die van de uitgevoerde shell-functie, of 1\n"
" of 1 als INGEBOUWDE_SHELLFUNCTIE geen ingebouwde shell-functie is."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2573,8 +2635,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij de shell momenteel geen functie uitvoert\n"
" of EXPRESSIE ongeldig is."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2597,13 +2658,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2626,13 +2695,31 @@ msgstr ""
" 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"
+" -L symbolische koppelingen volgen; symbolische koppelingen in MAP\n"
+" worden herleid ná verwerking van instantiaties van '..'\n"
+" -P de fysieke mappenstructuur gebruiken zonder symbolische "
+"koppelingen\n"
+" te volgen; symbolische koppelingen in MAP worden herleid vóór\n"
+" verwerking van instantiaties van '..'\n"
+" -e als optie '-P' gegeven is en de huidige map kan niet bepaald "
+"worden,\n"
+" dan afsluiten met een niet-nul waarde\n"
+" -@ een bestand met uitgebreide kenmerken presenteren als een map "
+"die\n"
+" deze bestandskenmerken bevat (op systemen die het "
+"ondersteunen)\n"
+"\n"
+" Standaard worden symbolische koppelingen gevolgd, alsof '-L' gegeven "
+"is.\n"
+" Een '..' wordt verwerkt door het verwijderen van de direct voorafgaande\n"
+" padcomponent terug tot een slash of tot het begin van MAP.\n"
"\n"
-" De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, anders 1."
+" De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, en als "
+"ook\n"
+" omgevingsvariabele PWD ingesteld kon worden als '-P' gegeven is, anders "
+"1."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2659,7 +2746,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of de\n"
" huidige map niet bepaald kon worden."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2669,7 +2756,7 @@ msgid ""
" Always succeeds."
msgstr "Doet niets; de opdracht heeft geen effect; de afsluitwaarde is 0."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2677,7 +2764,7 @@ msgid ""
" Always succeeds."
msgstr "Geeft afsluitwaarde 0, horend bij \"gelukt\"."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2685,7 +2772,7 @@ msgid ""
" Always fails."
msgstr "Geeft afsluitwaarde 1, horend bij \"mislukt\"."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2719,8 +2806,7 @@ msgstr ""
" De afsluitwaarde is die van de uitgevoerde OPDRACHT,\n"
" of 1 als de OPDRACHT niet gevonden is."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2740,6 +2826,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2755,7 +2842,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Waarden en eigenschappen van variabelen instellen.\n"
"\n"
@@ -2766,6 +2854,9 @@ msgstr ""
" Opties:\n"
" -f alleen de gedefinieerde functies tonen (geen variabelen)\n"
" -F alleen de namen van de functies tonen, zonder de definities\n"
+" -g globale variabelen aanmaken wanneer gebruikt in een shell-"
+"functie;\n"
+" elders genegeerd\n"
" -p van elke gegeven variabele de eigenschappen en waarde tonen\n"
"\n"
" Eigenschappen:\n"
@@ -2774,6 +2865,8 @@ msgstr ""
"mogelijk)\n"
" -i aan gegeven variabelen de 'geheel getal'-eigenschap toekennen\n"
" -l gegeven variabelen bij toekenning omzetten naar kleine letters\n"
+" -n de gegeven variabele een verwijzing maken naar de variabele die\n"
+" gegeven is als waarde\n"
" -r de gegeven variabelen alleen-lezen maken\n"
" -t aan gegeven variabelen de 'trace'-eigenschap toekennen\n"
" -u gegeven variabelen bij toekenning omzetten naar hoofdletters\n"
@@ -2786,13 +2879,13 @@ msgstr ""
" 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"
+" naam lokaal, net zoals de opdracht 'local'. Optie '-g' onderdrukt dit.\n"
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
"een\n"
-" fout optrad."
+" toekenningsfout optrad."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2802,7 +2895,7 @@ msgstr ""
"\n"
" Deze opdracht is verouderd. Zie 'help declare'."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2813,8 +2906,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Lokale variabelen definiëren.\n"
"\n"
@@ -2826,13 +2919,15 @@ msgstr ""
" betreffende functie en diens dochters.\n"
"\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."
+" toekenningsfout optrad, of de shell geen functie aan het uitvoeren is."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2844,6 +2939,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2860,8 +2956,9 @@ msgid ""
msgstr ""
"De gegeven argumenten naar standaarduitvoer schrijven.\n"
"\n"
-" Schrijft de gegeven argumenten naar standaarduitvoer, gevolgd door een\n"
-" nieuwe regel.\n"
+" Schrijft de gegeven argumenten naar standaarduitvoer, elke twee "
+"gescheiden\n"
+" door een spatie en aan het eind gevolgd door een nieuwe regel.\n"
"\n"
" Opties:\n"
" -n de afsluitende nieuwe regel onderdrukken\n"
@@ -2872,6 +2969,7 @@ msgstr ""
" \\a geluidssignaal\n"
" \\b backspace\n"
" \\c geen verdere uitvoer produceren\n"
+" \\e escapecode\n"
" \\E escapecode\n"
" \\f nieuwe pagina (FF-teken)\n"
" \\n nieuwe regel (LF-teken)\n"
@@ -2884,7 +2982,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij een schrijffout optrad."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2903,7 +3001,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij een schrijffout optrad."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2959,7 +3057,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij NAAM geen ingebouwde shell-opdracht is of\n"
"  er een fout optreedt."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2980,7 +3078,7 @@ msgstr ""
"opdracht\n"
" leeg is."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3056,7 +3154,7 @@ msgstr ""
" Normaliter ontleedt 'getopts' de positionele parameters: $0...$9.\n"
" Maar als er argumenten gegeven worden, dan worden deze ontleed."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3097,7 +3195,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij OPDRACHT niet gevonden wordt of er een\n"
" omleidingsfout optreedt."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3109,7 +3207,7 @@ msgstr ""
" Beëindigt de shell met een afsluitwaarde van N. Zonder N is de\n"
" afsluitwaarde die van de laatst uitgevoerde opdracht."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3122,7 +3220,7 @@ msgstr ""
" Beëindigt een login-shell met een afsluitwaarde van N. Geeft een\n"
" foutmelding als de huidige shell geen login-shell is."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3177,7 +3275,7 @@ msgstr ""
" De afsluitwaarde die van de uitgevoerde opdracht, of 0, of niet-nul als\n"
" er een fout optreedt."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3200,7 +3298,7 @@ msgstr ""
"er\n"
" een fout optreedt."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3225,7 +3323,7 @@ msgstr ""
"fout\n"
" optreedt."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3236,7 +3334,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3267,7 +3365,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij NAAM niet gevonden wordt of een ongeldige\n"
" optie gegeven werd."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3304,7 +3402,7 @@ msgstr ""
"ongeldige\n"
" optie gegeven werd."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3373,7 +3471,8 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3382,7 +3481,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3419,7 +3518,7 @@ msgstr ""
"een\n"
" fout optrad. Met optie '-x' is de afsluitwaarde die van OPDRACHT."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3451,7 +3550,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldige optie of TAAKAANDUIDING\n"
" gegeven werd."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3496,8 +3595,7 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3586,7 +3684,7 @@ msgstr ""
" Als het laatste ARGUMENT evalueert tot 0, dan is de afsluitwaarde van\n"
" 'let' 1; anders 0."
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3621,16 +3719,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Een regel van standaardinvoer lezen en in velden opsplitsen.\n"
@@ -3645,7 +3746,7 @@ msgstr ""
"variabele\n"
" IFS worden herkend als woordscheidingstekens. Als er geen namen "
"gegeven\n"
-" zijn, wordt de gelezen regel opgeslagen in de variabele REPLY.\n"
+" zijn, dan wordt de gelezen regel opgeslagen in de variabele REPLY.\n"
"\n"
" Opties:\n"
" -a ARRAY de gelezen woorden toekennen aan de opeenvolgende posities\n"
@@ -3659,6 +3760,9 @@ msgstr ""
"of\n"
" na een LF-teken (i.p.v. altijd te wachten op een LF-"
"teken)\n"
+" -N AANTAL alleen stoppen na dit aantal tekens gelezen te hebben, of "
+"na\n"
+" EOF of tijdsoverschrijding, elk scheidingsteken negerend\n"
" -p PROMPT deze tekenreeks tonen als prompt (zonder afsluitende "
"nieuwe\n"
" regel) alvorens te beginnen met lezen\n"
@@ -3667,15 +3771,21 @@ msgstr ""
" -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"
+" wachten seconden; het aantal mag drijvendepuntgetal "
+"zijn;\n"
+" als AANTAl 0 is, dan keert 'read' onmiddellijk terug "
+"zonder\n"
+" enige data te lezen, maar is alleen succesvol als er op "
+"de\n"
+" betreffende bestandsdescriptor invoer beschikbaar is\n"
" -u BS.DS. 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."
+" de tijdslimiet overschreden werd, er een toekenningsfout optrad, of een\n"
+" ongeldige bestandsdescriptor als argument van '-u' gegeven werd."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3696,8 +3806,7 @@ msgstr ""
" uitvoeren is."
# Voor de duidelijkheid is de tekstvolgorde veranderd.
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3763,7 +3872,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3812,7 +3921,9 @@ msgstr ""
" -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 geen symbolische koppelingen herleiden bij opdrachten als 'cd' "
+"die\n"
+" de huidige map wijzigen\n"
" -p geprivilegeerde modus: de bestanden aangeduid door ENV en "
"BASH_ENV\n"
" worden genegeerd, functies worden niet uit de omgeving "
@@ -3880,7 +3991,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3889,6 +4000,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3906,15 +4019,17 @@ msgstr ""
" Opties:\n"
" -f elke NAAM als een shell-functie begrijpen\n"
" -v elke NAAM als een shell-variabele begrijpen\n"
+" -n elke NAAM als een naamsverwijzing begrijpen en de variabele zelf\n"
+" verwijderen in plaats de variabele waar naar verwezen wordt\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"
+" 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:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3948,7 +4063,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3960,7 +4075,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3978,13 +4095,14 @@ msgstr ""
" -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"
+" -p een lijst tonen van alle onveranderbare variabelen of functies,\n"
+" al naar gelang optie '-f' gegeven is\n"
"\n"
" Het argument '--' schakelt verdere optieverwerking uit.\n"
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4001,7 +4119,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0 tenzij N negatief is of groter dan $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4026,7 +4144,7 @@ msgstr ""
"gegeven\n"
" bestand, of 1 als dit bestand niet gelezen kan worden."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4052,8 +4170,7 @@ msgstr ""
"fout\n"
" optreedt."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4118,6 +4235,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4141,6 +4260,9 @@ msgstr ""
" gebruikt om de toestand van een bestand te inspecteren. Er zijn ook\n"
" operatoren voor tekenreeksen en voor getalsmatige vergelijkingen.\n"
"\n"
+" Het gedrag van 'test' is afhankelijk van het aantal argumenten.\n"
+" Lees de handleiding van 'bash' voor een complete beschrijving.\n"
+"\n"
" Bestandsoperatoren:\n"
" -a BESTAND waar als bestand bestaat\n"
" -b BESTAND waar als bestand een blok-apparaat is\n"
@@ -4184,8 +4306,10 @@ msgstr ""
"komt\n"
"\n"
" Andere operatoren:\n"
-" -o OPTIE waar als de shell-optie ingeschakeld is\n"
-" ! EXPR waar als EXPR onwaar is\n"
+" -o OPTIE waar als deze shell-optie ingeschakeld is\n"
+" -v VARIABELE waar als deze variabele een waarde heeft\n"
+" -R VARIABELE waar als deze variabele een naamsverwijzing is\n"
+" ! EXPRESSIE waar als EXPRESSIE 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"
@@ -4196,7 +4320,7 @@ msgstr ""
" De afsluitwaarde is 0 als EXPRESSIE waar is, 1 als EXPRESSIE onwaar is,\n"
" en 2 als een ongeldig argument gegeven werd."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4208,7 +4332,7 @@ msgstr ""
" Dit is een synoniem voor de ingebouwde functie 'test', behalve dat\n"
" het laatste argument een ']' moet zijn, horend bij de begin-'['."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4227,8 +4351,7 @@ msgstr ""
"\n"
" De afsluitwaarde is altijd 0."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4296,8 +4419,8 @@ msgstr ""
"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"
+" de mislukking van een opdracht de shell zou beëindigen als optie '-e'\n"
+" gegeven was.\n"
"\n"
" Als er geen enkel argument gegeven is, dan toont 'trap' welke "
"opdrachten\n"
@@ -4316,7 +4439,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldige optie of SIGNAALAANDUIDING\n"
" gegeven werd."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4365,10 +4488,11 @@ msgstr ""
" '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"
+" als de naam onbekend is\n"
+"\n"
" De afsluitwaarde is 0 als elke NAAM gevonden werd, anders 1."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4397,6 +4521,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4437,10 +4564,13 @@ msgstr ""
" -r de maximum realtime-procesprioriteit\n"
" -s de maximum stapelgrootte (in kB)\n"
" -t de maximum hoeveelheid CPU-tijd (in seconden)\n"
+" -T het maximum aantal threads\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"
+" Niet alle opties zijn beschikbaar op alle platformen.\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"
@@ -4456,7 +4586,7 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4492,60 +4622,68 @@ msgstr ""
" De afsluitwaarde is 0, tenzij MODUS ongeldig is of een ongeldige optie\n"
" gegeven werd."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is 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"
+" Wacht op elk proces aangeduid door een ID -- dat een taakaanduiding of\n"
+" een 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."
+" Als optie '-n' gegeven is, dan wordt gewacht op de eerstvolgende "
+"voltooiing\n"
+" van een taak en wordt diens afsluitwaarde geretourneerd.\n"
+"\n"
+" De afsluitwaarde is die van de laatste ID, 1 als ID ongeldig is,\n"
+" of 2 als een ongeldige optie gegeven werd."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+" Wacht op elk proces aangeduid door een PID en rapporteert diens\n"
+" afsluitwaarde. Als geen PID gegeven is, dan wordt er gewacht op alle\n"
+" momenteel actieve dochterprocessen, en is de afsluitwaarde van 'wait'\n"
+" automatisch 0. PID 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."
+" De afsluitwaarde is die van de laatste PID, 1 als PID ongeldig is,\n"
+" of 2 als een ongeldige optie gegeven werd."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4562,10 +4700,11 @@ msgstr ""
" 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"
+" dat element en worden de OPDRACHTEN uitgevoerd.\n"
+"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4592,7 +4731,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4625,11 +4764,11 @@ msgstr ""
" 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"
+" uitgevoerd. Dit gaat door totdat een 'break' de opdracht beëindigt.\n"
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4656,7 +4795,7 @@ msgstr ""
" overdraagbare standaardopmaak.\n"
" De afsluitwaarde is die van de PIJPLIJN."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4674,7 +4813,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4709,7 +4848,7 @@ msgstr ""
"uitgevoerde\n"
" deelopdracht, of nul als geen enkele 'if' of 'elif' nul opleverde."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4726,7 +4865,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4743,7 +4882,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4764,7 +4903,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de OPDRACHT."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4786,7 +4925,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 0, tenzij NAAM onveranderbaar is."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4803,7 +4942,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de laatst uitgevoerde opdracht."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4827,7 +4966,7 @@ msgstr ""
"\n"
" De afsluitwaarde is die van de hervatte taak."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4844,7 +4983,7 @@ msgstr ""
"\n"
" De afsluitwaarde is 1 als de EXPRESSIE tot 0 evalueert; anders 0."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4871,7 +5010,7 @@ msgid ""
" Exit Status:\n"
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-"Een voorwaardelijke opdracht uitveoren.\n"
+"Een voorwaardelijke opdracht uitvoeren.\n"
"\n"
" Evalueert de gegeven conditionele expressie; afhankelijk van het "
"resultaat\n"
@@ -4889,18 +5028,17 @@ msgstr ""
"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"
+" tekenreeks als patroon begrepen en wordt patroonherkenning uitgevoerd.\n"
+" 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"
+" van de eerste voldoende is om het eindresulaat te bepalen.\n"
"\n"
" De afsluitwaarde is 0 of 1, afhankelijk van EXPRESSIE."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5014,7 +5152,7 @@ msgstr ""
"het\n"
" geschiedeniscommentaarteken, gewoonlijk '#'\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5067,7 +5205,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n"
" mapwijziging mislukte."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5116,7 +5254,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n"
" mapwijziging mislukte."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5167,7 +5305,7 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5210,8 +5348,7 @@ msgstr ""
" een ongeldige optienaam gegeven werd, en de afsluitwaarde is 2 als een\n"
" ongeldige optie gegeven werd."
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5228,9 +5365,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5238,6 +5375,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5260,13 +5403,22 @@ msgstr ""
" 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"
+" kan worden. Verder betekent %(OPMAAK)T dat datum-plus-tijd getoond\n"
+" moet worden door deze opmaak aan strftime(3) mee te geven.\n"
+"\n"
+" De gegeven opmaak wordt zo vaak hergebruikt als nodig is om alle "
+"argumenten\n"
+" te consumeren. Als er minder argumenten zijn dan de opmaak verwacht, "
+"dan\n"
+" gedragen de overtollige opmaakspecificaties zich alsof (al naar gelang) "
+"de\n"
+" waarde nul of een lege tekenreeks gegeven werd.\n"
"\n"
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
"een\n"
-" fout optrad."
+" schrijf- of toekenningsfout optrad."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5316,7 +5468,7 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5338,8 +5490,7 @@ msgstr ""
"een\n"
" fout optrad."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5395,8 +5546,7 @@ msgstr ""
" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of voor\n"
" NAAM geen completeringsvoorschrift gedefinieerd is."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5436,9 +5586,9 @@ msgid ""
"or\n"
" not an indexed array."
msgstr ""
-"Regels inlezen in een array-variabele.\n"
+"Regels inlezen in een geïndexeerde array-variabele.\n"
"\n"
-" Leest regels van standaardinvoer in in the array-variabele ARRAY.\n"
+" Leest regels van standaardinvoer in in de array-variabele ARRAY.\n"
" De variabele MAPFILE wordt gebruikt als geen ARRAY gegeven is.\n"
"\n"
" Opties:\n"
@@ -5458,8 +5608,9 @@ msgstr ""
"worden\n"
"\n"
" Als '-C' gegeven is zonder '-c', is de standaard-HOEVEELHEID 5000.\n"
-" Wanneer FUNCTIE aangeroepen wordt, wordt hieraan de index van het\n"
-" volgende array-element als extra argument meegegeven.\n"
+" Wanneer FUNCTIE aangeroepen wordt, dan wordt hieraan de index van het\n"
+" volgende array-element en de daaraan toe te kennen regel als extra\n"
+" argumenten meegegeven.\n"
"\n"
" Als geen expliciet BEGIN gegeven is, wordt het array gewist alvorens\n"
" met toekennen te beginnen.\n"
@@ -5468,7 +5619,7 @@ msgstr ""
"of\n"
" een ongeldige optie gegeven werd."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5479,21 +5630,8 @@ msgstr ""
" Een synoniem voor 'mapfile'."
#~ msgid ""
-#~ ". With EXPR, returns\n"
-#~ " "
-#~ msgstr ""
-#~ ".\n"
-#~ " Met EXPR, resulteert "
-
-#~ msgid ""
-#~ "; 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."
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
#~ msgstr ""
-#~ ".\n"
-#~ " Deze tweede vorm kan gebruikt worden om een 'stack trace' te\n"
-#~ " produceren. De waarde van EXPR geeft aan hoeveel frames er\n"
-#~ " teruggegaan moet worden; het top-frame heeft nummer 0."
+#~ "De licentie is GPLv2+: GNU GPL versie 2 of later.\n"
+#~ "Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index bf26b626..0afbb444 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 75c44899..8e5b18bf 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,157 +1,178 @@
# Polish translation of bash
-# Copyright (C) 2007 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2010, 2011, 2013, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Andrzej M. Krzysztofowicz <ankry@mif.pg.gda.pl> 2006,2007.
+# Jakub Bogusz <qboosh@pld-linux.org> 2010-2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: bash 3.2\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2007-11-30 08:49+0100\n"
-"Last-Translator: Andrzej M. Krzysztofowicz <ankry@mif.pg.gda.pl>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-30 20:40+0100\n"
+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
-msgstr "nieprawid³owy indeks tablicy"
+msgstr "nieprawidłowy indeks tablicy"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
-msgstr ""
+msgstr "%s: nie można przekształcić tablicy indeksowanej na asocjacyjną"
-#: arrayfunc.c:480
-#, fuzzy, c-format
+#: arrayfunc.c:539
+#, c-format
msgid "%s: invalid associative array key"
-msgstr "%s: nieprawid³owa nazwa akcji"
+msgstr "%s: błędny klucz tablicy asocjacyjnej"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
-msgstr "%s: nie mo¿na przypisaæ do nienumerycznego indeksu"
+msgstr "%s: nie można przypisać do nienumerycznego indeksu"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: przy przypisaniu do tablicy asocjacyjnej należy użyć nawiasów"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
-msgstr "%s: nie mo¿na utworzyæ: %s"
+msgstr "%s: nie można utworzyć: %s"
# ???
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-"bash_execute_unix_command: nie mo¿na znale¼æ mapy klawiszy dla polecenia"
+"bash_execute_unix_command: nie można znaleźć mapy klawiszy dla polecenia"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: pierwszym drukowalnym znakiem nie jest `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
-msgstr "brak zamykaj±cego `%c' w %s"
+msgstr "brak zamykajÄ…cego `%c' w %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
-msgstr "%s: brak separuj±cego dwukropka"
+msgstr "%s: brak separujÄ…cego dwukropka"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "rozwijanie nawiasów: nie można przydzielić pamięci dla %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+"rozwijanie nawiasów: nie udało się przydzielić pamięci dla elementów w "
+"liczbie %d"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "rozwijanie nawiasów: nie udało się przydzielić pamięci dla `%s'"
-# ???
#: builtins/alias.def:132
-#, fuzzy, c-format
+#, c-format
msgid "`%s': invalid alias name"
-msgstr "`%s': nieprawid³owa nazwa mapy klawiszy"
+msgstr "`%s': błędna nazwa aliasu"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
-msgstr ""
+msgstr "edycja wiersza nie została włączona"
# ???
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
-msgstr "`%s': nieprawid³owa nazwa mapy klawiszy"
+msgstr "`%s': nieprawidłowa nazwa mapy klawiszy"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
-msgstr "%s: nie mo¿na odczytaæ: %s"
+msgstr "%s: nie można odczytać: %s"
# ???
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
-msgstr "`%s': nie mo¿na usun±æ dowi±zania"
+msgstr "`%s': nie można usunąć dowiązania"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': nie znana nazwa funkcji"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr "%s nie jest przypisany do ¿adnego klawisza.\n"
+msgstr "%s nie jest przypisany do żadnego klawisza.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
-msgstr "%s mo¿e byæ wywo³any przez "
+msgstr "%s może być wywołany przez "
#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
-msgstr ""
+msgstr "licznik pętli"
#: 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'"
+msgstr "ma sens tylko w pętli `for', `while' lub `until'"
-# ???
-#: builtins/caller.def:133
-#, fuzzy
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
-msgstr "Wraca do kontekstu wywo³ania bie¿±cego podprogramu"
+msgstr ""
+"Zwraca kontekst wywołania bieżącego podprogramu.\n"
+" \n"
+" Bez WYRAŻENIA zwraca "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "Nie ustawiono HOME"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "za dużo argumentów"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "Nie ustawiono OLDPWD"
#: builtins/common.c:101
#, c-format
msgid "line %d: "
-msgstr ""
+msgstr "linia %d: "
-#: builtins/common.c:139 error.c:261
-#, fuzzy, c-format
+#: builtins/common.c:139 error.c:265
+#, c-format
msgid "warning: "
-msgstr "%s: uwaga: "
+msgstr "uwaga: "
#: builtins/common.c:153
-#, fuzzy, c-format
+#, c-format
msgid "%s: usage: "
-msgstr "%s: uwaga: "
+msgstr "%s: składnia: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "za du¿o argumentów"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: opcja wymaga argumentu"
@@ -166,46 +187,44 @@ msgstr "%s: wymagany argument numeryczny"
msgid "%s: not found"
msgstr "%s: nie znaleziono"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
-msgstr "%s: nieprawid³owa opcja"
+msgstr "%s: nieprawidłowa opcja"
#: builtins/common.c:221
#, c-format
msgid "%s: invalid option name"
-msgstr "%s: nieprawid³owa nazwa opcji"
+msgstr "%s: nieprawidłowa nazwa opcji"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
-msgstr "`%s': nieprawid³owy identyfikator"
+msgstr "`%s': nieprawidłowy identyfikator"
#: builtins/common.c:238
-#, fuzzy
msgid "invalid octal number"
-msgstr "nieprawid³owy numer sygna³u"
+msgstr "błędna liczba ósemkowa"
#: builtins/common.c:240
-#, fuzzy
msgid "invalid hex number"
-msgstr "nieprawid³owa liczba"
+msgstr "błędna liczba szesnastkowa"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
-msgstr "nieprawid³owa liczba"
+msgstr "nieprawidłowa liczba"
#: builtins/common.c:250
#, c-format
msgid "%s: invalid signal specification"
-msgstr "%s: nieprawid³owo okre¶lony sygna³"
+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"
+msgstr "`%s': nie jest to nr PID ani prawidłowe określenie zadania"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: zmienna tylko do odczytu"
@@ -232,11 +251,11 @@ msgstr "%s: brak takiego zadania"
#: builtins/common.c:290
#, c-format
msgid "%s: no job control"
-msgstr "%s: brak kontroli zadañ"
+msgstr "%s: brak kontroli zadań"
#: builtins/common.c:292
msgid "no job control"
-msgstr "brak kontroli zadañ"
+msgstr "brak kontroli zadań"
#: builtins/common.c:302
#, c-format
@@ -250,170 +269,179 @@ msgstr "ograniczony"
#: builtins/common.c:312
#, c-format
msgid "%s: not a shell builtin"
-msgstr "%s: nie jest to polecenie pow³oki"
+msgstr "%s: nie jest to polecenie powłoki"
#: builtins/common.c:321
#, c-format
msgid "write error: %s"
-msgstr "b³±d zapisu: %s"
+msgstr "błąd zapisu: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr ""
+msgstr "błąd podczas ustawiania atrybutów terminala: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr ""
+msgstr "błąd podczas pobierania atrybutów terminala: %s"
#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: b³±d przy okre¶laniu katalogu bie¿±cego: %s: %s\n"
+msgstr "%s: błąd przy określaniu katalogu bieżącego: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
-msgstr "%s: niejednoznaczne okre¶lenie zadania"
+msgstr "%s: niejednoznaczne określenie zadania"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
-msgstr "%s: nieprawid³owa nazwa akcji"
+msgstr "%s: nieprawidłowa nazwa akcji"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
-msgstr "%s: brak definicji dla uzupe³nienia"
+msgstr "%s: brak definicji dla uzupełnienia"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
-msgstr "uwaga: opcja -F mo¿e dzia³aæ inaczej ni¿ oczekiwano"
+msgstr "uwaga: opcja -F może działać inaczej niż oczekiwano"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
-msgstr "uwaga: opcja -C mo¿e dzia³aæ inaczej ni¿ oczekiwano"
+msgstr "uwaga: opcja -C może działać inaczej niż oczekiwano"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr ""
+msgstr "aktualnie nie jest wykonywana funkcja dopełniania"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
-msgstr "mo¿na u¿ywaæ tylko w funkcji"
+msgstr "można używać tylko w funkcji"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: zmienna referencyjna nie może być tablicą"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: zmienna referencyjna nie może wskazywać na siebie"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
-msgstr "nie mo¿na u¿ywaæ `-f' do tworzenia funkcji"
+msgstr "nie można używać `-f' do tworzenia funkcji"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funkcja tylko do odczytu"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
-msgstr "%s: nie mo¿na w ten sposób unicestwiæ zmiennej tablicowej"
+msgstr "%s: nie można w ten sposób unicestwić zmiennej tablicowej"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
-msgstr ""
+msgstr "%s: nie można przekształcić tablicy asocjacyjnej na indeksowaną"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
-msgstr "³adowanie dynamiczne nie jest dostêpne"
+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"
+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"
+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"
+msgstr "%s: nie jest Å‚adowany dynamicznie"
#: builtins/enable.def:474
#, c-format
msgid "%s: cannot delete: %s"
-msgstr "%s: nie mo¿na usun±æ: %s"
+msgstr "%s: nie można usunąć: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: jest katalogiem"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
-msgstr "%s: nie jest zwyk³ym plikiem"
+msgstr "%s: nie jest zwykłym plikiem"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
-msgstr "%s: plik jest za du¿y"
+msgstr "%s: plik jest za duży"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
-msgstr "%s: nie mo¿na uruchomiæ pliku binarnego"
+msgstr "%s: nie można uruchomić pliku binarnego"
#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
msgid "%s: cannot execute: %s"
-msgstr "%s: nie mo¿na uruchomiæ: %s"
+msgstr "%s: nie można uruchomić: %s"
#: builtins/exit.def:65
#, c-format
msgid "logout\n"
-msgstr ""
+msgstr "wylogowanie\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
-msgstr "to nie jest pow³oka logowania: u¿yj `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"
+msgstr "IstniejÄ… zatrzymane zadania.\n"
#: builtins/exit.def:122
-#, fuzzy, c-format
+#, c-format
msgid "There are running jobs.\n"
-msgstr "Istniej± zatrzymane zadania.\n"
+msgstr "Istnieją działające zadania.\n"
#: builtins/fc.def:262
msgid "no command found"
msgstr "nie znaleziono polecenia"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "specyfikacja historii"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
-msgstr "%s: nie uda³o siê otworzyæ pliku tymczasowego: %s"
+msgstr "%s: nie udało się otworzyć pliku tymczasowego: %s"
#: builtins/fg_bg.def:149 builtins/jobs.def:282
msgid "current"
-msgstr ""
+msgstr "bieżące"
#: builtins/fg_bg.def:158
#, c-format
msgid "job %d started without job control"
-msgstr "zadanie %d uruchomiono bez kontroli zadañ"
+msgstr "zadanie %d uruchomiono bez kontroli zadań"
#: builtins/getopt.c:110
#, c-format
@@ -427,7 +455,7 @@ 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"
+msgstr "zapamiętywanie ścieżek poleceń w tablicy asocjacyjnej wyłączone"
#: builtins/hash.def:138
#, c-format
@@ -435,31 +463,32 @@ msgid "%s: hash table empty\n"
msgstr "%s: tablica asocjacyjna pusta\n"
#: builtins/hash.def:245
-#, fuzzy, c-format
+#, c-format
msgid "hits\tcommand\n"
-msgstr "ostatnie polecenie: %s\n"
+msgstr "trafienia\tpolecenie\n"
#: builtins/help.def:130
-#, fuzzy, c-format
+#, 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 `"
+msgstr[0] "Polecenia powłoki pasujące do słowa kluczowego `"
+msgstr[1] "Polecenia powłoki pasujące do słów kluczowych `"
+msgstr[2] "Polecenia powłoki pasujące do słów kluczowych `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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"
+"żaden temat pomocy nie pasuje do `%s'. Spróbuj `help help', `man -k %s'\n"
"lub `info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
-msgstr "%s: nie mo¿na otworzyæ: %s"
+msgstr "%s: nie można otworzyć: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -470,139 +499,146 @@ msgid ""
"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 "
+"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"
+"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"
+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
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
-msgstr "%s: rozwiniêcie wg historii nie powiod³o siê"
+msgstr "%s: rozwinięcie wg historii nie powiodło się"
#: builtins/inlib.def:71
-#, fuzzy, c-format
+#, c-format
msgid "%s: inlib failed"
-msgstr "%s: rozwiniêcie wg historii nie powiod³o siê"
+msgstr "%s: inlib 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'"
+msgstr "nie można używać innych opcji przy `-x'"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
-msgstr "%s: argumentami musz± byæ numery procesów lub zadañ"
+msgstr "%s: argumentami muszą być numery procesów lub zadań"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
-msgstr "Nieznany b³±d"
+msgstr "Nieznany błąd"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
-msgstr "spodziewano siê wyra¿enia"
+msgstr "spodziewano się wyrażenia"
#: builtins/mapfile.def:172
-#, fuzzy, c-format
+#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: nie jest zmienn± tablicow±"
+msgstr "%s: nie jest tablicÄ… indeksowanÄ…"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr "%s: nieprawid³owo okre¶lony deskryptor pliku"
+msgstr "%s: nieprawidłowo określony deskryptor pliku"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr "%d: nieprawid³owy deskryptor pliku: %s"
+msgstr "%d: nieprawidłowy deskryptor pliku: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
-#, fuzzy, c-format
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
msgid "%s: invalid line count"
-msgstr "%s: nieprawid³owa opcja"
+msgstr "%s: błędna liczba linii"
-#: builtins/mapfile.def:284
-#, fuzzy, c-format
+#: builtins/mapfile.def:287
+#, c-format
msgid "%s: invalid array origin"
-msgstr "%s: nieprawid³owa opcja"
+msgstr "%s: błędny początek tablicy"
-#: builtins/mapfile.def:301
-#, fuzzy, c-format
+#: builtins/mapfile.def:304
+#, c-format
msgid "%s: invalid callback quantum"
-msgstr "%s: nieprawid³owa nazwa akcji"
+msgstr "%s: błędna liczba linii między wywołaniami"
-#: builtins/mapfile.def:333
-#, fuzzy
+#: builtins/mapfile.def:336
msgid "empty array variable name"
-msgstr "%s: nie jest zmienn± tablicow±"
+msgstr "pusta nazwa zmiennej tablicowej"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
-msgstr ""
+msgstr "wymagana obsługa zmiennych tablicowych"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
-msgstr "`%s': brak znaku formatuj±cego"
+msgstr "`%s': brak znaku formatujÄ…cego"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: nieprawid³owo okre¶lony timeout"
+msgstr "`%c': błędne określenie formatu czasu"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
-msgstr "`%c': nieprawid³owy znak formatuj±cy"
+msgstr "`%c': nieprawidłowy znak formatujący"
-#: builtins/printf.def:662
-#, fuzzy, c-format
+#: builtins/printf.def:684
+#, c-format
msgid "warning: %s: %s"
-msgstr "%s: uwaga: "
+msgstr "uwaga: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "problem z analizÄ… formatu: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "brak cyfry szesnastkowej dla \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "brak cyfry szesnastkowej dla \\x"
+msgstr "brak cyfry unikodowej dla \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "brak innego katalogu"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: nieprawidłowy argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
-msgstr "<brak katalogu bie¿±cego>"
+msgstr "<brak katalogu bieżącego>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr ""
+msgstr "pusty stos katalogów"
-#: builtins/pushd.def:508
-#, fuzzy
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "niedomiar stosu rekursji"
+msgstr "indeks stosu katalogów"
-#: builtins/pushd.def:683
-#, fuzzy
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -625,28 +661,27 @@ msgid ""
"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
+"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"
+" Opcje:\n"
+" -c\twyczyszczenie stosu katalogów poprzez usunięcie wszystkich "
+"elementów\n"
+" -l\tniewypisywanie katalogów względem kat. domowego użytkownika\n"
+" \tw postaci skróconej z tyldą\n"
+" -p\twypisanie stosu katalogów po jednym wpisie w linii\n"
+" -v\twypisanie stosu katalogów po jednym wpisie w linii, poprzedzonych\n"
+" \tpozycjÄ… na stosie\n"
+" \n"
+" Argumenty:\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:711
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"
@@ -670,26 +705,27 @@ msgid ""
" \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"
+"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"
+" Opcje:\n"
+" -n\tPominięcie zmiany katalogu podczas umieszczania katalogów na\n"
+" \tstosie tak, że zmieniany jest tylko stos.\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"
+" Argumenty:\n"
+" +N\tRotacja stosu czyniąca jego wierzchołkiem N-ty katalog (licząc\n"
+" \tod lewej 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\tRotacja stosu czyniąca jego wierzchołkiem N-ty katalog (licząc\n"
+" \tod prawej strony listy wypisywanej przez `dirs', poczÄ…wszy od zera).\n"
" \n"
-" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n"
-" \tbie¿±cym katalogiem roboczym.\n"
+" katalog\tUmieszczenie KATALOGU na wierzchołku stosu i uczynienie go\n"
+" \tnowym bieżącym katalogiem roboczym.\n"
" \n"
-" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
+" Zawartość stosu katalogów można zobaczyć za pomocą polecenia `dirs'."
-#: builtins/pushd.def:730
-#, fuzzy
+#: builtins/pushd.def:736
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"
@@ -709,76 +745,75 @@ msgid ""
" \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"
+"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"
+" Opcje:\n"
+" -n\tPominięcie zmiany katalogu podczas usuwania katalogów ze stosu\n"
+" \ttak, że zmieniany jest tylko stos.\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"
+" Argumenty:\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\tPominiêcie zmiany katalogu podczas usuwania katalogów ze stosu tak,\n"
-" \t¿e zmieniany jest tylko stos.\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 ostatni katalog, `popd -1' usuwa poprzedni.\n"
" \n"
-" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
+" Zawartość stosu katalogów można zobaczyć za pomocą polecenia `dirs'."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
-msgstr "%s: nieprawid³owo okre¶lony timeout"
+msgstr "%s: nieprawidłowo określony limit czasu"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
-msgstr "b³±d odczytu: %d: %s"
+msgstr "błąd odczytu: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
-msgstr "wyj¶cie przez `return' mo¿liwe tylko z funkcji lub skryptu"
+msgstr "wyjście przez `return' możliwe tylko z funkcji lub skryptu"
-# ???
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
-msgstr "nie mo¿na jednocze¶nie anulowaæ definicji funkcji i zmiennej"
+msgstr "nie można jednocześnie anulować definicji funkcji i zmiennej"
-# ???
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
-msgstr "%s: nie mo¿na anulowaæ definicji"
+msgstr "%s: nie można anulować definicji"
-# ???
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
-msgstr "%s: nie mo¿na anulowaæ definicji: %s jest tylko do odczytu"
+msgstr "%s: nie można anulować definicji: %s jest tylko do odczytu"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
-msgstr "%s: nie jest zmienn± tablicow±"
+msgstr "%s: nie jest zmiennÄ… tablicowÄ…"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
-msgstr "%s: nie jest funkcj±"
+msgstr "%s: nie jest funkcjÄ…"
#: builtins/shift.def:71 builtins/shift.def:77
msgid "shift count"
-msgstr "licznik przesuniêcia"
+msgstr "licznik przesunięcia"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
-msgstr "nie mo¿na opcji pow³oki jednocze¶nie ustawiæ i uniewa¿niæ"
+msgstr "nie można opcji powłoki jednocześnie ustawić i unieważnić"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
-msgstr "%s: nieprawid³owa nazwa opcji pow³oki"
+msgstr "%s: nieprawidłowa nazwa opcji powłoki"
#: builtins/source.def:130
msgid "filename argument required"
@@ -791,11 +826,11 @@ msgstr "%s: nie znaleziono pliku"
#: builtins/suspend.def:101
msgid "cannot suspend"
-msgstr "nie mo¿na wstrzymaæ"
+msgstr "nie można wstrzymać"
#: builtins/suspend.def:111
msgid "cannot suspend a login shell"
-msgstr "nie mo¿na wstrzymaæ pow³oki logowania"
+msgstr "nie można wstrzymać powłoki logowania"
#: builtins/type.def:234
#, c-format
@@ -805,19 +840,19 @@ 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"
+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"
+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"
+msgstr "%s jest wewnętrznym poleceniem powłoki\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s jest %s\n"
@@ -825,49 +860,49 @@ 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"
+msgstr "ścieżka do %s jest zapamiętana (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
-msgstr "%s: nieprawid³owy argument stanowi±cy ograniczenie"
+msgstr "%s: nieprawidłowy argument stanowiący ograniczenie"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "`%c': z³e polecenie"
+msgstr "`%c': złe polecenie"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
-msgstr "%s: nie mo¿na odczytaæ ograniczenia: %s"
+msgstr "%s: nie można odczytać ograniczenia: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
-msgstr ""
+msgstr "ograniczenie"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
-msgstr "%s: nie mo¿na zmieniæ ograniczenia: %s"
+msgstr "%s: nie można zmienić ograniczenia: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
-msgstr "liczba ósemkowa"
+msgstr "liczba ósemkowa"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr "`%c': nieprawid³owy operator trybu symbolicznego"
+msgstr "`%c': nieprawidłowy operator trybu symbolicznego"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr "`%c': nieprawid³owy znak trybu symbolicznego"
+msgstr "`%c': nieprawidłowy znak trybu symbolicznego"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr ""
+msgstr " linia "
#: error.c:165
#, c-format
@@ -879,309 +914,324 @@ msgstr "ostatnie polecenie: %s\n"
msgid "Aborting..."
msgstr "Przerywanie..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
-msgstr "nieznany b³±d polecenia"
+msgstr "nieznany błąd polecenia"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
-msgstr "z³y rodzaj polecenia"
+msgstr "zły rodzaj polecenia"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
-msgstr "z³y ³±cznik"
+msgstr "zły łącznik"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
-msgstr "z³y skok"
+msgstr "zły skok"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: nieustawiona zmienna"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "\aprzekroczony czas oczekiwania na dane wej¶ciowe: auto-wylogowanie\n"
+msgstr "\aprzekroczony czas oczekiwania na dane wejściowe: auto-wylogowanie\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "nie mo¿na przekierowaæ standardowego wej¶cia z /dev/null: %s"
+msgstr "nie można przekierować standardowego wejścia z /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "TIMEFORMAT: `%c': nieprawid³owy znak formatuj±cy"
+msgstr "TIMEFORMAT: `%c': nieprawidłowy znak formatujący"
-#: execute_cmd.c:2121
-#, fuzzy
+#: execute_cmd.c:2287
msgid "pipe error"
-msgstr "b³±d zapisu: %s"
+msgstr "błąd potoku"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: przekroczono maksymalny poziom zagnieżdżenia funkcji (%d)"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s: ograniczony: nie mo¿na podawaæ `/' w nazwach poleceñ"
+msgstr "%s: ograniczony: nie można podawać `/' w nazwach poleceń"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: nie znaleziono polecenia"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s jest %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
-msgstr "%s: %s: z³y interpreter"
+msgstr "%s: %s: zły interpreter"
+
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nie można uruchomić pliku binarnego: %s"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "`%s' jest specjalnym poleceniem wewnętrznym"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "nie mo¿na skopiowaæ deskryptora pliku %d do %d"
+msgstr "nie można skopiować deskryptora pliku %d do %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
-msgstr "przekroczone ograniczenie poziomu rekursji dla wyra¿enia"
+msgstr "przekroczone ograniczenie poziomu rekursji dla wyrażenia"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "niedomiar stosu rekursji"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
-msgstr "b³±d sk³adniowy w wyra¿eniu"
+msgstr "błąd składniowy w wyrażeniu"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
-msgstr "próba przypisania do nie-zmiennej"
+msgstr "próba przypisania do nie-zmiennej"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "dzielenie przez 0"
# ???
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
-msgstr "b³±d: z³y prefiks operatora przypisuj±cego"
+msgstr "błąd: zły prefiks operatora przypisującego"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
-msgstr "spodziewano siê `:' w wyra¿eniu warunkowym"
+msgstr "spodziewano się `:' w wyrażeniu warunkowym"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
-msgstr "wyk³adnik mniejszy ni¿ 0"
+msgstr "wykładnik mniejszy niż 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
"spodziewany identyfikator po operatorze preinkrementacji lub predekrementacji"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
-msgstr "brakuj±cy `)'"
+msgstr "brakujÄ…cy `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
-msgstr "b³±d sk³adni: spodziewany argument"
+msgstr "błąd składni: spodziewany argument"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
-msgstr "b³±d sk³adni: nieprawid³owy operator arytmetyczny"
+msgstr "błąd składni: nieprawidłowy operator arytmetyczny"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr ""
+msgstr "%s%s%s: %s (błędny znacznik to \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
-msgstr "nieprawid³owa podstawa arytmetyczna"
+msgstr "nieprawidłowa podstawa arytmetyczna"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
-msgstr "warto¶æ za du¿a na podstawê"
+msgstr "wartość za duża na podstawę"
-#: expr.c:1435
-#, fuzzy, c-format
+#: expr.c:1543
+#, c-format
msgid "%s: expression error\n"
-msgstr "%s: oczekiwano wyra¿enia ca³kowitego"
+msgstr "%s: błąd w wyrażeniu\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
-msgstr "getcwd: niemo¿liwy dostêp do katalogów nadrzêdnych"
+msgstr "getcwd: niemożliwy dostęp do katalogów nadrzędnych"
-#: input.c:94 subst.c:5082
-#, fuzzy, c-format
+#: input.c:102 subst.c:5168
+#, c-format
msgid "cannot reset nodelay mode for fd %d"
-msgstr "nie mo¿na wy³±czyæ trybu nieblokuj±cego dla deskryptora %d"
+msgstr "nie można wyłączyć trybu nieblokującego dla deskryptora %d"
-#: input.c:260
+#: input.c:271
#, 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"
+msgstr "nie można przydzielić nowego deskryptora pliku dla wejścia basha z %d"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr "save_bash_input: bufor dla nowego deskryptora %d ju¿ istnieje"
+msgstr "save_bash_input: bufor dla nowego deskryptora %d już istnieje"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
-msgstr ""
+msgstr "start_pipeline: pgrp pipe"
# ???
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
-msgstr "proces o PID %d wystêpuje w dzia³aj±cym zadaniu %d"
+msgstr "proces o PID %d występuje w działającym zadaniu %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
-msgstr "usuwanie zatrzymanego zadania %d z grup± procesów %ld"
+msgstr "usuwanie zatrzymanego zadania %d z grupą procesów %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr ""
+msgstr "add_process: proces %5ld (%s) w potoku"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
+msgstr "add_process: pid %5ld (%s) oznaczony jako nadal żywy"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: brak takiego PID-u"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
-msgstr ""
+msgstr "Sygnał %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
-msgstr ""
+msgstr "Zakończono"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
-msgstr ""
+msgstr "Zatrzymano"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
-msgstr ""
+msgstr "Zatrzymano(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
-msgstr ""
+msgstr "Działa"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
-msgstr ""
+msgstr "Zakończono(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
-msgstr ""
+msgstr "Kod wyjścia %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
-msgstr ""
+msgstr "Stan nieznany"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
-msgstr ""
+msgstr "(zrzut pamięci) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
-msgstr ""
+msgstr " (katalog: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "setpgid potomka (%ld na %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
-msgstr "wait: PID %ld nie jest potomkiem tej pow³oki"
+msgstr "wait: PID %ld nie jest potomkiem tej powłoki"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Brak rekordu dla procesu %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: zadanie %d jest zatrzymane"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
-msgstr "%s: zadanie zosta³o przerwane"
+msgstr "%s: zadanie zostało przerwane"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
-msgstr "%s: zadanie %d ju¿ pracuje w tle"
+msgstr "%s: zadanie %d już pracuje w tle"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
+"waitchld: wyłączanie WNOHANG w celu uniknięcia nieskończonego oczekiwania"
-#: jobs.c:3538
-#, fuzzy, c-format
+#: jobs.c:3711
+#, c-format
msgid "%s: line %d: "
-msgstr "%s: uwaga: "
+msgstr "%s: linia %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
-msgstr ""
+msgstr " (zrzut pamięci)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
-msgstr ""
+msgstr "(katalog: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
-msgstr ""
+msgstr "initialize_job_control: getpgrp nie powiodło się"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_job_control: dyscyplina linii"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr ""
+msgstr "nie można ustawić grupy procesów terminala (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
-msgstr "w tej pow³oce nie ma kontroli zadañ"
+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"
+msgstr "malloc: założenie, że %s nie jest spełnione\n"
#: lib/malloc/malloc.c:312
#, c-format
@@ -1190,64 +1240,63 @@ msgid ""
"malloc: %s:%d: assertion botched\r\n"
msgstr ""
"\r\n"
-"malloc: %s:%d: spartaczone za³o¿enie\r\n"
+"malloc: %s:%d: spartaczone założenie\r\n"
#: lib/malloc/malloc.c:313
-#, fuzzy
msgid "unknown"
-msgstr "%s: nieznany host"
+msgstr "nieznany"
# ???
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
-msgstr "malloc: nieprawid³owy blok na li¶cie wolnych bloków"
+msgstr "malloc: nieprawidłowy blok na liście wolnych bloków"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
-msgstr "free: wywo³ane dla bloku, który ju¿ zosta³ zwolniony"
+msgstr "free: wywołane dla bloku, który już został zwolniony"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
-msgstr "free: wywo³ane dla bloku, który nie zosta³ przydzielony"
+msgstr "free: wywołane dla bloku, który nie został przydzielony"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: wykryto niedomiar; mh_nbytes poza zakresem"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
-msgstr "free: rozmiar pocz±tkowy i koñcowy fragmentu s± ró¿ne"
+msgstr "free: rozmiar początkowy i końcowy fragmentu są różne"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
-msgstr "realloc: wywo³ane dla bloku, który nie zosta³ przydzielony"
+msgstr "realloc: wywołane dla bloku, który nie został przydzielony"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: wykryto niedomiar; mh_nbytes poza zakresem"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
-msgstr "realloc: rozmiar pocz±tkowy i koñcowy fragmentu s± ró¿ne"
+msgstr "realloc: rozmiar początkowy i końcowy fragmentu są różne"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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"
+msgstr "register_alloc: tablica alokacji jest pełna podczas FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
-msgstr "register_alloc: %p ju¿ znajduje siê w tablicy jako przydzielony?\n"
+msgstr "register_alloc: %p już znajduje się w tablicy jako przydzielony?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: %p ju¿ znajduje siê w tablicy jako wolny?\n"
+msgstr "register_free: %p już znajduje się w tablicy jako wolny?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
-msgstr "nieprawid³owa podstawa"
+msgstr "nieprawidłowa podstawa"
#: lib/sh/netopen.c:168
#, c-format
@@ -1257,1043 +1306,1064 @@ msgstr "%s: nieznany host"
#: lib/sh/netopen.c:175
#, c-format
msgid "%s: invalid service"
-msgstr "%s: nieznana us³uga"
+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"
+msgstr "%s: źle określona ścieżka sieciowa"
#: lib/sh/netopen.c:346
msgid "network operations not supported"
-msgstr "operacje sieciowe nie s± wspierane"
+msgstr "operacje sieciowe nie sÄ… wspierane"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: nie można zmienić lokalizacji (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: nie można zmienić lokalizacji (%s): %s"
-#: locale.c:247
-#, fuzzy, c-format
+#: locale.c:259
+#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów"
+msgstr "setlocale: %s: nie można zmienić lokalizacji (%s)"
-#: locale.c:249
-#, fuzzy, c-format
+#: locale.c:261
+#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów"
+msgstr "setlocale: %s: nie można zmienić lokalizacji (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
-msgstr "Masz pocztê w $_"
+msgstr "Masz pocztÄ™ w $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
-msgstr "Masz now± pocztê w $_"
+msgstr "Masz nowÄ… pocztÄ™ w $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Poczta w %s jest przeczytana\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr "b³±d sk³adni: oczekiwano wyra¿enia arytmetycznego"
+msgstr "błąd składni: oczekiwano wyrażenia arytmetycznego"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr "b³±d sk³adni: oczekiwany `;'"
+msgstr "błąd składni: oczekiwany `;'"
#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
-msgstr "b³±d sk³adni: `((%s))'"
+msgstr "błąd składni: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: z³y rodzaj instrukcji %d"
+msgstr "make_here_document: zły rodzaj instrukcji %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
+"dokument miejscowy w linii %d ograniczony końcem pliku (oczekiwano `%s')"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: instrukcja przekierowania `%d' poza zakresem"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
-msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `%c'"
+msgstr "nieoczekiwany EOF podczas poszukiwania pasujÄ…cego `%c'"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "nieoczekiwany EOF podczas poszukiwania `]]'"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "b³±d sk³adni w wyra¿eniu warunkowym: nieoczekiwany znacznik `%s'"
+msgstr "błąd składni w wyrażeniu warunkowym: nieoczekiwany znacznik `%s'"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
-msgstr "b³±d sk³adni w wyra¿eniu warunkowym"
+msgstr "błąd składni w wyrażeniu warunkowym"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "nieoczekiwany znacznik `%s', oczekiwano `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "oczekiwano `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "nieoczekiwany argument `%s' jednoargumentowego operatora warunkowego"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "nieoczekiwany argument jednoargumentowego operatora warunkowego"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "nieoczekiwany argument `%s', oczekiwano dwuarg. operatora warunkowego"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "oczekiwano dwuargumentowego operatora warunkowego"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "nieoczekiwany argument `%s' dwuargumentowego operatora warunkowego"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "nieoczekiwany argument dwuargumentowego operatora warunkowego"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "nieoczekiwany znacznik `%c' w poleceniu warunkowym"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "nieoczekiwany znacznik `%s' w poleceniu warunkowym"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "nieoczekiwany znacznik %d w poleceniu warunkowym"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
-msgstr "b³±d sk³adni przy nieoczekiwanym znaczniku `%s'"
+msgstr "błąd składni przy nieoczekiwanym znaczniku `%s'"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
-msgstr "b³±d sk³adni przy `%s'"
+msgstr "błąd składni przy `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
-msgstr "b³±d sk³adni: nieoczekiwany koniec pliku"
+msgstr "błąd składni: nieoczekiwany koniec pliku"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
-msgstr "b³±d sk³adni"
+msgstr "błąd składni"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
-msgstr "U¿yj \"%s\", aby opu¶ciæ tê pow³okê.\n"
+msgstr "Użyj \"%s\", aby opuścić tę powłokę.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
-msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `)'"
+msgstr "nieoczekiwany EOF podczas poszukiwania pasujÄ…cego `)'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
-msgstr "uzupe³nienie: nie znaleziono funkcji `%s'"
+msgstr "uzupełnienie: nie znaleziono funkcji `%s'"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
-msgstr "print_command: z³y ³±cznik `%d'"
+msgstr "print_command: zły łącznik `%d'"
-#: print_cmd.c:368
-#, fuzzy, c-format
+#: print_cmd.c:373
+#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "%d: nieprawid³owy deskryptor pliku: %s"
+msgstr "xtrace_set: %d: nieprawidłowy deskryptor pliku"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: pusty wskaźnik pliku"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
-msgstr "cprintf: `%c': nieprawid³owy znak formatuj±cy"
+msgstr "cprintf: `%c': nieprawidłowy znak formatujący"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "deskryptor pliku poza zakresem"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
-msgstr "%s: nieojednoznaczne przekierowanie"
+msgstr "%s: niejednoznaczne przekierowanie"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
-msgstr "%s: nie mo¿na nadpisaæ istniej±cego pliku"
+msgstr "%s: nie można nadpisać istniejącego pliku"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
-msgstr "%s: ograniczony: nie mo¿na przekierowaæ wyj¶cia"
+msgstr "%s: ograniczony: nie można przekierować wyjścia"
-#: redir.c:192
-#, fuzzy, c-format
+#: redir.c:191
+#, c-format
msgid "cannot create temp file for here-document: %s"
-msgstr "nie mo¿na utworzyæ pliku tymczasowego dla dokumentu miejscowego: %s"
+msgstr "nie można utworzyć pliku tymczasowego dla dokumentu miejscowego: %s"
-#: redir.c:196
-#, fuzzy, c-format
+#: redir.c:195
+#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy"
+msgstr "%s: nie można przypisać deskryptora pliku do zmiennej"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr "/dev/(tcp|udp)/host/port nie s± wspierane bez sieci"
+msgstr "/dev/(tcp|udp)/host/port nie sÄ… wspierane bez sieci"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
-msgstr "b³±d przekierowania: nie mo¿na powieliæ deskryptora pliku"
+msgstr "błąd przekierowania: nie można powielić deskryptora pliku"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
-msgstr "nie mo¿na znale¼æ /tmp, proszê o utworzenie!"
+msgstr "nie można znaleźć /tmp, proszę o utworzenie!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
-msgstr "/tmp musi byæ prawid³ow± nazw± katalogu"
+msgstr "/tmp musi być prawidłową nazwą katalogu"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
-msgstr "%c%c: nieprawid³owa opcja"
+msgstr "%c%c: nieprawidłowa opcja"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Nie mam nazwy!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
-msgstr ""
+msgstr "GNU bash, wersja %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, 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"
+"Użycie:\t%s [długa opcja GNU] [opcja] ...\n"
+"\t%s [długa opcja GNU] [opcja] plik-skryptu ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
-msgstr "D³ugie opcje GNU:\n"
+msgstr "DÅ‚ugie opcje GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
-msgstr "Opcje pow³oki:\n"
+msgstr "Opcje powłoki:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD lub -c polecenie lub -O shopt_option\t\t(tylko wywołanie)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s lub -o opcja\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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"
+"Aby uzyskać więcej informacji o opcjach powłoki, napisz `%s -c \"help set"
"\"'.\n"
-#: shell.c:1825
+#: shell.c:1857
#, 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"
+"Aby uzyskać więcej informacji o poleceniach wewnętrznych powłoki,\n"
"napisz `%s -c help'.\n"
-#: shell.c:1826
+#: shell.c:1858
#, 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"
+msgstr "Do zgłaszania błędów należy używać polecenia `bashbug'.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
-msgstr "sigprocmask: %d: nieprawid³owa operacja"
+msgstr "sigprocmask: %d: nieprawidłowa operacja"
#: siglist.c:48
msgid "Bogus signal"
-msgstr ""
+msgstr "Błędny sygnał"
#: siglist.c:51
msgid "Hangup"
-msgstr ""
+msgstr "Rozłączenie"
#: siglist.c:55
msgid "Interrupt"
-msgstr ""
+msgstr "Przerwanie"
#: siglist.c:59
msgid "Quit"
-msgstr ""
+msgstr "Wyjście"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr ""
+msgstr "Niedozwolona instrukcja"
#: siglist.c:67
msgid "BPT trace/trap"
-msgstr ""
+msgstr "Pułapka debuggera/breakpoint"
#: siglist.c:75
msgid "ABORT instruction"
-msgstr ""
+msgstr "Instrukcja ABORT"
#: siglist.c:79
msgid "EMT instruction"
-msgstr ""
+msgstr "Pułapka EMT"
#: siglist.c:83
msgid "Floating point exception"
-msgstr ""
+msgstr "BÅ‚Ä…d w obliczeniach zmiennoprzecinkowych"
#: siglist.c:87
msgid "Killed"
-msgstr ""
+msgstr "Unicestwiony"
#: siglist.c:91
-#, fuzzy
msgid "Bus error"
-msgstr "b³±d sk³adni"
+msgstr "BÅ‚Ä…d szyny"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr ""
+msgstr "Naruszenie ochrony pamięci"
#: siglist.c:99
msgid "Bad system call"
-msgstr ""
+msgstr "Błędne wywołanie systemowe"
#: siglist.c:103
msgid "Broken pipe"
-msgstr ""
+msgstr "Przerwany potok"
#: siglist.c:107
msgid "Alarm clock"
-msgstr ""
+msgstr "Budzik"
#: siglist.c:111
-#, fuzzy
msgid "Terminated"
-msgstr "ograniczony"
+msgstr "Zakończony"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr ""
+msgstr "Nagłe żądanie we/wy"
#: siglist.c:119
msgid "Stopped (signal)"
-msgstr ""
+msgstr "Zatrzymany (sygnał)"
#: siglist.c:127
msgid "Continue"
-msgstr ""
+msgstr "Kontynuacja"
#: siglist.c:135
msgid "Child death or stop"
-msgstr ""
+msgstr "Śmierć lub zatrzymanie potomka"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Zatrzymany (wejście z tty)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Zatrzymany (wyjście na tty)"
#: siglist.c:147
msgid "I/O ready"
-msgstr ""
+msgstr "We/wy gotowe"
#: siglist.c:151
msgid "CPU limit"
-msgstr ""
+msgstr "Przekroczony limit procesora"
#: siglist.c:155
msgid "File limit"
-msgstr ""
+msgstr "Przekroczony limit pliku"
#: siglist.c:159
msgid "Alarm (virtual)"
-msgstr ""
+msgstr "Alarm (wirtualny)"
#: siglist.c:163
msgid "Alarm (profile)"
-msgstr ""
+msgstr "Alarm (profiler)"
#: siglist.c:167
msgid "Window changed"
-msgstr ""
+msgstr "Okno zmienione"
#: siglist.c:171
msgid "Record lock"
-msgstr ""
+msgstr "Zasoby utracone"
#: siglist.c:175
msgid "User signal 1"
-msgstr ""
+msgstr "Sygnał użytkownika 1"
#: siglist.c:179
msgid "User signal 2"
-msgstr ""
+msgstr "Sygnał użytkownika 2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr ""
+msgstr "Dane wejściowe HFT"
#: siglist.c:187
msgid "power failure imminent"
-msgstr ""
+msgstr "Bliska awaria zasilania"
#: siglist.c:191
msgid "system crash imminent"
-msgstr ""
+msgstr "Bliska awaria systemu"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr ""
+msgstr "Przeniesienie procesu na inny procesor"
#: siglist.c:199
msgid "programming error"
-msgstr ""
+msgstr "BÅ‚Ä…d programowania"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "Nadany tryb monitora HFT"
#: siglist.c:207
msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "Wycofany tryb monitora HFT"
#: siglist.c:211
msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "Sekwencja dźwiękowa HFT zakończona"
#: siglist.c:215
msgid "Information request"
-msgstr ""
+msgstr "Żądanie informacji"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr ""
+msgstr "Nieznany sygnał #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr ""
+msgstr "Nieznany sygnał #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s"
+msgstr "złe podstawienie: brak zamykającego `%s' w %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
-msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy"
+msgstr "%s: nie można przypisać listy do elementu tablicy"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
-msgstr "nie mo¿na utworzyæ potoku dla podstawienia procesu"
+msgstr "nie można utworzyć potoku dla podstawienia procesu"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
-msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia procesu"
+msgstr "nie można utworzyć procesu potomnego dla podstawienia procesu"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
-msgstr "nie mo¿na otworzyæ nazwanego potoku %s do odczytu"
+msgstr "nie można otworzyć nazwanego potoku %s do odczytu"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr "nie mo¿na otworzyæ nazwanego potoku %s do zapisu"
+msgstr "nie można otworzyć nazwanego potoku %s do zapisu"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "nie mo¿na powieliæ nazwanego potoku %s jako deskryptor %d"
+msgstr "nie można powielić nazwanego potoku %s jako deskryptor %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
-msgstr "nie mo¿na utworzyæ potoku dla podstawienia polecenia"
+msgstr "nie można utworzyć potoku dla podstawienia polecenia"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
-msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia polecenia"
+msgstr "nie można utworzyć procesu potomnego dla podstawienia polecenia"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr "command_substitute: nie mo¿na powieliæ potoku jako deskryptora 1"
+msgstr "command_substitute: nie można powielić potoku jako deskryptora 1"
+
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: nieprawidłowa nazwa zmiennej przy odwołaniu do nazwy"
-#: subst.c:5859
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametr pusty lub nieustawiony"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
-msgstr "%s: wyra¿enie dla pod³añcucha < 0"
+msgstr "%s: wyrażenie dla podłańcucha < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
-msgstr "%s: z³e podstawienie"
+msgstr "%s: złe podstawienie"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
-msgstr "$%s: nie mo¿na przypisywaæ w ten sposób"
+msgstr "$%s: nie można przypisywać w ten sposób"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
+"przyszłe wersje powłoki będą wymuszać obliczenie jako podstawienie "
+"arytmetyczne"
-#: subst.c:8149
-#, fuzzy, c-format
+#: subst.c:8421
+#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s"
+msgstr "złe podstawienie: brak zamykającego \"`\" w %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
-msgstr "brak pasuj±cego: %s"
+msgstr "brak pasujÄ…cego: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "oczekiwano argumentu"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
-msgstr "%s: oczekiwano wyra¿enia ca³kowitego"
+msgstr "%s: oczekiwano wyrażenia całkowitego"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "oczekiwano `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "oczekiwano `)', znaleziono %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: oczekiwano operatora jednoargumentowego"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: oczekiwano operatora dwuargumentowego"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
-msgstr "brakuj±cy `]'"
+msgstr "brakujÄ…cy `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
-msgstr "nieprawid³owy numer sygna³u"
+msgstr "nieprawidłowy numer sygnału"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
-msgstr "run_pending_traps: z³a warto¶æ trap_list[%d]: %p"
+msgstr "run_pending_traps: zła wartość trap_list[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, 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"
+"run_pending_traps: obsługa sygnału jest ustawiona na SIG_DFL, wysyłając %d "
+"(%s) do siebie"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
-msgstr "trap_handler: z³y sygna³ %d"
+msgstr "trap_handler: zły sygnał %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
-msgstr "b³±d importu definicji funkcji dla `%s'"
+msgstr "błąd importu definicji funkcji dla `%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
-msgstr "poziom pow³oki (%d) jest za du¿y, ustawiono na 1"
+msgstr "poziom powłoki (%d) jest za duży, ustawiono na 1"
+
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: cykliczne odwołanie do nazwy"
-#: variables.c:1932
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
-msgstr "make_local_variable: brak kontekstu funkcji w bie¿±cym zakresie"
+msgstr "make_local_variable: brak kontekstu funkcji w bieżącym zakresie"
+
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: nie można przypisać wartości do zmiennej"
-#: variables.c:3182
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
-msgstr "all_local_variables: brak kontekstu funkcji w bie¿±cym zakresie"
+msgstr "all_local_variables: brak kontekstu funkcji w bieżącym zakresie"
-#: variables.c:3427
-#, fuzzy, c-format
+#: variables.c:3891
+#, c-format
msgid "%s has null exportstr"
-msgstr "%s: parametr pusty lub nieustawiony"
+msgstr "%s ma pusty exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
-msgstr "nieprawid³owy znak %d w exportstr dla %s"
+msgstr "nieprawidłowy znak %d w exportstr dla %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "brak `=' w exportstr dla %s"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: nag³ówek shell_variables poza kontekstem funkcji"
+msgstr "pop_var_context: nagłówek shell_variables poza kontekstem funkcji"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: brak kontekstu global_variables"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-"pop_scope: nag³ówek shell_variables poza zakresem tymczasowego ¶rodowiska"
+"pop_scope: nagłówek shell_variables poza zakresem tymczasowego środowiska"
-#: variables.c:4786
-#, fuzzy, c-format
+#: variables.c:5257
+#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: nie mo¿na otworzyæ: %s"
+msgstr "%s: %s: nie można otworzyć jako PLIK"
-#: variables.c:4791
-#, fuzzy, c-format
+#: variables.c:5262
+#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%d: nieprawid³owy deskryptor pliku: %s"
+msgstr "%s: %s: nieprawidłowa wartość dla deskryptora pliku do śledzenia"
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: wartość kompatybilna poza zakresem"
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n"
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
+"Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza <http://gnu.org/licenses/"
+"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr ""
+msgstr "GNU bash, wersja %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
+"To oprogramowanie jest wolnodostępne; można je swobodnie zmieniać i "
+"rozpowszechniać."
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Nie ma ŻADNEJ GWARANCJI w granicach dopuszczanych przez prawo."
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)"
+msgstr "%s: nie można przydzielić %lu bajtów (przydzielono %lu)"
#: xmalloc.c:93
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów"
+msgstr "%s: nie można przydzielić %lu bajtów"
#: xmalloc.c:163
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)"
+msgstr "%s: %s:%d: nie można przydzielić %lu bajtów (przydzielono %lu)"
#: xmalloc.c:165
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów"
+msgstr "%s: %s:%d: nie można przydzielić %lu bajtów"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
-msgstr ""
+msgstr "alias [-p] [nazwa[=wartość] ... ]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr ""
+msgstr "unalias [-a] nazwa [nazwa ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
+"bind [-lpvsPVSX] [-m mapa] [-f plik] [-q nazwa] [-u nazwa] [-r sekwencja] [-"
+"x sekwencja:polecenie-powłoki] [sekwencja:funkcja-readline lub polecenie-"
+"readline]"
#: builtins.c:54
msgid "break [n]"
-msgstr ""
+msgstr "break [n]"
#: builtins.c:56
msgid "continue [n]"
-msgstr ""
+msgstr "continue [n]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [polecenie-wbudowane [arg ... ]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr ""
+msgstr "caller [wyrażenie]"
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr ""
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [katalog]"
#: builtins.c:66
msgid "pwd [-LP]"
-msgstr ""
+msgstr "pwd [-LP]"
#: builtins.c:68
msgid ":"
-msgstr ""
+msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr ""
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr ""
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] polecenie [arg ...]"
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr ""
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [nazwa[=wartość] ...]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr ""
+msgstr "typeset [-aAfFgilrtux] [-p] nazwa[=wartość] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [opcja] nazwa[=wartość] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [arg ...]"
#: builtins.c:87
msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [arg ...]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f plik] [nazwa ...]"
#: builtins.c:92
msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [arg ...]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts łańcuch-opcji nazwa [arg]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a nazwa] [polecenie [argumenty ...]] [przekierowanie ...]"
#: builtins.c:98
msgid "exit [n]"
-msgstr ""
+msgstr "exit [n]"
#: builtins.c:100
msgid "logout [n]"
-msgstr ""
+msgstr "logout [n]"
#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
msgstr ""
+"fc [-e nazwa-ed] [-lnr] [pierwszy] [ostatni] lub fc -s [wz=zam] [polecenie]"
#: builtins.c:107
msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [zadanie]"
#: builtins.c:111
msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [zadanie ...]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p ścieżka] [-dt] [nazwa ...]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr ""
+msgstr "help [-dms] [wzorzec ...]"
#: builtins.c:121
msgid ""
"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
"[arg...]"
msgstr ""
+"history [-c] [-d offset] [n] lub history -anrw [plik] lub history -ps arg "
+"[arg ...]"
#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [zadanie ...] lub jobs -x polecenie [argumenty]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [zadanie ...]"
#: builtins.c:132
msgid ""
"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
"[sigspec]"
msgstr ""
+"kill [-s sygnał | -n numer-sygnału | -sygnał] pid | zadanie ... lub kill -l "
+"[sygnał]"
#: builtins.c:134
msgid "let arg [arg ...]"
-msgstr ""
+msgstr "let arg [arg ...]"
#: builtins.c:136
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
+"read [-ers] [-a tablica] [-d separator] [-i tekst] [-n liczba] [-N liczba] [-"
+"p zachęta] [-t czas] [-u fd] [nazwa ...]"
#: builtins.c:138
msgid "return [n]"
-msgstr ""
+msgstr "return [n]"
#: builtins.c:140
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr ""
+msgstr "set [-abefhkmnptuvxBCHP] [-o nazwa-opcji] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr ""
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [nazwa ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [nazwa[=wartość] ...] lub export -p"
#: builtins.c:146
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [aAf] [nazwa[=wartość] ...] lub readonly -p"
#: builtins.c:148
-#, fuzzy
msgid "shift [n]"
-msgstr "licznik przesuniêcia"
+msgstr "shift [n]"
#: builtins.c:150
-#, fuzzy
msgid "source filename [arguments]"
-msgstr "wymagany argument w postaci nazwy pliku"
+msgstr "source plik [argumenty]"
#: builtins.c:152
-#, fuzzy
msgid ". filename [arguments]"
-msgstr "wymagany argument w postaci nazwy pliku"
+msgstr ". plik [argumenty]"
#: builtins.c:155
msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr ""
+msgstr "test [wyrażenie]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr ""
+msgstr "[ arg... ]"
#: builtins.c:162
msgid "times"
-msgstr ""
+msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[arg] sygnał ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] nazwa [nazwa ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr ""
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [ograniczenie]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [uprawnienia]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr ""
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr ""
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for NAZWA [in SÅOWA ... ] ; do POLECENIA; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( wyr1; wyr2; wyr3 )); do POLECENIA; done"
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select NAZWA [in SÅOWA ... ;] do POLECENIA; done"
#: builtins.c:188
msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] potok"
#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case SÅOWO in [WZORZEC [| WZORZEC]...) POLECENIA ;;]... esac"
#: builtins.c:192
msgid ""
"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
"COMMANDS; ] fi"
msgstr ""
+"if POLECENIA; then POLECENIA; [ elif POLECENIA; then POLECENIA; ]... [ else "
+"POLECENIA; ] fi"
#: builtins.c:194
msgid "while COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "while POLECENIA; do POLECENIA; done"
#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until POLECENIA; do POLECENIA; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr ""
+msgstr "coproc [NAZWA] polecenie [przekierowania]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function nazwa { POLECENIA ; } lub nazwa () { POLECENIA ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ POLECENIA ; }"
#: builtins.c:204
msgid "job_spec [&]"
-msgstr ""
+msgstr "zadanie [&]"
#: builtins.c:206
-#, fuzzy
msgid "(( expression ))"
-msgstr "spodziewano siê wyra¿enia"
+msgstr "(( wyrażenie ))"
#: builtins.c:208
-#, fuzzy
msgid "[[ expression ]]"
-msgstr "spodziewano siê wyra¿enia"
+msgstr "[[ wyrażenie ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "zmienne - nazwy i znaczenie niektórych zmiennych powłoki"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
-msgstr ""
+msgstr "pushd [-n] [+N | -N | katalog]"
#: builtins.c:217
msgid "popd [-n] [+N | -N]"
-msgstr ""
+msgstr "popd [-n] [+N | -N]"
#: builtins.c:221
msgid "dirs [-clpv] [+N] [-N]"
-msgstr ""
+msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [nazwa-opcji ...]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v var] format [argumenty]"
#: builtins.c:229
msgid ""
@@ -2301,31 +2371,40 @@ msgid ""
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opcja] [-A akcja] [-G wzorzec-glob] "
+"[-W lista-słów] [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P "
+"przedrostek] [-S przyrostek] [nazwa ...]"
#: builtins.c:233
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 opcja] [-A akcja] [-G wzorzec-glob] [-W lista-"
+"słów] [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P przedrostek ] [-S "
+"przyrostek] [słowo]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o opcja] [-DE] [nazwa ...]"
#: builtins.c:240
msgid ""
"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"mapfile [-n liczba] [-O początek] [-s liczba] [-t] [-u fd] [-C wywołanie] [-"
+"c co-ile] [tablica]"
#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"readarray [-n liczba] [-O początek] [-s liczba] [-t] [-u fd] [-C wywołanie] "
+"[-c co-ile] [tablica]"
#: builtins.c:254
-#, fuzzy
msgid ""
"Define or display aliases.\n"
" \n"
@@ -2344,16 +2423,27 @@ msgid ""
"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."
+"Definiowanie i wyświetlanie aliasów.\n"
+" \n"
+" Bez argumentów `alias' wypisuje na standardowym wyjściu listę aliasów\n"
+" w postaci alias NAZWA=WARTOŚĆ.\n"
+" \n"
+" W przeciwnym przypadku definiowany jest alias dla każdej NAZWY, dla "
+"której\n"
+" podano WARTOŚĆ. Spacja na końcu WARTOŚCI powoduje, że podczas "
+"rozwijania\n"
+" tego aliasu podstawienie aliasów będzie przeprowadzone także dla\n"
+" następnego słowa.\n"
+" \n"
+" Opcje:\n"
+" -p\tWypisanie wszystkich zdefiniowanych aliasów w formacie do\n"
+" \tponownego użycia\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie alias zwraca prawdę, chyba że poda się NAZWĘ, dla której nie\n"
+" zdefiniowano aliasu."
#: builtins.c:276
-#, fuzzy
msgid ""
"Remove each NAME from the list of defined aliases.\n"
" \n"
@@ -2362,11 +2452,14 @@ msgid ""
" \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."
+"Usuwa wszystkich NAZW z listy zdefiniowanych aliasów.\n"
+" \n"
+" Opcje:\n"
+" -a\tusunięcie wszystkich definicji aliasów.\n"
+" \n"
+" Zwracana jest prawda, chyba że NAZWA nie jest istniejącym aliasem."
#: builtins.c:289
-#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2400,49 +2493,62 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\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"
+"Ustawianie przypisań klawiszy i zmiennych Readline.\n"
+" \n"
+" Przypisanie sekwencji klawiszy do funkcji Readline lub makra albo\n"
+" ustawienie zmiennej Readline. Składnia pozbawiona opcji jest równoważna\n"
+" stosowanej w ~/.inputrc, ale musi być przekazana jako jeden argument, "
+"np.:\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"
+" \n"
+" Opcje:\n"
+" -m MAPA Użycie MAPY 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 "
+" -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"
+" -S Wypisanie sekwencji klawiszy wywołujących makra "
"oraz\n"
-" ich warto¶ci.\n"
-" -s Wypisanie sekwencji klawiszy wywo³uj±cych makra "
+" 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 "
+" ich wartości w postaci nadającej się do użycia "
"jako\n"
-" dane wej¶ciowe."
+" dane wejściowe.\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"
+" -q nazwa-funkcji Określenie, które klawisze wywołują zadaną "
+"funkcjÄ™.\n"
+" -u nazwa-funkcji Anulowanie wszystkich dowiązań dla klawiszy\n"
+" przypisanych do funkcji o podanej nazwie.\n"
+" -r sekwencja Usunięcie dowiązania dla SEKWENCJI klawiszy.\n"
+" -f plik Odczyt dowiązań dla klawiszy z podanego PLIKU.\n"
+" -x sekwencja:polecenie-powłoki\tPowoduje uruchomienie POLECENIA-"
+"POWÅOKI\n"
+" \t\t\t\tgdy wprowadzona zostanie podana SEKWENCJA klawiszy.\n"
+" -X Lista sekwencji klawiszy przypisanych przez -x "
+"oraz\n"
+" powiÄ…zane polecenia w postaci nadajÄ…cej siÄ™ do "
+"użycia\n"
+" jako dane wejściowe.\n"
+" \n"
+" Stan wyjściowy:\n"
+" bind zwraca 0, chyba że podano nieznaną opcję lub wystąpi błąd."
-#: builtins.c:326
-#, fuzzy
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2452,11 +2558,16 @@ msgid ""
" 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."
+"Wyjście z pętli for, while lub until.\n"
+" \n"
+" Wyjście z pętli FOR, WHILE lub UNTIL. Jeśli podano N, sterowanie "
+"wychodzi\n"
+" za N-tą zagnieżdżoną pętlę.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Instrukcja zwraca prawdę, chyba że N jest mniejsze niż 1."
-#: builtins.c:338
-#, fuzzy
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2466,10 +2577,15 @@ msgid ""
" 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."
+"Wznowienie pętli for, while lub until.\n"
+" \n"
+" Wznowienie następnej iteracji otaczającej pętli FOR, WHILE lub UNTIL.\n"
+" Jeśli podano N, to wznawiana jest N-ta otaczająca pętla.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Instrukcja zwraca 0, chyba że N jest mniejsze niż 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2482,9 +2598,19 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
+"Wywołanie polecenia wbudowanego powłoki.\n"
+" \n"
+" Wywołanie POLECENIA-WBUDOWANEGO z argumentami ARG bez wykonywania\n"
+" wyszukiwania polecenia. Jest to przydatne w przypadku ponownego\n"
+" implementowania polecenia wbudowanego jako funkcji powłoki i "
+"wywoływania\n"
+" polecenia wbudowanego z wewnÄ…trz tej funkcji.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Instrukcja zwraca stan wyjściowy POLECENIA-WBUDOWANEGO lub fałsz, jeśli\n"
+" POLECENIE-WBUDOWANE nie jest poleceniem wbudowanym powłoki."
-#: builtins.c:365
-#, fuzzy
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2499,17 +2625,22 @@ msgid ""
" 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"
+"Zwrócenie kontekstu wywołania bieżącej procedury.\n"
+" \n"
+" Bez WYRAŻENIA zwracane jest \"$linia $plik\". Z WYRAŻENIEM zwracane "
+"jest\n"
+" \"$linia $procedura $plik\"; dodatkowe informacje służą do "
+"udostępnienia\n"
+" śladu stosu.\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"
+" Wartość WYRAŻENIA określa o ile ramek wywołań względem bieżącej ramki\n"
+" należy się cofnąć; numer najwyższej ramki to 0.\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."
+" Stan wyjściowy:\n"
+" Polecenie zwraca 0, chyba że powłoka nie wykonuje funkcji lub WYRAŻENIE\n"
+" jest nieprawidłowe."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2532,33 +2663,65 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; 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"
+"Zmiana bieżącego katalogu powłoki.\n"
+" \n"
+" Zmiana bieżącego katalogu na KATALOG. Domyślnym KATALOGIEM jest wartość\n"
+" zmiennej powłoki HOME.\n"
+" \n"
+" Zmienna CDPATH określa ścieżkę przeszukiwania w poszukiwaniu katalogu\n"
+" zawierającego KATALOG. 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:414
+" bieżący. Jeśli KATALOG zaczyna się od ukośnika (/), to CDPATH nie\n"
+" nie jest używane.\n"
+" \n"
+" Gdy katalog nie zostanie znaleziony, a ustawiona jest zmienna powłoki\n"
+" `cdable_vars', to następuje próba użycia podanej nazwy jako nazwy "
+"zmiennej.\n"
+" Jeśli zmienna ta ma wartość, to jako KATALOG jest używana jej wartość.\n"
+" \n"
+" Opcje:\n"
+" -L\twymuszenie śledzenia dowiązań symbolicznych: rozwiązanie\n"
+" \tdowiązań w KATALOGU po przetworzeniu wszystkich `..'\n"
+" -P\tkorzystanie z fizycznej struktury katalogów zamiast śledzenia\n"
+" \tdowiązań symbolicznych: rozwiązanie dowiązań w KATALOGU przed\n"
+" \tprzetworzeniem wszystkich `..'\n"
+" -e\tjeśli podano opcję -P, a nie można określić bieżącego katalogu,\n"
+" \tpolecenie kończy się stanem niezerowym\n"
+" -@ na systemach obsługujących je, zaprezentowanie pliku mającego\n"
+" rozszerzone atrybuty jako katalogu zawierajÄ…cego atrybuty pliku\n"
+" \n"
+" Domyślne jest śledzenie dowiązań symbolicznych, jak z opcją `-L'.\n"
+" `..' jest przetwarzane przez usunięcie bezpośredniego poprzedniego\n"
+" elementu ścieżki przed ukośnikiem lub początkiem KATALOGU.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie zwraca 0 jeśli katalog został zmieniony oraz $PWD zostało\n"
+" zmienione pomyślnie w przypadku użycia -P; w przeciwnym razie zwraca\n"
+" wartość niezerową."
+
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2573,9 +2736,19 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
+"Wypisanie nazwy bieżącego katalogu roboczego.\n"
+" \n"
+" Opcje:\n"
+" -L\twypisanie wartości $PWD jeśli określa bieżący katalog roboczy\n"
+" -P\twypisanie katalogu fizycznego, bez dowiązań symbolicznych\n"
+" \n"
+" Domyślnie `pwd' zachowuje się tak, jak z opcją `-L'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie zwraca 0, chyba że podano nieprawidłową opcję lub katalog\n"
+" bieżący nie może być odczytany."
-#: builtins.c:431
-#, fuzzy
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2584,27 +2757,38 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
-"¯adnego efektu; polecenie nic nie robi. Jako kod zakoñczenia\n"
-" zwracane jest zero."
+"Polecenie puste.\n"
+" \n"
+" Żadnego efektu; polecenie nic nie robi.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zawsze zwracana jest prawda."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Zwrócenie wyniku pozytywnego.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zawsze zwracana jest prawda."
-#: builtins.c:451
-#, fuzzy
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
" Exit Status:\n"
" Always fails."
-msgstr "Zwracany jest niepomy¶lny wynik zakoñczenia."
+msgstr ""
+"Zwrócenie wyniku negatywnego.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zawsze zwracany jest fałsz."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2622,9 +2806,24 @@ msgid ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
+"Wywołanie prostego polecenia lub wyświetlenie informacji o poleceniach.\n"
+" \n"
+" Uruchomienie POLECENIA z ARGUMENTAMI z pominięciem wyszukiwania funkcji\n"
+" powłoki lub wyświetlenie informacji o podanych POLECENIACH. Może być "
+"użyte\n"
+" do wywołania poleceń z dysku jeśli już istnieje funkcja o danej nazwie.\n"
+" \n"
+" Opcje:\n"
+" -p\tużycie domyślnej wartości PATH, pod którą powinny być wszystkie\n"
+" \tstandardowe narzędzia\n"
+" -v\twypisanie opisu POLECENIA w sposób podobny do polecenia `type'\n"
+" -V\twypisanie szczegółowego opisu każdego POLECENIA\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie zwraca stan POLECENIA lub fałsz, jeśli POLECENIE nie zostało\n"
+" znalezione."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2644,6 +2843,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2659,42 +2859,56 @@ msgid ""
" command. The `-g' option suppresses this behavior.\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:517
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Ustawienie wartości i atrybutów zmiennej.\n"
+" \n"
+" Deklaracja zmiennych i nadanie im wartości. Jeśli nie podano NAZW,\n"
+" wyświetlane są atrybuty i wartości wszystkich zmiennych.\n"
+" \n"
+" Opcje:\n"
+" -f\tograniczenie akcji lub wyświetlania do nazw i definicji funkcji\n"
+" -F\tograniczenie wyświetlania tylko do nazw funkcji (oraz numeru\n"
+" \tlinii i pliku źródłowego w przypadku diagnostyki)\n"
+" -g\ttworzenie zmiennych globalnych w przypadku użycia w funkcji\n"
+" \tpowłoki; w przeciwnym wypadku ignorowane\n"
+" -p\twyświetlenie atrybutów i wartości dla każdej NAZWY\n"
+" \n"
+" Opcje ustawiajÄ…ce atrybuty:\n"
+" -a\tczyni NAZWĘ tablicą indeksowaną (jeśli są one obsługiwane)\n"
+" -A\tczyni NAZWĘ tablicą asocjacyjną (jeśli są one obsługiwane)\n"
+" -i\tnadaje NAZWIE atrybut `integer' (zmiennej całkowitej)\n"
+" -l\tprzekształca NAZWĘ na małe litery przy przypisaniu\n"
+" -n\tczyni NAZWĘ odwołaniem do zmiennej o nazwie wskazanej przez "
+"wartość\n"
+" -r\tczyni NAZWĘ tylko do odczytu\n"
+" -t\tnadaje NAZWIE atrybut `trace'\n"
+" -u\tprzekształca NAZWĘ na wielkie litery przy przypisaniu\n"
+" -x\teksportuje NAZWĘ\n"
+" \n"
+" Użycie `+' zamiast `-' wyłącza podany atrybut.\n"
+" \n"
+" Zmienne z atrybutem `integer' mają obliczaną wartość arytmetyczną\n"
+" (jak w poleceniu `let') podczas przypisywania wartości.\n"
+" \n"
+" W przypadku użycia w funkcji `declare' czyni NAZWĘ lokalną, podobnie\n"
+" jak polecenie `local'. Opcja `-g' zmienia to zachowanie.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie zwraca prawdę, chyba że podano błędną opcję lub wystąpi błąd."
+
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
+"Ustawienie wartości i atrybutów zmiennej.\n"
+" \n"
+" Polecenie przestarzałe - p. `help declare'."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2705,16 +2919,28 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
+"Definiowanie zmiennych lokalnych.\n"
+" \n"
+" Utworzenie zmiennej lokalnej o podanej NAZWIE i nadanie jej WARTOÅšCI.\n"
+" OPCJA może być dowolną opcją przyjmowaną przez `declare'.\n"
+" \n"
+" Zmienne lokalne mogą być używane tylko w funkcji; są widoczne wyłącznie\n"
+" w funkcji, w której zostały zdefiniowanej, oraz jej potomkach.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję, wystąpi błąd przy\n"
+" przypisaniu zmiennej lub powłoka nie wykonuje żadnej funkcji."
-#: builtins.c:542
-#, fuzzy
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2726,6 +2952,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2740,26 +2967,40 @@ msgid ""
" 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:576
+"Wypisanie argumentów na standardowym wyjściu.\n"
+" \n"
+" Wypisanie na standardowym wyjściu argumentów ARG oddzielonych "
+"pojedynczymi\n"
+" spacjami oraz znaku końca linii.\n"
+" \n"
+" Opcje:\n"
+" -n\tniedołączanie znaku końca linii\n"
+" -e\twłączenie interpretowania poniższych znaków poprzedzonych\n"
+" \todwrotnym ukośnikiem\n"
+" -E\twyłączenie interpretowania poniższych znaków poprzedzonych\n"
+" \todwrotnym ukośnikiem\n"
+" \n"
+" `echo' interpretuje następujące znaki poprzedzone odwrotnym ukośnikiem:\n"
+" \\a\talarm (dzwonek)\n"
+" \\b\tcofnięcie\n"
+" \\c\tpominięcie dalszego wyjścia (w tym znaku nowego wiersza)\n"
+" \\e\tznak ESCAPE\n"
+" \\E\tznak ESCAPE\n"
+" \\f\twysuw strony\n"
+" \\n\tnowy wiersz\n"
+" \\r\tpowrót karetki\n"
+" \\t\ttabulacja pozioma\n"
+" \\v\ttabulacja pionowa\n"
+" \\\\\todwrotny ukośnik\n"
+" \\0nnn\tznak o kodzie ASCII NNN (ósemkowo). NNN może stanowić od\n"
+" \t0 do 3 cyfr ósemkowych\n"
+" \\xHH\tznak ośmiobitowy o wartości HH (szesnastkowo). HH może być\n"
+" \tjednÄ… lub dwiema cyframi szesnastkowymi\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że wystąpi błąd zapisu."
+
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2771,8 +3012,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
+"Wypisanie argumentów na standardowym wyjściu.\n"
+" \n"
+" Wypisanie na standardowym wyjściu argumentów ARG i znaku końca linii.\n"
+" \n"
+" Opcje:\n"
+" -n\tniedołączanie znaku końca linii\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że wystąpi błąd zapisu."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2798,8 +3048,35 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
+"Włączanie i wyłączanie poleceń wbudowanych powłoki.\n"
+" \n"
+" Włączanie i wyłączanie poleceń wbudowanych powłoki. Wyłączenie pozwala\n"
+" na wykonanie polecenia z dysku, majÄ…cego tÄ™ samÄ… nazwÄ™, co polecenie\n"
+" wbudowane bez używania pełnej ścieżki.\n"
+" \n"
+" Opcje:\n"
+" -a\twypisanie listy poleceń wbudowanych z informacją, które są "
+"włączone\n"
+" -n\twyłączenie każdej NAZWY lub wypisanie listy wyłączonych poleceń\n"
+" -p\twypisanie listy poleceń w formacie do ponownego użycia\n"
+" -s\twypisanie tylko nazw posiksowych \"specjalnych\" poleceń "
+"wbudowanych\n"
+" \n"
+" Opcje sterujÄ…ce dynamicznym Å‚adowaniem:\n"
+" -f\tWczytanie polecenia wbudowanego NAZWA z obiektu współdzielonego "
+"PLIK\n"
+" -d\tUsunięcie polecenia wczytanego przez -f\n"
+" \n"
+" Bez opcji włączana jest każda NAZWA.\n"
+" \n"
+" Aby użyć polecenia `test' z $PATH zamiast wersji wbudowanej, należy\n"
+" wykonać `enable -n test'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że NAZWA nie jest poleceniem wbudowanym lub\n"
+" wystąpi błąd."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2810,8 +3087,16 @@ msgid ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
msgstr ""
+"Wykonanie argumentów jako polecenia powłoki.\n"
+" \n"
+" Połączenie argumentów ARG w pojedynczy łańcuch, użycie rezultatu jako\n"
+" wejścia dla powłoki i wykonanie wynikowych poleceń.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest stan wyjściowy polecenia lub prawdę, jeśli polecenie jest\n"
+" puste."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2851,8 +3136,53 @@ msgid ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
msgstr ""
-
-#: builtins.c:673
+"Analiza opcji z argumentów.\n"
+" \n"
+" Polecenie getopts jest używane przez procedury powłoki przy "
+"analizowaniu\n"
+" parametrów pozycyjnych jako opcji.\n"
+" \n"
+" ÅAŃCUCH-OPCJI zawiera litery opcji, które majÄ… być rozpoznane; jeÅ›li po\n"
+" literze następuje dwukropek, opcja wymaga argumentu, który powinien być\n"
+" oddzielony od opcji spacjÄ….\n"
+" \n"
+" Przy każdym wywołaniu getopts umieszcza następną opcję w zmiennej "
+"powłoki\n"
+" $nazwa, inicjując ją, jeśli nie istnieje; natomiast indeks następnego\n"
+" argumentu do przetworzenia jest umieszczany w zmiennej powłoki OPTIND\n"
+" OPTIND jest inicjowany wartością 1 przy każdym wywołaniu powłoki lub\n"
+" skryptu powłoki. Jeśli opcja wymaga argumentu, getopts umieszcza ten\n"
+" argument w zmiennej powłoki OPTARG.\n"
+" \n"
+" getopts zgłasza błędy na jeden z dwóch sposobów. Jeśli pierwszy znak\n"
+" ÅAŃCUCHA-OPCJI jest dwukropkiem, getopts wykorzystuje ciche zgÅ‚aszanie\n"
+" błędów. W tym trybie komunikaty błędów nie są wypisywane. Jeśli "
+"napotkana\n"
+" zostanie błędna opcja, getopts umieszcza znak opcji w OPTARG. Jeśli\n"
+" nie znaleziono wymaganego argumentu, getopts umieszcza znak ':' w "
+"NAZWIE\n"
+" i ustawia OPTARG na napotkany znak opcji. Jeśli getopts nie jest w "
+"trybie\n"
+" cichym i napotkana zostanie błędna opcja, getopts umieszcza znak '?'\n"
+" w NAZWIE i anuluje OPTARG. Jeśli nie znaleziono wymaganego argumentu,\n"
+" w NAZWIE umieszczany jest znak '?', OPTARG jest anulowany i wypisywany\n"
+" jest komunikat diagnostyczny.\n"
+" \n"
+" Jeśli zmienna powłoki OPTERR ma wartość 0, getopts wyłącza wypisywanie\n"
+" komunikatów bÅ‚Ä™dów, nawet jeÅ›li pierwszym znakiem ÅAŃCUCHA-OPCJI nie "
+"jest\n"
+" dwukropek. OPTERR domyślnie ma wartość 1.\n"
+" \n"
+" Polecenie getopts normalnie przetwarza parametry pozycyjne ($0 - $9), "
+"ale\n"
+" jeśli podano więcej argumentów, są one przetwarzane zamiast nich.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, jeśli napotkano opcję; fałsz, jeśli wystąpi "
+"koniec\n"
+" opcji lub błąd."
+
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2874,19 +3204,38 @@ msgid ""
" Returns success unless COMMAND is not found or a redirection error "
"occurs."
msgstr ""
+"Zastąpienie powłoki podanym poleceniem.\n"
+" \n"
+" Wywoływane jest POLECENIE, zastępując tę powłokę podanym programem.\n"
+" ARGUMENTY stają się argumentami POLECENIA. Jeśli nie podano POLECENIA,\n"
+" wszystkie podane przekierowania odnoszą skutek dla bieżącej powłoki.\n"
+" \n"
+" Opcje:\n"
+" -a nazwa\tprzekazanie NAZWY jako zerowego argumentu POLECENIA\n"
+" -c\t\twywołanie POLECENIA z pustym środowiskiem\n"
+" -l\t\tumieszczenie kreski w zerowym argumencie POLECENIA\n"
+" \n"
+" Jeśli polecenia nie można wywołać, powłoka nieinteraktywna kończy się,\n"
+" chyba że ustawiona jest opcja powłoki `execfail'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że nie uda się znaleźć POLECENIA lub "
+"wystÄ…pi\n"
+" błąd przekierowania."
-#: builtins.c:694
-#, fuzzy
+#: builtins.c:706
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."
+"Opuszczenie powłoki.\n"
+" \n"
+" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2894,9 +3243,12 @@ msgid ""
"executed\n"
" in a login shell."
msgstr ""
+"Opuszczenie powłoki logowania.\n"
+" \n"
+" Opuszczenie powłoki logowania z kodem zakończenia N. Zwraca błąd, jeśli\n"
+" powłoka nie jest powłoką logowania."
-#: builtins.c:713
-#, fuzzy
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2925,30 +3277,37 @@ msgid ""
" 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"
+"Wyświetlanie lub wykonywanie poleceń z listy historii.\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"
+" fc służy do wypisywania, edycji i ponownego uruchamiania poleceń z "
+"listy\n"
+" historii. PIERWSZY i OSTATNI jako liczby określają zakres lub PIERWSZY\n"
+" jako napis oznacza najpóźniej wykonywane polecenie zaczynające się od "
+"tego\n"
+" napisu.\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"
+" Opcje:\n"
+" -e NAZWA-ED\tokreśla edytor, który ma być używany. Domyślnymi\n"
+" \twartościami są: najpierw FCEDIT, potem EDITOR, a na końcu vi\n"
+" -l\twypisywanie wierszy zamiast ich edycji\n"
+" -n\tniewypisywanie numerów wierszy\n"
+" -r\todwrócenie kolejności wierszy (czyniąc najnowsze wypisane\n"
+" \tpolecenie 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"
+" Przy wywołaniu polecenia w postaci `fc -s [wz=zam ...] [polecenie]',\n"
+" jest ono wywoływane ponownie po wykonaniu podstawienia WZ=ZAM.\n"
" \n"
-" Przydatnym aliasem korzystaj±cym z tego jest r='fc -s' tak, ¿e "
+" 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 cc' uruchamia ostatnie polecenie zaczynaj±ce siê od `cc' a napisanie\n"
-" `r' uruchamia ponownie ostatnie polecenie."
+" `r' uruchamia ponownie ostatnie polecenie.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda lub stan wykonanego polecenia; wartość niezerowa\n"
+" w przypadku błędu."
-#: builtins.c:743
-#, fuzzy
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2959,12 +3318,17 @@ msgid ""
" 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"
+"Przeniesienie zadania na pierwszy plan.\n"
+" \n"
+" Umieszczenie ZADANIA na pierwszym planie oraz uczynienie go bieżącym\n"
+" zadaniem. Jeśli nie określono ZADANIA, użyte zostanie zadanie bieżące\n"
+" w rozumieniu powłoki.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Stan zadania umieszczonego na pierwszym planie lub fałsz, jeśli wystąpi\n"
+" błąd."
-#: builtins.c:758
-#, fuzzy
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2977,11 +3341,17 @@ msgid ""
" 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"
+"Przeniesienie zadań w tło.\n"
+" \n"
+" Umieszczenie wszystkich ZADAŃ w tle tak, jakby zostały uruchomione\n"
+" z `&'. Jeśli nie określono ZADAŃ, użyte zostanie zadanie bieżące\n"
+" w rozumieniu powłoki.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że sterowanie zadaniami nie jest włączone\n"
+" lub wystąpi błąd."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2992,7 +3362,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3004,8 +3374,28 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
+"Zapamiętanie lub wypisanie położenia programów.\n"
+" \n"
+" Określenie i zapamiętanie pełnej ścieżki każdego polecenia NAZWA. Jeśli\n"
+" nie podano argumentów, wyświetlane są informacje o zapamiętanych\n"
+" poleceniach.\n"
+" \n"
+" Opcje:\n"
+" -d\t\tzapomnienie położenia każdej NAZWY\n"
+" -l\t\twypisanie w formacie do wykorzystania jako wejście\n"
+" -p ścieżka\tużycie ŚCIEŻKI jako pełnej ścieżki NAZWY\n"
+" -r\t\tzapomnienie wszystkich pamiętanych położeń\n"
+" -t\t\twypisanie pamiętanych położeń każdej NAZWY poprzedzając\n"
+" \t\tkażde położenie odpowiednią NAZWĄ, jeśli podano wiele NAZW\n"
+" Argumenty:\n"
+" NAZWA\t\tKażda nazwa jest wyszukiwana w $PATH i dodawana do listy\n"
+" \t\tpamiętanych poleceń.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że nie znaleziono NAZWY lub podano błędną\n"
+" opcjÄ™."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3026,8 +3416,27 @@ msgid ""
" Returns success unless PATTERN is not found or an invalid option is "
"given."
msgstr ""
+"Wyświetlenie informacji o poleceniach wbudowanych.\n"
+" \n"
+" Wyświetlenie krótkiego przeglądu poleceń wbudowanych. Jeśli podano\n"
+" WZORZEC, wypisywany jest szczegółowy opis wszystkich poleceń pasujących "
+"do\n"
+" WZORCA, w przeciwnym wypadku - lista tematów.\n"
+" \n"
+" Opcje:\n"
+" -d\twypisanie krótkiego opisu każdego tematu\n"
+" -m\twyświetlenie sposobu użycia w formacie zbliżonym do stron man\n"
+" -s\twypisanie tylko krótkiej informacji o składni dla każdego\n"
+" \ttematu pasujÄ…cego do WZORCA\n"
+" \n"
+" Argumenty:\n"
+" WZORZEC\tWzorzec określający temat pomocy\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że WZORCA nie znaleziono lub podano błędną\n"
+" opcjÄ™."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3060,8 +3469,43 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
+"Wyświetlanie i modyfikowanie listy historii.\n"
+" \n"
+" Wyświetlanie listy historii z numerami linii z oznaczeniem każdej\n"
+" zmodyfikowanej linii przedrostkiem `*'. Podanie argumentu N wypisuje\n"
+" tylko ostatnich N wpisów.\n"
+" \n"
+" Opcje:\n"
+" -c\twyczyszczenie listy historii poprzez usunięcie wszystkich wpisów\n"
+" -d offset\tusunięcie wpisu historii o podanym OFFSECIE\n"
+" \n"
+" -a\tdołączenie linii historii z tej sesji do pliku historii\n"
+" -n\todczyt wszystkich jeszcze nie przeczytanych linii z pliku\n"
+" \thistorii\n"
+" -r\todczyt pliku historii i dołączenie zawartości do listy historii\n"
+" -w\tzapis bieżącej historii do pliku historii\n"
+" \n"
+" -p\trozwinięcie wg historii każdego ARG i wypisanie wyniku bez\n"
+" \tzapisywania go na liście historii\n"
+" -s\tdołączenie wszystkich ARG do listy historii jako pojedynczych\n"
+" \twpisów\n"
+" \n"
+" Jeśli podano PLIK, jest używany jako plik historii. W przeciwnym "
+"wypadku\n"
+" używany jest $HISTFILE, a jeśli ta zmienna nie jest ustawiona -\n"
+" ~/.bash_history.\n"
+" \n"
+" Jeśli zmienna $HISTTIMEFORMAT jest ustawiona i niepusta, jej wartość "
+"jest\n"
+" używana jako łańcuch formatujący dla strftime(3) do wypisywania momentu\n"
+" czasu powiązanego z każdym wypisywanym wpisem. W przeciwnym wypadku "
+"czas\n"
+" nie jest wypisywany.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd."
-#: builtins.c:857
+#: builtins.c:869
#, fuzzy
msgid ""
"Display status of jobs.\n"
@@ -3071,7 +3515,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3085,20 +3529,30 @@ msgid ""
" 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:884
+"Wyświetlenie stanu zadań.\n"
+" \n"
+" Wypisanie aktywnych zadań. ZADANIE ogranicza wyjście tylko do tego "
+"zadania.\n"
+" Bez opcji wypisywany jest stan wszystkich aktywnych zadań.\n"
+" \n"
+" Opcje:\n"
+" -l\twypisanie dodatkowo numerów PID procesów\n"
+" -n\twypisanie tylko procesów, które zmieniły stan od ostatniego\n"
+" \tpowiadomienia\n"
+" -p\twypisanie tylko numerów PID procesów\n"
+" -r\tograniczenie wyjścia do zadań działających\n"
+" -s\tograniczenie wyjścia do zadań zatrzymanych\n"
+" \n"
+" Przy podaniu -x, uruchamiane jet polecenie podane POLECENIE po "
+"zastÄ…pieniu\n"
+" każdej z występujących w argumentach ARG specyfikacji zadań numerem PID\n"
+" procesu wiodÄ…cego danego zadania.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd.\n"
+" Jeśli użyto -x, zwracany jest stan wyjściowy POLECENIA."
+
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3114,9 +3568,21 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
+"Usunięcie poleceń z bieżącej powłoki.\n"
+" \n"
+" Usunięcie każdego podanego ZADANIA z tablicy aktywnych zadań. Bez\n"
+" podania ZADANIA powłoka używa pojęcia bieżącego zadania.\n"
+" \n"
+" Opcje:\n"
+" -a\tusunięcie wszystkich zadań, jeśli nie podano ZADANIA\n"
+" -h\toznaczenie każdego zadania tak, że SIGHUP nie jest wysyłany do\n"
+" \tzadania, jeśli powłoka otrzyma SIGHUP\n"
+" -r\tusunięcie tylko działających zadań\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub ZADANIE."
-#: builtins.c:903
-#, fuzzy
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3137,17 +3603,29 @@ msgid ""
" 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:926
-#, fuzzy
+"Wysłanie sygnału do zadania.\n"
+" \n"
+" Wysłanie do procesów określonych przez PID lub ZADANIE sygnału o nazwie\n"
+" SYGNAÅ lub NUMERZE-SYGNAÅU. JeÅ›li nie podano SYGNAÅU ani NUMERU-"
+"SYGNAÅU,\n"
+" przyjmowany jest SIGTERM.\n"
+" \n"
+" Opcje:\n"
+" -s SYG\tSYG jest nazwą sygnału\n"
+" -n SYG\tSYG jest numerem sygnału\n"
+" -l\tlista nazw sygnałów; jeśli `-l' występuje z argumentami, są one\n"
+" \ttraktowane jako numery sygnałów, dla których mają być wypisane nazwy\n"
+" \n"
+" Kill jest poleceniem wewnętrznym z dwóch powodów: umożliwia korzystanie\n"
+" z identyfikatorów zadań zamiast numerów PID oraz, w przypadku "
+"osiągnięcia\n"
+" ograniczenia na liczbę procesów, nie powoduje potrzeby uruchamiania\n"
+" dodatkowego procesu, aby jakiś zabić.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest sukces, chyba że podano błędną opcję lub wystąpi błąd."
+
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3191,24 +3669,27 @@ msgid ""
" 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 "
+"Obliczanie wyrażeń arytmetycznych.\n"
+" \n"
+" Obliczenie każdego argumentu ARG jako wyrażenia arytmetycznego. "
+"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"
+" jako błąd. Poniższa lista operatorów jest pogrupowana na poziomy\n"
+" operatorów o jednakowym priorytecie. Poziomy są wypisane w kolejności\n"
+" 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\tpotęgowanie\n"
+" \t*, /, %\t\tmnożenie, dzielenie, 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\tprzesunięcie bitowe w lewo i w prawo\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"
@@ -3220,20 +3701,20 @@ msgstr ""
" \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"
+" 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"
+" 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."
+" Stan wyjściowy:\n"
+" Jeśli wartością ostatniego argumentu jest 0, let zwraca 1;\n"
+" w pozostałych przypadkach zwracane jest 0."
-#: builtins.c:971
-#, fuzzy
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3268,44 +3749,73 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\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:1014
+"Odczyt wiersza ze standardowego wejścia i podział go na pola.\n"
+" \n"
+" Odczytanie wiersza ze standardowego wejścia lub deskryptora FD (jeśli\n"
+" podano opcję -u). Wiersz jest dzielony na pola wg reguł podziału na "
+"słowa,\n"
+" pierwsze słowo jest przypisywane pierwszej NAZWIE, drugie - drugiej "
+"NAZWIE\n"
+" itd.; wszystkie pozostałe słowa są przypisywane ostatniej NAZWIE. Jako\n"
+" ograniczniki słów są rozpoznawane tylko znaki ze zmiennej $IFS.\n"
+" \n"
+" Jeśli nie podano NAZW, odczytany wiersz jest zapisywany w zmiennej "
+"REPLY.\n"
+" \n"
+" Opcje:\n"
+" -a tablica\tprzypisanie odczytanych słów do indeksów sekwencyjnych\n"
+" \t\tzmiennej tablicowej TABLICA, poczÄ…wszy od zera\n"
+" -d ogr\tkontynuacja do odczytu pierwszego znaku OGR zamiast znaku "
+"nowej\n"
+" \t\tlinii\n"
+" -e\t\tużycie Readline'a do odczytania wiersza w powłoce interaktywnej\n"
+" -o tekst\tużycie TEKSTU jako początkowego tekstu dla Readline'a\n"
+" -n liczba\tpowrót po odczycie LICZBY znaków zamiast oczekiwania na\n"
+" \t\tznak nowej linii; ogranicznik jest honorowany, jeśli odczytano "
+"mniej\n"
+" \t\tniż podana LICZBA znaków przed ogranicznikiem\n"
+" -N liczba\tpowrót tylko po odczycie dokładnie podanej LICZBY znaków,\n"
+" \t\tchyba że zostanie napotkany EOF lub opłynie czas; ograniczniki są\n"
+" \t\tignorowane\n"
+" -p zachęta\twypisanie łańcucha ZACHĘTY bez końcowego znaku nowej "
+"linii\n"
+" \t\tprzed próbą odczytu\n"
+" -r\t\twyłączenie interpretowania odwrotnych ukośników jako "
+"przedrostka\n"
+" \t\tznaków specjalnych\n"
+" -s\t\tbez wypisywania wejścia pochodzącego z terminala\n"
+" -t czas\tzakończenie i zwrócenie niepowodzenia, jeśli nie zostanie\n"
+" \t\todczytany cały wiersz przed upłynięciem podanego CZASU (w "
+"sekundach).\n"
+" \t\tWartość zmiennej TMOUT jest domyślnym limitem czasu. CZAS może być\n"
+" \t\tułamkowy. Przy wartości 0 odczyt powiedzie się tylko wtedy, gdy\n"
+" \t\twejście jest dostępne na podanym deskryptorze. Kod (stan) wyjściowy\n"
+" \t\tw przypadku osiągnięcia limitu czasu jest większy niż 128\n"
+" -u fd\t\todczyt z deskryptora pliku FD zamiast ze standardowego "
+"wejścia\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest wartość 0, chyba że zostanie napotkany koniec pliku,\n"
+" osiągnięty limit czasu (w tym przypadku jest większy niż 128), wystąpi\n"
+" błąd przypisania zmiennej albo podano nieprawidłowy deskryptor dla\n"
+" argumentu -u."
+
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3316,9 +3826,17 @@ msgid ""
" Exit Status:\n"
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
+"Powrót z funkcji powłoki.\n"
+" \n"
+" Polecenie powoduje, że funkcja lub włączony skrypt kończy się zwracając\n"
+" wartość podaną jako N. Jeśli pominięto N, stanem wyjściowym będzie stan\n"
+" ostatniego polecenia wykonanego w funkcji lub skrypcie.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracane jest N lub niepowodzenie, jeśli powłoka nie wykonuje żadnej\n"
+" funkcji ani skryptu."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3384,7 +3902,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3402,93 +3920,98 @@ msgid ""
" 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 "
+"Ustawianie lub anulowanie opcji powłoki i parametrów pozycyjnych.\n"
+" \n"
+" Zmiana wartości atrybutów powłoki i parametrów pozycyjnych lub\n"
+" wyświetlenie nazw i wartości zmiennych powłoki.\n"
+" \n"
+" Opcje:\n"
+" -a Oznaczenie zmiennych, które zostały zmodyfikowane lub utworzone\n"
+" jako eksportowane.\n"
+" -b Natychmiastowe powiadomienie o zakończeniu zadania.\n"
+" -e Natychmiastowe zakończenie, gdy polecenie zakończy się z\n"
+" niezerowym stanem (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\n"
+" o postaci przypisania, nie tylko tych, które poprzedzają nazwę\n"
+" polecenia.\n"
+" -m Włączenie kontroli zadań.\n"
+" -n Czytanie poleceń bez wykonywania 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 niekończenie powłoki po odczytaniu EOF\n"
+" interactive-comments\n"
+" zezwolenie na wystÄ…pienie komentarzy\n"
+" w poleceniach interaktywnych\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"
+" POSIX 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 "
+"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:1112
+" 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, niepozwalanie 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 interaktywnej.\n"
+" -P Gdy ustawione, nierozwiązywanie 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"
+" -- Przypisanie pozostałych argumentów do parametrów pozycyjnych.\n"
+" Jeśli nie ma więcej argumentów, parametry pozycyjne są anulowane.\n"
+" - Przypisanie pozostałych 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 "
+"nich\n"
+" także korzystać przy uruchomieniu powłoki. Aktualny zestaw opcji można\n"
+" znaleźć w $-. Pozostałe n argumentów staje się parametrami pozycyjnymi\n"
+" i sÄ… one przypisane, kolejno, do $1, $2, .. $n. Gdy nie zostanÄ… podane\n"
+" żadne argumenty, wypisywane są wszystkie zmienne powłoki.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano nieprawidłową opcję."
+
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3497,6 +4020,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3507,8 +4032,28 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
+"Anulowanie wartości i atrybutów zmiennych i funkcji powłoki.\n"
+" \n"
+" Usunięcie zmiennych i funkcji o podanych NAZWACH.\n"
+" \n"
+" Opcje:\n"
+" -f\tpotraktowanie wszystkich NAZW jako funkcji powłoki\n"
+" -v\tpotraktowanie wszystkich NAZW jako zmiennych powłoki\n"
+" -n\tpotraktowanie wszystkich NAZW jako referencji do nazw\n"
+" \ti anulowanie samej zmiennej zamiast tej, do której się odnosi\n"
+" \n"
+" Bez opcji unset próbuje najpierw anulować definicję zmiennej, a jeśli "
+"to\n"
+" się nie powiedzie, próbuje anulować definicję funkcji.\n"
+" \n"
+" Niektórych zmiennych nie można usunąć - p. `readonly'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub NAZWA jest tylko "
+"do\n"
+" odczytu."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3526,8 +4071,24 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
+"Ustawienie atrybutu eksportowania dla zmiennych powłoki.\n"
+" \n"
+" Zaznaczenie każdej NAZWY do automatycznego eksportowania do środowiska\n"
+" później wywoływanych poleceń. Jeśli podano WARTOŚĆ, jest ona "
+"przypisywana\n"
+" przed eksportowaniem.\n"
+" \n"
+" Opcje:\n"
+" -f\tdziałanie na funkcjach powłoki\n"
+" -n\tusunięcie atrybutu eksportowania z każdej NAZWY\n"
+" -p\twyświetlenie listy wszystkich eksportowanych zmiennych i funkcji\n"
+" \n"
+" Argument `--' kończy dalsze przetwarzanie opcji.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano nieprawidłową opcję lub NAZWĘ."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3539,15 +4100,36 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\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 ""
+"Oznaczenie zmiennych powłoki jako niezmiennych.\n"
+" \n"
+" Oznaczenie każdej NAZWY jako tylko do odczytu; wartości tych NAZW nie "
+"mogÄ…\n"
+" być zmieniane przez późniejsze podstawienia. Jeśli podano WARTOŚĆ, jest\n"
+" ona przypisywana przed oznaczeniem jako tylko do odczytu.\n"
+" \n"
+" Opcje:\n"
+" -a\tdziałanie na zmiennych tablicowych indeksowanych\n"
+" -A\tdziałanie na zmiennych tablicowych asocjacyjnych\n"
+" -f\tdziałanie na funkcjach powłoki\n"
+" -p\twyświetlenie listy wszystkich zmiennych lub funkcji tylko do "
+"odczytu,\n"
+" w zależności od tego, czy podano opcję -f\n"
+" \n"
+" Argument `--' wyłącza dalsze przetwarzanie opcji.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano nieprawidłową opcję lub NAZWĘ."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3557,9 +4139,15 @@ msgid ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
msgstr ""
+"Przesunięcie argumentów pozycyjnych.\n"
+" \n"
+" Zmiana nazw argumentów pozycyjnych $N+1,$N+2 ... na $1,$2 ...\n"
+" Jeśli nie podano N, przyjmuje się 1.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że N jest ujemne lub większe niż $#."
-#: builtins.c:1184 builtins.c:1199
-#, fuzzy
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3572,12 +4160,19 @@ msgid ""
" 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."
+"Wykonanie poleceń z pliku w bieżącej powłoce.\n"
+" \n"
+" Odczytanie i uruchomienie poleceń z PLIKU w bieżącej powłoce. Do\n"
+" znalezienia katalogu zawierającego PLIK używane są ścieżki zawarte\n"
+" w $PATH. Jeśli podane zostaną jakiekolwiek ARGUMENTY, stają się\n"
+" parametrami pozycyjnymi podczas uruchomienia PLIKU.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest stan ostatnio wykonanego polecenia z PLIKU lub błąd, "
+"jeśli\n"
+" PLIKU nie udało się odczytać."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3590,9 +4185,22 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
+"Wstrzymanie wykonywania powłoki.\n"
+" \n"
+" Wstrzymanie wykonywania danego skryptu do czasu otrzymania sygnału\n"
+" SIGCONT. Jeśli nie podano opcji wymuszenia, powłoki logowania nie można\n"
+" wstrzymać.\n"
+" \n"
+" Opcje:\n"
+" -f\twymuszenie wstrzymania, nawet jeśli powłoka jest powłoką "
+"logowania\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że kontrola zadań jest wyłączona lub "
+"wystÄ…pi\n"
+" błąd."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3657,6 +4265,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3672,96 +4282,110 @@ msgid ""
" 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"
+"Obliczenie wyrażenia warunkowego.\n"
+" \n"
+" Polecenie zwracające kod 0 (prawda) lub 1 (fałsz) w zależności od "
+"wyniku\n"
+" obliczenia WYRAŻENIA. Wyrażenia mogą mieć postać jedno- lub "
+"dwuargumentowÄ….\n"
+" Jednoargumentowe wyrażenia służą zwykle do badania stanu pliku. "
+"IstniejÄ…\n"
+" również operatory działające na łańcuchach tekstowych, jak też "
+"operatory\n"
+" numerycznego porównania.\n"
+" \n"
+" Zachowanie polecenia test zależy od liczby argumentów. Pełną "
+"specyfikacjÄ™\n"
+" można znaleźć w podręczniku man do basha.\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"
+" -a PLIK Prawda, gdy PLIK istnieje.\n"
+" -b PLIK Prawda, gdy PLIK jest plikiem specjalnym urzÄ…dzenia\n"
+" blokowego.\n"
+" -c PLIK Prawda, gdy PLIK jest plikiem specjalnym urzÄ…dzenia\n"
+" znakowego.\n"
+" -d PLIK Prawda, gdy PLIK jest katalogiem.\n"
+" -e PLIK Prawda, gdy PLIK istnieje.\n"
+" -f PLIK Prawda, gdy PLIK istnieje i jest zwykłym plikiem.\n"
+" -g PLIK Prawda, gdy PLIK ma ustawiony bit SGID.\n"
+" -h PLIK Prawda, gdy PLIK jest dowiÄ…zaniem symbolicznym.\n"
+" -L PLIK Prawda, gdy PLIK jest dowiÄ…zaniem symbolicznym.\n"
+" -k PLIK Prawda, gdy PLIK ma ustawiony bit `sticky'.\n"
+" -p PLIK Prawda, gdy PLIK jest nazwanym potokiem.\n"
+" -r PLIK Prawda, gdy PLIK jest odczytywalny przez użytkownika.\n"
+" -s PLIK Prawda, gdy PLIK istnieje i jest niepusty.\n"
+" -S PLIK Prawda, gdy PLIK jest gniazdem.\n"
+" -t FD Prawda, gdy deskryptor FD jest otwarty na terminalu.\n"
+" -u FILE Prawda, gdy PLIK ma ustawiony bit SUID.\n"
+" -w FILE Prawda, gdy PLIK jest zapisywalny przez użytkownika.\n"
+" -x FILE Prawda, gdy PLIK jest uruchamialny przez użytkownika.\n"
+" -O FILE Prawda, gdy użytkownik jest efektywnym właścicielem "
+"PLIKU.\n"
+" -G FILE Prawda, grupa użytkownika jest efektywnym właścicielem\n"
+" PLIKU.\n"
+" -N FILE Prawda, gdy PLIK został zmodyfikowany po ostatnim\n"
+" odczycie.\n"
+" \n"
+" PLIK1 -nt PLIK2 Prawda, gdy PLIK1 jest nowszy niż PLIK2 (porównując\n"
" czas ostatniej modyfikacji).\n"
" \n"
-" FILE1 -ot FILE2 Prawda, gdy FILE1 jest starszy ni¿ FILE2.\n"
+" PLIK1 -ot PLIK2 Prawda, gdy PLIK1 jest starszy niż PLIK2.\n"
" \n"
-" FILE1 -ef FILE2 Prawda, gdy FILE1 jest twardym dowi±zaniem do FILE2.\n"
+" PLIK1 -ef PLIK2 Prawda, gdy PLIK1 jest twardym dowiÄ…zaniem do PLIK2.\n"
" \n"
-" Operatory ³añcuchowe:\n"
+" Operatory łańcuchowe:\n"
" \n"
-" -z STRING Prawda, gdy STRING jest pusty.\n"
+" -z ÅAŃCUCH Prawda, gdy ÅAŃCUCH jest pusty.\n"
" \n"
-" -n STRING\n"
-" STRING Prawda, gdy STRING nie jest pusty.\n"
+" -n ÅAŃCUCH\n"
+" ÅAŃCUCH Prawda, gdy ÅAŃCUCH 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"
+" ÅAŃCUCH1 = ÅAŃCUCH2\n"
+" Prawda, gdy ÅAŃCUCH1 i ÅAŃCUCH2 sÄ… równe.\n"
+" ÅAŃCUCH1 != ÅAŃCUCH2\n"
+" Prawda, gdy ÅAŃCUCH1 i ÅAŃCUCH2 nie sÄ… równe.\n"
+" ÅAŃCUCH1 < ÅAŃCUCH2\n"
+" Prawda, gdy ÅAŃCUCH1 znajduje siÄ™ w porzÄ…dku\n"
+" leksykograficznym przed ÅAŃCUCHEM2.\n"
+" ÅAŃCUCH1 > ÅAŃCUCH2\n"
+" Prawda, gdy ÅAŃCUCH1 znajduje siÄ™ w porzÄ…dku\n"
+" leksykograficznym po ÅAŃCUCHU2.\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"
+" -o OPCJA Prawda, gdy podana OPCJA powłoki jest włączona.\n"
+" -v ZMIENNA Prawda, gdy ZMIENNA powłoki jest ustawiona\n"
+" -R ZMIENNA Prawda, gdy zmienna powłoki jest ustawiona i jest\n"
+" referencjÄ… do nazwy\n"
+" ! WYRAŻENIE Prawda, gdy WYRAŻENIE jest fałszywe.\n"
+" WYR1 -a WYR2 Prawda, gdy zarówno WYR1, jak i WYR2 są prawdziwe.\n"
+" WYR1 -o WYR2 Prawda, gdy WYR1 lub WYR2 jest prawdziwe.\n"
" \n"
-" arg1 OP arg2 Testy arytmetyczne. OP jest jednym z -eq, -ne, -lt,\n"
-" -le, -gt lub -ge.\n"
+" arg1 OP arg2 Testy arytmetyczne. OP jest jednym z operatorów:\n"
+" -eq, -ne, -lt, -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."
+" 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.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, jeśli wartością WYRAŻENIA jest prawda; fałsz, gdy\n"
+" wartością WYRAŻENIA jest fałsz lub podano błędny argument."
-#: builtins.c:1311
-#, fuzzy
+#: builtins.c:1329
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 `['."
+"Obliczenie wyrażenia warunkowego.\n"
+" \n"
+" Jest to synonim dla wbudowanego polecenia \"test\", ale wymagajÄ…cy, by\n"
+" ostatnim argumentem był `]' pasujący do początkowego `['."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3772,9 +4396,16 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Wyświetlenie czasów procesu.\n"
+" \n"
+" Wypisanie łącznych czasów w przestrzeni użytkownika i systemu dla "
+"powłoki\n"
+" i wszystkich procesów potomnych.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zawsze prawda."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3817,27 +4448,49 @@ msgid ""
" 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. <signal.h> 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:1368
+"Przechwytywanie sygnałów i innych zdarzeń.\n"
+" \n"
+" Polecenie definiujące i włączające daną akcję w przypadku, kiedy "
+"powłoka\n"
+" otrzyma sygnał lub pod innymi warunkami.\n"
+" \n"
+" Gdy powłoka otrzyma podany SYGNAŠ(lub sygnały), odczytywane i "
+"uruchamiane\n"
+" jest polecenie podane jako argument ARG. W razie braku argumentu (i "
+"podaniu\n"
+" pojedynczego SYGNAÅU) lub gdy argumentem jest `-', każdemu z podanych\n"
+" sygnałów jest przywracane pierwotne zachowanie. Jeśli ARG jest pustym\n"
+" łańcuchem, każdy SYGNAŠjest ignorowany przez powłokę i wywołane przez "
+"niÄ…\n"
+" polecenia.\n"
+" \n"
+" Jeżeli jako SYGNAŠpodano EXIT (0), polecenie ARG jest uruchamiane przy\n"
+" opuszczaniu powłoki. Jeśli jako SYGNAŠpodano DEBUG, ARG jest "
+"uruchamiane\n"
+" po każdym poleceniu prostym. Jeśli jako SYGNAŠpodano RETURN, ARG jest\n"
+" uruchamiane przy każdym zakończeniu funkcji powłoki lub skryptu\n"
+" uruchamianego przez polecenia wbudowane . lub source. JeÅ›li jako SYGNAÅ\n"
+" podano ERR, ARG jest uruchamiane za każdym razem, kiedy niepowodzenie\n"
+" polecenia spowodowałoby zakończenie powłoki w przypadku włączenia opcji -"
+"e.\n"
+" \n"
+" Jeśli nie podano argumentów, trap wypisuje listę poleceń przypisanych "
+"do\n"
+" każdego sygnału.\n"
+" \n"
+" Opcje:\n"
+" -l\twypisanie listy nazw sygnałów i ich numerów\n"
+" -p\twypisanie poleceÅ„ trap powiÄ…zanych z każdym SYGNAÅEM\n"
+" \n"
+" Każdy podawany SYGNAŠmoże być nazwą sygnału wg. <signal.h> lub numerem\n"
+" sygnału. Nazwy sygnałów są niewrażliwe na wielkość liter, a prefiks SIG\n"
+" jest opcjonalny. Sygnał do powłoki można wysłać poleceniem\n"
+" \"kill -sygnał $$\".\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędny SYGNAŠlub błędną opcję."
+
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3866,9 +4519,36 @@ msgid ""
" Returns success if all of the NAMEs are found; fails if any are not "
"found."
msgstr ""
-
-#: builtins.c:1399
-#, fuzzy
+"Wyświetlenie informacji o rodzaju polecenia.\n"
+" \n"
+" Określenie, w jaki sposób byłaby interpretowana każda NAZWA w przypadku\n"
+" użycia jako polecenie.\n"
+" \n"
+" Opcje:\n"
+" -a\twyświetlenie wszystkich położeń zawierających program wykonywalny\n"
+" \to podanej NAZWIE; obejmuje aliasy, polecenia wbudowane i funkcje "
+"tylko\n"
+" \tjeśli nie podano dodatkowo opcji `-p'\n"
+" -f\tpominięcie wyszukiwania funkcji powłoki\n"
+" -P\twymuszenie wyszukiwania w PATH każdej nazwy, nawet jeśli jest\n"
+" \taliasem, poleceniem wbudowanym lub funkcją i zwrócenie nazwy pliku na\n"
+" \tdysku\n"
+" -p\tzwrócenie nazwy pliku na dysku lub niczego, jeśli `type -t NAZWA'\n"
+" \tnie zwróciłoby `file'.\n"
+" -t\tzwrócenie pojedynczego słowa: `alias', `keyword', `function',\n"
+" \t`builtin', `file' lub `', jeśli nazwa jest odpowiednio: aliasem,\n"
+" \tzarezerwowanym słowem kluczowym powłoki, funkcją powłoki, poleceniem\n"
+" \twbudowanym powłoki, plikiem na dysku lub nie zostanie znaleziona\n"
+" \n"
+" Argumenty:\n"
+" NAZWA\tNazwa polecenia do zinterpretowania.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, jeśli każda NAZWA zostanie znaleziona; fałsz, "
+"jeśli\n"
+" którakolwiek nie zostanie znaleziona."
+
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3897,6 +4577,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3911,44 +4594,55 @@ msgid ""
" 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:1444
+"Modyfikowanie limitów zasobów powłoki.\n"
+" \n"
+" Ulimit zapewnia kontrolę ilości zasobów udostępnionych powłoce i "
+"procesom\n"
+" w systemach, które taką kontrolę umożliwiają.\n"
+" \n"
+" Opcje:\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"
+" -b\trozmiar bufora dla gniazd\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 "
+"potomków\n"
+" -i\tmaksymalna liczba oczekujących sygnałów\n"
+" -l\tmaksymalny rozmiar pamięci, którą proces może zablokować\n"
+" -m\tmaksymalny rozmiar obszaru rezydentnego 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 "
+"rzeczywistego\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"
+" -T\tmaksymalna liczba wątków\n"
+" \n"
+" Nie wszystkie opcje są dostępne na wszystkich platformach.\n"
+" \n"
+" Gdy podano wartość LIMITU, stanowi ona nową wartość ograniczenia dla\n"
+" danego zasobu; specjalne wartości LIMITU: `soft', `hard' i `unlimited'\n"
+" oznaczają, odpowiednio, aktualne ograniczenie miękkie, sztywne i brak\n"
+" ograniczenia. W przeciwnym przypadku wypisywana jest aktualna wartość\n"
+" podanego ograniczenia. Gdy nie podano opcji, przyjmuje się, że podano -"
+"f.\n"
+" \n"
+" Wartości są podawane w jednostkach 1024-bajtowych, za wyjątkiem -t, "
+"które\n"
+" jest w sekundach, -p, które jest w jednostkach 512-bajtowych oraz -u, "
+"które\n"
+" jest bezwymiarową liczbą procesów.\n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd."
+
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3965,46 +4659,91 @@ msgid ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
+"Wyświetlanie i ustawianie maski uprawnień plików.\n"
+" \n"
+" Ustawienie maski uprawnień tworzonych plików na UPRAWNIENIA. Jeśli\n"
+" pominięto UPRAWNIENIA, wypisywana jest aktualna wartość maski.\n"
+" \n"
+" Jeśli UPRAWNIENIA zaczynają się od cyfry, są interpretowane jako liczba\n"
+" ósemkowa; w przeciwnym wypadku jako łańcuch symbolicznych uprawnień,\n"
+" jak w poleceniu chmod(1).\n"
+" \n"
+" Opcje:\n"
+" -p\tjeśli pominięto UPRAWNIENIA, wypisywanie w formie nadającej się\n"
+" \tdo ponownego użycia jako wejście\n"
+" -S\twyjście w postaci symbolicznej; bez tej opcji jest ósemkowe\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędne uprawnienia lub błędną "
+"opcjÄ™."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
+"Oczekiwanie na zakończenie zadania i zwrócenie stanu (kodu) wyjścia.\n"
+" \n"
+" Oczekiwanie na każdy proces o podanym identyfikatorze ID, który może "
+"być\n"
+" numerem PID lub określeniem zadania i zgłoszenie jego stanu (kodu)\n"
+" zakończenia. Jeśli nie podano ID, polecenie oczekuje na wszystkie "
+"aktualnie\n"
+" aktywne procesy potomne i zwraca prawdę. Jeśli ID jest określeniem "
+"zadania,\n"
+" oczekuje na wszystkie procesy w potoku przetwarzania danego zadania.\n"
+" \n"
+" Jeśli podano opcję -n, oczekiwanie na zakończenie następnego zadania\n"
+" i zwrócenie jego kodu zakończenia.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest stan zakończenia ID; niepowodzenie, jeśli ID jest\n"
+" nieprawidłowe lub podano błędną opcję."
-#: builtins.c:1482
-#, fuzzy
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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:1497
-#, fuzzy
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"Oczekiwanie na zakończenie procesu i zwrócenie stanu (kodu) wyjścia.\n"
+" \n"
+" Oczekiwanie na każdy z procesów podany przez PID i zgłoszenie jego "
+"statusu\n"
+" zakończenia. Gdy nie zostanie podany PID, oczekiwanie dotyczy "
+"wszystkich\n"
+" aktualnie aktywnych procesów potomnych, a kodem powrotu jest zero. PID "
+"musi\n"
+" być identyfikatorem procesu.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status ID lub niepowodzenie, jeśli ID jest błędny lub "
+"podano\n"
+" nieprawidłową opcję."
+
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4016,14 +4755,18 @@ msgid ""
" 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 \"$@"
+"Wykonanie poleceń dla każdego elementu z listy.\n"
+" \n"
+" Pętla `for' uruchamia ciąg poleceń dla każdego elementu podanej listy. "
+"Gdy\n"
+" nie zostanie podane `in SÅOWA ...;', zakÅ‚ada siÄ™, że podano `in \"$@"
"\"'.\n"
-" Dla ka¿dego elementu WORDS, NAME jest ustawiane na ten element\n"
-" i uruchamiane s± COMMANDS."
+" Dla każdego elementu SÅÓW, NAZWA jest ustawiana na ten element\n"
+" i uruchamiane sÄ… POLECENIA. \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1511
-#, fuzzy
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4039,17 +4782,21 @@ msgid ""
" 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"
+"Arytmetyczna pętla for.\n"
+" \n"
+" Równoważne\n"
+" \t(( WYR1 ))\n"
+" \twhile (( WYR2 )); do\n"
+" \t\tPOLECENIA\n"
+" \t\t(( WYR3 ))\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."
+" WYR1, WYR2 i WYR3 są wyrażeniami arytmetycznymi. Jeśli któreś z wyrażeń\n"
+" zostanie pominięte, zachowanie jest takie, jakby miało ono wartość "
+"1. \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1529
-#, fuzzy
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4068,21 +4815,25 @@ msgid ""
" 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:1550
-#, fuzzy
+"Wybór słów z listy i wykonanie poleceń.\n"
+" SÅOWA sÄ… rozwijane, co tworzy listÄ™ słów. Zbiór rozwiniÄ™tych słów\n"
+" wypisywany jest na standardowym wyjściu diagnostycznym, a każde słowo "
+"jest\n"
+" poprzedzone przez liczbÄ™. Gdy nie zostanie podane `in SÅOWA', 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 NAZWA jest\n"
+" ustawiana na to sÅ‚owo. Gdy wiersz jest pusty, SÅOWA i tekst zachÄ™ty sÄ…\n"
+" wyświetlane ponownie. Gdy odczytany zostanie EOF, polecenie się kończy.\n"
+" Każda inna wartość powoduje przypisanie NAZWIE wartości pustej. "
+"Odczytany\n"
+" wiersz jest zachowywany w zmiennej REPLY. Po każdym wyborze uruchamiane\n"
+" są POLECENIA aż do polecenia break. \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
+
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4097,19 +4848,22 @@ msgid ""
" 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:1567
-#, fuzzy
+"Zgłoszenie czasu zajętego przez wykonanie potoku poleceń.\n"
+" \n"
+" Uruchomienie POTOKU poleceń i wypisanie podsumowania zawierającego czas\n"
+" rzeczywisty, czas procesora w trybie użytkownika oraz czas procesora\n"
+" w trybie systemu, jakie spędził POTOK poleceń do chwili zakończenia.\n"
+" \n"
+" Opcje:\n"
+" -p\twypisanie podsumowania czasów w przenośnym formacie POSIX\n"
+" \n"
+" Jako format danych wyjściowych używana jest wartość zmiennej "
+"TIMEFORMAT.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Polecenie zwraca status zakończenia POTOKU poleceń."
+
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4119,12 +4873,15 @@ msgid ""
" 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."
+"Wykonanie poleceń w oparciu o dopasowanie do wzorców.\n"
+" \n"
+" Wybiórcze uruchamianie POLECEŃ w zależnoÅ›ci od tego, czy SÅOWO pasuje\n"
+" do WZORCA. Znak `|' służy do rozdzielania wielu wzorców.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1579
-#, fuzzy
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4144,18 +4901,23 @@ msgid ""
" 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"
+"Wykonanie poleceń w zależności od spełnienia warunku.\n"
+" \n"
+" Uruchamiana jest lista `if POLECENIA'. Gdy jej kod powrotu jest zerem,\n"
+" uruchamiana jest lista `then POLECENIA'. W przeciwnym przypadku\n"
+" uruchamiane są poszczególne listy `elif POLECENIA' 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."
+" `then POLECENIA', po czym polecenie if się kończy. W przeciwnym "
+"przypadku\n"
+" uruchamiana jest lista `else POLECENIA', 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.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1596
-#, fuzzy
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4165,11 +4927,15 @@ msgid ""
" 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."
+"Wykonywanie poleceń dopóki test kończy się powodzeniem.\n"
+" \n"
+" Rozwijanie i uruchamianie POLECEŃ dopóki ostatnie polecenie\n"
+" w POLECENIACH `while' kończy się z kodem zero.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1608
-#, fuzzy
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4179,10 +4945,15 @@ msgid ""
" 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."
+"Wykonywanie poleceń dopóki test nie kończy się powodzeniem.\n"
+" \n"
+" Rozwijanie i uruchamianie POLECEŃ dopóki ostatnie polecenie\n"
+" w POLECENIACH `until' kończy się z kodem niezerowym.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4194,8 +4965,17 @@ msgid ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
msgstr ""
+"Utworzenie koprocesu o podanej NAZWIE.\n"
+" \n"
+" Asynchroniczne wykonanie POLECENIA ze standardowym wyjściem i "
+"standardowym\n"
+" wejściem polecenia połączonych potokiem z deskryptorami plików\n"
+" przypisanymi do indeksów 0 i 1 zmiennej tablicowej NAZWA w powłoce.\n"
+" Domyślną NAZWĄ jest \"COPROC\".\n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia POLECENIA."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4208,9 +4988,19 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is readonly."
msgstr ""
+"Zdefiniowanie funkcji powłoki.\n"
+" \n"
+" Utworzenie funkcji powłoki o podanej NAZWIE. Przy wywołaniu jako "
+"zwykłego\n"
+" polecenia NAZWA uruchamia POLECENIA w kontekście powłoki wywołującej.\n"
+" Przy wywoływaniu NAZWY, argumenty są przekazywane do funkcji jako $1..."
+"$n,\n"
+" a nazwa funkcji w $FUNCNAME.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest sukces, chyba że NAZWA jest tylko do odczytu."
-#: builtins.c:1648
-#, fuzzy
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4220,11 +5010,15 @@ msgid ""
" 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ñ."
+"Grupowanie poleceń jako jednostki.\n"
+" \n"
+" Uruchomienie zbioru poleceń jako grupy. W ten sposób można przekierować\n"
+" cały zbiór poleceń.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest status zakończenia ostatniego wykonanego polecenia."
-#: builtins.c:1660
-#, fuzzy
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4237,15 +5031,20 @@ msgid ""
" 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:1675
-#, fuzzy
+"Wznowienie zadania jako pierwszoplanowego.\n"
+" \n"
+" Równoważne argumentowi ZADANIE polecenia `fg'. Wznowienie zatrzymanego "
+"lub\n"
+" działającego w tle zadania. ZADANIE może określać nazwę zadania albo "
+"jego\n"
+" numer. Umieszczenie `&' po ZADANIU umieszcza zadanie w tle tak, jak to "
+"siÄ™\n"
+" dzieje po podaniu specyfikacji zadania jako argumentu dla `bg'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracany jest stan wznowionego zadania."
+
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4255,11 +5054,17 @@ msgid ""
" 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\"."
+"Obliczenie wyrażenia arytmetycznego.\n"
+" \n"
+" Obliczenie WYRAŻENIA zgodnie z zasadami obliczania wyrażeń "
+"arytmetycznych.\n"
+" Równoważne \"let WYRAŻENIE\".\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracane jest 1, jeśli wartością WYRAŻENIA jest 0; 0 w przeciwnym "
+"wypadku."
-#: builtins.c:1687
-#, fuzzy
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4286,28 +5091,35 @@ msgid ""
" 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"
+"Wykonanie polecenia warunkowego.\n"
+" \n"
+" Zwracany jest status wynoszący 0 lub 1 w zależności od wyniku WYRAŻENIA\n"
+" warunkowego. Wyrażenia są tworzone na tych samych zasadach, co w "
+"poleceniu\n"
+" `test' i mogą być łączone za pomocą następujących operatorów:\n"
+" \n"
+" ( WYRAŻENIE )\tzwraca wartość WYRAŻENIA\n"
+" ! WYRAŻENIE\tprawdziwe, gdy WYRAŻENIE jest fałszywe; fałszywe\n"
+" \t\t\tw innym przypadku\n"
+" WYR1 && WYR2\tPrawdziwe, gdy zarówno WYR1 jak i WYR2 są prawdziwe;\n"
+" \t\t\tfałszywe w innym przypadku\n"
+" WYR1 || WYR2\tPrawdziwe, gdy WYR1 lub WYR2 jest prawdziwe;\n"
+" \t\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."
+" wzorca. W przypadku użycia operatora `=~' łańcuch po prawej stronie\n"
+" operatora jest dopasowywany jako wyrażenie regularne.\n"
+" \n"
+" Operatory && i || nie obliczają WYR2, jeśli obliczenie WYR1 wystarcza "
+"do\n"
+" określenia wartości wyrażenia.\n"
+" \n"
+" Stan wyjściowy:\n"
+" 0 lub 1 w zależności od wartości WYRAŻENIA."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4360,9 +5172,62 @@ msgid ""
" 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:1770
-#, fuzzy
+"Popularne zmienne powłoki i ich zastosowanie.\n"
+" \n"
+" BASH_VERSION\tInformacja o wersji tego Basha.\n"
+" CDPATH\tRozdzielona dwukropkami lista katalogów do wyszukiwania\n"
+" \t\tkatalogów podanych jako argumenty `cd'.\n"
+" GLOBIGNORE\tRozdzielona dwukropkami lista wzorców nazw plików\n"
+" \t\tdo ignorowania przy rozwijaniu ścieżek.\n"
+" HISTFILE\tNazwa pliku, w którym zapisywana jest historia poleceń.\n"
+" HISTFILESIZE\tMaksymalna liczba linii w tym pliku.\n"
+" HISTSIZE\tMaksymalna liczba linii historii, do której ma dostęp\n"
+" \t\tdziałająca powłoka.\n"
+" HOME\tPełna ścieżka do katalogu logowania.\n"
+" HOSTNAME\tNazwa bieżącego hosta.\n"
+" HOSTTYPE\tRodzaj procesora, na jakim działa ta wersja Basha.\n"
+" IGNOREEOF\tSterowanie akcją powłoki w przypadku odebrania znaku\n"
+" \t\tEOF jako jedynego wejścia. Jeśli zmienna jest ustawiona,\n"
+" \t\tjej wartością jest liczba znaków EOF, które mogą wystąpić\n"
+" \t\tw pustym wierszu przed zakończeniem powłoki (domyślnie 10).\n"
+" \t\tJeśli nie jest ustawiona, EOF oznacza koniec wejścia.\n"
+" MACHTYPE\tÅaÅ„cuch opisujÄ…cy bieżący system, na jakim dziaÅ‚a Bash.\n"
+" MAILCHECK\tOkreślenie jak często (w sekundach) Bash ma sprawdzać\n"
+" \t\tobecność nowej poczty.\n"
+" MAILPATH\tRozdzielona dwukropkami lista nazw plików, w których\n"
+" \t\tBash ma sprawdzać obecność nowej poczty.\n"
+" OSTYPE\tWersja Uniksa, na której działa ta wersja Basha.\n"
+" PATH\tRozdzielona dwukropkami lista katalogów do przeszukiwania\n"
+" \t\tprzy wyszukiwaniu poleceń.\n"
+" PROMPT_COMMAND\tPolecenie do wykonania przed wypisaniem każdego\n"
+" \t\tgłównego napisu zachęty.\n"
+" PS1\t\tGłówny napis zachęty.\n"
+" PS2\t\tDrugorzędny napis zachęty.\n"
+" PWD\t\tPełna ścieżka do bieżącego katalogu.\n"
+" SHELLOPTS\tRozdzielona dwukropkami lista włączonych opcji powłoki.\n"
+" TERM\tNazwa typu bieżącego terminala.\n"
+" TIMEFORMAT\tFormat wyjściowy do statystyk czasu wyświetlanych przez\n"
+" \t\tpolecenie wbudowane `time'.\n"
+" auto_resume\tWartość niepusta oznacza, że słowo polecenia występujące\n"
+" \t\tw linii jako jedyne jest najpierw wyszukiwane na liście aktualnie\n"
+" \t\tzatrzymanych zadań. Jeśli tam zostanie znalezione, to zadanie\n"
+" \t\tjest wznawiane jako pierwszoplanowe. Wartość `exact' oznacza, że\n"
+" \t\tsłowo polecenia musi dokładnie pasować do polecenia na liście\n"
+" \t\tzadań zatrzymanych. Wartość `substring' oznacza, że słowo\n"
+" \t\tpolecenia musi pasować do podciągu zadania. Każda inna wartość\n"
+" \t\toznacza, że polecenie musi być przedrostkiem zatrzymanego\n"
+" \t\tzadania.\n"
+" histchars\tZnaki sterujÄ…ce rozwijaniem wg historii i szybkim\n"
+" \t\tpodstawianiem. Pierwszy znak jest znakiem podstawiania\n"
+" \t\thistorii, zwykle `!'. Drugi jest znakiem \"szybkiego podstawienia"
+"\",\n"
+" \t\tzwykle `^'. Trzeci znak jest znakiem \"komentarza historii\",\n"
+" \t\tzwykle `#'.\n"
+" HISTIGNORE\tRozdzielona dwukropkami lista wzorców używanych przy\n"
+" \t\tdecydowaniu, które polecenia powinny być zapisywane na liście\n"
+" \t\thistorii.\n"
+
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -4392,26 +5257,34 @@ msgid ""
" 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"
+"Dodanie katalogów do stosu.\n"
+" \n"
+" Dodanie katalogu na wierzchołku stosu katalogów lub rotacja stosu\n"
+" czyniąca 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"
+" Opcje:\n"
+" -n\tPominięcie zmiany katalogu podczas umieszczania katalogów na\n"
+" \tstosie tak, że zmieniany jest tylko stos.\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"
+" Argumenty:\n"
+" +N\tRotacja stosu czyniąca jego wierzchołkiem N-ty katalog (licząc\n"
+" \tod lewej 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\tRotacja stosu czyniąca jego wierzchołkiem N-ty katalog (licząc\n"
+" \tod prawej strony listy wypisywanej przez `dirs', poczÄ…wszy od zera).\n"
" \n"
-" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n"
-" \tbie¿±cym katalogiem roboczym.\n"
+" KATALOG\tUmieszczenie KATALOGU na wierzchołku stosu i uczynienie go\n"
+" \tnowym bieżącym katalogiem roboczym.\n"
" \n"
-" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
+" Zawartość stosu katalogów można zobaczyć za pomocą polecenia `dirs'.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędny argument lub zmiana "
+"katalogu\n"
+" siÄ™ nie powiedzie."
-#: builtins.c:1804
-#, fuzzy
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -4437,25 +5310,33 @@ msgid ""
" 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"
+"Usunięcie katalogów ze stosu.\n"
+" \n"
+" 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"
+" Opcje:\n"
+" -n\tPominięcie zmiany katalogu podczas usuwania katalogów ze stosu\n"
+" \ttak, że zmieniany jest tylko stos.\n"
+" \n"
+" Argumenty:\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"
+" -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"
+" Zawartość stosu katalogów można zobaczyć za pomocą polecenia `dirs'.\n"
" \n"
-" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędny argument lub zmiana "
+"katalogu\n"
+" siÄ™ nie powiedzie."
-#: builtins.c:1834
-#, fuzzy
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -4483,27 +5364,33 @@ msgid ""
" 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:1863
+"Wypisanie stosu katalogów.\n"
+" \n"
+" 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"
+" Opcje:\n"
+" -c\twyczyszczenie stosu katalogów poprzez usunięcie wszystkich jego\n"
+" \telementów\n"
+" -l\tnieużywanie wersji skróconej wersji z tyldą przy wypisywaniu\n"
+" \tkatalogów względem katalogu domowego\n"
+" -p\twypisanie katalogów ze stosu w osobnych wierszach\n"
+" -v\twypisanie katalogów ze stosu w osobnych wierszach, poprzedzając\n"
+" \tkażdy jego pozycją na stosie\n"
+" \n"
+" Argumenty:\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.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd."
+
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -4523,8 +5410,25 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
+"Ustawianie i anulowanie opcji powłoki.\n"
+" \n"
+" Zmiana ustawienia każdej z NAZWY-OPCJI. Bez argumentów będących "
+"opcjami,\n"
+" wypisywane są wszystkie opcje powłoki z zaznaczeniem włączonych.\n"
+" \n"
+" Opcje:\n"
+" -o\tograniczenie NAZW-OPCJI do używanych z `set -o'\n"
+" -p\twypisanie opcji powłoki z określeniem stanu\n"
+" -q\tpominięcie wyjścia\n"
+" -s\twłączenie (ustawienie) każdej NAZWY-OPCJI\n"
+" -u\twyłączenie (anulowanie) każdej NAZWY-OPCJI\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda jeśli NAZWA-OPCJI jest włączona; niepowodzenie, "
+"jeśli\n"
+" podano błędną opcję lub NAZWA-OPCJI jest wyłączona."
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -4541,9 +5445,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -4551,13 +5455,52 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-
-#: builtins.c:1913
+"Formatowanie i wypisanie ARGUMENTÓW zgodnie z FORMATEM.\n"
+" \n"
+" Opcje:\n"
+" -v ZMIENNA\tprzypisanie wyjścia do podanej ZMIENNEJ powłoki zamiast\n"
+" \t\twypisywania na standardowym wyjściu\n"
+" \n"
+" FORMAT jest łańcuchem znakowym zawierającym trzy rodzaje obiektów:\n"
+" zwykłe znaki, które są kopiowane na standardowe wyjście; znaki "
+"sekwencji\n"
+" sterujących, które są przekształcane i kopiowane na standardowe "
+"wyjście;\n"
+" oraz sekwencje formatujące, z których każda powoduje wypisanie "
+"kolejnego\n"
+" argumentu.\n"
+" \n"
+" Poza standardowymi sekwencjami formatujÄ…cymi opisanymi w printf(1) oraz\n"
+" printf(3), printf interpretuje:\n"
+" \n"
+" %b\trozwinięcie sekwencji z odwrotnym ukośnikiem w odpowiadającym\n"
+" \targumencie\n"
+" %q\tcytowanie argumentu w sposób umożliwiający użycie na wejściu\n"
+" \tpowłoki\n"
+" %(fmt)T wypisanie łańcucha daty-czasu otrzymanego z użycia FMT jako\n"
+" łańcucha formatującego dla strftime(3)\n"
+" \n"
+" Format jest używany ponownie w razie potrzeby w celu pochłonięcia\n"
+" wszystkich argumentów. Jeśli argumentów jest mniej, niż wymaga format,\n"
+" nadmiarowe sekwencje zachowują się tak, jakby podano wartość zerową lub\n"
+" łańcuch pusty.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub zapis albo\n"
+" przypisanie zakończy się niepowodzeniem."
+
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -4583,9 +5526,29 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
+"Określenie sposobu dopełniania argumentów przez Readline.\n"
+" \n"
+" Określenie dla każdej NAZWY sposobu dopełniania argumentów. Jeśli nie\n"
+" podano opcji, wypisywane są istniejące specyfikacje dopełniania w "
+"sposób\n"
+" pozwalający na ich ponowne użycie jako wejście.\n"
+" \n"
+" Opcje:\n"
+" -p\twypisanie istniejących dopełnień w formacie do ponownego użycia\n"
+" -r\tusunięcie specyfikacji dopełniania dla każdej NAZWY lub, jeśli\n"
+" \tnie podano NAZW, wszystkich specyfikacji dopełniania\n"
+" -D\tstosowanie dopełniania i akcji domyślnie dla poleceń bez\n"
+" \tokreślonych żadnych konkretnych reguł dopełniania\n"
+" -E\tstosowanie dopełniania i akcji dla \"pustych\" poleceń -\n"
+" \tpróby dopełnienia w pustej linii\n"
+" \n"
+" Przy próbie dopełnienia akcje są wykonywane w kolejności takiej, jak\n"
+" wielkie litery wymienione powyżej. Opcja -D ma priorytet nad -E.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd."
-#: builtins.c:1941
-#, fuzzy
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4597,12 +5560,16 @@ msgid ""
" 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."
+"Wypisanie możliwych uzupełnień w zależności od opcji.\n"
+" \n"
+" Przeznaczone do wykorzystania w funkcjach powłoki generujących możliwe\n"
+" uzupeÅ‚nienia. Gdy podany jest opcjonalny argument SÅOWO, generowane sÄ…\n"
+" uzupeÅ‚nienia pasujÄ…ce do SÅOWA.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub wystąpi błąd."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4632,8 +5599,35 @@ msgid ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
msgstr ""
+"Zmiana lub wyświetlenie opcji dopełniania.\n"
+" \n"
+" Zmiana opcji dopełniania dla każdej NAZWY lub, jeśli nie podano NAZW,\n"
+" aktualnie wykonywanego dopełniania. Jeśli nie podano OPCJI, wypisanie\n"
+" opcji dopełniania dla każdej NAZWY lub bieżącej specyfikacji "
+"dopełniania.\n"
+" \n"
+" Opcje:\n"
+" \t-o opcja\tUstawienie podanej OPCJI dopełniania dla każdej NAZWY\n"
+" \t-D\t\tZmiana opcji dla \"domyślnego\" dopełniania polecenia\n"
+" \t-E\t\tZmiana opcji dla dopełniania \"pustego\" polecenia\n"
+" \n"
+" Użycie `+o' zamiast `-o' wyłącza podaną opcję.\n"
+" \n"
+" Argumenty:\n"
+" \n"
+" Każda NAZWA odnosi się do polecenia, dla którego specyfikacja "
+"dopełniania\n"
+" musi być wcześniej zdefiniowana przy użyciu polecenia wbudowanego\n"
+" `complete'. Jeśli nie podano NAZW, compopt musi być wywołane z funkcji\n"
+" aktualnie generującej dopełnienia, wtedy zmieniane są opcje dla "
+"aktualnie\n"
+" wykonywanego generatora dopełnień.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub NAZWA nie ma\n"
+" zdefiniowanej specyfikacji dopełniania."
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4673,561 +5667,45 @@ msgid ""
"or\n"
" not an indexed array."
msgstr ""
+"Odczyt linii ze standardowego wejścia do zmiennej tablicowej indeksowanej.\n"
+" \n"
+" Odczyt linii ze standardowego wejścia (lub deskryptora FD, jeśli podano\n"
+" opcjÄ™ -u) do zmiennej tablicowej indeksowanej TABLICA. Zmienna MAPFILE\n"
+" jest domyślną TABLICĄ.\n"
+" \n"
+" Opcje:\n"
+" -n liczba\tSkopiowanie maksymalnie podanej LICZBY linii. Jeśli LICZBA\n"
+" \twynosi 0, kopiowane sÄ… wszystkie linie.\n"
+" -O początek\tRozpoczęcie wpisywania do TABLICY od indeksu POCZĄTKU.\n"
+" \tDomyślny indeks wynosi 0.\n"
+" -s liczba\tPominięcie pierwszych LICZBA odczytanych linii.\n"
+" -t\t\tUsunięcie końcowego znaku końca linii z każdej wczytanej linii.\n"
+" -u fd\t\tOdczyt linii z deskryptora FD zamiast standardowego wejścia.\n"
+" -C wywoÅ‚anie\tObliczenie WYWOÅANIA po odczycie każdego CO-ILE linii.\n"
+" -c CO-OLE\tLiczba linii do wczytania miÄ™dzy każdym WYWOÅANIEM.\n"
+" \n"
+" Argumenty:\n"
+" TABLICA\t\tNazwa zmiennej tablicowej do użycia na dane z pliku.\n"
+" \n"
+" Jeśli podano -C bez -c, domyślnym krokiem jest 5000. Podczas obliczania\n"
+" WYWOÅANIA jest przekazywany indeks do nastÄ™pnego elementu tablicy, "
+"który\n"
+" ma być przypisany oraz - jako kolejne argumenty - linia do przypisania.\n"
+" \n"
+" Jeśli nie podano jawnie początku, mapfile czyści TABLICĘ przed\n"
+" przypisywaniem.\n"
+" \n"
+" Stan wyjściowy:\n"
+" Zwracana jest prawda, chyba że podano błędną opcję lub TABLICA jest "
+"tylko\n"
+" do odczytu, lub nie jest tablicÄ… indeksowanÄ…."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
-
-#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr ""
-#~ "xrealloc: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)"
-
-#~ msgid "xrealloc: cannot allocate %lu bytes"
-#~ msgstr "xrealloc: nie mo¿na przydzieliæ %lu bajtów"
-
-#~ 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)"
-
-#~ 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ñ."
+"Odczyt linii z pliku do zmiennej tablicowej.\n"
+" \n"
+" Synonim polecenia `mapfile'."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 1d1f8677..610f4f92 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 6c0e3f6b..36317289 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,98 +6,114 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2002-05-08 13:50GMT -3\n"
"Last-Translator: Halley Pacheco de Oliveira <halleypo@ig.com.br>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"Language: pt_BR\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "índice da matriz (array) incorreto"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%c%c: opção incorreta"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: impossível atribuir a índice não numérico"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: impossível criar: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%c%c: opção incorreta"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, fuzzy, c-format
msgid "%s: cannot read: %s"
msgstr "%s: impossível criar: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, fuzzy, c-format
msgid "`%s': cannot unbind"
msgstr "%s: comando não encontrado"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, fuzzy, c-format
msgid "`%s': unknown function name"
msgstr "%s: função somente para leitura"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -111,18 +127,22 @@ msgstr "logout"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr ""
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "número excessivo de argumentos"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr ""
@@ -131,7 +151,7 @@ msgstr ""
msgid "line %d: "
msgstr "encaixe (slot) %3d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "escrevendo"
@@ -141,11 +161,7 @@ msgstr "escrevendo"
msgid "%s: usage: "
msgstr ""
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "número excessivo de argumentos"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, fuzzy, c-format
msgid "%s: option requires an argument"
msgstr "a opção requer um argumento: -"
@@ -160,7 +176,7 @@ msgstr ""
msgid "%s: not found"
msgstr "%s: comando não encontrado"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, fuzzy, c-format
msgid "%s: invalid option"
msgstr "%c%c: opção incorreta"
@@ -170,7 +186,7 @@ msgstr "%c%c: opção incorreta"
msgid "%s: invalid option name"
msgstr "%c%c: opção incorreta"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, fuzzy, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s' não é um identificador válido"
@@ -185,7 +201,7 @@ msgstr "número do sinal incorreto"
msgid "invalid hex number"
msgstr "número do sinal incorreto"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
#, fuzzy
msgid "invalid number"
msgstr "número do sinal incorreto"
@@ -200,7 +216,7 @@ msgstr ""
msgid "`%s': not a pid or valid job spec"
msgstr ""
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: a variável permite somente leitura"
@@ -275,49 +291,59 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr "%s: Redirecionamento ambíguo"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
#, 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:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: função somente para leitura"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, fuzzy, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "$%s: impossível atribuir desta maneira"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -346,24 +372,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr "%s: impossível criar: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: é um diretório"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, fuzzy, c-format
msgid "%s: not a regular file"
msgstr "%s: impossível executar o arquivo binário"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: impossível executar o arquivo binário"
@@ -397,11 +422,11 @@ msgstr ""
msgid "no command found"
msgstr "%s: comando não encontrado"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, fuzzy, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: impossível criar: %s"
@@ -446,18 +471,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, fuzzy, c-format
msgid "%s: cannot open: %s"
msgstr "%s: impossível criar: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -477,7 +502,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, fuzzy, c-format
msgid "%s: history expansion failed"
msgstr "%s: esperado expressão de número inteiro"
@@ -491,17 +516,17 @@ msgstr "%s: esperado expressão de número inteiro"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
#, fuzzy
msgid "Unknown error"
msgstr "Erro desconhecido %d"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "esperado uma expressão"
@@ -510,65 +535,70 @@ msgstr "esperado uma expressão"
msgid "%s: not an indexed array"
msgstr "%s: variável não vinculada"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%c%c: opção incorreta"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%c%c: opção incorreta"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "número do sinal incorreto"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: variável não vinculada"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%c%c: opção incorreta"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -578,21 +608,26 @@ msgstr ""
msgid "no other directory"
msgstr "o novo diretório que ocupa o topo da pilha."
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%c%c: opção incorreta"
+
+#: builtins/pushd.def:468
#, fuzzy
msgid "<no current directory>"
msgstr "\tnovo diretório atual de trabalho."
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
#, fuzzy
msgid "directory stack index"
msgstr "Estouro na base da pilha de recursividade"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -616,7 +651,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -641,7 +676,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -662,41 +697,41 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, fuzzy, c-format
msgid "read error: %d: %s"
msgstr "erro de `pipe': %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
#, 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:808
+#: builtins/set.def:826
#, fuzzy, c-format
msgid "%s: cannot unset"
msgstr "%s: impossível criar: %s"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, fuzzy, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: impossível criar: %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, fuzzy, c-format
msgid "%s: not an array variable"
msgstr "%s: variável não vinculada"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, fuzzy, c-format
msgid "%s: not a function"
msgstr "%s: função somente para leitura"
@@ -706,11 +741,11 @@ msgstr "%s: função somente para leitura"
msgid "shift count"
msgstr "shift [n]"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -753,7 +788,7 @@ msgstr "%s: função somente para leitura"
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -763,47 +798,47 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, fuzzy, c-format
msgid "`%c': bad command"
msgstr "%c%c: opção incorreta"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, fuzzy, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: impossível criar: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
#, fuzzy
msgid "limit"
msgstr "Tempo limite de CPU excedido"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, fuzzy, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: impossível criar: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
#, fuzzy
msgid "octal number"
msgstr "número do sinal incorreto"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -817,316 +852,331 @@ msgstr "`r', o último comando seja executado novamente."
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
#, fuzzy
msgid "unknown command error"
msgstr "Erro desconhecido %d"
-#: error.c:407
+#: error.c:441
#, fuzzy
msgid "bad command type"
msgstr "usado como nome de um comando."
-#: error.c:408
+#: error.c:442
#, fuzzy
msgid "bad connector"
msgstr "conector incorreto `%d'"
-#: error.c:409
+#: error.c:443
#, fuzzy
msgid "bad jump"
msgstr "Desvio incorreto %d"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variável não vinculada"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "erro de `pipe': %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, 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:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: comando não encontrado"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, fuzzy, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: é um diretório"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: impossível executar o arquivo binário"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5404
#, 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:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "excedido o nível de recursividade da expressão"
-#: expr.c:280
+#: expr.c:283
#, fuzzy
msgid "recursion stack underflow"
msgstr "Estouro na base da pilha de recursividade"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "erro de sintaxe na expressão"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "tentativa de atribuição para algo que não é uma variável"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "divisão por 0"
-#: expr.c:517
+#: expr.c:542
#, fuzzy
msgid "bug: bad expassign token"
msgstr "Erro de programação: `token' inválido `%d' passado para expassign()"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "`:' esperado para expressão condicional"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "faltando `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
#, fuzzy
msgid "syntax error: operand expected"
msgstr "erro de sintaxe: fim prematuro do arquivo"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, fuzzy, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s: %s: %s (erro: o `token' é \"%s\")\n"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "valor muito grande para esta base de numeração"
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "%s: esperado expressão de número inteiro"
-#: general.c:61
+#: general.c:62
#, fuzzy
msgid "getcwd: cannot access parent directories"
msgstr "getwd: impossível acessar os diretórios pais (anteriores)"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, 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:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, 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:1445
+#: jobs.c:1450
#, fuzzy, c-format
msgid "Signal %d"
msgstr "Sinal desconhecido #%d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Concluído"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Parado"
-#: jobs.c:1468
+#: jobs.c:1473
#, fuzzy, c-format
msgid "Stopped(%s)"
msgstr "Parado"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Executando"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Concluído(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Fim da execução com status %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Status desconhecido"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(imagem do núcleo gravada)"
-#: jobs.c:1597
+#: jobs.c:1602
#, fuzzy, c-format
msgid " (wd: %s)"
msgstr "(wd agora: %s)\n"
-#: jobs.c:1805
+#: jobs.c:1819
#, fuzzy, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "`setpgid' filho (%d para %d) erro %d: %s\n"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: o trabalho terminou"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "encaixe (slot) %3d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (imagem do núcleo gravada)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd agora: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
#, fuzzy
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_jobs: getpgrp falhou: %s"
-#: jobs.c:3669
+#: jobs.c:3843
#, fuzzy
msgid "initialize_job_control: line discipline"
msgstr "initialize_jobs: disciplina da linha: %s"
-#: jobs.c:3679
+#: jobs.c:3853
#, fuzzy
msgid "initialize_job_control: setpgid"
msgstr "initialize_jobs: getpgrp falhou: %s"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "nenhum controle de trabalho nesta `shell'"
@@ -1147,54 +1197,54 @@ msgstr ""
msgid "unknown"
msgstr "<desconhecido>"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1217,35 +1267,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Você tem mensagem de correio em $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Você tem mensagem nova de correio em $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "As mensagens de correio em %s foram lidas\n"
@@ -1265,123 +1315,123 @@ msgstr "erro de sintaxe: fim prematuro do arquivo"
msgid "syntax error: `((%s))'"
msgstr "erro de sintaxe"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, 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:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, fuzzy, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
-#: parse.y:4025
+#: parse.y:4170
#, fuzzy
msgid "unexpected EOF while looking for `]]'"
msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
-#: parse.y:4030
+#: parse.y:4175
#, 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:4034
+#: parse.y:4179
#, fuzzy
msgid "syntax error in conditional expression"
msgstr "erro de sintaxe na expressão"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
#, fuzzy
msgid "expected `)'"
msgstr "esperado `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, fuzzy, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "%s: esperado operador binário"
-#: parse.y:4198
+#: parse.y:4343
#, fuzzy
msgid "conditional binary operator expected"
msgstr "%s: esperado operador binário"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, fuzzy, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "`:' esperado para expressão condicional"
-#: parse.y:4238
+#: parse.y:4383
#, fuzzy, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "`:' esperado para expressão condicional"
-#: parse.y:4242
+#: parse.y:4387
#, fuzzy, c-format
msgid "unexpected token %d in conditional command"
msgstr "`:' esperado para expressão condicional"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "erro de sintaxe próximo do `token' não esperado `%s'"
-#: parse.y:5584
+#: parse.y:5755
#, fuzzy, c-format
msgid "syntax error near `%s'"
msgstr "erro de sintaxe próximo do `token' não esperado `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "erro de sintaxe: fim prematuro do arquivo"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "erro de sintaxe"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Use \"%s\" para sair da `shell'.\n"
-#: parse.y:5818
+#: parse.y:5989
#, fuzzy
msgid "unexpected EOF while looking for matching `)'"
msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1391,91 +1441,91 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: conector incorreto `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, fuzzy, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: Redirecionamento ambíguo"
-#: redir.c:182
+#: redir.c:181
#, fuzzy, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: Impossível sobrescrever arquivo existente"
-#: redir.c:187
+#: redir.c:186
#, fuzzy, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos"
-#: redir.c:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
#, fuzzy
msgid "redirection error: cannot duplicate fd"
msgstr "erro de redirecionamento"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, fuzzy, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: opção incorreta"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Eu não tenho nome!"
-#: shell.c:1795
+#: shell.c:1827
#, fuzzy, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU %s, versão %s\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1484,44 +1534,44 @@ 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "opções-longas-GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Opções da `shell':\n"
-#: shell.c:1803
+#: shell.c:1835
#, fuzzy
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ou -o opção\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1696,239 +1746,249 @@ msgstr "Sinal desconhecido #"
msgid "Unknown Signal #%d"
msgstr "Sinal desconhecido #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, fuzzy, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "substituição incorreta: nenhum `%s' em %s"
-#: subst.c:2795
+#: subst.c:2847
#, 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:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
#, fuzzy
msgid "cannot make pipe for process substitution"
msgstr "impossível criar `pipe' para a substituição do processo: %s"
-#: subst.c:5027
+#: subst.c:5113
#, fuzzy
msgid "cannot make child for process substitution"
msgstr "impossível criar um processo filho para a substituição do processo: %s"
-#: subst.c:5072
+#: subst.c:5158
#, fuzzy, c-format
msgid "cannot open named pipe %s for reading"
msgstr "impossível abrir o `named pipe' %s para %s: %s"
-#: subst.c:5074
+#: subst.c:5160
#, fuzzy, c-format
msgid "cannot open named pipe %s for writing"
msgstr "impossível abrir o `named pipe' %s para %s: %s"
-#: subst.c:5092
+#: subst.c:5178
#, 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:5284
+#: subst.c:5376
#, fuzzy
msgid "cannot make pipe for command substitution"
msgstr "impossível construir `pipes' para substituição do comando: %s"
-#: subst.c:5322
+#: subst.c:5414
#, fuzzy
msgid "cannot make child for command substitution"
msgstr "impossível criar um processo filho para substituição do comando: %s"
-#: subst.c:5339
+#: subst.c:5433
#, 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:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parâmetro nulo ou não inicializado"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: expressão de substring < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: substituição incorreta"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: impossível atribuir desta maneira"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "substituição incorreta: nenhum `%s' em %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "esperado argumento"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: esperado expressão de número inteiro"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "esperado `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "esperado `)', encontrado %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: esperado operador unário"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: esperado operador binário"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "faltando `]'"
-#: trap.c:207
+#: trap.c:217
#, fuzzy
msgid "invalid signal number"
msgstr "número do sinal incorreto"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, fuzzy, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: Sinal incorreto %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "erro ao importar a definição da função para `%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: parâmetro nulo ou não inicializado"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: impossível criar: %s"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, fuzzy, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU %s, versão %s\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
-
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1963,7 +2023,7 @@ msgstr "unalias [-a] [NOME ...]"
#: builtins.c:51
#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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-"
@@ -1988,7 +2048,7 @@ msgstr "test [EXPR]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-PL] [DIR]"
#: builtins.c:66
@@ -2014,7 +2074,7 @@ msgstr "command [-pVv] COMANDO [ARG ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-afFrxi] [-p] NOME[=VALOR] ..."
#: builtins.c:78
@@ -2132,7 +2192,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o OPÇÃO] [ARG ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [NOME ...]"
#: builtins.c:144
@@ -2188,7 +2249,7 @@ msgstr "type [-apt] NOME [NOME ...]"
#: builtins.c:169
#, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdfmstpnuv] [LIMITE]"
#: builtins.c:172
@@ -2198,12 +2259,12 @@ msgstr "umask [-S] [MODO]"
#: builtins.c:175
#, fuzzy
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr "wait [n]"
#: builtins.c:179
#, fuzzy
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr "wait [n]"
#: builtins.c:182
@@ -2397,12 +2458,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
#, fuzzy
msgid ""
"Exit for, while, or until loops.\n"
@@ -2414,7 +2477,7 @@ msgid ""
" 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:338
+#: builtins.c:340
#, fuzzy
msgid ""
"Resume for, while, or until loops.\n"
@@ -2426,7 +2489,7 @@ msgid ""
" 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:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2440,7 +2503,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2456,7 +2519,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2479,13 +2542,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2493,7 +2564,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2509,7 +2580,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
#, fuzzy
msgid ""
"Null command.\n"
@@ -2521,7 +2592,7 @@ msgid ""
msgstr ""
"Nenhum efeito; o comando não faz nada. Retorna zero no código de saída."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2529,7 +2600,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2537,7 +2608,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2556,7 +2627,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2576,6 +2647,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2591,17 +2663,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2612,15 +2685,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2632,6 +2707,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2647,7 +2723,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2660,7 +2736,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2687,7 +2763,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2699,7 +2775,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2740,7 +2816,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2763,7 +2839,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
#, fuzzy
msgid ""
"Exit the shell.\n"
@@ -2772,7 +2848,7 @@ msgid ""
" is that of the last command executed."
msgstr "Sair da `shell' com status igual a N. Se N for omitido, o status"
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2781,7 +2857,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2811,7 +2887,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
#, fuzzy
msgid ""
"Move job to the foreground.\n"
@@ -2825,7 +2901,7 @@ msgid ""
msgstr ""
"Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2839,7 +2915,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2850,7 +2926,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2863,7 +2939,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2885,7 +2961,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2919,7 +2995,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2928,7 +3004,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2943,7 +3019,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2960,7 +3036,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2982,7 +3058,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3027,7 +3103,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3062,20 +3138,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3087,7 +3166,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3153,7 +3232,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3172,7 +3251,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3181,6 +3260,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3192,7 +3273,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3211,7 +3292,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3223,7 +3304,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3231,7 +3314,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3242,7 +3325,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3256,7 +3339,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3270,7 +3353,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3335,6 +3418,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3351,7 +3436,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -3360,7 +3445,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3372,7 +3457,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3416,7 +3501,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3446,7 +3531,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3475,6 +3560,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3490,7 +3578,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3508,38 +3596,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3552,7 +3644,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3569,7 +3661,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3589,7 +3681,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3605,7 +3697,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
#, fuzzy
msgid ""
"Execute commands based on pattern matching.\n"
@@ -3618,7 +3710,7 @@ msgid ""
msgstr ""
"Executar seletivamente COMANDOS tomando por base a correspondência entre"
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3639,7 +3731,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
#, fuzzy
msgid ""
"Execute commands as long as a test succeeds.\n"
@@ -3651,7 +3743,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr "Expande e executa COMANDOS enquanto o comando final nos"
-#: builtins.c:1608
+#: builtins.c:1632
#, fuzzy
msgid ""
"Execute commands as long as a test does not succeed.\n"
@@ -3663,7 +3755,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr "Expande e executa COMANDOS enquanto o comando final nos"
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3676,7 +3768,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3690,7 +3782,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
#, fuzzy
msgid ""
"Group commands as a unit.\n"
@@ -3702,7 +3794,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr "Executa um conjunto de comandos agrupando-os. Esta é uma forma de"
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3716,7 +3808,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3727,7 +3819,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3755,7 +3847,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3809,7 +3901,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3840,7 +3932,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3867,7 +3959,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3896,7 +3988,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3917,7 +4009,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3934,9 +4026,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3944,13 +4036,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3977,7 +4075,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -3990,7 +4088,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4021,7 +4119,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4062,13 +4160,17 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+#, fuzzy
+#~ msgid "wait [pid]"
+#~ msgstr "wait [n]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)"
diff --git a/po/ro.gmo b/po/ro.gmo
index d19197ae..8405f78e 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 5b699980..d3b27f33 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,97 +6,113 @@ msgid ""
msgstr ""
"Project-Id-Version: bash 2.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 1997-08-17 18:42+0300\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "incluziune greºitã în interval"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%c%c: opþiune invalidã"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: nu se poate atribui cãtre index ne-numeric"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%c%c: opþiune invalidã"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, fuzzy, c-format
msgid "%s: cannot read: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, fuzzy, c-format
msgid "`%s': cannot unbind"
msgstr "%s: comandã negãsitã"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, fuzzy, c-format
msgid "`%s': unknown function name"
msgstr "%s: funcþie doar în citire (readonly)"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -110,18 +126,22 @@ msgstr "logout"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr ""
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "prea mulþi parametri"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr ""
@@ -130,7 +150,7 @@ msgstr ""
msgid "line %d: "
msgstr "slot %3d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "în scriere"
@@ -140,11 +160,7 @@ msgstr "în scriere"
msgid "%s: usage: "
msgstr ""
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "prea mulþi parametri"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, fuzzy, c-format
msgid "%s: option requires an argument"
msgstr "opþiunea necesitã un parametru: -"
@@ -159,7 +175,7 @@ msgstr ""
msgid "%s: not found"
msgstr "%s: comandã negãsitã"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, fuzzy, c-format
msgid "%s: invalid option"
msgstr "%c%c: opþiune invalidã"
@@ -169,7 +185,7 @@ msgstr "%c%c: opþiune invalidã"
msgid "%s: invalid option name"
msgstr "%c%c: opþiune invalidã"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, fuzzy, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s' nu este un identificator valid"
@@ -184,7 +200,7 @@ msgstr "numãr de semnal invalid"
msgid "invalid hex number"
msgstr "numãr de semnal invalid"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
#, fuzzy
msgid "invalid number"
msgstr "numãr de semnal invalid"
@@ -199,7 +215,7 @@ msgstr ""
msgid "`%s': not a pid or valid job spec"
msgstr ""
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: variabilã doar în citire"
@@ -274,49 +290,59 @@ msgstr ""
msgid "%s: ambiguous job spec"
msgstr "%s: Redirectare ambiguã"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
#, 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:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funcþie doar în citire (readonly)"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, fuzzy, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "$%s: nu se poate asigna în acest mod"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -345,24 +371,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: este director"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, fuzzy, c-format
msgid "%s: not a regular file"
msgstr "%s: nu se poate executa fiºierul binar"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: nu se poate executa fiºierul binar"
@@ -396,11 +421,11 @@ msgstr ""
msgid "no command found"
msgstr "%s: comandã negãsitã"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, fuzzy, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: nu s-a putut crea: %s"
@@ -445,18 +470,18 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
msgstr[1] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, fuzzy, c-format
msgid "%s: cannot open: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -476,7 +501,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, fuzzy, c-format
msgid "%s: history expansion failed"
msgstr "%s: se aºteaptã expresie întreagã (integer)"
@@ -490,17 +515,17 @@ msgstr "%s: variabilã fãrã limitã"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
#, fuzzy
msgid "Unknown error"
msgstr "Eroare necunoscutã %d"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "se aºteaptã expresie"
@@ -509,65 +534,70 @@ msgstr "se aºteaptã expresie"
msgid "%s: not an indexed array"
msgstr "%s: variabilã fãrã limitã"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%c%c: opþiune invalidã"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%c%c: opþiune invalidã"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "numãr de semnal invalid"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: variabilã fãrã limitã"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%c%c: opþiune invalidã"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -577,20 +607,25 @@ msgstr ""
msgid "no other directory"
msgstr "director superior."
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%c%c: opþiune invalidã"
+
+#: builtins/pushd.def:468
#, fuzzy
msgid "<no current directory>"
msgstr "\tnoul director de lucru curent."
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr ""
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -614,7 +649,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -639,7 +674,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -660,41 +695,41 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, fuzzy, c-format
msgid "read error: %d: %s"
msgstr "eroare de legãturã (pipe): %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
#, 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:808
+#: builtins/set.def:826
#, fuzzy, c-format
msgid "%s: cannot unset"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, fuzzy, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, fuzzy, c-format
msgid "%s: not an array variable"
msgstr "%s: variabilã fãrã limitã"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, fuzzy, c-format
msgid "%s: not a function"
msgstr "%s: funcþie doar în citire (readonly)"
@@ -704,11 +739,11 @@ msgstr "%s: funcþie doar în citire (readonly)"
msgid "shift count"
msgstr "shift [n]"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -751,7 +786,7 @@ msgstr "%s: funcþie doar în citire (readonly)"
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -761,47 +796,47 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, fuzzy, c-format
msgid "`%c': bad command"
msgstr "%c%c: opþiune invalidã"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, fuzzy, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
#, fuzzy
msgid "limit"
msgstr "limitã CPU"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, fuzzy, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: nu s-a putut crea: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
#, fuzzy
msgid "octal number"
msgstr "numãr de semnal invalid"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -815,311 +850,326 @@ msgstr "ultima comandã."
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
#, fuzzy
msgid "unknown command error"
msgstr "Eroare necunoscutã %d"
-#: error.c:407
+#: error.c:441
#, fuzzy
msgid "bad command type"
msgstr "ºi nume de comandã."
-#: error.c:408
+#: error.c:442
#, fuzzy
msgid "bad connector"
msgstr "conector greºit `%d'"
-#: error.c:409
+#: error.c:443
#, fuzzy
msgid "bad jump"
msgstr "Salt invalid %d"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: variabilã fãrã limitã"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "eroare de legãturã (pipe): %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: comandã negãsitã"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, fuzzy, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: este director"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nu se poate executa fiºierul binar"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5404
#, fuzzy, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "nu se poate duplica fd %d în fd 0: %s"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "nivel de recursivitate al expresiei depãºit"
-#: expr.c:280
+#: expr.c:283
#, fuzzy
msgid "recursion stack underflow"
msgstr "Stivã recursivitate prea puþin folositã(underflow)"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "eroare de sintaxã în expresie "
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "s-a încercat asignare cãtre non-variabilã"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "împãrþire la 0"
-#: expr.c:517
+#: expr.c:542
#, fuzzy
msgid "bug: bad expassign token"
msgstr "bug: identificator(token) expassign greºit %d"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "`:' aºteptat dupã expresie condiþionalã"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "`)' lipsã"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
#, fuzzy
msgid "syntax error: operand expected"
msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, fuzzy, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s: %s: %s (identificatorul erorii este \"%s\")\n"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "valoare prea mare pentru bazã"
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "eroare de redirectare"
-#: general.c:61
+#: general.c:62
#, fuzzy
msgid "getcwd: cannot access parent directories"
msgstr "getwd: nu s-au putut accesa directoarele pãrinte"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr ""
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, fuzzy, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: Nu existã pid-ul (%d)!\n"
-#: jobs.c:1445
+#: jobs.c:1450
#, fuzzy, c-format
msgid "Signal %d"
msgstr "Semnal Necunoscut #%d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Finalizat"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stopat"
-#: jobs.c:1468
+#: jobs.c:1473
#, fuzzy, c-format
msgid "Stopped(%s)"
msgstr "Stopat"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "În rulare"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Finalizat(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Ieºire %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Stare necunoscutã"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(core dumped) "
-#: jobs.c:1597
+#: jobs.c:1602
#, fuzzy, c-format
msgid " (wd: %s)"
msgstr "(wd actual: %s)\n"
-#: jobs.c:1805
+#: jobs.c:1819
#, 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:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: jobul a fost terminat"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "slot %3d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (core dumped)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd actual: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
#, fuzzy
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_jobs: getpgrp eºuat: %s"
-#: jobs.c:3669
+#: jobs.c:3843
#, fuzzy
msgid "initialize_job_control: line discipline"
msgstr "initialize_jobs: disciplinã linie: %s"
-#: jobs.c:3679
+#: jobs.c:3853
#, fuzzy
msgid "initialize_job_control: setpgid"
msgstr "initialize_jobs: getpgrp eºuat: %s"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "nici un control de job în acest shell"
@@ -1139,54 +1189,54 @@ msgstr ""
msgid "unknown"
msgstr "necunoscut"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1209,35 +1259,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)"
-#: locale.c:249
+#: locale.c:261
#, fuzzy, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Aveþi mail în $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Aveþi mail nou în $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Mailul din %s a fost citit\n"
@@ -1257,123 +1307,123 @@ msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat"
msgid "syntax error: `((%s))'"
msgstr "eroare de sintaxã"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: tip de instrucþiune greºit %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, fuzzy, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "EOF brusc în cãutare dupã `%c'"
-#: parse.y:4025
+#: parse.y:4170
#, fuzzy
msgid "unexpected EOF while looking for `]]'"
msgstr "EOF brusc în cãutare dupã `%c'"
-#: parse.y:4030
+#: parse.y:4175
#, fuzzy, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
-#: parse.y:4034
+#: parse.y:4179
#, fuzzy
msgid "syntax error in conditional expression"
msgstr "eroare de sintaxã în expresie "
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
#, fuzzy
msgid "expected `)'"
msgstr "se aºteaptã `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, fuzzy, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "%s: se aºteaptã operator binar"
-#: parse.y:4198
+#: parse.y:4343
#, fuzzy
msgid "conditional binary operator expected"
msgstr "%s: se aºteaptã operator binar"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, fuzzy, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "`:' aºteptat dupã expresie condiþionalã"
-#: parse.y:4238
+#: parse.y:4383
#, fuzzy, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "`:' aºteptat dupã expresie condiþionalã"
-#: parse.y:4242
+#: parse.y:4387
#, fuzzy, c-format
msgid "unexpected token %d in conditional command"
msgstr "`:' aºteptat dupã expresie condiþionalã"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
-#: parse.y:5584
+#: parse.y:5755
#, fuzzy, c-format
msgid "syntax error near `%s'"
msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "eroare de sintaxã"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Folosiþi \"%s\" pentru a pãrãsi shellul.\n"
-#: parse.y:5818
+#: parse.y:5989
#, fuzzy
msgid "unexpected EOF while looking for matching `)'"
msgstr "EOF brusc în cãutare dupã `%c'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1383,91 +1433,91 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: conector greºitr `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, fuzzy, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: Redirectare ambiguã"
-#: redir.c:182
+#: redir.c:181
#, fuzzy, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: nu se poate accesa(clobber) fiºierul existent"
-#: redir.c:187
+#: redir.c:186
#, fuzzy, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor"
-#: redir.c:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: nu pot asigna listã membrului intervalului"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
#, fuzzy
msgid "redirection error: cannot duplicate fd"
msgstr "eroare de redirectare"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, fuzzy, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: opþiune invalidã"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Nu am nici un nume!"
-#: shell.c:1795
+#: shell.c:1827
#, fuzzy, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU %s, versiunea %s\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1476,44 +1526,44 @@ 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "opþiuni lungi GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Opþiuni ale shell-ului:\n"
-#: shell.c:1803
+#: shell.c:1835
#, fuzzy
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s sau -o opþiune\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1687,235 +1737,245 @@ msgstr "Semnal Necunoscut #"
msgid "Unknown Signal #%d"
msgstr "Semnal Necunoscut #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, fuzzy, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "substituþie invalidã: nu existã '%s' în %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: nu pot asigna listã membrului intervalului"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
#, fuzzy
msgid "cannot make pipe for process substitution"
msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s"
-#: subst.c:5027
+#: subst.c:5113
#, fuzzy
msgid "cannot make child for process substitution"
msgstr "nu pot crea un proces copil pentru substituirea procesului: %s"
-#: subst.c:5072
+#: subst.c:5158
#, fuzzy, c-format
msgid "cannot open named pipe %s for reading"
msgstr "nu pot deschide legãtura numitã %s pentru %s: %s"
-#: subst.c:5074
+#: subst.c:5160
#, fuzzy, c-format
msgid "cannot open named pipe %s for writing"
msgstr "nu pot deschide legãtura numitã %s pentru %s: %s"
-#: subst.c:5092
+#: subst.c:5178
#, 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:5284
+#: subst.c:5376
#, fuzzy
msgid "cannot make pipe for command substitution"
msgstr "nu pot face legãturi(pipes) pentru substituþia de comenzi: %s"
-#: subst.c:5322
+#: subst.c:5414
#, fuzzy
msgid "cannot make child for command substitution"
msgstr "nu pot crea un copil pentru substituþia de comenzi: %s"
-#: subst.c:5339
+#: subst.c:5433
#, 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:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametru null sau nesetat"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: expresie subºir < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: substituþie invalidã"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: nu se poate asigna în acest mod"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "substituþie invalidã: nu existã ')' de final în %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "se aºteaptã parametru"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: se aºteaptã expresie întreagã (integer)"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "se aºteaptã `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "se aºteaptã `)', s-a primit %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: se aºteaptã operator unar"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: se aºteaptã operator binar"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "lipseºte ']'"
-#: trap.c:207
+#: trap.c:217
#, fuzzy
msgid "invalid signal number"
msgstr "numãr de semnal invalid"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, fuzzy, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: Semnal invalid %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "eroare în importarea definiþiei funcþiei pentru '%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: nu pot asigna listã membrului intervalului"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: parametru null sau nesetat"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: nu s-a putut crea: %s"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr ""
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, fuzzy, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU %s, versiunea %s\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
-
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1950,7 +2010,7 @@ msgstr "unalias [-a] [nume ...]"
#: builtins.c:51
#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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:"
@@ -1975,7 +2035,7 @@ msgstr "test [expr]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr "cd [-PL] [dir]"
#: builtins.c:66
@@ -2001,7 +2061,7 @@ msgstr "command [-pVv] comandã [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr "declare [-afFrxi] [-p] nume[=valoare] ..."
#: builtins.c:78
@@ -2118,7 +2178,8 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr "set [--abefhkmnptuvxBCHP] [-o opþiune] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [nume ...]"
#: builtins.c:144
@@ -2173,7 +2234,7 @@ msgstr "type [-apt] nume [nume ...]"
#: builtins.c:169
#, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdfmstpnuv] [limitã]"
#: builtins.c:172
@@ -2183,12 +2244,12 @@ msgstr "umask [-S] [mod]"
#: builtins.c:175
#, fuzzy
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr "wait [n]"
#: builtins.c:179
#, fuzzy
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr "wait [n]"
#: builtins.c:182
@@ -2380,12 +2441,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2396,7 +2459,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2407,7 +2470,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2421,7 +2484,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2437,7 +2500,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2460,13 +2523,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2474,7 +2545,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2490,7 +2561,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
#, fuzzy
msgid ""
"Null command.\n"
@@ -2502,7 +2573,7 @@ msgid ""
msgstr ""
"Nici un efect, comanda nu face nimic. Un cod de ieºire zero este returnat."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2510,7 +2581,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2518,7 +2589,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2537,7 +2608,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2557,6 +2628,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2572,17 +2644,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2593,15 +2666,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2613,6 +2688,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2628,7 +2704,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2641,7 +2717,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2668,7 +2744,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2680,7 +2756,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2721,7 +2797,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2744,7 +2820,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
#, fuzzy
msgid ""
"Exit the shell.\n"
@@ -2753,7 +2829,7 @@ msgid ""
" 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:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2762,7 +2838,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2792,7 +2868,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2804,7 +2880,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2818,7 +2894,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2829,7 +2905,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2842,7 +2918,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2864,7 +2940,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2898,7 +2974,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2907,7 +2983,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2922,7 +2998,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2939,7 +3015,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2961,7 +3037,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3006,7 +3082,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3041,20 +3117,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3066,7 +3145,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3132,7 +3211,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3151,7 +3230,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3160,6 +3239,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3171,7 +3252,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3190,7 +3271,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3202,7 +3283,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3210,7 +3293,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3221,7 +3304,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3235,7 +3318,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3249,7 +3332,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3314,6 +3397,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3330,7 +3415,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3338,7 +3423,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3350,7 +3435,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3394,7 +3479,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3424,7 +3509,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3453,6 +3538,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3468,7 +3556,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3486,38 +3574,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3530,7 +3622,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3547,7 +3639,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3567,7 +3659,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3583,7 +3675,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3594,7 +3686,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3615,7 +3707,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3626,7 +3718,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3637,7 +3729,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3650,7 +3742,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3664,7 +3756,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3675,7 +3767,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3689,7 +3781,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3700,7 +3792,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3728,7 +3820,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3782,7 +3874,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3813,7 +3905,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3840,7 +3932,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3869,7 +3961,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3890,7 +3982,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3907,9 +3999,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3917,13 +4009,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3950,7 +4048,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -3963,7 +4061,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -3994,7 +4092,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4035,13 +4133,17 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+#, fuzzy
+#~ msgid "wait [pid]"
+#~ msgstr "wait [n]"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)"
@@ -4167,8 +4269,8 @@ msgstr ""
#~ 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"
+#~ "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ã"
@@ -4813,8 +4915,8 @@ msgstr ""
#~ msgid ""
#~ " then the editor which corresponds to the current readline editing"
#~ msgstr ""
-#~ " apoi editorul care corespunde cu modul de editare al liniei"
-#~ "(readline)"
+#~ " apoi editorul care corespunde cu modul de editare al "
+#~ "liniei(readline)"
#~ msgid " mode, then vi."
#~ msgstr " curente, ºi apoi vi."
@@ -5428,8 +5530,8 @@ msgstr ""
#~ 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);"
+#~ "pe o funcþie. Anumite variabile ( precum PATH ºi IFS) nu pot fi "
+#~ "desetate(unset);"
#~ msgid "see readonly."
#~ msgstr "de asemenea, vedeþi readonly."
diff --git a/po/ru.gmo b/po/ru.gmo
index c43e01cb..60332057 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index fb4ca297..b0ad99bd 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,99 +8,115 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU bash 3.1-release\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2006-01-05 21:28+0300\n"
"Last-Translator: Evgeniy Dushistov <dushistov@mail.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
+"Language: ru\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:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s; ÎÅ ÍÏÇÕ ÐÒÉÐÉÓÁÔØ ÎÅ ÞÉÓÌÏ×ÏÊ ÉÎÄÅËÓ"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: ÐÅÒ×ÙÊ ÎÅÐÒÏÂÅÌØÎÙÊ ÓÉÍ×ÏÌ ÎÅ `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: ÐÒÏÐÕÝÅÎ ÒÁÚÄÅÌÉÔÅÌØ Ä×ÏÅÔÏÞÉÅ"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr ""
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': ÉÍÑ ÆÕÎËÃÉÉ ÎÅÉÚ×ÅÓÔÎÏ"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s ÎÅ ÐÒÉ×ÑÚÁÎÁ ÎÅ Ë ÏÄÎÏÊ ÉÚ ËÌÁ×ÉÛ.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎ Ó ÐÏÍÏÝØÀ"
@@ -113,18 +129,22 @@ msgstr ""
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "ÉÍÅÅÔ ÓÍÙÓÌ ÔÏÌØËÏ × ÃÉËÌÁÈ `for', `while', ÉÌÉ `until'"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "ÐÅÒÅÍÅÎÎÁÑ HOME ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "ÐÅÒÅÍÅÎÎÁÑ OLDPWD ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ"
@@ -133,7 +153,7 @@ msgstr "ÐÅÒÅÍÅÎÎÁÑ OLDPWD ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ"
msgid "line %d: "
msgstr ""
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
@@ -143,11 +163,7 @@ msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
msgid "%s: usage: "
msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: ÏÐÃÉÑ ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ"
@@ -162,7 +178,7 @@ msgstr "%s: ÔÒÅÂÕÅÔÓÑ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ"
msgid "%s: not found"
msgstr "%s: ÎÅ ÎÁÊÄÅÎ"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
@@ -172,7 +188,7 @@ msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
msgid "%s: invalid option name"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
@@ -187,7 +203,7 @@ msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ"
msgid "invalid hex number"
msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
@@ -201,7 +217,7 @@ msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÓÉÇÎÁÌÁ"
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': ÎÅ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ ÉÌÉ ÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÚÁÄÁÞÉ"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÐÅÒÅÍÅÎÎÁÑ"
@@ -273,48 +289,58 @@ msgstr "%s: ÏÛÉÂËÁ ÐÏÌÕÞÅÎÉÑ ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr ""
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr ""
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr ""
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr ""
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr ""
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÔÏÌØËÏ × ÆÕÎËÃÉÉ"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ-ÍÁÓÓÉ× ÔÁËÉÍ ÓÐÏÓÏÂÏÍ"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -343,24 +369,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÏÒÉÅÊ"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ÎÅ Ñ×ÌÑÅÔÓÑ ÏÂÙÞÎÙÍ ÆÁÊÌÏÍ"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÆÁÊÌ"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ"
@@ -394,11 +419,11 @@ msgstr "åÓÔØ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÁÄÁÞÉ.\n"
msgid "no command found"
msgstr "ÎÅ ÎÁÛÅÌ ÔÁËÕÀ ËÏÍÁÎÄÕ"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s"
@@ -444,18 +469,18 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -475,7 +500,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr ""
@@ -489,16 +514,16 @@ msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÅÒ×ÉÓ"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
@@ -507,65 +532,70 @@ msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
msgid "%s: not an indexed array"
msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
#, fuzzy
msgid "empty array variable name"
msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': ÐÒÏÐÕÝÅÎ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ"
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÓÉÇÎÁÌÁ"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, fuzzy, c-format
msgid "warning: %s: %s"
msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -574,19 +604,24 @@ msgstr ""
msgid "no other directory"
msgstr "ÎÅÔ ÄÒÕÇÏÊ ÄÉÒÅËÔÏÒÉÉ"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr ""
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr ""
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -610,7 +645,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -635,7 +670,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -656,40 +691,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ: ÄÏÓÔÕÐÎÏ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ÎÅ ÆÕÎËÃÉÑ"
@@ -698,11 +733,11 @@ msgstr "%s: ÎÅ ÆÕÎËÃÉÑ"
msgid "shift count"
msgstr ""
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ ÏÂÏÌÏÞËÉ"
@@ -744,7 +779,7 @@ msgstr "%s Ñ×ÌÑÅÔÓÑ ÆÕÎËÃÉÅÊ\n"
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -754,45 +789,45 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': ÐÌÏÈÁÑ ËÏÍÁÎÄÁ"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr ""
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr ""
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr ""
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "ÞÉÓÌÏ × ×ÏÓØÍÅÒÉÞÎÏÊ ÓÉÓÔÅÍÅ ÉÓÞÉÓÌÅÎÉÑ"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -806,299 +841,314 @@ msgstr "ÐÏÓÌÅÄÎÑÑ ËÏÍÁÎÄÁ: %s\n"
msgid "Aborting..."
msgstr "úÁ×ÅÒÛÁÀ ÒÁÂÏÔÕ..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ËÏÍÁÎÄÙ"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr ""
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr ""
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr ""
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr ""
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr ""
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr ""
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s: ÎÅ ×ÓÔÒÏÅÎÎÁ × ÏÂÏÌÏÞËÕ"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr ""
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr ""
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ×ÙÒÁÖÅÎÉÅ"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "ÐÏÐÙÔËÁ ÐÒÉÓ×ÏÅÎÉÑ ÎÅ-ÐÅÒÅÍÅÎÎÏÊ"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "ÄÅÌÅÎÉÅ ÎÁ 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr ""
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr ""
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "ÐÒÏÐÕÝÅÎ `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÏÖÉÄÁÅÔÓÑ ÏÐÅÒÁÎÄ"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr ""
-#: expr.c:1435
+#: expr.c:1543
#, fuzzy, c-format
msgid "%s: expression error\n"
msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr ""
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, fuzzy, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr ""
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr ""
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr ""
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr ""
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr ""
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr ""
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr ""
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr ""
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr ""
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr ""
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr ""
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr ""
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr ""
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr ""
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr ""
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr ""
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr ""
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr ""
@@ -1119,54 +1169,54 @@ msgstr ""
msgid "unknown"
msgstr "%s: ÈÏÓÔ ÎÅÉÚ×ÅÓÔÅÎ"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1189,35 +1239,35 @@ msgstr ""
msgid "network operations not supported"
msgstr ""
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr ""
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "õ ×ÁÓ ÅÓÔØ ÐÏÞÔÁ × $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "õ ×ÁÓ ÅÓÔØ ÎÏ×ÁÑ ÐÏÞÔÁ × $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "ðÏÞÔÁ × %s ÂÙÌÁ ÐÒÏÞÉÔÁÎÁ\n"
@@ -1235,118 +1285,118 @@ msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `;' ÎÅ ÏÖÉÄÁÅÔÓÑ"
msgid "syntax error: `((%s))'"
msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr ""
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr ""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr ""
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "ÏÖÉÄÁÌÓÑ `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr ""
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr ""
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr ""
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr ""
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ ÏËÏÌÏ `%s'"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "éÓÐÏÌØÚÕÊÔÅ \"%s\", ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØÓÑ ÒÁÂÏÔÕ Ó ÏÂÏÌÏÞËÏÊ.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1356,90 +1406,90 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr ""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, fuzzy, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr ""
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: ÎÅ ÍÏÇÕ ÐÅÒÅÐÉÓÁÔØ ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr ""
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "ÏÛÉÂËÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ: ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ /tmp, ÐÏÖÁÌÕÊÓÔÁ ÓÏÚÄÁÊÔÅ!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp ÄÏÌÖÎÁ ÂÙÔØ ÄÅÊÓÔ×ÉÔÅÌØÎÙÍ ÉÍÅÎÅÍ ÄÉÒÅËÔÏÒÉÉ"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "õ ÍÅÎÑ ÎÅÔ ÉÍÅÎÉ!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr ""
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1449,39 +1499,39 @@ msgstr ""
"%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ...\n"
"\t%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ÆÁÊÌ_ÓÏ_ÓËÒÉÐÔÏÍ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "äÌÉÎÎÙÅ ÏÐÃÉÉ × ÓÔÅÌÅ GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "ïÐÃÉÉ ÏÂÏÌÏÞËÉ:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr ""
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ÉÌÉ ÏÐÃÉÑ -o\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr ""
@@ -1656,229 +1706,239 @@ msgstr ""
msgid "Unknown Signal #%d"
msgstr ""
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr ""
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr ""
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr ""
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr ""
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÞÔÅÎÉÑ"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÚÁÐÉÓÉ"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr ""
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr ""
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr ""
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr ""
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, fuzzy, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ ÁÒÇÕÍÅÎÔ"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr ""
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "ÏÖÉÄÁÅÔÓÑ `)' "
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "ÏÖÉÄÁÌÓÑ `)', ÎÁÊÄÅÎ %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÕÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÂÉÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "ÐÒÏÐÕÝÅÎ `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
msgstr ""
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr ""
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr ""
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, fuzzy, c-format
msgid "%s has null exportstr"
msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ: %s"
-#: variables.c:4791
+#: variables.c:5262
#, fuzzy, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ ÄÏÐÕÓÔÉÍÙÈ ÚÎÁÞÅÎÉÊ"
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr ""
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1911,7 +1971,7 @@ msgstr ""
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1932,7 +1992,7 @@ msgid "caller [expr]"
msgstr ""
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr ""
#: builtins.c:66
@@ -1956,7 +2016,7 @@ msgid "command [-pVv] command [arg ...]"
msgstr ""
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr ""
#: builtins.c:78
@@ -2058,7 +2118,7 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr ""
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr ""
#: builtins.c:144
@@ -2108,7 +2168,7 @@ msgid "type [-afptP] name [name ...]"
msgstr ""
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr ""
#: builtins.c:172
@@ -2116,11 +2176,11 @@ msgid "umask [-p] [-S] [mode]"
msgstr ""
#: builtins.c:175
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr ""
#: builtins.c:179
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr ""
#: builtins.c:182
@@ -2300,12 +2360,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2316,7 +2378,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2327,7 +2389,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2341,7 +2403,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2357,7 +2419,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2380,13 +2442,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2394,7 +2464,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2410,7 +2480,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
#, fuzzy
msgid ""
"Null command.\n"
@@ -2423,7 +2493,7 @@ msgstr ""
" îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × "
"ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2431,7 +2501,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
#, fuzzy
msgid ""
"Return an unsuccessful result.\n"
@@ -2440,7 +2510,7 @@ msgid ""
" Always fails."
msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ÎÅÕÄÁÞÁ."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2459,7 +2529,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2479,6 +2549,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2494,17 +2565,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2515,15 +2587,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2535,6 +2609,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2550,7 +2625,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2563,7 +2638,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2590,7 +2665,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2602,7 +2677,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2643,7 +2718,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2666,7 +2741,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2674,7 +2749,7 @@ msgid ""
" is that of the last command executed."
msgstr ""
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2683,7 +2758,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2713,7 +2788,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2725,7 +2800,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2739,7 +2814,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2750,7 +2825,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2763,7 +2838,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2785,7 +2860,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2819,7 +2894,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2828,7 +2903,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2843,7 +2918,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2860,7 +2935,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2882,7 +2957,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -2927,7 +3002,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -2962,20 +3037,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -2987,7 +3065,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3053,7 +3131,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3072,7 +3150,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3081,6 +3159,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3092,7 +3172,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3111,7 +3191,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3123,7 +3203,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3131,7 +3213,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3142,7 +3224,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3156,7 +3238,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3170,7 +3252,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3235,6 +3317,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3251,7 +3335,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3259,7 +3343,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3271,7 +3355,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3315,7 +3399,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3345,7 +3429,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3374,6 +3458,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3389,7 +3476,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3407,38 +3494,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3451,7 +3542,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3468,7 +3559,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3488,7 +3579,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3504,7 +3595,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3515,7 +3606,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3536,7 +3627,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3547,7 +3638,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3558,7 +3649,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3571,7 +3662,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3585,7 +3676,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3596,7 +3687,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3610,7 +3701,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3621,7 +3712,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3649,7 +3740,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3703,7 +3794,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3734,7 +3825,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3761,7 +3852,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3790,7 +3881,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3811,7 +3902,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3828,9 +3919,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3838,13 +3929,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3871,7 +3968,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
#, fuzzy
msgid ""
"Display possible completions depending on the options.\n"
@@ -3890,7 +3987,7 @@ msgstr ""
" åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ "
"ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -3921,7 +4018,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -3962,7 +4059,7 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 6d4b6205..626569e0 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 3522036f..09cda5f7 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,105 +1,121 @@
# Slovak translation for bash.
# Copyright (C) 2006 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Ivan Masár <helix84@centrum.sk>, 2007, 2008, 2009, 2010.
+# Ivan Masár <helix84@centrum.sk>, 2007, 2008, 2009, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-01-07 19:18+0100\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2011-03-16 21:22+0100\n"
"Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
+"Language: sk\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "chybný index poľa"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: nie je možné previesť indexované pole na asociatívne"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: neplatný kÄ¾ÃºÄ asociatívneho poľa"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: nie je možné priradiť nenumerickému indexu"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, 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:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: nie je možné vytvoriť: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
"bash_execute_unix_command: nie je možné nájsť klávesovú mapu pre príkaz"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: prvý znak (okrem bielych znakov) nie je „\"“"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "chýba zatvárajúca „%c“ v %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: chýba oddeľovaÄ dvojbodka"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "„%s“: neplatný názov aliasu"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "úpravy riadka nie sú zapnuté"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "„%s“: neplatný názov klávesovej mapy"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: nie je možné preÄítaÅ¥: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "„%s“: nie je možné zrušiť väzbu (unbind)"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "„%s“: neznámy názov funkcie"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, 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
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s je možné vyvolať ako "
@@ -112,7 +128,7 @@ msgstr "poÄet cyklov"
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
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -122,11 +138,15 @@ msgstr ""
" \n"
" Bez EXPR, vracia "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME nebola nastavená"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "príliš veľa argumentov"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD nebola nastavená"
@@ -135,7 +155,7 @@ msgstr "OLDPWD nebola nastavená"
msgid "line %d: "
msgstr "riadok %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "upozornenie: "
@@ -145,11 +165,7 @@ msgstr "upozornenie: "
msgid "%s: usage: "
msgstr "%s: použitie "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "príliš veľa argumentov"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: voľba vyžaduje argument"
@@ -164,7 +180,7 @@ msgstr "%s: vyžaduje sa numerický argument"
msgid "%s: not found"
msgstr "%s: nenájdené"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: neplatná voľba"
@@ -174,7 +190,7 @@ msgstr "%s: neplatná voľba"
msgid "%s: invalid option name"
msgstr "%s: neplatný názov voľby"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "„%s“: nie je platný identifikátor"
@@ -187,7 +203,7 @@ msgstr "neplatné osmiÄkové Äíslo"
msgid "invalid hex number"
msgstr "neplatné Å¡estnástkové Äíslo"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "neplatné Äíslo"
@@ -201,7 +217,7 @@ msgstr "%s: neplatné urÄenie signálu"
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:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: premenná len na Äítanie"
@@ -273,48 +289,58 @@ msgstr "%s: chyba pri zisťovaní aktuálneho adresára: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: nejednoznaÄné urÄenie úlohy"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: neplatný názov akcie"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: chýba Å¡pecifikácia dokonÄovania"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "momentálne sa nevykonáva funkcia doplňovania"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "je možné použiť iba vo funkcii"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "nie je možné použiť „-f“ pre tvorbu funkcií"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: funkcia iba na Äítanie"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, 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:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: nie je možné previesť asociatívne pole na indexované"
@@ -343,24 +369,23 @@ msgstr "%s: nie je dynamicky naÄítané"
msgid "%s: cannot delete: %s"
msgstr "%s: nie je možné zmazať: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: je adresár"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: nie je obyÄajný súbor"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: súbor je príliš veľký"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: nie je možné vykonať binárny súbor"
@@ -393,11 +418,11 @@ msgstr "Existujú bežiace úlohy.\n"
msgid "no command found"
msgstr "prákaz nenájdený"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "špecifikácia histórie"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: nie je možné otvoriť odkladací súbor: %s"
@@ -443,7 +468,7 @@ 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
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -451,12 +476,12 @@ msgstr ""
"pre „%s“ neboli nájdené zodpovedajúce témy pomocníka.\n"
"Skúste „help help“ alebo „man -k %s“ alebo „info %s“."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: nie je možné otvoriť: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -485,7 +510,7 @@ msgstr "nie je možné použiť viac ako jednu z volieb -anrw"
msgid "history position"
msgstr "poloha histórie"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: rozšírenie histórie zlyhalo"
@@ -499,16 +524,16 @@ msgstr "%s: inlib zlyhalo"
msgid "no other options allowed with `-x'"
msgstr "iné voľby prípustné s „-x“"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argumenty musia byť ID procesov alebo úloh"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Neznáma chyba"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "oÄakával sa výraz"
@@ -517,85 +542,95 @@ msgstr "oÄakával sa výraz"
msgid "%s: not an indexed array"
msgstr "%s: nie je indexované pole"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: neplatná Å¡pecifikácia popisovaÄa súboru"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: neplatný popisovaÄ súboru: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: neplatný poÄet riadkov"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: neplatný zaÄiatok poľa"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: neplatné kvantum spätného volania"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "názov prázdnej premennej poľa"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "vyžaduje sa podpora premennej poľa"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "„%s“: chýba formátovací znak"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: neplatná špecifikácia expirácie (timeout)"
+msgstr "„%c“: neplatná Å¡pecifikácia formátu Äasu"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "„%c“: neplatný formátovací znak"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "upozornenie: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "chýba hexadecimálna Äíslica v \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "chýba hexadecimálna Äíslica v \\x"
+msgstr "chýba Äíslica Unicode pre \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "žiadny iný adresár"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: neplatný argument limitu"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<žiadny aktuálny adresár>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "zásobník adresárov je prázdny"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "index zásobníka adresárov"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -637,7 +672,7 @@ msgstr ""
" -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
+#: builtins/pushd.def:711
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"
@@ -681,7 +716,7 @@ msgstr ""
" \n"
" Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -720,42 +755,42 @@ msgstr ""
" \n"
" Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: neplatná špecifikácia expirácie (timeout)"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "chyba pri Äítaní: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "nie je možné zároveň zrušiť funkciu a premennú"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: nie je možné zrušiť"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: nie je možné zruÅ¡iÅ¥: len na Äítanie %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: nie je premenná poľa"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: nie je funkcia"
@@ -764,11 +799,11 @@ msgstr "%s: nie je funkcia"
msgid "shift count"
msgstr "posun o"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
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:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: neplatný názov voľby shellu"
@@ -810,7 +845,7 @@ msgstr "%s je funkcia\n"
msgid "%s is a shell builtin\n"
msgstr "%s je vstavaný príkaz (builtin) shellu\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s je %s\n"
@@ -820,45 +855,45 @@ msgstr "%s je %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s je hašovaný (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: neplatný argument limitu"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "„%c“: chybný príkaz"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: nie je možné zistiť limit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "obmedzenie"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: nie je možné zmeniť limit: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "osmiÄkové Äíslo"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "„%c“: neplatný operátor symbolického režimu"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "„%c“: neplatný znak symbolického režimu"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " riadok "
@@ -872,298 +907,313 @@ msgstr "posledný príkaz: %s\n"
msgid "Aborting..."
msgstr "Ruší sa..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "chyba neznámeho príkazu"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "chybný typ príkazu"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "chybný konektor"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "chybný skok"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: neviazaná premenná"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: „%c“: neplatný formátovácí znak"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "chyba rúry"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, 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:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: príkaz nenájdený"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s je %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: chybný interpreter"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nie je možné vykonať binárny súbor"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je vstavaný príkaz (builtin) shellu\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "nie je možné duplikovať fd %d na fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "bola prekroÄená úroveň rekurzie výrazu"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "podteÄenie zásobníka rekurzie"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "chyba syntaxe vo výraze"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "pokus o priradenie mimo premennej"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "delenie nulou"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "chyba: chybný expassign token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "pre podmienený výraz sa oÄakáva „:“"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponent menší ako 0"
-#: expr.c:887
+#: expr.c:976
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:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "chýba „)“"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "chyba syntaxe: oÄakáva sa operand"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "chyba syntaxe: neplatný aritmetický operátor"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (chybný token je „%sâ€)"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "neplatný aritmetický základ"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "hodnota je ako základ príliš veľká"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: chyba výrazu\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: nie je možné pristupovaÅ¥ k rodiÄovským adresárom"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "nie j emožné resetovať nodelay režim fd %d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr "nie je možné alokovaÅ¥ nový popisovaÄ súboru pre vstup bashu z fd %d"
-#: input.c:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp rúra"
-#: jobs.c:889
+#: jobs.c:893
#, 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:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "mažem zastavenú úlohu %d so skupinou procesu %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: proces %5ld (%s) v the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, 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:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: taký pid neexistuje"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signál %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Hotovo"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Zastavené"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Zastavené(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Beží"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Hotovo(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "UkonÄenie %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Neznámy stav"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(bol uložený výpis pamäte) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid detského procesu (%ld to %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Neexistuje záznam o procese %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: úloha %d je zastavená"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: úloha skonÄila"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: úloha %d už je v pozadí"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: zapína sa WNOHANG aby sme sa vyhli neurÄitému blokovaniu"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: riadok %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (bol uložený výpis pamäte)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(wd teraz: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: funkcia getpgrp zlyhala"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: riadkový systém"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "nie je možné nastaviť skupinu procesu terminálu (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "v tomto shelli nie je riadenie úloh"
@@ -1185,54 +1235,54 @@ msgstr ""
msgid "unknown"
msgstr "neznámy"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: blok na zozname voľných zaprataný"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: zavolaný s argumentom už uvoľneného bloku"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: zavolaný s argumentom nealokovaného bloku"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr "free: bolo detekované podteÄenie; mh_nbytes mimo rozsahu"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
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
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: zavolaný s argumentom nealokovaného bloku"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr "realloc: bolo detekované podteÄenie; mh_nbytes mimo rozsahu"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
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
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "neplatný základ"
@@ -1255,35 +1305,35 @@ msgstr "%s: chybná špecifikácia sieťovej cesty"
msgid "network operations not supported"
msgstr "sieťové operácie nie sú podporované"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: nemožno zmeniť locale (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: nemožno zmeniť locale (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: nie je možné zmeniť locale (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: nie je možné zmeniť locale (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Máte poštu v súbore $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Máte novú poštu v súbore $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "PoÅ¡ta v súbore %s bola preÄítaná\n"
@@ -1301,119 +1351,119 @@ msgstr "chyba syntaxe: neoÄakávaná „;“"
msgid "syntax error: `((%s))'"
msgstr "chyba syntaxe: „((%s))“"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: chybný typ inštrukcie %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: inštrukcia presmerovania „%d“ mimo rozsahu"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, 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:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "neoÄakávaný koniec súboru poÄas hľadania „]]“"
-#: parse.y:4030
+#: parse.y:4175
#, 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:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "chyba syntaxe v podmieneÄnom príkaze"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "neoÄakávaný token „%s“, oÄakávalo sa `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "oÄakávalo sa `)'"
-#: parse.y:4144
+#: parse.y:4289
#, 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:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "neoÄakávaný argument podmieneÄného unárneho operátora"
-#: parse.y:4194
+#: parse.y:4339
#, 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:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "oÄakáva sa podmieneÄný binárny operátor"
-#: parse.y:4220
+#: parse.y:4365
#, 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:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "neoÄakávaný argument v podmieneÄnom binárnom operátore"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "neoÄakávaný token „%c“ v podmieneÄnom príkaze"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "neoÄakávaný token „%s“ v podmieneÄnom príkaze"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "neoÄakávaný token %d v podmieneÄnom príkaze"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "chyba syntaxe neÄaleko neoÄakávaného tokenu „%s“"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "chyba syntaxe neÄaleko „%s“"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "chyba syntaxe: neoÄakávaný koniec súboru"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "chyba syntaxe"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Na opustenie shellu použite „%s“.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "neoÄakávaný koniec súboru poÄas hľadania zodpovedajúceho „)“"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "dokonÄovanie: funkcia „%s“ nebola nájdená"
@@ -1423,90 +1473,90 @@ msgstr "dokonÄovanie: funkcia „%s“ nebola nájdená"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: chybný konektor `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: neplatný popisovaÄ súboru"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: ukazovateľ súboru je NULL"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: „%c“: neplatný formátovací znak"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "popisovaÄ súboru mimo rozsahu"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: nejednoznaÄné presmerovanie"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: nie je možné prepísať existujúci súbor"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: ombedzené: nie je možné presmerovať výstup"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "nie je možné vytvoriť odkladací súbor pre here-document: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: nie je možné priradiÅ¥ popisovaÄ súboru premennej"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port nie je podporovaný bez podpory sietí"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "chyba presmerovania: nie je možné duplikovať fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "nenašiel sa /tmp, vytvorte ho prosím!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp musí byť platný názov adresára"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: neplatná voľba"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Nemám meno!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, verzia %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1515,42 +1565,43 @@ 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU dlhé voľby:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Voľby shellu:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD 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:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s alebo -o voľba\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "Na ohlasovanie chýb použite príkaz „bashbug“.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: neplatná operácia"
@@ -1724,72 +1775,77 @@ msgstr "Neznáme Äíslo signálu"
msgid "Unknown Signal #%d"
msgstr "Neznámy signál #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "chybná substitúcia: chýba „%s“ v %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: nie je možné priradiť zoznam položke poľa"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "nie je možné vytvoriť rúru pre substitúciu procesov"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "nie je možné vytvoriť potomka pre substitúciu procesov"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "nie je možné otvoriÅ¥ pomenovanú rúru %s na Äítanie"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "nie je možné otvoriť pomenovanú rúru %s na zápis"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "nie je možné duplikovať pomenovanú rúru %s ako fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "nie je možné vytvoriť rúru pre substitúciu príkazov"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "nie je možné vytvoriť potomka pre substitúciu príkazov"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: nie je možné duplikovať rúru ako fd 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: neplatná hodnota popisovaÄa trasovacieho súboru"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parameter je null alebo nenastavený"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: výraz podreťazca < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: chybná substitúcia"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: nie je možné vykonať priradenie takýmto spôsobom"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1797,130 +1853,145 @@ msgstr ""
"budúce verzie shellu budú vynucovať vyhodnocovanie ako aritmetickú "
"substitúciu"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "chybná substitúcia: : v reÅ¥azci %s chýba uzatvárajúci „`â€"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "bez zhody: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "oÄakával sa argument"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: oÄakával sa celoÄíselný výraz"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "oÄakávala sa „)“"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "oÄakávala sa „)“, bolo nájdené %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: oÄakával sa unárny operátor"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: oÄakával sa binárny operátor"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "chýba „]“"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "neplatné Äíslo signálu"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: chybný signál %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "chyba pri importe definície funkcie „%s“"
-#: variables.c:755
+#: variables.c:780
#, 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:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: neplatná hodnota popisovaÄa trasovacieho súboru"
+
+#: variables.c:2228
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:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: nie je možné priradiÅ¥ popisovaÄ súboru premennej"
+
+#: variables.c:3646
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:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s má null exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "neplatný znak %d v exportstr %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "žiadne „=“ v exportstr %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: chýba kontext global_variables"
-#: variables.c:3978
+#: variables.c:4431
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"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: nemožno otvoriť ako SÚBOR"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: neplatná hodnota popisovaÄa trasovacieho súboru"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s je mimo rozsahu"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1928,36 +1999,27 @@ msgstr ""
"Licencia GPLv3+: GNU GPL verzie 3 alebo novšia http://gnu.org/licenses/gpl."
"html\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, verzia %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
msgstr "Toto je slobodný softvér; môžete ho slobodne meniť a šíriť.\n"
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
"Nie sú poskytované ŽIADNE ZÃRUKY v rozsahu aký povoľuje\n"
"aplikovateľné právo.\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licencia GPLv2+: GNU GPL verzie 2 alebo novšia http://gnu.org/licenses/gpl."
-"html\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -1988,8 +2050,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] názov [názov ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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 "
@@ -2014,8 +2077,8 @@ msgstr "caller [výraz]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [adresár]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [adresár]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2039,13 +2102,12 @@ msgstr "command [-pVv] command [arg ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [názov[=hodnota] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [názov[=hodnota] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] názov[=hodnota] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] name[=value] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2145,12 +2207,12 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o názov_voľby] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o názov_voľby] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [názov ...]"
#: builtins.c:144
@@ -2158,9 +2220,8 @@ msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [názov[=hodnota] ...] alebo export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [názov[=hodnota] ...] alebo readonly -p"
+msgstr "readonly [-aAf] [názov[=hodnota] ...] alebo readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2199,7 +2260,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] názov [názov ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [obmedzenie]"
#: builtins.c:172
@@ -2207,12 +2269,14 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [režim]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [id]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2392,6 +2456,7 @@ msgstr ""
" Vráti 0 ak nebol zadaný NÃZOV, pre ktorý nie je definovaný alias."
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2425,6 +2490,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2467,7 +2534,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2485,7 +2552,7 @@ msgstr ""
" Návratová hodnota:\n"
" Návratová hodnota je 0 ak N nie je väÄÅ¡ie alebo rovné 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2503,7 +2570,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak N nie je väÄÅ¡ie alebo rovné 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2529,7 +2596,7 @@ msgstr ""
"je\n"
" vstavaná funkcia shellu."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2556,7 +2623,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak shell nevykonáva funkciu shellu a EXPR nie je neplatný."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2580,22 +2647,31 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; non-zero otherwise."
msgstr ""
-"Zmeniť aktuálny adresár.\n"
+"Zmeniť aktuálny adresár shellu.\n"
" \n"
-" Zmení aktuálny adresár na ADR. Premenná $HOME je štandardný ADR.\n"
+" Zmení aktuálny adresár na ADR. Predvolený aktuálny adresár je hodnota\n"
+" premennej shellu HOME.\n"
" \n"
" Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár obsahujúci "
"ADR.\n"
@@ -2611,14 +2687,17 @@ msgstr ""
" -L\tvynúti nasledovanie symbolických odkazov\n"
" -P\tpoužije sa fyzická štruktúra adresárov a nie nasledovať\n"
" \t\tsymbolické odkazy.\n"
+" -e\tak je zadaná voľba -P a aktuálny adresár nie je možné\n"
+" \túspeÅ¡ne urÄiÅ¥, ukonÄiÅ¥ s nenulovou návratovou hodnotou\n"
" \n"
" Štandardne sa budú nasledovať symbolické odkazy ako keby bola\n"
" zadaná voľba „-L“.\n"
" \n"
" Návratová hodnota:\n"
-" Vráti 0 ak bol aktuálny adresár zmenený, inak nenulovú hodnotu."
+" Vráti 0 ak bol aktuálny adresár zmenený a ak sa pri použití voľby -P\n"
+" úspešne nastaví $PWD, inak nenulovú hodnotu."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2646,7 +2725,7 @@ msgstr ""
" Vracia 0 ak nie je zadaná neplatná voľba alebo nie je možné\n"
" preÄítaÅ¥ aktuálny adresár."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2662,7 +2741,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vždy vráti pravda."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2674,7 +2753,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vždy vráti 0."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2688,7 +2767,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vždy vráti nepravda."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2721,7 +2800,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu PRÃKAZu alebo zlyhá ak nenájde PRÃKAZ."
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2742,6 +2821,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2757,17 +2837,20 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Nastaviť hodnoty a atribúty premennných.\n"
" \n"
-" Deklaruje premenné a ich atribúty. Ak nie sú zadané NÃZVY,\n"
+" Deklaruje premenné a dáva im atribúty. Ak nie sú zadané NÃZVY,\n"
" zobrazí atribúty a hodnoty všetkých premenných.\n"
" \n"
" Voľby:\n"
" -f\tobmedzí operáciu alebo výpis na názvy funkcií a definície\n"
" -F\tobmedzí výpis iba na názvy funkcií (plus Äíslo riadka a\n"
" \t\tzdrojový súbor pri ladení)\n"
+" -g\tvytvorí globálne premenné pri použití vo funkcii shellu; inak\n"
+" \tsa ignoruje\n"
" -p\tzobrazí atribúty a hodnotu každého NÃZVU\n"
" \n"
" Voľby, ktoré nastavujú atribúty:\n"
@@ -2791,7 +2874,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2801,7 +2884,8 @@ msgstr ""
" \n"
" Zastaralé. Pozri „help declare“."
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2812,8 +2896,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"Definovať lokálne premenné.\n"
" \n"
@@ -2827,11 +2911,14 @@ msgstr ""
" Vráti 0 ak nebola zadaná neplatná voľba, nevyskytla sa chyba a\n"
" shell práve nevykonáva funkciu."
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2843,6 +2930,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2885,7 +2973,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak sa nevyskytla sa chyba pri zápise."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2907,7 +2995,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak sa nevyskytla sa chyba pri zápise."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2961,7 +3049,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak NÃZOV nie je vstavaná funkcia shellu a nevyskytla sa chyba."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2980,7 +3068,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu príkazu alebo 0 ak je príkaz prázdny."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3056,7 +3144,7 @@ msgstr ""
" Vráti 0 ak je voľba nájdená; zlyhá po dosiahnutí konca reťazca volieb\n"
" alebo ak sa vyskytne chyba."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3096,7 +3184,7 @@ msgstr ""
" Vráti 0 ak sa nestane, že PRÃKAZ nebol nájdený a nevyskytne sa chyba\n"
" presmerovania."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3108,7 +3196,7 @@ msgstr ""
" UkonÄí shell s návratovou hodnotou N. Ak sa N vynechá, návratová\n"
" hodnota sa nastaví podľa stavu posledného vykonaného príkazu."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3121,7 +3209,7 @@ msgstr ""
" UkonÄí login shell s návratovou hodnotou N. Vráti chybu ak nie je\n"
" spustený v login shelli."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3177,7 +3265,7 @@ msgstr ""
" Vráti 0 alebo stav vykonaného príkazu; nenulovú hodnotu ak sa vyskytne\n"
" chyba."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3197,7 +3285,7 @@ msgstr ""
" Stav príkazu umiestneného do popredia; nenulovú hodnotu ak sa vyskytne\n"
" chyba."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3218,7 +3306,8 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nie je riadenie úloh vypnuté a nevyskytne sa chyba."
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3229,7 +3318,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3265,7 +3354,7 @@ msgstr ""
" Vráti 0 ak sa nestalo, že NÃZOV nebol nájdený a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3305,7 +3394,7 @@ msgstr ""
" Vráti 0 ak sa nestalo, že VZOR nebol nájdený a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3368,7 +3457,8 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3377,7 +3467,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3411,7 +3501,7 @@ msgstr ""
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba.\n"
" Ak je použitá voľba -x, vráti sa návratová hodnota PRÃKAZu."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3441,7 +3531,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná JOBSPEC."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3481,8 +3571,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3528,7 +3617,7 @@ msgid ""
msgstr ""
"Vyhodnotiť aritmetické výrazy.\n"
" \n"
-" Každý ARG je aritmetický výraz, ktorý sa má vyhodnotiť. Vyhodnocuje\n"
+" Vyhodnotí každý ARG ako aritmetický výraz. 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"
@@ -3550,13 +3639,13 @@ msgstr ""
" \t&&\t\tkonjunkcia\n"
" \t||\t\talternatíva\n"
" \tvýraz ? výraz : výraz\n"
-" \t\t\tpodmienený operator\n"
+" \t\t\tpodmienený operátor\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"
+" v rámci výrazu nahradí jej hodotou (prevedenou na 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"
@@ -3567,7 +3656,8 @@ msgstr ""
" Návratová hodnota:\n"
" Ak sa posledný ARG vyhodnotí na 0, let vráti 1; 0 inak sa vráti 0."
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3602,16 +3692,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"NaÄítaÅ¥ riadok zo Å¡tandardného vstupu a rozdeliÅ¥ ho do polí.\n"
@@ -3657,7 +3750,7 @@ msgstr ""
" Vráti 0 ak sa nenarazí pri Äítaní nakoniec súboru, nevyprší Äas na\n"
" Äítanie a ako argument -u nebol je zadaný neplatný popisovaÄ."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3678,7 +3771,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti N alebo zlyhá ak shell nevykonáva funkciu Äi skript."
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3745,7 +3838,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3765,7 +3858,7 @@ msgid ""
msgstr ""
"NastaviÅ¥ alebo zruÅ¡iÅ¥ nastavenie volieb shellu a poziÄných parametrov.\n"
" \n"
-" Zmení hodnotu atribútov shellu a poziÄných parametrov alebo zobrazí\n"
+" Zmení hodnotu atribútov shellu a poziÄných parametrov alebo zobrazí\n"
" názvy a hodnoty premenných shellu.\n"
" \n"
" Voľby:\n"
@@ -3781,44 +3874,42 @@ msgstr ""
" -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\n"
-" 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 "
+" allexport rovnaké ako -a\n"
+" braceexpand rovnaké ako -B\n"
+" emacs použiť rozhranie na úpravu príkazového riadka\n"
+" 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\n"
-" hodnotou, alebo nula ak žiadny príkaz nevrátil\n"
-" nenulovú hodnotu\n"
-" posix zmeniť správanie bash, kde sa štandardné "
+" 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\n"
+" hodnotou, alebo nula ak žiadny príkaz nevrátil\n"
+" 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\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\n"
" v štýle vi\n"
-" xtrace rovnaké ako -x\n"
-" \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"
@@ -3836,6 +3927,9 @@ msgstr ""
" -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"
+" Ak nezostávajú žiadne argumenty, zruší sa nastavenie poziÄných\n"
+" parametrov.\n"
" - OdovzdaÅ¥ vÅ¡etky zostávajúce argumenty poziÄným parametrom.\n"
" Voľby -x a -v sú vypnuté.\n"
" \n"
@@ -3848,7 +3942,8 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba."
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3857,6 +3952,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3885,7 +3982,7 @@ msgstr ""
" Vráti 0 ak sa nestalo, že je NÃZOV iba na Äítanie a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3920,7 +4017,8 @@ msgstr ""
" Vráti 0 ak sa nestalo, že je NÃZOV neplatný a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3932,7 +4030,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3958,7 +4058,7 @@ msgstr ""
" Vráti 0 ak sa nestalo, že je NÃZOV neplatný a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3976,7 +4076,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak sa nestalo, že je N záporné alebo väÄÅ¡ie ako $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4000,7 +4100,7 @@ msgstr ""
" Vráti návratovú hodnotu posledného príkazu v SÚBORe; zlyhá ak nie je\n"
" možné SÚBOR naÄítaÅ¥."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4024,7 +4124,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak sa nestalo, že je vypnuté riadenie úloh a nevyskytla sa chyba."
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4090,6 +4190,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4108,35 +4210,37 @@ msgstr ""
"Vyhodnotiť podmienený výraz.\n"
" \n"
" SkonÄí 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"
+" 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"
+" Správanie príkazu test závisí na poÄte argumentov. Úplnú\n"
+" Å¡pecifikáciu si môžete preÄítaÅ¥ na manuálovej stránke bash.\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"
+" -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"
@@ -4147,30 +4251,31 @@ msgstr ""
" \n"
" Operátory reťazcov:\n"
" \n"
-" -z REŤAZEC Pravda ak je reťazec prázdny.\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Ť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 "
+" 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 "
+" 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"
+" -o VOĽBA Pravda ak je VOĽBA shellu zapnutá.\n"
+" -v PREM\t Pravda ak je premenná PREM shellu nastavená.\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"
+" 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"
@@ -4181,7 +4286,7 @@ msgstr ""
" Vráti 0 ak VÃR vyhodnotí ako pravdivý; zlyhá ako sa VÃR vyhodnotí\n"
" ako nepravdivý alebo je zadaný neplatný argument."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4193,7 +4298,7 @@ msgstr ""
" Toto je synonymum vsatavanej funkcie „test“, ale posledný\n"
" argument musí byť literál „]“, ktorý uzatvára otvárajúcu „[“."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4212,8 +4317,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vždy vráti 0."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4259,7 +4363,8 @@ msgstr ""
"Zachytiť signály a iné udalosti.\n"
" \n"
" Definuje a aktivuje spustenie obsluhy udalosti, keÄ shell dostane "
-"signál SIGNAL_SPEC alebo iných podmienok.\n"
+"signál\n"
+" SIGNAL_SPEC alebo iných podmienok.\n"
" \n"
" 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"
@@ -4267,9 +4372,14 @@ msgstr ""
" prázdny režazec, každý SIGNAL_SPEC shell a príkaz, ktorý vyvolá,\n"
" ignoruje.\n"
" \n"
-" 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.\n"
+" Ak SIGNAL_SPEC je EXIT (0), príkaz ARG sa vykoná pri ukonÄení shellu.\n"
+" Ak je SIGNAL_SPEC DEBUG, ARG sa vykoná po každom jednoduchom príkaze.\n"
+" Ak je SIGNAL_SPEC RETURN, ARG sa vykoná po každom vykonaní funkcie "
+"shellu\n"
+" alebo dokonÄení skriptu spusteného pomocou „.“ alebo „source“.\n"
+" Ak je SIGNAL_SPEC ERR, ARG sa vykoná po každom ukonÄení shellu "
+"spôsobenom\n"
+" chybou príkazu, keÄ je zapnutá voľba -e.\n"
" \n"
" Ak nie sú uvedené žiadne argumenty, trap vypíše zoznam príkazov\n"
" asociovaných s každým signálom.\n"
@@ -4287,7 +4397,7 @@ msgstr ""
" Vráti 0 ak sa nestalo, že je SIGSPEC neplatný a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4342,7 +4452,8 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak boli nájdené vÅ¡etky NÃZVY; zlyhá ak nie."
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4371,6 +4482,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4426,7 +4540,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4460,21 +4574,25 @@ msgstr ""
" Vráti 0 ak sa nestalo, že je REŽIM neplatný a nebola zadaná\n"
" neplatná voľba."
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"ÄŒakaÅ¥ na dokonÄenie úlohy a vrátiÅ¥ návratovú hodnotu.\n"
" \n"
@@ -4488,18 +4606,20 @@ msgstr ""
" Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná\n"
" neplatná voľba."
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"ÄŒakaÅ¥ na ukonÄenie zadaného procesu a vypísaÅ¥ jeho návratovú hodnotu.\n"
" \n"
@@ -4512,7 +4632,7 @@ msgstr ""
" Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná neplatná\n"
" voľba."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4534,7 +4654,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4564,7 +4684,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4599,7 +4719,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4627,7 +4747,7 @@ msgstr ""
" Návratová hodnota:\n"
" Návratová hodnota je návratová hodnota RÚRY."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4645,7 +4765,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4682,7 +4802,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4700,7 +4820,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4718,7 +4838,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4740,7 +4860,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu PRÃKAZu."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4765,7 +4885,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak sa nestalo, že je NÃZOV iba na Äítanie."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4783,7 +4903,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu posledného vykonaného príkazu."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4807,7 +4927,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti návratovú hodnotu obnovenej úlohy."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4825,7 +4945,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 1 ak sa VÃRAZ vyhodnotí na 0; inak vráti 0."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4873,7 +4993,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 alebo 1 v závislosti na hodnote VÃRAZu."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4977,7 +5097,7 @@ msgstr ""
" 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:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5033,7 +5153,7 @@ msgstr ""
" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
" chyba pri zmene adresára."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5083,7 +5203,7 @@ msgstr ""
" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
" chyba pri zmene adresára."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5134,7 +5254,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa chyba."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5172,7 +5292,7 @@ msgstr ""
" Vráti 0 ak je OPTNAME zapnuté; zlyhá ak bola zadaná\n"
" neplatná voľba alebo OPTNAME je vypnuté."
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5190,9 +5310,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5200,12 +5320,22 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\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"
+"Formátuje a vypisuje ARGUMENTY podľa FORMÃTu.\n"
+" \n"
+" Voľby:\n"
+" -v PREM\tpriradiť výstup premennej shellu PREM namiesto\n"
+" \t\tzobrazenia na štandarný výstup\n"
" \n"
" FORMÃT je reÅ¥azec znakov, ktorý obsahuje tri typy objektov: Äisté "
"znaky,\n"
@@ -5220,12 +5350,14 @@ msgstr ""
" %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"
+" %(fmt)T vyspísaÅ¥ reÅ¥acez dátumu a Äasu, ktorý vznikne použitím FMT\n"
+" ako formátovacieho reťazca pre strftime(3)\n"
" \n"
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba pri\n"
" zápise Äi priradení."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5273,7 +5405,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5293,8 +5425,7 @@ msgstr ""
" Návratová hodnota:\n"
" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5350,8 +5481,7 @@ msgstr ""
" Vráti 0 ak nebola zadaná neplatná voľba a NÃZOV nemá definovanú\n"
" špecifikáciu dopĺňania."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5391,7 +5521,7 @@ msgid ""
"or\n"
" not an indexed array."
msgstr ""
-"NaÄítaÅ¥ riadky zo súboru do premennej poľa.\n"
+"NaÄítaÅ¥ riadky zo Å¡tandardného vstupu do premennej indexovaného poľa.\n"
" \n"
" NaÄíta riadky zo Å¡tandardného vstupu do premennej poľa POLE alebo z\n"
" popisovaÄa súboru FD ak je zadaná voľba -u. Å tandardné POLE je premenná\n"
@@ -5421,9 +5551,10 @@ msgstr ""
" než ho zaÄne plniÅ¥.\n"
" \n"
" Návratová hodnota:\n"
-" Vráti 0 ak nebola zadaná neplatná voľba a POLE nie je len na Äítanie."
+" Vráti 0 ak nebola zadaná neplatná voľba a POLE nie je len na Äítanie a\n"
+" nie je to indexované pole."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5433,6 +5564,19 @@ msgstr ""
" \n"
" Synonymum k „mapfile“."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Licencia GPLv2+: GNU GPL verzie 2 alebo novšia http://gnu.org/licenses/"
+#~ "gpl.html\n"
+
+#~ msgid "wait [pid]"
+#~ msgstr "wait [pid]"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
diff --git a/po/sl.gmo b/po/sl.gmo
new file mode 100644
index 00000000..3613894b
--- /dev/null
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 00000000..58e42364
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,5593 @@
+# Slovenian translation for bash.
+# Copyright (C) 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+# Klemen Košir <klemen.kosir@gmx.com>, 2012.
+# Andrej ŽnidarÅ¡iÄ <andrej.znidarsic@gmail.com>, 2012.
+# Damir Jerovšek <damir.jerovsek@gmail.com>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bash 4.2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2012-05-29 16:17+0100\n"
+"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
+"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
+"%100==4 ? 3 : 0);\n"
+
+#: arrayfunc.c:51
+msgid "bad array subscript"
+msgstr "slab podpis polja"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: ni mogoÄe pretvoriti zabeleženega polja v povezano polje"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: neveljaven kljuÄ povezanega polja"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: ni mogoÄe dodeliti v ne-Å¡tevilÄno kazalo"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: treba je uporabiti podpis pri dodeljevanju povezanega polja"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: ni mogoÄe ustvariti: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr ""
+"bash_execute_unix_command: ni mogoÄe najti tipkovne razvrstitve za ukaz"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: prvi znak brez presledka ni `\"'"
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "brez zakljuÄka `%c' v %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: manjka loÄilnik dvopiÄja"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "`%s': neveljaven vzdevek"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "urejanje vrstic ni omogoÄeno"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "`%s': neveljavno ime tipkovne razvrstitve"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: ni mogoÄe brati: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "`%s': ni mogoÄe odvezati"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "`%s': neznano ime funkcije"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s ni vezan na nobeno tipko.\n"
+
+#: builtins/bind.def:316
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s se lahko pokliÄe s pomoÄjo "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "Å¡tevec zanke"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "smiselno samo v `for', `while', ali `until' zanki"
+
+#: builtins/caller.def:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Vrne vsebino trenutnega klica podprograma.\n"
+" \n"
+" Brez EXPR vrne "
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "HOME ni nastavljen"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "preveÄ argumentov"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "OLDPWD ni nastavljen"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "vrstica %d: "
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "opozorilo: "
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: uporaba: "
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: možnost zahteva argument"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: zahtevan je Å¡tevni argument"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: ni mogoÄe najti"
+
+#: builtins/common.c:214 shell.c:801
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: neveljavna možnost"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: neveljavno ime možnosti"
+
+#: builtins/common.c:228 general.c:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "`%s': neveljavno doloÄilo"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "neveljavno osmiško število"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "neveljavno šestnajstiško število"
+
+#: builtins/common.c:242 expr.c:1470
+msgid "invalid number"
+msgstr "neveljavno Å¡tevilo"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: neveljavno doloÄilo signala"
+
+#: builtins/common.c:257
+#, c-format
+msgid "`%s': not a pid or valid job spec"
+msgstr "`%s': ni doloÄilo opravila ali neveljavno doloÄilo posla"
+
+#: builtins/common.c:264 error.c:488
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: spremenljivka le za branje"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s izven dosega"
+
+#: 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 izven dosega"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: ni takšnega posla"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: ni nadzora posla"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "ni nadzora posla"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: omejeno"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "omejeno"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: ni vgrajena lupina"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "napaka med pisanjem: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "napaka med nastavljanjem atributov terminala: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "napaka med pridobivanjem atributov terminala: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: napaka med pridobivanjem trenutne mape: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: dvoumno doloÄilo posla"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: neveljavno ime dejanja"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: ni doloÄila dopolnjevanja"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "Opozorilo: možnost -F morda ne bo delovala po priÄakovanjih"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "Opozorilo: možnost -C morda ne bo delovala po priÄakovanjih"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "trenutno se ne izvaja funkcija dopolnjevanja"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "se lahko uporabi samo v funkciji"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "ni mogoÄe uporabiti `-f' za ustvarjanje funkcij"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: funkcija samo za branje"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: na ta naÄin ni mogoÄe uniÄiti spremenljivk polja"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: ni mogoÄe pretvoriti povezanega polja v zabeleženo polje"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "dinamiÄno nalaganje ni na voljo"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "ni mogoÄe odpreti predmeta v souporabi %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "ni mogoÄe najti %s v predmetu v souporabi %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: ni dinamiÄno naloženo"
+
+#: builtins/enable.def:474
+#, c-format
+msgid "%s: cannot delete: %s"
+msgstr "%s: ni mogoÄe izbrisati: %s"
+
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: je mapa"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: ni obiÄajna datoteka"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: datoteka je prevelika"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: ni mogoÄe izvesti binarne datoteke"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: ni mogoÄe izvesti: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "odjava\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "ni prijavna lupina: uporabite `exit'"
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Obstajajo ustavljeni posli.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Obstajajo posli, ki se izvajajo.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "najdenega ni nobenega ukaza"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "doloÄilo zgodovine"
+
+#: builtins/fc.def:390
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: ni mogoÄe odpreti zaÄasne datoteke: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "trenutno"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "posel %d se je priÄel brez nadzora"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neveljavna možnost -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: možnost zahteva argument -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "razprÅ¡itev je onemogoÄena"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: razpršitvena razpredelnica je prazna\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "zadetki\tukaz\n"
+
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "KljuÄnih besed, ki se ujemajo z ukazi lupine `"
+msgstr[1] "KljuÄna beseda, ki se ujema z ukazi lupine `"
+msgstr[2] "KljuÄni besedi, ki se ujemata z ukazi lupine `"
+msgstr[3] "KljuÄne besede, ki se ujemajo z ukazi lupine `"
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"nobena tema pomoÄi se ne ujema s `%s'. Poskusite `help help' ali `man -k "
+"%s' ali `info %s'."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: ni mogoÄe odpreti: %s"
+
+#: builtins/help.def:485
+#, 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 ""
+"Ti ukazi lupine so doloÄeni znotraj lupine. VpiÅ¡ite `help' za prikaz tega "
+"seznama.\n"
+"VpiÅ¡ite `help ime', Äe želite izvedeti veÄ o `imenu' funkcije.\n"
+"Uporabite `info bash', Äe želite izvedeti veÄ o lupini na sploÅ¡no.\n"
+"Uporabite `man -k' ali `info', Äe želite izvedeti veÄ o ukazih, ki niso na "
+"tem seznamu.\n"
+"\n"
+"Zvezdica (*) poleg imena pomeni, da je ukaz onemogoÄen.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "ni mogoÄe uporabiti veÄ kot eno od -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "položaj zgodovine"
+
+#: builtins/history.def:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: razširitev zgodovine je spodletela"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: inlib je spodletel"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "druge možnosti niso dovoljene z `-x'"
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: argumenti morajo biti doloÄila opravila ali posla"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Neznana napaka"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "izraz je bil priÄakovan"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: ni zabeleženo polje"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: neveljavno doloÄilo opisnika datoteke"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: neveljaven opisnik datoteke: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: neveljavno Å¡tetje vrstic"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: neveljaven izvor polja"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: neveljaven del povratnega klica"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "prazno ime spremenljivke polja"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "potrebna podpora spremenljivke polja"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "`%s': manjka znak oblike"
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "`%c': neveljavno doloÄilo vrste Äasa"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "`%c': neveljaven znak oblike"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "opozorilo: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "manjka šestnajstiška števka za \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "manjka Å¡tevka s podporo unicode za \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "ni druge mape"
+
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: neveljaven argument omejitve"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<ni trenutne mape>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "sklad mape je prazen"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "kazalo sklada mape"
+
+#: builtins/pushd.def:689
+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 ""
+"Prikaže seznam trenutno pomnjenih map. Mape\n"
+" so prikazane na seznamu z ukazom `pushd'; na vrh\n"
+" seznama se lahko vrnete z ukazom `popd'.\n"
+" \n"
+" Možnosti:\n"
+" -c\tizbriši sklad mape z brisanjem vseh elementov\n"
+" -l\tne izpiÅ¡i sorodnih map s predpono `~' v mojo domaÄo mapo\n"
+" -p\tizpiši sklad mape z enim vnosom v vrstici\n"
+" -v\tizpiÅ¡i sklad mape z enim vnosom v vrstici z doloÄenim\n"
+" \tpoložajem v skladu\n"
+" \n"
+" Argumenti:\n"
+" +N\tPrikaže Nti vnos s štetjem z leve strani seznama, prikazan s\n"
+" \tpomoÄjo map, ko kliÄemo brez možnosti, zaÄenÅ¡i z niÄ.\n"
+" \n"
+" -N\tPrikaže Nti vnos s štetjem z desne strani seznama, prikazan s\n"
+"\tpomoÄjo map, ko kliÄemo brez možnosti, zaÄenÅ¡i z niÄ."
+
+#: builtins/pushd.def:711
+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 ""
+"Doda mapo na vrh sklada mape ali zavrti\n"
+" sklad, kar spremeni nov vrh sklada v trenutno delovno\n"
+" mapo. Če je brez argumentov, se izmenjata najvišji mapi.\n"
+" \n"
+" Možnosti:\n"
+" -n\tPrepreÄuje obiÄajno spremembo mape pri dodajanju\n"
+" \tmap na sklad, tako se obdeluje le sklad.\n"
+" \n"
+" Argumenti:\n"
+" +N\tZavrti sklad tako, da je N-ta mapa (Å¡tetje\n"
+" \tz leve strani seznama, prikazano z `dirs', zaÄenÅ¡i z\n"
+" \tniÄ) na vrhu.\n"
+" \n"
+" -N\tZavrti sklad tako, da je N-ta mapa (Å¡tetje\n"
+" \tz desne strani seznama, prikazano z `dirs', zaÄenÅ¡i z\n"
+" \tniÄ) na vrhu.\n"
+" \n"
+" dir\tDoda DIR skladu mape na vrhu, kar jo spremeni v\n"
+" \tnovo trenutno delovno mapo.\n"
+" \n"
+" Ukaz lupine `dirs' prikaže sklad map."
+
+#: builtins/pushd.def:736
+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 ""
+"Odstrani vnose iz sklada map. ÄŒe je brez argumentov, odstrani\n"
+" najvišjo mapo iz sklada in spremeni v novo mapo na vrhu.\n"
+" \n"
+" Možnosti:\n"
+" -n\tPrepreÄuje obiÄajno spremembo mape pri dodajanju\n"
+" \tmap iz sklada, tako se obdeluje le sklad.\n"
+" \n"
+" Argumenti:\n"
+" +N\tOdstrani N-ti vnos s Å¡tetjem z leve strani seznama,\n"
+" \tprikazano z `dirs', zaÄenÅ¡i z niÄ. Na primer: `popd +0'\n"
+" \todstrani prvo mapo, `popd +1' odstrani drugo.\n"
+" \n"
+" -N\tOdstrani N-ti vnos s Å¡tetjem z desne strani seznama,\n"
+" \tprikazano z `dirs', zaÄenÅ¡i z niÄ. Na primer: `popd +0'\n"
+" \todstrani zadnjo mapo, `popd -1' odstrani predzadnjo.\n"
+" \n"
+" Ukaz lupine `dirs' prikaže sklad map."
+
+#: builtins/read.def:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: neveljavno doloÄilo Äasovne omejitve"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "napaka med branjem: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr "`return' lahko vrne samo iz funkcije ali skripte z izvorno kodo"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "ni mogoÄe ponastaviti funkcije in spremenljivke hkrati"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: ni mogoÄe ponastaviti"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: ni mogoÄe ponastaviti: samo za branje %s"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: ni spremenljivka polja"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: ni funkcija"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "Å¡tetje premika"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "ni mogoÄe nastaviti in ponastaviti možnosti lupine hkrati"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: neveljavno ime možnosti lupine"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "zahtevan je argument imena datoteke"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: datoteke ni mogoÄe najti"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "ni mogoÄe dati v pripravljenost"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "prijavne lupine ni mogoÄe dati v pripravljenost"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s je drugo ime za `%s'\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s je kljuÄna beseda lupine\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s je funkcija\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s je vgrajena lupina\n"
+
+#: builtins/type.def:317 builtins/type.def:393
+#, 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 razpršeno (%s)\n"
+
+#: builtins/ulimit.def:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: neveljaven argument omejitve"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "`%c': slab ukaz"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: ni mogoÄe dobiti omejitve: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "omejitev"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: ni mogoÄe spremeniti omejitve: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "osmiško število"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "`%c': neveljaven operator simbolnega naÄina"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "`%c': neveljaven znak simbolnega naÄina"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " vrstica "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "zadnji ukaz: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Prekinjanje ..."
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "neznana napaka ukaza"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "slaba vrsta ukaza"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "slab povezovalnik"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "slab skok"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: nedoloÄena spremenljivka"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\apotekla je Äasovna omejitev med Äakanjem na vnos: samodejna odjava\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "ni mogoÄe preusmeriti obiÄajnega vnosa iz /dev/null: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: `%c': neveljaven znak oblike"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "napaka cevi"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: omejeno: ni mogoÄe doloÄiti `/' v imenih ukaza"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: ukaza ni mogoÄe najti"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: slab tolmaÄ"
+
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ni mogoÄe izvesti binarne datoteke"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je vgrajena lupina\n"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "ni mogoÄe podvajati fd %d v fd %d"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "stopnja rekurzivnosti izraza presežena"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "prekoraÄitev spodnje meje sklada rekurzivnosti"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "skladenjska napaka v izrazu"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "poskus dodelitve ne-spremenljivki"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "delitev z 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "hroÅ¡Ä: slab žeton expassign"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "`:' priÄakovano za pogojni izraz"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "eksponent je manjši kot 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "po predhodnem veÄanju ali manjÅ¡anju je priÄakovano doloÄilo"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "manjka `)'"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "skladenjska napaka: priÄakovan operand"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "skladenjska napaka: neveljaven aritmetiÄni operand"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (žeton napake je \"%s\")"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "neveljavna aritmetiÄna zbirka"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "vrednost je prevelika za zbirko"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: napaka izraza\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: ni mogoÄe dostopati do nadrejenih map"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "ni mogoÄe ponastaviti naÄina brez zakasnitve za fd %d"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "ni mogoÄe dodeliti opisnika novih map za vnos bash iz fd %d"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: medpomnilnik že obstaja za nov fd %d"
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: cev pgrp"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "razvejen id opravila %d se pojavi v izvajajoÄem se poslu %d"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "brisanje ustavljenega posla %d s skupino opravila %ld"
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: opravilo %5ld (%s) v the_pipeline"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: id opravila %5ld (%s) je oznaÄen kot Å¡e živ"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: ni takÅ¡nega doloÄila opravila"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Signal %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "KonÄano"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "Zaustavljeno"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Zaustavljeno(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "Se izvaja"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "KonÄano(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "KonÄaj %d"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Neznano stanje"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(izpis jedra) "
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "podrejeno opravilo setpgid (%ld v %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: opravilo z id %ld ni podrejeno opravilo te lupine"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: ni zapisov o opravilu %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: posel %d je zaustavljen"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: posel je uniÄen"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: posel %d se že izvaja v ozadju"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr "waitchld: vklop WNOHANG za prepreÄitev nedoloÄenosti bloka"
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: vrstica %d: "
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (izpis jedra)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(wd zdaj: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: getpgrp je spodletel"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: vrstiÄna disciplina"
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "ni mogoÄe nastaviti skupine opravil terminala (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "brez nadzora posla v tej lupini"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: spodletela trditev: %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: trditev je bila slabo izpeljana\r\n"
+
+#: lib/malloc/malloc.c:313
+msgid "unknown"
+msgstr "neznano"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: vsebina bloka na prostem seznamu je bila prepisana"
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: poklican z že sproÅ¡Äenim argumentom bloka"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: klic z nedodeljenim argumentom bloka"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: zaznana prekoraÄitev spodnje meje; mh_nbytes je izven dosega"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr ""
+"free: velikosti zaÄetnih in konÄnih podatkovnih kosov \"chunk\" se "
+"razlikujejo"
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: klic z nedodeljenim argumentom bloka"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: zaznana prekoraÄitev spodnje meje; mh_nbytes je izven dosega"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr ""
+"realloc: velikosti zaÄetnih in konÄnih podatkovnih kosov \"chunk\" se "
+"razlikujejo"
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: je dodelitvena razpredelnica polna z FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: je %p že v razpredelnici kot dodeljen?\n"
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: je %p že v razpredelnici kot prost?\n"
+
+#: lib/sh/fmtulong.c:102
+msgid "invalid base"
+msgstr "neveljavna zbirka"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: gostitelj je neznan"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: neveljavna storitev"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: slabo doloÄilo omrežne poti"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "omrežno opravilo ni podprto"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL: ni mogoÄe spremeniti jezikovne oznake (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr "setlocale: LC_ALL: ni mogoÄe spremeniti jezikovne oznake (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: ni mogoÄe spremeniti jezikovne oznake (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: ni mogoÄe spremeniti jezikovne oznake (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Imate pošto v $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Imate novo pošto v $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "Pošta v %s je bila prebrana\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "skladenjska napaka: potreben je aritmetiÄni izraz"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "skladenjska napaka: `;' nepriÄakovano"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "skladenjska napaka: `((%s))'"
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: slaba vrsta navodila %d"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr "here-document v vrstici %d razmejen z end-of-file (želeno `%s')"
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: navodilo preusmeritve `%d' je izven dosega"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "nepriÄakovan konec datoteke med iskanjem ujemanja z `%c'"
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "nepriÄakovan konec datoteke med iskanjem ujemanja z `]]'"
+
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "skladenjska napaka v pogojnem izrazu: nepriÄakovan žeton `%s'"
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "skladenjska napaka v pogojnem izrazu"
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "nepriÄakovan žeton `%s', priÄakovan je bil `)'"
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "priÄakovan `)'"
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "nepriÄakovan argument `%s' do pogojnega enoslovnega operatorja"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "nepriÄakovan argument do pogojnega enoslovnega operatorja"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "nepriÄakovan žeton `%s', priÄakovan je binarni pogojni operator"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "priÄakovan je binarni pogojni operator"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "nepriÄakovan argument `%s' do pogojnega binarnega operatorja"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "nepriÄakovan argument do pogojnega binarnega operatorja"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "nepriÄakovan žeton `%c' v pogojnem ukazu"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "nepriÄakovan žeton `%s' v pogojnem ukazu"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "nepriÄakovan žeton %d v pogojnem ukazu"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "skladenjska napaka blizu nepriÄakovanega žetona `%s'"
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "skladenjska napaka blizu `%s'"
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "skladenjska napaka: nepriÄakovan konec datoteke"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "skladenjska napaka"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Uporabite \"%s\", Äe želite zapustiti lupino.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "nepriÄakovan konec datoteke med iskanjem ujemanja z `)'"
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "konÄano: funkcije `%s' ni mogoÄe najti"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: slab povezovalnik `%d'"
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: neveljaven opisnik datoteke"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: prazen kazalec datoteke NULL"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: `%c': neveljaven znak oblike"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "opisnik datoteke je izven dosega"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: dvoumna preusmeritev"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: ni mogoÄe prepisati obstojeÄe datoteke"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: omejitev: ni mogoÄe preusmeriti izhoda"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "ni mogoÄe ustvariti zaÄasne datoteke za here-document: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: ni mogoÄe dodeliti fd spremenljivki"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "/dev/(tcp|udp)/host/port ni podprt brez omrežja"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "napaka preusmeritve: ni mogoÄe podvajati fd"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "ni mogoÄe najti /tmp, ustvarite ga!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp mora biti veljavno ime mape"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: neveljavna možnost"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Ni imena!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, razliÄica %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Uporaba:\t%s [dolga možnost GNU] [možnost] ...\n"
+"\t%s [dolga možnost GNU] [možnost] skriptni dokument ...\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "Dolge možnosti GNU:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Možnosti lupine:\n"
+
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-irsD ali ukaz -c ali -O shopt_option\t\t(samo sklicevanje)\n"
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t-%s ali možnost -o\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr "VpiÅ¡ite `%s -c \"help set\"' za veÄ podrobnosti o možnostih lupine.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr "VpiÅ¡ite `%s -c help' za veÄ podrobnosti o možnostih ukazov lupine.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Uporabite ukaz `bashbug' za poroÄanje hroÅ¡Äev.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: neveljavno opravilo"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Lažen signal"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Odloži"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Prekini"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "KonÄaj"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Neveljaven ukaz"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT trace/trap"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "ukaz ABORT"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "ukaz EMT"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Izjema s plavajoÄo vejico"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "UniÄen"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Napaka vodila"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Napaka segmentacije"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Slab sistemski klic"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Prekinjena cev"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Budilka"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "ZakljuÄen"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Nujen pogoj IO"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Ustavljen (signal)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Nadaljuj"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Podrejeno opravilo je uniÄeno ali zaustavljeno"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Ustavljen (vhod TTY)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Ustavljen (izhod TTY)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "I/O je pripravljen"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "omejitev CPE"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "omejitev datoteke"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Budilka (navidezna)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Budilka (profil)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Okno se je spremenilo"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Zaklep zapisa"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "Signal uporabnika 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "Signal uporabnika 2"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "vnos podatkov HFT je na Äakanju"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "izpad elektriÄnega toka je neizbežen"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "sesutje sistema je neizbežno"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "preseli opravilo na drug CPE"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "napaka programiranja"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "naÄin nadzora HFT je odobren"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "naÄin nadzora HFT je umaknjen"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "zaporedje zvoka HFT je konÄano"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "zahteva po podatkih"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Neznan signal #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Neznan signal #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "slaba zamenjava: ni zakljuÄka `%s' v %s"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: ni mogoÄe dodeliti seznama Älanu polja"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "ni mogoÄe ustvariti pipe za zamenjavo opravila"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "ni mogoÄe ustvariti podrejenega opravila za zamenjavo opravila"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "ni mogoÄe odpreti imenovane cevi %s za branje"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "ni mogoÄe odpreti imenovane cevi %s za pisanje"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "ni mogoÄe podvajati imenovane cevi %s kot fd %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "ni mogoÄe ustvariti cevi za zamenjavo ukaza"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "ni mogoÄe ustvariti podrejenega opravila za zamenjavo ukaza"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: ni mogoÄe podvajati cevi kot fd 1"
+
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: neveljavna vrednost za opisnik sledenja datotek"
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parameter je prazen ali pa ni doloÄen"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: izraz podniza < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: slaba zamenjava"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: ni mogoÄe dodeliti na tak naÄin"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"prihodnje razliÄice lupine bodo prisilile ocenitev kot aritmetiÄno zamenjavo"
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "slaba zamenjava: ni zakljuÄka \"`\" v %s"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "ni ujemanja: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "priÄakovan je argument"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: priÄakovan je izraz celega Å¡tevila"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "priÄakovan je `)'"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "priÄakovan je `)', najden je %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: priÄakuje se enosnoven operator"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: priÄakuje se binarni operator"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "manjka `]'"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "neveljavna Å¡tevka signala"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: slaba vrednost v trap_list[%d]: %p"
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: roÄnik signala je SIG_DFL, ponovno poÅ¡iljanje %d (%s) sebi"
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: slab signal %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "napaka med uvozom doloÄila funkcije `%s'"
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "raven lupine (%d) je previsoka, ponastavljanje na 1"
+
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: neveljavna vrednost za opisnik sledenja datotek"
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: v trenutnem dosegu ni vsebine funkcije"
+
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: ni mogoÄe dodeliti fd spremenljivki"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: v trenutnem dosegu ni vsebine funkcije"
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s ima prazen exportstr"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "neveljaven znak %d v exportstr za %s"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "ni `=' v exportstr za %s"
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: glava shell_variables ni vsebina funkcije"
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: ni vsebine global_variables"
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: glava shell_variables ni trenuten obseg okolja"
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: ni mogoÄe odpreti kot DATOTEKO"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%s: %s: neveljavna vrednost za opisnik sledenja datotek"
+
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s izven dosega"
+
+#: version.c:46
+#, fuzzy
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Avtorske pravice (C) 2011 Free Software Foundation, Inc."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Dovoljenje GPLv3+: GNU GPL razliÄica 3 ali poznejÅ¡e <http://gnu.org/licenses/"
+"gpl.html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "GNU bash, razliÄica %s (%s)\n"
+
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "To je prosta programska oprema; lahko jo spreminjate in razširjate.\n"
+
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Je BREZ KAKRÅ NEKOLI GARANCIJE, v obsegu, ki ga dovoljuje zakonodaja.\n"
+
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Avtorske pravice (C) 2011 Free Software Foundation, Inc."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: ni mogoÄe dodeliti %lu bajtov (%lu bajtov je dodeljenih)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: ni mogoÄe dodeliti %lu bajtov"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: ni mogoÄe dodeliti %lu bajtov (%lu bajtov dodeljenih)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: ni mogoÄe dodeliti %lu bajtov"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [ime[=vrednost] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] ime [ime ...]"
+
+#: builtins.c:51
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m tipk_razvrstitev] [-f ime_dat] [-q ime] [-u ime] [-r "
+"tipk_zaporedje] [-x tipk_zaporedje:ukaz_lupine] [tipk_zaporedje:"
+"funkcija_brane_vrstice ali ukaz_brane_vrstice]"
+
+#: 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 [vgrajena_lupina [arg ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [izraz]"
+
+#: builtins.c:64
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [mapa]"
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: builtins.c:68
+msgid ":"
+msgstr ":"
+
+#: builtins.c:70
+msgid "true"
+msgstr "prav"
+
+#: builtins.c:72
+msgid "false"
+msgstr "napak"
+
+#: builtins.c:74
+msgid "command [-pVv] command [arg ...]"
+msgstr "ukaz [-pVv] ukaz [arg ...]"
+
+#: builtins.c:76
+#, fuzzy
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [ime[=vrednost] ...]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] ime[=vrednost] ..."
+
+#: builtins.c:80
+msgid "local [option] name[=value] ..."
+msgstr "local [možnost] ime[=vrednost] ..."
+
+#: 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 ime_datoteke] [ime ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [arg ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts niz_možnosti ime[arg]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a ime] [ukaz [argumenti ...]] [preusmeritev ...]"
+
+#: 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 ime_urejevalnika] [-lnr] [prvi] [zadnji] ali fc -s [vzorec=zamenjava] "
+"[ukaz]"
+
+#: builtins.c:107
+msgid "fg [job_spec]"
+msgstr "fg [doloÄilo_posla]"
+
+#: builtins.c:111
+msgid "bg [job_spec ...]"
+msgstr "bg [doloÄilo_posla ...]"
+
+#: builtins.c:114
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p ime_poti] [-dt] [ime ...]"
+
+#: builtins.c:117
+msgid "help [-dms] [pattern ...]"
+msgstr "help [-dms] [vzorec ...]"
+
+#: builtins.c:121
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d odmik] [n] ali history -anrw [ime_datoteke] ali history -ps "
+"arg [arg...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [doloÄilo_posla ...] ali jobs -x ukaz [argumenti]"
+
+#: builtins.c:129
+msgid "disown [-h] [-ar] [jobspec ...]"
+msgstr "disown [-h] [-ar] [doloÄilo_posla ...]"
+
+#: builtins.c:132
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s doloÄilo_signala | -n Å¡t_signala | -doloÄilo_signala] pid | "
+"doloÄilo_posla ... ali kill -l [doloÄilo_signala]"
+
+#: 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] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a polje] [-d razmejilnik] [-i besedilo] [-n n-znakov] [-N n-"
+"znakov] [-p poziv] [-t Äasovna_omejitev] [-u fd] [ime ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o ime_možnosti] [--] [arg ...]"
+
+#: builtins.c:142
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [ime ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [ime[=vrednost] ...] ali export -p"
+
+#: builtins.c:146
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [ime[=vrednost] ...] ali readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source ime_datoteke [argumenti]"
+
+#: builtins.c:152
+msgid ". filename [arguments]"
+msgstr ". ime_datoteke [argumenti]"
+
+#: builtins.c:155
+msgid "suspend [-f]"
+msgstr "suspend [-f]"
+
+#: builtins.c:158
+msgid "test [expr]"
+msgstr "test [izraz]"
+
+#: builtins.c:160
+msgid "[ arg... ]"
+msgstr "[ arg... ]"
+
+#: builtins.c:162
+msgid "times"
+msgstr "krat"
+
+#: builtins.c:164
+msgid "trap [-lp] [[arg] signal_spec ...]"
+msgstr "trap [-lp] [[arg] doloÄilo_signala ...]"
+
+#: builtins.c:166
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] ime [ime ...]"
+
+#: builtins.c:169
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [meja]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [naÄin]"
+
+#: builtins.c:175
+#, fuzzy
+msgid "wait [-n] [id ...]"
+msgstr "wait [id]"
+
+#: builtins.c:179
+#, fuzzy
+msgid "wait [pid ...]"
+msgstr "wait [id_opravila]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for IME [in IMENA ... ] ; do UKAZI; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( izraz1; izraz2; izraz3 )); do UKAZI; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select IME [in IMENA ... ;] do UKAZI; done"
+
+#: builtins.c:188
+msgid "time [-p] pipeline"
+msgstr "time [-p] cevovod"
+
+#: builtins.c:190
+msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
+msgstr "case IME in [VZOREC [| VZOREC]...) UKAZI ;;]... esac"
+
+#: builtins.c:192
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if UKAZI; then UKAZI; [ elif UKAZI; then UKAZI; ]... [ else UKAZI; ] fi"
+
+#: builtins.c:194
+msgid "while COMMANDS; do COMMANDS; done"
+msgstr "while UKAZI; do UKAZI; done"
+
+#: builtins.c:196
+msgid "until COMMANDS; do COMMANDS; done"
+msgstr "until UKAZI; do UKAZI; done"
+
+#: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [IME] ukaz [preusmeritve]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function ime { UKAZI ; } ali ime () { UKAZI ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ UKAZI ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "doloÄilo_posla [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( izraz ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ izraz ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "spremenljivke - Imena in pomeni nekaterih spremenljivk lupine"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | mapa]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [ime_možnosti ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v spremenljivka] oblika [argumenti]"
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o možnost] [-A dejanje] [-G "
+"krajevni_vzorec] [-W seznam_besed] [-F funkcija] [-C ukaz] [-X "
+"filtrirni_vzorec] [-P predpona] [-S pripona] [ime ...]"
+
+#: builtins.c:233
+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 možnost] [-A dejanje] [-G krajevni_vzorec] [-W "
+"seznam_besed] [-F funkcija] [-C ukaz] [-X filtrirni_vzorec] [-P predpona] [-"
+"S pripona] [beseda]"
+
+#: builtins.c:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o možnost] [-DE] [ime ...]"
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n Å¡tevec] [-O izvor] [-s Å¡tevec] [-t] [-u fd] [-C povratni_klic] [-"
+"c del] [polje]"
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n Å¡tevec] [-O izvor] [-s Å¡tevec] [-t] [-u fd] [-C povratni_klic] "
+"[-c del] [polje]"
+
+#: builtins.c:254
+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 ""
+"DoloÄi ali prikaže vzdevke.\n"
+" \n"
+" Če je `alias' brez argumentov, izpiše seznam vzdevkov v obliki za\n"
+" veÄkratno uporabo `alias IME=VREDNOST' na standardnem izpisu.\n"
+" \n"
+" V nasprotnem primeru je za vsako IME doloÄen vzdevek, Äigar\n"
+" VREDNOST je podana.\n"
+" Vmesni presledni znak v VREDNOSTI povzroÄi, da naslednjo\n"
+" besedo preveri za zamenjavo vzdevka, ko je ta razširjen.\n"
+" \n"
+" Možnosti:\n"
+" -p\tIzpiÅ¡i vse doloÄene vzdevke v obliki za veÄkratno uporabo\n"
+" \n"
+" Status konÄanja:\n"
+" vzdevek vrne pravilno, razen Äe je predloženo IME, za katero ni\n"
+" bil doloÄen noben vzdevek."
+
+#: builtins.c:276
+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 ""
+"Odstrani vsako IME s seznama doloÄenih vzdevkov.\n"
+" \n"
+" Možnosti:\n"
+" -a\todstrani vsa doloÄila vzdevkov.\n"
+" \n"
+" Vrne pravilno, razen Äe IME ni obstojeÄ vzdevek."
+
+#: builtins.c:289
+#, 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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"Nastavi tipkovne bližnjice in spremenljivke funkcije Readline.\n"
+" \n"
+" Veže zaporedje tipk na funkcijo Readline ali makro ali nastavi\n"
+" spremenljivko Readline. Skladnja argumenta brez možnosti\n"
+" je enakovredna najdbi v ~/.inputrc, vendar mora biti podana\n"
+" kot en argument:\n"
+" na primer, bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" Možnosti:\n"
+" -m tipk_razvr Uporabi TIPK_RAZVR kot tipkovno razvrstitev za Äas "
+"trajanja\n"
+" tega ukaza. Sprejemljiva imena tipkovnih "
+"razvrstitev so emacs,\n"
+" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
+" vi-command in vi-insert.\n"
+" -l Prikaži imena funkcij.\n"
+" -P Prikaži imena funkcij in tipkovne bližnjice.\n"
+" -p Prikaži imena funkcij in tipkovne bližnjice v obliki, ki se lahko\n"
+" ponovno uporabi kot vnos.\n"
+" -S Prikaži tipkovna zaporedja, ki se sklicujejo na makre in njihove "
+"vrednosti.\n"
+" -s Prikaži tipkovna zaporedja, ki se sklicujejo na makre in njihove "
+"vrednosti\n"
+" v obliki, ki se lahko ponovno uporabi kot vnos.\n"
+" -V Prikaži imena spremenljivk in vrednosti\n"
+" -v Prikaži imena spremenljivk in vrednosti v obliki, ki se lahko\n"
+" ponovno uporabi kot vnos.\n"
+" -q ime_funkcije Poizvedi, katere tipke se sklicujejo na imenovano "
+"funkcijo.\n"
+" -u ime_funkcije Odveži vse tipke, ki se vežejo na imenovano funkcijo.\n"
+" -r zaporedje_tipk Odstrani vez za ZAPOREDJE_TIPK.\n"
+" -f ime_datoteke Beri tipkovne bližnjice iz IME_DATOTEKE.\n"
+" -x zaporedje_tipk:ukaz_lupine\tPovzroÄi, da se UKAZ_LUPINE izvrÅ¡i,\n"
+" \t\t\t\tko je vnešeno ZAPOREDJE_TIPK.\n"
+" \n"
+" Status konÄanja:\n"
+" bind vrne 0, razen, Äe je dana neprepoznana možnost ali se pojavi napaka."
+
+#: builtins.c:328
+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 ""
+"KonÄa zanko for, while ali until.\n"
+" \n"
+" KonÄaj zanko FOR, WHILE ali UNTIL. ÄŒe je N podan, prekini N obdanih\n"
+" zank.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Stanje konÄanja je 0, razen Äe N ni veÄji kot ali enak 1."
+
+#: builtins.c:340
+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 ""
+"Nadaljuje zanko for, while ali until.\n"
+" \n"
+" Nadaljuje naslednjo ponovitev obdane zanke FOR, WHILE ali UNTIL.\n"
+" ÄŒe je N podan, nadaljuje N-to obdano zanko.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Stanje konÄanja je 0, razen Äe N ni veÄji kot ali enak 1."
+
+#: builtins.c:352
+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 ""
+"Izvede vgrajeno lupino.\n"
+" \n"
+" Izvede VGRAJENO_LUPINO z argumenti ARG brez opravljanja iskanja\n"
+" ukaza. To je uporabno, ko želite ponovno izvesti vgrajeno lupino\n"
+" kot funkcijo lupine, vendar bi radi izvedli vgrajeno lupino znotraj "
+"funkcije.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje konÄanja VGRAJENE_LUPINE ali napak, Äe VGRAJENA_LUPINA\n"
+" ni vgrajena lupina .."
+
+#: builtins.c:367
+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 ""
+"Vrne vsebino trenutnega klica podprograma.\n"
+" \n"
+" Brez IZRAZA vrne \"$line $filename\". Z IZRAZOM vrne\n"
+" \"$line $subroutine $filename\"; ta dodaten podatek se lahko uporabi\n"
+" za zagotovitev sledenja sklada.\n"
+" \n"
+" Vrednost IZRAZA nakazuje, koliko okvirjev klicev mora nazaj\n"
+" pred trenutnega; zgornji okvir je okvir 0.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne 0, razen Äe lupina ne izvrÅ¡uje funkcije lupine ali pa IZRAZ\n"
+" ni veljaven."
+
+#: builtins.c:385
+#, 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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+"Spremeni delovno mapo lupine.\n"
+" \n"
+" Spremeni trenutno mapo v DIR. Privzet DIR je vrednost spremenljivke\n"
+" lupine HOME.\n"
+" \n"
+" Spremenljivka CDPATH doloÄa iskalno pot za mapo, ki vsebuje DIR.\n"
+" Nadomestna imena map v CDPATH so loÄena z dvopiÄjem (:).\n"
+" Prazno ime mape se enaÄi s trenutno mapo. ÄŒe se DIR zaÄne\n"
+" s poševnico (/), potem se CDPATH ne uporabi.\n"
+" \n"
+" ÄŒe mapa ni najdena in je možnost lupine `cdable_vars' doloÄena,\n"
+" se predvideva, da je beseda ime spremenljivke. ÄŒe spremenljivka\n"
+" ima vrednost, se le-ta uporabi za DIR.\n"
+" \n"
+" Možnosti:\n"
+" -L\tprisili sledenje simbolnim povezavam\n"
+" -P\tuporabi fiziÄno strukturo map brez sledenja simbolnim\n"
+" \tpovezavam\n"
+" -e\tÄe je možnost -P predložena in trenutne delovne mape\n"
+" \tni mogoÄe uspeÅ¡no doloÄiti, konÄaj z ne-niÄelnim stanjem\n"
+" \n"
+" Sledenje simbolnim povezavam je privzeto, kot Äe bi možnost `-L'\n"
+" bila predložena\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne 0, Äe je mapa spremenjena in Äe je $PWD uspeÅ¡no nastavljen, kadar\n"
+" je uporabljena možnost -P; drugaÄe je ne-niÄelna vrednost"
+
+#: builtins.c:422
+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 ""
+"Izpiše ime trenutne delovne mape.\n"
+" \n"
+" Možnosti:\n"
+" -L\tprikaže vrednost $PWD, Äe imenuje trenutno delovno\n"
+" \tmapo\n"
+" -P\tprikaže fiziÄno mapo brez vsakrÅ¡nih simbolnih povezav\n"
+" \n"
+" Privzeto se `pwd\" obnaÅ¡a, kot Äe bi možnost `-L ' bila doloÄena.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne 0, razen Äe je dana neveljavna možnost ali pa trenutne mape\n"
+" ni mogoÄe prebrati."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Prazen ukaz.\n"
+" \n"
+" Brez uÄinka; ukaz ne naredi niÄesar.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vedno uspešno."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Vrne uspešen rezultat.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vedno uspešno."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Vrne neuspešen rezultat.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vedno neuspešno."
+
+#: builtins.c:468
+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 ""
+"Izvede preprost ukaz ali prikaže podrobnosti o ukazih.\n"
+" \n"
+" Zažene UKAZ z ARGUMENTI in zavira iskanje funkcije lupine ali prikaže\n"
+" podrobnosti o doloÄenih UKAZIH. Lahko se uporabi za klic ukazov\n"
+" na disku, kadar obstaja funkcija z enakim imenom.\n"
+" \n"
+" Možnosti:\n"
+" -p\tuporabi privzeto vrednost za POT, ki bo zagotovo našla vse\n"
+" \tstandardne pripomoÄke\n"
+" -v\tprikaži opis UKAZA, podobno kot vgrajena lupina `type'\n"
+" -V\tprikaži bolj podrobni izpis vsakega UKAZA\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje konÄanja UKAZA ali neuspeÅ¡no, Äe UKAZA ni mogoÄe najti."
+
+#: builtins.c:487
+#, 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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Nastavi vrednosti spremenljivk in atributov.\n"
+" \n"
+" Deklarira spremenljivke in jim da atribute. ÄŒe ni podanih IMEN,\n"
+" prikaže atribute in vrednosti vseh spremenljivk.\n"
+" \n"
+" Možnosti:\n"
+" -f\tomeji ukrep ali prikaži imena funkcij in doloÄilom\n"
+" -F\tomeji prikaz samo imen funkcij (ter Å¡tevilo vrstice in\n"
+" \tizvorno datoteko, kadar je dejavno razhroÅ¡Äevanje)\n"
+" -g\tustvari splošne spremenljivke, kadar so uporabljene v funkciji\n"
+" \tlupine; v nasprotnem primeru je prezrto\n"
+" -p\tprikaži atribute in vrednost vsakega IMENA\n"
+" \n"
+" Možnosti, ki doloÄajo atribute\n"
+" -a\tda so IMENA zabeležena polja (Äe je podprto)\n"
+" -A\tda so IMENA povezana polja (Äe je podprto)\n"
+" -i\tda imajo IMENA atribute celih Å¡tevil `integer'\n"
+" -l\tda se IMENA pretvorijo v male Ärke pri dodelitvi\n"
+" -r\tda so IMENA samo za branje\n"
+" -t\tda imajo IMENA atribut sledenja `trace'\n"
+" -u\tda se IMENA pretvorijo v velike Ärke pri dodelitvi\n"
+" -x\tda se IMENA izvozijo\n"
+" \n"
+" Uporaba `+' namesto `-' izklopi dan atribut.\n"
+" \n"
+" Spremenljivkam z atributom celega Å¡tevila se izvede aritmetiÄno\n"
+" vrednotenje (poglejte ukaz `let'), kadar je spremenljivki\n"
+" dodeljena vrednost.\n"
+" \n"
+" Ko se uporabi v funkciji, `declare' naredi IMENA krajevna kot\n"
+" pri ukazu `local'. Možnost `-g' zavira to obnašanje.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložena neveljavna možnost ali pride\n"
+" do napake."
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Nastavi vrednosti spremenljivk in atributov.\n"
+" \n"
+" Zastarelo. Oglejte si `help declare'."
+
+#: builtins.c:535
+#, fuzzy
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"DoloÄi krajevne spremenljivke.\n"
+" \n"
+" Ustvari krajevno spremenljivko z imenom IME in ji dodeli VREDNOST.\n"
+" MOŽNOST je lahko katera koli, sprejeta z `declare'.\n"
+" \n"
+" Krajevne spremenljivke se lahko uporabijo samo znotraj funkcije;\n"
+" vidne so samo funkciji, kjer so doloÄene in njenim podprogramom.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložena neveljavna možnost, pride\n"
+" do napake ali pa lupina ne izvaja funkcije."
+
+#: builtins.c:552
+#, fuzzy
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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 ""
+"Piše argumente na standardni izhod.\n"
+" \n"
+" Prikaže ARGUMENTE na standardnem izhodu, ki mu sledi nova vrstica.\n"
+" \n"
+" Možnosti:\n"
+" -n\tne pripni nove vrstice\n"
+" -e\tomogoÄi tolmaÄenje naslednjih ubežnih levih poÅ¡evnic\n"
+" -E\tizrecno zatri tolmaÄenje ubežnih levih poÅ¡evnic\n"
+" \n"
+" `echo' tolmaÄi naslednje znake ubežnih levih poÅ¡evnic:\n"
+" \\a\talarm (zvonec)\n"
+" \\b\tvraÄalka\n"
+" \\c\tzatre nadaljni izpis\n"
+" \\e\tubežni znak\n"
+" \\f\tnova stran\n"
+" \\n\tnova vrstica\n"
+" \\r\tpomik na zaÄetek vrstice\n"
+" \\t\tvodoravni tabulator\n"
+" \\v\tnavpiÄni tabulator\n"
+" \\[tab]leva poševnica\n"
+" \\0nnn\tznak, katerega vrednost ASCII je NNN (osmiška). NNN je lahko\n"
+" \tod 0 do 3 osmiška števila\n"
+" \\xHH\t8-bitni znak, katerega vrednost je HH (šestnajstiška). HH\n"
+" \tje lahko ena ali dve šestnajstiški števili\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe pride do napake pri pisanju."
+
+#: builtins.c:588
+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 ""
+"Piše argumente na standardni izhod.\n"
+" \n"
+" Prikaže ARGUMENTE na standardni izhod, temu sledi nova vrstica.\n"
+" \n"
+" Možnosti:\n"
+" -n\tne pripni nove vrstice\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe pride do napake pri pisanju."
+
+#: builtins.c:603
+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 ""
+"OmogoÄi in onemogoÄi vgrajene lupine.\n"
+" \n"
+" OmogoÄi in onemogoÄi ukaze vgrajene lupine. OnemogoÄenje dovoli\n"
+" izvedbo ukaza diska, ki ima enako ime kot vgrajena lupina, brez\n"
+" uporabe polnega imena poti.\n"
+" \n"
+" Možnosti:\n"
+" -a\tprikaži seznam vgrajenih lupin, ki kaže, katera je omogoÄena\n"
+" -n\tonemogoÄi vsako IME ali pa prikaži seznam onemogoÄenih\n"
+" \tvgrajenih lupin\n"
+" -p\tprikaži seznam vgrajenih lupin v obliki za veÄkratno uporabo\n"
+" -s\tprikaži samo imena posebnih vgrajenih lupin `special'\n"
+" \tpo POSIX standardu\n"
+" \n"
+" Možnosti, ki nadzorujejo dinamiÄno nalaganje:\n"
+" -f\tnaloži IME iz predmeta IME_DATOTEKE v souporabi\n"
+" -d\todstrani vgrajeno lupino, naloženo z -f\n"
+" \n"
+" Brez podanih možnosti je vsako IME omogoÄeno.\n"
+" \n"
+" Za uporabo preizkusa 'test', najdenega v $PATH, in ne razliÄice\n"
+" vgrajene lupine, vpišite `enable -n test'.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe IME ni vgrajena lupina ali Äe pride do napake."
+
+#: builtins.c:631
+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 ""
+"Zažene argumente kot ukaze lupine.\n"
+" \n"
+" Združi ARGUMENTA v en niz, uporabi rezultat kot vnos v lupino\n"
+" in zaženi konÄne ukaze.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje konÄanja ali uspeÅ¡no, Äe je ukaz prazen."
+
+#: builtins.c:643
+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 ""
+"RazÄleni argumente možnosti.\n"
+" \n"
+" Getopts je uporabljen s strani postopkov lupine za razÄlenitev\n"
+" položajnih parametrov kot možnosti.\n"
+" \n"
+" NIZ_MOŽNOSTI vsebuje Ärke možnosti za prepoznavo; Äe dvopiÄju\n"
+" sledi Ärka, se za možnost priÄakuje dodeljen argument, ki mora\n"
+" biti loÄen s preslednim znakom.\n"
+" \n"
+" VsakiÄ, ko je klican, bo getopts postavil naslednjo možnost v\n"
+" spremenljivko lupine $name, nastavil ime, Äe Å¡e ne obstaja, in\n"
+" kazalo naslednjega argumenta bo obdelano v spremenljivko\n"
+" lupine OPTIND. OPTIND je nastavljen na 1 vsakiÄ, ko je lupina ali\n"
+" skripta lupine poklicana. Ko možnost zahteva argument, ga\n"
+" getopts premakne v spremenljivko lupine OPTARG. \n"
+" \n"
+" getopts poroÄa napake na eden izmed dveh naÄinov. ÄŒe je prvi\n"
+" znak OPTSTRING dvopiÄje, getopts uporabi tiho poroÄanje napak.\n"
+" V tem naÄinu ni izpisanih sporoÄil o napakah. ÄŒe je videna neveljavna\n"
+" možnost, getopts postavi najden znak možnosti v OPTARG. Če\n"
+" zahtevan argument ni najden, getopts postavi ':' v IME in dodeli\n"
+" OPTARG nadenemu znaku možnosti. ÄŒe getopts ni v tihem naÄinu\n"
+" in je videnaneveljavna možnost, getopts postavi '?' v IME in\n"
+" ponastavi OPTARG. ÄŒe zahtevan argument ni najden, je '?'\n"
+" postavljen v IME, OPTARG je ponastavljen in prikazano je\n"
+" diagnostiÄno sporoÄilo.\n"
+" \n"
+" ÄŒe ima spremenljivka lupine OPTERR vrednost 0, getopts\n"
+" onemogoÄi prikaz sporoÄil o napakah, tudi Äe prvi znak OPTSTRING\n"
+" ni dvopiÄje. OPTERR ima privzeto vrednost 1.\n"
+" \n"
+" Getopts obiÄajno razÄleni položajne parametre ($0 - $9), toda Äe je\n"
+" danih veÄ argumentov, se jih razÄleni.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, Äe je možnost najdena; neuspeÅ¡no, Äe pride\n"
+" do konca možnosti ali do napake."
+
+#: builtins.c:685
+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 ""
+"Zamenja lupino z danim ukazom.\n"
+" \n"
+" Izvede UKAZ, ki zamenja to lupino z doloÄenim programom.\n"
+" ARGUMENTI postanejo argumenti UKAZU. ÄŒe UKAZ ni doloÄen,\n"
+" se vsaka preusmeritev uveljavi v trenutni lupini.\n"
+" \n"
+" Možnosti:\n"
+" -a ime\tposreduj IME kot niÄni argument UKAZU\n"
+" -c\t\tizvedi UKAZ s praznim okoljem\n"
+" -l\t\tpostavi pomiÅ¡ljaj v niÄni argument UKAZU\n"
+" \n"
+" ÄŒe ukaza ni bilo mogoÄe izvesti, se ne-vzajemna lupina konÄa, razen\n"
+" Äe je nastavljena možnost lupine `execfail' .\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe UKAZ ni najden ali pride do napake preusmeritve."
+
+#: builtins.c:706
+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 ""
+"KonÄa lupino.\n"
+" \n"
+" KonÄa lupino s stanjem N. ÄŒe je N izpuÅ¡Äen, se uporabi stanje\n"
+" konÄanja zadnjega izvrÅ¡enega ukaza."
+
+#: builtins.c:715
+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 ""
+"KonÄa prijavno lupino.\n"
+" \n"
+" KonÄa prijavno lupino s stanjem konÄanja N. Vrne napako, Äe se\n"
+" ne izvede v prijavni lupini."
+
+#: builtins.c:725
+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 ""
+"Prikaže ali izvede ukaze s seznama zgodovine.\n"
+" \n"
+" fc se uporablja za seznam ali urejanje in ponovno izvajanje ukazov\n"
+" s seznama zgodovine. PRVI in ZADNJI sta lahko Å¡tevili, ki doloÄata "
+"obseg\n"
+" oz. PRVI je lahko niz, kar pomeni, da se nedavni ukaz zaÄne s tem "
+"nizom.\n"
+" \n"
+" Možnosti:\n"
+" -e IME_UREJEVALNIKA\tizbere urejevalnik za uporabo. Privzet je\n"
+" \t\tFCEDIT, nato EDITOR, nato vi\n"
+" -l \tprikaže vrstice namesto urejanja\n"
+" -n\tzanemari Å¡tevilke vrstic med navedbo\n"
+" -r\tobrni vrstni red vrstic (najnovejše so navedene prve)\n"
+" \n"
+" Z obliko `fc -s [vzorec=zamenjava] [ukaz]' se UKAZ ponovno izvede \n"
+" po tem, ko se opravi nadomeÅ¡Äanje OLD=NEW.\n"
+" \n"
+" Lahko se uporabi uporaben vzdevek r='fc -s' tako, da se z vnosom \n"
+" `r cc' zažene zadnji ukaz, ki se zaÄne z `cc' in vnosom `r' se ponovno \n"
+" izvede zadnji ukaz.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no ali stanje izvedenega ukaza; ne-niÄelno, Äe pride do napake."
+
+#: builtins.c:755
+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 ""
+"Premakne posel v ospredje.\n"
+" \n"
+" Premakne posel, doloÄen s strani DOLOÄŒILA_POSLA, v ospredje,\n"
+" kar ga spremeni v trenutni posel. ÄŒe DOLOÄŒILO_POSLA ni prisotno,\n"
+" se uporabi oznaÄba lupine trenutnega posla.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Stanje ukaza, postavljenega v ospredje, ali neuspeÅ¡no, Äe se\n"
+" pojavi napaka."
+
+#: builtins.c:770
+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 ""
+"Premakne posle v ozadje.\n"
+" \n"
+" Postavi posle, doloÄene s strani JOB_SPEC, v ozadje, kot Äe bi se\n"
+" zaÄeli z `&'. ÄŒe JOB_SPEC ni prisoten, se uporabi oznaÄba lupine\n"
+" trenutnega posla.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe nadzor posla ni omogoÄen ali Äe pride\n"
+" do napake."
+
+#: builtins.c:784
+#, fuzzy
+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 as 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 ""
+"Shrani ali prikaži mesta programov.\n"
+" \n"
+" DoloÄi in shrani polno ime poti vsakega IMENA ukaza. ÄŒe\n"
+" ni danih argumentov, se prikažejo podrobnosti o shranjenih ukazih.\n"
+" \n"
+" Možnosti:\n"
+" -d\t\tpozabi shranjeno mesto vsakega IMENA\n"
+" -l\t\tprikaži v obliki, ki se lahko ponovno uporabi kot vnos\n"
+" -p ime_poti\tuporabi IME_POTI kot polno ime poti IMENA\n"
+" -r\t\tpozabi vsa shranjena mesta\n"
+" -t\t\tprikaži shranjena mesta vsakega IMENA, temu sledi\n"
+" \t\tvsako mesto z ustreznim IMENOM, Äe je danih veÄ IMEN\n"
+" ArgumentI:\n"
+" IME\t\tVsako IME je iskano v $PATH in dodano na seznam\n"
+" \t\tshranjenih ukazov.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe IME ni najdeno ali Äe je dana neveljavna možnost."
+
+#: builtins.c:809
+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 ""
+"Prikaže podrobnosti o ukazih vgrajene lupine.\n"
+" \n"
+" Prikaže kratke povzetke ukazov vgrajene lupine. Če je VZOREC\n"
+" doloÄen, da podrobno pomoÄ za vse ukaze, ki se ujemajo z VZORCEM,\n"
+" v nasprotnem primeru prikaže seznam tem pomoÄi.\n"
+" \n"
+" Možnosti:\n"
+" -d\tizpiši kratek opis za vsako temo\n"
+" -m\tprikaži uporabo v obliki psevdo-priroÄniÅ¡ke strani\n"
+" -s\tprikaži samo kratek povzetek uporabe za vsako temo, ki se\n"
+" \tujema z VZORCEM\n"
+" \n"
+" ArgumentI:\n"
+" VZOREC\tVzorec, ki navaja temo pomoÄi\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe VZOREC ni najden ali pa je dana neveljavna\n"
+" možnost."
+
+#: builtins.c:833
+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 ""
+"Prikaže ali obdela seznam zgodovine.\n"
+" \n"
+" Prikaže seznam zgodovine s številkami vrstic, vsak spremenjen vnos\n"
+" oznaÄi s predpono `*'. Argument N navede samo N zadnjih vnosov.\n"
+" \n"
+" Možnosti:\n"
+" -c\tpobriši seznam zgodovine z brisanjem vseh vnosov\n"
+" -d odmik\tpobriši vnos zgodovine pri odmiku ODMIK.\n"
+" \n"
+" -a\tpripni vrstice zgodovine iz te seje v datoteko zgodovine\n"
+" -n\tpreberi vse vrstice zgodovine, ki Å¡e niso prebrane iz datoteke\n"
+" \tzgodovine\n"
+" -r\tpreberi datoteko zgodovine in pripni vsebino seznama\n"
+" \tzgodovine\n"
+" -w\tpiši trenutno zgodovino v datoteko zgodovine\n"
+" \tin jo pripni na seznam zgodovine\n"
+" \n"
+" -p\topravi razširitev zgodovine na vsak ARG in prikaži rezultat\n"
+" \tbrez shranitve na seznam zgodovine\n"
+" -s\tpripni ARGUMENTE na seznam zgodovine kot edini vnos\n"
+" \n"
+" ÄŒe je IME_DATOTEKE podan, se uporabi kot datoteka zgodovine.\n"
+" V nasprotnem primeru, Äe $HISTFILE ima vrednost, ki se uporabi,\n"
+" pa ~/.bash_history.\n"
+" \n"
+" ÄŒe je spremenljivka $HISTTIMEFORMAT doloÄena in ni prazna, se\n"
+" njena vrednost uporabi kot niz oblike za strftime(3) za prikaz Äasovnih\n"
+" žigov, ki so povezani z vsakim vnosom prikazane zgodovine.\n"
+" V nasprotnem primeru Äasovni žigi niso prikazani.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je podana neveljavna možnost ali Äe pride\n"
+" do napake."
+
+#: builtins.c:869
+#, 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\tlists 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 ""
+"Prikaže stanje poslov.\n"
+" \n"
+" Navede dejavne posle. DOLOÄŒILO_POSLA omejuje izpis v ta posel.\n"
+" Brez podanih možnosti se prikaže stanje vseh dejavnih poslov.\n"
+" \n"
+" Možnosti:\n"
+" -l\tnavedi ID-je opravil zraven obiÄajnih podatkov\n"
+" -n\tnavedi samo opravila, ki imajo od zadnjega obvestila\n"
+" \tspremenjena stanja\n"
+" -p\tnavedi samo ID-je opravil\n"
+" -r\tomeji izhod na posle, ki se izvajajo\n"
+" -s\tomeji izhod na ustavljene posle\n"
+" \n"
+" ÄŒe je -x naveden, se zažene UKAZ, ko se doloÄila poslov, ki se\n"
+" pojavijo v ARGUMENTIH, zamenjajo z ID-jem opravila vodje skupine\n"
+" opravil tega posla.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe pride do\n"
+" napake. ÄŒe se uporabi -x, vrne stanje konÄanja UKAZA."
+
+#: builtins.c:896
+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 ""
+"Odstrani posle iz trenutne lupine.\n"
+" \n"
+" Odstrani vsak argument DOLOÄŒILA_POSLA s seznama dejavnih poslov.\n"
+" Brez danih DOLOÄŒIL_POSLA lupina uporabi svojo oznaÄbo trenutnega\n"
+" posla.\n"
+" \n"
+" Možnosti:\n"
+" -a\todstrani vse posle, Äe DOLOÄŒILO_POSLA ni navedeno\n"
+" -h\toznaÄi vsako DOLOÄŒILO_POSLA, tako da se SIGHUP ne poÅ¡lje\n"
+" \tposlu, Äe lupina prejme SIGHUP \n"
+" -r\todstrani samo posle, ki se izvajajo\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe je dano\n"
+" DOLOÄŒILO_POSLA."
+
+#: builtins.c:915
+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šlje signal poslu.\n"
+" \n"
+" PoÅ¡lje opravila, doloÄena s strani ID-ja opravila ali uporabi\n"
+" DOLOÄŒILO_POSLA za signal, ki je imenovan s strani SIGSPEC ali SIGNUM.\n"
+" ÄŒe SIGSPEC in SIGNUM nista prisotna, se predvideva SIGTERM.\n"
+" \n"
+" Možnosti:\n"
+" -s sig\tSIG je ime signala\n"
+" -n sig\tSIG je Å¡tevilka signala\n"
+" -l\tnavedi imena signalov; Äe `-l' sledijo argumenti, se predvideva,\n"
+" \tda so Å¡tevilke signalov, za katere bi morala biti navedena imena\n"
+" \n"
+" Kill je vgrajena lupina zaradi dveh razlogov: omogoÄa ID-jem poslov,\n"
+" da se jih uporabi namesto ID-jev opravil in omogoÄa uniÄenje opravil,\n"
+" Äe se prekoraÄi meja ustvarjenih opravil.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe pride do\n"
+" napake."
+
+#: builtins.c:938
+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 ""
+"Ovrednoti aritmetiÄne izraze.\n"
+" \n"
+" Ovrednoti vsak ARG kot aritmetiÄni izraz. Vrednotenje se opravi\n"
+" v celih Å¡tevilih z nespremenjeno Å¡irino brez preverjanja za "
+"prekoraÄitev,\n"
+" Äeprav je deljenje z 0 ujeto in oznaÄeno kot napaka. Seznam "
+"operatorjev,\n"
+" ki sledi, je združen v stopnje operatorjev enakih prednosti. Stopnje so\n"
+" razvrÅ¡Äene po padajoÄi prednosti.\n"
+" \n"
+" \tid++, id--\tnaknadno veÄanje spremenljivke, naknadno manjÅ¡anje\n"
+" \t++id, --id\tpredhodno veÄanje spremenljivke, predhodno manjÅ¡anje\n"
+" \t-, +\t\tenosloven minus, plus\n"
+" \t!, ~\t\tlogiÄna in bitna negacija\n"
+" \t**\t\tpotenciranje\n"
+" \t*, /, %\t\tmnoženje, deljenje, ostanek\n"
+" \t+, -\t\tseštevanje, odštevanje\n"
+" \t<<, >>\t\tlevi in desni bitni premiki\n"
+" \t<=, >=, <, >\tprimerjava\n"
+" \t==, !=\t\tenakost, neenakost\n"
+" \t&\t\tbitni AND\n"
+" \t^\t\tbitni XOR\n"
+" \t|\t\tbitni OR\n"
+" \t&&\t\tlogiÄni AND\n"
+" \t||\t\tlogiÄni OR\n"
+" \tizraz ? izraz : izraz\n"
+" \t\t\tpogojni operator\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tdodeljevanje \n"
+" \n"
+" Spremenljivke lupine so dovoljene kot operandi. Ime spremenljivke\n"
+" se zamenja z njeno vrednostjo (prisiljena na celo Å¡tevilo z\n"
+" nespremenljivo Å¡irino) znotraj izraza. Za uporabo spremenljivke v ni\n"
+" treba vklopliti atributa celega Å¡tevila.\n"
+" \n"
+" Operatorji so ovrednoteni v prednostnem vrstnem redu. Podizrazi\n"
+" v oklepajih so ovrednoteni prvi in lahko prepišejo prednostna \n"
+" pravila, omenjena zgoraj.\n"
+" \n"
+" Stanje konÄanja\n"
+" ÄŒe zadnji ARG ovrednoti na 0, let vrne 1; sicer let vrne 0."
+
+#: builtins.c:983
+#, 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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+"Prebere vrstico iz standardnega vhoda in jo razdeli v polja.\n"
+" \n"
+" Prebere eno vrstico iz standardnega vhoda ali iz opisnika FD, Äe je\n"
+" navedena možnost -u. Vrstica je razdeljena na polja, kot je delitev\n"
+" besed in prva beseda je dodeljena prvemu IMENU, druga beseda drugemu\n"
+" IMENU itd., ostanek zadnje besede pa se dodeli zadnjemu IMENU.\n"
+" Samo znaki, najdeni v $IFS, so prepoznani kot razmejilniki besed.\n"
+" \n"
+" ÄŒe ni navedenih IMEN, se prebrana vrstica shrani v spremenljivko REPLY.\n"
+" \n"
+" Možnosti:\n"
+" -a polje\tdodeli prebrane besede zaporednim kazalom spremenljivke \n"
+" \t\tpolja POLJE, zaÄenÅ¡i z 0\n"
+" -d razmejilnik\tnadaljuj, dokler ni prvi znak RAZMEJILNIKA prebran,\n"
+" \t\tnamesto v novo vrstico\n"
+" -e\t\tuporabi Readline za pridobitev vrstice v vzajemni lupini\n"
+" -i besedilo\tuporabi BESEDILO kot prvotno besedilo za Readline\n"
+" -n n-znakov\tvrni po branju znakov N-ZNAKOV, namesto Äakanja na\n"
+" \t\tnovo vrstico, toda spoÅ¡tuj razmejilnik, Äe je prebranih znakov\n"
+" \t\tmanj kot N-ZNAKOV pred razmejilnikom\n"
+" -N n-znakov\tvrni samo po branju N-ZNAKOV znakov, razen Äe naleti\n"
+" \t\tna konec datoteke ali Äe branju poteÄe Äasovna omejitev, brez\n"
+" \t\tupoštevanja katerega koli razmejilnika\n"
+" -p poziv\tizpiši niz POZIV brez vmesne nove vrstice, preden se\n"
+" \t\tposkuša prebrati\n"
+" -r\t\tne dovoli levih poševnic za izognitev vsem znakom\n"
+" -s\t\tne izpiši vnosa, ki prihaja s terminala\n"
+" -t Äasovna_omejitev\tpreseži Äasovno omejitev in vrni neuspeÅ¡no, Äe\n"
+" \t\tznotraj ÄŒASOVNE_OMEJITVE sekund ni prebrana celotna vrstica\n"
+" \t\tvnosa. Vrednost spremenljivke TMOUT je privzeta Äasovna\n"
+" \t\tomejitev. ÄŒASOVNA_OMEJITEV je lahko decimalno Å¡tevilo.\n"
+" \t\tÄŒe je ÄŒASOVNA_OMEJITEV 0, branje vrne uspeÅ¡no samo, Äe je na\n"
+" \t\tdoloÄenem opisniku datoteke na voljo vnos. Stanje konÄanja je\n"
+" \t\tveÄje kot 128, Äe je Äasovna omejitev prekoraÄena\n"
+" -u fd\t\tberi iz opisnika datotek FD, namesto standardnega vhoda\n"
+" \n"
+" Stanje konÄanja\n"
+" Koda vrnitve je niÄ, razen Äe pride do konca datoteke, Äe je Äasovna \n"
+" omejitev prekoraÄena ali Äe je dan neveljaven opisnik datotek kot\n"
+" argument v -u."
+
+#: builtins.c:1028
+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 ""
+"Vrne iz funkcije lupine.\n"
+" \n"
+" PovzroÄi, da funkcija ali skripta izvorne kode konÄa z vrednostjo\n"
+" vrnitve, doloÄene z N. ÄŒe je N izpuÅ¡Äen, se uporabi stanje vrnitve\n"
+" zadnjega izvršenega ukaza znotraj funkcije ali skripta.\n"
+" \n"
+" Stanje konÄanja\n"
+" Vrne N ali neuspeÅ¡no, Äe lupina ne izvede funkcije ali skripta."
+
+#: builtins.c:1041
+#, 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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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 ""
+"Nastavi ali ponastavi vrednosti možnosti lupine in položajne parametre.\n"
+" \n"
+" Spremeni vrednost atributov lupine in položajnih parametrov ali\n"
+" prikaže imena in vrednosti spremenljivk lupine.\n"
+" \n"
+" Možnosti:\n"
+" -a OznaÄi vrednosti, ki so spremenjene ali ustvarjene za izvoz.\n"
+" -b Takoj obvesti o uniÄenju posla.\n"
+" -e Takoj konÄaj, Äe ukaz obstaja z ne-niÄelnim stanjem.\n"
+" -f OnemogoÄi ustvarjanje imen datotek (globbing).\n"
+" -h Zapomni si mesto ukazov, ko se jih iÅ¡Äe.\n"
+" -k Vsi argumenti dodeljevanja so postavljeni v okolje za ukaz, ne\n"
+" samo tisti, ki imajo predhodna imena ukazov.\n"
+" -m Nadzor poslov je omogoÄen.\n"
+" -n Preberi ukaze, toda ne izvedi jih.\n"
+" -o ime_možnosti\n"
+" Nastavi spremenljivke, ki ustrezajo ime_možnosti:\n"
+" allexport enako kot -a\n"
+" braceexpand enako kot -B\n"
+" emacs uporabi vmesnik urejanja vrstic s slogom emacs\n"
+" errexit enako kot -e\n"
+" errtrace enako kot -E\n"
+" functrace enako kot -T\n"
+" hashall enako kot -h\n"
+" histexpand enako kot -H\n"
+" history omogoÄi zgodovino ukazov\n"
+" ignoreeof lupina se ne bo konÄala po koncu branja datoteke\n"
+" interactive-comments\n"
+" omogoÄi, da se ukazi pojavijo v vzajemnih ukazih\n"
+" keyword enako kot -k\n"
+" monitor enako kot -m\n"
+" noclobber enako kot -C\n"
+" noexec enako kot -n\n"
+" noglob enako kot -f\n"
+" nolog trenutno sprejeto, toda neupoštevano\n"
+" notify enako kot -b\n"
+" nounset enako kot -u\n"
+" onecmd enako kot -t\n"
+" physical enako kot -P\n"
+" pipefail vrnjena vrednost cevovoda je stanje zadnjega\n"
+" ukaza, ki je konÄal z ne-niÄelnim stanjem ali "
+"niÄ,\n"
+" Äe noben ukaz ni konÄal ne-niÄelnim stanjem\n"
+" posix spremeni obnašanje bash-a, kjer se privzeto\n"
+" opravilo razlikuje od standarda POSIX pri\n"
+" ujemanju standarda\n"
+" privileged enako kot -p\n"
+" verbose enako kot -v\n"
+" vi uporabi vmesnik urejanja vrstic s slogom vi\n"
+" xtrace enako kot -x\n"
+" -p Vklopljeno, kadar se pravi in uÄinkoviti uporabniÅ¡ki ID-ji ne\n"
+" ujamajo. OnemogoÄi obdelavo datoteke $ENV in uvoz funkcij\n"
+" lupine. OnemogoÄenje te možnosti povzroÄi, da sta uÄinkovit\n"
+" uporabniÅ¡ki id in id skupine nastavljena na resniÄen\n"
+" uporabniški id in id skupine.\n"
+" -t KonÄaj po branju in izvedbi enega ukaza.\n"
+" -u Obravnavaj ponastavljene spremenljivke kot napako pri\n"
+" zamenjavi.\n"
+" -v Prikaži vrstice vnosa lupine kot so prebrane.\n"
+" -x Prikaži ukaze in njihove argumente kot so izvedeni.\n"
+" -B lupina bo izvedla Å¡iritev oklepaja\n"
+" -C Äe je nastavljen, ne dovoli obiÄajnim datotekam,\n"
+" da bi bile prepisane s preusmeritvijo izhoda.\n"
+" -E ÄŒe je nastavljeno, je past ERR dedovana s strani\n"
+" funkcij lupine.\n"
+" -H OmogoÄi zamenjavo zgodovine s slogom! . Ta zastavica\n"
+" je privzeto omogoÄena, kadar je lupina vzajemna.\n"
+" -P ÄŒe je nastavljeno, ne sledi simbolnim povezavam, kadar se\n"
+" izvajajo ukazi, kot je cd, ki spremeni trenutno mapo.\n"
+" -T ÄŒe je nastavljeno, je past DEBUG dedovana s strani\n"
+" funkcij lupine.\n"
+" -- Dodeli vse preostale argumente v položajne parametre.\n"
+" Če ni preostalih argumentov, so položajni parametri\n"
+" ponastavljeni.\n"
+" - Dodeli vse preostale argumente v položajne parametre.\n"
+" Možnosti -x in -v sta izkljuÄeni.\n"
+" \n"
+" Uporaba + namesto - povzroÄi, da se te zastave izklopijo.\n"
+" Zastave se lahko tudi uporabijo za po klicu lupine. Trenuten\n"
+" niz zastavic je mogoÄe najti v $-. Preostali n ARGUMENTI so\n"
+" položajni parametri in so dodeljeni vrstnem redu k $1, $2, .. $n.\n"
+" Če ni danih ARGUMENTOV, se izpišejo vse spremenljivke\n"
+" lupine.\n"
+" \n"
+" Stanje konÄanja\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost."
+
+#: builtins.c:1126
+#, fuzzy
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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 ""
+"Ponastavi vrednosti in atribute spremenljivk in funkcij lupine.\n"
+" \n"
+" Za vsako IME odstrani ustrezno spremenljivko ali funkcijo.\n"
+" \n"
+" Možnosti:\n"
+" -f\tobravnavaj vsako IME kot funkcijo lupine\n"
+" -v\tobravnavaj vsako IME kot spremenljivko lupine\n"
+" \n"
+" ÄŒe ni danih možnosti, poskuÅ¡a unset ponastaviti spremenljivko in Äe\n"
+" to ne uspe, poskuša ponastaviti funkcijo.\n"
+" \n"
+" Nekaterih spremenljivk ni mogoÄe ponastaviti; glejte tudi `readonly'.\n"
+" \n"
+" Stanje konÄanja\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe je IME samo\n"
+" za branje."
+
+#: builtins.c:1148
+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 ""
+"Nastavi atribut izvoza za spremenljivke lupine.\n"
+" \n"
+" OznaÄi vsako IME za samodejni izvoz v okolje naknadno izvedenih\n"
+" ukazov. ÄŒe je VREDNOST vnesena, dodeli VREDNOST pred izvozom.\n"
+" \n"
+" Možnosti:\n"
+" -f\tnanašaj se na funkcije lupine\n"
+" -n\todstrani lastnost izvoza iz vsakega IMENA\n"
+" -p\tprikaži seznam vseh izvoženih spremenljivk in funkcij\n"
+" \n"
+" Argument od `--' onemogoÄi nadaljnjo obdelavo možnosti.\n"
+" \n"
+" Stanje konÄanja\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe je\n"
+" neveljavno IME."
+
+#: builtins.c:1167
+#, fuzzy
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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Äi spremenljivke lupine kot nespremenljive.\n"
+" \n"
+" OznaÄi vsako IME kot samo za branje; vrednosti teh IMEN se morda\n"
+" ne bodo spremenile s strani naknadne dodelitve. ÄŒe je VREDNOST\n"
+" predložena, dodeli VREDNOST pred oznaÄitvijo samo za branje.\n"
+" \n"
+" Možnosti:\n"
+" -a\tnanašaj se na spremenljivke zabeleženih polj\n"
+" -A\tnanašaj se spremenljivke povezanih polj\n"
+" -f\tnanašaj se na funkcije lupine\n"
+" -p\tprikaži seznam vseh spremenljivk in funkcij, ki so samo\n"
+" \tza branje\n"
+" \n"
+" Argument od `--' onemogoÄi nadaljnjo obdelavo možnosti.\n"
+" \n"
+" Stanje konÄanja\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe je\n"
+" neveljavno IME."
+
+#: builtins.c:1189
+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 ""
+"Premakne položajne parametre.\n"
+" \n"
+" Preimenuje položajne parametre $N+1, $N+2 ... v $1,$2 ...\n"
+" ÄŒe N ni dan, se predvideva, da je 1.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je N negativen ali veÄji kot $#."
+
+#: builtins.c:1201 builtins.c:1216
+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 ""
+"Izvede ukaze iz datoteke v trenutni lupini.\n"
+" \n"
+" Prebere in izvede ukaze iz DATOTEKE v trenutni lupini. Vnosi v $PATH\n"
+" so uporabljeni za iskanje mape, ki vsebuje IME_DATOTEKE. \n"
+" Če so kakšni ARGUMENTI predloženi, postanejo položajni parametri,\n"
+" kadar se izvede IME_DATOTEKE.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza v IMENU_DATOTEKE; vrne\n"
+" neuspeÅ¡no, Äe IMENA_DATOTEKE ni mogoÄe brati."
+
+#: builtins.c:1232
+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 ""
+"Da izvedbo lupine v pripravljenost.\n"
+" \n"
+" Da izvedbo te lupine v pripravljenost, dokler ne prejme signala\n"
+" SIGCONT. Lupine prijave ni mogoÄe dati v pripravljenost, razen Äe se\n"
+" jo prisili.\n"
+" \n"
+" Možnosti:\n"
+" -f\tprisili stanje pripravljenosti, tudi Äe je lupina lupina prijave\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe nadzor posla ni omogoÄen ali Äe pride do\n"
+" napake."
+
+#: builtins.c:1248
+#, 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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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 ""
+"Ovrednoti pogojni izraz.\n"
+" \n"
+" KonÄa s stanjem 0 (prav) ali 1 (napak), odvisno od ovrednotenja IZRAZA.\n"
+" Izrazi so lahko enoslovni ali binarni. Enoslovni izrazi so pogosto\n"
+" uporabljeni za preverjanje stanja datoteke. Obstajajo tudi operatorji\n"
+" nizov in operatorji Å¡tevilskih primerjav.\n"
+" \n"
+" Obnašanje preizkusa je odvisno od števila argumentov. Preberite \n"
+" si stran priroÄnika bash za popolno razÄlenitev.\n"
+" \n"
+" Operatorji datotek:\n"
+" \n"
+" -a DATOTEKA Prav, Äe datoteka obstaja.\n"
+" -b DATOTEKA Prav, Äe je datoteka posebnost bloka.\n"
+" -c DATOTEKA Prav, Äe je datoteka posebnost znaka.\n"
+" -d DATOTEKA Prav, Äe je datoteka mapa.\n"
+" -e DATOTEKA Prav, Äe datoteka obstaja.\n"
+" -f DATOTEKA Prav, Äe datoteka obstaja in je obiÄajna.\n"
+" -g DATOTEKA Prav, Äe je datoteka set-group-id.\n"
+" -h DATOTEKA Prav, Äe je datoteka simbolna povezava.\n"
+" -L DATOTEKA Prav, Äe je datoteka simbolna povezava.\n"
+" -k DATOTEKA Prav, Äe ima datoteka nastavljeno zastavo `sticky' bit\n"
+" -p DATOTEKA Prav, Äe je datoteka imenovana cev.\n"
+" -r DATOTEKA Prav, Äe je datoteka berljiva za Vas.\n"
+" -s DATOTEKA Prav, Äe datoteka obstaja in ni prazna.\n"
+" -S DATOTEKA Prav, Äe datoteka ni vstavek.\n"
+" -t FD Prav, Äe je FD odprt v terminalu.\n"
+" -u DATOTEKA Prav, Äe je datoteka set-user-id.\n"
+" -w DATOTEKA Prav, Äe je datoteka zapisljiva za Vas.\n"
+" -x DATOTEKA Prav, Äe je datoteka izvedljiva za Vas.\n"
+" -O DATOTEKA Prav, Äe datoteka v vaÅ¡i lasti.\n"
+" -G DATOTEKA Prav, Äe je datoteka v lasti vaÅ¡e skupine.\n"
+" -N DATOTEKA Prav, Äe je datoteka bila spremenjena, odkar je bila\n"
+" nazadnje prebrana.\n"
+" \n"
+" DATOTEKA1 -nt DATOTEKA Prav, Äe je datoteka1 novejÅ¡a kot\n"
+" datoteka2 (glede na datum spremembe).\n"
+" \n"
+" DATOTEKA1 -ot DATOTEKA2 Prav, Äe je datoteka1 starejÅ¡a kot\n"
+" datoteka2.\n"
+" \n"
+" DATOTEKA1 -ef DATOTEKA2 Prav, Äe je datoteka1 nespremenljivo\n"
+" vezana na datoteko2.\n"
+" \n"
+" Operatorji nizov:\n"
+" \n"
+" -z NIZ Prav, Äe je niz prazen.\n"
+" \n"
+" -n NIZ\n"
+" NIZ Prav, Äe niz ni prazen.\n"
+" \n"
+" NIZ1 = NIZ2\n"
+" Prav, Äe sta niza enaka.\n"
+" NIZ1 != NIZ2\n"
+" Prav, Äe niza nista enaka.\n"
+" NIZ1 < NIZ2\n"
+" Prav, Äe NIZ1 razvrsti po abecedi prej kot NIZ2.\n"
+" NIZ1 > NIZ2\n"
+" Prav, Äe NIZ1 razvrsti po abecedi kasneje kot NIZ2.\n"
+" \n"
+" Drugi operatorji:\n"
+" \n"
+" -o MOŽNOST Prav, Äe je možnost lupine MOŽNOST omogoÄena.\n"
+" -v SPR\t Prav, Äe je spremenljivka lupine SPR nastavljena\n"
+" ! IZRAZ Prav, Äe je izraz napak.\n"
+" IZRAZ1 -a IZRAZ2 Prav, Äe sta izraz1 IN izraz2 prav.\n"
+" IZRAZ1 -o IZRAZ2 Prav, Äe je izraz1 ALI izraz2 prav.\n"
+" \n"
+" arg1 OP arg2 AritmetiÄni preizkusi. OP je eden od -eq, -ne,\n"
+" -lt, -le, -gt, ali -ge.\n"
+" \n"
+" AritmetiÄna binarna operatorja vrneta prav, Äe je ARG1 enak, neenak,\n"
+" manjÅ¡i-kot, manjÅ¡i-kot-ali-enak, veÄji-kot ali veÄji-kot-ali-enak\n"
+" kot ARG2.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, Äe IZRAZ ovrednoti prav, neuspeÅ¡no vrne, Äe IZRAZ \n"
+" ovrednoti napak ali Äe je dan neveljaven argument."
+
+#: builtins.c:1329
+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 ""
+"Ovrednoti pogojni izraz.\n"
+" \n"
+" To je sopomenka za vgrajeno lupino \"test\", toda zadnji argument\n"
+" mora biti dobesedni `]' za ujemanje z uklepajem `['."
+
+#: builtins.c:1338
+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 ""
+"Prikaže Äase opravila.\n"
+" \n"
+" Prikaže zbrane Äase uporabnika in sistema za lupino in vsa njena\n"
+" podrejena opravila.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vedno uspešno."
+
+#: builtins.c:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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 ""
+"Signali trap in ostali dogodki.\n"
+" \n"
+" DoloÄi in omogoÄi roÄnik, da se jih zažene, kadar lupina sprejme "
+"signale\n"
+" ali ostale pogoje.\n"
+" \n"
+" ARG je ukaz, ki se ga prebere in izvrši, kadar lupina sprejme signal(e)\n"
+" SIGNAL_SPEC. Če je ARG odsoten (in predložen en SIGNAL_SPEC)\n"
+" ali `-', je vsak doloÄen signal ponastavljen na svojo prvotno vrednost.\n"
+" ÄŒe je ARG prazen niz, je vsak SIGNAL_SPEC prezrt s strani lupine\n"
+" in ukazov, ki jih pokliÄe.\n"
+" \n"
+" Če je SIGNAL_SPEC EXIT (0), se ARG izvrši ob izhodu iz lupine. Če je\n"
+" SIGNAL_SPEC DEBUG, je ARG izvršen pred vsakim ukazom. Če je\n"
+" SIGNAL_SPEC RETURN, se ARG izvrÅ¡i vsakiÄ, ko funkcija lupine ali "
+"skript,\n"
+" zagnan s strani . ali vgrajenih virov, konÄa z izvajanjem. SIGNAL_SPEC\n"
+" od ERR pomeni, da se ARG izvede vsakiÄ, ko bi napaka ukaza povzroÄila, "
+"da\n"
+" bi se lupina konÄala, kadar je omogoÄena možnost -e.\n"
+" \n"
+" Če ni predloženih argumentov, trap prikaže seznam ukazov, povezanih z\n"
+" vsakim signalom.\n"
+" \n"
+" Možnosti:\n"
+" -l\tPrikaži seznam imen signalov in njihove ustrezne številke\n"
+" -p\tprikaži ukaze trap, povezane z vsakim SIGNAL_SPEC\n"
+" \n"
+" Vsak SIGNAL_SPEC je bodisi ime signala v <signal.h> bodisi Å¡tevilka "
+"signala.\n"
+" Imena signalov loÄujejo velikost Ärk in predpona SIG je izbirna.\n"
+" Signal je lahko poslan v lupino s \"kill -signal $$\".\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je SIGSPEC neveljaven ali je dana neveljavna "
+"možnost."
+
+#: builtins.c:1386
+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 ""
+"Prikaže podrobnosti o vrsti ukaza.\n"
+" \n"
+" Za vsako IME nakaže, kako bi bilo tolmaÄeno, Äe bi bilo uporabljeno\n"
+" v imenu ukaza.\n"
+" \n"
+" Možnosti:\n"
+" -a\tprikaži vsa mesta, ki vsebujejo izvedljivo datoteko z imenom\n"
+" \tIME;\n"
+" \tvkljuÄuje vzdevke, vgrajene lupine in funkcije, ampak samo,\n"
+" \tÄe možnost `-p' NI uporabljena.\n"
+" -f\tzatri iskanje funkcij lupine\n"
+" -P\tprisili iskanje POTI za vsako IME, tudi Äe je vzdevek,\n"
+" \tvgrajena lupina ali funkcija, in vrni ime datoteke diska, ki bi\n"
+" \tbil izvršen.\n"
+" -p\tvrne ime datoteke diska, ki bi bila izvrÅ¡ena ali niÄ,\n"
+" \tÄe `type -t NAME' ne bi vrnil datoteke `file'.\n"
+" -t\tizpiši eno besedo, katera je ena izmed `vzdevkov', \n"
+" \t`kljuÄnih_besed', `funkcij', `vgrajenih_lupin', `datotek' ali `', \n"
+" \tÄe je IME vzdevek, rezervirana beseda, funkcija lupine, vgrajena \n"
+" \tlupina, datoteka diska ali ni najdeno, v tem zaporedju\n"
+" \n"
+" Argumenti:\n"
+" IME\tIme ukaza, ki bo tolmaÄeno.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, Äe so vsa IMENA najdena; vrne neuspeÅ¡no, Äe katero\n"
+" ni najdeno."
+
+#: builtins.c:1417
+#, 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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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 ""
+"Spremeni omejitve virov lupine.\n"
+" \n"
+" Zagotavlja nadzor nad sredstvi, ki so na voljo lupini in ustvarjenim\n"
+" opravilom, na sistemih, ki omogoÄajo tak nadzor.\n"
+" \n"
+" Možnosti:\n"
+" -S\tuporabi blago omejitev virov `soft'\n"
+" -H\tuporabi strogo omejitev virov `hard'\n"
+" -a\tvse trenutne omejitve so poroÄane\n"
+" -b\tvelikost medpomnilnika vtiÄa\n"
+" -c\tnajveÄja velikost ustvarjenih datotek jedra\n"
+" -d\tnajveÄja velikost odseka podatkov opravila\n"
+" -e\tnajveÄja prednost razporejanja (`nice')\n"
+" -f\tnajveÄja velikost datotek, ki so napisane s strani lupine in "
+"njenih\n"
+" \tpodrejenih opravil\n"
+" -i\tnajveÄje Å¡tevilo signalov na Äakanju\n"
+" -l\tnajveÄja velikost, ki jo opravilo lahko zaklene v pomnilnik\n"
+" -m\tnajveÄja velikost stalnih naborov\n"
+" -n\tnajveÄje Å¡tevilo odprtih opisnikov datotek\n"
+" -p\tvelikost medpomnilnika cevi\n"
+" -q\tnajveÄje Å¡tevilo bajtov v Äakalnih vrstah sporoÄil POSIX\n"
+" -r\tnajveÄja prednost razporejanja v realnem Äasu\n"
+" -s\tnajveÄja velikost sklada\n"
+" -t\tnajveÄja koliÄina Äasa cpe v sekundah\n"
+" -u\tnajveÄje Å¡tevilo uporabniÅ¡kih opravil\n"
+" -v\tvelikost navideznega pomnilnika\n"
+" -x\tnajveÄje Å¡tevilo datoteÄnih kljuÄavnic\n"
+" \n"
+" ÄŒe je MEJA dana, je le-ta nova vrednost navedenega vira; posebne \n"
+" vrednosti MEJE `soft', `hard' in `unlimited' pomenijo trenutno blago \n"
+" omejitev, trenutno strogo omejitev in brez omejitev, v tem vrstem redu.\n"
+" V nasprotnem primeru se izpiše trenutna vrednost navedenega vira.\n"
+" Če ni danih možnosti, se predpostavlja -f.\n"
+" \n"
+" Vrednosti so v 1024-bajtnem poveÄanju, razen za -t, ki je v sekundah,\n"
+" -p, ki je v poveÄanju za 512 bajtov, in -u, ki je nespremenjeno Å¡tevilo\n"
+" opravil.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe pride do\n"
+" napake."
+
+#: builtins.c:1465
+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 ""
+"Prikaži ali nastavi masko naÄina datoteke.\n"
+" \n"
+" Nastavi uporabniško masko ustvarjanja datoteke v NAČIN. Če je\n"
+" NAÄŒIN izpuÅ¡Äen, prikaže trenutno vrednost maske.\n"
+" \n"
+" ÄŒe se NAÄŒIN zaÄne z Å¡tevko, se tolmaÄi kot osmiÅ¡ko Å¡tevilo;\n"
+" sicer je niz simbolnega naÄina kot je sprejet s strani chmod(1).\n"
+" \n"
+" Možnosti:\n"
+" -p\tÄe je NAÄŒIN izpuÅ¡Äen, izpiÅ¡i v obliki, ki se lahko uporabi kot "
+"vnos\n"
+" -S\tnaredi simbolni izpis; sicer se izpiše osmiško število\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je NAÄŒIN neveljaven ali Äe je dana neveljavna\n"
+" možnost."
+
+#: builtins.c:1485
+#, fuzzy
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"ÄŒaka na dokonÄanje posla in vrne stanje konÄanja.\n"
+" \n"
+" PoÄaka na opravilo, doloÄeno s strani ID-ja, ki je lahko ID opravila "
+"ali\n"
+" doloÄilo posla in poroÄa svoje stanje uniÄenja. ÄŒe ID ni dan, poÄaka\n"
+" vsa trenutno dejavna podrejena opravila in stanje konÄanja je niÄ.\n"
+" ÄŒe je ID doloÄilo posla, poÄaka vsa opravila v cevovodu\n"
+" posla.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje ID-ja; vrne neuspeÅ¡no, Äe je ID neveljaven ali Äe je dana\n"
+" neveljavna možnost."
+
+#: builtins.c:1506
+#, fuzzy
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"ÄŒaka na konÄanje opravila in vrne stanje konÄanja.\n"
+" \n"
+" PoÄaka na doloÄeno opravilo in poroÄa svoje stanje uniÄenja. ÄŒe ID\n"
+" opravila ni dan, so vsa trenutno dejavna podrejena opravila na\n"
+" Äakanju in stanje konÄanja je niÄ.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje ID-ja; neuspeÅ¡no, Äe je ID neveljaven ali Äe je dana\n"
+" neveljavna možnost."
+
+#: builtins.c:1521
+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 ""
+"Izvede ukaze za vsakega Älana na seznamu.\n"
+" \n"
+" Zanka `for' izvede zaporedje ukazov za vsakega Älana na seznamu\n"
+" predmetov. ÄŒe `in BESEDE ...;' niso prisotna, se predvideva `in \"$@"
+"\"'.\n"
+" Za vsak element v BESEDAH je IME nastavljeno temu predmetu in\n"
+" UKAZI so izvršeni.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1535
+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 ""
+"AritmetiÄna zanka for.\n"
+" \n"
+" Enakovredna je \n"
+" \t(( IZRAZ1 ))\n"
+" \twhile (( IZRAZ2 )); do\n"
+" \t\tUKAZI\n"
+" \t\t(( IZRAZ3 ))\n"
+" \tdone\n"
+" IZRAZ1, IZRAZ2, in IZRAZ3 so aritmetiÄni izrazi. ÄŒe je kateri izraz "
+"izpuÅ¡Äen,\n"
+" se obnaša, kot da so enaki 1.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1553
+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 ""
+"Izbere besede s seznama in izvede ukaze.\n"
+" \n"
+" BESEDE so razširjene, kar ustvari seznam besed. Nabor razširjenih\n"
+" besed se izpiše na standardno napako, vsaka s svojo številko.\n"
+" ÄŒe `in BESEDE ...;' niso prisotne, se predvideva\n"
+" `in \"$@\"'. Potem je prikazan poziv PS3 in vrstica prebrana\n"
+" s standardnega vnosa. ÄŒe je vrstica sestavljena iz Å¡tevilke, ki ustreza\n"
+" eni od prikazanih besed, potem je IME nastavljeno tej besedi.\n"
+" ÄŒe je vrstica prazna, so BESEDE v pozivu prikazane \n"
+" ponovno. ÄŒe se prebere konec datoteke, se ukaz zakljuÄi. Vsaka druga \n"
+" prebrana vrednost povzroÄi, da se IME nastavi na prazno vrednost.\n"
+" Prebrana vrstica je shranjena v spremenljivki ODGOVOR. UKAZI so "
+"izvršeni \n"
+" po vsakem izboru, dokler se ne izvede ukaz break.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1574
+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 ""
+"PoroÄa porabljen Äas s strani izvedbe cevovoda.\n"
+" \n"
+" Izvede CEVOVOD in prikaže povzetek dejanskega Äasa, Äas \n"
+" uporabniÅ¡ke CPE in Äas sistemske CPE, porabljen za izvajanje CEVOVODA,\n"
+" ko se konÄa.\n"
+" \n"
+" Možnosti:\n"
+" -p\tprikaži Äasovni povzetek v prenosni obliki POSIX\n"
+" \n"
+" Vrednost spremenljivke TIMEFORMAT se uporabi kot oblika izpisa.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Stanje konÄanja je stanje konÄanja CEVOVODA."
+
+#: builtins.c:1591
+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 ""
+"Izvrši ukaze na podlagi ujemanja vzorcev.\n"
+" \n"
+" Izbirno izvrši UKAZE, ki temeljijo na VZORCU BESEDNEGA ujemanja.\n"
+" `|' se uporablja za loÄevanje veÄih vzorcev.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1603
+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 ""
+"Izvaja ukaze, ki temeljijo na pogojih.\n"
+" \n"
+" Izvede se seznam `if UKAZI'. ÄŒe je njegovo stanje niÄ, se izvede seznam\n"
+" `then UKAZI'. V nasprotnem primeru se izvede vsak seznam `elif UKAZI' \n"
+" in Äe je njegovo stanje niÄ, se izvede ustrezen seznam `then UKAZI' \n"
+" in ukaz if se zakljuÄi. V nasprotnem primeru se izvede seznam \n"
+" `else UKAZI', Äe je prisoten. Stanje konÄanja celotnega izgrajenja \n"
+" je stanje konÄanja zadnjega izvrÅ¡enega ukaza ali niÄ, Äe noben pogoj "
+"ni \n"
+" dal prav.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1620
+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 ""
+"Izvaja ukaze, dokler je preizkus uspešen.\n"
+" \n"
+" Razširja in izvaja UKAZE tako dolgo, dokler ima zadnji ukaz v UKAZIH\n"
+" `while' stanje konÄanja, ki je niÄ.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1632
+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 ""
+"Izvaja ukaze, dokler je preizkus neuspešen.\n"
+" \n"
+" Razširja in izvaja UKAZE tako dolgo, dokler ima zadnji ukaz v UKAZIH\n"
+" `until' stanje konÄanja, ki ni niÄ.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Ustvari soopravilo, imenovano IME.\n"
+" \n"
+" Izvrši UKAZ neusklajeno, s standardnim izhodom in vnosom ukaza, ki sta \n"
+" povezana preko cevi z opisniki datotek, ki so dodeljeni kazalom 0 in 1 \n"
+" spremenljivke polja IME v izvršilni lupini.\n"
+" Privzeto IME je \"COPROC\".\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje konÄanja UKAZA."
+
+#: builtins.c:1658
+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 ""
+"DoloÄi funkcijo lupine.\n"
+" \n"
+" Ustvari funkcijo lupine, imenovano IME. Kadar je poklicana kot preprost "
+"ukaz,\n"
+" IME zažene UKAZE v vsebini klicoÄe lupine. Kadar se kliÄe IME, so "
+"argumenti\n"
+" posredovani v funkcijo kot $1...$n in ime funkcije je v $FUNCNAME.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je IME samo za branje."
+
+#: builtins.c:1672
+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 ""
+"Združi ukaze kot enoto.\n"
+" \n"
+" Zažene nabor ukazov v skupini. To je eden od naÄinov za \n"
+" preusmeritev celotnega nabora ukazov.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje zadnjega izvršenega ukaza."
+
+#: builtins.c:1684
+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 ""
+"Obnovi posel v ospredju.\n"
+" \n"
+" Je enakovreden argumentu DOLOÄŒILO_POSLA v ukazu `fg'. Obnovi posel,\n"
+" ki je ustavljen ali v ozadju. DOLOÄŒILO_POSLA lahko doloÄi bodisi ime\n"
+" posla bodisi Å¡tevilko posla. DOLOÄŒILU_POSLA sledi `&', ki postavi posel\n"
+" v ozadje, kot Äe bi doloÄilo posla bilo dobavljeno kot argument ukazu "
+"`bg'.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne stanje obnovljenega posla."
+
+#: builtins.c:1699
+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 ""
+"Ovrednoti aritmetiÄni izraz.\n"
+" \n"
+" IZRAZ je ovrednoten v skladu s pravili za aritmetiÄno ovrednotenje.\n"
+" Je enakovreden ukazu \"let IZRAZ\".\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne 1, Äe je IZRAZ enakovreden; sicer vrne 0."
+
+#: builtins.c:1711
+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 ""
+"Izvrši pogojni ukaz.\n"
+" \n"
+" Vrne stanje 0 ali 1, odvisno od vrednotenja pogojnega izraza IZRAZ.\n"
+" expression EXPRESSION. Izrazi so sestavljeni iz istih osnov, ki so "
+"uporabljajo\n"
+" s strani vgrajene lupine `test' in se lahko spajajo s pomoÄjo "
+"naslednjih\n"
+" operatorjev:\n"
+" \n"
+" ( IZRAZ )\tVrne vrednost IZRAZA\n"
+" ! IZRAZ\t\tPrav, Äe je IZRAZ napak; sicer vrne napak\n"
+" IZRAZ1 && IZRAZ2\tPrav, Äe sta IZRAZ1 in IZRAZ2 prav; sicer vrne "
+"napak\n"
+" IZRAZ1 || IZRAZ2\tTPrav, Äe je IZRAZ1 ali IZRAZ2 prav; sicer vrne "
+"napak\n"
+" \n"
+" Kadar se uporabita operatorja `==' in `!=', se niz desno od operatorja \n"
+" uporabi kot vzorec in izvrši se ujemanje vzorcev. Kadar se uporabi \n"
+" operator `=~', se niz desno od operatorja ujema kot logiÄni izraz.\n"
+" \n"
+" Operatorja && in || ne vrednotita IZRAZ2, Äe IZRAZ1 zadoÅ¡Äa za "
+"doloÄitev \n"
+" vrednosti izraza.\n"
+" \n"
+" Stanje konÄanja:\n"
+" 0 ali 1, odvisno od vrednosti IZRAZA."
+
+#: builtins.c:1737
+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 ""
+"Pogosta imena spremenljivk lupine in uporaba.\n"
+" \n"
+" BASH_VERSION\tPodatki o razliÄici Bash.\n"
+" CDPATH\tZ dvopiÄjem loÄen seznam map za iskanje map,\n"
+" \t\tdanih kot argumenti ukazu `cd'.\n"
+" GLOBIGNORE\tZ dvopiÄjem loÄen seznam vzorcev z opisom imen datotek,\n"
+" \t\tki se jih ne upošteva pri razširitvi imena poti.\n"
+" HISTFILE\tIme datoteke, kjer je shranjena vaša zgodovina ukazov.\n"
+" HISTFILESIZE\tNajveÄje Å¡tevilo vrstic, ki jih ta datoteka lahko "
+"vsebuje.\n"
+" HISTSIZE\tNajveÄje Å¡tevilo vrstic zgodovine, do katerih izvajajoÄa\n"
+" \t\tlupina lahko dostopa.\n"
+" HOME\tCelotno ime poti do vaše prijavne mape.\n"
+" HOSTNAME\tIme trenutnega gostitelja.\n"
+" HOSTTYPE\tVrsta CPE, na katerem se ta razliÄica Bash izvaja.\n"
+" IGNOREEOF\tNadzoruje delovanje lupine ob prejemu znaka za konec\n"
+" \t\tdatoteke kot edini vnos. ÄŒe je nastavljen, je vrednost Å¡tevilo\n"
+" \t\tznakov za konec datoteke, ki jih je mogoÄe videti naenkrat\n"
+" \t\tv prazni vrstici, preden se lupina konÄa (privzeto 10).\n"
+" \t\tKo je ponastavljen, znak za konec datoteke oznaÄuje konec vnosa.\n"
+" MACHTYPE\tNiz, ki opiše trenutni sistem, na katerem se izvaja Bash.\n"
+" MAILCHECK\tKako pogosto, v sekundah, Bash preveri za novo pošto.\n"
+" MAILPATH\tZ dvopiÄjem loÄen seznam imen datotek, za katere Bash\n"
+" \t\tpreveri za novo pošto.\n"
+" OSTYPE\tRazliÄica sistema Unix, na katerem se ta razliÄica Bash izvaja.\n"
+" PATH\tZ dvopiÄjem loÄen seznam iskanih map pri iskanju ukazov.\n"
+" PROMPT_COMMAND\tUkaz, ki se bo izvršil pred izpisom vsakega\n"
+" \t\tglavnega poziva.\n"
+" PS1\t\tPrvotni niz poziva.\n"
+" PS2\t\tDrugotni niz poziva.\n"
+" PWD\t\tPolno ime poti trenutne mape.\n"
+" SHELLOPTS\tZ dvopiÄjem loÄen seznam omogoÄenih možnosti lupine.\n"
+" TERM\tIme trenutne vrste terminala.\n"
+" TIMEFORMAT\tOblika izpisa za Äasovno statistiko, ki je prikazana\n"
+" \t\ts pridržanim imenom `time'.\n"
+" auto_resume\tNe-prazno pomeni, da je beseda ukaza, ki se neodvisno\n"
+" \t\tpojavlja na Ärti, iskana prva na seznamu trenutno zaustavljenih\n"
+" \t\tposlov. ÄŒe je najdena tam, se ta posel postavi v ospredje.\n"
+" \t\tVrednost `exact' pomeni, da se mora beseda ukaza natanÄno\n"
+" \t\tujemati z ukazom na seznamu konÄanih poslov.\n"
+" \t\tVrednost `substring' pomeni, da se beseda ukaza mora ujemati\n"
+" \t\ts podnizom posla. Vsaka druga vrednost pomeni,\n"
+" \t\tda mora ukaz biti predpona konÄanega posla.\n"
+" histchars\tZnaki, ki nadzorujejo razširitev zgodovine in hitro\n"
+" \t\tzamenjavo. Prvi znak je znak zamenjave \n"
+" \t\tzgodovine, obiÄajno `!'. Drugi znak je znak \n"
+" \t\t`hitre zamenjave', obiÄajno `^'.\n"
+" \t\tTretji znak je znak `opomba zgodovine', obiÄajno `#'.\n"
+" HISTIGNORE\tZ dvopiÄjem loÄen seznam vzorcev, ki so uporabljeni \n"
+" \t\tza odloÄanje, kateri ukazi naj se shranijo na seznam zgodovine.\n"
+
+#: builtins.c:1794
+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 ""
+"Doda mape skladu.\n"
+" \n"
+" Doda mapo na vrh sklada map ali pa zavrti sklad, da spremeni\n"
+" nov vrh sklada v trenutno delovno mapo.\n"
+" ÄŒe je brez argumentov, izmenja dve vrhnji mapi.\n"
+" \n"
+" Možnosti:\n"
+" -n\tPrepreÄi obiÄajno spremembo mape pri dodajanju map skladu,\n"
+" \ttako da se obdela le sklad.\n"
+" \n"
+" Argumenti:\n"
+" +N\tZavrti sklad, tako da je N-ta mapa (Å¡tetje z leve strani\n"
+" \tseznama, prikazano z `dirs', zaÄenÅ¡i z niÄ) na vrhu.\n"
+" \n"
+" -N\tZavrti sklad, tako da je N-ta mapa (Å¡tetje z desne strani\n"
+" \tseznama, prikazano z `dirs', zaÄenÅ¡i z niÄ) na vrhu.\n"
+" \n"
+" dir\tDoda DIR skladu mape na vrhu, kar jo spremeni v novo\n"
+" \ttrenutno delovno mapo.\n"
+" \n"
+" Vgrajena lupina `dirs' prikaže sklad map.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložen neveljaven argument ali Äe\n"
+" sprememba mape spodleti."
+
+#: builtins.c:1828
+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 ""
+"Odstrani mape sklada.\n"
+" \n"
+" Odstrani vnose sklada map. ÄŒe je brez argumentov, \n"
+" odstrani vrhnjo mapo sklada in spremeni v novo vrhnjo mapo.\n"
+" \n"
+" Možnosti:\n"
+" -n\tPrepreÄi obiÄajno spremembo mape pri odstranjevanju map\n"
+" \tsklada, tako da se obdela le sklad.\n"
+" \n"
+" Argumenti:\n"
+" +N\tOdstrani N-ti vnos s Å¡tetjem z leve strani seznama,\n"
+" \tprikazanega z `dirs', zaÄenÅ¡i z niÄ. Na primer:\n"
+" \t`popd +0' odstrani prvo mapo, `popd +1' odstrani drugo.\n"
+" \n"
+" -N\tOdstrani N-ti vnos s Å¡tetjem z desne strani seznama,\n"
+" \tprikazanega z `dirs', zaÄenÅ¡i z niÄ. Na primer:\n"
+" \t`popd +0' odstrani zadnjo mapo, `popd +1' odstrani predzadnjo.\n"
+" \n"
+" Vgrajena lupina `dirs' prikaže sklad map.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložen neveljaven argument ali Äe\n"
+" sprememba mape spodleti."
+
+#: builtins.c:1858
+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 ""
+"Prikaže sklad map.\n"
+" \n"
+" Prikaže seznam trenutno pomnjenih map. Mape najdejo \n"
+" svojo pot na seznam z ukazom `pushd'; navzgor po seznamu\n"
+" se lahko vrnete z ukazom `popd'.\n"
+" \n"
+" Možnosti:\n"
+" -c\tpoÄisti sklad map z brisanjem vseh predmetov\n"
+" -l\tne izpiÅ¡i sorodnih map s predpono `~' v mojo domaÄo mapo\n"
+" -p\tprikaži sklad map z enim vnosom v vrstici\n"
+" -v\tizpiÅ¡i sklad mape z enim vnosom v vrstici z doloÄenim\n"
+" \tpoložajem v skladu\n"
+" \n"
+" Argumenti:\n"
+" +N\tPrikaže N-ti vnos s štetjem z leve strani seznama, prikazan\n"
+" \ts pomoÄjo map, ko kliÄemo brez možnosti, zaÄenÅ¡i z niÄ.\n"
+" \n"
+" -N\tPrikaže N-ti vnos s štetjem z desne strani seznama, prikazan\n"
+" \ts pomoÄjo map, ko kliÄemo brez možnosti, zaÄenÅ¡i z niÄ.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe pride do napake."
+
+#: builtins.c:1887
+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 ""
+"Nastavi in ponastavi možnosti lupine.\n"
+" \n"
+" Spremeni nastavitev vsake možnosti lupine IME_MOŽNOSTI.\n"
+" Če ni navedenih argumentov možnosti, navede vse možnosti\n"
+" lupine z oznaÄbo, Äe so vsi nastavljeni ali ne.\n"
+" \n"
+" Možnosti:\n"
+" -o\tomeji IMENA_MOŽNOSTI tem, ki so doloÄeni za uporabo s `set -o'\n"
+" -p\tprikaži vsako možnost lupine z navedbo stanja\n"
+" -q\tprepreÄi izhod\n"
+" -s\tomogoÄi (nastavi) vsako IME_MOŽNOSTI\n"
+" -u\tonemogoÄi (ponastavi) vsako IME_MOŽNOSTI\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, Äe je IME_MOŽNOSTI omogoÄeno; neuspeÅ¡no, Äe je\n"
+" dana neveljavna možnost ali Äe je IME_MOŽNOSTI onemogoÄeno."
+
+#: builtins.c:1908
+#, 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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+"Oblikuje in prikaže ARGUMENTE pod nadzorom OBLIKE.\n"
+" \n"
+" Možnosti:\n"
+" -v var\tdodeli izhod spremenljivki SPREMENLJIVKA namesto\n"
+" \t\tprikaza na standardni izpis\n"
+" \n"
+" OBLIKA je niz znakov, ki vsebuje tri vrste predmetov: obiÄajni znaki, \n"
+" ki so preprosto kopirani na standardni izhod; zaporedja ubežnega "
+"zaporedja, \n"
+" ki so pretvorjena in kopirana na standardni izhod; in doloÄila oblike, \n"
+" od katerih vsako povzroÄi prikaz naslednjega zaporednega argumenta.\n"
+" \n"
+" Poleg doloÄil standardne oblike, opisanih v printf(1) in printf(3), \n"
+" printf tolmaÄi:\n"
+" \n"
+" %b\trazširi ubežno zaporedje levih poševnic v ustreznem argumentu\n"
+" %q\tnavedi argument na naÄin, ki je lahko ponovno uporaben kot\n"
+" \tvnos lupine\n"
+" %(fmt)T izpiÅ¡i niz datuma-Äasa, ki izhaja iz uporabe FMT-ja kot niza "
+"oblike \n"
+" za strftime(3)\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost ali Äe pride do "
+"napake\n"
+" branja ali dodelitve."
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Navede, kako bodo argumenti dopolnjeni s pomoÄjo Readline.\n"
+" \n"
+" Za vsako IME navedi, kako bodo argumenti dopolnjeni. Če ni predloženih\n"
+" možnosti, so obstojeÄe doloÄitve dopolnjevanja prikazane na naÄin, ki "
+"jim\n"
+" omogoÄa, da se ponovno uporabijo kot vnos.\n"
+" \n"
+" Možnosti:\n"
+" -p\tprikaži obstojeÄe doloÄitve dopolnjevanja v obliki za veÄkratno\n"
+" \tuporabo\n"
+" -r\todstrani doloÄitev dopolnjevanja za vsako IME ali Äe IMENA\n"
+" \tniso predložena, vse doloÄitve dopolnjevanja\n"
+" -D\tuveljavi dopolnjevanja in dejanja kot privzeta za ukaze brez\n"
+" \tdoloÄenih dopolnjevanj\n"
+" -E\tuveljavi dopolnjevanja in dejanja v \"praznih\" ukazih -- \n"
+" \tposkus dopolnjevanja v prazni vrstici\n"
+" \n"
+" Ko se poskuša dopolnjevanje, se dejanja uveljavijo v takšnem\n"
+" vrstnem redu, kot z velikimi Ärkami zgoraj navedene možnosti.\n"
+" Možnost -D ima prednost pred -E.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložena neveljavna možnost ali Äe pride\n"
+" do napake."
+
+#: builtins.c:1970
+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 ""
+"Prikaže možne dopolnitve, odvisne od možnosti.\n"
+" \n"
+" Namenjen je za uporabo znotraj funkcije lupine za ustvarjanje možnih\n"
+" dopolnitev. Če je izbirni argument BESEDE predložen, se ustvarijo\n"
+" ujemanja proti BESEDI.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložena neveljavna možnost ali Äe pride\n"
+" do napake."
+
+#: builtins.c:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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 ""
+"Spremeni ali prikaže možnosti dopolnjevanja.\n"
+" \n"
+" Spremeni možnosti dopolnjevanja za vsako IME oz. trenutno izvedeno \n"
+" dopolnitev, Äe IMENA niso predložena. ÄŒe ni danih MOŽNOSTI,\n"
+" prikaže možnosti dopolnjevanja za vsako IME ali trenutno doloÄitev\n"
+" dopolnjevanja.\n"
+" \n"
+" Možnosti:\n"
+" \t-o možnost\tNastavi možnost dopolnitve MOŽNOST za vsako IME\n"
+" \t-D\t\tSpremeni možnosti za \"privzeto\" dopolnitev ukaza\n"
+" \t-E\t\tSpremeni možnosti za \"prazno\" dopolnitev ukaza\n"
+" \n"
+" Uporaba `+o' namesto `-o' izklopi navedeno možnost.\n"
+" \n"
+" Argumenti:\n"
+" \n"
+" Vsako IME se nanaša na ukaz, za katerega mora že predhodno biti\n"
+" doloÄeno doloÄilo dopolnjevanja z uporabo vgrajene lupine `complete'.\n"
+" Če ni predloženih IMEN, mora compopt biti klican s strani funkcije, \n"
+" ki trenutno ustvarja dopolnjevanja in možnosti za tega trenutno \n"
+" izvajajoÄega ustvarjalnika dopolnjevanj se bodo spremenile.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je predložena neveljavna možnost ali pa IME\n"
+" nima doloÄenega doloÄila dopolnjevanja."
+
+#: builtins.c:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+"Prebere vrstice s standardnega vnosa v spremenljivko zabeleženega polja.\n"
+" \n"
+" Prebere vrstice iz standardnega vnosa v spremenljivko zabeleženega "
+"polja \n"
+" POLJE ali iz opisnika datotek FD, Äe je predložena možnost -u.\n"
+" Spremenljivka MAPFILE je privzeto POLJE.\n"
+" \n"
+" Možnosti:\n"
+" -n Å¡tevec\tKopiraj najveÄ vrstic Å TEVCA. ÄŒe je Å TEVEC 0, se kopirajo\n"
+" \tvse vrstice.\n"
+" -O izvor\tZaÄni dodeljevati POLJU pri kazalu IZVOR. Privzeto kazalo je "
+"0.\n"
+" -s Å¡tevec \tZavrzi prve prebrane vrstice Å TEVCA.\n"
+" -t\t\tIz vsake prebrane vrstice odstrani vmesno novo vrstico.\n"
+" -u fd\t\tBeri vrstice iz opisnika datotek FD namesto standardnega\n"
+" \tvnosa.\n"
+" -C povratni_klic\tOvrednoti POVRATNI_KLIC vsakiÄ, ko so prebrane\n"
+" \tvrstice DELOV.\n"
+" -c del\tNavedi Å¡tevilo vrstic, prebranih med vsakim klicem\n"
+" \tPOVRATNEGA_KLICA.\n"
+" \n"
+" Argumenti:\n"
+" POLJE\t\tIme spremenljivke polja za uporabo za podatke datotek\n"
+" \n"
+" Če je -C predložen brez -c, je privzet del 5000. Ko je POVRATNI_KLIC\n"
+" ovrednoten, je predloženo kazalo naslednjega predmeta polja, ki bo\n"
+" dodeljen in vrstica, ki bo dodeljena temu predmetu kot dodatni\n"
+" argumenti.\n"
+" \n"
+" ÄŒe ni predloženo z izrecnim izvorom, bo mapfile poÄistil POLJE, preden\n"
+" ji bo dodeljen.\n"
+" \n"
+" Stanje konÄanja:\n"
+" Vrne uspeÅ¡no, razen Äe je dana neveljavna možnost oz. je POLJE samo\n"
+" za branje ali pa ni zabeleženo polje."
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Prebere vrstice iz datoteke v spremenljivko polja.\n"
+" \n"
+" Je sopomenka za `mapfile'."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Avtorske pravice (C) 2009 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Dovoljenje GPLv2+: GNU GPL razliÄica 2 ali kasnejÅ¡e <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
new file mode 100644
index 00000000..5e4dcd53
--- /dev/null
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 00000000..f7275fb5
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,5661 @@
+# Serbian translation for bash.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: bash-4.3-rc2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-11 10:22+0200\n"
+"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <(nothing)>\n"
+"Language: Serbian (sr)\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%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: arrayfunc.c:51
+msgid "bad array subscript"
+msgstr "лош Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ð·Ð°"
+
+#: arrayfunc.c:356 builtins/declare.def:566
+#, c-format
+msgid "%s: cannot convert indexed to associative array"
+msgstr "%s: не могу да претворим попиÑани низ у придружив"
+
+#: arrayfunc.c:539
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: неиÑправан кључ придруживог низа"
+
+#: arrayfunc.c:541
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: не могу да доделим у не-бројевни попиÑ"
+
+#: arrayfunc.c:586
+#, c-format
+msgid "%s: %s: must use subscript when assigning associative array"
+msgstr "%s: %s: мора кориÑтити Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ñ€Ð¸Ð»Ð¸ÐºÐ¾Ð¼ додељивања придруживог низа"
+
+#: bashhist.c:388
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: не могу да направим: %s"
+
+#: bashline.c:3982
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "баш_изврши_јуникÑ_наредбу: не могу да нађем мапу кључа за наредбу"
+
+#: bashline.c:4069
+#, c-format
+msgid "%s: first non-whitespace character is not `\"'"
+msgstr "%s: први не-празан знак није \""
+
+#: bashline.c:4098
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "нема затварајућег „%c“ у %s"
+
+#: bashline.c:4132
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: недоÑтаје раздвојник двотачке"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "ширење заграде: не могу да доделим меморију за „%s“"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "ширење заграде: ниÑам уÑпео да доделим меморију за %d елемента"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "ширење заграде: ниÑам уÑпео да доделим меморију за „%s“"
+
+#: builtins/alias.def:132
+#, c-format
+msgid "`%s': invalid alias name"
+msgstr "„%s“: неиÑправан назив алијаÑа"
+
+#: builtins/bind.def:123 builtins/bind.def:126
+msgid "line editing not enabled"
+msgstr "уређивање реда није укључено"
+
+#: builtins/bind.def:212
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "„%s“: неиÑправан назив мапе кључа"
+
+#: builtins/bind.def:251
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: не могу да читам: %s"
+
+#: builtins/bind.def:266
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "„%s“: не могу да развежем"
+
+#: builtins/bind.def:304 builtins/bind.def:334
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "„%s“: непознат назив функције"
+
+#: builtins/bind.def:312
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "„%s“ није привезано ни за један кључ.\n"
+
+#: builtins/bind.def:316
+#, 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:134
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"%s%cИÑпиÑује контекÑÑ‚ текућег позива подрутине.\n"
+"\n"
+" Без „EXPR“, иÑпиÑује"
+
+#: builtins/cd.def:319
+msgid "HOME not set"
+msgstr "„HOME“ није подешено"
+
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "превише аргумената"
+
+#: builtins/cd.def:338
+msgid "OLDPWD not set"
+msgstr "„OLDPWD“ није подешено"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "%d. ред:"
+
+#: builtins/common.c:139 error.c:265
+#, c-format
+msgid "warning: "
+msgstr "упозорење:"
+
+#: builtins/common.c:153
+#, c-format
+msgid "%s: usage: "
+msgstr "%s: употреба:"
+
+#: builtins/common.c:191 shell.c:506 shell.c:788
+#, 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:801
+#, 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:235 general.c:240
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "„%s“: није иÑправан одредник"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "неиÑправан октални број"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "неиÑправан хекÑадецимални број"
+
+#: builtins/common.c:242 expr.c:1470
+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:488
+#, 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:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "грешка подешавања оÑобина терминала: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "грешка добављања оÑобина терминала: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: грешка довлачења текућег директоријума: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: нејаÑна одредба поÑла"
+
+#: builtins/complete.def:277
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: неиÑправан назив радње"
+
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: нема одредбе довршавања"
+
+#: builtins/complete.def:697
+msgid "warning: -F option may not work as you expect"
+msgstr "упозорење: опција „-F“ можда неће радити како Ñте очекивали"
+
+#: builtins/complete.def:699
+msgid "warning: -C option may not work as you expect"
+msgstr "упозорење: опција „-C“ можда неће радити како Ñте очекивали"
+
+#: builtins/complete.def:828
+msgid "not currently executing completion function"
+msgstr "тренутно не обавља функцију довршавања"
+
+#: builtins/declare.def:126
+msgid "can only be used in a function"
+msgstr "може бити коришћено једино у функцији"
+
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: променљива упуте не може бити низ"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: Ñамоупућивање променљиве упуте назива није дозвољено"
+
+#: builtins/declare.def:398
+msgid "cannot use `-f' to make functions"
+msgstr "не можете кориÑтити „-f“ да направите функције"
+
+#: builtins/declare.def:410 execute_cmd.c:5361
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: функција Ñамо за читање"
+
+#: builtins/declare.def:553
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: не могу да уништим променљиве низа на овај начин"
+
+#: builtins/declare.def:560 builtins/read.def:733
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: не могу да претворим придруживи низ у попиÑани"
+
+#: 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:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: је директоријум"
+
+#: builtins/evalfile.c:146
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: није обична датотека"
+
+#: builtins/evalfile.c:155
+#, c-format
+msgid "%s: file is too large"
+msgstr "%s: датотека је превелика"
+
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: не могу да извршим бинарну датотеку"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: не могу да извршим: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "одјави\n"
+
+#: 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
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Има покренутих поÑлова.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "нема такве наредбе"
+
+#: builtins/fc.def:320 builtins/fc.def:369
+msgid "history specification"
+msgstr "одредба иÑторијата"
+
+#: builtins/fc.def:390
+#, 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:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "покреће\tнаредбу\n"
+
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Ðаредбе шкољке које одговарају кључној речи `"
+msgstr[1] "Ðаредбе шкољке које одговарају кључним речима `"
+msgstr[2] "Ðаредбе шкољке које одговарају кључним речима `"
+
+#: builtins/help.def:182
+#, c-format
+msgid ""
+"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"нема тема помоћи које одговарају „%s“. Покушајте „help help“ или „man -k "
+"%s“ или „info %s“."
+
+#: builtins/help.def:199
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: не могу да отворим: %s"
+
+#: builtins/help.def:485
+#, 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 ""
+"Ове наредбе шкољке Ñу одређене изнутра. Укуцајте „help“ за овај ÑпиÑак.\n"
+"Укуцајте „help name“ да Ñазнате више о функцији „name“.\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:366
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: није уÑпело ширење иÑторијата"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: није уÑпело „inlib“"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "ниÑу допуштене друге опције уз „-x“"
+
+#: builtins/kill.def:200
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: аргументи морају бити процеÑи или ИБ-ови поÑла"
+
+#: builtins/kill.def:263
+msgid "Unknown error"
+msgstr "Ðепозната грешка"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
+msgid "expression expected"
+msgstr "очекиван је израз"
+
+#: builtins/mapfile.def:172
+#, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: није попиÑани низ"
+
+#: builtins/mapfile.def:259 builtins/read.def:302
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: неиÑправна одредба опиÑника датотеке"
+
+#: builtins/mapfile.def:267 builtins/read.def:309
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: неиÑправан опиÑник датотеке: %s"
+
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: неиÑправан број реда"
+
+#: builtins/mapfile.def:287
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: неиÑправно порекло низа"
+
+#: builtins/mapfile.def:304
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: неиÑправна количина опозива"
+
+#: builtins/mapfile.def:336
+msgid "empty array variable name"
+msgstr "празан назив променљиве низа"
+
+#: builtins/mapfile.def:357
+msgid "array variable support required"
+msgstr "потребна је подршка променљиве низа"
+
+#: builtins/printf.def:402
+#, c-format
+msgid "`%s': missing format character"
+msgstr "„%s“: недоÑтаје знак запиÑа"
+
+#: builtins/printf.def:456
+#, c-format
+msgid "`%c': invalid time format specification"
+msgstr "„%c“: неиÑправна одредба запиÑа времена"
+
+#: builtins/printf.def:658
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "„%c“: неиÑправан знак запиÑа"
+
+#: builtins/printf.def:684
+#, c-format
+msgid "warning: %s: %s"
+msgstr "упозорење: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "проблем обраде запиÑа: %s"
+
+#: builtins/printf.def:865
+msgid "missing hex digit for \\x"
+msgstr "недоÑтаје хекÑадецимална цифра за \\x"
+
+#: builtins/printf.def:880
+#, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "недоÑтаје цифра уникода за \\%c"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "нема другог директоријума"
+
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: неиÑправан аргумент"
+
+#: builtins/pushd.def:468
+msgid "<no current directory>"
+msgstr "<нема текућег директоријума>"
+
+#: builtins/pushd.def:512
+msgid "directory stack empty"
+msgstr "празан Ñпремник директоријума"
+
+#: builtins/pushd.def:514
+msgid "directory stack index"
+msgstr "Ð¿Ð¾Ð¿Ð¸Ñ Ñпремника директоријума"
+
+#: builtins/pushd.def:689
+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"
+" Опције:\n"
+" -c\tчиÑти Ñпремник директоријума бриÑањем Ñвих елемената\n"
+" -l\tне иÑпиÑује тилдом префикÑована издања директоријума\n"
+" \t који Ñе одноÑе на ваш лични директоријум\n"
+" -p\tиÑпиÑује Ñпремник директоријума Ñа једним уноÑом у реду\n"
+" -v\tиÑпиÑује Ñпремник директоријума Ñа једним уноÑом у реду\n"
+" \t Ñа префикÑом његовог положаја у Ñпремнику\n"
+" \n"
+" Ðргументи:\n"
+" +N\tПриказује н-ти ÑƒÐ½Ð¾Ñ Ð±Ñ€Ð¾Ñ˜ÐµÑ›Ð¸ Ñ Ð»ÐµÐ²Ð° на ÑпиÑку приказаном\n"
+" \t директоријумима када Ñе призову опцијама, почевши од нуле.\n"
+" \n"
+" -N\tПриказује н-ти ÑƒÐ½Ð¾Ñ Ð¿Ð¾Ñ‡ÐµÐ²ÑˆÐ¸ Ñ Ð´ÐµÑна на ÑпиÑку приказаном\n"
+"\t директоријумима када Ñе призову без опција, почевши од нуле."
+
+#: builtins/pushd.def:711
+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\tПотиÑкује нормалну замену директоријума приликом додавања\n"
+" \t директоријума у Ñпремник, тако да Ñе ради Ñамо Ñа Ñпремником.\n"
+" \n"
+" Ðргументи:\n"
+" +N\tЗаокреће Ñпремник тако да н-ти директоријум (бројећи\n"
+" \t Ñ Ð»ÐµÐ²Ð° на ÑпиÑку кога приказује „dirs“, почевши нулом)\n"
+" \t буде на врху.\n"
+" \n"
+" -N\tЗаокреће Ñпремник тако да н-ти директоријум (бројећи\n"
+" \t Ñ Ð´ÐµÑна на ÑпиÑку кога приказује „dirs“, почевши нулом)\n"
+" \t буде на врху.\n"
+" \n"
+" dir\tДодаје ДИРЕКТОРИЈУМ у Ñпремник директоријума на врху,\n"
+" начинивши га новим текућим радним директоријумом.\n"
+" \n"
+" Уграђено „dirs“ приказује Ñпремник директоријума."
+
+#: builtins/pushd.def:736
+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\tПотиÑкује нормалну замену директоријума приликом уклањања\n"
+" \t директоријума из Ñпремника, тако да Ñе ради Ñамо Ñа "
+"Ñпремником.\n"
+" \n"
+" Ðргументи:\n"
+" +N\tУклања н-ти ÑƒÐ½Ð¾Ñ Ð±Ñ€Ð¾Ñ˜ÐµÑ›Ð¸ Ñ Ð»ÐµÐ²Ð° на ÑпиÑку кога приказује\n"
+" \t „dirs“, почевши од нуле. Ðа пример: „popd +0“ уклања\n"
+" \t први директоријум, „popd +1“ други.\n"
+" \n"
+" -N\tУклања н-ти ÑƒÐ½Ð¾Ñ Ð±Ñ€Ð¾Ñ˜ÐµÑ›Ð¸ Ñ Ð´ÐµÑна на ÑпиÑку кога приказује\n"
+" \t „dirs“, почевши од нуле. Ðа пример: „popd -0“ уклања\n"
+" \t поÑледњи директоријум, „popd -1“ претпоÑледњи.\n"
+" \n"
+" Уграђено „dirs“ приказује Ñпремник директоријума."
+
+#: builtins/read.def:275
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: неиÑправна одредба временÑког иÑтека"
+
+#: builtins/read.def:678
+#, c-format
+msgid "read error: %d: %s"
+msgstr "грешка читања: %d: %s"
+
+#: builtins/return.def:75
+msgid "can only `return' from a function or sourced script"
+msgstr "могу једино да „иÑпишем“ из функције или изворног ÑпиÑа"
+
+#: builtins/set.def:782
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "не могу иÑтовремено да раÑподеÑим функцију и променљиву"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: не могу да раÑподеÑим"
+
+#: builtins/set.def:843
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: не могу да раÑподеÑим: „%s“ је Ñамо за читање"
+
+#: builtins/set.def:854
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: није променљива низа"
+
+#: builtins/setattr.def:187
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: није функција"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "број помака"
+
+#: builtins/shopt.def:279
+msgid "cannot set and unset shell options simultaneously"
+msgstr "не могу иÑтовремено да подеÑим и да раÑподеÑим опције шкољке"
+
+#: builtins/shopt.def:346
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: неиÑправан назив опције шкољке"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "потребан је аргумент назива датотеке"
+
+#: builtins/source.def:155
+#, 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:393
+#, 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:383
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: неиÑправан аргумент ограничења"
+
+#: builtins/ulimit.def:409
+#, c-format
+msgid "`%c': bad command"
+msgstr "„%c“: лоша наредба"
+
+#: builtins/ulimit.def:438
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: не могу да добавим ограничење: %s"
+
+#: builtins/ulimit.def:464
+msgid "limit"
+msgstr "ограничење"
+
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: не могу да изменим ограничење: %s"
+
+#: builtins/umask.def:114
+msgid "octal number"
+msgstr "октални број"
+
+#: builtins/umask.def:227
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "„%c“: неиÑправан оператер Ñимболичког режима"
+
+#: builtins/umask.def:282
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "„%c“: неиÑправан знак Ñимболичког режима"
+
+#: error.c:90 error.c:325 error.c:327 error.c:329
+msgid " line "
+msgstr " ред "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "поÑледња наредба: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Прекидам..."
+
+#: error.c:440
+msgid "unknown command error"
+msgstr "непозната грешка наредбе"
+
+#: error.c:441
+msgid "bad command type"
+msgstr "лоша врÑта наредбе"
+
+#: error.c:442
+msgid "bad connector"
+msgstr "лош Ñпајач"
+
+#: error.c:443
+msgid "bad jump"
+msgstr "лош Ñкок"
+
+#: error.c:481
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: неÑвезана променљива"
+
+#: eval.c:189
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\\aиÑтекло је време чекајући на улаз: ÑамоÑтално Ñе одјављујем\n"
+
+#: execute_cmd.c:512
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "не могу да преуÑмерим Ñтандардни улаз из „/dev/null:“: %s"
+
+#: execute_cmd.c:1233
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "ЗÐПИСВРЕМЕÐÐ: „%c“: неиÑправан знак запиÑа"
+
+#: execute_cmd.c:2287
+msgid "pipe error"
+msgstr "грешка Ñпојке"
+
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: премашен је највећи ниво угнежђивања функције (%d)"
+
+#: execute_cmd.c:4884
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: ограничено: не могу да наведем / у називима наредби"
+
+#: execute_cmd.c:4973
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: нема такве наредбе"
+
+#: execute_cmd.c:5206
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: execute_cmd.c:5243
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: лош тумач"
+
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: не могу да извршим бинарну датотеку: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "„%s“: јеÑте поÑебна уграђеноÑÑ‚"
+
+#: execute_cmd.c:5404
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "не могу да удвоÑтручим „fd %d“ у „fd %d“"
+
+#: expr.c:259
+msgid "expression recursion level exceeded"
+msgstr "премашен је ниво дубачења израза"
+
+#: expr.c:283
+msgid "recursion stack underflow"
+msgstr "недоток Ñпремника дубачења"
+
+#: expr.c:431
+msgid "syntax error in expression"
+msgstr "Ñадржајна грешка у изразу"
+
+#: expr.c:475
+msgid "attempted assignment to non-variable"
+msgstr "покушано је додељивање у не-променљиву"
+
+#: expr.c:495 expr.c:858
+msgid "division by 0"
+msgstr "дељење 0"
+
+#: expr.c:542
+msgid "bug: bad expassign token"
+msgstr "грешка: лош Ñимбол доделе израза"
+
+#: expr.c:595
+msgid "`:' expected for conditional expression"
+msgstr "„:“ је очекивано за уÑловни израз"
+
+#: expr.c:919
+msgid "exponent less than 0"
+msgstr "изложилац је мањи од 0"
+
+#: expr.c:976
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "одредник је очекиван након пре-увећања или пре-умањења"
+
+#: expr.c:1002
+msgid "missing `)'"
+msgstr "недоÑтаје )"
+
+#: expr.c:1053 expr.c:1390
+msgid "syntax error: operand expected"
+msgstr "Ñадржајна грешка: очекиван је операнд"
+
+#: expr.c:1392
+msgid "syntax error: invalid arithmetic operator"
+msgstr "Ñадржајна грешка: неиÑправан аритметички оператор"
+
+#: expr.c:1416
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (Ñимбол грешке је „%s“)"
+
+#: expr.c:1474
+msgid "invalid arithmetic base"
+msgstr "неиÑправна аритметичка оÑнова"
+
+#: expr.c:1494
+msgid "value too great for base"
+msgstr "вредноÑÑ‚ је превише велика за оÑнову"
+
+#: expr.c:1543
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: грешка израза\n"
+
+#: general.c:62
+msgid "getcwd: cannot access parent directories"
+msgstr "getcwd: не могу да приÑтупим родитељÑком директоријуму"
+
+#: input.c:102 subst.c:5168
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "не могу да поништим режим без-кашњења за фд „%d“"
+
+#: input.c:271
+#, c-format
+msgid "cannot allocate new file descriptor for bash input from fd %d"
+msgstr "не могу да доделим нови опиÑник датотеке за улаз баша из фд „%d“"
+
+#: input.c:279
+#, c-format
+msgid "save_bash_input: buffer already exists for new fd %d"
+msgstr "save_bash_input: већ поÑтоји међумеморија за нови фд „%d“"
+
+#: jobs.c:471
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: „pgrp“ Ñпојка"
+
+#: jobs.c:893
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "иÑцепљени пиб „%d“ Ñе јавља у покренутом поÑлу „%d“"
+
+#: jobs.c:1012
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "бришем зауÑтављени поÑао „%d“ Ñа групом процеÑа %ld"
+
+#: jobs.c:1117
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: Ð¿Ñ€Ð¾Ñ†ÐµÑ %5ld (%s) у Ñпојном_реду"
+
+#: jobs.c:1120
+#, c-format
+msgid "add_process: pid %5ld (%s) marked as still alive"
+msgstr "add_process: пиб %5ld (%s) је означен да је још жив"
+
+#: jobs.c:1435
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: нема таквог пиб-а"
+
+#: jobs.c:1450
+#, c-format
+msgid "Signal %d"
+msgstr "Сигнал %d"
+
+#: jobs.c:1464 jobs.c:1489
+msgid "Done"
+msgstr "Урађен"
+
+#: jobs.c:1469 siglist.c:123
+msgid "Stopped"
+msgstr "ЗауÑтављен"
+
+#: jobs.c:1473
+#, c-format
+msgid "Stopped(%s)"
+msgstr "ЗауÑтављен(%s)"
+
+#: jobs.c:1477
+msgid "Running"
+msgstr "Покренут"
+
+#: jobs.c:1491
+#, c-format
+msgid "Done(%d)"
+msgstr "Урађен(%d)"
+
+#: jobs.c:1493
+#, c-format
+msgid "Exit %d"
+msgstr "Изађи из „%d“"
+
+#: jobs.c:1496
+msgid "Unknown status"
+msgstr "Ðепознато Ñтање"
+
+#: jobs.c:1583
+#, c-format
+msgid "(core dumped) "
+msgstr "(језгрени избачај)"
+
+#: jobs.c:1602
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1819
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "Ñетпгиб порода (%ld у %ld)"
+
+#: jobs.c:2138 nojobs.c:605
+#, c-format
+msgid "wait: pid %ld is not a child of this shell"
+msgstr "wait: пиб %ld није пород ове шкољке"
+
+#: jobs.c:2385
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Ðема запиÑа о процеÑу %ld"
+
+#: jobs.c:2694
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: поÑао „%d“ је зауÑтављен"
+
+#: jobs.c:2986
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: поÑао је завршио"
+
+#: jobs.c:2995
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: поÑао „%dд је већ у позадини"
+
+#: jobs.c:3220
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr "waitchld: укључујем „WNOHANG“ да избегнем неодређени блок"
+
+#: jobs.c:3711
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: ред %d:"
+
+#: jobs.c:3725 nojobs.c:843
+#, c-format
+msgid " (core dumped)"
+msgstr " (језгрени избачај)"
+
+#: jobs.c:3737 jobs.c:3750
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(„wd“ Ñада: %s)\n"
+
+#: jobs.c:3782
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: није уÑпело „getpgrp“"
+
+#: jobs.c:3843
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: диÑциплина реда"
+
+#: jobs.c:3853
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3874 jobs.c:3883
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "не могу да подеÑим групу процеÑа терминала (%d)"
+
+#: jobs.c:3888
+msgid "no job control in this shell"
+msgstr "нема управљања поÑлом у овој шкољци"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: тврдња није уÑпела: %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: тврдња је лоше изведена\r\n"
+
+#: lib/malloc/malloc.c:313
+msgid "unknown"
+msgstr "непознато"
+
+#: lib/malloc/malloc.c:801
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: блок на Ñлободном ÑпиÑку је препиÑан"
+
+#: lib/malloc/malloc.c:878
+msgid "free: called with already freed block argument"
+msgstr "free: позвана Ñа већ оÑлобођеним аргументом блока"
+
+#: lib/malloc/malloc.c:881
+msgid "free: called with unallocated block argument"
+msgstr "free: позвана Ñа недодељеним аргументом блока"
+
+#: lib/malloc/malloc.c:900
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: откривена је недовољноÑÑ‚ тока; mh_n-бајтова је ван опÑега"
+
+#: lib/malloc/malloc.c:906
+msgid "free: start and end chunk sizes differ"
+msgstr "free: почетна и крајња величина дела Ñе разликују"
+
+#: lib/malloc/malloc.c:1005
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: позвана Ñа недодељеним аргументом блока"
+
+#: lib/malloc/malloc.c:1020
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: откривена је недовољноÑÑ‚ тока; mh_n-бајтова је ван опÑега"
+
+#: lib/malloc/malloc.c:1026
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: почетна и крајња величина дела Ñе разликују"
+
+#: lib/malloc/table.c:194
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: табела доделе је пуна Ñа „FIND_ALLOC“?\n"
+
+#: lib/malloc/table.c:203
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: „%p“ је већ у табели као додељено?\n"
+
+#: lib/malloc/table.c:256
+#, c-format
+msgid "register_free: %p already in table as free?\n"
+msgstr "register_free: „%p“ је већ у табели као Ñлободно?\n"
+
+#: lib/sh/fmtulong.c:102
+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 "радње мреже ниÑу подржане"
+
+#: locale.c:200
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr "setlocale: LC_ALL: не могу да изменим језик (%s)"
+
+#: locale.c:202
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr "setlocale: LC_ALL: не могу да изменим језик (%s): %s"
+
+#: locale.c:259
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "setlocale: %s: не могу да изменим језик (%s)"
+
+#: locale.c:261
+#, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "setlocale: %s: не могу да изменим језик (%s): %s"
+
+#: mailcheck.c:439
+msgid "You have mail in $_"
+msgstr "Имате пошту у $_"
+
+#: mailcheck.c:464
+msgid "You have new mail in $_"
+msgstr "Имате нову пошту у $_"
+
+#: mailcheck.c:480
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "Пошта у „%s“ је прочитана\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "Ñадржајна грешка: потребан је аритметички израз"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "Ñадржајна грешка: није очекивано „;“"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "Ñадржајна грешка: „((%s))“"
+
+#: make_cmd.c:578
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: лоша врÑта упутÑтва „%d“"
+
+#: make_cmd.c:662
+#, c-format
+msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
+msgstr "овде-документ у %d. реду је ограничен крајем-датотеке (тражи Ñе „%s“)"
+
+#: make_cmd.c:759
+#, c-format
+msgid "make_redirection: redirection instruction `%d' out of range"
+msgstr "make_redirection: упутÑво преуÑмерења „%d“ је ван опÑега"
+
+#: parse.y:3278 parse.y:3561
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "неочекивани крај датотеке приликом тражења поклапања „%c“"
+
+#: parse.y:4170
+msgid "unexpected EOF while looking for `]]'"
+msgstr "неочекивани крај датотеке приликом тражења „]]“"
+
+#: parse.y:4175
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "Ñадржајна грешка у уÑловном изразу: неочекивани Ñимбол „%s“"
+
+#: parse.y:4179
+msgid "syntax error in conditional expression"
+msgstr "Ñадржајна грешка у уÑловном изразу"
+
+#: parse.y:4257
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "неочекивани Ñимбол „%s“, очекивана је )"
+
+#: parse.y:4261
+msgid "expected `)'"
+msgstr "очекивана је )"
+
+#: parse.y:4289
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "неочекивани аргумент „%s“ уÑловном једночланом оператору"
+
+#: parse.y:4293
+msgid "unexpected argument to conditional unary operator"
+msgstr "неочекивани аргумент уÑловном једночланом оператору"
+
+#: parse.y:4339
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "неочекивани Ñимбол „%s“, очекиван је уÑловни двочлани оператор"
+
+#: parse.y:4343
+msgid "conditional binary operator expected"
+msgstr "очекиван је уÑловни двочлани оператор"
+
+#: parse.y:4365
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "неочекивани аргумент „%s“ уÑловном двочланом оператору"
+
+#: parse.y:4369
+msgid "unexpected argument to conditional binary operator"
+msgstr "неочекивани аргумент уÑловном двочланом оператору"
+
+#: parse.y:4380
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "неочекивани Ñимбол „%c“ у уÑловној наредби"
+
+#: parse.y:4383
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "неочекивани Ñимбол „%s“ у уÑловној наредби"
+
+#: parse.y:4387
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "неочекивани Ñимбол „%d“ у уÑловној наредби"
+
+#: parse.y:5737
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "Ñадржајна грешка близу неочекиваног Ñимбола „%s“"
+
+#: parse.y:5755
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "Ñадржајна грешка близу „%s“"
+
+#: parse.y:5765
+msgid "syntax error: unexpected end of file"
+msgstr "Ñадржајна грешка: неочекивани крај датотеке"
+
+#: parse.y:5765
+msgid "syntax error"
+msgstr "Ñадржајна грешка"
+
+#: parse.y:5827
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "КориÑтите „%s“ да напуÑтите шкољку.\n"
+
+#: parse.y:5989
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "неочекивани крај датотеке приликом тражења поклапајуће )"
+
+#: pcomplete.c:1094
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "довршавање: ниÑам нашао функцију „%s“"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: ÐИШТÐÐ’ÐРОДРЕДБÐ_ДОВРШÐÐ’ÐЊÐ"
+
+#: print_cmd.c:300
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: лош Ñпајач „%d“"
+
+#: print_cmd.c:373
+#, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "xtrace_set: %d: неиÑправан опиÑник датотеке"
+
+#: print_cmd.c:378
+msgid "xtrace_set: NULL file pointer"
+msgstr "xtrace_set: ÐИШТÐÐ’ÐРуказивач датотеке"
+
+#: print_cmd.c:382
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
+
+#: print_cmd.c:1518
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: „%c“: неиÑправан знак запиÑа"
+
+#: redir.c:123 redir.c:170
+msgid "file descriptor out of range"
+msgstr "опиÑник датотеке је ван опÑега"
+
+#: redir.c:177
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: нејаÑно преуÑмерење"
+
+#: redir.c:181
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: не могу да препишем поÑтојећу датотеку"
+
+#: redir.c:186
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: ограничено: не могу да преуÑмерим излаз"
+
+#: redir.c:191
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "не могу да направим привремену датотеку за документ-овде: %s"
+
+#: redir.c:195
+#, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: не могу да доделим фд променљивој"
+
+#: redir.c:582
+msgid "/dev/(tcp|udp)/host/port not supported without networking"
+msgstr "„/dev/(tcp|udp)/домаћин/прикључник“ није подржано без умрежавања"
+
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
+msgid "redirection error: cannot duplicate fd"
+msgstr "грешка преуÑмерења: не могу да удвоÑтручим фд"
+
+#: shell.c:339
+msgid "could not find /tmp, please create!"
+msgstr "не могу да нађем „/tmp“, направите га!"
+
+#: shell.c:343
+msgid "/tmp must be a valid directory name"
+msgstr "„/tmp“ мора бити иÑправан назив директоријума"
+
+#: shell.c:890
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: неиÑправна опција"
+
+#: shell.c:1682
+msgid "I have no name!"
+msgstr "Ðемам назив!"
+
+#: shell.c:1827
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "Гну баш, издање %s-(%s)\n"
+
+#: shell.c:1828
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Употреба:\t%s [Гнуова дуга опција] [опција] ...\n"
+" \t%s [Гнуова дуга опција] [опција] датотека-ÑпиÑа ...\n"
+
+#: shell.c:1830
+msgid "GNU long options:\n"
+msgstr "Гнуове дуге опције:\n"
+
+#: shell.c:1834
+msgid "Shell options:\n"
+msgstr "Опције шкољке:\n"
+
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t„-ilrsD“ или наредба „-c“ или -O шопц_опција\t\t(призивање Ñамо)\n"
+
+#: shell.c:1850
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\t„-%s“ или опција „-o“\n"
+
+#: shell.c:1856
+#, c-format
+msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
+msgstr "Укуцајте „%s -c \"help set\"“ за више података о опцијама шкољке.\n"
+
+#: shell.c:1857
+#, c-format
+msgid "Type `%s -c help' for more information about shell builtin commands.\n"
+msgstr "Укуцајте „%s -c help“ за више података о уграђеним наредбама шкољке.\n"
+
+#: shell.c:1858
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "КориÑтите наредбу „bashbug“ да извеÑтите о грешкама.\n"
+
+#: sig.c:691
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: неиÑправна операција"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Ðетачан Ñигнал"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "ОбуÑтави"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Прекини"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Изађи"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "ÐеиÑправна инÑтрукција"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "Прати/ухвати БПТ"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "ИнÑтрукција „ABORT“"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "ИнÑтрукција „EMT“"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Изузетак покретног зареза"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Убијен"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Грешка Ñабирнице"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "ÐеуÑпех Ñегментације"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Лош ÑиÑтемÑки позив"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Сломљена Ñпојка"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Ðларм"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Окончано"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Хитан УИ уÑлов"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "ЗауÑтављен (Ñигнал)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "ÐаÑтави"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Пород је преминуо или зауÑтављен"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "ЗауÑтављен (улаз конзоле)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "ЗауÑтављен (излаз конзоле)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "Спреман на У/И"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "Ограничење процеÑора"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "Ограничење датотеке"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Ðларм (виртуелни)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Ðларм (профил)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Промењени прозор"
+
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Закључавање Ñнимка"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "КориÑнички Ñигнал 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "КориÑнички Ñигнал 2"
+
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "Улазни ХФТ подаци на чекању"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "неизбежан пад напајања"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "неизбежан пад ÑиÑтема"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "пребацује Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð° други процеÑор"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "грешка програмирања"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "ОÑигуран је режим ХФТ праћења"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "Понови је иÑпраћен режим ХФТ праћења"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "Ðиз ХФТ звука је завршен"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Захтев за подацима"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Ðепознат Ñигнал #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Ðепознат Ñигнал #%d"
+
+#: subst.c:1362 subst.c:1520
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "лоша замена: нема затварајуће „%s“ у „%s“"
+
+#: subst.c:2847
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: не могу да доделим ÑпиÑак члану низа"
+
+#: subst.c:5065 subst.c:5081
+msgid "cannot make pipe for process substitution"
+msgstr "не могу да начиним Ñпојку за замену процеÑа"
+
+#: subst.c:5113
+msgid "cannot make child for process substitution"
+msgstr "не могу да начиним пород за замену процеÑа"
+
+#: subst.c:5158
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "не могу да отворим именовану Ñпојку „%s“ за читање"
+
+#: subst.c:5160
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "не могу да отворим именовану Ñпојку „%s“ за пиÑање"
+
+#: subst.c:5178
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "не могу да удвоÑтручим именовану Ñпојку „%s“ као фд %d"
+
+#: subst.c:5376
+msgid "cannot make pipe for command substitution"
+msgstr "не могу да начиним Ñпојку за замену наредбе"
+
+#: subst.c:5414
+msgid "cannot make child for command substitution"
+msgstr "не могу да начиним пород за замену наредбе"
+
+#: subst.c:5433
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: не могу да удвоÑтручим Ñпојку као фд 1"
+
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: неиÑправан назив променљиве за упуту назива"
+
+#: subst.c:6048
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: параметар је ништаван или није подешен"
+
+#: subst.c:6320 subst.c:6335
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: израз подниÑке < 0"
+
+#: subst.c:7506
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: лоша замена"
+
+#: subst.c:7583
+#, c-format
+msgid "$%s: cannot assign in this way"
+msgstr "$%s: не могу дадоделим на овај начин"
+
+#: subst.c:7917
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr "будућа издања шкољке ће приморати процену као аритметичку замену"
+
+#: subst.c:8421
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "лоша замена: нема затварајућег „`“ у „%s“"
+
+#: subst.c:9322
+#, c-format
+msgid "no match: %s"
+msgstr "нема поклапања: %s"
+
+#: test.c:147
+msgid "argument expected"
+msgstr "очекиван је аргумент"
+
+#: test.c:156
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: очекиван је израз целог броја"
+
+#: test.c:264
+msgid "`)' expected"
+msgstr "очекивана је )"
+
+#: test.c:266
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "очекивана је ), а пронађена %s"
+
+#: test.c:281 test.c:742 test.c:745
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: очекиван је једночлани оператор"
+
+#: test.c:468 test.c:785
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: очекиван је двочлани оператор"
+
+#: test.c:860
+msgid "missing `]'"
+msgstr "недоÑтаје ]"
+
+#: trap.c:217
+msgid "invalid signal number"
+msgstr "неиÑправан Ñигнални број"
+
+#: trap.c:371
+#, c-format
+msgid "run_pending_traps: bad value in trap_list[%d]: %p"
+msgstr "run_pending_traps: лоша вредноÑÑ‚ у „trap_list[%d]“: %p"
+
+#: trap.c:375
+#, c-format
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: руковалац Ñигналом је „SIG_DFL“, поново шаљем %d (%s) "
+"мени Ñамом"
+
+#: trap.c:428
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: лош Ñигнал %d"
+
+#: variables.c:382
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "грешка увоза одреднице функције за „%s“"
+
+#: variables.c:780
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "ниво шкољке (%d) је превиÑок, поново поÑтављам на 1"
+
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: кружна упута назива"
+
+#: variables.c:2228
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: нема Ñадржаја функције на текућем доÑегу"
+
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: вредноÑти не може бити додељена вредноÑÑ‚"
+
+#: variables.c:3646
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variable: нема Ñадржаја функције на текућем доÑегу"
+
+#: variables.c:3891
+#, c-format
+msgid "%s has null exportstr"
+msgstr "%s има ништавну ниÑку извоза"
+
+#: variables.c:3896 variables.c:3905
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "неиÑправан знак %d у ниÑци извоза за „%s“"
+
+#: variables.c:3911
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "нема = у ниÑци извоза за „%s“"
+
+#: variables.c:4344
+msgid "pop_var_context: head of shell_variables not a function context"
+msgstr "pop_var_context: глава променљивих шкољке није ÑадржајноÑÑ‚ функције"
+
+#: variables.c:4357
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: нема Ñадржаја општих променљивих"
+
+#: variables.c:4431
+msgid "pop_scope: head of shell_variables not a temporary environment scope"
+msgstr "pop_scope: глава променљивих шкољке није привремени доÑег окружења"
+
+#: variables.c:5257
+#, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: %s: не могу да отворим као ДÐТОТЕКУ"
+
+#: variables.c:5262
+#, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%s: %s: неиÑправна вредноÑÑ‚ за опиÑник праћења датотеке"
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: вреднÑот ÑаглаÑноÑти је ван опÑега"
+
+#: version.c:46
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "ÐуторÑка права (C) 2013 Задужбина Ñлободног Ñофтвера, Доо."
+
+#: version.c:47 version2.c:47
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Дозвола ОЈЛи3+: Гнуова ОЈЛ издање 3 или каÑније <http://gnu.org/licenses/gpl."
+"html>\n"
+
+#: version.c:86 version2.c:86
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+msgstr "Гну баш, издање %s (%s)\n"
+
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr ""
+"Ово је Ñлободан Ñофтвер; Ñлободни Ñте да га мењате и да га раÑподељујете."
+
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Ðема ÐИКÐКВЕ ГÐРÐÐЦИЈЕ у оквирима дозвољеним законом."
+
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "ÐуторÑка права (C) 2012 Задужбина Ñлободног Ñофтвера, Доо."
+
+#: xmalloc.c:91
+#, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: не могу да доделим %lu бајта (%lu бајта је додељено)"
+
+#: xmalloc.c:93
+#, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "%s: не могу да доделим %lu бајта"
+
+#: xmalloc.c:163
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "%s: %s:%d: не могу да доделим %lu бајта (%lu бајта је додељено)"
+
+#: xmalloc.c:165
+#, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "%s: %s:%d: не могу да доделим %lu бајта"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [назив[=вредноÑÑ‚] ... ]"
+
+#: builtins.c:47
+msgid "unalias [-a] name [name ...]"
+msgstr "unalias [-a] назив [назив ...]"
+
+#: builtins.c:51
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpsvPSVX] [-m мапа кључа] [-f датотека] [-q назив] [-u назив] [-r низ "
+"кључа] [-x низ кључа:наредба-шкољке] [низ кључа:функција-читањареда или "
+"наредба-читањареда]"
+
+#: 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 [уграђеноÑÑ‚-шкољке [аргумент ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [израз]"
+
+#: builtins.c:64
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [дир]"
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: builtins.c:68
+msgid ":"
+msgstr "%s%c"
+
+#: builtins.c:70
+msgid "true"
+msgstr "true"
+
+#: builtins.c:72
+msgid "false"
+msgstr "%s%c"
+
+#: builtins.c:74
+msgid "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] command [арг ...]"
+
+#: builtins.c:76
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [назив[=вредноÑÑ‚] ...]"
+
+#: builtins.c:78
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] назив[=вредноÑÑ‚] ..."
+
+#: builtins.c:80
+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
+msgid "enable [-a] [-dnps] [-f filename] [name ...]"
+msgstr "enable [-a] [-dnps] [-f датотека] [назив ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [арг ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts ниÑка_опција назив [арг]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a назив] [наредба [аргументи ...]] [преуÑмерење ...]"
+
+#: 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 е-назив] [-lnr] [прво] [поÑледње] или fc -s [пут=реп] [наредба]"
+
+#: builtins.c:107
+msgid "fg [job_spec]"
+msgstr "fg [одредба_поÑла ...]"
+
+#: builtins.c:111
+msgid "bg [job_spec ...]"
+msgstr "bg [одредба_поÑла ...]"
+
+#: builtins.c:114
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p путања] [-dt] [назив ...]"
+
+#: builtins.c:117
+msgid "help [-dms] [pattern ...]"
+msgstr "help [-dms] [шаблон ...]"
+
+#: builtins.c:121
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d померај] [n] или history -anrw [датотека] или history -ps "
+"arg [аргумент...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [одредба_поÑла ...] или jobs -x наредба [аргументи]"
+
+#: builtins.c:129
+msgid "disown [-h] [-ar] [jobspec ...]"
+msgstr "disown [-h] [-ar] [одредба_поÑла ...]"
+
+#: builtins.c:132
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s одредба-Ñигнала | -n бр.Ñигнала | -sigspec] пиб | одредба_поÑла ... "
+"или kill -l [одредба_поÑла]"
+
+#: builtins.c:134
+msgid "let arg [arg ...]"
+msgstr "let arg [аргумент ...]"
+
+#: builtins.c:136
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a низ] [-d ограничи] [-i текÑÑ‚] [-n н-знак] [-N н-знак] [-p "
+"упит] [-t временÑки рок] [-u фд] [назив ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o назив-опције] [--] [арг ...]"
+
+#: builtins.c:142
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [назив ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [назив[=вредноÑÑ‚] ...] или export -p"
+
+#: builtins.c:146
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-aAf] [назив[=вредноÑÑ‚] ...] или readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source датотека [аргументи]"
+
+#: builtins.c:152
+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
+msgid "trap [-lp] [[arg] signal_spec ...]"
+msgstr "trap [-lp] [[арг] одредба_Ñигнала ...]"
+
+#: builtins.c:166
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] назив [назив ...]"
+
+#: builtins.c:169
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [ограничење]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [режим]"
+
+#: builtins.c:175
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [иб ...]"
+
+#: builtins.c:179
+msgid "wait [pid ...]"
+msgstr "wait [пиб ...]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for ÐÐЗИВ [у РЕЧИМР... ] ; do ÐÐРЕДБЕ; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( израз1; израз2; израз3 )); do ÐÐРЕДБЕ; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select ÐÐЗИВ [у РЕЧИМР... ;] do ÐÐРЕДБЕ; done"
+
+#: builtins.c:188
+msgid "time [-p] pipeline"
+msgstr "time [-p] Ñпојни_ред"
+
+#: builtins.c:190
+msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
+msgstr "case РЕЧ у [ШÐБЛОР[| ШÐБЛОÐ]...) ÐÐРЕДБЕ ;;]... 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
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [ÐÐЗИВ] наредба [преуÑмерења]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function name { ÐÐРЕДБЕ ; } или name () { ÐÐРЕДБЕ ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ ÐÐРЕДБЕ ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( израз ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ израз ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variables — Ðазиви и значења неких променљивих шкољке"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | дир]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [називопције ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+msgstr "printf [-v променљива] format [аргументи]"
+
+#: builtins.c:229
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o опција] [-A радња] [-G општапутања] "
+"[-W ÑпиÑакречи] [-F функција] [-C наредба] [-X путањауÑлова] [-P префикÑ] [-"
+"S ÑуфикÑ] [назив ...]"
+
+#: builtins.c:233
+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 опција] [-A радња] [-G општапутања] [-W "
+"ÑпиÑакречи] [-F функција] [-C наредба] [-X путањауÑлова] [-P префикÑ] [-S "
+"ÑуфикÑ] [реч]"
+
+#: builtins.c:237
+msgid "compopt [-o|+o option] [-DE] [name ...]"
+msgstr "compopt [-o|+o опција] [-DE] [назив ...]"
+
+#: builtins.c:240
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n број] [-O порекло] [-s број] [-t] [-u фд] [-C опозив] [-c "
+"количина] [низ]"
+
+#: builtins.c:242
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n број] [-O порекло] [-s број] [-t] [-u фд] [-C опозив] [-c "
+"количина] [низ]"
+
+#: builtins.c:254
+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 ""
+"Одређује или приказује пÑеудониме.\n"
+" \n"
+" Без аргумената, „alias“ иÑпиÑује ÑпиÑак пÑеудонима у поново\n"
+" употрбљивом облику „alias ÐÐЗИВ=ВРЕДÐОСТ“ на Ñтандардном излазу.\n"
+" \n"
+" У Ñупротном, пÑеудоним Ñе одређује за Ñваки ÐÐЗИВ чија ВРЕДÐОСТ је "
+"дата.\n"
+" Претходећи размак у ВРЕДÐОСТИ доводи до тога да Ñледећа реч бива\n"
+" проверена за заменом пÑеудонима када је пÑеудоним раширен.\n"
+" \n"
+" Опције:\n"
+" -p\tИÑпиÑује Ñве одређене пÑеудониме у поново употребљивом облику\n"
+" \n"
+" Излазно Ñтање:\n"
+" „alias“ даје тачноÑÑ‚ оÑим ако је доÑтављен ÐÐЗИВ за који ниједан\n"
+" пÑеудоним није одређен."
+
+#: builtins.c:276
+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"
+" \n"
+" Опције:\n"
+" -a\tуклања Ñве одреднице пÑеудонима.\n"
+" \n"
+" Резултат је уÑпешан оÑим ако ÐÐЗИВ није поÑтојећи пÑеудоним."
+
+#: builtins.c:289
+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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
+" \n"
+" Exit Status:\n"
+" bind returns 0 unless an unrecognized option is given or an error occurs."
+msgstr ""
+"Подешава Ñвезе таÑтера читања реда и променљиве.\n"
+" \n"
+" Повезује низ таÑтера ка функцији читања реда или макроу, или подешава\n"
+" променљиву читања реда. СинтакÑа не-опционог аргумента је иÑта као и\n"
+" она која Ñе налази у „~/.inputrc“, али мора бити проÑлеђена као један\n"
+" аргумент: нпр., bind „\"\\C-x\\C-r\": re-read-init-file“.\n"
+" \n"
+" Опције:\n"
+" -m мапа таÑтера КориÑти ÐœÐПУ_ТÐСТЕРРкао мапу таÑтера "
+"за трајање ове\n"
+" наредбе. Прихватљиви називи мапе "
+"таÑтера Ñу: „emacs,\n"
+" emacs-standard, emacs-meta, emacs-"
+"ctlx, vi, vi-move,\n"
+" vi-command, и vi-insert“.\n"
+" -l ИÑпиÑује називе функција.\n"
+" -P ИÑпиÑује називе функција и Ñвезе.\n"
+" -p ИÑпÑиује функције и Ñвезе у облику "
+"који може бити поново\n"
+" коришћен као улаз.\n"
+" -S ИÑпиÑује низове таÑтера који призивају "
+"макрое и њихове вредноÑти\n"
+" -s ИÑпиÑује низове таÑтера који призивају "
+"макрое и њихове вредноÑти\n"
+" у облику који може бити поново "
+"коришћен као улаз.\n"
+" -V ИÑпиÑује називе и вредноÑти "
+"променљивих\n"
+" -v ИÑпиÑује називе и вредноÑти "
+"променљивих у облику који може бити\n"
+" поново коришћен као улаз.\n"
+" -q назив-функције Пропитује о томе који таÑтери "
+"призивају именовану функцију.\n"
+" -u назив-функције Развезује Ñве таÑтере који Ñу "
+"привезани за именовану функцију.\n"
+" -r низ таÑтера Укалања Ñвезу за ÐИЗ_ТÐСТЕРÐ.\n"
+" -f назив датотеке Чита Ñвезе таÑтера из "
+"ÐÐЗИВÐ_ДÐТОТЕКЕ.\n"
+" -x низ_таÑтера:наредба-шкољке Доводи до извршавања ÐÐРЕДБЕ-ШКОЉКЕ "
+"приликом уноÑа\n"
+" \t\t\t ÐИЗÐ_ТÐСТЕРÐ.\n"
+" -X\t ИÑпиÑује Ñвезе низова таÑтера Ñа -x и "
+"придружене наредбе у облику\n"
+" који може бити поново коришћен као "
+"улаз.\n"
+" \n"
+" Излазно Ñтање:\n"
+" „bind“ даје 0 оÑим ако није дата непозната опција или ако не дође до "
+"грешке."
+
+#: builtins.c:328
+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"
+" Излази из петље FOR, WHILE или UNTIL. Ðко је наведено N, Ñлама N "
+"затварајућих\n"
+" петљи.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Излазно Ñтање је 0 оÑим ако N није веће или једнако 1."
+
+#: builtins.c:340
+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"
+" ÐаÑтавља Ñледеће понављање затварајуће петље FOR, WHILE или UNTIL.\n"
+" Ðко је наведено N, наÑтавља од N-те затварајуће петље.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Излазно Ñтање је 0 оÑим ако N није веће или једнако 1."
+
+#: builtins.c:352
+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 ""
+"Извршава уграђеноÑти шкољке.\n"
+" \n"
+" Извршава УГРÐЂЕÐОСТ-ШКОЉКЕ Ñа аргументима ÐРГ-и без обављања тражења\n"
+" наредбе. Ово је кориÑно када желите поново да примените уграђеноÑÑ‚\n"
+" шкољке као функцију шкољке, али морате да извршите уграђеноÑÑ‚ у "
+"функцији.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје излазно Ñтање УГРÐЂЕÐОСТИ-ШКОЉКЕ, или нетачноÑÑ‚ ако УГРÐЂЕÐОСТ-"
+"ШКОЉКЕ\n"
+" није уграђеноÑÑ‚ шкољке."
+
+#: builtins.c:367
+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"
+" Без ИЗРÐЗÐ, даје „$ред $назив_датотеке“. Са ИЗРÐЗОМ, даје\n"
+" „$ред $подрутина $назив_датотеке“; овај додатни податак може бити\n"
+" коришћен за обезбеђивање праћења Ñпремника.\n"
+" \n"
+" ВредноÑÑ‚ ИЗРÐЗРпоказује колико кадрова позива да Ñе иде уназад пре\n"
+" текућег; први кадар је кадар 0.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје 0 оÑим ако шкољка не извршава функцију шкољке или ИЗРÐЗ\n"
+" није иÑправан."
+
+#: builtins.c:385
+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: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
+" -e\tif the -P option is supplied, and the current working directory\n"
+" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
+" \n"
+" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
+" -P is used; non-zero otherwise."
+msgstr ""
+"Мења радни директоријум шкољке.\n"
+" \n"
+" Мења текући директоријум у ДИР. ОÑновни ДИР је вредноÑÑ‚ променљиве\n"
+" шкољке „ЛИЧÐО“.\n"
+" \n"
+" Променљива „ЦДПУТÐЊÐ“ одређује путању претраге за директоријум који "
+"Ñадржи\n"
+" ДИР. ЗаменÑки називи директоријума у ЦДПУТÐЊИ Ñу раздвојени двотачком "
+"(:).\n"
+" Ðазив ништавног директоријума је иÑти као текући директоријум. Ðко ДИР "
+"почиње\n"
+" коÑом цртом (/), тада Ñе ЦДПУТÐЊРне кориÑти.\n"
+" \n"
+" Ðко Ñе не нађе директоријум, а опција шкољке „cdable_vars“ је подешена,\n"
+" Ñматра Ñе да је реч назив променљиве. Ðко та променљива има вредноÑÑ‚,\n"
+" њена вредноÑÑ‚ Ñе кориÑти за ДИР.\n"
+" \n"
+" Опције:\n"
+" -L\tприморава праћење Ñимболичких веза: решава Ñимболичке везе у\n"
+" ДИР-у након обраде примерака „..“\n"
+" -P\tкориÑти физичку Ñтруктуру директоријума без праћења Ñимболичких\n"
+" веза: решава Ñимболичке везе у ДИР-у пре обраде3 примерака "
+"„..“\n"
+" -e\tако је доÑтављена опција „-P“, а текући радни директоријум не\n"
+" може бити уÑпешно одређен, излази Ñа не-нултим Ñтањем\n"
+" -@ на ÑиÑтемима који подржавају, предÑтавља датотеку Ñа "
+"проширеним\n"
+" оÑобинама као директоријум који Ñадржи оÑобине датотеке\n"
+" \n"
+" ОÑновно је да прати Ñимболичке везе, као да је наведено „-L“.\n"
+" „..“ Ñе обрађује уклањањем претходног ÑаÑтојка назива путање назад на\n"
+" коÑу цтрицу или на почетак ДИР-а.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје 0 ако је директоријум измењен, и ако је $PWD уÑпешно подешено када "
+"је\n"
+" коришћено „-P“; у Ñупротном вредноÑÑ‚ различиту од нуле."
+
+#: builtins.c:422
+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 ""
+"ИÑпиÑује назив текућег радног директоријума.\n"
+" \n"
+" Опције:\n"
+" -L\tиÑпиÑује вредноÑÑ‚ наредбе $PWD ако именује текући радни\n"
+" директоријум\n"
+" -P\tиÑпиÑује физички директоријум, без Ñимболичких веза\n"
+" \n"
+" По оÑнови, „pwd“ Ñе понаша као да је наведено „-L“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје 0 оÑим ако није дата неиÑправна опција или текући директоријум\n"
+" не може бити прочитан."
+
+#: builtins.c:439
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Ðиштавна наредба.\n"
+" \n"
+" Ðема дејÑтва; наредба не ради ништа.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Увек уÑпешна."
+
+#: builtins.c:450
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Даје уÑпешан резултат.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Увек уÑпешно."
+
+#: builtins.c:459
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Даје неуÑпешан резултат.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Увек неуÑпешно."
+
+#: builtins.c:468
+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 ""
+"Извршава једноÑтавну наредбу или приказује податке о наредбама.\n"
+" \n"
+" Покреће ÐÐРЕДБУ Ñа ÐРГУМЕÐТИМРпотиÑкујући тражење функције шкољке, или\n"
+" приказује податке о наведеним ÐÐРЕДБÐÐœÐ. Може да Ñе кориÑти за "
+"позивање\n"
+" наредби на диÑку када поÑтоји функција Ñа иÑтим називом.\n"
+" \n"
+" Опције:\n"
+" -p\tкориÑти оÑновну вредноÑÑ‚ за ПУТÐЊУ којом Ñе оÑигурава налажење\n"
+" Ñвих Ñтандардних помагала\n"
+" -v\tиÑпиÑује Ð¾Ð¿Ð¸Ñ ÐÐРЕДБЕ Ñлично уграђеноÑти „type“\n"
+" -V\tиÑпиÑује опширнији Ð¾Ð¿Ð¸Ñ Ñваке ÐÐРЕДБЕ\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје излазно Ñтање ÐÐРЕДБЕ, или неуÑпех ако Ñе ÐÐРЕДБРне пронађе."
+
+#: builtins.c:487
+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"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\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"
+" -n\tmake NAME a reference to the variable named by its value\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. The `-g' option suppresses this behavior.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
+msgstr ""
+"Подешава вредноÑти и оÑобине променљиве.\n"
+" \n"
+" Објављује променљиве и даје им оÑобине. Ðко ниÑу дати ÐÐЗИВИ,\n"
+" приказује оÑобине и вредноÑти Ñвих променљивих.\n"
+" \n"
+" Опције:\n"
+" -f\tограничава радњу или приказ називима и одредницама функције\n"
+" -F\tограничава приказ Ñамо називима функција (Ð¿Ð»ÑƒÑ Ð±Ñ€Ð¾Ñ˜ реда и\n"
+" изворну датотеку приликом прочишћавања)\n"
+" -g\tÑтвара опште променљиве када Ñе кориÑти у функцији шкољке;\n"
+" у Ñупротном Ñе занемарује\n"
+" -p\tприказује оÑобине и вредноÑÑ‚ Ñваког ÐÐЗИВÐ\n"
+" \n"
+" Опције које подешавају оÑобине:\n"
+" -a\tда учини ÐÐЗИВЕ попиÑаним низовима (ако је подржано)\n"
+" -A\tда учини ÐÐЗИВЕ придруживим низовима (ако је подржано)\n"
+" -i\tда учини да ÐÐЗИВИ имају оÑобину „integer“ (целог броја)\n"
+" -l\tда претвори ÐÐЗИВЕ у мала Ñлова при додели\n"
+" -n\tчини ÐÐЗИВ упутом ка променљивој именованој Ñвојом вредношћу\n"
+" -r\tда учини ÐÐЗИВЕ Ñамо за читање\n"
+" -t\tда учини да ÐÐЗИВИ имају оÑобину „trace“ (прати)\n"
+" -u\tда претвори ÐÐЗИВЕ у велика Ñлова при додели\n"
+" -x\tда уради извоз ÐÐЗИВÐ\n"
+" \n"
+" Употреба + умеÑто - иÑкључује дату оÑобину.\n"
+" \n"
+" Променљиве Ñа оÑобином целог броја имају аритметичку процену (видите\n"
+" наредбу „let“) обављену када Ñе променљивој додели вредноÑÑ‚.\n"
+" \n"
+" Када Ñе кориÑти у функцији, „declare“ чини ÐÐЗИВЕ меÑним, као наредбом\n"
+" „local“. Опција „-g“ потиÑкује ово понашање.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или "
+"ако\n"
+" не дође до грешке доделе променљиве."
+
+#: builtins.c:527
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Подешава вредноÑти и атрибуте променљиве.\n"
+" \n"
+" ЗаÑтарело. Погледајте „help declare“."
+
+#: builtins.c:535
+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, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
+msgstr ""
+"Одређује меÑне променљиве.\n"
+" \n"
+" Ствара меÑну променљиву звану ÐÐЗИВ, и даје јој ВРЕДÐОСТ. ОПЦИЈРможе\n"
+" бити Ñвака опција коју прихвати „declare“.\n"
+" \n"
+" МеÑне променљиве могу бити коришћене једино у функцији; виде их једино\n"
+" функције у којима Ñу одређене и уњиховим породима.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Резултат је позитиван оÑим ако Ñе не доÑтави неиÑправна опција, ако не "
+"дође\n"
+" до грешке додељивања променљиве, или ако шкољка не извршава функцију."
+
+#: builtins.c:552
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\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"
+" \\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"
+" Приказује ÐРГ-те, раздвојене једним знаком размака и праћене\n"
+" новим редом, на Ñтандардном излазу.\n"
+" \n"
+" Опције:\n"
+" -n\tне прикачиње нови ред\n"
+" -e\tукључује тумачење пратећих контра коÑих црта новог реда\n"
+" -E\tизричито потиÑкује тумачење контра коÑих црта новог реда\n"
+" \n"
+" „echo“ тумачи пратеће знаке контра коÑе црте новог реда:\n"
+" \\a\tупозорење (звонце)\n"
+" \\b\tповратница\n"
+" \\c\tпотиÑкује будући излаз\n"
+" \\e\tзнак новог реда\n"
+" \\E\tзнак новог реда\n"
+" \\f\tдовод обраÑца\n"
+" \\n\tнови ред\n"
+" \\r\tповратак ноÑача\n"
+" \\t\tводоравни табулатор\n"
+" \\v\tуÑправни табулатор\n"
+" \\\\\tконтра коÑа црта\n"
+" \\0nnn\tзнак чији ÐСКРИ код јеÑте NNN (октално). NNN може бити од\n"
+" \t 0 до 3 окталне цифре\n"
+" \\xHH\tоÑмобитни знак чија вредноÑÑ‚ јеÑте HH (хекÑадецимално). HH\n"
+" може бити једна или две хекÑадецималне цифре\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако не дође до грешке пиÑања."
+
+#: builtins.c:588
+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 ""
+"ЗапиÑује аргументе на Ñтандардни излаз.\n"
+" \n"
+" Приказује ÐРГ-те на Ñтандардном излазу за којима Ñледи нови ред.\n"
+" \n"
+" Опције:\n"
+" -n\tне придодаје нови ред\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако не дође до грешке пиÑања."
+
+#: builtins.c:603
+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 ""
+"Укључује и иÑкључује уграђеноÑти шкољке.\n"
+" \n"
+" Укључује и иÑкључује уграђене наредбе шкољке. ИÑкључивање вам "
+"омогућава\n"
+" да извршите наредбу диÑка која ноÑи иÑти назив као уграђеноÑÑ‚ шкољке\n"
+" без коришћења пуне путање.\n"
+" \n"
+" Опције:\n"
+" -a\tиÑпиÑује ÑпиÑак уграђеноÑти приказујући да ли је Ñвака укључена\n"
+" -n\tиÑкључује Ñваки ÐÐЗИВ или приказује ÑпиÑак иÑкључених уграђеноÑти\n"
+" -p\tиÑпиÑује ÑпиÑак уграђеноÑти у поново кориÑтивом облику\n"
+" -s\tиÑпиÑује Ñамо називе ПоÑикÑових „поÑебних“ уграђеноÑти\n"
+" \n"
+" Опције које управљају динамичним учитавањем:\n"
+" -f\tУчитава уграђеноÑÑ‚ ÐÐЗИВРиз дељеног објекта ÐÐЗИВ_ДÐТОТЕКЕ\n"
+" -d\tУклања уграђеноÑÑ‚ учитану помоћу „-f“\n"
+" \n"
+" Без опција, Ñваки ÐÐЗИВ је укључен.\n"
+" \n"
+" Да кориÑтите „test“ пронађен у $ПУТÐЊИ умеÑто издања уграђеноÑти\n"
+" шкољке, укуцајте „enable -n test“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако ÐÐЗИВ није уграђеноÑÑ‚ шкољке или ако не "
+"дође до грешке."
+
+#: builtins.c:631
+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 ""
+"Извршава аргументе као наредбе шкољке.\n"
+" \n"
+" Обједињује ÐРГ-те у једну ниÑку, кориÑти резултат као улаз шкољке,\n"
+" и извршава резултирајуће наредбе.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје излазно Ñтање наредбе или уÑпех ако је наредба ништавна."
+
+#: builtins.c:643
+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 ""
+"Обрађује аргументе опције.\n"
+" \n"
+" „Getopts“ Ñе кориÑти поÑтупцима шкољке за обраду положајних параметара\n"
+" као опција.\n"
+" \n"
+" „OPTSTRING“ Ñдаржи Ñлова опције зарад препознавања; ако након Ñлова\n"
+" долази двотачка, очекује Ñе да опција има аргумент, који од њега треба\n"
+" да буде раздвојен празнином.\n"
+" \n"
+" Ðакон Ñваког призивања, „добави_опцију“ ће поÑтавити Ñледећу опцију у\n"
+" $називу променљиве шкољке, покрећући назив ако не поÑтоји, и индекÑ\n"
+" Ñледећег аргумента зарад обраде у променљиве шкољке ОПЦИÐД. ОПЦИÐД\n"
+" Ñе покреће на 1 Ñваки пут када Ñе призове шкољка или ÑÐ¿Ð¸Ñ ÑˆÐºÐ¾Ñ™ÐºÐµ.\n"
+" Када опција захтева аргумент, „добави_опцију“ поÑтавља тај аргумент\n"
+" у променљиву шкољке ОПЦÐРГ.\n"
+" \n"
+" „добави_опцију“ извештава о грешкама на један од два начина. Ðко је\n"
+" први знак ОПЦÐИСКЕ двотачка, „добави_опцију кориÑти нечујно извештавање\n"
+" о грешци. У овом режиму, поруке о грешкама Ñе не иÑпиÑују. Ðко је\n"
+" виђена неиÑправна опција, поÑтавља знак опцијепронађен у ОПЦÐРГ-у. Ðко\n"
+" захтевани аргумент није нађен, поÑтавља двотачку „:“ у ÐÐЗИВ и подешава\n"
+" ОПЦÐРГ на нађени знак опције. Ðко „добави_опцију“ није у нечујном "
+"режиму,\n"
+" а виђена је неиÑправна опција, онда поÑтавља знак питања „?“ у ÐÐЗИВ и\n"
+" раÑподешава ОПЦÐРГ. Ðко није пронађен захтевани аргумент, питање „?“ "
+"Ñе\n"
+" поÑтавља у ÐÐЗИВУ, ОПЦÐРГ Ñе раÑподешава, а иÑпиÑује Ñе порука о "
+"дијагнози.\n"
+" \n"
+" Ðко променљива шкољке ОПЦГРЕШКРима вредноÑÑ‚ 0, „добави_опцију“ "
+"иÑкључује\n"
+" иÑпиÑивање порука о грешкама, чак и ако први знак ОПЦÐИСКЕ није "
+"двотачка.\n"
+" ОПЦГРЕШКРима вредноÑÑ‚ 1 по оÑнови.\n"
+" \n"
+" „Добави_опцију“ обично обрађује положајне параметре ($0 - $9), али ако "
+"је\n"
+" дато више аргумената, онда Ñе они обрађују.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат ако је пронађена опција; неуÑпех ако Ñе наиђе "
+"на\n"
+" крај опције или ако не дође до грешке."
+
+#: builtins.c:685
+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 ""
+"Замењује шкољку датом наредбом.\n"
+" \n"
+" Извршава ÐÐРЕДБУ, замењујући ову шкољку наведеним програмом. ÐРГУМЕÐТИ\n"
+" поÑтају аргументи ÐÐРЕДБЕ. Ðко није наведена ÐÐРЕДБÐ, Ñвако "
+"преуÑмеравање\n"
+" има дејÑтва у текућој шкољци.\n"
+" \n"
+" Опције:\n"
+" -a назив проÑлеђује ÐÐЗИВ као нулти аргумент ÐÐРЕДБЕ\n"
+" -c\t\tизвршава ÐÐРЕДБУ Ñа празним окружењем\n"
+" -l\t\tпоÑтавља цртицу у нултом аргументу ÐÐРЕДБЕ\n"
+" \n"
+" Ðко наредба не може бити извршена, поÑтоји не-међудејÑтвена шкољка, "
+"оÑим\n"
+" ако није подешена опција шкољке „execfail“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако ÐÐРЕДБРније нађена или ако не дође до "
+"грешке преуÑмеравања."
+
+#: builtins.c:706
+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. Ðко је N изоÑтављено, излазно Ñтање\n"
+" је оно поÑледње извршене наредбе."
+
+#: builtins.c:715
+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 ""
+"Ðапушта шкољку пријављивања.\n"
+" \n"
+" Ðапушта шкољку пријављивања Ñа излазним Ñтањем N. Даје грешку ако није "
+"извршено\n"
+" у шкољци пријављивања."
+
+#: builtins.c:725
+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 ""
+"Приказује или извршава наредбе Ñа ÑпиÑка иÑторијата.\n"
+" \n"
+" „fc“ Ñе кориÑти за иÑпиÑивање или уређивање и за поновно извршавање "
+"наредби\n"
+" Ñа ÑпиÑка иÑторијата. ПРВИ и ПОСЛЕДЊИ могу бити бројеви који наводе "
+"опÑег,\n"
+" или ПРВИ може бити ниÑка, што значи да најÑвежија наредба почиње том "
+"ниÑком.\n"
+" \n"
+" Опције:\n"
+" -e ЕÐÐЗИВ\t бира уређивача за коришћење. ОÑновно је „FCEDIT“, затим "
+"„EDITOR“,\n"
+" \t\t затим „vi“\n"
+" -l \t прави ÑпиÑак редова умеÑто да уређује\n"
+" -n\t изоÑтавља бројеве редова приликом Ñтварања ÑпиÑка\n"
+" -r\t преокреће редоÑлед редова (новије поÑтавља као прве)\n"
+" \n"
+" Са запиÑом „fc -s [пат=реп ...] [наредба]“, ÐÐРЕДБРÑе поново\n"
+" извршава након обављене замене СТÐРО=ÐОВО.\n"
+" \n"
+" КориÑтан пÑеудоним за коришћење Ñ Ð¾Ð²Ð¸Ð¼ је „r='fc -s'“, тако да „r cc“\n"
+" покреће поÑледњу наредбу која почиње Ñа „cc“ а „r“ поново извршава\n"
+" поÑледњу наредбу.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат или Ñтање извршене наредбе; не-нулу ако дође до "
+"грешке."
+
+#: builtins.c:755
+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"
+" \n"
+" ПоÑтавља поÑао одређен Ñа „JOB_SPEC“ у први план, учинивши га текућим\n"
+" поÑлом. Ðко „JOB_SPEC“ није приÑутно, кориÑти Ñе шкољкино поимање\n"
+" текућег поÑла.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Стање наредбе поÑтављене у први план, или неуÑпех ако дође до грешке."
+
+#: builtins.c:770
+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"
+" \n"
+" ПоÑтавља поÑао одређен Ñваком „JOB_SPEC“ у позадину, као да Ñу "
+"покренути\n"
+" Ñа &. Ðко „JOB_SPEC“ није приÑутно, кориÑти Ñе шкољкино поимање\n"
+" текућег поÑла.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није укључено управљање поÑлом или ако "
+"не дође до грешке."
+
+#: builtins.c:784
+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 as 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 ""
+"Памти или приказује меÑта програма.\n"
+" \n"
+" Одређује и памти пуну путању Ñваког ÐÐЗИВРнаредбе. Ðко ниÑу\n"
+" дати аргументи, приказује Ñе податак о упамћеним наредбама.\n"
+" \n"
+" Опције:\n"
+" -d\t\tзаборавља запамћено меÑто Ñваког ÐÐЗИВÐ\n"
+" -l\t\tприказује у облику који може бити поново коришћен као улаз\n"
+" -p путања \tкориÑти ПУТÐЊУ као пуну путању ÐÐЗИВÐ\n"
+" -r\t\tзаборавља Ñва запамћена меÑта\n"
+" -t\t\tиÑпиÑује запамћено меÑто Ñваког ÐÐЗИВÐ, поÑтављајући\n"
+" \t\t одговарајући ÐÐЗИВ иÑпред Ñваког меÑта ако је дато\n"
+" \t\t више ÐÐЗИВÐ\n"
+" Ðргументи:\n"
+" ÐÐЗИВ\t\tСваки ÐÐЗИВ Ñе тражи у $ПУТÐЊИ и додаје на ÑпиÑак\n"
+" \t\t запамћених наредби.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе ÐÐЗИВ не нађе или ако је дата "
+"неиÑправна опција."
+
+#: builtins.c:809
+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 ""
+"Приказује податке о уграђеним наредбама.\n"
+" \n"
+" Приказује кратке Ñажетке уграђених наредби. Ðко је наведен\n"
+" ШÐБЛОÐ, даје опширну помоћ Ñвих наредби које одговарају ШÐБЛОÐУ,\n"
+" у Ñупротном иÑпиÑује Ñе ÑпиÑак тема помоћи.\n"
+" \n"
+" Опције:\n"
+" -d\tиÑпиÑује кратак Ð¾Ð¿Ð¸Ñ Ð·Ð° Ñваку тему\n"
+" -m\tприказује коришћење у запиÑу квази Ñтранице упутÑтва\n"
+" -s\tиÑпиÑује Ñамо кртак Ñиже употребе за Ñваку тему која\n"
+" \t одговара ШÐБЛОÐУ\n"
+" \n"
+" Ðргументи:\n"
+" ШÐБЛОÐ\tШаблон који наводи тему помоћи\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако ШÐБЛОРније пронађен или ако је дата "
+"неиÑправна опција."
+
+#: builtins.c:833
+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 иÑпиÑује Ñамо поÑледња N уноÑа.\n"
+" \n"
+" Опције:\n"
+" -c\t чиÑти ÑпиÑак иÑторијата бришући Ñве уноÑе\n"
+" -d померај брише ÑƒÐ½Ð¾Ñ Ð¸Ñторијата на померају ПОМЕРÐЈ.\n"
+" \n"
+" -a\t додаје редове иÑторијата из ове ÑеÑије у датотеку иÑторијата\n"
+" -n\t чита Ñве редове иÑторијата који ниÑу прочитани из датотеке "
+"иÑторијата\n"
+" -r\t чита датотеку иÑторијата и додаје Ñадржај на ÑпиÑак иÑторијата\n"
+" -w\t пише текући иÑторијат у датотеку иÑторијата\n"
+" \t и додаје их на ÑпÑак иÑторијата\n"
+" \n"
+" -p\t обавља ширење иÑторијата на Ñваком ÐРГ-у и приказује резултат\n"
+" \t без Ñмештања на ÑпиÑак иÑторијата\n"
+" -s\t додаје ÐРГ-те на ÑпиÑак иÑторијата као један уноÑ\n"
+" \n"
+" Ðко је дата ДÐТОТЕКÐ, кориÑти Ñе као датотека иÑторијата. УÑупротном,\n"
+" ако $ДÐТОТЕКÐ_ИСТОРИЈÐТРима вредноÑÑ‚, она Ñе кориÑти, другачије „~/."
+"bash_history“.\n"
+" \n"
+" Ðко је променљива $ЗÐПИСВРЕМЕÐÐИСТОРИЈÐТРподешена и није ништавна, "
+"кориÑти Ñе\n"
+" њена вредноÑÑ‚ као ниÑка запиÑа за „strftime(3)“ да иÑпиÑше временÑку "
+"ознаку придружену\n"
+" Ñваком приказаном уноÑу иÑторијата. У Ñупротном временÑке ознаке Ñе не "
+"иÑпиÑују.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако не "
+"дође до грешке."
+
+#: builtins.c:869
+#, 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\tlists 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 ""
+"Приказује Ñтање поÑла.\n"
+" \n"
+" ИÑпиÑује радне поÑлове. ОДРЕДБÐПОСЛРограничава излаз на тај поÑао.\n"
+" Без опција, Ñтање Ñвих радних поÑлова је приказано.\n"
+" \n"
+" Опције:\n"
+" -l\tиÑпиÑује ИБ-ове процеÑа као додатак обичним подацима\n"
+" -n\tиÑпиÑује Ñамо процеÑе који Ñу променили Ñтање од поÑледњег\n"
+" \t обавештавања\n"
+" -p\tиÑпиÑује Ñамо ИБ-ове процеÑа\n"
+" -r\tограничава излаз на покренуте поÑлове\n"
+" -s\tограничава излаз на зауÑтављене поÑлове\n"
+" \n"
+" Ðко је доÑтављено „-x“, ÐÐРЕДБРÑе покреће након што Ñе Ñве одредбе "
+"поÑла које\n"
+" Ñе јављају у ÐРГУМЕÐТИМРзамене ИБ-ом процеÑа тог вође групе процеÑа "
+"поÑла.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако не "
+"дође до грешке.\n"
+" Ðко Ñе кориÑти „-x“, даје излазно Ñтање ÐÐРЕДБЕ."
+
+#: builtins.c:896
+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 ""
+"Уклања поÑлове из текуће шкољке.\n"
+" \n"
+" Уклања Ñваки аргумент ОДРЕДБЕПОСЛРиз табеле радних поÑлова. Без\n"
+" ОДРЕДБИПОСЛÐ, шкољка кориÑти Ñвоје тумачење текућег поÑла.\n"
+" \n"
+" Опције:\n"
+" -a\tуклања Ñве поÑлове ако није доÑтављена ОДРЕДБÐПОСЛÐ\n"
+" -h\tозначава Ñваку ОДРЕДБУПОСЛРтако да СИГÐÐЛГОРЕ није поÑлат поÑлу "
+"ако\n"
+" \t шкољка прими СИГÐÐЛГОРЕ\n"
+" -r\tуклања Ñамо покренуте поÑлове\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или "
+"ОДРЕДБÐПОСЛÐ."
+
+#: builtins.c:915
+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 ""
+"Шаље Ñигнал поÑлу.\n"
+" \n"
+" Шаље процеÑима препознатих ПИБ-ом или ОДРЕДБОМПОСЛРÑигнал именован\n"
+" ОДРЕДБОМСИГÐÐЛРили БРОЈЕМСИГÐÐЛÐ. Ðко није приÑутно ни "
+"ОДРЕДБÐ_СИГÐÐЛÐ\n"
+" ни БРОЈ_СИГÐÐЛÐ, подразумева Ñе ТЕРМ_СИГÐÐЛÐ.\n"
+" \n"
+" Опције:\n"
+" -s Ñиг\tСИГ је назив Ñигнала\n"
+" -n Ñиг\tСИГ је број Ñигнала\n"
+" -l\tиÑпиÑује називе Ñигнала; ако аргументи прате „-l“ подразумева\n"
+" \t Ñе да Ñу бројеви Ñигнала за које називи требају бити иÑпиÑани\n"
+" \n"
+" „Kill“ је уграђеноÑÑ‚ шкољке из два разлога: омогућава да ИБ-ови поÑлова "
+"буду\n"
+" коришћени умеÑто ИБ-ова процеÑа, и омогућава убијање процеÑа ако је "
+"доÑтигнуто\n"
+" ограничење процеÑа које можете да направите.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако не "
+"дође до грешке."
+
+#: builtins.c:938
+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"
+" Процењује Ñваки ÐРГ као аритметички израз. Процењивање Ñе ради у\n"
+" целим бројевима Ñталне ширине без провере за прекорачењем, тако да Ñе\n"
+" дељење нулом хвата и означава као грешка. Следећи ÑпиÑак оператора је\n"
+" групиÑан у нивое оператора једнаког првенÑтва. Ðивои Ñу иÑпиÑани према\n"
+" поретку раÑтућег првенÑтва.\n"
+" \n"
+" \tid++, id--\tпроменљива поÑÑ‚-увећања, поÑÑ‚-умањења\n"
+" \t++id, --id\tпроменљива пре-увећања, пре-умањења\n"
+" \t-, +\t\tједночлани минуÑ, плуÑ\n"
+" \t!, ~\t\tлогичка и битÑка негација\n"
+" \t**\t\tÑтепеновање\n"
+" \t*, /, %\t\tмножење, дељење, оÑтатак\n"
+" \t+, -\t\tÑабирање, одузимање\n"
+" \t<<, >>\t\tлеви и деÑни битÑки помаци\n"
+" \t<=, >=, <, >\tпоређење\n"
+" \t==, !=\t\tједнакоÑÑ‚, неједнакоÑÑ‚\n"
+" \t&\t\tбитÑко И\n"
+" \t^\t\tбитÑко ИСКЉУЧИВО ИЛИ\n"
+" \t|\t\tбитÑко ИЛИ\n"
+" \t&&\t\tлогичко И\n"
+" \t||\t\tлогичко ИЛИ\n"
+" \texpr ? expr : expr\n"
+" \t\t\tуÑловни оператор\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tдодела\n"
+" \n"
+" Променљиве шкољке Ñу дозвољене као операнди. Ðазив променљиве\n"
+" Ñе замењује њеном вредношћу (приÑиљеном на цео број Ñталне ширине)\n"
+" у изразу. Променљива не мора да има укључен атрибут целог броја\n"
+" да би била коришћена у изразу.\n"
+" \n"
+" Оператори Ñе процењују према првенÑтву. Под-изрази у заградама\n"
+" Ñе први процењују и могу да препишу горња правила првенÑтва.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Ðко Ñе поÑледњи ÐРГ процени на 0, иÑпиÑује 1; у Ñупротном даје 0."
+
+#: builtins.c:983
+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, but honor a delimiter if fewer than NCHARS\n"
+" \t\tcharacters are read before the delimiter\n"
+" -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
+" \t\tEOF is encountered or read times out, ignoring any delimiter\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 within 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 immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
+" or an invalid file descriptor is supplied as the argument to -u."
+msgstr ""
+"Чита ред Ñа Ñтандардног улаза и дели га на поља.\n"
+" \n"
+" Чита један ред Ñа Ñтандардног улаза, или из опиÑника датотеке ФД\n"
+" ако је доÑтављена опција „-u“. Ред је подељен на поља као при дељењу\n"
+" речи, а прва реч Ñе додељује првом ÐÐЗИВУ, друга реч другом ÐÐЗИВУ,\n"
+" и тако редом, Ñа Ñваком наредном речју додељеном поÑледњем ÐÐЗИВУ.\n"
+" Само знаци пронађени у „$IFS“ Ñе признају за граничнике речи.\n"
+" \n"
+" Ðко ниÑу доÑтављени ÐÐЗИВИ, читани ред је Ñмештен у променљивој "
+"ОДГОВОР.\n"
+" \n"
+" Опције:\n"
+" -a низ\t додељује читање речи Ñеквенцијалним индекÑима променљиве\n"
+" \t\t низа ÐИЗ, почевши од нуле\n"
+" -d гран\t наÑтавља Ñве док Ñе не прочита први знак ГРÐÐИЧÐИКÐ,\n"
+" \t\t радије него нови ред\n"
+" -e\t кориÑти читање реда да добије ред у међудејÑтвеној шкољци\n"
+" -i текÑÑ‚\t КориÑти ТЕКСТ као почетни текÑÑ‚ за читање реда\n"
+" -n n-знака даје резултат након читања знакова N-ЗÐÐКОВРрадије него "
+"да\n"
+" \t\t чека на нови ред, али поштује граничника ако је прочитано\n"
+" \t\t мање знакова од N-ЗÐÐКОВРпре граничника\n"
+" -N n-знака даје резултат Ñамо након читања тачно знакова N-ЗÐÐКОВÐ, "
+"оÑим\n"
+" \t\t ако не наиђе на крај датотеке или ако не иÑтекне време читања,\n"
+" занемарујући Ñве граничнике\n"
+" -p упит\t иÑпиÑује ниÑку УПИТ без пратећег новог реда пре покушаја "
+"читања\n"
+" -r\t не дозвољава контра коÑим цртама да преломе ниједан од знакова\n"
+" -s\t не оглашава улаз који долази Ñа терминала\n"
+" -t иÑтек\t неуÑпех временÑког рока и давања резултата ако читав ред "
+"улаза\n"
+" \t\t није прочитан за време од ВРЕМЕ_РОК Ñекунде. ВредноÑÑ‚ променљиве\n"
+" \t\t ВИСТЕКРје оÑновни временÑки рок. ВРЕМЕÐСКИ_РОК може бити "
+"разломак.\n"
+" \t\t Ðко је ВРЕМЕÐСКИ_РОК 0, читање даје резултат одмах, без покушаја\n"
+" \t\t читања некох података, дајући позитиван резултат Ñамо ако је улаз\n"
+" \t\t доÑтупан на наведеном опиÑнику датотеке. Излазно Ñтање је веће\n"
+" \t\t од 128 ако је временÑки рок прекорачен\n"
+" -u фд\t чита из опиÑника датотеке ФД умеÑто Ñа Ñтандардног улаза\n"
+" \n"
+" Излазно Ñтање:\n"
+" Резултат је нула, оÑим ако Ñе не наиђе на крај датотеке, не иÑтекне "
+"време\n"
+" читања (у том Ñлучају је већи од 128), ако не дође до грешке доделе "
+"променљиве,\n"
+" или ако Ñе не доÑтави неиÑправан опиÑник датотеке као аргумент опције „-"
+"u“."
+
+#: builtins.c:1028
+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"
+" \n"
+" Доводи до тога да функција или изворни ÑÐ¿Ð¸Ñ Ð¸Ð·Ð°Ñ’Ñƒ Ñа вредношћу\n"
+" коју наводи N. Ðко је N изоÑтављено, Ñтање резултата је оно\n"
+" поÑледње извршене наредбе унутар функције или ÑпиÑа.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје N, или неуÑпех ако шкољка не извршава функцију или ÑпиÑ."
+
+#: builtins.c:1041
+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 resolve 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\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 ""
+"Подешава или раÑподешava вредноÑти опција шкољке и положајних параметара.\n"
+" \n"
+" Мења вредноÑÑ‚ оÑобина шкољке и положајних параметара, или\n"
+" приказује називе и вредноÑти променљивих шкољке.\n"
+" \n"
+" Опције:\n"
+" -a Означава променљиве које Ñу измењене или направљене за извоз.\n"
+" -b Одмах обавештава о окнчавању поÑла.\n"
+" -e Одмах излази ако наредба поÑтоји Ñа не-нултим Ñтањем.\n"
+" -f ИÑкључује Ñтварање назива датотеке (уопштавање).\n"
+" -h Памти меÑто наредби као што Ñу тражене.\n"
+" -k Сви аргументи додељивања Ñе поÑтављају у окружењу за\n"
+" наредбу, не Ñамо они који претходе називу наредбе.\n"
+" -m Управљање поÑлом је укључено.\n"
+" -n Чита наредбе али их не извршава.\n"
+" -o назив-опције\n"
+" Подешава променљиву према називу-опције:\n"
+" allexport иÑто као -a\n"
+" braceexpand иÑто као -B\n"
+" emacs кориÑти Ñучеље уређивања реда у Ñтилу емакÑа\n"
+" errexit иÑто као -e\n"
+" errtrace иÑто као -E\n"
+" functrace иÑто као -T\n"
+" hashall иÑто као -h\n"
+" histexpand иÑто као -H\n"
+" history укључује иÑторијат наредбе\n"
+" ignoreeof шкољка неће изаћи док читање међудејÑтвених\n"
+" напомена краја датотеке допушта напоменама\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"
+" за прекид Ñа не-нултим Ñтањем, или Ñа нулом ако "
+"ниједна\n"
+" наредба није завршила Ñа не-нултим Ñтањем\n"
+" posix мења понашање баша где Ñе оÑновна радња "
+"разликује\n"
+" од Ñтандарда ПоÑикÑа да би одговарала Ñтандарду\n"
+" privileged иÑто као -p\n"
+" verbose иÑто као -v\n"
+" vi кориÑти Ñучеље уређивања реда у Ñтилу вија\n"
+" xtrace иÑто као -x\n"
+" -p Укључено кад год Ñе ибови Ñтварног и ефективног кориÑника не "
+"подударају.\n"
+" ИÑкључује обраду датотеке „$ENV“ и увоз функција шкољке. "
+"ИÑкључивање ове\n"
+" опције доводи до тога да ефективни јиб и гиб буду подешени на "
+"Ñтварни\n"
+" јиб и гиб.\n"
+" -t Излази након читања и извршавања једне наредбе.\n"
+" -u Сматра променљиве раÑподешавања за грешку приликом замењивања.\n"
+" -v ИÑпиÑује редове улаза шкољке како бивају читани.\n"
+" -x ИÑпиÑује наредбе и њихове аргументе како бивају извршени.\n"
+" -B шкољка ће обавити ширење заграде\n"
+" -C Ðко је подешено, онемогућава препиÑивање поÑтојећих редовних\n"
+" датотека преуÑмеравањем излаза.\n"
+" -E Ðко је подешено, хватање ГРЕШКЕ Ñе наÑлеђује функцијама шкољке.\n"
+" -H Укључује замену иÑторијата у Ñтилу !. Ова опција је укључена\n"
+" по оÑнови када је шкољка међудејÑтвена.\n"
+" -P Ðко је подешено, не решава Ñимболичке везе приликом извршавања\n"
+" наредби као што је „cd“ која мења текући директоријум.\n"
+" -T Ðко је подешено, хватање ПРОЧИШЋÐÐ’ÐЊРÑе наÑлеђује функцијама "
+"шкољке.\n"
+" -- Додељује Ñве преоÑтале аргументе положајним параметрима.\n"
+" Ðко нема преоÑталих аргумената, положајни параметри Ñе\n"
+" раÑподешавају.\n"
+" - Додељује Ñве преоÑтале аргументе положајним параметрима.\n"
+" Опције „-x“ и „-v“ Ñу иÑкључене.\n"
+" \n"
+" Коришћење + радије него - доводи до иÑкључивања ових опција. Опције\n"
+" могу такође бити коришћене над призивањем шкољке. Текући Ñкуп опција\n"
+" може бити пронађен у $-. ПреоÑталих n ÐРГ-та јеÑу положајни параметри\n"
+" и додељени Ñу, по реду, $1, $2, .. $n. Ðко ниÑу дати ÐРГументи, Ñве\n"
+" променљиве шкољке Ñе иÑпиÑују.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција."
+
+#: builtins.c:1126
+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\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\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 ""
+"РаÑподешава вредноÑти и оÑобине променљивих и функција шкољке.\n"
+" \n"
+" За Ñваки ÐÐЗИВ, уклања одговарајућу променљиву или функцију.\n"
+" \n"
+" Опције:\n"
+" -f\tÑматра Ñваки ÐÐЗИВ као функцију шкољке\n"
+" -v\tÑматра Ñваки ÐÐЗИВ као променљиву шкољке\n"
+" -n\tÑматра Ñваки ÐÐЗИВ као упуту назива и раÑподешава\n"
+" \t Ñаму променљиву радије него упуте променљиве\n"
+" \n"
+" Без опција, „unset“ прво покушава да раÑподеÑи променљиву, а ако то не "
+"уÑпе,\n"
+" покушава да раÑподеÑи функцију.\n"
+" \n"
+" Ðеке променљиве не могу бити раÑподешене; видите такође „readonly“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако је "
+"ÐÐЗИВ Ñамо за читање."
+
+#: builtins.c:1148
+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 ""
+"Подешава оÑобину извоза за променљиве шкољке.\n"
+" \n"
+" Означава Ñваки ÐÐЗИВ за ÑамоÑталан извоз у окружење накнадно извршених\n"
+" наредби. Ðко је доÑтављена ВРЕДÐОСТ, додељује ВРЕДÐОСТ пре извоза.\n"
+" \n"
+" Опције:\n"
+" -f\tупућује на функције шкољке\n"
+" -n\tуклања ÑвојÑтво извоза из Ñваког ÐÐЗИВÐ\n"
+" -p\tприказује ÑпиÑак Ñвих извезених променљивих и функција\n"
+" \n"
+" Ðргумент „--“ иÑкључује даљу обраду опције.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако је дата неиÑправна опција или је ÐÐЗИВ "
+"неиÑправан."
+
+#: builtins.c:1167
+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 or functions, depending "
+"on\n"
+" whether or not the -f option is given\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 ""
+"Означава променљиве шкољке непроменљивим.\n"
+" \n"
+" Означава Ñваки ÐÐЗИВ као Ñамо за читање; вредноÑти тих ÐÐЗИВРне могу "
+"бити\n"
+" измењене подÑеквенционалним додељивањем. Ðко је доÑтављена ВРЕДÐОСТ, "
+"додељује\n"
+" ВРЕДÐОСТ пре него ли јеозначи Ñамо за читање.\n"
+" \n"
+" Опције:\n"
+" -a\tупућује на променљиве попиÑивог низа\n"
+" -A\tупућује на променљиве придруживог низа\n"
+" -f\tупућује на функције шкољке\n"
+" -p\tприказује ÑпиÑак Ñвих променљивих и функција Ñамо за читање, "
+"завиÑно\n"
+" од тога да ли је опција „-f“ дата или није\n"
+" \n"
+" Ðргумент „--“ иÑкључује даље обрађивање опције.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако је "
+"ÐÐЗИВ неиÑправан."
+
+#: builtins.c:1189
+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 ""
+"Помера параметре положаја.\n"
+" \n"
+" Преименује параметре положаја $N+1,$N+2 ... у $1,$2 ... Ðко N није\n"
+" дато, подразумева Ñе да је 1.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Резултати Ñу уÑпешни оÑим ако N није негативно иливеће од $#."
+
+#: builtins.c:1201 builtins.c:1216
+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"
+" \n"
+" Чита и извршава наредбе из ДÐТОТЕКЕ у текућој шкољци. УноÑи у\n"
+" $ПУТÐЊИ Ñе кориÑте за налажење директоријума који Ñадржи ДÐТОТЕКУ.\n"
+" Ðко је доÑтављен неки од ÐРГУМЕÐТÐТÐ, поÑтају параметри положаја\n"
+" приликом извршавања ДÐТОТЕКЕ.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје Ñтање поÑледње извршене наредбе у ДÐТОТЕЦИ; не уÑпева\n"
+" ако назив ДÐТОТЕКЕ не може бити прочитан."
+
+#: builtins.c:1232
+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 ""
+"ОбуÑтавља извршавање шкољке.\n"
+" \n"
+" ОбуÑтавља извршавање ове шкољке Ñве док не прими Ñигнал БРОЈ_СИГÐÐЛÐ.\n"
+" ОÑим ако ниÑу приÑиљене, шкољке пријављивања не могу бити обуÑтављене.\n"
+" \n"
+" Опције:\n"
+" -f\tприморава обуÑтављање, чак и ако је шкољка пријављивања\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није укључено управљање поÑлом или ако "
+"не дође до грешке."
+
+#: builtins.c:1248
+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 and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\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"
+" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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 ""
+"Процењује уÑловни израз.\n"
+" \n"
+" Излази Ñа Ñтањем 0 (тачно) или 1 (нетачно) у завиÑноÑти од\n"
+" процене ИЗРÐЗÐ. Изрази могу бити једночлани или двочлани. Једночлани\n"
+" изрази Ñе чеÑто кориÑте за иÑпитивање Ñтања датотеке. Ту Ñу такође и\n"
+" оператори ниÑке и оператори поређења бројева.\n"
+" \n"
+" Понашање пробе завиÑи од броја аргумената. Прочитајте\n"
+" Ñтраницу упутÑтва баша потпуну одредбу.\n"
+" \n"
+" Оператори датотеке:\n"
+" \n"
+" -a ДÐТОТЕКРТачно ако датотека поÑтоји.\n"
+" -b ДÐТОТЕКРТачно ако је датотека поÑебног блока.\n"
+" -c ДÐТОТЕКРТачно ако је датотека поÑебног знака.\n"
+" -d ДÐТОТЕКРТачно ако је датотека директоријум.\n"
+" -e ДÐТОТЕКРТачно ако датотека поÑтоји.\n"
+" -f ДÐТОТЕКРТачно ако датотека поÑтоји и ако је обична "
+"датотека.\n"
+" -g ДÐТОТЕКРТачно ако је датотека подеÑи-иб-групе.\n"
+" -h ДÐТОТЕКРТачно ако је датотека Ñимболичка веза.\n"
+" -L ДÐТОТЕКРТачно ако је датотека Ñимболичка веза.\n"
+" -k ДÐТОТЕКРТачно ако датотека има Ñвој „лепљиви“ Ñкуп бита.\n"
+" -p ДÐТОТЕКРТачно ако је датотека именована Ñпојка.\n"
+" -r ДÐТОТЕКРТачно ако датотеку Ñамо ви можете да читате.\n"
+" -s ДÐТОТЕКРТачно ако датотека поÑтоји и није празна.\n"
+" -S ДÐТОТЕКРТачно ако је датотека прикључница.\n"
+" -t ФД Тачно ако је ФД отворен на терминалу.\n"
+" -u ДÐТОТЕКРТачно ако је датотека подеÑи-иб-кориÑника.\n"
+" -w ДÐТОТЕКРТачно ако у датотеку можете ви да пишете.\n"
+" -x ДÐТОТЕКРТачно ако датотеку можете ви да извршите.\n"
+" -O ДÐТОТЕКРТачно ако је датотека заправо у вашем влаÑништву.\n"
+" -G ДÐТОТЕКРТачно ако је датотека заправо у влаÑништву ваше "
+"групе.\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"
+" \n"
+" ÐИСКÐ1 = ÐИСКÐ2 Тачно ако Ñу ниÑке једнаке.\n"
+" ÐИСКÐ1 != ÐИСКÐ2 Тачно ако ниÑке ниÑу једнаке.\n"
+" ÐИСКÐ1 < ÐИСКÐ2 Тачно ако ÐИСКÐ1 долази пре ÐИСКЕ2 "
+"лекÑикографÑки.\n"
+" ÐИСКÐ1 > ÐИСКÐ2 Тачно ако ÐИСКÐ1 долази поÑле ÐИСКЕ2 "
+"лекÑикографÑки.\n"
+" \n"
+" ОÑтали оператори:\n"
+" \n"
+" -o ОПЦИЈРТачно ако је опција шкољке ОПЦИЈРукључена.\n"
+" -v ПРОМ\t Тачно ако је променљива шкољке ПРОМ подешена\n"
+" -R ПРОМ\t Тачно ако је променљива шкољке ПРОМ подешена и ако "
+"је упута назива.\n"
+" ! ИЗРÐЗ Тачно ако је израз нетачан.\n"
+" ИЗРÐЗ1 -a ИЗРÐЗ2 Тачно ако је тачан и израз1 И израз2.\n"
+" ИЗРÐЗ1 -o ИЗРÐЗ2 Тачно ако је тачан или израз1 ИЛИ израз2.\n"
+" \n"
+" арг1 ОП арг2 Ðритметичка проба. ОП је једно од Ñледећег: -eq, -"
+"ne,\n"
+" -lt, -le, -gt, or -ge.\n"
+" \n"
+" Ðритметички двочлани оператори дају тачно ако је ÐРГ1 једнак, није-"
+"једнак,\n"
+" мањи-од, мањи-од-или-једнак, већи-од, или већи-од-или-једнак Ñа ÐРГ2.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат ако Ñе ИЗРÐЗ процени на тачно; неуÑпех ако Ñе "
+"ИЗРÐЗ процени\n"
+" на нетачно или ако је дат неиÑправан аргумент."
+
+#: builtins.c:1329
+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 ""
+"Процењује уÑловни израз.\n"
+" \n"
+" Ово је Ñиноним за уграђеноÑÑ‚ „test“, али поÑледњи аргумент мора\n"
+" бити доÑловна ], да поклопи отворену [."
+
+#: builtins.c:1338
+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 ""
+"Приказује времена процеÑа.\n"
+" \n"
+" ИÑпиÑује нагомилана времена кориÑника и ÑиÑтема за шкољку и за Ñве\n"
+" њене проиÑтекле процеÑе.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Увек уÑпешно."
+
+#: builtins.c:1350
+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. "
+"If\n"
+" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+" script run by the . or source builtins finishes executing. A "
+"SIGNAL_SPEC\n"
+" of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
+" shell to exit when the -e option is enabled.\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 <signal.h> 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"
+" ÐРГ је наредба за читање и извршавање када шкољка прими ОДРЕДБУ_СИГÐÐЛÐ\n"
+" Ñигнала. Ðко ÐРГ недоÑтаје (а доÑтављена је једна ОДРЕДБÐ_СИГÐÐЛÐ) или\n"
+" „-“, Ñваки наведени Ñигнал Ñе враћа на првобитну вредноÑÑ‚. Ðко је ÐРГ\n"
+" ништавна ниÑка Ñвака ОДРЕДБÐ_СИГÐÐЛРÑе занемарује од Ñтране шкољке и "
+"од\n"
+" наредби које призива.\n"
+" \n"
+" Ðко је ОДРЕДБÐ_СИГÐÐЛРИЗÐЂИ (0) ÐРГ Ñе извршава при излаÑку из шкољке.\n"
+" Ðко је ОДРЕДБÐ_СИГÐÐЛРПРОЧИСТИ, ÐРГ Ñе извршава пре Ñваке једноÑтавне\n"
+" наредбе. Ðко је ОДРЕДБÐ_СИГÐÐЛРВРÐТИ, ÐРГ Ñе извршава Ñваки пут када "
+"Ñе\n"
+" заврши извршавање функције шкољке или ÑпиÑа покренутих . или "
+"уграђеноÑти\n"
+" извора. ОДРЕДБÐ_СИГÐÐЛРили ГРЕШКРзначи извршавање ÐРГ-а Ñваки пут "
+"када\n"
+" би неуÑпех наредбе довео до излаÑка шкољке када је укључена опција „-"
+"e“.\n"
+" \n"
+" Ðко ниÑу доÑтављени аргументи, „trap“ иÑпиÑује ÑпиÑак наредби "
+"придружених\n"
+" Ñваком Ñигналу.\n"
+" \n"
+" Опције:\n"
+" -l\tиÑпиÑује ÑпиÑак назива Ñигнала и њихових одговарајућих бројева\n"
+" -p\tприказује наредбе хватања придружене Ñвакој ОДРЕДБИ_СИГÐÐЛÐ\n"
+" \n"
+" Свака ОДРЕДБÐ_СИГÐÐЛРје или назив Ñигнала у <signal.h> или број "
+"Ñигнала.\n"
+" Ðазиви Ñигнала ниÑу оÑетљиви на величину Ñлова а Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¡Ð˜Ð“ је опција.\n"
+" Сигнал може бити поÑлат шкољци помоћу „kill -signal $$“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим за неиÑправну ОДРЕДБÐ_СИГÐÐЛРили за "
+"неиÑправну опцију."
+
+#: builtins.c:1386
+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 ""
+"Приказује податке о врÑти наредбе.\n"
+" \n"
+" За Ñваки ÐÐЗИВ, показује како би био тумачен ако би Ñе кориÑтио као\n"
+" назив наредбе.\n"
+" \n"
+" Опције:\n"
+" -a\tприказује Ñва меÑта која Ñадрже извршну под називом ÐÐЗИВ;\n"
+" \t укључује пÑеудониме, уграђеноÑти, и функције, ако и Ñамо ако\n"
+" \t опција „-p“ није такође коришћена\n"
+" -f\tпотиÑкује тражење функције шкољке\n"
+" -P\tприморава претрагу ПУТÐЊЕ за Ñваким ÐÐЗИВОМ, чак и ако је "
+"пÑеудоним,\n"
+" \t уграђеноÑÑ‚, или функција, и враћа назив датотеке диÑка која ће "
+"бити\n"
+" \t извршена\n"
+" -p\tдаје или назив датотеке диÑка која ће бити извршена, или ништа\n"
+" \t ако „type -t ÐÐЗИВ“ неће дати „датотеку“.\n"
+" -t\tиÑпиÑује једну реч која је једна од Ñледећих: „alias“, „keyword“,\n"
+" \t „function“, „builtin“, „file“ или „“, ако је ÐÐЗИВ пÑеудоним, "
+"реч\n"
+" \t резервиÑана шкољком, функција шкољке, уграђеноÑÑ‚ шкољке, "
+"датотека диÑка,\n"
+" или ако није пронађена\n"
+" \n"
+" Ðргументи:\n"
+" ÐÐЗИВ\tÐазив наредбе за тумачење.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат ако Ñу пронађени Ñви ÐÐЗИВИ; неуÑпех ако ниједан "
+"није пронађен."
+
+#: builtins.c:1417
+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"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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 ""
+"Мења ограничења изворишта шкољке.\n"
+" \n"
+" Обезбеђује управљање над извориштима доÑтупним шкољци и обрађује\n"
+" његово Ñтварање, на ÑиÑтемима који омогућавају такво управљање.\n"
+" \n"
+" Опције:\n"
+" -S\tкориÑти „меко“ ограничење изворишта\n"
+" -H\tкориÑти „јако“ ограничење изворишта\n"
+" -a\tизвештено је о Ñвим текућим ограничењима\n"
+" -b\tвеличина међумеморије прикључнице\n"
+" -c\tнајвећа величина Ñтворених кључних датотека\n"
+" -d\tнајвећа величина подеока податка процеÑа\n"
+" -e\tнајвећа хитноÑÑ‚ заказивања („фино“)\n"
+" -f\tнајвећа величина датотеке коју запише шкољка и њен пород\n"
+" -i\tнајвећи број Ñигнала на чекању\n"
+" -l\tнајвећа величина коју Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ да закључа у меморији\n"
+" -m\tнајвећа величина боравишног Ñкупа\n"
+" -n\tнајвећи број отворених опиÑника датотеке\n"
+" -p\tвеличина међумеморије Ñпојке\n"
+" -q\tнајвећи број бајтова у редовима поруке ПОСИКС-а\n"
+" -r\tнајвећа хитноÑÑ‚ заказивања у Ñтварном времену\n"
+" -s\tнајвећа величина Ñпремника\n"
+" -t\tнајвећи Ð¸Ð·Ð½Ð¾Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð° процеÑора у Ñекундама\n"
+" -u\tнајвећи број кориÑничких процеÑа\n"
+" -v\tвеличина виртуелне меморије\n"
+" -x\tнајвећи број закључавања датотеке\n"
+" -T највећи број нити\n"
+" \n"
+" ÐиÑу Ñве опције доÑтупне на Ñвим платформама.\n"
+" \n"
+" Ðко је дато ОГРÐÐИЧЕЊЕ, то је нова вредноÑÑ‚ наведеног изворишта;\n"
+" поÑебне вредноÑти ОГРÐÐИЧЕЊР„soft“, „hard“, и „unlimited“ Ñтоје\n"
+" за текуће меко ограничење, текуће јако ограничење, и без ограничења.\n"
+" У Ñупротном, тренутна вредноÑÑ‚ наведеног изворишта Ñе иÑпиÑује. Ðко\n"
+" није дата ниједна опција, онда Ñе подразумева „-f“.\n"
+" \n"
+" ВредноÑти Ñу у 1024-битном повећавању, изузев за „-t“ која је у "
+"Ñекундама,\n"
+" „-p“ која Ñе повећава за 512 бајта, и „-u“ која је произвољан број\n"
+" процеÑа.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или ако "
+"не дође до грешке."
+
+#: builtins.c:1465
+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 ""
+"Приказује или подешава маÑку режима датотеке.\n"
+" \n"
+" Подешава кориÑничку маÑку Ñтварања датотеке на РЕЖИМ. Ðко је РЕЖИМ\n"
+" изоÑтављен, иÑпиÑује текућу вредноÑÑ‚ маÑке.\n"
+" \n"
+" Ðко РЕЖИМ почиње цифром, тумачи Ñе као октални број; у Ñупротном то је\n"
+" Ñимболичка ниÑка режима као она коју прихвата „chmod(1)“.\n"
+" \n"
+" Опције:\n"
+" -p\tако је РЕЖИМ изоÑтављен, иÑпиÑује у облику који може бити поново "
+"коришћен као улаз\n"
+" -S\tчини излаз Ñимболичким; у Ñупротном излаз је октални број\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако је РЕЖИМ неиÑправан или ако је дата "
+"неиÑправна опција."
+
+#: builtins.c:1485
+msgid ""
+"Wait for job completion and return exit status.\n"
+" \n"
+" Waits for each process identified by an 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 that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
+msgstr ""
+"Чека на довршавање поÑла и даје излазно Ñтање.\n"
+" \n"
+" Чека на Ñваки Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ð´Ñ€ÐµÑ’ÐµÐ½ ИБ-ом, који може бити ИБ процеÑа или\n"
+" одредба поÑла, и извештава о његовом Ñтању окончавања. Ðко ИБ није\n"
+" дат, чека на Ñве тренутно радне потпроцеÑе, а излазно Ñтање је нула.\n"
+" Ðко је ИБ одредба поÑла, чека на Ñве процеÑе у тој Ñпојници поÑла.\n"
+" \n"
+" Ðко је доÑтављена опција „-n“, чека на Ñледећи поÑао да заврши и\n"
+" иÑпиÑује његово излазно Ñтање.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледњег ИБ-а; неуÑпех ако је ИБ неиÑправан или ако је\n"
+" дата неиÑправна опција."
+
+#: builtins.c:1506
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status is zero. PID must be a process ID.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
+msgstr ""
+"Чека на довршавање процеÑа и даје излазно Ñтање.\n"
+" \n"
+" Чека на Ñваки Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°Ð²ÐµÐ´ÐµÐ½ ПИБ-ом и извештава о његовом излазном "
+"Ñтању.\n"
+" Ðко ПИБ ниије дат, чека на Ñве тренутно радне потпроцеÑе, а враћено "
+"Ñтање\n"
+" је нула. ПИБ мора бити ИБ процеÑа.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледњег ПИБ-а; неуÑпех ако је ПИБ неиÑправан или ако је "
+"дата\n"
+" неиÑправна опција."
+
+#: builtins.c:1521
+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 ""
+"Извршава наредбе за Ñваког члана на ÑпиÑку.\n"
+" \n"
+" Петља `„for“ извршава низ наредбиза Ñваког члана на ÑпиÑку Ñтавки.\n"
+" Ðко „in WORDS ...;“ није приÑутно, тада Ñе подразумева „in \"$@\"“.\n"
+" За Ñваки елемент у РЕЧИМÐ, ÐÐЗИВ Ñе подешава на тај елемент, и\n"
+" ÐÐРЕДБЕ Ñе извршавају.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1535
+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"
+" \n"
+" ИÑто што и\n"
+" \t(( ИЗРÐЗ1 ))\n"
+" \twhile (( ИЗРÐЗ2 )); do\n"
+" \t\tÐÐРЕДБЕ\n"
+" \t\t(( ИЗРÐЗ3 ))\n"
+" \tdone\n"
+" ИЗРÐЗ1, ИЗРÐЗ2, и ИЗРÐЗ3 јеÑу аритметички изрази. Ðко је изоÑтављен "
+"неки израз,\n"
+" понаша Ñе као да Ñе процењује на 1.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1553
+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"
+" РЕЧИ Ñу раширене, Ñтварајући ÑпиÑак речи. Скуп раширених\n"
+" речи Ñе иÑпиÑује на Ñтандардној грешци, где Ñвакој претходи\n"
+" број. Ðко „in WORDS“ није приÑутно, подразумева Ñе „in \"$@\"“.\n"
+" ПС3 упит Ñе тада приказује а ред Ñе чита Ñа Ñтандардног улаза.\n"
+" Ðко Ñе ред ÑаÑтоји од броја који одговара једној од приказаних\n"
+" речи, тада Ñе ÐÐЗИВ подешава на ту реч. Ðко је ред празан,\n"
+" РЕЧИ и упит Ñе поново приказују. Ðко је прочитан крај датотеке, \n"
+" наредба Ñе довршава. Свака друга прочитана вредноÑÑ‚ доводи\n"
+" до тога да ÐÐЗИВ бива подешен на ништа. Читање реда Ñе чува\n"
+" у променљивој ОДГОВОРИ. ÐÐРЕДБЕ Ñе извршавају након Ñваког\n"
+" избора Ñве док Ñе не изврши наредба за прекид.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1574
+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"
+" времена процеÑора, и времена ÑиÑтемÑког процеÑора утрошеног на\n"
+" извршавање СПОЈÐОГРЕДРкада Ñе оконча.\n"
+" \n"
+" Опције:\n"
+" -p\tиÑпиÑује Ñажетак времена у преноÑном запиÑу ПоÑикÑа\n"
+" \n"
+" ВредноÑÑ‚ променљиве ЗÐПИСÐВРЕМЕÐÐ Ñе кориÑти као излазни запиÑ.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Стање резултата јеÑте Ñтање резултата СПОЈÐОГРЕДÐ."
+
+#: builtins.c:1591
+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 ""
+"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"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1603
+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 ""
+"Извршава наредбе на оÑнову уÑловноÑти.\n"
+" \n"
+" Извршава Ñе ÑпиÑак „if ÐÐРЕДБЕ“. Ðко је његово излазно Ñтање нула, тада "
+"Ñе\n"
+" извршава ÑпиÑак „then ÐÐРЕДБЕ“. У Ñупротном, Ñваки ÑпиÑак „elif "
+"ÐÐРЕДБЕ“\n"
+" Ñе извршава на Ñмену, и ако је његово излазно Ñтање нула, одговарајући "
+"ÑпиÑак\n"
+" „then ÐÐРЕДБЕ“ Ñе извршава и наредба „if“ Ñе завршава. У Ñупротном, "
+"извршава\n"
+" Ñе ÑпиÑак „else ÐÐРЕДБЕ“, ако поÑтоји. Излазно Ñтање читаве "
+"конÑтрукције је\n"
+" излазно Ñтање поÑледње извршене наредбе, или нула ако нема иÑпробаног "
+"уÑлова.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1620
+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 ""
+"Извршава наредбе након што Ñе проба уÑпешно обави.\n"
+" \n"
+" Шири и извршава ÐÐРЕДБЕ након што завршна наредба у „while“ ÐÐРЕДБÐÐœÐ\n"
+" има излазно Ñтање нуле.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1632
+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 ""
+"Извршава наредбе након што Ñе проба уÑпешно обави.\n"
+" \n"
+" Шири и извршава ÐÐРЕДБЕ након што завршна наредба у „until“ ÐÐРЕДБÐÐœÐ\n"
+" има излазно Ñтање које није нула.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1644
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Ствара ÐºÐ¾Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð´ називом ÐÐЗИВ.\n"
+" \n"
+" Извршава наредбу неÑаглаÑно, Ñа Ñтандардним излазом и Ñтандардним\n"
+" улазом наредбе повезане путем Ñпојке Ñа опиÑницима датотека додељених\n"
+" да назначе 0 и 1 ÐÐЗИВРпроменљиве низа у шкољци извршавања.\n"
+" ОÑновни ÐÐЗИВ је „COPROC“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје излазно Ñтање ÐÐРЕДБЕ."
+
+#: builtins.c:1658
+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 ""
+"Одређује функцију шкољке.\n"
+" \n"
+" Ствара функцију шкољке под називом ÐÐЗИВ. Када Ñе призове као једна "
+"наредба,\n"
+" ÐÐЗИВ покреће ÐÐРЕДБЕ у контекÑту шкољке позивања. Када Ñе призове "
+"ÐÐЗИВ,\n"
+" аргументи Ñе проÑлеђују функцији као $1...$n, а назив функције Ñе налази "
+"у\n"
+" $ÐÐЗИВУ_ФУÐКЦИЈЕ.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако је ÐÐЗИВ Ñамо за читање."
+
+#: builtins.c:1672
+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"
+" \n"
+" Покреће Ñкуп наредби у групи. Ово је један од начина за преуÑмеравање\n"
+" читавог Ñкупа наредби.\n"
+" \n"
+" Излазно Ñтање:\n"
+" ИÑпиÑује Ñтање поÑледње извршене наредбе."
+
+#: builtins.c:1684
+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 ""
+"ÐаÑтавља поÑао у првом плану.\n"
+" \n"
+" ИÑто као и аргумент ОДРЕДБÐ_ПОСЛРу наредби „fg“. ÐаÑтавља зауÑтављени\n"
+" или поÑао у позадини. ОДРЕДБÐ_ПОСЛРможе да наведе назив поÑла или "
+"број\n"
+" поÑла. Пропративши ОДРЕДБУ_ПОСЛРÑа & поÑтавља поÑао у позадину, као\n"
+" да је одредба поÑла доÑтављена као аргумент уз „bg“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје Ñтање наÑтављеног поÑла."
+
+#: builtins.c:1699
+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"
+" \n"
+" ИЗРÐЗ Ñе процењује у Ñкладу Ñа правилима за аритметичко процењивање.\n"
+" ИÑто што и „let ИЗРÐЗ“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје 1 ако Ñе ИЗРÐЗ процени на 0; у Ñупротном даје 0."
+
+#: builtins.c:1711
+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 ""
+"Извршава уÑловну наредбу.\n"
+" \n"
+" Даје Ñтање 0 или 1 у завиÑноÑти од процене уÑловног израз ИЗРÐЗ.\n"
+" Изрази Ñу ÑаÑтављени од иÑтих примарних које кориÑти уграђеноÑÑ‚\n"
+" „test“, и може бити комбиновано употребом Ñледећих оператора:\n"
+" \n"
+" ( ИЗРÐЗ )\t Даје вредноÑÑ‚ ИЗРÐЗÐ\n"
+" ! ИЗРÐЗ\t\tТачно ако је ИЗРÐЗ нетачан; у Ñупротном нетачно\n"
+" ИЗРÐЗ1 && ИЗРÐЗ2\tТачно ако Ñу и ИЗРÐЗ1 и ИЗРÐЗ2 тачни; у Ñупротном "
+"нетачно\n"
+" ИЗРÐЗ1 || ИЗРÐЗ2\tТачно ако је или ИЗРÐЗ1 или ИЗРÐЗ2 тачан; у "
+"Ñупротном нетачно\n"
+" \n"
+" КÐда Ñе кориÑте оператори „==“ и „!=“, ниÑка Ñа деÑне Ñтране оператора\n"
+" Ñе кориÑти као шаблон а поређење Ñа шаблоном Ñе обавља. Када Ñе "
+"кориÑти\n"
+" оператор „=~“, ниÑка Ñа деÑне Ñтране оператора Ñе поклапа као регуларни\n"
+" израз.\n"
+" \n"
+" Оператори && и || не процењују ИЗРÐЗ2 ако је ИЗРÐЗ1 довољан за "
+"одређивање\n"
+" вредноÑти израза.\n"
+" \n"
+" Излазно Ñтање:\n"
+" 0 или 1 у завиÑноÑти од вредноÑÑ‚ ИЗРÐЗÐ."
+
+#: builtins.c:1737
+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"
+" \n"
+" ИЗДÐЊЕ_БÐШРПодаци о издању за овај Баш.\n"
+" ЦДПУТÐЊРСпиÑак директоријума раздвојен двотачком за тражење\n"
+" директоријума који Ñу дати као аргументи за „cd“.\n"
+" ОПШТЕЗÐÐЕМÐРИ СпиÑак шаблона раздвојен двотачком који опиÑује "
+"називе\n"
+" датотека који ће бити занемарени ширењем назива "
+"путање.\n"
+" ИСТОРИОТЕКРÐазив датотеке у којој је Ñмештен иÑторијат "
+"наредби.\n"
+" ВЕЛИЧИÐÐИСТОРИОТЕКЕ Ðајвећи број редова које може да Ñадржи ова "
+"датотека.\n"
+" ВЕЛИЧИÐÐИСТОРИЈÐТРÐајвећи број редова иÑторијата којима покренута\n"
+" шкољка може да приÑтупи.\n"
+" ЛИЧÐО Потпуна путања до вашег директоријума пријављивања.\n"
+" ÐÐЗИВДОМÐЋИÐÐ Ðазив текућег домаћина.\n"
+" ВРСТÐДОМÐЋИÐÐ Ð’Ñ€Ñта процеÑора под којим ради ово издање Баша.\n"
+" ЗÐÐЕМÐРИКРД Управља радњом шкољке при пријему знака за крај "
+"датотеке\n"
+" Ñамо као улаза. Ðко је подешено, онда је његова "
+"вредноÑÑ‚\n"
+" број знакова КРД-а који могу бити виђени у реду "
+"празног\n"
+" реда пре него ли шкољка изађе (оÑновно је 10). "
+"Када\n"
+" није подешено, КРД значи крај улаза.\n"
+" ВРСТÐÐœÐШИÐЕ ÐиÑка која опиÑује текући ÑиÑтем на коме је Баш "
+"покренут.\n"
+" ПРОВЕРÐПОШТЕ Колико чеÑто, у Ñекундама, Баш првоерава нову "
+"пошту.\n"
+" ПУТÐЊÐПОШТЕ СпиÑак датотека раздвојен двотачком које Баш "
+"проверава\n"
+" за новом поштом.\n"
+" ВРСТÐОСРИздање ЈуникÑа на коме је покренуто ово издање "
+"Баша.\n"
+" ПУТÐЊРСпиÑак директоријума раздвојен двотачком за "
+"претрагу\n"
+" приликом тражења наредби.\n"
+" ÐÐРЕДБÐ_УПИТРÐаредба која ће бити извршена пре иÑпиÑивања Ñваког\n"
+" главног упита.\n"
+" ÐГУ1 ÐиÑка главног упита.\n"
+" ÐСУ2 ÐиÑка Ñпоредног упита.\n"
+" ШРД Пуна путања текућег директоријума.\n"
+" ОПЦИЈЕШКОЉКЕ СпиÑак раздвојен двотачком укључених опција шкољке.\n"
+" ТЕРМИÐÐЛ Ðазив врÑте текућег терминала.\n"
+" ЗÐПИСВРЕМЕÐРИзлазни Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° ÑтатиÑтике времена које приказује\n"
+" резервиÑана реч „time“.\n"
+" Ñам_наÑтави Ðе-ништа значи да је реч наредбе која Ñе појављује "
+"на реду\n"
+" Ñама по Ñеби прва тражена на ÑпиÑку тренутно "
+"зауÑтављених\n"
+" поÑлова. Ðко Ñе ту пронађе, тај поÑао Ñе поÑтавља у "
+"први\n"
+" план. ВредноÑÑ‚ „exact“ значи да реч наредбе мора "
+"тачно да\n"
+" одговара наредби на ÑпиÑку зауÑтављених поÑлова. "
+"ВредноÑÑ‚\n"
+" „substring“ значи да реч наредбе мора да одговара "
+"подниÑци\n"
+" поÑла. Свака друга вредноÑÑ‚ значи да наредба мора "
+"бити\n"
+" Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð·Ð°ÑƒÑтављеног поÑла.\n"
+" знакиÑторијата Знаци који управљају ширењем иÑторијата и брзом "
+"заменом.\n"
+" Први знак јеÑте знак замене иÑторијата, обично је то "
+"„!“.\n"
+" Други јеÑте знак „брзе замене“, обично је то „^“. "
+"Трећи\n"
+" јеÑте знак „напомене иÑторијата“, обично је то „#“.\n"
+" ЗÐÐЕМÐРИИСТОРИЈÐТ СпиÑак шаблона раздвојен двотачком коришћених за "
+"одлучивање\n"
+" о наредбама које требају бити Ñачуване на ÑпиÑку "
+"иÑторијата.\n"
+
+#: builtins.c:1794
+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"
+" -n\tПотиÑкује нормалну замену директоријума приликом додавања\n"
+" \t директоријума у Ñпремник, тако да Ñе ради Ñамо Ñа Ñпремником.\n"
+" \n"
+" Ðргументи:\n"
+" +N\tОкреће Ñпремник тако да је N-ти директоријум на врху (бројећи\n"
+" Ñа леве Ñтране ÑпиÑка кога приказује „dirs“, почевши од "
+"нуле).\n"
+" \n"
+" -N\tОкреће Ñпремник тако да је N-ти директоријум на врху (бројећи\n"
+" Ñа деÑне Ñтране ÑпиÑка кога приказује „dirs“, почевши од "
+"нуле).\n"
+" \n"
+" dir\tДодајеs ДИР у Ñпремник директоријума на врху, учинивши га новим\n"
+" \t текућим радним директоријумом.\n"
+" \n"
+" УграђеноÑÑ‚ „dirs“ приказује Ñпремник директоријума.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није доÑтављен неиÑправан аргумент или "
+"замена\n"
+" директоријума не уÑпе."
+
+#: builtins.c:1828
+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\tПотиÑкује уобичајену замену директоријума приликом уклањања\n"
+" \t директоријума из Ñпремника, тако да Ñе ради Ñамо Ñа "
+"Ñпремником.\n"
+" \n"
+" Ðргументи:\n"
+" +N\tУклања N-ти ÑƒÐ½Ð¾Ñ Ð¿Ð¾Ñ‡ÐµÐ²ÑˆÐ¸ Ñа леве Ñтране ÑпиÑка кога приказује\n"
+" \t „dirs“, почевши од нуле. Ðа пример: „popd +0“ уклања први\n"
+" \t директоријум, „popd +1“ други.\n"
+" \n"
+" -N\tУклања N-ти ÑƒÐ½Ð¾Ñ Ð¿Ð¾Ñ‡ÐµÐ²ÑˆÐ¸ Ñа деÑне Ñтране ÑпиÑка кога приказује\n"
+" \t „dirs“, почевши од нуле. Ðа пример: „popd -0“ уклања "
+"поÑледњи\n"
+" \t директоријум, „popd -1“ претпоÑледњи.\n"
+" \n"
+" УграђеноÑÑ‚ „dirs“ приказује Ñпремник директоријума.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није доÑтављен неиÑправан аргумент или "
+"измена\n"
+" директоријума не уÑпе."
+
+#: builtins.c:1858
+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"
+" \n"
+" Приказује ÑпиÑак тренутно запамћених директоријума. Директоријуми\n"
+" налазе Ñвој пут до ÑпиÑка помоћу наредбе „pushd“; можете да Ñе вратите\n"
+" назад на ÑпиÑак помоћу наредбе „popd“.\n"
+" \n"
+" Опције:\n"
+" -c\tчиÑти Ñпремник директоријума бриÑањем Ñвих елемената\n"
+" -l\tне иÑпиÑује издања директоријума Ñа предметком тилде\n"
+" \t одноÑне на ваш лични директоријум\n"
+" -p\tиÑпиÑује Ñпремник директоријума Ñа једним уноÑом у реду\n"
+" -v\tиÑпиÑује Ñпремник директоријума Ñа једним уноÑом у реду\n"
+" Ñа предметком Ñвог положаја у Ñпремнику\n"
+" \n"
+" Ðргументи:\n"
+" +N\tПриказујеs N-ти ÑƒÐ½Ð¾Ñ Ð±Ñ€Ð¾Ñ˜ÐµÑ›Ð¸ Ñа леве Ñтране на ÑпиÑку кога\n"
+" приказује „dirs“ када Ñе призове без опција, почевши од "
+"нуле.\n"
+" \n"
+" -N\tПриказујеs N-ти ÑƒÐ½Ð¾Ñ Ð±Ñ€Ð¾Ñ˜ÐµÑ›Ð¸ Ñа деÑне Ñтране на ÑпиÑку кога\n"
+" приказује „dirs“ када Ñе призове без опција, почевши од "
+"нуле.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или ако "
+"не дође до грешке."
+
+#: builtins.c:1887
+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 ""
+"Подешава и раÑподешава опције шкољке.\n"
+" \n"
+" Мења подешавање Ñваке оције шкољке ÐÐЗИВ_ОПЦИЈЕ. Без аргумената "
+"опција,\n"
+" иÑпиÑује Ñве опције шкољке Ñа назнаком да ли је Ñвака подешена или "
+"није.\n"
+" \n"
+" Опције:\n"
+" -o\tограничава ÐÐЗИВЕ_ОПЦИЈРна оне одређене за коришћење Ñа „set -o“\n"
+" -p\tиÑпиÑује Ñваку опцију љуÑке Ñа назнаком њеног Ñтања\n"
+" -q\tпотиÑкује излаз\n"
+" -s\tукључује (подешава) Ñваки ÐÐЗИВ_ОПЦИЈЕ\n"
+" -u\tиÑкључује (раÑподешава) Ñваки ÐÐЗИВ_ОПЦИЈЕ\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат ако је ÐÐЗИВ_ОПЦИЈЕ укључен; неуÑпех ако је "
+"дата\n"
+" неиÑправна опција или ако је ÐÐЗИВ_ОПЦИЈЕ иÑкључен."
+
+#: builtins.c:1908
+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"
+" 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"
+" %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
+" string for strftime(3)\n"
+" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or a write or "
+"assignment\n"
+" error occurs."
+msgstr ""
+"Обликује и иÑпиÑује ÐРГУМЕÐТЕ под управом ЗÐПИСÐ.\n"
+" \n"
+" Опције:\n"
+" -v пром\tдодељује излаз променљивој шкољке ПРОМ умеÑто да га\n"
+" \t\tприкаже на Ñтандардном излазу\n"
+" \n"
+" ЗÐПИС јеÑте ниÑка знака која Ñадржи три врÑте објекта: обични знаци,\n"
+" који Ñе једноÑтавно умножавају на Ñтандардни излаз; низови прекида\n"
+" знака, који Ñе претварају и умножавају на Ñтандардни излаз; и одредбе\n"
+" запиÑа, од којих Ñвака доводи до иÑпиÑивања Ñледећег наредног "
+"аргумента.\n"
+" \n"
+" Као додатак одредбама Ñтандардног запиÑа опиÑаних у „printf(1)“,\n"
+" „printf“ тумачи:\n"
+" \n"
+" %b\tшири низове прекида контра коÑе црте у одговарајући аргумент\n"
+" %q\tцитира аргумент на начин како би био коришћен као улаз шкољке\n"
+" %(fmt)T иÑпиÑује ниÑку датум-време резултирајући коришћењем ФМТ-а "
+"као\n"
+" ниÑке запиÑа за „strftime(3)“\n"
+" \n"
+" Ð—Ð°Ð¿Ð¸Ñ Ñе поново кориÑти јер је потребно утрошити Ñве аргументе. Ðко\n"
+" има више аргумената него што то захтева запиÑ, излишне одредбе запиÑа\n"
+" Ñе понашају као да је доÑтављена вредноÑÑ‚ нуле или ништавна ниÑка.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако не\n"
+" дође до грешке пиÑања или доделе."
+
+#: builtins.c:1942
+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"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Ðаводи како ће аргументе да доврши Читај ред.\n"
+" \n"
+" За Ñваки ÐÐЗИВ, наводи како ће аргументи бити довршени. Ðко опције\n"
+" ниÑу доÑтављене, поÑтојеће одредбе довршавања Ñе иÑпиÑују на начин\n"
+" који омогућава да буду поново коришћене као улаз.\n"
+" \n"
+" Опције:\n"
+" -p\tиÑпиÑује поÑтојеће одредбе довршавања у поново употребљивом "
+"запиÑу\n"
+" -r\tуклања одредбу довршавања за Ñваки ÐÐЗИВ, или, ако ÐÐЗИВИ ниÑу\n"
+" \t доÑтављени, Ñве одредбе довршавања\n"
+" -D\tпримењује довршавања и радње као оÑновне за радње\n"
+" \t без одређеног поÑебног довршавања\n"
+" -E\tпримењује довршавања и радње на „празне“ наредбе --\n"
+" \t довршавање покушано на празном реду\n"
+" \n"
+" Када Ñе покуша Ñа довршавањем, радње Ñе примењују по редоÑледу опција\n"
+" великих Ñлова наведених горе. Опција „-D“ има првенÑтво над „-E“.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или ако "
+"не дође до грешке."
+
+#: builtins.c:1970
+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"
+" Ðко је доÑтављен изборни аргумент РЕЧ, Ñтварају Ñе поређења Ñа РЕЧЈУ.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или ако "
+"не дође до грешке."
+
+#: builtins.c:1985
+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 being executed. If no OPTIONs are given, "
+"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"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\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 ""
+"Мења или приказује опције довршавања.\n"
+" \n"
+" Мења опције довршавања за Ñваки ÐÐЗИВ, или, ако ÐÐЗИВИ ниÑу доÑтављени,\n"
+" довршавања које Ñе тренутно извршава. Ðко ОПЦИЈЕ ниÑу дате, иÑпиÑује\n"
+" опције довршавања за Ñваки ÐÐЗИВ или одредбу текућег довршавања.\n"
+" \n"
+" Опције:\n"
+" \t-o опција\tПодешава опцију довршавања ОПЦИЈРза Ñваки ÐÐЗИВ\n"
+" \t-D\t\tМења опције за „оÑновно“ довршавање наредбе\n"
+" \t-E\t\tМења опције за „празно“ довршавање наредбе\n"
+" \n"
+" Употреба „+o“ умеÑто „-o“ иÑкључује наведену опцију.\n"
+" \n"
+" Ðргументи:\n"
+" \n"
+" Сваки ÐÐЗИВ упућује на наредбу за коју одредба довршавања мора "
+"претходно\n"
+" бити одређена употребом уграђеноÑти „complete“. Ðко ÐÐЗИВИ ниÑу дати,\n"
+" „compopt“ мора бити позвано функцијом која тренутно Ñтвара довршавања,\n"
+" а опције Ñтвараоца који тренутно извршава довршавање Ñу измењене.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако Ñе не доÑтави неиÑправна опција или "
+"ÐÐЗИВ\n"
+" нема одређену одредбу довршавања."
+
+#: builtins.c:2015
+msgid ""
+"Read lines from the standard input into an indexed array variable.\n"
+" \n"
+" Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+" from file descriptor FD if the -u option is supplied. The variable "
+"MAPFILE\n"
+" is 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. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" element to be assigned and the line to be assigned to that element\n"
+" as additional arguments.\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 "
+"or\n"
+" not an indexed array."
+msgstr ""
+"Чита редове Ñа Ñтандардног улаза у променљивој индекÑираног низа.\n"
+" \n"
+" Чита редове Ñа Ñтандардног улаза у променљивој индекÑираног низа ÐИЗ, "
+"или\n"
+" из опиÑника датотеке ОД ако је доÑтављена опција „-u“. Променљива "
+"ÐœÐПОТЕКÐ\n"
+" јеÑте оÑновни ÐИЗ.\n"
+" \n"
+" Опције:\n"
+" -n број Умножава највише БРОЈ редова. Ðко је БРОЈ 0, умножавају "
+"Ñе Ñви редови.\n"
+" -O порекло Почиње додељивање ÐИЗУ при индекÑу ПОРЕКЛО. ОÑновни "
+"Ð¸Ð½Ð´ÐµÐºÑ Ñ˜Ðµ 0.\n"
+" -s број Одбацује првих БРОЈ прочитаних редова.\n"
+" -t Уклања пратећи нови ред из Ñваког прочитаног реда.\n"
+" -u од Чита редове из опиÑника датотеке ОД умеÑто Ñа Ñтандардног "
+"улаза.\n"
+" -C опозив Процењује ОПОЗИВ Ñваког пута када Ñе прочита КОЛИЧИÐÐ "
+"редова.\n"
+" -c количина Ðаводи број прочитаних редова између Ñваког позива за "
+"ОПОЗИВ.\n"
+" \n"
+" Ðргументи:\n"
+" ÐИЗ Ðазив променљиве низа за податке датотеке.\n"
+" \n"
+" Ðко је „-C“ доÑтављено без „-c“, оÑновна количина је 5000. Када Ñе\n"
+" процени ОПОЗИВ, доÑтављен је Ð¸Ð½Ð´ÐµÐºÑ Ñледећег елемента низа који ће\n"
+" бити додељен и ред који ће бити додељен том елементу као додатни\n"
+" аргументи.\n"
+" \n"
+" Ðко није доÑтављено Ñа изричитим пореклом, мапфајл ће очиÑтити ÐИЗ пре\n"
+" него што му додели.\n"
+" \n"
+" Излазно Ñтање:\n"
+" Даје позитиван резултат оÑим ако није дата неиÑправна опција или ако је "
+"ÐИЗ Ñамо\n"
+" за читање или није индекÑирани низ."
+
+#: builtins.c:2049
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Чита редове из датотеке у променљиву низа.\n"
+" \n"
+" Синоним за „mapfile“."
diff --git a/po/sv.gmo b/po/sv.gmo
index e890373a..fdb68e56 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 1ad6ad18..e63def54 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,107 +1,123 @@
# Swedish translation of bash
-# Copyright © 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright © 2008, 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Göran Uddeborg <goeran@uddeborg.se>, 2008, 2009, 2010.
+# Göran Uddeborg <goeran@uddeborg.se>, 2008, 2009, 2010, 2011, 2013, 2014.
#
-# $Revision: 1.9 $
+# $Revision: 1.15 $
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-10-24 22:35+0200\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-30 22:41+0100\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "felaktigt vektorindex"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, 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:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: ogiltig nyckel till associativ vektor"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: det går inte att tilldela till ickenumeriska index"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, 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:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: det går inte att skapa: %s"
-#: bashline.c:3498
+#: bashline.c:3982
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:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: första ickeblanka tecknet är inte '\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "ingen avslutande \"%c\" i %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: kolonseparator saknas"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "klammerexpansion: kan inte allokera minne för %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "klammerexpansion: misslyckades att allokera minne för %d element"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "klammerexpansion: misslyckades att allokera minne för â€%sâ€"
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "\"%s\": ogiltigt aliasnamn"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "radredigering är inte aktiverat"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "\"%s\": ogiltigt tangentbindningsnamn"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: det går inte att läsa: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "\"%s\": det går inte att avbinda"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "\"%s\": okänt funktionsnamn"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, 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
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s kan anropas via "
@@ -114,7 +130,7 @@ msgstr "slingräknare"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "endast meningsfullt i en \"for\"-, \"while\"- eller \"until\"-slinga"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -124,11 +140,15 @@ msgstr ""
" \n"
" Utan UTTR, returnerar "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME är inte satt"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD är inte satt"
@@ -137,7 +157,7 @@ msgstr "OLDPWD är inte satt"
msgid "line %d: "
msgstr "rad %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "varning: "
@@ -147,11 +167,7 @@ msgstr "varning: "
msgid "%s: usage: "
msgstr "%s: användning: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "för många argument"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: flaggan kräver ett argument"
@@ -166,7 +182,7 @@ msgstr "%s: numeriskt argument krävs"
msgid "%s: not found"
msgstr "%s: finns inte"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: ogiltig flagga"
@@ -176,7 +192,7 @@ msgstr "%s: ogiltig flagga"
msgid "%s: invalid option name"
msgstr "%s: ogiltigt flaggnamn"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "\"%s\": inte en giltig identifierare"
@@ -189,7 +205,7 @@ msgstr "ogiltigt oktalt tal"
msgid "invalid hex number"
msgstr "ogiltigt hexadecimalt tal"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "ogiltigt tal"
@@ -203,7 +219,7 @@ msgstr "%s: ogiltig signalspecifikation"
msgid "`%s': not a pid or valid job spec"
msgstr "\"%s\": inte en pid eller giltig jobbspecifikation"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: endast läsbar variabel"
@@ -275,48 +291,58 @@ msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: tvetydig jobbspecifikation"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: ogiltigt åtgärdsnamn"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: ingen kompletteringsspecifikation"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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:698
+#: builtins/complete.def:699
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:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "kör inte en kompletteringsfunktion"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "kan endast användas i en funktion"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: en referensvariabel kan inte vara en vektor"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: att en namnreferensvariabel självrefererar är inte tillåtet"
+
+#: builtins/declare.def:398
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:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: endast läsbar funktion"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, 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:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: det går inte att konvertera en associativ vektor till indexerad"
@@ -345,24 +371,23 @@ msgstr "%s: inte dynamiskt laddad"
msgid "%s: cannot delete: %s"
msgstr "%s: kan inte ta bort: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: är en katalog"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: inte en normal fil"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: filen är för stor"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: det går inte att köra binär fil"
@@ -395,11 +420,11 @@ msgstr "Det finns körande jobb.\n"
msgid "no command found"
msgstr "hittar inget kommando"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "historiespecifikation"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: det går inte att öppna temporärfil: %s"
@@ -444,7 +469,7 @@ msgid_plural "Shell commands matching keywords `"
msgstr[0] "Skalkommandon som matchar nyckelordet '"
msgstr[1] "Skalkommandon som matchar nyckelorden '"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -452,12 +477,12 @@ msgstr ""
"inget hjälpämne matchar \"%s\". Prova \"help help\" eller \"man -k %s\" "
"eller \"info %s\"."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: det går inte att öppna: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -485,7 +510,7 @@ msgstr "det går inte att använda mer än en av -anrw"
msgid "history position"
msgstr "historieposition"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: historieexpansionen misslyckades"
@@ -499,16 +524,16 @@ msgstr "%s: inlib misslyckades"
msgid "no other options allowed with `-x'"
msgstr "inga andra flaggor är tillåtna med \"-x\""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, 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:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Okänt fel"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "uttryck förväntades"
@@ -517,85 +542,95 @@ msgstr "uttryck förväntades"
msgid "%s: not an indexed array"
msgstr "%s: inte en indexerad vektor"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: ogiltig filidentifierarspecifikation"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: ogiltig filbeskrivare: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: ogiltigt radantal"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: ogiltig vektorstart"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: ogiltigt återanropskvanta"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "tomt vektorvariabelnamn"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "stöd för vektorvariabler krävs"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "\"%s\": formateringstecken saknas"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: ogiltig tidsgränsspecifikation"
+msgstr "\"%c\": ogiltig specifikation av tidsformat"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "\"%c\": ogiltigt formateringstecken"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "varning: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "formattolkningsproblem: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "hexadecimal siffra saknas för \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "hexadecimal siffra saknas för \\x"
+msgstr "unicode-siffra saknas för \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "ingen annan katalog"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: ogiltigt argument"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<ingen aktuell katalog>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "katalogstacken är tom"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "katalogstackindex"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -637,7 +672,7 @@ msgstr ""
" -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
+#: builtins/pushd.def:711
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"
@@ -683,7 +718,7 @@ msgstr ""
" \n"
" Den inbyggda \"dirs\" visar katalogstacken."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -721,41 +756,41 @@ msgstr ""
" \n"
" Den inbyggda \"dirs\" visar katalogstacken."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: ogiltig tidsgränsspecifikation"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "läsfel: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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:771
+#: builtins/set.def:782
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:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: det går inte att ta bort tilldelning"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, 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:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: inte en vektorvariabel"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: inte en funktion"
@@ -764,11 +799,11 @@ msgstr "%s: inte en funktion"
msgid "shift count"
msgstr "skiftantal"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "det går inte att sätta och ta bort skalflaggor samtidigt"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: ogiltigt skalflaggsnamn"
@@ -810,7 +845,7 @@ msgstr "%s är en funktion\n"
msgid "%s is a shell builtin\n"
msgstr "%s är inbyggt i skalet\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s är %s\n"
@@ -820,45 +855,45 @@ msgstr "%s är %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s är hashad (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: ogiltigt gränsargument"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "\"%c\": felaktigt kommando"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: kan inte avgöra gränsen: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "gräns"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: kan inte ändra gränsen: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "oktalt tal"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "\"%c\": ogiltig operator för symboliskt läge"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "\"%c\": ogiltigt tecken för symboliskt läge"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " rad "
@@ -872,299 +907,314 @@ msgstr "senaste kommando: %s\n"
msgid "Aborting..."
msgstr "Avbryter..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "okänt kommandofel"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "felaktig kommandotyp"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "felaktig anslutning"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "felaktigt hopp"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: obunden variabel"
-#: eval.c:181
+#: eval.c:189
#, 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:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "rörfel"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximal nästning av funktioner överskriden (%d)"
+
+#: execute_cmd.c:4884
#, 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:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: kommandot finns inte"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s är %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: felaktig tolk"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: det går inte att köra binär fil: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "â€%sâ€: är en speciell inbyggd"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "det går inte att duplicera fb %d till fb %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "rekursionsnivå i uttryck överskriden"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "underspill i rekursionsstacken"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "syntaxfel i uttrycket"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "försök att tilldela till en icke-variabel"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "division med 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "bug: felaktig expassign-token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "\":\" förväntades i villkorligt uttryck"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "exponenten är mindre än 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "en identifierare förväntades efter pre-ökning eller pre-minskning"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "\")\" saknas"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "syntaxfel: en operand förväntades"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "syntaxfel: ogiltig aritmetisk operator"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (felsymbol är \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "ogiltig aritmetisk bas"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "värdet är för stort för basen"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: uttrycksfel\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: det går inte att komma åt föräldrakatalogen"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, 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:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp rör"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "avgrenad pid %d fins i körande jobb %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "tar bort stoppat jobb %d med processgrupp %ld"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: process %5ld (%s) i the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, 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:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: ingen sådan pid"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Signal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Klart"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Stoppat"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Stoppat(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Kör"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Klart(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Avslut %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Okänd status"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(minnesutskrift skapad) "
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (ak: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "barns setpgid (%ld till %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Ingen uppgift om process %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: jobb %d är stoppat"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: jobbet har avslutat"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: jobb %d är redan i bakgrunden"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: slår på WNOHANG för att undvika oändlig blockering"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: rad %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (minnesutskrift skapad)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(ak nu: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp misslyckades"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: linjedisciplin"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr "det går inte att sätta terminalprocessgrupp (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "ingen jobbstyrning i detta skal"
@@ -1186,54 +1236,54 @@ msgstr ""
msgid "unknown"
msgstr "okänd"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: block på frilista överskrivet"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: anropad med redan frigjort block som argument"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: anropad med oallokerat block som argument"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: start- och slutstyckesstorlekar skiljer"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: anropat med oallokerat block som argument"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
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
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: start- och slutstycesstorlekar skiljer"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "ogiltig bas"
@@ -1256,35 +1306,35 @@ msgstr "%s: felaktig specifikation av nätverkssökväg"
msgid "network operations not supported"
msgstr "nätverksoperationer stöds inte"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: det går inte att ändra lokal (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: det går inte att ändra lokal (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: det går inte att ändra lokal (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: det går inte att ändra lokal (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Du har post i $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Du har ny post i $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Posten i %s har lästs\n"
@@ -1302,119 +1352,119 @@ msgstr "syntaxfel: oväntat \";\""
msgid "syntax error: `((%s))'"
msgstr "syntaxfel: \"((%s))\""
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: felaktig instruktionstyp %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr ""
"make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "oväntat filslut vid sökning efter matchande \"%c\""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "oväntat filslut vid sökning efter \"]]\""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\""
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "syntaxfel i villkorligt uttryck"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "oväntad symbol \"%s\", \")\" förväntades"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "\")\" förväntades"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "oväntat argument \"%s\" till villkorlig unär operator"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "oväntat argument till villkorlig unär operator"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "villkorlig binär operato förväntades"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "oväntat argument \"%s\" till villkorlig binär operator"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "oväntat argument till villkorlig binär operator"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "oväntad symbol \"%c\" i villkorligt kommando"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "oväntad symbol \"%s\" i villkorligt kommando"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "oväntad symbol %d i villkorligt kommando"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "syntaxfel nära den oväntade symbolen \"%s\""
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "syntaxfel nära \"%s\""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "syntaxfel: oväntat filslut"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "syntaxfel"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Använd \"%s\" fär att lämna skalet.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "oväntat filslut när matchande \")\" söktes"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "komplettering: funktion \"%s\" finns inte"
@@ -1424,90 +1474,90 @@ msgstr "komplettering: funktion \"%s\" finns inte"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: felaktig anslutning \"%d\""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: ogiltig filbeskrivare"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: NULL-filpekare"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: \"%c\": ogiltigt formateringstecken"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "filbeskrivare utanför giltigt intervall"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: tvetydig omdirigering"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: begränsad: det går inte att skriva över en existerande fil"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: begränsad: det går inte att omdirigera utdata"
-#: redir.c:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: det går inte att tilldela fb till variabel"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "omdirigeringsfel: det går inte att duplicera fb"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "hittade inte /tmp, var god skapa!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp måste vara ett giltigt katalognamn"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: ogiltig flagga"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Jag har inget namn!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, version %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1516,41 +1566,41 @@ msgstr ""
"Användning:\t%s [GNU lång flagga] [flagga] ...\n"
"\t\t%s [GNU lång flagga] [flagga] skriptfil ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU långa flaggor:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Skalflaggor:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s eller -o flagga\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, 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 <tp-sv@listor.tp-sv.se>.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: ogiltig operation"
@@ -1724,72 +1774,77 @@ msgstr "Okänd signal nr "
msgid "Unknown Signal #%d"
msgstr "Okänd signal nr %d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "felaktig substitution: ingen avslutande \"%s\" i %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: det går inte att tilldela listor till vektormedlemmar"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "det går inte att skapa rör för processubstitution"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "det går inte att skapa barn för processubstitution"
-#: subst.c:5072
+#: subst.c:5158
#, 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:5074
+#: subst.c:5160
#, 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:5092
+#: subst.c:5178
#, 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:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "det går inte att skapa rör för kommandosubstitution"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "det går inte att skapa barn för kommandosubstitution"
-#: subst.c:5339
+#: subst.c:5433
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:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: ogiltigt variabelnamn för referens"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametern tom eller inte satt"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: delstränguttryck < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: felaktig substitution"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: det går inte att tilldela på detta sätt"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
@@ -1797,58 +1852,58 @@ msgstr ""
"framtida versioner av skalet kommer att framtvinga evaluering som en "
"aritmetisk substition"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "felaktig ersättning: ingen avslutande \"`\" i %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "ingen match: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argument förväntades"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: heltalsuttryck förväntades"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "\")\" förväntades"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "\")\" förväntades, fann %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: unär operator förväntades"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: binär operator förväntades"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "\"]\" saknas"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "ogiltigt signalnummer"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1856,74 +1911,88 @@ msgstr ""
"run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig "
"själv"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: felaktig signal %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "fel vid import av funktionsdefinition för \"%s\""
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "skalnivå (%d) för hög, återställer till 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: cirkulär namnreferens"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang"
-#: variables.c:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: variabeln får inte tilldelas ett värde"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s har tom exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "ogiltigt tecken %d i exportstr för %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "inget \"=\" i exportstr för %s"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: ingen kontext global_variables"
-#: variables.c:3978
+#: variables.c:4431
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"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: går inte att öppna som FILE"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: ogiltigt värde för spårningsfilbeskrivare"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: kompatibilitetsvärde utanför giltigt intervall"
+
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright © 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Copyright © 2013 Free Software Foundation, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1931,35 +2000,23 @@ msgstr ""
"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, version %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-"Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
+"Detta är fri programvara, det får fritt ändra och vidaredistribuera den."
-#: version.c:92 version2.c:89
-#, 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"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Det finns INGEN GARANTI, så långt lagen tillåter."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Licens GPLv2+: GNU GPL version 2 eller senare <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Copyright © 2012 Free Software Foundation, Inc."
#: xmalloc.c:91
#, c-format
@@ -1991,10 +2048,10 @@ msgstr "unalias [-a] namn [namn ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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 "
+"bind [-lpvsPVSX] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r "
"tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion "
"eller readline-kommando]"
@@ -2015,9 +2072,8 @@ msgid "caller [expr]"
msgstr "caller [uttr]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [kat]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@] [kat]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2040,14 +2096,12 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] kommando [arg ...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [namn[=värde] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [namn[=värde] …]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] namn[=värde] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] namn[=värde] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2147,22 +2201,20 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o flaggnamn] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o flaggnamn] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [namn ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [namn …]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [namn[=värde] ...] eller export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [namn[=värde] ...] eller readonly -p"
+msgstr "readonly [-aAf] [namn[=värde] ...] eller readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2201,20 +2253,20 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] namn [namn ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [gräns]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [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]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id …]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [pid …]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
@@ -2425,6 +2477,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2465,13 +2519,16 @@ msgstr ""
" 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"
+" -x tangentsekv:skalkommando Gör så att SKALKOMMANDO körs när\n"
" \t\t\t\t TANGENTSEKV skrivs.\n"
+" -X\t\t Lista tangentsekvenser bundna med -x och tillhörande\n"
+" kommandon på ett format som kan återanvändas som\n"
+" indata.\n"
" \n"
" Slutstatus:\n"
" bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2489,7 +2546,7 @@ msgstr ""
" Slutstatus:\n"
" Returvärdet är 0 förutsatt att N är större eller lika med 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2508,7 +2565,7 @@ msgstr ""
" Slutstatus:\n"
" Slutstatus är 0 förutsatt att N är större eller lika med 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2534,7 +2591,7 @@ msgstr ""
"inte\n"
" är inbyggd i skalet."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2562,8 +2619,7 @@ msgstr ""
" Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n"
" ogiltigt."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2586,13 +2642,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2609,23 +2673,31 @@ msgstr ""
" 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"
+" 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"
+" -L\tframtvinga att symboliska länkar följs: lös upp symboliska\n"
+" \tKAT efter behandling av instanser av â€..â€\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"
+" \tsymboliska länkar: lös upp symboliska länkar i KAT före behandling av\n"
+" \tâ€..â€\n"
+" -e\tom flaggan -P ges, och det inte går att avgöra den aktuella\n"
+" \tkatalogen, returnera då med status skild från noll\n"
+" -@ på system som stödjer det, presentera en fil med utökade "
+"attribut\n"
+" som en katalog som innehåller filattributen\n"
+" \n"
+" Standardvärde är att följa symboliska längar, som om â€-L†vore angivet.\n"
+" â€..†behandlas genom att ta bort den omedelbart föregÃ¥ende\n"
+" sökvägskomponenten tillbaka till ett snedstreck eller början av KAT\n"
" \n"
" Slutstatus:\n"
-" Returnerar 0 om katalogen är ändrad; skilt från noll annars."
+" Returnerar 0 om katalogen är ändrad, och om $PWD satts korrekt om -P\n"
+" angetts; skilt från noll annars."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2654,7 +2726,7 @@ msgstr ""
"katalogen\n"
" inte kan läsas."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2670,7 +2742,7 @@ msgstr ""
" Slutstatus:\n"
" Lyckas alltid."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2682,7 +2754,7 @@ msgstr ""
" Slutstatus:\n"
" Lyckas alltid."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2694,7 +2766,7 @@ msgstr ""
" Slutstatus:\n"
" Misslyckas alltid."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2729,8 +2801,7 @@ msgstr ""
"inte\n"
" finns."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2750,6 +2821,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2765,7 +2837,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Sätt variabelvärden och -attribut.\n"
" \n"
@@ -2776,6 +2849,8 @@ msgstr ""
" -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"
+" -g\tskapa globala variabler när använt i en skalfunktion, ignoreras\n"
+" \ti övrigt\n"
" -p\tvisa attributen och värden på varje NAMN\n"
" \n"
" Flaggor som sätter attribut:\n"
@@ -2783,6 +2858,7 @@ msgstr ""
" -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"
+" -n\tgör NAMN till en referens till variablen som namnges som värde\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"
@@ -2795,13 +2871,13 @@ msgstr ""
" \n"
" Vid användning i en funktion gör \"declare\" NAMN lokala, som med "
"kommandot\n"
-" \"local\".\n"
+" \"local\". Flaggan \"-g\" åsidosätter detta beteende.\n"
" \n"
" Slutstatus:\n"
-" Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
-"inträffar."
+" Returnerar framgång om inte en ogiltig flagga ges eller ett fel vid\n"
+" variabeltilldelning inträffar."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2811,7 +2887,7 @@ msgstr ""
" \n"
" Föråldrat. Se \"help declare\"."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2822,27 +2898,29 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, 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"
+" 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."
+" Returnerar framgång om inte en ogiltig flagga ges, ett fel vid\n"
+" variabeltilldelning inträffar eller skalet inte exekverar en funktion."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2854,6 +2932,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2870,18 +2949,20 @@ msgid ""
msgstr ""
"Skriv argument på standard ut.\n"
" \n"
-" Visa ARGumenten på standard ut följt av en nyrad.\n"
+" Visa ARGumenten, separerade av ensamma blanktecken och följda av en\n"
+" nyrad, på standard ut.\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"
+" â€echo†tolkar följande bakstrecksekvenser:\n"
" \\a\talarm (klocka)\n"
" \\b\tbacksteg\n"
" \\c\tundertryck följande utdata\n"
" \\e\tescape-tecknet\n"
+" \\E\tescape-tecknet\n"
" \\f\tsidmatning\n"
" \\n\tnyrad\n"
" \\r\tvagnretur\n"
@@ -2896,7 +2977,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte ett skrivfel inträffar."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2918,7 +2999,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte ett skrivfel inträffar."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2972,7 +3053,7 @@ msgstr ""
" Returnerar framgång om inte NAMN inte är inbyggd i skalet eller ett fel\n"
" inträffar."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2992,7 +3073,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar slutstatus av kommandot eller framgång om kommandot är tomt."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3069,7 +3150,7 @@ msgstr ""
" Returnerar framgång om en flagga hittas, misslyckas om slutet av\n"
" flaggorna nås eller ett fel inträffar."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3110,7 +3191,7 @@ msgstr ""
" Returnerar framgång om inte KOMMANDO inte finns eller ett fel vid\n"
" omdirigering inträffar."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3122,7 +3203,7 @@ msgstr ""
" Avslutar skalet med statusen N. Om N utelämnas är slutstatusen den\n"
" hos det sist körda kommandot."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3135,7 +3216,7 @@ msgstr ""
" Avslutar ett inloggningsskal med slutstatus N. Returnerar ett fel om\n"
" det inte körs i ett inloggningsskal."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3191,7 +3272,7 @@ msgstr ""
" Returnerar framgång eller status på exekverat kommando, skilt från noll\n"
" om ett fel inträffar."
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3212,7 +3293,7 @@ msgstr ""
" Status på kommandot som placerades i förgrunden, eller misslyckande om\n"
" ett fel inträffar."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3238,7 +3319,7 @@ msgstr ""
"fel\n"
" inträffar."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3249,7 +3330,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3281,7 +3362,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte NAMN inte hittas eller en ogiltig flagga ges."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3322,7 +3403,7 @@ msgstr ""
" Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga "
"ges."
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3388,7 +3469,8 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
"inträffar."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3397,7 +3479,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3432,7 +3514,7 @@ msgstr ""
"inträffar.\n"
" Om -x används returneras slutstatus från KOMMANDO."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3462,7 +3544,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte en ogiltig flagga eller JOBBSPEC ges."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3506,8 +3588,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga angivits eller ett fel\n"
" inträffar."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3595,7 +3676,7 @@ msgstr ""
" Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 "
"annars."
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3630,16 +3711,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\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"
@@ -3677,16 +3761,20 @@ msgstr ""
" -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. Om TIDSGRÄNS är 0 returnerar read lyckad status bara\n"
+" \t\tdecimaltal. Om TIDSGRÄNS är 0 returnerar read direkt, utan\n"
+" att försöka läsa några data, och returnerar lyckad status "
+"bara\n"
"\t\tom det finns indata tillgängligt på den angivna filbeskrivaren.\n"
" 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."
+" (då den är större än 128), ett fel vid variabeltilldelning inträffar "
+"eller\n"
+" en ogiltig filbeskrivare ges som argument till -u."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3707,8 +3795,7 @@ msgstr ""
" Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n"
" skript."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3774,7 +3861,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3860,9 +3947,13 @@ msgstr ""
" -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"
+" -P Om satt löses inte symboliska länkar upp när kommandon såsom cd\n"
+" körs som ändrar aktuell katalog.\n"
" -T Om satt ärvs DEBUG-fällan av skalfunktioner.\n"
+" -- Tilldela eventuella återstående argument till "
+"positionsparametrar.\n"
+" Om det inte finns några återstående argument nollställs\n"
+" positionsparametrarna.\n"
" - Tilldela eventuella återstående argument till "
"positionsparametrar.\n"
" Flaggorna -x och -v slås av.\n"
@@ -3877,7 +3968,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte en ogiltig flagga ges."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3886,6 +3977,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3903,17 +3996,19 @@ msgstr ""
" Flaggor:\n"
" -f\tbehandla varje NAMN som en skalfunktion\n"
" -v\tbehandla varje NAMN som en skalvariabel\n"
+" -n\tbehandla varje NAMN som en namnreferens tar bort värdet på\n"
+" \tvariabeln själv istället för variabeln den refererar\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Ã¥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:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3946,7 +4041,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3958,7 +4053,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3975,14 +4072,15 @@ msgstr ""
" -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"
+" -p\tvisa en lista över alla oföränderliga variabler eller funktioner,\n"
+" beroende på huruvida flaggan -f ges\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:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4001,7 +4099,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte N är negativt eller större än $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4025,7 +4123,7 @@ msgstr ""
" Returnerar status på det sista kommandot som körs i FILNAMN, misslyckas\n"
" om FILNAMN inte kan läsas."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4051,8 +4149,7 @@ msgstr ""
"fel\n"
" inträffar."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4117,6 +4214,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4137,7 +4236,10 @@ msgstr ""
" 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"
+" strängoperatorer och numeriska jämförelseoperatorer också.\n"
+" \n"
+" Beteendet hos test beror på antalet argument. Läs bash-manualsidan\n"
+" för den fullständiga specifikationen.\n"
" \n"
" Filoperatorer:\n"
" \n"
@@ -4150,7 +4252,7 @@ msgstr ""
" -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"
+" -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"
@@ -4189,6 +4291,9 @@ msgstr ""
" Andra operatorer:\n"
" \n"
" -o FLAGGA Sant om skalflaggan FLAGGA är aktiv.\n"
+" -v VAR Sant om skalvariabeln VAR är satt.\n"
+" -R VAR Sant om skalvariabeln VAR är satt och är en "
+"namnreferens.\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"
@@ -4204,7 +4309,7 @@ msgstr ""
" Returnerar framgång om UTTR beräknas till sant. Misslyckas ifall UTTR\n"
" beräknas till falskt eller ett ogiltigt argument ges."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4217,7 +4322,7 @@ msgstr ""
"argumentet\n"
" måste vara en bokstavlig \"]\", för att matcha den inledande \"[\"."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4237,8 +4342,7 @@ msgstr ""
" Slutstatus:\n"
" Lyckas alltid."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4293,7 +4397,11 @@ msgstr ""
" 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"
+" en SIGNALSPEC är DEBUG exekveras ARG före varje enkelt kommando. Om\n"
+" en SIGNALSPEC är RETURN exekveras ARG varje gång en skalfunktion eller\n"
+" ett skript kört med den inbyggda . eller source avslutar körningen. En\n"
+" SIGNALSPEC ERR betyder att köra ARG varje gång ett kommandos felstatus\n"
+" skulle fått skalet att avsluta om flaggan -e ovre satt.\n"
" \n"
" Om inga argument ges skriver trap listan av kommandon som hör till "
"varje\n"
@@ -4312,7 +4420,7 @@ msgstr ""
"flagga\n"
" ges."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4369,7 +4477,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om alla NAMNen finns, misslyckas om något inte finns."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4398,6 +4506,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4419,13 +4530,13 @@ msgstr ""
" 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"
+" -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"
+" -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"
@@ -4440,10 +4551,12 @@ msgstr ""
" -u\tdet maximala antalet användarprocesser\n"
" -v\tstorleken på det virtuella minnet\n"
" -x\tdet maximala antalet fillås\n"
+" -T det maximala antalet trådar\n"
+" \n"
+" Alla flaggor är inte tillgängliga på alla plattformar.\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"
+" 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"
@@ -4457,7 +4570,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga anges eller ett fel "
"inträffar."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4493,62 +4606,66 @@ msgstr ""
"flagga\n"
" ges."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-"Vänta på att jobb blir färdiga och returnerar slutstatus.\n"
+"Vänta på att jobb blir färdiga och returnera slutstatus.\n"
+" \n"
+" Väntar på varje process som identifieras av ett ID, som kan vara en\n"
+" process-id eller en jobbspecifikation, och rapportera dess\n"
+" avslutningsstatus. Om ID inte ges, vänta på alla nu körande\n"
+" barnprocesser, och returstatus är noll. Om ID är en "
+"jobbspecifikation, \n"
+" vänta på alla processer i det jobbets rör.\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"
+" Om flaggan -n ges väntar på nästa jobb att avsluta och retunera dess\n"
+" slutstatus.\n"
" \n"
" Slutstatus:\n"
-" Returnerar status på ID, misslyckas ifall ID är ogiltig eller en "
-"ogiltig\n"
-" flagga ges."
+" Returnerar status på den sista ID, misslyckas ifall ID är ogiltig\n"
+" eller en ogiltig flagga ges."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+" Väntar på varje process som identifieras av en PID rapporterar dess\n"
+" slutstatus. Om PID inte ges, väntar på alla nu körande barnprocesser,\n"
+" och returstatus är 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."
+" Returnerar status på den sista PID, misslyckas ifall PID är ogiltig\n"
+" eller en ogiltig flagga ges."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4571,7 +4688,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar status för det sist exekverade kommandot."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4601,7 +4718,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen från det sist exekverade kommandot."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4636,7 +4753,7 @@ msgstr ""
" Sluttatus:\n"
" Returnerar statusen från det sist exekverade kommandot."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4665,7 +4782,7 @@ msgstr ""
" Slutstatus:\n"
" Returstatusen är returstatusen från RÖR."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4683,7 +4800,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen från det sist exekverade kommandot."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4719,7 +4836,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar status från det sist exekverade kommandot."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4737,7 +4854,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen från det sist exekverade kommandot."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4755,7 +4872,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen från det sist exekverade kommandot."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4777,7 +4894,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen från KOMMANDO."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4800,7 +4917,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar framgång om inte NAMN endast är läsbart."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4818,7 +4935,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar stutusen från det sist exekverade kommandot."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4842,7 +4959,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar statusen på det återupptagna jobbet."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4860,7 +4977,7 @@ msgstr ""
" Slutstatus:\n"
" Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4913,7 +5030,7 @@ msgstr ""
" Slutstatus:\n"
" 0 eller 1 beroende på värdet av UTTRYCK."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5018,7 +5135,7 @@ msgstr ""
" 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:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5076,7 +5193,7 @@ msgstr ""
" Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
" katalog misslyckas."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5126,7 +5243,7 @@ msgstr ""
" Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
" katalog misslyckas."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5179,7 +5296,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
"inträffar."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5215,8 +5332,7 @@ msgstr ""
" Returnerar framgång om FLGNAMN är aktiverat, misslyckas om en ogiltig\n"
" flagga ges eller FLGNAMN är avaktiverat."
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5233,9 +5349,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5243,6 +5359,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5261,18 +5383,25 @@ msgstr ""
" 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"
+" Förutom de standardformatspecifikationer som beskrivs a printf(1),\n"
+" 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"
+" %(fmt)T skriv ut datum-/tidsträngen som blir resultatet av att\n"
+" använda FMT som en formatsträng till strftime(3)\n"
+" \n"
+" Formatet återanvänds vid behov för att konsumera alla argument. Om\n"
+" det finns färre argument än formatet behöver beter sig överskjutande\n"
+" formatspecifikationer som om värdet noll eller den tomma strängen,\n"
+" det som passar, hade angivits.\n"
" \n"
" Slutstatus:\n"
" Returnerar framgång om inte en ogiltig flagga ges eller ett skriv-\n"
" eller tilldelningsfel inträffar."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5322,7 +5451,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
"inträffar."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5344,8 +5473,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
"inträffar."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5404,8 +5532,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller NAMN inte har\n"
" någon kompletteringsspecifikaation definierad."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5467,7 +5594,9 @@ msgstr ""
" VEKTOR\t\tNamn på vektorvariabel att använda för fildata.\n"
" \n"
" Om -C ges utan -c är standardkvanta 5000. När ÅTERANROP evalueras får\n"
-" den indexet på nästa vektorelement som ett extra argument.\n"
+" den indexet på nästa vektorelement att tilldelas och raden att "
+"tilldelas\n"
+" till det elementet som extra argument.\n"
" \n"
" Om det inte ges någon specificerad start kommer mapfile nollställa "
"VEKTOR\n"
@@ -5477,7 +5606,7 @@ msgstr ""
" Returnerar framgång om inte en ogiltig flagga ges eller VEKTOR är\n"
" oföränderlig eller inte en indexerad vektor."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5486,25 +5615,3 @@ msgstr ""
"Läs rader från en fil till en vektorvariabel.\n"
" \n"
" En synonym till \"mapfile\"."
-
-#~ msgid ""
-#~ ". With EXPR, returns\n"
-#~ " "
-#~ msgstr ""
-#~ ". Med UTTR, returnerar\n"
-#~ " "
-
-#~ msgid ""
-#~ "; 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."
-#~ msgstr ""
-#~ "; denna extra information kan användas för att\n"
-#~ " 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."
diff --git a/po/tr.gmo b/po/tr.gmo
index d41c8171..945f7b09 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index d6ed3b8c..85c63032 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -1,152 +1,172 @@
-# translation of bash-3.2.po to Turkish
+# translation of bash-4.2.po to Turkish
# Copyright (C) 2006 Free Software Foundation, Inc.
-# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2006.
+# This file is distributed under the same license as the bash package.
#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2006.
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: bash 3.2\n"
+"Project-Id-Version: bash 4.3-pre2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2006-10-30 20:00+0200\n"
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2013-11-07 22:11+0100\n"
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"Language: tr\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"
+"X-Generator: Lokalize 1.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "hatalı dizi indisi"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
-msgstr ""
+msgstr "%s: indisli dizi, ilişkisel diziye dönüştürülemez"
-#: arrayfunc.c:480
-#, fuzzy, c-format
+#: arrayfunc.c:539
+#, c-format
msgid "%s: invalid associative array key"
-msgstr "%s: eylem adı geçersiz"
+msgstr "%s: geçersiz ilişkisel dizi anahtarı"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: sayısal olmayan indise atama yapılamaz"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: ilişkisel bir dizi ataması yapılırken indis kullanılmalıdır"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: oluşturulamıyor: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: komut için kısayol bulunamıyor"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: boÅŸluk olmayan ilk karakter `\"' deÄŸil"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "%2$s içinde kapatan `%1$c' yok"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: ikinokta imi eksik"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
-#, fuzzy, c-format
+#, c-format
msgid "`%s': invalid alias name"
-msgstr "`%s': kısayol ismi geçersiz"
+msgstr "`%s': geçersiz takma isim"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
-msgstr ""
+msgstr "satır düzenleme etkin değil"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "`%s': kısayol ismi geçersiz"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: okunamıyor: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "`%s': kısayol değiştirilemiyor"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': iÅŸlev ismi bilinmiyor"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s için bir kısayol atanmamış.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, 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 ""
+msgstr "döngü sayısı"
#: 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
+#: builtins/caller.def:134
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."
+msgstr ""
+"Geçerli altyordam çağrısının bağlamı döndürür.\n"
+" \n"
+" İFADE olmadan, şu döner "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME atanmamış"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "çok fazla argüman"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD boÅŸ"
#: builtins/common.c:101
#, c-format
msgid "line %d: "
-msgstr ""
+msgstr "satır %d: "
-#: builtins/common.c:139 error.c:261
-#, fuzzy, c-format
+#: builtins/common.c:139 error.c:265
+#, c-format
msgid "warning: "
-msgstr "%s: uyarı: "
+msgstr "uyarı: "
#: builtins/common.c:153
-#, fuzzy, c-format
+#, c-format
msgid "%s: usage: "
-msgstr "%s: uyarı: "
-
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "çok fazla argüman"
+msgstr "%s: kullanım: "
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: seçenek bir argüman gerektirir"
@@ -161,7 +181,7 @@ msgstr "%s: sayısal argüman gerekli"
msgid "%s: not found"
msgstr "%s:yok"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: seçenek geçersiz"
@@ -171,22 +191,20 @@ msgstr "%s: seçenek geçersiz"
msgid "%s: invalid option name"
msgstr "%s: seçenek ismi geçersiz"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, 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ı"
+msgstr "geçersiz sekizli sayı"
#: builtins/common.c:240
-#, fuzzy
msgid "invalid hex number"
-msgstr "geçersiz sayı"
+msgstr "geçersiz onaltılık sayı"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "geçersiz sayı"
@@ -200,7 +218,7 @@ msgstr "%s: sinyal belirtimi geçersiz"
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:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: salt okunur deÄŸiÅŸken"
@@ -255,12 +273,12 @@ msgstr "yazma hatası: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr ""
+msgstr "uçbirim nitelikleri ayarlanırken hata: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr ""
+msgstr "uçbirim nitelikleri alınırken hata: %s"
#: builtins/common.c:563
#, c-format
@@ -272,51 +290,61 @@ msgstr "%s: geçerli dizin alınırken hata: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: iÅŸ belirtimi belirsiz"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: eylem adı geçersiz"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s: tamamlama belirtimi yok"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "uyarı: -F seçeneği umduğunuz gibi çalışmayabilir"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "uyarı: -C seçeneği umduğunuz gibi çalışmayabilir"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr ""
+msgstr "şuan tamamlama işlevi çalıştırılmıyor"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "sadece bir işlevde kullanılabilir"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: referans deÄŸeri bir dizi olamaz"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: nameref değişkeninin kendine yaptığı referanslara izin verilmiyor"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "işlev yapmak için `-f' kullanılamaz"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: salt okunur iÅŸlev"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: dizi deÄŸiÅŸkenleri bu yolla iptal edilemez"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
-msgstr ""
+msgstr "%s: ilişkisel dizi, indisli diziye dönüştürülemez"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
@@ -342,24 +370,23 @@ msgstr "%s: özdevimli olarak yüklenmemiş"
msgid "%s: cannot delete: %s"
msgstr "%s: silinemiyor: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: bir dizin"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: bir dosya deÄŸil"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: dosya çok büyük"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: ikili dosya çalıştırılamıyor"
@@ -372,7 +399,7 @@ msgstr "%s: çalıştırılamıyor: %s"
#: builtins/exit.def:65
#, c-format
msgid "logout\n"
-msgstr ""
+msgstr "çıkış\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
@@ -384,26 +411,26 @@ msgid "There are stopped jobs.\n"
msgstr "DurmuÅŸ iÅŸler var.\n"
#: builtins/exit.def:122
-#, fuzzy, c-format
+#, c-format
msgid "There are running jobs.\n"
-msgstr "DurmuÅŸ iÅŸler var.\n"
+msgstr "Çalışan görevler mevcut.\n"
#: builtins/fc.def:262
msgid "no command found"
msgstr "komut yok"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "geçmiş belirtimi"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, 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 ""
+msgstr "ÅŸimdiki"
#: builtins/fg_bg.def:158
#, c-format
@@ -430,18 +457,18 @@ msgid "%s: hash table empty\n"
msgstr "%s: çitleme tablosu boş\n"
#: builtins/hash.def:245
-#, fuzzy, c-format
+#, c-format
msgid "hits\tcommand\n"
-msgstr "son komut: %s\n"
+msgstr "eÅŸleÅŸme\tkomut\n"
#: builtins/help.def:130
-#, fuzzy, c-format
+#, 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ı: `"
+msgstr[0] "Bu anahtar sözcükle eşleşen komutlar: `"
+msgstr[1] "Bu anahtar sözcüklerle eşleşen komutlar: `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
@@ -449,12 +476,12 @@ 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
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: açılamıyor: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -482,120 +509,127 @@ msgstr "tek bir -anrw kullanılabilir"
msgid "history position"
msgstr "geçmiş konumu"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: geçmiş yorumlaması başarısız"
#: builtins/inlib.def:71
-#, fuzzy, c-format
+#, c-format
msgid "%s: inlib failed"
-msgstr "%s: geçmiş yorumlaması başarısız"
+msgstr "%s: inlib 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:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: argümanlar süreç veya iş kimlikleri olmalı"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Bilinmeyen hata"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "ifade bekleniyordu"
#: builtins/mapfile.def:172
-#, fuzzy, c-format
+#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: bir dizi deÄŸiÅŸkeni deÄŸil"
+msgstr "%s: bir sıralı dizi değil"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: dosya tanıtıcı belirtimi geçersiz"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: dosya tanıtıcı geçersiz: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
-#, fuzzy, c-format
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
+#, c-format
msgid "%s: invalid line count"
-msgstr "%s: seçenek geçersiz"
+msgstr "%s: geçersiz satır sayısı"
-#: builtins/mapfile.def:284
-#, fuzzy, c-format
+#: builtins/mapfile.def:287
+#, c-format
msgid "%s: invalid array origin"
-msgstr "%s: seçenek geçersiz"
+msgstr "%s: geçersiz dizi kökeni"
-#: builtins/mapfile.def:301
-#, fuzzy, c-format
+#: builtins/mapfile.def:304
+#, c-format
msgid "%s: invalid callback quantum"
-msgstr "%s: eylem adı geçersiz"
+msgstr "%s: geçersiz geri çağırım niceliği"
-#: builtins/mapfile.def:333
-#, fuzzy
+#: builtins/mapfile.def:336
msgid "empty array variable name"
-msgstr "%s: bir dizi deÄŸiÅŸkeni deÄŸil"
+msgstr "boş bir dizi değişken adı"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
-msgstr ""
+msgstr "dizi deÄŸiÅŸken desteÄŸi gerekli"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': biçim karakteri eksik"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: zamanaşımı belirtimi geçersiz"
+msgstr "`%c': geçersiz zaman biçimi belirtimi"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': biçim karakteri geçersiz"
-#: builtins/printf.def:662
-#, fuzzy, c-format
+#: builtins/printf.def:684
+#, c-format
msgid "warning: %s: %s"
-msgstr "%s: uyarı: "
+msgstr "uyarı: %s: %s"
+
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
-#: builtins/printf.def:840
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "\\x için onaltılık rakam eksik"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "\\x için onaltılık rakam eksik"
+msgstr "evrensel kod rakamı eksik \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "baÅŸka dizin yok"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: geçersiz argüman"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<geçerli dizin yok>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr ""
+msgstr "dizin yığını boş"
-#: builtins/pushd.def:508
-#, fuzzy
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "özyineleme yığıtı alttan taştı"
+msgstr "dizin yığını indisi"
-#: builtins/pushd.def:683
-#, fuzzy
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -618,25 +652,26 @@ msgid ""
"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."
+"Geçerli hatırlanan dizinlerin listesini görüntüler. Dizinler\n"
+" listeye yollarını `pushd' komutu ile bulurlar; ve liste boyunca\n"
+" yedeÄŸi `popd' komutu ile alabilirsiniz.\n"
+" \n"
+" Seçenekler:\n"
+" -c\tögelerin tümünü silerek dizin yığınını temizle\n"
+" -l\tev dizininize göreceli dizinlerin yaklaşık işareti\n"
+" \tile başlayan sürümlerini yazdırma\n"
+" -p\tdizin yığınını her satırda bir girdi ile yazdır\n"
+" -v\tdizin yığınını, yığındaki konumu ile her satıra\n"
+" \tön ek yapılmış bir girişi yazdır\n"
+" \n"
+" Argümanlar:\n"
+" +N\tDizinler tarafından gösterilen listenin solundan başlayarak\n"
+" \tN'inci girdiyi gösterir. Seçenek kullanılmadığında sıfırdan başlar.\n"
+" \n"
+" -N\tDizinler tarafından gösterilen listenin sağından başlayarak\n"
+"\tN'inci girdiyi gösterir. Seçenek kullanılmadığında sıfırdan başlar."
-#: builtins/pushd.def:705
-#, fuzzy
+#: builtins/pushd.def:711
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"
@@ -660,29 +695,28 @@ msgid ""
" \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"
+"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"
+" \n"
+" Seçenekler\n"
+" -n\tYığıta dizin eklenirken dizinin normal değişimini yoksayar\n"
+" \tböylece sadece yığıt değiştirilir.\n"
+" Argümanlar:\n"
+" +N\t(`dirs' tarafından gösterilen listenin solundan saymaya\n"
+" \tsıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n"
+" \tyığıtı döndürür.\n"
+" \n"
+" -N\t(`dirs' tarafından gösterilen listenin sağından saymaya\n"
+" \tsıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n"
+" \tyığıtı döndürür.\n"
+" \n"
+" dizin\tDiZiNi yeni çalışma dizini yaparak dizin yığıtının\n"
+" \ttepesine ekler.\n"
+" \n"
" Dizin yığıtını `dirs' komutuyla görebilirsiniz."
-#: builtins/pushd.def:730
-#, fuzzy
+#: builtins/pushd.def:736
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"
@@ -702,54 +736,58 @@ msgid ""
" \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ı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"
+" Seçenekler:\n"
+" -n\tdizinleri yığıttan silerken normal dizin değişikliğini\n"
+" \tengeller, böylece sadece yığıt değiştirilmiş olur. \n"
+" \n"
+" Argümanlar:\n"
+" +N\t`dirs' tarafından gösterilen listenin solundan saymaya\n"
+" \tsıfırla başlandığında N'inci girdiyi siler. Örneğin,\n"
+" \t`popd +0' ilk dizini `popd +1' ikincisini siler. \n"
+" -N\t`dirs' tarafından gösterilen listenin sağından saymaya\n"
+" \tsıfırla başlandığında N'inci girdiyi siler. Örneğin,\n"
+" \t`popd -0' son dizini `popd -1' sonuncudan öncekini siler. \n"
+" \n"
" Dizin yığıtını `dirs' komutuyla görebilirsiniz."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: zamanaşımı belirtimi geçersiz"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "okuma hatası: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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:771
+#: builtins/set.def:782
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:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: unset yapılamaz"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s:unset yapılamaz: %s salt okunur"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: bir dizi deÄŸiÅŸkeni deÄŸil"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: bir iÅŸlev deÄŸil"
@@ -758,11 +796,11 @@ msgstr "%s: bir iÅŸlev deÄŸil"
msgid "shift count"
msgstr "shift sayısı"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "kabuk seçenekleri aynı anda hem atanıp hem de iptal edilemez"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: kabuk seçenek ismi geçersiz"
@@ -804,7 +842,7 @@ msgstr "%s bir iÅŸlevdir\n"
msgid "%s is a shell builtin\n"
msgstr "%s bir kabuk yerleÅŸiÄŸidir\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s %s'dir\n"
@@ -814,47 +852,47 @@ msgstr "%s %s'dir\n"
msgid "%s is hashed (%s)\n"
msgstr "%s çitilmiş (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: sınırlama argümanı geçersiz"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c': hatalı komut"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: sınır alınamıyor: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
-msgstr ""
+msgstr "sınır"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: sınır değiştirilemiyor: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "sekizlik sayı"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "`%c': simgesel kip işleci geçersiz"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "`%c': simgesel kip karakteri geçersiz"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr ""
+msgstr " satır "
#: error.c:165
#, c-format
@@ -866,300 +904,314 @@ msgstr "son komut: %s\n"
msgid "Aborting..."
msgstr "Çıkılıyor..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "bilinmeyen komut hatası"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "hatalı komut türü"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "hatalı bağlantı"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "hatalı sıçrama"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: bağlanmamış değişken"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\agirdi beklerken zamanaşımı: auto-logout\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, 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:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "TIMEFORMAT: `%c': biçim karakteri geçersiz"
-#: execute_cmd.c:2121
-#, fuzzy
+#: execute_cmd.c:2287
msgid "pipe error"
-msgstr "yazma hatası: %s"
+msgstr "iletişim tüneli hatası"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: azami fonksiyon yuvalama sınırı aşıldı (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: kısıtlı: komut adında `/' kullanamazsınız"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: komut yok"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s %s'dir\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: hatalı yorumlayıcı"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ikili dosya çalıştırılamıyor: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s: bir kabuk yerleÅŸiÄŸidir"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr "fd %d, fd %d olarak yinelenemiyor"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "ifade özyineleme düzeyi aşıldı"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "özyineleme yığıtı alttan taştı"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "ifadede sözdizimi hatası"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "değişken olmayana atama yapmaya çalışıldı"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "sıfırla bölme"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "yazılım hatası: bad expassign token"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "koşullu ifade için `:' bekleniyordu"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "üs sıfırdan küçük"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "belirteç ön-arttırım veya ön-eksiltim sonrası bekleniyordu"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "eksik `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "sözdizimi hatası: terim umuluyordu"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "sözdizimi hatası: geçersiz aritmetik işleci"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr ""
+msgstr "%s%s%s: %s (hata belirtisi \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "geçersiz sayı tabanı"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "değer taban için fazla büyük"
-#: expr.c:1435
-#, fuzzy, c-format
+#: expr.c:1543
+#, c-format
msgid "%s: expression error\n"
-msgstr "%s: tamsayı ifadesi bekleniyordu"
+msgstr "%s: ifade hatası\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: üst dizinlere erişilemiyor"
-#: input.c:94 subst.c:5082
-#, fuzzy, c-format
+#: input.c:102 subst.c:5168
+#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "fd %d için geciktirmeme kipi sıfırlanamıyor"
-#: input.c:260
+#: input.c:271
#, 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:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
-msgstr ""
+msgstr "start_pipeline: pgrp iletişim tüneli"
-#: jobs.c:889
+#: jobs.c:893
#, 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:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "durdurulan %2$ld süreç gruplu iş %1$d siliniyor"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr ""
+msgstr "add_process: %5ld (%s) süreci iletişim_tünelinde"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
+msgstr "add_process: %5ld (%s) program kimliği hala canlı olarak işaretli"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: böyle bir pid yok"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
-msgstr ""
+msgstr "Sinyal %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
-msgstr ""
+msgstr "Bitti"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
-msgstr ""
+msgstr "Durdu"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
-msgstr ""
+msgstr "Durdu(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
-msgstr ""
+msgstr "Çalışıyor"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
-msgstr ""
+msgstr "Bitti(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
-msgstr ""
+msgstr "Çıkış %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
-msgstr ""
+msgstr "Bilinmeyen durum"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
-msgstr ""
+msgstr "(çekirdek döküldü)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
-msgstr ""
+msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "alt setpgid (ÅŸuradan: %ld ÅŸuraya: %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: süreç %ld için kayıt yok"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: iÅŸ %d durdu"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: iş sonlanmış"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: iÅŸ %d zaten artalanda"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
+msgstr "waitchld: belirsiz blok önlenmek için WNOHANG açılıyor"
-#: jobs.c:3538
-#, fuzzy, c-format
+#: jobs.c:3711
+#, c-format
msgid "%s: line %d: "
-msgstr "%s: uyarı: "
+msgstr "%s: satır %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
-msgstr ""
+msgstr " (çekirdek döküldü)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
-msgstr ""
+msgstr "(wd artık: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
-msgstr ""
+msgstr "initialize_job_control: getpgrp başarısız"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_job_control: satır düzeni"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr ""
+msgstr "uçbirim süreç grunu (%d) ayarlanamaz"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "bu kabukta iÅŸ denetimi yok"
@@ -1178,58 +1230,57 @@ msgstr ""
"malloc: %s:%d: kanaat doğrulaması battı\r\n"
#: lib/malloc/malloc.c:313
-#, fuzzy
msgid "unknown"
-msgstr "%s: konak bilinmiyor"
+msgstr "bilinmeyen"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: serbest bırakılmış liste üstünde blok üste yazdı"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
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
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: ayrılmamış blok argümanı ile çağrıldı"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: başlangıç ve son tomar boyutları farklı"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: ayrılmamış blok argümanı ile çağrıldı"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
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
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: başlangıç ve son tomar boyutları farklı"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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
+#: lib/malloc/table.c:256
#, 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
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "geçersiz taban"
@@ -1252,35 +1303,35 @@ msgstr "%s: hatalı ağ yolu belirtimi"
msgid "network operations not supported"
msgstr "desteklenmeyen aÄŸ iÅŸlemleri"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: (%s) diline deÄŸiÅŸtirilemedi"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: ÅŸu dile (%s) deÄŸiÅŸtirilemedi: %s"
-#: locale.c:247
-#, fuzzy, c-format
+#: locale.c:259
+#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor"
+msgstr "setlocale: %s: yerel (%s) deÄŸiÅŸtirilemiyor"
-#: locale.c:249
-#, fuzzy, c-format
+#: locale.c:261
+#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor"
+msgstr "setlocale: %s: yerel (%s) deÄŸiÅŸtirilemiyor: %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "$_'de postanız var"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "$_'de yeni postanız var"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "%s'deki posta okundu\n"
@@ -1298,118 +1349,118 @@ msgstr "sözdizimi hatası: `;' beklenmiyordu"
msgid "syntax error: `((%s))'"
msgstr "sözdizimi hatası: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: hatalı yönerge türü %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
+msgstr "bu belgede %d satırında dosya sonu sonlandırılmış (istenen `%s')"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, 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:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "`%c' için eşleşme aranırken beklenmedik dosya sonu"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "`]]' aranırken beklenmedik dosya sonu"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "koşullu ifadede sözdizimi hatası: beklenmedik dizgecik `%s'"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "koşullu ifadede sözdizimi hatası"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr "beklenmedik dizgecik `%s', `)' umuluyordu"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "`)' umuluyordu"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "koşullu tek terimli işlece beklenmedik argüman `%s'"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "koşullu tek terimli işlece beklenmedik argüman"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr "beklenmedik dizgecik `%s', koşullu iki terimli işleç umuluyordu"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "koşullu iki terimli işleç umuluyordu"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "koşullu iki terimli işlece beklenmedik argüman `%s'"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "koşullu iki terimli işlece beklenmedik argüman"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "koÅŸullu komutta beklenmeyen dizgecik `%c'"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "koÅŸullu komutta beklenmeyen dizgecik `%s'"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "koÅŸullu komutta beklenmeyen dizgecik %d"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "beklenmeyen dizgecik `%s' yakınında sözdizimi hatası"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "`%s' yakınında sözdizimi hatası"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "sözdizimi hatası: beklenmeyen dosya sonu"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "sözdizimi hatası"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "Kabuğu bırakmak için \"%s\" kullanın.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "`)' için eşleşme aranırken beklenmedik dosya sonu"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "completion: `%s' iÅŸlevi yok"
@@ -1419,90 +1470,90 @@ msgstr "completion: `%s' iÅŸlevi yok"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: hatalı bağlayıcı `%d'"
-#: print_cmd.c:368
-#, fuzzy, c-format
+#: print_cmd.c:373
+#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "%d: dosya tanıtıcı geçersiz: %s"
+msgstr "xtrace_set: %d: geçersiz dosya tanımlayıcısı"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: BOŞ dosya işaretçisi"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: `%c': geçersiz biçim karakteri"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "dosya tanıtıcı aralık dışında"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: belirsiz yönlendirme"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: mevcut dosyanın üzerine yazılamıyor"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: kısıtlı: çıktı yönlendirilemiyor"
-#: redir.c:192
-#, fuzzy, c-format
+#: redir.c:191
+#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "belge için geçici dosya oluşturulamıyor: %s"
-#: redir.c:196
-#, fuzzy, c-format
+#: redir.c:195
+#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: dizi üyesine liste atanamaz"
+msgstr "%s: fd değişkene atanamıyor"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port ağ olmaksızın desteklenmiyor"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "yönlendirme hatası: fd yinelenemiyor"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "/tmp bulunamadı, lütfen oluşturun!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp geçerli bir dizinin adı olmalıdır"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: geçersiz seçenek"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "Hiç ismim yok!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
-msgstr ""
+msgstr "GNU bash, sürüm %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1511,773 +1562,792 @@ 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU uzun seçenekleri:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Kabuk seçenekleri:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD veya -c KOMUT veya -O shopt_seçeneği\t\t(sadece çağrı için)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s ya da -o seçeneği\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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:1825
+#: shell.c:1857
#, 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:1826
+#: shell.c:1858
#, 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 <gnu-tr@belgeler.org> adresine bildiriniz.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: geçersiz işlem"
#: siglist.c:48
msgid "Bogus signal"
-msgstr ""
+msgstr "Bogus sinyali"
#: siglist.c:51
msgid "Hangup"
-msgstr ""
+msgstr "Engelle"
#: siglist.c:55
msgid "Interrupt"
-msgstr ""
+msgstr "Kes"
#: siglist.c:59
msgid "Quit"
-msgstr ""
+msgstr "Çık"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr ""
+msgstr "Geçersiz talimat"
#: siglist.c:67
msgid "BPT trace/trap"
-msgstr ""
+msgstr "BPT izle/tuzak"
#: siglist.c:75
msgid "ABORT instruction"
-msgstr ""
+msgstr "Talimatı DURDUR"
#: siglist.c:79
msgid "EMT instruction"
-msgstr ""
+msgstr "EMT talimatı"
#: siglist.c:83
msgid "Floating point exception"
-msgstr ""
+msgstr "Kayan nokta istisnası"
#: siglist.c:87
msgid "Killed"
-msgstr ""
+msgstr "Öldürüldü"
#: siglist.c:91
-#, fuzzy
msgid "Bus error"
-msgstr "sözdizimi hatası"
+msgstr "Veriyolu hatası"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr ""
+msgstr "Bölünme hatası"
#: siglist.c:99
msgid "Bad system call"
-msgstr ""
+msgstr "Bozuk sistem çağırımı"
#: siglist.c:103
msgid "Broken pipe"
-msgstr ""
+msgstr "Bozuk iletişim tüneli"
#: siglist.c:107
msgid "Alarm clock"
-msgstr ""
+msgstr "Çalar saat"
#: siglist.c:111
-#, fuzzy
msgid "Terminated"
-msgstr "kısıtlı"
+msgstr "Sonlandırıldı"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr ""
+msgstr "Acil GÇ koşulu"
#: siglist.c:119
msgid "Stopped (signal)"
-msgstr ""
+msgstr "Durduruldu (sinyal)"
#: siglist.c:127
msgid "Continue"
-msgstr ""
+msgstr "Devam et"
#: siglist.c:135
msgid "Child death or stop"
-msgstr ""
+msgstr "Alt ölümü veya durdurulma"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Durduruldu (tty giriÅŸi)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Durduruldu (tty çıkışı)"
#: siglist.c:147
msgid "I/O ready"
-msgstr ""
+msgstr "G/Ç hazır"
#: siglist.c:151
msgid "CPU limit"
-msgstr ""
+msgstr "CPU sınırı"
#: siglist.c:155
msgid "File limit"
-msgstr ""
+msgstr "Dosya sınırı"
#: siglist.c:159
msgid "Alarm (virtual)"
-msgstr ""
+msgstr "Alarm (sanal)"
#: siglist.c:163
msgid "Alarm (profile)"
-msgstr ""
+msgstr "Alarm (profil)"
#: siglist.c:167
msgid "Window changed"
-msgstr ""
+msgstr "Pencere deÄŸiÅŸtirildi"
#: siglist.c:171
msgid "Record lock"
-msgstr ""
+msgstr "Kayıt kilidi"
#: siglist.c:175
msgid "User signal 1"
-msgstr ""
+msgstr "Kullanıcı sinyali 1"
#: siglist.c:179
msgid "User signal 2"
-msgstr ""
+msgstr "Kullanıcı sinyali 2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr ""
+msgstr "HFT girdi verisi bekliyor"
#: siglist.c:187
msgid "power failure imminent"
-msgstr ""
+msgstr "yakın güç başarısızlığı"
#: siglist.c:191
msgid "system crash imminent"
-msgstr ""
+msgstr "yakın sistem çökmesi"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr ""
+msgstr "süreci başka bir işlemciye aktar"
#: siglist.c:199
msgid "programming error"
-msgstr ""
+msgstr "programlama hatası"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "HFT izleyici kipine geçildi"
#: siglist.c:207
msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "HFT izleyici kipi kapatıldı"
#: siglist.c:211
msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "HFT ses sırası tamamlandı"
#: siglist.c:215
msgid "Information request"
-msgstr ""
+msgstr "Bilgi talebi"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr ""
+msgstr "Bilinmeyen Sinyal #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr ""
+msgstr "Bilinmeyen Sinyal #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: dizi üyesine liste atanamaz"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "süreç ikamesi için borulama yapılamıyor"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "süreç ikamesi için alt süreç yapılamıyor"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "isimli boru %s okumak için açılamıyor"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "isimli boru %s yazmak için açılamıyor"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "isimli boru %s fd %d olarak yinelenemiyor"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "komut ikamesi için boru yapılamıyor"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "komut ikamesi için alt süreç yapılamıyor"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: boru fd 1 olarak yinelenemiyor"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: dosya izleme tanımlayıcısı için geçersiz değer"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: parametre boş ya da değer atanmamış"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: altdizge ifadesi < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: hatalı ikame"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: bu yolla atama yapılmaz"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
+"kabuk gelecekteki sürümlerinde, bir aritmetik ikame olarak değerlendirmeye "
+"zorlayacak"
-#: subst.c:8149
-#, fuzzy, c-format
+#: subst.c:8421
+#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok"
+msgstr "hatalı ikame: %s içinde kapatan \"`\" yok"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "eÅŸleÅŸme yok: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "argüman bekleniyordu"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: tamsayı ifadesi bekleniyordu"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "`)' bekleniyordu"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "`)' bekleniyordu, %s bulundu"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: tek terimli iÅŸleci bekleniyordu"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: iki terimli iÅŸleci bekleniyordu"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "eksik `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "geçersiz sinyal numarası"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler:hatalı sinyal %d"
-#: variables.c:363
+#: variables.c:382
#, 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:755
+#: variables.c:780
#, 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:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: dosya izleme tanımlayıcısı için geçersiz değer"
+
+#: variables.c:2228
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:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: değişkene değer atanmamış olabilir"
+
+#: variables.c:3646
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:3427
-#, fuzzy, c-format
+#: variables.c:3891
+#, c-format
msgid "%s has null exportstr"
-msgstr "%s: parametre boş ya da değer atanmamış"
+msgstr "%s boş exportstr içeriyor"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, 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:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "%s için exportstr içinde `=' yok"
-#: variables.c:3891
+#: variables.c:4344
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:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: genel değişkenler bağlamı yok"
-#: variables.c:3978
+#: variables.c:4431
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"
-#: variables.c:4786
-#, fuzzy, c-format
+#: variables.c:5257
+#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: açılamıyor: %s"
+msgstr "%s: %s: DOSYA olarak açılamaz"
-#: variables.c:4791
-#, fuzzy, c-format
+#: variables.c:5262
+#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%d: dosya tanıtıcı geçersiz: %s"
+msgstr "%s: %s: dosya izleme tanımlayıcısı için geçersiz değer"
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: uyumlulukdeğeri aralık dışı"
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright © 2006 Free Software Foundation, Inc.\n"
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Telif Hakkı (C) 2012 Özgür Yazılım Vakfı A.Ş."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
+"Lisans GPLv3+: GNU GPL sürüm 3 veya sonrası <http://gnu.org/licenses/gpl."
+"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr ""
+msgstr "GNU bash, sürüm %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
-
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Bu ücretsiz bir yazılımdır; değiştirmekte ve dağıtmakta özgürsünüz."
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright © 2006 Free Software Foundation, Inc.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "İzin verilen yasalar kapsamında hiçbir GARANTİSİ BULUNMAMAKTADIR."
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Telif Hakkı (C) 2012 Özgür Yazılım Vakfı A.Ş."
#: xmalloc.c:91
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %lu bayt ayrılamıyor (%lu bayt ayrıldı)"
+msgstr "%s: %lu bayt ayrılamıyor (%lu bayt ayrıldı)"
#: xmalloc.c:93
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "xmalloc: %lu bayt ayrılamıyor"
+msgstr "%s: %lu bayt ayrılamıyor"
#: xmalloc.c:163
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor (%lu bayt ayrıldı)"
+msgstr "%s: %s:%d: %lu bayt ayrılamıyor (%lu bayt ayrıldı)"
#: xmalloc.c:165
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor"
+msgstr "%s: %s:%d: %lu bayt ayrılamıyor"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
-msgstr ""
+msgstr "alias [-p] [isim[=deÄŸer] ... ]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr ""
+msgstr "unalias [-a] isim [isim ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
+"bind [-lpvsPVSX] [-m anahtar eşleniği] [-f dosyaadı] [-q isim] [-u isim] [-r "
+"anahtar sırası] [-x keyseq:kabuk-komutu] [keyseq:satırokuma-işlevi veya "
+"satırokuma-komutu]"
#: builtins.c:54
msgid "break [n]"
-msgstr ""
+msgstr "break [n]"
#: builtins.c:56
msgid "continue [n]"
-msgstr ""
+msgstr "continue [n]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [kabuk-dahili [arg ...]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr ""
+msgstr "caller [ifade]"
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr ""
+#, fuzzy
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [dizin]"
#: builtins.c:66
msgid "pwd [-LP]"
-msgstr ""
+msgstr "pwd [-LP]"
#: builtins.c:68
msgid ":"
-msgstr ""
+msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr ""
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr ""
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] command [arg ...]"
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr ""
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [isim[=deÄŸer] ...]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr ""
+msgstr "typeset [-aAfFgilrtux] [-p] isim[=deÄŸer] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [seçenek] isim[=değer] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [arg ...]"
#: builtins.c:87
msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [arg ...]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f dosyaadı] [isim ...]"
#: builtins.c:92
msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [arg ...]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts optstring isim [arg]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a isim] [komut [argümanlar ...]] [yönlendirme ...]"
#: builtins.c:98
msgid "exit [n]"
-msgstr ""
+msgstr "exit [n]"
#: builtins.c:100
msgid "logout [n]"
-msgstr ""
+msgstr "logout [n]"
#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
+msgstr "fc [-e ename] [-lnr] [ilk] [son] veya fc -s [pat=rep] [komut]"
#: builtins.c:107
msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [görev_tan]"
#: builtins.c:111
msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [görev_tan ...]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p yoladı] [-dt] [isim ...]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr ""
+msgstr "help [-dms] [desen ...]"
#: builtins.c:121
msgid ""
"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
"[arg...]"
msgstr ""
+"history [-c] [-d başlangıç] [n] veya history -anrw [dosyaadı] veya history -"
+"ps arg [arg...]"
#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [görevtan ...] veya jobs -x komut [argü]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [görevtan ...]"
#: builtins.c:132
msgid ""
"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
"[sigspec]"
msgstr ""
+"kill [-s sinspec | -n signum | -sigspec] pid | görevtan ... veya kill -l "
+"[sigspec]"
#: builtins.c:134
msgid "let arg [arg ...]"
-msgstr ""
+msgstr "let arg [arg ...]"
#: builtins.c:136
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
+"read [-ers] [-a dizi] [-d sonlandırıcı] [-i metin] [-n nkarakter] [-N "
+"nkarakter] [-p istem] [-t zamanaşımı] [-u fd] [isim ...]"
#: builtins.c:138
msgid "return [n]"
-msgstr ""
+msgstr "return [n]"
#: builtins.c:140
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr ""
+msgstr "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr ""
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [isim ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [isim[=deÄŸer] ...] veya export -p"
#: builtins.c:146
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [-aAf] [isim[=deÄŸer] ...] veya readonly -p"
#: builtins.c:148
-#, fuzzy
msgid "shift [n]"
-msgstr "shift sayısı"
+msgstr "shift [n]"
#: builtins.c:150
-#, fuzzy
msgid "source filename [arguments]"
-msgstr "dosya ismi argüman gerekir"
+msgstr "source dosyaadı [argümanlar]"
#: builtins.c:152
-#, fuzzy
msgid ". filename [arguments]"
-msgstr "dosya ismi argüman gerekir"
+msgstr ". dosyaadı [argümanlar]"
#: builtins.c:155
msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr ""
+msgstr "test [ifade]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr ""
+msgstr "[ arg... ]"
#: builtins.c:162
msgid "times"
-msgstr ""
+msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[arg] sinyal_tan ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] isim [isim ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr ""
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [sınır]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [kip]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr ""
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr ""
+msgid "wait [pid ...]"
+msgstr "wait [pid ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for Ä°SÄ°M [in KELÄ°MELER ... ] ; do KOMUTLAR; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( ifade1; ifade2; ifade3 )); do KOMUTLAR; done"
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select Ä°SÄ°M [in KELÄ°MELER ... ;] do KOMUTLAR; done"
#: builtins.c:188
msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] zamantüneli"
#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case KELÄ°ME in [DESEN [| DESEN]...) KOMUTLAR ;;]... esac"
#: builtins.c:192
msgid ""
"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
"COMMANDS; ] fi"
msgstr ""
+"if KOMUTLAR; then KOMUTLAR; [ elif KOMUTLAR; then KOMUTLAR; ]... [ else "
+"KOMUTLAR; ] fi"
#: builtins.c:194
msgid "while COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "while KOMUTLAR; do KOMUTLAR; done"
#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until KOMUTLAR; do KOMUTLAR; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr ""
+msgstr "coproc [isim] command [yönlendirmeler]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function isim { KOMUTLAR ; } veya isim () { KOMUTLAR ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ KOMUTLAR ; }"
#: builtins.c:204
msgid "job_spec [&]"
-msgstr ""
+msgstr "görev_tan [&]"
#: builtins.c:206
-#, fuzzy
msgid "(( expression ))"
-msgstr "ifade bekleniyordu"
+msgstr "(( ifade ))"
#: builtins.c:208
-#, fuzzy
msgid "[[ expression ]]"
-msgstr "ifade bekleniyordu"
+msgstr "[[ ifade ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "variables - Bazı kabuk değişkenlerinin isim ve anlamları"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
-msgstr ""
+msgstr "pushd [-n] [+N | -N | dizin]"
#: builtins.c:217
msgid "popd [-n] [+N | -N]"
-msgstr ""
+msgstr "popd [-n] [+N | -N]"
#: builtins.c:221
msgid "dirs [-clpv] [+N] [-N]"
-msgstr ""
+msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [optname ...]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v var] biçim [argümanlar]"
#: builtins.c:229
msgid ""
@@ -2285,31 +2355,40 @@ msgid ""
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o seçenek] [-A işlem] [-G genelyol] [-"
+"W kelimelistesi] [-F işlev] [-C komut] [-X süzgeçyolu] [-P önek] [-S sonek] "
+"[isim ...]"
#: builtins.c:233
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 seçenek] [-A işlem] [-G genelyol] [-W "
+"kelimelistesi] [-F işlev] [-C komut] [-X süzgeçyolu] [-P önek] [-S sonek] "
+"[kelime]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o seçenek] [-DE] [isim ...]"
#: builtins.c:240
msgid ""
"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"mapfile [-n say] [-O kaynak] [-s say] [-t] [-u fd] [-C geriçağırım] [-c "
+"parçacık] [dizi]"
#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
+"readarray [-n say] [-O kaynak] [-s say] [-t] [-u fd] [-C geriçağırım] [-c "
+"parçacık] [dizi]"
#: builtins.c:254
-#, fuzzy
msgid ""
"Define or display aliases.\n"
" \n"
@@ -2328,16 +2407,23 @@ msgid ""
"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"
+"Rumuz tanımla veya görüntüle.\n"
+" \n"
+" `alias' argümansız kullanıldığında standart çıktıda kullanılabilecek "
+"tüm\n"
+" rumuzları `alias İSİM=DEĞER' biçiminde listeler.\n"
+" \n"
+" Diğer durumda DEĞERi verilmiş her İSİM için bir rumuz tanımlanır.\n"
+" DEÄžERdeki boÅŸluk, rumuz geniÅŸletildiÄŸinde sonraki kelimenin rumuz\n"
+" ikamesi için denetlenmesine sebep olur.\n"
+" \n"
+" Seçenekler:\n"
+" -p\tTüm rumuzları tekrar kullanılabilir biçimde listele\n"
+" \n"
+" Çıkış Durumu:\n"
" Hiçbir şeyin rumuzu olmayan bir İSİM verilmedikçe alias doğru döndürür."
#: builtins.c:276
-#, fuzzy
msgid ""
"Remove each NAME from the list of defined aliases.\n"
" \n"
@@ -2346,13 +2432,15 @@ msgid ""
" \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."
+"Tanımlı rumuzlar listesinden her İSMİ kaldır.\n"
+" \n"
+" Seçenekler:\n"
+" -a\ttüm rumuz tanımlamalarını kaldır.\n"
+" \n"
+" İSİM mevcut olmayan bir rumuz olmadığı takdirde doğru\n"
+" döndür."
#: builtins.c:289
-#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2386,22 +2474,21 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\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"
+"Readline tuş atamalarını ve değişkenlerini ayarla.\n"
+" \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"
+" 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"
+" \n"
+" Seçenekler:\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"
@@ -2409,26 +2496,31 @@ msgstr ""
" -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"
+" -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. "
+"-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"
" -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:326
-#, fuzzy
+" -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\tTUÅžDÄ°ZÄ°SÄ°nin her giriliÅŸinde KABUK-"
+"KOMUTUnun\n"
+" \t\t\t\tçalıştırılmasını sağlar.\n"
+" -X\t\t Tuş dizilerini -x ve ilişkili komutlarını tekrar bir girdi "
+"olarak kullanılabilecek\n"
+" biçimde listeler.\n"
+" \n"
+" Çıkış Durumu:\n"
+" tanınmayan bir seçenek girilmediği veya bir hata oluşmadığı durumda 0 "
+"döndürür."
+
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2438,12 +2530,16 @@ msgid ""
" 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."
+"for, while veya until döngülerinden çık.\n"
+" \n"
+" Bir FOR, WHILE veya UNTIL döngüsünden çık. Eğer N belirtilmişse, N "
+"iliÅŸkili\n"
+" döngüden çık.\n"
+" \n"
+" Çıkış Durumu:\n"
+" N, 1'e eşit veya daha fazla olmadığında çıkış durumu 0'dır."
-#: builtins.c:338
-#, fuzzy
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2453,11 +2549,15 @@ msgid ""
" 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."
+"for, while veya until döngülerine devam et.\n"
+" \n"
+" İlişkili FOR, WHILE veya UNTIL döngüsünün sonraki adımına devam eder.\n"
+" N tanımlanmışsa, N'inci ilişkili döngüye devam eder.\n"
+" \n"
+" Çıkış Durumu:\n"
+" N, 1 veya daha büyük olmadığında çıkış durumu 0'dır."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2470,9 +2570,19 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
+"Kabuk dahillerini çalıştır.\n"
+" \n"
+" Komut araması yapmadan KABUK-DAHİLİ, ARGÜMANLAR argümanları ile\n"
+" çalıştır. Bu, bir KABUK-DAHİLİ, bir kabuk işlevi olarak tekrar uygulamak "
+"isteyip\n"
+" işlev içerisinde dahili olanı da çalıştırmanız gerektiğinizde "
+"kullanışlıdır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" KABUK-DAHİLİnin çıkış durumunu veya eğer KABUK-DAHİLİ değilse false "
+"döndürür."
-#: builtins.c:365
-#, fuzzy
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2487,25 +2597,21 @@ msgid ""
" 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."
+"Geçerli alt yordam çağrısının bağlamını döndürür.\n"
+" \n"
+" İFADE olmadan, \"$satır $dosyaadı\" döndürür. İFADE ile "
+"kullanıldığında\n"
+" \"$satır $altyordam $dosyaadı\" döndürür; bu ek bilgi bir yığın izi "
+"saÄŸlamak\n"
+" için kullanılabilir.\n"
+" \n"
+" İFADE değeri, geçerli çerçeveden önce kaç tane çerçeve çağrılacağını\n"
+" belirtir. Üst çerçeve 0. çerçevedir. \n"
+" Çıkış Durumu:\n"
+" İFADE geçersiz olmadığı ve bir kabuk işlevi çalıştırmadığı durumda 0 "
+"döndürür."
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2529,39 +2635,62 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; 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 "
+"Kabuk çalışma dizinini değiştir.\n"
+" \n"
+" Geçerli dizini DİZİN olarak değiştir. Öntanımlı dizin kabuk değişkeninin "
+"EV\n"
+" dizini deÄŸeridir.\n"
+" \n"
+" CDPATH değişkeni, DİZİN içeren dizinler için arama yolunu tanımlar. "
"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:414
+" için alternatif dizin isimleri iki nokta (:) ile ayrılır.\n"
+" Boş dizin adı, geçerli dizinle aynıdır. Eğer DİZİN bölü (/) ile "
+"başlıyorsa, CDPATH\n"
+" kullanılmaz.\n"
+" \n"
+" Eğer dizin bulunamazsa ve kabuk seçeneği `cdable_vars' ayarlanmışsa, "
+"kelime\n"
+" bir değişken adı olarak varsayılır. Eğer değişken bir değere sahipse, "
+"deÄŸeri DÄ°ZÄ°N\n"
+" için kullanılır\n"
+" \n"
+" Seçenekler:\n"
+" -L\tsembolik bağlantıların takip edilmesini zorla\n"
+" -P\tsembolik bağlantıları takip etmeden fiziksel dizini kullan\n"
+" -e\teğer -P seçeneği belirtilmişse ve geçerli çalışma dizini "
+"başarılı şekilde\n"
+" \tbelirlenemiyorsa, sıfır olmayan bir durumla çık\n"
+" \n"
+" Öntanımlı olan `-L' tanımlanmış gibi sembolik bağlantıları takip "
+"etmektir.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Eğer dizin değişmişse ve -P kullanıldığında $PWD başarılı ayarlanırsa 0; "
+"diÄŸer durumda\n"
+" sıfır olmayan bir değer döndürür."
+
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2576,9 +2705,19 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
+"Geçerli çalışma dizininin ismini yazdır.\n"
+" \n"
+" Seçenekler:\n"
+" -L\teğer geçerli çalışma dizinini isimlendirmişse $PWD değerini "
+"yazdır\n"
+" -P\thiçbir sembolik bağlantı kullanmadan fiziksel dizini yazdır\n"
+" \n"
+" Öntanımlı olarak `pwd', `-L' tanımlanmış şekilde davranır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Dizin okunamadığı veya geçersiz seçenek verilmediği takdirde 0 döndürür."
-#: builtins.c:431
-#, fuzzy
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2587,29 +2726,38 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
-"\r:\n"
-" Etkisizdir; bu komut birşey yapmaz. Sıfır çıkış kodu döndürülür."
+"BoÅŸ komut.\n"
+" \n"
+" Etkisizdir; bu komut birÅŸey yapmaz.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Her zaman başarılıdır."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Bir başarılı sonuç dönrürür.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Her zaman başarılıdır."
-#: builtins.c:451
-#, fuzzy
+#: builtins.c:459
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."
+"Başarısız bir sonuç döndür.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Her zaman başarısızdır."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2627,9 +2775,25 @@ msgid ""
" Exit Status:\n"
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
+"Basit bir komut çalıştır veya komutlar hakkında bilgi görüntüle.\n"
+" \n"
+" KOMUTU ARGümanları ile kabuk işlevi aramasını ihmal ederek çalıştırır "
+"veya\n"
+" belirtilen KOMUTlar hakkında bilgi görüntüler. Aynı isimde bir işlev "
+"varsa\n"
+" diskte komutları çalıştırmak için kullanılabilir.\n"
+" \n"
+" Seçenekler:\n"
+" -p\tYOL için, tüm standart yardımcıları bulabilmek için bir öntanımlı "
+"deÄŸer\n"
+" \tkullan\n"
+" -v\t`type' dahilisine benzer bir KOMUT açıklaması göster\n"
+" -V\ther KOMUTun fazla açıklamasını göster\n"
+" \n"
+" Çıkış Durumu:\n"
+" KOMUTun çıkış durumunu döndürür. KOMUT bulunamazsa başarısız olur."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2649,6 +2813,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2664,43 +2829,21 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment 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:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
+"DeÄŸiÅŸken isim ve niteliklerini ayarla.\n"
+" \n"
+" Kullanılmıyor. Bkz. `help declare'."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2711,16 +2854,31 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
+"Yerel değişkenleri tanımla.\n"
+" \n"
+" İSİM adıyla bir yerel değişken oluştur ve DEĞER ata. SEÇENEK `declare'\n"
+" tarafından kabul edilen herhangi bir seçenek olabilir.\n"
+" \n"
+" Yerel değişkenler sadece bir işlev içerisinde kullanılabilirler ve "
+"tanımlandıkları\n"
+" işleve ve alt işlevlerine görünebilirler.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Geçersiz bir seçenek verilmediğinde, bir değişken hatası oluşmadığında "
+"veya\n"
+" kabuk bir işlev çalıştırmıyorsa başarılı döner."
-#: builtins.c:542
+#: builtins.c:552
#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2732,6 +2890,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2746,29 +2905,36 @@ msgid ""
" 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:576
+"Argümanları standart çıktıya yaz.\n"
+" \n"
+" ARGümanları yeni satırla izlenen standart çıktıda görüntüle.\n"
+" \n"
+" Seçenekler:\n"
+" -n\tyeni satıra başvurma\n"
+" -e\ttakip eden ters bölü kaçışlarının yorumlanmasını etkinleştir\n"
+" -E\tters bölü kaçışlarının yorumlanmasını açıkça gizle\n"
+" \n"
+" `echo' aşağıdaki ters bölü kaçışlı karakterleri yorumlar:\n"
+" \\a\tuyarı (zil)\n"
+" \\b\tgerisilme\n"
+" \\c\tsonraki çıktıları gizle\n"
+" \\e\tkaçış karakteri\n"
+" \\f\tform besleme\n"
+" \\n\tyeni satır\n"
+" \\r\tsatırbaşı\n"
+" \\t\tyatay sekme\n"
+" \\v\tdikey sekme\n"
+" \\\\\tters bölü\n"
+" \\0nnn\tASCII kodu NNN (sekizlik) olan karakter. NNN 0-3 arası "
+"sekizli\n"
+" \trakamlardan oluÅŸabilir.\n"
+" \\xHH\tdeğeri HH (onaltılık) olan sekiz bit karakter. HH bir veya iki\n"
+" \tonaltılık rakam olabilir\n"
+" \n"
+" Çıkış Durumu:\n"
+" Yazma hatası oluşmadığı takdirde başarılı döner."
+
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2780,8 +2946,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless a write error occurs."
msgstr ""
+"Argümanları standart çıktıya yaz.\n"
+" \n"
+" ARGümanları yeni satır ile takip eden standart çıktıda görüntüle.\n"
+" \n"
+" Seçenekler:\n"
+" -n\tyeni bir satıra başvurma\n"
+" \n"
+" Çıkış Durumu:\n"
+" Bir hata oluşmadığı sürece başarılı döner."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2808,7 +2983,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2819,9 +2994,16 @@ msgid ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
msgstr ""
+"Argümanları kabuk komutu olarak çalıştır.\n"
+" \n"
+" ARGümanları tek bir dizgeye birleştir, sonucu kabuğa girdi olarak "
+"kullan,\n"
+" ve sonuçlanan komutları çalıştır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Komutun çıkış durumunu döndürür veya komut boşsa başarılı döner."
-#: builtins.c:631
-#, fuzzy
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2861,17 +3043,18 @@ msgid ""
" 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 "
+"Seçenek argümanlarını ayıklar.\n"
+" \n"
+" Getopts kabuk betikleri tarafından konumsal parametreleri "
"çözümlemekte\n"
" kullanılır.\n"
-"\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"
+" \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 "
@@ -2883,7 +3066,7 @@ msgstr ""
" bir argüman gerektirdiğinde getopts argümanı OPTARG "
"deÄŸiÅŸkenine\n"
" yerleÅŸtirir.\n"
-"\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 "
@@ -2901,18 +3084,23 @@ msgstr ""
" 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"
+" \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 "
+" \n"
+" Getopts normalde konumsal parametreleri ($0 - $9) çözümlese de "
"baÅŸka\n"
-" argümanlar verilmişse bunları çözümler."
+" argümanlar verilmişse bunları çözümler.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Bir seçenek bulunduğunda başarılı, seçenek sonuna gelindiğinde veya "
+"bir hata oluştuğunda başarısız döner.\n"
+" encountered or an error occurs."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2934,20 +3122,37 @@ msgid ""
" Returns success unless COMMAND is not found or a redirection error "
"occurs."
msgstr ""
+"KabuÄŸu verilen komutla deÄŸiÅŸtir.\n"
+" \n"
+" KOMUTU, belirtilen program ile değiştirerek çalıştır.\n"
+" ARGÜMANLAR, KOMUTUN argümanları olur. Eğer KOMUT belirtilmemişse, tüm\n"
+" yönlendirmeler geçerli kabukta uygulanır.\n"
+" \n"
+" Seçenekler:\n"
+" -a isim\tİSMİ, KOMUTun sıfırıncı argümanına ata\n"
+" -c\t\tKOMUTu boş bir ortamla çalıştır\n"
+" -l\t\tKOMUTun sıfırıncı argümanına bir çizgi koy\n"
+" \n"
+" Eğer komut çalıştırılamıyorsa, `execfail' ayarlanmadığı sürece "
+"etkileÅŸimsiz kabuk\n"
+" çıkış yapar.\n"
+" \n"
+" Çıkış Durumu:\n"
+" KOMUT bulunduğu ve bir yönlendirme hatası olmadığı sürece başarılı döner."
-#: builtins.c:694
-#, fuzzy
+#: builtins.c:706
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"
+"Exit the shell.\n"
+" \n"
" N durumu ile dönerek kabuk çıkar. N verilmezse son çalıştırılan komutun\n"
" çıkış durumu döner."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2955,9 +3160,12 @@ msgid ""
"executed\n"
" in a login shell."
msgstr ""
+"Oturum kabuğundan çık.\n"
+" \n"
+" N durumuyla bir oturum kabuğundan çıkar. Eğer çalıştırılmamışsa oturum\n"
+" kabuğunda bir hata döndürür."
-#: builtins.c:713
-#, fuzzy
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2986,8 +3194,8 @@ msgid ""
" 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"
+"Geçmiş listesindeki komutları görüntüle veya çalıştır\n"
+" \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 "
@@ -2995,24 +3203,26 @@ msgstr ""
" 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"
+" \n"
+" Seçenekler:\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"
+" \t\tÖntanımlısı FCEDIT ardından EDITOR ve vi'dir.\n"
+" -l\tile komutlar stardart çıktıya listelenir.\n"
+" -n\tile listede satır numaraları bulunmaz.\n"
+" -r\tile 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"
+" \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."
+" r' yazarak en son komut çalıştırılabilir.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Başarılı veya çalıştırılan komut durumu döndürülür; hata oluştuğunda "
+"sıfır harici değer döner."
-#: builtins.c:743
-#, fuzzy
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3023,13 +3233,16 @@ msgid ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-"\rfg [Ä°Åž_BELÄ°RTÄ°MÄ°]\n"
+"İşi ön plana taşı.\n"
+" \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."
+" o an ki işi kullanır.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Ön plana yerleştirilmiş komutun durumu veya hata olduğunda başarısız."
-#: builtins.c:758
-#, fuzzy
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3042,11 +3255,16 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-"\rbg [Ä°Åž_BELÄ°RTÄ°MÄ°]\n"
+"İşi arkaplana taşı.\n"
+" \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."
+" Ä°Åž_BELÄ°RTÄ°MÄ° verilmemiÅŸse, iÅŸ belirtimi olarak o an ki iÅŸ "
+"kullanılır. \n"
+" Çıktı Durumu:\n"
+" İş kontrolü etkin olmadığı veya bir hata oluşmadığı sürece başarılı "
+"döner."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3057,7 +3275,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3070,7 +3288,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3092,8 +3310,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
-#, fuzzy
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3126,31 +3343,39 @@ msgid ""
" 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"
+"Geçmiş listesini görüntüle veya düzenle.\n"
+" \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"
+" 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"
+" \n"
+" Seçenekler:\n"
+" -c\tkomut geçmişi listesini tüm girdilerini silerek temizler.\n"
+" -d\tile satır numarası KONUM olan geçmiş girdisi silinir.\n"
+" \n"
+" -a\tile oturumunun başlangıcından itibaren girilen geçmiş satırları\n"
+" \tgeçmiş dosyasına eklenir.\n"
+" -n\tile geçmiş dosyasından henüz okunmamış olan geçmiş satırları,\n"
+" \tgeçmiş listesine eklenir.\n"
+" -r\tile dosya okunur ve içeriği geçmiş listesine eklenir.\n"
+" -w\tile geçmiş listesi çıktısı geçmiş dosyasına yazılır.\n"
+" \n"
+" -p\ther ARGümanda geçmiş açılımı yap ve sonucu geçmiş listesinde\n"
+" \tdepolamadan görüntüle\n"
+" -s\tARGümanları geçmiş listesine tek bir girdi olarak ekle\n"
+" \n"
+" DOSYAÄ°SMÄ° verilmezse, $HISTFILE deÄŸiÅŸkenindeki deÄŸer, o da yoksa\n"
+" ~/.bash_history dosyası kullanılır.\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"
+" 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."
+" takdirde hiç zaman damgası basılmaz. \n"
+" Çıktı Durumu:\n"
+" Geçersiz bir seçenek girilmediği veya bir hata oluşmadığı takdirde "
+"başarılı döner."
-#: builtins.c:857
+#: builtins.c:869
#, fuzzy
msgid ""
"Display status of jobs.\n"
@@ -3160,7 +3385,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3174,20 +3399,30 @@ msgid ""
" 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:884
+"Görev durumlarını görüntüle.\n"
+" \n"
+" Etkin işleri listeler. İŞ_BELİRTİMİ bu çıktıya çıktıyı kısıtlar.\n"
+" Seçenekler olmadan, tüm etkin görev durumları görüntülenir.\n"
+" \n"
+" Seçenekler:\n"
+" -l\tile normal bilgilere ek olarak süreç kimliklerini de (PID) "
+"\tlisteler\n"
+" -n\tile sadece kullanıcının durumları hakkında aldığı son uyarıdan\n"
+" \tberi durumları değişen işler hakkında bilgi gösterir.\n"
+" -p\tile işlerin sadece süreç kimliklerini listeler\n"
+" -r\tile sadece çalışmakta olan,\n"
+" -s\tile ise sadece durmuÅŸ olan iÅŸler listelenir.\n"
+" \n"
+" -x seçeneği verilmişse, ARGümanlar ile belirtilen tüm iş belirtimleri,\n"
+" işlerin süreç grup liderinin süreç grup kimliğine yerleştirilip KOMUT\n"
+" çalıştırılır.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Geçersiz bir seçenek girilmediği veya bir hata oluşmadığı takdirde "
+"başarılı döner.\n"
+" -x kullanılmışsa, KOMUTun çıkış durumu döndürülür."
+
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3204,7 +3439,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
#, fuzzy
msgid ""
"Send a signal to a job.\n"
@@ -3242,7 +3477,7 @@ msgstr ""
" 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:926
+#: builtins.c:938
#, fuzzy
msgid ""
"Evaluate arithmetic expressions.\n"
@@ -3327,8 +3562,7 @@ msgstr ""
"\n"
" Son ifade'nin sonucu 0 ise dönüş durumu 1 dir, aksi takdirde 0 dır."
-#: builtins.c:971
-#, fuzzy
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3363,64 +3597,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\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:1014
+
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3432,7 +3625,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3499,7 +3692,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3608,7 +3801,7 @@ msgstr ""
" 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:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3617,6 +3810,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3628,7 +3823,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3647,7 +3842,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3659,7 +3854,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3667,7 +3864,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3678,8 +3875,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
-#, fuzzy
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3692,21 +3888,21 @@ msgid ""
" 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"
+"Geçerli kabukta bir dosyadan komut çalıştır.\n"
+" \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."
+" 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.\n"
+" \n"
+" Çıktı Durumu:\n"
+" DOSYAİSMİnde çalıştırılan son komutun durumunu döndürür. DOSYAİSMİ\n"
+" okunamazsa başarısız döner."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3720,7 +3916,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -3786,6 +3982,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3878,19 +4076,19 @@ msgstr ""
" 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:1311
-#, fuzzy
+#: builtins.c:1329
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"
+"Şartlı ifadeyi değerlendir.\n"
+" \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:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3902,7 +4100,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
#, fuzzy
msgid ""
"Trap signals and other events.\n"
@@ -3963,7 +4161,7 @@ msgstr ""
" numaraları ile birlikte listelemesini sağlar. Kabuğa bir sinyal\n"
" göndermek isterseniz \"kill -SİGNAL $$\" sözdizimini kullanabilirsiniz."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3993,8 +4191,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
-#, fuzzy
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4023,6 +4220,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4037,40 +4237,49 @@ msgid ""
" 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"
+"Kabuk kaynak sınırlarını değiştir.\n"
+" \n"
+" Kabuk ve oluşturduğu süreçlere, izin veren sistemlerde mevcut kaynaklar\n"
+" üzerinde denetim sağlar.\n"
+" \n"
+" Seçenekler:\n"
+" -S\tYazılımsal (`soft') sınır kullanılır.\n"
+" -H\tDonanımsal (`hard') sınır kullanılır.\n"
+" -a\tMevcut tüm sınırlamalar gösterilir.\n"
+" -c\tOluşan core dosyalarının azami boyu\n"
+" -d\tBir sürecin veri segmanının azami boyu\n"
+" -e\tAzami zamanlama önceliği (`nice')\n"
+" -f\tKabuk ve çocukları tarafından oluşturulan dosyaların azami boyu\n"
+" -i\tAskıdaki sinyallerin azami sayısı\n"
+" -l\tBelleÄŸe kilitlenebilen azami boyut\n"
+" -m\tAzami bellek boyu\n"
+" -n\tAçık dosya tanıtıcılarının azami sayısı\n"
+" -p\tİletişim tüneli tamponunun boyu\n"
+" -q\tPOSIX ileti kuyruklarındaki azami bayt miktarı\n"
+" -r\tAzami anında çalıştırma zamanlaması önceliği\n"
+" -s\tYığıtın azami boyu\n"
+" -t\tİşlemci zamanının saniye cinsinden azami miktarı\n"
+" -u\tTek bir kullanıcının kullanabileceği azami süreç sayısı\n"
+" -v\tBir sürecin kullanabileceği sanal belleğin azami miktarı\n"
+" -x\tDosya kilitlerinin azami sayısı\n"
+" -T\tAzami iş parçacık sayısı\n"
+" \n"
+" Tüm seçenekler tüm platformlarda kullanılabilir olmayabilir.\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."
+" özkaynak için mevcut değer gösterilir. Hiç seçenek verilmezse -f\n"
+" seçeneği verilmiş kabul edilir.\n"
+" \n"
+" 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. \n"
+" Çıktı Durumu:\n"
+" Geçersiz bir seçenek girilmediği veya bir hata oluşmadığı takdirde "
+"başarılı döner."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4088,46 +4297,69 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
+"Sürecin tamamlanmasını bekle ve çıkış durumunu döndür.\n"
+" \n"
+" Belirtilen süreci bekler ve sonlandırma durumunu raporlar. Eğer ID "
+"verilmemiÅŸse\n"
+" geçerli tüm alt süreçler beklenir ve dönüş kodu sıfırdır. Eğer ID bir "
+"görev tanımıysa\n"
+" görevin iletişim tünelindeki tüm süreçler beklenir.\n"
+" \n"
+" -n seçeneği verilirse, sonraki görevin sonlanması beklenir ve çıkış "
+"durumunı döndürür.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Kimlik durumunu döndürür, kimlik geçersizse veya geçersiz bir seçenek "
+"verilmiÅŸse\n"
+" başarısız olur."
-#: builtins.c:1482
-#, fuzzy
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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:1497
-#, fuzzy
+"Sürecin tamamlanmasını bekle ve çıkış durumunu döndür.\n"
+" \n"
+" PID tarafından belirtilen her süreci bekler ve sonlandırma durumunu "
+"raporlar.\n"
+" Eğer PID verilmemişse geçerli tüm alt süreçler beklenir ve dönüş kodu "
+"sıfırdır.\n"
+" PID bir süreç kimliği olmalıdır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Son PID'nin durumunu döndürür, PID geçersizse veya geçersiz bir seçenek "
+"verilmiÅŸse\n"
+" başarısız olur."
+
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4139,14 +4371,19 @@ msgid ""
" 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."
+"Bir listedeki her üye için komut çalıştır.\n"
+" \n"
+" `for' döngüsü bir öge listesindeki her üye için komut sırasını "
+"çalıştırır.\n"
+" Eğer `in KELİMELER ...;' belirtilmemişse `in \"$@\"' varsayılır. "
+"KELÄ°MELER\n"
+" içerisindeki her eleman için, İSİM bu elemana atanır ve KOMUTLAR "
+"çalıştırılır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1511
-#, fuzzy
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4162,18 +4399,22 @@ msgid ""
" 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"
+"Döngü için aritmetik.\n"
+" \n"
+" Åžuna eÅŸdeÄŸerdir:\n"
" \t(( Ä°FADE1 ))\n"
" \twhile (( Ä°FADE2 )); do\n"
-" \t\tKOMUTlar\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."
+" Ä°FADE1, Ä°FADE2 ve Ä°FADE3 aritmetik ifadelerdir. EÄŸer ifadelerden biri "
+"yoksa\n"
+" 1'e değerlendirilmiş şekilde davranır.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1529
-#, fuzzy
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4192,7 +4433,8 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"\rselect AD [in SÖZ ... ;] do KOMUTlar; done\n"
+"Listeden kelimeleri seç ve komutları çalıştır.\n"
+" \n"
" `SÖZ ...;' listesi yorumlanarak öğe listesi üretilir. Öğe "
"listesindeki\n"
" her öğenin başına bir numara eklenerek standart hataya çıktılanır. "
@@ -4210,9 +4452,12 @@ msgstr ""
" 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."
+" sonlandırılıncaya kadar komutlar çalıştırılır.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1550
+#: builtins.c:1574
#, fuzzy
msgid ""
"Report time consumed by pipeline's execution.\n"
@@ -4236,8 +4481,7 @@ msgstr ""
" 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:1567
-#, fuzzy
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4247,11 +4491,15 @@ msgid ""
" 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."
+"Kalıp eşleştirme tabanlı komutları çalıştır.\n"
+" \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.\n"
+" \n"
+" Çıkış Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1579
+#: builtins.c:1603
#, fuzzy
msgid ""
"Execute commands based on conditional.\n"
@@ -4286,7 +4534,7 @@ msgstr ""
" çı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:1596
+#: builtins.c:1620
#, fuzzy
msgid ""
"Execute commands as long as a test succeeds.\n"
@@ -4301,8 +4549,7 @@ msgstr ""
" `while KOMUTlar; listesinin çıkış durumu sıfır olduğu sürece\n"
" `do KOMUTlar;' listesi çalıştırılır."
-#: builtins.c:1608
-#, fuzzy
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4312,11 +4559,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"\runtil KOMUTlar; do KOMUTlar; done\n"
+"Bir sınama başarısız oluncaya kadar komutları çalıştır.\n"
+" \n"
" `until KOMUTlar; listesinin çıkış durumu sıfırdan farklı olduğu sürece\n"
-" `do KOMUTlar;' listesi çalıştırılır."
+" `do KOMUTlar;' listesi çalıştırılır.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4329,7 +4580,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4343,8 +4594,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
-#, fuzzy
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4354,12 +4604,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"\r{ KOMUTlar ; }\n"
+"Komutları bir birim olarak grupla.\n"
+" \n"
" KOMUTlar bir grup olarak çalıştırılır. Bu, bir komut kümesini bir\n"
-" yönlendirmede kullanmanın tek yoludur."
+" yönlendirmede kullanmanın tek yoludur.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Son çalıştırılan komutun durumunu döndürür."
-#: builtins.c:1660
-#, fuzzy
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4372,15 +4625,18 @@ msgid ""
" Exit Status:\n"
" Returns the status of the resumed job."
msgstr ""
-"\r%: Ä°Åž_BELÄ°RTÄ°MÄ° [&]\n"
+"Göreve ön planda devam et.\n"
+" \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."
+" olarak kullanılmış gibi artalana yerleştirilmesine sebep olur.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Devam edilen görevin durumunu döndürür."
-#: builtins.c:1675
-#, fuzzy
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4390,11 +4646,15 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-"\r(( Ä°FADE ))\n"
+"Aritmetik ifadeyi deÄŸerlendir.\n"
+" \n"
" Verilen aritmetik İFADE aritmetik değerlendirme kurallarına göre\n"
-" deÄŸerlendirilir. \"let Ä°FADE\" ile eÅŸdeÄŸerdir."
+" deÄŸerlendirilir. \"let Ä°FADE\" ile eÅŸdeÄŸerdir.\n"
+" \n"
+" Çıktı Durumu:\n"
+" İFADE 0 olursa 1; aksi takdirde 0 döndürür."
-#: builtins.c:1687
+#: builtins.c:1711
#, fuzzy
msgid ""
"Execute conditional command.\n"
@@ -4437,7 +4697,7 @@ msgstr ""
" 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:1713
+#: builtins.c:1737
#, fuzzy
msgid ""
"Common shell variable names and usage.\n"
@@ -4558,7 +4818,7 @@ msgstr ""
" gerektiğine karar vermek için kullanılan kalıpların\n"
" ikinokta imi ayraçlı listesi.\n"
-#: builtins.c:1770
+#: builtins.c:1794
#, fuzzy
msgid ""
"Add directories to stack.\n"
@@ -4610,7 +4870,7 @@ msgstr ""
"\n"
" Dizin yığıtını `dirs' komutuyla görebilirsiniz."
-#: builtins.c:1804
+#: builtins.c:1828
#, fuzzy
msgid ""
"Remove directories from stack.\n"
@@ -4651,7 +4911,7 @@ msgstr ""
" engeller, böylece sadece yığıt değiştirilmiş olur. \n"
" Dizin yığıtını `dirs' komutuyla görebilirsiniz."
-#: builtins.c:1834
+#: builtins.c:1858
#, fuzzy
msgid ""
"Display directory stack.\n"
@@ -4697,7 +4957,7 @@ msgstr ""
" -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:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -4718,7 +4978,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4736,9 +4996,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -4746,6 +5006,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -4763,7 +5029,7 @@ msgstr ""
" 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:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -4790,8 +5056,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
-#, fuzzy
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -4803,14 +5068,17 @@ msgid ""
" 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"
+"Seçeneklere bağlı olarak olası tamamlamaları gösterir.\n"
+" \n"
+" Olası 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."
+" takdirde eşleşmelerden sadece SÖZCÜK ile eşleşenler üretilir.\n"
+" \n"
+" Çıktı Durumu:\n"
+" Geçersiz bir seçenek girilmediği veya bir hata oluşmadığı takdirde "
+"başarılı döner."
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -4841,7 +5109,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -4882,21 +5150,25 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
+"Bir dosyadaki satırları bir dizi değişkenine oku.\n"
+" \n"
+" `mapfile' ile eşanlamlıdır."
-#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)"
-
-#~ msgid "xrealloc: cannot allocate %lu bytes"
-#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor"
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Telif Hakkı (C) 2009 Free Software Foundation, Inc.\n"
-#~ 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ı)"
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Lisans GPLv2+: GNU GPL sürüm 2 veya sonrası <http://gnu.org/licenses/gpl."
+#~ "html>\n"
#~ msgid " "
#~ msgstr " "
@@ -5064,6 +5336,15 @@ msgstr ""
#~ msgid "malloc: watch alert: %p %s "
#~ msgstr "malloc: yakalama alarmı: %p %s "
+#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)"
+
+#~ msgid "xrealloc: cannot allocate %lu bytes"
+#~ msgstr "xrealloc: %lu bayt yeniden ayrılamıyor"
+
+#~ 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ı)"
+
#~ msgid ""
#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n"
#~ " break N levels."
@@ -5126,6 +5407,65 @@ msgstr ""
#~ "daha\n"
#~ " ayrıntılı açıklama üretilmesini sağlar. "
+#~ 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 ""
+#~ "\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."
+
#~ msgid "Obsolete. See `declare'."
#~ msgstr ""
#~ "\rtypeset [-afFirtx] [-p] Ä°SÄ°M[=DEÄžER] ...\n"
@@ -5293,6 +5633,98 @@ msgstr ""
#~ " kullanılması durumunda ise sadece çalışmakta olan işler kaldırılır."
#~ 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"
+#~ " \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."
+#~ 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."
+
+#~ 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 ""
diff --git a/po/uk.gmo b/po/uk.gmo
index 138d66ec..f67756d2 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 098ba728..c8671608 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,109 +1,127 @@
# Bash Ukrainian messages
# Copyright (C) 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
+#
# Myhailo Danylenko <isbear@ukrpost.net>, 2009.
# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2010.
-#
+# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2013, 2014.
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-06-01 14:53+0300\n"
-"Last-Translator: Maxim V. Dziumanenko <dziumanenko@gmail.com>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-01-30 20:45+0200\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\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%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"
+"X-Generator: Lokalize 1.5\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr "неправильний Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð°Ñиву"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: неможливо перетворити індекÑований маÑив на аÑоціативний"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: неправильний ключ аÑоціативного маÑиву"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÑ‡Ð¸Ñлових елементів неможливе"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: при означенні аÑоціативних маÑивів потрібно вказувати ключ"
+msgstr "%s: %s: при означенні аÑоціативних маÑивів Ñлід вказувати ключ"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
-msgstr "%s: не вдаєтьÑÑ Ñтворити: %s"
+msgstr "%s: не вдалоÑÑ Ñтворити: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-"bash_execute_unix_command: не вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ "
+"bash_execute_unix_command: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ "
"команди"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
-msgstr "%s: перший непробільний Ñимвол не Ñ” `\"'"
+msgstr "%s: перший непробільний Ñимвол не Ñ” «\"»"
# c-format
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
-msgstr "нема заключної `%c' у %s"
+msgstr "нема заключної «%c» у %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: пропущено двокрапку-роздільник"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÑƒÐ¶Ð¾Ðº: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ пам’ÑÑ‚ÑŒ Ð´Ð»Ñ %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÑƒÐ¶Ð¾Ðº: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ об’єм пам’ÑÑ‚Ñ– Ð´Ð»Ñ %d елементів"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÑƒÐ¶Ð¾Ðº: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ об’єм пам’ÑÑ‚Ñ– Ð´Ð»Ñ Â«%s»"
+
#: builtins/alias.def:132
-#, fuzzy, c-format
+#, c-format
msgid "`%s': invalid alias name"
-msgstr "`%s': неправильна назва набору призначень клавіш"
+msgstr "«%s»: некоректна назва замінника"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñдку не ввімкнено"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
-msgstr "`%s': неправильна назва набору призначень клавіш"
+msgstr "«%s»: неправильна назва набору призначень клавіш"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
-msgstr "%s: не вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸: %s"
+msgstr "%s: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
-msgstr "`%s': не вдаєтьÑÑ Ð·Ð½Ñти призначеннÑ"
+msgstr "«%s»: не вдалоÑÑ Ð·Ð½Ñти призначеннÑ"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
-msgstr "`%s': невідома назва функції"
+msgstr "«%s»: невідома назва функції"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s не призначено жодної клавіші.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s можна запуÑтити за допомогою "
@@ -116,7 +134,7 @@ msgstr "кількіÑÑ‚ÑŒ циклів"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "має ÑÐµÐ½Ñ Ð»Ð¸ÑˆÐµ уÑередині циклів `for', `while' та `until'"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -126,11 +144,15 @@ msgstr ""
" \n"
" Якщо EXPR не вказано, повертає "
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "змінну HOME не вÑтановлено"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "змінну OLDPWD не вÑтановлено"
@@ -139,7 +161,7 @@ msgstr "змінну OLDPWD не вÑтановлено"
msgid "line %d: "
msgstr "Ñ€Ñдок %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "попередженнÑ: "
@@ -149,11 +171,7 @@ msgstr "попередженнÑ: "
msgid "%s: usage: "
msgstr "%s: викориÑтовуйте: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "забагато аргументів"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: параметр потребує аргументу"
@@ -168,7 +186,7 @@ msgstr "%s: потрібен чиÑловий аргумент"
msgid "%s: not found"
msgstr "%s: не знайдено"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: неправильний параметр"
@@ -176,12 +194,12 @@ msgstr "%s: неправильний параметр"
#: builtins/common.c:221
#, c-format
msgid "%s: invalid option name"
-msgstr "%s: невірна назва параметру"
+msgstr "%s: некоректна назва параметра"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
-msgstr "`%s': неправильний ідентифікатор"
+msgstr "«%s»: неправильний ідентифікатор"
#: builtins/common.c:238
msgid "invalid octal number"
@@ -191,21 +209,21 @@ msgstr "неправильне віÑімкове чиÑло"
msgid "invalid hex number"
msgstr "неправильне шіÑтнадцÑткове чиÑло"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "неправильне чиÑло"
#: builtins/common.c:250
#, c-format
msgid "%s: invalid signal specification"
-msgstr "%s: Ñигнал вказано невірно"
+msgstr "%s: Ñигнал вказано з помилками"
#: builtins/common.c:257
#, c-format
msgid "`%s': not a pid or valid job spec"
-msgstr "`%s': не Ñ” ідентифікатором процеÑу чи завданнÑ"
+msgstr "«%s»: не Ñ” ідентифікатором процеÑу чи завданнÑ"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: змінна призначена лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
@@ -260,65 +278,75 @@ msgstr "помилка запиÑу: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr "помилка вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² терміналу: %s"
+msgstr "помилка вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² термінала: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr "помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² терміналу: %s"
+msgstr "помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² термінала: %s"
#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr "%s: помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— директорії: %s: %s\n"
+msgstr "%s: помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ каталогу: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
msgstr "%s: Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ неоднозначно"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: неправильна назва дії"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
-msgstr "%s: не вказана ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–Ñ†ÐºÐ°Ñ†Ñ–Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ"
+msgstr "%s: не вказано ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "попередженнÑ: можливо параметр -F працює не так, Ñк ви очікуєте"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "попередженнÑ: можливо параметр -C працює не так, Ñк ви очікуєте"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr "наразі Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ñдку не виконуєтьÑÑ"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "може викориÑтовуватиÑÑ Ð»Ð¸ÑˆÐµ уÑередині функції"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: еталонна змінна не може бути маÑивом"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: не можна викориÑтовувати циклічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñƒ змінній поÑиланнÑ"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "`-f' не викориÑтовуєтьÑÑ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: незмінна функціÑ"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr "%s: неможливо знищити маÑив таким чином"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: неможливо перетворити аÑоціативний маÑив на індекÑований"
@@ -330,12 +358,12 @@ msgstr "динамічне Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½ÐµÐ´Ð¾Ñтупне"
#: builtins/enable.def:312
#, c-format
msgid "cannot open shared object %s: %s"
-msgstr "не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ колективний об’єкт %s: %s"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ колективний об’єкт %s: %s"
#: builtins/enable.def:335
#, c-format
msgid "cannot find %s in shared object %s: %s"
-msgstr "не вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s у колективному об’єкті %s: %s"
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ %s у колективному об’єкті %s: %s"
#: builtins/enable.def:459
#, c-format
@@ -345,34 +373,33 @@ msgstr "%s: завантажений не динамічно"
#: builtins/enable.def:474
#, c-format
msgid "%s: cannot delete: %s"
-msgstr "%s: не вдаєтьÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸: %s"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
-msgstr "%s: це директоріÑ"
+msgstr "%s: це каталог"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: не є звичайним файлом"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: файл завеликий"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
-msgstr "%s: не вдаєтьÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ бінарний файл"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ бінарний файл"
#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
msgid "%s: cannot execute: %s"
-msgstr "%s: не вдаєтьÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸: %s"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸: %s"
#: builtins/exit.def:65
#, c-format
@@ -397,14 +424,14 @@ msgstr "Фонові Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ñе ще виконуютьÑÑ.\n"
msgid "no command found"
msgstr "команду не знайдено"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "параметри Ñ–Ñторії"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
-msgstr "%s: не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ тимчаÑовий файл: %s"
+msgstr "%s: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ тимчаÑовий файл: %s"
#: builtins/fg_bg.def:149 builtins/jobs.def:282
msgid "current"
@@ -447,21 +474,21 @@ msgstr[0] "Команди оболонки, що відповідають Ñло
msgstr[1] "Команди оболонки, що відповідають Ñловам `"
msgstr[2] "Команди оболонки, що відповідають Ñловам `"
-#: builtins/help.def:168
-#, fuzzy, c-format
+#: builtins/help.def:182
+#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-"`%s' не відповідає жодного розділу довідки. Спробуйте `help help' чи `man -k "
+"«%s» не відповідає жодний розділ довідки. Спробуйте `help help' чи `man -k "
"%s' або `info %s'."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
-msgstr "%s: не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸: %s"
+msgstr "%s: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸: %s"
-#: builtins/help.def:337
-#, fuzzy, c-format
+#: builtins/help.def:485
+#, 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"
@@ -476,8 +503,9 @@ msgstr ""
"Введіть `help name', щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про функцію `name'.\n"
"ВикориÑтовуйте `info bash', щоб отримати більше інформації про оболонку в "
"цілому.\n"
-"`man -k' чи `info' можуть Ñтати в нагоді Ð´Ð»Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸ ÑтоÑовно команд, що не "
-"Ñ” в цьому ÑпиÑку.\n"
+"`man -k' чи `info' можуть Ñтати в пригоді Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸ з команд, "
+"Ñких немає\n"
+"у цьому ÑпиÑку.\n"
"\n"
"Зірочка (*) порÑд з назвою команди означає, що команда заборонена.\n"
"\n"
@@ -490,7 +518,7 @@ msgstr "-anrw можуть зуÑтрічатиÑÑ Ð»Ð¸ÑˆÐµ один раз"
msgid "history position"
msgstr "Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ñƒ Ñ–Ñторії команд"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: невдалий пошук по Ñ–Ñторії команд"
@@ -504,104 +532,113 @@ msgstr "%s: помилка inlib"
msgid "no other options allowed with `-x'"
msgstr "не можна викориÑтовувати інші параметри разом з `-x'"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: аргументи мають бути ідентифікаторами завдань чи процеÑів"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Ðевідома помилка"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr "очікувавÑÑ Ð²Ð¸Ñ€Ð°Ð·"
#: builtins/mapfile.def:172
-#, fuzzy, c-format
+#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: не Ñ” маÑивом"
+msgstr "%s: не Ñ” індекÑованим маÑивом"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr "%s: неправильно вказаний деÑкриптор файлу"
+msgstr "%s: неправильно вказаний деÑкриптор файла"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr "%d: неправильний деÑкриптор файлу: %s"
+msgstr "%d: неправильний деÑкриптор файла: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: неправильна кількіÑÑ‚ÑŒ Ñ€Ñдків"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: неправильний початковий індекÑ"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: неправильний крок виклику функції"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° змінної-маÑиву"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "змінні-маÑиви не підтримуютьÑÑ"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
-msgstr "`%s': пропущено Ñимвол у шаблоні"
+msgstr "«%s»: пропущено Ñимвол у шаблоні"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: неправильно вказаний термін чаÑу"
+msgstr "«%c»: помилкове Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ чаÑу"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
-msgstr "`%c': невірний Ñимвол у шаблоні"
+msgstr "«%c»: помилковий Ñимвол у шаблоні"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "попередженнÑ: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "проблема з обробкою форматуваннÑ: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr "пропущено шіÑтнадцÑткову цифру у \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "пропущено шіÑтнадцÑткову цифру у \\x"
+msgstr "пропущено цифру Unicode у \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
-msgstr "немає іншої директорії"
+msgstr "немає іншого каталогу"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: некоректний аргумент"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
-msgstr "<немає поточної директорії>"
+msgstr "<немає поточного каталогу>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr "Ñтек директорій порожній"
+msgstr "Ñтек каталогів порожній"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "рівень Ñтеку директорій"
+msgstr "рівень Ñтеку каталогів"
-#: builtins/pushd.def:683
-#, fuzzy
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -624,27 +661,26 @@ msgid ""
"by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
-"Показує ÑпиÑок збережених директорій. Директорії\n"
+"Показує ÑпиÑок збережених каталогів. Каталоги\n"
" додаютьÑÑ Ð´Ð¾ цього ÑпиÑку командою `pushd'; ви можете повернутиÑÑ\n"
" назад по ÑпиÑку за допомогою команди `popd'.\n"
" \n"
" Параметри:\n"
-" -c\tочиÑтити ÑпиÑок директорій, вилучивши уÑÑ– його елементи\n"
-" -l\tне викориÑтовувати ~ Ð´Ð»Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ð¹, що знаходÑÑ‚ÑŒÑÑ ÑƒÑередині\n"
-" \tвашої домівки\n"
-" -p\tвиводити директорії по одній на Ñ€Ñдок\n"
-" -v\tвиводити директорії по одній на Ñ€Ñдок із вказаннÑм позиції у\n"
+" -c\tочиÑтити ÑпиÑок каталогів, вилучивши уÑÑ– його елементи\n"
+" -l\tне викориÑтовувати ~ Ð´Ð»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð², що перебувають уÑередині\n"
+" \tвашого домашнього каталогу\n"
+" -p\tвиводити каталоги по одному на Ñ€Ñдок\n"
+" -v\tвиводити каталоги по одному на Ñ€Ñдок з зазначеннÑм позиції у\n"
" \tÑпиÑку\n"
" \n"
" Ðргументи:\n"
-" +N\tПоказує N-ну зліва директорію у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
-" \tdirs без аргументів, рахунок починаєтьÑÑ Ð· нулÑ.\n"
+" +N\tПоказує N-ний зліва каталог у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
+" \tdirs без аргументів, відлік починаєтьÑÑ Ð· нулÑ.\n"
" \n"
-" -N\tПоказує N-ну з ÐºÑ–Ð½Ñ†Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–ÑŽ у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
-"\tdirs без аргументів, рахунок починаєтьÑÑ Ð· нулÑ."
+" -N\tПоказує N-ний з ÐºÑ–Ð½Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
+"\tdirs без аргументів, відлік починаєтьÑÑ Ð· нулÑ."
-#: builtins/pushd.def:705
-#, fuzzy
+#: builtins/pushd.def:711
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"
@@ -668,30 +704,29 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
-"Додає директорію на вершину Ñтеку директорій, чи циклічно обертає\n"
-" Ñтек, вÑтановлюючи поточну робочу директорію відповідно до його нової\n"
-" вершини. Без аргументів мінÑÑ” міÑцÑми дві найвищих директорії.\n"
+"Додає каталог на вершину Ñтеку каталогів, чи циклічно обертає\n"
+" Ñтек, вÑтановлюючи поточний робочий каталог відповідно до його нової\n"
+" вершини. Без аргументів мінÑÑ” міÑцÑми дві найвищих каталоги.\n"
" \n"
" Параметри:\n"
-" -n\tÐе робити звичайного переходу у нову директорію при додаванні\n"
-" \tдиректорій до Ñтеку, проводити операції лише над Ñтеком.\n"
+" -n\tÐе робити звичайного переходу у новий каталог при додаванні\n"
+" \tкаталогів до Ñтеку, виконувати операції лише над Ñтеком.\n"
" \n"
" Ðргументи:\n"
-" +N\tЦиклічно обертає Ñтек так, щоб N-на директоріÑ, рахуючи\n"
+" +N\tЦиклічно обертає Ñтек так, щоб N-ний каталог, рахуючи\n"
" \tзліва (починаючи з нулÑ) у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ `dirs'\n"
" \tопинитьÑÑ Ð½Ð° вершині Ñтеку.\n"
" \n"
-" -N\tЦиклічно обертає Ñтек так, щоб N-на директоріÑ, рахуючи\n"
+" -N\tЦиклічно обертає Ñтек так, щоб N-ний каталог, рахуючи\n"
" \tз ÐºÑ–Ð½Ñ†Ñ (починаючи з нулÑ) у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ `dirs'\n"
" \tопинитьÑÑ Ð½Ð° вершині Ñтеку.\n"
" \n"
-" dir\tДодає DIR на вершину Ñтеку, й робить Ñ—Ñ— поточною робочою\n"
-" \tдиректорією.\n"
+" dir\tДодає DIR на вершину Ñтеку, й робить його поточним робочим\n"
+" \tкаталогом.\n"
" \n"
-" Вбудована команда `dirs' показує Ñтек директорій."
+" Вбудована команда `dirs' показує Ñтек каталогів."
-#: builtins/pushd.def:730
-#, fuzzy
+#: builtins/pushd.def:736
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"
@@ -711,63 +746,62 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
-"Вилучає директорії зі Ñтеку збережених директорій. Без аргументів, вилучає\n"
-" верхню директорію у Ñтеку й змінює поточну директорію відповідно до "
-"нової\n"
+"Вилучає каталоги зі Ñтеку збережених каталогів. Без аргументів, вилучає\n"
+" верхній каталог у Ñтеку Ñ– змінює поточний каталог відповідно до нової\n"
" вершини Ñтеку.\n"
" \n"
" Параметри:\n"
-" -n\tÐе робити звичайного переходу до нової директорії при вилученні\n"
-" \tдиректорій зі Ñтеку, проводити операції лише над Ñтеком.\n"
+" -n\tÐе робити звичайного переходу до нової каталоги при вилученні\n"
+" \tкаталогів зі Ñтеку, проводити операції лише над Ñтеком.\n"
" \n"
" Ðргументи:\n"
-" +N\tВилучає N-ну зліва директорію у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ "
+" +N\tВилучає N-ний зліва каталог у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ "
"`dirs'\n"
-" \t(рахунок починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd +0' вилучає першу "
-"директорію,\n"
-" \t`popd +1' другу.\n"
+" \t(відлік починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd +0' вилучає перший "
+"каталог,\n"
+" \t`popd +1' — другий.\n"
" \n"
-" -N\tВилучає N-ну з ÐºÑ–Ð½Ñ†Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–ÑŽ у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
-" \t`dirs' (рахунок починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd -0' вилучає\n"
-" \tоÑтанню директорію, `popd -1' передоÑтанню.\n"
+" -N\tВилучає N-ний з ÐºÑ–Ð½Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
+" \t`dirs' (відлік починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd -0' вилучає\n"
+" \tоÑтанній каталог, `popd -1' — передоÑтанній.\n"
" \n"
-" Вбудована команда `dirs' показує Ñтек директорій."
+" Вбудована команда `dirs' показує Ñтек каталогів."
-#: builtins/read.def:252
-#, fuzzy, c-format
+#: builtins/read.def:275
+#, c-format
msgid "%s: invalid timeout specification"
-msgstr "%s: неправильно вказаний термін чаÑу"
+msgstr "%s: некоректне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу очікуваннÑ"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "помилка читаннÑ: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
"`return' працює лише у функції чи Ñкрипті, запущеному за допомогою `source'"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr "не можна одночаÑно знищити Ñ– функцію Ñ– змінну"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
-msgstr "%s: не вдаєтьÑÑ Ð·Ð½Ð¸Ñ‰Ð¸Ñ‚Ð¸"
+msgstr "%s: не вдалоÑÑ Ð·Ð½Ð¸Ñ‰Ð¸Ñ‚Ð¸"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
-msgstr "%s: не вдаєтьÑÑ Ð·Ð½Ð¸Ñ‰Ð¸Ñ‚Ð¸: %s лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
+msgstr "%s: не вдалоÑÑ Ð·Ð½Ð¸Ñ‰Ð¸Ñ‚Ð¸: %s лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: не Ñ” маÑивом"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: не є функцією"
@@ -776,18 +810,18 @@ msgstr "%s: не є функцією"
msgid "shift count"
msgstr "кількіÑÑ‚ÑŒ зÑувів"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr "не можна одночаÑно вÑтановлювати й ÑкаÑовувати параметри оболонки"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
-msgstr "%s: неправильне Ñ–Ð¼â€™Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ оболонки"
+msgstr "%s: неправильна назва параметра оболонки"
#: builtins/source.def:130
msgid "filename argument required"
-msgstr "потрібна назва файлу"
+msgstr "потрібна назва файла"
#: builtins/source.def:155
#, c-format
@@ -796,7 +830,7 @@ msgstr "%s: файл не знайдено"
#: builtins/suspend.def:101
msgid "cannot suspend"
-msgstr "не вдаєтьÑÑ Ð¿Ñ€Ð¸Ð·ÑƒÐ¿Ð¸Ð½Ð¸Ñ‚Ð¸"
+msgstr "не вдалоÑÑ Ð¿Ñ€Ð¸Ð·ÑƒÐ¿Ð¸Ð½Ð¸Ñ‚Ð¸"
#: builtins/suspend.def:111
msgid "cannot suspend a login shell"
@@ -805,7 +839,7 @@ msgstr "не можна призупинити оболонку ÑеанÑу"
#: builtins/type.def:234
#, c-format
msgid "%s is aliased to `%s'\n"
-msgstr "%s Ñ” пÑевдонімом до `%s'\n"
+msgstr "%s Ñ” пÑевдонімом до «%s»\n"
#: builtins/type.def:255
#, c-format
@@ -822,7 +856,7 @@ msgstr "%s є функцією\n"
msgid "%s is a shell builtin\n"
msgstr "%s є вбудованою командою оболонки\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s — це %s\n"
@@ -834,45 +868,45 @@ msgstr "%s — це %s\n"
msgid "%s is hashed (%s)\n"
msgstr "%s знаходитьÑÑ Ð² кеші (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
-msgstr "%s: невірний аргумент обмеженнÑ"
+msgstr "%s: помилковий аргумент обмеженнÑ"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "`%c': неправильна команда"
+msgstr "«%c»: неправильна команда"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
-msgstr "%s: не вдаєтьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ: %s"
+msgstr "%s: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
-msgstr "%s: не вдаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ обмеженнÑ: %s"
+msgstr "%s: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ обмеженнÑ: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "віÑімкове чиÑло"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr "`%c': невірний оператор у Ñимвольному режимі"
+msgstr "«%c»: помилковий оператор у Ñимвольному режимі"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr "`%c': невірний Ñимвол у Ñимвольному режимі"
+msgstr "«%c»: помилковий Ñимвол у Ñимвольному режимі"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr " Ñ€Ñдок "
@@ -886,303 +920,317 @@ msgstr "оÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°: %s\n"
msgid "Aborting..."
msgstr "ПрипиненнÑ..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "невідома помилка команди"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "неправильний тип команди"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "неправильний з’єднувальний оператор"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr "неправильний перехід"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr "%s: неозначена змінна"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr "\aÑ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²Ð¾Ð´Ñƒ вичерпано: автоматичний вихід\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
-msgstr "не вдаєтьÑÑ Ð¿ÐµÑ€ÐµÑпрÑмувати /dev/null на Ñтандартний ввід: %s"
+msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑпрÑмувати /dev/null на Ñтандартний ввід: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "TIMEFORMAT: `%c': невірний Ñимвол шаблону"
+msgstr "TIMEFORMAT: «%c»: помилковий Ñимвол шаблону"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "помилка каналу"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: перевищено макÑимальний рівень вкладеноÑÑ‚Ñ– функцій (%d)"
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s: обмеженнÑ: не можна вказувати `/' у імені команди"
+msgstr "%s: обмеженнÑ: не можна вказувати `/' у назві команди"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: команду не знайдено"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s — це %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: неправильний інтерпретатор"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ бінарний файл: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s Ñ” Ñпеціальною вбудованою командою оболонки"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "не вдаєтьÑÑ Ñтворити копію файлового деÑкриптору %d у %d"
+msgstr "не вдалоÑÑ Ñтворити копію файлового деÑкриптору %d у %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "рівень Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ð°Ð·Ñ–Ð² перевищено"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "неÑтача Ñтеку рекурÑÑ–Ñ—"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "ÑинтакÑична помилка у виразі"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "Ñпроба Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ-змінної"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð½Ð° 0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr "вада: неправильна лекÑема у виразі"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr "очікувалаÑÑ `:' умовного виразу"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "екÑпонента менша за 0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "пре-інкремент чи пре-декремент потребують ідентифікатор"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "відÑÑƒÑ‚Ð½Ñ `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr "ÑинтакÑична помилка: очікувавÑÑ Ð¾Ð¿ÐµÑ€Ð°Ð½Ð´"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
-msgstr "ÑинтакÑична помилка: невірний арифметичний оператор"
+msgstr "ÑинтакÑична помилка: помилковий арифметичний оператор"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr "%s%s%s: %s (позначка помилки \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
-msgstr "невірна арифметична оÑнова"
+msgstr "некоректна арифметична оÑнова"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "завелике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ñнови"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: помилка у виразі\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
-msgstr "getcwd: не вдаєтьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до директорій вищого рівнÑ"
+msgstr "getcwd: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до каталогів вищого рівнÑ"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
-msgstr "не вдаєтьÑÑ Ð¿ÐµÑ€ÐµÐ²Ñтановити режим без затримки файлового деÑкриптору %d"
+msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñтановити режим без затримки файлового деÑкриптору %d"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-"не вдаєтьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ новий файловий деÑкриптор Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ñƒ bash з файлового "
+"не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ новий файловий деÑкриптор Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ñƒ bash з файлового "
"деÑкриптору %d"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файлового деÑкриптору %d вже Ñ–Ñнує буфер"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-"ідентифікатор відгалуженого процеÑу %d знайдено у працюючому завданні %d"
+"ідентифікатор відгалуженого процеÑу %d знайдено у поточному завданні %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð¾Ð³Ð¾ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ %d, що має групу процеÑів %ld"
-#: jobs.c:1112
-#, fuzzy, c-format
+#: jobs.c:1117
+#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: Ð¿Ñ€Ð¾Ñ†ÐµÑ %5ld (%s) у the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-"add_process: ідентифікатор процеÑу %5ld (%s) вважаєтьÑÑ Ð²Ñе ще працюючим"
+"add_process: ідентифікатор процеÑу %5ld (%s) вказує на його працездатніÑÑ‚ÑŒ"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: ідентифікатор процеÑу не Ñ–Ñнує"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Сигнал %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr "Завершено"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Зупинено"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Зупинено(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Працює"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr "Зроблено(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Вихід %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Ðевідомий Ñтан"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr "(збережено знімок оперативної пам’ÑÑ‚Ñ–)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (РД: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "зміна групи дочірнього процеÑу (%ld на %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: Ð¿Ñ€Ð¾Ñ†ÐµÑ %ld не Ñ” відгалуженим від цієї оболонки"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wait_for: Ðема запиÑу Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу %ld"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ %d зупинене"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»Ð¾ÑÑ"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ %d вже працює в фоні"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
+msgstr "waitchld: увімкнути WNOHANG, щоб уникнути неÑкінченного блокуваннÑ"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: Ñ€Ñдок %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr " (збережено знімок оперативної пам’ÑÑ‚Ñ–)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(тепер РД: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: помилка getpgrp"
-#: jobs.c:3669
-#, fuzzy
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
-msgstr "initialize_job_control: line discipline"
+msgstr "initialize_job_control: алгоритм реалізації Ñ€Ñдків"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr "не вдаєтьÑÑ Ð²Ñтановити групу процеÑу Ð´Ð»Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ð»Ñƒ (%d)"
+msgstr "не вдалоÑÑ Ð²Ñтановити групу процеÑу Ð´Ð»Ñ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ð»Ð° (%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "Ñ†Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ° не може керувати завданнÑми"
@@ -1204,58 +1252,58 @@ msgstr ""
msgid "unknown"
msgstr "невідомий"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: зайнÑтий блок у ÑпиÑку вільних"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: аргумент є вже звільненим блоком"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: блок ще не виділено"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
"free: виÑвлено перехід за нижню границю блоку; mh_nbytes не вкладаєтьÑÑ Ñƒ "
"рамки"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr "free: розмір у запиÑах на початку та в кінці блоку відрізнÑєтьÑÑ"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: блок ще не виділено"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
"realloc: виÑвлено перехід за нижню границю блоку; mh_nbytes не вкладаєтьÑÑ Ñƒ "
"рамки"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr "realloc: розмір у запиÑах на початку та в кінці блоку відрізнÑєтьÑÑ"
-#: lib/malloc/table.c:177
-#, fuzzy, c-format
+#: lib/malloc/table.c:194
+#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr "register_alloc: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð° FIND_ALLOC?\n"
+msgstr "register_alloc: таблицю Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð¾ FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr "register_alloc: %p вже позначений Ñк виділений у таблиці?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr "register_free: %p вже позначений Ñк вільний у таблиці?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "неправильна оÑнова"
@@ -1278,35 +1326,35 @@ msgstr "%s: неправильно вказаний мережевий шлÑÑ…"
msgid "network operations not supported"
msgstr "мережеві операції не підтримуютьÑÑ"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ локаль (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ локаль (%s): %s"
-#: locale.c:247
-#, fuzzy, c-format
+#: locale.c:259
+#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr "xrealloc: %s:%d: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
+msgstr "setlocale: %s: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ локаль (%s)"
-#: locale.c:249
-#, fuzzy, c-format
+#: locale.c:261
+#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "xrealloc: %s:%d: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
+msgstr "setlocale: %s: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ локаль (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "ПриÑÑƒÑ‚Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð° у $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Ðова пошта у $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "Пошту у %s прочитано\n"
@@ -1324,211 +1372,213 @@ msgstr "ÑинтакÑична помилка: неочікувана `;'"
msgid "syntax error: `((%s))'"
msgstr "ÑинтакÑична помилка: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document: неправильний тип інÑтрукції %d"
-#: make_cmd.c:659
-#, fuzzy, c-format
+#: make_cmd.c:662
+#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "here-document з Ñ€Ñдка %d закінчено кінцем файлу (очікувалоÑÑ `%s')"
+msgstr "here-document з Ñ€Ñдка %d закінчено кінцем файла (очікувалоÑÑ Â«%s»)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: інÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð¿ÐµÑ€ÐµÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ `%d' поза межами"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
-msgstr "файл ÑкінчивÑÑ Ñ€Ð°Ð½Ñ–ÑˆÐµ, ніж було знайдено відповідний `%c'"
+msgstr "файл ÑкінчивÑÑ Ñ€Ð°Ð½Ñ–ÑˆÐµ, ніж було знайдено відповідний «%c»"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "файл ÑкінчивÑÑ Ñ€Ð°Ð½Ñ–ÑˆÐµ, ніж було знайдено `]]'"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "ÑинтакÑична помилка в умовному виразі: неочікувана лекÑема `%s'"
+msgstr "ÑинтакÑична помилка в умовному виразі: неочікувана лекÑема «%s»"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "ÑинтакÑична помилка в умовному виразі"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
-msgstr "неочікувана лекÑема `%s', очікувалаÑÑ `)'"
+msgstr "неочікувана лекÑема «%s», очікувалаÑÑ `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "очікувалаÑÑ `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
-msgstr "неочікуваний аргумент унарного умовного оператору `%s'"
+msgstr "неочікуваний аргумент унарного умовного оператора «%s»"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
-msgstr "неочікуваний аргумент унарного умовного оператору"
+msgstr "неочікуваний аргумент унарного умовного оператора"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "неочікувана лекÑема `%s', очікувавÑÑ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ð¹ умовний оператор"
+msgstr "неочікувана лекÑема «%s», очікувавÑÑ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ð¹ умовний оператор"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr "очікувавÑÑ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ð¹ умовний оператор"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
-msgstr "неочікуваний аргумент бінарного умовного оператора `%s'"
+msgstr "неочікуваний аргумент бінарного умовного оператора «%s»"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "неочікуваний аргумент бінарного умовного оператора"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
-msgstr "неочікувана лекÑема `%c' в умовній команді"
+msgstr "неочікувана лекÑема «%c» в умовній команді"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
-msgstr "неочікувана лекÑема `%s' в умовній команді"
+msgstr "неочікувана лекÑема «%s» в умовній команді"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "неочікувана лекÑема %d в умовній команді"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
-msgstr "ÑинтакÑична помилка коло неочікуваної лекÑеми `%s'"
+msgstr "ÑинтакÑична помилка коло неочікуваної лекÑеми «%s»"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
-msgstr "ÑинтакÑична помилка коло `%s'"
+msgstr "ÑинтакÑична помилка коло «%s»"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "ÑинтакÑична помилка: раптово ÑкінчивÑÑ Ñ„Ð°Ð¹Ð»"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "ÑинтакÑична помилка"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "ВикориÑтовуйте \"%s\", щоб вийти з оболонки.\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "файл ÑкінчивÑÑ, перш ніж було знайдено відповідну `)'"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
-msgstr "завершеннÑ: функцію `%s' не знайдено"
+msgstr "завершеннÑ: функцію «%s» не знайдено"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr "print_command: неправильний з’єднувальний оператор `%d'"
-#: print_cmd.c:368
-#, fuzzy, c-format
+#: print_cmd.c:373
+#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "%d: неправильний деÑкриптор файлу: %s"
+msgstr "xtrace_set: %d: некоректний деÑкриптор файла"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: нульовий вказівник на файл"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
+"деÑкриптор файла xtrace (%d) не дорівнює номеру файла у вказівнику xtrace "
+"(%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
-msgstr "cprintf: `%c': неправильний Ñимвол шаблону"
+msgstr "cprintf: «%c»: неправильний Ñимвол шаблону"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
-msgstr "деÑкриптор файлу поза можливими межами"
+msgstr "деÑкриптор файла поза можливими межами"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: неоднозначне переÑпрÑмуваннÑ"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: заборонено перезапиÑувати Ñ–Ñнуючі файли"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: обмеженнÑ: переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ñƒ заборонене"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
-msgstr "не вдаєтьÑÑ Ñтворити тимчаÑовий файл Ð´Ð»Ñ here-document: %s"
+msgstr "не вдалоÑÑ Ñтворити тимчаÑовий файл Ð´Ð»Ñ here-document: %s"
-#: redir.c:196
-#, fuzzy, c-format
+#: redir.c:195
+#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: неможливо означити елемент маÑиву ÑпиÑком"
+msgstr "%s: не вдалоÑÑ Ð½Ð°Ð´Ð°Ñ‚Ð¸ змінній Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "/dev/(tcp|udp)/host/port не підтримуєтьÑÑ"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
-msgstr "помилка переÑпрÑмуваннÑ: не вдаєтьÑÑ Ñтворити копію деÑкриптора файлу"
+msgstr "помилка переÑпрÑмуваннÑ: не вдалоÑÑ Ñтворити копію деÑкриптора файла"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
-msgstr "не вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ /tmp, будь лаÑка Ñтворіть його!"
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ /tmp, будь лаÑка Ñтворіть його!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
-msgstr "/tmp має бути назвою дійÑної директорії"
+msgstr "/tmp має бути чинною назвою каталогу"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
-msgstr "%c%c: невірний параметр"
+msgstr "%c%c: помилковий параметр"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
-msgstr "У мене нема імені!"
+msgstr "У мене нема назви!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash, верÑÑ–Ñ %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1537,47 +1587,47 @@ msgstr ""
"ВикориÑтовуйте:\t%s [довгий параметр GNU] [параметр] ...\n"
"\t%s [довгий параметр GNU] [параметр] файл_Ñценарію ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "Довгі параметри GNU:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Параметри оболонки:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr "\t-irsD чи -c команда чи -O параметр_shopt\t\t(тільки на початку)\n"
+#: shell.c:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD чи -c команда чи -O параметр_shopt\t\t(тільки на початку)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s чи -o параметр\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr ""
"Введіть `%s -c \"help set\"', щоб отримати більше інформації про параметри "
"оболонки.\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr ""
"Введіть `%s -c help', щоб отримати більше інформації про вбудовані команди "
"оболонки.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr ""
"Щоб повідомити про помилку в програмі, викориÑтовуйте команду `bashbug'.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
-msgstr "sigprocmask: %d: невірна операціÑ"
+msgstr "sigprocmask: %d: некоректна операціÑ"
#: siglist.c:48
msgid "Bogus signal"
@@ -1597,11 +1647,11 @@ msgstr "Вихід"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr "Ðевірна інÑтрукціÑ"
+msgstr "Помилкова інÑтрукціÑ"
#: siglist.c:67
msgid "BPT trace/trap"
-msgstr "ВідлагодженнÑ"
+msgstr "Точка зупину trace/trap"
#: siglist.c:75
msgid "ABORT instruction"
@@ -1629,7 +1679,7 @@ msgstr "Помилка адреÑуваннÑ"
#: siglist.c:99
msgid "Bad system call"
-msgstr "Ðевірний ÑиÑтемний виклик"
+msgstr "Помилковий ÑиÑтемний виклик"
#: siglist.c:103
msgid "Broken pipe"
@@ -1661,7 +1711,7 @@ msgstr "Зупинка чи Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½ÑŒÐ¾Ð³Ð¾ проце
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr "Зупинено (ввід з терміналу)"
+msgstr "Зупинено (ввід з термінала)"
#: siglist.c:143
msgid "Stopped (tty output)"
@@ -1677,7 +1727,7 @@ msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу CPU"
#: siglist.c:155
msgid "File limit"
-msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ файлу"
+msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ файла"
#: siglist.c:159
msgid "Alarm (virtual)"
@@ -1748,131 +1798,138 @@ msgstr "Ðевідомий Ñигнал â„–"
msgid "Unknown Signal #%d"
msgstr "Ðевідомий Ñигнал â„–%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr "неправильна заміна: немає заключної `%s' у %s"
+msgstr "неправильна заміна: немає заключної «%s» у %s"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: неможливо означити елемент маÑиву ÑпиÑком"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
-msgstr "не вдаєтьÑÑ Ñтворити канал Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу"
+msgstr "не вдалоÑÑ Ñтворити канал Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
-msgstr "не вдаєтьÑÑ Ñтворити дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу"
+msgstr "не вдалоÑÑ Ñтворити дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
-msgstr "не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ іменований канал %s Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ іменований канал %s Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr "не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ іменований канал %s Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ іменований канал %s Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
-msgstr ""
+msgstr "не вдалоÑÑ Ð·Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ іменований канал %s Ñк fd %d"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
-msgstr "не вдаєтьÑÑ Ñтворити канал Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
+msgstr "не вдалоÑÑ Ñтворити канал Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
-msgstr "не вдаєтьÑÑ Ñтворити дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
+msgstr "не вдалоÑÑ Ñтворити дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑтавлÑÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-"command_substitute: не вдаєтьÑÑ Ñтворити копію каналу із файловим "
+"command_substitute: не вдалоÑÑ Ñтворити копію каналу із файловим "
"деÑкриптором 1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: некоректна назва змінної Ð´Ð»Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð° назвою"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: параметр нульової довжини чи не вказаний"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: підрÑдок коротший за 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr "%s: неправильна заміна"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: не можна призначити таким чином"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
+"у наÑтупних верÑÑ–ÑÑ… оболонки буде виконуватиÑÑ Ð¾Ð±Ñ‡Ð¸ÑÐ»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸ "
+"арифметичних виразів"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr "неправильна заміна: немає заключної \"`\" у %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "нема відповідника: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr "очікувавÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr "%s: очікувавÑÑ Ñ‡Ð¸Ñловий вираз"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr "очікувалаÑÑ `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr "очікувалаÑÑ `)', отримано %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr "%s: очікувавÑÑ ÑƒÐ½Ð°Ñ€Ð½Ð¸Ð¹ оператор"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr "%s: очікувавÑÑ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ð¹ оператор"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "відÑÑƒÑ‚Ð½Ñ `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "неправильний номер Ñигналу"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr "run_pending_traps: неправильне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ trap_list[%d]: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1880,78 +1937,88 @@ msgstr ""
"run_pending_traps: обробник Ñигналу Ñ” SIG_DFL, %d (%s) повторно надÑилаєтьÑÑ "
"Ñобі"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: неправильний Ñигнал %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
-msgstr "помилка Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— `%s'"
+msgstr "помилка Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— «%s»"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr "рівень оболонки (%d) занадто виÑокий, перевÑтановлено у 1"
-#: variables.c:1932
-#, fuzzy
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: циклічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð° назвою"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
-msgstr ""
-"make_local_variable: немає контекÑту функції у поточному оточенні виконаннÑ"
+msgstr "make_local_variable: немає контекÑту функції у поточній облаÑÑ‚Ñ–"
-#: variables.c:3182
-#, fuzzy
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: змінною не може бути значеннÑ, Ñке приймають інші змінні"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
-msgstr ""
-"all_local_variables: немає контекÑту функції у поточному оточенні виконаннÑ"
+msgstr "all_local_variables: немає контекÑту функції у поточній облаÑÑ‚Ñ–"
-#: variables.c:3427
-#, fuzzy, c-format
+#: variables.c:3891
+#, c-format
msgid "%s has null exportstr"
-msgstr "%s: параметр нульової довжини чи не вказаний"
+msgstr "%s має нульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñдка екÑпортуваннÑ"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
-msgstr "невірний Ñимвол %d у Ñ€Ñдку екÑпорту Ð´Ð»Ñ %s"
+msgstr "Помилковий Ñимвол %d у Ñ€Ñдку екÑпорту Ð´Ð»Ñ %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "немає `=' у Ñ€Ñдку екÑпорту Ð´Ð»Ñ %s"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
"pop_var_context: перший елемент shell_variables не Ñ” контекÑтом функції"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: немає контекÑту global_variables"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
"pop_scope: перший елемент shell_variables не Ñ” тимчаÑовим оточеннÑм виконаннÑ"
-#: variables.c:4786
-#, fuzzy, c-format
+#: variables.c:5257
+#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸: %s"
+msgstr "%s: %s: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ ФÐЙЛ"
-#: variables.c:4791
-#, fuzzy, c-format
+#: variables.c:5262
+#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr "%d: неправильний деÑкриптор файлу: %s"
+msgstr "%s: %s: некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкриптора файла траÑуваннÑ"
+
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– не належить припуÑтимому діапазону значень"
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "© Free Software Foundation, Inc., 2013"
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
@@ -1959,73 +2026,61 @@ msgstr ""
"Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GPLv3+: GNU GPL верÑÑ–Ñ 3 чи новіша <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr "GNU bash, верÑÑ–Ñ %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
"Це вільне програмне забезпеченнÑ; ви можете його змінювати та "
-"розповÑюджувати.\n"
+"розповÑюджувати."
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "Ðе надаєтьÑÑ ÐІЯКИХ ГÐРÐÐТІЙ у межах, передбачених законом.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Ðе надаєтьÑÑ ÐІЯКИХ ГÐРÐÐТІЙ у межах, передбачених законом."
-#: version2.c:86
-#, fuzzy, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2009 Free Software Foundation, Inc."
-
-#: version2.c:87
-#, fuzzy, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GPLv3+: GNU GPL верÑÑ–Ñ 3 чи новіша <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "© Free Software Foundation, Inc., 2012"
#: xmalloc.c:91
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів (виділено %lu байтів)"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів (виділено %lu байтів)"
#: xmalloc.c:93
-#, fuzzy, c-format
+#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr "xmalloc: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
+msgstr "%s: не вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
#: xmalloc.c:163
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "xmalloc: %s:%d: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів (виділено %lu байтів)"
+msgstr "%s: %s:%d: не вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів (виділено %lu байтів)"
#: xmalloc.c:165
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr "xmalloc: %s:%d: не вдаєтьÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
+msgstr "%s: %s:%d: не вдалоÑÑ Ð²Ð¸Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ %lu байтів"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
-msgstr "alias [-3] [ім’Ñ[=значеннÑ] ...]"
+msgstr "alias [-3] [назва[=значеннÑ] ...]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr "unalias [-a] Ñ–Ð¼â€™Ñ [Ñ–Ð¼â€™Ñ ...]"
+msgstr "unalias [-a] назва [назва ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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 файл] [-q ім’Ñ] [-u ім’Ñ] [-r поÑлідовніÑÑ‚ÑŒ-"
-"клавіш] [-x поÑлідовніÑÑ‚ÑŒ-клавіш:команда-оболонки] [поÑлідовніÑÑ‚ÑŒ-клавіш:"
-"функціÑ-readline чи команда-readline]"
+"bind [-lpsvPSVX] [-m keymap] [-f файл] [-q назва] [-u назва] [-r "
+"поÑлідовніÑÑ‚ÑŒ-клавіш] [-x поÑлідовніÑÑ‚ÑŒ-клавіш:команда-оболонки] "
+"[поÑлідовніÑÑ‚ÑŒ-клавіш:функціÑ-readline чи команда-readline]"
#: builtins.c:54
msgid "break [n]"
@@ -2044,9 +2099,8 @@ msgid "caller [expr]"
msgstr "caller [вираз]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [директоріÑ]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]] [-@]] [каталог]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2069,18 +2123,16 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] команда [аргумент ...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [ім’Ñ[=значеннÑ] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [назва[=значеннÑ] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] ім’Ñ[=значеннÑ] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] назва[=значеннÑ] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr "local [параметр] ім’Ñ[=значеннÑ] ..."
+msgstr "local [параметр] назва[=значеннÑ] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
@@ -2092,7 +2144,7 @@ msgstr "echo [-n] [аргумент ...]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr "enable [-a] [-dnps] [-f файл] [Ñ–Ð¼â€™Ñ ...]"
+msgstr "enable [-a] [-dnps] [-f файл] [назва ...]"
#: builtins.c:92
msgid "eval [arg ...]"
@@ -2100,11 +2152,11 @@ msgstr "eval [аргумент ...]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr "getopts Ñ€Ñдок-параметрів Ñ–Ð¼â€™Ñ [аргумент]"
+msgstr "getopts Ñ€Ñдок-параметрів назва [аргумент]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr "exec [-cl] [-a ім’Ñ] [команда [аргументи ...]] [переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ ...]"
+msgstr "exec [-cl] [-a назва] [команда [аргументи ...]] [переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ ...]"
#: builtins.c:98
msgid "exit [n]"
@@ -2130,12 +2182,11 @@ msgstr "bg [Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ ...]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr "hash [-lr] [-p шлÑÑ…] [-dt] [Ñ–Ð¼â€™Ñ ...]"
+msgstr "hash [-lr] [-p шлÑÑ…] [-dt] [назва ...]"
#: builtins.c:117
-#, fuzzy
msgid "help [-dms] [pattern ...]"
-msgstr "help [-ds] [шаблон ...]"
+msgstr "help [-dms] [шаблон ...]"
#: builtins.c:121
msgid ""
@@ -2166,35 +2217,33 @@ msgid "let arg [arg ...]"
msgstr "let аргумент [аргумент ...]"
#: builtins.c:136
-#, fuzzy
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
"prompt] [-t timeout] [-u fd] [name ...]"
msgstr ""
"read [-ers] [-a маÑив] [-d роздільник] [-i текÑÑ‚] [-n кількіÑÑ‚ÑŒ-Ñимволів] [-"
-"p запрошеннÑ] [-t ліміт-чаÑу] [-u деÑкриптор-файлу] [Ñ–Ð¼â€™Ñ ...]"
+"N кількіÑÑ‚ÑŒ-Ñимволів][-p запрошеннÑ] [-t ліміт-чаÑу] [-u деÑкриптор-файла] "
+"[назва ...]"
#: builtins.c:138
msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o параметр] [аргумент ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o назва-параметра] [--] [аргумент ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [Ñ–Ð¼â€™Ñ ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [назва ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr "export [-fn] [ім’Ñ[=значеннÑ] ...] чи export -p"
+msgstr "export [-fn] [назва[=значеннÑ] ...] чи export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonli [-af [ім’Ñ[=значеннÑ] ...] чи readonly -p"
+msgstr "readonli [-af [назва[=значеннÑ] ...] чи readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2230,27 +2279,27 @@ msgstr "trap [-lp] [[аргумент] Ñигнал ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr "type [-afptP] Ñ–Ð¼â€™Ñ [Ñ–Ð¼â€™Ñ ...]"
+msgstr "type [-afptP] назва [назва ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [обмеженнÑ]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvx] [обмеженнÑ]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [режим-доÑтупу]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [ідентифікатор]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [ідентифікатор]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "wait [ідентифікатор-процеÑу]"
+msgid "wait [pid ...]"
+msgstr "wait [ідентифікатор-процеÑу ...]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr "for ІМ’Я [in СЛОВР... ] ; do КОМÐÐДИ; done"
+msgstr "for ÐÐЗВР[in СЛОВР... ] ; do КОМÐÐДИ; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
@@ -2258,7 +2307,7 @@ msgstr "for (( вираз1; вираз2; вираз3 )); do КОМÐÐДИ; done
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr "select ІМ’Я [in СЛОВР...;] do КОМÐÐДИ; done"
+msgstr "select ÐÐЗВР[in СЛОВР...;] do КОМÐÐДИ; done"
#: builtins.c:188
msgid "time [-p] pipeline"
@@ -2286,11 +2335,11 @@ msgstr "until КОМÐÐДИ; do КОМÐÐДИ; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr "coproc [ІМ’Я] команда [переÑпрÑмуваннÑ]"
+msgstr "coproc [ÐÐЗВÐ] команда [переÑпрÑмуваннÑ]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr "function Ñ–Ð¼â€™Ñ { КОМÐÐДИ ; } чи Ñ–Ð¼â€™Ñ () { КОМÐÐДИ ; }"
+msgstr "function ÐÐЗВР{ КОМÐÐДИ ; } чи ÐÐЗВР() { КОМÐÐДИ ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
@@ -2310,11 +2359,11 @@ msgstr "[[ вираз ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
-msgstr "variables - Імена та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑких змінних оболонки"
+msgstr "variables - назви та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑких змінних оболонки"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
-msgstr "pushd [-n] [+N | -N | директоріÑ]"
+msgstr "pushd [-n] [+N | -N | каталог]"
#: builtins.c:217
msgid "popd [-n] [+N | -N]"
@@ -2333,7 +2382,6 @@ msgid "printf [-v var] format [arguments]"
msgstr "printf [-v змінна] шаблон-Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ [аргументи]"
#: builtins.c:229
-#, fuzzy
msgid ""
"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
@@ -2341,7 +2389,7 @@ msgid ""
msgstr ""
"complete [-abcdefgjksuv] [-pr] [-o параметр] [-A діÑ] [-G шаблон-оболонки] [-"
"W ÑпиÑок-Ñлів] [-F функціÑ] [-C команда] [-X шаблон-фільтруваннÑ] [-P "
-"префікÑ] [-S ÑуфікÑ] [Ñ–Ð¼â€™Ñ ...]"
+"префікÑ] [-S ÑуфікÑ] [назва ...]"
#: builtins.c:233
msgid ""
@@ -2353,9 +2401,8 @@ msgstr ""
"префікÑ] [-S ÑуфікÑ] [Ñлово]"
#: builtins.c:237
-#, fuzzy
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr "compopt [-o|+o параметр] [Ñ–Ð¼â€™Ñ ...]"
+msgstr "compopt [-o|+o параметр] [назва ...]"
#: builtins.c:240
msgid ""
@@ -2395,10 +2442,9 @@ msgstr ""
"Додає чи показує пÑевдоніми Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´.\n"
" \n"
" Викликана без аргументів, команда `alias' друкує ÑпиÑок пÑевдонімів у\n"
-" придатній до подальшого Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ñ– `alias ІМ’Я=ЗÐÐЧЕÐÐЯ'.\n"
+" придатній до подальшого Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ñ– `alias ÐÐЗВÐ=ЗÐÐЧЕÐÐЯ'.\n"
" \n"
-" Інакше вона додає пÑевдоніми Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ вказаного ІМЕÐІ, Ð´Ð»Ñ Ñкого "
-"надане\n"
+" Інакше вона додає пÑевдоніми Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ– вказаної ÐÐЗВИ, Ð´Ð»Ñ Ñкої надане\n"
" ЗÐÐЧЕÐÐЯ. Пробіли в кінці ЗÐÐЧЕÐÐЯ дозволÑÑŽÑ‚ÑŒ увімкнути подальше "
"розкриттÑ\n"
" пÑевдонімів уÑередині цього пÑевдоніму під Ñ‡Ð°Ñ Ð¹Ð¾Ð³Ð¾ підÑтавлÑннÑ.\n"
@@ -2408,8 +2454,8 @@ msgstr ""
"формі.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо було вказане ІМ’Я, Ð´Ð»Ñ Ñкого нема\n"
-" пÑевдоніму."
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо було вказано ÐÐЗВУ, Ð´Ð»Ñ Ñкої немає\n"
+" пÑевдоніма."
#: builtins.c:276
msgid ""
@@ -2420,13 +2466,13 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
-"Вилучає уÑÑ– вказані ІМЕÐРзі ÑпиÑку визначених пÑевдонімів.\n"
+"Вилучає уÑÑ– вказані ÐÐЗВИ зі ÑпиÑку визначених пÑевдонімів.\n"
" \n"
" Параметри:\n"
" -a\tВилучити Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… пÑевдонімів.\n"
" \n"
" Код завершеннÑ:\n"
-" ЗавершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ІМ’Я не Ñ” визначеним пÑевдонімом."
+" ЗавершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ÐÐЗВРне Ñ” визначеним пÑевдонімом."
#: builtins.c:289
msgid ""
@@ -2462,6 +2508,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2480,8 +2528,8 @@ msgstr ""
" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
"move,\n"
" vi-command та vi-insert.\n"
-" -l ВивеÑти імена функцій.\n"
-" -P ВивеÑти імена функцій та Ñкі поÑлідовноÑÑ‚Ñ– клавіш "
+" -l ВивеÑти назви функцій.\n"
+" -P ВивеÑти назви функцій та Ñкі поÑлідовноÑÑ‚Ñ– клавіш "
"їм\n"
" призначено.\n"
" -p ВивеÑти функції та Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ формі, придатній "
@@ -2492,8 +2540,8 @@ msgstr ""
" -s ВивеÑти поÑлідовноÑÑ‚Ñ– клавіш, Ñкі запуÑкають\n"
" Ð¼Ð°ÐºÑ€Ð¾Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ формі, придатній Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ð³Ð¾\n"
" викориÑÑ‚Ð°Ð½Ð½Ñ Ñк ввід.\n"
-" -V ВивеÑти імена та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ….\n"
-" -v ВивеÑти імена та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… у формі, що може\n"
+" -V ВивеÑти назви та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ….\n"
+" -v ВивеÑти назви та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… у формі, що може\n"
" бути надалі викориÑтана Ñк ввід.\n"
" -q Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚Ð¸, Ñкі поÑлідовноÑÑ‚Ñ– клавіш запуÑкають цю\n"
" функцію.\n"
@@ -2503,12 +2551,17 @@ msgstr ""
" -f файл Прочитати Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ з ФÐЙЛУ.\n"
" -x поÑлідовніÑÑ‚ÑŒ:команда-оболонки\tПри вводі ПОСЛІДОВÐОСТІ буде\n"
" \t\t\t\tзапуÑкатиÑÑ ÐšÐžÐœÐÐДÐ-ОБОЛОÐКИ.\n"
+" -X\t\t Показати ÑпиÑок поÑлідовноÑтей клавіш, пов’Ñзани з -x та "
+"відповідні\n"
+" команди у форматі, Ñким можна ÑкориÑтатиÑÑ Ñк "
+"вхідними даними\n"
+" Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¾Ñ— програми.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказані правильні параметри та не\n"
" виникло помилки під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2521,12 +2574,12 @@ msgstr ""
"Виходить з циклів for, while чи until.\n"
" \n"
" Перериває цикли FOR, WHILE чи UNTIL. Якщо вказано N, перериває\n"
-" N охоплюючих циклів.\n"
+" N вкладених циклів.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо N менше за 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2544,7 +2597,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо N менше 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2568,8 +2621,7 @@ msgstr ""
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð’Ð‘Ð£Ð”ÐžÐ’ÐÐОЇ-КОМÐÐДИ або помилку, Ñкщо\n"
" ВБУДОВÐÐÐ-КОМÐÐДРне Ñ” вбудованою командою оболонки."
-#: builtins.c:365
-#, fuzzy
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2588,7 +2640,7 @@ msgstr ""
" \n"
" Якщо ВИРÐЗ не вказано, виводить \"$line $filename\". Інакше виводить\n"
" \"$line $subroutine $filename\"; цю додаткову інформацію можна\n"
-" викориÑтовувати Ð´Ð»Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°ÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку.\n"
+" викориÑтовувати Ð´Ð»Ñ Ñ‚Ñ€Ð°ÑÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку.\n"
" \n"
" Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð’Ð˜Ð ÐЗУ визначає на Ñкільки рівнів викликів піднÑтиÑÑ Ð²Ñ–Ð´\n"
" поточного; поточний рівень є нульовим.\n"
@@ -2597,8 +2649,7 @@ msgstr ""
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо оболонка зараз не виконує функцію\n"
" або Ñкщо ВИРÐЗ Ñ” неправильним."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2621,46 +2672,66 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; non-zero otherwise."
msgstr ""
-"Змінює робочу директорію оболонки.\n"
+"Змінює робочий каталог оболонки.\n"
" \n"
-" Змінює поточну директорію на ДИРЕКТОРІЮ. Якщо ДИРЕКТОРІЮ не вказано,\n"
-" беретьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ HOME.\n"
+" Змінює поточний каталог на КÐТÐЛОГ. Якщо КÐТÐЛОГ не вказано,\n"
+" Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ взÑто зі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— Ñередовища HOME.\n"
" \n"
-" Змінна CDPATH визначає набір директорій, в Ñких шукати ДИРЕКТОРІЮ.\n"
-" Директорії у цій змінній розділÑÑŽÑ‚ÑŒÑÑ Ð´Ð²Ð¾ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ (:).\n"
-" Порожнє Ñ–Ð¼â€™Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ— означає поточну директорію. Якщо ДИРЕКТОРІЯ\n"
+" Змінна CDPATH визначає набір каталогів, в Ñких Ñлід шукати КÐТÐЛОГ.\n"
+" Каталоги у цій змінній розділÑÑŽÑ‚ÑŒÑÑ Ð´Ð²Ð¾ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ (:).\n"
+" ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° каталогу означає поточний каталог. Якщо КÐТÐЛОГ\n"
" починаєтьÑÑ Ð· похилої риÑки (/), CDPATH не викориÑтовуєтьÑÑ.\n"
" \n"
-" Якщо директорію не буде знайдено, при ввімкненому параметрі оболонки\n"
-" `cdable_vars', ДИРЕКТОРІЯ вважатиметьÑÑ Ñ–Ð¼ÐµÐ½ÐµÐ¼ змінної. Якщо змінна з\n"
-" таким іменем Ñ–Ñнуватиме, Ñ—Ñ— Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ викориÑтане заміÑÑ‚ÑŒ "
-"ДИРЕКТОРІЇ.\n"
+" Якщо каталог не буде знайдено, у разі визначеного параметра оболонки\n"
+" `cdable_vars', КÐТÐЛОГ вважатиметьÑÑ Ð½Ð°Ð·Ð²Ð¾ÑŽ змінної. Якщо змінна з\n"
+" такою назвою Ñ–Ñнуватиме, Ñ—Ñ— Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ викориÑтане заміÑÑ‚ÑŒ КÐТÐЛОГУ.\n"
" \n"
" Параметри:\n"
-" -L\tПереходити за Ñимволічними поÑиланнÑми.\n"
-" -P\tВикориÑтовувати фізичну Ñтруктуру директорій, не переходити за\n"
-" \tÑимволічними поÑиланнÑми.\n"
-" \n"
-" Зазвичай команда переходитиме за Ñимволічними поÑиланнÑми, Ñк ніби був\n"
-" вказаний параметр `-L'.\n"
+" -L\tПримуÑово переходити за Ñимволічними поÑиланнÑми: визначати\n"
+" \tджерело Ñимволічних поÑилань Ñк КÐТÐЛОГ піÑÐ»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ запиÑів `..'.\n"
+" -P\tВикориÑтовувати фізичну Ñтруктуру каталогів, не переходити за\n"
+" \tÑимволічними поÑиланнÑми: визначати джерело Ñимволічних поÑилань Ñк\n"
+" \tКÐТÐЛОГ до обробки запиÑів `..'.\n"
+" -e\tÑкщо вказано параметр -P Ñ– програмі не вдаÑÑ‚ÑŒÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ "
+"поточний\n"
+" \tробочий каталог, вийти з ненульовим значеннÑм Ñтану.\n"
+" -@ у ÑиÑтемах, де передбачено таку підтримку, показати файл з "
+"розширеними\n"
+" атрибутами Ñк каталог, що міÑтить атрибути файла\n"
+" \n"
+" Зазвичай команда переходитиме за Ñимволічними поÑиланнÑми, неначе було\n"
+" вказано параметр `-L'.\n"
+" `..' оброблÑєтьÑÑ ÑˆÐ»Ñхом Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð² шлÑху до Ñимволу\n"
+" похилої риÑки або за початковим компонентом каталогу КÐТÐЛОГ.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо директорію змінити не вдалоÑÑ."
+" Повертає 0, Ñкщо каталог було змінено Ñ– Ñкщо було уÑпішно вÑтановлено "
+"значеннÑ\n"
+" $PWD у разі викориÑÑ‚Ð°Ð½Ð½Ñ -P. За інших результатів повертає ненульове "
+"значеннÑ."
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2675,21 +2746,19 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
-"Виводить Ñ–Ð¼â€™Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— робочої директорії.\n"
+"Виводить назву поточного робочого каталогу.\n"
" \n"
" Параметри:\n"
-" -L\tВивеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ $PWD, Ñкщо вона вказує поточну робочу "
-"директорію.\n"
-" -P\tВивеÑти фізичне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–Ñ—, без Ñимволічних "
-"поÑилань.\n"
+" -L\tВивеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ $PWD, Ñкщо вона вказує поточний робочий каталог.\n"
+" -P\tВивеÑти фізичне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ, без Ñимволічних поÑилань.\n"
" \n"
" Зазвичай `pwd' працює Ñк ніби вказано `-L'.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано неправильний параметр чи\n"
-" не вдаєтьÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до поточної робочої директорії."
+" не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до поточного робочого каталогу."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2705,7 +2774,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завжди уÑпішна."
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2717,7 +2786,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завжди уÑпішна."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2729,7 +2798,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завжди завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2752,7 +2821,7 @@ msgstr ""
" ЗапуÑкає КОМÐÐДУ з ÐРГУМЕÐТÐМИ, не роблÑчи пошуку Ñеред функцій "
"оболонки,\n"
" чи показує інформацію про вказані КОМÐÐДИ. Може викориÑтовуватиÑÑ Ð´Ð»Ñ\n"
-" запуÑку команд з диÑку, коли Ñ–Ñнує Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð· таким же іменем.\n"
+" запуÑку команд з диÑку, коли Ñ–Ñнує Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð· такою ж назвою.\n"
" \n"
" Параметри:\n"
" -p\tВикориÑтовувати Ñтандартне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PATH, Ñке забезпечує\n"
@@ -2766,8 +2835,7 @@ msgstr ""
"буде\n"
" знайдено."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2787,6 +2855,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2802,43 +2871,47 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"Ð’Ñтановлює Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° влаÑтивоÑÑ‚Ñ– змінних.\n"
" \n"
-" ОпиÑує змінні та вÑтановлює Ñ—Ñ… влаÑтивоÑÑ‚Ñ–. Якщо ІМЕÐРне вказані,\n"
+" ОпиÑує змінні та вÑтановлює Ñ—Ñ… влаÑтивоÑÑ‚Ñ–. Якщо ÐÐЗВИ не вказано,\n"
" показує влаÑтивоÑÑ‚Ñ– та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… змінних.\n"
" \n"
" Параметри:\n"
-" -f\tОбмежити поле дії лише іменами та визначеннÑми функцій.\n"
-" -F\tОбмежити показ лише іменами функцій (Ð¿Ð»ÑŽÑ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ñдку та\n"
-" \tфайл, звідки походить функціÑ, Ñкщо йде відлагодженнÑ).\n"
-" -p\tПоказати влаÑтивоÑÑ‚Ñ– та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з ІМЕÐ.\n"
+" -f\tОбмежити поле дії лише назвами та визначеннÑми функцій.\n"
+" -F\tОбмежити показ лише назвами функцій (Ð¿Ð»ÑŽÑ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ñдку та\n"
+" \tфайл, звідки походить функціÑ, Ñкщо виконуєтьÑÑ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтика).\n"
+" -g\tÑтворити загальні змінні, Ñкщо викориÑтано у функції оболонки,\n"
+" \tÑкщо це не Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¸, буде проігноровано.\n"
+" -p\tПоказати влаÑтивоÑÑ‚Ñ– та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— з ÐÐЗВ.\n"
" \n"
" Параметри, що вÑтановлюють влаÑтивоÑÑ‚Ñ–:\n"
-" -a\tЗробити ІМЕÐРіндекÑованими маÑивами (Ñкщо підтримуєтьÑÑ).\n"
-" -A\tЗробити ІМЕÐРаÑоціативними маÑивами (Ñкщо підтримуєтьÑÑ).\n"
-" -i\tÐадати ІМЕÐÐÐœ влаÑтивіÑÑ‚ÑŒ `ціле чиÑло'.\n"
-" -l\tПереводити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ нижнього регіÑтру при означенні ІМЕÐ.\n"
-" -r\tЗробити ІМЕÐРнезмінними (лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ).\n"
-" -t\tÐадати ІМЕÐÐÐœ влаÑтивіÑÑ‚ÑŒ `trace'.\n"
-" -u\tПереводити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ верхнього регіÑтру при означенні ІМЕÐ.\n"
-" -x\tЕкÑпортувати ІМЕÐÐ.\n"
-" \n"
-" Замінивши `-' на `+' можна вимкнути відповідну влаÑтивіÑÑ‚ÑŒ.\n"
-" \n"
-" При означенні змінні з влаÑтивіÑÑ‚ÑŽ цілого чиÑла проводитьÑÑ Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ‚Ð¸Ñ‡Ð½Ðµ\n"
+" -a\tЗробити ÐÐЗВИ індекÑованими маÑивами (Ñкщо підтримуєтьÑÑ).\n"
+" -A\tЗробити ÐÐЗВИ аÑоціативними маÑивами (Ñкщо підтримуєтьÑÑ).\n"
+" -i\tÐадати ÐÐЗВРвлаÑтивіÑÑ‚ÑŒ `ціле чиÑло'.\n"
+" -n\tЗробити ÐÐЗВУ поÑиланнÑм на змінну, вказану Ñк значеннÑ\n"
+" -l\tПереводити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ нижнього регіÑтру у разі Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐÐЗВИ.\n"
+" -r\tЗробити ÐÐЗВИ незмінними (лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ).\n"
+" -t\tÐадати ÐÐЗВÐÐœ влаÑтивіÑÑ‚ÑŒ `trace'.\n"
+" -u\tПереводити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ верхнього регіÑтру у разі Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐÐЗВ.\n"
+" -x\tЕкÑпортувати ÐÐЗВИ.\n"
+" \n"
+" Замінивши `+' на `-' можна вимкнути відповідну влаÑтивіÑÑ‚ÑŒ.\n"
+" \n"
+" При означенні змінні з влаÑтивіÑÑ‚ÑŽ цілого чиÑла виконуєтьÑÑ Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ‚Ð¸Ñ‡Ð½Ðµ\n"
" обчиÑÐ»ÐµÐ½Ð½Ñ (див. команду `let') значеннÑ.\n"
" \n"
-" При викориÑтанні вÑередині функції, `declare' робить ІМЕÐРлокальними\n"
-" змінними, Ñк команда `local'.\n"
+" При викориÑтанні вÑередині функції `declare' робить ÐÐЗВИ локальними\n"
+" змінними, Ñк команда `local'. Параметр `-g' вимикає таку поведінку.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ ÑƒÑпішно Ñкщо вказані правильні параметри Ñ– не "
+" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказані правильні параметри Ñ– не "
"виникло\n"
" помилки під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2848,7 +2921,7 @@ msgstr ""
" \n"
" Команда вийшла з ужитку. ДивітьÑÑ `help declare'."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2859,12 +2932,12 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"ОпиÑує локальні змінні.\n"
" \n"
-" Створює локальну змінну ІМ’Я та призначає їй ЗÐÐЧЕÐÐЯ. ПÐРÐМЕТР може "
+" Створює локальну змінну ÐÐЗВРта призначає їй ЗÐÐЧЕÐÐЯ. ПÐРÐМЕТР може "
"бути\n"
" будь-Ñким параметром, що приймаєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ `declare'.\n"
" \n"
@@ -2873,14 +2946,18 @@ msgstr ""
" лише у функції, де їх визначено та її нащадках.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано невірні параметри, Ñкщо\n"
-" трапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° або Ñкщо оболонка зараз не виконує функцію."
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано помилкові параметри, "
+"ÑтаєтьÑÑ\n"
+" помилка під Ñ‡Ð°Ñ Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ñ–Ð¹ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ Ñкщо оболонка не виконує "
+"функцію."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2892,6 +2969,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2908,7 +2986,9 @@ msgid ""
msgstr ""
"Друкує аргументи до Ñтандартного виводу.\n"
" \n"
-" Виводить ÐРГУМЕÐТИ до Ñтандартного виводу з переводом Ñ€Ñдку в кінці.\n"
+" Виводить ÐРГУМЕÐТИ, відокремлені один від одного одинарним Ñимволом "
+"пробілу, із\n"
+" завершальним Ñимволом розриву Ñ€Ñдка до Ñтандартного виводу.\n"
" \n"
" Параметри:\n"
" -n\tÐе додавати Ñимвол нового Ñ€Ñдку в кінці.\n"
@@ -2921,6 +3001,7 @@ msgstr ""
" \\b\tÐ¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ ÐºÑƒÑ€Ñору\n"
" \\c\tне виводити вÑе, що далі\n"
" \\e\tÑимвол escape\n"
+" \\E\tÑимвол escape\n"
" \\f\tперехід на Ñ€Ñдок нижче\n"
" \\n\tпочаток нового Ñ€Ñдку\n"
" \\r\tÐ¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початку Ñ€Ñдку\n"
@@ -2935,7 +3016,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо виникне помилка запиÑу."
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2957,7 +3038,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° запиÑу."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2987,32 +3068,32 @@ msgstr ""
" \n"
" Вмикає та вимикає вбудовані команди оболонки. Ð’Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ "
"дозволÑÑ”\n"
-" вам запуÑкати команду з диÑку, що має таке ж Ñ–Ð¼â€™Ñ Ñк Ñ– вбудована "
+" вам запуÑкати команду з диÑку, що має таку ж назву, Ñк Ñ– вбудована "
"команда\n"
-" оболонки без потреби вказувати повний шлÑÑ… до команди.\n"
+" оболонки, без потреби вказувати повний шлÑÑ… до команди.\n"
" \n"
" Параметри:\n"
" -a\tÐадрукувати ÑпиÑок вбудованих команд, вказуючи чи вони ввімкнені.\n"
-" -n\tВимкнути кожне з ІМЕРабо надрукувати ÑпиÑок вимкнених команд.\n"
+" -n\tВимкнути кожну з ÐÐЗВ або надрукувати ÑпиÑок вимкнених команд.\n"
" -p\tÐадрукувати ÑпиÑок вбудованих команд у придатній Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ð³Ð¾\n"
" \tÐ²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ñ–.\n"
" -s\tДрукувати лише назви `Ñпеціальних' команд Posix.\n"
" \n"
" Параметри, що контролюють динамічне завантаженнÑ:\n"
-" -f\tЗавантажити вбудовану команду ІМ’Я з колективного об’єктного "
+" -f\tЗавантажити вбудовану команду ÐÐЗВРз колективного об’єктного "
"ФÐЙЛУ.\n"
" -d\tВилучити вбудовану команду, завантажену за допомогою -f.\n"
" \n"
-" Без параметрів вмикає кожне з ІМЕÐ.\n"
+" Без параметрів вмикає кожну з ÐÐЗВ.\n"
" \n"
" Щоб викориÑтовувати `test', що знаходитьÑÑ Ð´ÐµÑÑŒ у $PATH заміÑÑ‚ÑŒ\n"
" вбудованої у оболонку верÑÑ–Ñ—, введіть `enable -n test'.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ІМ’Я не Ñ” вбудованою командою\n"
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ÐÐЗВРне Ñ” вбудованою командою\n"
" оболонки або Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3034,7 +3115,7 @@ msgstr ""
"команди\n"
" Ñ” порожнім Ñ€Ñдком, команда завершуєтьÑÑ ÑƒÑпішно."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3099,12 +3180,13 @@ msgstr ""
" помилки. Ð’ такому режимі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки не виводÑÑ‚ÑŒÑÑ. Якщо "
"буде\n"
" знайдено неправильний параметр, getopts покладе його до OPTARG. Якщо не\n"
-" буде вказано очікуваний аргумент, getopts покладе ':' до NAME а Ñимвол\n"
-" параметру - до OPTARG. У `гучному' режимі, при невірному параметрі у "
+" буде вказано очікуваний аргумент, getopts покладе ':' до ÐÐЗВÐ, а "
+"Ñимвол\n"
+" параметра — до OPTARG. У `гучному' режимі, при з помилками у параметрі у "
"NAME\n"
-" кладетьÑÑ '?' а OPTARG ÑкидаєтьÑÑ. Якщо потрібний аргумент не вказано, "
+" кладетьÑÑ '?', а OPTARG ÑкидаєтьÑÑ. Якщо потрібний аргумент не вказано, "
"у\n"
-" NAME кладетьÑÑ '?', OPTARG ÑкидаєтьÑÑ Ð¹ друкуєтьÑÑ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичне\n"
+" NAME кладетьÑÑ '?', OPTARG ÑкидаєтьÑÑ Ñ– друкуєтьÑÑ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтичне\n"
" повідомленнÑ.\n"
" \n"
" Якщо змінна оболонки OPTERR вÑтановлена у 0, getopts не друкуватиме\n"
@@ -3119,7 +3201,7 @@ msgstr ""
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо знайдено параметр; помилково, Ñкщо\n"
" параметри ÑкінчилиÑÑ Ð°Ð±Ð¾ трапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3148,7 +3230,7 @@ msgstr ""
" переÑпрÑÐ¼ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÑтоÑовуютьÑÑ Ð´Ð¾ поточної оболонки.\n"
" \n"
" Параметри:\n"
-" -a ім’Ñ\tПередати ІМ’Я Ñк нульовий аргумент КОМÐÐДИ.\n"
+" -a назва\tПередати ÐÐЗВУ Ñк нульовий аргумент КОМÐÐДИ.\n"
" -c\t\tЗапуÑтити КОМÐÐДУ з порожнім оточеннÑм.\n"
" -l\t\tПоклаÑти риÑку до нульового аргументу КОМÐÐДИ.\n"
" \n"
@@ -3160,7 +3242,7 @@ msgstr ""
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо команду не буде знайдено або Ñкщо\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° переÑпрÑмуваннÑ."
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3172,7 +3254,7 @@ msgstr ""
" Виходить з оболонки, повертаючи ÑÑ‚Ð°Ñ‚ÑƒÑ N. Якщо N не вказано, беретьÑÑ\n"
" ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¾Ñтанньої запущеної команди."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3186,7 +3268,7 @@ msgstr ""
"команду\n"
" запущено не у оболонці ÑеанÑу."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3241,8 +3323,7 @@ msgstr ""
" Команда завершуєтьÑÑ Ð·Ñ– ÑтатуÑом запущених команд, або помилкою, Ñкщо\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:743
-#, fuzzy
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3255,16 +3336,16 @@ msgid ""
msgstr ""
"Переводить Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ пріоритетний режим.\n"
" \n"
-" Переводить ЗÐВДÐÐÐЯ у пріоритетний режим виконаннÑ, й робить його "
+" Переводить ЗÐВДÐÐÐЯ у пріоритетний режим Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ– робить його "
"поточним\n"
" завданнÑм. Якщо ЗÐВДÐÐÐЯ не вказане, беретьÑÑ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, Ñке оболонка\n"
" вважає поточним.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð·Ñ– ÑтатуÑом Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, що переведене\n"
-" у пріоритетний режим, або помилку, Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
+" у пріоритетний режим, або помилкою, Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3289,7 +3370,7 @@ msgstr ""
"Ñкщо\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3300,7 +3381,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3312,29 +3393,29 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-"Запам’Ñтавує чи показує Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼.\n"
+"Запам’Ñтовує чи показує Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼.\n"
" \n"
" Визначає та запам’Ñтовує повний шлÑÑ… до кожної з вказаних програм. Якщо\n"
-" ІМЕÐРне вказані, показує інформацію про збережені шлÑхи.\n"
+" ÐÐЗВИ не вказані, показує інформацію про збережені команди.\n"
" \n"
" Параметри:\n"
-" -d\t\tВилучити з кешу Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð†ÐœÐ•Ð.\n"
+" -d\t\tВилучити з кешу Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐÐЗВ.\n"
" -l\t\tПоказувати у форматі, що можна потім виконати.\n"
-" -p шлÑÑ…\tвикориÑтовувати ШЛЯХ Ñк повний шлÑÑ… до ІМЕÐІ.\n"
-" -r\t\tСпуÑтошити кеш.\n"
-" -t\t\tВивеÑти збережені Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð†ÐœÐ•Ð, вказуючи перед "
+" -p шлÑÑ…\tвикориÑтовувати ШЛЯХ Ñк повний шлÑÑ… до ÐÐЗВИ.\n"
+" -r\t\tСпорожнити кеш.\n"
+" -t\t\tВивеÑти збережені Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐÐЗВ, вказуючи перед "
"розташуваннÑм\n"
-" \t\tвідповідне ІМ’Я, Ñкщо вказано декілька ІМЕÐ.\n"
+" \t\tвідповідну ÐÐЗВУ, Ñкщо вказано декілька ÐÐЗВ.\n"
" Ðргументи:\n"
-" ІМ’Я\t\tКожне з ІМЕРшукаєтьÑÑ Ñƒ $PATH та додаєтьÑÑ Ð´Ð¾ ÑпиÑку "
+" ÐÐЗВÐ\t\tКожна з ÐÐЗВ шукаєтьÑÑ Ñƒ $PATH та додаєтьÑÑ Ð´Ð¾ ÑпиÑку "
"збережених\n"
" \t\tкоманд.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ІМ’Я не вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ або Ñкщо\n"
-" вказано невірний параметр."
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ÐÐЗВУ не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ або Ñкщо\n"
+" вказано помилковий параметр."
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3374,10 +3455,10 @@ msgstr ""
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ Ñкщо ШÐБЛОРне знайдено або Ñкщо вказано\n"
-" невірний параметр."
+" помилковий параметр."
# WTF??? history list += history + history file ???
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3421,10 +3502,10 @@ msgstr ""
" -c\tВилучити зі ÑпиÑку уÑÑ– збережені команди.\n"
" -d позиціÑ\tВилучити Ñ€Ñдок у ПОЗИЦІЇ (відноÑній).\n"
" \n"
-" -a\tДодати запиÑи з поточної ÑеÑÑ–Ñ— до файлу Ñ–Ñторії.\n"
-" -n\tДодати запиÑи, Ñких ще немає в ÑпиÑку з файлу Ñ–Ñторії.\n"
+" -a\tДодати запиÑи з поточної ÑеÑÑ–Ñ— до файла Ñ–Ñторії.\n"
+" -n\tДодати запиÑи, Ñких ще немає в ÑпиÑку з файла Ñ–Ñторії.\n"
" -r\tПрочитати файл Ñ–Ñторії та додати його вміÑÑ‚ до ÐºÑ–Ð½Ñ†Ñ ÑпиÑку.\n"
-" -w\tЗапиÑати поточну Ñ–Ñторію команд до файлу Ñ–Ñторії та додати\n"
+" -w\tЗапиÑати поточну Ñ–Ñторію команд до файла Ñ–Ñторії та додати\n"
" \tÑ—Ñ… до ÐºÑ–Ð½Ñ†Ñ ÑпиÑку Ñ–Ñторії.\n"
" \n"
" -p\tЗробити Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ–Ñторії команд на кожному з ÐРГУМЕÐТІВ та\n"
@@ -3446,7 +3527,8 @@ msgstr ""
"виникло\n"
" помилки під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3455,7 +3537,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3479,7 +3561,7 @@ msgstr ""
" -n\tПоказувати лише процеÑи, Ñтан Ñких змінивÑÑ Ð· чаÑу оÑтаннього\n"
" \tзвідомленнÑ.\n"
" -p\tПоказувати лише ідентифікатори процеÑів.\n"
-" -r\tОбмежити вивід працюючими завданнÑми.\n"
+" -r\tОбмежити вивід поточними завданнÑми.\n"
" -s\tОбмежити вивід зупиненими завданнÑми.\n"
" \n"
" Якщо вказано -x, КОМÐÐДУ буде виконано піÑÐ»Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸ уÑÑ–Ñ… згадок про\n"
@@ -3491,7 +3573,7 @@ msgstr ""
" виникло помилки під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ. При викориÑтанні -x команда\n"
" завершуєтьÑÑ Ð·Ñ– ÑтатуÑом Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐšÐžÐœÐÐДИ."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3517,13 +3599,13 @@ msgstr ""
" -h\tПозначити ЗÐВДÐÐÐЯ так, щоб вони не отримали SIGHUP, Ñкщо "
"оболонка\n"
" \tотримає SIGHUP.\n"
-" -r\tВилучати лише працюючі завданнÑ.\n"
+" -r\tВилучати лише поточні завданнÑ.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано неправильний параметр чи\n"
" ЗÐВДÐÐÐЯ."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3565,8 +3647,7 @@ msgstr ""
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказані правильні аргументи та не\n"
" трапилоÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3612,9 +3693,9 @@ msgid ""
msgstr ""
"ОбчиÑлює арифметичні вирази.\n"
" \n"
-" ОбчиÑлює кожен ÐРГУМЕÐТ Ñк арифметичний вираз. ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð²Ð¾Ð´Ð¸Ñ‚ÑŒÑÑ Ñƒ\n"
-" цілих чиÑлах фікÑованої довжини й без перевірки переповненнÑ, але вÑе ж\n"
-" Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð½Ð° 0 виÑвлÑєтьÑÑ Ñ‚Ð° вважаєтьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ. Ðижченаведений ÑпиÑок\n"
+" ОбчиÑлює кожен ÐРГУМЕÐТ Ñк арифметичний вираз. ОбчиÑÐ»ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ñƒ\n"
+" цілих чиÑлах фікÑованої довжини без перевірки переповненнÑ, але вÑе ж\n"
+" Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð½Ð° 0 визначаєтьÑÑ Ñ– вважаєтьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ. Ðижченаведений ÑпиÑок\n"
" операторів згруповано за рівнÑми пріоритету. Їх перелічено у порÑдку\n"
" ÑÐ¿Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ñƒ.\n"
" \n"
@@ -3652,8 +3733,7 @@ msgstr ""
" Якщо результатом обчиÑÐ»ÐµÐ½Ð½Ñ Ð¾Ñтаннього ÐРГУМЕÐТУ Ñ” 0, let повертає 1,\n"
" інакше — 0."
-#: builtins.c:971
-#, fuzzy
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3688,30 +3768,31 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"Читає Ñ€Ñдок зі Ñтандартного вводу та розбиває його на полÑ.\n"
" \n"
-" Зчитує один Ñ€Ñдок зі Ñтандартного вводу чи з ФÐЙЛОВОГО-ДЕСКРИПТОРУ, "
+" Зчитує один Ñ€Ñдок зі Ñтандартного вводу чи з ФÐЙЛОВОГО-ДЕСКРИПТОРÐ, "
"Ñкщо\n"
" вказано параметр -u. РÑдок розбиваєтьÑÑ Ð½Ð° Ð¿Ð¾Ð»Ñ Ð¿Ð¾ Ñловах, перше Ñлово\n"
-" призначуєтьÑÑ Ð¿ÐµÑ€ÑˆÐ¾Ð¼Ñƒ ІМЕÐІ, друге Ñлово — другому ІМЕÐІ Ñ– так далі, "
-"Ñкщо\n"
-" залишатьÑÑ Ð½Ðµ єпризначені Ñлова, Ñ—Ñ… буде призначено оÑтанньому ІМЕÐІ. "
-"Як\n"
+" призначуєтьÑÑ Ð¿ÐµÑ€ÑˆÑ–Ð¹ ÐÐЗВІ, друге Ñлово — другій ÐÐЗВІ тощо, Ñкщо\n"
+" залишатьÑÑ Ð½ÐµÐ¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ñ– Ñлова, Ñ—Ñ… буде призначено оÑтанній ÐÐЗВІ. Як\n"
" роздільники полів розпізнаютьÑÑ Ñимволи, вказані у змінній $IFS.\n"
" \n"
-" Якщо ІМЕÐРне вказано, Ñ€Ñдок цілком буде збережено у змінній REPLY.\n"
+" Якщо ÐÐЗВ не вказано, Ñ€Ñдок цілком буде збережено у змінній REPLY.\n"
" \n"
" Параметри:\n"
" -a маÑив\tПризначити прочитані Ñлова поÑлідовним елементам ÐœÐСИВУ,\n"
@@ -3723,9 +3804,13 @@ msgstr ""
" -i текÑÑ‚\tВказати початковий ТЕКСТ Ð´Ð»Ñ Readline.\n"
" -n кількіÑÑ‚ÑŒ\tПрипинити піÑÐ»Ñ Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐšÐ†Ð›Ð¬ÐšÐžÐ¡Ð¢Ð† Ñимволів, заміÑÑ‚ÑŒ\n"
" \t\tтого, щоб чекати на кінець Ñ€Ñдка.\n"
-" -p запрошеннÑ\tВивеÑти Ñ€Ñдок ЗÐПРОШЕÐÐЯ (без переводу Ñ€Ñдку в кінці)\n"
+" -N кількіÑÑ‚ÑŒ\tПрипинити, лише піÑÐ»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐšÐ†Ð›Ð¬ÐšÐžÐ¡Ð¢Ð† Ñимволів, Ñкщо\n"
+" \t\tÑеред них не виÑвитьÑÑ Ñимволі ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð° або не буде перевищено\n"
+" \t\tÑ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ, ігнорувати роздільники.\n"
+" -p запрошеннÑ\tВивеÑти Ñ€Ñдок ЗÐПРОШЕÐÐЯ (без Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ñдка в "
+"кінці)\n"
" \t\tперед читаннÑм.\n"
-" -r\t\tÐе оброблÑти зворотню похилу риÑку Ñк знешкоджувач Ñимволів.\n"
+" -r\t\tÐе оброблÑти зворотню похилу риÑку Ð´Ð»Ñ ÐµÐºÑ€Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñимволів.\n"
" -s\t\tÐе виводити отриманий ввід на термінал.\n"
" -t ліміт-чаÑу\tПрипинити Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° вийти з помилкою Ñкщо за вказаний\n"
" \t\tпроміжок чаÑу (в Ñекундах) не було прочитано Ñ€Ñдок цілком. ЗначеннÑ\n"
@@ -3734,15 +3819,18 @@ msgstr ""
" \t\tможе бути дробовим чиÑлом. Якщо ЛІМІТ-ЧÐСУ 0, read завершуєтьÑÑ\n"
" \t\tуÑпішно, лише Ñкщо ввід вже наÑвний на вказаному файловому\n"
" \t\tдеÑкрипторі. Якщо перевищено термін очікуваннÑ, код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ\n"
-" \t\tбільшим за 128. -u файловий-деÑкриптор\tЧитати ввід з ФÐЙЛОВОГО-"
-"ДЕСКРИПТОРУ заміÑÑ‚ÑŒ\n"
-" \t\tÑтандартного вводу. \n"
+" \t\tбільшим за 128.\n"
+" -u файловий-деÑкриптор\tЧитати ввід з ФÐЙЛОВОГО-ДЕСКРИПТОРУ заміÑÑ‚ÑŒ\n"
+" \t\tÑтандартного вводу.\n"
+" \n"
" Код завершеннÑ:\n"
-" Команда повертає помилку, Ñкщо знайдено кінець файлу, Ñкщо вичерпано "
+" Команда повертає помилку, Ñкщо знайдено кінець файла, Ñкщо вичерпано "
"чаÑ\n"
-" очікуваннÑ, або Ñкщо із -u вказано неправильний файловий деÑкриптор."
+" Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ (значеннÑ, більше за 128), Ñкщо ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під чаÑ\n"
+" вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ—, або Ñкщо із -u вказано неправильний "
+"файловий деÑкриптор."
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3763,8 +3851,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає N, або помилку, Ñкщо викликана не у функції чи Ñценарії."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3830,7 +3917,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3852,17 +3939,17 @@ msgstr ""
" \n"
" Змінює Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей оболонки та позиційних параметрів чи "
"показує\n"
-" імена та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… оболонки.\n"
+" назви та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… оболонки.\n"
" \n"
" Параметри:\n"
" -a ЕкÑпортувати змінні, Ñкі будуть змінюватиÑÑ Ñ‡Ð¸ ÑтворюватиÑÑ.\n"
" -b Сповіщати про Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ негайно.\n"
" -e Завершити роботу, Ñкщо одна з команд завершитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾ÑŽ.\n"
-" -f Вимкнути Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² імен файлів (globbing).\n"
+" -f Вимкнути Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² назв файлів (globbing).\n"
" -h Запам’Ñтовувати Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ по мірі викориÑтаннÑ.\n"
" -k ПереноÑити уÑÑ– аргументи-приÑÐ²Ð¾Ñ”Ð½Ð½Ñ Ð´Ð¾ Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸, не лише "
"Ñ‚Ñ–,\n"
-" що йдуть перед іменем команди.\n"
+" що йдуть перед назвою команди.\n"
" -m Ввімкнути контроль завдань.\n"
" -n Читати команди, але не виконувати їх.\n"
" -o параметр\n"
@@ -3878,7 +3965,7 @@ msgstr ""
" histexpand те Ñаме, що й -H\n"
" history ввімкнути Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ–Ñторії команд\n"
" ignoreeof не виходити з оболонки піÑÐ»Ñ Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑ–Ð½Ñ†Ñ "
-"файлу\n"
+"файла\n"
" interactive-comments\n"
" дозволити коментарі у інтерактивній оболонці\n"
" keyword те Ñаме, що й -k\n"
@@ -3907,24 +3994,29 @@ msgstr ""
" xtrace те Ñаме, що й -x\n"
" -p Ввімкнений, Ñкщо дійÑний та ефективний ідентифікатори кориÑтувача "
"не\n"
-" збігаютьÑÑ. Вимикає обробку файлу $ENV та Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹\n"
-" оболонки. Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметру вÑтановлює ефективні\n"
+" збігаютьÑÑ. Вимикає обробку файла $ENV та Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹\n"
+" оболонки. Ð’Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра вÑтановлює ефективні\n"
" ідентифікатори кориÑтувача та групи у реальні.\n"
" -t Завершити роботу піÑÐ»Ñ Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ñ–Ñ”Ñ— команди.\n"
" -u ОброблÑти неозначені змінні Ñк помилку під Ñ‡Ð°Ñ Ñ—Ñ… підÑтавлÑннÑ.\n"
" -v Друкувати Ñ€Ñдки вводу по мірі Ñ—Ñ… читаннÑ.\n"
" -x Друкувати команди та їх аргументи при їх виконанні.\n"
-" -B Робити Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÑƒÐ¶Ð¾Ðº.\n"
-" -C Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ заборонÑÑ” Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ–Ñнуючих звичайних файлів\n"
+" -B Виконувати Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´ÑƒÐ¶Ð¾Ðº.\n"
+" -C Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° заборонÑÑ” Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ–Ñнуючих звичайних файлів\n"
" переÑпрÑмуваннÑм виводу.\n"
" -E Якщо ввімкнений, паÑтка ERR уÑпадковуєтьÑÑ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñми оболонки.\n"
" -H Ввімкнути підÑтавлÑÐ½Ð½Ñ Ñ–Ñторії за допомогою !. Цей параметр "
"зазвичай\n"
" ввімкнено у інтерактивних оболонках.\n"
" -P Ðе переходити за Ñимволічними поÑиланнÑми при запуÑку команд,\n"
-" таких Ñк cd, Ñка змінює поточну директорію.\n"
+" таких Ñк cd, Ñка змінює поточний каталог.\n"
" -T Якщо ввімкнений, паÑтка DEBUG буде уÑпадковуватиÑÑ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñми\n"
" оболонки.\n"
+" -- Призначити вÑÑ– аргументи, Ñкі ще не призначено до позиційних "
+"параметрів.\n"
+" Якщо вÑÑ– аргументи вже призначено, позиційні параметри "
+"вважатимутьÑÑ\n"
+" невÑтановленими.\n"
" - Призначити аргументи, що залишилиÑÑ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ð¹Ð½Ð¸Ð¼ параметрам.\n"
" Параметри -x та -v вимикаютьÑÑ.\n"
" \n"
@@ -3938,7 +4030,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказані правильні параметри."
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3947,6 +4039,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3959,11 +4053,13 @@ msgid ""
msgstr ""
"Скидає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° параметри змінних та функцій оболонки.\n"
" \n"
-" Вилучає змінні чи функції, вказані за ІМЕÐÐМИ.\n"
+" Вилучає змінні чи функції, вказані за ÐÐЗВÐМИ.\n"
" \n"
" Параметри:\n"
-" -f\tІМЕÐÐ Ñ” функціÑми оболонки.\n"
-" -v\tІМЕÐÐ Ñ” змінними оболонки.\n"
+" -f\tÐÐЗВИ Ñ” функціÑми оболонки.\n"
+" -v\tÐÐЗВИ Ñ” змінними оболонки.\n"
+" -n\tÐÐЗВИ Ñ” поÑиланнÑми на назви, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñамих змінних "
+"ÑкаÑовуєтьÑÑ.\n"
" \n"
" Без параметрів, unset Ñпочатку намагаєтьÑÑ Ñкинути змінну, Ñкщо це не\n"
" вдаÑÑ‚ÑŒÑÑ, тоді функцію.\n"
@@ -3972,10 +4068,10 @@ msgstr ""
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано неправильний параметр чи "
-"ІМ’Я\n"
-" доÑтупне лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ."
+"ÐÐЗВÐ\n"
+" доÑтупна лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3995,20 +4091,21 @@ msgid ""
msgstr ""
"Вмикає влаÑтивіÑÑ‚ÑŒ екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… оболонки.\n"
" \n"
-" Позначає кожне з Ð†ÐœÐ•Ð Ð´Ð»Ñ ÐµÐºÑпорту у Ð¾Ñ‚Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¸Ñ… надалі команд.\n"
+" Позначає кожну з ÐÐЗВ Ð´Ð»Ñ ÐµÐºÑпорту до Ñередовища запущених надалі "
+"команд.\n"
" Якщо вказане ЗÐÐЧЕÐÐЯ, призначає ЗÐÐЧЕÐÐЯ перед тим, Ñк екÑпортувати.\n"
" \n"
" Параметри:\n"
" -f\tПрацювати з функціÑми оболонки.\n"
-" -n\tВимкнути влаÑтивіÑÑ‚ÑŒ екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° ІМЕÐÐÐ¥.\n"
+" -n\tВимкнути влаÑтивіÑÑ‚ÑŒ екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÑÑ–Ñ… ÐÐЗВ.\n"
" -p\tВивеÑти ÑпиÑок уÑÑ–Ñ… екÑпортованих змінних та функцій.\n"
" \n"
" Ðргумент `--' вимикає подальший аналіз параметрів.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та ІМЕÐÐ."
+" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та ÐÐЗВИ."
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -4020,7 +4117,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -4029,7 +4128,7 @@ msgid ""
msgstr ""
"Робить змінні оболонки незмінними.\n"
" \n"
-" Позначає кожне з ІМЕРÑк незмінне; піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð†ÐœÐ•Ð Ð½Ðµ можуть\n"
+" Позначає кожну з ÐÐЗВ Ñк незмінну; піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐÐЗВИ не можуть\n"
" бути змінені призначеннÑм. Якщо вказане ЗÐÐЧЕÐÐЯ, воно призначаєтьÑÑ, "
"перш\n"
" ніж змінну буде позначено незмінною.\n"
@@ -4038,14 +4137,15 @@ msgstr ""
" -a\tПрацювати з індекÑованими маÑивами.\n"
" -A\tПрацювати з аÑоціативними маÑивами.\n"
" -f\tПрацювати з функціÑми оболонки.\n"
-" -p\tВивеÑти ÑпиÑок вÑÑ–Ñ… незмінних змінних та функцій.\n"
+" -p\tВивеÑти ÑпиÑок вÑÑ–Ñ… незмінних змінних та функцій, залежно від\n"
+" того, чи вказано параметр -f.\n"
" \n"
" Ðргумент `--' вимикає подальший аналіз параметрів.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та ІМЕÐÐ."
+" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та ÐÐЗВИ."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4063,7 +4163,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо N менше за нуль чи більше за $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4076,7 +4176,7 @@ msgid ""
" Returns the status of the last command executed in FILENAME; fails if\n"
" FILENAME cannot be read."
msgstr ""
-"Виконує команди з файлу у поточній оболонці.\n"
+"Виконує команди з файла у поточній оболонці.\n"
" \n"
" Читає та виконує команди з ФÐЙЛУ у поточній оболонці. Елементи $PATH\n"
" викориÑтовуютьÑÑ Ð¿Ñ€Ð¸ пошуку ФÐЙЛУ. Якщо вказані ÐРГУМЕÐТИ, вони Ñтають\n"
@@ -4085,9 +4185,9 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої команди, виконаної у ФÐЙЛІ, "
"або\n"
-" помилку, Ñкщо ФÐЙЛ не вдаєтьÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸."
+" помилку, Ñкщо ФÐЙЛ не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4112,8 +4212,7 @@ msgstr ""
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо не ввімкнене ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми чи\n"
" Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4178,6 +4277,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4195,9 +4296,10 @@ msgid ""
msgstr ""
"ПеревірÑÑ” умовний вираз.\n"
" \n"
-" ЗавершуєтьÑÑ Ð· кодом 0 (Ñ–Ñтинний) чи 1 (хибний), в залежноÑÑ‚Ñ– від\n"
-" результату Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð’Ð˜Ð ÐЗУ. Вирази можуть бути унарними чи бінарними.\n"
-" Унарні вирази чаÑто викориÑтовуютьÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей файлу.\n"
+" ЗавершуєтьÑÑ Ð· кодом 0 (Ñ–Ñтинний) чи 1 (хибний), залежно від\n"
+" результату обчиÑÐ»ÐµÐ½Ð½Ñ Ð’Ð˜Ð ÐЗУ. Вирази можуть бути унарними чи бінарними.\n"
+" Унарні вирази чаÑто викориÑтовуютьÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей "
+"файлів.\n"
" Також Ñ” оператори Ð´Ð»Ñ Ñ€Ñдків та Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑÐ½Ð½Ñ Ñ‡Ð¸Ñел.\n"
" \n"
" Файлові оператори:\n"
@@ -4205,7 +4307,7 @@ msgstr ""
" -a файл ІÑтинний, Ñкщо файл Ñ–Ñнує.\n"
" -b файл ІÑтинний, Ñкщо файл Ñ” блоковим приÑтроєм.\n"
" -c файл ІÑтинний, Ñкщо файл Ñ” Ñимвольним приÑтроєм.\n"
-" -d файл ІÑтинний, Ñкщо файл Ñ” директорією.\n"
+" -d файл ІÑтинний, Ñкщо файл Ñ” каталогом.\n"
" -e файл ІÑтинний, Ñкщо файл Ñ–Ñнує.\n"
" -f файл ІÑтинний, Ñкщо файл Ñ–Ñнує та Ñ” звичайним файлом.\n"
" -g файл ІÑтинний, Ñкщо файл має вÑтановлений біт `set-group-"
@@ -4220,10 +4322,10 @@ msgstr ""
" -t деÑкриптор ІÑтинний, Ñкщо деÑкриптор відкритий у терміналі.\n"
" -u файл ІÑтинний, Ñкщо файл має вÑтановлений біт `set-user-"
"id'.\n"
-" -w файл ІÑтинний, Ñкщо ви можете запиÑувати до файлу.\n"
+" -w файл ІÑтинний, Ñкщо ви можете запиÑувати до файла.\n"
" -x файл ІÑтинний, Ñкщо ви можете виконати файл.\n"
-" -O файл ІÑтинний, Ñкщо ви Ñ” влаÑником файлу.\n"
-" -G файл ІÑтинний, Ñкщо ваша група Ñ” влаÑником файлу.\n"
+" -O файл ІÑтинний, Ñкщо ви Ñ” влаÑником файла.\n"
+" -G файл ІÑтинний, Ñкщо ваша група Ñ” влаÑником файла.\n"
" -N файл ІÑтинний, Ñкщо файл був змінений піÑÐ»Ñ Ð¾Ñтаннього\n"
" читаннÑ\n"
" \n"
@@ -4255,6 +4357,9 @@ msgstr ""
" Інші оператори:\n"
" \n"
" -o параметр ІÑтинний, Ñкщо параметр оболонки ввімкнено.\n"
+" -v ЗМІÐÐÐ\t ІÑтинний, Ñкщо вÑтановлено змінну Ñередовища ЗМІÐÐÐ\n"
+" -R ЗМІÐÐÐ\t ІÑтинний, Ñкщо вÑтановлено змінну Ñередовища ЗМІÐÐÐ Ñ– Ñ†Ñ "
+"змінна Ñ” поÑиланнÑм на назву.\n"
" ! вираз ІÑтинний, Ñкщо вираз хибний.\n"
" вираз1 -a вираз2 ІÑтинний, Ñкщо обидва вирази Ñ–Ñтинні.\n"
" вираз1 -o вираз2 ІÑтинний, Ñкщо хоч один з виразів Ñ–Ñтинний.\n"
@@ -4270,9 +4375,9 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо ВИРÐЗ Ñ–Ñтинний; невдало, Ñкщо "
"вказано\n"
-" невірний аргумент чи ВИРÐЗ хибний."
+" помилковий аргумент чи ВИРÐЗ хибний."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4285,8 +4390,7 @@ msgstr ""
"оÑтаннім\n"
" аргументом має бути `]'."
-#: builtins.c:1320
-#, fuzzy
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4299,14 +4403,13 @@ msgid ""
msgstr ""
"Показує Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу.\n"
" \n"
-" Виводить збірний Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¸ та Ñ—Ñ— нащадків на рівні\n"
+" Виводить збірний Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¸ та вÑÑ–Ñ… Ñ—Ñ— нащадків на рівні\n"
" кориÑтувача та на рівні ÑиÑтеми.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завжди уÑпішна."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4349,13 +4452,13 @@ msgid ""
" Returns success unless a SIGSPEC is invalid or an invalid option is "
"given."
msgstr ""
-"Ставить паÑтки на Ñигнали чи інші події.\n"
+"Перехоплює Ñигнали чи інші події.\n"
" \n"
" Визначає та активує обробники Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¸Ñ… оболонкою Ñигналів чи інших\n"
" подій.\n"
" \n"
" ÐРГУМЕÐТ Ñ” командою, Ñку буде запущено оболонкою при отриманні\n"
-" СИГÐÐЛУ(ІВ). Якщо ÐРГУМЕÐТ не вказано (а СИГÐÐЛ вказано) або вказано\n"
+" СИГÐÐЛУ(ІВ). Якщо ÐРГУМЕÐТ не вказано (а СИГÐÐЛ вказано) або вказано\n"
" `-' Ñк ÐРГУМЕÐТ, кожен вказаний СИГÐÐЛ вÑтановлюєтьÑÑ Ñƒ його\n"
" початковий Ñтан. Якщо ÐРГУМЕÐТ Ñ” порожнім Ñ€Ñдком, СИГÐÐЛ(И) буде\n"
" ігноруватиÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¾ÑŽ та запущеними з неї командами.\n"
@@ -4365,7 +4468,7 @@ msgstr ""
" СИГÐÐЛ Ñ” DEBUG, ÐРГУМЕÐТ буде виконуватиÑÑ Ð¿ÐµÑ€ÐµÐ´ кожною проÑтою "
"командою.\n"
" \n"
-" Якщо аргументи взагалі не вказані, trap надрукує ÑпиÑок команд,\n"
+" Якщо аргументи взагалі не вказано, trap покаже ÑпиÑок команд,\n"
" призначених до Ñигналів.\n"
" \n"
" Параметри:\n"
@@ -4375,14 +4478,14 @@ msgstr ""
" Кожен з СИГÐÐЛІВ має бути або назвою Ñигналу з <signal.h> або номером\n"
" номером Ñигналу. Ðазви Ñигналів нечутливі до регіÑтру літер, Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ "
"SIG\n"
-" не обов’Ñзковий. Сигнал можна надіÑлати оболонці за допомогою\n"
+" необов’Ñзковий. Сигнал можна надіÑлати оболонці за допомогою\n"
" \"kill -signal $$\".\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказані правильні параметри та "
"СИГÐÐЛИ."
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4413,28 +4516,28 @@ msgid ""
msgstr ""
"Показує тип команди.\n"
" \n"
-" Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ІМЕÐІ показує, Ñк воно буде ÑприйнÑте, введене Ñк команда.\n"
+" Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— ÐÐЗВИ показує, Ñк Ñ—Ñ— буде оброблено Ñк назву команди.\n"
" \n"
" Параметри:\n"
-" -a\tПоказати уÑÑ– можливі інтерпретації ІМЕÐІ; Ñкщо не вказано\n"
+" -a\tПоказати уÑÑ– можливі інтерпретації ÐÐЗВИ; Ñкщо не вказано\n"
" \tпараметр `-p', охоплює також пÑевдоніми, вбудовані команди, функції.\n"
" -f\tÐе шукати Ñеред функцій оболонки.\n"
" -P\tВиводити лише диÑкові команди, знайдені за PATH.\n"
-" -p\tВивеÑти лише Ñ–Ð¼â€™Ñ Ñ„Ð°Ð¹Ð»Ñƒ на диÑку, або нічого.\n"
+" -p\tВивеÑти лише назву файла на диÑку, або нічого.\n"
" -t\tВивеÑти одне Ñлово, що вказує тип — `alias', `keyword',\n"
-" \t`function', `builtin', `file' чи `', Ñкщо ІМ’Я відповідно Ñ”\n"
+" \t`function', `builtin', `file' чи `', Ñкщо ÐÐЗВÐ, відповідно, Ñ”\n"
" \tпÑевдонімом, зарезервованим Ñловом оболонки, функцією оболонки\n"
" \tвбудованою командою оболонки, файлом на диÑку чи не знайдене.\n"
" \n"
" Ðргументи:\n"
-" ІМ’Я\tÐ†Ð¼â€™Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚Ð°Ñ†Ñ–Ñ—.\n"
+" ÐÐЗВÐ\tназва команди Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð¿Ñ€ÐµÑ‚Ð°Ñ†Ñ–Ñ—.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо буде знайдено уÑÑ– ІМЕÐÐ; невдало, "
+" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо буде знайдено уÑÑ– ÐÐЗВИ; невдало, "
"Ñкщо\n"
" хоч одне з них не вдаÑÑ‚ÑŒÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸."
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4463,6 +4566,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4488,7 +4594,7 @@ msgstr ""
" -H\tВикориÑтовувати `hard' обмеженнÑ.\n"
" -a\tÐадати звіт про поточні обмеженнÑ.\n"
" -b\tРозмір буфера Ñокетів.\n"
-" -c\tМакÑимальний розмір файлу дампу пам’ÑÑ‚Ñ–.\n"
+" -c\tМакÑимальний розмір файла дампу пам’ÑÑ‚Ñ–.\n"
" -d\tМакÑимальний розмір Ñегменту даних процеÑу.\n"
" -e\tМакÑимальний пріоритет Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ (`nice').\n"
" -f\tМакÑимальний розмір файлів, запиÑаних оболонкою та нащадками.\n"
@@ -4505,13 +4611,16 @@ msgstr ""
" -u\tМакÑимальна кількіÑÑ‚ÑŒ процеÑів кориÑтувача.\n"
" -v\tРозмір віртуальної пам’ÑÑ‚Ñ–.\n"
" -x\tМакÑимальна кількіÑÑ‚ÑŒ блокувань файлів.\n"
+" -T макÑимальна кількіÑÑ‚ÑŒ потоків обобки\n"
+" \n"
+" Перелік доÑтупних параметрів залежить від програмної платформи.\n"
" \n"
" Якщо вказане ОБМЕЖЕÐÐЯ, воно вÑтановлюєтьÑÑ Ñк нове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ\n"
" викориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ реÑурÑу; Ñпеціальні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐžÐ‘ÐœÐ•Ð–Ð•ÐÐЯ `soft',\n"
" `hard', та `unlimited' означають, відповідно, поточне м’Ñке обмеженнÑ,\n"
" поточне жорÑтке Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚Ð° відÑутніÑÑ‚ÑŒ обмежень. Якщо ОБМЕЖЕÐÐЯ не\n"
" вказане, виводитьÑÑ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ реÑурÑу. Якщо не вказано\n"
-" жодного параметру, беретьÑÑ -f.\n"
+" жодного параметра, беретьÑÑ -f.\n"
" \n"
" Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ змінюватиÑÑ Ñ–Ð· кроком у 1024 байти, за виключеннÑм -t,\n"
" що вказуєтьÑÑ Ð² Ñекундах, -p, Ñке має крок 512 байтів та -u, що Ñ”\n"
@@ -4521,7 +4630,7 @@ msgstr ""
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано неправильний параметр чи\n"
" трапилаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4555,21 +4664,24 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильну ÐœÐСКУ та параметри."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"Чекає Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñ‚Ð° повертає його код завершеннÑ.\n"
" \n"
@@ -4580,27 +4692,31 @@ msgstr ""
" процеÑів та повертає код 0. Якщо ІДЕÐТИФІКÐТОР Ñ” завданнÑм, очікує на\n"
" Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… процеÑів у ланцюжку завданнÑ.\n"
" \n"
+" Якщо вказано параметр -n, очікує на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð½Ð°Ñтупного завданнÑ\n"
+" Ñ– повертає його код завершеннÑ.\n"
+" \n"
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ завданнÑ; помилку, Ñкщо "
"вказано\n"
" неправильні параметри чи ІДЕÐТИФІКÐТОР."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"Очікує на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑу та повертає його код завершеннÑ.\n"
" \n"
-" Очікує поки завершитьÑÑ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ‚Ð° доповідає про його "
+" Очікує, поки завершитьÑÑ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ð¹ процеÑ, та доповідає про його "
"уÑпішніÑÑ‚ÑŒ.\n"
" Якщо ІДЕÐТИФІКÐТОР-ПРОЦЕСУ не вказаний, очікує Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… дочірніх\n"
" процеÑів й завершуєтьÑÑ Ð· кодом 0. ІДЕÐТИФІКÐТОР має бути "
@@ -4608,12 +4724,12 @@ msgstr ""
" процеÑу.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ процеÑу; помилку, Ñкщо "
-"вказано\n"
-" неправильний ІДЕÐТИФІКÐТОР чи параметр."
+" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу з оÑтаннім вказаним "
+"ідентифікатором.\n"
+" Повертає код помилки, Ñкщо вказано неправильний ІДЕÐТИФІКÐТОР чи "
+"параметр."
-#: builtins.c:1497
-#, fuzzy
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4625,16 +4741,16 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
-"Виконує команди, підÑтавлÑючи по черзі елементи ÑпиÑку.\n"
+"Виконати команди Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з пунктів ÑпиÑку.\n"
" \n"
" Цикл `for' виконує поÑлідовніÑÑ‚ÑŒ команд Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ елементу ÑпиÑку.\n"
-" Якщо `in СЛОВР...;' не вказано, тоді беретьÑÑ `in \"$@\"'. ІМ’Я\n"
-" поÑлідовно вÑтановлюєтьÑÑ Ñƒ кожне зі СЛІВ та виконуютьÑÑ ÐšÐžÐœÐÐДИ.\n"
+" Якщо `in СЛОВР...;' не вказано, тоді беретьÑÑ `in \"$@\"'. ÐÐЗВÐ\n"
+" поÑлідовно вÑтановлюєтьÑÑ Ñƒ кожне зі СЛІВ, потім виконуютьÑÑ ÐšÐžÐœÐÐДИ.\n"
" \n"
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4664,7 +4780,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4690,11 +4806,11 @@ msgstr ""
"СЛОВÐ'\n"
" не вказано, беретьÑÑ `in \"$@\"'. Тоді виводитьÑÑ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ PS3 та зі\n"
" Ñтандартного вводу зчитуєтьÑÑ Ñ€Ñдок. Якщо цей Ñ€Ñдок Ñ” чиÑлом, що вказує\n"
-" номер одного зі Ñлів, ІМ’Я вÑтановлюєтьÑÑ Ñƒ це Ñлово. Якщо Ñ€Ñдок "
+" номер одного зі Ñлів, ÐÐЗВРвÑтановлюєтьÑÑ Ñƒ це Ñлово. Якщо Ñ€Ñдок "
"порожній,\n"
-" СЛОВРта Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´ÑÑ‚ÑŒÑÑ Ð·Ð½Ð¾Ð². Якщо прочитано кінець файлу, "
+" СЛОВРта Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´ÑÑ‚ÑŒÑÑ Ð·Ð½Ð¾Ð². Якщо прочитано кінець файла, "
"команда\n"
-" завершуєтьÑÑ. Якщо Ñ€Ñдок міÑтить щоÑÑŒ інше, ІМЕÐІ призначаєтьÑÑ "
+" завершуєтьÑÑ. Якщо Ñ€Ñдок міÑтить щоÑÑŒ інше, ÐÐЗВІ призначаєтьÑÑ "
"порожній\n"
" Ñ€Ñдок. Прочитаний Ñ€Ñдок зберігаєтьÑÑ Ñƒ змінній REPLY. ПіÑÐ»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾\n"
" Ð·Ñ‡Ð¸Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑŽÑ‚ÑŒÑÑ ÐšÐžÐœÐÐДИ. Команда продовжує Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐ¸ не\n"
@@ -4703,7 +4819,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4731,8 +4847,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð›ÐÐЦЮЖКÐ-КОМÐÐД."
-#: builtins.c:1567
-#, fuzzy
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4744,14 +4859,13 @@ msgid ""
msgstr ""
"Вибірково виконує команди відповідно до шаблону.\n"
" \n"
-" Вибірково виконує КОМÐÐДИ, в залежноÑÑ‚Ñ– від відповідноÑÑ‚Ñ– СЛОВР"
-"ШÐБЛОÐУ.\n"
+" Вибірково виконує КОМÐÐДИ, залежно від відповідноÑÑ‚Ñ– СЛОВРШÐБЛОÐУ.\n"
" Декілька шаблонів можуть бути вказані через `|'.\n"
" \n"
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4784,7 +4898,7 @@ msgstr ""
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди або нуль,\n"
" Ñкщо жодна з перевірених умов не була Ñ–Ñтинною."
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4802,7 +4916,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4821,7 +4935,7 @@ msgstr ""
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
# WTF? How can it return exit code of _asynchronous_ process...
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4833,19 +4947,19 @@ msgid ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
msgstr ""
-"Створює ÑÐ¿Ñ–Ð²Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· іменем ІМ’Я.\n"
+"Створює ÑÐ¿Ñ–Ð²Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· назвою ÐÐЗВÐ.\n"
" \n"
" Починає аÑинхронне Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐšÐžÐœÐÐДИ, під’єднавши Ñ—Ñ— Ñтандартний ввід "
"та\n"
" вивід через канали до файлових деÑкрипторів, Ñкі приÑвоюютьÑÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð¼ "
"0\n"
-" та 1 змінної-маÑиву ІМ’Я.\n"
-" Стандартне Ñ–Ð¼â€™Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— — \"COPROC\".\n"
+" та 1 змінної-маÑиву ÐÐЗВÐ.\n"
+" Стандартна назва змінної — \"COPROC\".\n"
" \n"
" Код завершеннÑ:\n"
" Команда повертає код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐšÐžÐœÐÐДИ."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4860,18 +4974,18 @@ msgid ""
msgstr ""
"ОпиÑує функцію оболонки.\n"
" \n"
-" Створює функцію оболонки з іменем ІМ’Я. Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð°Ð¿ÑƒÑкаєтьÑÑ Ñк "
+" Створює функцію оболонки з назвою ÐÐЗВÐ. Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð°Ð¿ÑƒÑкаєтьÑÑ Ñк "
"звичайна\n"
-" команда з іменем ІМ’Я та поÑлідовно виконує КОМÐÐДИ. Ðргументи до "
+" команда з назвою ÐÐЗВРта поÑлідовно виконує КОМÐÐДИ. Ðргументи до "
"команди\n"
" призначаютьÑÑ Ð½Ð° Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ð¼ $1...$n, а назва функції — "
"змінній\n"
" $FUNCNAME.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ІМ’Я Ñ” незмінним."
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо ÐÐЗВРє незмінною."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4890,7 +5004,7 @@ msgstr ""
" Код завершеннÑ:\n"
" КонÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ‚Ð°Ñ” код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ñтанньої виконаної команди."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4906,7 +5020,7 @@ msgstr ""
"Продовжує Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ð° передньому плані.\n"
" \n"
" Продовжує на передньому плані Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð¾Ð³Ð¾ чи фонового\n"
-" завданнÑ, Ñк це робить команда `fg'. ЗÐВДÐÐÐЯ може бути іменем чи "
+" завданнÑ, Ñк це робить команда `fg'. ЗÐВДÐÐÐЯ може бути назвою чи "
"номером\n"
" завданнÑ. Якщо піÑÐ»Ñ Ð—ÐВДÐÐÐЯ вказано `&', Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÑƒÑ” Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ "
"у\n"
@@ -4915,7 +5029,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда повертає ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð¾Ð³Ð¾ завданнÑ."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4933,7 +5047,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо результат обчиÑÐ»ÐµÐ½Ð½Ñ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4982,8 +5096,7 @@ msgstr ""
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо ВИРÐЗ Ñ–Ñтинний."
-#: builtins.c:1713
-#, fuzzy
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5036,57 +5149,57 @@ msgid ""
" HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-"ВикориÑтовувані змінні оболонки.\n"
+"Загальні назви змінних оболонки та їхнє викориÑтаннÑ.\n"
" \n"
-" BASH_VERSION\tÐ†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ верÑÑ–ÑŽ Bash.\n"
-" CDPATH\tРозділений двокрапкою ÑпиÑок директорій, у Ñких оболонка буде\n"
-" \t\tшукати директорії, вказані команді `cd'.\n"
-" GLOBIGNORE\tРозділений двокрапкою ÑпиÑок шаблонів імен файлів, Ñкі "
+" BASH_VERSION\tÐ†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ верÑÑ–Ñ— Bash.\n"
+" CDPATH\tРозділений двокрапкою ÑпиÑок каталогів, у Ñких оболонка буде\n"
+" \t\tшукати каталоги, вказані команді `cd'.\n"
+" GLOBIGNORE\tРозділений двокрапкою ÑпиÑок шаблонів назв файлів, Ñкі "
"будуть\n"
" \t\tігноруватиÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÑˆÐ»Ñхів.\n"
-" HISTFILE\tÐ†Ð¼â€™Ñ Ñ„Ð°Ð¹Ð»Ñƒ, де зберігаєтьÑÑ Ñ–ÑÑ‚Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´.\n"
+" HISTFILE\tÐазва файла, де зберігаєтьÑÑ Ñ–ÑÑ‚Ð¾Ñ€Ñ–Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´.\n"
" HISTFILESIZE\tÐайбільша дозволена кількіÑÑ‚ÑŒ запиÑів у файлі Ñ–Ñторії.\n"
" HISTSIZE\tÐайбільша кількіÑÑ‚ÑŒ запиÑів, Ñкі може викориÑтовувати\n"
-" \t\tпрацююча оболонка.\n"
+" \t\tпоточна оболонка.\n"
" HOME\tПовний шлÑÑ… до вашої домівки.\n"
-" HOSTNAME\tÐ†Ð¼â€™Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— машини.\n"
+" HOSTNAME\tÐазва поточної машини.\n"
" HOSTTYPE\tТип процеÑора, на Ñкому виконуєтьÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°.\n"
-" IGNOREEOF\tВизначає реакцію оболонки на Ñимвол ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ñƒ на вводі.\n"
+" IGNOREEOF\tВизначає реакцію оболонки на Ñимвол ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð° на вводі.\n"
" \t\tЯкщо змінна визначена, Ñ—Ñ— Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” кількіÑÑ‚ÑŽ таких Ñимволів,\n"
" \t\tщо можуть бути отримані під Ñ€Ñд й бути проігнорованими. Звичайне\n"
-" \t\tÐ·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” 10. Якщо змінна не визначена, Ñимвол ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ñƒ\n"
+" \t\tÐ·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” 10. Якщо змінна не визначена, Ñимвол ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð°\n"
" \t\tозначатиме кінець вводу.\n"
" MACHTYPE\tРÑдок, що опиÑує поточну ÑиÑтему, на Ñкій виконуєтьÑÑ Bash.\n"
" MAILCHECK\tВизначає чаÑтоту перевірки пошти оболонкою.\n"
" MAILPATH\tРозділений двокрапкою ÑпиÑок файлів, Ñкі оболонка буде\n"
" \t\tперевірÑти на наÑвніÑÑ‚ÑŒ нової пошти.\n"
" OSTYPE\tВаріант Unix, на Ñкому виконуєтьÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°.\n"
-" PATH\tРозділений двокрапкою ÑпиÑок директорій, де оболонка шукатиме\n"
+" PATH\tРозділений двокрапкою ÑпиÑок каталогів, де оболонка шукатиме\n"
" \t\tвиконувані файли команд.\n"
" PROMPT_COMMAND\tКоманда, Ñку оболонка буде виконувати перш ніж вивеÑти\n"
" \t\tоÑновне Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð²Ð¾Ð´Ñƒ.\n"
" PS1\t\tРÑдок оÑновного Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð²Ð¾Ð´Ñƒ.\n"
" PS2\t\tРÑдок вторинного Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð²Ð²Ð¾Ð´Ñƒ.\n"
-" PWD\t\tПовний шлÑÑ… до поточної директорії.\n"
+" PWD\t\tПовний шлÑÑ… до поточного каталогу.\n"
" SHELLOPTS\tРозділений двокрапкою ÑпиÑок увімкнених параметрів оболонки.\n"
-" TERM\tТип поточного терміналу.\n"
+" TERM\tТип поточного термінала.\n"
" TIMEFORMAT\tФормат виводу чаÑу командою `time'.\n"
" auto_resume\tЯкщо вÑтановлена, введені команди, що ÑкладаютьÑÑ Ð·\n"
-" \t\tодного Ñлова, Ñпочатку будуть шукатиÑÑ Ñƒ ÑпиÑку наразі\n"
-" \t\tпризупинених завдань. Якщо таке Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ знайдене, його буде\n"
-" \t\tпереведено на передній план. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— змінної `exact' означає,\n"
+" \t\tодного Ñлова, Ñпочатку будуть шукатиÑÑ Ñƒ ÑпиÑку поточних\n"
+" \t\tпризупинених завдань. Якщо таке Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ знайдене, йому буде\n"
+" \t\tнадано пріоритет. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— змінної `exact' означає,\n"
" \t\tщо Ñлово має точно відповідати команді у ÑпиÑку завдань. ЗначеннÑ\n"
" \t\t`substring' означає, що Ñлово має міÑтитиÑÑ Ñƒ команді завданнÑ.\n"
" \t\tБудь-Ñке інше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ”, що команда Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¼Ð°Ñ”\n"
" \t\tпочинатиÑÑ Ð· вказаного Ñлова.\n"
" histchars\tСимволи, що викориÑтовуютьÑÑ Ð´Ð»Ñ Ñ€Ð¾Ð·ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ–Ñторії та\n"
" \t\tшвидкої заміни. Перший Ñимвол Ñ” Ñимволом підÑтавлÑÐ½Ð½Ñ Ñ–Ñторії,\n"
-" \t\tзазвичай це `!'. Другий — Ñимвол `швидкої заміни', зазичай `^'.\n"
-" \t\tТретій — Ñимвол `ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ Ñ–Ñторії', зазвичай це `#'.\n"
+" \t\tзазвичай це `!'. Другий — Ñимвол «швидкої заміни», зазичай `^'.\n"
+" \t\tТретій — Ñимвол Â«ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»ÑƒÂ», зазвичай це `#'.\n"
" HISTIGNORE\tРозділений двокрапкою ÑпиÑок шаблонів, що викориÑтовуютьÑÑ\n"
" \t\tпри визначенні, чи зберігати команду у ÑпиÑку Ñ–Ñторії.\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5116,35 +5229,35 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-"Додає директорії до ÑпиÑку збережених директорій.\n"
+"Додає каталоги до ÑпиÑку збережених каталогів.\n"
" \n"
-" Додає директорію на вершину Ñтеку директорій, чи циклічно обертає\n"
-" Ñтек, вÑтановлюючи поточну робочу директорію відповідно до його нової\n"
-" вершини. Без аргументів мінÑÑ” міÑцÑми дві найвищих директорії.\n"
+" Додає каталог на вершину Ñтеку каталогів, чи циклічно обертає\n"
+" Ñтек, вÑтановлюючи поточний робочий каталог відповідно до його нової\n"
+" вершини. Без аргументів мінÑÑ” міÑцÑми дві найвищих каталоги.\n"
" \n"
" Параметри:\n"
-" -n\tÐе робити звичайного переходу у нову директорію при додаванні\n"
-" \t\tдиректорій до Ñтеку, проводити операції лише над Ñтеком.\n"
+" -n\tÐе робити звичайного переходу у новий каталог при додаванні\n"
+" \t\tкаталогів до Ñтеку, проводити операції лише над Ñтеком.\n"
" \n"
" Ðргументи:\n"
-" +N\tЦиклічно обертає Ñтек так, щоб N-на директоріÑ, рахуючи\n"
+" +N\tЦиклічно обертає Ñтек так, щоб N-ний каталог, рахуючи\n"
" \t\tзліва (починаючи з нулÑ) у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ `dirs'\n"
" \t\tопинилаÑÑ Ð½Ð° вершині Ñтеку.\n"
" \n"
-" -N\tЦиклічно обертає Ñтек так, щоб N-на директоріÑ, рахуючи\n"
+" -N\tЦиклічно обертає Ñтек так, щоб N-ний каталог, рахуючи\n"
" \t\tз ÐºÑ–Ð½Ñ†Ñ (починаючи з нулÑ) у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ `dirs'\n"
-" \t\tопинилаÑÑ Ð½Ð° вершині Ñтеку.\n"
+" \t\tопинивÑÑ Ð½Ð° вершині Ñтеку.\n"
" \n"
-" ДИРЕКТОРІЯ\tДодає ДИРЕКТОРІЮ на вершину Ñтеку, й робить Ñ—Ñ— поточною\n"
-" \t\t\tробочою директорією.\n"
+" КÐТÐЛОГ\tДодає КÐТÐЛОГ на вершину Ñтеку Ñ– робить його поточним\n"
+" \t\t\tробочим каталогом.\n"
" \n"
-" Вбудована команда `dirs' показує Ñтек директорій.\n"
+" Вбудована команда `dirs' показує Ñтек каталогів.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказаний неправильний аргумент чи\n"
-" Ñкщо не вдаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ поточну директорію."
+" Ñкщо не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ поточну каталог."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5170,32 +5283,33 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-"Вилучає директорії зі ÑпиÑку збережених директорій.\n"
+"Вилучає каталоги зі ÑпиÑку збережених каталогів.\n"
" \n"
-" Вилучає директорії зі Ñтеку збережених директорій. Якщо аргументи не\n"
-" вказані, вилучає верхню директорію Ñтеку й змінює поточну директорію\n"
+" Вилучає каталоги зі Ñтеку збережених каталогів. Якщо аргументи не\n"
+" вказані, вилучає верхній каталог Ñтеку Ñ– змінює поточний каталог\n"
" відповідно до нової вершини Ñтеку.\n"
" \n"
" Параметри:\n"
-" -n\tÐе робити звичайного переходу до нової директорії при вилученні\n"
-" \t\tдиректорій зі Ñтеку, проводити операції лише над Ñтеком.\n"
+" -n\tÐе виконувати звичайного переходу до нового каталогу при "
+"вилученні\n"
+" \t\tкаталогів зі Ñтеку, проводити операції лише над Ñтеком.\n"
" \n"
" Ðргументи:\n"
-" +N\tВилучає N-ну зліва директорію у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
-" \t\t`dirs' (рахунок починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd +0' вилучає\n"
-" \t\tпершу директорію, `popd +1' другу.\n"
+" +N\tВилучає N-ний зліва каталог у ÑпиÑку, що показуєтьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
+" \t\t`dirs' (відлік починаєтьÑÑ Ð· нулÑ). Приклад: `popd +0' вилучає\n"
+" \t\tперший каталог, `popd +1' — другий.\n"
" \n"
-" -N\tВилучає N-ну з ÐºÑ–Ð½Ñ†Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–ÑŽ у ÑпиÑку, що показуєтьÑÑ\n"
-" \t\tкомандою `dirs' (рахунок починаєтьÑÑ Ð· нулÑ). Ðаприклад: `popd -0'\n"
-" \t\tвилучає оÑтанню директорію, `popd -1' передоÑтанню.\n"
+" -N\tВилучає N-ний з ÐºÑ–Ð½Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ у ÑпиÑку, що показуєтьÑÑ\n"
+" \t\tкомандою `dirs' (відлік починаєтьÑÑ Ð· нулÑ). Приклад: `popd -0'\n"
+" \t\tвилучає оÑтанній каталог, `popd -1' — передоÑтанній.\n"
" \n"
-" Вбудована команда `dirs' показує ÑпиÑок збережених директорій.\n"
+" Вбудована команда `dirs' показує ÑпиÑок збережених каталогів.\n"
" \n"
" Код завершеннÑ:\n"
-" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано невірний аргумент чи Ñкщо\n"
-" не вдаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ поточну директорію."
+" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано помилковий аргумент чи Ñкщо\n"
+" не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ поточний каталог."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5223,34 +5337,33 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"Показує ÑпиÑок збережених директорій.\n"
+"Показує ÑпиÑок збережених каталогів.\n"
" \n"
-" Показує ÑпиÑок збережених директорій. Директорії додаютьÑÑ Ð´Ð¾ цього "
-"ÑпиÑку\n"
+" Показує ÑпиÑок збережених каталогів. Каталоги додаютьÑÑ Ð´Ð¾ цього ÑпиÑку\n"
" командою `pushd'; ви можете повернутиÑÑ Ð½Ð°Ð·Ð°Ð´ по цьому ÑпиÑку за "
"допомогою\n"
" команди `popd'.\n"
" \n"
" Параметри:\n"
-" -c\tОчиÑтити ÑпиÑок директорій, вилучивши уÑÑ– його елементи.\n"
-" -l\tÐе викориÑтовувати ~ при виводі директорій, що знаходÑÑ‚ÑŒÑÑ\n"
+" -c\tСпорожнити ÑпиÑок каталогів, вилучивши уÑÑ– його елементи.\n"
+" -l\tÐе викориÑтовувати ~ при виводі каталогів, що знаходÑÑ‚ÑŒÑÑ\n"
" \t\tуÑередині вашої домівки.\n"
-" -p\tВиводити директорії по одній на Ñ€Ñдок.\n"
-" -v\tВиводити директорії по одній на Ñ€Ñдок із вказаннÑм позиції у\n"
+" -p\tВиводити каталоги по одній на Ñ€Ñдок.\n"
+" -v\tВиводити каталоги по одній на Ñ€Ñдок із вказаннÑм позиції у\n"
" \t\tÑпиÑку.\n"
" \n"
" Ðргументи:\n"
-" +N\tПоказує N-ну зліва директорію у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
-" \t\tdirs без аргументів, рахунок починаєтьÑÑ Ð· нулÑ.\n"
+" +N\tПоказує N-ний зліва каталог у ÑпиÑку, що виводитьÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\n"
+" \t\tdirs без аргументів, відлік починаєтьÑÑ Ð· нулÑ.\n"
" \n"
-" -N\tПоказує N-ну з ÐºÑ–Ð½Ñ†Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ñ–ÑŽ у ÑпиÑку, що виводитьÑÑ\n"
-" \t\tкомандою dirs без аргументів, рахунок починаєтьÑÑ Ð· нулÑ. \n"
+" -N\tПоказує N-ний з ÐºÑ–Ð½Ñ†Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ у ÑпиÑку, що виводитьÑÑ\n"
+" \t\tкомандою dirs без аргументів, відлік починаєтьÑÑ Ð· нулÑ. \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾, Ñкщо вказано неправильний параметр чи "
"Ñкщо\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°."
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5286,8 +5399,7 @@ msgstr ""
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо ПÐРÐМЕТР ввімкнено; невдало, Ñкщо\n"
" вказано неправильні параметри чи ПÐРÐМЕТР вимкнено."
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5304,9 +5416,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5314,38 +5426,52 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-"Форматує та виводить аргументи відповідно до шаблону.\n"
+"Форматує та виводить аргументи відповідно до шаблону ФОРМÐТ.\n"
" \n"
" Параметри:\n"
-" -v змінна\tПризначити результат змінній оболонки, заміÑÑ‚ÑŒ того, щоб\n"
-" \t\tвивеÑти його у Ñтандартний вивід.\n"
+" -v змінна\tПризначити результат змінній оболонки, заміÑÑ‚ÑŒ\n"
+" \t\tÐ²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¹Ð¾Ð³Ð¾ до Ñтандартного виводу.\n"
" \n"
-" ШÐБЛОРÑкладаєтьÑÑ Ð· Ñимволів, Ñкі можуть бути трьох типів:\n"
+" ШÐБЛОРÑкладаєтьÑÑ Ð· Ñимволів, Ñкі можуть належати до трьох типів:\n"
" звичайні Ñимволи, Ñкі проÑто копіюютьÑÑ Ñƒ вивід; Ñпеціальні\n"
-" поÑлідовноÑÑ‚Ñ–, Ñкі інтерпретуютьÑÑ Ñ‚Ð° тоді копіюютьÑÑ Ñƒ вивід; та\n"
-" вказівки Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ кожної з Ñких підÑтавлÑєтьÑÑ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¹\n"
+" поÑлідовноÑÑ‚Ñ–, Ñкі інтерпретуютьÑÑ, а потім копіюютьÑÑ Ñƒ вивід; та\n"
+" вказівки форматуваннÑ, заміÑÑ‚ÑŒ кожної з Ñких підÑтавлÑєтьÑÑ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¹\n"
" аргумент.\n"
" \n"
-" Окрім Ñтандартних вказівок форматуваннÑ, опиÑаних у printf(1) та\n"
-" printf(3), printf також розуміє:\n"
+" Окрім Ñтандартних вказівок форматуваннÑ, опиÑаних у printf(1)б\n"
+" printf також розуміє:\n"
" \n"
" %b\tІнтерпретувати Ñпеціальні поÑлідовноÑÑ‚Ñ– (що починаютьÑÑ Ð·Ñ–\n"
-" \t\tзворотньої похилої риÑки) у відповідному аргументі.\n"
+" \t\tзворотної похилої риÑки) у відповідному аргументі.\n"
" %q\tВзÑти аргумент в лапки так, щоб його можна було викориÑтати Ñк\n"
" \t\tввід оболонки\n"
+" %(формат)T – вивеÑти Ñ€Ñдок дати Ñ– чаÑу з викориÑтаннÑм ФОРМÐТУ\n"
+" Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… strftime(3)\n"
+" \n"
+" Визначене Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ Ñ‚Ð°Ðº, щоб було оброблено уÑÑ– "
+"аргументи.\n"
+" Якщо аргументів виÑвитьÑÑ Ð¼ÐµÐ½ÑˆÐµ за кількіÑÑ‚ÑŒ визначених форматів, Ð´Ð»Ñ "
+"зайвих\n"
+" Ñпецифікаторів форматів буде викориÑтано нульові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ порожні "
+"Ñ€Ñдки, залежно від типу форматуваннÑ.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾ лише Ñкщо вказано неправильний параметр "
"або\n"
" Ñкщо трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° запиÑу чи приÑвоєннÑ."
-#: builtins.c:1913
-#, fuzzy
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5373,24 +5499,28 @@ msgid ""
msgstr ""
"Вказує, Ñк буде завершувати аргументи readline.\n"
" \n"
-" Визначає Ñк завершувати аргументи Ð´Ð»Ñ Ð†ÐœÐ•Ð. Якщо параметри не вказані,\n"
-" будуть виведені Ñ–Ñнуючі вказівки Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² у формі,\n"
+" Визначає Ñк завершувати аргументи Ð´Ð»Ñ ÐÐЗВ. Якщо параметри не вказано,\n"
+" буде виведено поточні вказівки Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² у формі,\n"
" придатній Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÐ¾Ð³Ð¾ виконаннÑ.\n"
" \n"
" Параметри:\n"
" -p\tВивеÑти вказівки Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñƒ формі, придатній до виконаннÑ.\n"
-" -r\tВилучити вказівки Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð´Ð»Ñ Ð†ÐœÐ•Ð (або, Ñкщо\n"
-" \t\tІМЕÐРне вказані, уÑÑ– вказівки завершеннÑ).\n"
+" -r\tВилучити вказівки Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð´Ð»Ñ ÐÐЗВ (або, Ñкщо\n"
+" \t\tÐÐЗВ не вказано, уÑÑ– вказівки завершеннÑ).\n"
+" -D\tзаÑтоÑувати Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ‚Ð° дії Ñк типові Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´\n"
+" \tбез визначених вказівок щодо завершеннÑ.\n"
+" -E\tзаÑтоÑувати Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ‚Ð° дії до «порожніх» команд, Ñпроби --\n"
+" \tÐ·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð½Ð° порожньому Ñ€Ñдку.\n"
" \n"
-" Коли робитьÑÑ Ñпроба завершеннÑ, дії виконуютьÑÑ Ñƒ порÑдку, в Ñкому\n"
-" вказані наведені вище параметри у верхньому регіÑтрі.\n"
+" Якщо виконуєтьÑÑ Ñпроба завершеннÑ, дії виконуютьÑÑ Ñƒ порÑдку, в Ñкому\n"
+" вказані наведені вище параметри у верхньому регіÑтрі. Параметр -D має\n"
+" пріоритет над параметром -E.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та не\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:1941
-#, fuzzy
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5402,7 +5532,7 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-"Виводить можливі Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñƒ залежноÑÑ‚Ñ– від параметрів.\n"
+"Показати можливі Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ від параметрів.\n"
" \n"
" Команда призначена Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð·Ñередини функції Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ—\n"
" можливих завершень. Якщо вказано необов’Ñзковий аргумент СЛОВО,\n"
@@ -5412,8 +5542,7 @@ msgstr ""
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри Ñ– не\n"
" трапитьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5445,30 +5574,29 @@ msgid ""
msgstr ""
"Змінює чи показує параметри Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð².\n"
" \n"
-" Змінює параметри Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð´Ð»Ñ Ð†ÐœÐ•Ð (Ñкщо ІМЕÐРне вказані,\n"
-" Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ, що наразі проводитьÑÑ). Якщо ПÐРÐМЕТРИ не вказані,\n"
-" виводить параметри Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з ІМЕР(чи завершеннÑ, що\n"
-" наразі проводитьÑÑ).\n"
+" Змінює параметри Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð´Ð»Ñ ÐÐЗВ (Ñкщо ÐÐЗВИ не вказано,\n"
+" Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ, що наразі виконуєтьÑÑ). Якщо ПÐРÐМЕТРИ не вказані,\n"
+" виводить параметри Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— з ÐÐЗВ (чи завершеннÑ, що\n"
+" наразі виконуєтьÑÑ).\n"
" \n"
" Параметри:\n"
-" \t-o параметр\tУвімкнути параметр Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… ІМЕÐ.\n"
+" \t-o параметр\tУвімкнути параметр Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… ÐÐЗВ.\n"
" \n"
" Параметри можна вимикати, викориÑтовуючи `+o' заміÑÑ‚ÑŒ `-o'.\n"
" \n"
" Ðргументи:\n"
" \n"
-" Кожне з ІМЕРвідповідає команді, Ð´Ð»Ñ Ñкої попередньо має бути вказано,\n"
+" Кожна з ÐÐЗВ відповідає команді, Ð´Ð»Ñ Ñкої попередньо має бути вказано,\n"
" Ñк завершувати Ñ—Ñ— аргументи за допомогою вбудованої команди `complete'.\n"
-" Якщо ІМЕÐРне вказані, compopt має виконуватиÑÑ ÑƒÑередині функції, що\n"
+" Якщо ÐÐЗВ не вказано, compopt має виконуватиÑÑ ÑƒÑередині функції, що\n"
" генерує ÑпиÑок завершень, тоді змінюютьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ– вказівки завершень,\n"
" що відповідає цій функції.\n"
" \n"
" Код завершеннÑ:\n"
" Команда завершуєтьÑÑ ÑƒÑпішно, Ñкщо вказано правильні параметри та\n"
-" вказівки завершень Ð´Ð»Ñ Ð†ÐœÐ•Ð Ñ–Ñнують."
+" вказівки завершень Ð´Ð»Ñ ÐÐЗВ Ñ–Ñнують."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5510,36 +5638,36 @@ msgid ""
msgstr ""
"Читає Ñ€Ñдки зі Ñтандартного вводу й заноÑить Ñ—Ñ… до маÑиву.\n"
" \n"
-" Читає Ñ€Ñдки зі Ñтандартного вводу чи з ФÐЙЛОВОГО-ДЕСКРИПТОРУ, Ñкщо "
+" Читає Ñ€Ñдки зі Ñтандартного вводу чи з ФÐЙЛОВОГО-ДЕСКРИПТОРÐ, Ñкщо "
"вказано\n"
-" параметр -u, й вÑтавлÑÑ” Ñ—Ñ… до вказаної змінної-маÑиву. Якщо назву "
+" параметр -u, Ñ– вÑтавлÑÑ” Ñ—Ñ… до вказаної змінної-маÑиву. Якщо назву "
"змінної\n"
" не вказано, викориÑтовуєтьÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð° MAPFILE.\n"
" \n"
" Параметри:\n"
" -n кількіÑÑ‚ÑŒ\tПрочитати вказану кількіÑÑ‚ÑŒ Ñ€Ñдків. Ðуль означає\n"
-" \t\t\tвідÑутніÑÑ‚ÑŒ обмеженнÑ.\n"
-" -O початок\tПочати вÑтавлÑти до маÑиву, починаючи з вказаного\n"
-" \t\t\tелементу маÑиву. Зазвичай відлік починаєтьÑÑ Ð· нулÑ.\n"
+" \t\t\t«без обмежень».\n"
+" -O початок\tПочати вÑтавлÑти до маÑиву з вказаного\n"
+" \t\t\tелемента маÑиву. Зазвичай відлік починаєтьÑÑ Ð· нулÑ.\n"
" -s кількіÑÑ‚ÑŒ\tПропуÑтити вказану кількіÑÑ‚ÑŒ Ñ€Ñдків на початку\n"
-" \t\t\tфайлу.\n"
-" -t\t\tПрибирати Ñимвол переводу Ñ€Ñдку в кінці прочитаних\n"
-" \t\t\tз файлу Ñ€Ñдків.\n"
+" \t\t\tфайла.\n"
+" -t\t\tПрибирати Ñимвол Ð¿ÐµÑ€ÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€Ñдку в кінці прочитаних\n"
+" \t\t\tз файла Ñ€Ñдків.\n"
" -u деÑкриптор\tЧитати Ñ€Ñдки з вказаного деÑкриптора заміÑÑ‚ÑŒ\n"
" \t\t\tÑтандартного вводу\n"
-" -C обробник\tВиконувати вказаний обробник піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ñдку.\n"
+" -C обробник\tВиконувати вказаний обробник піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ€Ñдка.\n"
" -c крок\t\tВикликати обробник лише піÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк буде прочитано\n"
" \t\t\tвказану кількіÑÑ‚ÑŒ Ñ€Ñдків.\n"
" \n"
" Ðргументи:\n"
-" ÐœÐСИВ\t\tÐазва змінної-маÑиву Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з файлу.\n"
+" ÐœÐСИВ\t\tÐазва змінної-маÑиву Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з файла.\n"
" \n"
" Якщо вказано лише -C, без -c, обробник викликатиметьÑÑ Ñ–Ð· кроком 5000.\n"
" Обробник викликаєтьÑÑ Ñ–Ð· параметром, що вказує наÑтупний елемент "
"маÑиву,\n"
" Ñкому буде призначено значеннÑ.\n"
" \n"
-" Якщо початковий елемент не вказано, mapfile ÑпуÑтошить ÐœÐСИВ перш ніж\n"
+" Якщо початковий елемент не вказано, mapfile Ñпорожнить ÐœÐСИВ, перш ніж\n"
" починати приÑвоєннÑ.\n"
" \n"
" Код завершеннÑ:\n"
@@ -5547,16 +5675,26 @@ msgstr ""
"або\n"
" Ñкщо ÐœÐСИВ Ñ” незмінним."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
-"Читає Ñ€Ñдки з файлу до маÑиву.\n"
+"Читає Ñ€Ñдки з файла до маÑиву.\n"
" \n"
" Синонім до `mapfile'."
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "© Free Software Foundation, Inc., 2009\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GPLv2+: GNU GPL верÑÑ–Ñ 2 чи новіша <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+
#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
#~ msgstr ""
#~ "xrealloc: не вдаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ розмір виділеного блоку до %lu байтів "
diff --git a/po/vi.gmo b/po/vi.gmo
index 32b98904..21cc850e 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 2f4484e5..aaaeaf47 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,106 +1,125 @@
# Vietnamese translation for BASH (Bourne Again SHell).
-# Copyright © 2010 Free Software Foundation, Inc.
+# Bản dịch tiếng Việt dành cho bash.
+# Copyright © 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Clytie Siddall <clytie@riverland.net.au>, 2008, 2009, 2010.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2014.
+# Nguyá»…n Thái Ngá»c Duy <pclouds@gmail.com>, 2012.
#
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash-4.3-rc2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-02-11 19:42+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2014-02-01 13:11+0700\n"
+"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language: vi\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.8\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
-#: arrayfunc.c:50
+#: arrayfunc.c:51
msgid "bad array subscript"
-msgstr "sai mảng in thấp"
+msgstr "sai chỉ số mảng"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, 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"
+msgstr "%s: không thể chuyển đổi mảng kiểu chỉ số sang mảng kết hợp"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
-msgstr "%s: khoá màng kết hợp không hợp lệ"
+msgstr "%s: khoá mảng liên kết không hợp lệ"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, 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ố"
+msgstr "%s: không thể gán cho chỉ số không thuộc kiểu số"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, 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"
+msgstr "%s: %s: phải sử dụng chỉ số phụ khi gán mảng kết hợp"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
-msgstr "%s: không thể tạo %s"
+msgstr "%s: không thể tạo: %s"
-#: bashline.c:3498
+#: bashline.c:3982
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"
+msgstr "bash_execute_unix_command: không tìm thấy ánh xạ cho câu lệnh"
-#: bashline.c:3584
+#: bashline.c:4069
#, 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 « / »"
+msgstr "%s: ký tá»± khác khoảng trắng đầu tiên không phải là “\"â€"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
-msgstr "thiếu « %c » đóng trong %s"
+msgstr "thiếu dấu đóng “%c†trong %s"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
-msgstr "%s: thiếu dấu hai chấm định giới"
+msgstr "%s: thiếu dấu hai chấm phân cách"
+
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr "khai triển ngoặc ôm: không thể phân bổ bộ nhớ cho %s"
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr "khai triển ngoặc ôm: gặp lỗi khi phân bổ bộ nhớ cho `%d' phần tử"
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr "khai triển ngoặc ôm: gặp lỗi khi phân bổ bộ nhớ cho `%s'"
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
-msgstr "« %s »: sai đặt tên bí danh"
+msgstr "“%sâ€: tên bí danh không hợp lệ"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr "chưa bật sửa đổi dòng"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
-msgstr "« %s »: tên sơ đồ phím không hợp lệ"
+msgstr "“%sâ€: tên sÆ¡ đồ phím không hợp lệ"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
-msgstr "%s: không thể Ä‘á»c %s"
+msgstr "%s: không thể Ä‘á»c: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
-msgstr "« %s »: không thể hủy tổ hợp"
+msgstr "“%sâ€: không thể tháo"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
-msgstr "« %s »: tên hàm không rõ"
+msgstr "“%sâ€: không hiểu tên hàm"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr "%s không được tổ hợp với phím.\n"
+msgstr "%s không được ràng buộc với bất kỳ phím nào.\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s có thể được gá»i thông qua "
@@ -111,65 +130,61 @@ 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"
+msgstr "chỉ có nghÄ©a trong vòng lặp “forâ€, “while†hay “untilâ€"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-"Trả lại ngữ cảnh của lá»i gá»i thÆ°á»ng trình con hiện thá»i.\n"
+"Trả lại ngữ cảnh của cú gá»i thủ tục con hiện thá»i.\n"
"\n"
-" Không có BTHỰC thì trà lại "
+" Nếu không có BTHỨC thì trả vỠ"
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
-msgstr "ChÆ°a đặt biến môi trÆ°á»ng HOME (nhà)"
+msgstr "ChÆ°a đặt biến môi trÆ°á»ng HOME"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "quá nhiá»u đối số"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
-msgstr "ChÆ°a đặt biến môi trÆ°á»ng OLDPWD (mật khẩu cÅ©)"
+msgstr "ChÆ°a đặt biến môi trÆ°á»ng OLDPWD"
#: builtins/common.c:101
#, c-format
msgid "line %d: "
-msgstr "dòng %d:"
+msgstr "dòng %d: "
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
-msgstr "cảnh báo :"
+msgstr "cảnh báo: "
#: builtins/common.c:153
#, c-format
msgid "%s: usage: "
-msgstr "%s: sử dụng:"
+msgstr "%s: cách dùng: "
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "quá nhiá»u đối số"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
-msgstr "%s: tùy chá»n cần thiết má»™t đối số"
+msgstr "%s: tùy chá»n cần 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ố"
+msgstr "%s: cần đối số thuộc kiểu 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:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: tùy chá»n không hợp lệ"
@@ -179,10 +194,10 @@ msgstr "%s: tùy chá»n không hợp lệ"
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
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
-msgstr "« %s »: không phải đồ nhận diện hợp lệ"
+msgstr "“%sâ€: không phải là định danh hợp lệ"
#: builtins/common.c:238
msgid "invalid octal number"
@@ -192,21 +207,21 @@ msgstr "số bát phân không hợp lệ"
msgid "invalid hex number"
msgstr "số thập lục không hợp lệ"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
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"
+msgstr "%s: sai đặc tả 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"
+msgstr "“%sâ€: không phải má»™t pid hoặc đặc tả công việc hợp lệ"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: biến chỉ Ä‘á»c"
@@ -214,7 +229,7 @@ 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"
+msgstr "%s: %s nằm ngoài phạm vi"
#: builtins/common.c:272 builtins/common.c:274
msgid "argument"
@@ -223,7 +238,7 @@ msgstr "đối số"
#: builtins/common.c:274
#, c-format
msgid "%s out of range"
-msgstr "%s ở ngoại phạm vi"
+msgstr "%s nằm ngoài phạm vi"
#: builtins/common.c:282
#, c-format
@@ -251,7 +266,7 @@ 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"
+msgstr "%s: không phải là lệnh dá»±ng sẵn trong hệ vá»"
#: builtins/common.c:321
#, c-format
@@ -261,72 +276,82 @@ msgstr "lá»—i ghi: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr "gặp lỗi khi đặt các thuộc tính vỠthiết bị cuối: %s"
+msgstr "lỗi đặt các thuộc tính thiết bị cuối: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr "gặp lỗi khi lấy các thuộc tính vỠthiết bị cuối: %s"
+msgstr "lỗi lấy các thuộc tính thiết bị cuối: %s"
#: builtins/common.c:563
#, 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"
+msgstr "%s: lá»—i lấy thÆ° mục hiện thá»i: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
-msgstr "%s: đặc tả công việc mơ hồ"
+msgstr "%s: đặc tả công việc chưa rõ ràng"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
-msgstr "%s: tên hành vi không hợp lệ"
+msgstr "%s: tên hành động không hợp lệ"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
-msgstr "%s: không có đặc tả Ä‘iá»n nốt"
+msgstr "%s: không có đặc tả tự hoàn thiện"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
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"
+msgstr "cảnh báo: tùy chá»n “-F†có thể không hoạt Ä‘á»™ng nhÆ° mong đợi"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
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"
+msgstr "cảnh báo: tùy chá»n “-C†có thể không hoạt Ä‘á»™ng nhÆ° bạn mong đợi"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr "hiện thá»i không thá»±c thi chức năng Ä‘iá»n nốt"
+msgstr "hiện thá»i không thá»±c thi chức năng tá»± hoàn thiện"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
-msgstr "chỉ có thể được dùng trong một hàm"
+msgstr "chỉ có thể dùng trong một hàm"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr "%s: biến tham chiếu không thể là một mảng"
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr "%s: biến nameref tự tham chiếu là không được phép"
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
-msgstr "không thể dùng « -f » để tạo hàm"
+msgstr "không thể dùng “-f†để tạo hàm"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: hàm chỉ Ä‘á»c"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, 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"
+msgstr "%s: không thể hủy biến mảng bằng cách này"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, 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ũ"
+msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng chỉ số"
#: 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"
+msgstr "không có chức năng nạp động"
#: builtins/enable.def:312
#, c-format
@@ -341,31 +366,30 @@ 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"
+msgstr "%s không đượ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:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: là thư mục"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
-msgstr "%s: không phải là tập tin chuẩn"
+msgstr "%s: không phải là tập tin thÆ°á»ng"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: tập tin quá lớn"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: không thể thực hiện tập tin nhị phân"
@@ -373,7 +397,7 @@ msgstr "%s: không thể thực hiện tập tin nhị phân"
#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
msgid "%s: cannot execute: %s"
-msgstr "%s: không thể thực hiện: %s"
+msgstr "%s: không thể thực thi: %s"
#: builtins/exit.def:65
#, c-format
@@ -382,34 +406,34 @@ 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)"
+msgstr "không phải hệ vỠđăng nhập: hãy dùng lệnh “exitâ€"
#: builtins/exit.def:120
#, c-format
msgid "There are stopped jobs.\n"
-msgstr "Vẫn có công việc bị dừng.\n"
+msgstr "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"
+msgstr "Có công việc đang chạy.\n"
#: builtins/fc.def:262
msgid "no command found"
msgstr "không tìm thấy lệnh"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "đặc tả lịch sử"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
-msgstr "%s: không thể mở tập tin tạm thá»i: %s"
+msgstr "%s: không thể mở tập tin tạm: %s"
#: builtins/fg_bg.def:149 builtins/jobs.def:282
msgid "current"
-msgstr "hiện thá»i"
+msgstr "hiện tại"
#: builtins/fg_bg.def:158
#, c-format
@@ -424,44 +448,42 @@ 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"
+msgstr "%s: tùy chá»n cần đố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"
+msgstr "tắt băm"
#: 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"
+msgstr "%s: bảng băm rỗng\n"
#: builtins/hash.def:245
#, c-format
msgid "hits\tcommand\n"
-msgstr "gá»i nhá»›\tlệnh\n"
+msgstr "gợi ý\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á `"
+msgstr[0] "Câu lệnh hệ vỠtương ứng với từ khoá `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, 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"
+"không có trợ giúp cho “%sâ€. Hãy chạy lệnh “help help†hoặc “man -k %s†hay "
+"“info %sâ€."
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
-msgstr "%s: không thể mở : %s"
+msgstr "%s: không thể mở: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -472,27 +494,27 @@ msgid ""
"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"
+"Những câu lệnh này được định nghĩa nội bộ. Gõ lệnh “help†để xem danh sách "
+"này.\n"
+"Gõ “help TÊN†để biết chi tiết vá» hàm “TÊNâ€.\n"
+"Dùng “info bash†để tìm thông tin chung vỠhệ vỠnói chung.\n"
+"Dùng “man -k†hoặc “info†để tìm thông tin vỠlệnh ngoài danh sách này.\n"
"\n"
-"Dấu sao « * » bên cạnh tên thì ngụ ý nó bị tắt.\n"
+"Dấu sao (*) bên cạnh tên nghĩa là lệnh 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 »"
+msgstr "chỉ có thể dùng má»™t của những tùy chá»n -anrw"
#: builtins/history.def:186
msgid "history position"
msgstr "vị trí lịch sử"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
-msgstr "%s: lỗi mở rộng lịch sử"
+msgstr "%s: gặp lỗi khi khai triển lịch sử"
#: builtins/inlib.def:71
#, c-format
@@ -501,105 +523,115 @@ 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 »"
+msgstr "không cho phép dùng tùy chá»n thêm vá»›i “-xâ€"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, 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"
+msgstr "%s: đối số phải là ID tiến trình hoặc công việc"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "Lỗi không rõ"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
-msgstr "đợi biểu thức"
+msgstr "cần biểu thức"
#: builtins/mapfile.def:172
#, c-format
msgid "%s: not an indexed array"
-msgstr "%s: không phải biến phụ lục"
+msgstr "%s: không phải là mảng chỉ số"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr "%s: sai xác định bộ mô tả tập tin"
+msgstr "%s: đặc tả bộ mô tả tập tin không hợp lệ"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, 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:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
-msgstr "%s: sai đếm dòng"
+msgstr "%s: sai số lượng dòng"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: gốc mảng không hợp lệ"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: lượng gá»i ngược không hợp lệ"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
-msgstr "%s: tên biến mảng vẫn trống"
+msgstr "tên biến mảng vẫn trống"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
-msgstr "cần thiết hỗ trợ biến mảng"
+msgstr "cần hỗ trợ biến mảng"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
-msgstr "« %s »: thiếu ký tự định dạng"
+msgstr "“%sâ€: thiếu ký tá»± định dạng"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: sai xác định quá hạn"
+msgstr "“%câ€: đặc tả định dạng thá»i gian không đúng"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
-msgstr "« %c »: ký tự định dạng không hợp lệ"
+msgstr "“%câ€: ký tá»± định dạng không hợp lệ"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
-msgstr "cảnh báo : %s: %s"
+msgstr "cảnh báo: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr "vấn đỠphân tích cú pháp định dạng: %s"
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
-msgstr "thiếu chữ số thập phân cho \\x"
+msgstr "thiếu chữ số thập lục phân cho \\x"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "thiếu chữ số thập phân cho \\x"
+msgstr "thiếu chữ số unicode cho \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "không có thư mục khác"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, c-format
+msgid "%s: invalid argument"
+msgstr "%s: đối số không hợp lệ"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<không có thÆ° mục hiện thá»i>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
-msgstr "đống thư mục vẫn trống"
+msgstr "chồng thư mục trống"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
-msgstr "chỉ mục đống thư mục"
+msgstr "chỉ số chồng thư mục"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -622,28 +654,24 @@ msgid ""
"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
+"Hiển thị danh sách các thÆ° mục được nhá»› hiện thá»i. Lệnh “pushd†thêm\n"
+" thÆ° mục vào danh sách này. “popd†lấy thÆ° mục khá»i danh sách.\n"
+"\n"
+" Tùy chá»n:\n"
+" -c\txoá má»i phần tá»­ trong chồng thÆ° mục\n"
+" -l\tkhông in phiên bản thư mục có dấu ngã nằm trước\n"
+" \tmà tÆ°Æ¡ng ứng vá»›i thÆ° mục chính của ngÆ°á»i dùng\n"
+" -p\tin chồng thư mục mỗi dòng một mục\n"
+" -v\tin chồng thư mục mỗi dòng một mục kèm vị trí trong chồng\n"
+"\n"
+" Äối số:\n"
+" +N\thiển thị mục thứ N đếm từ bên trái khi gá»i không tuỳ chá»n,\n"
+" bắt đầu từ số không.\n"
+"\n"
+" -N\thiển thị mục thứ N đếm từ bên phải khi gá»i không tuỳ chá»n,\n"
+" bắt đầu từ số không."
+
+#: builtins/pushd.def:711
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"
@@ -667,29 +695,27 @@ msgid ""
" \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"
+"Thêm thư mục vào trên chồng thư mục, hoặc xoay chồng, làm cho thư mục\n"
+" hiện thá»i nằm ở trên đầu. Äổi vị trí hai thÆ° mục trên cùng nếu\n"
+" không có đối số.\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"
+" Tùy chá»n:\n"
+" -n\tngăn thay đổi thÆ° mục bình thÆ°á»ng khi thêm, chỉ thao tác\n"
+" \ttrên chồng thư mục.\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"
+" Äối số:\n"
+" +N\txoay chồng để thÆ° mục thứ N (đếm từ bên trái “dirsâ€, bắt\n"
+" \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\txoay chồng để thÆ° mục thứ N (đếm từ bên phải “dirsâ€, bắt\n"
+" \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"
+" THƯ-MỤC\tthêm THƯ-MỤC vào đầu chồng thư mục và dùng làm thư mục\n"
+" \tlàm việc hiện thá»i.\n"
"\n"
-"\tDựng sẵn « dirs » hiển thị đống thư mục."
+" Lệnh “dirs†hiển thị chồng thư mục."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -709,82 +735,78 @@ msgid ""
" \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"
+"Gỡ bá» thÆ° mục khá»i chồng thÆ° mục. Không Ä‘Æ°a ra đối số thì bá» thÆ° mục\n"
+" đầu khá»i chồng và 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"
+" Tùy chá»n:\n"
+" -n\tngăn thay đổi thÆ° mục bình thÆ°á»ng khi thêm, chỉ thao tác\n"
+"\t\ttrên chồng thư mục.\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"
+" Äối số:\n"
+" +N\txoay chồng để thÆ° mục thứ N (đếm từ bên trái “dirsâ€. bắt\n"
+" \tđầu từ số không) nằm ở đầu. Ví dụ “popd +0†bỠthư mục\n"
+" đầu tiên, “popd +1†bỠthư mục thứ hai.\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\txoay chồng để thÆ° mục thứ N (đếm từ bên phải “dirsâ€. bắt\n"
+" \tđầu từ số không) nằm ở đầu. Ví dụ “popd -0†bỠthư mục\n"
+" cuối cùng, “popd -1†bỠthư mục kế cuối.\n"
"\n"
-"\tDựng sẵn « dirs » sẽ hiển thị đống thư mục."
+" Lệnh “dirs†hiển thị chồng thư mục."
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
-msgstr "%s: sai xác định quá hạn"
+msgstr "%s: sai đặc tả thá»i gian chá» tối Ä‘a"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "lá»—i Ä‘á»c: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
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"
+msgstr "chỉ có thể “return†từ má»™t hàm hoặc văn lệnh được “sourceâ€"
-#: builtins/set.def:771
+#: builtins/set.def:782
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:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr "%s: không thể hủy đặt"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr "%s: không thể hủy đặt: %s chỉ Ä‘á»c"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: không phải biến mảng"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, 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"
+msgstr "số lượng dịch"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
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"
+msgstr "không thể đồng thá»i đặt và hủy đặt các tùy chá»n hệ vá»"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
-msgstr "%s: tên tùy chá»n trình bao không hợp lệ"
+msgstr "%s: tên tùy chá»n hệ vá» không hợp lệ"
#: builtins/source.def:130
msgid "filename argument required"
-msgstr "cần thiết đối số tên tập tin"
+msgstr "cần đối số tên tập tin"
#: builtins/source.def:155
#, c-format
@@ -797,29 +819,29 @@ 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"
+msgstr "không thể ngưng hệ vỠđă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"
+msgstr "%s là bí danh của “%sâ€\n"
#: builtins/type.def:255
#, c-format
msgid "%s is a shell keyword\n"
-msgstr "%s là từ khoá trình bao\n"
+msgstr "%s là từ khoá của hệ vá»\n"
#: builtins/type.def:274
#, c-format
msgid "%s is a function\n"
-msgstr "%s là hàm\n"
+msgstr "%s là một 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"
+msgstr "%s là lệnh dá»±ng sẵn hệ vá»\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s là %s\n"
@@ -827,361 +849,376 @@ 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"
+msgstr "%s được băm (%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: đối số giới hạn không hợp lệ"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "« %c »: câu lệnh sai"
+msgstr "“%câ€: câu lệnh sai"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: không thể lấy giới hạn: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "giới hạn"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, 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
+#: builtins/umask.def:114
msgid "octal number"
msgstr "số bát phân"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr "« %c »: toán từ chế độ tượng trưng không hợp lệ"
+msgstr "“%câ€: toán tá»­ chế Ä‘á»™ ký hiệu không hợp lệ"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr "« %c »: ký tự chế độ tượng trưng không hợp lệ"
+msgstr "“%câ€: ký tá»± chế Ä‘á»™ ký hiệu không hợp lệ"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
-msgstr "dòng"
+msgstr " dòng "
#: error.c:165
#, c-format
msgid "last command: %s\n"
-msgstr "câu lệnh cuối cùng: %s\n"
+msgstr "lệnh cuối: %s\n"
#: error.c:173
#, c-format
msgid "Aborting..."
msgstr "Hủy bá»..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "lỗi lệnh không rõ"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "kiểu lệnh sai"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "bộ kết nối sai"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
-msgstr "sai nhảy"
+msgstr "nhảy sai"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
-msgstr "%s: biến chưa tổ hợp"
+msgstr "%s: biến chưa liên kết"
-#: eval.c:181
+#: eval.c:189
#, 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"
+msgstr "\aquá thá»i hạn đợi dữ liệu nhập: tá»± Ä‘á»™ng đăng xuất\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, 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"
+msgstr "không thể chuyển hướng đầu vào chuẩn từ /dev/null: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, 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ệ"
+msgstr "ÄỊNH DẠNG THỜI GIAN: “%câ€: ký tá»± định dạng không hợp lệ"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "lỗi ống dẫn"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: vượt quá mức độ tối đa các hàm lồng nhau (%d)."
+
+#: execute_cmd.c:4884
#, 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"
+msgstr "%s: bị hạn chế: không thể dùng “/†trong tên lệnh"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: không tìm thấy lệnh"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s là %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr "%s: %s: bộ thông dịch sai"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: không thể thực hiện tập tin nhị phân: %s"
+
+#: execute_cmd.c:5352
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "“%sâ€: là lệnh dá»±ng sẵn đặc biệt"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "không thể nhân đôi fd %d tới fd %d"
+msgstr "không thể nhân đôi fd %d thành fd %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
-msgstr "vượt quá giới hạn mức độ đệ quy của biểu thức"
+msgstr "vượt quá ngưỡng đệ quy của biểu thức"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
-msgstr "trán ngược đống đệ quy"
+msgstr "tràn ngược đống đệ quy"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "lỗi cú pháp trong biểu thức"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
-msgstr "thử gán cho đồ không phải biến"
+msgstr "thử gán cho thứ không phải biến"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "chia cho không"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
-msgstr "lỗi (bug): hiệu bài ấn định biểu thức sai"
+msgstr "lỗi: “token expassign†sai"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
-msgstr "đợi dấu hai chấm « : » cho biểu thức Ä‘iá»u kiện"
+msgstr "cần “:†cho biểu thức Ä‘iá»u kiện"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "số mũ nhỠhơn 0"
-#: expr.c:887
+#: expr.c:976
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"
+msgstr "cần định danh sau tăng/giảm dần trước"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
-msgstr "thiếu dấu ngoặc đóng « ) »"
+msgstr "thiếu “)â€"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
-msgstr "lỗi cú pháp: đợi toán hạng"
+msgstr "lỗi cú pháp: cần toán hạng"
-#: expr.c:1284
+#: expr.c:1392
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:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr "%s%s%s: %s (hiệu bài lỗi là « %s »)"
+msgstr "%s%s%s: %s (thẻ bài lỗi là \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
-msgstr "cÆ¡ số (số há»c) không hợp lệ"
+msgstr "cÆ¡ số (toán há»c) không hợp lệ"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "cơ số có giá trị quá lớn"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: lỗi biểu thức\n"
-#: general.c:61
+#: general.c:62
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:5082
+#: input.c:102 subst.c:5168
#, 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"
+msgstr "không thể đặt lại chế độ “nodelay†cho fd %d"
-#: input.c:260
+#: input.c:271
#, 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"
+msgstr "không thể cấp phát bộ mô tả tập tin mới cho dữ liệu nhập bash từ fd %d"
-#: input.c:268
+#: input.c:279
#, 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:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: pgrp pipe"
-#: jobs.c:889
+#: jobs.c:893
#, 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"
+msgstr "pid được tánh nhánh %d có vẻ đang chạy trong công việc %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, 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:1112
+#: jobs.c:1117
#, 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:1115
+#: jobs.c:1120
#, 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:1430
+#: jobs.c:1435
#, 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"
+msgstr "describe_pid: %ld: không có pid như vậy"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "Tín hiệu %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
-msgstr "Hoàn tất"
+msgstr "Xong"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "Bị dừng"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr "Bị dừng(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "Äang chạy"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
-msgstr "Hoàn tất(%d)"
+msgstr "Xong(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "Thoát %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "Không rõ trạng thái"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
-msgstr "(lõi bị đổ)"
+msgstr "(xuất ra core)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr " (wd: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "setpgid tiến trình con (%ld thành %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, 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"
+msgstr "wait: pid %ld không phải là tiến trình con của hệ vỠnày"
-#: jobs.c:2360
+#: jobs.c:2385
#, 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:2637
+#: jobs.c:2694
#, 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:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: công việc bị chấm dứt"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
-msgstr "%s: công việc %d đã chạy trong ná»n"
+msgstr "%s: công việc %d đã Ä‘ang chạy ná»n"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: đang bật WNOHANG để tránh bị chặn vô hạn"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
-msgstr "%s: dòng %d:"
+msgstr "%s: dòng %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
-msgstr " (lõi bị đổ)"
+msgstr " (xuất ra core)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
-msgstr "(wd bây giá»: %s)\n"
+msgstr "(wd ngay: %s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp bị lỗi"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: kỷ luật dòng"
# Nghĩa chữ : dừng dịch
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, 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:3712
+#: jobs.c:3888
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"
+msgstr "không có Ä‘iá»u khiển công việc trong hệ vá» 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"
+msgstr "malloc: khẳng định gặp lỗi: %s\n"
#: lib/malloc/malloc.c:312
#, c-format
@@ -1190,62 +1227,62 @@ msgid ""
"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"
+"malloc: %s:%d: khẳng định bị sai\r\n"
#: lib/malloc/malloc.c:313
msgid "unknown"
msgstr "không rõ"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
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"
+"trống bị ghi vào"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
-msgstr "free: đã được gá»i vá»›i đối số khối đã giải phá»ng"
+msgstr "free: đã được gá»i vá»›i đối số khối đã được giải phóng"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
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
+#: lib/malloc/malloc.c:900
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
+#: lib/malloc/malloc.c:906
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
+#: lib/malloc/malloc.c:1005
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
+#: lib/malloc/malloc.c:1020
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"
+msgstr "realloc: phát hiện sự tràn ngược; mh_nbytes nằm ngoài phạm vi cho phép"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
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
+#: lib/malloc/table.c:194
#, 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
+#: lib/malloc/table.c:203
#, 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"
+msgstr "register_alloc: %p đã có trong bảng như được cấp phát?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, 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"
+msgstr "register_free: %p đã có trong bảng như còn trống?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "cơ số không hợp lệ"
@@ -1268,306 +1305,301 @@ msgstr "%s: đặc tả Ä‘Æ°á»ng dẫn mạng sai"
msgid "network operations not supported"
msgstr "không hỗ trợ thao tác mạng"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: không thể chuyển đổi miá»n địa phÆ°Æ¡ng (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: không thể chuyển đổi miá»n địa phÆ°Æ¡ng (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: không thể chuyển đổi miá»n địa phÆ°Æ¡ng (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: không thể chuyển đổi miá»n địa phÆ°Æ¡ng (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "Bạn có thư trong $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "Bạn có thư mới trong $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
-msgstr "ThÆ° tín trong %s đã được Ä‘á»c\n"
+msgstr "Äã Ä‘á»c thÆ° trong %s\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr "lá»—i cú pháp: cần thiết biểu thức số há»c"
+msgstr "lá»—i cú pháp: cần biểu thức số há»c"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr "lá»—i cú pháp: dấu chấm phẩy « ; » bất thÆ°á»ng"
+msgstr "lá»—i cú pháp: gặp dấu chấm phẩy “;†bất thÆ°á»ng"
#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
-msgstr "lỗi cú pháp: `((%s))'"
+msgstr "lá»—i cú pháp: “((%s))â€"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: kiểu chỉ dẫn sai %d"
+msgstr "make_here_document: kiểu chỉ lệnh sai %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, 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 »)"
+msgstr "tài liệu này ở dòng %d định giá»›i bằng kết thúc tập tin (muốn “%sâ€)"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, 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"
+msgstr "make_redirection: chỉ dẫn chuyển hướng “%d†nằm ngoài phạm vi"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, 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"
+msgstr "gặp kết thúc tập tin bất thÆ°á»ng trong khi tìm “%c†tÆ°Æ¡ng ứng"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
-msgstr "gặp kết thúc tập tin bất thÆ°á»ng trong khi tìm « ]] »"
+msgstr "gặp kết thúc tập tin bất thÆ°á»ng trong khi tìm “]]â€"
-#: parse.y:4030
+#: parse.y:4175
#, 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 »"
+msgstr "gặp lá»—i cú pháp trong biểu thức Ä‘iá»u kiện: thẻ bài bất thÆ°á»ng “%sâ€"
-#: parse.y:4034
+#: parse.y:4179
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:4112
+#: parse.y:4257
#, 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 « ) »"
+msgstr "gặp thẻ bài bất thÆ°á»ng “%sâ€, cần “)â€"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
-msgstr "đợi dấu đóng ngoặc « ) »"
+msgstr "cần “)â€"
-#: parse.y:4144
+#: parse.y:4289
#, 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"
+msgstr "đối số bất thÆ°á»ng “%s†cho toán tá»­ má»™t ngôi Ä‘iá»u kiện"
-#: parse.y:4148
+#: parse.y:4293
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"
+msgstr "đối số bất thÆ°á»ng cho toán tá»­ má»™t ngôi Ä‘iá»u kiện"
-#: parse.y:4194
+#: parse.y:4339
#, 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"
+msgstr "thẻ bài bất thÆ°á»ng “%sâ€, cần toán tá»­ hai ngôi Ä‘iá»u kiện"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
-msgstr "đợi toán tá»­ nhị phân Ä‘iá»u kiện"
+msgstr "cần toán tá»­ hai ngôi Ä‘iá»u kiện"
-#: parse.y:4220
+#: parse.y:4365
#, 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"
+msgstr "đối số bất thÆ°á»ng “%s†cho toán tá»­ hai ngôi Ä‘iá»u kiện"
-#: parse.y:4224
+#: parse.y:4369
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"
+msgstr "đối số bất thÆ°á»ng cho toán tá»­ hai ngôi Ä‘iá»u kiện"
-#: parse.y:4235
+#: parse.y:4380
#, 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"
+msgstr "gặp thẻ bài bất thÆ°á»ng “%c†trong câu lệnh Ä‘iá»u kiện"
-#: parse.y:4238
+#: parse.y:4383
#, 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"
+msgstr "gặp thẻ bài bất thÆ°á»ng “%s†trong câu lệnh Ä‘iá»u kiện"
-#: parse.y:4242
+#: parse.y:4387
#, 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"
+msgstr "gặp thẻ bài bất thÆ°á»ng “%d†trong câu lệnh Ä‘iá»u kiện"
-#: parse.y:5566
+#: parse.y:5737
#, 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 »"
+msgstr "có lá»—i cú pháp ở gần thẻ bài bất thÆ°á»ng “%sâ€"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
-msgstr "gặp lỗi cú pháp gần « %s »"
+msgstr "lá»—i cú pháp ở gần “%sâ€"
-#: parse.y:5594
+#: parse.y:5765
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:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "lỗi cú pháp"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Dùng « %s » để rá»i trình bao.\n"
+msgstr "Dùng \"%s\" để rá»i hệ vá».\n"
-#: parse.y:5818
+#: parse.y:5989
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"
+msgstr "gặp kết thúc tập tin bất thÆ°á»ng trong khi tìm “)†tÆ°Æ¡ng ứng"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
-msgstr "completion: không tìm thấy hàm « %s »"
+msgstr "tá»± hoàn thiện: không tìm thấy hàm “%sâ€"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: NULL COMPSPEC"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
-msgstr "print_command: bộ kết nối sai « %d »"
+msgstr "print_command: bá»™ kết nối sai “%dâ€"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr "xtrace_set: %d: sai đặt bộ mô tả tập tin"
+msgstr "xtrace_set: %d: sai bộ mô tả tập tin"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
-msgstr "xtrace_set: con trỠtập tin NULL (vô giá trị)"
+msgstr "xtrace_set: con trỠtập tin NULL"
# Nghĩa chữ ?
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
-msgstr "cprintf: « %c »: ký tự định dạng không hợp lệ"
+msgstr "cprintf: “%câ€: ký tá»± định dạng không hợp lệ"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "bộ mô tả tập tin ở ngoại phạm vi"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
-msgstr "%s: lá»i chuyển hÆ°á»›ng mÆ¡ hồ"
+msgstr "%s: chuyển hướng chưa rõ ràng"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: không thể ghi đè lên tập tin đã có"
-#: redir.c:187
+#: redir.c:186
#, 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:192
+#: redir.c:191
#, 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:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr "%s: không thể gán cho biến bộ bô tả tập tin"
+msgstr "%s: không thể gán fd vào biến"
-#: redir.c:548
+#: redir.c:582
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"
+msgstr "/dev/(tcp|udp)/host/port không được hỗ trợ nếu không có mạng"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
-msgstr "gặp lỗi chuyển hướng nên không thể nhân đôi fd"
+msgstr "lỗi chuyển hướng: không thể nhân đôi fd"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
-msgstr "không tìm thấy « /tmp », hãy tạo."
+msgstr "không tìm thấy /tmp, hãy tạo mới!"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
-msgstr "« /tmp » phải là tên thư mục hợp lệ"
+msgstr "“/tmp†phải là tên thư mục hợp lệ"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: tùy chá»n không hợp lệ"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
-msgstr "Không có tên."
+msgstr "Không có tên!"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
-msgstr "bash của GNU, phiên bản %s-(%s)\n"
+msgstr "GNU bash, phiên bản %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, 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"
+"Cách 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:1798
+#: shell.c:1830
msgid "GNU long options:\n"
-msgstr "Tùy chá»n GNU dài:\n"
+msgstr "Tùy chá»n dài:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
-msgstr "Tùy chá»n trình bao :\n"
+msgstr "Tùy chá»n:\n"
-#: shell.c:1803
-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:1835
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
+msgstr "\t-ilrsD hoặc -c lệnh hay -O tùy-chá»n-ngắn\t\t(chỉ gá»i)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
-msgstr "\t-%s hoặc -o tùy chá»n\n"
+msgstr "\t-%s hoặc -o tùy-chá»n\n"
-#: shell.c:1824
+#: shell.c:1856
#, 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"
+msgstr "Gõ “%s -c \"help set\"†để xem thông tin vá» các tùy chá»n hệ vá».\n"
-#: shell.c:1825
+#: shell.c:1857
#, 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"
+msgstr "Gõ “%s -c help†để xem thông tin vỠcác lệnh hệ vỠdựng sẵn.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "Dùng lệnh « bashbug » để thông báo lỗi.\n"
+msgstr ""
+"Dùng lệnh “bashbug†để thông báo lỗi.\n"
+"Báo cáo các lỗi dịch cho: <http://translationproject.org/team/vi.html>.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: thao tác không hợp lệ"
@@ -1578,11 +1610,11 @@ msgstr "Tín hiệu giả"
#: siglist.c:51
msgid "Hangup"
-msgstr "Treo máy"
+msgstr "Treo"
#: siglist.c:55
msgid "Interrupt"
-msgstr "Gián đoạn"
+msgstr "Ngắt"
#: siglist.c:59
msgid "Quit"
@@ -1606,7 +1638,7 @@ msgstr "Câu lệnh EMT"
#: siglist.c:83
msgid "Floating point exception"
-msgstr "Ngoại lệ chấm động"
+msgstr "Lỗi dấu chấm động"
#: siglist.c:87
msgid "Killed"
@@ -1614,19 +1646,19 @@ msgstr "Bị giết"
#: siglist.c:91
msgid "Bus error"
-msgstr "lỗi mạch nối"
+msgstr "Lá»—i bus"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr "Lỗi chia ra từng đoạn"
+msgstr "Lỗi phân đoạn"
#: siglist.c:99
msgid "Bad system call"
-msgstr "Sai gá»i hệ thống"
+msgstr "Lá»—i lệnh gá»i hệ thống"
#: siglist.c:103
msgid "Broken pipe"
-msgstr "á»ng dẫn bị há»ng"
+msgstr "á»ng dẫn há»ng"
#: siglist.c:107
msgid "Alarm clock"
@@ -1638,7 +1670,7 @@ msgstr "Bị chấm dứt"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr "Äiá»u kiện VR gấp"
+msgstr "Äiá»u kiện IO gấp"
#: siglist.c:119
msgid "Stopped (signal)"
@@ -1662,7 +1694,7 @@ msgstr "Bị dừng (tty xuất)"
#: siglist.c:147
msgid "I/O ready"
-msgstr "V/R sẵn sàng"
+msgstr "I/O sẵn sàng"
#: siglist.c:151
msgid "CPU limit"
@@ -1686,7 +1718,7 @@ msgstr "Cửa sổ bị thay đổi"
#: siglist.c:171
msgid "Record lock"
-msgstr "Mục ghi bị khoá"
+msgstr "Khóa bản ghi"
#: siglist.c:175
msgid "User signal 1"
@@ -1702,7 +1734,7 @@ msgstr "Dữ liệu nhập HFT bị hoãn"
#: siglist.c:187
msgid "power failure imminent"
-msgstr "sắp bị cúp điện đột ngột"
+msgstr "sắp bị mất điện đột ngột"
#: siglist.c:191
msgid "system crash imminent"
@@ -1734,251 +1766,257 @@ msgstr "yêu cầu thông tin"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr "Không rõ tín hiệu #"
+msgstr "Tín hiệu lạ #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr "Không rõ tín hiệu #%d"
+msgstr "Tín hiệu lạ #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr "sai thay thế: không có « %s » đóng trong %s"
+msgstr "sai chỉ số phụ: không có đóng “%s†trong %s"
-#: subst.c:2795
+#: subst.c:2847
#, 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:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "không thể tạo ống dẫn để thay thế tiến trình"
-#: subst.c:5027
+#: subst.c:5113
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:5072
+#: subst.c:5158
#, 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:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr "không thể mở ống dẫn đặt tên %s để ghi"
+msgstr "không thể mở ống dẫn có tên %s để ghi"
-#: subst.c:5092
+#: subst.c:5178
#, 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:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "không thể tạo ống dẫn để thay thế lệnh"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "không thể tạo tiến trình con để thay thế lệnh"
-#: subst.c:5339
+#: subst.c:5433
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:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: tên biến không hợp lệ cho một tham chiếu tên"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
-msgstr "%s: tham số vô giá trị hoặc chưa được đặt"
+msgstr "%s: tham số null hoặc chưa được đặt"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
-msgstr "%s: biểu thức chuỗi phụ < 0"
+msgstr "%s: biểu thức chuỗi con < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
-msgstr "%s: sai thay thế"
+msgstr "%s: thay thế sai"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: không thể gán bằng cách này"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-"phiên bản trình bao mới sẽ ép buộc ước lượng dưới dạng một hàm thay thế số "
-"há»c"
+"phiên bản hệ vá» má»›i sẽ ép buá»™c Æ°á»›c lượng dÆ°á»›i dạng má»™t hàm thay thế số há»c"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "sai thay thế: không có « ` » đóng trong %s"
+msgstr "sai thay thế: không có \"`\" đóng trong %s"
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr "không khớp: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
-msgstr "mong đợi đối số"
+msgstr "cần đối số"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
-msgstr "%s: đợi biểu thức số nguyên"
+msgstr "%s: cần biểu thức số nguyên"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
-msgstr "đợi dấu ngoặc đóng « ) »"
+msgstr "cần “)â€"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
-msgstr "đợi dấu ngoặc đóng « ) », còn tìm %s"
+msgstr "cần “)†nhưng lại nhận được %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
-msgstr "%s: đợi toán tử nguyên phân"
+msgstr "%s: cần toán tử một ngôi"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
-msgstr "%s: đợi toán tử nhị phân"
+msgstr "%s: cần toán tử hai ngôi"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
-msgstr "thiếu dấu ngoặc vụ đóng « ] »"
+msgstr "thiếu “]â€"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "số thứ tự tín hiệu không hợp lệ"
-#: trap.c:337
+#: trap.c:371
#, 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:341
+#: trap.c:375
#, 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"
+"chính mình"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler: tín hiệu sai %d"
-#: variables.c:363
+#: variables.c:382
#, 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 »"
+msgstr "gặp lá»—i khi nhập vào định nghÄ©a hàm cho “%sâ€"
-#: variables.c:755
+#: variables.c:780
#, 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"
+msgstr "cấp hệ vỠ(%d) quá cao nên đặt lại thành 1"
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr "%s: tên tham chiếu quẩn tròn"
+
+#: variables.c:2228
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:3182
+#: variables.c:2247
+#, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: không thể gán giá trị cho biến"
+
+#: variables.c:3646
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:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
-msgstr "%s có chuỗi xuất (exportstr) vô giá trị"
+msgstr "%s có exportstr null"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
-msgstr "sai ký tự %d trong chuỗi exportstr cho %s"
+msgstr "sai ký tự %d trong exportstr cho %s"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
-msgstr "không có dấu bằng « = » trong chuỗi exportstr cho %s"
+msgstr "không có “=†trong exportstr cho %s"
-#: variables.c:3891
+#: variables.c:4344
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"
+"pop_var_context: đầu của shell_variables (các biến hệ vá») không phải là ngữ "
+"cảnh hàm"
-#: variables.c:3904
+#: variables.c:4357
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:3978
+#: variables.c:4431
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"
+"pop_scope: đầu của shell_variables (các biến hệ vá») không phải là phạm vi "
+"môi trÆ°á»ng tạm thá»i"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr "%s: %s: không thể mở dưới dạng TẬP_TIN"
+msgstr "%s: %s: không thể mở như là TẬP-TIN"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: sai đặt giá trị cho bộ mô tả tập tin vết"
+#: variables.c:5307
+#, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s: giá trị so sánh nằm ngoài phạm vi"
+
#: version.c:46
-#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Tác quyá»n © năm 2009 của Tổ chức Phần má»m Tá»± do."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "Tác quyá»n (C) năm 2014 của Tổ chức Quỹ Phần má»m Tá»± do, Inc."
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-"Giấy phép GPLv3+: Giấy Phép Công Cộng GNU phiên bản 3 hay sau <http://gnu."
-"org/licenses/gpl.html>\n"
+"Giấy phép GPLv3+: GNU GPL phiên bản 3 hoặc mới hơn <http://gnu.org/licenses/"
+"gpl.html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr "bash của GNU, phiên bản %s (%s)\n"
+msgstr "GNU bash, phiên bản %s (%s)\n"
-#: version.c:91 version2.c:88
-#, 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:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "Äây là phần má»m tá»± do; bạn có quyá»n sá»­a đổi và phát hành lại nó."
-#: version.c:92 version2.c:89
-#, 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"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "Ở đây KHÔNG BẢO HÀNH GÃŒ CẢ, vá»›i Ä‘iá»u kiện được pháp luật cho phép."
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "Tác quyá»n © năm 2009 của Tổ chức Phần má»m Tá»± do.\n"
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Giấy phép GPLv2+: Giấy Phép Công Cộng GNU phiên bản 2 hay sau <http://gnu."
-"org/licenses/gpl.html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "Tác quyá»n (C) năm 2014 của Tổ chức Quỹ Phần má»m Tá»± do, Inc."
#: xmalloc.c:91
#, c-format
@@ -2002,20 +2040,19 @@ msgstr "%s: %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ị] ... ]"
+msgstr "alias [-p] [TÊN[=GIÃ-TRỊ] ... ]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr "unalias [-a] tên [tên ...]"
+msgstr "unalias [-a] TÊN [TÊN ...]"
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-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]"
+"bind [-lpvsPVSX] [-m SÆ -Äá»’-PHÃM] [-f TẬP-TIN] [-q TÊN] [-u TÊN] [-r DÃY-"
+"PHÃM] [-x DÃY-PHÃM:LỆNH] [DÃY-PHÃM:HÀM-READLINE hay LỆNH-READLINE]"
#: builtins.c:54
msgid "break [n]"
@@ -2023,20 +2060,19 @@ msgstr "break [n]"
#: builtins.c:56
msgid "continue [n]"
-msgstr "tiếp tục [n]"
+msgstr "continue [n]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr "builtin [shell-builtin [arg ...]]"
+msgstr "builtin [SHELL-BUILTIN [Äá»I-Sá» ...]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr "caller [b_thức]"
+msgstr "caller [BTHỨC]"
#: builtins.c:64
-#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [tmục]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [-@]] [THƯ-MỤC]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2048,53 +2084,51 @@ msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr "đúng"
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr "sai"
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
-msgstr "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] LỆNH [Ä.Sá» ...]"
#: builtins.c:76
-#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [tên[=giá_trị] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilnrtux] [-p] [TÊN[=GIÃ-TRỊ] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] tên[=giá_trị] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] TÊN[=GIÃ-TRỊ] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr "local [tùy_chá»n] tên[=giá_trị] ..."
+msgstr "local [tùy_chá»n] TÊN[=GIÃ-TRỊ] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
-msgstr "echo [-neE] [đối_số ...]"
+msgstr "echo [-neE] [Ä.Sá» ...]"
#: builtins.c:87
msgid "echo [-n] [arg ...]"
-msgstr "echo [-n] [đối_số ...]"
+msgstr "echo [-n] [Ä.Sá» ...]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr "enable [-a] [-dnps] [-f tên_tập_tin] [tên ...]"
+msgstr "enable [-a] [-dnps] [-f TẬP-TIN] [TÊN ...]"
#: builtins.c:92
msgid "eval [arg ...]"
-msgstr "eval [đối_số ...]"
+msgstr "eval [Ä.Sá» ...]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr "getopts chuá»—i_tùy_chá»n tên [đối_số]"
+msgstr "getopts CHUá»–I-TÙY-CHỌN TÊN [Ä.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 ...]"
+msgstr "exec [-cl] [-a TÊN] [LỆNH [Äá»I-Sá» ...]] [CHUYỂN-HƯỚNG ...]"
#: builtins.c:98
msgid "exit [n]"
@@ -2102,74 +2136,62 @@ msgstr "exit [n]"
#: builtins.c:100
msgid "logout [n]"
-msgstr "đăng xuất [n]"
+msgstr "logout [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]"
+msgstr "fc [-e ENAME] [-lnr] [ÄẦU] [CUá»I] hoặc 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]"
+msgstr "fg [ÄTCV]"
#: builtins.c:111
msgid "bg [job_spec ...]"
-msgstr "bg [đặc_tả_công_việc ...]"
+msgstr "bg [ÄTCV ...]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr "hash [-lr] [-p Ä‘Æ°á»ng_dẫn] [-dt] [tên ...]"
+msgstr "hash [-lr] [-p ÄƯỜNG-DẪN] [-dt] [TÊN ...]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr "help [-dms] [mẫu ...]"
+msgstr "help [-dms] [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ố...]"
+"history [-c] [-d OFFSET] [n] hay history -anrw [T.TIN] hay history -ps Ä.Sá» "
+"[Ä.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ố]"
+msgstr "jobs [-lnprs] [ÄTCV ...] hoặc jobs -x LỆNH [Äá»I-Sá»]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr "disown [-h] [-ar] [đặc_tả_công_việc ...]"
+msgstr "disown [-h] [-ar] [ÄTCV ...]"
#: 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]"
+"kill [-s ÄTTH | -n số_tín_hiệu | -ÄTTH] pid | ÄTCV ... hoặc kill -l [ÄTTH]"
#: builtins.c:134
msgid "let arg [arg ...]"
-msgstr "let đối_số [đối_số ...]"
+msgstr "let Äá»I-Sá» [Äá»I-Sá» ...]"
#: builtins.c:136
msgid ""
"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-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ự] [-N số_ký_tự] "
-"[-p nhắc] [-t thá»i_hạn] [-u fd] [tên ...]"
+"read [-ers] [-a MẢNG] [-d GIỚI-HẠN] [-i VÄ‚N-BẢN] [-n Sá»-KÃ-Tá»°] [-N Sá»-KÃ-Tá»°] "
+"[-p NHẮC] [-t THỜI-HẠN] [-u fd] [TÊN ...]"
# nghĩa chữ
#: builtins.c:138
@@ -2177,28 +2199,20 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o tùy_chá»n] [đối_số ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o TÊN-TÙY-CHỌN] [--] [Äá»I-Sá» ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
-msgstr "unset [-f] [-v] [tên ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
+msgstr "unset [-f] [-v] [-n] [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"
+msgstr "export [-fn] [TÊN[=GIÃ-TRỊ] ...] hoặc export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
-"readonly [-af] [tên[=giá_trị] ...]\n"
-"\thay\n"
-"readonly -p"
+msgstr "readonly [-aAf] [TÊN[=GIÃ-TRỊ] ...] hay readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2206,118 +2220,115 @@ msgstr "shift [n]"
#: builtins.c:150
msgid "source filename [arguments]"
-msgstr "nguồn tên_tập_tin [đối_số ...]"
+msgstr "source TẬP-TIN [Äá»I-Sá» ...]"
#: builtins.c:152
msgid ". filename [arguments]"
-msgstr ". tên_tập_tin [đối_số ...]"
+msgstr ". TẬP-TIN [Äá»I-Sá» ...]"
#: builtins.c:155
msgid "suspend [-f]"
-msgstr "ngÆ°ng [-f]"
+msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr "test [b_thức]"
+msgstr "test [BTHỨC]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr "[ đối_số ... ]"
+msgstr "[ Ä.Sá» ... ]"
#: builtins.c:162
msgid "times"
-msgstr "lần"
+msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr "trap [-lp] [[đối_số] đặc_tả_tín_hiệu ...]"
+msgstr "trap [-lp] [[Ä.Sá»] ÄTTH ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr "type [-afptP] tên [tên ...]"
+msgstr "type [-afptP] TÊN [TÊN ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [giới_hạn]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [GIỚI-HẠN]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
-msgstr "umask [-p] [-S] [chế_độ]"
+msgstr "umask [-p] [-S] [CHẾ-ÄỘ]"
#: builtins.c:175
-msgid "wait [id]"
-msgstr "đợi [id]"
+msgid "wait [-n] [id ...]"
+msgstr "wait [-n] [id ...]"
#: builtins.c:179
-msgid "wait [pid]"
-msgstr "đợi [pid]"
+msgid "wait [pid ...]"
+msgstr "wait [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"
+msgstr "for TÊN [in 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"
+msgstr "for (( BTHỨC1; BTHỨC2; BTHỨC3 )); 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"
+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"
+msgstr "time [-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"
+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"
+"if 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"
+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"
+msgstr "until CÃC;CÂU;LỆNH; do CÃC;CÂU;LỆNH; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr "coproc [TÊN] command [định vị lại]"
+msgstr "coproc [TÊN] LỆNH [CHUYỂN-HƯỚNG]"
#: builtins.c:200
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 ; }"
+msgstr "function TÊN { CÃC;CÂU;LỆNH; } or TÊN () { CÃC;CÂU;LỆNH; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr "{ các_CÂU_LỆNH ; }"
+msgstr "{ CÃC;CÂU;LỆNH ; }"
#: builtins.c:204
msgid "job_spec [&]"
-msgstr "đặc_tả_công_việc [&]"
+msgstr "ÄTCV [&]"
#: builtins.c:206
msgid "(( expression ))"
-msgstr "(( biểu_thức ))"
+msgstr "(( BTHỨC ))"
#: builtins.c:208
msgid "[[ expression ]]"
-msgstr "[[ biểu_thức ]]"
+msgstr "[[ BTHỨC ]]"
#: builtins.c:210
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"
+msgstr "biến — tên và nghÄ©a của má»™t số biến hệ vá»"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
@@ -2333,11 +2344,11 @@ msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr "shopt [-pqsu] [-o] [tùy_chá»n ...]"
+msgstr "shopt [-pqsu] [-o] [tên-tùy-chá»n ...]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
-msgstr "printf [-v biến] định_dạng [đối_số]"
+msgstr "printf [-v BIẾN] ÄỊNH-DẠNG [CÃC-Äá»I-Sá»]"
#: builtins.c:229
msgid ""
@@ -2345,37 +2356,37 @@ msgid ""
"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
"suffix] [name ...]"
msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DE] [-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 ...]"
+"complete [-abcdefgjksuv] [-pr] [-DE] [-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:233
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ừ]"
+"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:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr "compopt [-o|+o tùy_chá»n] [-DE] [tên ...]"
+msgstr "compopt [-o|+o TÙY-CHỌN] [-DE] [TÊN ...]"
#: builtins.c:240
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]"
+"mapfile [-n ÄẾM] [-O Gá»C] [-s Sá»-LƯỢNG] [-t] [-u fd] [-C GỌI-NGƯỢC] [-c "
+"LƯỢNG] [MẢNG]"
#: builtins.c:242
msgid ""
"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
"quantum] [array]"
msgstr ""
-"readarray [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gá»i_ngược] [-c lượng] "
-"[mảng]"
+"readarray [-n ÄẾM] [-O Gá»C] [-s Sá»-LƯỢNG] [-t] [-u FD] [-C GỌI-NGƯỢC] [-c "
+"LƯỢNG] [MẢNG]"
#: builtins.c:254
msgid ""
@@ -2396,22 +2407,22 @@ msgid ""
"been\n"
" defined."
msgstr ""
-"Xác định hoặc hiển thị bí danh.\n"
+"Äịnh nghÄ©a 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"
+" Không đưa ra đối số thì “alias†in danh sách các bí danh theo mấu\n"
+" “alias TÊN=GIÃ-TRỊ†trên đầu ra 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"
+" Có đối số thì một bí danh được định nghĩa cho mỗi TÊN theo giá trị\n"
+" Ä‘Æ°a ra. Khoảng trắng ở đâu trong GIÃ-TRỊ làm kiểm tra thay thế bí\n"
+" danh cho từ kế tiếp, khi phân giải bí danh.\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"
+" Tùy chá»n:\n"
+" -p\tin tất cả các bí danh được định nghĩa theo định dạng\n"
+" \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."
+" Trạng thái thoát:\n"
+" alias trả lại thành công trừ khi TÊN đã cho không phải là\n"
+" một bí danh đã được định nghĩa"
#: builtins.c:276
msgid ""
@@ -2422,12 +2433,12 @@ msgid ""
" \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"
+"Gỡ bá» TÊN khá»i danh sách các bí danh.\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"
+" Tùy chá»n:\n"
+" -a\tbỠtất cả các 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."
+" Trả lại thành công trừ khi TÊN không phải là một bí danh."
#: builtins.c:289
msgid ""
@@ -2463,46 +2474,48 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\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:326
+"Äặt các tổ hợp phím và biến Readline.\n"
+"\n"
+" Gắn tổ hợp phím với một chức năng hay vĩ lệnh Readline, hoặc\n"
+" đặt biến Readline. Cú pháp đối số không tùy chá»n giống nhÆ° trong\n"
+" ~/.inputrc, nhưng phải được gửi dưới dạng đối số đơn. Ví\n"
+" dụ: bind “\"\\C-x\\C-r\": re-read-init-fileâ€.\n"
+"\n"
+" Tùy chá»n:\n"
+" -m SÆ -Äá»’-PHÃM dùng sÆ¡_đồ_phím làm sÆ¡ đồ phím khi lệnh này\n"
+" chạy. Giá trị hợp lệ là emacs, emacs-standard,\n"
+" emacs-meta, emacs-ctlx, vi, vi-move, vi-command\n"
+" và vi-insert.\n"
+" -l Liệt kê tên các hàm\n"
+" -P Liệt kê tên hàm và tổ hợp phím\n"
+" -p Liệt kê tên hàm và tổ hợp phím theo dạng dùng\n"
+" lại làm đầu vào được\n"
+" -S Liệt kê chuá»—i phím mà gá»i vÄ© lệnh và các giá-trị "
+"của chúng\n"
+" -s Liệt kê chuá»—i phím mà gá»i vÄ© lệnh và các giá-trị "
+"của chúng\n"
+" theo định dạng có thể dùng làm đầu vào\n"
+" -V Liệt kê các biến và giá trị của chúng\n"
+" -v Liệt kê các biến và giá trị của chúng\n"
+" theo định dạng có thể tái sử dụng làm đầu vào.\n"
+" -q TÊN-HÀM Há»i phím nào gá»i hàm này\n"
+" -u TÊN-HÀM Gỡ bỠtất cả phím tắt gắn với hàm này\n"
+" -r DÃY-PHÃM Gỡ bá» tổ hợp phím này\n"
+" -f TẬP-TIN Äá»c tổ hợp phím từ tập tin này\n"
+" -x DÃY-PHÃM:LỆNH Chạy LỆNH khi nhập DÃY-PHÃM\n"
+" -X\t\t Liệt kê dãy phím vá»›i tùy-chá»n -x và các lệnh kết hợp\n"
+" theo dạng có thể dùng làm đầu vào.\n"
+"\n"
+" Trạng thái thoát:\n"
+" lệnh bind trả vá»i 0 trừ khi Ä‘Æ°a ra tùy chá»n không nhận ra hay gặp lá»—i."
+
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2512,15 +2525,15 @@ msgid ""
" 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"
+"Thoát khá»i vòng lặp for, while hoặc until.\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"
+" Thoát khá»i vòng lặp for, while hoặc until. Nếu xác định N thì\n"
+" thoát N vòng lặp.\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."
+" Trạng thái thoát:\n"
+" Trạng thái thoát là 0 trừ khi N nhỠhơn 1."
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2530,16 +2543,15 @@ msgid ""
" 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"
+"Tiếp tục lại chạy vòng lặp for, while hoặc until.\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"
+" Tiếp tục lại chạy vòng lặp for, while hoặc until. Nếu xác định N\n"
+" thì tiếp tục vòng lặp 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."
+" Trạng thái thoát:\n"
+" Trạng thái thoát là 0 trừ khi N nhỠhơn 1."
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2552,20 +2564,17 @@ msgid ""
" 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"
+"Chạy lệnh dá»±ng sẵn hệ vá».\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"
+" Chạy SHELL-BUILTIN vá»›i Äá»I-Sá» mà không thá»±c hiện tìm lệnh. Hữu ích\n"
+" khi bạn muốn cài đặt lại lệnh hệ vá» dá»±ng sẵn dạng hàm hệ vá», nhÆ°ng\n"
+" cần chạy lệnh dựng sẵn trong hàm đó.\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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái thoát của SHELL-BUILTIN, hoặc sai nếu\n"
+" SHELL-BUILTIN không phải là má»™t lệnh dá»±ng sẵn hệ vá»."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2580,21 +2589,19 @@ msgid ""
" 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"
+"Trả vá» ngữ cảnh của lệnh gá»i hàm 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"
+" Không có BTHỨC thì trả lại \"$line $filename\". Có BTHỨC thì trả\n"
+" lại \"$line $subroutine $filename\"; thông tin bổ sung này có thể\n"
+" được dùng để cung cấp stack trace.\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"
+" Giá trị của BTHỨC thì ngụ ý bao nhiêu lần gá»i cần lùi lại đằng\n"
+" trÆ°á»›c lệnh gá»i hiện tại; khung gá»i đầ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ệ."
+" Trạng thái thoát:\n"
+" Trả lại 0 trừ khi hệ vá» Ä‘ang chạy hàm hệ vá», BTHỨC cÅ©ng hợp lệ."
-#: builtins.c:383
-#, fuzzy
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2617,44 +2624,61 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
"when\n"
" -P is used; 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:414
+"Äổi thÆ° mục làm việc của hệ vá».\n"
+" \n"
+" Chuyển đổi thÆ° mục hiện thá»i sang THƯ-MỤC. ThÆ° mục mặc định là giá\n"
+" trị của biến HOME.\n"
+" \n"
+" Biến CDPATH xác định Ä‘Æ°á»ng dẫn tìm kiếm cho thÆ° mục chứa\n"
+" THƯ-MỤC. Tên thư mục trong CDPATH được phân cách bằng dấu hai chấm\n"
+" (:). Tên thư mục trống tương đương với thư mục hiện tại. Nếu\n"
+" THƯ-MỤC bắt đầu với dấu gạch chéo (/) thì không dùng CDPATH.\n"
+" \n"
+" Nếu không tìm thấy thư mục, và biến “cdable_vars†được đặt,\n"
+" thì lệnh sẽ coi là một tên biến. Nếu biến đó có giá trị,\n"
+" thì giá trị này được dùng cho THƯ-MỤC.\n"
+" \n"
+" Tùy chá»n:\n"
+" -L buá»™c theo liên kết má»m: phân giải liên kết má»m\n"
+" \tTH.MỤC sau khi xá»­ lý “..â€\n"
+" -P dùng cấu trúc thÆ° mục vật lý mà không theo liên kết má»m:\n"
+" \tphân giải liên kết má»m TH.MỤC sau khi xá»­ lý “..â€\n"
+" -e nếu có tùy chá»n -P và không thể xác định thÆ° mục làm việc\n"
+" \thiện tại thì thoát với trạng thái khác không\n"
+" -@ trên các hệ thống mà hỗ trợ nó, hiện diện một tập tin với các "
+"thuộc tính mở rộng\n"
+" như là một thư mục chứa các thuộc tính tập tin\n"
+" \n"
+" Mặc định là theo liên kết má»m, nhÆ° có mặt tùy chá»n “-Lâ€.\n"
+" “..†được xá»­ lý bằng cách gỡ bá» phần trÆ°á»›c của Ä‘Æ°á»ng dẫn\n"
+" cho đến dấu gạch chéo hay điểm bắt đầu của TH.MỤC.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả vỠ0 nếu thay đổi thư mục, và nếu $PWD được đặt thành công khi\n"
+" -P được sử dụng; không thì khác không."
+
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2669,20 +2693,19 @@ msgid ""
" 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."
+"In tên thư mục hiện tại.\n"
+" \n"
+" Tùy chá»n:\n"
+" -L\tin $PWD nếu nó chứa tên của thư mục hiện tại\n"
+" -P\tin thÆ° mục vật lý, không liên kết má»m\n"
+" \n"
+" Mặc định “pwd†chạy nhÆ° có mặt “-Lâ€.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả vá» 0 trừ khi Ä‘Æ°a ra tùy chá»n sai hoặc không Ä‘á»c được thÆ° mục hiện "
+"tại."
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2692,25 +2715,25 @@ msgid ""
" 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."
+" \n"
+" Không có tác dụng gì: câu lệnh không làm gì cả.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Lúc nào cũng thành công."
-#: builtins.c:442
+#: builtins.c:450
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."
+"Trả lại kết quả thành công.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Lúc nào cũng thành công."
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2718,11 +2741,11 @@ msgid ""
" 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."
+" \n"
+" Trạng thái thoát:\n"
+" Lúc nào cũng không thành công."
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2740,24 +2763,23 @@ msgid ""
" 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"
+"Thực thi một lệnh đơn giản, hoặc hiển thị thông tin vỠ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"
+" Chạy LỆNH vá»›i các Äá»I-Sá» mà không thá»±c hiện tra cứu hàm hệ vá»,\n"
+" hoặc hiển thị thông tin vá» LỆNH. Có thể được dùng để gá»i lệnh trên\n"
+" đĩa khi đã có hàm 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"
+" Tùy chá»n:\n"
+" -p\tdùng giá trị mặc định cho ÄƯỜNG_DẪN\n"
+" \tmà chắc chắn sẽ tìm má»i tiện ích chuẩn\n"
+" -v\tin mô tả vá» LỆNH mà tÆ°Æ¡ng tá»± nhÆ° lệnh dá»±ng sẵn “typeâ€\n"
+" -V\tin mô tả chi tiết hơn của mỗi 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái thoát của LỆNH, hoặc thất bại nếu không tìm\n"
+" thấy LỆNH."
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2777,6 +2799,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2792,52 +2815,55 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment 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:517
+"Äặt giá trị và thuá»™c tính biến.\n"
+" \n"
+" Khai báo biến và gán cho thuộc tính cho nó. Nếu không đưa TÊN thì\n"
+" hiển thị thuá»™c tính và giá trị của má»i biến.\n"
+" \n"
+" Tùy chá»n:\n"
+" -f\thạn chế hành động hoặc hiển thị chỉ tên hàm và định nghĩa\n"
+" -F\thạn chế hiển thị chỉ tên hàm mà thôi\n"
+" \t(và số thứ tự dòng và tập tin nguồn khi gỡ lỗi)\n"
+" -g\ttạo biến toàn cục khi sá»­ dụng trong hàm hệ vá»; nếu không\n"
+" \tthì bị bỠqua\n"
+" -p\thiển thị thuộc tính và giá trị của mỗi TÊN\n"
+" \n"
+" Tùy chá»n dùng để đặt thuá»™c tính:\n"
+" -a\ttạo mảng chỉ số tên TÊN (nếu hỗ trợ)\n"
+" -A\ttạo mảng kết hợp tên TÊN (nếu hỗ trợ)\n"
+" -i\tđặt thuộc tính “integer†(số nguyên) cho TÊN\n"
+" -l\tchuyển đổi TÊN sang chữ thÆ°á»ng khi gán\n"
+" -n\tlàm một TÊN tham chiếu đến biến có tên là giá trị của nó\n"
+" -r\tlàm cho TÊN chỉ Ä‘á»c\n"
+" -t\tđặt thuộc tính “trace†cho TÊN\n"
+" -u\tchuyển đổi TÊN sang chữ hoa khi gán\n"
+" -x\txuất khẩu TÊN\n"
+" \n"
+" Dùng “+†thay cho “-†để tắt thuộc tính đưa ra.\n"
+" \n"
+" Biến có thuá»™c tính số nguyên thì định giá theo số há»c (xem lệnh\n"
+" “letâ€. khi biến được gán.\n"
+" \n"
+" Khi dùng trong hàm, “declare†đặt TÊN là cục bộ, như khi dùng lệnh\n"
+" “local†(cục bá»™). Tùy chá»n -g ngăn hành vi này.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi Ä‘Æ°a ra tùy chá»n sai hoặc gặp lá»—i."
+
+#: builtins.c:527
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"
+"Äặt giá trị và thuá»™c tính của biến.\n"
"\n"
-"\tQuá cũ. Xem « help declare »."
+" Lệnh này đã lạc hậu. Xem “help declareâ€."
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2848,27 +2874,28 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, 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."
+"Äịnh nghÄ©a biến cục bá»™.\n"
+" \n"
+" Tạo biến cục bá»™ tên TÊN và gán GIÃ-TRỊ cho nó. TÙY_CHỌN có thể là\n"
+" bất cứ tùy chá»n nào “declare†chấp nhận.\n"
+" \n"
+" Biến cục bộ chỉ dùng được bên trong hàm, chỉ truy cập được từ hàm\n"
+" mà biến được định nghĩa và các hàm con.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i,\n"
+" hoặc nếu hệ vỠkhông chạy hàm."
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2880,6 +2907,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2894,34 +2922,34 @@ msgid ""
" 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:576
+"Ghi đối số vào đầu ra tiêu chuẩn.\n"
+" \n"
+" Hiển thị các Äá»I-Sá» ra đầu ra tiêu chuẩn, kèm ký tá»± xuống hàng ở cuối.\n"
+" \n"
+" Tùy chá»n:\n"
+" -n\tđừng thêm ký tự xuống hàng\n"
+" -e\tbật diá»…n dịch ký tá»± thoát theo sau ký tá»± “\\â€\n"
+" -E\tchặn diễn dịch ký tự thoát\n"
+" \n"
+" “echo†hiểu những ký tự thoát sau:\n"
+" \\a\ttiếng chuông\n"
+" \\b\txoá lùi\n"
+" \\c\tchặn kết xuất tiếp\n"
+" \\e\tký tự thoát\n"
+" \\E\tký tự thoát\n"
+" \\f\tnạp giấy\n"
+" \\n\tdòng mới\n"
+" \\r\txuống dòng\n"
+" \\t\ttab đứng\n"
+" \\v\ttab ngang\n"
+" \\\\\tgạch ngược\n"
+" \\0nnn\tký tự có mã ASCII NNN (1-3 chữ số bát phân)\n"
+" \\xHH\tký tự 8-bit có giá trị HH (1-2 chữ số thập lục phân)\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không gặp lỗi khi ghi."
+
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2933,17 +2961,17 @@ msgid ""
" 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"
+"Ghi đối số vào đầu ra 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"
+" Hiển thị Äá»I-Sá» trên đầu ra chuẩn, kèm ký tá»± xuống hàng ở cuối.\n"
"\n"
-"\tTùy chá»n:\n"
-"\t\t-n\tđừng phụ thêm một dòng mới\n"
+" Tùy chá»n:\n"
+" -n\tđừng thêm ký tự xuống hàng\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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không gặp lỗi ghi."
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2969,33 +2997,31 @@ msgid ""
" 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"
+"Bật và tắt lệnh hệ vỠdựng sẵn.\n"
+"\n"
+" Bật và tắt các lệnh hệ vỠdựng sẵn. Chức năng tắt cho phép bạn\n"
+" chạy một lệnh trên đĩa cùng tên với một lệnh hệ vỠdựng sẵn mà\n"
+" khô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"
+" Tùy chá»n:\n"
+" -a in danh sách các lệnh dựng sẵn kèm trạng thái bật/tắt\n"
+" -n tắt TÊN hoặc hiển thị danh sách lệnh bị tắt\n"
+" -p in danh sách lệnh dựng sẵn theo định dạng dùng lại được\n"
+" -s chỉ in tên các lệnh 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"
+" Tùy chá»n Ä‘iá»u khiển chức năng nạp Ä‘á»™ng:\n"
+" -f nạp lệnh dựng sẵn TÊN từ TẬP-TIN\n"
+" -d bá» má»™t dá»±ng sẵn được nạp bằng “-fâ€\n"
"\n"
-"\tKhông có tùy chá»n thì má»—i TÊN được bật lại.\n"
+" Không có tùy chá»n thì coi nhÆ° bật TÊN.\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"
+" Äể sá»­ dụng lệnh “test†trên Ä‘Ä©a (nếu tìm thấy trong $PATH) thay\n"
+" cho phiên bản hệ vá» dá»±ng sẵn, gõ “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."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi TÊN không phải lệnh dựng sẵn hoặc gặp lỗi."
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -3006,17 +3032,15 @@ msgid ""
" 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"
+"Dùng các đối số để chạy lệnh hệ vá».\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"
+" Gá»™p các Äá»I-Sá» thành má»™t chuá»—i Ä‘Æ¡n, dùng kết quả làm đầu vào cho\n"
+" hệ vỠvà chạy lệnh đó.\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ị."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái thoát của câu lệnh hay thành công nếu lệnh rỗng."
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -3056,53 +3080,43 @@ msgid ""
" 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:673
+"Phân tích đối số tùy chá»n.\n"
+"\n"
+" Getopts được hệ vá» dùng để phân tích tham số thành tuỳ chá»n.\n"
+"\n"
+" CHUá»–I-TUỲ-CHỌN chứa những chữ tùy chá»n cần nhận ra; má»™t chữ có dấu hai\n"
+" chấm theo sau thì tùy chá»n cần đối số, cách tuỳ chá»n bằng khoảng\n"
+" trắng.\n"
+"\n"
+" Má»—i lần gá»i, getopts sẽ đặt tùy chá»n kế tiếp vào biến hệ vá» $TÊN,\n"
+" tạo biến mới nếu tên đó chưa tồn tại, và đặt chỉ số của đối số kế\n"
+" tiếp cần xử lý vào biến hệ vỠOPTIND. OPTIND được khởi động bằng 1\n"
+" má»—i lần hệ vá» hay má»™t văn lệnh hệ vỠđược gá»i. Khi tùy chá»n cần\n"
+" đối số, getopts đặt đối số đó vào biến hệ vỠOPTARG.\n"
+"\n"
+" getopts thông báo lỗi bằng một trong hai cách. Nếu ký tự đầu tiên\n"
+" của CHUỖI-TUỲ-CHỌN là dấu hai chấm, getopts thông báo lỗi im\n"
+" lặng. Chế Ä‘á»™ này không in ra thông báo nào. Nếu gặp tùy chá»n sai\n"
+" thì getopts lÆ°u mã ký tá»± tuỳ chá»n trong biến OPTARG. Không tìm\n"
+" thấy đối số cần thiết thì getopts lưu dấu hai chấm trong biến $TÊN\n"
+" và đặt lÆ°u mã ký tá»± tuỳ chá»n trong OPTARG. Nếu getopts không trong\n"
+" chế Ä‘á»™ im lặng và gặp tùy chá»n sai, getopts lÆ°u dấu há»i “?†vào\n"
+" biến $TÊN và xoá OPTARG. Không tìm thấy tùy chá»n cần thiết thì “?â€\n"
+" được lưu vào $TÊN, OPTARG bị xlá, và in ra một thông điệp chẩn\n"
+" đoán.\n"
+"\n"
+" Nếu biến hệ vỠOPTERR có giá trị 0, getopts sẽ không in thông báo\n"
+" kể cả khi ký tự đầu tiên của CHUỖI-TUỲ-CHỌN không phải dấu hai\n"
+" chấm. OPTERR có giá trị mặc định là 1.\n"
+"\n"
+" Getopts bình thÆ°á»ng phân tích tham số vị trí ($0 - $9). Tuy nhiên,\n"
+" các đối số bổ sung cũng được phân tích.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu tìm thấy má»™t tùy chá»n; không thành công nếu\n"
+" gặp kết thúc các tùy chá»n, hoặc nếu gặp lá»—i."
+
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3124,39 +3138,36 @@ msgid ""
" 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"
+"Thay thế hệ vỠ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"
+" Thực thi LỆNH, thay thế hệ vỠnày bằng chương trình được chạy.\n"
+" Äá»I-Sá» là đối số của LỆNH. Không xác định LỆNH thì bất cứ chuyển\n"
+" hướng nào sẽ xảy ra trong hệ vỠđ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"
+" Tùy chá»n:\n"
+" -a TÊN\ttruyá»n TÊN cho LỆNH dạng đối số thứ không\n"
+" -c\tthá»±c thi LỆNH vá»›i má»™t môi trÆ°á»ng rá»—ng\n"
+" -l\tđặt một dấu gạch vào đối số thứ không của 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ếu LỆNH không thể thực thi, hệ vỠkhông tương tác sẽ thoát, trừ\n"
+" khi đặt tùy chá»n hệ vỠ“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."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi không tìm được LỆNH hoặc gặp lỗi chuyển hướng."
-#: builtins.c:694
+#: builtins.c:706
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"
+"Thoát hệ vá».\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."
+" Thoát khá»i hệ vá» vá»›i trạng thái N. Không xác định N thì trạng thái\n"
+" thoát là trạng thái của lệnh cuối cùng được chạy."
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3164,12 +3175,12 @@ msgid ""
"executed\n"
" in a login shell."
msgstr ""
-"Thoát khá»i má»™t trình bao đăng nhập.\n"
+"Thoát hệ vỠđă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."
+" Thoát khá»i hệ vỠđăng nhập vá»›i trạng thái N. Trả vá» lá»—i nếu không\n"
+" phải hệ vỠđăng nhập."
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3198,33 +3209,30 @@ msgid ""
" 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:743
+"Hiển thị hoặc thực thi lệnh từ lịch sử.\n"
+"\n"
+" fc được dùng để liệt kê, chỉnh sửa và thực thi lại lệnh từ danh\n"
+" sách lịch sá»­. ÄẦU và CUá»I có thể là số xác định phạm vi, hoặc ÄẦU\n"
+" có thể là chuỗi chứa phần đầu lệnh chạy gần đây nhất.\n"
+"\n"
+" Tùy chá»n:\n"
+" -e ENAME\tchá»n trình soạn thảo nào cần dùng.\n"
+" \tMặc định là FCEDIT, rồi EDITOR, rồi vi\n"
+" -l\tliệt kê thay vì chỉnh sửa\n"
+" -n\tliệt kê không in số thứ tự dòng\n"
+" -r\tđảo ngược thứ tự các dòng (mới nhất trước)\n"
+"\n"
+" Äịnh dạng “fc -s [mẫu=lần_lập_lại ...] [lệnh]†được dùng để chạy\n"
+" lại lệnh sau khi thay thế CŨ=MỚI.\n"
+"\n"
+" Một bí danh hữu ích là r='.c -s' để có thể gõ “r cc†để chạy lệnh\n"
+" cuối cùng bắt đầu bằng “cc†và gõ “r†để chạy lại lệnh cuối.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại thành công hay trạng thái của câu lệnh được thực thi; gặp\n"
+" lỗi thì khác số không."
+
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3235,18 +3243,17 @@ msgid ""
" 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âng công việc ná»n 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âng lên trÆ°á»›c công việc được xác định bởi đặc tả công việc ÄTCV\n"
+" làm công việc hiện thá»i. Không có ÄTCV thì dùng công việc hiện\n"
+" thá»i của hệ vá».\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."
+" Trạng thái thoát:\n"
+" Trạng thái của câu lệnh được nâng lên trước; hoặc thất bại nếu xảy\n"
+" ra lá»—i."
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3259,18 +3266,17 @@ msgid ""
" 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"
+"Chuyển công việc xuống chạy ná»n.\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"
+" Chuyển công việc xác định theo đặc tả công việc ÄTCV sang chạy\n"
+" ná»n, nhÆ° thể lệnh được chạy vá»›i “&â€. Nếu không có ÄTCV, dùng công\n"
+" việc hiện thá»i của hệ vá».\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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu chức năng Ä‘iá»u khiển công việc được bật và\n"
+" không gặp lỗi."
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3281,7 +3287,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3293,28 +3299,28 @@ msgid ""
" 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"
+"Nhớ hoặc hiển thị vị trí 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"
+" Xác định và ghi nhá»› tên Ä‘Æ°á»ng dẫn đầy đủ của má»—i TÊN câu lệnh.\n"
+" Nếu không đưa ra đối số, hiển thị thông tin vỠcác câu lệnh được\n"
+" 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"
+" Tùy chá»n:\n"
+" -d\t\tquên vị trí đã nhớ của TÊN\n"
+" -l\t\thiển thị theo định dạng dùng lại làm đầu vào được\n"
+" -p\tTÊN_ÄƯỜNG_DẪN\tdùng TÊN_ÄƯỜNG_DẪN là tên Ä‘Æ°á»ng dẫn đầy đủ của TÊN\n"
+" -r\t\tquên má»i vị trí đã nhá»›\n"
+" -t\t\tin vị trí đã nhớ của TÊN, in tên trước vị\n"
+" trí nếu TÊN tÆ°Æ¡ng ứng vá»›i nhiá»u 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"
+" Äối số:\n"
+" TÊN\t\tmỗi TÊN được tìm trong $PATH và được thêm vào\n"
+" \t\tdanh 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."
+" Trạng thái thoát:\n"
+" Trả 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:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3335,27 +3341,25 @@ msgid ""
" 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"
+"Hiển thị thông tin vỠ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"
+" Hiển thị bản tóm tắt ngắn vỠcác câu lệnh dựng sẵn. Nếu cũng ghi\n"
+" rõ MẪU thì in ra trợ giúp chi tiết vỠtất cả các câu lệnh tương\n"
+" ứng với mẫu đó ; khô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"
+" Tùy chá»n:\n"
+" -d\txuất mô tả ngắn vá» má»—i chủ Ä‘á»\n"
+" -m\thiệnn cách dùng theo định dạng trang hướng dẫn (man)\n"
+" -s\txuất chỉ một bản tóm tắt cách dìng cho mỗi\n"
+" \tchủ đỠ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"
+" Äối số:\n"
+" MẪU\tmẫu các định 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."
+" Trạng thái thoát:\n"
+" Trả 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:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3388,41 +3392,40 @@ msgid ""
" 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"
+"Hiển thị hoặc thao tác danh sách lịch 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"
+" Hiển thị danh sách lịch sử kèm số dòng, “*†ở đầu dòng cho các mục\n"
+" nhập bị sá»­a đổi. Äối số N thì liệt kê chỉ N mục tin 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"
+" Tùy chá»n:\n"
+" -c\txoá sạch danh sách lịch sá»­ bằng cách xoá má»i mục tin\n"
+" -d offset\txoá mục tin lịch sử ở vị trí tương đối 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"
+" -a\tnối đuôi lịch sử từ phiên làm việc này vào tập tin\n"
+" \tlịch sử.\n"
+" -n\tÄ‘á»c má»i dòng lịch sá»­ chÆ°a Ä‘á»c từ tập tin lịch sá»­\n"
+" -r\tÄ‘á»c tập tin lịch sá»­ và nối thêm vào danh sách lịch sá»­\n"
+" -w\tghi lịch sá»­ hiện thá»i vào tập tin lịch sá»­,\n"
+" \tvào nối đuôi vào danh sách lịch 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"
+" -p\tkhai triển lịch sá»­ vá»›i má»—i Äá»I-Sá» và hiển thị kết quả\n"
+" \tmà không lưu vào danh sách lịch sử\n"
+" -s\tnối Ä‘uôi Äá»I-Sá» vào danh sách lịch sá»­ làm má»™t mục Ä‘Æ¡n\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ếu có TẬP-TIN thì nó được dùng làm tập tin lịch sử. Ngược\n"
+" lại, nếu $HISTFILE có giá trị thì dùng; nếu $HISTFILE không có giá\n"
+" 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ếu biến $HISTTIMEFORMAT đã được đặt và khác rỗng, giá trị đó được\n"
+" dùng làm chuá»—i định dạng cho strftime(3) để in nhãn thá»i gian\n"
+" tương ứng với mỗi mục tin lịch sử được hiển thị. Ngược lại không\n"
+" in 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không gặp tùy chá»n sai hay gặp lá»—i."
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3431,7 +3434,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3447,26 +3450,25 @@ msgid ""
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"
+" Liệt kê các công việc Ä‘ang chạy. Äặc tả công việc ÄTCV hạn chế chỉ\n"
+" hiện công việc đó thôi. Không có tùy chá»n thì hiển thị trạng thái\n"
+" củ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"
+" Tùy chá»n:\n"
+" -l\tliệt kê mã số tiến trình ngoài thông tin bình thÆ°á»ng\n"
+" -n\tliệt kê chỉ những tiến trình đã thay đổi trạng thái\n"
+" \tkể từ lần thông báo cuối cùng\n"
+" -s\tchỉ hiện những công việc đang 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ếu có “-x†thì chạy LỆNH sau khi thay thế tất cả đặc tả công việc\n"
+" trên đối số bằng mã tiến trình của trình dẫn đầu nhóm tiến trình\n"
+" 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không gặp tùy chá»n sai hay gặp lá»—i.\n"
+" ÄÆ°a ra “-x†thì trả lại trạng thái thoát của LỆNH."
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3482,23 +3484,22 @@ msgid ""
" 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"
+"Bá» công việc khá»i hệ vá» Ä‘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"
+" Gỡ bá» công việc xác định bởi đặc tả công việc ÄTCV. Không có đối\n"
+" số thì dùng công việc hiện thá»i của hệ vá».\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"
+" Tùy chá»n:\n"
+" -a\tbá» má»i công việc nếu không có ÄTCV\n"
+" -h\tđánh dấu ÄTCV để không gá»­i tín hiệu SIGHUP\n"
+" \tcho công việc khi hệ vỠnhận được SIGHUP\n"
+" -r\tchỉ bỠ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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay\n"
+" ÄTCV sai."
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3519,29 +3520,26 @@ msgid ""
" 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:926
-#, fuzzy
+"Gửi tín hiệu cho công việc.\n"
+"\n"
+" Gửi tín hiệu xác định bởi SIGSPEC hoặc SIGNUM cho những tiến trình\n"
+" xác định bởi PID hoặc JOBSPEC. Nếu không xác định cả SIGSPEC và\n"
+" SIGNUM thì ngầm định SIGTERM.\n"
+"\n"
+" Tùy chá»n:\n"
+" -s TTH\tTTH là tên tín hiệu\n"
+" -n STH\tSTH là mã số tín hiệu\n"
+" -l\tliệt kê tên tín hiệu; đối số sau “-l†nếu có được coi\n"
+" \tlà mã số tín hiệu cần hiện tên\n"
+"\n"
+" Kill là lệnh hệ vỠdựng sẵn vì hai lý do: nó cho phép dùng mã số\n"
+" công việc thay cho mã số tiến trình và cho phép giết tiến trình\n"
+" đạt giới hạn số các tiến trình được phép tạo.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i."
+
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -3587,46 +3585,45 @@ msgid ""
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:971
+" Äịnh giá má»—i Äá»I-Sá» dạng biểu thức số há»c. Äịnh giá theo số nguyên\n"
+" có giới hạn, không kiểm tra tràn số, mặc dù có bẫy chia cho không\n"
+" và bật cỠlỗi. Danh sách toán tử bên dưới được nhóm theo nhóm độ\n"
+" ưu tiên ngang hàng. Danh sách theo độ ưu tiên giảm dần.\n"
+"\n"
+" \tid++, id--\ttiá»n tiá»n/giảm\n"
+" \t++id, --id\thậu gia/giảm\n"
+" \t-, +\t\ttrừ, cộng (dấu)\n"
+" \t!, ~\t\tphủ định lôgíc và trên bit\n"
+" \t**\t\tsố mũ\n"
+" \t*, /, %\t\tnhân, chia, số dư\n"
+" \t+, -\t\tcộng, trừ\n"
+" \t<<, >>\t\tdịch bit trái/phải\n"
+" \t<=, >=, <, >\tso sánh\n"
+" \t==, !=\t\tbằng, không bằng\n"
+" \t&\t\tphép AND trên bit\n"
+" \t^\t\tphép XOR trên bit\n"
+" \t|\t\tphép OR trên bit\n"
+" \t&&\t\tphép AND lôgíc\n"
+" \t||\t\tphép OR lôgíc\n"
+" \tBTHỨC ? BTHỨC : BTHỨC\n"
+" \t\t\ttoán từ Ä‘iá»u kiện\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tphép gán\n"
+"\n"
+" Biến hệ vỠcó thể dùng làm toán hạng. Tên biến được thay thế bằng\n"
+" giá trị biến (chuyển thành số nguyên) trong biểu thức. Biến không\n"
+" cần có thuộc tính số nguyên để dùng làm biểu thức.\n"
+"\n"
+" Các toán tử được định giá theo thứ tự ưu tiên. Các biểu thức con\n"
+" nằm trong dấu ngoặc được định giá trÆ°á»›c tiên, và có quyá»n cao hÆ¡n\n"
+" các quy tắc đi trước bên trên.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Nếu Äá»I-Sá» cuối cùng được định giá thành 0 thì trả vá» 1; không thì\n"
+" trả vỠ0."
+
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3661,62 +3658,63 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\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 (đáp "
-"ứng).\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ả lại 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-N số_ký_tá»±\ttrả lại chỉ sau khi Ä‘á»c chính xác số các ký tá»± này,\n"
-"\t\tnếu không gặp kết thúc tập tin (EOF) hay quá hạn Ä‘á»c, cÅ©ng bá» qua dấu "
-"tách nào\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\tNếu THỜI_HẠN là 0 thì việc Ä‘á»c trả lại thành công chỉ nếu\n"
-"\t\t\tdữ liệu nhập sẵn sàng trên bộ mô tả tập tin đưa ra.\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"
-"\thay quá hạn Ä‘á»c, hay Ä‘Æ°a ra bá»™ mô tả tập tin sai\n"
-"\tlàm đối số tới « -u »."
-
-#: builtins.c:1014
+"Äá»c má»™t dòng từ đầu nhập chuẩn và tách ra nhiá»u trÆ°á»ng.\n"
+"\n"
+" Äá»c má»™t dòng từ đầu nhập chuẩn, hoặc từ bá»™ mô tả tập tin FD nếu\n"
+" dùng tùy chá»n “-uâ€. Dòng được chia ra nhiá»u trÆ°á»ng, trÆ°á»ng đầu\n"
+" tiên được gán cho biến TÊN đầu tiên, từ thứ hai cho TÊN thứ hai,\n"
+" v.v., và từ còn lại nào được gán cho TÊN cuối cùng. Chỉ những ký\n"
+" tự trong $IFS được coi là ký tự phân cách.\n"
+"\n"
+" Không có TÊN thì dòng được Ä‘á»c sẽ lÆ°u vào biến REPLY.\n"
+"\n"
+" Tùy chá»n:\n"
+" -a MẢNG\tlÆ°u các trÆ°á»ng vào biến mảng chỉ số MẢNG theo thứ tá»±,\n"
+" \tbắt đầu từ không.\n"
+" -d DELIM\ttiếp tục đến khi Ä‘á»c ký tá»± đầu tiên của DELIM thay\n"
+" \t\tvì ký tự xuống dòng\n"
+" -e\t\tdùng Readline để lấy dòng trong hệ vỠtương tác\n"
+" -i CHUỖI\tdùng CHUỖI làm văn bản đầu tiên cho Readline\n"
+" -n nChữ\ttrả vá» sau khi Ä‘á»c số lượng ký tá»± này thay vì Ä‘á»c hết dòng\n"
+" \t\tnhưng nếu gặp chuỗi phân tách khi ít hơn Nchữ\n"
+" \t\tcác ký tá»± được Ä‘á»c trÆ°á»›c chuá»—i phân tách\n"
+" -N N\ttrả vá» chỉ sau khi Ä‘á»c chính xác số lượng ký tá»± này,\n"
+" \tnếu không gặp kết thúc tập tin (EOF) hay quá hạn Ä‘á»c,\n"
+" \tcũng bỠqua dấu tách nào\n"
+" -p NHẮC\txuất chuỗi NHẮC mà không có ký tự dòng mới theo sau,\n"
+" \ttrÆ°á»›c khi Ä‘á»c\n"
+" -r\tkhông cho phép gạch chéo ngược để thoát ký tự\n"
+" -s\tkhông hiện lại dữ liệu nhập đến từ thiết bị cuối\n"
+" -t\tTHỜI_GIAN_CHỜ\n"
+" \tthá»i gian chá» tối Ä‘a và trả vá»i không thành công nếu chÆ°a Ä‘á»c má»™t\n"
+" \tdòng dữ liệu nhập hoàn toàn trong số giây này. Giá trị\n"
+" \tcủa biến TMOUT là thá»i hạn mặc định. Thá»i hạn này có\n"
+" \tthể là má»™t phân số. Nếu THỜI_HẠN là 0 thì việc Ä‘á»c trả\n"
+" \tlại thành công chỉ nếu dữ liệu nhập sẵn sàng trên bộ\n"
+" \tmô tả tập tin đưa ra. Trạng thái thoát lớn hơn 128\n"
+" \tnếu vượt quá thá»i hạn này.\n"
+" -u FD\tÄ‘á»c từ bá»™ mô tả tập tin FD thay cho đầu vào tiêu chuẩn\n"
+"\n"
+" Trạng thái thoát:\n"
+" Mã trả lại là số không, nếu không gặp kết thúc tập tin, hay chỠquá\n"
+" lâu, hoặc Ä‘Æ°a ra bá»™ mô tả tập tin sai làm đối số cho “-uâ€."
+
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3727,19 +3725,17 @@ msgid ""
" 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"
+"Trở vá» từ hàm hệ vá».\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"
+" Thoát hàm hệ vỠhoặc văn lệnh được “source†với mã trả vỠxác định\n"
+" bởi N. Nếu không có N, trạng thái thoát là của lệnh thực hiện cuối\n"
+" cùng trong hàm/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."
+" Trạng thái thoát:\n"
+" Trả lại N, hoặc bị lỗi nếu hệ vỠkhông đang chạy một hàm hay văn\n"
+" lệnh."
-#: builtins.c:1027
-#, fuzzy
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3805,7 +3801,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3823,89 +3819,94 @@ msgid ""
" 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:1112
+"Äặt hay huá»· giá trị của tùy chá»n hệ vá» và tham số vị trí.\n"
+" \n"
+" Sửa đổi giá trị của thuộc tính hệ vỠvà tham số vị trí,\n"
+" hoặc hiển thị tên và giá trị của biến hệ vá».\n"
+" \n"
+" Tùy chá»n:\n"
+" -a Äánh dấu các biến được tạo hay sá»­a đổi để xuất ra\n"
+" -b Thông báo ngay vỠcông việc bị chấm dứt\n"
+" -e Thoát ngay nếu câu lệnh thoát với trạng thái khác số không\n"
+" -f Tắt chức năng tạo tên tập tin (glob)\n"
+" -h Nhớ vị trí của mỗi câu lệnh khi nó được dò tìm\n"
+" -k Má»i đối số gán được đặt vào môi trÆ°á»ng cho má»™t câu lệnh,\n"
+" không phải chỉ những đối số nằm trước tên câu lệnh\n"
+" -m Bật chức năng Ä‘iá»u khiển công việc\n"
+" -n Äá»c câu lệnh mà không thá»±c thi\n"
+" -o TÊN_TÙY_CHỌN\n"
+" Äặt biến tÆ°Æ¡ng ứng vá»›i TÊN_TÙY_CHỌN:\n"
+" allexport giống -a\n"
+" braceexpand giống -B\n"
+" emacs dùng giao diện soạn thảo kiểu emacs\n"
+" errexit giống -e\n"
+" errtrace giống -E\n"
+" functrace giống -T\n"
+" hashall giống -h\n"
+" histexpand giống -H\n"
+" history bật lịch sử câu lệnh\n"
+" ignoreeof hệ vá» không thoát khi Ä‘á»c EOF\n"
+" interactive-comments\n"
+" cho phép ghi chú trong lệnh tương tác\n"
+" keyword giống -k\n"
+" monitor giống -m\n"
+" noclobber giống -C\n"
+" noexec giống -n\n"
+" noglob giống -f\n"
+" nolog hiện thá»i chấp nhận nhÆ°ng bá» qua\n"
+" notify giống -b\n"
+" nounset giống -u\n"
+" onecmd giống -t\n"
+" physical giống -P\n"
+" pipefail giá trị trả lại của ống dẫn là\n"
+" trạng thái của câu lệnh cuối cùng\n"
+" có trạng thái khác không, hoặc số\n"
+" không nếu không có câu lệnh thoát\n"
+" với trạng thái khác không\n"
+" posix thay đổi những thao tác khác với\n"
+" Posix thành tuân theo Posix\n"
+" privileged giống -p\n"
+" verbose giống -v\n"
+" vi dùng giao diện soạn thảo kiểu vi\n"
+" xrace giống -x\n"
+" -p Bật khi nào mã số thật và mã số có kết quả\n"
+" không tương ứng với nhau.\n"
+" Tắt tính năng xử lý tập tin $ENV\n"
+" và nhập các hàm vào hệ vá».\n"
+" Việc tắt tùy chá»n này thì gây ra uid và gid có kết quả\n"
+" được đặt thành uid và gid thật.\n"
+" -t Thoát sau khi Ä‘á»c và thá»±c thi má»™t câu lệnh\n"
+" -u Xử lý biến chưa đặt là lỗi khi thay thế\n"
+" -v In ra má»—i dòng nhập vào hệ vá» khi nó được Ä‘á»c\n"
+" -x On ra mỗi câu lệnh và đối số tương ứng khi nó được thực thi\n"
+" -B hệ vỠsẽ mở rộng các dấu ngoặc móc\n"
+" -C Nếu đặt thì không cho phép ghi đè lên tập tin bình thÆ°á»ng\n"
+" đã tồn tại bằng cách chuyển hướng kết xuất\n"
+" -E Nếu đặt thì bẫy ERR được chức năng hệ vỠkế thừa\n"
+" -H Bật! bật chức năng thay thế kiểu. CỠnày được bật\n"
+" theo mặc định khi hệ vỠtương tác\n"
+" -P Äặt thì không theo liên kết má»m\n"
+" khi thực thi câu lệnh như cd mà chuyển đổi thư mục hiện tại\n"
+" -T Nếu đặt thì bẫy DEBUG (gỡ lỗi) được các hàm của hệ vỠkế "
+"thừa\n"
+" -- Gán bất cứ đối số còn lại nào cho những tham số thuộc vị "
+"trí.\n"
+" Nếu không còn thừa lại đối số nào, tham số vị trí\n"
+" ìm kiếm được đặt.\n"
+" - Gán bất cứ đối số còn lại nào cho những tham số thuộc vị "
+"trí.\n"
+" Hai tùy chá»n -x và -v Ä‘á»u bị tắt.\n"
+" \n"
+" Việc dùng + thay - làm tắt cá». Các cá» cÅ©ng có thể được dùng khi\n"
+" gá»i hệ vá». Giá trị các cá» hiện hành có thể tìm thấy trong biến\n"
+" $-. Các đối số còn lại là tham số thuộc vị trí, và được gán (theo\n"
+" thứ tá»±) cho $1, $2, .. $n. Không Ä‘Æ°a ra đối số thì in ra má»i biến\n"
+" shell.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ phi gặp tùy chá»n sai."
+
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3914,6 +3915,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3924,21 +3927,25 @@ msgid ""
" 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."
+"Xoá giá trị và thuá»™c tính biến và hàm hệ vá».\n"
+" \n"
+" Äối vá»›i má»—i TÊN, gỡ bá» biến hay hàm tÆ°Æ¡ng ứng.\n"
+" \n"
+" Tùy chá»n:\n"
+" -f\tÄ‘á»c TÊN dạng hàm hệ vá»\n"
+" -v\tÄ‘á»c TÊN dạng biến hệ vá»\n"
+" -n\tcoi TÊN như là tên tham chiếu và bỠđặt biến tự tham chiếu\n"
+" \n"
+" Không có tùy chá»n thì sẽ thá»­ xoá biến, và nếu không thành công,\n"
+" sau đó thử xoá hàm.\n"
+" \n"
+" Má»™t số biến không thể gỡ bá»; nên xem “readonlyâ€.\n"
+" \n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay TÊN chỉ-Ä‘á»c."
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3956,23 +3963,22 @@ msgid ""
" 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"
+"Äặt thuá»™c tính xuất khẩu cho biến hệ vá».\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"
+" Äánh dấu TÊN để tá»± Ä‘á»™ng xuất vào môi trÆ°á»ng của các lệnh được chạy\n"
+" sau đó. Có 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"
+" Tùy chá»n:\n"
+" -f\ttham chiếu đến hàm hệ vá»\n"
+" -n\tgỡ bá» thuá»™c tính xuất khẩu khá»i TÊN\n"
+" -p\thiển thị danh sách các biến và hàm đượ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"
+" Äối số “--†ngừng phân tích tuỳ chá»n cho các tham số còn lạ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 hay TÊN sai,"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n hay TÊN sai,"
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3984,31 +3990,34 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\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"
+"Äánh dấu biến hệ vá» là không thể thay đổi.\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"
+" Äánh dấu TÊN là chỉ Ä‘á»c; giá trị những biến này không được thay\n"
+" đổi trong các phép gán sau. Nếu có GIÃ-TRỊ thì gán GIÃ-TRỊ trÆ°á»›c\n"
+" 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"
+" Tùy chá»n:\n"
+" -a\ttham chiếu đến biến kiểu mảng chỉ số\n"
+" -A\ttham chiếu đến biến kiểu mảng kết hợp\n"
+" -f\ttham chiếu đến hàm hệ vá»\n"
+" -p\thiển thị danh sách biến và hàm chỉ Ä‘á»c, tùy thuá»™c vào\n"
+" có tùy chá»n -f hay không\n"
+" \n"
+" Äối số “--†ngừng phân tích tuỳ chá»n cho các tham số còn lại.\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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay TÊN sai."
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -4018,15 +4027,15 @@ msgid ""
" Exit Status:\n"
" Returns success unless N is negative or greater than $#."
msgstr ""
-"Dá»i tham số thuá»™c vị trí.\n"
+"Dịch vị trí đối số.\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"
+" Thay đổi tên của đối số vị trí $N+1,$N+2 ... thành $1,$2 ...\n"
+" N là 1 nếu không chỉ định.\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 $#."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi N âm hay lớn hơn $#."
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -4039,21 +4048,17 @@ msgid ""
" 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"
+"Thực thi lệnh từ tập tin trong hệ vỠhiện tại.\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"
+" Äá»c và thá»±c thi lệnh từ TẬP-TIN trong hệ vá» Ä‘ang chạy. $PATH được\n"
+" dùng để tìm thư mục chứa tập tin này. Nếu có đối số thì mỗi đối số\n"
+" trở thành tham số vị trí khi 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được thực thi trong\n"
+" TẬP-TIN; không thành công nếu không thể Ä‘á»c TẬP-TIN."
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -4066,20 +4071,19 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-"Ngưng chạy trình bao.\n"
+"NgÆ°ng chạy hệ vá».\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"
+" Ngưng chạy hệ vỠnày đến khi nhận tín hiệu SIGCONT. Nếu không ép\n"
+" buộc thì không thể ngưng chạy hệ vỠđă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"
+" Tùy chá»n:\n"
+" \t-f\tbuộc ngưng, thậm chí với hệ vỠđă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."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ khi chức năng Ä‘iá»u khiển công việc không\n"
+" được bật hoặc gặp lỗi."
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4144,6 +4148,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4160,85 +4166,83 @@ msgid ""
" 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"
+" Thoát với trạng thái 0 (đúng) hoặc 1 (sai), tuỳ kết quả định giá\n"
+" BTHỨC. Biểu thức có thể kiểu một ngôi hoặc hai ngôi. Biểu thức\n"
+" má»™t ngôi thÆ°á»ng dùng để kiểm tra trạng thái tập tin. Ngoài ra còn\n"
+" có toán tử chuỗi và so sánh số.\n"
+" \n"
+" Hành vi của lệnh test phụ thuá»™c vào số đối số. Äá»c sổ tay hÆ°á»›ng dẫn của\n"
+" bash để có mô tả đầy đủ.\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"
+" -a TẬP-TIN Äúng nếu tập tin tồn tại.\n"
+" -b TẬP-TIN Äúng nếu tập tin là biệt khối.\n"
+" -c TẬP-TIN Äúng nếu tập tin là đặc biệt ký tá»±.\n"
+" -d TẬP-TIN Äúng nếu tập tin là thÆ° mục.\n"
+" -e TẬP-TIN Äúng nếu tập tin tồn tại.\n"
+" -f TẬP-TIN Äúng nếu tập tin tồn tại và là tập tin thÆ°á»ng\n"
+" -g TẬP-TIN Äúng nếu tập tin là set-group-id.\n"
+" -h TẬP-TIN Äúng nếu tập tin là liên kết má»m.\n"
+" -L TẬP-TIN Äúng nếu tập tin là liên kết má»m.\n"
+" -k TẬP-TIN Äúng nếu tập tin có bit “stickyâ€.\n"
+" -p TẬP-TIN Äúng nếu tập tin là ống dẫn có tên.\n"
+" -r TẬP-TIN Äúng nếu tập tin Ä‘á»c được (bởi bạn).\n"
+" -s TẬP-TIN Äúng nếu tập tin tồn tại và khác rá»—ng.\n"
+" -S TẬP-TIN Äúng nếu tập tin là socket.\n"
+" -t FD Äúng nếu FD được mở trên thiết bị cuối.\n"
+" -u TẬP-TIN Äúng nếu tập tin là set-user-id.\n"
+" -w TẬP-TIN Äúng nếu tập tin ghi được (bởi bạn).\n"
+" -x TẬP-TIN Äúng nếu tập tin chạy được (bởi bạn).\n"
+" -O TẬP-TIN Äúng nếu tập tin thá»±c tế được bạn sở hữu.\n"
+" -G TẬP-TIN Äúng nếu tập tin thá»±c tế được nhóm của bạn sở hữu.\n"
+" -N TẬP-TIN Äúng nếu tập tin đã bị sá»­a đổi từ lần Ä‘á»c cuối.\n"
+" \n"
+" TẬP-TIN1 -nt TẬP-TIN2\n"
+" Äúng nếu tập tin 1 má»›i hÆ¡n tập tin 2 (dá»±a theo\n"
+" ngày sửa đổi)\n"
+" \n"
+" TẬP-TIN1 -ot TẬP-TIN2\n"
+" Äúng nếu tập tin 1 cÅ© hÆ¡n tập tin 2.\n"
+" \n"
+" TẬP-TIN1 -ef TẬP-TIN2\n"
+" Äúng nếu tập tin 1 là liên kết cứng tá»›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"
+" -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á»–I\n"
+" CHUá»–I Äúng nếu chuá»—i khác 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"
+" CHUá»–I1 = CHUá»–I2 Äúng nếu hai chuá»—i trùng nhau.\n"
+" CHUá»–I1 != CHUá»–I2 Äúng nếu hai chuá»—i khác nhau.\n"
+" CHUá»–I1 < CHUá»–I2 Äúng nếu CHUá»–I1 xếp trÆ°á»›c CHUá»–I2 theo thứ tá»± từ "
+"điển.\n"
+" CHUá»–I1 > CHUá»–I2 Äúng nếu CHUá»–I1 xếp sau CHUá»–I2 theo 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"
+" -o TÙY_CHỌN Äúng nếu tùy chá»n hệ vá» này được bật.\n"
+" -v BIẾN Äúng nếu BIẾN được đặt\n"
+" -R BIẾN Äúng nếu BIẾN được đặt là là tham chiếu tên.\n"
+" ! BTHỨC Äúng nếu biểu thức này không đúng.\n"
+" BTHỨC1 -a BTHỨC2 Äúng nếu cả hai biểu thức là đúng.\n"
+" BTHỨC1 -o BTHỨC2 Äúng nếu má»™t của hai biểu thức đú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"
+" Äá»I-Sá»1 OP Äá»I-Sá»2\n"
+" Phép thá»­ số há»c. OP là má»™t trong -eq, -ne,\n"
+" -lt, -le, -gt, or -ge.\n"
+" \n"
+" Phép toán số há»c hai ngôi trả vỠđúng nếu Äá»I-Sá»1 bằng, khác, nhá»\n"
+" hÆ¡n, nhá» hÆ¡n hoặc bằng, lá»›n hÆ¡n, lá»›n hÆ¡n hoặc bằng Äá»I-Sá»2.\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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu BTHỨC định giá là Äúng; không thành công\n"
+" nếu BTHỨC định giá thành Sai hay đối số được chỉ ra sai."
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4246,12 +4250,11 @@ msgid ""
" 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ở."
+" \n"
+" Lệnh này cùng chức năng lệnh dựng sẵn \"test\", nhưng đối số cuối\n"
+" cùng phải là ký tự “]†để khớp với “[†ở đầu."
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4264,14 +4267,13 @@ msgid ""
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"
+" In thá»i lượng chạy ở mức ngÆ°á»i dùng và hệ thống của hệ vá» và các\n"
+" tiến trình con.\n"
"\n"
-"\tTrạng thái thoát:\n"
-"\tLúc nào cũng thành công."
+" Trạng thái thoát:\n"
+" Lúc nào cũng thành công."
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -4314,42 +4316,41 @@ msgid ""
" 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 <signal.h>,\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:1368
+"Bẫy tín hiệu và sự kiện khác.\n"
+"\n"
+" Äịnh nghÄ©a và kích hoạt các bá»™ xá»­ lý khi hệ vá» nhận được tín hiệu\n"
+" hay các Ä‘iá»u kiện khác.\n"
+"\n"
+" Äá»I-Sá» là má»™t lệnh cần Ä‘á»c và thá»±c thi khi hệ vá» nhận được tín\n"
+" hiệu theo đặc tả tín hiệu ÄTTH. Nếu không có Äá»I-Sá» (và chỉ cung\n"
+" cấp má»™t ÄTTH), hoặc cung cấp “-â€. má»—i tín hiệu được xác định thì\n"
+" được đặt lại vá» giá trị gốc. Nếu Äá»I-Sá» là chuá»—i rá»—ng thì má»—i ÄTTH\n"
+" bị hệ vỠvà những lệnh bên trong bỠqua.\n"
+"\n"
+" Nếu ÄTTH là EXIT (0) thì Äá»I-SỠđược thá»±c thi khi thoát\n"
+" khá»i hệ vá». Nếu là DEBUG, Äá»I-SỠđược thá»±c thi trÆ°á»›c má»—i lệnh Ä‘Æ¡n\n"
+" giản. Nếu là RETURN, Äá»I-SỠđược thá»±c thi má»—i khi hàm hệ vá» hay\n"
+" má»™t văn lệnh, được chạy bởi lệnh “.†hoặc “sourceâ€. kết thúc thá»±c\n"
+" thi. ÄTTH ERR nghÄ©a là thá»±c thi Äá»I-Sá» má»—i khi lệnh gặp\n"
+" lá»—i dẫn đến thoát hệ vá» khi bật tùy chá»n -e.\n"
+" \n"
+" Nếu không có đối số, “trap†sẽ in danh sách của các lệnh gắn với\n"
+" các tín hiệu.\n"
+" \n"
+" Tùy chá»n:\n"
+" -l\tin danh sách tên tín hiệu và mã số tương ứng\n"
+" -p\thiển thị lệnh bắt tÆ°Æ¡ng ứng vá»›i má»—i ÄTTH\n"
+"\n"
+" Má»—i ÄTTH hoặc là tên tín hiệu trong <signal.h>, hoặc mã\n"
+" số tín hiệu. Tên tín hiệu không phân biệt chữ hoa/thÆ°á»ng, và không\n"
+" bắt buá»™c phải dùng tiá»n tố SIG. Có thể gá»­i tín hiệu cho hệ vá» bằng\n"
+" \"kill -signal $$\".\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ phi Ä‘Æ°a ra ÄTTH sai hay tùy chá»n\n"
+" sai."
+
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4378,37 +4379,34 @@ msgid ""
" 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:1399
+"Hiển thị thông tin loại câu lệnh.\n"
+"\n"
+" Äối vá»›i má»—i TÊN, chỉ ra cách thông dịch lệnh khi được thá»±c thi\n"
+" theo tên lệnh.\n"
+"\n"
+" Tùy chá»n:\n"
+" -a\thiển thị má»i vị trí chứa tập tin thá»±c thi được có TÊN;\n"
+" \tkhông đặt tùy chá»n “-p†thì bao gồm các bí danh, lệnh\n"
+" \tdựng sẵn và hàm.\n"
+" -f\tngăn tra cứu hàm hệ vá»\n"
+" -P\tbuộc tìm kiếm PATH đối với mỗi TÊN, thậm chí nếu nó là\n"
+" \tbí danh, lệnh dựng sẵn hay hàm, và trả lại tên của tập\n"
+" \ttin trên đĩa mà sẽ được thực thi\n"
+" -p\ttrả vỠhoặc tên của tập tin trên đĩa mà sẽ được thực\n"
+" \t\tthi, hoặc gì cả “type -t TÊN†sẽ không trả vỠ“fileâ€\n"
+" \t\t(tập tin).\n"
+" -t\txuất má»™t trong những từ Ä‘Æ¡n “aliasâ€, “keywordâ€, “functionâ€,\n"
+" \t“builtinâ€, “file†hoặc “â€, nếu TÊN tÆ°Æ¡ng ứng là bí danh,\n"
+" \ttừ khoá,hàm, lệnh hệ vỠdựng sẵn, tập tin\n"
+" \ttrên đĩa, hoặc không tìm thấy.\n"
+"\n"
+" Äối số:\n"
+" TÊN\ttên câu lệnh cần giải thích.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả 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:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4437,6 +4435,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4451,52 +4452,49 @@ msgid ""
" 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:1444
+"Sá»­a đổi giá»›i hạn tài nguyên hệ vá».\n"
+" \n"
+" Äiá»u khiển tài nguyên sẵn có của hệ vá» và các tiến trình nó tạo ra,\n"
+" trên hệ thống hỗ trợ điểu khiển tài nguyên như vậy.\n"
+" \n"
+" Tùy chá»n:\n"
+" -S\tdùng giá»›i hạn tài nguyên “soft†(má»m)\n"
+" -H\tdùng giới hạn tài nguyên “hard†(cứng)\n"
+" -a\tthông báo má»i giá»›i hạn hiện thá»i\n"
+" -b\tkích cỡ của vùng đệm socket\n"
+" -c\tkích cỡ tối đa của tập tin core được tạo\n"
+" -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"
+" -e\tmức Æ°u tiên lập lịch cao nhất (“niceâ€)\n"
+" -f\tkích cỡ tập tin tối đa được ghi bởi hệ vỠvà tiến trình con\n"
+" -i\tsố tín hiệu bị hoãn tối đa\n"
+" -l\tkích cỡ tối đa mà tiến trình có thể khoá vào bộ nhớ\n"
+" -m\tkích cỡ tập nội trú (RSS) tối đa\n"
+" -n\tsố bộ mô tả tập tin tối đa được mở\n"
+" -p\tkích thước vùng đệm ống dẫn\n"
+" -q\tsố byte tối đa trong hàng đợi thông điệp POSIX\n"
+" -r\tmức Æ°u lập lịch thá»i gian thá»±c cao nhất\n"
+" -s\tkích thước ngăn xếp tối đa\n"
+" -t\tlượng thá»i gian cpu tối Ä‘a theo giây\n"
+" -u\tsố tiến trình ngÆ°á»i dùng tối Ä‘a\n"
+" -v\tkích cỡ của bộ nhớ ảo\n"
+" -x\tsố khoá tập tin tối đa\n"
+" -T\tsố lượng tuyến trình tối đa\n"
+" \n"
+" Không phải tất cả các tùy-chá»n này Ä‘á»u sẵn sàng trên má»i ná»n tảng.\n"
+" \n"
+" Nếu có GIỚI_HẠN thì nó là giá trị mới của tài nguyên được ghi. Ba\n"
+" giá trị GIỚI_HẠN đặc biệt “softâ€, “hard†và “unlimited†tÆ°Æ¡ng ứng\n"
+" là giá»›i hạn má»m hiện tại, giá»›i hạn cứng hiện tại và không giá»›i\n"
+" hạn. Không có thì in giá trị hiện thá»i của tài nguyên được ghi.\n"
+" Ngầm định “-f†nếu không chỉ định tuỳ chá»n.\n"
+" \n"
+" Giá trị tính theo khối 1024 byte, trừ -t tính theo giây, -p theo\n"
+" khối 512 byte và -u theo số tiến trình.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay có lá»—i phát sinh."
+
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4515,79 +4513,80 @@ msgid ""
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"
+" Äặt mặt nạ tạo tập tin của ngÆ°á»i dùng thành CHẾ_ÄỘ. Không tham số\n"
+" thì in chế Ä‘á»™ hiện thá»i.\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ếu CHẾ_ÄỘ bắt đầu bằng chữ số thì hiểu là số bát phân; không thì\n"
+" nó là chuỗi chế độ ký hiệu đượ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"
+" Tùy chá»n:\n"
+" -p\tkhông có CHẾ_ÄỘ thì xuất theo định dạng dùng lại\n"
+" \tlàm dữ liệu đầu vào\n"
+" -S\tin kết xuất ký hiệu thay vì 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không có CHẾ_ÄỘ sai hay tùy chá»n sai."
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-"Äợi công việc chạy xong, sau đó trả lại trạng thái thoát.\n"
+"ChỠcông việc chạy xong và trả vỠ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"
+" Äợi tiến trình xác định bởi ID, có thể là mã số tiến trình hay đặc\n"
+" tả công việc, sau đó trả vỠtrạng thái kết thúc của nó. Không có\n"
+" ID thì đợi tất cả các tiến trình con đang chạy và trạng thái trả\n"
+" vỠlà không. Nếu ID là đặc tả công việc thì đợi tất cả các tiến\n"
+" trình vẫn nằm trong ống dẫn của công việc đó.\n"
+" \n"
+" Nếu tùy-chá»n -n được áp dùng thì đợi cho đến khi công việc kế chấm dứt "
+"và\n"
+" trả vỠtrạng thái thoát của nó.\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."
+" Trạng thái thoát:\n"
+" Trả vỠtrạng thái của ID cuối; không thành công nếu ID sai hoặc đưa\n"
+" ra tùy chá»n sai."
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is 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"
+"Äợi tiến trình chạy xong và trả vá» trạng thái thoát.\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"
+" Äợi từng tiến trình đã chỉ ra theo PID và báo cáo trạng thái kết thúc\n"
+" của nó. Nếu không chỉ ra PID thì đợi tất cả các tiến trình con đang\n"
+" chạy, và mã vỠlà không. PID phải là 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của PID; không thành công nếu PID sai, hoặc nếu\n"
+" Ä‘Æ°a ra tùy chá»n sai."
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4599,19 +4598,18 @@ msgid ""
" 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"
+"Thực thi lệnh cho từng phần tử nằm trong 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"
+" Vòng lặp “for†thực thi lệnh cho từng phần tử nằm trong danh sách. "
+"Không\n"
+" ghi “in TỪ ...†thì ngầm định “in \"$@\"â€. Äối vá»›i má»—i phần tá»­ trong\n"
+" danh sách, đặt giá trị phần tá»­ đó cho biến TÊN rồi thá»±c thi CÃC;CÂU;"
+"LỆNH.\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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4629,18 +4627,19 @@ msgid ""
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"
+" TÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i:\n"
+" \t(( BTHỨC1 ))\n"
+" \twhile (( BTHỨC2 )); do\n"
+" \t\tCÃC;CÂU;LỆNH;\n"
+" \t\t(( BTHỨC3 ))\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."
+" BTHỨC1, BTHỨC2 và BTHỨC3 là biểu thức số há»c. Ngầm định 1 cho bất\n"
+" kì biểu thức bỠtrống nào.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4659,27 +4658,22 @@ msgid ""
" 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:1550
+"Chá»n từ từ má»™t danh sách và thá»±c thi lệnh.\n"
+"\n"
+" TỪ được triển khai, phát sinh danh sách từ. Tập hợp các từ kết quả được\n"
+" in ra đầu ra lỗi chuẩn với một con số ở phía trước. Ngầm định “in\n"
+" \"$@\"†nếu không có “in TỪâ€. Dấu nhắc PS3 được hiển thị và má»™t dòng\n"
+" được Ä‘á»c từ đầu nhập chuẩn. Nếu dòng bao gồm số tÆ°Æ¡ng ứng vá»›i từ\n"
+" hiển thị thì đặt từ đó vào biến TÊN. Nếu dòng rỗng thì hiển thị\n"
+" lại TỪ và dấu nhắc. Nếu gặp EOF thì kết thúc. Äặt TÊN là rá»—ng vá»›i\n"
+" các giá trị khác. Dòng Ä‘á»c được lÆ°u vào biến REPLY. LỆNH được thá»±c\n"
+" thi sau má»—i lần chá»n đến khi gặp lệnh “breakâ€.\n"
+"\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
+
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4694,23 +4688,21 @@ msgid ""
" 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"
+"Thông báo thá»i gian sá»­ dụng để thá»±c thi ống dẫn.\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"
+" Thá»±c thi á»NG-DẪN và in tóm tắt thá»i gian thật, thá»i gian CPU ngÆ°á»i\n"
+" dùng, và thá»i gian CPU hệ thống được dùng để thá»±c thi ống dẫn đến\n"
+" khi 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"
+" Tùy chá»n:\n"
+" -p\tin bản tóm tắt thá»i gian theo định dạng POSIX\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"
+" Giá trị biến TIMEFORMAT đượ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."
+" Trạng thái thoát:\n"
+" Trạng thái trả vá» là trạng thái trả vá» của á»NG-DẪN."
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4720,16 +4712,15 @@ msgid ""
" 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"
+"Thá»±c thi lệnh chá»n theo 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"
+" Thá»±c thi LỆNH má»™t cách chá»n dá»±a vào TỪ tÆ°Æ¡ng ứng vá»›i MẪU. Nhiá»u\n"
+" mẫu cách nhau 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4749,24 +4740,22 @@ msgid ""
" 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:1596
+"Thá»±c thi câu lệnh có Ä‘iá»u kiện.\n"
+"\n"
+" Danh sách “if CÃC;CÂU;LỆNH†được thá»±c thi. Nếu trạng thái thoát là "
+"không,\n"
+" thì thá»±c thi danh sách “then LỆNHâ€. Không thì thá»±c thi lần lượt\n"
+" má»—i danh sách “elif LỆNHâ€. và nếu trạng thái thoát là không, thì\n"
+" thực thi danh sách “then LỆNH†tương ứng và hoàn tất lệnh\n"
+" “ifâ€. Không thì thá»±c thi danh sách “else LỆNH†nếu có. Trạng thái\n"
+" thoát của toàn bộ lệnh “if†là trạng thái của lệnh cuối cùng được\n"
+" chạy, hoặc không nếu không có Ä‘iá»u kiện nào trả vá» kết quả là\n"
+" đúng.\n"
+"\n"
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
+
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4776,16 +4765,16 @@ msgid ""
" 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"
+"Thực thi lệnh chừng nào phép thử còn 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"
+" Khai triển và thá»±c thi CÃC;CÂU;LỆNH chừng nào lệnh cuối cùng trong "
+"“while†LỆNH\n"
+" có trạng thái thoát là 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4795,16 +4784,16 @@ msgid ""
" 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"
+"Thực thi lệnh chừng nào phép thử vẫn 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"
+" Khai triển và thá»±c thi CÃC;CÂU;LỆNH chừng nào lệnh cuối cùng trong "
+"“until†LỆNH\n"
+" có trạng thái thoát là khác 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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4816,18 +4805,16 @@ msgid ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
msgstr ""
-"Tạo một tiến trình đồng chạy có tên TÊN.\n"
+"Tạo tiến trình phụ tên TÊN.\n"
"\n"
-"\tThực hiện câu LỆNH một cách không đồng bộ, có đầu và tiêu chuẩn\n"
-"\tvà đầu ra tiêu chuẩn của câu lệnh này được kết nối thông qua một ống dẫn\n"
-"\ttới các bộ mô tả tập tin được gán cho chỉ số 0 và 1 của một biến mảng TÊN\n"
-"\ttrong trình bao đang chạy.\n"
-"\tTên mặc định là « COPROC ».\n"
+" Thực hiện LỆNH không đồng bộ có đầu vào/ra chuẩn nối đến ống dẫn\n"
+" của bá»™ mô tả tập tin chỉ số 0 và 1 trong biến mảng TÊN trong hệ vá»\n"
+" được thực thi. TÊN mặc định là \"COPROC\".\n"
"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại trạng thái thoát của câu LỆNH."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái thoát của câu LỆNH."
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4840,18 +4827,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is readonly."
msgstr ""
-"Xác định chức năng trình bao.\n"
+"Äịnh nghÄ©a hàm hệ vá».\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"
+" Tạo hàm hệ vá» tên TÊN. Khi được gá»i dÆ°á»›i dạng má»™t câu lệnh Ä‘Æ¡n\n"
+" giản, TÊN chạy LỆNH trong ngữ cảnh của hệ vá» gá»i. Khi TÊN được\n"
+" gá»i, các đối số được gá»­i cho hàm dạng $1...$n, và tên hàm nằm\n"
+" 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu TÊN không phải chỉ Ä‘á»c."
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4861,16 +4847,15 @@ msgid ""
" 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"
+"Nhóm lệnh làm 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"
+" Chạy tập hợp các lệnh trong cùng má»™t nhóm. Äây là má»™t cách để\n"
+" chuyển hướng toàn bộ một nhóm lệnh.\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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của câu lệnh cuối cùng được chạy."
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4885,17 +4870,15 @@ msgid ""
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"
+" TÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i đối số đặc tả công việc ÄTCV trong lệnh “fgâ€.\n"
+" Tiếp tục lại công việc bị dừng chạy hay chạy ná»n. ÄTCV có thể xác\n"
+" định tên công việc hoặc mã số công việc. Äặt “&†sau ÄTCV sẽ chạy\n"
+" công việc ở ná»n, nhÆ° là đối số đặc tả công việc trong “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."
+" Trạng thái thoát:\n"
+" Trả lại trạng thái của công việc đã tiếp tục lại."
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4905,15 +4888,15 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-"Äịnh giá biểut thức số há»c.\n"
+"Äịnh giá biểu 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"
+" BTHỨC được tính tùy theo các quy tắc vỠđịnh giá số há»c.\n"
+" TÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i “let BTHỨ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."
+" Trạng thái thoát:\n"
+" Trả lại 1 nếu BTHỨC tính là 0; không thì trả lại 0."
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4940,29 +4923,29 @@ msgid ""
" Exit Status:\n"
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-"Thá»±c thi câu lệnh Ä‘iá»u kiện.\n"
+"Thá»±c thi câu lệnh có Ä‘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"
+" Trả vá» trạng thái 0 hoặc 1 tuỳ vào phép tính biểu thức Ä‘iá»u kiện\n"
+" BTHỨC. Biểu thức bao gồm các thành phần dùng trong lệnh dựng sẵn\n"
+" “test†và có thể được tổ hợp bằng các toán tử sau:\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"
+" ( BTHỨC )\t\tTrả vỠgiá trị của BTHỨC\n"
+" ! BTHỨC\t\tÄúng nếu BTHỨC là không đúng. Ngược lại sai\n"
+" BTHỨC1 && BTHỨC2\tÄúng nếu cả hai biểu thức Ä‘á»u đúng. Ngược lại sai.\n"
+" BTHỨC1 || BTHỨC2\tÄúng nếu má»™t trong hai biểu thức đúng. Ngược lại "
+"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"
+" Khi dùng toán từ “==†và “!=â€, chuá»—i bên phải toán tá»­ được dùng\n"
+" làm mẫu, và thá»±c hiện khá»›p mẫu. Khi dùng toán tá»­ “=~â€, chuá»—i bên\n"
+" phải toán tử được dùng làm biểu thức chính quy.\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."
+" Toán tử “&&†và “||†không tính BTHỨC2 nếu BTHỨC1 đủ để xác định\n"
+" giá trị toàn biểu thức.\n"
+"\n"
+" Trạng thái thoát:\n"
+" 0 hay 1 phụ thuộc vào giá trị của BTHỨC."
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -5015,60 +4998,58 @@ msgid ""
" 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"
+"Tên và cách dùng các biến hệ vá» thÆ°á»ng dùng.\n"
+"\n"
+" BASH_VERSION\n"
+" \tThông tin phiên bản của Bash đang chạy.\n"
+" CDPATH\tDanh sách thư mục cách nhau bằng dấu hai chấm để tìm\n"
+" \tđối số thÆ° mục trong lệnh “cdâ€.\n"
+" GLOBIGNORE\tDanh sách mẫu cách nhau bằng dấu hai chấm diễn tả\n"
+" \ttên tập tin bị bá» qua không bung Ä‘Æ°á»ng dẫn.\n"
+" HISTFILE\tTên tập tin chứa lịch sử câu lệnh của bạn.\n"
+" HISTFILESIZE\n"
+" \tSố dòng tối đa tập tin này có thể chứa.\n"
+" HISTSIZE\tSố dòng tối đa mà hệ vỠđang chạy có thể truy cập.\n"
+" HOME\tTên Ä‘Æ°á»ng dẫn đầy đủ của thÆ° mục đăng nhập của bạn.\n"
+" HOSTNAME\tTên của máy hiện thá»i của bạn.\n"
+" HOSTTYPE\tLoại CPU phiên bản Bash này đang chạy.\n"
+" IGNOREEOF\tÄiá»u khiển hành vi hệ vá» khi nhận EOF là dữ liệu nhập\n"
+" \tduy nhất. Äặt thì giá trị của nó là EOF có thể gặp\n"
+" \tliên tục trên một dòng rỗng trước khi hệ vỠkết thúc\n"
+" \t(mặc định là 10). Không đặt thì EOF nghĩa là kết thúc\n"
+" \tnhập.\n"
+" MACHTYPE\tChuỗi mô tả hệ thống Bash đang chạy.\n"
+" MAILCHECK\tSố giây giữa hai lần Bash kiểm tra có thư mới không.\n"
+" MAILPATH\tDanh sách tên tập tin cách nhau bằng dấu hai chấm\n"
+" \tđể Bash kiểm tra có thư mới không.\n"
+" OSTYPE\tPhiên bản UNIX Bash đang chạy.\n"
+" PATH\tDanh sách thư mục cách nhau bằng dấu hai chấm để tìm lệnh.\n"
+" PROMPT_COMMAND\n"
+" \tLệnh cần thực hiện trước khi in dấu nhắc chính.\n"
+" PS1\t\tChuỗi dấu nhắc chính.\n"
+" PS2\t\tChuỗi dấu 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:1770
+" SHELLOPTS\tDanh sách tùy chá»n hệ vỠđược bật cách nhau bằng\n"
+" \tdấu hai chấm.\n"
+" TERM\tTên 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ê thá»i gian của lệnh “timeâ€.\n"
+" auto_resume\tGiá trị khác rỗng thì trước tiên tìm một từ lệnh xuất\n"
+" \thiện một mình trên một dòng, trong danh sách các công\n"
+" \tviệc bị dừng chạy. Tìm ra thì đặt công việc đó vào ná»n\n"
+" \ttrước. Giá trị “exact†có nghĩa là từ lệnh phải tương\n"
+" \tứng chính xác với một câu lệnh trong danh sách các\n"
+" \tcông việc bị dừng chạy. Giá trị “substring†có nghĩa\n"
+" \tlà từ lệnh phải tương ứng với một chuỗi phụ của công\n"
+" \tviệc đó.\n"
+" histchars\tCác ký tá»± Ä‘iá»u khiển bung và thay thế lịch sá»­. Ký tá»±\n"
+" \tđầu tiên thÆ°á»ng là ký tá»± thay thế lịch sá»­, thÆ°á»ng là\n"
+" \t“!â€. Ký tá»± thứ hai là ký tá»± thay thế nhanh, thÆ°á»ng là\n"
+" \t“^â€. Ký tá»± thứ ba là ký tá»± ghi chú vá» lịch sá»­, thÆ°á»ng\n"
+" \tlà “#â€.\n"
+" HISTIGNORE\tDanh sách mẫu cách bằng dấu hai chấm dùng để quyết định\n"
+" \tnhững câu lệnh nào nên được lưu vào danh sách lịch sử.\n"
+
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -5098,31 +5079,31 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-"Thêm thư mục vào đống.\n"
+"Thêm thư mục vào chồ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"
+" Thêm thư mục vào đầu của chồng thư mục, hoặc xoay chồng, làm cho\n"
+" thÆ° mục má»›i đầu chồng là thÆ° mục làm việc hiện thá»i. Không có đối\n"
+" 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\tNgăn chuyển đổi bình thÆ°á»ng khi thêm thÆ° mục\n"
+" \tvào chồng, để thao tác chỉ chồng.\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\tXoay chồng để thư mục thứ N (đếm từ trái danh sách\n"
+" \t“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\tXoay chồng để thư mục thứ N (đếm từ phải danh sách\n"
+" \t“dirs†(bắt đầu từ số không) dá»i lên đầu.\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"
+" dir\tThêm THMỤC vào đầu chồng thư mục, cho nó làm 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"
+" Lệnh dựng sẵn “dirs†hiển thị chồ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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không đưa ra đối số sai, cũng không sai\n"
+" chuyển đổi thư mục."
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -5148,34 +5129,29 @@ msgid ""
" Returns success unless an invalid argument is supplied or the directory\n"
" change fails."
msgstr ""
-"Gỡ bá» thÆ° mục khá»i đống.\n"
+"Gỡ bá» thÆ° mục khá»i chồ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"
+" Gỡ bá» thÆ° mục khá»i chồng thÆ° mục. Không có đối số thì gỡ bá» thÆ°\n"
+" mục đầu khá»i chồng và “cd†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\tNgăn chuyển đổi bình thÆ°á»ng khi gỡ bá» thÆ° mục\n"
+" \tkhá»i chồng, để thao tác chỉ chồng.\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\tGỡ bỠthư mục thứ N (đếm từ trái danh sách\n"
+" \t“dirs†(bắt đầu từ số không). Ví dụ: “popd +0†bá»\n"
+" \tthư mục cuối cùng, “popd +1†bỠthư mục thứ hai.\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\tGỡ bỠthư mục thứ N (đếm từ phải danh sách\n"
+" \t“dirs†(bắt đầu từ số không). Ví dụ: “popd -0†bá»\n"
+" \tthư mục cuối cùng, “popd -1†bỠthư mục giáp cuối.\n"
"\n"
-"Dựng sẵn « dirs » thì hiển thị đống thư mục.\n"
+" Lệnh dựng sẵn “dirs†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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không đưa ra đối số sai, cũng không sai\n"
+" chuyển đổi thư mục."
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5203,35 +5179,32 @@ msgid ""
" 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:1863
+"Hiển thị chồng thư mục.\n"
+" \n"
+" Hiển thị danh sách các thÆ° mục được nhá»› hiện thá»i. Lệnh “pushdâ€\n"
+" thêm thÆ° mục vào danh sách; lệnh “popd†lấy thÆ° mục khá»i danh\n"
+" sách.\n"
+" \n"
+" Tùy chá»n:\n"
+" -c\txoá má»i phần tá»­ trong chồng thÆ° mục\n"
+" -l\tđừng in phiên bản thư mục có dấu ngã\n"
+" \t(tÆ°Æ¡ng đối so vá»›i thÆ° mục chính của ngÆ°á»i dùng)\n"
+" -p\tin chồng thư mục, mỗi dòng một mục\n"
+" -v\tin chồng thư mục, mỗi dòng một mục kèm vị trí trong chồng\n"
+" \n"
+" Äối số:\n"
+" +N\thiển thị mục thứ N bắt đầu từ bên trái danh sách\n"
+" được hiển thị bằng “dirs†khi được gá»i mà không Ä‘Æ°a ra\n"
+" tùy chá»n, bắt đầu từ số không.\n"
+" \n"
+" -N\thiển thị mục thứ N bắt đầu từ bên phải danh sách\n"
+" được hiển thị bằng “dirs†khi được gá»i mà không Ä‘Æ°a ra\n"
+" tùy chá»n, bắt đầu từ số không.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả vá» thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i."
+
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5251,25 +5224,24 @@ msgid ""
" 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."
+"Äặt và bá» các tùy chá»n hệ vá».\n"
+" \n"
+" Thay đổi thiết lập của má»—i tùy chá»n hệ vá» TÊN_TÙY_CHỌN. Không có\n"
+" đối số tùy chá»n thì liệt kê tất cả các tùy chá»n hệ vá» kèm chỉ dẫn\n"
+" tùy chá»n được đặt hay không.\n"
+" \n"
+" Tùy chá»n:\n"
+" -o\thạn chế TÊN_TÙY_CHỌN những tên được định nghĩa\n"
+" \tđể sá»­ dụng vá»›i “set -oâ€\n"
+" -p\tin má»—i tùy chá»n hệ vá» kèm trạng thái\n"
+" -q\tngăn kết xuất\n"
+" -u\ttắt TÊN_TÙY_CHỌN\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu TÊN_TÙY_CHỌN được bật; không thành công nếu\n"
+" Ä‘Æ°a ra tùy chá»n sai hay TÊN_TÙY_CHỌN bị tắt."
-#: builtins.c:1884
-#, fuzzy
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5286,9 +5258,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5296,34 +5268,46 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\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."
+"Äịnh dạng và in Äá»I-Sá» theo Ä‘iá»u khiển của ÄỊNH_DẠNG.\n"
+" \n"
+" Tùy chá»n:\n"
+" -v BIẾN\tgán kết xuất cho biến hệ vỠnày thay vì\n"
+" \thiển thị nó trên đầu ra chuẩn\n"
+" \n"
+" ÄỊNH_DẠNG là chuá»—i ký tá»± mà chứa ba kiểu đối tượng: ký tá»± bình\n"
+" thÆ°á»ng, cái này được chép ra đầu ra chuẩn; dãy ký tá»± thoát, dùng để\n"
+" chuyển đổi sau đó sao chép sang đầu ra chuẩn; và các ký hiệu đặc tả định "
+"dạng,\n"
+" mỗi đặc tả này tác động lên đối số tương ứng.\n"
+" \n"
+" Ngoài đặc tả định dạng chuẩn được dùng trong printf(1) và printf(3),\n"
+" printf được hiểu những đặc tả sau:\n"
+" \n"
+" %b\tbung dãy thoát gạch chéo ngược trong đối số tương ứng\n"
+" %q\ttrích dẫn đối số theo cách dùng lại làm dữ liệu đầu vào hệ vá»\n"
+" %(fmt)T\txuất chuỗi ngày tháng theo định dạng FMT từ strftime(3)\n"
+" \n"
+" Äịnh dạng được dùng lại để có thể dùng hết đối số. Nếu\n"
+" ở đây có ít đối số hơn yêu cầu của định dạng, định dạng thừa đó được\n"
+" xử lý theo cách là sẽ có giá trị bằng số không hay chuỗi rỗng,\n"
+" được áp dụng.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ phi Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i khi ghi\n"
+" hay gán."
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5349,29 +5333,28 @@ msgid ""
" 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"
+"Chỉ định cách tự hoàn thiện đối số bằng Readline.\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"
+" Äối vá»›i má»—i TÊN, ghi rõ các đối số sẽ được tá»± hoàn thiện nhÆ° thế nào.\n"
+" Không Ä‘Æ°a ra tùy chá»n thì in ra các đặc tả tá»± hoàn thiện bằng má»™t cách\n"
+" 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"
+" Tùy chá»n:\n"
+" -p\tin đặc tả tự hoàn thiện đã tồn tại theo định dạng dùng lại được\n"
+" -r\tgỡ bỠđặc tả tự hoàn thiện cho mỗi TÊN,\n"
+" \thoặc nếu có TÊN thì gỡ bỠtất cả các đặc tả tự hoàn thiện\n"
" -D\táp dụng các sự hoàn thành và hành động làm mặc định\n"
"\t\tcho câu lệnh mà không xác định sự hoàn thành riêng\n"
-" -E\táp dụng các sự hoàn thành và hành động cho câu lệnh « trống »\n"
+" -E\táp dụng các sá»± hoàn thành và hành Ä‘á»™ng cho câu lệnh “trốngâ€\n"
"\t\t(empty) -- thử hoàn thành trên dòng trắng\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"
+" Khi chức năng tự hoàn thiện được thử, những hành động được làm theo thứ\n"
+" 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i."
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5383,18 +5366,16 @@ msgid ""
" 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."
+"Hiển thị từ gợi ý có thể phụ thuá»™c vào các tùy chá»n.\n"
+" \n"
+" Dự định dùng từ bên trong một chức năng hệ vỠmà tạo các việc\n"
+" tá»± hoàn thiện có thể làm. Nếu Ä‘Æ°a ra đối số TỪ vẫn tùy chá»n, thì tạo\n"
+" các kết quả tương ứng với TỪ.\n"
+" \n"
+" Trạng thái thoát:\n"
+" Trả lại thành công nếu không Ä‘Æ°a ra tùy chá»n sai hay gặp lá»—i."
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -5424,35 +5405,34 @@ msgid ""
" 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"
+"Sá»­a đổi hoặc hiển thị các tùy chá»n tá»± hoàn thiện.\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"
+" Sá»­a đổi các tùy chá»n tá»± hoàn thiện đối vá»›i má»—i TÊN, hoặc nếu không Ä‘Æ°a\n"
+" ra TÊN thì chức năng tự hoàn thiện hiện tại sẽ được thi hành, nếu không\n"
+" TÙY_CHỌN được chỉ ra, in ra các tùy chá»n tá»± hoàn thiện cho má»—i TÊN hay\n"
+" các đặc tính kỹ thuật hiện có\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"
-" \t-D\t\tSá»­a đổi các tuỳ chá»n vá» sá»± Ä‘iá»n nốt câu lệnh « mặc định "
-"» (default)\n"
-" \t-E\t\tSá»­a đổi các tuỳ chá»n vá» sá»± Ä‘iá»n nốt câu lệnh « trống » (empty)\n"
+" Tùy chá»n:\n"
+" -o tùy_chá»n\tđặt TÙY_CHỌN tá»± hoàn thiện này đối vá»›i má»—i TÊN\n"
+" -D\t\tSá»­a TÙY_CHỌN vá» tá»± hoàn thiện lệnh “defaultâ€\n"
+" -E\t\tSá»­a TÙY_CHỌN vá» tá»± hoàn thiện lệnh “emptyâ€\n"
"\n"
-"\tDùng « +o » thay cho « -o » thì tắt tùy chá»n Ä‘Æ°a ra.\n"
+" Dùng “+o†thay cho “-o†thì tắt tùy chá»n Ä‘Æ°a ra.\n"
"\n"
-"\tÄối số :\n"
+" Äố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"
+" Mỗi TÊN tham chiếu đến một câu lệnh cho đó một đặc tả tự hoàn thiện\n"
+" phải được xác định trÆ°á»›c dùng dá»±ng sẵn “completeâ€. Nếu không Ä‘Æ°a\n"
+" ra TÊN để áp dụng, thì “compopt†phải được gá»i bởi má»™t hàm Ä‘ang\n"
+" tạo việc tá»± hoàn thiện, và các tùy chá»n vá» hàm tạo việc tá»± hoàn thiện "
+"Ä‘ang\n"
+" 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ phi Ä‘Æ°a ra tùy chá»n sai, hoặc TÊN có má»™t\n"
+" đặc tả tự hoàn thiện được xác định."
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -5492,45 +5472,56 @@ msgid ""
"or\n"
" not an indexed array."
msgstr ""
-"Äá»c các dòng từ đầu vào tiêu chuẩn vào má»™t biến mảng phụ lục.\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 "
+"Äá»c các dòng từ đầu vào tiêu chuẩn vào má»™t biến mảng chỉ số.\n"
+"\n"
+" Äá»c các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG, hoặc từ bá»™\n"
+" mô tả tập tin FD nếu Ä‘Æ°a ra tùy chá»n -u. Biến MAPFILE là MẢNG mặc\n"
+" định.\n"
+"\n"
+" Tùy chá»n:\n"
+" -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"
+" -O Gá»C\tbắt đầu gán cho MẢNG ở chỉ số Gá»C. Chỉ số mặc định là 0.\n"
+" -s Sá»\tbá» qua Sá» dòng đầu tiên được Ä‘á»c.\n"
+" -t\tgỡ bá» má»™t ký tá»± dòng má»›i theo sau khá»i má»—i dòng được Ä‘á»c.\n"
+" -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"
+" -C GỌI_NGƯỢC\tđịnh giá GỌI_NGƯỢC má»—i lần Ä‘á»c LƯỢNG dòng.\n"
+" -c LƯỢNG\tghi rõ số các dòng được Ä‘á»c giữa hai lần 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"
+" Äối số:\n"
+" MẢNG\ttên biến mảng 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"
-"\tKhi Æ°á»›c lượng lá»i GỌI_NGƯỢC thì nó nhận chỉ số của phần tá»­ mảng\n"
-"\tkế tiếp được gán dưới dạng một đối số bổ sung.\n"
+" Nếu đưa ra -C mà không có -c thì lượng mặc định là 5000. Khi ước\n"
+" lượng lá»i GỌI_NGƯỢC thì nó nhận chỉ số của phần tá»­ mảng kế tiếp\n"
+" được gán dưới dạng một đối số bổ sung.\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"
+" Không Ä‘Æ°a ra má»™t Gá»C dứt khoát thì mapfile (tập tin sÆ¡ đồ) sẽ xoá\n"
+" 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."
+" Trạng thái thoát:\n"
+" Trả lại thành công trừ phi Ä‘Æ°a ra tùy chá»n sai và MẢNG không phải\n"
+" chỉ Ä‘á»c hay không là má»™t mảng chỉ số."
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
" A synonym for `mapfile'."
msgstr ""
"Äá»c các dòng từ má»™t tập tin vào má»™t biến mảng.\n"
-"\n"
-"\tÄồng nghÄ©a vá»›i « mapfile »."
+" \n"
+" Giống chức năng của “mapfileâ€."
+
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "Tác quyá»n (C) năm 2009 của Tổ chức Phần má»m Tá»± do.\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "Giấy phép GPLv2+: GNU GPL phiên bản 2 hoặc mới hơn <http://gnu.org/"
+#~ "licenses/gpl.html>\n"
#~ msgid ""
#~ ". With EXPR, returns\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 2ccc4b1e..42fb5ce5 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index a62ce7cb..b0757a67 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,104 +1,122 @@
# Chinese (Simplified) translation for bash package
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright (C) 2010, 2011, 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
-# Xin Ye <alyex.ye@gmail.com>, 2010
+# Xin Ye <alyex.ye@gmail.com>, 2010.
+# Aron Xu <happyaron.xu@gmail.com>, 2011.
+# Anthony Fok <foka@debian.org>, 2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash 4.3-pre2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-06-29 10:16+0800\n"
-"Last-Translator: Alex Ye <alyex.ye@gmail.com>\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
+"PO-Revision-Date: 2013-09-02 05:15+0800\n"
+"Last-Translator: Anthony Fok <foka@debian.org>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\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
+#: arrayfunc.c:51
msgid "bad array subscript"
-msgstr "å的数组下标"
+msgstr "数组下标ä¸æ­£ç¡®"
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr "%s: 无法将索引数组转化为关è”数组"
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, c-format
msgid "%s: invalid associative array key"
msgstr "%s: 无效的关è”数组键"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr "%s: 无法为éžæ•°å­—的索引赋值"
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr "%s: %s: 为关è”数组赋值时必须使用下标"
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr "%s: 无法创建: %s"
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr "bash_execute_unix_command: 无法为命令找到键映射"
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr "%s: 第一个éžç©ºå­—符ä¸æ˜¯ `\"'"
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr "%2$s 中没有闭åˆçš„ `%1$c'"
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr "%s: 缺少冒å·åˆ†éš”符"
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
msgstr "`%s': 无效的别å"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
-msgstr "行编辑未å¯ç”¨"
+msgstr "未å¯ç”¨è¡Œç¼–辑"
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr "`%s': 无效的键映射å"
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s: 无法读å–: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr "`%s': 无法解除绑定"
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s': 未知函数å"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr "%s 未与任何键绑定。\n"
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr "%s å¯ä»¥è¢«è°ƒç”¨ï¼Œé€šè¿‡"
@@ -111,7 +129,7 @@ msgstr "循环计数"
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr "仅在`for', `while', 或者`until' 循环中有æ„义"
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
@@ -119,13 +137,17 @@ msgid ""
msgstr ""
"返回当å‰å­ä¾‹ç¨‹è°ƒç”¨çš„上下文\n"
" \n"
-" ä¸å¸¦ EXPR 时, 返回"
+" ä¸å¸¦ EXPR 时,返回"
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME 未设定"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "å‚数太多"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD 未设定"
@@ -134,7 +156,7 @@ msgstr "OLDPWD 未设定"
msgid "line %d: "
msgstr "第 %d 行:"
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, c-format
msgid "warning: "
msgstr "警告:"
@@ -144,11 +166,7 @@ msgstr "警告:"
msgid "%s: usage: "
msgstr "%s: 用法:"
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "å‚数太多"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s: 选项需è¦ä¸€ä¸ªå‚æ•°"
@@ -163,7 +181,7 @@ msgstr "%s: 需è¦æ•°å­—å‚æ•°"
msgid "%s: not found"
msgstr "%s: 未找到"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s: 无效选项"
@@ -173,7 +191,7 @@ msgstr "%s: 无效选项"
msgid "%s: invalid option name"
msgstr "%s: 无效的选项å"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s': ä¸æ˜¯æœ‰æ•ˆçš„标识符"
@@ -186,7 +204,7 @@ msgstr "无效的八进制数"
msgid "invalid hex number"
msgstr "无效的å六进制数"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr "无效数字"
@@ -200,7 +218,7 @@ msgstr "%s: 无效的信å·å£°æ˜Ž"
msgid "`%s': not a pid or valid job spec"
msgstr "`%s': ä¸æ˜¯æœ‰æ•ˆçš„进程å·æˆ–者任务声明"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s: åªè¯»å˜é‡"
@@ -245,7 +263,7 @@ msgstr "å—é™çš„"
#: builtins/common.c:312
#, c-format
msgid "%s: not a shell builtin"
-msgstr "%s: ä¸æ˜¯shell内建"
+msgstr "%s: ä¸æ˜¯ shell 内建"
#: builtins/common.c:321
#, c-format
@@ -272,48 +290,58 @@ msgstr "%s: 获å–当å‰ç›®å½•æ—¶å‡ºé”™: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s: 模糊的任务声明"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s: 无效的动作å"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
-msgstr "%s: 没有补完声明"
+msgstr "%s: 没有补全声明"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "警告: -F 选项å¯èƒ½ä¸åƒæ‚¨é¢„期的那样工作"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "警告: -C 选项å¯èƒ½ä¸åƒæ‚¨é¢„期的那样工作"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
-msgstr "ç›®å‰ä¸åœ¨æ‰§è¡Œè¡¥å®ŒåŠŸèƒ½"
+msgstr "当å‰æœªæ‰§è¡Œè¡¥å®ŒåŠŸèƒ½"
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "åªèƒ½åœ¨å‡½æ•°ä¸­ä½¿ç”¨"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr "无法用 `-f' 生æˆå‡½æ•°"
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s: åªè¯»å‡½æ•°"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
-msgstr "%s: 无法以这ç§æ–¹å¼æ‘§æ¯æ•°ç»„å˜é‡"
+msgstr "%s: 无法以这ç§æ–¹å¼é”€æ¯æ•°ç»„å˜é‡"
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr "%s: 无法将关è”数组转化为索引数组"
@@ -335,31 +363,30 @@ msgstr "无法在共享对象 %2$s 中找到 %1$s: %3$s"
#: builtins/enable.def:459
#, c-format
msgid "%s: not dynamically loaded"
-msgstr "%s: ä¸æ˜¯åŠ¨æ€åŠ è½½"
+msgstr "%s: 未以动æ€æ–¹å¼åŠ è½½"
#: builtins/enable.def:474
#, c-format
msgid "%s: cannot delete: %s"
msgstr "%s: 无法删除: %s"
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr "%s: 是一个目录"
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr "%s: ä¸æ˜¯å¸¸è§„文件"
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr "%s: 文件太大"
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr "%s: 无法执行二进制文件"
@@ -372,11 +399,11 @@ msgstr "%s: 无法执行: %s"
#: builtins/exit.def:65
#, c-format
msgid "logout\n"
-msgstr "登出\n"
+msgstr "注销\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
-msgstr "ä¸æ˜¯ç™»å½•shell: 使用 `exit'"
+msgstr "ä¸æ˜¯ç™»å½• shell: 使用 `exit'"
#: builtins/exit.def:120
#, c-format
@@ -392,11 +419,11 @@ msgstr "有è¿è¡Œä¸­çš„任务。\n"
msgid "no command found"
msgstr "未找到命令"
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr "历å²å£°æ˜Ž"
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr "%s: 无法打开临时文件: %s"
@@ -408,7 +435,7 @@ msgstr "当å‰"
#: builtins/fg_bg.def:158
#, c-format
msgid "job %d started without job control"
-msgstr "ä¸å¸¦ä»»åŠ¡æŽ§åˆ¶çš„情况下å¯åŠ¨äº†ä»»åŠ¡ %d"
+msgstr "在ä¸å¸¦ä»»åŠ¡æŽ§åˆ¶çš„情况下å¯åŠ¨äº†ä»»åŠ¡ %d"
#: builtins/getopt.c:110
#, c-format
@@ -422,7 +449,7 @@ msgstr "%s: 选项需è¦ä¸€ä¸ªå‚æ•° -- %c\n"
#: builtins/hash.def:92
msgid "hashing disabled"
-msgstr "哈希已ç¦ç”¨"
+msgstr "å·²ç¦ç”¨å“ˆå¸Œ"
#: builtins/hash.def:138
#, c-format
@@ -438,22 +465,21 @@ msgstr "命中\t命令\n"
#, c-format
msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
-msgstr[0] "Shell命令匹é…关键字`"
+msgstr[0] "Shell 命令匹é…关键字 `"
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-"没有与 `%s' 匹é…的帮助主题。å°è¯• `help help' 或者 `man -k %s' 或者 `info %"
-"s'。"
+"没有与 `%s' 匹é…的帮助主题。å°è¯• `help help' 或 `man -k %s' 或 `info %s'。"
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr "%s: 无法打开: %s"
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -464,12 +490,12 @@ msgid ""
"A star (*) next to a name means that the command is disabled.\n"
"\n"
msgstr ""
-"这些 shell 命令是内部定义的。请输入 `help' 以获å–一个列表.\n"
-"输入 `help å称' 以得到有关函数`å称'的更多信æ¯.\n"
-"使用 `info bash' æ¥èŽ·å¾—关于 shell 的更多一般性信æ¯\n"
-"使用 `man -k' 或 `info' æ¥èŽ·å–ä¸åœ¨åˆ—表中的命令的更多信æ¯.\n"
+"这些 shell 命令是内部定义的。请输入 `help' 以获å–一个列表。\n"
+"输入 `help å称' 以得到有关函数`å称'的更多信æ¯ã€‚\n"
+"使用 `info bash' æ¥èŽ·å¾—关于 shell 的更多一般性信æ¯ã€‚\n"
+"使用 `man -k' 或 `info' æ¥èŽ·å–ä¸åœ¨åˆ—表中的命令的更多信æ¯ã€‚\n"
"\n"
-"å称æ—è¾¹çš„æ˜Ÿå· (*) æ„味ç€è¯¥å‘½ä»¤è¢«ç¦ç”¨.\n"
+"å称æ—边的星å·(*)表示该命令被ç¦ç”¨ã€‚\n"
"\n"
#: builtins/history.def:154
@@ -480,7 +506,7 @@ msgstr "最多åªèƒ½ä½¿ç”¨ -anrw 选项中的一个"
msgid "history position"
msgstr "历å²ä½ç½®"
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr "%s: 历å²æ‰©å±•å¤±è´¥"
@@ -494,103 +520,113 @@ msgstr "%s: inlib 失败"
msgid "no other options allowed with `-x'"
msgstr "其他选项ä¸èƒ½ä¸Ž `-x' åŒæ—¶ä½¿ç”¨"
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr "%s: å‚数必须是进程或任务 ID"
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr "未知错误"
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
-msgstr "期待表达å¼"
+msgstr "需è¦è¡¨è¾¾å¼"
#: builtins/mapfile.def:172
#, c-format
msgid "%s: not an indexed array"
msgstr "%s: ä¸æ˜¯ä¸€ä¸ªç´¢å¼•æ•°ç»„"
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr "%s: 无效的文件æ述符声明"
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr "%d: 无效的文件æ述符: %s"
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, c-format
msgid "%s: invalid line count"
msgstr "%s: 无效的行数"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, c-format
msgid "%s: invalid array origin"
msgstr "%s: 无效的数组基数"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, c-format
msgid "%s: invalid callback quantum"
msgstr "%s: 无效的回调é‡å­"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr "空数组å˜é‡å"
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr "需è¦æ•°ç»„å˜é‡æ”¯æŒ"
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr "`%s': 缺少格å¼å­—符"
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:456
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s: 无效的超时声明"
+msgstr "`%c': 无效的时间格å¼å£°æ˜Ž"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr "`%c': 无效格å¼å­—符"
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, c-format
msgid "warning: %s: %s"
msgstr "警告: %s: %s"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
-msgstr "使用了\\x但缺少å六进制数"
+msgstr "使用了 \\x 但缺少å六进制数"
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:880
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "使用了\\x但缺少å六进制数"
+msgstr "使用了 \\%c 但缺少 unicode 数"
#: builtins/pushd.def:195
msgid "no other directory"
msgstr "无其他目录"
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s: 无效的 limit å‚æ•°"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr "<无当å‰ç›®å½•>"
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr "目录栈为空"
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr "目录栈索引"
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -613,9 +649,9 @@ msgid ""
"by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
-"显示当å‰è®°ä½çš„目录列表. 目录\n"
-" 通过 `pushd' 命令加入这个列表; 您å¯ä»¥\n"
-" 使用 `popd' 命令对列表进行é历.\n"
+"显示当å‰è®°ä½çš„目录列表。 目录\n"
+" 通过 `pushd' 命令加入这个列表;您å¯ä»¥\n"
+" 使用 `popd' 命令对列表进行é历。\n"
" \n"
" 选项:\n"
" -c\t删除所有元素以清除目录栈\n"
@@ -627,12 +663,12 @@ msgstr ""
" \n"
" å‚æ•°:\n"
" +N\t以 dirs ä¸å¸¦é€‰é¡¹è¾“出的顺åºæ˜¾ç¤ºåˆ—表从左起第N个æ¡ç›®ï¼Œ\n"
-" \t从 0 开始.\n"
+" \t从 0 开始。\n"
" \n"
" -N\t以 dirs ä¸å¸¦é€‰é¡¹è¾“出的顺åºæ˜¾ç¤ºåˆ—表从å³èµ·ç¬¬N个项目,\n"
-"\t从 0 开始."
+"\t从 0 开始。"
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -656,29 +692,29 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
-"在目录栈顶部加入一个目录, 或者轮转\n"
-" 目录栈, 是当å‰å·¥ä½œç›®å½•æˆä¸ºæ–°çš„栈顶\n"
-" ä¸å¸¦å‚数时,交æ¢æ ˆé¡¶çš„两个目录.\n"
+"在目录栈顶部加入一个目录,或者论询\n"
+" 目录栈,是当å‰å·¥ä½œç›®å½•æˆä¸ºæ–°çš„栈顶\n"
+" ä¸å¸¦å‚数时,交æ¢æ ˆé¡¶çš„两个目录。\n"
" \n"
" 选项:\n"
" -n\t抑制增加栈中目录时通常的改å˜ç›®å½•çš„æ“作,\n"
" \t从而åªæœ‰æ ˆè¢«æ“作。\n"
" \n"
" å‚数:\n"
-" +N\t轮转栈使得第N个目录(`dirs' 的\n"
-" \t输出列表中左起,从0开始)\n"
+" +N\t轮转栈使得第N个目录(`dirs' 的\n"
+" \t输出列表中左起,从0开始)\n"
" \tå‡è‡³æ ˆé¡¶ã€‚\n"
" \n"
-" -N\t轮转栈使得第N个目录(`dirs' 的\n"
-" \t输出列表中å³èµ·ï¼Œä»Ž0开始)\n"
+" -N\t轮转栈使得第N个目录(`dirs' 的\n"
+" \t输出列表中å³èµ·ï¼Œä»Ž0开始)\n"
" \tå‡è‡³æ ˆé¡¶\n"
" \n"
" dir\t添加目录至栈顶,并\n"
" \t使其æˆä¸ºæ–°çš„当å‰å·¥ä½œç›®å½•ã€‚\n"
" \n"
-" `dirs' 内嵌命令显示目录栈."
+" `dirs' 内建命令显示目录栈."
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -708,48 +744,48 @@ msgstr ""
" å‚数:\n"
" +N\t从 `dirs' 输出的列表中,\n"
" \t删除左起第N个æ¡ç›®ï¼Œè®¡æ•°ä»Ž0开始。例如:`popd +0'\n"
-" \t删除第一个目录, `popd +1' 删除第二个。\n"
+" \t删除第一个目录,`popd +1' 删除第二个。\n"
" \n"
" -N\t从 `dirs' 输出的列表中,\n"
" \t删除å³èµ·ç¬¬N个æ¡ç›®ï¼Œè®¡æ•°ä»Ž0开始,例如:`popd -0'\n"
-" \t删除最åŽä¸€ä¸ªæ¡ç›®ï¼Œ `popd -1' 删除倒数第二个。\n"
+" \t删除最åŽä¸€ä¸ªæ¡ç›®ï¼Œ`popd -1' 删除倒数第二个。\n"
" \n"
-" `dirs' 内嵌å˜é‡æ˜¾ç¤ºç›®å½•æ ˆã€‚"
+" `dirs' 内建å˜é‡æ˜¾ç¤ºç›®å½•æ ˆã€‚"
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr "%s: 无效的超时声明"
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr "读错误: %d: %s"
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
-msgstr "åªèƒ½ä»Žå‡½æ•°æˆ–者æºè„šæœ¬`返回'"
+msgstr "åªèƒ½ä»Žå‡½æ•°æˆ–者æºè„šæœ¬è¿”回(`return')"
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
-msgstr "无法åŒæ—¶å设定一个函数和一个å˜é‡"
+msgstr "无法åŒæ—¶å–消设定一个函数和一个å˜é‡"
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
-msgstr "%s: 无法å设定"
+msgstr "%s: 无法å–消设定"
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
-msgstr "%s: 无法å设定: åªè¯» %s"
+msgstr "%s: 无法å–消设定: åªè¯» %s"
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr "%s: ä¸æ˜¯æ•°ç»„å˜é‡"
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr "%s: ä¸æ˜¯å‡½æ•°"
@@ -758,11 +794,11 @@ msgstr "%s: ä¸æ˜¯å‡½æ•°"
msgid "shift count"
msgstr "ä½ç§»è®¡æ•°"
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
-msgstr "无法åŒæ—¶è®¾å®šå’Œå设定 shell 选项"
+msgstr "无法åŒæ—¶è®¾å®šå’Œå–消设定 shell 选项"
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr "%s: 无效的 shell 选项å"
@@ -774,7 +810,7 @@ msgstr "需è¦æ–‡ä»¶åå‚æ•°"
#: builtins/source.def:155
#, c-format
msgid "%s: file not found"
-msgstr "%s: 没有找到文件"
+msgstr "%s: 文件未找到"
#: builtins/suspend.def:101
msgid "cannot suspend"
@@ -782,7 +818,7 @@ msgstr "无法挂起"
#: builtins/suspend.def:111
msgid "cannot suspend a login shell"
-msgstr "无法挂起一个登录shell"
+msgstr "无法挂起一个登录 shell"
#: builtins/type.def:234
#, c-format
@@ -802,9 +838,9 @@ msgstr "%s 是函数\n"
#: builtins/type.def:296
#, c-format
msgid "%s is a shell builtin\n"
-msgstr "%s 是 shell 内嵌\n"
+msgstr "%s 是 shell 内建\n"
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr "%s 是 %s\n"
@@ -812,47 +848,47 @@ msgstr "%s 是 %s\n"
#: builtins/type.def:337
#, c-format
msgid "%s is hashed (%s)\n"
-msgstr "%s 已被哈希 (%s)\n"
+msgstr "%s å·²ç»å“ˆå¸Œæ“作(%s)\n"
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr "%s: 无效的 limit å‚æ•°"
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
-msgstr "`%c': å的命令"
+msgstr "`%c': 命令错误"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s: æ— æ³•èŽ·å– limit 值: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr "limit"
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s: 无法修改 limit 值: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "八进制数"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr "`%c': 无效的符å·çŠ¶æ€è¿ç®—符"
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr "`%c': 无效的符å·çŠ¶æ€å­—符"
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr "行"
@@ -864,300 +900,315 @@ msgstr "上一个命令: %s\n"
#: error.c:173
#, c-format
msgid "Aborting..."
-msgstr "放弃..."
+msgstr "中止..."
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "未知的命令错误"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
-msgstr "å的命令类型"
+msgstr "错误的命令类型"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
-msgstr "åçš„æ¡ä»¶è¿žæŽ¥ç¬¦"
+msgstr "错误的æ¡ä»¶è¿žæŽ¥ç¬¦"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
-msgstr "å的跳转"
+msgstr "错误的跳转"
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
-msgstr "%s: 为绑定å˜é‡"
+msgstr "%s: 未绑定的å˜é‡"
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "\a 等待输入超时:自动登出\n"
+msgstr "\a 等待输入超时:自动注销\n"
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr "无法从 /dev/null é‡å®šå‘标准输入: %s"
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr "时间格å¼: `%c': 无效的格å¼å­—符"
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
msgid "pipe error"
msgstr "管é“错误"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr "%s: å—é™çš„: 无法在命令å中使用 `/'"
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s: 未找到命令"
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5206
+#, c-format
msgid "%s: %s"
-msgstr "%s 是 %s\n"
+msgstr "%s: %s"
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
-msgstr "%s: %s: å的解释器"
+msgstr "%s: %s: 解释器错误"
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: 无法执行二进制文件"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s 是 shell 内建\n"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "无法å¤åˆ¶æ–‡ä»¶æ述符 %d 到 文件æ述符 %d"
+msgstr "无法å¤åˆ¶æ–‡ä»¶æ述符 %d 到文件æ述符 %d"
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr "表达å¼é€’归层次越界"
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr "递归栈下溢"
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "表达å¼ä¸­æœ‰è¯­æ³•é”™è¯¯"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr "å°è¯•ç»™éžå˜é‡èµ‹å€¼"
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr "除0"
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
-msgstr "错误:å的表达å¼èµ‹å€¼ç¬¦å·"
+msgstr "错误:表达å¼èµ‹å€¼ç¬¦å·é”™è¯¯"
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
-msgstr "æ¡ä»¶è¡¨è¾¾å¼æœŸå¾… `:'"
+msgstr "æ¡ä»¶è¡¨è¾¾å¼éœ€è¦ `:'"
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr "指数å°äºŽ0"
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr "预增符或预å‡ç¬¦åŽåº”跟有标识符"
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr "缺少 `)'"
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
-msgstr "语法错误: 期待æ“作数"
+msgstr "语法错误: 需è¦æ“作数"
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr "语法错误: 无效的算术è¿ç®—符"
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr "%s%s%s: %s (错误符å·æ˜¯ \"%s\")"
+msgstr "%s%s%s: %s (错误符å·æ˜¯ \"%s\")"
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr "无效的算数进制"
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr "数值太大ä¸å¯ä¸ºç®—数进制的基"
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr "%s: 表达å¼é”™è¯¯\n"
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr "getcwd: 无法访问父目录"
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr "无法为文件æ述符 %d é‡ç½®nodelay模å¼"
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr "无法从文件æ述符 %d 为 bash 的输入获å–一个新的文件æ述符"
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr "save_bash_input: å·²ç»å­˜åœ¨æ–°çš„文件æ述符 %d 的缓冲区"
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr "start_pipeline: 进程组管é“"
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr "生æˆçš„è¿›ç¨‹å· %d 显示为è¿è¡Œä¸­çš„任务 %d"
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr "删除进程组 %2$ld 中已åœæ­¢çš„任务 %1$d"
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr "add_process: 进程 %5ld(%s) 进入 the_pipeline"
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr "add_process: è¿›ç¨‹å· %5ld(%s) 标注为ä»æ´»ç€"
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr "describe_pid: %ld: 无此进程å·"
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr "ä¿¡å· %d"
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
-msgstr "完æˆ"
+msgstr "已完æˆ"
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr "å·²åœæ­¢"
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
-msgstr "å·²åœæ­¢ (%s)"
+msgstr "å·²åœæ­¢(%s)"
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr "è¿è¡Œä¸­"
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
-msgstr "å®Œæˆ (%d)"
+msgstr "已完æˆ(%d)"
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr "退出 %d"
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr "未知状æ€"
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
-msgstr "(åæ ¸)"
+msgstr "(核心已转储)"
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
-msgstr "(工作目录:%s)"
+msgstr " (工作目录: %s)"
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr "å­è¿›ç¨‹ setpgid (%ld 到 %ld)"
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr "wait: è¿›ç¨‹å· %ld ä¸æ˜¯å½“å‰ shell çš„å­è¿›ç¨‹"
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr "wiat_for: 没有进程 %ld 的记录"
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr "wait_for_job: 任务 %d å·²åœæ­¢"
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr "%s: 任务已ç»ç»ˆæ­¢"
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr "%s: 任务 %d 已在åŽå°"
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr "waitchld: 打开 WNOHANG 以é¿å…æ— é™é˜»å¡ž"
-#: jobs.c:3538
+#: jobs.c:3711
#, c-format
msgid "%s: line %d: "
msgstr "%s: 行 %d: "
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
-msgstr "(åæ ¸)"
+msgstr " (核心已转储)"
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr "(当å‰å·¥ä½œç›®å½•ï¼š%s)\n"
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr "initialize_job_control: getpgrp 失败"
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr "initialize_job_control: 行规则"
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr "initialize_job_control: setpgid"
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr "无法设定终端进程组 (%d)"
+msgstr "无法设定终端进程组(%d)"
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr "此 shell 中无任务控制"
@@ -1179,54 +1230,54 @@ msgstr ""
msgid "unknown"
msgstr "未知"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr "malloc: 空闲链表中的å—æŸå"
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr "free: 用已ç»é‡Šæ”¾çš„å—作为å‚数被调用"
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr "free: 用未分é…çš„å—作为å‚数被调用"
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
-msgstr "free: 检测到下溢; mh_nbytes越界"
+msgstr "free: 检测到下溢;mh_nbytes 越界"
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
-msgstr "free: 起始和终结å—大å°ä¸ä¸€è‡´"
+msgstr "free: 其实和末尾å—大å°ä¸ä¸€è‡´"
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr "realloc: 用未分é…çš„å—作为å‚数被调用"
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: 检测到下溢; mh_nbytes越界"
+msgstr "realloc: 检测到下溢;mh_nbytes 越界"
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
-msgstr "realloc: 起始和终结å—大å°ä¸ä¸€è‡´"
+msgstr "realloc: 其实和末尾å—大å°ä¸ä¸€è‡´"
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr "register_alloc: 分é…表已ç»å……满了 FIND_ALLOC?\n"
+msgstr "register_alloc: 分é…表已ç»å……满了 FIND_ALLOC?\n"
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
-msgstr "register_alloc: %p 在表中显示为已分�\n"
+msgstr "register_alloc: %p 在表中显示为已分é…?\n"
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: %p 在表中显示为已释放?\n"
+msgstr "register_free: %p 在表中显示为已释放?\n"
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr "无效的基"
@@ -1243,41 +1294,41 @@ msgstr "%s: 无效的æœåŠ¡"
#: lib/sh/netopen.c:306
#, c-format
msgid "%s: bad network path specification"
-msgstr "%s: å的网络路径声明"
+msgstr "%s: 错误的网络路径声明"
#: lib/sh/netopen.c:346
msgid "network operations not supported"
msgstr "ä¸æ”¯æŒç½‘络æ“作"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr "setlocale: LC_ALL: 无法改å˜åŒºåŸŸé€‰é¡¹ (%s)"
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr "setlocale: LC_ALL: 无法改å˜åŒºåŸŸé€‰é¡¹ (%s): %s"
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr "setlocale: %s: 无法改å˜åŒºåŸŸé€‰é¡¹ (%s)"
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr "setlocale: %s: 无法改å˜åŒºåŸŸé€‰é¡¹ (%s): %s"
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "您在 $_ 中有邮件"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "您在 $_ 中有新邮件"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "%s 中的邮件已被阅读\n"
@@ -1288,125 +1339,125 @@ msgstr "语法错误: 需è¦ç®—数表达å¼"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr "语法错误: 期待 `;'"
+msgstr "语法错误: éœ€è¦ `;'"
#: make_cmd.c:326
#, c-format
msgid "syntax error: `((%s))'"
msgstr "语法错误: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
-msgstr "make_here_document: å的指令类型 %d"
+msgstr "make_here_document: 错误的指令类型 %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr "ç«‹å³æ–‡æ¡£åœ¨ç¬¬ %d 行被文件结æŸç¬¦åˆ†éš” (éœ€è¦ `%s')"
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection: é‡å®šå‘指令 `%d' 越界"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr "寻找匹é…çš„ `%c' 是é‡åˆ°äº†æœªé¢„期的文件结æŸç¬¦"
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr "寻找 `]]' 是é‡åˆ°äº†æœªé¢„期的文件结æŸç¬¦"
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr "æ¡ä»¶è¡¨è¾¾å¼ä¸­æœ‰è¯­æ³•é”™è¯¯: æœªé¢„æœŸçš„ç¬¦å· `%s'"
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "æ¡ä»¶è¡¨è¾¾å¼ä¸­æœ‰è¯­æ³•é”™è¯¯"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
-msgstr "æœªé¢„æœŸçš„ç¬¦å· `%s' ,期待 `)'"
+msgstr "æœªé¢„æœŸçš„ç¬¦å· `%s' ï¼Œéœ€è¦ `)'"
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
-msgstr "期待 `)'"
+msgstr "éœ€è¦ `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr "一元æ¡ä»¶è¿ç®—符使用了未预期的å‚æ•° `%s'"
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr "一元æ¡ä»¶è¿ç®—符使用了未预期的å‚æ•°"
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "æœªé¢„æœŸçš„ç¬¦å· `%s',期待二元æ¡ä»¶è¿ç®—符"
+msgstr "æœªé¢„æœŸçš„ç¬¦å· `%s',需è¦äºŒå…ƒæ¡ä»¶è¿ç®—符"
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
-msgstr "期待二元æ¡ä»¶è¿ç®—符"
+msgstr "需è¦äºŒå…ƒæ¡ä»¶è¿ç®—符"
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr "二元æ¡ä»¶è¿ç®—符使用了未预期的å‚æ•° `%s'"
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr "二元æ¡ä»¶è¿ç®—符使用了未预期的å‚æ•°"
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr "æ¡ä»¶å‘½ä»¤ä¸­æœ‰æœªé¢„æœŸçš„ç¬¦å· `%c'"
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr "æ¡ä»¶å‘½ä»¤ä¸­æœ‰æœªé¢„æœŸçš„ç¬¦å· `%s'"
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr "æ¡ä»¶å‘½ä»¤ä¸­æœ‰æœªé¢„æœŸçš„ç¬¦å· %d"
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr "æœªé¢„æœŸçš„ç¬¦å· `%s' 附近有语法错误"
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr "`%s' 附近有语法错误"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr "语法错误: 未预期的文件结尾"
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "语法错误"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr "使用 \"%s\" 退出 shell 。\n"
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr "寻找匹é…çš„ `)' æ—¶é‡åˆ°äº†æœªé¢„期的文件结æŸç¬¦"
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr "补完: 未找到函数 `%s'"
@@ -1416,90 +1467,90 @@ msgstr "补完: 未找到函数 `%s'"
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr "progcomp_insert: %s: 空的补完声明"
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
-msgstr "print_command: åçš„æ¡ä»¶è¿žæŽ¥ç¬¦ `%d'"
+msgstr "print_command: 错误的æ¡ä»¶è¿žæŽ¥ç¬¦ `%d'"
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr "xtrace_set: %d: 无效的文件æ述符"
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr "xtrace_set: 空的文件指针"
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr "cprintf: `%c': 无效的格å¼å­—符"
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr "文件æ述符超出范围"
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr "%s: 模糊的é‡å®šå‘"
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr "%s: 无法覆盖已存在的文件"
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr "%s: å—é™çš„: 无法é‡å®šå‘输出"
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr "无法为立å³æ–‡æ¡£åˆ›å»ºä¸´æ—¶æ–‡ä»¶: %s"
-#: redir.c:196
+#: redir.c:195
#, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s: 无法将文件æ述符赋值给å˜é‡"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr "没有网络时ä¸æ”¯æŒ /dev/(tcp|udp)/host/port"
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr "é‡å®šå‘错误: 无法å¤åˆ¶æ–‡ä»¶æ述符"
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr "无法找到 /tmp ,请创建"
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr "/tmp 必须为有效的目录å"
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c: 无效的选项"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "没有åå­—ï¼"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr "GNU bash,版本 %s-(%s)\n"
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1508,39 +1559,40 @@ msgstr ""
"用法:\t%s [GNU 长选项] [选项] ...\n"
"\t%s [GNU 长选项] [选项] 脚本文件 ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU 常选项:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Shell 选项:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD 或 -c 命令 或 -O shopt选项\t\t(仅适åˆè°ƒç”¨)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s 或 -o 选项\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr "请输入`%s -c \"help set\"' 以获得关于 shell 选项的更多信æ¯\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "请输入 `%s -c help' 以获得关于 shell 内嵌命令的更多信æ¯.\n"
+msgstr "请输入 `%s -c help' 以获得关于 shell 内建命令的更多信æ¯.\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "请使用`bashbug' 命令æ¥æŠ¥å‘Šé”™è¯¯.\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d: 无效的æ“作"
@@ -1595,11 +1647,11 @@ msgstr "段错误"
#: siglist.c:99
msgid "Bad system call"
-msgstr "å的系统调用"
+msgstr "错误的系统调用"
#: siglist.c:103
msgid "Broken pipe"
-msgstr "破裂的管é“"
+msgstr "管é“破裂"
#: siglist.c:107
msgid "Alarm clock"
@@ -1611,7 +1663,7 @@ msgstr "已终止"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr "紧急输入输出情形"
+msgstr "紧急 I/O 状况"
#: siglist.c:119
msgid "Stopped (signal)"
@@ -1627,15 +1679,15 @@ msgstr "å­è¿›ç¨‹å·²æ­»æˆ–者åœæ­¢"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr "å·²åœæ­¢ (tty 输入)"
+msgstr "å·²åœæ­¢(tty 输入)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr "å·²åœæ­¢ (tty 输出)"
+msgstr "å·²åœæ­¢(tty 输出)"
#: siglist.c:147
msgid "I/O ready"
-msgstr "输入输出准备完毕"
+msgstr "I/O 就绪"
#: siglist.c:151
msgid "CPU limit"
@@ -1650,12 +1702,13 @@ msgid "Alarm (virtual)"
msgstr "报警(虚拟)"
#: siglist.c:163
+#, fuzzy
msgid "Alarm (profile)"
msgstr "报警(总结)"
#: siglist.c:167
msgid "Window changed"
-msgstr "窗å£æ”¹å˜"
+msgstr "窗å£å·²æ”¹å˜"
#: siglist.c:171
msgid "Record lock"
@@ -1663,15 +1716,15 @@ msgstr "记录é”"
#: siglist.c:175
msgid "User signal 1"
-msgstr "用户定义信å·1"
+msgstr "用户信å·1"
#: siglist.c:179
msgid "User signal 2"
-msgstr "用户定义信å·2"
+msgstr "用户信å·2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr "HFT输入数æ®æŒ‚èµ·"
+msgstr "HFT 待输入数æ®"
#: siglist.c:187
msgid "power failure imminent"
@@ -1683,27 +1736,27 @@ msgstr "系统å³å°†å´©æºƒ"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr "è¿ç§»è¿›ç¨‹è‡³å¦ä¸€ä¸ªCPU"
+msgstr "è¿ç§»è¿›ç¨‹è‡³å¦ä¸€ä¸ª CPU"
#: siglist.c:199
msgid "programming error"
-msgstr "程åºé”™è¯¯"
+msgstr "编程错误"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr "HFT显示器模å¼æŽˆä¸Ž"
+msgstr "已授予 HFT 监视模å¼"
#: siglist.c:207
msgid "HFT monitor mode retracted"
-msgstr "HFT显示器模å¼æ’¤é”€"
+msgstr "已撤销 HFT 监视模å¼"
#: siglist.c:211
msgid "HFT sound sequence has completed"
-msgstr "HFT声音åºåˆ—已完æˆ"
+msgstr "å·²å®Œæˆ HFT 声音åºåˆ—"
#: siglist.c:215
msgid "Information request"
-msgstr "状æ€è¯·æ±‚"
+msgstr "ä¿¡æ¯è¯·æ±‚"
#: siglist.c:223
msgid "Unknown Signal #"
@@ -1714,240 +1767,251 @@ msgstr "æœªçŸ¥ä¿¡å· #"
msgid "Unknown Signal #%d"
msgstr "æœªçŸ¥ä¿¡å· #%d"
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr "å的替æ¢:在 %2$s 中没有闭åˆçš„ `%1$s'"
+msgstr "错误的替æ¢: 在 %2$s 中没有闭åˆçš„ `%1$s'"
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr "%s: 无法将链表赋值给数组æˆå‘˜"
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr "无法为进程替æ¢åˆ›å»ºç®¡é“"
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr "无法为进程替æ¢åˆ›å»ºå­è¿›ç¨‹"
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr "无法打开命åç®¡é“ %s 进行读å–"
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr "无法打开命åç®¡é“ %s 进行写入"
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr "无法将命åç®¡é“ %s 作为文件æ述符 %d å¤åˆ¶"
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr "无法为命令替æ¢åˆ›å»ºç®¡é“"
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr "无法为命令替æ¢åˆ›å»ºå­è¿›ç¨‹"
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr "command_substitute: 无法将管é“å¤åˆ¶ä¸ºæ–‡ä»¶æ述符1"
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, fuzzy, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr "%s: %s: 追踪文件æ述符的值无效"
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr "%s: å‚数为空或未设置"
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr "%s: å­ä¸²è¡¨è¾¾å¼ < 0"
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
-msgstr "%s: å的替æ¢"
+msgstr "%s: 错误的替æ¢"
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr "$%s: 无法这样赋值"
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr "未æ¥ç‰ˆæœ¬çš„ shell 会强制估值为算数替æ¢"
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr "å的替æ¢:在 %s 中没有闭åˆçš„ \"`\""
+msgstr "错误的替æ¢: 在 %s 中没有闭åˆçš„ \"`\""
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
-msgstr "没有匹é…: %s"
+msgstr "无匹é…: %s"
-#: test.c:146
+#: test.c:147
msgid "argument expected"
-msgstr "期待å‚æ•°"
+msgstr "需è¦å‚æ•°"
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
-msgstr "%s: 期待整数表达å¼"
+msgstr "%s: 需è¦æ•´æ•°è¡¨è¾¾å¼"
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
-msgstr "期待 `)'"
+msgstr "éœ€è¦ `)'"
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
-msgstr "期待`)' , 得到 %s"
+msgstr "需è¦`)',得到 %s"
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
-msgstr "%s: 期待一元表达å¼"
+msgstr "%s: 需è¦ä¸€å…ƒè¡¨è¾¾å¼"
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
-msgstr "%s: 期待二元表达å¼"
+msgstr "%s: 需è¦äºŒå…ƒè¡¨è¾¾å¼"
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr "缺少 `]'"
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
-msgstr "无效的信å·ç¼–å·"
+msgstr "无效的信å·æ•°"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
-msgstr "run_pending_traps: trap_list[%d] 中的å值: %p"
+msgstr "run_pending_traps: trap_list[%d] 中的错误值: %p"
-#: trap.c:341
+#: trap.c:375
#, c-format
msgid ""
"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: ä¿¡å·å¤„ç†å™¨æ˜¯ SIG_DFL, é‡æ–°å‘é€ %d (%s) 给自己"
+msgstr "run_pending_traps: ä¿¡å·å¤„ç†å™¨æ˜¯ SIG_DFL,é‡æ–°å‘é€ %d (%s) 给自己"
-#: trap.c:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
-msgstr "trap_handler: åçš„ä¿¡å· %d"
+msgstr "trap_handler: é”™è¯¯çš„ä¿¡å· %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "`%s' 函数定义导入错误"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
-msgstr "shell 层次 (%d) 太高, é‡ç½®ä¸º 1"
+msgstr "shell 层次 (%d) 太高,é‡ç½®ä¸º 1"
-#: variables.c:1932
+#: variables.c:1865
+#, fuzzy, c-format
+msgid "%s: circular name reference"
+msgstr "%s: %s: 追踪文件æ述符的值无效"
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr "make_local_variable: 当å‰ä½œç”¨åŸŸä¸­æ²¡æœ‰å‡½æ•°ä¸Šä¸‹æ–‡"
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s: 无法将文件æ述符赋值给å˜é‡"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr "all_local_variables: 当å‰ä½œç”¨åŸŸä¸­æ²¡æœ‰å‡½æ•°ä¸Šä¸‹æ–‡"
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr "%s 有空的 exportstr"
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr "%2$s 的 exportstr 中有无效的字符 %1$d"
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr "%s 的 exportstr 中没有 `='"
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr "pop_var_context: shell_variables 的头部ä¸æ˜¯å‡½æ•°ä¸Šä¸‹æ–‡"
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr "pop_var_context: 没有 global_variables 上下文"
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr "pop_scope: shell_variables 的头部ä¸æ˜¯ä¸´æ—¶çŽ¯å¢ƒä½œç”¨åŸŸ"
-#: variables.c:4786
+#: variables.c:5257
#, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s: %s: 无法作为文件打开"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s: %s: 追踪文件æ述符的值无效"
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s: %s 越界"
+
#: version.c:46
#, fuzzy
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "自由软件基金会 版æƒæ‰€æœ‰ 2009"
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
+msgstr "版æƒæ‰€æœ‰ (C) 2011 自由软件基金会"
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-"许å¯è¯ GPLv3+: GNU GPL 许å¯è¯ç‰ˆæœ¬3或者更高 <http://gnu.org/licenses/gpl."
+"许å¯è¯ GPLv3+: GNU GPL 许å¯è¯ç¬¬ä¸‰ç‰ˆæˆ–者更新版本 <http://gnu.org/licenses/gpl."
"html>\n"
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
-msgstr "GNU bash, 版本 %s (%s)\n"
+msgstr "GNU bash,版本 %s (%s)\n"
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "这是自由软件,您å¯ä»¥è‡ªç”±åœ°æ›´æ”¹å’Œé‡æ–°å‘布。\n"
-
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "在法律å…许的范围内没有担ä¿.\n"
+#: version.c:91 version2.c:91
+#, fuzzy
+msgid "This is free software; you are free to change and redistribute it."
+msgstr "本软件是自由软件,您å¯ä»¥è‡ªç”±åœ°æ›´æ”¹å’Œé‡æ–°å‘布。\n"
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr "自由软件基金会 版æƒæ‰€æœ‰ 2009\n"
+#: version.c:92 version2.c:92
+#, fuzzy
+msgid "There is NO WARRANTY, to the extent permitted by law."
+msgstr "在法律许å¯çš„情况下特此明示,本软件ä¸æ供任何担ä¿ã€‚\n"
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"许å¯è¯ GPLv2+: GNU GPL 许å¯è¯ç‰ˆæœ¬2或者更高 <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+#, fuzzy
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
+msgstr "版æƒæ‰€æœ‰ (C) 2011 自由软件基金会"
#: xmalloc.c:91
#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: æ— æ³•åˆ†é… %lu 字节 (%lu 字节已分é…)"
+msgstr "%s: æ— æ³•åˆ†é… %lu 字节(å·²åˆ†é… %lu 字节)"
#: xmalloc.c:93
#, c-format
@@ -1957,7 +2021,7 @@ msgstr "%s: æ— æ³•åˆ†é… %lu 字节"
#: xmalloc.c:163
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr "%s: %s:%d: æ— æ³•åˆ†é… %lu 字节 (%lu 字节已分é…)"
+msgstr "%s: %s:%d: æ— æ³•åˆ†é… %lu 字节(å·²åˆ†é… %lu 字节)"
#: xmalloc.c:165
#, c-format
@@ -1973,8 +2037,9 @@ msgid "unalias [-a] name [name ...]"
msgstr "unalias [-a] å称 [å称 ...]"
#: builtins.c:51
+#, fuzzy
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
"bind [-lpvsPVS] [-m 键映射] [-f 文件å] [-q å称] [-u å称] [-r é”®åºåˆ—] [-x "
@@ -1990,7 +2055,7 @@ msgstr "continue [n]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr "builtin [shell 内嵌 [å‚æ•° ...]]"
+msgstr "builtin [shell 内建 [å‚æ•° ...]]"
#: builtins.c:61
msgid "caller [expr]"
@@ -1998,8 +2063,8 @@ msgstr "caller [表达å¼]"
#: builtins.c:64
#, fuzzy
-msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [目录]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
+msgstr "cd [-L|[-P [-e]]] [目录]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2011,11 +2076,11 @@ msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr "真"
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr "伪"
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
@@ -2023,13 +2088,12 @@ msgstr "command [-pVv] 命令 [å‚æ•° ...]"
#: builtins.c:76
#, fuzzy
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [å称[=值] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [å称[=值] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] å称[=值] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] å称[=值] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2128,12 +2192,12 @@ msgid "return [n]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o 选项å] [å‚æ•° ...]"
+msgstr "set [--abefhkmnptuvxBCHP] [-o 选项å] [--] [å‚æ•° ...]"
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+#, fuzzy
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr "unset [-f] [-v] [å称 ...]"
#: builtins.c:144
@@ -2141,9 +2205,8 @@ msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [å称[=值] ...] 或 export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [å称[=值] ...] 或 readonly -p"
+msgstr "readonly [-aAf] [å称[=值] ...] 或 readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2182,7 +2245,8 @@ msgid "type [-afptP] name [name ...]"
msgstr "type [-afptP] å称 [å称 ...]"
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr "ulimit [-SHacdefilmnpqrstuvx] [é™åˆ¶]"
#: builtins.c:172
@@ -2190,11 +2254,13 @@ msgid "umask [-p] [-S] [mode]"
msgstr "umask [-p] [-S] [模å¼]"
#: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [-n] [id ...]"
msgstr "wait [ç¼–å·]"
#: builtins.c:179
-msgid "wait [pid]"
+#, fuzzy
+msgid "wait [pid ...]"
msgstr "wait [进程å·]"
#: builtins.c:182
@@ -2337,7 +2403,7 @@ msgid ""
msgstr ""
"定义或显示别å。\n"
" \n"
-" ä¸å¸¦å‚数时, `alias' 以å¯é‡ç”¨çš„æ ¼å¼\n"
+" ä¸å¸¦å‚数时,`alias' 以å¯é‡ç”¨çš„æ ¼å¼\n"
" `alias å称=值'在标准输出设备上打å°åˆ«å列表。\n"
" \n"
" å¦åˆ™ï¼Œå¯¹äºŽæ¯ä¸ªç»™å®šå€¼çš„å称定义一个别å。\n"
@@ -2360,14 +2426,15 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
-"从别å定义列表中删除æ¯ä¸€ä¸ªâ€œå字‘。\n"
+"从别å定义列表中删除æ¯ä¸€ä¸ªâ€œåå­—â€ã€‚\n"
" \n"
" 选项:\n"
-" -a\t删除所有的别å定义.\n"
+" -a\t删除所有的别å定义。\n"
" \n"
" 返回æˆåŠŸï¼Œé™¤éžâ€œå字“ä¸æ˜¯ä¸€ä¸ªå·²å­˜åœ¨çš„别å。"
#: builtins.c:289
+#, fuzzy
msgid ""
"Set Readline key bindings and variables.\n"
" \n"
@@ -2401,6 +2468,8 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2437,7 +2506,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 除éžä½¿ç”¨äº†æ— æ³•è¾¨è®¤çš„选项或者错误å‘生,å¦åˆ™è¿”回0."
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2449,13 +2518,13 @@ msgid ""
msgstr ""
"退出 forã€whileã€æˆ– until 循环\n"
" \n"
-" 退出一个 FORã€WHILE 或 UNTIL 循环。如果指定了N,则打破Né‡\n"
+" 退出一个 FORã€WHILE 或 UNTIL 循环。如果指定了N,则跳出Né‡\n"
" 循环\n"
" \n"
" 退出状æ€ï¼š\n"
" 退出状æ€ä¸º0é™¤éž N ä¸å¤§äºŽæˆ–等于 1。"
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2473,7 +2542,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 退出状æ€ä¸º 0 é™¤éž N ä¸å¤§äºŽæˆ–等于1。"
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2486,18 +2555,18 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
-"执行 shell 内嵌。\n"
+"执行 shell 内建。\n"
" \n"
-" 带å‚æ•° ARGs 执行 SHELL-BUILTIN 内嵌,并且ä¸åšå‘½ä»¤æŸ¥è¯¢\n"
-" 在希望以 shell 函数的形å¼æ¥é‡æ–°å®žçŽ° shell 内嵌,\n"
-" 并且希望在函数之内执行该 shell 内嵌的情况下有用处。\n"
+" 带å‚æ•° ARGs 执行 SHELL-BUILTIN 内建,并且ä¸åšå‘½ä»¤æŸ¥è¯¢\n"
+" 在希望以 shell 函数的形å¼æ¥é‡æ–°å®žçŽ° shell 内建,\n"
+" 并且希望在函数之内执行该 shell 内建的情况下有用处。\n"
" \n"
" 退出状æ€ï¼š\n"
-" 以 SHELL-BUILTIN 内嵌的退出状æ€ä¸ºå‡†ï¼Œæˆ–者如果 SHELL-BUILTINä¸æ˜¯ä¸€ä¸ª "
-"shell 内嵌时\n"
+" 以 SHELL-BUILTIN 内建的退出状æ€ä¸ºå‡†ï¼Œæˆ–者如果 SHELL-BUILTINä¸æ˜¯ä¸€ä¸ª "
+"shell 内建时\n"
" 为å‡ã€‚."
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2525,7 +2594,7 @@ msgstr ""
" é™¤éž shell ä¸åœ¨æ‰§è¡Œä¸€ä¸ª shell 函数或者 EXPR 无效,å¦åˆ™è¿”回结\n"
" 果为0。"
-#: builtins.c:383
+#: builtins.c:385
#, fuzzy
msgid ""
"Change the shell working directory.\n"
@@ -2549,13 +2618,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2570,7 +2647,7 @@ msgstr ""
" å˜é‡ CDPATH 定义了å«æœ‰ DIR 的目录的æœç´¢è·¯å¾„。\n"
" CDPATH å˜é‡ä¸­ä¸åŒçš„目录å称由分å·(:)分隔。\n"
" 一个空的目录å称和当å‰ç›®å½•æ˜¯ä¸€æ ·çš„。如果 DIR å˜é‡ç”±\n"
-" æ–œæ  (/) 打头,则 CDPATH å˜é‡ä¸ä¼šè¢«ä½¿ç”¨ã€‚\n"
+" æ–œæ (/) 打头,则 CDPATH å˜é‡ä¸ä¼šè¢«ä½¿ç”¨ã€‚\n"
" \n"
" 如果路径找ä¸åˆ°ï¼Œå¹¶ä¸” shell 选项`cdable_vars' 被设定,\n"
" 则å‚æ•°è¯è¢«å‡å®šä¸ºä¸€ä¸ªå˜é‡å。如果该å˜é‡æœ‰å€¼ï¼Œåˆ™å®ƒçš„值\n"
@@ -2579,14 +2656,15 @@ msgstr ""
" 选项:\n"
" -L\t强制跟éšç¬¦å·é“¾æŽ¥ã€‚\n"
" -P\t使用物ç†ç›®å½•ç»“构而ä¸è·Ÿéšç¬¦å·é“¾æŽ¥\n"
-" \n"
+" -e\t如果使用了 -P å‚数,但ä¸èƒ½æˆåŠŸç¡®å®šå½“å‰å·¥ä½œç›®å½•æ—¶ï¼Œ\n"
+" \t返回éžé›¶çš„返回值。 \n"
" \n"
" 默认情况下跟éšç¬¦å·é“¾æŽ¥ï¼Œå¦‚åŒæŒ‡å®š `-L'。\n"
" \n"
" 退出状æ€ï¼š\n"
-" 如果目录改å˜åˆ™è¿”回0,å¦åˆ™éžé›¶ã€‚"
+" 如果目录改å˜ï¼Œæˆ–在使用 -P 选项时 $PWD 修改æˆåŠŸæ—¶è¿”回0,å¦åˆ™éžé›¶ã€‚"
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2614,7 +2692,7 @@ msgstr ""
" 除éžä½¿ç”¨äº†æ— æ•ˆé€‰é¡¹æˆ–者当å‰ç›®å½•ä¸å¯è¯»ï¼Œå¦åˆ™\n"
" 返回状æ€ä¸º0。"
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2630,7 +2708,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 总是æˆåŠŸã€‚"
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2642,7 +2720,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 总是æˆåŠŸ"
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2654,7 +2732,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 总是失败。"
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2681,13 +2759,13 @@ msgstr ""
" 选项:\n"
" -p\t使用 PATH å˜é‡çš„一个默认值以确ä¿æ‰€æœ‰çš„标准工具\n"
" \t都能被找到。\n"
-" -v\tæ‰“å° COMMAND 命令的æ述,和 `type' 内嵌相似\n"
+" -v\tæ‰“å° COMMAND 命令的æ述,和 `type' 内建相似\n"
" -V\t打å°æ¯ä¸ª COMMAND 命令的详细æè¿°\n"
" \n"
" 退出状æ€\n"
" 返回 COMMAND 命令的返回状æ€ï¼Œæˆ–者当找ä¸åˆ° COMMAND 命令时失败。"
-#: builtins.c:479
+#: builtins.c:487
#, fuzzy
msgid ""
"Set variable values and attributes.\n"
@@ -2708,6 +2786,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2723,7 +2802,8 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
"设定å˜é‡å€¼å’Œå±žæ€§ã€‚\n"
" \n"
@@ -2732,24 +2812,24 @@ msgstr ""
" \n"
" 选项:\n"
" -f\té™åˆ¶åŠ¨ä½œæˆ–显示函数å称和定义\n"
-" -F\té™åˆ¶ä»…显示函数å称(以åŠè¡Œå·å’Œè°ƒè¯•æ—¶\n"
-" \tæºæ–‡ä»¶å)\n"
+" -F\té™åˆ¶ä»…显示函数å称(以åŠè¡Œå·å’Œè°ƒè¯•æ—¶\n"
+" \tæºæ–‡ä»¶å)\n"
" -p\t显示æ¯ä¸ª NAME å˜é‡çš„属性和值\n"
" \n"
" 设定属性的选项:\n"
-" -a\t使 NAME æˆä¸ºä¸‹æ ‡æ•°ç»„(如果支æŒï¼‰\n"
-" -A\t使 NAME æˆä¸ºå…³è”数组 (如果支æŒï¼‰\n"
-" -i\t使 NAME 带有 `integer' (整数)属性\n"
+" -a\t使 NAME æˆä¸ºä¸‹æ ‡æ•°ç»„(如果支æŒ)\n"
+" -A\t使 NAME æˆä¸ºå…³è”数组 (如果支æŒ)\n"
+" -i\t使 NAME 带有 `integer' (整数)属性\n"
" -l\tå°† NAME 在赋值时转为å°å†™\n"
" -r\tå°† NAME å˜ä¸ºåªè¯»\n"
-" -t\t使 NAME 带有 `trace' (追踪)属性\n"
+" -t\t使 NAME 带有 `trace' (追踪)属性\n"
" -u\t将 NAME 在赋值时转为大写\n"
" -x\t将 NAME 导出\n"
" \n"
" 用 `+' 代替 `-' 会关闭指定选项。\n"
" \n"
-" 带有整数属性的å˜é‡åœ¨èµ‹å€¼æ—¶å°†ä½¿ç”¨ç®—术估值(è§\n"
-" `let' 命令)\n"
+" 带有整数属性的å˜é‡åœ¨èµ‹å€¼æ—¶å°†ä½¿ç”¨ç®—术估值(è§\n"
+" `let' 命令)\n"
" \n"
" 在函数中使用时,`declare' 使 NAME æˆä¸ºæœ¬åœ°å˜é‡ï¼Œå’Œ `local'\n"
" 命令一致。\n"
@@ -2757,7 +2837,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éžä½¿ç”¨äº†æ— æ•ˆé€‰é¡¹æˆ–者å‘生错误。"
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2767,7 +2847,8 @@ msgstr ""
" \n"
" 废弃。å‚è§ `help declare'。"
-#: builtins.c:525
+#: builtins.c:535
+#, fuzzy
msgid ""
"Define local variables.\n"
" \n"
@@ -2778,8 +2859,8 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
"定义本地å˜é‡ã€‚\n"
" \n"
@@ -2793,11 +2874,14 @@ msgstr ""
" 返回æˆåŠŸé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项ã€å‘生了错误或者 shell ä¸åœ¨\n"
" 执行一个函数。"
-#: builtins.c:542
+#: builtins.c:552
+#, fuzzy
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2809,6 +2893,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2833,7 +2918,7 @@ msgstr ""
" -E\t显å¼åœ°æŠ‘制对于åæ–œæ è½¬ä¹‰çš„解释\n"
" \n"
" `echo' 对下列åæ–œæ å­—符进行转义:\n"
-" \\a\t警告(å“铃)\n"
+" \\a\t警告(å“铃)\n"
" \\b\t退格\n"
" \\c\t抑制更多的输出\n"
" \\e\t转义字符\n"
@@ -2843,15 +2928,15 @@ msgstr ""
" \\t\t横å‘制表符\n"
" \\v\t纵å‘制表符\n"
" \\\\\tåæ–œæ \n"
-" \\0nnn\t以 NNN (八进制)为 ASCII ç çš„字符。 NNN å¯ä»¥æ˜¯\n"
+" \\0nnn\t以 NNN (八进制)为 ASCII ç çš„字符。 NNN å¯ä»¥æ˜¯\n"
" \t0到3个八进制数字\n"
-" \\xHH\t以 HH (å六进制)为值的八比特字符。HHå¯ä»¥æ˜¯\n"
+" \\xHH\t以 HH (å六进制)为值的八比特字符。HHå¯ä»¥æ˜¯\n"
" \t一个或两个å六进制数字\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éžæœ‰å†™é”™è¯¯å‘生。"
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2873,7 +2958,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 除éžå†™é”™è¯¯å‘生,å¦åˆ™è¿”回æˆåŠŸã€‚"
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2899,31 +2984,31 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-"å¯ç”¨å’Œç¦ç”¨ shell 内嵌。\n"
+"å¯ç”¨å’Œç¦ç”¨ shell 内建。\n"
" \n"
-" å¯ç”¨å’Œç¦ç”¨ shell 的内嵌命令。ç¦ç”¨ä½¿æ‚¨èƒ½å¤Ÿæ‰§è¡Œä¸€ä¸ªå’Œå†…嵌\n"
+" å¯ç”¨å’Œç¦ç”¨ shell 的内建命令。ç¦ç”¨ä½¿æ‚¨èƒ½å¤Ÿæ‰§è¡Œä¸€ä¸ªå’Œå†…建\n"
" 命令åŒåçš„ç£ç›˜ä¸Šçš„命令,而无须使用完整的路径å。\n"
" \n"
" \n"
" 选项:\n"
-" -a\t打å°ä¸€ä¸ªå†…嵌的列表,并显示其中æ¯ä¸€ä¸ªæ˜¯å¦å¯ç”¨\n"
-" -n\tç¦ç”¨æ¯ä¸€ä¸ª NAME 内嵌或者显示一个被ç¦ç”¨çš„内嵌的列表\n"
-" -p\t以å¯é‡ç”¨çš„æ ¼å¼æ‰“å°ä¸€ä¸ªå†…嵌的列表\n"
-" -s\t仅打å°Posix `special' 内嵌的å称\n"
+" -a\t打å°ä¸€ä¸ªå†…建的列表,并显示其中æ¯ä¸€ä¸ªæ˜¯å¦å¯ç”¨\n"
+" -n\tç¦ç”¨æ¯ä¸€ä¸ª NAME 内建或者显示一个被ç¦ç”¨çš„内建的列表\n"
+" -p\t以å¯é‡ç”¨çš„æ ¼å¼æ‰“å°ä¸€ä¸ªå†…建的列表\n"
+" -s\t仅打å°Posix `special' 内建的å称\n"
" \n"
" 控制动æ€åŠ è½½çš„选项:\n"
-" -f\t从共享对象 FILENAME 文件中加载 NAME 内嵌\n"
-" -d\t删除以 -f 选项加载的内嵌\n"
+" -f\t从共享对象 FILENAME 文件中加载 NAME 内建\n"
+" -d\t删除以 -f 选项加载的内建\n"
" \n"
-" ä¸å¸¦é€‰é¡¹æ—¶ï¼Œæ¯ä¸€ä¸ª NAME 内嵌都被å¯ç”¨ã€‚\n"
+" ä¸å¸¦é€‰é¡¹æ—¶ï¼Œæ¯ä¸€ä¸ª NAME 内建都被å¯ç”¨ã€‚\n"
" \n"
-" 如果è¦ä½¿ç”¨ $PATH 中找到的 `test' 而ä¸æ˜¯ shell 内嵌的版本,\n"
+" 如果è¦ä½¿ç”¨ $PATH 中找到的 `test' 而ä¸æ˜¯ shell 内建的版本,\n"
" 输入 `enable -n test'。\n"
" \n"
" 退出状æ€ï¼š\n"
-" 返回æˆåŠŸï¼Œé™¤éž NAME ä¸æ˜¯ä¸€ä¸ª shell 内嵌或者有错误å‘生。"
+" 返回æˆåŠŸï¼Œé™¤éž NAME ä¸æ˜¯ä¸€ä¸ª shell 内建或者有错误å‘生。"
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2942,7 +3027,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 以命令的状æ€é€€å‡ºï¼Œæˆ–者在命令为空的情况下返回æˆåŠŸã€‚"
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2988,7 +3073,7 @@ msgstr ""
" \n"
" \n"
" OPTSTRING 字符串包å«å¾…识别的选项字æ¯ï¼›å¦‚果一个字æ¯åŽé¢è·Ÿ\n"
-" ç€åˆ†å·ï¼Œåˆ™è¯¥é€‰é¡¹æœŸå¾…一个å‚数,而该å‚数应用空格与选项分开。\n"
+" ç€åˆ†å·ï¼Œåˆ™è¯¥é€‰é¡¹éœ€è¦ä¸€ä¸ªå‚数,而该å‚数应用空格与选项分开。\n"
" \n"
" \n"
" æ¯æ¬¡å¯åŠ¨æ—¶ï¼Œgetopts 会将下一个选项放到 shell å˜é‡ $name\n"
@@ -3005,22 +3090,22 @@ msgstr ""
" 须的选项没有找到,getopts 放一个 ':' 到 NAME å˜é‡ä¸­å¹¶ä¸”设\n"
" ç½® OPTARG å˜é‡ä¸ºæ‰¾åˆ°çš„选项字符。如果 getopts ä¸åœ¨æ²‰é»˜æ¨¡\n"
" å¼ä¸­ï¼Œå¹¶ä¸”é‡åˆ°äº†ä¸€ä¸ªæ— æ•ˆçš„选项,getopts 放置一个 '?' 到 NAME \n"
-" å˜é‡ä¸­å¹¶ä¸”å设定 OPTARGå˜é‡ã€‚如果必须的选项没有找到,\n"
-" 一个'?'会被放入 NAMEå˜é‡ä¸­ï¼ŒOPTARG 将被å设定,并且会\n"
+" å˜é‡ä¸­å¹¶ä¸”å–消设定 OPTARGå˜é‡ã€‚如果必须的选项没有找到,\n"
+" 一个'?'会被放入 NAMEå˜é‡ä¸­ï¼ŒOPTARG 将被å–消设定,并且会\n"
" 打å°ä¸€ä¸ªè¯Šæ–­ä¿¡æ¯ã€‚\n"
" \n"
" 如果 shell å˜é‡ OPTERR 的值为0,getopts ç¦ç”¨\n"
" 错误信æ¯çš„打å°ï¼Œå³ä½¿ OPTSTRING å˜é‡çš„第一个字符ä¸æ˜¯ä¸€\n"
" 个冒å·ã€‚OPTERR 的默认值为1.\n"
" \n"
-" Getopts 通常解æžå¯å®šä½çš„å‚数($0 - $9),ä¸è¿‡å¦‚æžœæ供了\n"
+" Getopts 通常解æžå¯å®šä½çš„å‚æ•°($0 - $9),ä¸è¿‡å¦‚æžœæ供了\n"
" 更多的å‚数,它们å而会被解æžã€‚\n"
" \n"
" 退出状æ€ï¼š\n"
" 如果一个选项被找到则返回æˆåŠŸï¼›å¦‚æžœé‡åˆ°äº†é€‰é¡¹çš„结尾或者\n"
" 有错误å‘生则返回失败。"
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -3059,7 +3144,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éž COMMAND 命令没有找到或者出现一个é‡å®šå‘错误。"
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -3071,7 +3156,7 @@ msgstr ""
" ä»¥çŠ¶æ€ N 退出 shell。 如果 N 被çœç•¥ï¼Œåˆ™é€€å‡ºçŠ¶æ€\n"
" 为最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的退出状æ€ã€‚"
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -3084,7 +3169,7 @@ msgstr ""
" ä»¥çŠ¶æ€ N 退出一个登录 shell。如果ä¸åœ¨ç™»å½• shell 中执行,则\n"
" 返回一个错误。"
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -3125,7 +3210,7 @@ msgstr ""
" \t\t然åŽæ˜¯ vi\n"
" -l \t列出行而ä¸ç¼–辑\n"
" -n\t列举时çœç•¥è¡Œå·\n"
-" -r\tå转行的顺åºï¼ˆæœ€æ–°è¡Œåœ¨å‰ï¼‰\n"
+" -r\tå转行的顺åº(最新行在å‰)\n"
" \n"
" 用 `fc -s [模å¼=æ›¿æ¢ ...] [命令]' çš„æ ¼å¼ï¼ŒCOMMAND 命令会在 OLD=NEW\n"
" 替æ¢ä¹‹åŽè¢«é‡æ–°æ‰§è¡Œã€‚\n"
@@ -3137,7 +3222,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œæˆ–者执行的命令的状æ€ï¼›å¦‚果错误å‘生则返回éžé›¶ã€‚"
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -3157,7 +3242,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 放至å‰å°çš„命令状æ€ï¼Œæˆ–者当错误å‘生时为失败。"
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -3179,7 +3264,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éžä»»åŠ¡ç®¡ç†æ²¡æœ‰å¯ç”¨æˆ–者错误å‘生。"
-#: builtins.c:772
+#: builtins.c:784
+#, fuzzy
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -3190,7 +3276,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -3222,7 +3308,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éž NAME 命令没有找到或者使用了无效的选项。"
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -3243,9 +3329,9 @@ msgid ""
" Returns success unless PATTERN is not found or an invalid option is "
"given."
msgstr ""
-"显示内嵌命令的相关信æ¯ã€‚\n"
+"显示内建命令的相关信æ¯ã€‚\n"
" \n"
-" 显示内嵌命令的简略信æ¯ã€‚如果指定了 PATTERN 模å¼ï¼Œ\n"
+" 显示内建命令的简略信æ¯ã€‚如果指定了 PATTERN 模å¼ï¼Œ\n"
" ç»™å‡ºæ‰€æœ‰åŒ¹é… PATTERN 模å¼çš„命令的详细帮助,å¦åˆ™æ‰“\n"
" å°ä¸€ä¸ªå¸®åŠ©ä¸»é¢˜åˆ—表\n"
" \n"
@@ -3261,7 +3347,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éž PATTERN 模å¼æ²¡æœ‰æ‰¾åˆ°æˆ–者使用了无效选项。"
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -3303,7 +3389,7 @@ msgstr ""
" -c\t删除所有æ¡ç›®ä»Žè€Œæ¸…空历å²åˆ—表。\n"
" -d å移é‡\t从指定ä½ç½®åˆ é™¤åŽ†å²åˆ—表。\n"
" \n"
-" -a\t将当å‰ç»˜ç”»çš„历å²è¡Œè¿½åŠ åˆ°åŽ†å²æ–‡ä»¶ä¸­\n"
+" -a\t将当å‰ä¼šè¯çš„历å²è¡Œè¿½åŠ åˆ°åŽ†å²æ–‡ä»¶ä¸­\n"
" -n\t从历å²æ–‡ä»¶ä¸­è¯»å–所有未被读å–çš„è¡Œ\n"
" -r\t读å–历å²æ–‡ä»¶å¹¶å°†å†…容追加到历å²åˆ—表中\n"
" \t中\n"
@@ -3324,7 +3410,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者å‘生错误。"
-#: builtins.c:857
+#: builtins.c:869
+#, fuzzy
msgid ""
"Display status of jobs.\n"
" \n"
@@ -3333,7 +3420,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -3366,7 +3453,7 @@ msgstr ""
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者有错误å‘生。\n"
" 如果使用 -x选项,则返回 COMMAND 命令的退出状æ€ã€‚"
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -3396,7 +3483,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 JOBSPEC 声明。"
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -3429,13 +3516,13 @@ msgstr ""
" -l\t列出信å·å称;如果å‚æ•°åŽè·Ÿ `-l'则被å‡è®¾ä¸ºä¿¡å·ç¼–å·ï¼Œ\n"
" \t而相应的信å·å称会被列出\n"
" \n"
-" Kill æˆä¸º shell 内嵌有两个ç†ç”±ï¼šå®ƒå…许使用任务编å·è€Œä¸æ˜¯è¿›ç¨‹å·ï¼Œ\n"
+" Kill æˆä¸º shell 内建有两个ç†ç”±ï¼šå®ƒå…许使用任务编å·è€Œä¸æ˜¯è¿›ç¨‹å·ï¼Œ\n"
" 并且在å¯ä»¥åˆ›å»ºçš„进程数上é™è¾¾åˆ°æ˜¯å…许进程被æ€æ­»ã€‚\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者有错误å‘生。"
-#: builtins.c:926
+#: builtins.c:938
#, fuzzy
msgid ""
"Evaluate arithmetic expressions.\n"
@@ -3510,7 +3597,7 @@ msgstr ""
" \t&=, ^=, |=\t赋值\n"
" \n"
" Shell å˜é‡å…许作为æ“作数。表达å¼ä¸­çš„å˜é‡çš„å称会被å–代\n"
-" 以值(强制转æ¢ä¸ºç­‰å®½çš„整数)。表达å¼ä¸­çš„å˜é‡ä¸éœ€è¦æ‰“å¼€\n"
+" 以值(强制转æ¢ä¸ºç­‰å®½çš„æ•´æ•°)。表达å¼ä¸­çš„å˜é‡ä¸éœ€è¦æ‰“å¼€\n"
" 整数属性。\n"
" \n"
" \n"
@@ -3521,7 +3608,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 如果最åŽä¸€ä¸ª ARG å‚数估值为0,则 let 返回1ï¼› å¦åˆ™ let 返回0。"
-#: builtins.c:971
+#: builtins.c:983
+#, fuzzy
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -3556,16 +3644,19 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
"从标准输入读å–一行并将其分为ä¸åŒçš„域。\n"
@@ -3605,7 +3696,7 @@ msgstr ""
" 返回ç ä¸ºé›¶ï¼Œé™¤éžé‡åˆ°äº†æ–‡ä»¶ç»“æŸç¬¦ï¼Œè¯»è¶…时,或者无效的文\n"
" 件æ述符作为å‚数传递给了 -u 选项。"
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -3625,7 +3716,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回 N,或者如果 shell ä¸åœ¨æ‰§è¡Œä¸€ä¸ªå‡½æ•°æˆ–引用脚本时,失败。"
-#: builtins.c:1027
+#: builtins.c:1041
#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
@@ -3692,7 +3783,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3710,7 +3801,7 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given."
msgstr ""
-"设定或å设定 shell 选项和ä½ç½®å‚数的值。\n"
+"设定或å–消设定 shell 选项和ä½ç½®å‚数的值。\n"
" \n"
" æ”¹å˜ shell 选项和ä½ç½®å‚数的值,或者显示 shell å˜é‡çš„\n"
" å称和值。\n"
@@ -3719,7 +3810,7 @@ msgstr ""
" -a 标记修改的或者创建的å˜é‡ä¸ºå¯¼å‡ºã€‚\n"
" -b ç«‹å³é€šå‘Šä»»åŠ¡ç»ˆç»“。\n"
" -e 如果一个命令以éžé›¶çŠ¶æ€é€€å‡ºï¼Œåˆ™ç«‹å³é€€å‡ºã€‚\n"
-" -f ç¦ç”¨æ–‡ä»¶å生æˆï¼ˆæ¨¡å¼åŒ¹é…)。\n"
+" -f ç¦ç”¨æ–‡ä»¶å生æˆ(模å¼åŒ¹é…)。\n"
" -h 当查询命令时记ä½å®ƒä»¬çš„ä½ç½®\n"
" -k 所有的赋值å‚数被放在命令的环境中,而ä¸ä»…仅是\n"
" 命令å称之å‰çš„å‚数。\n"
@@ -3786,7 +3877,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„å‚数。"
-#: builtins.c:1112
+#: builtins.c:1126
+#, fuzzy
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3795,6 +3887,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3805,7 +3899,7 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-"å设定 shell å˜é‡å’Œå‡½æ•°çš„值和属性。\n"
+"å–消设定 shell å˜é‡å’Œå‡½æ•°çš„值和属性。\n"
" \n"
" 对æ¯ä¸€ä¸ª NAME å称,删除对应的å˜é‡æˆ–函数。\n"
" \n"
@@ -3813,15 +3907,15 @@ msgstr ""
" -f\tå°†æ¯ä¸ª NAME å称当作函数对待\n"
" -v\tå°†æ¯ä¸ª NAME å称当作å˜é‡å¯¹å¾…\n"
" \n"
-" ä¸å¸¦é€‰é¡¹æ—¶ï¼Œunset 首先å°è¯•å设定一个å˜é‡ï¼Œå¦‚æžœ\n"
-" 失败,å†å°è¯•å设定一个函数。\n"
+" ä¸å¸¦é€‰é¡¹æ—¶ï¼Œunset 首先å°è¯•å–消设定一个å˜é‡ï¼Œå¦‚æžœ\n"
+" 失败,å†å°è¯•å–消设定一个函数。\n"
" \n"
-" æŸäº›å˜é‡ä¸å¯ä»¥è¢«å设定;请查看 `readonly'。\n"
+" æŸäº›å˜é‡ä¸å¯ä»¥è¢«å–消设定;请查看 `readonly'。\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 NAME å称为åªè¯»ã€‚"
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3854,7 +3948,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 NAME å称。"
-#: builtins.c:1151
+#: builtins.c:1167
+#, fuzzy
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3866,7 +3961,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3889,7 +3986,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 NAME å称。"
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3907,7 +4004,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éž N 为负或者大于 $#。"
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3929,7 +4026,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回 FILENAME 文件中最åŽä¸€ä¸ªå‘½ä»¤çš„状æ€ï¼›å¦‚æžœ FILENAME 文件ä¸å¯è¯»åˆ™å¤±è´¥ã€‚"
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3953,7 +4050,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžæ²¡æœ‰å¯ç”¨ä»»åŠ¡æŽ§åˆ¶æˆ–者有错误å‘生。"
-#: builtins.c:1231
+#: builtins.c:1248
#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
@@ -4019,6 +4116,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -4036,7 +4135,7 @@ msgid ""
msgstr ""
"对æ¡ä»¶è¡¨è¾¾å¼è¿›è¡Œä¼°å€¼ã€‚\n"
" \n"
-" æ ¹æ® EXPR 表达å¼çš„估值以状æ€0(真)或1(伪)退出。\n"
+" æ ¹æ® EXPR 表达å¼çš„估值以状æ€0(真)或1(伪)退出。\n"
" 表达å¼å¯ä»¥æ˜¯ä¸€å…ƒæˆ–者二元的。一元表达å¼é€šå¸¸ç”¨äºŽæ£€æµ‹\n"
" 文件状æ€ã€‚åŒæ—¶è¿˜æœ‰å­—符串æ“作符和数字比较æ“作符。\n"
" \n"
@@ -4064,8 +4163,8 @@ msgstr ""
" -G 文件 如果文件被您的组所有则为真。\n"
" -N 文件 如果文件上次被读å–之åŽä¿®æ”¹è¿‡åˆ™ä¸ºçœŸã€‚\n"
" \n"
-" FILE1 -nt FILE2 如果 file1 文件新于 file2 文件则为真(根æ®\n"
-" 修改日期)。\n"
+" FILE1 -nt FILE2 如果 file1 文件新于 file2 文件则为真(æ ¹æ®\n"
+" 修改日期)。\n"
" \n"
" FILE1 -ot FILE2 如果 file1 文件旧于 file2 文件则为真。\n"
" \n"
@@ -4104,7 +4203,7 @@ msgstr ""
" 如果 EXPR 表达å¼ä¼°å€¼ä¸ºçœŸåˆ™è¿”回æˆåŠŸï¼›å¦‚æžœ EXPR 表达å¼ä¼°å€¼\n"
" 为å‡æˆ–者使用了无效的å‚数则返回失败。"
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4113,10 +4212,10 @@ msgid ""
msgstr ""
"估值æ¡ä»¶è¡¨è¾¾å¼ã€‚\n"
" \n"
-" 是内嵌命令 \"test\" çš„åŒä¹‰è¯ï¼Œä½†æ˜¯æœ€åŽä¸€ä¸ªå‚数必须是\n"
+" 是内建命令 \"test\" çš„åŒä¹‰è¯ï¼Œä½†æ˜¯æœ€åŽä¸€ä¸ªå‚数必须是\n"
" 字符 `]',以匹é…起始的 `['。"
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -4135,7 +4234,7 @@ msgstr ""
" 退出状æ€\n"
" 总是æˆåŠŸã€‚"
-#: builtins.c:1332
+#: builtins.c:1350
#, fuzzy
msgid ""
"Trap signals and other events.\n"
@@ -4184,7 +4283,7 @@ msgstr ""
" 定义一个处ç†å™¨ï¼Œåœ¨ shell 接收到信å·å’Œå…¶ä»–æ¡ä»¶ä¸‹æ‰§è¡Œã€‚\n"
" \n"
" ARG å‚数是当 shell 接收到 SIGNAL_SPEC ä¿¡å·æ—¶è¯»å–和执行的命令。\n"
-" 如果没有指定 ARG å‚数(并且åªç»™å‡ºä¸€ä¸ª SIGNAL_SPEC ä¿¡å·ï¼‰æˆ–者\n"
+" 如果没有指定 ARG å‚æ•°(并且åªç»™å‡ºä¸€ä¸ª SIGNAL_SPEC ä¿¡å·)或者\n"
" 或者 ARG å‚数为 `-',æ¯ä¸€ä¸ªæŒ‡å®šçš„å‚数会被é‡ç½®ä¸ºåŽŸå§‹å€¼ã€‚如果 ARG å‚æ•°\n"
" 是一个空串,则æ¯ä¸€ä¸ª SIGNAL_SPEC ä¿¡å·ä¼šè¢« shell 和它å¯åŠ¨çš„命令忽略。\n"
" \n"
@@ -4206,7 +4305,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 SIGSPEC。"
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -4241,15 +4340,15 @@ msgstr ""
" \n"
" 选项:\n"
" -a\t显示所有包å«å称为 NAME çš„å¯æ‰§è¡Œæ–‡ä»¶çš„ä½ç½®ï¼›\n"
-" \t包括别åã€å†…嵌和函数。仅当 `-p' 选项没有使用时\n"
+" \t包括别åã€å†…建和函数。仅当 `-p' 选项没有使用时\n"
" -f\t抑制 shell 函数查询\n"
" -P\t为æ¯ä¸ª NAME å称惊醒 PATH 路径æœç´¢ï¼Œå³ä½¿å®ƒæ˜¯åˆ«åã€\n"
-" \t内嵌或函数,并且返回将被执行的ç£ç›˜ä¸Šæ–‡ä»¶çš„å称。\n"
+" \t内建或函数,并且返回将被执行的ç£ç›˜ä¸Šæ–‡ä»¶çš„å称。\n"
" -p\t返回将被执行的ç£ç›˜ä¸Šæ–‡ä»¶çš„å称,或者当 `type -t NAME'\n"
" \tä¸è¿”回 `file' 时,ä¸è¿”回任何值。\n"
" -t\t返回下列è¯ä¸­çš„任何一个`alias'ã€`keyword'ã€\n"
" \t`function'ã€`builtin'ã€`file'或者`',如果 NAME 是相应的\n"
-" \t一个别åã€shell ä¿ç•™å­—ã€shell 函数ã€shell 内嵌ã€\n"
+" \t一个别åã€shell ä¿ç•™å­—ã€shell 函数ã€shell 内建ã€\n"
" \tç£ç›˜æ–‡ä»¶æˆ–没有找到。\n"
" \n"
" å‚数:\n"
@@ -4258,7 +4357,8 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 如果所有的 NAME 命令都找到则返回æˆåŠŸï¼›ä»»ä½•æ‰¾ä¸åˆ°åˆ™å¤±è´¥ã€‚"
-#: builtins.c:1399
+#: builtins.c:1417
+#, fuzzy
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -4287,6 +4387,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -4307,13 +4410,13 @@ msgstr ""
" 资æºçš„控制。\n"
" \n"
" 选项:\n"
-" -S\t使用 `soft'(软)资æºé™åˆ¶\n"
-" -H\t使用 `hard'(硬)资æºé™åˆ¶\n"
+" -S\t使用 `soft'(软)资æºé™åˆ¶\n"
+" -H\t使用 `hard'(硬)资æºé™åˆ¶\n"
" -a\t所有当å‰é™åˆ¶éƒ½è¢«æŠ¥å‘Š\n"
" -b\t套接字缓存尺寸\n"
" -c\t创建的核文件的最大尺寸\n"
" -d\t一个进程的数æ®åŒºçš„最大尺寸\n"
-" -e\t最高的调度优先级(`nice')\n"
+" -e\t最高的调度优先级(`nice')\n"
" -f\t有 shell åŠå…¶å­è¿›ç¨‹å¯ä»¥å†™çš„最大文件尺寸\n"
" -i\t最多的å¯ä»¥æŒ‚èµ·çš„ä¿¡å·æ•°\n"
" -l\t一个进程å¯ä»¥é”定的最大内存尺寸\n"
@@ -4338,7 +4441,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者错误å‘生。"
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -4370,21 +4473,25 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„ MODE 模å¼æˆ–者选项。"
-#: builtins.c:1464
+#: builtins.c:1485
+#, fuzzy
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
"等待任务完æˆå¹¶è¿”回退出状æ€ã€‚\n"
" \n"
@@ -4396,18 +4503,20 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回 ID 进程的状æ€ï¼›å¦‚果使用了无效的 ID 或者选项则失败。"
-#: builtins.c:1482
+#: builtins.c:1506
+#, 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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
"等待进程完æˆå¹¶ä¸”返回退出状æ€ã€‚\n"
" \n"
@@ -4419,7 +4528,7 @@ msgstr ""
" 返回进程ID的状æ€ï¼›å¦‚æžœID是无效的进程å·æˆ–者指定了无效\n"
" 的选项则失败。"
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -4440,7 +4549,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -4470,7 +4579,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -4503,7 +4612,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -4531,7 +4640,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回状æ€å³PIPELINE 的返回状æ€ã€‚"
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -4549,7 +4658,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -4580,7 +4689,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -4598,7 +4707,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -4616,7 +4725,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -4638,7 +4747,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回 COMMAND 命令的退出状æ€ã€‚"
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -4661,7 +4770,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸé™¤éž NAME 为åªè¯»ã€‚"
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -4679,7 +4788,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回最åŽä¸€ä¸ªæ‰§è¡Œçš„命令的状æ€ã€‚"
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -4703,7 +4812,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回被继续的任务的状æ€ã€‚"
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -4721,7 +4830,7 @@ msgstr ""
" 退出状æ€\n"
" 如果表达å¼ä¼°å€¼ä¸º0则返回 1ï¼›å¦åˆ™è¿”回0。"
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -4751,7 +4860,7 @@ msgstr ""
"执行æ¡ä»¶å‘½ä»¤ã€‚\n"
" \n"
" æ ¹æ®æ¡ä»¶è¡¨è¾¾å¼ EXPRESSION 的估值返回状æ€0或1。表达å¼æŒ‰ç…§\n"
-" `test' 内嵌的相åŒæ¡ä»¶ç»„æˆï¼Œæˆ–者å¯ä»¥æœ‰ä¸‹åˆ—æ“作符连接而æˆï¼š\n"
+" `test' 内建的相åŒæ¡ä»¶ç»„æˆï¼Œæˆ–者å¯ä»¥æœ‰ä¸‹åˆ—æ“作符连接而æˆï¼š\n"
" \n"
" ( EXPRESSION )\t返回 EXPRESSION 表达å¼çš„值\n"
" ! EXPRESSION\t\t如果 EXPRESSION表达å¼ä¸ºå‡åˆ™ä¸ºçœŸï¼Œå¦åˆ™ä¸ºå‡\n"
@@ -4769,7 +4878,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" æ ¹æ® EXPRESSION 的值为0或1。"
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -4836,7 +4945,7 @@ msgstr ""
" HOSTTYPE\t当å‰ç‰ˆæœ¬çš„ BASH 在其之上è¿è¡Œçš„ CPU 类型。\n"
" IGNOREEOF\t控制 shell 收到文件结æŸç¬¦ä½œä¸ºå•ä¸€è¾“å…¥åŽçš„\n"
" \t\t动作。如果设定这个å˜é‡ï¼Œåˆ™å®ƒçš„值是 shell 退出之å‰åœ¨\n"
-" \t\t一个空行上å¯ä»¥è¿žç»­çœ‹åˆ°çš„文件结æŸç¬¦æ•°é‡ï¼ˆé»˜è®¤ä¸º10)。\n"
+" \t\t一个空行上å¯ä»¥è¿žç»­çœ‹åˆ°çš„文件结æŸç¬¦æ•°é‡(默认为10)。\n"
" \t\t未设定时,文件结æŸç¬¦æ ‡å¿—ç€è¾“入的结æŸã€‚\n"
" MACHTYPE\tæ述当å‰è¿è¡Œ Bash 的系统的字符串。\n"
" MAILCHECK\tBash 检测新邮件的频率,以秒为å•ä½ã€‚\n"
@@ -4864,7 +4973,7 @@ msgstr ""
" HISTIGNORE\t用于决定哪些命令被存入历å²æ–‡ä»¶çš„模å¼\n"
" \t\t列表,以冒å·åˆ†éš”。\n"
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -4904,20 +5013,20 @@ msgstr ""
" \t进行æ“作。\n"
" \n"
" å‚数:\n"
-" +N\t旋转栈从而第 N 个目录(`dirs' 显示的列表中左起,从零开始)\n"
+" +N\t旋转栈从而第 N 个目录(`dirs' 显示的列表中左起,从零开始)\n"
" \t将移动到栈顶。\n"
" \n"
-" -N\t旋转栈从而第 N 个目录(`dirs' 显示的列表中å³èµ·ï¼Œä»Žé›¶å¼€å§‹ï¼‰\n"
+" -N\t旋转栈从而第 N 个目录(`dirs' 显示的列表中å³èµ·ï¼Œä»Žé›¶å¼€å§‹)\n"
" \t将移动到栈顶。\n"
" \n"
" dir\tå°† DIR 目录添加到栈顶,并且使其æˆä¸ºå½“å‰å·¥ä½œç›®å½•ã€‚\n"
" \n"
-" `dirs' 内嵌显示目录栈。\n"
+" `dirs' 内建显示目录栈。\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„å‚数或者目录转æ¢å¤±è´¥ã€‚"
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -4953,18 +5062,18 @@ msgstr ""
" \t进行æ“作。\n"
" \n"
" å‚数:\n"
-" +N\t删除第 N 个目录(`dirs' 显示的目录列表中左起,从零开始)。\n"
+" +N\t删除第 N 个目录(`dirs' 显示的目录列表中左起,从零开始)。\n"
" \t例如: `popd +0' 删除第一个目录,popd +1' 删除第二个。\n"
" \n"
-" -N\t删除第 N 个目录(`dirs' 显示的目录列表中å³èµ·ï¼Œä»Žé›¶å¼€å§‹ï¼‰ã€‚\n"
+" -N\t删除第 N 个目录(`dirs' 显示的目录列表中å³èµ·ï¼Œä»Žé›¶å¼€å§‹)。\n"
" \t例如: `popd -0'删除最åŽä¸€ä¸ªç›®å½•ï¼Œï¼Œ`popd -1' 删除倒数第二个。\n"
" \n"
-" `dirs' 内嵌显示目录栈。\n"
+" `dirs' 内建显示目录栈。\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„å‚数或者目录å˜æ¢å¤±è´¥ã€‚"
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -5013,7 +5122,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者å‘生错误。"
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -5033,7 +5142,7 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
-"设定和å设定 shell 选项。\n"
+"设定和å–消设定 shell 选项。\n"
" \n"
" 改å˜æ¯ä¸ª shell 选项 OPTNAME的设定。ä¸å¸¦å‚æ•°\n"
" 时,列出所有 shell 选项并标注æ¯ä¸€ä¸ªé€‰é¡¹æ˜¯å¦è¢«\n"
@@ -5043,14 +5152,14 @@ msgstr ""
" -o\té™åˆ¶ OPTNAME 为定义用于`set -o' 的选项\n"
" -p\t打å°æ¯ä¸ª shell 选项并标注它的状æ€ã€‚\n"
" -q\t抑制输出\n"
-" -s\tå¯ç”¨ï¼ˆè®¾å®šï¼‰æ¯ä¸ª OPTNAME 选项\n"
-" -u\tç¦ç”¨ï¼ˆå设定)æ¯ä¸ª OPTNAME 选项\n"
+" -s\tå¯ç”¨(设定)æ¯ä¸ª OPTNAME 选项\n"
+" -u\tç¦ç”¨(å–消设定)æ¯ä¸ª OPTNAME 选项\n"
" \n"
" 退出状æ€ï¼š\n"
" 如果 OPTNAME 选项被å¯ç”¨åˆ™è¿”回æˆåŠŸï¼›å¦‚果是\n"
" 无效的选项或OPTNAME 被ç¦ç”¨åˆ™å¤±è´¥ã€‚"
-#: builtins.c:1884
+#: builtins.c:1908
#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5068,9 +5177,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -5078,6 +5187,12 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
@@ -5100,7 +5215,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者写或赋值错误å‘生。"
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -5144,7 +5259,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者错误å‘生。"
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -5165,7 +5280,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 除éžä½¿ç”¨äº†æ— æ•ˆé€‰é¡¹æˆ–者错误å‘生,å¦åˆ™è¿”回æˆåŠŸã€‚"
-#: builtins.c:1956
+#: builtins.c:1985
#, fuzzy
msgid ""
"Modify or display completion options.\n"
@@ -5211,14 +5326,14 @@ msgstr ""
" \n"
" å‚数:\n"
" \n"
-" æ¯ä¸ª NAME å称都对应一个之å‰ä»¥é€šè¿‡ `complete' 内嵌定义了补完声明的\n"
+" æ¯ä¸ª NAME å称都对应一个之å‰ä»¥é€šè¿‡ `complete' 内建定义了补完声明的\n"
" 命令。如果ä¸æä¾› NAME å称,当å‰ç”Ÿæˆè¡¥å®Œçš„函数必须调用 compopt,\n"
" 并且当å‰æ‰§è¡Œçš„补完生æˆå™¨é€‰é¡¹ä¼šè¢«ä¿®æ”¹ã€‚\n"
" \n"
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项或者 NAME å称没有定义补完声明。"
-#: builtins.c:1986
+#: builtins.c:2015
#, fuzzy
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
@@ -5284,7 +5399,7 @@ msgstr ""
" 退出状æ€ï¼š\n"
" 返回æˆåŠŸï¼Œé™¤éžä½¿ç”¨äº†æ— æ•ˆçš„选项,或者 ARRAY å˜é‡æ˜¯åªè¯»æˆ–者ä¸æ˜¯ä¸‹æ ‡æ•°ç»„。"
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
@@ -5294,6 +5409,16 @@ msgstr ""
" \n"
" 一个 `mapfile'çš„åŒä¹‰è¯ã€‚"
+#~ msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+#~ msgstr "版æƒæ‰€æœ‰ (C) 2009 自由软件基金会\n"
+
+#~ msgid ""
+#~ "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+#~ "html>\n"
+#~ msgstr ""
+#~ "许å¯è¯ GPLv2+: GNU GPL 许å¯è¯ç¬¬äºŒç‰ˆæˆ–者更新版本 <http://gnu.org/licenses/"
+#~ "gpl.html>\n"
+
#~ msgid ""
#~ ". With EXPR, returns\n"
#~ " "
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index b965d5f7..0c0a4f07 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 38de844e..8a7a34a5 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,98 +7,114 @@ msgid ""
msgstr ""
"Project-Id-Version: bash-3.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2014-02-11 11:19-0500\n"
"PO-Revision-Date: 2008-08-20 20:12+0800\n"
"Last-Translator: Zi-You Dai <ioppooster@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"Language: zh_TW\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
+#: arrayfunc.c:51
msgid "bad array subscript"
msgstr ""
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:356 builtins/declare.def:566
#, c-format
msgid "%s: cannot convert indexed to associative array"
msgstr ""
-#: arrayfunc.c:480
+#: arrayfunc.c:539
#, fuzzy, c-format
msgid "%s: invalid associative array key"
msgstr "%s:無效的功能å稱"
-#: arrayfunc.c:482
+#: arrayfunc.c:541
#, c-format
msgid "%s: cannot assign to non-numeric index"
msgstr ""
-#: arrayfunc.c:518
+#: arrayfunc.c:586
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
msgstr ""
-#: bashhist.c:387
+#: bashhist.c:388
#, c-format
msgid "%s: cannot create: %s"
msgstr ""
-#: bashline.c:3498
+#: bashline.c:3982
msgid "bash_execute_unix_command: cannot find keymap for command"
msgstr ""
-#: bashline.c:3584
+#: bashline.c:4069
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
msgstr ""
-#: bashline.c:3613
+#: bashline.c:4098
#, c-format
msgid "no closing `%c' in %s"
msgstr ""
-#: bashline.c:3647
+#: bashline.c:4132
#, c-format
msgid "%s: missing colon separator"
msgstr ""
+#: braces.c:321
+#, c-format
+msgid "brace expansion: cannot allocate memory for %s"
+msgstr ""
+
+#: braces.c:413
+#, c-format
+msgid "brace expansion: failed to allocate memory for %d elements"
+msgstr ""
+
+#: braces.c:452
+#, c-format
+msgid "brace expansion: failed to allocate memory for `%s'"
+msgstr ""
+
#: builtins/alias.def:132
#, fuzzy, c-format
msgid "`%s': invalid alias name"
msgstr "%s:無效的功能å稱"
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
msgid "line editing not enabled"
msgstr ""
-#: builtins/bind.def:206
+#: builtins/bind.def:212
#, c-format
msgid "`%s': invalid keymap name"
msgstr ""
-#: builtins/bind.def:245
+#: builtins/bind.def:251
#, c-format
msgid "%s: cannot read: %s"
msgstr "%s:ä¸èƒ½è®€å–: %s"
-#: builtins/bind.def:260
+#: builtins/bind.def:266
#, c-format
msgid "`%s': cannot unbind"
msgstr ""
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
#, c-format
msgid "`%s': unknown function name"
msgstr "`%s':未知函數å稱"
-#: builtins/bind.def:303
+#: builtins/bind.def:312
#, c-format
msgid "%s is not bound to any keys.\n"
msgstr ""
-#: builtins/bind.def:307
+#: builtins/bind.def:316
#, c-format
msgid "%s can be invoked via "
msgstr ""
@@ -111,18 +127,22 @@ msgstr ""
msgid "only meaningful in a `for', `while', or `until' loop"
msgstr ""
-#: builtins/caller.def:133
+#: builtins/caller.def:134
msgid ""
"Returns the context of the current subroutine call.\n"
" \n"
" Without EXPR, returns "
msgstr ""
-#: builtins/cd.def:235
+#: builtins/cd.def:319
msgid "HOME not set"
msgstr "HOME 沒有設置"
-#: builtins/cd.def:247
+#: builtins/cd.def:327 builtins/common.c:166 test.c:876
+msgid "too many arguments"
+msgstr "太多引數"
+
+#: builtins/cd.def:338
msgid "OLDPWD not set"
msgstr "OLDPWD 沒有設置"
@@ -131,7 +151,7 @@ msgstr "OLDPWD 沒有設置"
msgid "line %d: "
msgstr ""
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
#, fuzzy, c-format
msgid "warning: "
msgstr "%s:警告:"
@@ -141,11 +161,7 @@ msgstr "%s:警告:"
msgid "%s: usage: "
msgstr "%s:警告:"
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "太多引數"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:506 shell.c:788
#, c-format
msgid "%s: option requires an argument"
msgstr "%s:é¸é …需è¦ä¸€å€‹å¼•æ•¸"
@@ -160,7 +176,7 @@ msgstr "%s:數字引數必須"
msgid "%s: not found"
msgstr "%s:沒有找到"
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:801
#, c-format
msgid "%s: invalid option"
msgstr "%s:無效é¸é …"
@@ -170,7 +186,7 @@ msgstr "%s:無效é¸é …"
msgid "%s: invalid option name"
msgstr "%s:無效é¸é …å"
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:235 general.c:240
#, c-format
msgid "`%s': not a valid identifier"
msgstr "`%s':ä¸æ˜¯ä¸€å€‹æœ‰æ•ˆçš„識別符"
@@ -185,7 +201,7 @@ msgstr "無效信號數"
msgid "invalid hex number"
msgstr "%s:無效的號碼"
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1470
msgid "invalid number"
msgstr ""
@@ -199,7 +215,7 @@ msgstr "%s:無效的信號è¦æ ¼"
msgid "`%s': not a pid or valid job spec"
msgstr "`%s':ä¸æ˜¯ä¸€å€‹ pid 或有效的工作è¦æ ¼"
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:488
#, c-format
msgid "%s: readonly variable"
msgstr "%s:åªè®€è®Šæ•¸"
@@ -271,48 +287,58 @@ msgstr "%s:錯誤檢索當å‰ç›®éŒ„: %s: %s\n"
msgid "%s: ambiguous job spec"
msgstr "%s:å«ç³Šçš„工作è¦æ ¼"
-#: builtins/complete.def:276
+#: builtins/complete.def:277
#, c-format
msgid "%s: invalid action name"
msgstr "%s:無效的功能å稱"
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
#, c-format
msgid "%s: no completion specification"
msgstr "%s:沒有完æˆçš„è¦æ ¼"
-#: builtins/complete.def:696
+#: builtins/complete.def:697
msgid "warning: -F option may not work as you expect"
msgstr "警告: -F é¸é …å¯èƒ½ç„¡æ³•æŒ‰é æœŸå·¥ä½œ"
-#: builtins/complete.def:698
+#: builtins/complete.def:699
msgid "warning: -C option may not work as you expect"
msgstr "警告: -C é¸é …å¯èƒ½ç„¡æ³•æŒ‰é æœŸå·¥ä½œ"
-#: builtins/complete.def:826
+#: builtins/complete.def:828
msgid "not currently executing completion function"
msgstr ""
-#: builtins/declare.def:124
+#: builtins/declare.def:126
msgid "can only be used in a function"
msgstr "åªèƒ½ç”¨åœ¨ä¸€å€‹å‡½æ•¸"
-#: builtins/declare.def:366
+#: builtins/declare.def:315 builtins/declare.def:509
+#, c-format
+msgid "%s: reference variable cannot be an array"
+msgstr ""
+
+#: builtins/declare.def:324
+#, c-format
+msgid "%s: nameref variable self references not allowed"
+msgstr ""
+
+#: builtins/declare.def:398
msgid "cannot use `-f' to make functions"
msgstr ""
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:410 execute_cmd.c:5361
#, c-format
msgid "%s: readonly function"
msgstr "%s:åªè®€å‡½æ•¸"
-#: builtins/declare.def:474
+#: builtins/declare.def:553
#, c-format
msgid "%s: cannot destroy array variables in this way"
msgstr ""
-#: builtins/declare.def:481
+#: builtins/declare.def:560 builtins/read.def:733
#, c-format
msgid "%s: cannot convert associative to indexed array"
msgstr ""
@@ -341,24 +367,23 @@ msgstr ""
msgid "%s: cannot delete: %s"
msgstr ""
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:140 builtins/hash.def:171 execute_cmd.c:5208
+#: shell.c:1481
#, c-format
msgid "%s: is a directory"
msgstr ""
-#: builtins/evalfile.c:140
+#: builtins/evalfile.c:146
#, c-format
msgid "%s: not a regular file"
msgstr ""
-#: builtins/evalfile.c:148
+#: builtins/evalfile.c:155
#, c-format
msgid "%s: file is too large"
msgstr ""
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:190 builtins/evalfile.c:208 shell.c:1491
#, c-format
msgid "%s: cannot execute binary file"
msgstr ""
@@ -391,11 +416,11 @@ msgstr ""
msgid "no command found"
msgstr ""
-#: builtins/fc.def:312 builtins/fc.def:359
+#: builtins/fc.def:320 builtins/fc.def:369
msgid "history specification"
msgstr ""
-#: builtins/fc.def:380
+#: builtins/fc.def:390
#, c-format
msgid "%s: cannot open temp file: %s"
msgstr ""
@@ -439,18 +464,18 @@ msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
msgstr[0] ""
-#: builtins/help.def:168
+#: builtins/help.def:182
#, c-format
msgid ""
"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
msgstr ""
-#: builtins/help.def:185
+#: builtins/help.def:199
#, c-format
msgid "%s: cannot open: %s"
msgstr ""
-#: builtins/help.def:337
+#: builtins/help.def:485
#, c-format
msgid ""
"These shell commands are defined internally. Type `help' to see this list.\n"
@@ -470,7 +495,7 @@ msgstr ""
msgid "history position"
msgstr ""
-#: builtins/history.def:365
+#: builtins/history.def:366
#, c-format
msgid "%s: history expansion failed"
msgstr ""
@@ -484,16 +509,16 @@ msgstr "%s:無效æœå‹™"
msgid "no other options allowed with `-x'"
msgstr ""
-#: builtins/kill.def:198
+#: builtins/kill.def:200
#, c-format
msgid "%s: arguments must be process or job IDs"
msgstr ""
-#: builtins/kill.def:261
+#: builtins/kill.def:263
msgid "Unknown error"
msgstr ""
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:583 expr.c:598
msgid "expression expected"
msgstr ""
@@ -502,64 +527,69 @@ msgstr ""
msgid "%s: not an indexed array"
msgstr ""
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:259 builtins/read.def:302
#, c-format
msgid "%s: invalid file descriptor specification"
msgstr ""
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:267 builtins/read.def:309
#, c-format
msgid "%d: invalid file descriptor: %s"
msgstr ""
-#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#: builtins/mapfile.def:276 builtins/mapfile.def:314
#, fuzzy, c-format
msgid "%s: invalid line count"
msgstr "%s:無效é¸é …"
-#: builtins/mapfile.def:284
+#: builtins/mapfile.def:287
#, fuzzy, c-format
msgid "%s: invalid array origin"
msgstr "%s:無效é¸é …"
-#: builtins/mapfile.def:301
+#: builtins/mapfile.def:304
#, fuzzy, c-format
msgid "%s: invalid callback quantum"
msgstr "%s:無效的功能å稱"
-#: builtins/mapfile.def:333
+#: builtins/mapfile.def:336
msgid "empty array variable name"
msgstr ""
-#: builtins/mapfile.def:354
+#: builtins/mapfile.def:357
msgid "array variable support required"
msgstr ""
-#: builtins/printf.def:394
+#: builtins/printf.def:402
#, c-format
msgid "`%s': missing format character"
msgstr ""
-#: builtins/printf.def:448
+#: builtins/printf.def:456
#, fuzzy, c-format
msgid "`%c': invalid time format specification"
msgstr "%s:無效的信號è¦æ ¼"
-#: builtins/printf.def:635
+#: builtins/printf.def:658
#, c-format
msgid "`%c': invalid format character"
msgstr ""
-#: builtins/printf.def:662
+#: builtins/printf.def:684
#, fuzzy, c-format
msgid "warning: %s: %s"
msgstr "%s:警告:"
-#: builtins/printf.def:840
+#: builtins/printf.def:768
+#, c-format
+msgid "format parsing problem: %s"
+msgstr ""
+
+#: builtins/printf.def:865
msgid "missing hex digit for \\x"
msgstr ""
-#: builtins/printf.def:855
+#: builtins/printf.def:880
#, c-format
msgid "missing unicode digit for \\%c"
msgstr ""
@@ -568,19 +598,24 @@ msgstr ""
msgid "no other directory"
msgstr ""
-#: builtins/pushd.def:462
+#: builtins/pushd.def:354
+#, fuzzy, c-format
+msgid "%s: invalid argument"
+msgstr "%s:無效é¸é …"
+
+#: builtins/pushd.def:468
msgid "<no current directory>"
msgstr ""
-#: builtins/pushd.def:506
+#: builtins/pushd.def:512
msgid "directory stack empty"
msgstr ""
-#: builtins/pushd.def:508
+#: builtins/pushd.def:514
msgid "directory stack index"
msgstr ""
-#: builtins/pushd.def:683
+#: builtins/pushd.def:689
msgid ""
"Display the list of currently remembered directories. Directories\n"
" find their way onto the list with the `pushd' command; you can get\n"
@@ -604,7 +639,7 @@ msgid ""
"\tdirs when invoked without options, starting with zero."
msgstr ""
-#: builtins/pushd.def:705
+#: builtins/pushd.def:711
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"
@@ -629,7 +664,7 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/pushd.def:730
+#: builtins/pushd.def:736
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"
@@ -650,40 +685,40 @@ msgid ""
" The `dirs' builtin displays the directory stack."
msgstr ""
-#: builtins/read.def:252
+#: builtins/read.def:275
#, c-format
msgid "%s: invalid timeout specification"
msgstr ""
-#: builtins/read.def:588
+#: builtins/read.def:678
#, c-format
msgid "read error: %d: %s"
msgstr ""
-#: builtins/return.def:73
+#: builtins/return.def:75
msgid "can only `return' from a function or sourced script"
msgstr ""
-#: builtins/set.def:771
+#: builtins/set.def:782
msgid "cannot simultaneously unset a function and a variable"
msgstr ""
-#: builtins/set.def:808
+#: builtins/set.def:826
#, c-format
msgid "%s: cannot unset"
msgstr ""
-#: builtins/set.def:815
+#: builtins/set.def:843
#, c-format
msgid "%s: cannot unset: readonly %s"
msgstr ""
-#: builtins/set.def:826
+#: builtins/set.def:854
#, c-format
msgid "%s: not an array variable"
msgstr ""
-#: builtins/setattr.def:186
+#: builtins/setattr.def:187
#, c-format
msgid "%s: not a function"
msgstr ""
@@ -692,11 +727,11 @@ msgstr ""
msgid "shift count"
msgstr ""
-#: builtins/shopt.def:264
+#: builtins/shopt.def:279
msgid "cannot set and unset shell options simultaneously"
msgstr ""
-#: builtins/shopt.def:329
+#: builtins/shopt.def:346
#, c-format
msgid "%s: invalid shell option name"
msgstr ""
@@ -738,7 +773,7 @@ msgstr ""
msgid "%s is a shell builtin\n"
msgstr ""
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
#, c-format
msgid "%s is %s\n"
msgstr ""
@@ -748,45 +783,45 @@ msgstr ""
msgid "%s is hashed (%s)\n"
msgstr ""
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:383
#, c-format
msgid "%s: invalid limit argument"
msgstr ""
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:409
#, c-format
msgid "`%c': bad command"
msgstr "`%c':壞的命令"
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:438
#, c-format
msgid "%s: cannot get limit: %s"
msgstr "%s:ä¸èƒ½å¾—到 limit: %s"
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:464
msgid "limit"
msgstr ""
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:476 builtins/ulimit.def:776
#, c-format
msgid "%s: cannot modify limit: %s"
msgstr "%s:ä¸èƒ½ä¿®æ”¹ limit: %s"
-#: builtins/umask.def:118
+#: builtins/umask.def:114
msgid "octal number"
msgstr "八進制數"
-#: builtins/umask.def:231
+#: builtins/umask.def:227
#, c-format
msgid "`%c': invalid symbolic mode operator"
msgstr ""
-#: builtins/umask.def:286
+#: builtins/umask.def:282
#, c-format
msgid "`%c': invalid symbolic mode character"
msgstr ""
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
msgid " line "
msgstr ""
@@ -800,299 +835,314 @@ msgstr "最後的命令: %s\n"
msgid "Aborting..."
msgstr ""
-#: error.c:406
+#: error.c:440
msgid "unknown command error"
msgstr "未知命令錯誤"
-#: error.c:407
+#: error.c:441
msgid "bad command type"
msgstr "壞的命令類型"
-#: error.c:408
+#: error.c:442
msgid "bad connector"
msgstr "壞的連接器"
-#: error.c:409
+#: error.c:443
msgid "bad jump"
msgstr ""
-#: error.c:447
+#: error.c:481
#, c-format
msgid "%s: unbound variable"
msgstr ""
-#: eval.c:181
+#: eval.c:189
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
msgstr ""
-#: execute_cmd.c:504
+#: execute_cmd.c:512
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
msgstr ""
-#: execute_cmd.c:1168
+#: execute_cmd.c:1233
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
msgstr ""
-#: execute_cmd.c:2121
+#: execute_cmd.c:2287
#, fuzzy
msgid "pipe error"
msgstr "寫入錯誤: %s"
-#: execute_cmd.c:4640
+#: execute_cmd.c:4386
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4884
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
msgstr ""
-#: execute_cmd.c:4735
+#: execute_cmd.c:4973
#, c-format
msgid "%s: command not found"
msgstr "%s:命令找ä¸åˆ°"
-#: execute_cmd.c:4959
+#: execute_cmd.c:5206
#, c-format
msgid "%s: %s"
msgstr ""
-#: execute_cmd.c:4995
+#: execute_cmd.c:5243
#, c-format
msgid "%s: %s: bad interpreter"
msgstr ""
-#: execute_cmd.c:5144
+#: execute_cmd.c:5280
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s:ä¸èƒ½å¾—到 limit: %s"
+
+#: execute_cmd.c:5352
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s:ä¸æ˜¯ä¸€å€‹å…§å»º shell"
+
+#: execute_cmd.c:5404
#, c-format
msgid "cannot duplicate fd %d to fd %d"
msgstr ""
-#: expr.c:256
+#: expr.c:259
msgid "expression recursion level exceeded"
msgstr ""
-#: expr.c:280
+#: expr.c:283
msgid "recursion stack underflow"
msgstr ""
-#: expr.c:422
+#: expr.c:431
msgid "syntax error in expression"
msgstr "表é”語法錯誤"
-#: expr.c:463
+#: expr.c:475
msgid "attempted assignment to non-variable"
msgstr ""
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:495 expr.c:858
msgid "division by 0"
msgstr ""
-#: expr.c:517
+#: expr.c:542
msgid "bug: bad expassign token"
msgstr ""
-#: expr.c:564
+#: expr.c:595
msgid "`:' expected for conditional expression"
msgstr ""
-#: expr.c:832
+#: expr.c:919
msgid "exponent less than 0"
msgstr ""
-#: expr.c:887
+#: expr.c:976
msgid "identifier expected after pre-increment or pre-decrement"
msgstr ""
-#: expr.c:910
+#: expr.c:1002
msgid "missing `)'"
msgstr ""
-#: expr.c:959 expr.c:1282
+#: expr.c:1053 expr.c:1390
msgid "syntax error: operand expected"
msgstr ""
-#: expr.c:1284
+#: expr.c:1392
msgid "syntax error: invalid arithmetic operator"
msgstr ""
-#: expr.c:1308
+#: expr.c:1416
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
msgstr ""
-#: expr.c:1366
+#: expr.c:1474
msgid "invalid arithmetic base"
msgstr ""
-#: expr.c:1386
+#: expr.c:1494
msgid "value too great for base"
msgstr ""
-#: expr.c:1435
+#: expr.c:1543
#, c-format
msgid "%s: expression error\n"
msgstr ""
-#: general.c:61
+#: general.c:62
msgid "getcwd: cannot access parent directories"
msgstr ""
-#: input.c:94 subst.c:5082
+#: input.c:102 subst.c:5168
#, c-format
msgid "cannot reset nodelay mode for fd %d"
msgstr ""
-#: input.c:260
+#: input.c:271
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
msgstr ""
-#: input.c:268
+#: input.c:279
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
msgstr ""
-#: jobs.c:468
+#: jobs.c:471
msgid "start_pipeline: pgrp pipe"
msgstr ""
-#: jobs.c:889
+#: jobs.c:893
#, c-format
msgid "forked pid %d appears in running job %d"
msgstr ""
-#: jobs.c:1007
+#: jobs.c:1012
#, c-format
msgid "deleting stopped job %d with process group %ld"
msgstr ""
-#: jobs.c:1112
+#: jobs.c:1117
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
msgstr ""
-#: jobs.c:1115
+#: jobs.c:1120
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
msgstr ""
-#: jobs.c:1430
+#: jobs.c:1435
#, c-format
msgid "describe_pid: %ld: no such pid"
msgstr ""
-#: jobs.c:1445
+#: jobs.c:1450
#, c-format
msgid "Signal %d"
msgstr ""
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1464 jobs.c:1489
msgid "Done"
msgstr ""
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1469 siglist.c:123
msgid "Stopped"
msgstr ""
-#: jobs.c:1468
+#: jobs.c:1473
#, c-format
msgid "Stopped(%s)"
msgstr ""
-#: jobs.c:1472
+#: jobs.c:1477
msgid "Running"
msgstr ""
-#: jobs.c:1486
+#: jobs.c:1491
#, c-format
msgid "Done(%d)"
msgstr ""
-#: jobs.c:1488
+#: jobs.c:1493
#, c-format
msgid "Exit %d"
msgstr ""
-#: jobs.c:1491
+#: jobs.c:1496
msgid "Unknown status"
msgstr ""
-#: jobs.c:1578
+#: jobs.c:1583
#, c-format
msgid "(core dumped) "
msgstr ""
-#: jobs.c:1597
+#: jobs.c:1602
#, c-format
msgid " (wd: %s)"
msgstr ""
-#: jobs.c:1805
+#: jobs.c:1819
#, c-format
msgid "child setpgid (%ld to %ld)"
msgstr ""
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2138 nojobs.c:605
#, c-format
msgid "wait: pid %ld is not a child of this shell"
msgstr ""
-#: jobs.c:2360
+#: jobs.c:2385
#, c-format
msgid "wait_for: No record of process %ld"
msgstr ""
-#: jobs.c:2637
+#: jobs.c:2694
#, c-format
msgid "wait_for_job: job %d is stopped"
msgstr ""
-#: jobs.c:2859
+#: jobs.c:2986
#, c-format
msgid "%s: job has terminated"
msgstr ""
-#: jobs.c:2868
+#: jobs.c:2995
#, c-format
msgid "%s: job %d already in background"
msgstr ""
-#: jobs.c:3089
+#: jobs.c:3220
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
msgstr ""
-#: jobs.c:3538
+#: jobs.c:3711
#, fuzzy, c-format
msgid "%s: line %d: "
msgstr "%s:警告:"
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3725 nojobs.c:843
#, c-format
msgid " (core dumped)"
msgstr ""
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3737 jobs.c:3750
#, c-format
msgid "(wd now: %s)\n"
msgstr ""
-#: jobs.c:3609
+#: jobs.c:3782
msgid "initialize_job_control: getpgrp failed"
msgstr ""
-#: jobs.c:3669
+#: jobs.c:3843
msgid "initialize_job_control: line discipline"
msgstr ""
-#: jobs.c:3679
+#: jobs.c:3853
msgid "initialize_job_control: setpgid"
msgstr ""
-#: jobs.c:3707
+#: jobs.c:3874 jobs.c:3883
#, c-format
msgid "cannot set terminal process group (%d)"
msgstr ""
-#: jobs.c:3712
+#: jobs.c:3888
msgid "no job control in this shell"
msgstr ""
@@ -1113,54 +1163,54 @@ msgstr ""
msgid "unknown"
msgstr "%s:主機未知"
-#: lib/malloc/malloc.c:797
+#: lib/malloc/malloc.c:801
msgid "malloc: block on free list clobbered"
msgstr ""
-#: lib/malloc/malloc.c:874
+#: lib/malloc/malloc.c:878
msgid "free: called with already freed block argument"
msgstr ""
-#: lib/malloc/malloc.c:877
+#: lib/malloc/malloc.c:881
msgid "free: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:896
+#: lib/malloc/malloc.c:900
msgid "free: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:902
+#: lib/malloc/malloc.c:906
msgid "free: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/malloc.c:1001
+#: lib/malloc/malloc.c:1005
msgid "realloc: called with unallocated block argument"
msgstr ""
-#: lib/malloc/malloc.c:1016
+#: lib/malloc/malloc.c:1020
msgid "realloc: underflow detected; mh_nbytes out of range"
msgstr ""
-#: lib/malloc/malloc.c:1022
+#: lib/malloc/malloc.c:1026
msgid "realloc: start and end chunk sizes differ"
msgstr ""
-#: lib/malloc/table.c:177
+#: lib/malloc/table.c:194
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
msgstr ""
-#: lib/malloc/table.c:184
+#: lib/malloc/table.c:203
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
msgstr ""
-#: lib/malloc/table.c:220
+#: lib/malloc/table.c:256
#, c-format
msgid "register_free: %p already in table as free?\n"
msgstr ""
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
msgid "invalid base"
msgstr ""
@@ -1183,35 +1233,35 @@ msgstr "%s:壞的網路路徑è¦æ ¼"
msgid "network operations not supported"
msgstr "ä¸æ”¯æŒç¶²è·¯æ“作"
-#: locale.c:192
+#: locale.c:200
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
msgstr ""
-#: locale.c:194
+#: locale.c:202
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
msgstr ""
-#: locale.c:247
+#: locale.c:259
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
msgstr ""
-#: locale.c:249
+#: locale.c:261
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
msgstr ""
-#: mailcheck.c:433
+#: mailcheck.c:439
msgid "You have mail in $_"
msgstr "您有郵件在 $_"
-#: mailcheck.c:458
+#: mailcheck.c:464
msgid "You have new mail in $_"
msgstr "您有新郵件在 $_"
-#: mailcheck.c:474
+#: mailcheck.c:480
#, c-format
msgid "The mail in %s has been read\n"
msgstr "郵件在 %s 已閱讀\n"
@@ -1229,118 +1279,118 @@ msgstr "語法錯誤: `;' æ„外"
msgid "syntax error: `((%s))'"
msgstr "語法錯誤: `((%s))'"
-#: make_cmd.c:575
+#: make_cmd.c:578
#, c-format
msgid "make_here_document: bad instruction type %d"
msgstr "make_here_document:壞的指示類型 %d"
-#: make_cmd.c:659
+#: make_cmd.c:662
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
msgstr ""
-#: make_cmd.c:756
+#: make_cmd.c:759
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
msgstr "make_redirection:é‡æ–°å°Žå‘指示 `%d' 超出範åœ"
-#: parse.y:3173 parse.y:3444
+#: parse.y:3278 parse.y:3561
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
msgstr ""
-#: parse.y:4025
+#: parse.y:4170
msgid "unexpected EOF while looking for `]]'"
msgstr ""
-#: parse.y:4030
+#: parse.y:4175
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
msgstr ""
-#: parse.y:4034
+#: parse.y:4179
msgid "syntax error in conditional expression"
msgstr "語法錯誤,在有æ¢ä»¶çš„表é”"
-#: parse.y:4112
+#: parse.y:4257
#, c-format
msgid "unexpected token `%s', expected `)'"
msgstr ""
-#: parse.y:4116
+#: parse.y:4261
msgid "expected `)'"
msgstr "é æœŸ `)'"
-#: parse.y:4144
+#: parse.y:4289
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
msgstr ""
-#: parse.y:4148
+#: parse.y:4293
msgid "unexpected argument to conditional unary operator"
msgstr ""
-#: parse.y:4194
+#: parse.y:4339
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
msgstr ""
-#: parse.y:4198
+#: parse.y:4343
msgid "conditional binary operator expected"
msgstr ""
-#: parse.y:4220
+#: parse.y:4365
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
msgstr ""
-#: parse.y:4224
+#: parse.y:4369
msgid "unexpected argument to conditional binary operator"
msgstr ""
-#: parse.y:4235
+#: parse.y:4380
#, c-format
msgid "unexpected token `%c' in conditional command"
msgstr ""
-#: parse.y:4238
+#: parse.y:4383
#, c-format
msgid "unexpected token `%s' in conditional command"
msgstr ""
-#: parse.y:4242
+#: parse.y:4387
#, c-format
msgid "unexpected token %d in conditional command"
msgstr ""
-#: parse.y:5566
+#: parse.y:5737
#, c-format
msgid "syntax error near unexpected token `%s'"
msgstr ""
-#: parse.y:5584
+#: parse.y:5755
#, c-format
msgid "syntax error near `%s'"
msgstr ""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error: unexpected end of file"
msgstr ""
-#: parse.y:5594
+#: parse.y:5765
msgid "syntax error"
msgstr "語法錯誤"
-#: parse.y:5656
+#: parse.y:5827
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
msgstr ""
-#: parse.y:5818
+#: parse.y:5989
msgid "unexpected EOF while looking for matching `)'"
msgstr ""
-#: pcomplete.c:1030
+#: pcomplete.c:1094
#, c-format
msgid "completion: function `%s' not found"
msgstr ""
@@ -1350,90 +1400,90 @@ msgstr ""
msgid "progcomp_insert: %s: NULL COMPSPEC"
msgstr ""
-#: print_cmd.c:296
+#: print_cmd.c:300
#, c-format
msgid "print_command: bad connector `%d'"
msgstr ""
-#: print_cmd.c:368
+#: print_cmd.c:373
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
msgstr ""
-#: print_cmd.c:373
+#: print_cmd.c:378
msgid "xtrace_set: NULL file pointer"
msgstr ""
-#: print_cmd.c:377
+#: print_cmd.c:382
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
msgstr ""
-#: print_cmd.c:1478
+#: print_cmd.c:1518
#, c-format
msgid "cprintf: `%c': invalid format character"
msgstr ""
-#: redir.c:122
+#: redir.c:123 redir.c:170
msgid "file descriptor out of range"
msgstr ""
-#: redir.c:178
+#: redir.c:177
#, c-format
msgid "%s: ambiguous redirect"
msgstr ""
-#: redir.c:182
+#: redir.c:181
#, c-format
msgid "%s: cannot overwrite existing file"
msgstr ""
-#: redir.c:187
+#: redir.c:186
#, c-format
msgid "%s: restricted: cannot redirect output"
msgstr ""
-#: redir.c:192
+#: redir.c:191
#, c-format
msgid "cannot create temp file for here-document: %s"
msgstr ""
-#: redir.c:196
+#: redir.c:195
#, fuzzy, c-format
msgid "%s: cannot assign fd to variable"
msgstr "%s:åªè®€è®Šæ•¸"
-#: redir.c:548
+#: redir.c:582
msgid "/dev/(tcp|udp)/host/port not supported without networking"
msgstr ""
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:861 redir.c:973 redir.c:1034 redir.c:1199
msgid "redirection error: cannot duplicate fd"
msgstr ""
-#: shell.c:333
+#: shell.c:339
msgid "could not find /tmp, please create!"
msgstr ""
-#: shell.c:337
+#: shell.c:343
msgid "/tmp must be a valid directory name"
msgstr ""
-#: shell.c:884
+#: shell.c:890
#, c-format
msgid "%c%c: invalid option"
msgstr "%c%c:無效é¸é …"
-#: shell.c:1652
+#: shell.c:1682
msgid "I have no name!"
msgstr "我沒有åå­—ï¼"
-#: shell.c:1795
+#: shell.c:1827
#, c-format
msgid "GNU bash, version %s-(%s)\n"
msgstr ""
-#: shell.c:1796
+#: shell.c:1828
#, c-format
msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
@@ -1442,39 +1492,40 @@ msgstr ""
"用法:\t%s [GNU é•·é¸é …] [é¸é …] ...\n"
"\t%s [GNU é•·é¸é …] [é¸é …] script-file ...\n"
-#: shell.c:1798
+#: shell.c:1830
msgid "GNU long options:\n"
msgstr "GNU é•·é¸é …:\n"
-#: shell.c:1802
+#: shell.c:1834
msgid "Shell options:\n"
msgstr "Shell é¸é …:\n"
-#: shell.c:1803
-msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
+#: shell.c:1835
+#, fuzzy
+msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
msgstr "\t-irsD 或 -c 命令或 -O shopt_option\t\t(åªæœ‰å¼•ç”¨)\n"
-#: shell.c:1818
+#: shell.c:1850
#, c-format
msgid "\t-%s or -o option\n"
msgstr "\t-%s or -o é¸é …\n"
-#: shell.c:1824
+#: shell.c:1856
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
msgstr "輸入 `%s -c \"help set\"' 更多訊æ¯é—œæ–¼ shell é¸é …。\n"
-#: shell.c:1825
+#: shell.c:1857
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
msgstr "輸入 `%s -c help' 更多訊æ¯é—œæ–¼å…§å»º shell 命令。\n"
-#: shell.c:1826
+#: shell.c:1858
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
msgstr "使用 `bashbug' 命令報告臭蟲。\n"
-#: sig.c:638
+#: sig.c:691
#, c-format
msgid "sigprocmask: %d: invalid operation"
msgstr "sigprocmask: %d:無效æ“作"
@@ -1650,229 +1701,239 @@ msgstr ""
msgid "Unknown Signal #%d"
msgstr ""
-#: subst.c:1333 subst.c:1502
+#: subst.c:1362 subst.c:1520
#, c-format
msgid "bad substitution: no closing `%s' in %s"
msgstr ""
-#: subst.c:2795
+#: subst.c:2847
#, c-format
msgid "%s: cannot assign list to array member"
msgstr ""
-#: subst.c:4979 subst.c:4995
+#: subst.c:5065 subst.c:5081
msgid "cannot make pipe for process substitution"
msgstr ""
-#: subst.c:5027
+#: subst.c:5113
msgid "cannot make child for process substitution"
msgstr ""
-#: subst.c:5072
+#: subst.c:5158
#, c-format
msgid "cannot open named pipe %s for reading"
msgstr ""
-#: subst.c:5074
+#: subst.c:5160
#, c-format
msgid "cannot open named pipe %s for writing"
msgstr ""
-#: subst.c:5092
+#: subst.c:5178
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
msgstr ""
-#: subst.c:5284
+#: subst.c:5376
msgid "cannot make pipe for command substitution"
msgstr ""
-#: subst.c:5322
+#: subst.c:5414
msgid "cannot make child for command substitution"
msgstr ""
-#: subst.c:5339
+#: subst.c:5433
msgid "command_substitute: cannot duplicate pipe as fd 1"
msgstr ""
-#: subst.c:5859
+#: subst.c:5837 subst.c:8050
+#, c-format
+msgid "%s: invalid variable name for name reference"
+msgstr ""
+
+#: subst.c:6048
#, c-format
msgid "%s: parameter null or not set"
msgstr ""
-#: subst.c:6125 subst.c:6140
+#: subst.c:6320 subst.c:6335
#, c-format
msgid "%s: substring expression < 0"
msgstr ""
-#: subst.c:7271
+#: subst.c:7506
#, c-format
msgid "%s: bad substitution"
msgstr ""
-#: subst.c:7347
+#: subst.c:7583
#, c-format
msgid "$%s: cannot assign in this way"
msgstr ""
-#: subst.c:7684
+#: subst.c:7917
msgid ""
"future versions of the shell will force evaluation as an arithmetic "
"substitution"
msgstr ""
-#: subst.c:8149
+#: subst.c:8421
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
msgstr ""
-#: subst.c:9036
+#: subst.c:9322
#, c-format
msgid "no match: %s"
msgstr ""
-#: test.c:146
+#: test.c:147
msgid "argument expected"
msgstr ""
-#: test.c:155
+#: test.c:156
#, c-format
msgid "%s: integer expression expected"
msgstr ""
-#: test.c:263
+#: test.c:264
msgid "`)' expected"
msgstr ""
-#: test.c:265
+#: test.c:266
#, c-format
msgid "`)' expected, found %s"
msgstr ""
-#: test.c:280 test.c:698 test.c:701
+#: test.c:281 test.c:742 test.c:745
#, c-format
msgid "%s: unary operator expected"
msgstr ""
-#: test.c:449 test.c:741
+#: test.c:468 test.c:785
#, c-format
msgid "%s: binary operator expected"
msgstr ""
-#: test.c:816
+#: test.c:860
msgid "missing `]'"
msgstr ""
-#: trap.c:207
+#: trap.c:217
msgid "invalid signal number"
msgstr "無效信號數"
-#: trap.c:337
+#: trap.c:371
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
msgstr ""
-#: trap.c:341
+#: trap.c:375
#, 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:393
+#: trap.c:428
#, c-format
msgid "trap_handler: bad signal %d"
msgstr "trap_handler:壞的信號 %d"
-#: variables.c:363
+#: variables.c:382
#, c-format
msgid "error importing function definition for `%s'"
msgstr "錯誤,輸入的函數定義為 `%s'"
-#: variables.c:755
+#: variables.c:780
#, c-format
msgid "shell level (%d) too high, resetting to 1"
msgstr ""
-#: variables.c:1932
+#: variables.c:1865
+#, c-format
+msgid "%s: circular name reference"
+msgstr ""
+
+#: variables.c:2228
msgid "make_local_variable: no function context at current scope"
msgstr ""
-#: variables.c:3182
+#: variables.c:2247
+#, fuzzy, c-format
+msgid "%s: variable may not be assigned value"
+msgstr "%s:åªè®€è®Šæ•¸"
+
+#: variables.c:3646
msgid "all_local_variables: no function context at current scope"
msgstr ""
-#: variables.c:3427
+#: variables.c:3891
#, c-format
msgid "%s has null exportstr"
msgstr ""
-#: variables.c:3432 variables.c:3441
+#: variables.c:3896 variables.c:3905
#, c-format
msgid "invalid character %d in exportstr for %s"
msgstr ""
-#: variables.c:3447
+#: variables.c:3911
#, c-format
msgid "no `=' in exportstr for %s"
msgstr ""
-#: variables.c:3891
+#: variables.c:4344
msgid "pop_var_context: head of shell_variables not a function context"
msgstr ""
-#: variables.c:3904
+#: variables.c:4357
msgid "pop_var_context: no global_variables context"
msgstr ""
-#: variables.c:3978
+#: variables.c:4431
msgid "pop_scope: head of shell_variables not a temporary environment scope"
msgstr ""
-#: variables.c:4786
+#: variables.c:5257
#, fuzzy, c-format
msgid "%s: %s: cannot open as FILE"
msgstr "%s:ä¸èƒ½è®€å–: %s"
-#: variables.c:4791
+#: variables.c:5262
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
msgstr ""
+#: variables.c:5307
+#, fuzzy, c-format
+msgid "%s: %s: compatibility value out of range"
+msgstr "%s:%s 超出範åœ"
+
#: version.c:46
-msgid "Copyright (C) 2011 Free Software Foundation, Inc."
+msgid "Copyright (C) 2013 Free Software Foundation, Inc."
msgstr ""
-#: version.c:47
+#: version.c:47 version2.c:47
msgid ""
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
"html>\n"
msgstr ""
-#: version.c:86 version2.c:83
+#: version.c:86 version2.c:86
#, c-format
msgid "GNU bash, version %s (%s)\n"
msgstr ""
-#: version.c:91 version2.c:88
-#, c-format
-msgid "This is free software; you are free to change and redistribute it.\n"
+#: version.c:91 version2.c:91
+msgid "This is free software; you are free to change and redistribute it."
msgstr ""
-#: version.c:92 version2.c:89
-#, c-format
-msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+#: version.c:92 version2.c:92
+msgid "There is NO WARRANTY, to the extent permitted by law."
msgstr ""
-#: version2.c:86
-#, c-format
-msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version2.c:87
-#, c-format
-msgid ""
-"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
-"html>\n"
+#: version2.c:46
+msgid "Copyright (C) 2012 Free Software Foundation, Inc."
msgstr ""
#: xmalloc.c:91
@@ -1905,7 +1966,7 @@ msgstr ""
#: builtins.c:51
msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
msgstr ""
@@ -1926,7 +1987,7 @@ msgid "caller [expr]"
msgstr ""
#: builtins.c:64
-msgid "cd [-L|[-P [-e]]] [dir]"
+msgid "cd [-L|[-P [-e]] [-@]] [dir]"
msgstr ""
#: builtins.c:66
@@ -1950,7 +2011,7 @@ msgid "command [-pVv] command [arg ...]"
msgstr ""
#: builtins.c:76
-msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]"
msgstr ""
#: builtins.c:78
@@ -2052,7 +2113,7 @@ msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
msgstr ""
#: builtins.c:142
-msgid "unset [-f] [-v] [name ...]"
+msgid "unset [-f] [-v] [-n] [name ...]"
msgstr ""
#: builtins.c:144
@@ -2101,7 +2162,7 @@ msgid "type [-afptP] name [name ...]"
msgstr ""
#: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
msgstr ""
#: builtins.c:172
@@ -2109,11 +2170,11 @@ msgid "umask [-p] [-S] [mode]"
msgstr ""
#: builtins.c:175
-msgid "wait [id]"
+msgid "wait [-n] [id ...]"
msgstr ""
#: builtins.c:179
-msgid "wait [pid]"
+msgid "wait [pid ...]"
msgstr ""
#: builtins.c:182
@@ -2298,12 +2359,14 @@ msgid ""
" -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"
+" -X\t\t List key sequences bound with -x and associated commands\n"
+" in a form that can be reused as input.\n"
" \n"
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
-#: builtins.c:326
+#: builtins.c:328
msgid ""
"Exit for, while, or until loops.\n"
" \n"
@@ -2314,7 +2377,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:338
+#: builtins.c:340
msgid ""
"Resume for, while, or until loops.\n"
" \n"
@@ -2325,7 +2388,7 @@ msgid ""
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
-#: builtins.c:350
+#: builtins.c:352
msgid ""
"Execute shell builtins.\n"
" \n"
@@ -2339,7 +2402,7 @@ msgid ""
" not a shell builtin.."
msgstr ""
-#: builtins.c:365
+#: builtins.c:367
msgid ""
"Return the context of the current subroutine call.\n"
" \n"
@@ -2355,7 +2418,7 @@ msgid ""
" is invalid."
msgstr ""
-#: builtins.c:383
+#: builtins.c:385
msgid ""
"Change the shell working directory.\n"
" \n"
@@ -2378,13 +2441,21 @@ msgid ""
" its value is used for DIR.\n"
" \n"
" Options:\n"
-" -L\tforce symbolic links to be followed\n"
+" -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+" \tDIR after processing instances of `..'\n"
" -P\tuse the physical directory structure without following symbolic\n"
-" \tlinks\n"
+" \tlinks: resolve symbolic links in DIR before processing instances\n"
+" \tof `..'\n"
" -e\tif the -P option is supplied, and the current working directory\n"
" \tcannot be determined successfully, exit with a non-zero status\n"
+" -@ on systems that support it, present a file with extended "
+"attributes\n"
+" as a directory containing the file attributes\n"
" \n"
" The default is to follow symbolic links, as if `-L' were specified.\n"
+" `..' is processed by removing the immediately previous pathname "
+"component\n"
+" back to a slash or the beginning of DIR.\n"
" \n"
" Exit Status:\n"
" Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2392,7 +2463,7 @@ msgid ""
" -P is used; non-zero otherwise."
msgstr ""
-#: builtins.c:414
+#: builtins.c:422
msgid ""
"Print the name of the current working directory.\n"
" \n"
@@ -2408,7 +2479,7 @@ msgid ""
" cannot be read."
msgstr ""
-#: builtins.c:431
+#: builtins.c:439
msgid ""
"Null command.\n"
" \n"
@@ -2418,7 +2489,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:442
+#: builtins.c:450
msgid ""
"Return a successful result.\n"
" \n"
@@ -2426,7 +2497,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:451
+#: builtins.c:459
msgid ""
"Return an unsuccessful result.\n"
" \n"
@@ -2434,7 +2505,7 @@ msgid ""
" Always fails."
msgstr ""
-#: builtins.c:460
+#: builtins.c:468
msgid ""
"Execute a simple command or display information about commands.\n"
" \n"
@@ -2453,7 +2524,7 @@ msgid ""
" Returns exit status of COMMAND, or failure if COMMAND is not found."
msgstr ""
-#: builtins.c:479
+#: builtins.c:487
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2473,6 +2544,7 @@ msgid ""
" -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"
+" -n\tmake NAME a reference to the variable named by its value\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"
@@ -2488,17 +2560,18 @@ msgid ""
" command. The `-g' option suppresses this behavior.\n"
" \n"
" Exit Status:\n"
-" Returns success unless an invalid option is supplied or an error occurs."
+" Returns success unless an invalid option is supplied or a variable\n"
+" assignment error occurs."
msgstr ""
-#: builtins.c:517
+#: builtins.c:527
msgid ""
"Set variable values and attributes.\n"
" \n"
" Obsolete. See `help declare'."
msgstr ""
-#: builtins.c:525
+#: builtins.c:535
msgid ""
"Define local variables.\n"
" \n"
@@ -2509,15 +2582,17 @@ msgid ""
" 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."
+" Returns success unless an invalid option is supplied, a variable\n"
+" assignment error occurs, or the shell is not executing a function."
msgstr ""
-#: builtins.c:542
+#: builtins.c:552
msgid ""
"Write arguments to the standard output.\n"
" \n"
-" Display the ARGs on the standard output followed by a newline.\n"
+" Display the ARGs, separated by a single space character and followed by "
+"a\n"
+" newline, on the standard output.\n"
" \n"
" Options:\n"
" -n\tdo not append a newline\n"
@@ -2529,6 +2604,7 @@ msgid ""
" \\b\tbackspace\n"
" \\c\tsuppress further output\n"
" \\e\tescape character\n"
+" \\E\tescape character\n"
" \\f\tform feed\n"
" \\n\tnew line\n"
" \\r\tcarriage return\n"
@@ -2544,7 +2620,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:576
+#: builtins.c:588
msgid ""
"Write arguments to the standard output.\n"
" \n"
@@ -2557,7 +2633,7 @@ msgid ""
" Returns success unless a write error occurs."
msgstr ""
-#: builtins.c:591
+#: builtins.c:603
msgid ""
"Enable and disable shell builtins.\n"
" \n"
@@ -2584,7 +2660,7 @@ msgid ""
" Returns success unless NAME is not a shell builtin or an error occurs."
msgstr ""
-#: builtins.c:619
+#: builtins.c:631
msgid ""
"Execute arguments as a shell command.\n"
" \n"
@@ -2596,7 +2672,7 @@ msgid ""
" Returns exit status of command or success if command is null."
msgstr ""
-#: builtins.c:631
+#: builtins.c:643
msgid ""
"Parse option arguments.\n"
" \n"
@@ -2637,7 +2713,7 @@ msgid ""
" encountered or an error occurs."
msgstr ""
-#: builtins.c:673
+#: builtins.c:685
msgid ""
"Replace the shell with the given command.\n"
" \n"
@@ -2660,7 +2736,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:694
+#: builtins.c:706
msgid ""
"Exit the shell.\n"
" \n"
@@ -2668,7 +2744,7 @@ msgid ""
" is that of the last command executed."
msgstr ""
-#: builtins.c:703
+#: builtins.c:715
msgid ""
"Exit a login shell.\n"
" \n"
@@ -2677,7 +2753,7 @@ msgid ""
" in a login shell."
msgstr ""
-#: builtins.c:713
+#: builtins.c:725
msgid ""
"Display or execute commands from the history list.\n"
" \n"
@@ -2707,7 +2783,7 @@ msgid ""
"occurs."
msgstr ""
-#: builtins.c:743
+#: builtins.c:755
msgid ""
"Move job to the foreground.\n"
" \n"
@@ -2719,7 +2795,7 @@ msgid ""
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
-#: builtins.c:758
+#: builtins.c:770
msgid ""
"Move jobs to the background.\n"
" \n"
@@ -2733,7 +2809,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:772
+#: builtins.c:784
msgid ""
"Remember or display program locations.\n"
" \n"
@@ -2744,7 +2820,7 @@ msgid ""
" 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"
+" -p pathname\tuse PATHNAME as 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"
@@ -2757,7 +2833,7 @@ msgid ""
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
-#: builtins.c:797
+#: builtins.c:809
msgid ""
"Display information about builtin commands.\n"
" \n"
@@ -2779,7 +2855,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:821
+#: builtins.c:833
msgid ""
"Display or manipulate the history list.\n"
" \n"
@@ -2813,7 +2889,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:857
+#: builtins.c:869
msgid ""
"Display status of jobs.\n"
" \n"
@@ -2822,7 +2898,7 @@ msgid ""
" \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"
+" -n\tlists 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"
@@ -2837,7 +2913,7 @@ msgid ""
" If -x is used, returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:884
+#: builtins.c:896
msgid ""
"Remove jobs from current shell.\n"
" \n"
@@ -2854,7 +2930,7 @@ msgid ""
" Returns success unless an invalid option or JOBSPEC is given."
msgstr ""
-#: builtins.c:903
+#: builtins.c:915
msgid ""
"Send a signal to a job.\n"
" \n"
@@ -2876,7 +2952,7 @@ msgid ""
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
-#: builtins.c:926
+#: builtins.c:938
msgid ""
"Evaluate arithmetic expressions.\n"
" \n"
@@ -2921,7 +2997,7 @@ msgid ""
" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
msgstr ""
-#: builtins.c:971
+#: builtins.c:983
msgid ""
"Read a line from the standard input and split it into fields.\n"
" \n"
@@ -2956,20 +3032,23 @@ msgid ""
" -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\tnot read within 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\tfractional number. If TIMEOUT is 0, read returns immediately,\n"
+" \t\twithout trying to read any data, returning success only if\n"
+" \t\tinput 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"
+"out\n"
+" (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
" or an invalid file descriptor is supplied as the argument to -u."
msgstr ""
-#: builtins.c:1014
+#: builtins.c:1028
msgid ""
"Return from a shell function.\n"
" \n"
@@ -2981,7 +3060,7 @@ msgid ""
" Returns N, or failure if the shell is not executing a function or script."
msgstr ""
-#: builtins.c:1027
+#: builtins.c:1041
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3047,7 +3126,7 @@ msgid ""
" -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"
+" -P If set, do not resolve 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"
@@ -3066,7 +3145,7 @@ msgid ""
" Returns success unless an invalid option is given."
msgstr ""
-#: builtins.c:1112
+#: builtins.c:1126
msgid ""
"Unset values and attributes of shell variables and functions.\n"
" \n"
@@ -3075,6 +3154,8 @@ msgid ""
" Options:\n"
" -f\ttreat each NAME as a shell function\n"
" -v\ttreat each NAME as a shell variable\n"
+" -n\ttreat each NAME as a name reference and unset the variable itself\n"
+" \trather than the variable it references\n"
" \n"
" Without options, unset first tries to unset a variable, and if that "
"fails,\n"
@@ -3086,7 +3167,7 @@ msgid ""
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
-#: builtins.c:1132
+#: builtins.c:1148
msgid ""
"Set export attribute for shell variables.\n"
" \n"
@@ -3105,7 +3186,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1151
+#: builtins.c:1167
msgid ""
"Mark shell variables as unchangeable.\n"
" \n"
@@ -3117,7 +3198,9 @@ msgid ""
" -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"
+" -p\tdisplay a list of all readonly variables or functions, depending "
+"on\n"
+" whether or not the -f option is given\n"
" \n"
" An argument of `--' disables further option processing.\n"
" \n"
@@ -3125,7 +3208,7 @@ msgid ""
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
-#: builtins.c:1172
+#: builtins.c:1189
msgid ""
"Shift positional parameters.\n"
" \n"
@@ -3136,7 +3219,7 @@ msgid ""
" Returns success unless N is negative or greater than $#."
msgstr ""
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1201 builtins.c:1216
msgid ""
"Execute commands from a file in the current shell.\n"
" \n"
@@ -3150,7 +3233,7 @@ msgid ""
" FILENAME cannot be read."
msgstr ""
-#: builtins.c:1215
+#: builtins.c:1232
msgid ""
"Suspend shell execution.\n"
" \n"
@@ -3164,7 +3247,7 @@ msgid ""
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
-#: builtins.c:1231
+#: builtins.c:1248
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3229,6 +3312,8 @@ msgid ""
" \n"
" -o OPTION True if the shell option OPTION is enabled.\n"
" -v VAR\t True if the shell variable VAR is set\n"
+" -R VAR\t True if the shell variable VAR is set and is a name "
+"reference.\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"
@@ -3245,7 +3330,7 @@ msgid ""
" false or an invalid argument is given."
msgstr ""
-#: builtins.c:1311
+#: builtins.c:1329
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -3253,7 +3338,7 @@ msgid ""
" be a literal `]', to match the opening `['."
msgstr ""
-#: builtins.c:1320
+#: builtins.c:1338
msgid ""
"Display process times.\n"
" \n"
@@ -3265,7 +3350,7 @@ msgid ""
" Always succeeds."
msgstr ""
-#: builtins.c:1332
+#: builtins.c:1350
msgid ""
"Trap signals and other events.\n"
" \n"
@@ -3309,7 +3394,7 @@ msgid ""
"given."
msgstr ""
-#: builtins.c:1368
+#: builtins.c:1386
msgid ""
"Display information about command type.\n"
" \n"
@@ -3339,7 +3424,7 @@ msgid ""
"found."
msgstr ""
-#: builtins.c:1399
+#: builtins.c:1417
msgid ""
"Modify shell resource limits.\n"
" \n"
@@ -3368,6 +3453,9 @@ msgid ""
" -u\tthe maximum number of user processes\n"
" -v\tthe size of virtual memory\n"
" -x\tthe maximum number of file locks\n"
+" -T the maximum number of threads\n"
+" \n"
+" Not all options are available on all platforms.\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"
@@ -3383,7 +3471,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1444
+#: builtins.c:1465
msgid ""
"Display or set file mode mask.\n"
" \n"
@@ -3401,38 +3489,42 @@ msgid ""
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
-#: builtins.c:1464
+#: builtins.c:1485
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"
+" Waits for each process identified by an 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"
+" in that job's pipeline.\n"
+" \n"
+" If the -n option is supplied, waits for the next job to terminate and\n"
+" returns its exit status.\n"
" \n"
" Exit Status:\n"
-" Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-" given."
+" Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1482
+#: builtins.c:1506
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"
+" Waits for each process specified by a PID and reports its termination "
+"status.\n"
+" If PID is not given, waits for all currently active child processes,\n"
+" and the return status 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."
+" Returns the status of the last PID; fails if PID is invalid or an "
+"invalid\n"
+" option is given."
msgstr ""
-#: builtins.c:1497
+#: builtins.c:1521
msgid ""
"Execute commands for each member in a list.\n"
" \n"
@@ -3445,7 +3537,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1511
+#: builtins.c:1535
msgid ""
"Arithmetic for loop.\n"
" \n"
@@ -3462,7 +3554,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1529
+#: builtins.c:1553
msgid ""
"Select words from a list and execute commands.\n"
" \n"
@@ -3482,7 +3574,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1550
+#: builtins.c:1574
msgid ""
"Report time consumed by pipeline's execution.\n"
" \n"
@@ -3498,7 +3590,7 @@ msgid ""
" The return status is the return status of PIPELINE."
msgstr ""
-#: builtins.c:1567
+#: builtins.c:1591
msgid ""
"Execute commands based on pattern matching.\n"
" \n"
@@ -3509,7 +3601,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1579
+#: builtins.c:1603
msgid ""
"Execute commands based on conditional.\n"
" \n"
@@ -3530,7 +3622,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1596
+#: builtins.c:1620
msgid ""
"Execute commands as long as a test succeeds.\n"
" \n"
@@ -3541,7 +3633,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1608
+#: builtins.c:1632
msgid ""
"Execute commands as long as a test does not succeed.\n"
" \n"
@@ -3552,7 +3644,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1620
+#: builtins.c:1644
msgid ""
"Create a coprocess named NAME.\n"
" \n"
@@ -3565,7 +3657,7 @@ msgid ""
" Returns the exit status of COMMAND."
msgstr ""
-#: builtins.c:1634
+#: builtins.c:1658
msgid ""
"Define shell function.\n"
" \n"
@@ -3579,7 +3671,7 @@ msgid ""
" Returns success unless NAME is readonly."
msgstr ""
-#: builtins.c:1648
+#: builtins.c:1672
msgid ""
"Group commands as a unit.\n"
" \n"
@@ -3590,7 +3682,7 @@ msgid ""
" Returns the status of the last command executed."
msgstr ""
-#: builtins.c:1660
+#: builtins.c:1684
msgid ""
"Resume job in foreground.\n"
" \n"
@@ -3604,7 +3696,7 @@ msgid ""
" Returns the status of the resumed job."
msgstr ""
-#: builtins.c:1675
+#: builtins.c:1699
msgid ""
"Evaluate arithmetic expression.\n"
" \n"
@@ -3615,7 +3707,7 @@ msgid ""
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
-#: builtins.c:1687
+#: builtins.c:1711
msgid ""
"Execute conditional command.\n"
" \n"
@@ -3643,7 +3735,7 @@ msgid ""
" 0 or 1 depending on value of EXPRESSION."
msgstr ""
-#: builtins.c:1713
+#: builtins.c:1737
msgid ""
"Common shell variable names and usage.\n"
" \n"
@@ -3697,7 +3789,7 @@ msgid ""
" \t\tcommands should be saved on the history list.\n"
msgstr ""
-#: builtins.c:1770
+#: builtins.c:1794
msgid ""
"Add directories to stack.\n"
" \n"
@@ -3728,7 +3820,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1804
+#: builtins.c:1828
msgid ""
"Remove directories from stack.\n"
" \n"
@@ -3755,7 +3847,7 @@ msgid ""
" change fails."
msgstr ""
-#: builtins.c:1834
+#: builtins.c:1858
msgid ""
"Display directory stack.\n"
" \n"
@@ -3784,7 +3876,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1863
+#: builtins.c:1887
msgid ""
"Set and unset shell options.\n"
" \n"
@@ -3805,7 +3897,7 @@ msgid ""
" given or OPTNAME is disabled."
msgstr ""
-#: builtins.c:1884
+#: builtins.c:1908
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -3822,9 +3914,9 @@ msgid ""
"successive\n"
" argument.\n"
" \n"
-" In addition to the standard format specifications described in printf"
-"(1)\n"
-" and printf(3), printf interprets:\n"
+" In addition to the standard format specifications described in "
+"printf(1),\n"
+" 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"
@@ -3832,13 +3924,19 @@ msgid ""
"format\n"
" string for strftime(3)\n"
" \n"
+" The format is re-used as necessary to consume all of the arguments. If\n"
+" there are fewer arguments than the format requires, extra format\n"
+" specifications behave as if a zero value or null string, as "
+"appropriate,\n"
+" had been supplied.\n"
+" \n"
" Exit Status:\n"
" Returns success unless an invalid option is given or a write or "
"assignment\n"
" error occurs."
msgstr ""
-#: builtins.c:1913
+#: builtins.c:1942
msgid ""
"Specify how arguments are to be completed by Readline.\n"
" \n"
@@ -3865,7 +3963,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1941
+#: builtins.c:1970
msgid ""
"Display possible completions depending on the options.\n"
" \n"
@@ -3878,7 +3976,7 @@ msgid ""
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
-#: builtins.c:1956
+#: builtins.c:1985
msgid ""
"Modify or display completion options.\n"
" \n"
@@ -3909,7 +4007,7 @@ msgid ""
" have a completion specification defined."
msgstr ""
-#: builtins.c:1986
+#: builtins.c:2015
msgid ""
"Read lines from the standard input into an indexed array variable.\n"
" \n"
@@ -3950,7 +4048,7 @@ msgid ""
" not an indexed array."
msgstr ""
-#: builtins.c:2020
+#: builtins.c:2049
msgid ""
"Read lines from a file into an array variable.\n"
" \n"
diff --git a/print_cmd.c b/print_cmd.c
index cd54b2f7..ea63dca4 100644
--- a/print_cmd.c
+++ b/print_cmd.c
@@ -1,6 +1,6 @@
/* print_command -- A way to make readable commands from a command tree. */
-/* Copyright (C) 1989-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -113,6 +113,9 @@ FILE *xtrace_fp = 0;
#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
+/* shell expansion characters: used in print_redirection_list */
+#define EXPCHAR(c) ((c) == '{' || (c) == '~' || (c) == '$' || (c) == '`')
+
#define PRINT_DEFERRED_HEREDOCS(x) \
do { \
if (deferred_heredocs) \
@@ -131,7 +134,8 @@ static REDIRECT *deferred_heredocs;
static int group_command_nesting;
/* A buffer to indicate the indirection level (PS4) when set -x is enabled. */
-static char indirection_string[100];
+static char *indirection_string = 0;
+static int indirection_stringsiz = 0;
/* Print COMMAND (a command tree) on standard output. */
void
@@ -418,17 +422,20 @@ indirection_level_string ()
register int i, j;
char *ps4;
char ps4_firstc[MB_LEN_MAX+1];
- int ps4_firstc_len, ps4_len;
+ int ps4_firstc_len, ps4_len, ineed, old;
- indirection_string[0] = '\0';
ps4 = get_string_value ("PS4");
+ if (indirection_string == 0)
+ indirection_string = xmalloc (indirection_stringsiz = 100);
+ indirection_string[0] = '\0';
if (ps4 == 0 || *ps4 == '\0')
return (indirection_string);
- change_flag ('x', FLAG_OFF);
+ old = change_flag ('x', FLAG_OFF);
ps4 = decode_prompt_string (ps4);
- change_flag ('x', FLAG_ON);
+ if (old)
+ change_flag ('x', FLAG_ON);
if (ps4 == 0 || *ps4 == '\0')
return (indirection_string);
@@ -436,7 +443,7 @@ indirection_level_string ()
#if defined (HANDLE_MULTIBYTE)
ps4_len = strnlen (ps4, MB_CUR_MAX);
ps4_firstc_len = MBLEN (ps4, ps4_len);
- if (ps4_firstc_len == 1 || ps4_firstc_len == 0 || MB_INVALIDCH (ps4_firstc_len))
+ if (ps4_firstc_len == 1 || ps4_firstc_len == 0 || ps4_firstc_len < 0)
{
ps4_firstc[0] = ps4[0];
ps4_firstc[ps4_firstc_len = 1] = '\0';
@@ -447,8 +454,17 @@ indirection_level_string ()
ps4_firstc[0] = ps4[0];
ps4_firstc[ps4_firstc_len = 1] = '\0';
#endif
-
- for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < 99; i += ps4_firstc_len, j++)
+
+ /* Dynamically resize indirection_string so we have room for everything
+ and we don't have to truncate ps4 */
+ ineed = (ps4_firstc_len * indirection_level) + strlen (ps4);
+ if (ineed > indirection_stringsiz - 1)
+ {
+ indirection_stringsiz = ineed + 1;
+ indirection_string = xrealloc (indirection_string, indirection_stringsiz);
+ }
+
+ for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < indirection_stringsiz - 1; i += ps4_firstc_len, j++)
{
if (ps4_firstc_len == 1)
indirection_string[i] = ps4_firstc[0];
@@ -456,7 +472,7 @@ indirection_level_string ()
memcpy (indirection_string+i, ps4_firstc, ps4_firstc_len);
}
- for (j = ps4_firstc_len; *ps4 && ps4[j] && i < 99; i++, j++)
+ for (j = ps4_firstc_len; *ps4 && ps4[j] && i < indirection_stringsiz - 1; i++, j++)
indirection_string[i] = ps4[j];
indirection_string[i] = '\0';
@@ -854,6 +870,21 @@ print_cond_command (cond)
#ifdef DEBUG
void
+debug_print_word_list (s, list, sep)
+ char *s;
+ WORD_LIST *list;
+ char *sep;
+{
+ WORD_LIST *w;
+
+ if (s)
+ fprintf (stderr, "%s: ", s);
+ for (w = list; w; w = w->next)
+ fprintf (stderr, "%s%s", w->word->word, w->next ? sep : "");
+ fprintf (stderr, "\n");
+}
+
+void
debug_print_cond_command (cond)
COND_COM *cond;
{
@@ -959,7 +990,7 @@ print_deferred_heredocs (cstring)
cprintf (" ");
print_heredoc_header (hdtail);
}
- if (cstring[0] && (cstring[0] != ';' || cstring[1]))
+ if (cstring && cstring[0] && (cstring[0] != ';' || cstring[1]))
cprintf ("%s", cstring);
if (deferred_heredocs)
cprintf ("\n");
@@ -983,6 +1014,7 @@ print_redirection_list (redirects)
REDIRECT *redirects;
{
REDIRECT *heredocs, *hdtail, *newredir;
+ char *rw;
heredocs = (REDIRECT *)NULL;
hdtail = heredocs;
@@ -1004,10 +1036,12 @@ print_redirection_list (redirects)
else
hdtail = heredocs = newredir;
}
- else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1)
+ else if (redirects->instruction == r_duplicating_output_word && (redirects->flags & REDIR_VARASSIGN) == 0 && redirects->redirector.dest == 1)
{
/* Temporarily translate it as the execution code does. */
- redirects->instruction = r_err_and_out;
+ rw = redirects->redirectee.filename->word;
+ if (rw && *rw != '-' && DIGIT (*rw) == 0 && EXPCHAR (*rw) == 0)
+ redirects->instruction = r_err_and_out;
print_redirection (redirects);
redirects->instruction = r_duplicating_output_word;
}
@@ -1104,7 +1138,7 @@ print_redirection (redirect)
cprintf ("{%s}", redir_word->word);
else if (redirector != 1)
cprintf ("%d", redirector);
- cprintf (">|%s", redirectee->word);
+ cprintf (">| %s", redirectee->word);
break;
case r_appending_to:
@@ -1215,11 +1249,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);
+ cprintf ("&>> %s", redirectee->word);
break;
}
}
@@ -1259,6 +1293,7 @@ print_function_def (func)
make_command_string_internal (cmdcopy->type == cm_group
? cmdcopy->value.Group->command
: cmdcopy);
+ /* XXX - PRINT_DEFERRED_HEREDOCS (""); ? */
remove_unwind_protect ();
indentation -= indentation_amount;
@@ -1330,6 +1365,7 @@ named_function_string (name, command, flags)
make_command_string_internal (cmdcopy->type == cm_group
? cmdcopy->value.Group->command
: cmdcopy);
+ /* XXX - PRINT_DEFERRED_HEREDOCS (""); ? */
indentation = old_indent;
indentation_amount = old_amount;
@@ -1358,7 +1394,8 @@ named_function_string (name, command, flags)
}
#else
if (result[2] == '\n') /* XXX -- experimental */
- strcpy (result + 2, result + 3);
+ memmove (result + 2, result + 3, strlen (result) - 2);
+
#endif
}
@@ -1394,7 +1431,7 @@ indent (amount)
for (i = 0; amount > 0; amount--)
indentation_string[i++] = ' ';
indentation_string[i] = '\0';
- cprintf (indentation_string);
+ cprintf ("%s", indentation_string);
}
static void
@@ -1491,6 +1528,8 @@ cprintf (control, va_alist)
}
}
+ va_end (args);
+
the_printed_command[command_string_index] = '\0';
}
diff --git a/quit.h b/quit.h
index e7bf05b6..704a8470 100644
--- a/quit.h
+++ b/quit.h
@@ -1,6 +1,6 @@
/* quit.h -- How to handle SIGINT gracefully. */
-/* Copyright (C) 1993-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -21,9 +21,11 @@
#if !defined (_QUIT_H_)
#define _QUIT_H_
-/* Non-zero means SIGINT has already ocurred. */
-extern volatile int interrupt_state;
-extern volatile int terminating_signal;
+#include "sig.h" /* for sig_atomic_t */
+
+/* Non-zero means SIGINT has already occurred. */
+extern volatile sig_atomic_t interrupt_state;
+extern volatile sig_atomic_t terminating_signal;
/* Macro to call a great deal. SIGINT just sets the interrupt_state variable.
When it is safe, put QUIT in the code, and the "interrupt" will take
@@ -36,6 +38,12 @@ extern volatile int terminating_signal;
if (interrupt_state) throw_to_top_level (); \
} while (0)
+#define CHECK_ALRM \
+ do { \
+ if (sigalrm_seen) \
+ longjmp (alrmbuf, 1); \
+ } while (0)
+
#define SETINTERRUPT interrupt_state = 1
#define CLRINTERRUPT interrupt_state = 0
@@ -50,4 +58,22 @@ extern volatile int terminating_signal;
if (terminating_signal) termsig_handler (terminating_signal); \
} while (0)
+#define LASTSIG() \
+ (terminating_signal ? terminating_signal : (interrupt_state ? SIGINT : 0))
+
+#define CHECK_WAIT_INTR \
+ do { \
+ if (wait_signal_received && this_shell_builtin && (this_shell_builtin == wait_builtin)) \
+ longjmp (wait_intr_buf, 1); \
+ } while (0)
+
+#define RESET_SIGTERM \
+ do { \
+ sigterm_received = 0; \
+ } while (0)
+
+#define CHECK_SIGTERM \
+ do { \
+ if (sigterm_received) termsig_handler (SIGTERM); \
+ } while (0)
#endif /* _QUIT_H_ */
diff --git a/redir.c b/redir.c
index 02e477d7..a4a3bb7e 100644
--- a/redir.c
+++ b/redir.c
@@ -1,6 +1,6 @@
/* redir.c -- Functions to perform input and output redirection. */
-/* Copyright (C) 1997-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -63,6 +63,7 @@ int expanding_redir;
extern int posixly_correct;
extern int last_command_exit_value;
+extern int executing_builtin;
extern REDIRECT *redirection_undo_list;
extern REDIRECT *exec_redirection_undo_list;
@@ -115,7 +116,7 @@ redirection_error (temp, error)
allocname = 0;
if (temp->rflags & REDIR_VARASSIGN)
- filename = savestring (temp->redirector.filename->word);
+ filename = allocname = savestring (temp->redirector.filename->word);
else if (temp->redirector.dest < 0)
/* This can happen when read_token_word encounters overflow, like in
exec 4294967297>x */
@@ -156,19 +157,17 @@ redirection_error (temp, error)
else if (expandable_redirection_filename (temp))
{
expandable_filename:
+ oflags = temp->redirectee.filename->flags;
if (posixly_correct && interactive_shell == 0)
- {
- oflags = temp->redirectee.filename->flags;
- temp->redirectee.filename->flags |= W_NOGLOB;
- }
+ temp->redirectee.filename->flags |= W_NOGLOB;
+ temp->redirectee.filename->flags |= W_NOCOMSUB;
filename = allocname = redirection_expand (temp->redirectee.filename);
- if (posixly_correct && interactive_shell == 0)
- temp->redirectee.filename->flags = oflags;
+ temp->redirectee.filename->flags = oflags;
if (filename == 0)
filename = temp->redirectee.filename->word;
}
else if (temp->redirectee.dest < 0)
- filename = "file descriptor out of range";
+ filename = _("file descriptor out of range");
else
filename = allocname = itos (temp->redirectee.dest);
@@ -206,7 +205,7 @@ expandable_filename:
/* Perform the redirections on LIST. If flags & RX_ACTIVE, then actually
make input and output file descriptors, otherwise just do whatever is
- neccessary for side effecting. flags & RX_UNDOABLE says to remember
+ necessary for side effecting. flags & RX_UNDOABLE says to remember
how to undo the redirections later, if non-zero. If flags & RX_CLEXEC
is non-zero, file descriptors opened in do_redirection () have their
close-on-exec flag set. */
@@ -277,6 +276,7 @@ redirection_expand (word)
char *result;
WORD_LIST *tlist1, *tlist2;
WORD_DESC *w;
+ int old;
w = copy_word (word);
if (posixly_correct)
@@ -284,11 +284,22 @@ redirection_expand (word)
tlist1 = make_word_list (w, (WORD_LIST *)NULL);
expanding_redir = 1;
+ /* Now that we've changed the variable search order to ignore the temp
+ environment, see if we need to change the cached IFS values. */
+ sv_ifs ("IFS");
tlist2 = expand_words_no_vars (tlist1);
expanding_redir = 0;
+ /* Now we need to change the variable search order back to include the temp
+ environment. We force the temp environment search by forcing
+ executing_builtin to 1. This is what makes `read' get the right values
+ for the IFS-related cached variables, for example. */
+ old = executing_builtin;
+ executing_builtin = 1;
+ sv_ifs ("IFS");
+ executing_builtin = old;
dispose_words (tlist1);
- if (!tlist2 || tlist2->next)
+ if (tlist2 == 0 || tlist2->next)
{
/* We expanded to no words, or to more than a single word.
Dispose of the word list and return NULL. */
@@ -307,11 +318,23 @@ write_here_string (fd, redirectee)
WORD_DESC *redirectee;
{
char *herestr;
- int herelen, n, e;
+ int herelen, n, e, old;
expanding_redir = 1;
+ /* Now that we've changed the variable search order to ignore the temp
+ environment, see if we need to change the cached IFS values. */
+ sv_ifs ("IFS");
herestr = expand_string_to_string (redirectee->word, 0);
expanding_redir = 0;
+ /* Now we need to change the variable search order back to include the temp
+ environment. We force the temp environment search by forcing
+ executing_builtin to 1. This is what makes `read' get the right values
+ for the IFS-related cached variables, for example. */
+ old = executing_builtin;
+ executing_builtin = 1;
+ sv_ifs ("IFS");
+ executing_builtin = old;
+
herelen = STRLEN (herestr);
n = write (fd, herestr, herelen);
@@ -340,7 +363,7 @@ write_here_document (fd, redirectee)
WORD_DESC *redirectee;
{
char *document;
- int document_len, fd2;
+ int document_len, fd2, old;
FILE *fp;
register WORD_LIST *t, *tlist;
@@ -364,8 +387,19 @@ write_here_document (fd, redirectee)
}
expanding_redir = 1;
+ /* Now that we've changed the variable search order to ignore the temp
+ environment, see if we need to change the cached IFS values. */
+ sv_ifs ("IFS");
tlist = expand_string (redirectee->word, Q_HERE_DOCUMENT);
expanding_redir = 0;
+ /* Now we need to change the variable search order back to include the temp
+ environment. We force the temp environment search by forcing
+ executing_builtin to 1. This is what makes `read' get the right values
+ for the IFS-related cached variables, for example. */
+ old = executing_builtin;
+ executing_builtin = 1;
+ sv_ifs ("IFS");
+ executing_builtin = old;
if (tlist)
{
@@ -616,7 +650,7 @@ redir_open (filename, flags, mode, ri)
int flags, mode;
enum r_instruction ri;
{
- int fd, r;
+ int fd, r, e;
r = find_string_in_alist (filename, _redir_special_filenames, 1);
if (r >= 0)
@@ -632,7 +666,16 @@ redir_open (filename, flags, mode, ri)
}
else
{
- fd = open (filename, flags, mode);
+ do
+ {
+ fd = open (filename, flags, mode);
+ e = errno;
+ if (fd < 0 && e == EINTR)
+ QUIT;
+ errno = e;
+ }
+ while (fd < 0 && errno == EINTR);
+
#if defined (AFS)
if ((fd < 0) && (errno == EACCES))
{
@@ -659,7 +702,7 @@ undoablefd (fd)
/* 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
+ If flags & RX_ACTIVE is zero, then just do whatever is necessary to
produce the appropriate side effects. flags & RX_UNDOABLE, if non-zero,
says to remember how to undo each redirection. If flags & RX_CLEXEC is
non-zero, then we set all file descriptors > 2 that we open to be
@@ -819,20 +862,20 @@ do_redirection_internal (redirect, flags)
REDIRECTION_ERROR (redirector, r, fd);
}
- if (flags & RX_UNDOABLE)
+ if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0)
{
/* Only setup to undo it if the thing to undo is active. */
if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1))
r = add_undo_redirect (redirector, ri, -1);
else
r = add_undo_close_redirect (redirector);
- if (r < 0 && (redirect->rflags & REDIR_VARASSIGN))
- close (redirector);
REDIRECTION_ERROR (r, errno, fd);
}
#if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
+ /* inhibit call to sync_buffered_stream() for async processes */
+ if (redirector != 0 || (subshell_environment & SUBSHELL_ASYNC) == 0)
+ check_bash_input (redirector);
#endif
/* Make sure there is no pending output before we change the state
@@ -933,15 +976,13 @@ do_redirection_internal (redirect, flags)
if (flags & RX_ACTIVE)
{
- if (flags & RX_UNDOABLE)
+ if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0)
{
/* Only setup to undo it if the thing to undo is active. */
if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1))
r = add_undo_redirect (redirector, ri, -1);
else
r = add_undo_close_redirect (redirector);
- if (r < 0 && (redirect->rflags & REDIR_VARASSIGN))
- close (redirector);
REDIRECTION_ERROR (r, errno, fd);
}
@@ -996,15 +1037,13 @@ do_redirection_internal (redirect, flags)
if ((flags & RX_ACTIVE) && (redir_fd != redirector))
{
- if (flags & RX_UNDOABLE)
+ if ((flags & RX_UNDOABLE) && (redirect->rflags & REDIR_VARASSIGN) == 0)
{
/* Only setup to undo it if the thing to undo is active. */
if (fcntl (redirector, F_GETFD, 0) != -1)
r = add_undo_redirect (redirector, ri, redir_fd);
else
r = add_undo_close_redirect (redirector);
- if (r < 0 && (redirect->rflags & REDIR_VARASSIGN))
- close (redirector);
REDIRECTION_ERROR (r, errno, -1);
}
if ((flags & RX_UNDOABLE) && (ri == r_move_input || ri == r_move_output))
@@ -1018,7 +1057,9 @@ do_redirection_internal (redirect, flags)
}
}
#if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
+ /* inhibit call to sync_buffered_stream() for async processes */
+ if (redirector != 0 || (subshell_environment & SUBSHELL_ASYNC) == 0)
+ check_bash_input (redirector);
#endif
if (redirect->rflags & REDIR_VARASSIGN)
{
@@ -1061,7 +1102,7 @@ do_redirection_internal (redirect, flags)
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)
+ if ((redirect->flags & RX_INTERNAL) && (redirect->flags & RX_SAVCLEXEC) && redirector >= 3 && (redir_fd >= SHELL_FD_BASE || (redirect->flags & RX_SAVEFD)))
SET_OPEN_ON_EXEC (redirector);
/* dup-and-close redirection */
@@ -1088,6 +1129,7 @@ do_redirection_internal (redirect, flags)
}
r = 0;
+ /* XXX - only if REDIR_VARASSIGN not set? */
if ((flags & RX_UNDOABLE) && (fcntl (redirector, F_GETFD, 0) != -1))
{
r = add_undo_redirect (redirector, ri, -1);
@@ -1100,11 +1142,14 @@ do_redirection_internal (redirect, flags)
xtrace_fdchk (redirector);
#if defined (BUFFERED_INPUT)
- check_bash_input (redirector);
+ /* inhibit call to sync_buffered_stream() for async processes */
+ if (redirector != 0 || (subshell_environment & SUBSHELL_ASYNC) == 0)
+ check_bash_input (redirector);
r = close_buffered_fd (redirector);
#else /* !BUFFERED_INPUT */
r = close (redirector);
#endif /* !BUFFERED_INPUT */
+
if (r < 0 && (flags & RX_INTERNAL) && (errno == EIO || errno == ENOSPC))
REDIRECTION_ERROR (r, errno, -1);
}
@@ -1135,13 +1180,19 @@ add_undo_redirect (fd, ri, fdbase)
enum r_instruction ri;
int fdbase;
{
- int new_fd, clexec_flag;
+ int new_fd, clexec_flag, savefd_flag;
REDIRECT *new_redirect, *closer, *dummy_redirect;
REDIRECTEE sd;
+ savefd_flag = 0;
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)
+ {
+ new_fd = fcntl (fd, F_DUPFD, 0);
+ savefd_flag = 1;
+ }
if (new_fd < 0)
{
@@ -1164,7 +1215,9 @@ add_undo_redirect (fd, ri, fdbase)
else
new_redirect = make_redirection (sd, r_duplicating_output, rd, 0);
new_redirect->flags |= RX_INTERNAL;
- if (clexec_flag == 0 && fd >= 3 && new_fd >= SHELL_FD_BASE)
+ if (savefd_flag)
+ new_redirect->flags |= RX_SAVEFD;
+ if (clexec_flag == 0 && fd >= 3 && (new_fd >= SHELL_FD_BASE || savefd_flag))
new_redirect->flags |= RX_SAVCLEXEC;
new_redirect->next = closer;
@@ -1282,8 +1335,7 @@ stdin_redirects (redirs)
n += stdin_redirection (rp->instruction, rp->redirector.dest);
return n;
}
-
-/* These don't yet handle array references */
+/* bind_var_to_int handles array references */
static int
redir_varassign (redir, fd)
REDIRECT *redir;
@@ -1297,23 +1349,42 @@ redir_varassign (redir, fd)
if (v == 0 || readonly_p (v) || noassign_p (v))
return BADVAR_REDIRECT;
+ stupidly_hack_special_variables (w->word);
return 0;
}
+/* Handles {array[ind]} for redirection words */
static int
redir_varvalue (redir)
REDIRECT *redir;
{
SHELL_VAR *v;
- char *val;
+ char *val, *w;
intmax_t vmax;
int i;
+#if defined (ARRAY_VARS)
+ char *sub;
+ int len, vr;
+#endif
+ w = redir->redirector.filename->word; /* shorthand */
/* XXX - handle set -u here? */
- v = find_variable (redir->redirector.filename->word);
+#if defined (ARRAY_VARS)
+ if (vr = valid_array_reference (w))
+ v = array_variable_part (w, &sub, &len);
+ else
+#endif
+ v = find_variable (w);
if (v == 0 || invisible_p (v))
return -1;
+#if defined (ARRAY_VARS)
+ /* get_variable_value handles references to array variables without
+ subscripts */
+ if (vr && (array_p (v) || assoc_p (v)))
+ val = get_array_value (w, 0, (int *)NULL, (arrayind_t *)0);
+ else
+#endif
val = get_variable_value (v);
if (val == 0 || *val == 0)
return -1;
diff --git a/redir.h b/redir.h
index 474acda1..0e117840 100644
--- a/redir.h
+++ b/redir.h
@@ -30,6 +30,7 @@
#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 */
+#define RX_SAVEFD 0x40 /* fd used to save another even if < SHELL_FD_BASE */
extern void redirection_error __P((REDIRECT *, int));
extern int do_redirections __P((REDIRECT *, int));
diff --git a/shell.c b/shell.c
index 9e74f3bd..bbc8a66c 100644
--- a/shell.c
+++ b/shell.c
@@ -1,6 +1,6 @@
/* shell.c -- GNU's idea of the POSIX shell specification. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -214,7 +214,11 @@ static int make_login_shell; /* Make this shell be a `-bash' shell. */
static int want_initial_help; /* --help option */
int debugging_mode = 0; /* In debugging mode with --debugger */
-int no_line_editing = 0; /* Don't do fancy line editing. */
+#if defined (READLINE)
+int no_line_editing = 0; /* non-zero -> don't do fancy line editing. */
+#else
+int no_line_editing = 1; /* can't have line editing without readline */
+#endif
int dump_translatable_strings; /* Dump strings in $"...", don't execute. */
int dump_po_strings; /* Dump strings in $"..." in po format */
int wordexp_only = 0; /* Do word expansion only */
@@ -248,7 +252,9 @@ static const struct {
{ "noprofile", Int, &no_profile, (char **)0x0 },
{ "norc", Int, &no_rc, (char **)0x0 },
{ "posix", Int, &posixly_correct, (char **)0x0 },
+#if defined (WORDEXP_OPTION)
{ "protected", Int, &protected_mode, (char **)0x0 },
+#endif
{ "rcfile", Charp, (int *)0x0, &bashrc_file },
#if defined (RESTRICTED_SHELL)
{ "restricted", Int, &restricted, (char **)0x0 },
@@ -375,7 +381,7 @@ main (argc, argv, env)
#endif
/* Catch early SIGINTs. */
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
if (code)
exit (2);
@@ -441,7 +447,7 @@ main (argc, argv, env)
shell_name++;
shell_reinitialize ();
- if (setjmp (top_level))
+ if (setjmp_nosigs (top_level))
exit (2);
}
@@ -714,7 +720,7 @@ main (argc, argv, env)
/* Bind remaining args to $1 ... $n */
arg_index = bind_args (argv, arg_index, argc, 1);
- if (debugging_mode && locally_skip_execution == 0 && running_setuid == 0)
+ if (debugging_mode && locally_skip_execution == 0 && running_setuid == 0 && dollar_vars[1])
start_debugger ();
/* Do the things that should be done only for interactive shells. */
@@ -913,7 +919,7 @@ exit_shell (s)
#endif /* PROCESS_SUBSTITUTION */
#if defined (HISTORY)
- if (interactive_shell)
+ if (remember_on_history)
maybe_save_shell_history ();
#endif /* HISTORY */
@@ -953,6 +959,24 @@ sh_exit (s)
exit (s);
}
+/* Exit a subshell, which includes calling the exit trap. We don't want to
+ do any more cleanup, since a subshell is created as an exact copy of its
+ parent. */
+void
+subshell_exit (s)
+ int s;
+{
+ fflush (stdout);
+ fflush (stderr);
+
+ /* Do trap[0] if defined. Allow it to override the exit status
+ passed to us. */
+ if (signal_is_trapped (0))
+ s = run_exit_trap ();
+
+ sh_exit (s);
+}
+
/* Source the bash startup files. If POSIXLY_CORRECT is non-zero, we obey
the Posix.2 startup file rules: $ENV is expanded, and if the file it
names exists, that file is sourced. The Posix.2 rules are in effect
@@ -1216,13 +1240,13 @@ run_wordexp (words)
int code, nw, nb;
WORD_LIST *wl, *tl, *result;
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
if (code != NOT_JUMPED)
{
switch (code)
{
- /* Some kind of throw to top_level has occured. */
+ /* Some kind of throw to top_level has occurred. */
case FORCE_EOF:
return last_command_exit_value = 127;
case ERREXIT:
@@ -1291,7 +1315,7 @@ run_one_command (command)
{
int code;
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
if (code != NOT_JUMPED)
{
@@ -1300,7 +1324,7 @@ run_one_command (command)
#endif /* PROCESS_SUBSTITUTION */
switch (code)
{
- /* Some kind of throw to top_level has occured. */
+ /* Some kind of throw to top_level has occurred. */
case FORCE_EOF:
return last_command_exit_value = 127;
case ERREXIT:
@@ -1583,7 +1607,7 @@ set_shell_name (argv0)
{
if (*shell_name == '-')
shell_name++;
- login_shell++;
+ login_shell = 1;
}
if (shell_name[0] == 's' && shell_name[1] == 'h' && shell_name[2] == '\0')
@@ -1619,7 +1643,9 @@ init_noninteractive ()
expand_aliases = posixly_correct; /* XXX - was 0 not posixly_correct */
no_line_editing = 1;
#if defined (JOB_CONTROL)
- set_job_control (0);
+ /* Even if the shell is not interactive, enable job control if the -i or
+ -m option is supplied at startup. */
+ set_job_control (forced_interactive||jobs_m_flag);
#endif /* JOB_CONTROL */
}
@@ -1638,7 +1664,11 @@ get_current_user_info ()
/* Don't fetch this more than once. */
if (current_user.user_name == 0)
{
+#if defined (__TANDEM)
+ entry = getpwnam (getlogin ());
+#else
entry = getpwuid (current_user.uid);
+#endif
if (entry)
{
current_user.user_name = savestring (entry->pw_name);
@@ -1712,7 +1742,7 @@ shell_initialize ()
#endif
/* Initialize the data structures for storing and running jobs. */
- initialize_job_control (0);
+ initialize_job_control (jobs_m_flag);
/* Initialize input streams to null. */
initialize_bash_input ();
@@ -1757,6 +1787,8 @@ shell_reinitialize ()
forced_interactive = interactive_shell = subshell_environment = 0;
expand_aliases = 0;
+ /* XXX - should we set jobs_m_flag to 0 here? */
+
#if defined (HISTORY)
bash_history_reinit (0);
#endif /* HISTORY */
@@ -1800,7 +1832,7 @@ show_shell_usage (fp, extra)
fprintf (fp, "\t--%s\n", long_args[i].name);
fputs (_("Shell options:\n"), fp);
- fputs (_("\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"), fp);
+ fputs (_("\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"), fp);
for (i = 0, set_opts = 0; shell_builtins[i].name; i++)
if (STREQ (shell_builtins[i].name, "set"))
diff --git a/shell.h b/shell.h
index 38ab51fc..243e4678 100644
--- a/shell.h
+++ b/shell.h
@@ -96,6 +96,8 @@ extern int startup_state;
extern int subshell_environment;
extern int shell_compatibility_level;
+extern int locale_mb_cur_max;
+
/* Structure to pass around that holds a bitmap of file descriptors
to close, and the size of that structure. Used in execute_cmd.c. */
struct fd_bitmap {
@@ -171,9 +173,9 @@ typedef struct _sh_parser_state_t {
typedef struct _sh_input_line_state_t {
char *input_line;
- int input_line_index;
- int input_line_size;
- int input_line_len;
+ size_t input_line_index;
+ size_t input_line_size;
+ size_t input_line_len;
} sh_input_line_state_t;
/* Let's try declaring these here. */
diff --git a/sig.c b/sig.c
index d38246d2..3b62ea5d 100644
--- a/sig.c
+++ b/sig.c
@@ -1,6 +1,6 @@
/* sig.c - interface for shell signal handlers and signal initialization. */
-/* Copyright (C) 1994-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -43,6 +43,7 @@
#include "trap.h"
#include "builtins/common.h"
+#include "builtins/builtext.h"
#if defined (READLINE)
# include "bashline.h"
@@ -64,17 +65,22 @@ extern int parse_and_execute_level, shell_initialized;
extern int history_lines_this_session;
#endif
extern int no_line_editing;
+extern int wait_signal_received;
+extern sh_builtin_func_t *this_shell_builtin;
extern void initialize_siglist ();
/* Non-zero after SIGINT. */
-volatile int interrupt_state = 0;
+volatile sig_atomic_t interrupt_state = 0;
/* Non-zero after SIGWINCH */
-volatile int sigwinch_received = 0;
+volatile sig_atomic_t sigwinch_received = 0;
+
+/* Non-zero after SIGTERM */
+volatile sig_atomic_t sigterm_received = 0;
/* Set to the value of any terminating signal received. */
-volatile int terminating_signal = 0;
+volatile sig_atomic_t terminating_signal = 0;
/* The environment at the top-level R-E loop. We use this in
the case of error return. */
@@ -260,7 +266,7 @@ initialize_terminating_signals ()
if (interactive_shell == 0 && XHANDLER (i) == SIG_IGN)
{
sigaction (XSIG (i), &oact, &act);
- set_signal_ignored (XSIG (i));
+ set_signal_hard_ignored (XSIG (i));
}
#if defined (SIGPROF) && !defined (_MINIX)
if (XSIG (i) == SIGPROF && XHANDLER (i) != SIG_DFL && XHANDLER (i) != SIG_IGN)
@@ -284,7 +290,7 @@ initialize_terminating_signals ()
if (interactive_shell == 0 && XHANDLER (i) == SIG_IGN)
{
signal (XSIG (i), SIG_IGN);
- set_signal_ignored (XSIG (i));
+ set_signal_hard_ignored (XSIG (i));
}
#ifdef SIGPROF
if (XSIG (i) == SIGPROF && XHANDLER (i) != SIG_DFL && XHANDLER (i) != SIG_IGN)
@@ -319,7 +325,9 @@ initialize_shell_signals ()
if (interactive)
{
set_signal_handler (SIGINT, sigint_sighandler);
- set_signal_handler (SIGTERM, SIG_IGN);
+ get_original_signal (SIGTERM);
+ if (signal_is_hard_ignored (SIGTERM) == 0)
+ set_signal_handler (SIGTERM, sigterm_sighandler);
set_sigwinch_handler ();
}
}
@@ -358,6 +366,8 @@ reset_terminating_signals ()
signal (XSIG (i), XHANDLER (i));
}
#endif /* !HAVE_POSIX_SIGNALS */
+
+ termsigs_initialized = 0;
}
#undef XSIG
#undef XHANDLER
@@ -389,6 +399,8 @@ throw_to_top_level ()
if (interrupt_state)
{
+ if (last_command_exit_value < 128)
+ last_command_exit_value = 128 + SIGINT;
print_newline = 1;
DELINTERRUPT;
}
@@ -412,7 +424,8 @@ throw_to_top_level ()
#endif /* JOB_CONTROL */
#if defined (JOB_CONTROL) || defined (HAVE_POSIX_SIGNALS)
- /* This should not be necessary on systems using sigsetjmp/siglongjmp. */
+ /* This needs to stay because jobs.c:make_child() uses it without resetting
+ the signal mask. */
sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL);
#endif
@@ -516,6 +529,14 @@ termsig_sighandler (sig)
termsig_handler (sig);
}
+#if defined (READLINE)
+ /* Set the event hook so readline will call it after the signal handlers
+ finish executing, so if this interrupted character input we can get
+ quick response. */
+ if (interactive_shell && interactive && no_line_editing == 0)
+ bashline_set_event_hook ();
+#endif
+
SIGRETURN (0);
}
@@ -538,7 +559,11 @@ termsig_handler (sig)
run_interrupt_trap ();
#if defined (HISTORY)
- if (interactive_shell && sig != SIGABRT)
+ /* If we don't do something like this, the history will not be saved when
+ an interactive shell is running in a terminal window that gets closed
+ with the `close' button. We can't test for RL_STATE_READCMD because
+ readline no longer handles SIGTERM synchronously. */
+ if (interactive_shell && interactive && (sig == SIGHUP || sig == SIGTERM) && remember_on_history)
maybe_save_shell_history ();
#endif /* HISTORY */
@@ -556,7 +581,7 @@ termsig_handler (sig)
loop_level = continuing = breaking = funcnest = 0;
executing_list = comsub_ignore_return = return_catch_flag = 0;
- run_exit_trap ();
+ run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
set_signal_handler (sig, SIG_DFL);
kill (getpid (), sig);
}
@@ -575,12 +600,28 @@ sigint_sighandler (sig)
if (interrupt_state == 0)
ADDINTERRUPT;
+ /* We will get here in interactive shells with job control active; allow
+ an interactive wait to be interrupted. */
+ if (this_shell_builtin && this_shell_builtin == wait_builtin)
+ {
+ last_command_exit_value = 128 + sig;
+ wait_signal_received = sig;
+ SIGRETURN (0);
+ }
+
if (interrupt_immediately)
{
interrupt_immediately = 0;
last_command_exit_value = 128 + sig;
throw_to_top_level ();
}
+#if defined (READLINE)
+ /* Set the event hook so readline will call it after the signal handlers
+ finish executing, so if this interrupted character input we can get
+ quick response. */
+ else if (RL_ISSTATE (RL_STATE_SIGHANDLER))
+ bashline_set_event_hook ();
+#endif
SIGRETURN (0);
}
@@ -614,10 +655,17 @@ unset_sigwinch_handler ()
#endif
}
+sighandler
+sigterm_sighandler (sig)
+ int sig;
+{
+ sigterm_received = 1; /* XXX - counter? */
+ SIGRETURN (0);
+}
+
/* Signal functions used by the rest of the code. */
#if !defined (HAVE_POSIX_SIGNALS)
-#if defined (JOB_CONTROL)
/* Perform OPERATION on NEWSET, perhaps leaving information in OLDSET. */
sigprocmask (operation, newset, oldset)
int operation, *newset, *oldset;
@@ -636,7 +684,7 @@ sigprocmask (operation, newset, oldset)
break;
case SIG_SETMASK:
- sigsetmask (new);
+ old = sigsetmask (new);
break;
default:
@@ -646,7 +694,6 @@ sigprocmask (operation, newset, oldset)
if (oldset)
*oldset = old;
}
-#endif /* JOB_CONTROL */
#else
@@ -671,12 +718,20 @@ set_signal_handler (sig, handler)
/* XXX - bash-4.2 */
/* We don't want a child death to interrupt interruptible system calls, even
if we take the time to reap children */
+#if defined (SIGCHLD)
if (sig == SIGCHLD)
act.sa_flags |= SA_RESTART; /* XXX */
+#endif
+ /* If we're installing a SIGTERM handler for interactive shells, we want
+ it to be as close to SIG_IGN as possible. */
+ if (sig == SIGTERM && handler == sigterm_sighandler)
+ act.sa_flags |= SA_RESTART; /* XXX */
sigemptyset (&act.sa_mask);
sigemptyset (&oact.sa_mask);
- sigaction (sig, &act, &oact);
- return (oact.sa_handler);
+ if (sigaction (sig, &act, &oact) == 0)
+ return (oact.sa_handler);
+ else
+ return (SIG_DFL);
}
#endif /* HAVE_POSIX_SIGNALS */
diff --git a/sig.h b/sig.h
index d67f6cca..12552ab9 100644
--- a/sig.h
+++ b/sig.h
@@ -1,6 +1,6 @@
/* sig.h -- header file for signal handler definitions. */
-/* Copyright (C) 1994-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -25,6 +25,10 @@
#include "stdc.h"
+#if !defined (SIG_DFL)
+# include <signal.h> /* for sig_atomic_t */
+#endif
+
#if !defined (SIGABRT) && defined (SIGIOT)
# define SIGABRT SIGIOT
#endif
@@ -47,9 +51,6 @@ typedef RETSIGTYPE SigHandler __P((int));
extern SigHandler *set_signal_handler __P((int, SigHandler *)); /* in sig.c */
#endif /* _POSIX_VERSION */
-/* Definitions used by the job control code. */
-#if defined (JOB_CONTROL)
-
#if !defined (SIGCHLD) && defined (SIGCLD)
# define SIGCHLD SIGCLD
#endif
@@ -96,22 +97,21 @@ do { \
sigprocmask (SIG_BLOCK, &nvar, &ovar); \
} while (0)
+#define UNBLOCK_SIGNAL(ovar) sigprocmask (SIG_SETMASK, &ovar, (sigset_t *) NULL)
+
#if defined (HAVE_POSIX_SIGNALS)
-# define BLOCK_CHILD(nvar, ovar) \
- BLOCK_SIGNAL (SIGCHLD, nvar, ovar)
-# define UNBLOCK_CHILD(ovar) \
- sigprocmask (SIG_SETMASK, &ovar, (sigset_t *) NULL)
+# define BLOCK_CHILD(nvar, ovar) BLOCK_SIGNAL (SIGCHLD, nvar, ovar)
+# define UNBLOCK_CHILD(ovar) UNBLOCK_SIGNAL(ovar)
#else /* !HAVE_POSIX_SIGNALS */
# define BLOCK_CHILD(nvar, ovar) ovar = sigblock (sigmask (SIGCHLD))
# define UNBLOCK_CHILD(ovar) sigsetmask (ovar)
#endif /* !HAVE_POSIX_SIGNALS */
-#endif /* JOB_CONTROL */
-
/* Extern variables */
-extern volatile int sigwinch_received;
+extern volatile sig_atomic_t sigwinch_received;
+extern volatile sig_atomic_t sigterm_received;
-extern int interrupt_immediately;
+extern int interrupt_immediately; /* no longer used */
extern int terminate_immediately;
/* Functions from sig.c. */
@@ -129,6 +129,8 @@ extern sighandler sigwinch_sighandler __P((int));
extern void set_sigwinch_handler __P((void));
extern void unset_sigwinch_handler __P((void));
+extern sighandler sigterm_sighandler __P((int));
+
/* Functions defined in trap.c. */
extern SigHandler *set_sigint_handler __P((void));
extern SigHandler *trap_to_sighandler __P((int));
diff --git a/stringlib.c b/stringlib.c
index 0a612ca9..95092993 100644
--- a/stringlib.c
+++ b/stringlib.c
@@ -133,7 +133,7 @@ substring (string, start, end)
len = end - start;
result = (char *)xmalloc (len + 1);
- strncpy (result, string + start, len);
+ memcpy (result, string + start, len);
result[len] = '\0';
return (result);
}
@@ -158,7 +158,7 @@ strsub (string, pat, rep, global)
if (replen)
RESIZE_MALLOCED_BUFFER (temp, templen, replen, tempsize, (replen * 2));
- for (r = rep; *r; )
+ for (r = rep; *r; ) /* can rep == "" */
temp[templen++] = *r++;
i += patlen ? patlen : 1; /* avoid infinite recursion */
diff --git a/subst.c b/subst.c
index 48c89c1f..e131f4cd 100644
--- a/subst.c
+++ b/subst.c
@@ -4,7 +4,7 @@
/* ``Have a little faith, there's magic in the night. You ain't a
beauty, but, hey, you're alright.'' */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -89,12 +89,15 @@ extern int errno;
#define PF_NOCOMSUB 0x01 /* Do not perform command substitution */
#define PF_IGNUNBOUND 0x02 /* ignore unbound vars even if -u set */
#define PF_NOSPLIT2 0x04 /* same as W_NOSPLIT2 */
+#define PF_ASSIGNRHS 0x08 /* same as W_ASSIGNRHS */
/* These defs make it easier to use the editor. */
#define LBRACE '{'
#define RBRACE '}'
#define LPAREN '('
#define RPAREN ')'
+#define LBRACK '['
+#define RBRACK ']'
#if defined (HANDLE_MULTIBYTE)
#define WLPAREN L'('
@@ -134,6 +137,7 @@ pid_t current_command_subst_pid = NO_PID;
SHELL_VAR *ifs_var;
char *ifs_value;
unsigned char ifs_cmap[UCHAR_MAX + 1];
+int ifs_is_set, ifs_is_null;
#if defined (HANDLE_MULTIBYTE)
unsigned char ifs_firstc[MB_LEN_MAX];
@@ -165,6 +169,7 @@ extern struct fd_bitmap *current_fds_to_close;
extern int wordexp_only;
extern int expanding_redir;
extern int tempenv_assign_error;
+extern int builtin_ignoring_errexit;
#if !defined (HAVE_WCSDUP) && defined (HANDLE_MULTIBYTE)
extern wchar_t *wcsdup __P((const wchar_t *));
@@ -215,6 +220,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 WORD_LIST *list_dequote_escapes __P((WORD_LIST *));
+
static char *make_quoted_char __P((int));
static WORD_LIST *quote_list __P((WORD_LIST *));
@@ -274,6 +281,7 @@ static int chk_atstar __P((char *, int, int *, int *));
static int chk_arithsub __P((const char *, int));
static WORD_DESC *parameter_brace_expand_word __P((char *, int, int, int, arrayind_t *));
+static char *parameter_brace_find_indir __P((char *, int, int, int));
static WORD_DESC *parameter_brace_expand_indir __P((char *, int, int, int *, int *));
static WORD_DESC *parameter_brace_expand_rhs __P((char *, char *, int, int, int *, int *));
static void parameter_brace_expand_error __P((char *, char *));
@@ -336,6 +344,11 @@ dump_word_flags (flags)
f &= ~W_ASSIGNASSOC;
fprintf (stderr, "W_ASSIGNASSOC%s", f ? "|" : "");
}
+ if (f & W_ASSIGNARRAY)
+ {
+ f &= ~W_ASSIGNARRAY;
+ fprintf (stderr, "W_ASSIGNARRAY%s", f ? "|" : "");
+ }
if (f & W_HASCTLESC)
{
f &= ~W_HASCTLESC;
@@ -371,6 +384,11 @@ dump_word_flags (flags)
f &= ~W_ASSNGLOBAL;
fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : "");
}
+ if (f & W_ASSIGNINT)
+ {
+ f &= ~W_ASSIGNINT;
+ fprintf (stderr, "W_ASSIGNINT%s", f ? "|" : "");
+ }
if (f & W_COMPASSIGN)
{
f &= ~W_COMPASSIGN;
@@ -421,20 +439,25 @@ dump_word_flags (flags)
f &= ~W_NOSPLIT2;
fprintf (stderr, "W_NOSPLIT2%s", f ? "|" : "");
}
- if (f & W_NOGLOB)
- {
- f &= ~W_NOGLOB;
- fprintf (stderr, "W_NOGLOB%s", f ? "|" : "");
- }
if (f & W_NOSPLIT)
{
f &= ~W_NOSPLIT;
fprintf (stderr, "W_NOSPLIT%s", f ? "|" : "");
}
- if (f & W_GLOBEXP)
+ if (f & W_NOBRACE)
{
- f &= ~W_GLOBEXP;
- fprintf (stderr, "W_GLOBEXP%s", f ? "|" : "");
+ f &= ~W_NOBRACE;
+ fprintf (stderr, "W_NOBRACE%s", f ? "|" : "");
+ }
+ if (f & W_NOGLOB)
+ {
+ f &= ~W_NOGLOB;
+ fprintf (stderr, "W_NOGLOB%s", f ? "|" : "");
+ }
+ if (f & W_SPLITSPACE)
+ {
+ f &= ~W_SPLITSPACE;
+ fprintf (stderr, "W_SPLITSPACE%s", f ? "|" : "");
}
if (f & W_ASSIGNMENT)
{
@@ -1174,7 +1197,7 @@ extract_process_subst (string, starter, sindex)
char *starter;
int *sindex;
{
- return (extract_delimited_string (string, sindex, starter, "(", ")", 0));
+ return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND));
}
#endif /* PROCESS_SUBSTITUTION */
@@ -1335,8 +1358,8 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags)
{
if (no_longjmp_on_fatal_error == 0)
{
- report_error (_("bad substitution: no closing `%s' in %s"), closer, string);
last_command_exit_value = EXECUTION_FAILURE;
+ report_error (_("bad substitution: no closing `%s' in %s"), closer, string);
exp_jump_to_top_level (DISCARD);
}
else
@@ -1445,18 +1468,6 @@ extract_dollar_brace_string (string, sindex, quoted, flags)
continue;
}
-#if 0
- /* Pass the contents of single-quoted and double-quoted strings
- through verbatim. */
- if (c == '\'' || c == '"')
- {
- si = i + 1;
- i = (c == '\'') ? skip_single_quoted (string, slen, si)
- : skip_double_quoted (string, slen, si);
- /* skip_XXX_quoted leaves index one past close quote */
- continue;
- }
-#else /* XXX - bash-4.2 */
/* Pass the contents of double-quoted strings through verbatim. */
if (c == '"')
{
@@ -1469,7 +1480,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags)
if (c == '\'')
{
/*itrace("extract_dollar_brace_string: c == single quote flags = %d quoted = %d dolbrace_state = %d", flags, quoted, dolbrace_state);*/
- if (posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ if (posixly_correct && shell_compatibility_level > 42 && dolbrace_state != DOLBRACE_QUOTE && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
ADVANCE_CHAR (string, slen, i);
else
{
@@ -1479,7 +1490,6 @@ extract_dollar_brace_string (string, sindex, quoted, flags)
continue;
}
-#endif
/* move past this character, which was not special. */
ADVANCE_CHAR (string, slen, i);
@@ -1491,7 +1501,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags)
else if (dolbrace_state == DOLBRACE_PARAM && c == '#' && (i - *sindex) > 1)
dolbrace_state = DOLBRACE_QUOTE;
else if (dolbrace_state == DOLBRACE_PARAM && c == '/' && (i - *sindex) > 1)
- dolbrace_state = DOLBRACE_QUOTE;
+ dolbrace_state = DOLBRACE_QUOTE2; /* XXX */
else if (dolbrace_state == DOLBRACE_PARAM && c == '^' && (i - *sindex) > 1)
dolbrace_state = DOLBRACE_QUOTE;
else if (dolbrace_state == DOLBRACE_PARAM && c == ',' && (i - *sindex) > 1)
@@ -1506,8 +1516,8 @@ extract_dollar_brace_string (string, sindex, quoted, flags)
{
if (no_longjmp_on_fatal_error == 0)
{ /* { */
- report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
last_command_exit_value = EXECUTION_FAILURE;
+ report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
exp_jump_to_top_level (DISCARD);
}
else
@@ -1776,6 +1786,7 @@ skip_to_delim (string, start, delims, flags)
if (string[si] == '\0')
CQ_RETURN(si);
temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si);
+ free (temp); /* no SX_ALLOC here */
i = si;
if (string[i] == '\0')
break;
@@ -1802,6 +1813,20 @@ skip_to_delim (string, start, delims, flags)
continue;
}
#endif
+ else if ((flags & SD_GLOB) && c == LBRACK)
+ {
+ si = i + 1;
+ if (string[si] == '\0')
+ CQ_RETURN(si);
+
+ temp = extract_delimited_string (string, &si, "[", "[", "]", SX_NOALLOC); /* ] */
+
+ i = si;
+ if (string[i] == '\0') /* don't increment i past EOS in loop */
+ break;
+ i++;
+ continue;
+ }
else if ((skipquote || invert) && (member (c, delims) == 0))
break;
else
@@ -2074,6 +2099,8 @@ split_at_delims (string, slen, delims, sentinel, flags, nwp, cwp)
if (cwp)
*cwp = cw;
+ FREE (d2);
+
return (REVERSE_LIST (ret, WORD_LIST *));
}
#endif /* READLINE */
@@ -2315,7 +2342,7 @@ string_list_dollar_at (list, quoted)
return ret;
}
-/* Turn the positional paramters into a string, understanding quoting and
+/* Turn the positional parameters 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. */
@@ -2698,11 +2725,12 @@ do_compound_assignment (name, value, flags)
int flags;
{
SHELL_VAR *v;
- int mklocal, mkassoc;
+ int mklocal, mkassoc, mkglobal;
WORD_LIST *list;
mklocal = flags & ASS_MKLOCAL;
mkassoc = flags & ASS_MKASSOC;
+ mkglobal = flags & ASS_MKGLOBAL;
if (mklocal && variable_context)
{
@@ -2711,8 +2739,25 @@ do_compound_assignment (name, 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);
+ v = make_local_array_variable (name, 0);
+ if (v)
+ assign_compound_array_list (v, list, flags);
+ }
+ /* In a function but forcing assignment in global context */
+ else if (mkglobal && variable_context)
+ {
+ v = find_global_variable (name);
+ list = expand_compound_array_assignment (v, value, flags);
+ if (v == 0 && mkassoc)
+ v = make_new_assoc_variable (name);
+ else if (v && mkassoc && assoc_p (v) == 0)
+ v = convert_var_to_assoc (v);
+ else if (v == 0)
+ v = make_new_array_variable (name);
+ else if (v && mkassoc == 0 && array_p (v) == 0)
+ v = convert_var_to_array (v);
+ if (v)
+ assign_compound_array_list (v, list, flags);
}
else
v = assign_array_from_string (name, value, flags);
@@ -2810,6 +2855,8 @@ do_assignment_internal (word, expand)
{
if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
aflags |= ASS_MKLOCAL;
+ if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL))
+ aflags |= ASS_MKGLOBAL;
if (word->flags & W_ASSIGNASSOC)
aflags |= ASS_MKASSOC;
entry = do_compound_assignment (name, value, aflags);
@@ -2820,7 +2867,6 @@ 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 */
@@ -2836,12 +2882,6 @@ do_assignment_internal (word, expand)
VUNSETATTR (entry, att_invisible);
ASSIGN_RETURN (retval);
-#else
- if (entry)
- VUNSETATTR (entry, att_invisible);
-
- ASSIGN_RETURN (entry ? ((readonly_p (entry) == 0) && noassign_p (entry) == 0) : 0);
-#endif
}
/* Perform the assignment statement in STRING, and expand the
@@ -3113,7 +3153,58 @@ expand_arith_string (string, quoted)
char *string;
int quoted;
{
- return (expand_string_if_necessary (string, quoted, expand_string));
+ WORD_DESC td;
+ WORD_LIST *list, *tlist;
+ size_t slen;
+ int i, saw_quote;
+ char *ret;
+ DECLARE_MBSTATE;
+
+ /* Don't need string length for ADVANCE_CHAR unless multibyte chars possible. */
+ slen = (MB_CUR_MAX > 1) ? strlen (string) : 0;
+ i = saw_quote = 0;
+ while (string[i])
+ {
+ if (EXP_CHAR (string[i]))
+ break;
+ else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"')
+ saw_quote = 1;
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ if (string[i])
+ {
+ /* This is expanded version of expand_string_internal as it's called by
+ expand_string_leave_quoted */
+ td.flags = W_NOPROCSUB; /* don't want process substitution */
+ td.word = savestring (string);
+ list = call_expand_word_internal (&td, quoted, 0, (int *)NULL, (int *)NULL);
+ /* This takes care of the calls from expand_string_leave_quoted and
+ expand_string */
+ if (list)
+ {
+ tlist = word_list_split (list);
+ dispose_words (list);
+ list = tlist;
+ if (list)
+ dequote_list (list);
+ }
+ /* This comes from expand_string_if_necessary */
+ if (list)
+ {
+ ret = string_list (list);
+ dispose_words (list);
+ }
+ else
+ ret = (char *)NULL;
+ FREE (td.word);
+ }
+ else if (saw_quote && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0))
+ ret = string_quote_removal (string, quoted);
+ else
+ ret = savestring (string);
+
+ return ret;
}
#if defined (COND_COMMAND)
@@ -3161,13 +3252,16 @@ cond_expand_word (w, special)
l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0);
if (l)
{
- if (special == 0)
+ if (special == 0) /* LHS */
{
dequote_list (l);
r = string_list (l);
}
else
{
+ /* Need to figure out whether or not we should call dequote_escapes
+ or a new dequote_ctlnul function here, and under what
+ circumstances. */
qflags = QGLOB_CVTNULL;
if (special == 2)
qflags |= QGLOB_REGEXP;
@@ -3205,13 +3299,16 @@ call_expand_word_internal (w, q, i, c, e)
last_command_exit_value = EXECUTION_FAILURE;
exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF);
/* NOTREACHED */
+ return (NULL);
}
else
return (result);
}
/* Perform parameter expansion, command substitution, and arithmetic
- expansion on STRING, as if it were a word. Leave the result quoted. */
+ expansion on STRING, as if it were a word. Leave the result quoted.
+ Since this does not perform word splitting, it leaves quoted nulls
+ in the result. */
static WORD_LIST *
expand_string_internal (string, quoted)
char *string;
@@ -3452,6 +3549,7 @@ quote_escapes (string)
COPY_CHAR_P (t, s, send);
}
*t = '\0';
+
return (result);
}
@@ -3517,9 +3615,26 @@ dequote_escapes (string)
COPY_CHAR_P (t, s, send);
}
*t = '\0';
+
return result;
}
+static WORD_LIST *
+list_dequote_escapes (list)
+ WORD_LIST *list;
+{
+ register WORD_LIST *w;
+ char *t;
+
+ for (w = list; w; w = w->next)
+ {
+ t = w->word->word;
+ w->word->word = dequote_escapes (t);
+ free (t);
+ }
+ return list;
+}
+
/* Return a new string with the quoted representation of character C.
This turns "" into QUOTED_NULL, so the W_HASQUOTEDNULL flag needs to be
set in any resultant WORD_DESC where this value is the word. */
@@ -3961,6 +4076,7 @@ remove_pattern (param, pattern, op)
return ((xret == param) ? savestring (param) : xret);
}
n = xdupmbstowcs (&wparam, NULL, param);
+
if (n == (size_t)-1)
{
free (wpattern);
@@ -4054,9 +4170,6 @@ match_upattern (string, pat, mtype, sp, ep)
{
if (match_pattern_char (pat, p))
{
-#if 0
- for (p1 = end; p1 >= p; p1--)
-#else
p1 = (mlen == -1) ? end : p + mlen;
/* p1 - p = length of portion of string to be considered
p = current position in string
@@ -4069,7 +4182,6 @@ match_upattern (string, pat, mtype, sp, ep)
if (p1 > end)
break;
for ( ; p1 >= p; p1--)
-#endif
{
c = *p1; *p1 = '\0';
if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
@@ -4095,11 +4207,7 @@ match_upattern (string, pat, mtype, sp, ep)
if (match_pattern_char (pat, string) == 0)
return (0);
-#if 0
- for (p = end; p >= string; p--)
-#else
for (p = (mlen == -1) ? end : string + mlen; p >= string; p--)
-#endif
{
c = *p; *p = '\0';
if (strmatch (pat, string, FNMATCH_EXTFLAG) == 0)
@@ -4110,21 +4218,15 @@ match_upattern (string, pat, mtype, sp, ep)
return 1;
}
*p = c;
-#if 1
/* If MLEN != -1, we have a fixed length pattern. */
if (mlen != -1)
break;
-#endif
}
return (0);
case MATCH_END:
-#if 0
- for (p = string; p <= end; p++)
-#else
for (p = end - ((mlen == -1) ? len : mlen); p <= end; p++)
-#endif
{
if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
{
@@ -4132,11 +4234,9 @@ match_upattern (string, pat, mtype, sp, ep)
*ep = end;
return 1;
}
-#if 1
/* If MLEN != -1, we have a fixed length pattern. */
if (mlen != -1)
break;
-#endif
}
return (0);
@@ -4204,22 +4304,14 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
case MATCH_ANY:
for (n = 0; n <= wstrlen; n++)
{
-#if 1
n2 = simple ? (*wpat == wstring[n]) : match_pattern_wchar (wpat, wstring + n);
-#else
- n2 = match_pattern_wchar (wpat, wstring + n);
-#endif
if (n2)
{
-#if 0
- for (n1 = wstrlen; n1 >= n; n1--)
-#else
n1 = (mlen == -1) ? wstrlen : n + mlen;
if (n1 > wstrlen)
break;
for ( ; n1 >= n; n1--)
-#endif
{
wc = wstring[n1]; wstring[n1] = L'\0';
if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0)
@@ -4230,11 +4322,9 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
return 1;
}
wstring[n1] = wc;
-#if 1
/* If MLEN != -1, we have a fixed length pattern. */
if (mlen != -1)
break;
-#endif
}
}
}
@@ -4245,11 +4335,7 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
if (match_pattern_wchar (wpat, wstring) == 0)
return (0);
-#if 0
- for (n = wstrlen; n >= 0; n--)
-#else
for (n = (mlen == -1) ? wstrlen : mlen; n >= 0; n--)
-#endif
{
wc = wstring[n]; wstring[n] = L'\0';
if (wcsmatch (wpat, wstring, FNMATCH_EXTFLAG) == 0)
@@ -4260,21 +4346,15 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
return 1;
}
wstring[n] = wc;
-#if 1
/* If MLEN != -1, we have a fixed length pattern. */
if (mlen != -1)
break;
-#endif
}
return (0);
case MATCH_END:
-#if 0
- for (n = 0; n <= wstrlen; n++)
-#else
for (n = wstrlen - ((mlen == -1) ? wstrlen : mlen); n <= wstrlen; n++)
-#endif
{
if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0)
{
@@ -4282,11 +4362,9 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep)
*ep = indices[wstrlen];
return 1;
}
-#if 1
/* If MLEN != -1, we have a fixed length pattern. */
if (mlen != -1)
break;
-#endif
}
return (0);
@@ -4316,15 +4394,7 @@ match_pattern (string, pat, mtype, sp, ep)
#if defined (HANDLE_MULTIBYTE)
if (MB_CUR_MAX > 1)
{
-#if 0
- slen = STRLEN (string);
- mslen = MBSLEN (string);
- plen = STRLEN (pat);
- mplen = MBSLEN (pat);
- if (slen == mslen && plen == mplen)
-#else
if (mbsmbchar (string) == 0 && mbsmbchar (pat) == 0)
-#endif
return (match_upattern (string, pat, mtype, sp, ep));
n = xdupmbstowcs (&wpat, NULL, pat);
@@ -4486,6 +4556,11 @@ array_remove_pattern (var, pattern, patspec, varname, quoted)
/* compute itype from varname here */
v = array_variable_part (varname, &ret, 0);
+
+ /* XXX */
+ if (v && invisible_p (var))
+ return ((char *)NULL);
+
itype = ret[0];
a = (v && array_p (v)) ? array_cell (v) : 0;
@@ -5075,7 +5150,7 @@ process_substitute (string, open_for_read_in_child)
#if !defined (HAVE_DEV_FD)
/* Open the named pipe in the child. */
- fd = open (pathname, open_for_read_in_child ? O_RDONLY|O_NONBLOCK : O_WRONLY);
+ fd = open (pathname, open_for_read_in_child ? O_RDONLY : O_WRONLY);
if (fd < 0)
{
/* Two separate strings for ease of translation. */
@@ -5135,6 +5210,8 @@ process_substitute (string, open_for_read_in_child)
close (open_for_read_in_child ? 0 : 1);
#endif /* !HAVE_DEV_FD */
+ last_command_exit_value = result;
+ result = run_exit_trap ();
exit (result);
/*NOTREACHED*/
}
@@ -5337,6 +5414,8 @@ command_substitute (string, quoted)
sys_error (_("cannot make child for command substitution"));
error_exit:
+ last_made_pid = old_pid;
+
FREE (istring);
close (fildes[0]);
close (fildes[1]);
@@ -5387,20 +5466,24 @@ command_substitute (string, quoted)
/* When not in POSIX mode, command substitution does not inherit
the -e flag. */
if (posixly_correct == 0)
- exit_immediately_on_error = 0;
+ {
+ builtin_ignoring_errexit = 0;
+ change_flag ('e', FLAG_OFF);
+ set_shellopts ();
+ }
remove_quoted_escapes (string);
startup_state = 2; /* see if we can avoid a fork */
/* Give command substitution a place to jump back to on failure,
so we don't go back up to main (). */
- result = setjmp (top_level);
+ result = setjmp_nosigs (top_level);
/* If we're running a command substitution inside a shell function,
trap `return' so we don't return from the function in the subshell
and go off to never-never land. */
if (result == 0 && return_catch_flag)
- function_value = setjmp (return_catch);
+ function_value = setjmp_nosigs (return_catch);
else
function_value = 0;
@@ -5454,7 +5537,7 @@ command_substitute (string, quoted)
/* wait_for gives the terminal back to shell_pgrp. If some other
process group should have it, give it away to that group here.
pipeline_pgrp is non-zero only while we are constructing a
- pipline, so what we are concerned about is whether or not that
+ pipeline, so what we are concerned about is whether or not that
pipeline was started in the background. A pipeline started in
the background should never get the tty back here. */
if (interactive && pipeline_pgrp != (pid_t)0 && (subshell_environment & SUBSHELL_ASYNC) == 0)
@@ -5493,7 +5576,7 @@ array_length_reference (s)
/* If unbound variables should generate an error, report one and return
failure. */
- if ((var == 0 || (assoc_p (var) == 0 && array_p (var) == 0)) && unbound_vars_is_error)
+ if ((var == 0 || invisible_p (var) || (assoc_p (var) == 0 && array_p (var) == 0)) && unbound_vars_is_error)
{
c = *--t;
*t = '\0';
@@ -5502,7 +5585,7 @@ array_length_reference (s)
*t = c;
return (-1);
}
- else if (var == 0)
+ else if (var == 0 || invisible_p (var))
return 0;
/* We support a couple of expansions for variables that are not arrays.
@@ -5530,13 +5613,18 @@ array_length_reference (s)
if (akey == 0 || *akey == 0)
{
err_badarraysub (t);
+ FREE (akey);
return (-1);
}
t = assoc_reference (assoc_cell (var), akey);
+ free (akey);
}
else
{
- ind = array_expand_index (t, len);
+ ind = array_expand_index (var, t, len);
+ /* negative subscripts to indexed arrays count back from end */
+ if (var && array_p (var) && ind < 0)
+ ind = array_max_index (array_cell (var)) + 1 + ind;
if (ind < 0)
{
err_badarraysub (t);
@@ -5682,7 +5770,18 @@ parameter_brace_expand_word (name, var_is_special, quoted, pflags, indp)
#if defined (ARRAY_VARS)
else if (valid_array_reference (name))
{
- temp = array_value (name, quoted, 0, &atype, &ind);
+expand_arrayref:
+ /* XXX - does this leak if name[@] or name[*]? */
+ if (pflags & PF_ASSIGNRHS)
+ {
+ temp = array_variable_name (name, &tt, (int *)0);
+ if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']')
+ temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind);
+ else
+ temp = array_value (name, quoted, 0, &atype, &ind);
+ }
+ else
+ temp = array_value (name, quoted, 0, &atype, &ind);
if (atype == 0 && temp)
{
temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
@@ -5719,6 +5818,28 @@ parameter_brace_expand_word (name, var_is_special, quoted, pflags, indp)
else
temp = (char *)NULL;
}
+ else if (var = find_variable_last_nameref (name))
+ {
+ temp = nameref_cell (var);
+#if defined (ARRAY_VARS)
+ /* Handle expanding nameref whose value is x[n] */
+ if (temp && *temp && valid_array_reference (temp))
+ {
+ name = temp;
+ goto expand_arrayref;
+ }
+ else
+#endif
+ /* y=2 ; typeset -n x=y; echo ${x} is not the same as echo ${2} in ksh */
+ if (temp && *temp && legal_identifier (temp) == 0)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ report_error (_("%s: invalid variable name for name reference"), temp);
+ temp = &expand_param_error;
+ }
+ else
+ temp = (char *)NULL;
+ }
else
temp = (char *)NULL;
@@ -5731,17 +5852,22 @@ parameter_brace_expand_word (name, var_is_special, quoted, pflags, indp)
return ret;
}
-/* Expand an indirect reference to a variable: ${!NAME} expands to the
- value of the variable whose name is the value of NAME. */
-static WORD_DESC *
-parameter_brace_expand_indir (name, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at)
+static char *
+parameter_brace_find_indir (name, var_is_special, quoted, find_nameref)
char *name;
- int var_is_special, quoted;
- int *quoted_dollar_atp, *contains_dollar_at;
+ int var_is_special, quoted, find_nameref;
{
char *temp, *t;
WORD_DESC *w;
+ SHELL_VAR *v;
+
+ if (find_nameref && var_is_special == 0 && (v = find_variable_last_nameref (name)) &&
+ nameref_p (v) && (t = nameref_cell (v)) && *t)
+ return (savestring (t));
+ /* If var_is_special == 0, and name is not an array reference, this does
+ more expansion than necessary. It should really look up the variable's
+ value and not try to expand it. */
w = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND, 0);
t = w->word;
/* Have to dequote here if necessary */
@@ -5755,6 +5881,39 @@ parameter_brace_expand_indir (name, var_is_special, quoted, quoted_dollar_atp, c
}
dispose_word_desc (w);
+ return t;
+}
+
+/* Expand an indirect reference to a variable: ${!NAME} expands to the
+ value of the variable whose name is the value of NAME. */
+static WORD_DESC *
+parameter_brace_expand_indir (name, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at)
+ char *name;
+ int var_is_special, quoted;
+ int *quoted_dollar_atp, *contains_dollar_at;
+{
+ char *temp, *t;
+ WORD_DESC *w;
+ SHELL_VAR *v;
+
+ /* See if it's a nameref first, behave in ksh93-compatible fashion.
+ There is at least one incompatibility: given ${!foo[0]} where foo=bar,
+ bash performs an indirect lookup on foo[0] and expands the result;
+ ksh93 expands bar[0]. We could do that here -- there are enough usable
+ primitives to do that -- but do not at this point. */
+ if (var_is_special == 0 && (v = find_variable_last_nameref (name)))
+ {
+ if (nameref_p (v) && (t = nameref_cell (v)) && *t)
+ {
+ w = alloc_word_desc ();
+ w->word = savestring (t);
+ w->flags = 0;
+ return w;
+ }
+ }
+
+ t = parameter_brace_find_indir (name, var_is_special, quoted, 0);
+
chk_atstar (t, quoted, quoted_dollar_atp, contains_dollar_at);
if (t == 0)
return (WORD_DESC *)NULL;
@@ -5819,7 +5978,7 @@ parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat)
expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
(which is more paranoia than anything else), we need to return the
quoted null string and set the flags to indicate it. */
- if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL(temp) && QUOTED_NULL(l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
+ if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL (temp) && QUOTED_NULL (l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
{
w->flags |= W_HASQUOTEDNULL;
}
@@ -5853,6 +6012,10 @@ parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat)
else
#endif /* ARRAY_VARS */
bind_variable (name, t1, 0);
+#if 0
+ if (STREQ (name, "IFS") == 0)
+#endif
+ stupidly_hack_special_variables (name);
/* From Posix group discussion Feb-March 2010. Issue 7 0000221 */
free (temp);
@@ -5872,6 +6035,7 @@ parameter_brace_expand_error (name, value)
WORD_LIST *l;
char *temp;
+ last_command_exit_value = EXECUTION_FAILURE; /* ensure it's non-zero */
if (value && *value)
{
l = expand_string (value, 0);
@@ -6145,7 +6309,13 @@ verify_substring_values (v, value, substr, vtype, e1p, e2p)
free (temp1);
if (expok == 0)
return (0);
+#if 1
if ((vtype == VT_ARRAYVAR || vtype == VT_POSPARMS) && *e2p < 0)
+#else
+ /* bash-4.3: allow positional parameter length < 0 to count backwards
+ from end of positional parameters */
+ if (vtype == VT_ARRAYVAR && *e2p < 0)
+#endif
{
internal_error (_("%s: substring expression < 0"), t);
return (0);
@@ -6196,31 +6366,46 @@ get_var_and_type (varname, value, ind, quoted, flags, varp, valp)
SHELL_VAR **varp;
char **valp;
{
- int vtype;
- char *temp;
+ int vtype, want_indir;
+ char *temp, *vname;
+ WORD_DESC *wd;
#if defined (ARRAY_VARS)
SHELL_VAR *v;
#endif
arrayind_t lind;
+ want_indir = *varname == '!' &&
+ (legal_variable_starter ((unsigned char)varname[1]) || DIGIT (varname[1])
+ || VALID_INDIR_PARAM (varname[1]));
+ if (want_indir)
+ vname = parameter_brace_find_indir (varname+1, SPECIAL_VAR (varname, 1), quoted, 1);
+ else
+ vname = varname;
+
/* This sets vtype to VT_VARIABLE or VT_POSPARMS */
- vtype = (varname[0] == '@' || varname[0] == '*') && varname[1] == '\0';
- if (vtype == VT_POSPARMS && varname[0] == '*')
+ vtype = (vname[0] == '@' || vname[0] == '*') && vname[1] == '\0';
+ if (vtype == VT_POSPARMS && vname[0] == '*')
vtype |= VT_STARSUB;
*varp = (SHELL_VAR *)NULL;
#if defined (ARRAY_VARS)
- if (valid_array_reference (varname))
+ if (valid_array_reference (vname))
{
- v = array_variable_part (varname, &temp, (int *)0);
+ v = array_variable_part (vname, &temp, (int *)0);
/* If we want to signal array_value to use an already-computed index,
set LIND to that index */
lind = (ind != INTMAX_MIN && (flags & AV_USEIND)) ? ind : 0;
+ if (v && invisible_p (v))
+ {
+ vtype = VT_ARRAYMEMBER;
+ *varp = (SHELL_VAR *)NULL;
+ *valp = (char *)NULL;
+ }
if (v && (array_p (v) || assoc_p (v)))
{ /* [ */
if (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']')
{
- /* Callers have to differentiate betwen indexed and associative */
+ /* Callers have to differentiate between indexed and associative */
vtype = VT_ARRAYVAR;
if (temp[0] == '*')
vtype |= VT_STARSUB;
@@ -6229,7 +6414,7 @@ get_var_and_type (varname, value, ind, quoted, flags, varp, valp)
else
{
vtype = VT_ARRAYMEMBER;
- *valp = array_value (varname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
+ *valp = array_value (vname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
}
*varp = v;
}
@@ -6246,10 +6431,10 @@ get_var_and_type (varname, value, ind, quoted, flags, varp, valp)
{
vtype = VT_ARRAYMEMBER;
*varp = v;
- *valp = array_value (varname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
+ *valp = array_value (vname, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
}
}
- else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && (assoc_p (v) || array_p (v)))
+ else if ((v = find_variable (vname)) && (invisible_p (v) == 0) && (assoc_p (v) || array_p (v)))
{
vtype = VT_ARRAYMEMBER;
*varp = v;
@@ -6269,6 +6454,9 @@ get_var_and_type (varname, value, ind, quoted, flags, varp, valp)
*valp = value;
}
+ if (want_indir)
+ free (vname);
+
return vtype;
}
@@ -6343,7 +6531,11 @@ parameter_brace_substring (varname, value, ind, substr, quoted, flags)
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);
+ {
+ if (vtype == VT_VARIABLE)
+ FREE (val);
+ return ((r == 0) ? &expand_param_error : (char *)NULL);
+ }
switch (vtype)
{
@@ -6563,18 +6755,7 @@ pos_params_pat_subst (string, pat, rep, mflags)
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_dollar_star (save);
-#else
ret = string_list_pos_params (pchar, save, qflags);
-#endif
dispose_words (save);
@@ -6609,7 +6790,8 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, flags)
vtype &= ~VT_STARSUB;
mflags = 0;
- if (patsub && *patsub == '/')
+ /* PATSUB is never NULL when this is called. */
+ if (*patsub == '/')
{
mflags |= MATCH_GLOBREP;
patsub++;
@@ -6627,12 +6809,6 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, flags)
/* 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] == '/')
{
@@ -6641,7 +6817,6 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, flags)
}
else
rep = (char *)NULL;
-#endif
if (rep && *rep == '\0')
rep = (char *)NULL;
@@ -6652,7 +6827,14 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, flags)
if (rep)
{
- if ((mflags & MATCH_QUOTED) == 0)
+ /* We want to perform quote removal on the expanded replacement even if
+ the entire expansion is double-quoted because the parser and string
+ extraction functions treated quotes in the replacement string as
+ special. THIS IS NOT BACKWARDS COMPATIBLE WITH BASH-4.2. */
+ if (shell_compatibility_level > 42)
+ rep = expand_string_if_necessary (rep, quoted & ~(Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT), expand_string_unsplit);
+ /* This is the bash-4.2 code. */
+ else if ((mflags & MATCH_QUOTED) == 0)
rep = expand_string_if_necessary (rep, quoted, expand_string_unsplit);
else
rep = expand_string_to_string_internal (rep, quoted, expand_string_unsplit);
@@ -6978,9 +7160,8 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
(sindex == t_index - 1 && string[sindex] == '!' && VALID_INDIR_PARAM (string[t_index])))
{
t_index++;
- free (name);
temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0);
- name = (char *)xmalloc (3 + (strlen (temp1)));
+ name = (char *)xrealloc (name, 3 + (strlen (temp1)));
*name = string[sindex];
if (string[sindex] == '!')
{
@@ -7011,7 +7192,7 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
}
else if (c == ':' && string[sindex] != RBRACE)
want_substring = 1;
- else if (c == '/' && string[sindex] != RBRACE)
+ else if (c == '/' /* && string[sindex] != RBRACE */) /* XXX */
want_patsub = 1;
#if defined (CASEMOD_EXPANSIONS)
else if (c == '^' || c == ',' || c == '~')
@@ -7098,6 +7279,8 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
if (contains_dollar_at)
*contains_dollar_at = 1;
+
+ tflag |= W_DOLLARAT;
}
/* Process ${!PREFIX*} expansion. */
@@ -7122,14 +7305,19 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
*quoted_dollar_atp = 1;
if (contains_dollar_at)
*contains_dollar_at = 1;
+
+ tflag |= W_DOLLARAT;
}
free (x);
dispose_words (xlist);
free (temp1);
*indexp = sindex;
+ free (name);
+
ret = alloc_word_desc ();
ret->word = temp;
+ ret->flags = tflag; /* XXX */
return ret;
}
@@ -7152,6 +7340,8 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
*quoted_dollar_atp = 1;
if (contains_dollar_at)
*contains_dollar_at = 1;
+
+ tflag |= W_DOLLARAT;
}
free (temp1);
@@ -7159,6 +7349,7 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
ret = alloc_word_desc ();
ret->word = temp;
+ ret->flags = tflag; /* XXX */
return ret;
}
@@ -7177,7 +7368,7 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
if (want_indir)
tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at);
else
- tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&PF_NOSPLIT2), &ind);
+ tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind);
if (tdesc)
{
@@ -7188,6 +7379,13 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
else
temp = (char *)0;
+ if (temp == &expand_param_error || temp == &expand_param_fatal)
+ {
+ FREE (name);
+ FREE (value);
+ return (temp == &expand_param_error ? &expand_wdesc_error : &expand_wdesc_fatal);
+ }
+
#if defined (ARRAY_VARS)
if (valid_array_reference (name))
chk_atstar (name, quoted, quoted_dollar_atp, contains_dollar_at);
@@ -7195,6 +7393,9 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
var_is_set = temp != (char *)0;
var_is_null = check_nullness && (var_is_set == 0 || *temp == 0);
+ /* XXX - this may not need to be restricted to special variables */
+ if (check_nullness)
+ var_is_null |= var_is_set && var_is_special && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL (temp);
/* Get the rest of the stuff inside the braces. */
if (c && c != RBRACE)
@@ -7242,7 +7443,13 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
ret = alloc_word_desc ();
ret->word = temp1;
- if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ /* We test quoted_dollar_atp because we want variants with double-quoted
+ "$@" to take a different code path. In fact, we make sure at the end
+ of expand_word_internal that we're only looking at these flags if
+ quoted_dollar_at == 0. */
+ if (temp1 &&
+ (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
+ QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
return ret;
}
@@ -7260,9 +7467,9 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
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)))
+ if (temp1 &&
+ (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
+ QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
return ret;
}
@@ -7281,7 +7488,9 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
ret = alloc_word_desc ();
ret->word = temp1;
- if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+ if (temp1 &&
+ (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) &&
+ QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
ret->flags |= W_QUOTED|W_HASQUOTEDNULL;
return ret;
}
@@ -7370,6 +7579,7 @@ parameter_brace_expand (string, indexp, quoted, pflags, quoted_dollar_atp, conta
temp = (char *)NULL;
if (c == '=' && var_is_special)
{
+ last_command_exit_value = EXECUTION_FAILURE;
report_error (_("$%s: cannot assign in this way"), name);
free (name);
free (value);
@@ -7574,7 +7784,6 @@ param_expand (string, sindex, quoted, expanded_something,
an assignment statement. In that case, we don't separate the
arguments at all. Otherwise, if the $* is not quoted it is
identical to $@ */
-#if 1
# if defined (HANDLE_MULTIBYTE)
if (expand_no_split_dollar_star && ifs_firstc[0] == 0)
# else
@@ -7582,10 +7791,12 @@ param_expand (string, sindex, quoted, expanded_something,
# endif
temp = string_list_dollar_star (list);
else
- temp = string_list_dollar_at (list, quoted);
-#else
- temp = string_list_dollar_at (list, quoted);
-#endif
+ {
+ temp = string_list_dollar_at (list, quoted);
+ if (quoted == 0 && (ifs_is_set == 0 || ifs_is_null))
+ tflag |= W_SPLITSPACE;
+ }
+
if (expand_no_split_dollar_star == 0 && contains_dollar_at)
*contains_dollar_at = 1;
}
@@ -7631,18 +7842,14 @@ param_expand (string, sindex, quoted, expanded_something,
if (contains_dollar_at)
*contains_dollar_at = 1;
-#if 0
- if (pflags & PF_NOSPLIT2)
- temp = string_list_internal (quoted ? quote_list (list) : list, " ");
- else
-#endif
/* We want to separate the positional parameters with the first
character of $IFS in case $IFS is something other than a space.
We also want to make sure that splitting is done no matter what --
according to POSIX.2, this expands to a list of the positional
parameters no matter what IFS is set to. */
- temp = string_list_dollar_at (list, quoted);
+ temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted);
+ tflag |= W_DOLLARAT;
dispose_words (list);
break;
@@ -7822,6 +8029,30 @@ comsub:
goto return0;
}
+ else if (var = find_variable_last_nameref (temp1))
+ {
+ temp = nameref_cell (var);
+#if defined (ARRAY_VARS)
+ if (temp && *temp && valid_array_reference (temp))
+ {
+ tdesc = parameter_brace_expand_word (temp, SPECIAL_VAR (temp, 0), quoted, pflags, (arrayind_t *)NULL);
+ if (tdesc == &expand_wdesc_error || tdesc == &expand_wdesc_fatal)
+ return (tdesc);
+ ret = tdesc;
+ goto return0;
+ }
+ else
+#endif
+ /* y=2 ; typeset -n x=y; echo $x is not the same as echo $2 in ksh */
+ if (temp && *temp && legal_identifier (temp) == 0)
+ {
+ last_command_exit_value = EXECUTION_FAILURE;
+ report_error (_("%s: invalid variable name for name reference"), temp);
+ return (&expand_wdesc_error); /* XXX */
+ }
+ else
+ temp = (char *)NULL;
+ }
temp = (char *)NULL;
@@ -7927,6 +8158,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
/* State flags */
int had_quoted_null;
int has_dollar_at, temp_has_dollar_at;
+ int split_on_spaces;
int tflag;
int pflags; /* flags passed to param_expand */
@@ -7942,6 +8174,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
istring = (char *)xmalloc (istring_size = DEFAULT_INITIAL_ARRAY_SIZE);
istring[istring_index = 0] = '\0';
quoted_dollar_at = had_quoted_null = has_dollar_at = 0;
+ split_on_spaces = 0;
quoted_state = UNQUOTED;
string = word->word;
@@ -7962,7 +8195,7 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin
{
c = string[sindex];
- /* Case on toplevel character. */
+ /* Case on top-level character. */
switch (c)
{
case '\0':
@@ -8135,10 +8368,13 @@ add_string:
pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
if (word->flags & W_NOSPLIT2)
pflags |= PF_NOSPLIT2;
+ if (word->flags & W_ASSIGNRHS)
+ pflags |= PF_ASSIGNRHS;
tword = param_expand (string, &sindex, quoted, expanded_something,
&temp_has_dollar_at, &quoted_dollar_at,
&had_quoted_null, pflags);
has_dollar_at += temp_has_dollar_at;
+ split_on_spaces += (tword->flags & W_SPLITSPACE);
if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
{
@@ -8153,7 +8389,7 @@ add_string:
if (tword && (tword->flags & W_HASQUOTEDNULL))
had_quoted_null = 1;
- temp = tword->word;
+ temp = tword ? tword->word : (char *)NULL;
dispose_word_desc (tword);
/* Kill quoted nulls; we will add them back at the end of
@@ -8181,6 +8417,7 @@ add_string:
sindex = t_index;
goto add_character;
}
+ last_command_exit_value = EXECUTION_FAILURE;
report_error (_("bad substitution: no closing \"`\" in %s") , string+t_index);
free (string);
free (istring);
@@ -8229,6 +8466,17 @@ add_string:
{
SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size);
}
+ /* This is the fix for " $@\ " */
+ else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0) && isexp == 0 && isifs (c))
+ {
+ RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size,
+ DEFAULT_ARRAY_SIZE);
+ istring[istring_index++] = CTLESC;
+ istring[istring_index++] = '\\';
+ istring[istring_index] = '\0';
+
+ SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size);
+ }
else if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && ((sh_syntaxtab[c] & tflag) == 0))
{
SCOPY_CHAR_I (twochars, '\\', c, string, sindex, string_size);
@@ -8256,11 +8504,7 @@ add_twochars:
break;
case '"':
-#if 0
- if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE))
-#else
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
-#endif
goto add_character;
t_index = ++sindex;
@@ -8318,7 +8562,7 @@ add_twochars:
dequote_list (list);
if (list && list->word && (list->word->flags & W_HASQUOTEDNULL))
- had_quoted_null = 1;
+ had_quoted_null = 1; /* XXX */
if (has_dollar_at)
{
@@ -8348,11 +8592,6 @@ add_twochars:
{
if (list->next)
{
-#if 0
- if (quoted_dollar_at && (word->flags & W_NOSPLIT2))
- temp = string_list_internal (quote_list (list), " ");
- else
-#endif
/* Testing quoted_dollar_at makes sure that "$@" is
split correctly when $IFS does not contain a space. */
temp = quoted_dollar_at
@@ -8388,7 +8627,10 @@ add_twochars:
temp = (char *)NULL;
/* We do not want to add quoted nulls to strings that are only
- partially quoted; we can throw them away. */
+ partially quoted; we can throw them away. The exception to
+ this is when we are going to be performing word splitting,
+ since we have to preserve a null argument if the next character
+ will cause word splitting. */
if (temp == 0 && quoted_state == PARTIALLY_QUOTED && (word->flags & (W_NOSPLIT|W_NOSPLIT2)))
continue;
@@ -8412,11 +8654,7 @@ add_twochars:
/* break; */
case '\'':
-#if 0
- if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (word->flags & W_DQUOTE))
-#else
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
-#endif
goto add_character;
t_index = ++sindex;
@@ -8565,6 +8803,8 @@ finished_with_string:
tword->flags |= W_COMPASSIGN; /* XXX */
if (word->flags & W_NOGLOB)
tword->flags |= W_NOGLOB; /* XXX */
+ if (word->flags & W_NOBRACE)
+ tword->flags |= W_NOBRACE; /* XXX */
if (word->flags & W_NOEXPAND)
tword->flags |= W_NOEXPAND; /* XXX */
if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
@@ -8584,8 +8824,13 @@ finished_with_string:
positional parameters with a space, so we split on space (we have
set ifs_chars to " \t\n" above if ifs is unset). If IFS is set,
string_list_dollar_at has separated the positional parameters
- with the first character of $IFS, so we split on $IFS. */
- if (has_dollar_at && ifs_chars)
+ with the first character of $IFS, so we split on $IFS. If
+ SPLIT_ON_SPACES is set, we expanded $* (unquoted) with IFS either
+ unset or null, and we want to make sure that we split on spaces
+ regardless of what else has happened to IFS since the expansion. */
+ if (split_on_spaces)
+ list = list_string (istring, " ", 1); /* XXX quoted == 1? */
+ else if (has_dollar_at && ifs_chars)
list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1);
else
{
@@ -8598,6 +8843,8 @@ finished_with_string:
tword->flags |= W_COMPASSIGN;
if (word->flags & W_NOGLOB)
tword->flags |= W_NOGLOB;
+ if (word->flags & W_NOBRACE)
+ tword->flags |= W_NOBRACE;
if (word->flags & W_NOEXPAND)
tword->flags |= W_NOEXPAND;
if (had_quoted_null && QUOTED_NULL (istring))
@@ -8746,6 +8993,9 @@ setifs (v)
ifs_var = v;
ifs_value = (v && value_cell (v)) ? value_cell (v) : " \t\n";
+ ifs_is_set = ifs_var != 0;
+ ifs_is_null = ifs_is_set && (*ifs_value == 0);
+
/* Should really merge ifs_cmap with sh_syntaxtab. XXX - doesn't yet
handle multibyte chars in IFS */
memset (ifs_cmap, '\0', sizeof (ifs_cmap));
@@ -9058,7 +9308,6 @@ glob_expand_word_list (tlist, eflags)
for (glob_index = 0; glob_array[glob_index]; glob_index++)
{
tword = make_bare_word (glob_array[glob_index]);
- tword->flags |= W_GLOBEXP; /* XXX */
glob_list = make_word_list (tword, glob_list);
}
@@ -9069,6 +9318,7 @@ glob_expand_word_list (tlist, eflags)
}
else if (fail_glob_expansion != 0)
{
+ last_command_exit_value = EXECUTION_FAILURE;
report_error (_("no match: %s"), tlist->word->word);
exp_jump_to_top_level (DISCARD);
}
@@ -9123,13 +9373,20 @@ brace_expand_word_list (tlist, eflags)
{
next = tlist->next;
+ if (tlist->word->flags & W_NOBRACE)
+ {
+/*itrace("brace_expand_word_list: %s: W_NOBRACE", tlist->word->word);*/
+ PREPEND_LIST (tlist, output_list);
+ continue;
+ }
+
if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG))
{
/*itrace("brace_expand_word_list: %s: W_COMPASSIGN|W_ASSIGNARG", tlist->word->word);*/
PREPEND_LIST (tlist, output_list);
continue;
}
-
+
/* Only do brace expansion if the word has a brace character. If
not, just add the word list element to BRACES and continue. In
the common case, at least when running shell scripts, this will
@@ -9143,14 +9400,18 @@ brace_expand_word_list (tlist, eflags)
for (eindex = 0; temp_string = expansions[eindex]; eindex++)
{
- w = make_word (temp_string);
+ w = alloc_word_desc ();
+ w->word = temp_string;
+
/* If brace expansion didn't change the word, preserve
the flags. We may want to preserve the flags
unconditionally someday -- XXX */
if (STREQ (temp_string, tlist->word->word))
w->flags = tlist->word->flags;
+ else
+ w = make_word_flags (w, temp_string);
+
output_list = make_word_list (w, output_list);
- free (expansions[eindex]);
}
free (expansions);
@@ -9223,9 +9484,38 @@ shell_expand_word_list (tlist, eflags)
if ((tlist->word->flags & (W_COMPASSIGN|W_ASSIGNARG)) == (W_COMPASSIGN|W_ASSIGNARG))
{
int t;
+ char opts[8], opti;
+
+ opti = 0;
+ if (tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL|W_ASSIGNARRAY))
+ opts[opti++] = '-';
+
+ if ((tlist->word->flags & (W_ASSIGNASSOC|W_ASSNGLOBAL)) == (W_ASSIGNASSOC|W_ASSNGLOBAL))
+ {
+ opts[opti++] = 'g';
+ opts[opti++] = 'A';
+ }
+ else if (tlist->word->flags & W_ASSIGNASSOC)
+ opts[opti++] = 'A';
+ else if ((tlist->word->flags & (W_ASSIGNARRAY|W_ASSNGLOBAL)) == (W_ASSIGNARRAY|W_ASSNGLOBAL))
+ {
+ opts[opti++] = 'g';
+ opts[opti++] = 'a';
+ }
+ else if (tlist->word->flags & W_ASSIGNARRAY)
+ opts[opti++] = 'a';
+ else if (tlist->word->flags & W_ASSNGLOBAL)
+ opts[opti++] = 'g';
- if (tlist->word->flags & W_ASSIGNASSOC)
- make_internal_declare (tlist->word->word, "-A");
+#if 0
+ /* If we have special handling note the integer attribute */
+ if (opti > 0 && (tlist->word->flags & W_ASSIGNINT))
+ opts[opti++] = 'i';
+#endif
+
+ opts[opti] = '\0';
+ if (opti > 0)
+ make_internal_declare (tlist->word->word, opts);
t = do_word_assignment (tlist->word, 0);
if (t == 0)
@@ -9237,7 +9527,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|W_ASSIGNASSOC);
+ tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG|W_ASSIGNASSOC|W_ASSIGNARRAY);
}
#endif
@@ -9302,7 +9592,9 @@ shell_expand_word_list (tlist, eflags)
process substitution, word splitting, and pathname expansion, according
to the bits set in EFLAGS. Words with the W_QUOTED or W_NOSPLIT bits
set, or for which no expansion is done, do not undergo word splitting.
- Words with the W_NOGLOB bit set do not undergo pathname expansion. */
+ Words with the W_NOGLOB bit set do not undergo pathname expansion; words
+ with W_NOBRACE set do not undergo brace expansion (see
+ brace_expand_word_list above). */
static WORD_LIST *
expand_word_list_internal (list, eflags)
WORD_LIST *list;
@@ -9311,6 +9603,7 @@ expand_word_list_internal (list, eflags)
WORD_LIST *new_list, *temp_list;
int tint;
+ tempenv_assign_error = 0;
if (list == 0)
return ((WORD_LIST *)NULL);
@@ -9416,13 +9709,5 @@ expand_word_list_internal (list, eflags)
subst_assign_varlist = (WORD_LIST *)NULL;
}
-#if 0
- tint = list_length (new_list) + 1;
- RESIZE_MALLOCED_BUFFER (glob_argv_flags, 0, tint, glob_argv_flags_size, 16);
- for (tint = 0, temp_list = new_list; temp_list; temp_list = temp_list->next)
- glob_argv_flags[tint++] = (temp_list->word->flags & W_GLOBEXP) ? '1' : '0';
- glob_argv_flags[tint] = '\0';
-#endif
-
return (new_list);
}
diff --git a/subst.h b/subst.h
index 914fffeb..d123fccf 100644
--- a/subst.h
+++ b/subst.h
@@ -42,9 +42,11 @@
#define Q_DOLBRACE 0x80
/* Flag values controlling how assignment statements are treated. */
-#define ASS_APPEND 0x01
-#define ASS_MKLOCAL 0x02
-#define ASS_MKASSOC 0x04
+#define ASS_APPEND 0x0001
+#define ASS_MKLOCAL 0x0002
+#define ASS_MKASSOC 0x0004
+#define ASS_MKGLOBAL 0x0008 /* force global assignment */
+#define ASS_NAMEREF 0x0010 /* assigning to nameref variable */
/* Flags for the string extraction functions. */
#define SX_NOALLOC 0x0001 /* just skip; don't return substring */
@@ -280,6 +282,8 @@ extern char *cond_expand_word __P((WORD_DESC *, int));
#define SD_NOQUOTEDELIM 0x04 /* don't let single or double quotes act as delimiters */
#define SD_NOSKIPCMD 0x08 /* don't skip over $(, <(, or >( command/process substitution */
#define SD_EXTGLOB 0x10 /* skip over extended globbing patterns if appropriate */
+#define SD_IGNOREQUOTE 0x20 /* single and double quotes are not special */
+#define SD_GLOB 0x40 /* skip over glob patterns like bracket expressions */
extern int skip_to_delim __P((char *, int, char *, int));
diff --git a/support/config.guess b/support/config.guess
index 994d98a4..9afd6762 100644
--- a/support/config.guess
+++ b/support/config.guess
@@ -1,14 +1,12 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2008-03-12'
+timestamp='2013-11-29'
# 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
-# 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
@@ -17,26 +15,22 @@ timestamp='2008-03-12'
# 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.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# 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 <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -56,8 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008,2009 Free Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -139,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
@@ -170,7 +184,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -180,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -201,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -223,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -269,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
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
@@ -295,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
+ echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -324,14 +345,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -375,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@@ -461,8 +501,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -475,7 +515,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@@ -532,7 +572,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[456])
+ *:AIX:*:[4567])
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
@@ -575,52 +615,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -640,7 +680,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -711,22 +751,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@@ -750,14 +790,14 @@ EOF
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 ;;
+ 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 ;;
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}"
+ 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}
@@ -769,34 +809,39 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- *:Interix*:[3456]*)
- case ${UNAME_MACHINE} in
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T | authenticamd)
+ authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
@@ -806,6 +851,9 @@ EOF
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ 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
@@ -826,210 +874,157 @@ EOF
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
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
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ 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
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- mips:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips
- #undef mipsel
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- 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; }
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- 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
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-${LIBC}
exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- 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}
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
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
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- 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 ;;
- esac
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #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 | 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
@@ -1037,11 +1032,11 @@ EOF
echo i386-sequent-sysv4
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...
- # I am not positive that other SVR4 systems won't match this,
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@@ -1058,7 +1053,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1073,7 +1068,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@@ -1101,10 +1096,13 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit ;;
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@@ -1139,8 +1137,18 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { 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; } ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ 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; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
@@ -1153,7 +1161,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1173,10 +1181,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -1202,11 +1210,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@@ -1219,6 +1227,9 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1245,9 +1256,31 @@ EOF
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1261,7 +1294,10 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
@@ -1306,13 +1342,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ 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`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1327,11 +1363,14 @@ EOF
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
@@ -1349,11 +1388,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
diff --git a/support/config.sub b/support/config.sub
index d07267e1..61cb4bc2 100644
--- a/support/config.sub
+++ b/support/config.sub
@@ -1,44 +1,40 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 20098
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2008-03-26'
+timestamp='2013-10-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# 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
-# the Free Software Foundation; either version 2 of the License, or
+# 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
+# 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., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# 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.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@@ -72,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008,2009 Free Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -120,12 +115,18 @@ 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* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
@@ -148,10 +149,13 @@ 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 | -knuth | -cray)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -166,10 +170,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
@@ -214,6 +218,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -238,19 +248,28 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
+ | epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -268,31 +287,45 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | moxie \
| mt \
| msp430 \
- | nios | nios2 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | or32 \
+ | open8 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | rl78 | rx \
| score \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -302,6 +335,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-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.
@@ -316,24 +364,31 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
+ | le32-* | le64-* \
+ | lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -351,31 +406,37 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
- | nios-* | nios2-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
| tron-* \
- | v850-* | v850e-* | vax-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
- | z8k-*)
+ | z8k-* | z80-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
@@ -397,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -443,6 +504,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-bsd
;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -459,10 +524,27 @@ case $basic_machine in
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -491,7 +573,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16)
+ cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
@@ -530,6 +612,10 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
@@ -645,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -703,8 +788,15 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -739,10 +831,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -807,6 +907,9 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
nse-tandem)
basic_machine=nse-tandem
;;
@@ -892,9 +995,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -919,7 +1023,11 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
@@ -988,6 +1096,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1044,20 +1155,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- 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
+ basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@@ -1127,6 +1226,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1135,6 +1237,10 @@ case $basic_machine in
basic_machine=z8k-unknown
os=-sim
;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
none)
basic_machine=none-none
os=-none
@@ -1173,7 +1279,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1220,9 +1326,12 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1243,21 +1352,23 @@ case $os in
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
+ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -bitrig* | -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* | -linux-newlib* | -linux-uclibc* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1265,7 +1376,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1304,7 +1415,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1353,7 +1464,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1389,12 +1500,14 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
-none)
;;
*)
@@ -1417,10 +1530,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
@@ -1432,8 +1545,23 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ c8051-*)
+ os=-elf
+ ;;
+ hexagon-*)
+ os=-elf
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1453,14 +1581,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
@@ -1469,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
@@ -1487,7 +1615,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
@@ -1592,7 +1720,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
diff --git a/support/man2html.c b/support/man2html.c
index 2432c13f..87e5ee47 100644
--- a/support/man2html.c
+++ b/support/man2html.c
@@ -68,6 +68,7 @@
#define NROFF 0
+#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/support/mkconffiles b/support/mkconffiles
index 9eb22318..59e4c0f1 100755
--- a/support/mkconffiles
+++ b/support/mkconffiles
@@ -1,7 +1,7 @@
#! /bin/sh
#
# mkconffiles - create _distribution and _patchlevel files in preparation
-# for recreating `configure' from `configure.in'
+# for recreating `configure' from `configure.ac'
#
# options:
# -s srcdir directory where `configure' resides (defaults to `.')
diff --git a/support/printenv.c b/support/printenv.c
index b45e4c7b..154e086c 100644
--- a/support/printenv.c
+++ b/support/printenv.c
@@ -29,6 +29,7 @@
#endif
#include "bashansi.h"
+#include <stdio.h> /* puts */
extern char **environ;
diff --git a/support/shobj-conf b/support/shobj-conf
index c61dc78b..1f64433d 100755
--- a/support/shobj-conf
+++ b/support/shobj-conf
@@ -10,7 +10,7 @@
# Chet Ramey
# chet@po.cwru.edu
-# Copyright (C) 1996-2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is part of GNU Bash, the Bourne Again SHell.
#
@@ -65,6 +65,20 @@ while [ $# -gt 0 ]; do
done
case "${host_os}-${SHOBJ_CC}-${host_vendor}" in
+nsk-cc-tandem)
+ SHOBJ_CFLAGS=-Wglobalized
+ case `uname -m` in
+ NSR*)
+ SHOBJ_CFLAGS="${SHOBJ_CFLAGS} -Wcall_shared" # default on TNS/E, needed on TNS/R
+ SHOBJ_LD=/usr/bin/ld # for TNS/R
+ ;;
+ NSE*|NEO*)
+ SHOBJ_LD=/usr/bin/eld
+ ;;
+ esac
+ SHOBJ_LDFLAGS='-shared -bglobalized -unres_symbols ignore'
+ ;;
+
sunos4*-*gcc*)
SHOBJ_CFLAGS=-fpic
SHOBJ_LD=/usr/bin/ld
@@ -146,7 +160,7 @@ freebsd3*|freebsdaout*)
;;
# FreeBSD-4.x and later have only ELF
-freebsd[4-9]*|freebsdelf*|dragonfly*)
+freebsd[4-9]*|freebsd1[0-9]*|freebsdelf*|dragonfly*)
SHOBJ_CFLAGS=-fPIC
SHOBJ_LD='${CC}'
@@ -157,27 +171,8 @@ freebsd[4-9]*|freebsdelf*|dragonfly*)
;;
# Darwin/MacOS X
-darwin[89]*|darwin1[012]*)
- SHOBJ_STATUS=supported
- SHLIB_STATUS=supported
-
- SHOBJ_CFLAGS='-fno-common'
-
- SHOBJ_LD='MACOSX_DEPLOYMENT_TARGET=10.3 ${CC}'
-
- SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
- SHLIB_LIBSUFF='dylib'
-
- 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
- ;;
-
-darwin*|macosx*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=supported
-
+darwin*)
+ # Common definitions for all darwin/mac os x versions
SHOBJ_CFLAGS='-fno-common'
SHOBJ_LD='${CC}'
@@ -185,19 +180,39 @@ darwin*|macosx*)
SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
SHLIB_LIBSUFF='dylib'
+ # unused at this time
+ SHLIB_SONAME='$(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF)'
+
case "${host_os}" in
- darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS=''
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ # Darwin versions 1, 5, 6, 7 correspond to Mac OS X 10.0, 10.1, 10.2,
+ # and 10.3, respectively.
+ darwin[1-7].*)
+ SHOBJ_STATUS=unsupported
+ SHOBJ_LDFLAGS='-dynamic'
+ SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF) -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
+ # Darwin 8 == Mac OS X 10.4; Mac OS X 10.N == Darwin N+4
+ *)
+ case "${host_os}" in
+ darwin[89]*|darwin1[012]*)
+ SHOBJ_ARCHFLAGS='-arch_only `/usr/bin/arch`'
;;
- *) SHOBJ_LDFLAGS='-dynamic'
- SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ *) # Mac OS X 10.9 (Mavericks) and later
+ SHOBJ_ARCHFLAGS=
+ # for 32 and 64bit universal library
+ #SHOBJ_ARCHFLAGS='-arch i386 -arch x86_64'
+ #SHOBJ_CFLAGS=${SHOBJ_CFLAGS}' -arch i386 -arch x86_64'
;;
+ esac
+ SHOBJ_LDFLAGS="-dynamiclib -dynamic -undefined dynamic_lookup ${SHOBJ_ARCHFLAGS}"
+ SHLIB_XLDFLAGS="-dynamiclib ${SHOBJ_ARCHFLAGS}"' -install_name $(libdir)/`echo $@ | sed "s:\\..*::"`.$(SHLIB_MAJOR).$(SHLIB_LIBSUFF) -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
esac
SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
;;
-openbsd*|netbsd*)
+openbsd*|netbsd*|mirbsd*)
SHOBJ_CFLAGS=-fPIC
SHOBJ_LD='${CC}'
SHOBJ_LDFLAGS='-shared'
diff --git a/support/signames.c b/support/signames.c
index abbcd1e1..d2978089 100644
--- a/support/signames.c
+++ b/support/signames.c
@@ -85,7 +85,7 @@ initialize_signames ()
/* POSIX 1003.1b-1993 real time signals, but take care of incomplete
implementations. Acoording to the standard, both, SIGRTMIN and
- SIGRTMAX must be defined, SIGRTMIN must be stricly less than
+ SIGRTMAX must be defined, SIGRTMIN must be strictly less than
SIGRTMAX, and the difference must be at least 7, that is, there
must be at least eight distinct real time signals. */
diff --git a/support/xcase.c b/support/xcase.c
index efd11bef..6796e066 100644
--- a/support/xcase.c
+++ b/support/xcase.c
@@ -39,6 +39,7 @@ extern int errno;
#define LOWER 1
#define UPPER 2
+int
main(ac, av)
int ac;
char **av;
diff --git a/test.c b/test.c
index e0cc19de..7f0b28d5 100644
--- a/test.c
+++ b/test.c
@@ -32,7 +32,7 @@
#include "bashtypes.h"
-#if !defined (HAVE_LIMITS_H)
+#if !defined (HAVE_LIMITS_H) && defined (HAVE_SYS_PARAM_H)
# include <sys/param.h>
#endif
@@ -50,6 +50,7 @@ extern int errno;
#endif /* !_POSIX_VERSION */
#include "posixstat.h"
#include "filecntl.h"
+#include "stat-time.h"
#include "bashintl.h"
@@ -156,7 +157,7 @@ integer_expected_error (pch)
}
/* Increment our position in the argument list. Check that we're not
- past the end of the argument list. This check is supressed if the
+ past the end of the argument list. This check is suppressed if the
argument is FALSE. Made a macro for efficiency. */
#define advance(f) do { ++pos; if (f && pos >= argc) beyond (); } while (0)
#define unary_advance() do { advance (1); ++pos; } while (0)
@@ -289,19 +290,35 @@ term ()
}
static int
+stat_mtime (fn, st, ts)
+ char *fn;
+ struct stat *st;
+ struct timespec *ts;
+{
+ int r;
+
+ r = sh_stat (fn, st);
+ if (r < 0)
+ return r;
+ *ts = get_stat_mtime (st);
+ return 0;
+}
+
+static int
filecomp (s, t, op)
char *s, *t;
int op;
{
struct stat st1, st2;
+ struct timespec ts1, ts2;
int r1, r2;
- if ((r1 = sh_stat (s, &st1)) < 0)
+ if ((r1 = stat_mtime (s, &st1, &ts1)) < 0)
{
if (op == EF)
return (FALSE);
}
- if ((r2 = sh_stat (t, &st2)) < 0)
+ if ((r2 = stat_mtime (t, &st2, &ts2)) < 0)
{
if (op == EF)
return (FALSE);
@@ -309,8 +326,8 @@ filecomp (s, t, op)
switch (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 OT: return (r1 < r2 || (r2 == 0 && timespec_cmp (ts1, ts2) < 0));
+ case NT: return (r1 > r2 || (r1 == 0 && timespec_cmp (ts1, ts2) > 0));
case EF: return (same_file (s, t, &st1, &st2));
}
return (FALSE);
@@ -378,9 +395,11 @@ binary_test (op, arg1, arg2, flags)
return (patmatch ? patcomp (arg1, arg2, EQ) : STREQ (arg1, arg2));
else if ((op[0] == '>' || op[0] == '<') && op[1] == '\0')
{
+#if defined (HAVE_STRCOLL)
if (shell_compatibility_level > 40 && flags & TEST_LOCALE)
return ((op[0] == '>') ? (strcoll (arg1, arg2) > 0) : (strcoll (arg1, arg2) < 0));
else
+#endif
return ((op[0] == '>') ? (strcmp (arg1, arg2) > 0) : (strcmp (arg1, arg2) < 0));
}
else if (op[0] == '!' && op[1] == '=' && op[2] == '\0')
@@ -603,7 +622,32 @@ unary_test (op, arg)
case 'v':
v = find_variable (arg);
- return (v && var_isset (v) ? TRUE : FALSE);
+#if defined (ARRAY_VARS)
+ if (v == 0 && valid_array_reference (arg))
+ {
+ char *t;
+ t = array_value (arg, 0, 0, (int *)0, (arrayind_t *)0);
+ return (t ? TRUE : FALSE);
+ }
+ else if (v && invisible_p (v) == 0 && array_p (v))
+ {
+ char *t;
+ /* [[ -v foo ]] == [[ -v foo[0] ]] */
+ t = array_reference (array_cell (v), 0);
+ return (t ? TRUE : FALSE);
+ }
+ else if (v && invisible_p (v) == 0 && assoc_p (v))
+ {
+ char *t;
+ t = assoc_reference (assoc_cell (v), "0");
+ return (t ? TRUE : FALSE);
+ }
+#endif
+ return (v && invisible_p (v) == 0 && var_isset (v) ? TRUE : FALSE);
+
+ case 'R':
+ v = find_variable (arg);
+ return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE);
}
/* We can't actually get here, but this shuts up gcc. */
@@ -801,7 +845,7 @@ test_command (margc, margv)
USE_VAR(margc);
- code = setjmp (test_exit_buf);
+ code = setjmp_nosigs (test_exit_buf);
if (code)
return (test_error_return);
diff --git a/tests/COPYRIGHT b/tests/COPYRIGHT
index c69f2979..43b39df6 100644
--- a/tests/COPYRIGHT
+++ b/tests/COPYRIGHT
@@ -1,6 +1,9 @@
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,2007,2008,2009
+2004,2005,2006,2007,2008,2009,2010,2011
Free Software Foundation, Inc.
+See the file COPYING in the bash distribution root directory for copying
+and usage restrictions.
+
The file ifs-posix.tests is Copyright (C) 2005 Glen Fowler.
diff --git a/tests/appendop.right b/tests/appendop.right
index 1e243332..9c867921 100644
--- a/tests/appendop.right
+++ b/tests/appendop.right
@@ -1,7 +1,7 @@
14
1 2 3 4 5 6
1 2 3 4 51 6
-5
+145
14
7
42
@@ -15,4 +15,14 @@
4
9
16
-./appendop.tests: line 83: x: readonly variable
+./appendop.tests: line 84: x: readonly variable
+declare -A foo='([one]="bar" [two]="baz" [three]="quux" )'
+declare -A foo='([one]="bar" [two]="baz" [0]="zero" [three]="quux" )'
+declare -A foo='([four]="four" [one]="bar" [two]="baz" [0]="zero" [three]="quux" )'
+declare -ai iarr='([0]="3" [1]="2" [2]="3")'
+declare -ai iarr='([0]="3" [1]="2" [2]="3" [3]="4" [4]="5" [5]="6")'
+25 25
+7 7
+14
+145
+145 145
diff --git a/tests/appendop.tests b/tests/appendop.tests
index 7b61f3f1..e4e52c2f 100644
--- a/tests/appendop.tests
+++ b/tests/appendop.tests
@@ -12,7 +12,8 @@ x[4]+=1
echo ${x[@]}
# trickier cases
-
+# post-bash-4.2: bash understands += in environment assignments preceding
+# command names
a+=5 printenv a
echo $a
@@ -81,3 +82,6 @@ readonly x+=7
echo $x
x+=5
+
+${THIS_SH} ./appendop1.sub
+${THIS_SH} ./appendop2.sub
diff --git a/tests/appendop1.sub b/tests/appendop1.sub
new file mode 100644
index 00000000..7101d0cc
--- /dev/null
+++ b/tests/appendop1.sub
@@ -0,0 +1,15 @@
+typeset -A foo=([one]=bar [two]=baz [three]=quux)
+typeset -p foo
+
+foo+=zero
+typeset -p foo
+
+foo+=([four]=four)
+typeset -p foo
+
+typeset -ia iarr=(2 2 3)
+iarr+=1
+typeset -p iarr
+
+iarr+=(4 5 6)
+typeset -p iarr
diff --git a/tests/appendop2.sub b/tests/appendop2.sub
new file mode 100644
index 00000000..4225ba3f
--- /dev/null
+++ b/tests/appendop2.sub
@@ -0,0 +1,18 @@
+POSIXLY_CORRECT=1
+x=2
+x+=5 eval printf '"$x "'
+echo "$x"
+
+unset x
+typeset -i x=2
+x+=5 eval printf '"$x "'
+echo "$x"
+
+a=1
+a+=4
+echo $a
+
+# idiotically, ksh93 makes these two cases differ (?)
+a+=5 printenv a
+a+=5 eval printf '"$a "'
+echo $a
diff --git a/tests/arith-for.right b/tests/arith-for.right
index 44941103..5b25c5eb 100644
--- a/tests/arith-for.right
+++ b/tests/arith-for.right
@@ -72,3 +72,15 @@ fx ()
2
20
20
+12345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678
+12345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678
+4
+3
+2
+1
+0
+4
+3
+2
+1
+0
diff --git a/tests/arith-for.tests b/tests/arith-for.tests
index 585aa513..00e2d4ae 100644
--- a/tests/arith-for.tests
+++ b/tests/arith-for.tests
@@ -92,3 +92,22 @@ echo $i
for ((i=0; i < 20; i++)) { : ; }
echo $i
+
+# added post-bash-4.2
+for (( i = j = k = 1; i % 9 || (j *= -1, $( ((i%9)) || printf " " >&2; echo 0), k++ <= 10); i += j ))
+do
+printf "$i"
+done
+
+echo
+
+( for (( i = j = k = 1; i % 9 || (j *= -1, $( ((i%9)) || printf " " >&2; echo 0), k++ <= 10); i += j ))
+do
+printf "$i"
+done )
+
+echo
+
+for (( i = 4; ;i--)) ; do echo $i; if (( $i == 0 )); then break; fi; done
+
+for (( i = 4;;i--)) ; do echo $i; if (( $i == 0 )); then break; fi; done
diff --git a/tests/arith.right b/tests/arith.right
index 94e5f61f..680d9a95 100644
--- a/tests/arith.right
+++ b/tests/arith.right
@@ -205,14 +205,43 @@ ok
0
1
2147483649
+0
+0
+0
+0
+0
+0
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+9223372036854775805 9223372036854775806 9223372036854775807
+123 456
+123 456
+123 456
+123 456
+123 456
+123 456
+1
+1 2 3 4 5 6 7
+0 1 2 3 4 5 6 7
+0
+0, 0
+0, 1
8 12
-./arith.tests: line 279: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ")
-./arith.tests: line 283: a b: syntax error in expression (error token is "b")
-./arith.tests: line 284: ((: a b: syntax error in expression (error token is "b")
+./arith.tests: line 286: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ")
+./arith.tests: line 290: a b: syntax error in expression (error token is "b")
+./arith.tests: line 291: ((: a b: syntax error in expression (error token is "b")
42
42
42
42
42
42
-./arith.tests: line 295: b[c]d: syntax error in expression (error token is "d")
+./arith.tests: line 302: b[c]d: syntax error in expression (error token is "d")
diff --git a/tests/arith.tests b/tests/arith.tests
index 86c24a47..7dcc36d8 100644
--- a/tests/arith.tests
+++ b/tests/arith.tests
@@ -268,6 +268,13 @@ ${THIS_SH} ./arith4.sub
# make sure arithmetic expansion handles ints > 2**31 - 1 using intmax_t
echo $(( 2147483645 + 4 ))
+# other tests using INTMAX_MIN and INTMAX_MAX that cause exceptions if not
+# handled correctly -- problem through bash-4.2
+${THIS_SH} ./arith5.sub
+
+# problems with suppressing evaluation present through bash-4.2
+${THIS_SH} ./arith6.sub
+
x=4
y=7
diff --git a/tests/arith5.sub b/tests/arith5.sub
new file mode 100644
index 00000000..c8fdb5a9
--- /dev/null
+++ b/tests/arith5.sub
@@ -0,0 +1,56 @@
+intmax_max=$((2**63 - 1))
+intmax_min1=$((2**63))
+intmax_min2=$((-2**63))
+
+case $intmax_max in
+9223372036854775807) ;;
+*) echo "warning: your machine does not support 64-bit arithmetic using intmax_t" 2>&1 ;;
+esac
+
+# these are actually the same
+echo $(( $intmax_min1 % -1 ))
+echo $(( $intmax_min2 % -1 ))
+
+echo $(( $intmax_max % -1 ))
+
+lvalue=$intmax_min1
+(( lvalue%= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue%= -1 ))
+echo $lvalue
+
+lvalue=$intmax_max
+(( lvalue%= -1 ))
+echo $lvalue
+
+# and these
+echo $(( $intmax_min1 / -1 ))
+echo $(( $intmax_min2 / -1 ))
+
+lvalue=$intmax_min1
+(( lvalue /= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue /= -1 ))
+echo $lvalue
+
+echo $(( $intmax_min1 * -1 ))
+echo $(( $intmax_min2 * -1 ))
+
+lvalue=$intmax_min1
+(( lvalue *= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue *= -1 ))
+echo $lvalue
+
+echo $(( -${intmax_min1} ))
+echo $(( -${intmax_min2} ))
+
+foo1=$(( $intmax_max - 2 ))
+
+eval echo \{${foo1}..${intmax_max}\}
diff --git a/tests/arith6.sub b/tests/arith6.sub
new file mode 100644
index 00000000..630e917e
--- /dev/null
+++ b/tests/arith6.sub
@@ -0,0 +1,52 @@
+function reorder
+{
+ (( x[1] < x && (x=x[1], x[1]=$x) ))
+ echo "${x[@]}"
+}
+
+x=(123 456)
+reorder
+x=(456 123)
+reorder
+
+unset x
+unset -f reorder
+
+function reorder
+{
+ (( x[1] < x[0] && (x=x[1], x[1]=$x) ))
+ echo "${x[@]}"
+}
+
+x=(123 456)
+reorder
+x=(456 123)
+reorder
+
+unset x
+unset -f reorder
+
+function reorder
+{
+ (( x[1] < x[0] && (x[0]=x[1], x[1]=$x) ))
+ echo "${x[@]}"
+}
+
+x=(123 456)
+reorder
+x=(456 123)
+reorder
+
+unset -f reorder
+
+n=0 ; (( (a[n]=++n)<7&&a[0])); echo "${a[@]:1}"
+
+n=0 a="(a[n]=++n)<7&&a[0]"; ((a[0])); echo "${a[@]:1}"
+
+n=0 a="(a[n]=n++)<7&&a"; ((a)); echo "${a[@]:1}"
+
+# bugs with lvalue caching and pointer aliasing through bash-4.2
+echo $(( a=(y[0] + y[1]) & 0xff, b=(y[2] + y[3]) & 0xff, a << 8 | b))
+echo $a, $b
+((a = y[0], b = 1 ))
+echo $a, $b
diff --git a/tests/array.right b/tests/array.right
index 94c64a74..0307d6b4 100644
--- a/tests/array.right
+++ b/tests/array.right
@@ -130,8 +130,10 @@ value = new1 new2 new3
./array.tests: line 239: narray: unbound variable
./array1.sub: line 1: syntax error near unexpected token `('
./array1.sub: line 1: `printf "%s\n" -a a=(a 'b c')'
-./array2.sub: line 1: syntax error near unexpected token `('
-./array2.sub: line 1: `declare -a ''=(a 'b c')'
+./array2.sub: line 1: declare: `[]=asdf': not a valid identifier
+./array2.sub: line 2: a[]: bad array subscript
+./array2.sub: line 4: syntax error near unexpected token `('
+./array2.sub: line 4: `declare -a ''=(a 'b c')'
9
9
@@ -207,9 +209,9 @@ e
9
2
a b c
-argv[1] = <"-iname '"a>
-argv[2] = <"-iname '"b>
-argv[3] = <"-iname '"c>
+argv[1] = <-iname 'a>
+argv[2] = <-iname 'b>
+argv[3] = <-iname 'c>
'hey'
hey
''hey
@@ -224,20 +226,22 @@ argv[1] = <c d>
argv[2] = <e f>
argv[1] = <c d>
argv[2] = <e f>
-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 '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[2] = <abc -iname def>
+argv[1] = <-iname 'abc>
+argv[2] = <-iname 'def>
+argv[1] = <-iname>
+argv[2] = <abc -iname def>
+argv[1] = <-iname 'abc>
+argv[2] = <-iname 'def>
argv[1] = <-iname 'abc>
argv[2] = <-iname 'def>
+argv[1] = <-iname>
+argv[2] = <abc -iname def>
*.* OK
1
a1 2 3c
@@ -341,3 +345,46 @@ ednesday
onday
uesday
ednesday
+version[agent]
+version.agent
+version[agent]
+version.agent
+version[agent] foo[bar]
+version.agent bowl
+foobar] foo foo[bar]
+bleh bbb bleh
+ab]
+bar
+1
+1
+1
+1
+1
+1
+main main
+function function
+function function
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4")'
+declare -a x='([0]="0" [1]="1" [2]="2" [4]="4")'
+./array14.sub: line 11: [-10]: bad array subscript
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="five")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5foo")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="5")'
+declare -a x='([0]="0" [1]="1" [2]="2" [3]="3" [4]="4four" [5]="5")'
+strlen(4four) = 5
+1 2 xx 3
+1 2 0 3
+1 2 xx 3
+1 2 0 3
+1 2 xx 3
+foo index 1: ok
+foo index 2: ok
+foo: implicit reference to element 0: ok
+foo: arithmetic evaluation: ok
+bar: array with element zero unset: ok
+bar: element zero: ok
+qux: unset array: ok
+qux: unset array element 0: ok
diff --git a/tests/array.tests b/tests/array.tests
index 3b6996d3..4c176514 100644
--- a/tests/array.tests
+++ b/tests/array.tests
@@ -388,3 +388,15 @@ ${THIS_SH} ./array8.sub
${THIS_SH} ./array9.sub
${THIS_SH} ./array10.sub
+
+${THIS_SH} ./array11.sub
+
+${THIS_SH} ./array12.sub
+
+${THIS_SH} ./array13.sub
+
+${THIS_SH} ./array14.sub
+
+${THIS_SH} ./array15.sub
+
+${THIS_SH} ./array16.sub
diff --git a/tests/array11.sub b/tests/array11.sub
new file mode 100644
index 00000000..c4f8cad4
--- /dev/null
+++ b/tests/array11.sub
@@ -0,0 +1,35 @@
+# problems with associative array keys with ] and unbalanced [ ]
+# fixed after bash-4.2
+
+declare -A foo
+
+foo=(["version[agent]"]=version.agent)
+
+echo ${!foo[@]}
+echo ${foo[@]}
+
+unset foo
+declare -A foo
+foo["version[agent]"]=version.agent
+
+echo ${!foo[@]}
+echo ${foo[@]}
+
+declare foo["foo[bar]"]=bowl
+
+echo ${!foo[@]}
+echo ${foo[@]}
+
+declare -A array2["foo[bar]"]=bleh
+
+array2["foobar]"]=bleh
+array2["foo"]=bbb
+
+echo ${!array2[@]}
+echo ${array2[@]}
+
+declare -A foo
+foo=( ['ab]']=bar )
+
+echo ${!foo[@]}
+echo ${foo[@]}
diff --git a/tests/array12.sub b/tests/array12.sub
new file mode 100644
index 00000000..65711385
--- /dev/null
+++ b/tests/array12.sub
@@ -0,0 +1,21 @@
+# problems with fix for posix interp 217 introduced in bash-4.2
+
+declare -ax array
+array[$(( $( echo -n 1001 ) - 1001 ))]=1
+
+echo ${array[0]}
+echo ${array[@]}
+
+unset 'array[0]'
+array[$( echo -n 1001 ) - 1001 ]=1
+echo ${array[0]}
+
+unset 'array[0]'
+array[$(( 1001 - $( echo -n 1001 ) ))]=1
+echo ${array[0]}
+array[$(( 1001 - $( echo -n 1001 ) ))]=1
+echo ${array[0]}
+
+unset 'array[0]'
+array[1001 - $( echo -n 1001 )]=1
+echo ${array[0]}
diff --git a/tests/array13.sub b/tests/array13.sub
new file mode 100644
index 00000000..736f210c
--- /dev/null
+++ b/tests/array13.sub
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+func1(){
+declare -g variable='function'
+declare -g -a array=(function)
+echo ${variable} ${array[@]}
+}
+
+declare -g variable='main'
+declare -g -a array=(main)
+echo ${variable} ${array[@]}
+func1
+echo ${variable} ${array[@]}
diff --git a/tests/array14.sub b/tests/array14.sub
new file mode 100644
index 00000000..7715169c
--- /dev/null
+++ b/tests/array14.sub
@@ -0,0 +1,30 @@
+# start at a test suite for negative indexed array subscripts -- post bash-4.2
+x=( 0 1 2 3 4 5)
+declare -p x
+
+unset 'x[-1]'
+declare -p x
+
+unset 'x[-2]'
+declare -p x
+
+unset 'x[-10]'
+
+x[-2]=3
+declare -p x
+
+x+=( five )
+declare -p x
+x[-1]=5
+declare -p x
+
+x+=( [-1]=foo )
+declare -p x
+
+x[-1]=5
+declare -p x
+
+x[-2]+=four
+declare -p x
+
+echo "strlen(${x[-2]})" = ${#x[-2]}
diff --git a/tests/array15.sub b/tests/array15.sub
new file mode 100644
index 00000000..b056ccbb
--- /dev/null
+++ b/tests/array15.sub
@@ -0,0 +1,24 @@
+# fixes for make_internal_declare not handling integer attribute for arrays
+declare -ai -g foo=(1 2 xx 3)
+echo "${foo[@]}"
+
+unset foo
+declare -ai -g foo='(1 2 xx 3)'
+echo "${foo[@]}"
+
+unset foo
+declare -ia -g foo=(1 2 xx 3)
+echo "${foo[@]}"
+
+unset foo
+declare -ia -g foo='(1 2 xx 3)'
+echo "${foo[@]}"
+
+unset foo
+func()
+{
+ declare -ai -g foo=(1 2 xx 3)
+}
+
+func
+echo "${foo[@]}"
diff --git a/tests/array16.sub b/tests/array16.sub
new file mode 100644
index 00000000..10024bc1
--- /dev/null
+++ b/tests/array16.sub
@@ -0,0 +1,21 @@
+foo[0]=a
+foo[1]=b
+
+[[ -v foo[1] ]] && echo foo index 1: ok
+[[ -v foo[2] ]] || echo foo index 2: ok
+
+[[ -v foo ]] && echo foo: implicit reference to element 0: ok
+
+typeset -i foo
+
+[[ -v foo[1] ]] && echo foo: arithmetic evaluation: ok
+
+typeset -a bar
+bar[1]=set
+
+[[ -v bar ]] || echo bar: array with element zero unset: ok
+[[ -v bar[0] ]] || echo bar: element zero: ok
+
+typeset -a qux
+[[ -v qux ]] || echo qux: unset array: ok
+[[ -v qux[0] ]] || echo qux: unset array element 0: ok
diff --git a/tests/array2.sub b/tests/array2.sub
index 0e6417d7..44bb7c5b 100644
--- a/tests/array2.sub
+++ b/tests/array2.sub
@@ -1 +1,4 @@
+declare -r []=asdf
+declare -r a[]=asdf
+
declare -a ''=(a 'b c')
diff --git a/tests/array6.sub b/tests/array6.sub
index 59013260..0017f4cd 100644
--- a/tests/array6.sub
+++ b/tests/array6.sub
@@ -42,6 +42,9 @@ a=(abc def)
a2=("${a[@]/#/"-iname '"}")
recho "${a2[@]}"
+eval a2=("${a[@]/#/\"-iname \'\"}")
+recho "${a2[@]}"
+
eval a2=("${a[@]/#/"-iname '"}")
recho "${a2[@]}"
@@ -56,6 +59,9 @@ set -- abc def
a2=("${@/#/"-iname '"}")
recho "${a2[@]}"
+eval a2=("${@/#/\"-iname \'\"}")
+recho "${a2[@]}"
+
eval a2=("${@/#/"-iname '"}")
recho "${a2[@]}"
diff --git a/tests/assoc.right b/tests/assoc.right
index 86155194..b9fd001c 100644
--- a/tests/assoc.right
+++ b/tests/assoc.right
@@ -187,3 +187,6 @@ declare -A foo='(["bar\\]bie"]="doll" )'
bar${foo}bie
doll
declare -A foo='(["bar\${foo}bie"]="doll" )'
+bar
+after printf
+after use: 0
diff --git a/tests/assoc.tests b/tests/assoc.tests
index 8b6fd553..c3fb18e6 100644
--- a/tests/assoc.tests
+++ b/tests/assoc.tests
@@ -184,3 +184,5 @@ ${THIS_SH} ./assoc4.sub
${THIS_SH} ./assoc5.sub
${THIS_SH} ./assoc6.sub
+
+${THIS_SH} ./assoc7.sub
diff --git a/tests/assoc7.sub b/tests/assoc7.sub
new file mode 100644
index 00000000..5bc5150e
--- /dev/null
+++ b/tests/assoc7.sub
@@ -0,0 +1,16 @@
+# problem with bash versions through bash-4.2
+foo()
+{
+ declare -A hash
+ declare hash[baz]=bar #bash crashes here
+
+ echo ${hash[@]}
+}
+
+foo
+
+declare -a ary
+printf -v ary[0] "%b" ""
+echo "after printf"
+x="${ary[*]}" # segfaults here
+echo "after use: $?"
diff --git a/tests/builtins.right b/tests/builtins.right
index 38f196a3..bafc53fb 100644
--- a/tests/builtins.right
+++ b/tests/builtins.right
@@ -117,6 +117,23 @@ three - OK
0
four - OK
0
+abc
+def
+ghi
+after
+one.1 subshell
+two.1 subshell
+three.1 subshell
+four.1 subshell
+one.2 subshell
+two.2 subshell
+three.2 subshell
+four.2 subshell
+x29 - done
+abc
+def
+ghi
+ok
AVAR
foo
foo
@@ -127,11 +144,11 @@ AVAR
foo
declare -x foo=""
declare -x FOO="\$\$"
-./builtins.tests: line 210: declare: FOO: not found
+./builtins.tests: line 213: declare: FOO: not found
declare -x FOO="\$\$"
ok
ok
-./builtins.tests: line 242: kill: 4096: invalid signal specification
+./builtins.tests: line 245: kill: 4096: invalid signal specification
1
a\n\n\nb
a
@@ -141,4 +158,14 @@ b
before: f = 4
inside
after: f = 8 bar = 4
-./builtins.tests: line 254: exit: status: numeric argument required
+./builtins4.sub: line 2: declare: c: not found
+./builtins4.sub: line 5: declare: d: not found
+declare -a c='([0]="4")'
+declare -A c='([0]="4" )'
+declare -a c='([0]="1" [1]="2" [2]="3")'
+declare -A c='([one]="1" [two]="2" [three]="3" )'
+declare -a c='([0]="1" [1]="2" [2]="3")'
+declare -a c='([0]="1" [1]="2" [2]="3")'
+unset
+unset
+./builtins.tests: line 260: exit: status: numeric argument required
diff --git a/tests/builtins.tests b/tests/builtins.tests
index 7ce378e9..9d775201 100644
--- a/tests/builtins.tests
+++ b/tests/builtins.tests
@@ -179,6 +179,9 @@ ${THIS_SH} ./source5.sub
# test bugs in sourcing non-regular files, fixed post-bash-3.2
${THIS_SH} ./source6.sub
+# test bugs with source called from multiline aliases and other contexts
+${THIS_SH} ./source7.sub
+
# in posix mode, assignment statements preceding special builtins are
# reflected in the shell environment. `.' and `eval' need special-case
# code.
@@ -250,6 +253,9 @@ ${THIS_SH} ./builtins2.sub
# test behavior of declare -g
${THIS_SH} ./builtins3.sub
+# test behavior of using declare to create variables without assigning values
+${THIS_SH} ./builtins4.sub
+
# this must be last -- it is a fatal error
exit status
diff --git a/tests/builtins4.sub b/tests/builtins4.sub
new file mode 100644
index 00000000..b7d0c0c9
--- /dev/null
+++ b/tests/builtins4.sub
@@ -0,0 +1,44 @@
+declare -a c
+declare -p c
+
+declare -A d
+declare -p d
+unset c d
+
+declare -a c
+c=4
+declare -p c
+unset c
+
+declare -A c
+c=4
+declare -p c
+unset c
+
+declare -a c
+c=(1 2 3)
+declare -p c
+unset c
+
+declare -A c
+c=([one]=1 [two]=2 [three]=3)
+declare -p c
+unset c
+
+declare -a c
+read -a c < <(echo 1 2 3)
+declare -p c
+unset c
+
+declare -a c
+mapfile -t c < <(echo 1$'\n'2$'\n'3)
+declare -p c
+unset c
+
+unset foo
+declare -A foo
+echo ${foo-unset}
+
+unset foo
+declare -a foo
+echo ${foo-unset}
diff --git a/tests/case.right b/tests/case.right
index d5792531..58ab2a4f 100644
--- a/tests/case.right
+++ b/tests/case.right
@@ -4,3 +4,17 @@ and here
retest
and match
no more clauses
+1.0
+./case.tests: line 29: xx: readonly variable
+1.1
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+mysterious 1
+mysterious 2
diff --git a/tests/case.tests b/tests/case.tests
index 7c501658..547e8ccd 100644
--- a/tests/case.tests
+++ b/tests/case.tests
@@ -16,3 +16,18 @@ esac
case a in
a) echo no more clauses;&
esac
+
+x=0 y=1
+case 1 in
+ $((y=0)) ) ;;
+ $((x=1)) ) ;&
+ $((x=2)) ) echo $x.$y ;;
+esac
+
+unset x
+readonly xx=1
+case 1 in $((xx++)) ) echo hi1 ;; *) echo hi2; esac
+echo ${xx}.$?
+
+# tests of quote removal and pattern matching
+${THIS_SH} ./case1.sub
diff --git a/tests/case1.sub b/tests/case1.sub
new file mode 100644
index 00000000..7db09ab2
--- /dev/null
+++ b/tests/case1.sub
@@ -0,0 +1,64 @@
+x='\x'
+
+case x in
+\x) echo ok 1;;
+*) echo bad 1;;
+esac
+
+case x in
+$x) echo ok 2;;
+*) echo bad 2;;
+esac
+
+case $x in
+\x) echo bad 3;;
+\\x) echo ok 3 ;;
+*) echo bad 3.1 ;;
+esac
+
+case $x in
+\\$x) echo ok 4 ;;
+x) echo bad 4;;
+$x) echo bad 4.1 ;;
+*) echo bad 4.2;;
+esac
+
+case x in
+\\x) echo bad 5;;
+\x) echo ok 5;;
+*) echo bad 5.1;;
+esac
+
+case x in
+\\x) echo bad 6;;
+x) echo ok 6;;
+*) echo bad 6.1;;
+esac
+
+case x in
+$x) echo ok 7 ;;
+\\$x) echo bad 7 ;;
+*) echo bad 7.1 ;;
+esac
+
+case x in
+\x) echo ok 8 ;;
+\\x) echo bad 8 ;;
+*) echo bad 8.1 ;;
+esac
+
+case \x in
+\x) echo ok 9 ;;
+\\x) echo bad 9 ;;
+*) echo bad 9.1 ;;
+esac
+
+case $x in
+$x) echo oops 1 ;;
+*) echo mysterious 1 ;;
+esac
+
+case \x in
+\x) echo mysterious 2 ;;
+*) echo oops 2 ;;
+esac
diff --git a/tests/cond-regexp1.sub b/tests/cond-regexp1.sub
new file mode 100644
index 00000000..dd287cbc
--- /dev/null
+++ b/tests/cond-regexp1.sub
@@ -0,0 +1,56 @@
+VAR='[[:alpha:]]'
+
+[[ $VAR =~ '[[:alpha:]]' ]] && echo match 1
+
+[[ a =~ '[[:alpha:]]' ]] || echo match 2
+
+[[ a =~ [[:alpha:]] ]] && echo match 3
+
+[[ a =~ $VAR ]] && echo match 4
+
+[[ a =~ "$VAR" ]] || echo match 5
+
+line=aab
+[[ $line =~ [[:space:]]*(a)?b ]] && echo match 6
+
+V="alphabet"
+[[ $V == alphabet ]] && echo yes 1
+[[ $V == "alphabet" ]] && echo yes 2
+[[ $V == 'alphabet' ]] && echo yes 3
+[[ $V =~ alphabet ]] && echo yes 4
+[[ $V =~ "alphabet" ]] && echo yes 5
+[[ $V =~ 'alphabet' ]] && echo yes 6
+
+DOG="Dog name - 01 - Wiggles"
+REPAT='([[:alpha:][:blank:]]*)- ([[:digit:]]*) - (.*)$'
+if [[ $DOG =~ ([[:alpha:][:blank:]]*)-\ ([[:digit:]]*)\ -\ (.*)$ ]]
+then
+ echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]}
+fi
+if [[ $DOG =~ $REPAT ]]
+then
+ echo Dog ${BASH_REMATCH[2]} is ${BASH_REMATCH[3]}
+fi
+
+[[ $REPAT =~ "$REPAT" ]] && echo rematch 1
+
+v="one two buckle my shoe"
+[[ ${v} =~ "one two" ]] && echo matches 7
+
+[[ ${v} =~ (one two) ]] && echo matches 8
+
+[[ ${v} =~ one\ two ]] && echo matches 9
+
+unset pattern string
+pattern="xxx.yyy"
+string=xxxAyyy
+
+[[ $string =~ $pattern ]] && echo unquoted matches
+[[ $string =~ "$pattern" ]] && echo quoted matches
+
+# problems in pre-patched bash-4.2
+[[ "helloworld" =~ llo ]] && echo match control-a 1
+[[ "helloworld" =~ world ]] && echo match control-a 2
+[[ "helloworld" =~ world$ ]] && echo match control-a 3
+[[ "helloworld" =~  ]] && echo match control-a 4
+[[ "helloworld" =~ oworld$ ]] && echo match control-a 5
diff --git a/tests/cond-regexp2.sub b/tests/cond-regexp2.sub
new file mode 100644
index 00000000..71abfb70
--- /dev/null
+++ b/tests/cond-regexp2.sub
@@ -0,0 +1,30 @@
+[[ "\\" =~ ["."] ]] && echo bad 1
+
+[[ "\\" =~ "[.]" ]] && echo bad 2
+
+[[ "\\" =~ [\. ]] && echo bad 3
+
+[[ "\\" =~ [\.] ]] && echo bad 4
+
+[[ "\\" =~ [\\] ]] || echo bad 5
+
+[[ dog =~ [[=d=]].. ]] && echo ok 1
+[[ d.. =~ [[=d=]]\.\. ]] && echo ok 2
+[[ dog =~ ['[=d=]'].. ]] && echo ok 3 # dubious
+
+[[ dog =~ [[=d=]].[[=G=][=g=]] ]] && echo ok 4
+[[ dog =~ [[=d=]].[\[=G=][=g=]] ]] && echo ok 4a
+
+[[ dog =~ "d.." ]] || echo ok 5
+
+[[ dog =~ [[.d.][.D.]]o. ]] && echo ok 6
+
+[[ dog =~ ([[.d.][.D.]])o(.) ]] && echo ok 7 -- ${BASH_REMATCH[1]}
+[[ dog =~ d([[.o.][.O.]])(.) ]] && echo ok 8 -- ${BASH_REMATCH[1]}
+[[ dog =~ .([[.o.][.O.]])(.) ]] && echo ok 9
+
+[[ dog =~ 'd''o''g' ]] && echo ok 10
+
+[[ ']' =~ [']'] ]] && echo ok 11
+
+[[ a =~ ['a]'] ]] || echo ok 12
diff --git a/tests/cond-regexp3.sub b/tests/cond-regexp3.sub
new file mode 100644
index 00000000..8f098416
--- /dev/null
+++ b/tests/cond-regexp3.sub
@@ -0,0 +1,73 @@
+# simple expansion -- no problem, it's quote_string_for_globbing that was flawed
+c=$'\177'
+r="\\$c"
+
+recho $r
+
+# first, match some regular expressions containing ^A, ^G, ^?
+[[ $'\001' =~ $'\001' ]] ; echo $?
+[[ $'\001' =~ $'\\\001' ]] ; echo $?
+[[ $'\001' =~ $'\\[\001]' ]] ; echo $?
+
+[[ $'\a' =~ $'\a' ]] ; echo $?
+[[ $'\a' =~ $'\\\a' ]] ; echo $?
+[[ $'\a' =~ $'\\[\a]' ]] ; echo $?
+
+[[ $'\177' =~ $'\177' ]] ; echo $?
+[[ $'\177' =~ $'\\\177' ]] ; echo $?
+[[ $'\177' =~ $'\\[\177]' ]] ; echo $?
+
+# Now let's try it with variables expanding to those values
+for c in $'\001' $'\a' $'\177' ; do
+ for r in "$c" "\\$c" "\\[$c]"; do
+ [[ $c =~ $r ]];
+ printf '[[ %q =~ %q ]] -> %d\n' "$c" "$r" "$?";
+ done;
+ printf %s\\n ---
+done
+
+# try again with literals
+
+[[ '' =~ $'' ]] ; echo $?
+[[ '' =~ '\' ]] ; echo $?
+[[ '' =~ '\[]' ]] ; echo $?
+
+[[ '' =~ '' ]] ; echo $?
+[[ '' =~ '\' ]] ; echo $?
+[[ '' =~ '\[]' ]] ; echo $?
+
+[[ '' =~ $'' ]] ; echo $?
+[[ '' =~ '\' ]] ; echo $?
+[[ '' =~ '\[]' ]] ; echo $?
+
+# more expansions, but with literal non-special characters
+[[ x =~ \x ]] ; echo $?
+[[ x =~ \\x ]] ; echo $?
+
+bs='\'
+[[ x =~ ${bs}x ]] ; echo $?
+
+[[ x =~ $'\\'x ]] ; echo $?
+[[ x =~ '\'x ]] ; echo $?
+
+v='a\-b'
+[[ a-b =~ ${v} ]] ; echo $?
+[[ a-b =~ a\-b ]]; echo $?
+[[ a-b =~ a${bs}-b ]]; echo $?
+[[ a-b =~ a\\-b ]] ; echo $?
+[[ a-b =~ "a\-b" ]] ; echo $?
+
+c=$'\001'
+
+recho $c "$c"
+
+[[ $c == $c ]] && echo ok 1
+[[ $c =~ $c ]] && echo ok 2
+[[ $c =~ \\$c ]] || echo ok 3
+[[ $c =~ \\"$c" ]] || echo ok 4
+
+[[ $c =~ "\\"$c ]] || echo ok 5
+[[ $c =~ '\'$c ]] || echo ok 6
+
+[[ $c =~ "\\""$c" ]] || echo ok 7
+[[ $c =~ '\'"$c" ]] || echo ok 8
diff --git a/tests/cond.right b/tests/cond.right
index 37752308..80bb5ce8 100644
--- a/tests/cond.right
+++ b/tests/cond.right
@@ -59,3 +59,73 @@ rematch 1
matches 7
matches 8
matches 9
+unquoted matches
+match control-a 1
+match control-a 2
+match control-a 3
+match control-a 4
+match control-a 5
+ok 1
+ok 2
+ok 3
+ok 4
+ok 4a
+ok 5
+ok 6
+ok 7 -- d
+ok 8 -- o
+ok 9
+ok 10
+ok 11
+ok 12
+argv[1] = <\^?>
+0
+1
+1
+0
+1
+1
+0
+1
+1
+[[ $'\001' =~ $'\001' ]] -> 0
+[[ $'\001' =~ $'\\\001' ]] -> 0
+[[ $'\001' =~ $'\\[\001]' ]] -> 1
+---
+[[ $'\a' =~ $'\a' ]] -> 0
+[[ $'\a' =~ $'\\\a' ]] -> 0
+[[ $'\a' =~ $'\\[\a]' ]] -> 1
+---
+[[ $'\177' =~ $'\177' ]] -> 0
+[[ $'\177' =~ $'\\\177' ]] -> 0
+[[ $'\177' =~ $'\\[\177]' ]] -> 1
+---
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+argv[1] = <^A>
+argv[2] = <^A>
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
diff --git a/tests/cond.tests b/tests/cond.tests
index b053e482..d91ddddf 100755
--- a/tests/cond.tests
+++ b/tests/cond.tests
@@ -180,4 +180,8 @@ echo ${BASH_REMATCH[@]}
if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi
if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi
-${THIS_SH} ./cond-regexp.sub
+${THIS_SH} ./cond-regexp1.sub
+
+${THIS_SH} ./cond-regexp2.sub
+
+${THIS_SH} ./cond-regexp3.sub
diff --git a/tests/dollar-at-star b/tests/dollar-at-star
index 54e499d9..9a5d402a 100755
--- a/tests/dollar-at-star
+++ b/tests/dollar-at-star
@@ -207,6 +207,10 @@ case "$@" in
*) echo bad 4;;
esac
+# tests for the effect of quoting $* and $@ in an assignment context (plus
+# arrays) -- bugs through bash 4.2
+${THIS_SH} ./dollar-at-star1.sub
+
# tests for special expansion of "$*" and "${array[*]}" when used with other
# expansions -- bugs through bash-2.05b
${THIS_SH} ./dollar-star1.sub
@@ -235,4 +239,22 @@ ${THIS_SH} ./dollar-star4.sub
# tests for expansions of $* when IFS is null
${THIS_SH} ./dollar-star5.sub
+# tests for inappropriate word splitting through bash-4.2
+${THIS_SH} ./dollar-at4.sub
+
+# tests for problems with "$@" preceded and followed by other quoted expansions
+# through bash-4.2
+${THIS_SH} ./dollar-at5.sub
+
+# tests for problems with "${@:1}" and other expansions with null entries
+# in positional parameters
+${THIS_SH} ./dollar-at6.sub
+
+# tests for expansions of $* when $1 == ""; problem through bash-4.2
+${THIS_SH} ./dollar-star6.sub
+
+# tests for expansions of $* (unquoted) when IFS changes (e.g., ${IFS:=-})
+# problem through bash-4.2
+${THIS_SH} ./dollar-star7.sub
+
exit 0
diff --git a/tests/dollar-at-star1.sub b/tests/dollar-at-star1.sub
new file mode 100644
index 00000000..0036915b
--- /dev/null
+++ b/tests/dollar-at-star1.sub
@@ -0,0 +1,23 @@
+# from dan douglas
+expassign()
+{
+ typeset -a a
+ a=("$@")
+ typeset var asn
+
+ while IFS= read -r asn; do
+ IFS=: command eval "$asn"
+ printf '%-14s... %s\n' "$asn" "$var"
+ done <<\EOF
+var=${a[*]}
+var="${a[*]}"
+var=$*
+var="$*"
+var=${a[@]}
+var="${a[@]}"
+var=$@
+var="$@"
+EOF
+}
+
+expassign one:::two three:::four
diff --git a/tests/dollar-at4.sub b/tests/dollar-at4.sub
new file mode 100644
index 00000000..c8de8664
--- /dev/null
+++ b/tests/dollar-at4.sub
@@ -0,0 +1,10 @@
+set 'a b' 'c d'
+
+recho "$@"
+recho $@
+
+quoted="$@"
+unquoted=$@
+
+recho "$quoted"
+recho "$unquoted"
diff --git a/tests/dollar-at5.sub b/tests/dollar-at5.sub
new file mode 100644
index 00000000..75e2249f
--- /dev/null
+++ b/tests/dollar-at5.sub
@@ -0,0 +1,82 @@
+args() { printf '<%s> ' "$@"; echo; }
+
+set -- 1 2 3 4 5
+
+args "${@} ${1}"
+args "${1} ${@}"
+args "${1}${@}${1}"
+args "${1} ${@} ${1}"
+args ${1}"$@"${1}
+args "$@"${1}
+args ${1}"$@"
+
+args "$@""${1}"
+args "${1}""$@"
+
+args "${@}foo"
+args ${@}${1}
+args ${@}foo
+
+IFS=
+args "$@""${1}"
+args "${1}""$@"
+
+args ${@}${1}
+args ${1}${@}
+args ${@}foo
+
+echo second set:
+IFS=$' \t\n'
+set -- '1 2' 3 4 5
+
+args "${@} ${1}"
+args "${1} ${@}"
+
+args "${1}${@}${1}"
+args "${1} ${@} ${1}"
+args ${1}"$@"${1}
+args "$@"${1}
+args ${1}"$@"
+
+args "$@""${1}"
+args "${1}""$@"
+
+args "${@}foo"
+args ${@}${1}
+args ${@}foo
+
+IFS=
+
+args "$@""${1}"
+args "${1}""$@"
+
+args ${@}${1}
+args ${1}${@}
+args ${@}foo
+
+echo third set:
+IFS=$' \t\n'
+
+alias declare=typeset
+
+a(){ echo
+ echo '"${@:2}a3 a2" a$1 #works as long as $1 and 3 are swapped'
+ echo "${@:2}a3 a2" a$1
+ "${@:2}a3 a2" a$1
+ echo $?
+ a=("${@}");}
+b(){ echo
+ echo '"${@:2}b$1 b2" b3 #fails! why?'
+ echo "${@:2}b$1 b2" b3
+ "${@:2}b$1 b2" b3
+ echo $?
+ b=("${@}");}
+c(){ echo
+ echo '${@:2}c$1 c2 c3 #works as long as quoting omitted'
+ echo ${@:2}c$1 c2 c3
+ ${@:2}c$1 c2 c3
+ echo $?
+ c=("${@}");}
+a x set y z;declare -p a
+b x set y z;declare -p b
+c x set y z;declare -p c
diff --git a/tests/dollar-at6.sub b/tests/dollar-at6.sub
new file mode 100644
index 00000000..039e11f8
--- /dev/null
+++ b/tests/dollar-at6.sub
@@ -0,0 +1,30 @@
+set -- '';
+
+recho "${@}" x
+recho "${@:1}" x
+
+set -- "${@:1}"
+echo "$#"
+
+set -- '' ''
+
+recho "${@:1}" x
+recho "${@:1:1}" x
+
+typeset -a A # ksh93 needs this
+A=('' '')
+recho "${A[@]:0}" x
+
+recho "${A[@]:0:1}" x
+
+recho "${A[@]:1}" x
+
+set -- ''
+
+recho "${@/foo/bar}"
+recho "${@^^[abcde]}"
+
+A=( '' )
+
+recho "${A[@]/foo/bar}"
+recho "${A[@],,[abcde]}"
diff --git a/tests/dollar-star6.sub b/tests/dollar-star6.sub
new file mode 100644
index 00000000..dbd59ecf
--- /dev/null
+++ b/tests/dollar-star6.sub
@@ -0,0 +1,19 @@
+recho "A${*:-w}R"
+recho "A${*-w}R"
+recho "A${*}R"
+
+set -- ""
+
+recho "A${*:-w}R"
+recho "A${*-w}R"
+recho "A${*}R"
+
+set -- $'\177'
+
+recho "A${*:+w}R"
+recho "A${*+w}R"
+recho "A${*}R"
+
+recho A${*:+w}R
+recho A${*+w}R
+recho A${*}R
diff --git a/tests/dollar-star7.sub b/tests/dollar-star7.sub
new file mode 100644
index 00000000..72d6c24f
--- /dev/null
+++ b/tests/dollar-star7.sub
@@ -0,0 +1,30 @@
+# if IFS side effects in ${IFS=} assignments take place, how do you cope with
+# later changes to IFS in the same set of expansions? You've already
+# committed to using the first character of the (old) IFS to expand $* in
+# the previous expansions, and changing it to not include ' ', for instance,
+# results in the first couple of ${*} below not being split at all
+
+set -f -- a b c
+
+unset -v IFS
+printf '<%s> ' ${*}${IFS=}${*}${IFS:=-}"${*}"
+echo
+printf "after 1: IFS "
+echo "${IFS-unset}"
+recho "$*"
+
+set -f -- a 'b c' d
+unset -v IFS
+printf '<%s> ' ${*}${IFS=}${*}${IFS:=-}"${*}"
+echo
+printf "after 2: IFS "
+echo "${IFS-unset}"
+recho "$*"
+
+unset -v IFS
+recho $*
+recho "$*"
+
+IFS=' '
+recho $*
+recho "$*"
diff --git a/tests/dollar.right b/tests/dollar.right
index 13db8e2c..6af02b1b 100644
--- a/tests/dollar.right
+++ b/tests/dollar.right
@@ -95,6 +95,14 @@ ok 1
ok 2
ok 3
ok 4
+var=${a[*]} ... one:::two:three:::four
+var="${a[*]}" ... one:::two:three:::four
+var=$* ... one:::two:three:::four
+var="$*" ... one:::two:three:::four
+var=${a[@]} ... one:::two three:::four
+var="${a[@]}" ... one:::two three:::four
+var=$@ ... one:::two three:::four
+var="$@" ... one:::two three:::four
xa|xb|xc
xa|xb|xc
a|b|c
@@ -166,3 +174,111 @@ ab
cd
ok 1
ok 2
+argv[1] = <a b>
+argv[2] = <c d>
+argv[1] = <a>
+argv[2] = <b>
+argv[3] = <c>
+argv[4] = <d>
+argv[1] = <a b c d>
+argv[1] = <a b c d>
+<1> <2> <3> <4> <5 1>
+<1 1> <2> <3> <4> <5>
+<11> <2> <3> <4> <51>
+<1 1> <2> <3> <4> <5 1>
+<11> <2> <3> <4> <51>
+<1> <2> <3> <4> <51>
+<11> <2> <3> <4> <5>
+<1> <2> <3> <4> <51>
+<11> <2> <3> <4> <5>
+<1> <2> <3> <4> <5foo>
+<1> <2> <3> <4> <51>
+<1> <2> <3> <4> <5foo>
+<1> <2> <3> <4> <51>
+<11> <2> <3> <4> <5>
+<1> <2> <3> <4> <51>
+<11> <2> <3> <4> <5>
+<1> <2> <3> <4> <5foo>
+second set:
+<1 2> <3> <4> <5 1 2>
+<1 2 1 2> <3> <4> <5>
+<1 21 2> <3> <4> <51 2>
+<1 2 1 2> <3> <4> <5 1 2>
+<1> <21 2> <3> <4> <51> <2>
+<1 2> <3> <4> <51> <2>
+<1> <21 2> <3> <4> <5>
+<1 2> <3> <4> <51 2>
+<1 21 2> <3> <4> <5>
+<1 2> <3> <4> <5foo>
+<1> <2> <3> <4> <51> <2>
+<1> <2> <3> <4> <5foo>
+<1 2> <3> <4> <51 2>
+<1 21 2> <3> <4> <5>
+<1 2> <3> <4> <51 2>
+<1 21 2> <3> <4> <5>
+<1 2> <3> <4> <5foo>
+third set:
+
+"${@:2}a3 a2" a$1 #works as long as $1 and 3 are swapped
+set y za3 a2 ax
+0
+declare -a a='([0]="y" [1]="za3 a2" [2]="ax")'
+
+"${@:2}b$1 b2" b3 #fails! why?
+set y zbx b2 b3
+0
+declare -a b='([0]="y" [1]="zbx b2" [2]="b3")'
+
+${@:2}c$1 c2 c3 #works as long as quoting omitted
+set y zcx c2 c3
+0
+declare -a c='([0]="y" [1]="zcx" [2]="c2" [3]="c3")'
+argv[1] = <>
+argv[2] = <x>
+argv[1] = <>
+argv[2] = <x>
+1
+argv[1] = <>
+argv[2] = <>
+argv[3] = <x>
+argv[1] = <>
+argv[2] = <x>
+argv[1] = <>
+argv[2] = <>
+argv[3] = <x>
+argv[1] = <>
+argv[2] = <x>
+argv[1] = <>
+argv[2] = <x>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <AwR>
+argv[1] = <AwR>
+argv[1] = <AR>
+argv[1] = <AwR>
+argv[1] = <AR>
+argv[1] = <AR>
+argv[1] = <AwR>
+argv[1] = <AwR>
+argv[1] = <A^?R>
+argv[1] = <AwR>
+argv[1] = <AwR>
+argv[1] = <A^?R>
+<a> <b> <ca> <b> <c-a-b-c>
+after 1: IFS -
+argv[1] = <a-b-c>
+<a> <b> <c> <da> <b c> <d-a-b c-d>
+after 2: IFS -
+argv[1] = <a-b c-d>
+argv[1] = <a>
+argv[2] = <b>
+argv[3] = <c>
+argv[4] = <d>
+argv[1] = <a b c d>
+argv[1] = <a>
+argv[2] = <b>
+argv[3] = <c>
+argv[4] = <d>
+argv[1] = <a b c d>
diff --git a/tests/errors.right b/tests/errors.right
index 7dd80c41..63d6b7e3 100644
--- a/tests/errors.right
+++ b/tests/errors.right
@@ -8,14 +8,14 @@ unalias: usage: unalias [-a] name [name ...]
declare -fr func
./errors.tests: line 36: func: readonly function
./errors.tests: line 39: unset: -x: invalid option
-unset: usage: unset [-f] [-v] [name ...]
+unset: usage: unset [-f] [-v] [-n] [name ...]
./errors.tests: line 42: unset: func: cannot unset: readonly function
./errors.tests: line 45: declare: func: readonly function
./errors.tests: line 49: unset: XPATH: cannot unset: readonly variable
./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 [-aAfFgilrtux] [-p] [name[=value] ...]
+declare: usage: declare [-aAfFgilnrtux] [-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
@@ -98,4 +98,16 @@ trap: usage: trap [-lp] [[arg] signal_spec ...]
./errors.tests: line 250: kill: `': not a pid or valid job spec
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
./errors.tests: line 255: set: trackall: invalid option name
-./errors.tests: line 262: `!!': not a valid identifier
+./errors.tests: line 259: xx: readonly variable
+1
+./errors1.sub: line 1: .: -i: invalid option
+.: usage: . filename [arguments]
+./errors1.sub: line 9: shift: -4: shift count out of range
+./errors1.sub: line 14: break: -1: loop count out of range
+after f
+./errors2.sub: line 3: ${$NO_SUCH_VAR}: bad substitution
+1
+./errors3.sub: line 5: no_such_file: No such file or directory
+TEST
+./errors3.sub: line 7: no_such_file: No such file or directory
+./errors.tests: line 271: `!!': not a valid identifier
diff --git a/tests/errors.tests b/tests/errors.tests
index 4ead467b..14eeb08b 100644
--- a/tests/errors.tests
+++ b/tests/errors.tests
@@ -254,6 +254,15 @@ kill -INT
# bad shell option names
set -o trackall # bash is not ksh
+# problem with versions through bash-4.2
+readonly xx=5
+echo $((xx=5))
+echo $?
+
+${THIS_SH} ./errors1.sub
+${THIS_SH} ./errors2.sub
+${THIS_SH} ./errors3.sub
+
# this must be last!
# in posix mode, a function name must be a valid identifier
# this can't go in posix2.tests, since it causes the shell to exit
diff --git a/tests/errors1.sub b/tests/errors1.sub
new file mode 100644
index 00000000..8e7440b5
--- /dev/null
+++ b/tests/errors1.sub
@@ -0,0 +1,27 @@
+. -i /dev/tty
+
+f()
+{
+ return -1
+}
+
+set -- a b c
+shift -4
+
+f
+
+for f in 1 2 3; do
+ break -1
+done
+
+
+f()
+{
+ return -25
+}
+
+f
+echo after f
+exit -25
+
+exit -56
diff --git a/tests/errors2.sub b/tests/errors2.sub
new file mode 100644
index 00000000..79ef3335
--- /dev/null
+++ b/tests/errors2.sub
@@ -0,0 +1,3 @@
+set -e
+trap 'echo $?' EXIT
+echo ${$NO_SUCH_VAR} # Bad substitution expected here
diff --git a/tests/errors3.sub b/tests/errors3.sub
new file mode 100644
index 00000000..b2ae3d71
--- /dev/null
+++ b/tests/errors3.sub
@@ -0,0 +1,7 @@
+# redirection errors with special builtins should exit the shell when in
+# Posix mode, not otherwise; being on the LHS of || or && should not make
+# a difference
+
+exec 9<no_such_file || echo TEST
+set -o posix
+exec 9<no_such_file || echo TEST
diff --git a/tests/exec.right b/tests/exec.right
index c51a2534..54488bf8 100644
--- a/tests/exec.right
+++ b/tests/exec.right
@@ -4,28 +4,29 @@ aa bb cc dd ee
after exec1.sub with args: 0
after exec1.sub without args: 0
-./execscript: line 20: notthere: command not found
+after exec1.sub: one two three
+./execscript: line 21: notthere: command not found
127
/tmp/bash: notthere: No such file or directory
127
/bin/sh: /bin/sh: cannot execute binary file
126
-./execscript: line 39: /: Is a directory
+./execscript: line 40: /: Is a directory
126
/: /: is a directory
126
-./execscript: line 46: .: /: is a directory
+./execscript: line 47: .: /: is a directory
1
126
0
this is bashenv
./exec3.sub: line 3: /tmp/bash-notthere: No such file or directory
127
-./execscript: line 70: notthere: No such file or directory
+./execscript: line 71: notthere: No such file or directory
127
-./execscript: line 73: notthere: No such file or directory
+./execscript: line 74: notthere: No such file or directory
127
-./execscript: line 76: notthere: command not found
+./execscript: line 77: notthere: command not found
127
this is sh
this is sh
diff --git a/tests/execscript b/tests/execscript
index f1db5277..5a4e9034 100644
--- a/tests/execscript
+++ b/tests/execscript
@@ -12,6 +12,7 @@ echo calling exec1.sub
echo after exec1.sub with args: $?
./exec1.sub
echo after exec1.sub without args: $?
+echo after exec1.sub: "$@"
# set up a fixed path so we know notthere will not be found
PATH=/usr/bin:/bin:/usr/local/bin:
diff --git a/tests/exp.right b/tests/exp.right
index 959ded27..c027036e 100644
--- a/tests/exp.right
+++ b/tests/exp.right
@@ -1,9 +1,9 @@
argv[1] = <^A>
argv[1] = <^A>
-argv[1] = <^B>
-argv[1] = <^B>
+argv[1] = <^?>
+argv[1] = <^?>
argv[1] = <^A>
-argv[1] = <^B>
+argv[1] = <^?>
argv[1] = <abcdefgh>
argv[1] = <abcdefgh>
argv[1] = <abcdefgh>
@@ -25,11 +25,11 @@ argv[1] = <abc>
argv[1] = <abcdef>
argv[1] = <abcdef>
argv[1] = <^A>
-argv[1] = <^B>
+argv[1] = <^?>
argv[1] = <^A>
-argv[1] = <^B>
+argv[1] = <^?>
argv[1] = <^A>
-argv[1] = <^B>
+argv[1] = <^?>
argv[1] = <>
argv[1] = <>
argv[1] = <>
@@ -42,13 +42,13 @@ argv[1] = <\\>
argv[1] = <a>
argv[2] = <b>
argv[1] = <^A>
-argv[2] = <^B>
+argv[2] = <^?>
argv[1] = <**>
argv[1] = <\.\./*/>
-argv[1] = <^A^B^A^B>
+argv[1] = <^A^?^A^?>
argv[1] = <^A^A>
-argv[1] = <^A^B>
-argv[1] = <^A^A^B>
+argv[1] = <^A^?>
+argv[1] = <^A^A^?>
argv[1] = < abc>
argv[2] = <def>
argv[3] = <ghi>
@@ -170,3 +170,38 @@ a
val
val
no arg passed
+hello
+[0;31m\]
+]
+[hello
+\[\e[0;31m\]
+
+hello
+eo
+argv[1] = <a>
+argv[1] = <a>
+argv[1] = <^?>
+argv[1] = <^?b>
+argv[1] = <b^?>
+argv[1] = <c>
+argv[1] = <c>
+argv[1] = <c>
+argv[1] = <c>
+argv[1] = <c>
+argv[1] = <c>
+argv[1] = <correct>
+argv[2] = <>
+argv[1] = <correct>
+argv[2] = <>
+argv[1] = <correct>
+argv[2] = <>
+argv[1] = <XwrongX>
+argv[2] = <>
+argv[1] = <correct>
+argv[2] = <a>
+argv[1] = <XwrongX>
+argv[2] = <a>
+argv[1] = <correct>
+argv[2] = <a>
+argv[1] = <correct>
+argv[2] = <a>
diff --git a/tests/exp.tests b/tests/exp.tests
index c97b48cb..9f77a7f9 100644
--- a/tests/exp.tests
+++ b/tests/exp.tests
@@ -22,14 +22,14 @@ expect "<^A>"
recho `echo ''`
expect "<^A>"
recho `echo ""`
-expect "<^B>"
-recho `echo ''`
-expect "<^B>"
-recho `echo ""`
+expect "<^?>"
+recho `echo ''`
+expect "<^?>"
+recho `echo ""`
expect "<^A>"
recho `echo `
-expect "<^B>"
-recho `echo `
+expect "<^?>"
+recho `echo `
# Test null strings without variable expansion
expect "<abcdefgh>"
@@ -89,16 +89,16 @@ unset xxx yyy
# Test the unquoted special quoting characters
expect "<^A>"
recho 
-expect "<^B>"
-recho 
+expect "<^?>"
+recho 
expect "<^A>"
recho ""
-expect "<^B>"
-recho ""
+expect "<^?>"
+recho ""
expect "<^A>"
recho ''
-expect "<^B>"
-recho ''
+expect "<^?>"
+recho ''
# Test expansion of a variable that is unset
expect nothing
@@ -139,9 +139,9 @@ expect '<a> <b>'
FOO=`echo 'a b' | tr ' ' '\012'`
recho $FOO
-# This should give argv[1] = ^A argv[2] = ^B
-expect '<^A> <^B>'
-FOO=`echo ' ' | tr ' ' '\012'`
+# This should give argv[1] = ^A argv[2] = ^?
+expect '<^A> <^?>'
+FOO=`echo ' ' | tr ' ' '\012'`
recho $FOO
# Test quoted and unquoted globbing characters
@@ -153,14 +153,14 @@ recho "\.\./*/"
# Test patterns that come up when the shell quotes funny character
# combinations
-expect '<^A^B^A^B>'
-recho ''
+expect '<^A^?^A^?>'
+recho ''
expect '<^A^A>'
recho ''
-expect '<^A^B>'
-recho ''
-expect '<^A^A^B>'
-recho ''
+expect '<^A^?>'
+recho ''
+expect '<^A^A^?>'
+recho ''
# More tests of "$@"
set abc def ghi jkl
@@ -386,3 +386,7 @@ ${THIS_SH} ./exp2.sub
${THIS_SH} ./exp3.sub
${THIS_SH} ./exp4.sub
+
+${THIS_SH} ./exp5.sub
+
+${THIS_SH} ./exp6.sub
diff --git a/tests/exp5.sub b/tests/exp5.sub
new file mode 100644
index 00000000..9346b579
--- /dev/null
+++ b/tests/exp5.sub
@@ -0,0 +1,22 @@
+# expansions involving patterns
+
+var='[hello'
+echo "${var//[/}"
+
+red='\[\e[0;31m\]'
+echo "${red//\\[\\e/}"
+
+foo="${red//\\[\\e/}"
+
+# foo == [0;31m\]
+echo "${foo//[0;31m\\/}"
+
+echo "${var//[]/}"
+echo "${red//[]/}"
+
+v=hello
+foo='[:alpha:]'
+
+echo ${v//[[:alpha:]]/}
+echo ${v//[[:alpha]]/}
+echo ${v//[[:alpha]/}
diff --git a/tests/exp6.sub b/tests/exp6.sub
new file mode 100644
index 00000000..a1c9fe63
--- /dev/null
+++ b/tests/exp6.sub
@@ -0,0 +1,30 @@
+recho """"a
+recho a""""
+
+recho """"
+
+recho """"b
+recho b""""
+
+recho """"""c
+recho c""""""
+
+recho """"""c""""
+recho """"c""""""
+
+recho """"""""c
+recho c""""""""
+
+# BASH BUG: spurious DEL characters appear on empty variable interpolation.
+# BASH 4.2.8(1)-release
+
+a=''
+
+recho correct "$a" # correct empty output line
+recho correct "$a""$a" # correct empty output line
+recho correct "$a""$a""$a" # correct empty output line
+recho XwrongX "$a""$a""$a""$a" # spurious two DEL chars appear at line end
+recho correct a"$a" # correct single "a" on line
+recho XwrongX a"$a""$a" # spurious DEL char appears at line end
+recho correct a"$a$a" # correct single "a" on line
+recho correct a"$a$a$a$a" # correct single "a" on line
diff --git a/tests/extglob.right b/tests/extglob.right
index 7b9cc946..837ccc29 100644
--- a/tests/extglob.right
+++ b/tests/extglob.right
@@ -88,3 +88,7 @@ a.c
ok 1
ok 2
ok 3
+a ab
+a ab
+a ab
+a
diff --git a/tests/extglob.tests b/tests/extglob.tests
index f9c17c72..0fa310aa 100644
--- a/tests/extglob.tests
+++ b/tests/extglob.tests
@@ -368,4 +368,6 @@ builtin cd "$MYDIR"
${THIS_SH} ./extglob1.sub
+${THIS_SH} ./extglob1a.sub
+
exit 0
diff --git a/tests/extglob1a.sub b/tests/extglob1a.sub
new file mode 100644
index 00000000..e029ea49
--- /dev/null
+++ b/tests/extglob1a.sub
@@ -0,0 +1,16 @@
+shopt -s extglob
+
+TESTDIR=${TMPDIR:-/tmp}/eglob-test-$$
+mkdir $TESTDIR
+builtin cd $TESTDIR || { echo $0: cannot cd to $TESTDIR >&2 ; exit 1; }
+rm -rf *
+
+touch a ab ba
+
+echo a*!(x)
+echo a!(x)
+echo a*?(x)
+echo a?(x)
+
+builtin cd /
+rm -rf $TESTDIR
diff --git a/tests/globstar.right b/tests/globstar.right
index b75d80ba..c104fd35 100644
--- a/tests/globstar.right
+++ b/tests/globstar.right
@@ -153,3 +153,433 @@ alias.o builtins builtins/history.o builtins/jobs.o builtins/kill.o builtins/let
bar/foo foo
bar/foo/ foo/
bar/foo/e bar/foo/f foo/a foo/b
+<a>
+<a/a>
+<a/a/a>
+<a>
+<a/a>
+<a/a/a>
+<a>
+<a/a>
+<a/a/a>
+== <**/a> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/b/a>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/b/a>
+<b/b/a>
+<b/b/a/a>
+<b/b/b/a>
+== <a/**> ==
+<a/>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+== <**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+<b>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/b>
+<b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b>
+<b/b/b/a>
+<b/b/b/b>
+== <**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+<b>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/b>
+<b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b>
+<b/b/b/a>
+<b/b/b/b>
+== <**/**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+<b>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/b>
+<b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b>
+<b/b/b/a>
+<b/b/b/b>
+== <**/**/**/**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+<b>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/b>
+<b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b>
+<b/b/b/a>
+<b/b/b/b>
+== <**/**/a> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/b/a>
+<b/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/b/a>
+<b/b/a>
+<b/b/a/a>
+<b/b/b/a>
+== <a/**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+== <a/**/**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+== <a/**/**/**/**> ==
+<a>
+<a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/b>
+== <**/a/**> ==
+<a>
+<a/a>
+<a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/b>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/a>
+<a/b/b/b>
+<b/a>
+<b/a/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/a>
+<b/a/b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b/a>
+== <**/a/**/**> ==
+<a>
+<a/a>
+<a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/b>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/a>
+<a/b/b/b>
+<b/a>
+<b/a/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/a>
+<b/a/b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b/a>
+== <**/a/**/**/**> ==
+<a>
+<a/a>
+<a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/b>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/a>
+<a/b/b/b>
+<b/a>
+<b/a/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/a>
+<b/a/b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b/a>
+== <**/**/a/**> ==
+<a>
+<a/a>
+<a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/a>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/a/b>
+<a/a/b>
+<a/a/b>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/a>
+<a/a/b/b>
+<a/a/b/b>
+<a/b>
+<a/b/a>
+<a/b/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/a>
+<a/b/a/b>
+<a/b/a/b>
+<a/b/b>
+<a/b/b/a>
+<a/b/b/a>
+<a/b/b/b>
+<b/a>
+<b/a/a>
+<b/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/a>
+<b/a/a/b>
+<b/a/a/b>
+<b/a/b>
+<b/a/b/a>
+<b/a/b/a>
+<b/a/b/b>
+<b/b/a>
+<b/b/a/a>
+<b/b/a/a>
+<b/b/a/b>
+<b/b/b/a>
+/tmp/empty
diff --git a/tests/globstar.tests b/tests/globstar.tests
index 9b1f9d29..f7efbd19 100644
--- a/tests/globstar.tests
+++ b/tests/globstar.tests
@@ -39,3 +39,4 @@ cd $dir
rm -rf $GDIR
${THIS_SH} ./globstar1.sub
+${THIS_SH} ./globstar2.sub
diff --git a/tests/globstar2.sub b/tests/globstar2.sub
new file mode 100644
index 00000000..844d3120
--- /dev/null
+++ b/tests/globstar2.sub
@@ -0,0 +1,80 @@
+shopt -s globstar
+s()
+{
+ printf '== <%s> ==\n' "$@"
+}
+p()
+{
+ printf '<%q>\n' "$@"
+}
+
+mkdir -p /tmp/empty/a/a/a
+cd /tmp/empty
+
+# good
+p **
+p **/**
+p **/**/**
+
+rm -rf a
+mkdir -p /tmp/empty/{a,b}/{a,b}/{a,b}/{a,b}
+cd /tmp/empty
+
+# good
+s '**/a'
+p **/a
+
+# good
+s 'a/**'
+p a/**
+
+# good
+s '**'
+p **
+
+# good
+s '**/**'
+p **/**
+
+# good
+s '**/**/**'
+p **/**/**
+
+# good
+s '**/**/**/**/**'
+p **/**/**/**/**
+
+# good
+s '**/**/a'
+p **/**/a
+
+# good
+s 'a/**/**'
+p a/**/**
+
+# good
+s 'a/**/**/**'
+p a/**/**/**
+
+# good
+s 'a/**/**/**/**'
+p a/**/**/**/**
+
+# same as ksh93
+s '**/a/**'
+p **/a/**
+
+# same as ksh93
+s '**/a/**/**'
+p **/a/**/**
+
+# same as ksh93
+s '**/a/**/**/**'
+p **/a/**/**/**
+
+# good
+s '**/**/a/**'
+p **/**/a/**
+
+cd -
+rm -rf /tmp/empty
diff --git a/tests/heredoc.right b/tests/heredoc.right
index b8754dec..6abaa1f4 100644
--- a/tests/heredoc.right
+++ b/tests/heredoc.right
@@ -58,7 +58,34 @@ qux
bar
qux
+abc def geh
+./heredoc3.sub: line 6: warning: here-document at line 4 delimited by end-of-file (wanted `EOF')
+= here is the text =
+./heredoc3.sub: line 12: warning: here-document at line 10 delimited by end-of-file (wanted `EOF')
+this paren ) is not a problem
+./heredoc3.sub: line 18: warning: here-document at line 16 delimited by end-of-file (wanted `EOF')
+these balanced parens ( ) are not a problem
+./heredoc3.sub: line 24: warning: here-document at line 22 delimited by end-of-file (wanted `EOF')
+quoted balanced parens \( ) are not a problem either
+more text in a subshell
+some more text in a different subshell
+end
+hello
+hello
+ENDEND
+end ENDEND
+hello
+end hello
+x star x
+end x*x
+helloEND
+end helloEND
+hello
+\END
+end hello<NL>\END
+./heredoc3.sub: line 74: warning: here-document at line 72 delimited by end-of-file (wanted `EOF')
+./heredoc3.sub: line 75: syntax error: unexpected end of file
comsub here-string
-./heredoc.tests: line 100: warning: here-document at line 98 delimited by end-of-file (wanted `EOF')
+./heredoc.tests: line 105: warning: here-document at line 103 delimited by end-of-file (wanted `EOF')
hi
there
diff --git a/tests/heredoc.tests b/tests/heredoc.tests
index 79bf4ce7..ebc770ac 100644
--- a/tests/heredoc.tests
+++ b/tests/heredoc.tests
@@ -88,6 +88,11 @@ ${THIS_SH} -c 'type fff'
${THIS_SH} ./heredoc1.sub
+# test heredocs in command substitutions
+${THIS_SH} ./heredoc2.sub
+
+${THIS_SH} ./heredoc3.sub
+
echo $(
cat <<< "comsub here-string"
)
diff --git a/tests/heredoc2.sub b/tests/heredoc2.sub
new file mode 100644
index 00000000..7e97ed80
--- /dev/null
+++ b/tests/heredoc2.sub
@@ -0,0 +1,9 @@
+TEST=$(cat <<EOF | sort -u
+abc
+geh
+def
+abc
+EOF
+)
+
+echo $TEST
diff --git a/tests/heredoc3.sub b/tests/heredoc3.sub
new file mode 100644
index 00000000..73a111e4
--- /dev/null
+++ b/tests/heredoc3.sub
@@ -0,0 +1,74 @@
+text=$(cat <<EOF
+here is the text
+EOF)
+
+echo = $text =
+
+unbalanced=$(cat <<EOF
+this paren ) is not a problem
+EOF)
+
+echo $unbalanced
+
+balanced=$(cat <<EOF
+these balanced parens ( ) are not a problem
+EOF)
+
+echo $balanced
+
+balanced=$(cat <<EOF
+quoted balanced parens \( ) are not a problem either
+EOF)
+
+echo $balanced
+
+(cat <<EOF
+more text in a subshell
+EOF
+)
+
+(cat <<EOF; )
+some more text in a different subshell
+EOF
+echo end
+
+# semi-weird examples posted by Wayne Pollack to austin-group mailing list
+cat <<-' END'
+ hello
+ END
+
+cat <<END
+hello
+END\
+END
+END
+echo end ENDEND
+
+cat <<' END '
+hello
+ END
+echo end hello
+
+cat <<x*x & touch 'x*x'
+x star x
+x*x
+echo end 'x*x'
+rm 'x*x'
+
+cat <<END
+hello\
+END
+END
+echo end helloEND
+
+cat <<END
+hello
+\END
+END
+echo end 'hello<NL>\END'
+
+# this has to be last -- results in a syntax error
+# doesn't currently parse because EOF is not on a line by itself -- should it?
+(cat <<EOF
+still more text in a subshell
+EOF)
diff --git a/tests/histexp.tests b/tests/histexp.tests
index dccbfe0c..add2a674 100644
--- a/tests/histexp.tests
+++ b/tests/histexp.tests
@@ -5,7 +5,7 @@ trap 'rm /tmp/newhistory' 0
file=bax
histchars='!^#' # make sure history comment char is set correctly
-unset HISTFILESIZE
+unset HISTFILESIZE HISTTIMEFORMAT
history -c
diff --git a/tests/history.right b/tests/history.right
index 3bac71a0..3dc93a1e 100644
--- a/tests/history.right
+++ b/tests/history.right
@@ -140,7 +140,7 @@ three
one
two
three
-4.2
+4.3
echo ${BASH_VERSION%\.*}
-4.2
+4.3
echo ${BASH_VERSION%\.*}
diff --git a/tests/history.tests b/tests/history.tests
index 688095d5..25d7834f 100644
--- a/tests/history.tests
+++ b/tests/history.tests
@@ -109,5 +109,6 @@ shopt -q -o history
echo $?
${THIS_SH} ./history1.sub
+rm foohist-*
${THIS_SH} ./history2.sub
diff --git a/tests/history1.sub b/tests/history1.sub
index 543a3e8e..fa51ffc1 100644
--- a/tests/history1.sub
+++ b/tests/history1.sub
@@ -1,3 +1,5 @@
+trap 'rm -f $HISTFILE' 0 1 2 3 6 15
+
HISTFILE=foohist-$$
unset HISTIGNORE HISTCONTROL
set -o history
diff --git a/tests/intl.right b/tests/intl.right
index 52c65e49..acf108a4 100644
--- a/tests/intl.right
+++ b/tests/intl.right
@@ -17,3 +17,35 @@ aéb
1.0000
1.0000
1,0000
+Passed all 1378 Unicode tests
+0000000 303 277 012
+0000003
+0000000 303 277 012
+0000003
+0000000 303 277 012
+0000003
+0000000 303 277 012
+0000003
+0000000 357 277 277 012
+0000004
+0000000 357 277 277 012
+0000004
+0000000 012
+0000001
+0000000 012
+0000001
+0000000 012
+0000001
+0000000 012
+0000001
+0000000 303 277 012
+0000003
+0000000 303 277 012
+0000003
+0000000 303 277 012
+0000003
+0000000 101 040 302 243 040 305 222 012
+0000010
+./unicode3.sub: line 2: 5§@3™+ÆS8Ÿ¢ê³: command not found
+5§@3™+ÆS8Ÿ¢ê³
++ : $'5\247@3\231+\306S8\237\242\352\263'
diff --git a/tests/intl.tests b/tests/intl.tests
index 37518db2..3844fa87 100644
--- a/tests/intl.tests
+++ b/tests/intl.tests
@@ -43,3 +43,8 @@ ${THIS_SH} ./intl1.sub
# this tests both international handling in printf and temporary environments
${THIS_SH} ./intl2.sub
+
+${THIS_SH} ./unicode1.sub 2>/dev/null
+${THIS_SH} ./unicode2.sub
+
+${THIS_SH} ./unicode3.sub 2>&1
diff --git a/tests/iquote.right b/tests/iquote.right
index d164f105..9476128c 100644
--- a/tests/iquote.right
+++ b/tests/iquote.right
@@ -59,3 +59,34 @@ argv[1] = <aaa^?bbb>
argv[1] = <ccc^?ddd>
argv[1] = <eee^?fff>
argv[1] = <ggg^?hhh>
+argv[1] = <xy>
+argv[1] = <xy>
+argv[1] = <xy>
+argv[1] = <x^?y>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <>
+argv[1] = <^?>
+argv[1] = <^? >
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?x>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?>
+argv[1] = < ^?x>
+argv[1] = <^?x>
+argv[1] = <^?>
+argv[1] = < ^? x>
+argv[1] = <^? x>
+argv[1] = <^? >
diff --git a/tests/iquote.tests b/tests/iquote.tests
index a2cdf4f7..a1e63622 100644
--- a/tests/iquote.tests
+++ b/tests/iquote.tests
@@ -141,3 +141,5 @@ recho aaa$'\177'bbb
recho ccc""ddd
recho "eeefff"
recho ggg"$(echo $'\177')"hhh
+
+${THIS_SH} ./iquote1.sub
diff --git a/tests/iquote1.sub b/tests/iquote1.sub
new file mode 100644
index 00000000..1a8a35c0
--- /dev/null
+++ b/tests/iquote1.sub
@@ -0,0 +1,43 @@
+# Problems with variables that expand to 0x7f and quoted nulls in the same
+# expansion -- affects bash versions 4.0-post 4.2
+a=x
+b=
+del=$'\x7f'
+
+set ""
+
+recho ${undef-"x$*y"}
+recho "x$*y"
+recho x"$*"y
+recho x"$del"y
+
+recho ${undef-"$@"}
+recho "$@"
+recho "${@}"
+recho ${undef-"$*"}
+recho "$*"
+recho "${*}"
+
+recho "$del${a#x}"
+recho "$del ${a#x}"
+recho " $del${a#x}"
+
+recho " $del$b"
+recho " $del${b}"
+recho " $del${b#x}"
+recho " $del${a#x}"
+
+recho " $del${a%x}"
+recho " $del${a:0:0}"
+recho " $del"${a:0:0}
+recho " $del""${a:0:0}"
+recho " $del${a}"
+recho " $del"
+recho " ${del}${a:0:0}"
+recho " ${del:0:1}${a:0:0}"
+recho " ${del:0:1}${a}"
+recho "${del:0:1}${a#d}"
+recho "${del:0:1}${a#x}"
+recho " ${del:0:1} ${a}"
+recho "${del:0:1} ${a#d}"
+recho "${del:0:1} ${a#x}"
diff --git a/tests/jobs.right b/tests/jobs.right
index a4c8a7c0..7af54eb0 100644
--- a/tests/jobs.right
+++ b/tests/jobs.right
@@ -24,20 +24,23 @@ job 7 returns 0
4
0
i killed it
+12
+[1]- Running sleep 20 &
+[3]+ Running sleep 20 &
0
-./jobs.tests: line 19: wait: %1: no such job
-./jobs.tests: line 24: fg: no job control
+./jobs.tests: line 22: wait: %1: no such job
+./jobs.tests: line 27: fg: no job control
wait-for-pid
wait-errors
-./jobs.tests: line 37: wait: `1-1': not a pid or valid job spec
-./jobs.tests: line 38: wait: `-4': not a pid or valid job spec
+./jobs.tests: line 40: wait: `1-1': not a pid or valid job spec
+./jobs.tests: line 41: wait: `-4': not a pid or valid job spec
wait-for-background-pids
async list wait-for-background-pids
async list wait for child
forked
wait-when-no-children
wait-for-job
-./jobs.tests: line 60: wait: %2: no such job
+./jobs.tests: line 63: wait: %2: no such job
127
async list wait-for-job
forked
@@ -50,19 +53,19 @@ sleep 5
fg-bg 4
sleep 5
fg-bg 5
-./jobs.tests: line 87: fg: %2: no such job
-./jobs.tests: line 88: bg: job 1 already in background
+./jobs.tests: line 90: fg: %2: no such job
+./jobs.tests: line 91: bg: job 1 already in background
fg-bg 6
-./jobs.tests: line 95: fg: -s: invalid option
+./jobs.tests: line 98: fg: -s: invalid option
fg: usage: fg [job_spec]
-./jobs.tests: line 96: bg: -s: invalid option
+./jobs.tests: line 99: bg: -s: invalid option
bg: usage: bg [job_spec ...]
-./jobs.tests: line 101: disown: -s: invalid option
+./jobs.tests: line 104: disown: -s: invalid option
disown: usage: disown [-h] [-ar] [jobspec ...]
-./jobs.tests: line 105: disown: %1: no such job
-./jobs.tests: line 108: disown: %2: no such job
+./jobs.tests: line 108: disown: %1: no such job
+./jobs.tests: line 111: disown: %2: no such job
wait-for-non-child
-./jobs.tests: line 111: wait: pid 1 is not a child of this shell
+./jobs.tests: line 114: wait: pid 1 is not a child of this shell
127
3 -- 1 2 3 -- 1 - 2 - 3
[1] Running sleep 300 &
@@ -72,8 +75,8 @@ running jobs:
[1] Running sleep 300 &
[2]- Running sleep 350 &
[3]+ Running sleep 400 &
-./jobs.tests: line 128: kill: %4: no such job
-./jobs.tests: line 130: jobs: %4: no such job
+./jobs.tests: line 131: kill: %4: no such job
+./jobs.tests: line 133: jobs: %4: no such job
current job:
[3]+ Running sleep 400 &
previous job:
diff --git a/tests/jobs.tests b/tests/jobs.tests
index e2acba5b..c99f4f71 100644
--- a/tests/jobs.tests
+++ b/tests/jobs.tests
@@ -12,6 +12,9 @@ ${THIS_SH} ./jobs3.sub
# active
${THIS_SH} ./jobs4.sub
+# test out wait -n framework
+${THIS_SH} ./jobs5.sub
+
jobs
echo $?
diff --git a/tests/jobs5.sub b/tests/jobs5.sub
new file mode 100644
index 00000000..35d39816
--- /dev/null
+++ b/tests/jobs5.sub
@@ -0,0 +1,12 @@
+# framework to test new `wait -n' option that waits for any job to finish
+
+set -m
+
+sleep 20 &
+{ sleep 5; exit 12; } &
+sleep 20 &
+
+wait -n
+echo $?
+
+jobs
diff --git a/tests/nameref.right b/tests/nameref.right
new file mode 100644
index 00000000..53215348
--- /dev/null
+++ b/tests/nameref.right
@@ -0,0 +1,129 @@
+one
+two
+three
+declare -n fee="flip"
+declare -n foo="bar"
+turning off nameref attribute on foo
+bar
+after +n foo bar = other
+one
+two
+one
+expect <one>
+argv[1] = <one>
+expect <two>
+argv[1] = <two>
+expect <one>
+one
+expect <one>
+one
+expect <one>
+argv[1] = <one>
+changevar: expect <two>
+argv[1] = <two>
+expect <two>
+argv[1] = <two>
+changevar: expect <three four five>
+argv[1] = <three four five>
+expect <three four five>
+argv[1] = <three four five>
+./nameref.tests: line 93: bar: readonly variable
+./nameref.tests: line 94: foo: readonly variable
+one
+one
+./nameref.tests: line 106: foo: readonly variable
+./nameref.tests: line 103: foo: readonly variable
+one
+one
+bar
+
+./nameref2.sub: line 5: foo: readonly variable
+
+expect <unset>
+argv[1] = <unset>
+expect <unset>
+argv[1] = <unset>
+expect <bar>
+argv[1] = <bar>
+expect <unset>
+argv[1] = <unset>
+./nameref3.sub: line 21: unset: bar: cannot unset: readonly variable
+expect <two>
+two
+expect <two>
+two
+three
+unset
+four
+0
+expect <a b>
+a b
+expect <foo>
+foo
+1 3 5 7 9
+9
+1 3 42 7 9
+1 3 42 7 9
+9
+1 3 44 7 9
+unset
+expect <a b c d e>
+argv[1] = <a b c d e>
+expect <zero> <one> <seven> <three> <four>
+argv[1] = <zero>
+argv[2] = <one>
+argv[3] = <seven>
+argv[4] = <three>
+argv[5] = <four>
+16
+expect <4>
+4
+expect <4>
+4
+expect <4>
+4
+expect <one>
+one
+expect <one>
+one
+expect <one>
+one
+expect <four>
+four
+errors = 0
+1
+2
+v1: 1
+v2: 2
+ref -> first, value: I am first
+ref -> second, value: I am in the middle
+ref -> third, value: I am last
+final state: ref -> third, value: I am last
+ref -> one, value: 1
+ref -> two, value: 2
+ref -> three, value: 3
+final state: ref -> three, value: 3
+./nameref5.sub: line 43: unset: three: cannot unset: readonly variable
+ref -> one, value: 1
+ref -> two, value: 2
+ref -> three, value: 3
+final state: ref -> three, value: 3
+./nameref6.sub: line 2: typeset: x: nameref variable self references not allowed
+./nameref6.sub: line 12: typeset: x: reference variable cannot be an array
+the -- 1
+42 -- 0
+y -- 0
+2 -- 0
+2 -- 0
+y -- 0
+bar
+unset
+inside
+inside: two
+outside:
+foo
+local
+./nameref8.sub: line 47: typeset: v: nameref variable self references not allowed
+./nameref8.sub: line 54: warning: x: circular name reference
+./nameref8.sub: line 55: warning: x: circular name reference
+x =
diff --git a/tests/nameref.tests b/tests/nameref.tests
new file mode 100644
index 00000000..438133c6
--- /dev/null
+++ b/tests/nameref.tests
@@ -0,0 +1,118 @@
+# basic nameref tests
+bar=one
+flow=two
+flip=three
+
+foo=bar
+typeset -n foo
+
+typeset -n fee=flow
+
+echo ${foo}
+echo ${fee}
+
+typeset -n fee=flip
+echo ${fee}
+
+typeset -n
+
+echo turning off nameref attribute on foo
+typeset +n foo=other
+echo ${foo}
+echo after +n foo bar = $bar
+
+unset foo bar fee
+
+bar=one
+
+foo=bar
+typeset -n foo
+
+foo=two printf "%s\n" $foo
+foo=two eval 'printf "%s\n" $foo'
+
+foo=two echo $foo
+
+unset foo bar
+# other basic assignment tests
+bar=one
+
+echo "expect <one>"
+recho ${bar}
+typeset -n foo=bar
+foo=two
+
+echo "expect <two>"
+recho ${bar}
+
+# this appears to be a ksh93 bug; it doesn't unset foo here and messes up
+# later
+unset foo bar
+
+# initial tests of working inside shell functions
+echoval()
+{
+ typeset -n ref=$1
+ printf "%s\n" $ref
+}
+
+foo=bar
+bar=one
+echo "expect <$foo>"
+echoval foo
+echo "expect <$bar>"
+echoval bar
+
+unset foo bar
+changevar()
+{
+ typeset -n v=$1
+
+ shift
+ v="$@"
+ echo "changevar: expect <$@>"
+ recho "$v"
+}
+
+bar=one
+
+echo "expect <one>"
+recho ${bar}
+changevar bar two
+echo "expect <two>"
+recho $bar
+
+changevar bar three four five
+echo "expect <three four five>"
+recho "$bar"
+
+unset foo bar
+unset -n foo bar
+readonly foo=one
+typeset -n bar=foo
+bar=4
+foo=4
+
+echo $foo
+echo $bar
+
+assignvar()
+{
+ typeset -n ref=$1
+ shift
+ ref="$@"
+}
+
+readonly foo=one
+
+assignvar foo two three four
+echo $foo
+
+${THIS_SH} ./nameref1.sub
+${THIS_SH} ./nameref2.sub
+${THIS_SH} ./nameref3.sub
+${THIS_SH} ./nameref4.sub
+${THIS_SH} ./nameref5.sub
+${THIS_SH} ./nameref6.sub
+${THIS_SH} ./nameref7.sub
+${THIS_SH} ./nameref8.sub
diff --git a/tests/nameref1.sub b/tests/nameref1.sub
new file mode 100644
index 00000000..50bb25d6
--- /dev/null
+++ b/tests/nameref1.sub
@@ -0,0 +1,13 @@
+# indirect referencing of a nameref returns the variable name it references
+unset foo bar
+
+bar=one
+foo=bar
+
+typeset -n foo
+
+echo ${foo}
+echo ${!foo}
+
+# this is a current incompatibility
+echo ${!foo[0]}
diff --git a/tests/nameref2.sub b/tests/nameref2.sub
new file mode 100644
index 00000000..547cc199
--- /dev/null
+++ b/tests/nameref2.sub
@@ -0,0 +1,7 @@
+# test readonly nameref variables
+# ksh93 allows this but not typeset -rn ref=foo?
+typeset -n ref=foo
+readonly ref
+foo=4
+
+echo $ref
diff --git a/tests/nameref3.sub b/tests/nameref3.sub
new file mode 100644
index 00000000..57902917
--- /dev/null
+++ b/tests/nameref3.sub
@@ -0,0 +1,37 @@
+# nameref requires changes to unset
+bar=one
+typeset -n foo=bar
+
+# normal unset unsets only variable nameref references
+# need unset -n to unset nameref itself
+unset foo
+echo "expect <unset>"
+recho ${bar-unset}
+echo "expect <unset>"
+recho ${foo-unset}
+echo "expect <bar>"
+recho ${!foo}
+unset -n foo
+echo "expect <unset>"
+recho "${!foo-unset}"
+
+readonly bar=two
+typeset -n foo=bar
+
+unset foo # this should fail because bar is readonly
+
+echo "expect <two>"
+echo ${bar-unset}
+echo "expect <two>"
+echo ${foo-unset}
+
+# one question is what happens when you unset the underlying variable
+qux=three
+typeset -n ref
+ref=qux
+
+echo $ref
+unset qux
+echo ${ref-unset}
+qux=four
+echo ${ref-unset}
diff --git a/tests/nameref4.sub b/tests/nameref4.sub
new file mode 100644
index 00000000..f1e2aef9
--- /dev/null
+++ b/tests/nameref4.sub
@@ -0,0 +1,212 @@
+# test suite cribbed from ksh93 nameref tests
+typeset -i errors=0
+ckval()
+{
+ typeset -n one=$1
+
+ if [[ $one != $2 ]]; then
+ echo "one=$one != 2=$2"
+ (( errors++ ))
+ fi
+}
+
+ckref()
+{
+ typeset -n one=$1 two=$2
+
+ if [[ $one != $two ]]; then
+ echo "one=$one != two=$two"
+ (( errors++ ))
+ fi
+}
+
+name=first
+
+ckref name name
+
+func1()
+{
+ typeset -n color=$1
+ func2 color
+}
+
+func2()
+{
+ typeset color=$1
+ set -- ${color[@]}
+ printf "<%s>" "$@"
+ echo
+}
+
+typeset -A color
+color[apple]=red
+color[grape]=purple
+color[banana]=yellow
+
+# XXX
+#func1 color
+
+unset foo bar
+export bar=foo
+typeset -n foo=bar
+ckval foo foo
+
+# XXX - need to see if we can do checks for self-referencing at assignment
+# time
+command typeset -n xx=yy
+command typeset -n yy=xx
+echo $?
+
+unset foo bar
+unset -n foo bar
+set foo
+typeset -n bar=$1
+foo=hello
+ckval bar hello
+
+# XXX -- another self-referencing error?
+# ksh93 makes this another invalid self-reference
+unset foo bar
+bar=123
+foobar()
+{
+ typeset -n foo=bar
+ typeset -n foo=bar
+
+ ckval foo 123
+}
+
+typeset -n short=long
+short=( a b )
+echo "expect <a b>"
+echo ${long[@]}
+unset short long
+
+# assignment to a previously-unset variable
+typeset -n short=long
+short=foo
+echo "expect <foo>"
+echo ${long}
+unset short long
+
+unset foo bar
+
+# simple array references and assignments
+typeset -n foo=bar
+bar=( 1 3 5 7 9)
+echo ${foo[@]}
+echo ${foo[4]}
+foo[2]=42
+echo ${bar[@]}
+
+barfunc()
+{
+ typeset -n v=$1
+ echo ${v[@]}
+ echo ${v[4]}
+ v[2]=44
+ echo ${bar[@]}
+}
+barfunc bar
+
+unset -f foobar
+unset foo bar
+
+# should ref at global scope survive call to foobar()?
+unset ref x
+typeset -n ref
+x=42
+foobar()
+{
+ local xxx=3
+ ref=xxx
+ return 0
+}
+echo ${ref-unset}
+ref=x
+foobar
+ckval ref xxx
+ckval x xxx
+
+# assignment in a function to something possibly out of scope
+assignvar()
+{
+ typeset -n v=$1
+ shift
+ v="$@"
+}
+
+assignvar lex a b c d e
+echo "expect <a b c d e>"
+recho "${lex}"
+
+unset foo bar short long
+
+typeset -n foo='x[2]'
+
+x=(zero one two three four)
+foo=seven
+
+echo "expect <zero> <one> <seven> <three> <four>"
+recho "${x[@]}"
+
+unset ref x
+typeset -n ref
+ref=x
+# make sure nameref to a previously-unset variable creates the variable
+ref=42
+ckval x 42
+
+# make sure they work inside arithmetic expressions
+unset foo bar ref x xxx
+typeset -i ivar
+typeset -n iref=ivar
+
+ivar=4+3
+ckval ivar 7
+iref+=5
+ckval ivar 12
+echo $(( iref+4 ))
+(( iref=17 ))
+ckval ivar 17
+
+typeset +n iref
+unset iref ivar
+
+typeset +n foo bar
+unset foo bar
+
+# should the reference do immediate evaluation or deferred?
+set -- one two three four
+bar=4
+# XXX - what does foo get set to here?
+typeset -n foo='bar[0]'
+echo "expect <4>"
+echo ${bar[0]}
+echo "expect <4>"
+echo ${foo}
+echo "expect <4>"
+echo $foo
+ckval foo $bar
+
+# Need to add code and tests for nameref to array subscripts
+bar=(one two three four)
+
+typeset -n foo='bar[0]'
+typeset -n qux='bar[3]'
+echo "expect <one>"
+echo ${bar[0]}
+echo "expect <one>"
+echo ${foo}
+echo "expect <one>"
+echo $foo
+ckval foo $bar
+
+echo "expect <four>"
+echo $qux
+ckval qux ${bar[3]}
+
+# Need to add code and tests for `for' loop nameref variables
+
+echo errors = $errors
+exit $errors
diff --git a/tests/nameref5.sub b/tests/nameref5.sub
new file mode 100644
index 00000000..2c67a948
--- /dev/null
+++ b/tests/nameref5.sub
@@ -0,0 +1,50 @@
+# nameref variables as for loop index variables are special
+v1=1
+v2=2
+
+# simple for loop
+for v in v1 v2
+do
+ typeset -n ref=$v
+ echo $ref
+done
+unset v
+
+set -- first second third fourth fifth
+
+# unless you put a ${!v} in the for loop, ksh93 misbehaves
+typeset -n v=v1
+for v in v1 v2; do
+ echo "${!v}: $v"
+done
+unset v
+
+# example cribbed from ksh93 o'reilly book
+first="I am first"
+second="I am in the middle"
+third="I am last"
+
+typeset -n ref=first
+for ref in first second third ; do
+ echo "ref -> ${!ref}, value: $ref"
+done
+echo final state: "ref -> ${!ref}, value: $ref"
+
+readonly one=1
+readonly two=2
+readonly three=3
+
+typeset -n ref=one
+for ref in one two three; do
+ echo "ref -> ${!ref}, value: $ref"
+done
+echo final state: "ref -> ${!ref}, value: $ref"
+
+unset ref
+typeset -n ref=one
+readonly ref
+
+for ref in one two three; do
+ echo "ref -> ${!ref}, value: $ref"
+done
+echo final state: "ref -> ${!ref}, value: $ref"
diff --git a/tests/nameref6.sub b/tests/nameref6.sub
new file mode 100644
index 00000000..cf70d412
--- /dev/null
+++ b/tests/nameref6.sub
@@ -0,0 +1,44 @@
+# these should be errors
+typeset -n x=x
+#echo $x -- $?
+
+typeset -n x[3]=x
+#echo $x -- $?
+
+x=(the browns suck)
+y=(one two three)
+# should be an error but not disturb the current contents of x
+# maybe rethink that later
+typeset -n x=y
+echo $x -- $?
+
+typeset -n
+
+unset x y
+
+y=42
+typeset -i x=1
+
+# the integer attribute causes arithmetic eval to be done
+# we should not allow namerefs to non-identifiers
+typeset -n x=y
+echo $x -- $?
+
+typeset +n x
+echo $x -- $?
+
+# same kind of thing
+
+unset -n x
+unset y
+
+set -- first second third
+y=2
+typeset -i x=1
+
+typeset -n x=y
+echo $x -- $?
+echo ${x} -- $?
+
+typeset +n x
+echo $x -- $?
diff --git a/tests/nameref7.sub b/tests/nameref7.sub
new file mode 100644
index 00000000..19bdc989
--- /dev/null
+++ b/tests/nameref7.sub
@@ -0,0 +1,18 @@
+fn ()
+{
+ declare -n var=foo; var=bar
+}
+
+unset foo
+fn
+echo ${foo:-unset}
+
+unset -f fn
+unset foo
+fn()
+{
+ declare -n var; var=foo
+}
+
+fn
+echo ${foo:-unset}
diff --git a/tests/nameref8.sub b/tests/nameref8.sub
new file mode 100644
index 00000000..6837f6f4
--- /dev/null
+++ b/tests/nameref8.sub
@@ -0,0 +1,57 @@
+function f1
+{
+ typeset -n v=$1
+
+ v=inside
+}
+
+v=global
+f1 v
+echo $v
+
+unset v
+unset -f f1
+
+function foo
+{
+ typeset x=one
+
+ typeset -n y=$1
+ y=two
+ echo inside: $x
+}
+
+foo x
+echo outside: $x
+
+function foo2
+{
+ typeset -n x=$1
+
+ x=foo
+}
+
+foo2 x
+echo $x
+
+unset -f foo
+function foo { typeset -n v=$1; v=local; }
+
+v=global
+foo v
+echo $v
+
+unset v
+
+# invalid self reference at global scope
+typeset -n v=v
+
+# can we catch a circular self-reference?
+typeset -n v=w
+typeset -n w=x
+typeset -n x=v
+
+x=4
+echo x = $x
+
+unset -n v w x
diff --git a/tests/new-exp.right b/tests/new-exp.right
index ac0058f9..3243d05e 100644
--- a/tests/new-exp.right
+++ b/tests/new-exp.right
@@ -165,6 +165,9 @@ this is test 2
./new-exp2.sub: line 31: /tmp/bashtmp.x*: No such file or directory
./new-exp2.sub: line 35: /tmp/redir-notthere: No such file or directory
1
+
+./new-exp2.sub: line 42: 1111111111111111111111: command not found
+
argv[1] = <6>
./new-exp.tests: line 277: ${#:}: bad substitution
argv[1] = <'>
@@ -559,6 +562,14 @@ ing999
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
art;string0;string1;string2;string3;string4;string5;string6;string7;string8;string9;string10;string11;string12;string13;string14;string15;string16;string17;string18;string19;string20;string21;string22;string23;string24;string25;string26;string27;string28;string29;string30;string31;string32;string33;string34;string35;string36;string37;string38;string39;string40;string41;string42;string43;string44;string45;string46;string47;string48;string49;string50;string51;string52;string53;string54;string55;string56;string57;string58;string59;string60;string61;string62;string63;string64;string65;string66;string67;string68;string69;string70;string71;string72;string73;string74;string75;string76;string77;string78;string79;string80;string81;string82;string83;string84;string85;string86;string87;string88;string89;string90;string91;string92;string93;string94;string95;string96;string97;string98;string99;string100;string101;string102;string103;string104;string105;string106;string107;string108;string109;string110;string111;string112;string113;string114;string115;string116;string117;string118;string119;string120;string121;string122;string123;string124;string125;string126;string127;string128;string129;string130;string131;string132;string133;string134;string135;string136;string137;string138;string139;string140;string141;string142;string143;string144;string145;string146;string147;string148;string149;string150;string151;string152;string153;string154;string155;string156;string157;string158;string159;string160;string161;string162;string163;string164;string165;string166;string167;string168;string169;string170;string171;string172;string173;string174;string175;string176;string177;string178;string179;string180;string181;string182;string183;string184;string185;string186;string187;string188;string189;string190;string191;string192;string193;string194;string195;string196;string197;string198;string199;string200;string201;string202;string203;string204;string205;string206;string207;string208;string209;string210;string211;string212;string213;string214;string215;string216;string217;string218;string219;string220;string221;string222;string223;string224;string225;string226;string227;string228;string229;string230;string231;string232;string233;string234;string235;string236;string237;string238;string239;string240;string241;string242;string243;string244;string245;string246;string247;string248;string249;string250;string251;string252;string253;string254;string255;string256;string257;string258;string259;string260;string261;string262;string263;string264;string265;string266;string267;string268;string269;string270;string271;string272;string273;string274;string275;string276;string277;string278;string279;string280;string281;string282;string283;string284;string285;string286;string287;string288;string289;string290;string291;string292;string293;string294;string295;string296;string297;string298;string299;string300;string301;string302;string303;string304;string305;string306;string307;string308;string309;string310;string311;string312;string313;string314;string315;string316;string317;string318;string319;string320;string321;string322;string323;string324;string325;string326;string327;string328;string329;string330;string331;string332;string333;string334;string335;string336;string337;string338;string339;string340;string341;string342;string343;string344;string345;string346;string347;string348;string349;string350;string351;string352;string353;string354;string355;string356;string357;string358;string359;string360;string361;string362;string363;string364;string365;string366;string367;string368;string369;string370;string371;string372;string373;string374;string375;string376;string377;string378;string379;string380;string381;string382;string383;string384;string385;string386;string387;string388;string389;string390;string391;string392;string393;string394;string395;string396;string397;string398;string399;string400;string401;string402;string403;string404;string405;string406;string407;string408;string409;string410;string411;string412;string413;string414;string415;string416;string417;string418;string419;string420;string421;string422;string423;string424;string425;string426;string427;string428;string429;string430;string431;string432;string433;string434;string435;string436;string437;string438;string439;string440;string441;string442;string443;string444;string445;string446;string447;string448;string449;string450;string451;string452;string453;string454;string455;string456;string457;string458;string459;string460;string461;string462;string463;string464;string465;string466;string467;string468;string469;string470;string471;string472;string473;string474;string475;string476;string477;string478;string479;string480;string481;string482;string483;string484;string485;string486;string487;string488;string489;string490;string491;string492;string493;string494;string495;string496;string497;string498;string499;string500;string501;string502;string503;string504;string505;string506;string507;string508;string509;string510;string511;string512;string513;string514;string515;string516;string517;string518;string519;string520;string521;string522;string523;string524;string525;string526;string527;string528;string529;string530;string531;string532;string533;string534;string535;string536;string537;string538;string539;string540;string541;string542;string543;string544;string545;string546;string547;string548;string549;string550;string551;string552;string553;string554;string555;string556;string557;string558;string559;string560;string561;string562;string563;string564;string565;string566;string567;string568;string569;string570;string571;string572;string573;string574;string575;string576;string577;string578;string579;string580;string581;string582;string583;string584;string585;string586;string587;string588;string589;string590;string591;string592;string593;string594;string595;string596;string597;string598;string599;string600;string601;string602;string603;string604;string605;string606;string607;string608;string609;string610;string611;string612;string613;string614;string615;string616;string617;string618;string619;string620;string621;string622;string623;string624;string625;string626;string627;string628;string629;string630;string631;string632;string633;string634;string635;string636;string637;string638;string639;string640;string641;string642;string643;string644;string645;string646;string647;string648;string649;string650;string651;string652;string653;string654;string655;string656;string657;string658;string659;string660;string661;string662;string663;string664;string665;string666;string667;string668;string669;string670;string671;string672;string673;string674;string675;string676;string677;string678;string679;string680;string681;string682;string683;string684;string685;string686;string687;string688;string689;string690;string691;string692;string693;string694;string695;string696;string697;string698;string699;string700;string701;string702;string703;string704;string705;string706;string707;string708;string709;string710;string711;string712;string713;string714;string715;string716;string717;string718;string719;string720;string721;string722;string723;string724;string725;string726;string727;string728;string729;string730;string731;string732;string733;string734;string735;string736;string737;string738;string739;string740;string741;string742;string743;string744;string745;string746;string747;string748;string749;string750;string751;string752;string753;string754;string755;string756;string757;string758;string759;string760;string761;string762;string763;string764;string765;string766;string767;string768;string769;string770;string771;string772;string773;string774;string775;string776;string777;string778;string779;string780;string781;string782;string783;string784;string785;string786;string787;string788;string789;string790;string791;string792;string793;string794;string795;string796;string797;string798;string799;string800;string801;string802;string803;string804;string805;string806;string807;string808;string809;string810;string811;string812;string813;string814;string815;string816;string817;string818;string819;string820;string821;string822;string823;string824;string825;string826;string827;string828;string829;string830;string831;string832;string833;string834;string835;string836;string837;string838;string839;string840;string841;string842;string843;string844;string845;string846;string847;string848;string849;string850;string851;string852;string853;string854;string855;string856;string857;string858;string859;string860;string861;string862;string863;string864;string865;string866;string867;string868;string869;string870;string871;string872;string873;string874;string875;string876;string877;string878;string879;string880;string881;string882;string883;string884;string885;string886;string887;string888;string889;string890;string891;string892;string893;string894;string895;string896;string897;string898;string899;string900;string901;string902;string903;string904;string905;string906;string907;string908;string909;string910;string911;string912;string913;string914;string915;string916;string917;string918;string919;string920;string921;string922;string923;string924;string925;string926;string927;string928;string929;string930;string931;string932;string933;string934;string935;string936;string937;string938;string939;string940;string941;string942;string943;string944;string945;string946;string947;string948;string949;string950;string951;string952;string953;string954;string955;string956;string957;string958;string959;string960;string961;string962;string963;string964;string965;string966;string967;string968;string969;string970;string971;string972;string973;string974;string975;string976;string977;string978;string979;string980;string981;string982;string983;string984;string985;string986;string987;string988;string989;string990;string991;string992;string993;string994;string995;string996;string997;string998;string999
start;string0;string1;string2;string3;string4;string5;string6;string7;string8;string9;string10;string11;string12;string13;string14;string15;string16;string17;string18;string19;string20;string21;string22;string23;string24;string25;string26;string27;string28;string29;string30;string31;string32;string33;string34;string35;string36;string37;string38;string39;string40;string41;string42;string43;string44;string45;string46;string47;string48;string49;string50;string51;string52;string53;string54;string55;string56;string57;string58;string59;string60;string61;string62;string63;string64;string65;string66;string67;string68;string69;string70;string71;string72;string73;string74;string75;string76;string77;string78;string79;string80;string81;string82;string83;string84;string85;string86;string87;string88;string89;string90;string91;string92;string93;string94;string95;string96;string97;string98;string99;string100;string101;string102;string103;string104;string105;string106;string107;string108;string109;string110;string111;string112;string113;string114;string115;string116;string117;string118;string119;string120;string121;string122;string123;string124;string125;string126;string127;string128;string129;string130;string131;string132;string133;string134;string135;string136;string137;string138;string139;string140;string141;string142;string143;string144;string145;string146;string147;string148;string149;string150;string151;string152;string153;string154;string155;string156;string157;string158;string159;string160;string161;string162;string163;string164;string165;string166;string167;string168;string169;string170;string171;string172;string173;string174;string175;string176;string177;string178;string179;string180;string181;string182;string183;string184;string185;string186;string187;string188;string189;string190;string191;string192;string193;string194;string195;string196;string197;string198;string199;string200;string201;string202;string203;string204;string205;string206;string207;string208;string209;string210;string211;string212;string213;string214;string215;string216;string217;string218;string219;string220;string221;string222;string223;string224;string225;string226;string227;string228;string229;string230;string231;string232;string233;string234;string235;string236;string237;string238;string239;string240;string241;string242;string243;string244;string245;string246;string247;string248;string249;string250;string251;string252;string253;string254;string255;string256;string257;string258;string259;string260;string261;string262;string263;string264;string265;string266;string267;string268;string269;string270;string271;string272;string273;string274;string275;string276;string277;string278;string279;string280;string281;string282;string283;string284;string285;string286;string287;string288;string289;string290;string291;string292;string293;string294;string295;string296;string297;string298;string299;string300;string301;string302;string303;string304;string305;string306;string307;string308;string309;string310;string311;string312;string313;string314;string315;string316;string317;string318;string319;string320;string321;string322;string323;string324;string325;string326;string327;string328;string329;string330;string331;string332;string333;string334;string335;string336;string337;string338;string339;string340;string341;string342;string343;string344;string345;string346;string347;string348;string349;string350;string351;string352;string353;string354;string355;string356;string357;string358;string359;string360;string361;string362;string363;string364;string365;string366;string367;string368;string369;string370;string371;string372;string373;string374;string375;string376;string377;string378;string379;string380;string381;string382;string383;string384;string385;string386;string387;string388;string389;string390;string391;string392;string393;string394;string395;string396;string397;string398;string399;string400;string401;string402;string403;string404;string405;string406;string407;string408;string409;string410;string411;string412;string413;string414;string415;string416;string417;string418;string419;string420;string421;string422;string423;string424;string425;string426;string427;string428;string429;string430;string431;string432;string433;string434;string435;string436;string437;string438;string439;string440;string441;string442;string443;string444;string445;string446;string447;string448;string449;string450;string451;string452;string453;string454;string455;string456;string457;string458;string459;string460;string461;string462;string463;string464;string465;string466;string467;string468;string469;string470;string471;string472;string473;string474;string475;string476;string477;string478;string479;string480;string481;string482;string483;string484;string485;string486;string487;string488;string489;string490;string491;string492;string493;string494;string495;string496;string497;string498;string499;string500;string501;string502;string503;string504;string505;string506;string507;string508;string509;string510;string511;string512;string513;string514;string515;string516;string517;string518;string519;string520;string521;string522;string523;string524;string525;string526;string527;string528;string529;string530;string531;string532;string533;string534;string535;string536;string537;string538;string539;string540;string541;string542;string543;string544;string545;string546;string547;string548;string549;string550;string551;string552;string553;string554;string555;string556;string557;string558;string559;string560;string561;string562;string563;string564;string565;string566;string567;string568;string569;string570;string571;string572;string573;string574;string575;string576;string577;string578;string579;string580;string581;string582;string583;string584;string585;string586;string587;string588;string589;string590;string591;string592;string593;string594;string595;string596;string597;string598;string599;string600;string601;string602;string603;string604;string605;string606;string607;string608;string609;string610;string611;string612;string613;string614;string615;string616;string617;string618;string619;string620;string621;string622;string623;string624;string625;string626;string627;string628;string629;string630;string631;string632;string633;string634;string635;string636;string637;string638;string639;string640;string641;string642;string643;string644;string645;string646;string647;string648;string649;string650;string651;string652;string653;string654;string655;string656;string657;string658;string659;string660;string661;string662;string663;string664;string665;string666;string667;string668;string669;string670;string671;string672;string673;string674;string675;string676;string677;string678;string679;string680;string681;string682;string683;string684;string685;string686;string687;string688;string689;string690;string691;string692;string693;string694;string695;string696;string697;string698;string699;string700;string701;string702;string703;string704;string705;string706;string707;string708;string709;string710;string711;string712;string713;string714;string715;string716;string717;string718;string719;string720;string721;string722;string723;string724;string725;string726;string727;string728;string729;string730;string731;string732;string733;string734;string735;string736;string737;string738;string739;string740;string741;string742;string743;string744;string745;string746;string747;string748;string749;string750;string751;string752;string753;string754;string755;string756;string757;string758;string759;string760;string761;string762;string763;string764;string765;string766;string767;string768;string769;string770;string771;string772;string773;string774;string775;string776;string777;string778;string779;string780;string781;string782;string783;string784;string785;string786;string787;string788;string789;string790;string791;string792;string793;string794;string795;string796;string797;string798;string799;string800;string801;string802;string803;string804;string805;string806;string807;string808;string809;string810;string811;string812;string813;string814;string815;string816;string817;string818;string819;string820;string821;string822;string823;string824;string825;string826;string827;string828;string829;string830;string831;string832;string833;string834;string835;string836;string837;string838;string839;string840;string841;string842;string843;string844;string845;string846;string847;string848;string849;string850;string851;string852;string853;string854;string855;string856;string857;string858;string859;string860;string861;string862;string863;string864;string865;string866;string867;string868;string869;string870;string871;string872;string873;string874;string875;string876;string877;string878;string879;string880;string881;string882;string883;string884;string885;string886;string887;string888;string889;string890;string891;string892;string893;string894;string895;string896;string897;string898;string899;string900;string901;string902;string903;string904;string905;string906;string907;string908;string909;string910;string911;string912;string913;string914;string915;string916;string917;string918;string919;string920;string921;string922;string923;string924;string925;string926;string927;string928;string929;string930;string931;string932;string933;string934;string935;string936;string937;string938;string939;string940;string941;string942;string943;string944;string945;string946;string947;string948;string949;string950;string951;string952;string953;string954;string955;string956;string957;string958;string959;string960;string961;string962;string963;string964;string965;string966;string967;string968;string969;string970;string971;string972;string973;string974;string975;string976;string977;string978;string979;string980;string981;string982;string983;string984;string985;string986;string987;string988;string989;string990;string991;string992;string993;string994;string995;string996;string997;string998;string9
+a Value = 1 2 3 4 5
+a Sub = 0 1 2 3 4
+b Value = a b c d e
+b Sub = 0 1 2 3 4
+c Value = 10 20 40 80
+c Sub = 0 2 4 8
+<1> <2> <3> <4> <5>
+<10> <20> <40> <80>
argv[1] = </>
argv[1] = </>
-./new-exp.tests: line 580: ABXD: parameter unset
+./new-exp.tests: line 584: ABXD: parameter unset
diff --git a/tests/new-exp.tests b/tests/new-exp.tests
index 28170419..e48ac3df 100644
--- a/tests/new-exp.tests
+++ b/tests/new-exp.tests
@@ -569,6 +569,10 @@ ${THIS_SH} ./new-exp7.sub
${THIS_SH} ./new-exp8.sub
+# tests to check whether things like indirect expansion of a variable whose
+# value is 'anothervar[@]' stop working
+${THIS_SH} ./new-exp9.sub
+
# problems with stray CTLNUL in bash-4.0-alpha
unset a
a=/a
diff --git a/tests/new-exp2.sub b/tests/new-exp2.sub
index 5e922aac..e8377799 100644
--- a/tests/new-exp2.sub
+++ b/tests/new-exp2.sub
@@ -34,3 +34,9 @@ set +o posix
# now see what happens when we try it with a non-existant file
LINES3=$(< /tmp/redir-notthere)
echo $?
+
+# These were bugs through bash-4.2
+{ : "$({xxxxxxxxxxxxxxxxxxxx}</dev/stdin)"; } <<<'hi'
+echo ${xxxxxxxxxxxxxxxxxxxx}
+
+{ echo "$(1111111111111111111111</dev/stdin)"; } <<<'hi'
diff --git a/tests/new-exp9.sub b/tests/new-exp9.sub
new file mode 100644
index 00000000..c9d133c8
--- /dev/null
+++ b/tests/new-exp9.sub
@@ -0,0 +1,31 @@
+indirarray()
+{
+ local intermediary
+ local sub
+
+ intermediary="${1}[@]"
+ local -a leftValue=("${!intermediary}")
+
+ local -a leftSub
+ eval leftSub=(\"\${!${1}[@]}\")
+
+ echo "$1" Value = ${leftValue[@]}
+ echo "$1" Sub = ${leftSub[@]}
+}
+
+a=(1 2 3 4 5)
+b=(a b c d e)
+
+c=([0]=10 [2]=20 [4]=40 [8]=80)
+
+indirarray a
+indirarray b
+indirarray c
+
+ref=a
+tmp="$ref[@]"
+printf "<%s> " "${!tmp}"; echo # Iterate whole array.
+
+ref=c
+tmp="$ref[@]"
+printf "<%s> " "${!tmp}"; echo # Iterate whole array.
diff --git a/tests/nquote.right b/tests/nquote.right
index 267f0e7f..9d1290ef 100644
--- a/tests/nquote.right
+++ b/tests/nquote.right
@@ -38,3 +38,21 @@ argv[1] = <'A^IB'>
hello' world
hello world!
hello' world!
+' | '
+' | '
+x | x
+x | x
+' | '
+' | '
+' | '
+' | '
+' | '
+' | '
+x | x
+'
+$'\''
+'
+'abcd'
+$'\'abcd\''
+'
+1
diff --git a/tests/nquote.tests b/tests/nquote.tests
index 720c3e15..aa0a9d88 100644
--- a/tests/nquote.tests
+++ b/tests/nquote.tests
@@ -116,3 +116,4 @@ recho "${mytab:-$'\t'}"
recho "$( args $'A\tB' )"
${THIS_SH} ./nquote1.sub
+${THIS_SH} ./nquote2.sub
diff --git a/tests/nquote2.sub b/tests/nquote2.sub
new file mode 100644
index 00000000..d3325f17
--- /dev/null
+++ b/tests/nquote2.sub
@@ -0,0 +1,29 @@
+t() {
+ printf '%s | %s\n' "$1" "$2"
+ }
+ v="'" # v <- '
+
+ #--
+ t "${v/$'\''/$'\''}" "'"
+ t ${v/$'\''/$'\''} "'"
+ t "${v/$'\''/x}" "x"
+ t ${v/$'\''/x} "x"
+ t "${v/x/$'\''}" "'"
+ t ${v/x/$'\''} "'"
+ t "${v/x/$'\x5c\''}" "'"
+ t ${v/x/$'\x5c\''} "'"
+ t "${v/\'/\'}" "'"
+ t ${v/\'/\'} "'"
+ t ${v/\'/x} "x"
+
+echo "'"
+echo "$'\''"
+
+echo $'\''
+
+echo $'\'abcd\''
+echo "$'\'abcd\''"
+
+v=1
+echo ${v/1/\'}
+echo ${v/\'/2}
diff --git a/tests/posix2.tests b/tests/posix2.tests
index a186e781..d0fb46c6 100644
--- a/tests/posix2.tests
+++ b/tests/posix2.tests
@@ -146,7 +146,7 @@ fi
newtest
SQUOTE="'"
val1=$(set | sed -n 's:^SQUOTE=::p')
-if [ "$val1" != "''\\'''" ]; then
+if [ "$val1" != "\'" ]; then
testfail "variable quoting 1"
fi
diff --git a/tests/printf.right b/tests/printf.right
index 065d2f79..ae34a890 100644
--- a/tests/printf.right
+++ b/tests/printf.right
Binary files differ
diff --git a/tests/printf.tests b/tests/printf.tests
index 9644cc2b..e72f5c8b 100644
--- a/tests/printf.tests
+++ b/tests/printf.tests
@@ -314,3 +314,6 @@ ${THIS_SH} ./printf1.sub
${THIS_SH} ./printf2.sub
${THIS_SH} ./printf3.sub
+
+${THIS_SH} ./printf4.sub
+
diff --git a/tests/printf2.sub b/tests/printf2.sub
index 4cff30d3..45c48d4c 100644
--- a/tests/printf2.sub
+++ b/tests/printf2.sub
@@ -1,3 +1,4 @@
+unset LC_ALL LC_CTYPE
export LANG=en_US.UTF-8
case $(printf %d\\n \'À) in
diff --git a/tests/printf3.sub b/tests/printf3.sub
index 85a2705c..ec14fa34 100644
--- a/tests/printf3.sub
+++ b/tests/printf3.sub
@@ -5,12 +5,17 @@ SHELLSTART=$(date +%s)
SECS=1275250155
export TZ=EST5EDT
+case $SHELLSTART in
+*s*) SHELLSTART=$(perl -e 'print time') ; DATESECS=false ;; # take a shot
+*) DATESECS=true ;;
+esac
+
printf "%()T\n" $SECS
printf "%(abde)Z\n" -1
printf "%(%e-%b-%Y %T)T\n" $SECS
-printf -v v1 "%(%e-%b-%Y %T)T\n" $(date +%s)
+printf -v v1 "%(%e-%b-%Y %T)T\n" $( $DATESECS && date +%s || perl -e 'print time')
printf -v v2 "%(%e-%b-%Y %T)T\n" -1
case $v1 in
@@ -51,3 +56,7 @@ printf "%-40.50(%a %b %e %H:%M:%S %Z %Y)T date-style time\n" $SECS
# test fieldwidth, justification, precision, embedded parens
printf "%-40.50(%x (foo) %X)T date-style time\n" $SECS
+
+# problem introduced in bash-4.2 patch 5
+unset TZ
+printf '%(%Y-%m-%d %H:%M:%S %Z)T\n' >/dev/null
diff --git a/tests/printf4.sub b/tests/printf4.sub
new file mode 100644
index 00000000..2ffd9979
--- /dev/null
+++ b/tests/printf4.sub
@@ -0,0 +1,69 @@
+# Problems with padding, field widths, and `+' through bash-4.2
+
+printf "x%10.0fx\n" 123
+printf -v foo "x%10.0fx" 123
+echo "$foo"
+
+printf "x%10.0fx\n" 123
+printf -v foo "x%10.0fx" 123
+echo "$foo"
+
+printf "x%10.fx\n" 123
+printf -v foo "x%10.fx" 123
+echo "$foo"
+
+printf "x%10.2fx\n" 123
+printf -v foo "x%10.2fx" 123
+echo "$foo"
+
+printf "x%10.02fx\n" 123
+printf -v foo "x%10.02fx" 123
+echo "$foo"
+
+printf "x%-010.0fx\n" 123
+printf -v foo "x%-010.0fx" 123
+echo "$foo"
+
+printf "x%+010.0ex\n" 123
+printf -v foo "x%+010.0ex" 123
+echo "$foo"
+
+printf "x%+010.0fx\n" 123
+printf -v foo "x%+010.0fx" 123
+echo "$foo"
+
+printf "x%+010.0gx\n" 123
+printf -v foo "x%+010.0gx" 123
+echo "$foo"
+
+printf "x%+010.0dx\n" 123
+printf -v foo "x%+010.0dx" 123
+echo "$foo"
+
+printf "x%+010.0ldx\n" 123
+printf -v foo "x%+010.0ldx" 123
+echo "$foo"
+
+printf "x%+010.0xx\n" 123
+printf -v foo "x%+010.0xx" 123
+echo "$foo"
+
+printf "x%-+10.0fx\n" 123
+printf -v foo "x%-+10.0fx" 123
+echo "$foo"
+
+printf "x%-+10.0dx\n" 123
+printf -v foo "x%-+10.0dx" 123
+echo "$foo"
+
+printf "%f\n" -123
+printf -v foo "%f" -123
+echo "$foo"
+
+printf "x%+10.0fx\n" 123
+printf -v foo "x%+10.0fx" 123
+echo "$foo"
+
+printf "x%+10.0dx\n" 123
+printf -v foo "x%+10.0dx" 123
+echo "$foo"
diff --git a/tests/quote.right b/tests/quote.right
index 424d1a04..00b55c62 100644
--- a/tests/quote.right
+++ b/tests/quote.right
@@ -66,3 +66,17 @@ argv[2] = <ab>
${
argv[1] = <(")>
argv[1] = <(")>
+'weferfds'\''dsfsdf'
+'weferfdsdsfsdf'
+'weferfds'\''dsfsdf'
+'weferfds'\\dsfsdf'
+testdd ddtest
+testdd '\''ddtest
+testdddding
+testdddding
+test'ing
+test'ing
+test'string
+a'b'c
+foo b c baz
+foo 'bar baz
diff --git a/tests/quote.tests b/tests/quote.tests
index 46edea75..0c55293b 100644
--- a/tests/quote.tests
+++ b/tests/quote.tests
@@ -109,3 +109,4 @@ recho `echo "(\\")"`
# ultimate workaround
recho `echo "(\")"`
+${THIS_SH} ./quote1.sub
diff --git a/tests/quote1.sub b/tests/quote1.sub
new file mode 100644
index 00000000..c83e64ac
--- /dev/null
+++ b/tests/quote1.sub
@@ -0,0 +1,49 @@
+# inconsistency with quoted pattern substitution patterns through bash-4.2
+# fixed in a ksh93-compatible (and Posix-compatible, in general) way
+# NOT backwards compatible
+
+test="weferfds'dsfsdf"
+
+# why does this work, this list was born of frustration, I tried
+# everything I could think of.
+echo \'${test//"'"/\'\\\'\'}\'" "
+
+#but none of the following
+
+echo "'${test//"'"/}'"
+
+echo "'${test//"'"/"'\\''"}'"
+
+echo "'${test//"'"/\'\\'\'}'"
+
+#echo "'${test//'/}'" # hangs waiting for '
+#echo "'${test//"'"/'\\''}'" # hangs waiting for '
+
+unset test
+test=teststrtest
+echo "${test//str/"dd dd"}"
+echo ${test//str/"dd '\''dd"}
+
+unset test
+test=teststring
+
+echo "${test//str/"dddd"}"
+
+echo ${test//str/"dddd"}
+
+echo ${test//str/"'"}
+
+echo "${test//str/"'"}"
+
+#echo "${test//str/'}" # hangs
+
+test=test\'string
+echo "${test//"'"/"'"}"
+
+x="a'b'c"; echo "${x//\'/\'}"
+
+printf '%s\n' "foo ${IFS+"b c"} baz"
+
+# this is where the default behavior differs from posix
+set -o posix
+echo "foo ${IFS+'bar} baz"
diff --git a/tests/read.right b/tests/read.right
index d9632a8b..73cb7042 100644
--- a/tests/read.right
+++ b/tests/read.right
@@ -44,6 +44,7 @@ abcde
./read3.sub: line 4: read: -1: invalid number
abc
ab
+abc
#
while read -u 3 var
do
diff --git a/tests/read3.sub b/tests/read3.sub
index 22088cbf..af41e3f2 100644
--- a/tests/read3.sub
+++ b/tests/read3.sub
@@ -15,5 +15,10 @@ echo ab | {
echo $xyz
}
+echo abc | {
+ read -N 4 -d$'\n' foo
+ echo $foo
+}
+
read -n 1 < $0
echo "$REPLY"
diff --git a/tests/redir.right b/tests/redir.right
index f816c63b..f461e655 100644
--- a/tests/redir.right
+++ b/tests/redir.right
@@ -130,7 +130,7 @@ to stdout
logfunc is a function
logfunc ()
{
- echo "$@" &>>$TMPDIR/log
+ echo "$@" &>> $TMPDIR/log
}
foo
bix is a function
@@ -139,3 +139,4 @@ bix ()
echo foo 2>&1 | cat
}
foo
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
diff --git a/tests/redir.tests b/tests/redir.tests
index 37759b5a..c2e48663 100644
--- a/tests/redir.tests
+++ b/tests/redir.tests
@@ -187,3 +187,5 @@ exec 2>&9
exec 9>&-
${THIS_SH} ./redir9.sub
+
+${THIS_SH} ./redir10.sub
diff --git a/tests/redir10.sub b/tests/redir10.sub
new file mode 100644
index 00000000..27c48e82
--- /dev/null
+++ b/tests/redir10.sub
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Out of file descriptors, because it forgets to close redirection. Only
+# happens in a shell function. Problem through bash-4.2.
+
+ulimit -n 128
+
+bug()
+{
+c=`ulimit -n`
+let c+=100
+while let c--
+do
+ while read -ru3 x
+ do
+ echo -n :
+ done 3< <(echo x)
+
+done
+}
+
+bug
+echo
+
+exit 0
diff --git a/tests/rhs-exp.right b/tests/rhs-exp.right
index c5dca428..4ce6743e 100644
--- a/tests/rhs-exp.right
+++ b/tests/rhs-exp.right
@@ -72,3 +72,34 @@ a?b
ab
a/b
ab
+argv[1] = <bc>
+argv[1] = <bc>
+argv[1] = <ab>
+argv[1] = <ab>
+argv[1] = <bc>
+argv[1] = <bc>
+argv[1] = <c>
+argv[1] = <ab>
+argv[1] = <ab>
+argv[1] = <aacc>
+argv[1] = <aacc>
+argv[1] = <aabbcc>
+argv[1] = <aabbcc>
+argv[1] = <Oenophile>
+argv[1] = <OEnOphIlE>
+argv[1] = <>
+argv[1] = <abc>
+argv[1] = <''>
+argv[1] = <>
+good 1
+good 2
+good 3
+good 4
+good 5
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
diff --git a/tests/rhs-exp.tests b/tests/rhs-exp.tests
index d457198d..a28d7f03 100644
--- a/tests/rhs-exp.tests
+++ b/tests/rhs-exp.tests
@@ -47,3 +47,5 @@ var="a?b" ; echo "${var//\?/}"
var="a/b" ; echo "${var//\\//}"
var="a/b" ; echo "${var//\//}"
+
+${THIS_SH} ./rhs-exp1.sub
diff --git a/tests/rhs-exp1.sub b/tests/rhs-exp1.sub
new file mode 100644
index 00000000..5631ea50
--- /dev/null
+++ b/tests/rhs-exp1.sub
@@ -0,0 +1,103 @@
+# fixes for bugs in bash-4.2 regarding empty strings in expand_string_for_rhs
+
+f=abc
+recho ${f##""a}
+recho ${f##"$v"a}
+
+recho ${f%%""c}
+recho ${f%%"$v"c}
+
+recho ${f//""a}
+recho ${f//"$v"a}
+
+recho ${f/""a""b/}
+recho ${f/""c/}
+recho ${f/"$v"c/}
+
+unset foo empty
+foo=aabbcc
+
+recho ${foo/bb/}
+recho ${foo/bb/$empty}
+
+recho ${foo/}
+recho ${empty/}
+
+recho ${foo/ }
+recho ${empty/ }
+unset foo empty
+
+S2=oenophile
+
+recho ${S2^"$v"[aeiou]}
+recho ${S2^^"$v"[aeiou]}
+
+recho ${foo:-""}
+recho ${foo:-""abc}
+
+recho "${foo:-''}"
+recho "${foo:-}"
+
+if [[ $var == "" ]]; then
+ echo good 1
+fi
+
+if [[ "$var"X == ""X ]]; then
+ echo good 2
+fi
+
+if [ "$var"X == ""X"" ]; then
+ echo good 3
+fi
+
+if [ X"" == X ]; then
+ echo good 4
+fi
+
+if [[ X"" == X ]]; then
+ echo good 5
+fi
+
+case x"" in
+ x) echo 'ok 1'
+ ;;
+ x??) echo 'this would be really odd'
+ ;;
+ x?) echo 'does this prove anything?'
+ echo x""x
+ ;;
+ *) echo 'no match'
+ ;;
+esac
+
+if [[ x"" == x ]]; then
+ echo ok 2
+fi
+
+if [[ x"" == x"" ]]; then
+ echo ok 3
+else
+ echo bad 3
+fi
+
+case x"" in
+x"") echo ok 4 ;;
+*) echo bad 4;;
+esac
+
+if [[ x"" == x"" ]]; then
+ echo ok 5
+else
+ echo bad 5
+fi
+
+case x"" in
+"x") echo ok 6 ;;
+*) echo bad 6;;
+esac
+
+case x"" in
+"x") echo CTLNUL 7 ;;
+x) echo ok 7 ;;
+*) echo bad 7 ;;
+esac
diff --git a/tests/run-heredoc b/tests/run-heredoc
index c4e3168c..456453a7 100644
--- a/tests/run-heredoc
+++ b/tests/run-heredoc
@@ -1,2 +1,6 @@
+echo "warning: UNIX versions number signals and schedule processes differently." >&2
+echo "warning: If output differing only in line numbers is produced, please" >&2
+echo "warning: do not consider this a test failure." >&2
+
${THIS_SH} ./heredoc.tests > /tmp/xx 2>&1
diff /tmp/xx heredoc.right && rm -f /tmp/xx
diff --git a/tests/run-nameref b/tests/run-nameref
new file mode 100644
index 00000000..40f00d52
--- /dev/null
+++ b/tests/run-nameref
@@ -0,0 +1,4 @@
+echo "warning: some of these tests will fail if arrays have not" >&2
+echo "warning: been compiled into the shell" >&2
+${THIS_SH} ./nameref.tests > /tmp/xx 2>&1
+diff /tmp/xx nameref.right && rm -f /tmp/xx
diff --git a/tests/run-printf b/tests/run-printf
index 4555c626..7b152a12 100644
--- a/tests/run-printf
+++ b/tests/run-printf
@@ -1,5 +1,7 @@
# See whether or not we can use `diff -a'
-( diff -a ./printf.tests ./printf.tests >/dev/null 2>&1 ) && AFLAG=-a
+#( diff -a ./printf.tests ./printf.tests >/dev/null 2>&1 ) && AFLAG=-a
-${THIS_SH} ./printf.tests > /tmp/xx 2>&1
-diff $AFLAG /tmp/xx printf.right && rm -f /tmp/xx
+# use cat -v (and assume it's there) to make control chars visible
+${THIS_SH} ./printf.tests 2>&1 | cat -v > /tmp/xx
+#diff $AFLAG /tmp/xx printf.right && rm -f /tmp/xx
+diff /tmp/xx printf.right && rm -f /tmp/xx
diff --git a/tests/set-e.right b/tests/set-e.right
index 85a59860..e2a9f2c4 100644
--- a/tests/set-e.right
+++ b/tests/set-e.right
@@ -65,3 +65,8 @@ after failure 3
true || false no exit
false || true no exit
false && false no exit
+A:
+B:
+ehB
+C:
+D:
diff --git a/tests/set-e.tests b/tests/set-e.tests
index 8c0cfcf4..d38edf6c 100644
--- a/tests/set-e.tests
+++ b/tests/set-e.tests
@@ -108,3 +108,4 @@ set +e
${THIS_SH} ./set-e1.sub
${THIS_SH} ./set-e2.sub
+${THIS_SH} ./set-e3.sub
diff --git a/tests/set-e3.sub b/tests/set-e3.sub
new file mode 100644
index 00000000..db176b1f
--- /dev/null
+++ b/tests/set-e3.sub
@@ -0,0 +1,10 @@
+foo()
+{
+ echo A:
+ . ./set-e3a.sub
+ echo D:
+}
+
+# should run all the way through; foo being called in a context where set -e
+# is ignored means that that condition persists through sourcing the file
+foo && true
diff --git a/tests/set-e3a.sub b/tests/set-e3a.sub
new file mode 100644
index 00000000..5d008e74
--- /dev/null
+++ b/tests/set-e3a.sub
@@ -0,0 +1,7 @@
+echo B:
+
+set -e
+echo $-
+false
+
+echo C:
diff --git a/tests/shopt.right b/tests/shopt.right
index 0d3c08ce..0a7edfb1 100644
--- a/tests/shopt.right
+++ b/tests/shopt.right
@@ -12,6 +12,8 @@ shopt -u compat31
shopt -u compat32
shopt -u compat40
shopt -u compat41
+shopt -u compat42
+shopt -s complete_fullquote
shopt -u direxpand
shopt -u dirspell
shopt -u dotglob
@@ -23,6 +25,7 @@ shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u globstar
+shopt -u globasciiranges
shopt -u gnu_errfmt
shopt -u histappend
shopt -u histreedit
@@ -51,6 +54,7 @@ shopt -s sourcepath
--
shopt -s cdspell
shopt -s cmdhist
+shopt -s complete_fullquote
shopt -s expand_aliases
shopt -s extquote
shopt -s force_fignore
@@ -69,6 +73,7 @@ shopt -u compat31
shopt -u compat32
shopt -u compat40
shopt -u compat41
+shopt -u compat42
shopt -u direxpand
shopt -u dirspell
shopt -u dotglob
@@ -77,6 +82,7 @@ shopt -u extdebug
shopt -u extglob
shopt -u failglob
shopt -u globstar
+shopt -u globasciiranges
shopt -u gnu_errfmt
shopt -u histappend
shopt -u histreedit
@@ -103,6 +109,7 @@ compat31 off
compat32 off
compat40 off
compat41 off
+compat42 off
direxpand off
dirspell off
dotglob off
@@ -111,6 +118,7 @@ extdebug off
extglob off
failglob off
globstar off
+globasciiranges off
gnu_errfmt off
histappend off
histreedit off
diff --git a/tests/source7.sub b/tests/source7.sub
new file mode 100644
index 00000000..8ca0aeff
--- /dev/null
+++ b/tests/source7.sub
@@ -0,0 +1,40 @@
+shopt -s expand_aliases
+
+: ${TMPDIR:=/var/tmp}
+
+echo '((echo abc; echo def;); echo ghi)' > $TMPDIR/x28-$$
+. $TMPDIR/x28-$$
+rm -f $TMPDIR/x28-$$
+
+echo after
+
+TMPFILE=$TMPDIR/x29-$$
+
+echo "#! ${THIS_SH}" >$TMPFILE
+cat >> $TMPFILE << \EOF
+
+(echo -n "$1 "; echo subshell)
+EOF
+chmod 755 $TMPFILE
+
+alias foo1='$TMPFILE one.1; source $TMPFILE two.1; source $TMPFILE three.1; $TMPFILE four.1'
+alias foo2='$TMPFILE one.2;
+source $TMPFILE two.2;
+source $TMPFILE three.2;
+$TMPFILE four.2;
+'
+
+foo1
+foo2
+
+echo x29 - done
+rm -f $TMPFILE
+
+# this is also treated similarly to an alias expansion internally
+((echo abc; echo def;); echo ghi)
+
+if (((4+4) + (4 + 7))); then
+ echo ok
+fi
+
+(()) # make sure the null expression works OK
diff --git a/tests/tilde.right b/tests/tilde.right
index fe58ae34..49549b40 100644
--- a/tests/tilde.right
+++ b/tests/tilde.right
@@ -19,6 +19,7 @@ abcd:~chet
/bin:/usr/bin:.:/usr/xyz/bin
/bin:/usr/bin:.:~/bin
/bin:/usr/bin:.:~/bin
+\~
ok 1
ok 2
ok 3
diff --git a/tests/tilde.tests b/tests/tilde.tests
index 8b2bdb8b..50f19e98 100644
--- a/tests/tilde.tests
+++ b/tests/tilde.tests
@@ -48,6 +48,8 @@ echo "$PPATH"
declare -x PPATH="$XPATH:~/bin"
echo "$PPATH"
+printf "%q\n" '~'
+
# more tests of tilde expansion when executing case commands
case ~ in
$HOME) echo ok 1;;
diff --git a/tests/trap.right b/tests/trap.right
index d1879a42..b3615646 100644
--- a/tests/trap.right
+++ b/tests/trap.right
@@ -75,6 +75,24 @@ command substitution
trap: 8
+[9] echo 4
4
+exit subshell 1
+current shell
+exit subshell 2
+current shell
+current shell
+current shell
+outside 1
+outside 2
+outside 3
+outside 4
+sleep 2
+wait $!
+exit
+in trap EXIT
+sleep 2
+wait $!
+exit
+in trap EXIT
caught a child death
caught a child death
caught a child death
diff --git a/tests/trap.tests b/tests/trap.tests
index e9e10cc1..5d8b06c0 100644
--- a/tests/trap.tests
+++ b/tests/trap.tests
@@ -68,6 +68,11 @@ trap '' USR2
${THIS_SH} ./trap3.sub
+${THIS_SH} ./trap4.sub
+
+# This doesn't work right on all Unix versions
+#${THIS_SH} ./trap5.sub
+
#
# show that setting a trap on SIGCHLD is not disastrous.
#
diff --git a/tests/trap4.sub b/tests/trap4.sub
new file mode 100644
index 00000000..ab5ca3e3
--- /dev/null
+++ b/tests/trap4.sub
@@ -0,0 +1,42 @@
+# make sure subshells at the end of pipelines run any exit traps they set
+
+: | { trap 'echo exit subshell 1' EXIT; exit; }; echo current shell
+
+: | { trap 'echo exit subshell 2' EXIT; exit; }; echo current shell
+
+: | { trap 'echo exit subshell 3' EXIT; exit; } | : ; echo current shell
+
+: | { trap 'echo exit subshell 4' EXIT; exit; } | : ; echo current shell
+
+trap 'echo inherited exit trap' EXIT
+: | { exit; } ; echo outside 1
+: | ( exit; ) ; echo outside 2
+: | { exit; } | : ; echo outside 3
+: | ( exit; ) | : ; echo outside 4
+
+trap - EXIT
+
+# make sure group commands that are not at the beginning or end of pipelines
+# run an EXIT trap, with and without the exit builtin
+echo ignored |
+{
+ trap 'echo "in trap EXIT">&2' EXIT
+ sleep 4 &
+ echo 'sleep 2'>&2
+ sleep 2
+ echo 'wait $!'>&2
+ wait $!
+ echo 'exit'>&2
+ exit
+} | cat
+
+echo ignored |
+{
+ trap 'echo "in trap EXIT">&2' EXIT
+ sleep 4 &
+ echo 'sleep 2'>&2
+ sleep 2
+ echo 'wait $!'>&2
+ wait $!
+ echo 'exit'>&2
+} | cat
diff --git a/tests/trap5.sub b/tests/trap5.sub
new file mode 100644
index 00000000..7f3380b4
--- /dev/null
+++ b/tests/trap5.sub
@@ -0,0 +1,18 @@
+# make sure process substitution runs the exit trap
+[[ -n $(< <(trap "cat /dev/fd/0" EXIT)) ]] <<<works && echo works || echo "fail :("
+
+read foo < <(trap "echo bar" EXIT)
+echo $foo
+
+cat <(trap "echo bar" EXIT)
+
+trap "echo bar" EXIT #should proc subst inherit this?
+cat <(echo foo ; exit 0;)
+
+trap - 0
+trap
+
+cat <(echo foo; trap "echo bar" EXIT)
+
+trap "echo bar" EXIT #should proc subst inherit this?
+cat <(echo foo)
diff --git a/tests/type.right b/tests/type.right
index 6dbce643..3f7d26e2 100644
--- a/tests/type.right
+++ b/tests/type.right
@@ -96,3 +96,40 @@ EOF
a:file
b:file
c:file
+bb is a function
+bb ()
+{
+ ( cat <<EOF
+foo
+bar
+EOF
+ )
+ echo after subshell
+}
+mkcoprocs is a function
+mkcoprocs ()
+{
+ coproc a {
+ cat <<EOF1
+producer 1
+EOF1
+
+ }
+ coproc b {
+ cat <<EOF2
+producer 2
+EOF2
+
+ }
+ echo "coprocs created"
+}
+mkcoprocs is a function
+mkcoprocs ()
+{
+ coproc COPROC ( b cat <<EOF
+heredoc
+body
+EOF
+ )
+ echo "coprocs created"
+}
diff --git a/tests/type.tests b/tests/type.tests
index 2df4efd7..1c03e018 100644
--- a/tests/type.tests
+++ b/tests/type.tests
@@ -93,3 +93,5 @@ ${THIS_SH} type1.sub
${THIS_SH} type2.sub
${THIS_SH} type3.sub
+
+${THIS_SH} type4.sub
diff --git a/tests/type4.sub b/tests/type4.sub
new file mode 100644
index 00000000..ed5bcf6a
--- /dev/null
+++ b/tests/type4.sub
@@ -0,0 +1,43 @@
+bb()
+{
+ (
+ cat << EOF
+foo
+bar
+EOF
+ )
+ echo after subshell
+}
+
+type bb
+
+
+mkcoprocs()
+{
+ coproc a { cat <<EOF1
+producer 1
+EOF1
+}
+coproc b { cat << EOF2
+producer 2
+EOF2
+}
+
+echo "coprocs created"
+}
+
+type mkcoprocs
+
+unset -f mkcoprocs
+
+mkcoprocs()
+{
+ coproc ( b cat << EOF
+heredoc
+body
+EOF
+ )
+echo "coprocs created"
+}
+
+type mkcoprocs
diff --git a/tests/unicode1.sub b/tests/unicode1.sub
new file mode 100644
index 00000000..baa92eaa
--- /dev/null
+++ b/tests/unicode1.sub
@@ -0,0 +1,583 @@
+unset LC_ALL
+
+ErrorCnt=0
+TestCnt=0
+
+ function check_valid_var_name {
+ case "${1:?Missing Variable Name}" in
+ [!a-zA-Z_]* | *[!a-zA-Z_0-9]* ) return 3;;
+ esac
+ }
+ # get_array_element VariableName ArrayName ArrayElement
+ function get_array_element {
+ check_valid_var_name "${1:?Missing Variable Name}" || return $?
+ check_valid_var_name "${2:?Missing Array Name}" || return $?
+ eval "${1}"'="${'"${2}"'["${3:?Missing Array Index}"]}"'
+ }
+ # unset_array_element VarName ArrayName
+ function get_array_element_cnt {
+ check_valid_var_name "${1:?Missing Variable Name}" || return $?
+ check_valid_var_name "${2:?Missing Array Name}" || return $?
+ eval "${1}"'="${#'"${2}"'[@]}"'
+ }
+
+
+function TestCodePage {
+ local TargetCharset="${1:?Missing Test charset}"
+ local EChar RChar TCnt
+ get_array_element_cnt TCnt "${2:?Missing Array Name}"
+ for (( x=1 ; x<${TCnt} ; x++ )); do
+ get_array_element EChar "${2}" ${x}
+ if [ -n "${EChar}" ]; then
+ let TestCnt+=1
+ printf -v UVal '\\U%08x' "${x}"
+ LC_CTYPE=${TargetCharset} printf -v RChar "${UVal}" 2>/dev/null
+ if [ "${EChar}" != "${RChar}" ]; then
+ let ErrorCnt+=1
+ printf "${TargetCharset}: Error Encoding U+%08X to ${TL} [ \"%q\" != \"%q\" ]\n" "${x}" "${EChar}" "${RChar}"
+ fi
+ fi
+ done
+}
+
+
+#for ((x=1;x<255;x++)); do printf ' [0x%04x]=$'\''\%03o'\' $x $x ; [ $(($x%5)) = 0 ] && echo; done
+fr_FR_ISO_8859_1=(
+ [0x0001]=$'\001' [0x0002]=$'\002' [0x0003]=$'\003' [0x0004]=$'\004' [0x0005]=$'\005'
+ [0x0006]=$'\006' [0x0007]=$'\007' [0x0008]=$'\010' [0x0009]=$'\011' [0x000a]=$'\012'
+ [0x000b]=$'\013' [0x000c]=$'\014' [0x000d]=$'\015' [0x000e]=$'\016' [0x000f]=$'\017'
+ [0x0010]=$'\020' [0x0011]=$'\021' [0x0012]=$'\022' [0x0013]=$'\023' [0x0014]=$'\024'
+ [0x0015]=$'\025' [0x0016]=$'\026' [0x0017]=$'\027' [0x0018]=$'\030' [0x0019]=$'\031'
+ [0x001a]=$'\032' [0x001b]=$'\033' [0x001c]=$'\034' [0x001d]=$'\035' [0x001e]=$'\036'
+ [0x001f]=$'\037' [0x0020]=$'\040' [0x0021]=$'\041' [0x0022]=$'\042' [0x0023]=$'\043'
+ [0x0024]=$'\044' [0x0025]=$'\045' [0x0026]=$'\046' [0x0027]=$'\047' [0x0028]=$'\050'
+ [0x0029]=$'\051' [0x002a]=$'\052' [0x002b]=$'\053' [0x002c]=$'\054' [0x002d]=$'\055'
+ [0x002e]=$'\056' [0x002f]=$'\057' [0x0030]=$'\060' [0x0031]=$'\061' [0x0032]=$'\062'
+ [0x0033]=$'\063' [0x0034]=$'\064' [0x0035]=$'\065' [0x0036]=$'\066' [0x0037]=$'\067'
+ [0x0038]=$'\070' [0x0039]=$'\071' [0x003a]=$'\072' [0x003b]=$'\073' [0x003c]=$'\074'
+ [0x003d]=$'\075' [0x003e]=$'\076' [0x003f]=$'\077' [0x0040]=$'\100' [0x0041]=$'\101'
+ [0x0042]=$'\102' [0x0043]=$'\103' [0x0044]=$'\104' [0x0045]=$'\105' [0x0046]=$'\106'
+ [0x0047]=$'\107' [0x0048]=$'\110' [0x0049]=$'\111' [0x004a]=$'\112' [0x004b]=$'\113'
+ [0x004c]=$'\114' [0x004d]=$'\115' [0x004e]=$'\116' [0x004f]=$'\117' [0x0050]=$'\120'
+ [0x0051]=$'\121' [0x0052]=$'\122' [0x0053]=$'\123' [0x0054]=$'\124' [0x0055]=$'\125'
+ [0x0056]=$'\126' [0x0057]=$'\127' [0x0058]=$'\130' [0x0059]=$'\131' [0x005a]=$'\132'
+ [0x005b]=$'\133' [0x005c]=$'\134' [0x005d]=$'\135' [0x005e]=$'\136' [0x005f]=$'\137'
+ [0x0060]=$'\140' [0x0061]=$'\141' [0x0062]=$'\142' [0x0063]=$'\143' [0x0064]=$'\144'
+ [0x0065]=$'\145' [0x0066]=$'\146' [0x0067]=$'\147' [0x0068]=$'\150' [0x0069]=$'\151'
+ [0x006a]=$'\152' [0x006b]=$'\153' [0x006c]=$'\154' [0x006d]=$'\155' [0x006e]=$'\156'
+ [0x006f]=$'\157' [0x0070]=$'\160' [0x0071]=$'\161' [0x0072]=$'\162' [0x0073]=$'\163'
+ [0x0074]=$'\164' [0x0075]=$'\165' [0x0076]=$'\166' [0x0077]=$'\167' [0x0078]=$'\170'
+ [0x0079]=$'\171' [0x007a]=$'\172' [0x007b]=$'\173' [0x007c]=$'\174' [0x007d]=$'\175'
+ [0x007e]=$'\176' [0x007f]=$'\177' [0x0080]=$'\200' [0x0081]=$'\201' [0x0082]=$'\202'
+ [0x0083]=$'\203' [0x0084]=$'\204' [0x0085]=$'\205' [0x0086]=$'\206' [0x0087]=$'\207'
+ [0x0088]=$'\210' [0x0089]=$'\211' [0x008a]=$'\212' [0x008b]=$'\213' [0x008c]=$'\214'
+ [0x008d]=$'\215' [0x008e]=$'\216' [0x008f]=$'\217' [0x0090]=$'\220' [0x0091]=$'\221'
+ [0x0092]=$'\222' [0x0093]=$'\223' [0x0094]=$'\224' [0x0095]=$'\225' [0x0096]=$'\226'
+ [0x0097]=$'\227' [0x0098]=$'\230' [0x0099]=$'\231' [0x009a]=$'\232' [0x009b]=$'\233'
+ [0x009c]=$'\234' [0x009d]=$'\235' [0x009e]=$'\236' [0x009f]=$'\237' [0x00a0]=$'\240'
+ [0x00a1]=$'\241' [0x00a2]=$'\242' [0x00a3]=$'\243' [0x00a4]=$'\244' [0x00a5]=$'\245'
+ [0x00a6]=$'\246' [0x00a7]=$'\247' [0x00a8]=$'\250' [0x00a9]=$'\251' [0x00aa]=$'\252'
+ [0x00ab]=$'\253' [0x00ac]=$'\254' [0x00ad]=$'\255' [0x00ae]=$'\256' [0x00af]=$'\257'
+ [0x00b0]=$'\260' [0x00b1]=$'\261' [0x00b2]=$'\262' [0x00b3]=$'\263' [0x00b4]=$'\264'
+ [0x00b5]=$'\265' [0x00b6]=$'\266' [0x00b7]=$'\267' [0x00b8]=$'\270' [0x00b9]=$'\271'
+ [0x00ba]=$'\272' [0x00bb]=$'\273' [0x00bc]=$'\274' [0x00bd]=$'\275' [0x00be]=$'\276'
+ [0x00bf]=$'\277' [0x00c0]=$'\300' [0x00c1]=$'\301' [0x00c2]=$'\302' [0x00c3]=$'\303'
+ [0x00c4]=$'\304' [0x00c5]=$'\305' [0x00c6]=$'\306' [0x00c7]=$'\307' [0x00c8]=$'\310'
+ [0x00c9]=$'\311' [0x00ca]=$'\312' [0x00cb]=$'\313' [0x00cc]=$'\314' [0x00cd]=$'\315'
+ [0x00ce]=$'\316' [0x00cf]=$'\317' [0x00d0]=$'\320' [0x00d1]=$'\321' [0x00d2]=$'\322'
+ [0x00d3]=$'\323' [0x00d4]=$'\324' [0x00d5]=$'\325' [0x00d6]=$'\326' [0x00d7]=$'\327'
+ [0x00d8]=$'\330' [0x00d9]=$'\331' [0x00da]=$'\332' [0x00db]=$'\333' [0x00dc]=$'\334'
+ [0x00dd]=$'\335' [0x00de]=$'\336' [0x00df]=$'\337' [0x00e0]=$'\340' [0x00e1]=$'\341'
+ [0x00e2]=$'\342' [0x00e3]=$'\343' [0x00e4]=$'\344' [0x00e5]=$'\345' [0x00e6]=$'\346'
+ [0x00e7]=$'\347' [0x00e8]=$'\350' [0x00e9]=$'\351' [0x00ea]=$'\352' [0x00eb]=$'\353'
+ [0x00ec]=$'\354' [0x00ed]=$'\355' [0x00ee]=$'\356' [0x00ef]=$'\357' [0x00f0]=$'\360'
+ [0x00f1]=$'\361' [0x00f2]=$'\362' [0x00f3]=$'\363' [0x00f4]=$'\364' [0x00f5]=$'\365'
+ [0x00f6]=$'\366' [0x00f7]=$'\367' [0x00f8]=$'\370' [0x00f9]=$'\371' [0x00fa]=$'\372'
+ [0x00fb]=$'\373' [0x00fc]=$'\374' [0x00fd]=$'\375' [0x00fe]=$'\376'
+)
+
+TestCodePage fr_FR.ISO8859-1 fr_FR_ISO_8859_1
+
+zh_TW_BIG5=(
+ [0x00f6]=$'\366' [0x00f7]=$'\367' [0x00f8]=$'\370' [0x00f9]=$'\371' [0x00fa]=$'\372'
+ [0x00fb]=$'\373' [0x00fc]=$'\374' [0x00fd]=$'\375' [0x00fe]=$'\376'
+)
+TestCodePage zh_TW.BIG5 zh_TW_BIG5
+
+jp_JP_SHIFT_JIS=(
+ [0x0001]=$'\x01' # START OF HEADING
+ [0x0002]=$'\x02' # START OF TEXT
+ [0x0003]=$'\x03' # END OF TEXT
+ [0x0004]=$'\x04' # END OF TRANSMISSION
+ [0x0005]=$'\x05' # ENQUIRY
+ [0x0006]=$'\x06' # ACKNOWLEDGE
+ [0x0007]=$'\x07' # BELL
+ [0x0008]=$'\x08' # BACKSPACE
+ [0x0009]=$'\x09' # HORIZONTAL TABULATION
+ [0x000A]=$'\x0A' # LINE FEED
+ [0x000B]=$'\x0B' # VERTICAL TABULATION
+ [0x000C]=$'\x0C' # FORM FEED
+ [0x000D]=$'\x0D' # CARRIAGE RETURN
+ [0x000E]=$'\x0E' # SHIFT OUT
+ [0x000F]=$'\x0F' # SHIFT IN
+ [0x0010]=$'\x10' # DATA LINK ESCAPE
+ [0x0011]=$'\x11' # DEVICE CONTROL ONE
+ [0x0012]=$'\x12' # DEVICE CONTROL TWO
+ [0x0013]=$'\x13' # DEVICE CONTROL THREE
+ [0x0014]=$'\x14' # DEVICE CONTROL FOUR
+ [0x0015]=$'\x15' # NEGATIVE ACKNOWLEDGE
+ [0x0016]=$'\x16' # SYNCHRONOUS IDLE
+ [0x0017]=$'\x17' # END OF TRANSMISSION BLOCK
+ [0x0018]=$'\x18' # CANCEL
+ [0x0019]=$'\x19' # END OF MEDIUM
+ [0x001A]=$'\x1A' # SUBSTITUTE
+ [0x001B]=$'\x1B' # ESCAPE
+ [0x001C]=$'\x1C' # FILE SEPARATOR
+ [0x001D]=$'\x1D' # GROUP SEPARATOR
+ [0x001E]=$'\x1E' # RECORD SEPARATOR
+ [0x001F]=$'\x1F' # UNIT SEPARATOR
+ [0x0020]=$'\x20' # SPACE
+ [0x0021]=$'\x21' # EXCLAMATION MARK
+ [0x0022]=$'\x22' # QUOTATION MARK
+ [0x0023]=$'\x23' # NUMBER SIGN
+ [0x0024]=$'\x24' # DOLLAR SIGN
+ [0x0025]=$'\x25' # PERCENT SIGN
+ [0x0026]=$'\x26' # AMPERSAND
+ [0x0027]=$'\x27' # APOSTROPHE
+ [0x0028]=$'\x28' # LEFT PARENTHESIS
+ [0x0029]=$'\x29' # RIGHT PARENTHESIS
+ [0x002A]=$'\x2A' # ASTERISK
+ [0x002B]=$'\x2B' # PLUS SIGN
+ [0x002C]=$'\x2C' # COMMA
+ [0x002D]=$'\x2D' # HYPHEN-MINUS
+ [0x002E]=$'\x2E' # FULL STOP
+ [0x002F]=$'\x2F' # SOLIDUS
+ [0x0030]=$'\x30' # DIGIT ZERO
+ [0x0031]=$'\x31' # DIGIT ONE
+ [0x0032]=$'\x32' # DIGIT TWO
+ [0x0033]=$'\x33' # DIGIT THREE
+ [0x0034]=$'\x34' # DIGIT FOUR
+ [0x0035]=$'\x35' # DIGIT FIVE
+ [0x0036]=$'\x36' # DIGIT SIX
+ [0x0037]=$'\x37' # DIGIT SEVEN
+ [0x0038]=$'\x38' # DIGIT EIGHT
+ [0x0039]=$'\x39' # DIGIT NINE
+ [0x003A]=$'\x3A' # COLON
+ [0x003B]=$'\x3B' # SEMICOLON
+ [0x003C]=$'\x3C' # LESS-THAN SIGN
+ [0x003D]=$'\x3D' # EQUALS SIGN
+ [0x003E]=$'\x3E' # GREATER-THAN SIGN
+ [0x003F]=$'\x3F' # QUESTION MARK
+ [0x0040]=$'\x40' # COMMERCIAL AT
+ [0x0041]=$'\x41' # LATIN CAPITAL LETTER A
+ [0x0042]=$'\x42' # LATIN CAPITAL LETTER B
+ [0x0043]=$'\x43' # LATIN CAPITAL LETTER C
+ [0x0044]=$'\x44' # LATIN CAPITAL LETTER D
+ [0x0045]=$'\x45' # LATIN CAPITAL LETTER E
+ [0x0046]=$'\x46' # LATIN CAPITAL LETTER F
+ [0x0047]=$'\x47' # LATIN CAPITAL LETTER G
+ [0x0048]=$'\x48' # LATIN CAPITAL LETTER H
+ [0x0049]=$'\x49' # LATIN CAPITAL LETTER I
+ [0x004A]=$'\x4A' # LATIN CAPITAL LETTER J
+ [0x004B]=$'\x4B' # LATIN CAPITAL LETTER K
+ [0x004C]=$'\x4C' # LATIN CAPITAL LETTER L
+ [0x004D]=$'\x4D' # LATIN CAPITAL LETTER M
+ [0x004E]=$'\x4E' # LATIN CAPITAL LETTER N
+ [0x004F]=$'\x4F' # LATIN CAPITAL LETTER O
+ [0x0050]=$'\x50' # LATIN CAPITAL LETTER P
+ [0x0051]=$'\x51' # LATIN CAPITAL LETTER Q
+ [0x0052]=$'\x52' # LATIN CAPITAL LETTER R
+ [0x0053]=$'\x53' # LATIN CAPITAL LETTER S
+ [0x0054]=$'\x54' # LATIN CAPITAL LETTER T
+ [0x0055]=$'\x55' # LATIN CAPITAL LETTER U
+ [0x0056]=$'\x56' # LATIN CAPITAL LETTER V
+ [0x0057]=$'\x57' # LATIN CAPITAL LETTER W
+ [0x0058]=$'\x58' # LATIN CAPITAL LETTER X
+ [0x0059]=$'\x59' # LATIN CAPITAL LETTER Y
+ [0x005A]=$'\x5A' # LATIN CAPITAL LETTER Z
+ [0x005B]=$'\x5B' # LEFT SQUARE BRACKET
+ [0x005C]=$'\x5C' # REVERSE SOLIDUS (YEN SIGN)
+ [0x005D]=$'\x5D' # RIGHT SQUARE BRACKET
+ [0x005E]=$'\x5E' # CIRCUMFLEX ACCENT
+ [0x005F]=$'\x5F' # LOW LINE
+ [0x0060]=$'\x60' # GRAVE ACCENT
+ [0x0061]=$'\x61' # LATIN SMALL LETTER A
+ [0x0062]=$'\x62' # LATIN SMALL LETTER B
+ [0x0063]=$'\x63' # LATIN SMALL LETTER C
+ [0x0064]=$'\x64' # LATIN SMALL LETTER D
+ [0x0065]=$'\x65' # LATIN SMALL LETTER E
+ [0x0066]=$'\x66' # LATIN SMALL LETTER F
+ [0x0067]=$'\x67' # LATIN SMALL LETTER G
+ [0x0068]=$'\x68' # LATIN SMALL LETTER H
+ [0x0069]=$'\x69' # LATIN SMALL LETTER I
+ [0x006A]=$'\x6A' # LATIN SMALL LETTER J
+ [0x006B]=$'\x6B' # LATIN SMALL LETTER K
+ [0x006C]=$'\x6C' # LATIN SMALL LETTER L
+ [0x006D]=$'\x6D' # LATIN SMALL LETTER M
+ [0x006E]=$'\x6E' # LATIN SMALL LETTER N
+ [0x006F]=$'\x6F' # LATIN SMALL LETTER O
+ [0x0070]=$'\x70' # LATIN SMALL LETTER P
+ [0x0071]=$'\x71' # LATIN SMALL LETTER Q
+ [0x0072]=$'\x72' # LATIN SMALL LETTER R
+ [0x0073]=$'\x73' # LATIN SMALL LETTER S
+ [0x0074]=$'\x74' # LATIN SMALL LETTER T
+ [0x0075]=$'\x75' # LATIN SMALL LETTER U
+ [0x0076]=$'\x76' # LATIN SMALL LETTER V
+ [0x0077]=$'\x77' # LATIN SMALL LETTER W
+ [0x0078]=$'\x78' # LATIN SMALL LETTER X
+ [0x0079]=$'\x79' # LATIN SMALL LETTER Y
+ [0x007A]=$'\x7A' # LATIN SMALL LETTER Z
+ [0x007B]=$'\x7B' # LEFT CURLY BRACKET
+ [0x007C]=$'\x7C' # VERTICAL LINE
+ [0x007D]=$'\x7D' # RIGHT CURLY BRACKET
+ [0x007E]=$'\x7E' # TILDE
+ [0x007F]=$'\x7F' # DELETE
+ [0xFF61]=$'\xA1' # HALFWIDTH IDEOGRAPHIC FULL STOP
+ [0xFF62]=$'\xA2' # HALFWIDTH LEFT CORNER BRACKET
+ [0xFF63]=$'\xA3' # HALFWIDTH RIGHT CORNER BRACKET
+ [0xFF64]=$'\xA4' # HALFWIDTH IDEOGRAPHIC COMMA
+ [0xFF65]=$'\xA5' # HALFWIDTH KATAKANA MIDDLE DOT
+ [0xFF66]=$'\xA6' # HALFWIDTH KATAKANA LETTER WO
+ [0xFF67]=$'\xA7' # HALFWIDTH KATAKANA LETTER SMALL A
+ [0xFF68]=$'\xA8' # HALFWIDTH KATAKANA LETTER SMALL I
+ [0xFF69]=$'\xA9' # HALFWIDTH KATAKANA LETTER SMALL U
+ [0xFF6A]=$'\xAA' # HALFWIDTH KATAKANA LETTER SMALL E
+ [0xFF6B]=$'\xAB' # HALFWIDTH KATAKANA LETTER SMALL O
+ [0xFF6C]=$'\xAC' # HALFWIDTH KATAKANA LETTER SMALL YA
+ [0xFF6D]=$'\xAD' # HALFWIDTH KATAKANA LETTER SMALL YU
+ [0xFF6E]=$'\xAE' # HALFWIDTH KATAKANA LETTER SMALL YO
+ [0xFF6F]=$'\xAF' # HALFWIDTH KATAKANA LETTER SMALL TU
+ [0xFF70]=$'\xB0' # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ [0xFF71]=$'\xB1' # HALFWIDTH KATAKANA LETTER A
+ [0xFF72]=$'\xB2' # HALFWIDTH KATAKANA LETTER I
+ [0xFF73]=$'\xB3' # HALFWIDTH KATAKANA LETTER U
+ [0xFF74]=$'\xB4' # HALFWIDTH KATAKANA LETTER E
+ [0xFF75]=$'\xB5' # HALFWIDTH KATAKANA LETTER O
+ [0xFF76]=$'\xB6' # HALFWIDTH KATAKANA LETTER KA
+ [0xFF77]=$'\xB7' # HALFWIDTH KATAKANA LETTER KI
+ [0xFF78]=$'\xB8' # HALFWIDTH KATAKANA LETTER KU
+ [0xFF79]=$'\xB9' # HALFWIDTH KATAKANA LETTER KE
+ [0xFF7A]=$'\xBA' # HALFWIDTH KATAKANA LETTER KO
+ [0xFF7B]=$'\xBB' # HALFWIDTH KATAKANA LETTER SA
+ [0xFF7C]=$'\xBC' # HALFWIDTH KATAKANA LETTER SI
+ [0xFF7D]=$'\xBD' # HALFWIDTH KATAKANA LETTER SU
+ [0xFF7E]=$'\xBE' # HALFWIDTH KATAKANA LETTER SE
+ [0xFF7F]=$'\xBF' # HALFWIDTH KATAKANA LETTER SO
+ [0xFF80]=$'\xC0' # HALFWIDTH KATAKANA LETTER TA
+ [0xFF81]=$'\xC1' # HALFWIDTH KATAKANA LETTER TI
+ [0xFF82]=$'\xC2' # HALFWIDTH KATAKANA LETTER TU
+ [0xFF83]=$'\xC3' # HALFWIDTH KATAKANA LETTER TE
+ [0xFF84]=$'\xC4' # HALFWIDTH KATAKANA LETTER TO
+ [0xFF85]=$'\xC5' # HALFWIDTH KATAKANA LETTER NA
+ [0xFF86]=$'\xC6' # HALFWIDTH KATAKANA LETTER NI
+ [0xFF87]=$'\xC7' # HALFWIDTH KATAKANA LETTER NU
+ [0xFF88]=$'\xC8' # HALFWIDTH KATAKANA LETTER NE
+ [0xFF89]=$'\xC9' # HALFWIDTH KATAKANA LETTER NO
+ [0xFF8A]=$'\xCA' # HALFWIDTH KATAKANA LETTER HA
+ [0xFF8B]=$'\xCB' # HALFWIDTH KATAKANA LETTER HI
+ [0xFF8C]=$'\xCC' # HALFWIDTH KATAKANA LETTER HU
+ [0xFF8D]=$'\xCD' # HALFWIDTH KATAKANA LETTER HE
+ [0xFF8E]=$'\xCE' # HALFWIDTH KATAKANA LETTER HO
+ [0xFF8F]=$'\xCF' # HALFWIDTH KATAKANA LETTER MA
+ [0xFF90]=$'\xD0' # HALFWIDTH KATAKANA LETTER MI
+ [0xFF91]=$'\xD1' # HALFWIDTH KATAKANA LETTER MU
+ [0xFF92]=$'\xD2' # HALFWIDTH KATAKANA LETTER ME
+ [0xFF93]=$'\xD3' # HALFWIDTH KATAKANA LETTER MO
+ [0xFF94]=$'\xD4' # HALFWIDTH KATAKANA LETTER YA
+ [0xFF95]=$'\xD5' # HALFWIDTH KATAKANA LETTER YU
+ [0xFF96]=$'\xD6' # HALFWIDTH KATAKANA LETTER YO
+ [0xFF97]=$'\xD7' # HALFWIDTH KATAKANA LETTER RA
+ [0xFF98]=$'\xD8' # HALFWIDTH KATAKANA LETTER RI
+ [0xFF99]=$'\xD9' # HALFWIDTH KATAKANA LETTER RU
+ [0xFF9A]=$'\xDA' # HALFWIDTH KATAKANA LETTER RE
+ [0xFF9B]=$'\xDB' # HALFWIDTH KATAKANA LETTER RO
+ [0xFF9C]=$'\xDC' # HALFWIDTH KATAKANA LETTER WA
+ [0xFF9D]=$'\xDD' # HALFWIDTH KATAKANA LETTER N
+ [0xFF9E]=$'\xDE' # HALFWIDTH KATAKANA VOICED SOUND MARK
+ [0xFF9F]=$'\xDF' # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+)
+#TestCodePage ja_JP.SHIFT_JIS jp_JP_SHIFT_JIS
+TestCodePage ja_JP.SJIS jp_JP_SHIFT_JIS
+
+#for ((x=1;x<1000;x++)); do printf ' [0x%04x]=%-11q' "$x" "$(printf "$(printf '\\U%08x' $x)")" ; [ $(($x%5)) = 0 ] && echo; done
+C_UTF_8=(
+ [0x0001]=$'\001' [0x0002]=$'\002' [0x0003]=$'\003' [0x0004]=$'\004' [0x0005]=$'\005'
+ [0x0006]=$'\006' [0x0007]=$'\a' [0x0008]=$'\b' [0x0009]=$'\t' [0x000a]=''
+ [0x000b]=$'\v' [0x000c]=$'\f' [0x000d]=$'\r' [0x000e]=$'\016' [0x000f]=$'\017'
+ [0x0010]=$'\020' [0x0011]=$'\021' [0x0012]=$'\022' [0x0013]=$'\023' [0x0014]=$'\024'
+ [0x0015]=$'\025' [0x0016]=$'\026' [0x0017]=$'\027' [0x0018]=$'\030' [0x0019]=$'\031'
+ [0x001a]=$'\032' [0x001b]=$'\E' [0x001c]=$'\034' [0x001d]=$'\035' [0x001e]=$'\036'
+ [0x001f]=$'\037' [0x0020]=\ [0x0021]=\! [0x0022]=\" [0x0023]=\#
+ [0x0024]=\$ [0x0025]=% [0x0026]=\& [0x0027]=\' [0x0028]=\(
+ [0x0029]=\) [0x002a]=\* [0x002b]=+ [0x002c]=\, [0x002d]=-
+ [0x002e]=. [0x002f]=/ [0x0030]=0 [0x0031]=1 [0x0032]=2
+ [0x0033]=3 [0x0034]=4 [0x0035]=5 [0x0036]=6 [0x0037]=7
+ [0x0038]=8 [0x0039]=9 [0x003a]=: [0x003b]=\; [0x003c]=\<
+ [0x003d]== [0x003e]=\> [0x003f]=\? [0x0040]=@ [0x0041]=A
+ [0x0042]=B [0x0043]=C [0x0044]=D [0x0045]=E [0x0046]=F
+ [0x0047]=G [0x0048]=H [0x0049]=I [0x004a]=J [0x004b]=K
+ [0x004c]=L [0x004d]=M [0x004e]=N [0x004f]=O [0x0050]=P
+ [0x0051]=Q [0x0052]=R [0x0053]=S [0x0054]=T [0x0055]=U
+ [0x0056]=V [0x0057]=W [0x0058]=X [0x0059]=Y [0x005a]=Z
+ [0x005b]=\[ [0x005c]=\\ [0x005d]=\] [0x005e]=\^ [0x005f]=_
+ [0x0060]=\` [0x0061]=a [0x0062]=b [0x0063]=c [0x0064]=d
+ [0x0065]=e [0x0066]=f [0x0067]=g [0x0068]=h [0x0069]=i
+ [0x006a]=j [0x006b]=k [0x006c]=l [0x006d]=m [0x006e]=n
+ [0x006f]=o [0x0070]=p [0x0071]=q [0x0072]=r [0x0073]=s
+ [0x0074]=t [0x0075]=u [0x0076]=v [0x0077]=w [0x0078]=x
+ [0x0079]=y [0x007a]=z [0x007b]=\{ [0x007c]=\| [0x007d]=\}
+ [0x007e]="~" [0x007f]=$'\177' [0x0080]=$'\302\200' [0x0081]=$'\302\201' [0x0082]=$'\302\202'
+ [0x0083]=$'\302\203' [0x0084]=$'\302\204' [0x0085]=$'\302\205' [0x0086]=$'\302\206' [0x0087]=$'\302\207'
+ [0x0088]=$'\302\210' [0x0089]=$'\302\211' [0x008a]=$'\302\212' [0x008b]=$'\302\213' [0x008c]=$'\302\214'
+ [0x008d]=$'\302\215' [0x008e]=$'\302\216' [0x008f]=$'\302\217' [0x0090]=$'\302\220' [0x0091]=$'\302\221'
+ [0x0092]=$'\302\222' [0x0093]=$'\302\223' [0x0094]=$'\302\224' [0x0095]=$'\302\225' [0x0096]=$'\302\226'
+ [0x0097]=$'\302\227' [0x0098]=$'\302\230' [0x0099]=$'\302\231' [0x009a]=$'\302\232' [0x009b]=$'\302\233'
+ [0x009c]=$'\302\234' [0x009d]=$'\302\235' [0x009e]=$'\302\236' [0x009f]=$'\302\237' [0x00a0]=$'\302\240'
+ [0x00a1]=$'\302\241' [0x00a2]=$'\302\242' [0x00a3]=$'\302\243' [0x00a4]=$'\302\244' [0x00a5]=$'\302\245'
+ [0x00a6]=$'\302\246' [0x00a7]=$'\302\247' [0x00a8]=$'\302\250' [0x00a9]=$'\302\251' [0x00aa]=$'\302\252'
+ [0x00ab]=$'\302\253' [0x00ac]=$'\302\254' [0x00ad]=$'\302\255' [0x00ae]=$'\302\256' [0x00af]=$'\302\257'
+ [0x00b0]=$'\302\260' [0x00b1]=$'\302\261' [0x00b2]=$'\302\262' [0x00b3]=$'\302\263' [0x00b4]=$'\302\264'
+ [0x00b5]=$'\302\265' [0x00b6]=$'\302\266' [0x00b7]=$'\302\267' [0x00b8]=$'\302\270' [0x00b9]=$'\302\271'
+ [0x00ba]=$'\302\272' [0x00bb]=$'\302\273' [0x00bc]=$'\302\274' [0x00bd]=$'\302\275' [0x00be]=$'\302\276'
+ [0x00bf]=$'\302\277' [0x00c0]=$'\303\200' [0x00c1]=$'\303\201' [0x00c2]=$'\303\202' [0x00c3]=$'\303\203'
+ [0x00c4]=$'\303\204' [0x00c5]=$'\303\205' [0x00c6]=$'\303\206' [0x00c7]=$'\303\207' [0x00c8]=$'\303\210'
+ [0x00c9]=$'\303\211' [0x00ca]=$'\303\212' [0x00cb]=$'\303\213' [0x00cc]=$'\303\214' [0x00cd]=$'\303\215'
+ [0x00ce]=$'\303\216' [0x00cf]=$'\303\217' [0x00d0]=$'\303\220' [0x00d1]=$'\303\221' [0x00d2]=$'\303\222'
+ [0x00d3]=$'\303\223' [0x00d4]=$'\303\224' [0x00d5]=$'\303\225' [0x00d6]=$'\303\226' [0x00d7]=$'\303\227'
+ [0x00d8]=$'\303\230' [0x00d9]=$'\303\231' [0x00da]=$'\303\232' [0x00db]=$'\303\233' [0x00dc]=$'\303\234'
+ [0x00dd]=$'\303\235' [0x00de]=$'\303\236' [0x00df]=$'\303\237' [0x00e0]=$'\303\240' [0x00e1]=$'\303\241'
+ [0x00e2]=$'\303\242' [0x00e3]=$'\303\243' [0x00e4]=$'\303\244' [0x00e5]=$'\303\245' [0x00e6]=$'\303\246'
+ [0x00e7]=$'\303\247' [0x00e8]=$'\303\250' [0x00e9]=$'\303\251' [0x00ea]=$'\303\252' [0x00eb]=$'\303\253'
+ [0x00ec]=$'\303\254' [0x00ed]=$'\303\255' [0x00ee]=$'\303\256' [0x00ef]=$'\303\257' [0x00f0]=$'\303\260'
+ [0x00f1]=$'\303\261' [0x00f2]=$'\303\262' [0x00f3]=$'\303\263' [0x00f4]=$'\303\264' [0x00f5]=$'\303\265'
+ [0x00f6]=$'\303\266' [0x00f7]=$'\303\267' [0x00f8]=$'\303\270' [0x00f9]=$'\303\271' [0x00fa]=$'\303\272'
+ [0x00fb]=$'\303\273' [0x00fc]=$'\303\274' [0x00fd]=$'\303\275' [0x00fe]=$'\303\276' [0x00ff]=$'\303\277'
+ [0x0100]=$'\304\200' [0x0101]=$'\304\201' [0x0102]=$'\304\202' [0x0103]=$'\304\203' [0x0104]=$'\304\204'
+ [0x0105]=$'\304\205' [0x0106]=$'\304\206' [0x0107]=$'\304\207' [0x0108]=$'\304\210' [0x0109]=$'\304\211'
+ [0x010a]=$'\304\212' [0x010b]=$'\304\213' [0x010c]=$'\304\214' [0x010d]=$'\304\215' [0x010e]=$'\304\216'
+ [0x010f]=$'\304\217' [0x0110]=$'\304\220' [0x0111]=$'\304\221' [0x0112]=$'\304\222' [0x0113]=$'\304\223'
+ [0x0114]=$'\304\224' [0x0115]=$'\304\225' [0x0116]=$'\304\226' [0x0117]=$'\304\227' [0x0118]=$'\304\230'
+ [0x0119]=$'\304\231' [0x011a]=$'\304\232' [0x011b]=$'\304\233' [0x011c]=$'\304\234' [0x011d]=$'\304\235'
+ [0x011e]=$'\304\236' [0x011f]=$'\304\237' [0x0120]=$'\304\240' [0x0121]=$'\304\241' [0x0122]=$'\304\242'
+ [0x0123]=$'\304\243' [0x0124]=$'\304\244' [0x0125]=$'\304\245' [0x0126]=$'\304\246' [0x0127]=$'\304\247'
+ [0x0128]=$'\304\250' [0x0129]=$'\304\251' [0x012a]=$'\304\252' [0x012b]=$'\304\253' [0x012c]=$'\304\254'
+ [0x012d]=$'\304\255' [0x012e]=$'\304\256' [0x012f]=$'\304\257' [0x0130]=$'\304\260' [0x0131]=$'\304\261'
+ [0x0132]=$'\304\262' [0x0133]=$'\304\263' [0x0134]=$'\304\264' [0x0135]=$'\304\265' [0x0136]=$'\304\266'
+ [0x0137]=$'\304\267' [0x0138]=$'\304\270' [0x0139]=$'\304\271' [0x013a]=$'\304\272' [0x013b]=$'\304\273'
+ [0x013c]=$'\304\274' [0x013d]=$'\304\275' [0x013e]=$'\304\276' [0x013f]=$'\304\277' [0x0140]=$'\305\200'
+ [0x0141]=$'\305\201' [0x0142]=$'\305\202' [0x0143]=$'\305\203' [0x0144]=$'\305\204' [0x0145]=$'\305\205'
+ [0x0146]=$'\305\206' [0x0147]=$'\305\207' [0x0148]=$'\305\210' [0x0149]=$'\305\211' [0x014a]=$'\305\212'
+ [0x014b]=$'\305\213' [0x014c]=$'\305\214' [0x014d]=$'\305\215' [0x014e]=$'\305\216' [0x014f]=$'\305\217'
+ [0x0150]=$'\305\220' [0x0151]=$'\305\221' [0x0152]=$'\305\222' [0x0153]=$'\305\223' [0x0154]=$'\305\224'
+ [0x0155]=$'\305\225' [0x0156]=$'\305\226' [0x0157]=$'\305\227' [0x0158]=$'\305\230' [0x0159]=$'\305\231'
+ [0x015a]=$'\305\232' [0x015b]=$'\305\233' [0x015c]=$'\305\234' [0x015d]=$'\305\235' [0x015e]=$'\305\236'
+ [0x015f]=$'\305\237' [0x0160]=$'\305\240' [0x0161]=$'\305\241' [0x0162]=$'\305\242' [0x0163]=$'\305\243'
+ [0x0164]=$'\305\244' [0x0165]=$'\305\245' [0x0166]=$'\305\246' [0x0167]=$'\305\247' [0x0168]=$'\305\250'
+ [0x0169]=$'\305\251' [0x016a]=$'\305\252' [0x016b]=$'\305\253' [0x016c]=$'\305\254' [0x016d]=$'\305\255'
+ [0x016e]=$'\305\256' [0x016f]=$'\305\257' [0x0170]=$'\305\260' [0x0171]=$'\305\261' [0x0172]=$'\305\262'
+ [0x0173]=$'\305\263' [0x0174]=$'\305\264' [0x0175]=$'\305\265' [0x0176]=$'\305\266' [0x0177]=$'\305\267'
+ [0x0178]=$'\305\270' [0x0179]=$'\305\271' [0x017a]=$'\305\272' [0x017b]=$'\305\273' [0x017c]=$'\305\274'
+ [0x017d]=$'\305\275' [0x017e]=$'\305\276' [0x017f]=$'\305\277' [0x0180]=$'\306\200' [0x0181]=$'\306\201'
+ [0x0182]=$'\306\202' [0x0183]=$'\306\203' [0x0184]=$'\306\204' [0x0185]=$'\306\205' [0x0186]=$'\306\206'
+ [0x0187]=$'\306\207' [0x0188]=$'\306\210' [0x0189]=$'\306\211' [0x018a]=$'\306\212' [0x018b]=$'\306\213'
+ [0x018c]=$'\306\214' [0x018d]=$'\306\215' [0x018e]=$'\306\216' [0x018f]=$'\306\217' [0x0190]=$'\306\220'
+ [0x0191]=$'\306\221' [0x0192]=$'\306\222' [0x0193]=$'\306\223' [0x0194]=$'\306\224' [0x0195]=$'\306\225'
+ [0x0196]=$'\306\226' [0x0197]=$'\306\227' [0x0198]=$'\306\230' [0x0199]=$'\306\231' [0x019a]=$'\306\232'
+ [0x019b]=$'\306\233' [0x019c]=$'\306\234' [0x019d]=$'\306\235' [0x019e]=$'\306\236' [0x019f]=$'\306\237'
+ [0x01a0]=$'\306\240' [0x01a1]=$'\306\241' [0x01a2]=$'\306\242' [0x01a3]=$'\306\243' [0x01a4]=$'\306\244'
+ [0x01a5]=$'\306\245' [0x01a6]=$'\306\246' [0x01a7]=$'\306\247' [0x01a8]=$'\306\250' [0x01a9]=$'\306\251'
+ [0x01aa]=$'\306\252' [0x01ab]=$'\306\253' [0x01ac]=$'\306\254' [0x01ad]=$'\306\255' [0x01ae]=$'\306\256'
+ [0x01af]=$'\306\257' [0x01b0]=$'\306\260' [0x01b1]=$'\306\261' [0x01b2]=$'\306\262' [0x01b3]=$'\306\263'
+ [0x01b4]=$'\306\264' [0x01b5]=$'\306\265' [0x01b6]=$'\306\266' [0x01b7]=$'\306\267' [0x01b8]=$'\306\270'
+ [0x01b9]=$'\306\271' [0x01ba]=$'\306\272' [0x01bb]=$'\306\273' [0x01bc]=$'\306\274' [0x01bd]=$'\306\275'
+ [0x01be]=$'\306\276' [0x01bf]=$'\306\277' [0x01c0]=$'\307\200' [0x01c1]=$'\307\201' [0x01c2]=$'\307\202'
+ [0x01c3]=$'\307\203' [0x01c4]=$'\307\204' [0x01c5]=$'\307\205' [0x01c6]=$'\307\206' [0x01c7]=$'\307\207'
+ [0x01c8]=$'\307\210' [0x01c9]=$'\307\211' [0x01ca]=$'\307\212' [0x01cb]=$'\307\213' [0x01cc]=$'\307\214'
+ [0x01cd]=$'\307\215' [0x01ce]=$'\307\216' [0x01cf]=$'\307\217' [0x01d0]=$'\307\220' [0x01d1]=$'\307\221'
+ [0x01d2]=$'\307\222' [0x01d3]=$'\307\223' [0x01d4]=$'\307\224' [0x01d5]=$'\307\225' [0x01d6]=$'\307\226'
+ [0x01d7]=$'\307\227' [0x01d8]=$'\307\230' [0x01d9]=$'\307\231' [0x01da]=$'\307\232' [0x01db]=$'\307\233'
+ [0x01dc]=$'\307\234' [0x01dd]=$'\307\235' [0x01de]=$'\307\236' [0x01df]=$'\307\237' [0x01e0]=$'\307\240'
+ [0x01e1]=$'\307\241' [0x01e2]=$'\307\242' [0x01e3]=$'\307\243' [0x01e4]=$'\307\244' [0x01e5]=$'\307\245'
+ [0x01e6]=$'\307\246' [0x01e7]=$'\307\247' [0x01e8]=$'\307\250' [0x01e9]=$'\307\251' [0x01ea]=$'\307\252'
+ [0x01eb]=$'\307\253' [0x01ec]=$'\307\254' [0x01ed]=$'\307\255' [0x01ee]=$'\307\256' [0x01ef]=$'\307\257'
+ [0x01f0]=$'\307\260' [0x01f1]=$'\307\261' [0x01f2]=$'\307\262' [0x01f3]=$'\307\263' [0x01f4]=$'\307\264'
+ [0x01f5]=$'\307\265' [0x01f6]=$'\307\266' [0x01f7]=$'\307\267' [0x01f8]=$'\307\270' [0x01f9]=$'\307\271'
+ [0x01fa]=$'\307\272' [0x01fb]=$'\307\273' [0x01fc]=$'\307\274' [0x01fd]=$'\307\275' [0x01fe]=$'\307\276'
+ [0x01ff]=$'\307\277' [0x0200]=$'\310\200' [0x0201]=$'\310\201' [0x0202]=$'\310\202' [0x0203]=$'\310\203'
+ [0x0204]=$'\310\204' [0x0205]=$'\310\205' [0x0206]=$'\310\206' [0x0207]=$'\310\207' [0x0208]=$'\310\210'
+ [0x0209]=$'\310\211' [0x020a]=$'\310\212' [0x020b]=$'\310\213' [0x020c]=$'\310\214' [0x020d]=$'\310\215'
+ [0x020e]=$'\310\216' [0x020f]=$'\310\217' [0x0210]=$'\310\220' [0x0211]=$'\310\221' [0x0212]=$'\310\222'
+ [0x0213]=$'\310\223' [0x0214]=$'\310\224' [0x0215]=$'\310\225' [0x0216]=$'\310\226' [0x0217]=$'\310\227'
+ [0x0218]=$'\310\230' [0x0219]=$'\310\231' [0x021a]=$'\310\232' [0x021b]=$'\310\233' [0x021c]=$'\310\234'
+ [0x021d]=$'\310\235' [0x021e]=$'\310\236' [0x021f]=$'\310\237' [0x0220]=$'\310\240' [0x0221]=$'\310\241'
+ [0x0222]=$'\310\242' [0x0223]=$'\310\243' [0x0224]=$'\310\244' [0x0225]=$'\310\245' [0x0226]=$'\310\246'
+ [0x0227]=$'\310\247' [0x0228]=$'\310\250' [0x0229]=$'\310\251' [0x022a]=$'\310\252' [0x022b]=$'\310\253'
+ [0x022c]=$'\310\254' [0x022d]=$'\310\255' [0x022e]=$'\310\256' [0x022f]=$'\310\257' [0x0230]=$'\310\260'
+ [0x0231]=$'\310\261' [0x0232]=$'\310\262' [0x0233]=$'\310\263' [0x0234]=$'\310\264' [0x0235]=$'\310\265'
+ [0x0236]=$'\310\266' [0x0237]=$'\310\267' [0x0238]=$'\310\270' [0x0239]=$'\310\271' [0x023a]=$'\310\272'
+ [0x023b]=$'\310\273' [0x023c]=$'\310\274' [0x023d]=$'\310\275' [0x023e]=$'\310\276' [0x023f]=$'\310\277'
+ [0x0240]=$'\311\200' [0x0241]=$'\311\201' [0x0242]=$'\311\202' [0x0243]=$'\311\203' [0x0244]=$'\311\204'
+ [0x0245]=$'\311\205' [0x0246]=$'\311\206' [0x0247]=$'\311\207' [0x0248]=$'\311\210' [0x0249]=$'\311\211'
+ [0x024a]=$'\311\212' [0x024b]=$'\311\213' [0x024c]=$'\311\214' [0x024d]=$'\311\215' [0x024e]=$'\311\216'
+ [0x024f]=$'\311\217' [0x0250]=$'\311\220' [0x0251]=$'\311\221' [0x0252]=$'\311\222' [0x0253]=$'\311\223'
+ [0x0254]=$'\311\224' [0x0255]=$'\311\225' [0x0256]=$'\311\226' [0x0257]=$'\311\227' [0x0258]=$'\311\230'
+ [0x0259]=$'\311\231' [0x025a]=$'\311\232' [0x025b]=$'\311\233' [0x025c]=$'\311\234' [0x025d]=$'\311\235'
+ [0x025e]=$'\311\236' [0x025f]=$'\311\237' [0x0260]=$'\311\240' [0x0261]=$'\311\241' [0x0262]=$'\311\242'
+ [0x0263]=$'\311\243' [0x0264]=$'\311\244' [0x0265]=$'\311\245' [0x0266]=$'\311\246' [0x0267]=$'\311\247'
+ [0x0268]=$'\311\250' [0x0269]=$'\311\251' [0x026a]=$'\311\252' [0x026b]=$'\311\253' [0x026c]=$'\311\254'
+ [0x026d]=$'\311\255' [0x026e]=$'\311\256' [0x026f]=$'\311\257' [0x0270]=$'\311\260' [0x0271]=$'\311\261'
+ [0x0272]=$'\311\262' [0x0273]=$'\311\263' [0x0274]=$'\311\264' [0x0275]=$'\311\265' [0x0276]=$'\311\266'
+ [0x0277]=$'\311\267' [0x0278]=$'\311\270' [0x0279]=$'\311\271' [0x027a]=$'\311\272' [0x027b]=$'\311\273'
+ [0x027c]=$'\311\274' [0x027d]=$'\311\275' [0x027e]=$'\311\276' [0x027f]=$'\311\277' [0x0280]=$'\312\200'
+ [0x0281]=$'\312\201' [0x0282]=$'\312\202' [0x0283]=$'\312\203' [0x0284]=$'\312\204' [0x0285]=$'\312\205'
+ [0x0286]=$'\312\206' [0x0287]=$'\312\207' [0x0288]=$'\312\210' [0x0289]=$'\312\211' [0x028a]=$'\312\212'
+ [0x028b]=$'\312\213' [0x028c]=$'\312\214' [0x028d]=$'\312\215' [0x028e]=$'\312\216' [0x028f]=$'\312\217'
+ [0x0290]=$'\312\220' [0x0291]=$'\312\221' [0x0292]=$'\312\222' [0x0293]=$'\312\223' [0x0294]=$'\312\224'
+ [0x0295]=$'\312\225' [0x0296]=$'\312\226' [0x0297]=$'\312\227' [0x0298]=$'\312\230' [0x0299]=$'\312\231'
+ [0x029a]=$'\312\232' [0x029b]=$'\312\233' [0x029c]=$'\312\234' [0x029d]=$'\312\235' [0x029e]=$'\312\236'
+ [0x029f]=$'\312\237' [0x02a0]=$'\312\240' [0x02a1]=$'\312\241' [0x02a2]=$'\312\242' [0x02a3]=$'\312\243'
+ [0x02a4]=$'\312\244' [0x02a5]=$'\312\245' [0x02a6]=$'\312\246' [0x02a7]=$'\312\247' [0x02a8]=$'\312\250'
+ [0x02a9]=$'\312\251' [0x02aa]=$'\312\252' [0x02ab]=$'\312\253' [0x02ac]=$'\312\254' [0x02ad]=$'\312\255'
+ [0x02ae]=$'\312\256' [0x02af]=$'\312\257' [0x02b0]=$'\312\260' [0x02b1]=$'\312\261' [0x02b2]=$'\312\262'
+ [0x02b3]=$'\312\263' [0x02b4]=$'\312\264' [0x02b5]=$'\312\265' [0x02b6]=$'\312\266' [0x02b7]=$'\312\267'
+ [0x02b8]=$'\312\270' [0x02b9]=$'\312\271' [0x02ba]=$'\312\272' [0x02bb]=$'\312\273' [0x02bc]=$'\312\274'
+ [0x02bd]=$'\312\275' [0x02be]=$'\312\276' [0x02bf]=$'\312\277' [0x02c0]=$'\313\200' [0x02c1]=$'\313\201'
+ [0x02c2]=$'\313\202' [0x02c3]=$'\313\203' [0x02c4]=$'\313\204' [0x02c5]=$'\313\205' [0x02c6]=$'\313\206'
+ [0x02c7]=$'\313\207' [0x02c8]=$'\313\210' [0x02c9]=$'\313\211' [0x02ca]=$'\313\212' [0x02cb]=$'\313\213'
+ [0x02cc]=$'\313\214' [0x02cd]=$'\313\215' [0x02ce]=$'\313\216' [0x02cf]=$'\313\217' [0x02d0]=$'\313\220'
+ [0x02d1]=$'\313\221' [0x02d2]=$'\313\222' [0x02d3]=$'\313\223' [0x02d4]=$'\313\224' [0x02d5]=$'\313\225'
+ [0x02d6]=$'\313\226' [0x02d7]=$'\313\227' [0x02d8]=$'\313\230' [0x02d9]=$'\313\231' [0x02da]=$'\313\232'
+ [0x02db]=$'\313\233' [0x02dc]=$'\313\234' [0x02dd]=$'\313\235' [0x02de]=$'\313\236' [0x02df]=$'\313\237'
+ [0x02e0]=$'\313\240' [0x02e1]=$'\313\241' [0x02e2]=$'\313\242' [0x02e3]=$'\313\243' [0x02e4]=$'\313\244'
+ [0x02e5]=$'\313\245' [0x02e6]=$'\313\246' [0x02e7]=$'\313\247' [0x02e8]=$'\313\250' [0x02e9]=$'\313\251'
+ [0x02ea]=$'\313\252' [0x02eb]=$'\313\253' [0x02ec]=$'\313\254' [0x02ed]=$'\313\255' [0x02ee]=$'\313\256'
+ [0x02ef]=$'\313\257' [0x02f0]=$'\313\260' [0x02f1]=$'\313\261' [0x02f2]=$'\313\262' [0x02f3]=$'\313\263'
+ [0x02f4]=$'\313\264' [0x02f5]=$'\313\265' [0x02f6]=$'\313\266' [0x02f7]=$'\313\267' [0x02f8]=$'\313\270'
+ [0x02f9]=$'\313\271' [0x02fa]=$'\313\272' [0x02fb]=$'\313\273' [0x02fc]=$'\313\274' [0x02fd]=$'\313\275'
+ [0x02fe]=$'\313\276' [0x02ff]=$'\313\277' [0x0300]=$'\314\200' [0x0301]=$'\314\201' [0x0302]=$'\314\202'
+ [0x0303]=$'\314\203' [0x0304]=$'\314\204' [0x0305]=$'\314\205' [0x0306]=$'\314\206' [0x0307]=$'\314\207'
+ [0x0308]=$'\314\210' [0x0309]=$'\314\211' [0x030a]=$'\314\212' [0x030b]=$'\314\213' [0x030c]=$'\314\214'
+ [0x030d]=$'\314\215' [0x030e]=$'\314\216' [0x030f]=$'\314\217' [0x0310]=$'\314\220' [0x0311]=$'\314\221'
+ [0x0312]=$'\314\222' [0x0313]=$'\314\223' [0x0314]=$'\314\224' [0x0315]=$'\314\225' [0x0316]=$'\314\226'
+ [0x0317]=$'\314\227' [0x0318]=$'\314\230' [0x0319]=$'\314\231' [0x031a]=$'\314\232' [0x031b]=$'\314\233'
+ [0x031c]=$'\314\234' [0x031d]=$'\314\235' [0x031e]=$'\314\236' [0x031f]=$'\314\237' [0x0320]=$'\314\240'
+ [0x0321]=$'\314\241' [0x0322]=$'\314\242' [0x0323]=$'\314\243' [0x0324]=$'\314\244' [0x0325]=$'\314\245'
+ [0x0326]=$'\314\246' [0x0327]=$'\314\247' [0x0328]=$'\314\250' [0x0329]=$'\314\251' [0x032a]=$'\314\252'
+ [0x032b]=$'\314\253' [0x032c]=$'\314\254' [0x032d]=$'\314\255' [0x032e]=$'\314\256' [0x032f]=$'\314\257'
+ [0x0330]=$'\314\260' [0x0331]=$'\314\261' [0x0332]=$'\314\262' [0x0333]=$'\314\263' [0x0334]=$'\314\264'
+ [0x0335]=$'\314\265' [0x0336]=$'\314\266' [0x0337]=$'\314\267' [0x0338]=$'\314\270' [0x0339]=$'\314\271'
+ [0x033a]=$'\314\272' [0x033b]=$'\314\273' [0x033c]=$'\314\274' [0x033d]=$'\314\275' [0x033e]=$'\314\276'
+ [0x033f]=$'\314\277' [0x0340]=$'\315\200' [0x0341]=$'\315\201' [0x0342]=$'\315\202' [0x0343]=$'\315\203'
+ [0x0344]=$'\315\204' [0x0345]=$'\315\205' [0x0346]=$'\315\206' [0x0347]=$'\315\207' [0x0348]=$'\315\210'
+ [0x0349]=$'\315\211' [0x034a]=$'\315\212' [0x034b]=$'\315\213' [0x034c]=$'\315\214' [0x034d]=$'\315\215'
+ [0x034e]=$'\315\216' [0x034f]=$'\315\217' [0x0350]=$'\315\220' [0x0351]=$'\315\221' [0x0352]=$'\315\222'
+ [0x0353]=$'\315\223' [0x0354]=$'\315\224' [0x0355]=$'\315\225' [0x0356]=$'\315\226' [0x0357]=$'\315\227'
+ [0x0358]=$'\315\230' [0x0359]=$'\315\231' [0x035a]=$'\315\232' [0x035b]=$'\315\233' [0x035c]=$'\315\234'
+ [0x035d]=$'\315\235' [0x035e]=$'\315\236' [0x035f]=$'\315\237' [0x0360]=$'\315\240' [0x0361]=$'\315\241'
+ [0x0362]=$'\315\242' [0x0363]=$'\315\243' [0x0364]=$'\315\244' [0x0365]=$'\315\245' [0x0366]=$'\315\246'
+ [0x0367]=$'\315\247' [0x0368]=$'\315\250' [0x0369]=$'\315\251' [0x036a]=$'\315\252' [0x036b]=$'\315\253'
+ [0x036c]=$'\315\254' [0x036d]=$'\315\255' [0x036e]=$'\315\256' [0x036f]=$'\315\257' [0x0370]=$'\315\260'
+ [0x0371]=$'\315\261' [0x0372]=$'\315\262' [0x0373]=$'\315\263' [0x0374]=$'\315\264' [0x0375]=$'\315\265'
+ [0x0376]=$'\315\266' [0x0377]=$'\315\267' [0x0378]=$'\315\270' [0x0379]=$'\315\271' [0x037a]=$'\315\272'
+ [0x037b]=$'\315\273' [0x037c]=$'\315\274' [0x037d]=$'\315\275' [0x037e]=$'\315\276' [0x037f]=$'\315\277'
+ [0x0380]=$'\316\200' [0x0381]=$'\316\201' [0x0382]=$'\316\202' [0x0383]=$'\316\203' [0x0384]=$'\316\204'
+ [0x0385]=$'\316\205' [0x0386]=$'\316\206' [0x0387]=$'\316\207' [0x0388]=$'\316\210' [0x0389]=$'\316\211'
+ [0x038a]=$'\316\212' [0x038b]=$'\316\213' [0x038c]=$'\316\214' [0x038d]=$'\316\215' [0x038e]=$'\316\216'
+ [0x038f]=$'\316\217' [0x0390]=$'\316\220' [0x0391]=$'\316\221' [0x0392]=$'\316\222' [0x0393]=$'\316\223'
+ [0x0394]=$'\316\224' [0x0395]=$'\316\225' [0x0396]=$'\316\226' [0x0397]=$'\316\227' [0x0398]=$'\316\230'
+ [0x0399]=$'\316\231' [0x039a]=$'\316\232' [0x039b]=$'\316\233' [0x039c]=$'\316\234' [0x039d]=$'\316\235'
+ [0x039e]=$'\316\236' [0x039f]=$'\316\237' [0x03a0]=$'\316\240' [0x03a1]=$'\316\241' [0x03a2]=$'\316\242'
+ [0x03a3]=$'\316\243' [0x03a4]=$'\316\244' [0x03a5]=$'\316\245' [0x03a6]=$'\316\246' [0x03a7]=$'\316\247'
+ [0x03a8]=$'\316\250' [0x03a9]=$'\316\251' [0x03aa]=$'\316\252' [0x03ab]=$'\316\253' [0x03ac]=$'\316\254'
+ [0x03ad]=$'\316\255' [0x03ae]=$'\316\256' [0x03af]=$'\316\257' [0x03b0]=$'\316\260' [0x03b1]=$'\316\261'
+ [0x03b2]=$'\316\262' [0x03b3]=$'\316\263' [0x03b4]=$'\316\264' [0x03b5]=$'\316\265' [0x03b6]=$'\316\266'
+ [0x03b7]=$'\316\267' [0x03b8]=$'\316\270' [0x03b9]=$'\316\271' [0x03ba]=$'\316\272' [0x03bb]=$'\316\273'
+ [0x03bc]=$'\316\274' [0x03bd]=$'\316\275' [0x03be]=$'\316\276' [0x03bf]=$'\316\277' [0x03c0]=$'\317\200'
+ [0x03c1]=$'\317\201' [0x03c2]=$'\317\202' [0x03c3]=$'\317\203' [0x03c4]=$'\317\204' [0x03c5]=$'\317\205'
+ [0x03c6]=$'\317\206' [0x03c7]=$'\317\207' [0x03c8]=$'\317\210' [0x03c9]=$'\317\211' [0x03ca]=$'\317\212'
+ [0x03cb]=$'\317\213' [0x03cc]=$'\317\214' [0x03cd]=$'\317\215' [0x03ce]=$'\317\216' [0x03cf]=$'\317\217'
+ [0x03d0]=$'\317\220' [0x03d1]=$'\317\221' [0x03d2]=$'\317\222' [0x03d3]=$'\317\223' [0x03d4]=$'\317\224'
+ [0x03d5]=$'\317\225' [0x03d6]=$'\317\226' [0x03d7]=$'\317\227' [0x03d8]=$'\317\230' [0x03d9]=$'\317\231'
+ [0x03da]=$'\317\232' [0x03db]=$'\317\233' [0x03dc]=$'\317\234' [0x03dd]=$'\317\235' [0x03de]=$'\317\236'
+ [0x03df]=$'\317\237' [0x03e0]=$'\317\240' [0x03e1]=$'\317\241' [0x03e2]=$'\317\242' [0x03e3]=$'\317\243'
+ [0x03e4]=$'\317\244' [0x03e5]=$'\317\245' [0x03e6]=$'\317\246' [0x03e7]=$'\317\247'
+
+
+ [0x1000]=$'\341\200\200' [0x1001]=$'\341\200\201' [0x1002]=$'\341\200\202' [0x1003]=$'\341\200\203' [0x1004]=$'\341\200\204'
+ [0x1005]=$'\341\200\205' [0x1006]=$'\341\200\206' [0x1007]=$'\341\200\207' [0x1008]=$'\341\200\210' [0x1009]=$'\341\200\211'
+ [0x100a]=$'\341\200\212' [0x100b]=$'\341\200\213' [0x100c]=$'\341\200\214' [0x100d]=$'\341\200\215' [0x100e]=$'\341\200\216'
+ [0x100f]=$'\341\200\217' [0x1010]=$'\341\200\220' [0x1011]=$'\341\200\221' [0x1012]=$'\341\200\222' [0x1013]=$'\341\200\223'
+ [0x1014]=$'\341\200\224' [0x1015]=$'\341\200\225' [0x1016]=$'\341\200\226' [0x1017]=$'\341\200\227' [0x1018]=$'\341\200\230'
+ [0x1019]=$'\341\200\231' [0x101a]=$'\341\200\232' [0x101b]=$'\341\200\233' [0x101c]=$'\341\200\234' [0x101d]=$'\341\200\235'
+ [0x101e]=$'\341\200\236' [0x101f]=$'\341\200\237' [0x1020]=$'\341\200\240' [0x1021]=$'\341\200\241' [0x1022]=$'\341\200\242'
+ [0x1023]=$'\341\200\243' [0x1024]=$'\341\200\244' [0x1025]=$'\341\200\245' [0x1026]=$'\341\200\246' [0x1027]=$'\341\200\247'
+ [0x1028]=$'\341\200\250' [0x1029]=$'\341\200\251' [0x102a]=$'\341\200\252' [0x102b]=$'\341\200\253' [0x102c]=$'\341\200\254'
+ [0x102d]=$'\341\200\255' [0x102e]=$'\341\200\256' [0x102f]=$'\341\200\257' [0x1030]=$'\341\200\260' [0x1031]=$'\341\200\261'
+ [0x1032]=$'\341\200\262' [0x1033]=$'\341\200\263' [0x1034]=$'\341\200\264' [0x1035]=$'\341\200\265' [0x1036]=$'\341\200\266'
+ [0x1037]=$'\341\200\267' [0x1038]=$'\341\200\270' [0x1039]=$'\341\200\271' [0x103a]=$'\341\200\272' [0x103b]=$'\341\200\273'
+ [0x103c]=$'\341\200\274' [0x103d]=$'\341\200\275' [0x103e]=$'\341\200\276' [0x103f]=$'\341\200\277' [0x1040]=$'\341\201\200'
+ [0x1041]=$'\341\201\201' [0x1042]=$'\341\201\202' [0x1043]=$'\341\201\203' [0x1044]=$'\341\201\204' [0x1045]=$'\341\201\205'
+ [0x1046]=$'\341\201\206' [0x1047]=$'\341\201\207' [0x1048]=$'\341\201\210' [0x1049]=$'\341\201\211' [0x104a]=$'\341\201\212'
+ [0x104b]=$'\341\201\213' [0x104c]=$'\341\201\214' [0x104d]=$'\341\201\215' [0x104e]=$'\341\201\216' [0x104f]=$'\341\201\217'
+
+ [0x10000]=$'\360\220\200\200' [0x10001]=$'\360\220\200\201' [0x10002]=$'\360\220\200\202' [0x10003]=$'\360\220\200\203' [0x10004]=$'\360\220\200\204'
+ [0x10005]=$'\360\220\200\205' [0x10006]=$'\360\220\200\206' [0x10007]=$'\360\220\200\207' [0x10008]=$'\360\220\200\210' [0x10009]=$'\360\220\200\211'
+ [0x1000a]=$'\360\220\200\212' [0x1000b]=$'\360\220\200\213' [0x1000c]=$'\360\220\200\214' [0x1000d]=$'\360\220\200\215' [0x1000e]=$'\360\220\200\216'
+ [0x1000f]=$'\360\220\200\217' [0x10010]=$'\360\220\200\220' [0x10011]=$'\360\220\200\221' [0x10012]=$'\360\220\200\222' [0x10013]=$'\360\220\200\223'
+ [0x10014]=$'\360\220\200\224' [0x10015]=$'\360\220\200\225' [0x10016]=$'\360\220\200\226' [0x10017]=$'\360\220\200\227' [0x10018]=$'\360\220\200\230'
+ [0x10019]=$'\360\220\200\231' [0x1001a]=$'\360\220\200\232' [0x1001b]=$'\360\220\200\233' [0x1001c]=$'\360\220\200\234' [0x1001d]=$'\360\220\200\235'
+ [0x1001e]=$'\360\220\200\236' [0x1001f]=$'\360\220\200\237' [0x10020]=$'\360\220\200\240' [0x10021]=$'\360\220\200\241' [0x10022]=$'\360\220\200\242'
+ [0x10023]=$'\360\220\200\243' [0x10024]=$'\360\220\200\244' [0x10025]=$'\360\220\200\245' [0x10026]=$'\360\220\200\246' [0x10027]=$'\360\220\200\247'
+ [0x10028]=$'\360\220\200\250' [0x10029]=$'\360\220\200\251' [0x1002a]=$'\360\220\200\252' [0x1002b]=$'\360\220\200\253' [0x1002c]=$'\360\220\200\254'
+ [0x1002d]=$'\360\220\200\255' [0x1002e]=$'\360\220\200\256' [0x1002f]=$'\360\220\200\257' [0x10030]=$'\360\220\200\260' [0x10031]=$'\360\220\200\261'
+ [0x10032]=$'\360\220\200\262' [0x10033]=$'\360\220\200\263' [0x10034]=$'\360\220\200\264' [0x10035]=$'\360\220\200\265' [0x10036]=$'\360\220\200\266'
+ [0x10037]=$'\360\220\200\267' [0x10038]=$'\360\220\200\270' [0x10039]=$'\360\220\200\271' [0x1003a]=$'\360\220\200\272' [0x1003b]=$'\360\220\200\273'
+ [0x1003c]=$'\360\220\200\274' [0x1003d]=$'\360\220\200\275' [0x1003e]=$'\360\220\200\276' [0x1003f]=$'\360\220\200\277' [0x10040]=$'\360\220\201\200'
+ [0x10041]=$'\360\220\201\201' [0x10042]=$'\360\220\201\202' [0x10043]=$'\360\220\201\203' [0x10044]=$'\360\220\201\204' [0x10045]=$'\360\220\201\205'
+ [0x10046]=$'\360\220\201\206' [0x10047]=$'\360\220\201\207' [0x10048]=$'\360\220\201\210' [0x10049]=$'\360\220\201\211' [0x1004a]=$'\360\220\201\212'
+ [0x1004b]=$'\360\220\201\213' [0x1004c]=$'\360\220\201\214' [0x1004d]=$'\360\220\201\215' [0x1004e]=$'\360\220\201\216' [0x1004f]=$'\360\220\201\217'
+
+ [0x1000000]=$'\371\200\200\200\200' [0x1000001]=$'\371\200\200\200\201' [0x1000002]=$'\371\200\200\200\202' [0x1000003]=$'\371\200\200\200\203' [0x1000004]=$'\371\200\200\200\204'
+ [0x1000005]=$'\371\200\200\200\205' [0x1000006]=$'\371\200\200\200\206' [0x1000007]=$'\371\200\200\200\207' [0x1000008]=$'\371\200\200\200\210' [0x1000009]=$'\371\200\200\200\211'
+ [0x100000a]=$'\371\200\200\200\212' [0x100000b]=$'\371\200\200\200\213' [0x100000c]=$'\371\200\200\200\214' [0x100000d]=$'\371\200\200\200\215' [0x100000e]=$'\371\200\200\200\216'
+ [0x100000f]=$'\371\200\200\200\217' [0x1000010]=$'\371\200\200\200\220' [0x1000011]=$'\371\200\200\200\221' [0x1000012]=$'\371\200\200\200\222' [0x1000013]=$'\371\200\200\200\223'
+ [0x1000014]=$'\371\200\200\200\224' [0x1000015]=$'\371\200\200\200\225' [0x1000016]=$'\371\200\200\200\226' [0x1000017]=$'\371\200\200\200\227' [0x1000018]=$'\371\200\200\200\230'
+ [0x1000019]=$'\371\200\200\200\231' [0x100001a]=$'\371\200\200\200\232' [0x100001b]=$'\371\200\200\200\233' [0x100001c]=$'\371\200\200\200\234' [0x100001d]=$'\371\200\200\200\235'
+ [0x100001e]=$'\371\200\200\200\236' [0x100001f]=$'\371\200\200\200\237' [0x1000020]=$'\371\200\200\200\240' [0x1000021]=$'\371\200\200\200\241' [0x1000022]=$'\371\200\200\200\242'
+ [0x1000023]=$'\371\200\200\200\243' [0x1000024]=$'\371\200\200\200\244' [0x1000025]=$'\371\200\200\200\245' [0x1000026]=$'\371\200\200\200\246' [0x1000027]=$'\371\200\200\200\247'
+ [0x1000028]=$'\371\200\200\200\250' [0x1000029]=$'\371\200\200\200\251' [0x100002a]=$'\371\200\200\200\252' [0x100002b]=$'\371\200\200\200\253' [0x100002c]=$'\371\200\200\200\254'
+ [0x100002d]=$'\371\200\200\200\255' [0x100002e]=$'\371\200\200\200\256' [0x100002f]=$'\371\200\200\200\257' [0x1000030]=$'\371\200\200\200\260' [0x1000031]=$'\371\200\200\200\261'
+ [0x1000032]=$'\371\200\200\200\262' [0x1000033]=$'\371\200\200\200\263' [0x1000034]=$'\371\200\200\200\264' [0x1000035]=$'\371\200\200\200\265' [0x1000036]=$'\371\200\200\200\266'
+ [0x1000037]=$'\371\200\200\200\267' [0x1000038]=$'\371\200\200\200\270' [0x1000039]=$'\371\200\200\200\271' [0x100003a]=$'\371\200\200\200\272' [0x100003b]=$'\371\200\200\200\273'
+ [0x100003c]=$'\371\200\200\200\274' [0x100003d]=$'\371\200\200\200\275' [0x100003e]=$'\371\200\200\200\276' [0x100003f]=$'\371\200\200\200\277' [0x1000040]=$'\371\200\200\201\200'
+ [0x1000041]=$'\371\200\200\201\201' [0x1000042]=$'\371\200\200\201\202' [0x1000043]=$'\371\200\200\201\203' [0x1000044]=$'\371\200\200\201\204' [0x1000045]=$'\371\200\200\201\205'
+ [0x1000046]=$'\371\200\200\201\206' [0x1000047]=$'\371\200\200\201\207' [0x1000048]=$'\371\200\200\201\210' [0x1000049]=$'\371\200\200\201\211' [0x100004a]=$'\371\200\200\201\212'
+ [0x100004b]=$'\371\200\200\201\213' [0x100004c]=$'\371\200\200\201\214' [0x100004d]=$'\371\200\200\201\215' [0x100004e]=$'\371\200\200\201\216' [0x100004f]=$'\371\200\200\201\217'
+
+ [0x70000000]=$'\375\260\200\200\200\200' [0x70000001]=$'\375\260\200\200\200\201' [0x70000002]=$'\375\260\200\200\200\202' [0x70000003]=$'\375\260\200\200\200\203'
+ [0x70000004]=$'\375\260\200\200\200\204' [0x70000005]=$'\375\260\200\200\200\205' [0x70000006]=$'\375\260\200\200\200\206' [0x70000007]=$'\375\260\200\200\200\207' [0x70000008]=$'\375\260\200\200\200\210'
+ [0x70000009]=$'\375\260\200\200\200\211' [0x7000000a]=$'\375\260\200\200\200\212' [0x7000000b]=$'\375\260\200\200\200\213' [0x7000000c]=$'\375\260\200\200\200\214' [0x7000000d]=$'\375\260\200\200\200\215'
+ [0x7000000e]=$'\375\260\200\200\200\216' [0x7000000f]=$'\375\260\200\200\200\217' [0x70000010]=$'\375\260\200\200\200\220' [0x70000011]=$'\375\260\200\200\200\221' [0x70000012]=$'\375\260\200\200\200\222'
+ [0x70000013]=$'\375\260\200\200\200\223' [0x70000014]=$'\375\260\200\200\200\224' [0x70000015]=$'\375\260\200\200\200\225' [0x70000016]=$'\375\260\200\200\200\226' [0x70000017]=$'\375\260\200\200\200\227'
+ [0x70000018]=$'\375\260\200\200\200\230' [0x70000019]=$'\375\260\200\200\200\231' [0x7000001a]=$'\375\260\200\200\200\232' [0x7000001b]=$'\375\260\200\200\200\233' [0x7000001c]=$'\375\260\200\200\200\234'
+ [0x7000001d]=$'\375\260\200\200\200\235' [0x7000001e]=$'\375\260\200\200\200\236' [0x7000001f]=$'\375\260\200\200\200\237' [0x70000020]=$'\375\260\200\200\200\240' [0x70000021]=$'\375\260\200\200\200\241'
+ [0x70000022]=$'\375\260\200\200\200\242' [0x70000023]=$'\375\260\200\200\200\243' [0x70000024]=$'\375\260\200\200\200\244' [0x70000025]=$'\375\260\200\200\200\245' [0x70000026]=$'\375\260\200\200\200\246'
+ [0x70000027]=$'\375\260\200\200\200\247' [0x70000028]=$'\375\260\200\200\200\250' [0x70000029]=$'\375\260\200\200\200\251' [0x7000002a]=$'\375\260\200\200\200\252' [0x7000002b]=$'\375\260\200\200\200\253'
+ [0x7000002c]=$'\375\260\200\200\200\254' [0x7000002d]=$'\375\260\200\200\200\255' [0x7000002e]=$'\375\260\200\200\200\256' [0x7000002f]=$'\375\260\200\200\200\257' [0x70000030]=$'\375\260\200\200\200\260'
+ [0x70000031]=$'\375\260\200\200\200\261' [0x70000032]=$'\375\260\200\200\200\262' [0x70000033]=$'\375\260\200\200\200\263' [0x70000034]=$'\375\260\200\200\200\264' [0x70000035]=$'\375\260\200\200\200\265'
+ [0x70000036]=$'\375\260\200\200\200\266' [0x70000037]=$'\375\260\200\200\200\267' [0x70000038]=$'\375\260\200\200\200\270' [0x70000039]=$'\375\260\200\200\200\271' [0x7000003a]=$'\375\260\200\200\200\272'
+ [0x7000003b]=$'\375\260\200\200\200\273' [0x7000003c]=$'\375\260\200\200\200\274' [0x7000003d]=$'\375\260\200\200\200\275' [0x7000003e]=$'\375\260\200\200\200\276' [0x7000003f]=$'\375\260\200\200\200\277'
+ [0x70000040]=$'\375\260\200\200\201\200' [0x70000041]=$'\375\260\200\200\201\201' [0x70000042]=$'\375\260\200\200\201\202' [0x70000043]=$'\375\260\200\200\201\203' [0x70000044]=$'\375\260\200\200\201\204'
+ [0x70000045]=$'\375\260\200\200\201\205' [0x70000046]=$'\375\260\200\200\201\206' [0x70000047]=$'\375\260\200\200\201\207' [0x70000048]=$'\375\260\200\200\201\210' [0x70000049]=$'\375\260\200\200\201\211'
+ [0x7000004a]=$'\375\260\200\200\201\212' [0x7000004b]=$'\375\260\200\200\201\213' [0x7000004c]=$'\375\260\200\200\201\214' [0x7000004d]=$'\375\260\200\200\201\215' [0x7000004e]=$'\375\260\200\200\201\216'
+
+
+
+ )
+TestCodePage en_US.UTF-8 C_UTF_8
+
+if [ ${ErrorCnt} -gt 0 ]; then
+ echo "Failed ${ErrorCnt} of ${TestCnt} Unicode tests"
+else
+ echo "Passed all ${TestCnt} Unicode tests"
+fi
diff --git a/tests/unicode2.sub b/tests/unicode2.sub
new file mode 100644
index 00000000..f10cdecf
--- /dev/null
+++ b/tests/unicode2.sub
@@ -0,0 +1,22 @@
+export LANG=en_US.UTF-8
+
+printf '%s\n' "$(printf '\uff')" | od -b
+printf '%s\n' $'\uff' | od -b
+
+printf '\uff'\\n | od -b
+echo $'\uff' | od -b
+
+printf '\uffff'\\n | od -b
+echo $'\uffff' | od -b
+
+printf '\Ufffffffe'\\n | od -b
+echo $'\Ufffffffe' | od -b
+
+printf '\Uffffffff'\\n | od -b
+echo $'\Uffffffff' | od -b
+
+LC_CTYPE=C printf '\uff'\\n | od -b
+LC_CTYPE=ru_RU.CP1251 printf '\uff'\\n | od -b
+LC_CTYPE=en_US.UTF-8 printf '\uff'\\n | od -b
+
+echo -e '\u0041 \u00a3 \u0152' | od -b
diff --git a/tests/unicode3.sub b/tests/unicode3.sub
new file mode 100644
index 00000000..f79871f6
--- /dev/null
+++ b/tests/unicode3.sub
@@ -0,0 +1,7 @@
+payload=$'\065\247\100\063\231\053\306\123\070\237\242\352\263'
+"$payload"
+
+printf %q "$payload"
+echo
+
+set -x ; : "$payload"
diff --git a/tests/varenv.right b/tests/varenv.right
index df8086dc..2d98b225 100644
--- a/tests/varenv.right
+++ b/tests/varenv.right
@@ -51,6 +51,21 @@ after fff3: x=4
|0|12|
|y|
|y|
+a:b:c:d
+a-b-c-d
+a:b:c:d
+g: ,
+f: ,
+FIN: asdf fdsa, asdf fdsa
+g: v = , w =
+f: v = , w =
+FIN: v = two, w = one
+declare -Ar FOOBAR='([foo]="bar" )'
+declare -Ar FOOBAR='([foo]="bar" )'
+declare -ar FOOBAR2='([0]="bar")'
+declare -ar FOOBAR2='([0]="bar")'
+F OUTSIDE
+F OUTSIDE
a=z
a=b
a=z
diff --git a/tests/varenv.sh b/tests/varenv.sh
index 77776f9b..6576282a 100644
--- a/tests/varenv.sh
+++ b/tests/varenv.sh
@@ -202,5 +202,18 @@ $THIS_SH ./varenv1.sub
# more tests; bugs in bash up to version 2.05a
$THIS_SH ./varenv2.sub
+# more tests; bugs in bash IFS scoping up through version 4.2
+$THIS_SH ./varenv3.sub
+
+# scoping problems with declare -g through bash-4.2
+${THIS_SH} ./varenv4.sub
+
+# more scoping and declaration problems with -g and arrays through bash-4.2
+${THIS_SH} ./varenv5.sub
+
+# variable scoping in the presence of nameref
+${THIS_SH} ./varenv6.sub
+
# make sure variable scoping is done right
tt() { typeset a=b;echo a=$a; };a=z;echo a=$a;tt;echo a=$a
+
diff --git a/tests/varenv3.sub b/tests/varenv3.sub
new file mode 100644
index 00000000..1384fcb1
--- /dev/null
+++ b/tests/varenv3.sub
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+oifs=$IFS
+
+inner () {
+#recho inner: "$IFS" >&2
+ echo a/b/c/d
+ exit 0
+}
+
+outer() {
+#recho outer: "$IFS" >&2
+for i in 1; do
+ IFS=/ read m v k a < <(IFS=$oifs inner)
+
+echo $m:$v:$k:$a
+done
+}
+
+outer
+unset m k v a b c d
+
+for j in 1; do
+ IFS=: read a b c d
+done < <(outer)
+
+echo $a-$b-$c-$d
+unset m k v a b c d
+
+IFS=: read a b c d < <(outer)
+
+echo $a:$b:$c:$d
diff --git a/tests/varenv4.sub b/tests/varenv4.sub
new file mode 100644
index 00000000..4852ad6f
--- /dev/null
+++ b/tests/varenv4.sub
@@ -0,0 +1,44 @@
+f()
+{
+ local -a v
+ local -a w
+
+ g
+ echo "f: ${v[@]}, ${w[@]}"
+}
+
+g()
+{
+ aux=v
+ declare -ga "$aux=( asdf fdsa )"
+ declare -ga w=( asdf fdsa )
+
+ echo "g: ${v[@]}, ${w[@]}"
+}
+
+f
+echo "FIN: ${v[@]}, ${w[@]}"
+
+unset v w
+unset -f f g
+
+f()
+{
+ local v
+ local w
+
+ g
+ echo f: v = $v, w = $w
+}
+
+g()
+{
+ aux=v
+ declare -g w=one
+ declare -g "$aux=two"
+
+ echo g: v = $v, w = $w
+}
+
+f
+echo FIN: v = $v, w = $w
diff --git a/tests/varenv5.sub b/tests/varenv5.sub
new file mode 100644
index 00000000..8ebfa36d
--- /dev/null
+++ b/tests/varenv5.sub
@@ -0,0 +1,16 @@
+function foobar {
+ declare -rgA FOOBAR=([foo]=bar)
+ declare -p FOOBAR
+}
+foobar
+declare -p FOOBAR
+
+unset -f foobar
+
+foobar() {
+ declare -rga FOOBAR2=([foo]=bar)
+ declare -p FOOBAR2
+}
+
+foobar
+declare -p FOOBAR2
diff --git a/tests/varenv6.sub b/tests/varenv6.sub
new file mode 100644
index 00000000..d0269fb6
--- /dev/null
+++ b/tests/varenv6.sub
@@ -0,0 +1,28 @@
+f()
+{
+ local str=F
+ g str
+}
+
+g()
+{
+ local -n ref=$1
+ printf "%s " "$ref"
+ ref=G
+}
+
+str=OUTSIDE;
+f
+
+printf "%s\n" "$str"
+
+unset -f f g
+unset str
+
+f() { local -a arr=(F); g arr; };
+
+g() { local -n ref=$1; printf "%s " "${ref[0]}"; ref=(G); };
+
+arr=(OUTSIDE);
+f;
+printf "%s\n" "${arr[0]}"
diff --git a/tests/vredir.right b/tests/vredir.right
index 585a10ef..07e02a7a 100644
--- a/tests/vredir.right
+++ b/tests/vredir.right
@@ -20,7 +20,7 @@ bar ()
exec {v}> $TMPFILE;
echo $v
}
-11
+10
line 1
line 2
line 3
@@ -35,11 +35,11 @@ EOF
echo $v
}
-11
+10
foo 1
foo 2
foo 3
-11
+10
/bin/bash
/bin/csh
/bin/ksh
@@ -64,7 +64,7 @@ iclosev ()
/bin/zsh
./vredir3.sub: line 4: v: ambiguous redirect
after
-11 12
+10 11
a
a
swizzle is a function
@@ -75,7 +75,7 @@ swizzle ()
exec {stdin}<&$fd0;
exec {stdout}>&$fd1
}
-13 11
+12 10
a
a
swizzle is a function
@@ -88,7 +88,5 @@ swizzle ()
}
ok 1
./vredir6.sub: redirection error: cannot duplicate fd: Invalid argument
-./vredir6.sub: line 10: /dev/null: Invalid argument
-./vredir6.sub: redirection error: cannot duplicate fd: Invalid argument
./vredir6.sub: line 13: v: Invalid argument
unset
diff --git a/trap.c b/trap.c
index 86665e7a..15d3fc81 100644
--- a/trap.c
+++ b/trap.c
@@ -1,7 +1,7 @@
/* trap.c -- Not the trap command, but useful functions for manipulating
those objects. The trap command is in builtins/trap.def. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -33,6 +33,8 @@
#include "bashintl.h"
+#include <signal.h>
+
#include "trap.h"
#include "shell.h"
@@ -44,6 +46,11 @@
#include "builtins/common.h"
#include "builtins/builtext.h"
+#if defined (READLINE)
+# include <readline/readline.h>
+# include "bashline.h"
+#endif
+
#ifndef errno
extern int errno;
#endif
@@ -68,8 +75,6 @@ static int sigmodes[BASH_NSIG];
static void free_trap_command __P((int));
static void change_signal __P((int, char *));
-static void get_original_signal __P((int));
-
static int _run_trap_internal __P((int, char *));
static void free_trap_string __P((int));
@@ -81,6 +86,9 @@ static void reset_or_restore_signal_handlers __P((sh_resetsig_func_t *));
extern int last_command_exit_value;
extern int line_number;
+extern int sigalrm_seen;
+extern procenv_t alrmbuf;
+
extern char *this_command_name;
extern sh_builtin_func_t *this_shell_builtin;
extern procenv_t wait_intr_buf;
@@ -92,7 +100,7 @@ extern WORD_LIST *subst_assign_varlist;
SigHandler *original_signals[NSIG];
/* For each signal, a slot for a string, which is a command to be
- executed when that signal is recieved. The slot can also contain
+ executed when that signal is received. The slot can also contain
DEFAULT_SIG, which means do whatever you were going to do before
you were so rudely interrupted, or IGNORE_SIG, which says ignore
this signal. */
@@ -113,6 +121,8 @@ int trap_saved_exit_value;
/* The (trapped) signal received while executing in the `wait' builtin */
int wait_signal_received;
+int trapped_signal_received;
+
#define GETORIGSIG(sig) \
do { \
original_signals[sig] = (SigHandler *)set_signal_handler (sig, SIG_DFL); \
@@ -176,7 +186,7 @@ initialize_traps ()
}
}
-#ifdef INCLUDE_UNUSED
+#ifdef DEBUG
/* Return a printable representation of the trap handler for SIG. */
static char *
trap_handler_string (sig)
@@ -232,7 +242,7 @@ decode_signal (string, flags)
if (name == 0 || name[0] == '\0')
continue;
- /* Check name without the SIG prefix first case sensitivly or
+ /* Check name without the SIG prefix first case sensitively or
insensitively depending on whether flags includes DSIG_NOCASE */
if (STREQN (name, "SIG", 3))
{
@@ -267,8 +277,9 @@ void
run_pending_traps ()
{
register int sig;
- int old_exit_value, *token_state;
+ int old_exit_value;
WORD_LIST *save_subst_varlist;
+ sh_parser_state_t pstate;
#if defined (ARRAY_VARS)
ARRAY *ps;
#endif
@@ -276,7 +287,19 @@ run_pending_traps ()
if (catch_flag == 0) /* simple optimization */
return;
- catch_flag = 0;
+ if (running_trap > 0)
+ {
+#if defined (DEBUG)
+ internal_warning ("run_pending_traps: recursive invocation while running trap for signal %d", running_trap-1);
+#endif
+#if 0
+ return; /* no recursive trap invocations */
+#else
+ ;
+#endif
+ }
+
+ catch_flag = trapped_signal_received = 0;
/* Preserve $? when running trap. */
old_exit_value = last_command_exit_value;
@@ -290,22 +313,14 @@ run_pending_traps ()
while (pending_traps[sig]--) instead of the if statement. */
if (pending_traps[sig])
{
-#if defined (HAVE_POSIX_SIGNALS)
- sigset_t set, oset;
+ if (running_trap == sig+1)
+ /*continue*/;
- sigemptyset (&set);
- sigemptyset (&oset);
-
- sigaddset (&set, sig);
- sigprocmask (SIG_BLOCK, &set, &oset);
-#else
-# if defined (HAVE_BSD_SIGNALS)
- int oldmask = sigblock (sigmask (sig));
-# endif
-#endif /* HAVE_POSIX_SIGNALS */
+ running_trap = sig + 1;
if (sig == SIGINT)
{
+ pending_traps[sig] = 0; /* XXX */
run_interrupt_trap ();
CLRINTERRUPT;
}
@@ -314,7 +329,26 @@ run_pending_traps ()
trap_list[SIGCHLD] != (char *)IMPOSSIBLE_TRAP_HANDLER &&
(sigmodes[SIGCHLD] & SIG_INPROGRESS) == 0)
{
+ sigmodes[SIGCHLD] |= SIG_INPROGRESS;
run_sigchld_trap (pending_traps[sig]); /* use as counter */
+ sigmodes[SIGCHLD] &= ~SIG_INPROGRESS;
+ }
+ else if (sig == SIGCHLD &&
+ trap_list[SIGCHLD] == (char *)IMPOSSIBLE_TRAP_HANDLER &&
+ (sigmodes[SIGCHLD] & SIG_INPROGRESS) != 0)
+ {
+ /* This can happen when run_pending_traps is called while
+ running a SIGCHLD trap handler. */
+ running_trap = 0;
+ /* want to leave pending_traps[SIGCHLD] alone here */
+ continue; /* XXX */
+ }
+ else if (sig == SIGCHLD && (sigmodes[SIGCHLD] & SIG_INPROGRESS))
+ {
+ /* whoops -- print warning? */
+ running_trap = 0; /* XXX */
+ /* want to leave pending_traps[SIGCHLD] alone here */
+ continue;
}
#endif
else if (trap_list[sig] == (char *)DEFAULT_SIG ||
@@ -344,26 +378,27 @@ run_pending_traps ()
}
else
{
- token_state = save_token_state ();
+ /* XXX - should we use save_parser_state/restore_parser_state? */
+ save_parser_state (&pstate);
save_subst_varlist = subst_assign_varlist;
subst_assign_varlist = 0;
- parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
- restore_token_state (token_state);
- free (token_state);
+#if defined (JOB_CONTROL)
+ save_pipeline (1); /* XXX only provides one save level */
+#endif
+ /* XXX - set pending_traps[sig] = 0 here? */
+ pending_traps[sig] = 0;
+ evalstring (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
+#if defined (JOB_CONTROL)
+ restore_pipeline (1);
+#endif
subst_assign_varlist = save_subst_varlist;
+ restore_parser_state (&pstate);
}
- pending_traps[sig] = 0;
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
-#else
-# if defined (HAVE_BSD_SIGNALS)
- sigsetmask (oldmask);
-# endif
-#endif /* POSIX_VERSION */
+ pending_traps[sig] = 0; /* XXX - move before evalstring? */
+ running_trap = 0;
}
}
@@ -404,12 +439,23 @@ trap_handler (sig)
catch_flag = 1;
pending_traps[sig]++;
- if (interrupt_immediately && this_shell_builtin && (this_shell_builtin == wait_builtin))
+ trapped_signal_received = sig;
+
+ if (this_shell_builtin && (this_shell_builtin == wait_builtin))
{
wait_signal_received = sig;
- longjmp (wait_intr_buf, 1);
+ if (interrupt_immediately)
+ longjmp (wait_intr_buf, 1);
}
+#if defined (READLINE)
+ /* Set the event hook so readline will call it after the signal handlers
+ finish executing, so if this interrupted character input we can get
+ quick response. */
+ if (RL_ISSTATE (RL_STATE_SIGHANDLER) && interrupt_immediately == 0)
+ bashline_set_event_hook ();
+#endif
+
if (interrupt_immediately)
run_pending_traps ();
@@ -419,6 +465,44 @@ trap_handler (sig)
SIGRETURN (0);
}
+int
+first_pending_trap ()
+{
+ register int i;
+
+ for (i = 1; i < NSIG; i++)
+ if (pending_traps[i])
+ return i;
+ return -1;
+}
+
+int
+any_signals_trapped ()
+{
+ register int i;
+
+ for (i = 1; i < NSIG; i++)
+ if (sigmodes[i] & SIG_TRAPPED)
+ return i;
+ return -1;
+}
+
+void
+check_signals ()
+{
+ CHECK_ALRM; /* set by the read builtin */
+ QUIT;
+}
+
+/* Convenience functions the rest of the shell can use */
+void
+check_signals_and_traps ()
+{
+ check_signals ();
+
+ run_pending_traps ();
+}
+
#if defined (JOB_CONTROL) && defined (SIGCHLD)
#ifdef INCLUDE_UNUSED
@@ -454,6 +538,21 @@ set_impossible_sigchld_trap ()
change_signal (SIGCHLD, (char *)IMPOSSIBLE_TRAP_HANDLER);
sigmodes[SIGCHLD] &= ~SIG_TRAPPED; /* maybe_set_sigchld_trap checks this */
}
+
+/* Act as if we received SIGCHLD NCHILD times and increment
+ pending_traps[SIGCHLD] by that amount. This allows us to still run the
+ SIGCHLD trap once for each exited child. */
+void
+queue_sigchld_trap (nchild)
+ int nchild;
+{
+ if (nchild > 0)
+ {
+ catch_flag = 1;
+ pending_traps[SIGCHLD] += nchild;
+ trapped_signal_received = SIGCHLD;
+ }
+}
#endif /* JOB_CONTROL && SIGCHLD */
void
@@ -529,6 +628,8 @@ set_signal (sig, string)
int sig;
char *string;
{
+ sigset_t set, oset;
+
if (SPECIAL_TRAP (sig))
{
change_signal (sig, savestring (string));
@@ -559,9 +660,10 @@ set_signal (sig, string)
environment in which it is safe to do so. */
if ((sigmodes[sig] & SIG_NO_TRAP) == 0)
{
- set_signal_handler (sig, SIG_IGN);
+ BLOCK_SIGNAL (sig, set, oset);
change_signal (sig, savestring (string));
set_signal_handler (sig, trap_handler);
+ UNBLOCK_SIGNAL (oset);
}
else
change_signal (sig, savestring (string));
@@ -598,7 +700,7 @@ change_signal (sig, value)
sigmodes[sig] |= SIG_CHANGED;
}
-static void
+void
get_original_signal (sig)
int sig;
{
@@ -653,7 +755,11 @@ restore_default_signal (sig)
return;
/* If we aren't trapping this signal, don't bother doing anything else. */
- if ((sigmodes[sig] & SIG_TRAPPED) == 0)
+ /* We special-case SIGCHLD and IMPOSSIBLE_TRAP_HANDLER (see above) as a
+ sentinel to determine whether or not disposition is reset to the default
+ while the trap handler is executing. */
+ if (((sigmodes[sig] & SIG_TRAPPED) == 0) &&
+ (sig != SIGCHLD || (sigmodes[sig] & SIG_INPROGRESS) == 0 || trap_list[sig] != (char *)IMPOSSIBLE_TRAP_HANDLER))
return;
/* Only change the signal handler for SIG if it allows it. */
@@ -728,11 +834,11 @@ run_exit_trap ()
retval = trap_saved_exit_value;
running_trap = 1;
- code = setjmp (top_level);
+ code = setjmp_nosigs (top_level);
/* If we're in a function, make sure return longjmps come here, too. */
if (return_catch_flag)
- function_code = setjmp (return_catch);
+ function_code = setjmp_nosigs (return_catch);
if (code == 0 && function_code == 0)
{
@@ -765,6 +871,8 @@ run_trap_cleanup (sig)
sigmodes[sig] &= ~(SIG_INPROGRESS|SIG_CHANGED);
}
+#define RECURSIVE_SIG(s) (SPECIAL_TRAP(s) == 0)
+
/* Run a trap command for SIG. SIG is one of the signals the shell treats
specially. Returns the exit status of the executed trap command list. */
static int
@@ -774,9 +882,11 @@ _run_trap_internal (sig, tag)
{
char *trap_command, *old_trap;
int trap_exit_value, *token_state;
- int save_return_catch_flag, function_code, flags;
+ volatile int save_return_catch_flag, function_code;
+ int flags;
procenv_t save_return_catch;
WORD_LIST *save_subst_varlist;
+ sh_parser_state_t pstate;
#if defined (ARRAY_VARS)
ARRAY *ps;
#endif
@@ -786,7 +896,13 @@ _run_trap_internal (sig, tag)
currently executing in the trap handler. */
if ((sigmodes[sig] & SIG_TRAPPED) && ((sigmodes[sig] & SIG_IGNORED) == 0) &&
(trap_list[sig] != (char *)IMPOSSIBLE_TRAP_HANDLER) &&
+#if 0
+ /* Uncomment this to allow some special signals to recursively execute
+ trap handlers. */
+ (RECURSIVE_SIG (sig) || (sigmodes[sig] & SIG_INPROGRESS) == 0))
+#else
((sigmodes[sig] & SIG_INPROGRESS) == 0))
+#endif
{
old_trap = trap_list[sig];
sigmodes[sig] |= SIG_INPROGRESS;
@@ -794,21 +910,25 @@ _run_trap_internal (sig, tag)
trap_command = savestring (old_trap);
running_trap = sig + 1;
- trap_saved_exit_value = last_command_exit_value;
+
#if defined (ARRAY_VARS)
ps = save_pipestatus_array ();
#endif
- token_state = save_token_state ();
+ save_parser_state (&pstate);
save_subst_varlist = subst_assign_varlist;
subst_assign_varlist = 0;
+#if defined (JOB_CONTROL)
+ save_pipeline (1); /* XXX only provides one save level */
+#endif
+
/* If we're in a function, make sure return longjmps come here, too. */
save_return_catch_flag = return_catch_flag;
if (return_catch_flag)
{
COPY_PROCENV (return_catch, save_return_catch);
- function_code = setjmp (return_catch);
+ function_code = setjmp_nosigs (return_catch);
}
flags = SEVAL_NONINT|SEVAL_NOHIST;
@@ -817,13 +937,15 @@ _run_trap_internal (sig, tag)
if (function_code == 0)
parse_and_execute (trap_command, tag, flags);
- restore_token_state (token_state);
- free (token_state);
+ trap_exit_value = last_command_exit_value;
+
+#if defined (JOB_CONTROL)
+ restore_pipeline (1);
+#endif
subst_assign_varlist = save_subst_varlist;
+ restore_parser_state (&pstate);
- trap_exit_value = last_command_exit_value;
- last_command_exit_value = trap_saved_exit_value;
#if defined (ARRAY_VARS)
restore_pipestatus_array (ps);
#endif
@@ -940,14 +1062,20 @@ run_interrupt_trap ()
/* Free all the allocated strings in the list of traps and reset the trap
values to the default. Intended to be called from subshells that want
to complete work done by reset_signal_handlers upon execution of a
- subsequent `trap' command that changes a signal's disposition. */
+ subsequent `trap' command that changes a signal's disposition. We need
+ to make sure that we duplicate the behavior of
+ reset_or_restore_signal_handlers and not change the disposition of signals
+ that are set to be ignored. */
void
free_trap_strings ()
{
register int i;
for (i = 0; i < BASH_NSIG; i++)
- free_trap_string (i);
+ {
+ if (trap_list[i] != (char *)IGNORE_SIG)
+ free_trap_string (i);
+ }
trap_list[DEBUG_TRAP] = trap_list[EXIT_TRAP] = trap_list[ERROR_TRAP] = trap_list[RETURN_TRAP] = (char *)NULL;
}
@@ -1045,7 +1173,7 @@ restore_original_signals ()
}
/* If a trap handler exists for signal SIG, then call it; otherwise just
- return failure. */
+ return failure. Returns 1 if it called the trap handler. */
int
maybe_call_trap_handler (sig)
int sig;
@@ -1085,6 +1213,13 @@ signal_is_trapped (sig)
}
int
+signal_is_pending (sig)
+ int sig;
+{
+ return (pending_traps[sig]);
+}
+
+int
signal_is_special (sig)
int sig;
{
@@ -1106,13 +1241,20 @@ signal_is_hard_ignored (sig)
}
void
-set_signal_ignored (sig)
+set_signal_hard_ignored (sig)
int sig;
{
sigmodes[sig] |= SIG_HARD_IGNORE;
original_signals[sig] = SIG_IGN;
}
+void
+set_signal_ignored (sig)
+ int sig;
+{
+ original_signals[sig] = SIG_IGN;
+}
+
int
signal_in_progress (sig)
int sig;
diff --git a/trap.h b/trap.h
index 8591ee26..34a05c4b 100644
--- a/trap.h
+++ b/trap.h
@@ -1,6 +1,6 @@
/* trap.h -- data structures used in the trap mechanism. */
-/* Copyright (C) 1993-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -46,7 +46,7 @@
#define BASH_NSIG NSIG+3
/* Flags values for decode_signal() */
-#define DSIG_SIGPREFIX 0x01 /* don't alllow `SIG' PREFIX */
+#define DSIG_SIGPREFIX 0x01 /* don't allow `SIG' PREFIX */
#define DSIG_NOCASE 0x02 /* case-insensitive comparison */
/* A value which can never be the target of a trap handler. */
@@ -65,6 +65,7 @@ extern void initialize_traps __P((void));
extern void run_pending_traps __P((void));
+extern void queue_sigchld_trap __P((int));
extern void maybe_set_sigchld_trap __P((char *));
extern void set_impossible_sigchld_trap __P((void));
extern void set_sigchld_trap __P((char *));
@@ -88,6 +89,7 @@ extern void free_trap_strings __P((void));
extern void reset_signal_handlers __P((void));
extern void restore_original_signals __P((void));
+extern void get_original_signal __P((int));
extern void get_all_original_signals __P((void));
extern char *signal_name __P((int));
@@ -97,9 +99,15 @@ extern void run_interrupt_trap __P((void));
extern int maybe_call_trap_handler __P((int));
extern int signal_is_special __P((int));
extern int signal_is_trapped __P((int));
+extern int signal_is_pending __P((int));
extern int signal_is_ignored __P((int));
extern int signal_is_hard_ignored __P((int));
+extern void set_signal_hard_ignored __P((int));
extern void set_signal_ignored __P((int));
extern int signal_in_progress __P((int));
+extern int first_pending_trap __P((void));
+extern int any_signals_trapped __P((void));
+extern void check_signals_and_traps __P((void));
+
#endif /* _TRAP_H_ */
diff --git a/unwind_prot.c b/unwind_prot.c
index a477c03a..85a10b57 100644
--- a/unwind_prot.c
+++ b/unwind_prot.c
@@ -46,8 +46,8 @@
#include "command.h"
#include "general.h"
#include "unwind_prot.h"
-#include "quit.h"
#include "sig.h"
+#include "quit.h"
#include "error.h" /* for internal_warning */
/* Structure describing a saved variable and the value to restore it to. */
diff --git a/variables.c b/variables.c
index 7bb850fa..70fac3bd 100644
--- a/variables.c
+++ b/variables.c
@@ -1,6 +1,6 @@
/* variables.c -- Functions for hacking shell variables. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -55,9 +55,13 @@
#include "hashcmd.h"
#include "pathexp.h"
#include "alias.h"
+#include "jobs.h"
+
+#include "version.h"
#include "builtins/getopt.h"
#include "builtins/common.h"
+#include "builtins/builtext.h"
#if defined (READLINE)
# include "bashline.h"
@@ -87,6 +91,7 @@ extern int line_number, line_number_base;
extern int subshell_environment, indirection_level, subshell_level;
extern int build_version, patch_level;
extern int expanding_redir;
+extern int last_command_exit_value;
extern char *dist_version, *release_status;
extern char *shell_name;
extern char *primary_prompt, *secondary_prompt;
@@ -161,6 +166,8 @@ static int export_env_size;
static int winsize_assignment; /* currently assigning to LINES or COLUMNS */
#endif
+static HASH_TABLE *last_table_searched; /* hash_lookup sets this */
+
/* Some forward declarations. */
static void create_variable_tables __P((void));
@@ -263,6 +270,10 @@ static int variable_in_context __P((SHELL_VAR *));
static int visible_array_vars __P((SHELL_VAR *));
#endif
+static SHELL_VAR *find_nameref_at_context __P((SHELL_VAR *, VAR_CONTEXT *));
+static SHELL_VAR *find_variable_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
+static SHELL_VAR *find_variable_last_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
+
static SHELL_VAR *bind_tempenv_variable __P((const char *, char *));
static void push_temp_var __P((PTR_T));
static void propagate_temp_var __P((PTR_T));
@@ -310,7 +321,7 @@ initialize_shell_variables (env, privmode)
int privmode;
{
char *name, *string, *temp_string;
- int c, char_index, string_index, string_length;
+ int c, char_index, string_index, string_length, ro;
SHELL_VAR *temp_var;
create_variable_tables ();
@@ -347,7 +358,8 @@ initialize_shell_variables (env, privmode)
temp_string[char_index] = ' ';
strcpy (temp_string + char_index + 1, string);
- parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
+ if (posixly_correct == 0 || legal_identifier (name))
+ parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
/* Ancient backwards compatibility. Old versions of bash exported
functions like name()=() {...} */
@@ -360,14 +372,22 @@ initialize_shell_variables (env, privmode)
array_needs_making = 1;
}
else
- report_error (_("error importing function definition for `%s'"), name);
+ {
+ if (temp_var = bind_variable (name, string, 0))
+ {
+ VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
+ array_needs_making = 1;
+ }
+ last_command_exit_value = 1;
+ report_error (_("error importing function definition for `%s'"), name);
+ }
/* ( */
if (name[char_index - 1] == ')' && name[char_index - 2] == '\0')
name[char_index - 2] = '('; /* ) */
}
#if defined (ARRAY_VARS)
-# if 0
+# if ARRAY_EXPORT
/* Array variables may not yet be exported. */
else if (*string == '(' && string[1] == '[' && string[strlen (string) - 1] == ')')
{
@@ -378,7 +398,7 @@ initialize_shell_variables (env, privmode)
VSETATTR (temp_var, (att_exported | att_imported));
array_needs_making = 1;
}
-# endif
+# endif /* ARRAY_EXPORT */
#endif
#if 0
else if (legal_identifier (name))
@@ -386,6 +406,14 @@ initialize_shell_variables (env, privmode)
else
#endif
{
+ ro = 0;
+ if (posixly_correct && STREQ (name, "SHELLOPTS"))
+ {
+ temp_var = find_variable ("SHELLOPTS");
+ ro = temp_var && readonly_p (temp_var);
+ if (temp_var)
+ VUNSETATTR (temp_var, att_readonly);
+ }
temp_var = bind_variable (name, string, 0);
if (temp_var)
{
@@ -393,6 +421,8 @@ initialize_shell_variables (env, privmode)
VSETATTR (temp_var, (att_exported | att_imported));
else
VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
+ if (ro)
+ VSETATTR (temp_var, att_readonly);
array_needs_making = 1;
}
}
@@ -525,11 +555,6 @@ initialize_shell_variables (env, privmode)
set_if_not ("HISTFILE", name);
free (name);
-
-#if 0
- set_if_not ("HISTSIZE", "500");
- sv_histsize ("HISTSIZE");
-#endif
}
#endif /* HISTORY */
@@ -1133,7 +1158,7 @@ get_self (self)
}
#if defined (ARRAY_VARS)
-/* A generic dynamic array variable initializer. Intialize array variable
+/* A generic dynamic array variable initializer. Initialize array variable
NAME with dynamic value function GETFUNC and assignment function SETFUNC. */
static SHELL_VAR *
init_dynamic_array_var (name, getfunc, setfunc, attrs)
@@ -1739,6 +1764,10 @@ hash_lookup (name, hashed_vars)
BUCKET_CONTENTS *bucket;
bucket = hash_search (name, hashed_vars, 0);
+ /* If we find the name in HASHED_VARS, set LAST_TABLE_SEARCHED to that
+ table. */
+ if (bucket)
+ last_table_searched = hashed_vars;
return (bucket ? (SHELL_VAR *)bucket->data : (SHELL_VAR *)NULL);
}
@@ -1772,6 +1801,7 @@ find_variable_internal (name, force_tempenv)
{
SHELL_VAR *var;
int search_tempenv;
+ VAR_CONTEXT *vc;
var = (SHELL_VAR *)NULL;
@@ -1785,8 +1815,22 @@ find_variable_internal (name, force_tempenv)
if (search_tempenv && temporary_env)
var = hash_lookup (name, temporary_env);
+ vc = shell_variables;
+#if 0
+if (search_tempenv == 0 && /* (subshell_environment & SUBSHELL_COMSUB) && */
+ expanding_redir &&
+ (this_shell_builtin == eval_builtin || this_shell_builtin == command_builtin))
+ {
+ itrace("find_variable_internal: search_tempenv == 0: skipping VC_BLTNENV");
+ while (vc && (vc->flags & VC_BLTNENV))
+ vc = vc->down;
+ if (vc == 0)
+ vc = shell_variables;
+ }
+#endif
+
if (var == 0)
- var = var_lookup (name, shell_variables);
+ var = var_lookup (name, vc);
if (var == 0)
return ((SHELL_VAR *)NULL);
@@ -1794,6 +1838,197 @@ find_variable_internal (name, force_tempenv)
return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
}
+/* Look up and resolve the chain of nameref variables starting at V all the
+ way to NULL or non-nameref. */
+SHELL_VAR *
+find_variable_nameref (v)
+ SHELL_VAR *v;
+{
+ int level;
+ char *newname;
+ SHELL_VAR *orig, *oldv;
+
+ level = 0;
+ orig = v;
+ while (v && nameref_p (v))
+ {
+ level++;
+ if (level > NAMEREF_MAX)
+ return ((SHELL_VAR *)0); /* error message here? */
+ newname = nameref_cell (v);
+ if (newname == 0 || *newname == '\0')
+ return ((SHELL_VAR *)0);
+ oldv = v;
+ v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
+ if (v == orig || v == oldv)
+ {
+ internal_warning (_("%s: circular name reference"), orig->name);
+ return ((SHELL_VAR *)0);
+ }
+ }
+ return v;
+}
+
+/* Resolve the chain of nameref variables for NAME. XXX - could change later */
+SHELL_VAR *
+find_variable_last_nameref (name)
+ const char *name;
+{
+ SHELL_VAR *v, *nv;
+ char *newname;
+ int level;
+
+ nv = v = find_variable_noref (name);
+ level = 0;
+ while (v && nameref_p (v))
+ {
+ level++;
+ if (level > NAMEREF_MAX)
+ return ((SHELL_VAR *)0); /* error message here? */
+ newname = nameref_cell (v);
+ if (newname == 0 || *newname == '\0')
+ return ((SHELL_VAR *)0);
+ nv = v;
+ v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
+ }
+ return nv;
+}
+
+/* Resolve the chain of nameref variables for NAME. XXX - could change later */
+SHELL_VAR *
+find_global_variable_last_nameref (name)
+ const char *name;
+{
+ SHELL_VAR *v, *nv;
+ char *newname;
+ int level;
+
+ nv = v = find_global_variable_noref (name);
+ level = 0;
+ while (v && nameref_p (v))
+ {
+ level++;
+ if (level > NAMEREF_MAX)
+ return ((SHELL_VAR *)0); /* error message here? */
+ newname = nameref_cell (v);
+ if (newname == 0 || *newname == '\0')
+ return ((SHELL_VAR *)0);
+ nv = v;
+ v = find_global_variable_noref (newname);
+ }
+ return nv;
+}
+
+static SHELL_VAR *
+find_nameref_at_context (v, vc)
+ SHELL_VAR *v;
+ VAR_CONTEXT *vc;
+{
+ SHELL_VAR *nv, *nv2;
+ VAR_CONTEXT *nvc;
+ char *newname;
+ int level;
+
+ nv = v;
+ level = 1;
+ while (nv && nameref_p (nv))
+ {
+ level++;
+ if (level > NAMEREF_MAX)
+ return ((SHELL_VAR *)NULL);
+ newname = nameref_cell (nv);
+ if (newname == 0 || *newname == '\0')
+ return ((SHELL_VAR *)NULL);
+ nv2 = hash_lookup (newname, vc->table);
+ if (nv2 == 0)
+ break;
+ nv = nv2;
+ }
+ return nv;
+}
+
+/* Do nameref resolution from the VC, which is the local context for some
+ function or builtin, `up' the chain to the global variables context. If
+ NVCP is not NULL, return the variable context where we finally ended the
+ nameref resolution (so the bind_variable_internal can use the correct
+ variable context and hash table). */
+static SHELL_VAR *
+find_variable_nameref_context (v, vc, nvcp)
+ SHELL_VAR *v;
+ VAR_CONTEXT *vc;
+ VAR_CONTEXT **nvcp;
+{
+ SHELL_VAR *nv, *nv2;
+ VAR_CONTEXT *nvc;
+
+ /* Look starting at the current context all the way `up' */
+ for (nv = v, nvc = vc; nvc; nvc = nvc->down)
+ {
+ nv2 = find_nameref_at_context (nv, nvc);
+ if (nv2 == 0)
+ continue;
+ nv = nv2;
+ if (*nvcp)
+ *nvcp = nvc;
+ if (nameref_p (nv) == 0)
+ break;
+ }
+ return (nameref_p (nv) ? (SHELL_VAR *)NULL : nv);
+}
+
+/* Do nameref resolution from the VC, which is the local context for some
+ function or builtin, `up' the chain to the global variables context. If
+ NVCP is not NULL, return the variable context where we finally ended the
+ nameref resolution (so the bind_variable_internal can use the correct
+ variable context and hash table). */
+static SHELL_VAR *
+find_variable_last_nameref_context (v, vc, nvcp)
+ SHELL_VAR *v;
+ VAR_CONTEXT *vc;
+ VAR_CONTEXT **nvcp;
+{
+ SHELL_VAR *nv, *nv2;
+ VAR_CONTEXT *nvc;
+
+ /* Look starting at the current context all the way `up' */
+ for (nv = v, nvc = vc; nvc; nvc = nvc->down)
+ {
+ nv2 = find_nameref_at_context (nv, nvc);
+ if (nv2 == 0)
+ continue;
+ nv = nv2;
+ if (*nvcp)
+ *nvcp = nvc;
+ }
+ return (nameref_p (nv) ? nv : (SHELL_VAR *)NULL);
+}
+
+/* Find a variable, forcing a search of the temporary environment first */
+SHELL_VAR *
+find_variable_tempenv (name)
+ const char *name;
+{
+ SHELL_VAR *var;
+
+ var = find_variable_internal (name, 1);
+ if (var && nameref_p (var))
+ var = find_variable_nameref (var);
+ return (var);
+}
+
+/* Find a variable, not forcing a search of the temporary environment first */
+SHELL_VAR *
+find_variable_notempenv (name)
+ const char *name;
+{
+ SHELL_VAR *var;
+
+ var = find_variable_internal (name, 0);
+ if (var && nameref_p (var))
+ var = find_variable_nameref (var);
+ return (var);
+}
+
SHELL_VAR *
find_global_variable (name)
const char *name;
@@ -1801,6 +2036,38 @@ find_global_variable (name)
SHELL_VAR *var;
var = var_lookup (name, global_variables);
+ if (var && nameref_p (var))
+ var = find_variable_nameref (var);
+
+ if (var == 0)
+ return ((SHELL_VAR *)NULL);
+
+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
+}
+
+SHELL_VAR *
+find_global_variable_noref (name)
+ const char *name;
+{
+ SHELL_VAR *var;
+
+ var = var_lookup (name, global_variables);
+
+ if (var == 0)
+ return ((SHELL_VAR *)NULL);
+
+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
+}
+
+SHELL_VAR *
+find_shell_variable (name)
+ const char *name;
+{
+ SHELL_VAR *var;
+
+ var = var_lookup (name, shell_variables);
+ if (var && nameref_p (var))
+ var = find_variable_nameref (var);
if (var == 0)
return ((SHELL_VAR *)NULL);
@@ -1813,7 +2080,23 @@ SHELL_VAR *
find_variable (name)
const char *name;
{
- return (find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin))));
+ SHELL_VAR *v;
+
+ last_table_searched = 0;
+ v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
+ if (v && nameref_p (v))
+ v = find_variable_nameref (v);
+ return v;
+}
+
+SHELL_VAR *
+find_variable_noref (name)
+ const char *name;
+{
+ SHELL_VAR *v;
+
+ v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
+ return v;
}
/* Look up the function entry whose name matches STRING.
@@ -1915,11 +2198,26 @@ make_local_variable (name)
old_var = find_variable (name);
if (old_var && local_p (old_var) && old_var->context == variable_context)
{
- VUNSETATTR (old_var, att_invisible);
+ VUNSETATTR (old_var, att_invisible); /* XXX */
return (old_var);
}
was_tmpvar = old_var && tempvar_p (old_var);
+ /* If we're making a local variable in a shell function, the temporary env
+ has already been merged into the function's variable context stack. We
+ can assume that a temporary var in the same context appears in the same
+ VAR_CONTEXT and can safely be returned without creating a new variable
+ (which results in duplicate names in the same VAR_CONTEXT->table */
+ /* We can't just test tmpvar_p because variables in the temporary env given
+ to a shell function appear in the function's local variable VAR_CONTEXT
+ but retain their tempvar attribute. We want temporary variables that are
+ found in temporary_env, hence the test for last_table_searched, which is
+ set in hash_lookup and only (so far) checked here. */
+ if (was_tmpvar && old_var->context == variable_context && last_table_searched != temporary_env)
+ {
+ VUNSETATTR (old_var, att_invisible);
+ return (old_var);
+ }
if (was_tmpvar)
tmp_value = value_cell (old_var);
@@ -1947,7 +2245,13 @@ make_local_variable (name)
{
if (readonly_p (old_var))
sh_readonly (name);
- return ((SHELL_VAR *)NULL);
+ else if (noassign_p (old_var))
+ builtin_error (_("%s: variable may not be assigned value"), name);
+#if 0
+ /* Let noassign variables through with a warning */
+ if (readonly_p (old_var))
+#endif
+ return ((SHELL_VAR *)NULL);
}
if (old_var == 0)
@@ -1958,7 +2262,9 @@ make_local_variable (name)
/* If we found this variable in one of the temporary environments,
inherit its value. Watch to see if this causes problems with
- things like `x=4 local x'. */
+ things like `x=4 local x'. XXX - see above for temporary env
+ variables with the same context level as variable_context */
+ /* XXX - we should only do this if the variable is not an array. */
if (was_tmpvar)
var_setvalue (new_var, savestring (tmp_value));
@@ -1973,6 +2279,8 @@ make_local_variable (name)
if (ifsname (name))
setifs (new_var);
+ if (was_tmpvar == 0)
+ VSETATTR (new_var, att_invisible); /* XXX */
return (new_var);
}
@@ -1995,7 +2303,7 @@ new_shell_variable (name)
entry->attributes = 0;
/* Always assume variables are to be made at toplevel!
- make_local_variable has the responsibilty of changing the
+ make_local_variable has the responsibility of changing the
variable context. */
entry->context = 0;
@@ -2041,14 +2349,15 @@ make_new_array_variable (name)
}
SHELL_VAR *
-make_local_array_variable (name)
+make_local_array_variable (name, assoc_ok)
char *name;
+ int assoc_ok;
{
SHELL_VAR *var;
ARRAY *array;
var = make_local_variable (name);
- if (var == 0 || array_p (var))
+ if (var == 0 || array_p (var) || (assoc_ok && assoc_p (var)))
return var;
array = array_create ();
@@ -2127,6 +2436,8 @@ make_variable_value (var, value, flags)
top_level_cleanup ();
jump_to_top_level (DISCARD);
}
+ /* This can be fooled if the variable's value changes while evaluating
+ `rval'. We can change it if we move the evaluation of lval to here. */
if (flags & ASS_APPEND)
rval += lval;
retval = itos (rval);
@@ -2199,8 +2510,37 @@ bind_variable_internal (name, value, table, hflags, aflags)
SHELL_VAR *entry;
entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
+ /* Follow the nameref chain here if this is the global variables table */
+ if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
+ {
+ entry = find_global_variable (entry->name);
+ /* Let's see if we have a nameref referencing a variable that hasn't yet
+ been created. */
+ if (entry == 0)
+ entry = find_variable_last_nameref (name); /* XXX */
+ if (entry == 0) /* just in case */
+ return (entry);
+ }
- if (entry == 0)
+ /* The first clause handles `declare -n ref; ref=x;' */
+ if (entry && invisible_p (entry) && nameref_p (entry))
+ goto assign_value;
+ else if (entry && nameref_p (entry))
+ {
+ newval = nameref_cell (entry);
+#if defined (ARRAY_VARS)
+ /* declare -n foo=x[2] */
+ if (valid_array_reference (newval))
+ /* XXX - should it be aflags? */
+ entry = assign_array_element (newval, make_variable_value (entry, value, 0), aflags);
+ else
+#endif
+ {
+ entry = make_new_variable (newval, table);
+ var_setvalue (entry, make_variable_value (entry, value, 0));
+ }
+ }
+ else if (entry == 0)
{
entry = make_new_variable (name, table);
var_setvalue (entry, make_variable_value (entry, value, 0)); /* XXX */
@@ -2221,6 +2561,7 @@ bind_variable_internal (name, value, table, hflags, aflags)
}
else
{
+assign_value:
if (readonly_p (entry) || noassign_p (entry))
{
if (readonly_p (entry))
@@ -2231,6 +2572,12 @@ bind_variable_internal (name, value, table, hflags, aflags)
/* Variables which are bound are visible. */
VUNSETATTR (entry, att_invisible);
+#if defined (ARRAY_VARS)
+ if (assoc_p (entry) || array_p (entry))
+ newval = make_array_variable_value (entry, 0, "0", value, aflags);
+ else
+#endif
+
newval = make_variable_value (entry, value, aflags); /* XXX */
/* Invalidate any cached export string */
@@ -2241,14 +2588,14 @@ bind_variable_internal (name, value, table, hflags, aflags)
/* If an existing array variable x is being assigned to with x=b or
`read x' or something of that nature, silently convert it to
x[0]=b or `read x[0]'. */
- if (array_p (entry))
+ if (assoc_p (entry))
{
- array_insert (array_cell (entry), 0, newval);
+ assoc_insert (assoc_cell (entry), savestring ("0"), newval);
free (newval);
}
- else if (assoc_p (entry))
+ else if (array_p (entry))
{
- assoc_insert (assoc_cell (entry), savestring ("0"), newval);
+ array_insert (array_cell (entry), 0, newval);
free (newval);
}
else
@@ -2278,8 +2625,9 @@ bind_variable (name, value, flags)
char *value;
int flags;
{
- SHELL_VAR *v;
- VAR_CONTEXT *vc;
+ SHELL_VAR *v, *nv;
+ VAR_CONTEXT *vc, *nvc;
+ int level;
if (shell_variables == 0)
create_variable_tables ();
@@ -2298,10 +2646,50 @@ bind_variable (name, value, flags)
if (vc_isfuncenv (vc) || vc_isbltnenv (vc))
{
v = hash_lookup (name, vc->table);
+ nvc = vc;
+ if (v && nameref_p (v))
+ {
+ nv = find_variable_nameref_context (v, vc, &nvc);
+ if (nv == 0)
+ {
+ nv = find_variable_last_nameref_context (v, vc, &nvc);
+ if (nv && nameref_p (nv))
+ {
+ /* If this nameref variable doesn't have a value yet,
+ set the value. Otherwise, assign using the value as
+ normal. */
+ if (nameref_cell (nv) == 0)
+ return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
+ return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags));
+ }
+ else
+ v = nv;
+ }
+ else
+ v = nv;
+ }
if (v)
- return (bind_variable_internal (name, value, vc->table, 0, flags));
+ return (bind_variable_internal (v->name, value, nvc->table, 0, flags));
}
}
+ /* bind_variable_internal will handle nameref resolution in this case */
+ return (bind_variable_internal (name, value, global_variables->table, 0, flags));
+}
+
+SHELL_VAR *
+bind_global_variable (name, value, flags)
+ const char *name;
+ char *value;
+ int flags;
+{
+ SHELL_VAR *v, *nv;
+ VAR_CONTEXT *vc, *nvc;
+ int level;
+
+ if (shell_variables == 0)
+ create_variable_tables ();
+
+ /* bind_variable_internal will handle nameref resolution in this case */
return (bind_variable_internal (name, value, global_variables->table, 0, flags));
}
@@ -2317,7 +2705,9 @@ bind_variable_value (var, value, aflags)
int aflags;
{
char *t;
+ int invis;
+ invis = invisible_p (var);
VUNSETATTR (var, att_invisible);
if (var->assign_func)
@@ -2332,6 +2722,17 @@ bind_variable_value (var, value, aflags)
else
{
t = make_variable_value (var, value, aflags);
+#if defined (ARRAY_VARS)
+ if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || (legal_identifier (t) == 0 && valid_array_reference (t) == 0)))
+#else
+ if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || legal_identifier (t) == 0))
+#endif
+ {
+ free (t);
+ if (invis)
+ VSETATTR (var, att_invisible); /* XXX */
+ return ((SHELL_VAR *)NULL);
+ }
FREE (value_cell (var));
var_setvalue (var, t);
}
@@ -2362,9 +2763,9 @@ bind_int_variable (lhs, rhs)
char *lhs, *rhs;
{
register SHELL_VAR *v;
- int isint, isarr;
+ int isint, isarr, implicitarray;
- isint = isarr = 0;
+ isint = isarr = implicitarray = 0;
#if defined (ARRAY_VARS)
if (valid_array_reference (lhs))
{
@@ -2379,11 +2780,17 @@ bind_int_variable (lhs, rhs)
{
isint = integer_p (v);
VUNSETATTR (v, att_integer);
+#if defined (ARRAY_VARS)
+ if (array_p (v) && isarr == 0)
+ implicitarray = 1;
+#endif
}
#if defined (ARRAY_VARS)
if (isarr)
v = assign_array_element (lhs, rhs, 0);
+ else if (implicitarray)
+ v = bind_array_variable (lhs, 0, rhs, 0);
else
#endif
v = bind_variable (lhs, rhs, 0);
@@ -2391,6 +2798,8 @@ bind_int_variable (lhs, rhs)
if (v && isint)
VSETATTR (v, att_integer);
+ VUNSETATTR (v, att_invisible);
+
return (v);
}
@@ -2491,13 +2900,14 @@ assign_in_env (word, flags)
WORD_DESC *word;
int flags;
{
- int offset;
+ int offset, aflags;
char *name, *temp, *value;
SHELL_VAR *var;
const char *string;
string = word->word;
+ aflags = 0;
offset = assignment (string, 0);
name = savestring (string);
value = (char *)NULL;
@@ -2506,9 +2916,12 @@ assign_in_env (word, flags)
{
name[offset] = 0;
- /* ignore the `+' when assigning temporary environment */
+ /* don't ignore the `+' when assigning temporary environment */
if (name[offset - 1] == '+')
- name[offset - 1] = '\0';
+ {
+ name[offset - 1] = '\0';
+ aflags |= ASS_APPEND;
+ }
var = find_variable (name);
if (var && (readonly_p (var) || noassign_p (var)))
@@ -2521,6 +2934,13 @@ assign_in_env (word, flags)
temp = name + offset + 1;
value = expand_assignment_string_to_string (temp, 0);
+
+ if (var && (aflags & ASS_APPEND))
+ {
+ temp = make_variable_value (var, value, aflags);
+ FREE (value);
+ value = temp;
+ }
}
if (temporary_env == 0)
@@ -2547,11 +2967,6 @@ assign_in_env (word, flags)
array_needs_making = 1;
-#if 0
- if (ifsname (name))
- setifs (var);
-else
-#endif
if (flags)
stupidly_hack_special_variables (name);
@@ -2593,7 +3008,9 @@ copy_variable (var)
else if (assoc_p (var))
var_setassoc (copy, assoc_copy (assoc_cell (var)));
#endif
- else if (value_cell (var))
+ else if (nameref_cell (var)) /* XXX - nameref */
+ var_setref (copy, savestring (nameref_cell (var)));
+ else if (value_cell (var)) /* XXX - nameref */
var_setvalue (copy, savestring (value_cell (var)));
else
var_setvalue (copy, (char *)NULL);
@@ -2628,6 +3045,8 @@ dispose_variable_value (var)
else if (assoc_p (var))
assoc_dispose (assoc_cell (var));
#endif
+ else if (nameref_p (var))
+ FREE (nameref_cell (var));
else
FREE (value_cell (var));
}
@@ -2652,12 +3071,33 @@ dispose_variable (var)
free (var);
}
-/* Unset the shell variable referenced by NAME. */
+/* Unset the shell variable referenced by NAME. Unsetting a nameref variable
+ unsets the variable it resolves to but leaves the nameref alone. */
int
unbind_variable (name)
const char *name;
{
- return makunbound (name, shell_variables);
+ SHELL_VAR *v, *nv;
+ int r;
+
+ v = var_lookup (name, shell_variables);
+ nv = (v && nameref_p (v)) ? find_variable_nameref (v) : (SHELL_VAR *)NULL;
+
+ r = nv ? makunbound (nv->name, shell_variables) : makunbound (name, shell_variables);
+ return r;
+}
+
+/* Unbind NAME, where NAME is assumed to be a nameref variable */
+int
+unbind_nameref (name)
+ const char *name;
+{
+ SHELL_VAR *v;
+
+ v = var_lookup (name, shell_variables);
+ if (v && nameref_p (v))
+ return makunbound (name, shell_variables);
+ return 0;
}
/* Unset the shell function named NAME. */
@@ -2715,6 +3155,30 @@ unbind_function_def (name)
}
#endif /* DEBUGGER */
+int
+delete_var (name, vc)
+ const char *name;
+ VAR_CONTEXT *vc;
+{
+ BUCKET_CONTENTS *elt;
+ SHELL_VAR *old_var;
+ VAR_CONTEXT *v;
+
+ for (elt = (BUCKET_CONTENTS *)NULL, v = vc; v; v = v->down)
+ if (elt = hash_remove (name, v->table, 0))
+ break;
+
+ if (elt == 0)
+ return (-1);
+
+ old_var = (SHELL_VAR *)elt->data;
+ free (elt->key);
+ free (elt);
+
+ dispose_variable (old_var);
+ return (0);
+}
+
/* Make the variable associated with NAME go away. HASH_LIST is the
hash table from which this variable should be deleted (either
shell_variables or shell_functions).
@@ -2757,6 +3221,8 @@ makunbound (name, vc)
else if (assoc_p (old_var))
assoc_dispose (assoc_cell (old_var));
#endif
+ else if (nameref_p (old_var))
+ FREE (nameref_cell (old_var));
else
FREE (value_cell (old_var));
/* Reset the attributes. Preserve the export attribute if the variable
@@ -3475,11 +3941,11 @@ make_env_array_from_var_list (vars)
value = named_function_string ((char *)NULL, function_cell (var), 0);
#if defined (ARRAY_VARS)
else if (array_p (var))
-# if 0
+# if ARRAY_EXPORT
value = array_to_assignment_string (array_cell (var));
# else
continue; /* XXX array vars cannot yet be exported */
-# endif
+# endif /* ARRAY_EXPORT */
else if (assoc_p (var))
# if 0
value = assoc_to_assignment_string (assoc_cell (var));
@@ -3760,33 +4226,6 @@ put_command_name_into_env (command_name)
update_export_env_inplace ("_=", 2, command_name);
}
-#if 0 /* UNUSED -- it caused too many problems */
-void
-put_gnu_argv_flags_into_env (pid, flags_string)
- intmax_t pid;
- char *flags_string;
-{
- char *dummy, *pbuf;
- int l, fl;
-
- pbuf = itos (pid);
- l = strlen (pbuf);
-
- fl = strlen (flags_string);
-
- dummy = (char *)xmalloc (l + fl + 30);
- dummy[0] = '_';
- strcpy (dummy + 1, pbuf);
- strcpy (dummy + 1 + l, "_GNU_nonoption_argv_flags_");
- dummy[l + 27] = '=';
- strcpy (dummy + l + 28, flags_string);
-
- free (pbuf);
-
- export_env = add_or_supercede_exported_var (dummy, 0);
-}
-#endif
-
/* **************************************************************** */
/* */
/* Managing variable contexts */
@@ -4061,7 +4500,7 @@ push_dollar_vars ()
{
dollar_arg_stack = (WORD_LIST **)
xrealloc (dollar_arg_stack, (dollar_arg_stack_slots += 10)
- * sizeof (WORD_LIST **));
+ * sizeof (WORD_LIST *));
}
dollar_arg_stack[dollar_arg_stack_index++] = list_rest_of_args ();
dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
@@ -4167,8 +4606,13 @@ struct name_and_function {
};
static struct name_and_function special_vars[] = {
+ { "BASH_COMPAT", sv_shcompat },
{ "BASH_XTRACEFD", sv_xtracefd },
+#if defined (JOB_CONTROL)
+ { "CHILD_MAX", sv_childmax },
+#endif
+
#if defined (READLINE)
# if defined (STRICT_POSIX)
{ "COLUMNS", sv_winsize },
@@ -4477,14 +4921,16 @@ sv_histsize (name)
if (legal_number (temp, &num))
{
hmax = num;
- if (name[4] == 'S')
+ if (hmax < 0 && name[4] == 'S')
+ unstifle_history (); /* unstifle history if HISTSIZE < 0 */
+ else if (name[4] == 'S')
{
stifle_history (hmax);
hmax = where_history ();
if (history_lines_this_session > hmax)
history_lines_this_session = hmax;
}
- else
+ else if (hmax >= 0) /* truncate HISTFILE if HISTFILESIZE >= 0 */
{
history_truncate_file (get_string_value ("HISTFILE"), hmax);
if (hmax <= history_lines_in_file)
@@ -4569,7 +5015,11 @@ sv_histtimefmt (name)
{
SHELL_VAR *v;
- v = find_variable (name);
+ if (v = find_variable (name))
+ {
+ if (history_comment_char == 0)
+ history_comment_char = '#';
+ }
history_write_timestamps = (v != 0);
}
#endif /* HISTORY */
@@ -4654,12 +5104,18 @@ sv_locale (name)
char *name;
{
char *v;
+ int r;
v = get_string_value (name);
if (name[0] == 'L' && name[1] == 'A') /* LANG */
- set_lang (name, v);
+ r = set_lang (name, v);
else
- set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
+ r = set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
+
+#if 1
+ if (r == 0 && posixly_correct)
+ last_command_exit_value = 1;
+#endif
}
#if defined (ARRAY_VARS)
@@ -4808,3 +5264,71 @@ sv_xtracefd (name)
internal_error (_("%s: %s: invalid value for trace file descriptor"), name, value_cell (v));
}
}
+
+#define MIN_COMPAT_LEVEL 31
+
+void
+sv_shcompat (name)
+ char *name;
+{
+ SHELL_VAR *v;
+ char *val;
+ int tens, ones, compatval;
+
+ v = find_variable (name);
+ if (v == 0)
+ {
+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
+ set_compatibility_opts ();
+ return;
+ }
+ val = value_cell (v);
+ if (val == 0 || *val == '\0')
+ {
+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
+ set_compatibility_opts ();
+ return;
+ }
+ /* Handle decimal-like compatibility version specifications: 4.2 */
+ if (isdigit (val[0]) && val[1] == '.' && isdigit (val[2]) && val[3] == 0)
+ {
+ tens = val[0] - '0';
+ ones = val[2] - '0';
+ compatval = tens*10 + ones;
+ }
+ /* Handle integer-like compatibility version specifications: 42 */
+ else if (isdigit (val[0]) && isdigit (val[1]) && val[2] == 0)
+ {
+ tens = val[0] - '0';
+ ones = val[1] - '0';
+ compatval = tens*10 + ones;
+ }
+ else
+ {
+compat_error:
+ internal_error (_("%s: %s: compatibility value out of range"), name, val);
+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
+ set_compatibility_opts ();
+ return;
+ }
+
+ if (compatval < MIN_COMPAT_LEVEL || compatval > DEFAULT_COMPAT_LEVEL)
+ goto compat_error;
+
+ shell_compatibility_level = compatval;
+ set_compatibility_opts ();
+}
+
+#if defined (JOB_CONTROL)
+void
+sv_childmax (name)
+ char *name;
+{
+ char *tt;
+ int s;
+
+ tt = get_string_value (name);
+ s = (tt && *tt) ? atoi (tt) : 0;
+ set_maxchild (s);
+}
+#endif
diff --git a/variables.h b/variables.h
index 84e92bbf..1a783b92 100644
--- a/variables.h
+++ b/variables.h
@@ -1,6 +1,6 @@
/* variables.h -- data structures for shell variables. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -112,8 +112,9 @@ typedef struct _vlist {
#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 att_nameref 0x0000800 /* word is a name reference */
-#define user_attrs (att_exported|att_readonly|att_integer|att_local|att_trace|att_uppercase|att_lowercase|att_capcase)
+#define user_attrs (att_exported|att_readonly|att_integer|att_local|att_trace|att_uppercase|att_lowercase|att_capcase|att_nameref)
#define attmask_user 0x0000fff
@@ -144,6 +145,7 @@ typedef struct _vlist {
#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 nameref_p(var) ((((var)->attributes) & (att_nameref)))
#define invisible_p(var) ((((var)->attributes) & (att_invisible)))
#define non_unsettable_p(var) ((((var)->attributes) & (att_nounset)))
@@ -159,6 +161,9 @@ typedef struct _vlist {
#define function_cell(var) (COMMAND *)((var)->value)
#define array_cell(var) (ARRAY *)((var)->value)
#define assoc_cell(var) (HASH_TABLE *)((var)->value)
+#define nameref_cell(var) ((var)->value) /* so it can change later */
+
+#define NAMEREF_MAX 8 /* only 8 levels of nameref indirection */
#define var_isnull(var) ((var)->value == 0)
#define var_isset(var) ((var)->value != 0)
@@ -168,6 +173,7 @@ typedef struct _vlist {
#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))
+#define var_setref(var, str) ((var)->value = (str))
/* Make VAR be auto-exported. */
#define set_auto_export(var) \
@@ -233,12 +239,21 @@ extern SHELL_VAR *var_lookup __P((const char *, VAR_CONTEXT *));
extern SHELL_VAR *find_function __P((const char *));
extern FUNCTION_DEF *find_function_def __P((const char *));
extern SHELL_VAR *find_variable __P((const char *));
+extern SHELL_VAR *find_variable_noref __P((const char *));
+extern SHELL_VAR *find_variable_last_nameref __P((const char *));
+extern SHELL_VAR *find_global_variable_last_nameref __P((const char *));
+extern SHELL_VAR *find_variable_nameref __P((SHELL_VAR *));
extern SHELL_VAR *find_variable_internal __P((const char *, int));
-extern SHELL_VAR *find_tempenv_variable __P((const char *));
+extern SHELL_VAR *find_variable_tempenv __P((const char *));
+extern SHELL_VAR *find_variable_notempenv __P((const char *));
extern SHELL_VAR *find_global_variable __P((const char *));
+extern SHELL_VAR *find_global_variable_noref __P((const char *));
+extern SHELL_VAR *find_shell_variable __P((const char *));
+extern SHELL_VAR *find_tempenv_variable __P((const char *));
extern SHELL_VAR *copy_variable __P((SHELL_VAR *));
extern SHELL_VAR *make_local_variable __P((const char *));
extern SHELL_VAR *bind_variable __P((const char *, char *, int));
+extern SHELL_VAR *bind_global_variable __P((const char *, char *, int));
extern SHELL_VAR *bind_function __P((const char *, COMMAND *));
extern void bind_function_def __P((const char *, FUNCTION_DEF *));
@@ -273,8 +288,10 @@ extern SHELL_VAR *bind_var_to_int __P((char *, intmax_t));
extern int assign_in_env __P((WORD_DESC *, int));
extern int unbind_variable __P((const char *));
+extern int unbind_nameref __P((const char *));
extern int unbind_func __P((const char *));
extern int unbind_function_def __P((const char *));
+extern int delete_var __P((const char *, VAR_CONTEXT *));
extern int makunbound __P((const char *, VAR_CONTEXT *));
extern int kill_local_variable __P((const char *));
extern void delete_all_variables __P((HASH_TABLE *));
@@ -327,7 +344,7 @@ extern void print_var_function __P((SHELL_VAR *));
#if defined (ARRAY_VARS)
extern SHELL_VAR *make_new_array_variable __P((char *));
-extern SHELL_VAR *make_local_array_variable __P((char *));
+extern SHELL_VAR *make_local_array_variable __P((char *, int));
extern SHELL_VAR *make_new_assoc_variable __P((char *));
extern SHELL_VAR *make_local_assoc_variable __P((char *));
@@ -362,6 +379,7 @@ extern void sv_optind __P((char *));
extern void sv_opterr __P((char *));
extern void sv_locale __P((char *));
extern void sv_xtracefd __P((char *));
+extern void sv_shcompat __P((char *));
#if defined (READLINE)
extern void sv_comp_wordbreaks __P((char *));
@@ -384,8 +402,12 @@ extern void sv_histchars __P((char *));
extern void sv_histtimefmt __P((char *));
#endif /* HISTORY */
-#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+#if defined (HAVE_TZSET)
extern void sv_tz __P((char *));
#endif
+#if defined (JOB_CONTROL)
+extern void sv_childmax __P((char *));
+#endif
+
#endif /* !_VARIABLES_H_ */
diff --git a/version.c b/version.c
index 6724e290..3fa4aeb2 100644
--- a/version.c
+++ b/version.c
@@ -1,6 +1,6 @@
/* version.c -- distribution and version numbers. */
-/* Copyright (C) 1989-2011 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2013 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -43,7 +43,7 @@ const char * const release_status = (char *)0;
#endif
const char * const sccs_version = SCCSVERSION;
-const char * const bash_copyright = N_("Copyright (C) 2011 Free Software Foundation, Inc.");
+const char * const bash_copyright = N_("Copyright (C) 2013 Free Software Foundation, Inc.");
const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n");
/* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */
@@ -88,7 +88,7 @@ show_shell_version (extended)
{
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"));
+ printf ("%s\n", _("This is free software; you are free to change and redistribute it."));
+ printf ("%s\n", _("There is NO WARRANTY, to the extent permitted by law."));
}
}
diff --git a/y.tab.c b/y.tab.c
index 63f6e5ec..f77131be 100644
--- a/y.tab.c
+++ b/y.tab.c
@@ -168,7 +168,7 @@
/* Copy the first part of user declarations. */
-#line 21 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 21 "/usr/homes/chet/src/bash/src/parse.y"
#include "config.h"
@@ -196,6 +196,7 @@
#define NEED_STRFTIME_DECL /* used in externs.h */
#include "shell.h"
+#include "typemax.h" /* SIZE_MAX if needed */
#include "trap.h"
#include "flags.h"
#include "parser.h"
@@ -421,9 +422,9 @@ int need_here_doc;
/* Where shell input comes from. History expansion is performed on each
line when the shell is interactive. */
static char *shell_input_line = (char *)NULL;
-static int shell_input_line_index;
-static int shell_input_line_size; /* Amount allocated for shell_input_line. */
-static int shell_input_line_len; /* strlen (shell_input_line) */
+static size_t shell_input_line_index;
+static size_t shell_input_line_size; /* Amount allocated for shell_input_line. */
+static size_t shell_input_line_len; /* strlen (shell_input_line) */
/* Either zero or EOF. */
static int shell_input_line_terminator;
@@ -491,7 +492,7 @@ static REDIRECTEE redir;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 323 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 324 "/usr/homes/chet/src/bash/src/parse.y"
{
WORD_DESC *word; /* the word that we read. */
int number; /* the number that we read. */
@@ -502,7 +503,7 @@ typedef union YYSTYPE
PATTERN_LIST *pattern;
}
/* Line 193 of yacc.c. */
-#line 506 "y.tab.c"
+#line 507 "y.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -515,7 +516,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 519 "y.tab.c"
+#line 520 "y.tab.c"
#ifdef short
# undef short
@@ -885,23 +886,23 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 376, 376, 387, 396, 411, 421, 423, 427, 433,
- 439, 445, 451, 457, 463, 469, 475, 481, 487, 493,
- 499, 505, 511, 517, 524, 531, 538, 545, 552, 559,
- 565, 571, 577, 583, 589, 595, 601, 607, 613, 619,
- 625, 631, 637, 643, 649, 655, 661, 667, 673, 679,
- 685, 691, 699, 701, 703, 707, 711, 722, 724, 728,
- 730, 732, 748, 750, 754, 756, 758, 760, 762, 764,
- 766, 768, 770, 772, 774, 778, 783, 788, 793, 798,
- 803, 808, 813, 820, 825, 830, 835, 842, 847, 852,
- 857, 862, 867, 874, 879, 884, 891, 894, 897, 901,
- 903, 934, 941, 946, 963, 968, 985, 992, 994, 996,
- 1001, 1005, 1009, 1013, 1015, 1017, 1021, 1022, 1026, 1028,
- 1030, 1032, 1036, 1038, 1040, 1042, 1044, 1046, 1050, 1052,
- 1061, 1069, 1070, 1076, 1077, 1084, 1088, 1090, 1092, 1099,
- 1101, 1103, 1107, 1108, 1111, 1113, 1115, 1119, 1120, 1129,
- 1142, 1158, 1173, 1175, 1177, 1184, 1187, 1191, 1193, 1199,
- 1205, 1222, 1242, 1244, 1267, 1271, 1273, 1275
+ 0, 377, 377, 388, 397, 412, 422, 424, 428, 434,
+ 440, 446, 452, 458, 464, 470, 476, 482, 488, 494,
+ 500, 506, 512, 518, 525, 532, 539, 546, 553, 560,
+ 566, 572, 578, 584, 590, 596, 602, 608, 614, 620,
+ 626, 632, 638, 644, 650, 656, 662, 668, 674, 680,
+ 686, 692, 700, 702, 704, 708, 712, 723, 725, 729,
+ 731, 733, 749, 751, 755, 757, 759, 761, 763, 765,
+ 767, 769, 771, 773, 775, 779, 784, 789, 794, 799,
+ 804, 809, 814, 821, 826, 831, 836, 843, 848, 853,
+ 858, 863, 868, 875, 880, 885, 892, 895, 898, 902,
+ 904, 935, 942, 947, 964, 969, 986, 993, 995, 997,
+ 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, 1029,
+ 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, 1053,
+ 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, 1100,
+ 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, 1130,
+ 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, 1200,
+ 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276
};
#endif
@@ -2092,7 +2093,7 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 377 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 378 "/usr/homes/chet/src/bash/src/parse.y"
{
/* Case of regular command. Discard the error
safety net,and return the command just parsed. */
@@ -2106,7 +2107,7 @@ yyreduce:
break;
case 3:
-#line 388 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 389 "/usr/homes/chet/src/bash/src/parse.y"
{
/* Case of regular command, but not a very
interesting one. Return a NULL command. */
@@ -2118,7 +2119,7 @@ yyreduce:
break;
case 4:
-#line 397 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 398 "/usr/homes/chet/src/bash/src/parse.y"
{
/* Error during parsing. Return NULL command. */
global_command = (COMMAND *)NULL;
@@ -2136,7 +2137,7 @@ yyreduce:
break;
case 5:
-#line 412 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 413 "/usr/homes/chet/src/bash/src/parse.y"
{
/* Case of EOF seen by itself. Do ignoreeof or
not. */
@@ -2147,17 +2148,17 @@ yyreduce:
break;
case 6:
-#line 422 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 423 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
break;
case 7:
-#line 424 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 425 "/usr/homes/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 428 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 429 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2166,7 +2167,7 @@ yyreduce:
break;
case 9:
-#line 434 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 435 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2175,7 +2176,7 @@ yyreduce:
break;
case 10:
-#line 440 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 441 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2184,7 +2185,7 @@ yyreduce:
break;
case 11:
-#line 446 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 447 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2193,7 +2194,7 @@ yyreduce:
break;
case 12:
-#line 452 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 453 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2202,7 +2203,7 @@ yyreduce:
break;
case 13:
-#line 458 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 459 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2211,7 +2212,7 @@ yyreduce:
break;
case 14:
-#line 464 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 465 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2220,7 +2221,7 @@ yyreduce:
break;
case 15:
-#line 470 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 471 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2229,7 +2230,7 @@ yyreduce:
break;
case 16:
-#line 476 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 477 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2238,7 +2239,7 @@ yyreduce:
break;
case 17:
-#line 482 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 483 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2247,7 +2248,7 @@ yyreduce:
break;
case 18:
-#line 488 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 489 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2256,7 +2257,7 @@ yyreduce:
break;
case 19:
-#line 494 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 495 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2265,7 +2266,7 @@ yyreduce:
break;
case 20:
-#line 500 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 501 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2274,7 +2275,7 @@ yyreduce:
break;
case 21:
-#line 506 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 507 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2283,7 +2284,7 @@ yyreduce:
break;
case 22:
-#line 512 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 513 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2292,7 +2293,7 @@ yyreduce:
break;
case 23:
-#line 518 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 519 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2302,7 +2303,7 @@ yyreduce:
break;
case 24:
-#line 525 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 526 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2312,7 +2313,7 @@ yyreduce:
break;
case 25:
-#line 532 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 533 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2322,7 +2323,7 @@ yyreduce:
break;
case 26:
-#line 539 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 540 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2332,7 +2333,7 @@ yyreduce:
break;
case 27:
-#line 546 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 547 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2342,7 +2343,7 @@ yyreduce:
break;
case 28:
-#line 553 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 554 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2352,7 +2353,7 @@ yyreduce:
break;
case 29:
-#line 560 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 561 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2361,7 +2362,7 @@ yyreduce:
break;
case 30:
-#line 566 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 567 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2370,7 +2371,7 @@ yyreduce:
break;
case 31:
-#line 572 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 573 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2379,7 +2380,7 @@ yyreduce:
break;
case 32:
-#line 578 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 579 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.dest = (yyvsp[(2) - (2)].number);
@@ -2388,7 +2389,7 @@ yyreduce:
break;
case 33:
-#line 584 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 585 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.dest = (yyvsp[(3) - (3)].number);
@@ -2397,7 +2398,7 @@ yyreduce:
break;
case 34:
-#line 590 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 591 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.dest = (yyvsp[(3) - (3)].number);
@@ -2406,7 +2407,7 @@ yyreduce:
break;
case 35:
-#line 596 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 597 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.dest = (yyvsp[(2) - (2)].number);
@@ -2415,7 +2416,7 @@ yyreduce:
break;
case 36:
-#line 602 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 603 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.dest = (yyvsp[(3) - (3)].number);
@@ -2424,7 +2425,7 @@ yyreduce:
break;
case 37:
-#line 608 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 609 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.dest = (yyvsp[(3) - (3)].number);
@@ -2433,7 +2434,7 @@ yyreduce:
break;
case 38:
-#line 614 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 615 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2442,7 +2443,7 @@ yyreduce:
break;
case 39:
-#line 620 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 621 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2451,7 +2452,7 @@ yyreduce:
break;
case 40:
-#line 626 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 627 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2460,7 +2461,7 @@ yyreduce:
break;
case 41:
-#line 632 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 633 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2469,7 +2470,7 @@ yyreduce:
break;
case 42:
-#line 638 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 639 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2478,7 +2479,7 @@ yyreduce:
break;
case 43:
-#line 644 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 645 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.filename = (yyvsp[(3) - (3)].word);
@@ -2487,7 +2488,7 @@ yyreduce:
break;
case 44:
-#line 650 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 651 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.dest = 0;
@@ -2496,7 +2497,7 @@ yyreduce:
break;
case 45:
-#line 656 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 657 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.dest = 0;
@@ -2505,7 +2506,7 @@ yyreduce:
break;
case 46:
-#line 662 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 663 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.dest = 0;
@@ -2514,7 +2515,7 @@ yyreduce:
break;
case 47:
-#line 668 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 669 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 0;
redir.dest = 0;
@@ -2523,7 +2524,7 @@ yyreduce:
break;
case 48:
-#line 674 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 675 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = (yyvsp[(1) - (3)].number);
redir.dest = 0;
@@ -2532,7 +2533,7 @@ yyreduce:
break;
case 49:
-#line 680 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 681 "/usr/homes/chet/src/bash/src/parse.y"
{
source.filename = (yyvsp[(1) - (3)].word);
redir.dest = 0;
@@ -2541,7 +2542,7 @@ yyreduce:
break;
case 50:
-#line 686 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 687 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2550,7 +2551,7 @@ yyreduce:
break;
case 51:
-#line 692 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 693 "/usr/homes/chet/src/bash/src/parse.y"
{
source.dest = 1;
redir.filename = (yyvsp[(2) - (2)].word);
@@ -2559,29 +2560,29 @@ yyreduce:
break;
case 52:
-#line 700 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 701 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
break;
case 53:
-#line 702 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 703 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
break;
case 54:
-#line 704 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 705 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; }
break;
case 55:
-#line 708 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 709 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.redirect) = (yyvsp[(1) - (1)].redirect);
}
break;
case 56:
-#line 712 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 713 "/usr/homes/chet/src/bash/src/parse.y"
{
register REDIRECT *t;
@@ -2593,27 +2594,27 @@ yyreduce:
break;
case 57:
-#line 723 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 724 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); }
break;
case 58:
-#line 725 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 726 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); }
break;
case 59:
-#line 729 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 730 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); }
break;
case 60:
-#line 731 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 732 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 61:
-#line 733 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 734 "/usr/homes/chet/src/bash/src/parse.y"
{
COMMAND *tc;
@@ -2632,72 +2633,72 @@ yyreduce:
break;
case 62:
-#line 749 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 750 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 63:
-#line 751 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 752 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 64:
-#line 755 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 756 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 65:
-#line 757 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 758 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 66:
-#line 759 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 760 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
break;
case 67:
-#line 761 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 762 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
break;
case 68:
-#line 763 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 764 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 69:
-#line 765 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 766 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 70:
-#line 767 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 768 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 71:
-#line 769 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 770 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 72:
-#line 771 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 772 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 73:
-#line 773 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 774 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 74:
-#line 775 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 776 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 75:
-#line 779 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 780 "/usr/homes/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--;
@@ -2705,7 +2706,7 @@ yyreduce:
break;
case 76:
-#line 784 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 785 "/usr/homes/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--;
@@ -2713,7 +2714,7 @@ yyreduce:
break;
case 77:
-#line 789 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 790 "/usr/homes/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--;
@@ -2721,7 +2722,7 @@ yyreduce:
break;
case 78:
-#line 794 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 795 "/usr/homes/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--;
@@ -2729,7 +2730,7 @@ yyreduce:
break;
case 79:
-#line 799 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 800 "/usr/homes/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--;
@@ -2737,7 +2738,7 @@ yyreduce:
break;
case 80:
-#line 804 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 805 "/usr/homes/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--;
@@ -2745,7 +2746,7 @@ yyreduce:
break;
case 81:
-#line 809 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 810 "/usr/homes/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--;
@@ -2753,7 +2754,7 @@ yyreduce:
break;
case 82:
-#line 814 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 815 "/usr/homes/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--;
@@ -2761,7 +2762,7 @@ yyreduce:
break;
case 83:
-#line 821 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 822 "/usr/homes/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--;
@@ -2769,7 +2770,7 @@ yyreduce:
break;
case 84:
-#line 826 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 827 "/usr/homes/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--;
@@ -2777,7 +2778,7 @@ yyreduce:
break;
case 85:
-#line 831 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 832 "/usr/homes/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--;
@@ -2785,7 +2786,7 @@ yyreduce:
break;
case 86:
-#line 836 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 837 "/usr/homes/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--;
@@ -2793,7 +2794,7 @@ yyreduce:
break;
case 87:
-#line 843 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 844 "/usr/homes/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--;
@@ -2801,7 +2802,7 @@ yyreduce:
break;
case 88:
-#line 848 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 849 "/usr/homes/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--;
@@ -2809,7 +2810,7 @@ yyreduce:
break;
case 89:
-#line 853 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 854 "/usr/homes/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--;
@@ -2817,7 +2818,7 @@ yyreduce:
break;
case 90:
-#line 858 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 859 "/usr/homes/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--;
@@ -2825,7 +2826,7 @@ yyreduce:
break;
case 91:
-#line 863 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 864 "/usr/homes/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--;
@@ -2833,7 +2834,7 @@ yyreduce:
break;
case 92:
-#line 868 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 869 "/usr/homes/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--;
@@ -2841,7 +2842,7 @@ yyreduce:
break;
case 93:
-#line 875 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 876 "/usr/homes/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--;
@@ -2849,7 +2850,7 @@ yyreduce:
break;
case 94:
-#line 880 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 881 "/usr/homes/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--;
@@ -2857,7 +2858,7 @@ yyreduce:
break;
case 95:
-#line 885 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 886 "/usr/homes/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--;
@@ -2865,27 +2866,27 @@ yyreduce:
break;
case 96:
-#line 892 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 893 "/usr/homes/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 97:
-#line 895 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 896 "/usr/homes/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 98:
-#line 898 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 899 "/usr/homes/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 99:
-#line 902 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 903 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 100:
-#line 904 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 905 "/usr/homes/chet/src/bash/src/parse.y"
{
COMMAND *tc;
@@ -2917,7 +2918,7 @@ yyreduce:
break;
case 101:
-#line 935 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 936 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command));
(yyval.command)->flags |= CMD_WANT_SUBSHELL;
@@ -2925,7 +2926,7 @@ yyreduce:
break;
case 102:
-#line 942 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 943 "/usr/homes/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;
@@ -2933,7 +2934,7 @@ yyreduce:
break;
case 103:
-#line 947 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 948 "/usr/homes/chet/src/bash/src/parse.y"
{
COMMAND *tc;
@@ -2953,7 +2954,7 @@ yyreduce:
break;
case 104:
-#line 964 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 965 "/usr/homes/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;
@@ -2961,7 +2962,7 @@ yyreduce:
break;
case 105:
-#line 969 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 970 "/usr/homes/chet/src/bash/src/parse.y"
{
COMMAND *tc;
@@ -2981,7 +2982,7 @@ yyreduce:
break;
case 106:
-#line 986 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 987 "/usr/homes/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;
@@ -2989,117 +2990,117 @@ yyreduce:
break;
case 107:
-#line 993 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 994 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); }
break;
case 108:
-#line 995 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 996 "/usr/homes/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 109:
-#line 997 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 998 "/usr/homes/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 110:
-#line 1002 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1003 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); }
break;
case 111:
-#line 1006 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1007 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); }
break;
case 112:
-#line 1010 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1011 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(2) - (3)].command); }
break;
case 113:
-#line 1014 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1015 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); }
break;
case 114:
-#line 1016 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1017 "/usr/homes/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 115:
-#line 1018 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1019 "/usr/homes/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 117:
-#line 1023 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1024 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); }
break;
case 118:
-#line 1027 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1028 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); }
break;
case 119:
-#line 1029 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1030 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); }
break;
case 120:
-#line 1031 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1032 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); }
break;
case 121:
-#line 1033 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1034 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); }
break;
case 122:
-#line 1037 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1038 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
break;
case 123:
-#line 1039 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1040 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
break;
case 124:
-#line 1041 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1042 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
break;
case 125:
-#line 1043 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1044 "/usr/homes/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 126:
-#line 1045 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1046 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
break;
case 127:
-#line 1047 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1048 "/usr/homes/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 128:
-#line 1051 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1052 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
break;
case 129:
-#line 1053 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1054 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); }
break;
case 130:
-#line 1062 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1063 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.command) = (yyvsp[(2) - (2)].command);
if (need_here_doc)
@@ -3108,14 +3109,14 @@ yyreduce:
break;
case 132:
-#line 1071 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1072 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.command) = (yyvsp[(2) - (2)].command);
}
break;
case 134:
-#line 1078 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1079 "/usr/homes/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, '&');
@@ -3125,17 +3126,17 @@ yyreduce:
break;
case 136:
-#line 1089 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1090 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
break;
case 137:
-#line 1091 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1092 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
break;
case 138:
-#line 1093 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1094 "/usr/homes/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), '&');
@@ -3145,37 +3146,37 @@ yyreduce:
break;
case 139:
-#line 1100 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1101 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
break;
case 140:
-#line 1102 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1103 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
break;
case 141:
-#line 1104 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1105 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 144:
-#line 1112 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1113 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = '\n'; }
break;
case 145:
-#line 1114 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1115 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = ';'; }
break;
case 146:
-#line 1116 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1117 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = yacc_EOF; }
break;
case 149:
-#line 1130 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1131 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.command) = (yyvsp[(1) - (1)].command);
if (need_here_doc)
@@ -3191,7 +3192,7 @@ yyreduce:
break;
case 150:
-#line 1143 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1144 "/usr/homes/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, '&');
@@ -3210,7 +3211,7 @@ yyreduce:
break;
case 151:
-#line 1159 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1160 "/usr/homes/chet/src/bash/src/parse.y"
{
(yyval.command) = (yyvsp[(1) - (2)].command);
if (need_here_doc)
@@ -3226,17 +3227,17 @@ yyreduce:
break;
case 152:
-#line 1174 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1175 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
break;
case 153:
-#line 1176 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1177 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
break;
case 154:
-#line 1178 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1179 "/usr/homes/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), '&');
@@ -3246,22 +3247,22 @@ yyreduce:
break;
case 155:
-#line 1185 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1186 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); }
break;
case 156:
-#line 1188 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1189 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 157:
-#line 1192 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1193 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 158:
-#line 1194 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1195 "/usr/homes/chet/src/bash/src/parse.y"
{
if ((yyvsp[(2) - (2)].command))
(yyvsp[(2) - (2)].command)->flags ^= CMD_INVERT_RETURN; /* toggle */
@@ -3270,7 +3271,7 @@ yyreduce:
break;
case 159:
-#line 1200 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1201 "/usr/homes/chet/src/bash/src/parse.y"
{
if ((yyvsp[(2) - (2)].command))
(yyvsp[(2) - (2)].command)->flags |= (yyvsp[(1) - (2)].number);
@@ -3279,7 +3280,7 @@ yyreduce:
break;
case 160:
-#line 1206 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1207 "/usr/homes/chet/src/bash/src/parse.y"
{
ELEMENT x;
@@ -3299,7 +3300,7 @@ yyreduce:
break;
case 161:
-#line 1223 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1224 "/usr/homes/chet/src/bash/src/parse.y"
{
ELEMENT x;
@@ -3320,12 +3321,12 @@ yyreduce:
break;
case 162:
-#line 1243 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1244 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); }
break;
case 163:
-#line 1245 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1246 "/usr/homes/chet/src/bash/src/parse.y"
{
/* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */
COMMAND *tc;
@@ -3351,28 +3352,28 @@ yyreduce:
break;
case 164:
-#line 1268 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1269 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.command) = (yyvsp[(1) - (1)].command); }
break;
case 165:
-#line 1272 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1273 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = CMD_TIME_PIPELINE; }
break;
case 166:
-#line 1274 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1275 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
break;
case 167:
-#line 1276 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1277 "/usr/homes/chet/src/bash/src/parse.y"
{ (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
break;
/* Line 1267 of yacc.c. */
-#line 3376 "y.tab.c"
+#line 3377 "y.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3586,7 +3587,7 @@ yyreturn:
}
-#line 1278 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 1279 "/usr/homes/chet/src/bash/src/parse.y"
/* Initial size to allocate for tokens, and the
@@ -3747,18 +3748,17 @@ yy_readline_get ()
old_sigint = (SigHandler *)IMPOSSIBLE_TRAP_HANDLER;
if (signal_is_ignored (SIGINT) == 0)
{
- interrupt_immediately++;
+ /* interrupt_immediately++; */
old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler);
}
- terminate_immediately = 1;
current_readline_line = readline (current_readline_prompt ?
current_readline_prompt : "");
- terminate_immediately = 0;
+ CHECK_TERMSIG;
if (signal_is_ignored (SIGINT) == 0)
{
- interrupt_immediately--;
+ /* interrupt_immediately--; */
if (old_sigint != IMPOSSIBLE_TRAP_HANDLER)
set_signal_handler (SIGINT, old_sigint);
}
@@ -3914,17 +3914,19 @@ yy_stream_get ()
result = EOF;
if (bash_input.location.file)
{
+#if 0
if (interactive)
- {
- interrupt_immediately++;
- terminate_immediately++;
- }
+ interrupt_immediately++;
+#endif
+
+ /* XXX - don't need terminate_immediately; getc_with_restart checks
+ for terminating signals itself if read returns < 0 */
result = getc_with_restart (bash_input.location.file);
+
+#if 0
if (interactive)
- {
- interrupt_immediately--;
- terminate_immediately--;
- }
+ interrupt_immediately--;
+#endif
}
return (result);
}
@@ -4102,6 +4104,10 @@ restore_token_state (ts)
* implement alias expansion on a per-token basis.
*/
+#define PSH_ALIAS 0x01
+#define PSH_DPAREN 0x02
+#define PSH_SOURCE 0x04
+
typedef struct string_saver {
struct string_saver *next;
int expand_alias; /* Value to set expand_alias to when string is popped. */
@@ -4109,7 +4115,9 @@ typedef struct string_saver {
#if defined (ALIAS)
alias_t *expander; /* alias that caused this line to be pushed. */
#endif
- int saved_line_size, saved_line_index, saved_line_terminator;
+ size_t saved_line_size, saved_line_index;
+ int saved_line_terminator;
+ int flags;
} STRING_SAVER;
STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL;
@@ -4135,8 +4143,11 @@ push_string (s, expand, ap)
temp->saved_line_size = shell_input_line_size;
temp->saved_line_index = shell_input_line_index;
temp->saved_line_terminator = shell_input_line_terminator;
+ temp->flags = 0;
#if defined (ALIAS)
temp->expander = ap;
+ if (ap)
+ temp->flags = PSH_ALIAS;
#endif
temp->next = pushed_string_list;
pushed_string_list = temp;
@@ -4147,7 +4158,7 @@ push_string (s, expand, ap)
#endif
shell_input_line = s;
- shell_input_line_size = strlen (s);
+ shell_input_line_size = STRLEN (s);
shell_input_line_index = 0;
shell_input_line_terminator = '\0';
#if 0
@@ -4221,6 +4232,34 @@ free_pushed_string_input ()
#endif
}
+int
+parser_expanding_alias ()
+{
+ return (expanding_alias ());
+}
+
+void
+parser_save_alias ()
+{
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ push_string ((char *)NULL, 0, (alias_t *)NULL);
+ pushed_string_list->flags = PSH_SOURCE; /* XXX - for now */
+#else
+ ;
+#endif
+}
+
+void
+parser_restore_alias ()
+{
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ if (pushed_string_list)
+ pop_string ();
+#else
+ ;
+#endif
+}
+
/* Return a line of text, taken from wherever yylex () reads input.
If there is no more input, then we return NULL. If REMOVE_QUOTED_NEWLINE
is non-zero, we remove unquoted \<newline> pairs. This is used by
@@ -4472,7 +4511,7 @@ shell_getc (remove_quoted_newline)
int remove_quoted_newline;
{
register int i;
- int c;
+ int c, truncating;
unsigned char uc;
QUIT;
@@ -4503,12 +4542,20 @@ shell_getc (remove_quoted_newline)
{
line_number++;
+ /* Let's not let one really really long line blow up memory allocation */
+ if (shell_input_line && shell_input_line_size >= 32768)
+ {
+ free (shell_input_line);
+ shell_input_line = 0;
+ shell_input_line_size = 0;
+ }
+
restart_read:
/* Allow immediate exit if interrupted during input. */
QUIT;
- i = 0;
+ i = truncating = 0;
shell_input_line_terminator = 0;
/* If the shell is interatctive, but not currently printing a prompt
@@ -4553,7 +4600,30 @@ shell_getc (remove_quoted_newline)
continue;
}
- RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256);
+ /* Theoretical overflow */
+ /* If we can't put 256 bytes more into the buffer, allocate
+ everything we can and fill it as full as we can. */
+ /* XXX - we ignore rest of line using `truncating' flag */
+ if (shell_input_line_size > (SIZE_MAX - 256))
+ {
+ size_t n;
+
+ n = SIZE_MAX - i; /* how much more can we put into the buffer? */
+ if (n <= 2) /* we have to save 1 for the newline added below */
+ {
+ if (truncating == 0)
+ internal_warning("shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%llu): line truncated", shell_input_line_size, SIZE_MAX);
+ shell_input_line[i] = '\0';
+ truncating = 1;
+ }
+ if (shell_input_line_size < SIZE_MAX)
+ {
+ shell_input_line_size = SIZE_MAX;
+ shell_input_line = xrealloc (shell_input_line, shell_input_line_size);
+ }
+ }
+ else
+ RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256);
if (c == EOF)
{
@@ -4567,7 +4637,8 @@ shell_getc (remove_quoted_newline)
break;
}
- shell_input_line[i++] = c;
+ if (truncating == 0 || c == '\n')
+ shell_input_line[i++] = c;
if (c == '\n')
{
@@ -4642,9 +4713,14 @@ shell_getc (remove_quoted_newline)
if (shell_input_line)
{
/* Lines that signify the end of the shell's input should not be
- echoed. */
+ echoed. We should not echo lines while parsing command
+ substitutions with recursive calls into the parsing engine; those
+ should only be echoed once when we read the word. That is the
+ reason for the test against shell_eof_token, which is set to a
+ right paren when parsing the contents of command substitutions. */
if (echo_input_at_read && (shell_input_line[0] ||
- shell_input_line_terminator != EOF))
+ shell_input_line_terminator != EOF) &&
+ shell_eof_token == 0)
fprintf (stderr, "%s\n", shell_input_line);
}
else
@@ -4660,7 +4736,7 @@ shell_getc (remove_quoted_newline)
not already end in an EOF character. */
if (shell_input_line_terminator != EOF)
{
- if (shell_input_line_len + 3 > shell_input_line_size)
+ if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3)
shell_input_line = (char *)xrealloc (shell_input_line,
1 + (shell_input_line_size += 2));
@@ -4683,8 +4759,13 @@ next_alias_char:
because we have fully consumed the result of the last alias expansion.
Do it transparently; just return the next character of the string popped
to. */
+ /* If pushed_string_list != 0 but pushed_string_list->expander == 0 (not
+ currently tested) and the flags value is not PSH_SOURCE, we are not
+ parsing an alias, we have just saved one (push_string, when called by
+ the parse_dparen code) In this case, just go on as well. The PSH_SOURCE
+ case is handled below. */
pop_alias:
- if (uc == 0 && (pushed_string_list != (STRING_SAVER *)NULL))
+ if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE)
{
pop_string ();
uc = shell_input_line[shell_input_line_index];
@@ -4724,6 +4805,28 @@ pop_alias:
if (uc == 0 && shell_input_line_terminator == EOF)
return ((shell_input_line_index != 0) ? '\n' : EOF);
+#if defined (ALIAS) || defined (DPAREN_ARITHMETIC)
+ /* We already know that we are not parsing an alias expansion because of the
+ check for expanding_alias() above. This knows how parse_and_execute
+ handles switching to st_string input while an alias is being expanded,
+ hence the check for pushed_string_list without pushed_string_list->expander
+ and the check for PSH_SOURCE as pushed_string_list->flags.
+ parse_and_execute and parse_string both change the input type to st_string
+ and place the string to be parsed and executed into location.string, so
+ we should not stop reading that until the pointer is '\0'.
+ The check for shell_input_line_terminator may be superfluous.
+
+ This solves the problem of `.' inside a multi-line alias with embedded
+ newlines executing things out of order. */
+ if (uc == 0 && bash_input.type == st_string && *bash_input.location.string &&
+ pushed_string_list && pushed_string_list->flags == PSH_SOURCE &&
+ shell_input_line_terminator == 0)
+ {
+ shell_input_line_index = 0;
+ goto restart_read;
+ }
+#endif
+
return (uc);
}
@@ -5524,7 +5627,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
}
RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
- if MBTEST(ch == CTLESC || ch == CTLNUL)
+ if MBTEST(ch == CTLESC)
ret[retind++] = CTLESC;
ret[retind++] = ch;
continue;
@@ -5578,6 +5681,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
treat single quotes as special when inside a double-quoted
${...}. This logic must agree with subst.c:extract_dollar_brace_string
since they share the same defines. */
+ /* FLAG POSIX INTERP 221 */
if (flags & P_DOLBRACE)
{
/* ${param%[%]word} */
@@ -5588,7 +5692,7 @@ parse_matched_pair (qc, open, close, lenp, flags)
dolbrace_state = DOLBRACE_QUOTE;
/* ${param/[/]pat/rep} */
else if MBTEST(dolbrace_state == DOLBRACE_PARAM && ch == '/' && retind > 1)
- dolbrace_state = DOLBRACE_QUOTE;
+ dolbrace_state = DOLBRACE_QUOTE2; /* XXX */
/* ${param^[^]pat} */
else if MBTEST(dolbrace_state == DOLBRACE_PARAM && ch == '^' && retind > 1)
dolbrace_state = DOLBRACE_QUOTE;
@@ -5630,7 +5734,18 @@ parse_matched_pair (qc, open, close, lenp, flags)
ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen);
xfree (nestret);
- if ((rflags & P_DQUOTE) == 0)
+ /* If we're parsing a double-quoted brace expansion and we are
+ not in a place where single quotes are treated specially,
+ make sure we single-quote the results of the ansi
+ expansion because quote removal should remove them later */
+ /* FLAG POSIX INTERP 221 */
+ if ((shell_compatibility_level > 42) && (rflags & P_DQUOTE) && (dolbrace_state == DOLBRACE_QUOTE2) && (flags & P_DOLBRACE))
+ {
+ nestret = sh_single_quote (ttrans);
+ free (ttrans);
+ nestlen = strlen (nestret);
+ }
+ else if ((rflags & P_DQUOTE) == 0)
{
nestret = sh_single_quote (ttrans);
free (ttrans);
@@ -5823,10 +5938,10 @@ eof_error:
ret[retind++] = ch;
if ((tflags & LEX_INCOMMENT) && ch == '\n')
-{
+ {
/*itrace("parse_comsub:%d: lex_incomment -> 0 ch = `%c'", line_number, ch);*/
- tflags &= ~LEX_INCOMMENT;
-}
+ tflags &= ~LEX_INCOMMENT;
+ }
continue;
}
@@ -5843,7 +5958,7 @@ eof_error:
}
RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64);
- if MBTEST(ch == CTLESC || ch == CTLNUL)
+ if MBTEST(ch == CTLESC)
ret[retind++] = CTLESC;
ret[retind++] = ch;
continue;
@@ -5968,34 +6083,54 @@ eof_error:
else if MBTEST(lex_rwlen == 4 && shellbreak (ch))
{
if (STREQN (ret + retind - 4, "case", 4))
-{
- tflags |= LEX_INCASE;
+ {
+ tflags |= LEX_INCASE;
/*itrace("parse_comsub:%d: found `case', lex_incase -> 1 lex_reswdok -> 0", line_number);*/
-}
+ }
else if (STREQN (ret + retind - 4, "esac", 4))
-{
- tflags &= ~LEX_INCASE;
+ {
+ tflags &= ~LEX_INCASE;
/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0 lex_reswdok -> 0", line_number);*/
-}
+ }
tflags &= ~LEX_RESWDOK;
}
else if MBTEST((tflags & LEX_CKCOMMENT) && ch == '#' && (lex_rwlen == 0 || ((tflags & LEX_INWORD) && lex_wlen == 0)))
; /* don't modify LEX_RESWDOK if we're starting a comment */
+ /* Allow `do' followed by space, tab, or newline to preserve the
+ RESWDOK flag, but reset the reserved word length counter so we
+ can read another one. */
+ else if MBTEST(((tflags & LEX_INCASE) == 0) &&
+ (isblank(ch) || ch == '\n') &&
+ lex_rwlen == 2 &&
+ STREQN (ret + retind - 2, "do", 2))
+ {
+/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', found \"do\"", line_number, ch);*/
+ lex_rwlen = 0;
+ }
else if MBTEST((tflags & LEX_INCASE) && ch != '\n')
/* If we can read a reserved word and we're in case, we're at the
point where we can read a new pattern list or an esac. We
handle the esac case above. If we read a newline, we want to
leave LEX_RESWDOK alone. If we read anything else, we want to
turn off LEX_RESWDOK, since we're going to read a pattern list. */
-{
- tflags &= ~LEX_RESWDOK;
+ {
+ tflags &= ~LEX_RESWDOK;
/*itrace("parse_comsub:%d: lex_incase == 1 found `%c', lex_reswordok -> 0", line_number, ch);*/
-}
+ }
else if MBTEST(shellbreak (ch) == 0)
-{
- tflags &= ~LEX_RESWDOK;
+ {
+ tflags &= ~LEX_RESWDOK;
/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/
-}
+ }
+#if 0
+ /* If we find a space or tab but have read something and it's not
+ `do', turn off the reserved-word-ok flag */
+ else if MBTEST(isblank (ch) && lex_rwlen > 0)
+ {
+ tflags &= ~LEX_RESWDOK;
+/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/
+ }
+#endif
}
/* Might be the start of a here-doc delimiter */
@@ -6033,10 +6168,10 @@ eof_error:
ch = peekc; /* fall through and continue XXX */
}
else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (((tflags & LEX_RESWDOK) && lex_rwlen == 0) || ((tflags & LEX_INWORD) && lex_wlen == 0)))
-{
+ {
/*itrace("parse_comsub:%d: lex_incomment -> 1 (%d)", line_number, __LINE__);*/
- tflags |= LEX_INCOMMENT;
-}
+ tflags |= LEX_INCOMMENT;
+ }
if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */
{
@@ -6050,15 +6185,15 @@ eof_error:
tflags &= ~LEX_INCASE; /* XXX */
#endif
else if MBTEST(ch == close && (tflags & LEX_INCASE) == 0) /* ending delimiter */
-{
- count--;
+ {
+ 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++;
+ {
+ count++;
/*itrace("parse_comsub:%d: found open: count = %d", line_number, count);*/
-}
+ }
/* Add this character. */
RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64);
@@ -6157,7 +6292,7 @@ xparse_dolparen (base, string, indp, flags)
{
sh_parser_state_t ps;
sh_input_line_state_t ls;
- int orig_ind, nc, sflags;
+ int orig_ind, nc, sflags, orig_eof_token;
char *ret, *s, *ep, *ostring;
/*yydebug = 1;*/
@@ -6170,12 +6305,14 @@ xparse_dolparen (base, string, indp, flags)
sflags |= SEVAL_NOLONGJMP;
save_parser_state (&ps);
save_input_line_state (&ls);
+ orig_eof_token = shell_eof_token;
/*(*/
parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/
shell_eof_token = ')';
parse_string (string, "command substitution", sflags, &ep);
+ shell_eof_token = orig_eof_token;
restore_parser_state (&ps);
reset_parser ();
/* reset_parser clears shell_input_line and associated variables */
@@ -6267,6 +6404,7 @@ parse_dparen (c)
else if (cmdtyp == 0) /* nested subshell */
{
push_string (wval, 0, (alias_t *)NULL);
+ pushed_string_list->flags = PSH_DPAREN;
if ((parser_state & PST_CASEPAT) == 0)
parser_state |= PST_SUBSHELL;
return (c);
@@ -6750,7 +6888,7 @@ read_token_word (character)
pop_delimiter (dstack);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
- RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
token[token_index++] = character;
@@ -6772,7 +6910,7 @@ read_token_word (character)
{
peek_char = shell_getc (1);
/* $(...), <(...), >(...), $((...)), ${...}, and $[...] constructs */
- if MBTEST(peek_char == '(' || \
+ if MBTEST(peek_char == '(' ||
((peek_char == '{' || peek_char == '[') && character == '$')) /* ) ] } */
{
if (peek_char == '{') /* } */
@@ -6792,7 +6930,7 @@ read_token_word (character)
ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
if (ttok == &matched_pair_error)
return -1; /* Bail immediately. */
- RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
token[token_index++] = character;
@@ -6843,7 +6981,7 @@ read_token_word (character)
ttrans = ttok;
}
- RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 2,
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 1,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
strcpy (token + token_index, ttrans);
@@ -6857,17 +6995,13 @@ read_token_word (character)
shell's single-character parameter expansions, and set flags.*/
else if MBTEST(character == '$' && peek_char == '$')
{
- ttok = (char *)xmalloc (3);
- ttok[0] = ttok[1] = '$';
- ttok[2] = '\0';
RESIZE_MALLOCED_BUFFER (token, token_index, 3,
token_buffer_size,
TOKEN_DEFAULT_GROW_SIZE);
- strcpy (token + token_index, ttok);
- token_index += 2;
+ token[token_index++] = '$';
+ token[token_index++] = peek_char;
dollar_present = 1;
all_digit_token = 0;
- FREE (ttok);
goto next_character;
}
else
@@ -6937,21 +7071,24 @@ read_token_word (character)
goto got_token;
}
- got_character:
+got_character:
if (character == CTLESC || character == CTLNUL)
- token[token_index++] = CTLESC;
+ {
+ RESIZE_MALLOCED_BUFFER (token, token_index, 2, token_buffer_size,
+ TOKEN_DEFAULT_GROW_SIZE);
+ token[token_index++] = CTLESC;
+ }
+ else
+got_escaped_character:
+ RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size,
+ TOKEN_DEFAULT_GROW_SIZE);
- got_escaped_character:
+ token[token_index++] = character;
all_digit_token &= DIGIT (character);
dollar_present |= character == '$';
- token[token_index++] = character;
-
- RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size,
- TOKEN_DEFAULT_GROW_SIZE);
-
next_character:
if (character == '\n' && SHOULD_PROMPT ())
prompt_again ();
@@ -6965,21 +7102,22 @@ read_token_word (character)
got_token:
+ /* Calls to RESIZE_MALLOCED_BUFFER ensure there is sufficient room. */
token[token_index] = '\0';
/* Check to see what thing we should return. If the last_read_token
is a `<', or a `&', or the character which ended this token is
a '>' or '<', then, and ONLY then, is this input token a NUMBER.
Otherwise, it is just a word, and should be returned as such. */
- if MBTEST(all_digit_token && (character == '<' || character == '>' || \
- last_read_token == LESS_AND || \
+ if MBTEST(all_digit_token && (character == '<' || character == '>' ||
+ last_read_token == LESS_AND ||
last_read_token == GREATER_AND))
{
if (legal_number (token, &lvalue) && (int)lvalue == lvalue)
- yylval.number = lvalue;
- else
- yylval.number = -1;
- return (NUMBER);
+ {
+ yylval.number = lvalue;
+ return (NUMBER);
+ }
}
/* Check for special case tokens. */
@@ -7029,7 +7167,11 @@ got_token:
the_word->flags |= W_ASSIGNMENT;
/* Don't perform word splitting on assignment statements. */
if (assignment_acceptable (last_read_token) || (parser_state & PST_COMPASSIGN) != 0)
- the_word->flags |= W_NOSPLIT;
+ {
+ the_word->flags |= W_NOSPLIT;
+ if (parser_state & PST_COMPASSIGN)
+ the_word->flags |= W_NOGLOB; /* XXX - W_NOBRACE? */
+ }
}
if (command_token_position (last_read_token))
@@ -7049,7 +7191,11 @@ got_token:
{
/* can use token; already copied to the_word */
token[token_index-1] = '\0';
+#if defined (ARRAY_VARS)
+ if (legal_identifier (token+1) || valid_array_reference (token+1))
+#else
if (legal_identifier (token+1))
+#endif
{
strcpy (the_word->word, token+1);
/*itrace("read_token_word: returning REDIR_WORD for %s", the_word->word);*/
@@ -7141,6 +7287,14 @@ find_reserved_word (tokstr)
return -1;
}
+/* An interface to let the rest of the shell (primarily the completion
+ system) know what the parser is expecting. */
+int
+parser_in_command_position ()
+{
+ return (command_token_position (last_read_token));
+}
+
#if 0
#if defined (READLINE)
/* Called after each time readline is called. This insures that whatever
@@ -7585,9 +7739,13 @@ decode_prompt_string (string)
#undef ROOT_PATH
#undef DOUBLE_SLASH_ROOT
else
- /* polite_directory_format is guaranteed to return a string
- no longer than PATH_MAX - 1 characters. */
- strcpy (t_string, polite_directory_format (t_string));
+ {
+ /* polite_directory_format is guaranteed to return a string
+ no longer than PATH_MAX - 1 characters. */
+ temp = polite_directory_format (t_string);
+ if (temp != t_string)
+ strcpy (t_string, temp);
+ }
temp = trim_pathname (t_string, PATH_MAX - 1);
/* If we're going to be expanding the prompt string later,
@@ -8300,6 +8458,8 @@ save_input_line_state (ls)
/* force reallocation */
shell_input_line = 0;
shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
+
+ return ls;
}
void
@@ -8325,7 +8485,8 @@ restore_input_line_state (ls)
static void
set_line_mbstate ()
{
- int i, previ, len, c;
+ int c;
+ size_t i, previ, len;
mbstate_t mbs, prevs;
size_t mbclen;
@@ -8343,7 +8504,7 @@ set_line_mbstate ()
c = shell_input_line[i];
if (c == EOF)
{
- int j;
+ size_t j;
for (j = i; j < len; j++)
shell_input_line_property[j] = 1;
break;
@@ -8366,7 +8527,7 @@ set_line_mbstate ()
else
{
/* XXX - what to do if mbrlen returns 0? (null wide character) */
- int j;
+ size_t j;
for (j = i; j < len; j++)
shell_input_line_property[j] = 1;
break;
diff --git a/y.tab.h b/y.tab.h
index b5251874..b280e409 100644
--- a/y.tab.h
+++ b/y.tab.h
@@ -142,7 +142,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 323 "/usr/src/local/chet/src/bash/bash-4.2-patched/parse.y"
+#line 324 "/usr/homes/chet/src/bash/src/parse.y"
{
WORD_DESC *word; /* the word that we read. */
int number; /* the number that we read. */